From 8e9853e5e43b4040430bb96fc11735ce604929b0 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 10 May 2020 22:29:58 +0100 Subject: [PATCH 001/520] Bump develop branch version number --- Versions.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Versions.cmake b/Versions.cmake index 987af3fc0..230f0e58d 100644 --- a/Versions.cmake +++ b/Versions.cmake @@ -1,6 +1,6 @@ # Version number components set (WSJTX_VERSION_MAJOR 2) -set (WSJTX_VERSION_MINOR 2) +set (WSJTX_VERSION_MINOR 3) set (WSJTX_VERSION_PATCH 0) -set (WSJTX_RC 1) # release candidate number, comment out or zero for development versions +set (WSJTX_RC 0) # release candidate number, comment out or zero for development versions set (WSJTX_VERSION_IS_RELEASE 0) # set to 1 for final release build From ced6b6d525b9d350c765933597f4cae126cb6b16 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 11 May 2020 11:30:02 -0400 Subject: [PATCH 002/520] I believe these changes fix the "missing blank line" bug. Please watch for a counter-example! --- widgets/mainwindow.cpp | 22 +++++++--------------- widgets/mainwindow.h | 2 +- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index c8bbed280..eb74103cf 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -294,7 +294,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_saveAll {false}, m_widebandDecode {false}, m_dataAvailable {false}, - m_blankLine {false}, m_decodedText2 {false}, m_freeText {false}, m_sentFirst73 {false}, @@ -1426,7 +1425,6 @@ void MainWindow::dataSink(qint64 frames) if(m_ihsym==40 and m_decoderBusy) { qDebug() << "Clearing hung decoder status"; decodeDone(); //Clear a hung decoder status - m_blankLine=true; } } @@ -2109,7 +2107,6 @@ void MainWindow::keyPressEvent (QKeyEvent * e) case Qt::Key_Z: //### Recover from hung decode() ?? ### if(e->modifiers() & Qt::AltModifier) { decodeDone(); - m_blankLine=true; return; } break; case Qt::Key_PageUp: @@ -2829,7 +2826,6 @@ void MainWindow::on_DecodeButton_clicked (bool /* checked */) //Decode request if(!m_mode.startsWith ("WSPR") && !m_decoderBusy) { dec_data.params.newdat=0; dec_data.params.nagain=1; - m_blankLine=false; // don't insert the separator again decode(); } } @@ -3120,11 +3116,6 @@ void MainWindow::decodeDone () ui->DecodeButton->setChecked (false); decodeBusy(false); m_RxLog=0; - m_blankLine=true; - if(m_mode=="FT8") { - if(dec_data.params.nzhsym==m_earlyDecode) m_blankLine=false; - if(dec_data.params.nzhsym==m_earlyDecode2) m_blankLine=false; - } if(SpecOp::FOX == m_config.special_op_id()) houndCallers(); to_jt9(m_ihsym,-1,1); //Tell jt9 we know it has finished @@ -3180,13 +3171,16 @@ void MainWindow::readFromStdout() //readFromStdout if(navg>=2) bAvgMsg=true; } write_all("Rx",line_read.trimmed()); - if (m_config.insert_blank () && m_blankLine && SpecOp::FOX != m_config.special_op_id()) { + int ntime=6; + if(m_TRperiod>=60) ntime=4; + if (m_config.insert_blank () && (line_read.left(ntime)!=m_tBlankLine) && + SpecOp::FOX != m_config.special_op_id()) { QString band; if((QDateTime::currentMSecsSinceEpoch() / 1000 - m_secBandChanged) > 4*int(m_TRperiod)/4) { band = ' ' + m_config.bands ()->find (m_freqNominal); } ui->decodedTextBrowser->insertLineSpacer (band.rightJustified (40, '-')); - m_blankLine = false; + m_tBlankLine = line_read.left(ntime); } DecodedText decodedtext0 {QString::fromUtf8(line_read.constData())}; @@ -7658,7 +7652,6 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout } m_RxLog=0; m_startAnother=m_loopall; - m_blankLine=true; m_decoderBusy = false; statusUpdate (); } else { @@ -7710,12 +7703,12 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout rxLine += t1; } - if (m_config.insert_blank () && m_blankLine) { + if (m_config.insert_blank () && (rxLine.left(4)!=m_tBlankLine)) { QString band; Frequency f=1000000.0*rxFields.at(3).toDouble()+0.5; band = ' ' + m_config.bands ()->find (f); ui->decodedTextBrowser->appendText(band.rightJustified (71, '-')); - m_blankLine = false; + m_tBlankLine = rxLine.left(4); } m_nWSPRdecodes += 1; ui->decodedTextBrowser->appendText(rxLine); @@ -7967,7 +7960,6 @@ void MainWindow::fastPick(int x0, int x1, int y) if(!m_decoderBusy) { dec_data.params.newdat=0; dec_data.params.nagain=1; - m_blankLine=false; // don't insert the separator again m_nPick=1; if(y > 120) m_nPick=2; m_t0Pick=x0/pixPerSecond; diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index b4ddee54e..969993098 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -486,7 +486,6 @@ private: bool m_dataAvailable; bool m_bDecoded; bool m_noSuffix; - bool m_blankLine; bool m_decodedText2; bool m_freeText; bool m_sentFirst73; @@ -494,6 +493,7 @@ private: QString m_currentMessage; int m_lastMessageType; QString m_lastMessageSent; + QString m_tBlankLine; bool m_bShMsgs; bool m_bSWL; bool m_uploadSpots; From 032de4a2c9ec5f4cd6f358ae0f2acd89eabe42f5 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 12 May 2020 13:40:00 -0400 Subject: [PATCH 003/520] Fix a bug parsing EU VHF message with both calls "/P". (The only message with both calls hashed is type 5, EU VHF Contest.) --- lib/77bit/packjt77.f90 | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/77bit/packjt77.f90 b/lib/77bit/packjt77.f90 index 707e86e98..4d51e421a 100644 --- a/lib/77bit/packjt77.f90 +++ b/lib/77bit/packjt77.f90 @@ -1157,6 +1157,7 @@ subroutine pack77_3(nwords,w,i3,n3,c77) "NB ","NS ","QC ","ON ","MB ","SK ","AB ","BC ","NWT","NF ", & "LB ","NU ","YT ","PEI","DC "/ + if(w(1)(1:1).eq.'<' .and. w(2)(1:1).eq.'<') go to 900 if(nwords.eq.4 .or. nwords.eq.5 .or. nwords.eq.6) then i1=1 if(trim(w(1)).eq.'TU;') i1=2 From 1e7d1d48b88e50d1c8d7b677a43e4118f6ffac9a Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 12 May 2020 18:37:48 -0400 Subject: [PATCH 004/520] Updates and corrections to User Guide. --- doc/user_guide/en/install-mac.adoc | 2 +- doc/user_guide/en/introduction.adoc | 5 ++--- doc/user_guide/en/system-requirements.adoc | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/doc/user_guide/en/install-mac.adoc b/doc/user_guide/en/install-mac.adoc index bc0410352..51342fb9e 100644 --- a/doc/user_guide/en/install-mac.adoc +++ b/doc/user_guide/en/install-mac.adoc @@ -1,6 +1,6 @@ // These instructions are up-to-date for WSJT-X v1.9 -*OS X 10.10* and later: Download the file {osx} to your desktop, +*macOS 10.13* and later: Download the file {osx} to your desktop, double-click on it and consult its `ReadMe` file for important installation notes. diff --git a/doc/user_guide/en/introduction.adoc b/doc/user_guide/en/introduction.adoc index 9e9199725..c0258ee88 100644 --- a/doc/user_guide/en/introduction.adoc +++ b/doc/user_guide/en/introduction.adoc @@ -16,9 +16,8 @@ making reliable QSOs under weak-signal conditions. They use nearly identical message structure and source encoding. JT65 and QRA64 were designed for EME ("`moonbounce`") on the VHF/UHF bands and have also proven very effective for worldwide QRP communication on the HF bands. -QRA64 has a number of advantages over JT65, including better -performance on the very weakest signals. We imagine that over time it -may replace JT65 for EME use. JT9 was originally designed for the LF, +QRA64 has some advantages over JT65, including better performance on +the higher microwave bands. JT9 was originally designed for the LF, MF, and lower HF bands. Its submode JT9A is 2 dB more sensitive than JT65 while using less than 10% of the bandwidth. JT4 offers a wide variety of tone spacings and has proven highly effective for EME on diff --git a/doc/user_guide/en/system-requirements.adoc b/doc/user_guide/en/system-requirements.adoc index e7e61eb23..a3fcc382d 100644 --- a/doc/user_guide/en/system-requirements.adoc +++ b/doc/user_guide/en/system-requirements.adoc @@ -1,7 +1,7 @@ // Status=review - SSB transceiver and antenna -- Computer running Windows (XP or later), Linux, or OS X +- Computer running Windows 7 or later, macOS 10.13 or later, or Linux - 1.5 GHz or faster CPU and 200 MB of available memory; faster machines are better - Monitor with at least 1024 x 780 resolution From d79cf16a5b1511fbdb435037e08c738a46100d88 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 12 May 2020 18:40:12 -0400 Subject: [PATCH 005/520] Add a few more 77-bit test messages. --- lib/77bit/messages.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/77bit/messages.txt b/lib/77bit/messages.txt index 9554b357b..2100ae393 100644 --- a/lib/77bit/messages.txt +++ b/lib/77bit/messages.txt @@ -89,3 +89,8 @@ K1ABC/VE3 37 KA1ABC/VEX 37 FK52UD FK52UD + 590001 FN20QI + 590001 FN20QI + 590001 FN20QI + 590001 FN20QI + 590001 FN20QI From 4a9b518513baf6edf8b3c76017e9a0cc42ec2043 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 14 May 2020 12:54:22 +0100 Subject: [PATCH 006/520] Updated translation files Spanish and Catalan added in preparation for Xavi, EA3W, to start work on translations. --- translations/wsjtx_ca_ES.ts | 6035 +++++++++++++++++++++++++++++++++++ translations/wsjtx_en_GB.ts | 800 ++--- translations/wsjtx_es_ES.ts | 6035 +++++++++++++++++++++++++++++++++++ translations/wsjtx_pt_PT.ts | 800 ++--- 4 files changed, 12898 insertions(+), 772 deletions(-) create mode 100644 translations/wsjtx_ca_ES.ts create mode 100644 translations/wsjtx_es_ES.ts diff --git a/translations/wsjtx_ca_ES.ts b/translations/wsjtx_ca_ES.ts new file mode 100644 index 000000000..d2fa39834 --- /dev/null +++ b/translations/wsjtx_ca_ES.ts @@ -0,0 +1,6035 @@ + + + + + AbstractLogWindow + + + &Delete ... + + + + + AbstractLogWindow::impl + + + Confirm Delete + + + + + Are you sure you want to delete the %n selected QSO(s) from the log + + + + + + + + Astro + + + + Doppler tracking + + + + + <html><head/><body><p>One station does all Doppler shift correction, their QSO partner receives and transmits on the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + + + + + Full Doppler to DX Grid + + + + + <html><head/><body><p>Transmit takes place on sked frequency and receive frequency is corrected for own echoes. </p><p>This mode can be used for calling CQ, or when using Echo mode.</p></body></html> + + + + + Own Echo + + + + + <html><head/><body><p>Both stations correct for Doppler shift such that they would be heard on the moon at the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p><p>Use this option also for Echo mode.</p></body></html> + + + + + Constant frequency on Moon + + + + + <html><head/><body><p>DX station announces their TX Freq, which is entered as the Sked Freq. Correction applied to RX and TX so you appear on the DX's station's own echo Freq.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + + + + + On DX Echo + + + + + <html><head/><body><p>Tune radio manually and select this mode to put your echo on the same frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + + + + + Call DX + + + + + <html><head/><body><p>No Doppler shift correction is applied. This may be used when the QSO partner does full Doppler correction to your grid square.</p></body></html> + + + + + None + + + + + Sked frequency + + + + + + 0 + + + + + Rx: + + + + + Tx: + + + + + <html><head/><body><p>Press and hold the CTRL key to adjust the sked frequency manually with the rig's VFO dial or enter frequency directly into the band entry field on the main window.</p></body></html> + + + + + Astro Data + + + + + Astronomical Data + + + + + Doppler Tracking Error + + + + + Split operating is required for Doppler tracking + + + + + Go to "Menu->File->Settings->Radio" to enable split operation + + + + + Bands + + + Band name + + + + + Lower frequency limit + + + + + Upper frequency limit + + + + + Band + + + + + Lower Limit + + + + + Upper Limit + + + + + CAboutDlg + + + About WSJT-X + + + + + OK + + + + + CPlotter + + + &Set Rx && Tx Offset + + + + + CabrilloLog + + + Freq(MHz) + + + + + Mode + + + + + Date & Time(UTC) + + + + + Call + + + + + Sent + + + + + Rcvd + + + + + Band + + + + + CabrilloLogWindow + + + Contest Log + + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + + + + + Right-click here for available actions. + + + + + CallsignDialog + + + Callsign + + + + + ColorHighlighting + + + + + + + + + + + + + + + + + + K1ABC + + + + + CQ in message + + + + + My Call in message + + + + + Transmitted message + + + + + New DXCC + + + + + New Grid + + + + + New DXCC on Band + + + + + New Call + + + + + New Grid on Band + + + + + New Call on Band + + + + + Uploads to LotW + + + + + New Continent + + + + + New Continent on Band + + + + + New CQ Zone + + + + + New CQ Zone on Band + + + + + New ITU Zone + + + + + New ITU Zone on Band + + + + + Configuration::impl + + + + + &Delete + + + + + + &Insert ... + + + + + Failed to create save directory + + + + + path: "%1% + + + + + Failed to create samples directory + + + + + path: "%1" + + + + + &Load ... + + + + + &Save as ... + + + + + &Merge ... + + + + + &Reset + + + + + Serial Port: + + + + + Serial port used for CAT control + + + + + Network Server: + + + + + Optional hostname and port of network service. +Leave blank for a sensible default on this machine. +Formats: + hostname:port + IPv4-address:port + [IPv6-address]:port + + + + + USB Device: + + + + + Optional device identification. +Leave blank for a sensible default for the rig. +Format: + [VID[:PID[:VENDOR[:PRODUCT]]]] + + + + + Invalid audio input device + + + + + Invalid audio out device + + + + + Invalid PTT method + + + + + Invalid PTT port + + + + + + Invalid Contest Exchange + + + + + You must input a valid ARRL Field Day exchange + + + + + You must input a valid ARRL RTTY Roundup exchange + + + + + Reset Decode Highlighting + + + + + Reset all decode highlighting and priorities to default values + + + + + WSJT-X Decoded Text Font Chooser + + + + + Load Working Frequencies + + + + + + + Frequency files (*.qrg);;All files (*.*) + + + + + Replace Working Frequencies + + + + + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? + + + + + Merge Working Frequencies + + + + + + + Not a valid frequencies file + + + + + Incorrect file magic + + + + + Version is too new + + + + + Contents corrupt + + + + + Save Working Frequencies + + + + + Only Save Selected Working Frequencies + + + + + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. + + + + + Reset Working Frequencies + + + + + Are you sure you want to discard your current working frequencies and replace them with default ones? + + + + + Save Directory + + + + + AzEl Directory + + + + + Rig control error + + + + + Failed to open connection to rig + + + + + Rig failure + + + + + DXLabSuiteCommanderTransceiver + + + Failed to connect to DX Lab Suite Commander + + + + + + DX Lab Suite Commander didn't respond correctly reading frequency: + + + + + DX Lab Suite Commander sent an unrecognised TX state: + + + + + DX Lab Suite Commander didn't respond correctly polling TX status: + + + + + DX Lab Suite Commander rig did not respond to PTT: + + + + + DX Lab Suite Commander didn't respond correctly polling frequency: + + + + + DX Lab Suite Commander didn't respond correctly polling TX frequency: + + + + + DX Lab Suite Commander sent an unrecognised split state: + + + + + DX Lab Suite Commander didn't respond correctly polling split status: + + + + + DX Lab Suite Commander sent an unrecognised mode: " + + + + + DX Lab Suite Commander didn't respond correctly polling mode: + + + + + DX Lab Suite Commander send command failed + + + + + + DX Lab Suite Commander failed to send command "%1": %2 + + + + + + DX Lab Suite Commander send command "%1" read reply failed: %2 + + + + + + DX Lab Suite Commander retries exhausted sending command "%1" + + + + + DX Lab Suite Commander sent an unrecognized frequency + + + + + DecodeHighlightingListView + + + &Foreground color ... + + + + + Choose %1 Foreground Color + + + + + &Unset foreground color + + + + + &Background color ... + + + + + Choose %1 Background Color + + + + + U&nset background color + + + + + &Reset this item to defaults + + + + + DecodeHighlightingModel + + + Highlight Type + + + + + Designer + + + &Delete + + + + + &Insert ... + + + + + Insert &after ... + + + + + Import Palette + + + + + + Palettes (*.pal) + + + + + Export Palette + + + + + Dialog + + + Gray time: + + + + + Directory + + + + URL Error + + + + + + Invalid URL: +"%1" + + + + + + + + + + + JSON Error + + + + + Contents file syntax error %1 at character offset %2 + + + + + Contents file top level must be a JSON array + + + + + File System Error + + + + + Failed to open "%1" +Error: %2 - %3 + + + + + Contents entries must be a JSON array + + + + + Contents entries must have a valid type + + + + + Contents entries must have a valid name + + + + + Contents entries must be JSON objects + + + + + Contents directories must be relative and within "%1" + + + + + Network Error + + + + + Authentication required + + + + + DisplayText + + + &Erase + + + + + EchoGraph + + + + Echo Graph + + + + + <html><head/><body><p>Compression factor for frequency scale</p></body></html> + + + + + Bins/Pixel + + + + + Gain + + + + + <html><head/><body><p>Echo spectrum gain</p></body></html> + + + + + Zero + + + + + <html><head/><body><p>Echo spectrum zero</p></body></html> + + + + + <html><head/><body><p>Smoothing of echo spectrum</p></body></html> + + + + + Smooth + + + + + <html><head/><body><p>Number of echo transmissions averaged</p></body></html> + + + + + N: 0 + + + + + <html><head/><body><p>Click to cycle through a sequence of colors and line widths.</p></body></html> + + + + + Colors + + + + + EmulateSplitTransceiver + + + Emulated split mode requires rig to be in simplex mode + + + + + EqualizationToolsDialog::impl + + + Phase + + + + + + Freq (Hz) + + + + + Phase (Π) + + + + + Delay (ms) + + + + + Measured + + + + + Proposed + + + + + Current + + + + + Group Delay + + + + + Amplitude + + + + + Relative Power (dB) + + + + + Reference + + + + + Phase ... + + + + + Refresh + + + + + Discard Measured + + + + + ExistingNameDialog + + + Configuration to Clone From + + + + + &Source Configuration Name: + + + + + ExportCabrillo + + + Dialog + + + + + Location: + + + + + SNJ + + + + + Contest: + + + + + ARRL-RTTY + + + + + Callsign: + + + + + Category-Operator: + + + + + SINGLE-OP + + + + + Category-Transmitter: + + + + + ONE + + + + + Category-Power: + + + + + LOW + + + + + Category-Assisted: + + + + + NON-ASSISTED + + + + + Category-Band: + + + + + ALL + + + + + Claimed-Score: + + + + + Operators: + + + + + Club: + + + + + Name: + + + + + + Address: + + + + + Save Log File + + + + + Cabrillo Log (*.cbr) + + + + + Cannot open "%1" for writing: %2 + + + + + Export Cabrillo File Error + + + + + FastGraph + + + + Fast Graph + + + + + Waterfall gain + + + + + Waterfall zero + + + + + Spectrum zero + + + + + <html><head/><body><p>Set reasonable levels for gain and zero sliders.</p></body></html> + + + + + Auto Level + + + + + FoxLog::impl + + + Date & Time(UTC) + + + + + Call + + + + + Grid + + + + + Sent + + + + + Rcvd + + + + + Band + + + + + FoxLogWindow + + + Fox Log + + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + + + + + Callers: + + + + + + + N + + + + + In progress: + + + + + Rate: + + + + + &Export ADIF ... + + + + + Export ADIF Log File + + + + + ADIF Log (*.adi) + + + + + Export ADIF File Error + + + + + Cannot open "%1" for writing: %2 + + + + + &Reset ... + + + + + Confirm Reset + + + + + Are you sure you want to erase file FoxQSO.txt and start a new Fox log? + + + + + FrequencyDialog + + + Add Frequency + + + + + IARU &Region: + + + + + &Mode: + + + + + &Frequency (MHz): + + + + + FrequencyList_v2 + + + + IARU Region + + + + + + Mode + + + + + + Frequency + + + + + + Frequency (MHz) + + + + + HRDTransceiver + + + + Failed to connect to Ham Radio Deluxe + + + + + + Failed to open file "%1": %2. + + + + + + Ham Radio Deluxe: no rig found + + + + + Ham Radio Deluxe: rig doesn't support mode + + + + + Ham Radio Deluxe: sent an unrecognised mode + + + + + Ham Radio Deluxe: item not found in %1 dropdown list + + + + + Ham Radio Deluxe: button not available + + + + + Ham Radio Deluxe didn't respond as expected + + + + + Ham Radio Deluxe: rig has disappeared or changed + + + + + Ham Radio Deluxe send command "%1" failed %2 + + + + + + + Ham Radio Deluxe: failed to write command "%1" + + + + + Ham Radio Deluxe sent an invalid reply to our command "%1" + + + + + Ham Radio Deluxe failed to reply to command "%1" %2 + + + + + + Ham Radio Deluxe retries exhausted sending command "%1" + + + + + Ham Radio Deluxe didn't respond to command "%1" as expected + + + + + HamlibTransceiver + + + + Hamlib initialisation error + + + + + Hamlib settings file error: %1 at character offset %2 + + + + + Hamlib settings file error: top level must be a JSON object + + + + + Hamlib settings file error: config must be a JSON object + + + + + Unsupported CAT type + + + + + Hamlib error: %1 while %2 + + + + + opening connection to rig + + + + + getting current frequency + + + + + getting current mode + + + + + + exchanging VFOs + + + + + + getting other VFO frequency + + + + + getting other VFO mode + + + + + setting current VFO + + + + + getting frequency + + + + + getting mode + + + + + + getting current VFO + + + + + + + + getting current VFO frequency + + + + + + + + + + setting frequency + + + + + + + + getting current VFO mode + + + + + + + + + setting current VFO mode + + + + + + setting/unsetting split mode + + + + + + setting split mode + + + + + setting split TX frequency and mode + + + + + setting split TX frequency + + + + + getting split TX VFO mode + + + + + setting split TX VFO mode + + + + + getting PTT state + + + + + setting PTT on + + + + + setting PTT off + + + + + setting a configuration item + + + + + getting a configuration item + + + + + HelpTextWindow + + + Help file error + + + + + Cannot open "%1" for reading + + + + + Error: %1 + + + + + IARURegions + + + + IARU Region + + + + + LogQSO + + + Click OK to confirm the following QSO: + + + + + Call + + + + + Start + + + + + + dd/MM/yyyy HH:mm:ss + + + + + End + + + + + Mode + + + + + Band + + + + + Rpt Sent + + + + + Rpt Rcvd + + + + + Grid + + + + + Name + + + + + Tx power + + + + + + Retain + + + + + Comments + + + + + Operator + + + + + Exch sent + + + + + Rcvd + + + + + + Invalid QSO Data + + + + + Check exchange sent and received + + + + + Check all fields + + + + + Log file error + + + + + Cannot open "%1" for append + + + + + Error: %1 + + + + + LotWUsers::impl + + + Network Error - SSL/TLS support not installed, cannot fetch: +'%1' + + + + + Network Error - Too many redirects: +'%1' + + + + + Network Error: +%1 + + + + + File System Error - Cannot commit changes to: +"%1" + + + + + File System Error - Cannot open file: +"%1" +Error(%2): %3 + + + + + File System Error - Cannot write to file: +"%1" +Error(%2): %3 + + + + + MainWindow + + + WSJT-X by K1JT + + + + + Band Activity + + + + + + UTC dB DT Freq Dr + + + + + Rx Frequency + + + + + CQ only + + + + + Enter this QSO in log + + + + + Log &QSO + + + + + Stop monitoring + + + + + &Stop + + + + + Toggle monitoring On/Off + + + + + &Monitor + + + + + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> + + + + + Erase right window. Double-click to erase both windows. + + + + + &Erase + + + + + <html><head/><body><p>Clear the accumulating message average.</p></body></html> + + + + + Clear the accumulating message average. + + + + + Clear Avg + + + + + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> + + + + + Decode most recent Rx period at QSO Frequency + + + + + &Decode + + + + + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> + + + + + Toggle Auto-Tx On/Off + + + + + E&nable Tx + + + + + Stop transmitting immediately + + + + + &Halt Tx + + + + + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> + + + + + Toggle a pure Tx tone On/Off + + + + + &Tune + + + + + Menus + + + + + USB dial frequency + + + + + 14.078 000 + + + + + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> + + + + + Rx Signal + + + + + 30dB recommended when only noise present +Green when good +Red when clipping may occur +Yellow when too low + + + + + DX Call + + + + + DX Grid + + + + + Callsign of station to be worked + + + + + Search for callsign in database + + + + + &Lookup + + + + + Locator of station to be worked + + + + + Az: 251 16553 km + + + + + Add callsign and locator to database + + + + + Add + + + + + Pwr + + + + + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> + + + + + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. + + + + + ? + + + + + Adjust Tx audio level + + + + + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> + + + + + Frequency entry + + + + + Select operating band or enter frequency in MHz or enter kHz increment followed by k. + + + + + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + + + + + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> + + + + + Check to keep Tx frequency fixed when double-clicking on decoded text. + + + + + Hold Tx Freq + + + + + Audio Rx frequency + + + + + + + Hz + + + + + Rx + + + + + Set Tx frequency to Rx Frequency + + + + + ▲ + + + + + Frequency tolerance (Hz) + + + + + F Tol + + + + + Set Rx frequency to Tx Frequency + + + + + ▼ + + + + + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> + + + + + Synchronizing threshold. Lower numbers accept weaker sync signals. + + + + + Sync + + + + + <html><head/><body><p>Check to use short-format messages.</p></body></html> + + + + + Check to use short-format messages. + + + + + Sh + + + + + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> + + + + + Check to enable JT9 fast modes + + + + + + Fast + + + + + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> + + + + + Check to enable automatic sequencing of Tx messages based on received messages. + + + + + Auto Seq + + + + + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> + + + + + Check to call the first decoded responder to my CQ. + + + + + Call 1st + + + + + Check to generate "@1250 (SEND MSGS)" in Tx6. + + + + + Tx6 + + + + + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> + + + + + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. + + + + + Tx even/1st + + + + + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> + + + + + Frequency to call CQ on in kHz above the current MHz + + + + + Tx CQ + + + + + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> + + + + + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. +Not available to nonstandard callsign holders. + + + + + Rx All Freqs + + + + + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> + + + + + Submode determines tone spacing; A is narrowest. + + + + + Submode + + + + + Fox + + + + + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> + + + + + Check to monitor Sh messages. + + + + + SWL + + + + + Best S+P + + + + + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> + + + + + Check this to start recording calibration data. +While measuring calibration correction is disabled. +When not checked you can view the calibration results. + + + + + Measure + + + + + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> + + + + + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). + + + + + Report + + + + + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> + + + + + Tx/Rx or Frequency calibration sequence length + + + + + s + + + + + T/R + + + + + Toggle Tx mode + + + + + Tx JT9 @ + + + + + Audio Tx frequency + + + + + + Tx + + + + + Tx# + + + + + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> + + + + + Double-click on another caller to queue that call for your next QSO. + + + + + Next Call + + + + + 1 + + + + + + + Send this message in next Tx interval + + + + + Ctrl+2 + + + + + <html><head/><body><p>Send this message in next Tx interval</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> + + + + + Send this message in next Tx interval +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) + + + + + Ctrl+1 + + + + + + + + Switch to this Tx message NOW + + + + + Tx &2 + + + + + Alt+2 + + + + + <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> + + + + + Switch to this Tx message NOW +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) + + + + + Tx &1 + + + + + Alt+1 + + + + + Ctrl+6 + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> + + + + + Send this message in next Tx interval +Double-click to reset to the standard 73 message + + + + + Ctrl+5 + + + + + Ctrl+3 + + + + + Tx &3 + + + + + Alt+3 + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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> + + + + + Send this message in next Tx interval +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + + + + + Ctrl+4 + + + + + <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> + + + + + Switch to this Tx message NOW +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + + + + + Tx &4 + + + + + Alt+4 + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> + + + + + Switch to this Tx message NOW +Double-click to reset to the standard 73 message + + + + + Tx &5 + + + + + Alt+5 + + + + + Now + + + + + Generate standard messages for minimal QSO + + + + + Generate Std Msgs + + + + + Tx &6 + + + + + Alt+6 + + + + + + Enter a free text message (maximum 13 characters) +or select a predefined macro from the dropdown list. +Press ENTER to add the current text to the predefined +list. The list can be maintained in Settings (F2). + + + + + Queue up the next Tx message + + + + + Next + + + + + 2 + + + + + Calling CQ + + + + + Generate a CQ message + + + + + + + CQ + + + + + Generate message with RRR + + + + + RRR + + + + + Generate message with report + + + + + dB + + + + + Answering CQ + + + + + Generate message for replying to a CQ + + + + + + Grid + + + + + Generate message with R+report + + + + + R+dB + + + + + Generate message with 73 + + + + + 73 + + + + + Send this standard (generated) message + + + + + Gen msg + + + + + Send this free-text message (max 13 characters) + + + + + Free msg + + + + + 3 + + + + + Max dB + + + + + CQ AF + + + + + CQ AN + + + + + CQ AS + + + + + CQ EU + + + + + CQ NA + + + + + CQ OC + + + + + CQ SA + + + + + CQ 0 + + + + + CQ 1 + + + + + CQ 2 + + + + + CQ 3 + + + + + CQ 4 + + + + + CQ 5 + + + + + CQ 6 + + + + + CQ 7 + + + + + CQ 8 + + + + + CQ 9 + + + + + Reset + + + + + N List + + + + + N Slots + + + + + + Random + + + + + Call + + + + + S/N (dB) + + + + + Distance + + + + + More CQs + + + + + Percentage of 2-minute sequences devoted to transmitting. + + + + + % + + + + + Tx Pct + + + + + Band Hopping + + + + + Choose bands and times of day for band-hopping. + + + + + Schedule ... + + + + + Upload decoded messages to WSPRnet.org. + + + + + Upload spots + + + + + <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> + + + + + 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. + + + + + Prefer type 1 messages + + + + + No own call decodes + + + + + Transmit during the next 2-minute sequence. + + + + + Tx Next + + + + + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. + + + + + File + + + + + View + + + + + Decode + + + + + Save + + + + + Help + + + + + Mode + + + + + Configurations + + + + + Tools + + + + + Exit + + + + + Configuration + + + + + F2 + + + + + About WSJT-X + + + + + Waterfall + + + + + Open + + + + + Ctrl+O + + + + + Open next in directory + + + + + Decode remaining files in directory + + + + + Shift+F6 + + + + + Delete all *.wav && *.c2 files in SaveDir + + + + + None + + + + + Save all + + + + + Online User Guide + + + + + Keyboard shortcuts + + + + + Special mouse commands + + + + + JT9 + + + + + Save decoded + + + + + Normal + + + + + Deep + + + + + Monitor OFF at startup + + + + + Erase ALL.TXT + + + + + Erase wsjtx_log.adi + + + + + Convert mode to RTTY for logging + + + + + Log dB reports to Comments + + + + + Prompt me to log QSO + + + + + Blank line between decoding periods + + + + + Clear DX Call and Grid after logging + + + + + Display distance in miles + + + + + Double-click on call sets Tx Enable + + + + + + F7 + + + + + Tx disabled after sending 73 + + + + + Runaway Tx watchdog + + + + + Allow multiple instances + + + + + Tx freq locked to Rx freq + + + + + JT65 + + + + + JT9+JT65 + + + + + Tx messages to Rx Frequency window + + + + + Gray1 + + + + + Show DXCC entity and worked B4 status + + + + + Astronomical data + + + + + List of Type 1 prefixes and suffixes + + + + + Settings... + + + + + Local User Guide + + + + + Open log directory + + + + + JT4 + + + + + Message averaging + + + + + Enable averaging + + + + + Enable deep search + + + + + WSPR + + + + + Echo Graph + + + + + F8 + + + + + Echo + + + + + EME Echo mode + + + + + ISCAT + + + + + Fast Graph + + + + + F9 + + + + + &Download Samples ... + + + + + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> + + + + + MSK144 + + + + + QRA64 + + + + + Release Notes + + + + + Enable AP for DX Call + + + + + FreqCal + + + + + Measure reference spectrum + + + + + Measure phase response + + + + + Erase reference spectrum + + + + + Execute frequency calibration cycle + + + + + Equalization tools ... + + + + + WSPR-LF + + + + + Experimental LF/MF mode + + + + + FT8 + + + + + + Enable AP + + + + + Solve for calibration parameters + + + + + Copyright notice + + + + + Shift+F1 + + + + + Fox log + + + + + FT8 DXpedition Mode User Guide + + + + + Reset Cabrillo log ... + + + + + Color highlighting scheme + + + + + Contest Log + + + + + Export Cabrillo log ... + + + + + Quick-Start Guide to WSJT-X 2.0 + + + + + Contest log + + + + + Erase WSPR hashtable + + + + + FT4 + + + + + Rig Control Error + + + + + Do you want to reconfigure the radio interface? + + + + + Error Scanning ADIF Log + + + + + Scanned ADIF log, %1 worked before records created + + + + + Error Loading LotW Users Data + + + + + Error Writing WAV File + + + + + Configurations... + + + + + Error Killing jt9.exe Process + + + + + KillByName return code: %1 + + + + + Error removing "%1" + + + + + Click OK to retry + + + + + + Improper mode + + + + + + File Open Error + + + + + + + + + Cannot open "%1" for append: %2 + + + + + Error saving c2 file + + + + + Error in Sound Input + + + + + Error in Sound Output + + + + + Change Operator + + + + + New operator: + + + + + Status File Error + + + + + + Cannot open "%1" for writing: %2 + + + + + Subprocess Error + + + + + Subprocess failed with exit code %1 + + + + + + Running: %1 +%2 + + + + + Subprocess error + + + + + Reference spectrum saved + + + + + Invalid data in fmt.all at line %1 + + + + + Good Calibration Solution + + + + + <pre>%1%L2 ±%L3 ppm +%4%L5 ±%L6 Hz + +%7%L8 +%9%L10 Hz</pre> + + + + + Delete Calibration Measurements + + + + + The "fmt.all" file will be renamed as "fmt.bak" + + + + + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: + +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." + + + + + No data read from disk. Wrong file format? + + + + + Confirm Delete + + + + + Are you sure you want to delete all *.wav and *.c2 files in "%1"? + + + + + Keyboard Shortcuts + + + + + Special Mouse Commands + + + + + No more files to open. + + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. + + + + + WSPR Guard Band + + + + + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. + + + + + Fox Mode warning + + + + + Should you switch to EU VHF Contest mode? + +To do so, check 'Special operating activity' and +'EU VHF Contest' on the Settings | Advanced tab. + + + + + Should you switch to ARRL Field Day mode? + + + + + Should you switch to RTTY contest mode? + + + + + + + + Add to CALL3.TXT + + + + + Please enter a valid grid locator + + + + + Cannot open "%1" for read/write: %2 + + + + + %1 +is already in CALL3.TXT, do you wish to replace it? + + + + + Warning: DX Call field is empty. + + + + + Log file error + + + + + Cannot open "%1" + + + + + Error sending log to N1MM + + + + + Write returned "%1" + + + + + + + Confirm Erase + + + + + Are you sure you want to erase file ALL.TXT? + + + + + + Confirm Reset + + + + + Are you sure you want to erase your contest log? + + + + + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. + + + + + Cabrillo Log saved + + + + + Are you sure you want to erase file wsjtx_log.adi? + + + + + Are you sure you want to erase the WSPR hashtable? + + + + + VHF features warning + + + + + Tune digital gain + + + + + Transmit digital gain + + + + + Prefixes + + + + + Network Error + + + + + Error: %1 +UDP server %2:%3 + + + + + File Error + + + + + Phase Training Disabled + + + + + Phase Training Enabled + + + + + + Log File Error + + + + + Are you sure you want to clear the QSO queues? + + + + + MessageAveraging + + + + Message Averaging + + + + + UTC Sync DT Freq + + + + + Modes + + + + Mode + + + + + MultiSettings + + + Default + + + + + MultiSettings::impl + + + &Switch To + + + + + &Clone + + + + + Clone &Into ... + + + + + R&eset + + + + + &Rename ... + + + + + &Delete + + + + + Clone Into Configuration + + + + + Confirm overwrite of all values for configuration "%1" with values from "%2"? + + + + + Reset Configuration + + + + + Confirm reset to default values for configuration "%1"? + + + + + Delete Configuration + + + + + Confirm deletion of configuration "%1"? + + + + + NameDialog + + + New Configuration Name + + + + + Old name: + + + + + &New name: + + + + + OmniRigTransceiver + + + OmniRig: unrecognized mode + + + + + Failed to start OmniRig COM server + + + + + + OmniRig: don't know how to set rig frequency + + + + + + OmniRig: timeout waiting for update from rig + + + + + OmniRig COM/OLE error: %1 at %2: %3 (%4) + + + + + PollingTransceiver + + + Unexpected rig error + + + + + QObject + + + Invalid rig name - \ & / not allowed + + + + + User Defined + + + + + Failed to open LotW users CSV file: '%1' + + + + + OOB + + + + + Too many colours in palette. + + + + + Error reading waterfall palette file "%1:%2" too many colors. + + + + + Error reading waterfall palette file "%1:%2" invalid triplet. + + + + + Error reading waterfall palette file "%1:%2" invalid color. + + + + + Error opening waterfall palette file "%1": %2. + + + + + Error writing waterfall palette file "%1": %2. + + + + + RemoteFile + + + + + + + + File System Error + + + + + Cannot rename file: +"%1" +to: "%2" +Error(%3): %4 + + + + + Cannot delete file: +"%1" + + + + + + + Network Error + + + + + Too many redirects: %1 + + + + + Redirect not followed: %1 + + + + + Cannot commit changes to: +"%1" + + + + + Cannot open file: +"%1" +Error(%2): %3 + + + + + Cannot make path: +"%1" + + + + + Cannot write to file: +"%1" +Error(%2): %3 + + + + + SampleDownloader::impl + + + Download Samples + + + + + Input Error + + + + + Invalid URL format + + + + + SoundInput + + + An error opening the audio input device has occurred. + + + + + An error occurred during read from the audio input device. + + + + + Audio data not being fed to the audio input device fast enough. + + + + + Non-recoverable error, audio input device not usable at this time. + + + + + Requested input audio format is not valid. + + + + + Requested input audio format is not supported on device. + + + + + Failed to initialize audio sink device + + + + + Idle + + + + + Receiving + + + + + Suspended + + + + + Interrupted + + + + + Error + + + + + Stopped + + + + + SoundOutput + + + An error opening the audio output device has occurred. + + + + + An error occurred during write to the audio output device. + + + + + Audio data not being fed to the audio output device fast enough. + + + + + Non-recoverable error, audio output device not usable at this time. + + + + + Requested output audio format is not valid. + + + + + Requested output audio format is not supported on device. + + + + + Idle + + + + + Sending + + + + + Suspended + + + + + Interrupted + + + + + Error + + + + + Stopped + + + + + StationDialog + + + Add Station + + + + + &Band: + + + + + &Offset (MHz): + + + + + &Antenna: + + + + + StationList::impl + + + Band name + + + + + Frequency offset + + + + + Antenna description + + + + + Band + + + + + Offset + + + + + Antenna Description + + + + + TransceiverBase + + + Unexpected rig error + + + + + WideGraph + + + Dialog + + + + + Controls + + + + + Spectrum gain + + + + + Palette + + + + + <html><head/><body><p>Enter definition for a new color palette.</p></body></html> + + + + + Adjust... + + + + + Waterfall gain + + + + + <html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html> + + + + + % + + + + + Spec + + + + + <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> + + + + + Flatten + + + + + <html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html> + + + + + Ref Spec + + + + + Smoothing of Linear Average spectrum + + + + + Smooth + + + + + Compression factor for frequency scale + + + + + Bins/Pixel + + + + + Select waterfall palette + + + + + <html><head/><body><p>Select data for spectral display</p></body></html> + + + + + Current + + + + + Cumulative + + + + + Linear Avg + + + + + Reference + + + + + <html><head/><body><p>Frequency at left edge of waterfall</p></body></html> + + + + + Hz + + + + + Start + + + + + <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> + + + + + JT9 + + + + + JT65 + + + + + Number of FFTs averaged (controls waterfall scrolling rate) + + + + + N Avg + + + + + Waterfall zero + + + + + Spectrum zero + + + + + Wide Graph + + + + + + Read Palette + + + + + configuration_dialog + + + Settings + + + + + Genera&l + + + + + General station details and settings. + + + + + Station Details + + + + + My C&all: + + + + + Station callsign. + + + + + M&y Grid: + + + + + <html><head/><body><p>Maidenhead locator, preferably 6 characters.</p></body></html> + + + + + Check to allow grid changes from external programs + + + + + AutoGrid + + + + + IARU Region: + + + + + <html><head/><body><p>Select your IARU region.</p></body></html> + + + + + Message generation for type 2 compound callsign holders: + + + + + <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> + + + + + Full call in Tx1 + + + + + Full call in Tx3 + + + + + Full call in Tx5 only + + + + + Display + + + + + Show outgoing transmitted messages in the Rx frequency window. + + + + + &Tx messages to Rx frequency window + + + + + Show if decoded stations are new DXCC entities or worked before. + + + + + Show &DXCC, grid, and worked-before status + + + + + <html><head/><body><p>Check to have decodes for a new period start at the top of the Band Activity window and not scroll off the top when the window is full.</p><p>This is to aid selecting decodes to double-click while decoding is still in progress. Use the Band Activity vertical scroll bar to reveal decodes past the bottom of the window.</p></body></html> + + + + + Start new period decodes at top + + + + + Show principal prefix instead of country name + + + + + Set the font characteristics for the application. + + + + + Font... + + + + + Set the font characteristics for the Band Activity and Rx Frequency areas. + + + + + Decoded Text Font... + + + + + Include a separator line between periods in the band activity window. + + + + + &Blank line between decoding periods + + + + + Show distance to DX station in miles rather than kilometers. + + + + + Display dista&nce in miles + + + + + Behavior + + + + + Decode after EME delay + + + + + Tx watchdog: + + + + + <html><head/><body><p>Number of minutes before unattended transmissions are aborted</p></body></html> + + + + + Disabled + + + + + minutes + + + + + Enable VHF/UHF/Microwave features + + + + + Single decode + + + + + <html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html> + + + + + Allow Tx frequency changes while transmitting + + + + + Don't start decoding until the monitor button is clicked. + + + + + Mon&itor off at startup + + + + + <html><head/><body><p>Check this if you wish to automatically return to the last monitored frequency when monitor is enabled, leave it unchecked if you wish to have the current rig frequency maintained.</p></body></html> + + + + + Monitor returns to last used frequency + + + + + Alternate F1-F6 bindings + + + + + Turns off automatic transmissions after sending a 73 or any other free +text message. + + + + + Di&sable Tx after sending 73 + + + + + Send a CW ID after every 73 or free text message. + + + + + CW ID a&fter 73 + + + + + Periodic CW ID Inter&val: + + + + + Send a CW ID periodically every few minutes. +This might be required under your countries licence regulations. +It will not interfere with other users as it is always sent in the +quiet period when decoding is done. + + + + + Automatic transmission mode. + + + + + Doubl&e-click on call sets Tx enable + + + + + Calling CQ forces Call 1st + + + + + &Radio + + + + + Radio interface configuration settings. + + + + + Settings that control your CAT interface. + + + + + CAT Control + + + + + + Port: + + + + + Serial port used for CAT control. + + + + + Serial Port Parameters + + + + + Baud Rate: + + + + + Serial port data rate which must match the setting of your radio. + + + + + 1200 + + + + + 2400 + + + + + 4800 + + + + + 9600 + + + + + 19200 + + + + + 38400 + + + + + 57600 + + + + + 115200 + + + + + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> + + + + + Data Bits + + + + + D&efault + + + + + Se&ven + + + + + E&ight + + + + + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> + + + + + Stop Bits + + + + + + Default + + + + + On&e + + + + + T&wo + + + + + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> + + + + + Handshake + + + + + &None + + + + + Software flow control (very rare on CAT interfaces). + + + + + XON/XOFF + + + + + Flow control using the RTS and CTS RS-232 control lines +not often used but some radios have it as an option and +a few, particularly some Kenwood rigs, require it). + + + + + &Hardware + + + + + Special control of CAT port control lines. + + + + + Force Control Lines + + + + + + High + + + + + + Low + + + + + DTR: + + + + + RTS: + + + + + How this program activates the PTT on your radio + + + + + PTT Method + + + + + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> + + + + + VO&X + + + + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> + + + + + &DTR + + + + + Some radios support PTT via CAT commands, +use this option if your radio supports it and you have no +other hardware interface for PTT. + + + + + C&AT + + + + + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> + + + + + R&TS + + + + + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> + + + + + Modulation mode selected on radio. + + + + + Mode + + + + + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> + + + + + US&B + + + + + Don't allow the program to set the radio mode +(not recommended but use if the wrong mode +or bandwidth is selected). + + + + + + None + + + + + If this is available then it is usually the correct mode for this program. + + + + + Data/P&kt + + + + + Some radios can select the audio input using a CAT command, +this setting allows you to select which audio input will be used +(if it is available then generally the Rear/Data option is best). + + + + + Transmit Audio Source + + + + + Rear&/Data + + + + + &Front/Mic + + + + + Rig: + + + + + Poll Interval: + + + + + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> + + + + + s + + + + + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> + + + + + Test CAT + + + + + Attempt to activate the transmitter. +Click again to deactivate. Normally no power should be +output since there is no audio being generated at this time. +Check that any Tx indication on your radio and/or your +radio interface behave as expected. + + + + + Test PTT + + + + + Split Operation + + + + + Fake It + + + + + Rig + + + + + A&udio + + + + + Audio interface settings + + + + + Souncard + + + + + Soundcard + + + + + Select the audio CODEC to use for transmitting. +If this is your default device for system sounds then +ensure that all system sounds are disabled otherwise +you will broadcast any systems sounds generated during +transmitting periods. + + + + + Select the audio CODEC to use for receiving. + + + + + &Input: + + + + + Select the channel to use for receiving. + + + + + + Mono + + + + + + Left + + + + + + Right + + + + + + Both + + + + + Select the audio channel used for transmission. +Unless you have multiple radios connected on different +channels; then you will usually want to select mono or +both here. + + + + + Ou&tput: + + + + + + Save Directory + + + + + Loc&ation: + + + + + Path to which .WAV files are saved. + + + + + + TextLabel + + + + + Click to select a different save directory for .WAV files. + + + + + S&elect + + + + + + AzEl Directory + + + + + Location: + + + + + Select + + + + + Power Memory By Band + + + + + Remember power settings by band + + + + + Enable power memory during transmit + + + + + Transmit + + + + + Enable power memory during tuning + + + + + Tune + + + + + Tx &Macros + + + + + Canned free text messages setup + + + + + &Add + + + + + &Delete + + + + + Drag and drop items to rearrange order +Right click for item specific actions +Click, SHIFT+Click and, CRTL+Click to select items + + + + + Reportin&g + + + + + Reporting and logging settings + + + + + Logging + + + + + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. + + + + + Promp&t me to log QSO + + + + + Op Call: + + + + + Some logging programs will not accept the type of reports +saved by this program. +Check this option to save the sent and received reports in the +comments field. + + + + + d&B reports to comments + + + + + Check this option to force the clearing of the DX Call +and DX Grid fields when a 73 or free text message is sent. + + + + + Clear &DX call and grid after logging + + + + + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> + + + + + Con&vert mode to RTTY + + + + + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> + + + + + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> + + + + + Log automatically (contesting only) + + + + + Network Services + + + + + The program can send your station details and all +decoded signals as spots to the http://pskreporter.info web site. +This is used for reverse beacon analysis which is very useful +for assessing propagation and system performance. + + + + + Enable &PSK Reporter Spotting + + + + + UDP Server + + + + + UDP Server: + + + + + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> + + + + + UDP Server port number: + + + + + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> + + + + + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> + + + + + Accept UDP requests + + + + + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> + + + + + Notify on accepted UDP request + + + + + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> + + + + + Accepted UDP request restores window + + + + + Secondary UDP Server (deprecated) + + + + + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> + + + + + Enable logged contact ADIF broadcast + + + + + Server name or IP address: + + + + + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> + + + + + Server port number: + + + + + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> + + + + + Frequencies + + + + + Default frequencies and band specific station details setup + + + + + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> + + + + + Frequency Calibration + + + + + Slope: + + + + + ppm + + + + + Intercept: + + + + + Hz + + + + + Working Frequencies + + + + + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> + + + + + Station Information + + + + + Items may be edited. +Right click for insert and delete options. + + + + + Colors + + + + + Decode Highlightling + + + + + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> + + + + + Rescan ADIF Log + + + + + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> + + + + + Reset Highlighting + + + + + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> + + + + + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> + + + + + Highlight by Mode + + + + + Include extra WAE entities + + + + + Check to for grid highlighting to only apply to unworked grid fields + + + + + Only grid Fields sought + + + + + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> + + + + + Logbook of the World User Validation + + + + + Users CSV file URL: + + + + + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> + + + + + https://lotw.arrl.org/lotw-user-activity.csv + + + + + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> + + + + + Fetch Now + + + + + Age of last upload less than: + + + + + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> + + + + + days + + + + + Advanced + + + + + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> + + + + + JT65 VHF/UHF/Microwave decoding parameters + + + + + Random erasure patterns: + + + + + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> + + + + + Aggressive decoding level: + + + + + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> + + + + + Two-pass decoding + + + + + Special operating activity: Generation of FT4, FT8, and MSK144 messages + + + + + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> + + + + + Hound + + + + + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> + + + + + NA VHF Contest + + + + + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> + + + + + Fox + + + + + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> + + + + + EU VHF Contest + + + + + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> + + + + + RTTY Roundup messages + + + + + RTTY RU Exch: + + + + + NJ + + + + + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> + + + + + ARRL Field Day + + + + + FD Exch: + + + + + 6A SNJ + + + + + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> + + + + + WW Digi Contest + + + + + Miscellaneous + + + + + Degrade S/N of .wav file: + + + + + + For offline sensitivity tests + + + + + dB + + + + + Receiver bandwidth: + + + + + Hz + + + + + Tx delay: + + + + + Minimum delay between assertion of PTT and start of Tx audio. + + + + + s + + + + + Tone spacing + + + + + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> + + + + + x 2 + + + + + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> + + + + + x 4 + + + + + Waterfall spectra + + + + + Low sidelobes + + + + + Most sensitive + + + + + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> + + + + + main + + + + Fatal error + + + + + + Unexpected fatal error + + + + + Where <rig-name> is for multi-instance support. + + + + + rig-name + + + + + Where <configuration> is an existing one. + + + + + configuration + + + + + Writable files in test location. Use with caution, for testing only. + + + + + Command line error + + + + + Command line help + + + + + Application version + + + + + Another instance may be running + + + + + try to remove stale lock file? + + + + + Failed to create a temporary directory + + + + + + Path: "%1" + + + + + Failed to create a usable temporary directory + + + + + Another application may be locking the directory + + + + + Failed to create data directory + + + + + path: "%1" + + + + + Shared memory error + + + + + Unable to create shared memory segment + + + + + wf_palette_design_dialog + + + Palette Designer + + + + + <html><head/><body><p>Double click a color to edit it.</p><p>Right click to insert or delete colors.</p><p>Colors at the top represent weak signals</p><p>and colors at the bottom represent strong</p><p>signals. You can have up to 256 colors.</p></body></html> + + + + diff --git a/translations/wsjtx_en_GB.ts b/translations/wsjtx_en_GB.ts index 261d4486d..2533ca644 100644 --- a/translations/wsjtx_en_GB.ts +++ b/translations/wsjtx_en_GB.ts @@ -194,7 +194,7 @@ CPlotter - + &Set Rx && Tx Offset @@ -202,37 +202,37 @@ CabrilloLog - + Freq(MHz) - + Mode - + Date & Time(UTC) - + Call - + Sent - + Rcvd - + Band @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete - - + + &Insert ... - + Failed to create save directory - + path: "%1% - + Failed to create samples directory - + path: "%1" - + &Load ... - + &Save as ... - + &Merge ... - + &Reset - + Serial Port: - + Serial port used for CAT control - + Network Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -447,12 +447,12 @@ Formats: - + USB Device: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -460,152 +460,152 @@ Format: - + Invalid audio input device - + Invalid audio out device - + Invalid PTT method - + Invalid PTT port - - + + Invalid Contest Exchange - + You must input a valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting - + Reset all decode highlighting and priorities to default values - + WSJT-X Decoded Text Font Chooser - + Load Working Frequencies - - - + + + Frequency files (*.qrg);;All files (*.*) - + Replace Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - + Merge Working Frequencies - - - + + + Not a valid frequencies file - + Incorrect file magic - + Version is too new - + Contents corrupt - + Save Working Frequencies - + Only Save Selected Working Frequencies - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. - + Reset Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with default ones? - + Save Directory - + AzEl Directory - + Rig control error - + Failed to open connection to rig - + Rig failure @@ -613,86 +613,86 @@ Format: DXLabSuiteCommanderTransceiver - + Failed to connect to DX Lab Suite Commander - + DX Lab Suite Commander didn't respond correctly reading frequency: - + DX Lab Suite Commander sent an unrecognised TX state: - + DX Lab Suite Commander didn't respond correctly polling TX status: - + DX Lab Suite Commander rig did not respond to PTT: - + DX Lab Suite Commander didn't respond correctly polling frequency: - + DX Lab Suite Commander didn't respond correctly polling TX frequency: - + DX Lab Suite Commander sent an unrecognised split state: - + DX Lab Suite Commander didn't respond correctly polling split status: - + DX Lab Suite Commander sent an unrecognised mode: " - + DX Lab Suite Commander didn't respond correctly polling mode: - + DX Lab Suite Commander send command failed - + DX Lab Suite Commander failed to send command "%1": %2 - + DX Lab Suite Commander send command "%1" read reply failed: %2 - + DX Lab Suite Commander retries exhausted sending command "%1" - + DX Lab Suite Commander sent an unrecognized frequency @@ -780,7 +780,7 @@ Format: Dialog - + Gray time: @@ -948,7 +948,7 @@ Error: %2 - %3 EmulateSplitTransceiver - + Emulated split mode requires rig to be in simplex mode @@ -1206,32 +1206,32 @@ Error: %2 - %3 FoxLog::impl - + Date & Time(UTC) - + Call - + Grid - + Sent - + Rcvd - + Band @@ -1271,42 +1271,42 @@ Error: %2 - %3 - + &Export ADIF ... - + Export ADIF Log File - + ADIF Log (*.adi) - + Export ADIF File Error - + Cannot open "%1" for writing: %2 - + &Reset ... - + Confirm Reset - + Are you sure you want to erase file FoxQSO.txt and start a new Fox log? @@ -1364,83 +1364,83 @@ Error: %2 - %3 HRDTransceiver - - + + Failed to connect to Ham Radio Deluxe - + Failed to open file "%1": %2. - - + + Ham Radio Deluxe: no rig found - + Ham Radio Deluxe: rig doesn't support mode - + Ham Radio Deluxe: sent an unrecognised mode - + Ham Radio Deluxe: item not found in %1 dropdown list - + Ham Radio Deluxe: button not available - + Ham Radio Deluxe didn't respond as expected - + Ham Radio Deluxe: rig has disappeared or changed - + Ham Radio Deluxe send command "%1" failed %2 - - + + Ham Radio Deluxe: failed to write command "%1" - + Ham Radio Deluxe sent an invalid reply to our command "%1" - + Ham Radio Deluxe failed to reply to command "%1" %2 - + Ham Radio Deluxe retries exhausted sending command "%1" - + Ham Radio Deluxe didn't respond to command "%1" as expected @@ -1448,178 +1448,178 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error - + Hamlib settings file error: %1 at character offset %2 - + Hamlib settings file error: top level must be a JSON object - + Hamlib settings file error: config must be a JSON object - + Unsupported CAT type - + Hamlib error: %1 while %2 - + opening connection to rig - + getting current frequency - + getting current mode - - + + exchanging VFOs - - + + getting other VFO frequency - + getting other VFO mode - + setting current VFO - + getting frequency - + getting mode - - + + getting current VFO - - - - + + + + getting current VFO frequency - - - - - - + + + + + + setting frequency - - - - + + + + getting current VFO mode - - - - - + + + + + setting current VFO mode - - + + setting/unsetting split mode - - + + setting split mode - + setting split TX frequency and mode - + setting split TX frequency - + getting split TX VFO mode - + setting split TX VFO mode - + getting PTT state - + setting PTT on - + setting PTT off - + setting a configuration item - + getting a configuration item @@ -1775,38 +1775,38 @@ Error: %2 - %3 LotWUsers::impl - + Network Error - SSL/TLS support not installed, cannot fetch: '%1' - + Network Error - Too many redirects: '%1' - + Network Error: %1 - + File System Error - Cannot commit changes to: "%1" - + File System Error - Cannot open file: "%1" Error(%2): %3 - + File System Error - Cannot write to file: "%1" Error(%2): %3 @@ -3400,156 +3400,156 @@ list. The list can be maintained in Settings (F2). - + Rig Control Error - + Do you want to reconfigure the radio interface? - + Error Scanning ADIF Log - + Scanned ADIF log, %1 worked before records created - + Error Loading LotW Users Data - + Error Writing WAV File - + Configurations... - + Error Killing jt9.exe Process - + KillByName return code: %1 - + Error removing "%1" - + Click OK to retry - - + + Improper mode - - + + File Open Error - - - - - + + + + + Cannot open "%1" for append: %2 - + Error saving c2 file - + Error in Sound Input - + Error in Sound Output - + Change Operator - + New operator: - + Status File Error - - + + Cannot open "%1" for writing: %2 - + Subprocess Error - + Subprocess failed with exit code %1 - - + + Running: %1 %2 - + Subprocess error - + Reference spectrum saved - + Invalid data in fmt.all at line %1 - + Good Calibration Solution - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3558,228 +3558,236 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements - + The "fmt.all" file will be renamed as "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: -"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2019 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? - + Confirm Delete - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + Keyboard Shortcuts - + Special Mouse Commands - + No more files to open. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + + Should you switch to EU VHF Contest mode? + +To do so, check 'Special operating activity' and +'EU VHF Contest' on the Settings | Advanced tab. + + + + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + VHF features warning - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -3818,62 +3826,62 @@ UDP server %2:%3 MultiSettings::impl - + &Switch To - + &Clone - + Clone &Into ... - + R&eset - + &Rename ... - + &Delete - + Clone Into Configuration - + Confirm overwrite of all values for configuration "%1" with values from "%2"? - + Reset Configuration - + Confirm reset to default values for configuration "%1"? - + Delete Configuration - + Confirm deletion of configuration "%1"? @@ -3899,29 +3907,29 @@ UDP server %2:%3 OmniRigTransceiver - + OmniRig: unrecognized mode - + Failed to start OmniRig COM server - - + + OmniRig: don't know how to set rig frequency - - + + OmniRig: timeout waiting for update from rig - + OmniRig COM/OLE error: %1 at %2: %3 (%4) @@ -3929,7 +3937,7 @@ UDP server %2:%3 PollingTransceiver - + Unexpected rig error @@ -3947,7 +3955,7 @@ UDP server %2:%3 - + Failed to open LotW users CSV file: '%1' @@ -4078,67 +4086,67 @@ Error(%2): %3 SoundInput - + An error opening the audio input device has occurred. - + An error occurred during read from the audio input device. - + Audio data not being fed to the audio input device fast enough. - + Non-recoverable error, audio input device not usable at this time. - + Requested input audio format is not valid. - + Requested input audio format is not supported on device. - + Failed to initialize audio sink device - + Idle - + Receiving - + Suspended - + Interrupted - + Error - + Stopped @@ -4146,62 +4154,62 @@ Error(%2): %3 SoundOutput - + An error opening the audio output device has occurred. - + An error occurred during write to the audio output device. - + Audio data not being fed to the audio output device fast enough. - + Non-recoverable error, audio output device not usable at this time. - + Requested output audio format is not valid. - + Requested output audio format is not supported on device. - + Idle - + Sending - + Suspended - + Interrupted - + Error - + Stopped @@ -4265,7 +4273,7 @@ Error(%2): %3 TransceiverBase - + Unexpected rig error @@ -4971,11 +4979,6 @@ a few, particularly some Kenwood rigs, require it). VO&X - - - <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to inteface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> - - &DTR @@ -4993,11 +4996,6 @@ other hardware interface for PTT. C&AT - - - <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to inteface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> - - R&TS @@ -5041,11 +5039,6 @@ or bandwidth is selected). None - - - If this is availabe then it is usually the correct mode for this program. - - Data/P&kt @@ -5577,310 +5570,345 @@ Right click for insert and delete options. - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> - + Reset Highlighting - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> - + Highlight by Mode - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> + + + + + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> + + + + + If this is available then it is usually the correct mode for this program. + + + + Rescan ADIF Log - + Include extra WAE entities - + + Check to for grid highlighting to only apply to unworked grid fields + + + + + Only grid Fields sought + + + + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> - + Logbook of the World User Validation - + Users CSV file URL: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> - + https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> - + Fetch Now - + Age of last upload less than: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> - + days - + Advanced - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters - + Random erasure patterns: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> - + Aggressive decoding level: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> - + Two-pass decoding - + Special operating activity: Generation of FT4, FT8, and MSK144 messages - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> - + Hound - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> - + NA VHF Contest - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> - + Fox - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> - + EU VHF Contest - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> - + RTTY Roundup messages - + RTTY RU Exch: - + NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> - + ARRL Field Day - + FD Exch: - + 6A SNJ - Miscellaneous + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> - - Degrade S/N of .wav file: + + WW Digi Contest - - For offline sensitivity tests + Miscellaneous - - dB + + Degrade S/N of .wav file: + + For offline sensitivity tests + + + + + dB + + + + Receiver bandwidth: - + Hz - + Tx delay: - + Minimum delay between assertion of PTT and start of Tx audio. - + s - + Tone spacing - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> - + x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> - + x 4 - + Waterfall spectra - + Low sidelobes - + Most sensitive - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> @@ -5889,13 +5917,13 @@ Right click for insert and delete options. main - + Fatal error - + Unexpected fatal error diff --git a/translations/wsjtx_es_ES.ts b/translations/wsjtx_es_ES.ts new file mode 100644 index 000000000..2c962b9cf --- /dev/null +++ b/translations/wsjtx_es_ES.ts @@ -0,0 +1,6035 @@ + + + + + AbstractLogWindow + + + &Delete ... + + + + + AbstractLogWindow::impl + + + Confirm Delete + + + + + Are you sure you want to delete the %n selected QSO(s) from the log + + + + + + + + Astro + + + + Doppler tracking + + + + + <html><head/><body><p>One station does all Doppler shift correction, their QSO partner receives and transmits on the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + + + + + Full Doppler to DX Grid + + + + + <html><head/><body><p>Transmit takes place on sked frequency and receive frequency is corrected for own echoes. </p><p>This mode can be used for calling CQ, or when using Echo mode.</p></body></html> + + + + + Own Echo + + + + + <html><head/><body><p>Both stations correct for Doppler shift such that they would be heard on the moon at the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p><p>Use this option also for Echo mode.</p></body></html> + + + + + Constant frequency on Moon + + + + + <html><head/><body><p>DX station announces their TX Freq, which is entered as the Sked Freq. Correction applied to RX and TX so you appear on the DX's station's own echo Freq.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + + + + + On DX Echo + + + + + <html><head/><body><p>Tune radio manually and select this mode to put your echo on the same frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + + + + + Call DX + + + + + <html><head/><body><p>No Doppler shift correction is applied. This may be used when the QSO partner does full Doppler correction to your grid square.</p></body></html> + + + + + None + + + + + Sked frequency + + + + + + 0 + + + + + Rx: + + + + + Tx: + + + + + <html><head/><body><p>Press and hold the CTRL key to adjust the sked frequency manually with the rig's VFO dial or enter frequency directly into the band entry field on the main window.</p></body></html> + + + + + Astro Data + + + + + Astronomical Data + + + + + Doppler Tracking Error + + + + + Split operating is required for Doppler tracking + + + + + Go to "Menu->File->Settings->Radio" to enable split operation + + + + + Bands + + + Band name + + + + + Lower frequency limit + + + + + Upper frequency limit + + + + + Band + + + + + Lower Limit + + + + + Upper Limit + + + + + CAboutDlg + + + About WSJT-X + + + + + OK + + + + + CPlotter + + + &Set Rx && Tx Offset + + + + + CabrilloLog + + + Freq(MHz) + + + + + Mode + + + + + Date & Time(UTC) + + + + + Call + + + + + Sent + + + + + Rcvd + + + + + Band + + + + + CabrilloLogWindow + + + Contest Log + + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + + + + + Right-click here for available actions. + + + + + CallsignDialog + + + Callsign + + + + + ColorHighlighting + + + + + + + + + + + + + + + + + + K1ABC + + + + + CQ in message + + + + + My Call in message + + + + + Transmitted message + + + + + New DXCC + + + + + New Grid + + + + + New DXCC on Band + + + + + New Call + + + + + New Grid on Band + + + + + New Call on Band + + + + + Uploads to LotW + + + + + New Continent + + + + + New Continent on Band + + + + + New CQ Zone + + + + + New CQ Zone on Band + + + + + New ITU Zone + + + + + New ITU Zone on Band + + + + + Configuration::impl + + + + + &Delete + + + + + + &Insert ... + + + + + Failed to create save directory + + + + + path: "%1% + + + + + Failed to create samples directory + + + + + path: "%1" + + + + + &Load ... + + + + + &Save as ... + + + + + &Merge ... + + + + + &Reset + + + + + Serial Port: + + + + + Serial port used for CAT control + + + + + Network Server: + + + + + Optional hostname and port of network service. +Leave blank for a sensible default on this machine. +Formats: + hostname:port + IPv4-address:port + [IPv6-address]:port + + + + + USB Device: + + + + + Optional device identification. +Leave blank for a sensible default for the rig. +Format: + [VID[:PID[:VENDOR[:PRODUCT]]]] + + + + + Invalid audio input device + + + + + Invalid audio out device + + + + + Invalid PTT method + + + + + Invalid PTT port + + + + + + Invalid Contest Exchange + + + + + You must input a valid ARRL Field Day exchange + + + + + You must input a valid ARRL RTTY Roundup exchange + + + + + Reset Decode Highlighting + + + + + Reset all decode highlighting and priorities to default values + + + + + WSJT-X Decoded Text Font Chooser + + + + + Load Working Frequencies + + + + + + + Frequency files (*.qrg);;All files (*.*) + + + + + Replace Working Frequencies + + + + + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? + + + + + Merge Working Frequencies + + + + + + + Not a valid frequencies file + + + + + Incorrect file magic + + + + + Version is too new + + + + + Contents corrupt + + + + + Save Working Frequencies + + + + + Only Save Selected Working Frequencies + + + + + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. + + + + + Reset Working Frequencies + + + + + Are you sure you want to discard your current working frequencies and replace them with default ones? + + + + + Save Directory + + + + + AzEl Directory + + + + + Rig control error + + + + + Failed to open connection to rig + + + + + Rig failure + + + + + DXLabSuiteCommanderTransceiver + + + Failed to connect to DX Lab Suite Commander + + + + + + DX Lab Suite Commander didn't respond correctly reading frequency: + + + + + DX Lab Suite Commander sent an unrecognised TX state: + + + + + DX Lab Suite Commander didn't respond correctly polling TX status: + + + + + DX Lab Suite Commander rig did not respond to PTT: + + + + + DX Lab Suite Commander didn't respond correctly polling frequency: + + + + + DX Lab Suite Commander didn't respond correctly polling TX frequency: + + + + + DX Lab Suite Commander sent an unrecognised split state: + + + + + DX Lab Suite Commander didn't respond correctly polling split status: + + + + + DX Lab Suite Commander sent an unrecognised mode: " + + + + + DX Lab Suite Commander didn't respond correctly polling mode: + + + + + DX Lab Suite Commander send command failed + + + + + + DX Lab Suite Commander failed to send command "%1": %2 + + + + + + DX Lab Suite Commander send command "%1" read reply failed: %2 + + + + + + DX Lab Suite Commander retries exhausted sending command "%1" + + + + + DX Lab Suite Commander sent an unrecognized frequency + + + + + DecodeHighlightingListView + + + &Foreground color ... + + + + + Choose %1 Foreground Color + + + + + &Unset foreground color + + + + + &Background color ... + + + + + Choose %1 Background Color + + + + + U&nset background color + + + + + &Reset this item to defaults + + + + + DecodeHighlightingModel + + + Highlight Type + + + + + Designer + + + &Delete + + + + + &Insert ... + + + + + Insert &after ... + + + + + Import Palette + + + + + + Palettes (*.pal) + + + + + Export Palette + + + + + Dialog + + + Gray time: + + + + + Directory + + + + URL Error + + + + + + Invalid URL: +"%1" + + + + + + + + + + + JSON Error + + + + + Contents file syntax error %1 at character offset %2 + + + + + Contents file top level must be a JSON array + + + + + File System Error + + + + + Failed to open "%1" +Error: %2 - %3 + + + + + Contents entries must be a JSON array + + + + + Contents entries must have a valid type + + + + + Contents entries must have a valid name + + + + + Contents entries must be JSON objects + + + + + Contents directories must be relative and within "%1" + + + + + Network Error + + + + + Authentication required + + + + + DisplayText + + + &Erase + + + + + EchoGraph + + + + Echo Graph + + + + + <html><head/><body><p>Compression factor for frequency scale</p></body></html> + + + + + Bins/Pixel + + + + + Gain + + + + + <html><head/><body><p>Echo spectrum gain</p></body></html> + + + + + Zero + + + + + <html><head/><body><p>Echo spectrum zero</p></body></html> + + + + + <html><head/><body><p>Smoothing of echo spectrum</p></body></html> + + + + + Smooth + + + + + <html><head/><body><p>Number of echo transmissions averaged</p></body></html> + + + + + N: 0 + + + + + <html><head/><body><p>Click to cycle through a sequence of colors and line widths.</p></body></html> + + + + + Colors + + + + + EmulateSplitTransceiver + + + Emulated split mode requires rig to be in simplex mode + + + + + EqualizationToolsDialog::impl + + + Phase + + + + + + Freq (Hz) + + + + + Phase (Π) + + + + + Delay (ms) + + + + + Measured + + + + + Proposed + + + + + Current + + + + + Group Delay + + + + + Amplitude + + + + + Relative Power (dB) + + + + + Reference + + + + + Phase ... + + + + + Refresh + + + + + Discard Measured + + + + + ExistingNameDialog + + + Configuration to Clone From + + + + + &Source Configuration Name: + + + + + ExportCabrillo + + + Dialog + + + + + Location: + + + + + SNJ + + + + + Contest: + + + + + ARRL-RTTY + + + + + Callsign: + + + + + Category-Operator: + + + + + SINGLE-OP + + + + + Category-Transmitter: + + + + + ONE + + + + + Category-Power: + + + + + LOW + + + + + Category-Assisted: + + + + + NON-ASSISTED + + + + + Category-Band: + + + + + ALL + + + + + Claimed-Score: + + + + + Operators: + + + + + Club: + + + + + Name: + + + + + + Address: + + + + + Save Log File + + + + + Cabrillo Log (*.cbr) + + + + + Cannot open "%1" for writing: %2 + + + + + Export Cabrillo File Error + + + + + FastGraph + + + + Fast Graph + + + + + Waterfall gain + + + + + Waterfall zero + + + + + Spectrum zero + + + + + <html><head/><body><p>Set reasonable levels for gain and zero sliders.</p></body></html> + + + + + Auto Level + + + + + FoxLog::impl + + + Date & Time(UTC) + + + + + Call + + + + + Grid + + + + + Sent + + + + + Rcvd + + + + + Band + + + + + FoxLogWindow + + + Fox Log + + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + + + + + Callers: + + + + + + + N + + + + + In progress: + + + + + Rate: + + + + + &Export ADIF ... + + + + + Export ADIF Log File + + + + + ADIF Log (*.adi) + + + + + Export ADIF File Error + + + + + Cannot open "%1" for writing: %2 + + + + + &Reset ... + + + + + Confirm Reset + + + + + Are you sure you want to erase file FoxQSO.txt and start a new Fox log? + + + + + FrequencyDialog + + + Add Frequency + + + + + IARU &Region: + + + + + &Mode: + + + + + &Frequency (MHz): + + + + + FrequencyList_v2 + + + + IARU Region + + + + + + Mode + + + + + + Frequency + + + + + + Frequency (MHz) + + + + + HRDTransceiver + + + + Failed to connect to Ham Radio Deluxe + + + + + + Failed to open file "%1": %2. + + + + + + Ham Radio Deluxe: no rig found + + + + + Ham Radio Deluxe: rig doesn't support mode + + + + + Ham Radio Deluxe: sent an unrecognised mode + + + + + Ham Radio Deluxe: item not found in %1 dropdown list + + + + + Ham Radio Deluxe: button not available + + + + + Ham Radio Deluxe didn't respond as expected + + + + + Ham Radio Deluxe: rig has disappeared or changed + + + + + Ham Radio Deluxe send command "%1" failed %2 + + + + + + + Ham Radio Deluxe: failed to write command "%1" + + + + + Ham Radio Deluxe sent an invalid reply to our command "%1" + + + + + Ham Radio Deluxe failed to reply to command "%1" %2 + + + + + + Ham Radio Deluxe retries exhausted sending command "%1" + + + + + Ham Radio Deluxe didn't respond to command "%1" as expected + + + + + HamlibTransceiver + + + + Hamlib initialisation error + + + + + Hamlib settings file error: %1 at character offset %2 + + + + + Hamlib settings file error: top level must be a JSON object + + + + + Hamlib settings file error: config must be a JSON object + + + + + Unsupported CAT type + + + + + Hamlib error: %1 while %2 + + + + + opening connection to rig + + + + + getting current frequency + + + + + getting current mode + + + + + + exchanging VFOs + + + + + + getting other VFO frequency + + + + + getting other VFO mode + + + + + setting current VFO + + + + + getting frequency + + + + + getting mode + + + + + + getting current VFO + + + + + + + + getting current VFO frequency + + + + + + + + + + setting frequency + + + + + + + + getting current VFO mode + + + + + + + + + setting current VFO mode + + + + + + setting/unsetting split mode + + + + + + setting split mode + + + + + setting split TX frequency and mode + + + + + setting split TX frequency + + + + + getting split TX VFO mode + + + + + setting split TX VFO mode + + + + + getting PTT state + + + + + setting PTT on + + + + + setting PTT off + + + + + setting a configuration item + + + + + getting a configuration item + + + + + HelpTextWindow + + + Help file error + + + + + Cannot open "%1" for reading + + + + + Error: %1 + + + + + IARURegions + + + + IARU Region + + + + + LogQSO + + + Click OK to confirm the following QSO: + + + + + Call + + + + + Start + + + + + + dd/MM/yyyy HH:mm:ss + + + + + End + + + + + Mode + + + + + Band + + + + + Rpt Sent + + + + + Rpt Rcvd + + + + + Grid + + + + + Name + + + + + Tx power + + + + + + Retain + + + + + Comments + + + + + Operator + + + + + Exch sent + + + + + Rcvd + + + + + + Invalid QSO Data + + + + + Check exchange sent and received + + + + + Check all fields + + + + + Log file error + + + + + Cannot open "%1" for append + + + + + Error: %1 + + + + + LotWUsers::impl + + + Network Error - SSL/TLS support not installed, cannot fetch: +'%1' + + + + + Network Error - Too many redirects: +'%1' + + + + + Network Error: +%1 + + + + + File System Error - Cannot commit changes to: +"%1" + + + + + File System Error - Cannot open file: +"%1" +Error(%2): %3 + + + + + File System Error - Cannot write to file: +"%1" +Error(%2): %3 + + + + + MainWindow + + + WSJT-X by K1JT + + + + + Band Activity + + + + + + UTC dB DT Freq Dr + + + + + Rx Frequency + + + + + CQ only + + + + + Enter this QSO in log + + + + + Log &QSO + + + + + Stop monitoring + + + + + &Stop + + + + + Toggle monitoring On/Off + + + + + &Monitor + + + + + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> + + + + + Erase right window. Double-click to erase both windows. + + + + + &Erase + + + + + <html><head/><body><p>Clear the accumulating message average.</p></body></html> + + + + + Clear the accumulating message average. + + + + + Clear Avg + + + + + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> + + + + + Decode most recent Rx period at QSO Frequency + + + + + &Decode + + + + + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> + + + + + Toggle Auto-Tx On/Off + + + + + E&nable Tx + + + + + Stop transmitting immediately + + + + + &Halt Tx + + + + + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> + + + + + Toggle a pure Tx tone On/Off + + + + + &Tune + + + + + Menus + + + + + USB dial frequency + + + + + 14.078 000 + + + + + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> + + + + + Rx Signal + + + + + 30dB recommended when only noise present +Green when good +Red when clipping may occur +Yellow when too low + + + + + DX Call + + + + + DX Grid + + + + + Callsign of station to be worked + + + + + Search for callsign in database + + + + + &Lookup + + + + + Locator of station to be worked + + + + + Az: 251 16553 km + + + + + Add callsign and locator to database + + + + + Add + + + + + Pwr + + + + + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> + + + + + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. + + + + + ? + + + + + Adjust Tx audio level + + + + + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> + + + + + Frequency entry + + + + + Select operating band or enter frequency in MHz or enter kHz increment followed by k. + + + + + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + + + + + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> + + + + + Check to keep Tx frequency fixed when double-clicking on decoded text. + + + + + Hold Tx Freq + + + + + Audio Rx frequency + + + + + + + Hz + + + + + Rx + + + + + Set Tx frequency to Rx Frequency + + + + + ▲ + + + + + Frequency tolerance (Hz) + + + + + F Tol + + + + + Set Rx frequency to Tx Frequency + + + + + ▼ + + + + + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> + + + + + Synchronizing threshold. Lower numbers accept weaker sync signals. + + + + + Sync + + + + + <html><head/><body><p>Check to use short-format messages.</p></body></html> + + + + + Check to use short-format messages. + + + + + Sh + + + + + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> + + + + + Check to enable JT9 fast modes + + + + + + Fast + + + + + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> + + + + + Check to enable automatic sequencing of Tx messages based on received messages. + + + + + Auto Seq + + + + + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> + + + + + Check to call the first decoded responder to my CQ. + + + + + Call 1st + + + + + Check to generate "@1250 (SEND MSGS)" in Tx6. + + + + + Tx6 + + + + + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> + + + + + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. + + + + + Tx even/1st + + + + + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> + + + + + Frequency to call CQ on in kHz above the current MHz + + + + + Tx CQ + + + + + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> + + + + + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. +Not available to nonstandard callsign holders. + + + + + Rx All Freqs + + + + + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> + + + + + Submode determines tone spacing; A is narrowest. + + + + + Submode + + + + + Fox + + + + + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> + + + + + Check to monitor Sh messages. + + + + + SWL + + + + + Best S+P + + + + + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> + + + + + Check this to start recording calibration data. +While measuring calibration correction is disabled. +When not checked you can view the calibration results. + + + + + Measure + + + + + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> + + + + + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). + + + + + Report + + + + + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> + + + + + Tx/Rx or Frequency calibration sequence length + + + + + s + + + + + T/R + + + + + Toggle Tx mode + + + + + Tx JT9 @ + + + + + Audio Tx frequency + + + + + + Tx + + + + + Tx# + + + + + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> + + + + + Double-click on another caller to queue that call for your next QSO. + + + + + Next Call + + + + + 1 + + + + + + + Send this message in next Tx interval + + + + + Ctrl+2 + + + + + <html><head/><body><p>Send this message in next Tx interval</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> + + + + + Send this message in next Tx interval +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) + + + + + Ctrl+1 + + + + + + + + Switch to this Tx message NOW + + + + + Tx &2 + + + + + Alt+2 + + + + + <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> + + + + + Switch to this Tx message NOW +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) + + + + + Tx &1 + + + + + Alt+1 + + + + + Ctrl+6 + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> + + + + + Send this message in next Tx interval +Double-click to reset to the standard 73 message + + + + + Ctrl+5 + + + + + Ctrl+3 + + + + + Tx &3 + + + + + Alt+3 + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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> + + + + + Send this message in next Tx interval +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + + + + + Ctrl+4 + + + + + <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> + + + + + Switch to this Tx message NOW +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + + + + + Tx &4 + + + + + Alt+4 + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> + + + + + Switch to this Tx message NOW +Double-click to reset to the standard 73 message + + + + + Tx &5 + + + + + Alt+5 + + + + + Now + + + + + Generate standard messages for minimal QSO + + + + + Generate Std Msgs + + + + + Tx &6 + + + + + Alt+6 + + + + + + Enter a free text message (maximum 13 characters) +or select a predefined macro from the dropdown list. +Press ENTER to add the current text to the predefined +list. The list can be maintained in Settings (F2). + + + + + Queue up the next Tx message + + + + + Next + + + + + 2 + + + + + Calling CQ + + + + + Generate a CQ message + + + + + + + CQ + + + + + Generate message with RRR + + + + + RRR + + + + + Generate message with report + + + + + dB + + + + + Answering CQ + + + + + Generate message for replying to a CQ + + + + + + Grid + + + + + Generate message with R+report + + + + + R+dB + + + + + Generate message with 73 + + + + + 73 + + + + + Send this standard (generated) message + + + + + Gen msg + + + + + Send this free-text message (max 13 characters) + + + + + Free msg + + + + + 3 + + + + + Max dB + + + + + CQ AF + + + + + CQ AN + + + + + CQ AS + + + + + CQ EU + + + + + CQ NA + + + + + CQ OC + + + + + CQ SA + + + + + CQ 0 + + + + + CQ 1 + + + + + CQ 2 + + + + + CQ 3 + + + + + CQ 4 + + + + + CQ 5 + + + + + CQ 6 + + + + + CQ 7 + + + + + CQ 8 + + + + + CQ 9 + + + + + Reset + + + + + N List + + + + + N Slots + + + + + + Random + + + + + Call + + + + + S/N (dB) + + + + + Distance + + + + + More CQs + + + + + Percentage of 2-minute sequences devoted to transmitting. + + + + + % + + + + + Tx Pct + + + + + Band Hopping + + + + + Choose bands and times of day for band-hopping. + + + + + Schedule ... + + + + + Upload decoded messages to WSPRnet.org. + + + + + Upload spots + + + + + <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> + + + + + 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. + + + + + Prefer type 1 messages + + + + + No own call decodes + + + + + Transmit during the next 2-minute sequence. + + + + + Tx Next + + + + + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. + + + + + File + + + + + View + + + + + Decode + + + + + Save + + + + + Help + + + + + Mode + + + + + Configurations + + + + + Tools + + + + + Exit + + + + + Configuration + + + + + F2 + + + + + About WSJT-X + + + + + Waterfall + + + + + Open + + + + + Ctrl+O + + + + + Open next in directory + + + + + Decode remaining files in directory + + + + + Shift+F6 + + + + + Delete all *.wav && *.c2 files in SaveDir + + + + + None + + + + + Save all + + + + + Online User Guide + + + + + Keyboard shortcuts + + + + + Special mouse commands + + + + + JT9 + + + + + Save decoded + + + + + Normal + + + + + Deep + + + + + Monitor OFF at startup + + + + + Erase ALL.TXT + + + + + Erase wsjtx_log.adi + + + + + Convert mode to RTTY for logging + + + + + Log dB reports to Comments + + + + + Prompt me to log QSO + + + + + Blank line between decoding periods + + + + + Clear DX Call and Grid after logging + + + + + Display distance in miles + + + + + Double-click on call sets Tx Enable + + + + + + F7 + + + + + Tx disabled after sending 73 + + + + + Runaway Tx watchdog + + + + + Allow multiple instances + + + + + Tx freq locked to Rx freq + + + + + JT65 + + + + + JT9+JT65 + + + + + Tx messages to Rx Frequency window + + + + + Gray1 + + + + + Show DXCC entity and worked B4 status + + + + + Astronomical data + + + + + List of Type 1 prefixes and suffixes + + + + + Settings... + + + + + Local User Guide + + + + + Open log directory + + + + + JT4 + + + + + Message averaging + + + + + Enable averaging + + + + + Enable deep search + + + + + WSPR + + + + + Echo Graph + + + + + F8 + + + + + Echo + + + + + EME Echo mode + + + + + ISCAT + + + + + Fast Graph + + + + + F9 + + + + + &Download Samples ... + + + + + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> + + + + + MSK144 + + + + + QRA64 + + + + + Release Notes + + + + + Enable AP for DX Call + + + + + FreqCal + + + + + Measure reference spectrum + + + + + Measure phase response + + + + + Erase reference spectrum + + + + + Execute frequency calibration cycle + + + + + Equalization tools ... + + + + + WSPR-LF + + + + + Experimental LF/MF mode + + + + + FT8 + + + + + + Enable AP + + + + + Solve for calibration parameters + + + + + Copyright notice + + + + + Shift+F1 + + + + + Fox log + + + + + FT8 DXpedition Mode User Guide + + + + + Reset Cabrillo log ... + + + + + Color highlighting scheme + + + + + Contest Log + + + + + Export Cabrillo log ... + + + + + Quick-Start Guide to WSJT-X 2.0 + + + + + Contest log + + + + + Erase WSPR hashtable + + + + + FT4 + + + + + Rig Control Error + + + + + Do you want to reconfigure the radio interface? + + + + + Error Scanning ADIF Log + + + + + Scanned ADIF log, %1 worked before records created + + + + + Error Loading LotW Users Data + + + + + Error Writing WAV File + + + + + Configurations... + + + + + Error Killing jt9.exe Process + + + + + KillByName return code: %1 + + + + + Error removing "%1" + + + + + Click OK to retry + + + + + + Improper mode + + + + + + File Open Error + + + + + + + + + Cannot open "%1" for append: %2 + + + + + Error saving c2 file + + + + + Error in Sound Input + + + + + Error in Sound Output + + + + + Change Operator + + + + + New operator: + + + + + Status File Error + + + + + + Cannot open "%1" for writing: %2 + + + + + Subprocess Error + + + + + Subprocess failed with exit code %1 + + + + + + Running: %1 +%2 + + + + + Subprocess error + + + + + Reference spectrum saved + + + + + Invalid data in fmt.all at line %1 + + + + + Good Calibration Solution + + + + + <pre>%1%L2 ±%L3 ppm +%4%L5 ±%L6 Hz + +%7%L8 +%9%L10 Hz</pre> + + + + + Delete Calibration Measurements + + + + + The "fmt.all" file will be renamed as "fmt.bak" + + + + + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: + +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." + + + + + No data read from disk. Wrong file format? + + + + + Confirm Delete + + + + + Are you sure you want to delete all *.wav and *.c2 files in "%1"? + + + + + Keyboard Shortcuts + + + + + Special Mouse Commands + + + + + No more files to open. + + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. + + + + + WSPR Guard Band + + + + + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. + + + + + Fox Mode warning + + + + + Should you switch to EU VHF Contest mode? + +To do so, check 'Special operating activity' and +'EU VHF Contest' on the Settings | Advanced tab. + + + + + Should you switch to ARRL Field Day mode? + + + + + Should you switch to RTTY contest mode? + + + + + + + + Add to CALL3.TXT + + + + + Please enter a valid grid locator + + + + + Cannot open "%1" for read/write: %2 + + + + + %1 +is already in CALL3.TXT, do you wish to replace it? + + + + + Warning: DX Call field is empty. + + + + + Log file error + + + + + Cannot open "%1" + + + + + Error sending log to N1MM + + + + + Write returned "%1" + + + + + + + Confirm Erase + + + + + Are you sure you want to erase file ALL.TXT? + + + + + + Confirm Reset + + + + + Are you sure you want to erase your contest log? + + + + + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. + + + + + Cabrillo Log saved + + + + + Are you sure you want to erase file wsjtx_log.adi? + + + + + Are you sure you want to erase the WSPR hashtable? + + + + + VHF features warning + + + + + Tune digital gain + + + + + Transmit digital gain + + + + + Prefixes + + + + + Network Error + + + + + Error: %1 +UDP server %2:%3 + + + + + File Error + + + + + Phase Training Disabled + + + + + Phase Training Enabled + + + + + + Log File Error + + + + + Are you sure you want to clear the QSO queues? + + + + + MessageAveraging + + + + Message Averaging + + + + + UTC Sync DT Freq + + + + + Modes + + + + Mode + + + + + MultiSettings + + + Default + + + + + MultiSettings::impl + + + &Switch To + + + + + &Clone + + + + + Clone &Into ... + + + + + R&eset + + + + + &Rename ... + + + + + &Delete + + + + + Clone Into Configuration + + + + + Confirm overwrite of all values for configuration "%1" with values from "%2"? + + + + + Reset Configuration + + + + + Confirm reset to default values for configuration "%1"? + + + + + Delete Configuration + + + + + Confirm deletion of configuration "%1"? + + + + + NameDialog + + + New Configuration Name + + + + + Old name: + + + + + &New name: + + + + + OmniRigTransceiver + + + OmniRig: unrecognized mode + + + + + Failed to start OmniRig COM server + + + + + + OmniRig: don't know how to set rig frequency + + + + + + OmniRig: timeout waiting for update from rig + + + + + OmniRig COM/OLE error: %1 at %2: %3 (%4) + + + + + PollingTransceiver + + + Unexpected rig error + + + + + QObject + + + Invalid rig name - \ & / not allowed + + + + + User Defined + + + + + Failed to open LotW users CSV file: '%1' + + + + + OOB + + + + + Too many colours in palette. + + + + + Error reading waterfall palette file "%1:%2" too many colors. + + + + + Error reading waterfall palette file "%1:%2" invalid triplet. + + + + + Error reading waterfall palette file "%1:%2" invalid color. + + + + + Error opening waterfall palette file "%1": %2. + + + + + Error writing waterfall palette file "%1": %2. + + + + + RemoteFile + + + + + + + + File System Error + + + + + Cannot rename file: +"%1" +to: "%2" +Error(%3): %4 + + + + + Cannot delete file: +"%1" + + + + + + + Network Error + + + + + Too many redirects: %1 + + + + + Redirect not followed: %1 + + + + + Cannot commit changes to: +"%1" + + + + + Cannot open file: +"%1" +Error(%2): %3 + + + + + Cannot make path: +"%1" + + + + + Cannot write to file: +"%1" +Error(%2): %3 + + + + + SampleDownloader::impl + + + Download Samples + + + + + Input Error + + + + + Invalid URL format + + + + + SoundInput + + + An error opening the audio input device has occurred. + + + + + An error occurred during read from the audio input device. + + + + + Audio data not being fed to the audio input device fast enough. + + + + + Non-recoverable error, audio input device not usable at this time. + + + + + Requested input audio format is not valid. + + + + + Requested input audio format is not supported on device. + + + + + Failed to initialize audio sink device + + + + + Idle + + + + + Receiving + + + + + Suspended + + + + + Interrupted + + + + + Error + + + + + Stopped + + + + + SoundOutput + + + An error opening the audio output device has occurred. + + + + + An error occurred during write to the audio output device. + + + + + Audio data not being fed to the audio output device fast enough. + + + + + Non-recoverable error, audio output device not usable at this time. + + + + + Requested output audio format is not valid. + + + + + Requested output audio format is not supported on device. + + + + + Idle + + + + + Sending + + + + + Suspended + + + + + Interrupted + + + + + Error + + + + + Stopped + + + + + StationDialog + + + Add Station + + + + + &Band: + + + + + &Offset (MHz): + + + + + &Antenna: + + + + + StationList::impl + + + Band name + + + + + Frequency offset + + + + + Antenna description + + + + + Band + + + + + Offset + + + + + Antenna Description + + + + + TransceiverBase + + + Unexpected rig error + + + + + WideGraph + + + Dialog + + + + + Controls + + + + + Spectrum gain + + + + + Palette + + + + + <html><head/><body><p>Enter definition for a new color palette.</p></body></html> + + + + + Adjust... + + + + + Waterfall gain + + + + + <html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html> + + + + + % + + + + + Spec + + + + + <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> + + + + + Flatten + + + + + <html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html> + + + + + Ref Spec + + + + + Smoothing of Linear Average spectrum + + + + + Smooth + + + + + Compression factor for frequency scale + + + + + Bins/Pixel + + + + + Select waterfall palette + + + + + <html><head/><body><p>Select data for spectral display</p></body></html> + + + + + Current + + + + + Cumulative + + + + + Linear Avg + + + + + Reference + + + + + <html><head/><body><p>Frequency at left edge of waterfall</p></body></html> + + + + + Hz + + + + + Start + + + + + <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> + + + + + JT9 + + + + + JT65 + + + + + Number of FFTs averaged (controls waterfall scrolling rate) + + + + + N Avg + + + + + Waterfall zero + + + + + Spectrum zero + + + + + Wide Graph + + + + + + Read Palette + + + + + configuration_dialog + + + Settings + + + + + Genera&l + + + + + General station details and settings. + + + + + Station Details + + + + + My C&all: + + + + + Station callsign. + + + + + M&y Grid: + + + + + <html><head/><body><p>Maidenhead locator, preferably 6 characters.</p></body></html> + + + + + Check to allow grid changes from external programs + + + + + AutoGrid + + + + + IARU Region: + + + + + <html><head/><body><p>Select your IARU region.</p></body></html> + + + + + Message generation for type 2 compound callsign holders: + + + + + <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> + + + + + Full call in Tx1 + + + + + Full call in Tx3 + + + + + Full call in Tx5 only + + + + + Display + + + + + Show outgoing transmitted messages in the Rx frequency window. + + + + + &Tx messages to Rx frequency window + + + + + Show if decoded stations are new DXCC entities or worked before. + + + + + Show &DXCC, grid, and worked-before status + + + + + <html><head/><body><p>Check to have decodes for a new period start at the top of the Band Activity window and not scroll off the top when the window is full.</p><p>This is to aid selecting decodes to double-click while decoding is still in progress. Use the Band Activity vertical scroll bar to reveal decodes past the bottom of the window.</p></body></html> + + + + + Start new period decodes at top + + + + + Show principal prefix instead of country name + + + + + Set the font characteristics for the application. + + + + + Font... + + + + + Set the font characteristics for the Band Activity and Rx Frequency areas. + + + + + Decoded Text Font... + + + + + Include a separator line between periods in the band activity window. + + + + + &Blank line between decoding periods + + + + + Show distance to DX station in miles rather than kilometers. + + + + + Display dista&nce in miles + + + + + Behavior + + + + + Decode after EME delay + + + + + Tx watchdog: + + + + + <html><head/><body><p>Number of minutes before unattended transmissions are aborted</p></body></html> + + + + + Disabled + + + + + minutes + + + + + Enable VHF/UHF/Microwave features + + + + + Single decode + + + + + <html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html> + + + + + Allow Tx frequency changes while transmitting + + + + + Don't start decoding until the monitor button is clicked. + + + + + Mon&itor off at startup + + + + + <html><head/><body><p>Check this if you wish to automatically return to the last monitored frequency when monitor is enabled, leave it unchecked if you wish to have the current rig frequency maintained.</p></body></html> + + + + + Monitor returns to last used frequency + + + + + Alternate F1-F6 bindings + + + + + Turns off automatic transmissions after sending a 73 or any other free +text message. + + + + + Di&sable Tx after sending 73 + + + + + Send a CW ID after every 73 or free text message. + + + + + CW ID a&fter 73 + + + + + Periodic CW ID Inter&val: + + + + + Send a CW ID periodically every few minutes. +This might be required under your countries licence regulations. +It will not interfere with other users as it is always sent in the +quiet period when decoding is done. + + + + + Automatic transmission mode. + + + + + Doubl&e-click on call sets Tx enable + + + + + Calling CQ forces Call 1st + + + + + &Radio + + + + + Radio interface configuration settings. + + + + + Settings that control your CAT interface. + + + + + CAT Control + + + + + + Port: + + + + + Serial port used for CAT control. + + + + + Serial Port Parameters + + + + + Baud Rate: + + + + + Serial port data rate which must match the setting of your radio. + + + + + 1200 + + + + + 2400 + + + + + 4800 + + + + + 9600 + + + + + 19200 + + + + + 38400 + + + + + 57600 + + + + + 115200 + + + + + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> + + + + + Data Bits + + + + + D&efault + + + + + Se&ven + + + + + E&ight + + + + + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> + + + + + Stop Bits + + + + + + Default + + + + + On&e + + + + + T&wo + + + + + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> + + + + + Handshake + + + + + &None + + + + + Software flow control (very rare on CAT interfaces). + + + + + XON/XOFF + + + + + Flow control using the RTS and CTS RS-232 control lines +not often used but some radios have it as an option and +a few, particularly some Kenwood rigs, require it). + + + + + &Hardware + + + + + Special control of CAT port control lines. + + + + + Force Control Lines + + + + + + High + + + + + + Low + + + + + DTR: + + + + + RTS: + + + + + How this program activates the PTT on your radio + + + + + PTT Method + + + + + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> + + + + + VO&X + + + + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> + + + + + &DTR + + + + + Some radios support PTT via CAT commands, +use this option if your radio supports it and you have no +other hardware interface for PTT. + + + + + C&AT + + + + + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> + + + + + R&TS + + + + + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> + + + + + Modulation mode selected on radio. + + + + + Mode + + + + + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> + + + + + US&B + + + + + Don't allow the program to set the radio mode +(not recommended but use if the wrong mode +or bandwidth is selected). + + + + + + None + + + + + If this is available then it is usually the correct mode for this program. + + + + + Data/P&kt + + + + + Some radios can select the audio input using a CAT command, +this setting allows you to select which audio input will be used +(if it is available then generally the Rear/Data option is best). + + + + + Transmit Audio Source + + + + + Rear&/Data + + + + + &Front/Mic + + + + + Rig: + + + + + Poll Interval: + + + + + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> + + + + + s + + + + + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> + + + + + Test CAT + + + + + Attempt to activate the transmitter. +Click again to deactivate. Normally no power should be +output since there is no audio being generated at this time. +Check that any Tx indication on your radio and/or your +radio interface behave as expected. + + + + + Test PTT + + + + + Split Operation + + + + + Fake It + + + + + Rig + + + + + A&udio + + + + + Audio interface settings + + + + + Souncard + + + + + Soundcard + + + + + Select the audio CODEC to use for transmitting. +If this is your default device for system sounds then +ensure that all system sounds are disabled otherwise +you will broadcast any systems sounds generated during +transmitting periods. + + + + + Select the audio CODEC to use for receiving. + + + + + &Input: + + + + + Select the channel to use for receiving. + + + + + + Mono + + + + + + Left + + + + + + Right + + + + + + Both + + + + + Select the audio channel used for transmission. +Unless you have multiple radios connected on different +channels; then you will usually want to select mono or +both here. + + + + + Ou&tput: + + + + + + Save Directory + + + + + Loc&ation: + + + + + Path to which .WAV files are saved. + + + + + + TextLabel + + + + + Click to select a different save directory for .WAV files. + + + + + S&elect + + + + + + AzEl Directory + + + + + Location: + + + + + Select + + + + + Power Memory By Band + + + + + Remember power settings by band + + + + + Enable power memory during transmit + + + + + Transmit + + + + + Enable power memory during tuning + + + + + Tune + + + + + Tx &Macros + + + + + Canned free text messages setup + + + + + &Add + + + + + &Delete + + + + + Drag and drop items to rearrange order +Right click for item specific actions +Click, SHIFT+Click and, CRTL+Click to select items + + + + + Reportin&g + + + + + Reporting and logging settings + + + + + Logging + + + + + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. + + + + + Promp&t me to log QSO + + + + + Op Call: + + + + + Some logging programs will not accept the type of reports +saved by this program. +Check this option to save the sent and received reports in the +comments field. + + + + + d&B reports to comments + + + + + Check this option to force the clearing of the DX Call +and DX Grid fields when a 73 or free text message is sent. + + + + + Clear &DX call and grid after logging + + + + + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> + + + + + Con&vert mode to RTTY + + + + + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> + + + + + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> + + + + + Log automatically (contesting only) + + + + + Network Services + + + + + The program can send your station details and all +decoded signals as spots to the http://pskreporter.info web site. +This is used for reverse beacon analysis which is very useful +for assessing propagation and system performance. + + + + + Enable &PSK Reporter Spotting + + + + + UDP Server + + + + + UDP Server: + + + + + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> + + + + + UDP Server port number: + + + + + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> + + + + + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> + + + + + Accept UDP requests + + + + + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> + + + + + Notify on accepted UDP request + + + + + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> + + + + + Accepted UDP request restores window + + + + + Secondary UDP Server (deprecated) + + + + + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> + + + + + Enable logged contact ADIF broadcast + + + + + Server name or IP address: + + + + + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> + + + + + Server port number: + + + + + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> + + + + + Frequencies + + + + + Default frequencies and band specific station details setup + + + + + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> + + + + + Frequency Calibration + + + + + Slope: + + + + + ppm + + + + + Intercept: + + + + + Hz + + + + + Working Frequencies + + + + + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> + + + + + Station Information + + + + + Items may be edited. +Right click for insert and delete options. + + + + + Colors + + + + + Decode Highlightling + + + + + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> + + + + + Rescan ADIF Log + + + + + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> + + + + + Reset Highlighting + + + + + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> + + + + + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> + + + + + Highlight by Mode + + + + + Include extra WAE entities + + + + + Check to for grid highlighting to only apply to unworked grid fields + + + + + Only grid Fields sought + + + + + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> + + + + + Logbook of the World User Validation + + + + + Users CSV file URL: + + + + + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> + + + + + https://lotw.arrl.org/lotw-user-activity.csv + + + + + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> + + + + + Fetch Now + + + + + Age of last upload less than: + + + + + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> + + + + + days + + + + + Advanced + + + + + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> + + + + + JT65 VHF/UHF/Microwave decoding parameters + + + + + Random erasure patterns: + + + + + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> + + + + + Aggressive decoding level: + + + + + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> + + + + + Two-pass decoding + + + + + Special operating activity: Generation of FT4, FT8, and MSK144 messages + + + + + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> + + + + + Hound + + + + + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> + + + + + NA VHF Contest + + + + + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> + + + + + Fox + + + + + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> + + + + + EU VHF Contest + + + + + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> + + + + + RTTY Roundup messages + + + + + RTTY RU Exch: + + + + + NJ + + + + + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> + + + + + ARRL Field Day + + + + + FD Exch: + + + + + 6A SNJ + + + + + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> + + + + + WW Digi Contest + + + + + Miscellaneous + + + + + Degrade S/N of .wav file: + + + + + + For offline sensitivity tests + + + + + dB + + + + + Receiver bandwidth: + + + + + Hz + + + + + Tx delay: + + + + + Minimum delay between assertion of PTT and start of Tx audio. + + + + + s + + + + + Tone spacing + + + + + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> + + + + + x 2 + + + + + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> + + + + + x 4 + + + + + Waterfall spectra + + + + + Low sidelobes + + + + + Most sensitive + + + + + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> + + + + + main + + + + Fatal error + + + + + + Unexpected fatal error + + + + + Where <rig-name> is for multi-instance support. + + + + + rig-name + + + + + Where <configuration> is an existing one. + + + + + configuration + + + + + Writable files in test location. Use with caution, for testing only. + + + + + Command line error + + + + + Command line help + + + + + Application version + + + + + Another instance may be running + + + + + try to remove stale lock file? + + + + + Failed to create a temporary directory + + + + + + Path: "%1" + + + + + Failed to create a usable temporary directory + + + + + Another application may be locking the directory + + + + + Failed to create data directory + + + + + path: "%1" + + + + + Shared memory error + + + + + Unable to create shared memory segment + + + + + wf_palette_design_dialog + + + Palette Designer + + + + + <html><head/><body><p>Double click a color to edit it.</p><p>Right click to insert or delete colors.</p><p>Colors at the top represent weak signals</p><p>and colors at the bottom represent strong</p><p>signals. You can have up to 256 colors.</p></body></html> + + + + diff --git a/translations/wsjtx_pt_PT.ts b/translations/wsjtx_pt_PT.ts index 3aae238db..383474e87 100644 --- a/translations/wsjtx_pt_PT.ts +++ b/translations/wsjtx_pt_PT.ts @@ -194,7 +194,7 @@ CPlotter - + &Set Rx && Tx Offset @@ -202,37 +202,37 @@ CabrilloLog - + Freq(MHz) - + Mode - + Date & Time(UTC) - + Call - + Sent - + Rcvd - + Band @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete - - + + &Insert ... - + Failed to create save directory - + path: "%1% - + Failed to create samples directory - + path: "%1" - + &Load ... - + &Save as ... - + &Merge ... - + &Reset - + Serial Port: - + Serial port used for CAT control - + Network Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -447,12 +447,12 @@ Formats: - + USB Device: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -460,152 +460,152 @@ Format: - + Invalid audio input device - + Invalid audio out device - + Invalid PTT method - + Invalid PTT port - - + + Invalid Contest Exchange - + You must input a valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting - + Reset all decode highlighting and priorities to default values - + WSJT-X Decoded Text Font Chooser - + Load Working Frequencies - - - + + + Frequency files (*.qrg);;All files (*.*) - + Replace Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - + Merge Working Frequencies - - - + + + Not a valid frequencies file - + Incorrect file magic - + Version is too new - + Contents corrupt - + Save Working Frequencies - + Only Save Selected Working Frequencies - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. - + Reset Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with default ones? - + Save Directory - + AzEl Directory - + Rig control error - + Failed to open connection to rig - + Rig failure @@ -613,86 +613,86 @@ Format: DXLabSuiteCommanderTransceiver - + Failed to connect to DX Lab Suite Commander - + DX Lab Suite Commander didn't respond correctly reading frequency: - + DX Lab Suite Commander sent an unrecognised TX state: - + DX Lab Suite Commander didn't respond correctly polling TX status: - + DX Lab Suite Commander rig did not respond to PTT: - + DX Lab Suite Commander didn't respond correctly polling frequency: - + DX Lab Suite Commander didn't respond correctly polling TX frequency: - + DX Lab Suite Commander sent an unrecognised split state: - + DX Lab Suite Commander didn't respond correctly polling split status: - + DX Lab Suite Commander sent an unrecognised mode: " - + DX Lab Suite Commander didn't respond correctly polling mode: - + DX Lab Suite Commander send command failed - + DX Lab Suite Commander failed to send command "%1": %2 - + DX Lab Suite Commander send command "%1" read reply failed: %2 - + DX Lab Suite Commander retries exhausted sending command "%1" - + DX Lab Suite Commander sent an unrecognized frequency @@ -780,7 +780,7 @@ Format: Dialog - + Gray time: @@ -948,7 +948,7 @@ Error: %2 - %3 EmulateSplitTransceiver - + Emulated split mode requires rig to be in simplex mode @@ -1206,32 +1206,32 @@ Error: %2 - %3 FoxLog::impl - + Date & Time(UTC) - + Call - + Grid - + Sent - + Rcvd - + Band @@ -1271,42 +1271,42 @@ Error: %2 - %3 - + &Export ADIF ... - + Export ADIF Log File - + ADIF Log (*.adi) - + Export ADIF File Error - + Cannot open "%1" for writing: %2 - + &Reset ... - + Confirm Reset - + Are you sure you want to erase file FoxQSO.txt and start a new Fox log? @@ -1364,83 +1364,83 @@ Error: %2 - %3 HRDTransceiver - - + + Failed to connect to Ham Radio Deluxe - + Failed to open file "%1": %2. - - + + Ham Radio Deluxe: no rig found - + Ham Radio Deluxe: rig doesn't support mode - + Ham Radio Deluxe: sent an unrecognised mode - + Ham Radio Deluxe: item not found in %1 dropdown list - + Ham Radio Deluxe: button not available - + Ham Radio Deluxe didn't respond as expected - + Ham Radio Deluxe: rig has disappeared or changed - + Ham Radio Deluxe send command "%1" failed %2 - - + + Ham Radio Deluxe: failed to write command "%1" - + Ham Radio Deluxe sent an invalid reply to our command "%1" - + Ham Radio Deluxe failed to reply to command "%1" %2 - + Ham Radio Deluxe retries exhausted sending command "%1" - + Ham Radio Deluxe didn't respond to command "%1" as expected @@ -1448,178 +1448,178 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error - + Hamlib settings file error: %1 at character offset %2 - + Hamlib settings file error: top level must be a JSON object - + Hamlib settings file error: config must be a JSON object - + Unsupported CAT type - + Hamlib error: %1 while %2 - + opening connection to rig - + getting current frequency - + getting current mode - - + + exchanging VFOs - - + + getting other VFO frequency - + getting other VFO mode - + setting current VFO - + getting frequency - + getting mode - - + + getting current VFO - - - - + + + + getting current VFO frequency - - - - - - + + + + + + setting frequency - - - - + + + + getting current VFO mode - - - - - + + + + + setting current VFO mode - - + + setting/unsetting split mode - - + + setting split mode - + setting split TX frequency and mode - + setting split TX frequency - + getting split TX VFO mode - + setting split TX VFO mode - + getting PTT state - + setting PTT on - + setting PTT off - + setting a configuration item - + getting a configuration item @@ -1775,38 +1775,38 @@ Error: %2 - %3 LotWUsers::impl - + Network Error - SSL/TLS support not installed, cannot fetch: '%1' - + Network Error - Too many redirects: '%1' - + Network Error: %1 - + File System Error - Cannot commit changes to: "%1" - + File System Error - Cannot open file: "%1" Error(%2): %3 - + File System Error - Cannot write to file: "%1" Error(%2): %3 @@ -3400,156 +3400,156 @@ list. The list can be maintained in Settings (F2). - + Rig Control Error - + Do you want to reconfigure the radio interface? - + Error Scanning ADIF Log - + Scanned ADIF log, %1 worked before records created - + Error Loading LotW Users Data - + Error Writing WAV File - + Configurations... - + Error Killing jt9.exe Process - + KillByName return code: %1 - + Error removing "%1" - + Click OK to retry - - + + Improper mode - - + + File Open Error - - - - - + + + + + Cannot open "%1" for append: %2 - + Error saving c2 file - + Error in Sound Input - + Error in Sound Output - + Change Operator - + New operator: - + Status File Error - - + + Cannot open "%1" for writing: %2 - + Subprocess Error - + Subprocess failed with exit code %1 - - + + Running: %1 %2 - + Subprocess error - + Reference spectrum saved - + Invalid data in fmt.all at line %1 - + Good Calibration Solution - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3558,228 +3558,236 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements - + The "fmt.all" file will be renamed as "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: -"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2019 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? - + Confirm Delete - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + Keyboard Shortcuts - + Special Mouse Commands - + No more files to open. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + + Should you switch to EU VHF Contest mode? + +To do so, check 'Special operating activity' and +'EU VHF Contest' on the Settings | Advanced tab. + + + + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + VHF features warning - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -3818,62 +3826,62 @@ UDP server %2:%3 MultiSettings::impl - + &Switch To - + &Clone - + Clone &Into ... - + R&eset - + &Rename ... - + &Delete - + Clone Into Configuration - + Confirm overwrite of all values for configuration "%1" with values from "%2"? - + Reset Configuration - + Confirm reset to default values for configuration "%1"? - + Delete Configuration - + Confirm deletion of configuration "%1"? @@ -3899,29 +3907,29 @@ UDP server %2:%3 OmniRigTransceiver - + OmniRig: unrecognized mode - + Failed to start OmniRig COM server - - + + OmniRig: don't know how to set rig frequency - - + + OmniRig: timeout waiting for update from rig - + OmniRig COM/OLE error: %1 at %2: %3 (%4) @@ -3929,7 +3937,7 @@ UDP server %2:%3 PollingTransceiver - + Unexpected rig error @@ -3947,7 +3955,7 @@ UDP server %2:%3 - + Failed to open LotW users CSV file: '%1' @@ -4078,67 +4086,67 @@ Error(%2): %3 SoundInput - + An error opening the audio input device has occurred. - + An error occurred during read from the audio input device. - + Audio data not being fed to the audio input device fast enough. - + Non-recoverable error, audio input device not usable at this time. - + Requested input audio format is not valid. - + Requested input audio format is not supported on device. - + Failed to initialize audio sink device - + Idle - + Receiving - + Suspended - + Interrupted - + Error - + Stopped @@ -4146,62 +4154,62 @@ Error(%2): %3 SoundOutput - + An error opening the audio output device has occurred. - + An error occurred during write to the audio output device. - + Audio data not being fed to the audio output device fast enough. - + Non-recoverable error, audio output device not usable at this time. - + Requested output audio format is not valid. - + Requested output audio format is not supported on device. - + Idle - + Sending - + Suspended - + Interrupted - + Error - + Stopped @@ -4265,7 +4273,7 @@ Error(%2): %3 TransceiverBase - + Unexpected rig error @@ -4971,11 +4979,6 @@ a few, particularly some Kenwood rigs, require it). VO&X - - - <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to inteface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> - - &DTR @@ -4993,11 +4996,6 @@ other hardware interface for PTT. C&AT - - - <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to inteface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> - - R&TS @@ -5041,11 +5039,6 @@ or bandwidth is selected). None - - - If this is availabe then it is usually the correct mode for this program. - - Data/P&kt @@ -5577,310 +5570,345 @@ Right click for insert and delete options. - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> - + Reset Highlighting - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> - + Highlight by Mode - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> + + + + + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> + + + + + If this is available then it is usually the correct mode for this program. + + + + Rescan ADIF Log - + Include extra WAE entities - + + Check to for grid highlighting to only apply to unworked grid fields + + + + + Only grid Fields sought + + + + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> - + Logbook of the World User Validation - + Users CSV file URL: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> - + https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> - + Fetch Now - + Age of last upload less than: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> - + days - + Advanced - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters - + Random erasure patterns: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> - + Aggressive decoding level: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> - + Two-pass decoding - + Special operating activity: Generation of FT4, FT8, and MSK144 messages - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> - + Hound - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> - + NA VHF Contest - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> - + Fox - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> - + EU VHF Contest - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> - + RTTY Roundup messages - + RTTY RU Exch: - + NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> - + ARRL Field Day - + FD Exch: - + 6A SNJ - Miscellaneous + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> - - Degrade S/N of .wav file: + + WW Digi Contest - - For offline sensitivity tests + Miscellaneous - - dB + + Degrade S/N of .wav file: + + For offline sensitivity tests + + + + + dB + + + + Receiver bandwidth: - + Hz - + Tx delay: - + Minimum delay between assertion of PTT and start of Tx audio. - + s - + Tone spacing - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> - + x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> - + x 4 - + Waterfall spectra - + Low sidelobes - + Most sensitive - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> @@ -5889,13 +5917,13 @@ Right click for insert and delete options. main - + Fatal error - + Unexpected fatal error From 9c8eb88232a714429fd51aadc8d7e9000f6ab738 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 14 May 2020 13:02:22 +0100 Subject: [PATCH 007/520] Add Spanish and Catalan to translations list --- CMakeLists.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 98728dd39..191eaeded 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1094,8 +1094,10 @@ add_custom_target (etags COMMAND ${ETAGS} -o ${CMAKE_SOURCE_DIR}/TAGS -R ${sourc # Qt i18n set (LANGUAGES - en_GB - pt_PT + en_GB # English UK + pt_PT # Poutuguese + es_ES # Spanish + ca_ES # Catalan ) foreach (lang_ ${LANGUAGES}) file (TO_NATIVE_PATH translations/wsjtx_${lang_}.ts ts_) From 1c0c75d96039626289279f8fff4746ff8a4e36b9 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 15 May 2020 14:37:14 +0100 Subject: [PATCH 008/520] Fix the minimum size of help text windows to the content size This could make help text windows bigger than the screen, if we want to go there then using a QLabel sub-class will need to change, probably by using a read-only QTextEdit instead as that provides scroll bars. Maybe consider a multi-column table for the contents as an alternative to scroll bars. --- widgets/HelpTextWindow.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/widgets/HelpTextWindow.cpp b/widgets/HelpTextWindow.cpp index d24a87a51..51bfc89f9 100644 --- a/widgets/HelpTextWindow.cpp +++ b/widgets/HelpTextWindow.cpp @@ -22,10 +22,11 @@ HelpTextWindow::HelpTextWindow (QString const& title, QString const& file_name, , tr ("Error: %1").arg (source.errorString ())); return; } - setText (QTextStream {&source}.readAll ()); setWindowTitle(QApplication::applicationName () + " - " + title); setMargin (10); setBackgroundRole (QPalette::Base); setAutoFillBackground (true); setStyleSheet (font_as_stylesheet (font)); + setText (QTextStream {&source}.readAll ()); + setMinimumSize (sizeHint ()); } From 6771d25cb7311f7924047e85a13fa947846731cf Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sat, 16 May 2020 09:30:25 -0500 Subject: [PATCH 009/520] Restore WSPR Tx Power to the correct value. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index eb74103cf..29ab24a54 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -935,7 +935,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_saveDecoded=ui->actionSave_decoded->isChecked(); m_saveAll=ui->actionSave_all->isChecked(); ui->sbTxPercent->setValue(m_pctx); - ui->TxPowerComboBox->setCurrentIndex(int(0.3*(m_dBm + 30.0)+0.2)); + ui->TxPowerComboBox->setCurrentIndex(int(0.3*m_dBm+0.2)); ui->cbUploadWSPR_Spots->setChecked(m_uploadSpots); if((m_ndepth&7)==1) ui->actionQuickDecode->setChecked(true); if((m_ndepth&7)==2) ui->actionMediumDecode->setChecked(true); From ffb06c018e0da8a8a7165835cd6ddb6d732c61da Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 18 May 2020 23:00:02 +0100 Subject: [PATCH 010/520] Sorting out how to test translation files Windows makes this more complex than necessary. On all systems the packaged translation file in the resources :/Translations directory wsjtx_.qm will be loaded if matches the current system locale. Otherwise the native translatable strings will be used (en_US is assumed for the native language). On all systems a wsjtx_.qm compiled translation file in the current working directory will be loaded if matches the current system locale language and country (wsjtx_en_GB.qm for a locale of en-GB). On non-Windows systems the locale used above can be set for just the wsjtx instance being tested by setting the LANG environment variable, e.g. LANG=ca-ES wsjtx On Windows systems the current locale can only be changed by installing the relevant Windows Language Pack, selecting the UI language either as the default or as an override (Set-WinUILanguageOverride -Language ca-ES) and the signing out and back in. The two translations file sources above cam be overridden using a new command line option: [-l | -language] [-] e.g. -language ca-ES which will load the first readable translation file as found in the following order: :/Translations/wsjtx_ca_ES.qm, :/Translation/wsjtx_ca.qm, :/Translations/wsjtx.qm. This search will be preceded by the normal translation file load from resources described above. Following that and the normal load from the current working directory described above, the first readable translation file as found in the following order: $cwd/wsjtx_ca_ES.qm, $cwd/wsjtx_ca.qm, $cwd/wsjtx.qm. This allows Windows testers to change the WSJT-X UI language without having to change the system UI language and installing the relevant language pack. Note that using this method will only change the translated strings, number and date formatting will not change. Because of this it should only be used for basic testing. --- main.cpp | 100 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 77 insertions(+), 23 deletions(-) diff --git a/main.cpp b/main.cpp index 74174e378..40e0247a7 100644 --- a/main.cpp +++ b/main.cpp @@ -107,8 +107,20 @@ int main(int argc, char *argv[]) ExceptionCatchingApplication a(argc, argv); try { + QLocale locale; // get the current system locale + qDebug () << "locale: language:" << locale.language () << "script:" << locale.script () + << "country:" << locale.country () << "ui-languages:" << locale.uiLanguages (); + setlocale (LC_NUMERIC, "C"); // ensure number forms are in + // consistent format, do this after + // instantiating QApplication so + // that GUI has correct l18n + + // Override programs executable basename as application name. + a.setApplicationName ("WSJT-X"); + a.setApplicationVersion (version ()); + // - // Enable i18n + // Enable base i18n // QTranslator translator_from_resources; // Default translations for releases use translations stored in @@ -121,28 +133,11 @@ int main(int argc, char *argv[]) // translations but should only be set when adding new // languages. The resulting .ts files should be checked info // source control for translators to access and update. - translator_from_resources.load (QLocale::system (), "wsjtx", "_", ":/Translations"); - a.installTranslator (&translator_from_resources); - - QTranslator translator_from_files; - // Load any matching translation from the current directory - // using the locale name. This allows translators to easily test - // their translations by releasing (lrelease) a .qm file into - // the current directory with a suitable name - // (e.g. wsjtx_en_GB.qm), then running wsjtx to view the - // results. Either the system locale setting or the environment - // variable LANG can be used to select the target language. - translator_from_files.load (QString {"wsjtx_"} + QLocale::system ().name ()); - a.installTranslator (&translator_from_files); - - setlocale (LC_NUMERIC, "C"); // ensure number forms are in - // consistent format, do this after - // instantiating QApplication so - // that GUI has correct l18n - - // Override programs executable basename as application name. - a.setApplicationName ("WSJT-X"); - a.setApplicationVersion (version ()); + if (translator_from_resources.load (locale, "wsjtx", "_", ":/Translations")) + { + qDebug () << "Loaded translations for current locale from resources"; + a.installTranslator (&translator_from_resources); + } QCommandLineParser parser; parser.setApplicationDescription ("\n" PROJECT_SUMMARY_DESCRIPTION); @@ -161,6 +156,12 @@ int main(int argc, char *argv[]) , a.translate ("main", "configuration")); parser.addOption (cfg_option); + // support for UI language override (useful on Windows) + QCommandLineOption lang_option (QStringList {} << "l" << "language" + , a.translate ("main", "Where is [-].") + , a.translate ("main", "language")); + parser.addOption (lang_option); + QCommandLineOption test_option (QStringList {} << "test-mode" , a.translate ("main", "Writable files in test location. Use with caution, for testing only.")); parser.addOption (test_option); @@ -184,6 +185,59 @@ int main(int argc, char *argv[]) } } + // + // Complete i18n + // + + QTranslator translation_override_from_resources; + // Load any matching translation from the current directory + // using the command line option language override. This allows + // translators to easily test their translations by releasing + // (lrelease) a .qm file into the current directory with a + // suitable name (e.g. wsjtx_en_GB.qm), then running wsjtx to + // view the results. + if (parser.isSet (lang_option)) + { + auto language = parser.value (lang_option).replace ('-', '_'); + if (translation_override_from_resources.load ("wsjtx_" + language , ":/Translations")) + { + qDebug () << QString {"loaded translation file :/Translations/wsjtx_%1.qm"}.arg (language); + a.installTranslator (&translation_override_from_resources); + } + } + + QTranslator translator_from_files; + // Load any matching translation from the current directory + // using the current locale. This allows translators to easily + // test their translations by releasing (lrelease) a .qm file + // into the current directory with a suitable name (e.g. + // wsjtx_en_GB.qm), then running wsjtx to view the results. The + // system locale setting will be used to select the translation + // file which can be overridden by the LANG environment variable + // on non-Windows system. + if (translator_from_files.load (locale, "wsjtx", "_")) + { + qDebug () << "loaded translations for current locale from a file"; + a.installTranslator (&translator_from_files); + } + + QTranslator translation_override_from_files; + // Load any matching translation from the current directory + // using the command line option language override. This allows + // translators to easily test their translations on Windows by + // releasing (lrelease) a .qm file into the current directory + // with a suitable name (e.g. wsjtx_en_GB.qm), then running + // wsjtx to view the results. + if (parser.isSet (lang_option)) + { + auto language = parser.value (lang_option).replace ('-', '_'); + if (translation_override_from_files.load ("wsjtx_" + language)) + { + qDebug () << QString {"loaded translation file $cwd/wsjtx_%1.qm"}.arg (language); + a.installTranslator (&translation_override_from_files); + } + } + QStandardPaths::setTestModeEnabled (parser.isSet (test_option)); // support for multiple instances running from a single installation From e322de24d34c9fa015d240e01fd2734a0f043fcc Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 19 May 2020 01:14:18 +0100 Subject: [PATCH 011/520] Cosmetic punctuation for translation --- Configuration.ui | 20 +++++------ translations/wsjtx_en_GB.ts | 68 ++++++++++++++++++++--------------- translations/wsjtx_es_ES.ts | 60 ++++++++++++++++++------------- translations/wsjtx_pt_PT.ts | 68 ++++++++++++++++++++--------------- widgets/AbstractLogWindow.cpp | 2 +- 5 files changed, 124 insertions(+), 94 deletions(-) diff --git a/Configuration.ui b/Configuration.ui index 7b44857d2..fa16476e9 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -6,8 +6,8 @@ 0 0 - 670 - 617 + 557 + 561 @@ -559,7 +559,7 @@ quiet period when decoding is done. true - + @@ -929,7 +929,7 @@ a few, particularly some Kenwood rigs, require it). - How this program activates the PTT on your radio + How this program activates the PTT on your radio? PTT Method @@ -1021,7 +1021,7 @@ other hardware interface for PTT. true - + @@ -3108,13 +3108,13 @@ Right click for insert and delete options. - - - - - + + + + + diff --git a/translations/wsjtx_en_GB.ts b/translations/wsjtx_en_GB.ts index 2533ca644..c103c3479 100644 --- a/translations/wsjtx_en_GB.ts +++ b/translations/wsjtx_en_GB.ts @@ -18,7 +18,7 @@ - Are you sure you want to delete the %n selected QSO(s) from the log + Are you sure you want to delete the %n selected QSO(s) from the log? @@ -692,7 +692,7 @@ Format: - + DX Lab Suite Commander sent an unrecognized frequency @@ -3945,7 +3945,7 @@ UDP server %2:%3 QObject - + Invalid rig name - \ & / not allowed @@ -4959,11 +4959,6 @@ a few, particularly some Kenwood rigs, require it). RTS: - - - How this program activates the PTT on your radio - - PTT Method @@ -5599,6 +5594,11 @@ Right click for insert and delete options. <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> + + + How this program activates the PTT on your radio? + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> @@ -5917,104 +5917,114 @@ Right click for insert and delete options. main - + Fatal error - + Unexpected fatal error - + Where <rig-name> is for multi-instance support. - + rig-name - + Where <configuration> is an existing one. - + configuration - + + Where <language> is <lang-code>[-<country-code>]. + + + + + language + + + + Writable files in test location. Use with caution, for testing only. - + Command line error - + Command line help - + Application version - + Another instance may be running - + try to remove stale lock file? - + Failed to create a temporary directory - - + + Path: "%1" - + Failed to create a usable temporary directory - + Another application may be locking the directory - + Failed to create data directory - + path: "%1" - + Shared memory error - + Unable to create shared memory segment diff --git a/translations/wsjtx_es_ES.ts b/translations/wsjtx_es_ES.ts index 2c962b9cf..04132aa4e 100644 --- a/translations/wsjtx_es_ES.ts +++ b/translations/wsjtx_es_ES.ts @@ -18,7 +18,7 @@ - Are you sure you want to delete the %n selected QSO(s) from the log + Are you sure you want to delete the %n selected QSO(s) from the log? @@ -692,7 +692,7 @@ Format: - + DX Lab Suite Commander sent an unrecognized frequency @@ -3945,7 +3945,7 @@ UDP server %2:%3 QObject - + Invalid rig name - \ & / not allowed @@ -4961,7 +4961,7 @@ a few, particularly some Kenwood rigs, require it). - How this program activates the PTT on your radio + How this program activates the PTT on your radio? @@ -5917,104 +5917,114 @@ Right click for insert and delete options. main - + Fatal error - + Unexpected fatal error - + Where <rig-name> is for multi-instance support. - + rig-name - + Where <configuration> is an existing one. - + configuration - + + Where <language> is <lang-code>[-<country-code>]. + + + + + language + + + + Writable files in test location. Use with caution, for testing only. - + Command line error - + Command line help - + Application version - + Another instance may be running - + try to remove stale lock file? - + Failed to create a temporary directory - - + + Path: "%1" - + Failed to create a usable temporary directory - + Another application may be locking the directory - + Failed to create data directory - + path: "%1" - + Shared memory error - + Unable to create shared memory segment diff --git a/translations/wsjtx_pt_PT.ts b/translations/wsjtx_pt_PT.ts index 383474e87..8c55016af 100644 --- a/translations/wsjtx_pt_PT.ts +++ b/translations/wsjtx_pt_PT.ts @@ -18,7 +18,7 @@ - Are you sure you want to delete the %n selected QSO(s) from the log + Are you sure you want to delete the %n selected QSO(s) from the log? @@ -692,7 +692,7 @@ Format: - + DX Lab Suite Commander sent an unrecognized frequency @@ -3945,7 +3945,7 @@ UDP server %2:%3 QObject - + Invalid rig name - \ & / not allowed @@ -4959,11 +4959,6 @@ a few, particularly some Kenwood rigs, require it). RTS: - - - How this program activates the PTT on your radio - - PTT Method @@ -5599,6 +5594,11 @@ Right click for insert and delete options. <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> + + + How this program activates the PTT on your radio? + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> @@ -5917,104 +5917,114 @@ Right click for insert and delete options. main - + Fatal error - + Unexpected fatal error - + Where <rig-name> is for multi-instance support. - + rig-name - + Where <configuration> is an existing one. - + configuration - + + Where <language> is <lang-code>[-<country-code>]. + + + + + language + + + + Writable files in test location. Use with caution, for testing only. - + Command line error - + Command line help - + Application version - + Another instance may be running - + try to remove stale lock file? - + Failed to create a temporary directory - - + + Path: "%1" - + Failed to create a usable temporary directory - + Another application may be locking the directory - + Failed to create data directory - + path: "%1" - + Shared memory error - + Unable to create shared memory segment diff --git a/widgets/AbstractLogWindow.cpp b/widgets/AbstractLogWindow.cpp index bbe07a846..cbe2b8735 100644 --- a/widgets/AbstractLogWindow.cpp +++ b/widgets/AbstractLogWindow.cpp @@ -63,7 +63,7 @@ void AbstractLogWindow::impl::delete_QSOs () && MessageBox::Yes == MessageBox::query_message (self_ , tr ("Confirm Delete") , tr ("Are you sure you want to delete the %n " - "selected QSO(s) from the log", "" + "selected QSO(s) from the log?", "" , row_indexes.size ()))) { // We must work with source model indexes because we don't want row From 35fdbf9fee2bd8a17ab349564f46fa0771a082ed Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 19 May 2020 02:20:11 +0100 Subject: [PATCH 012/520] Initial Catalan UI translation by Xavi, EA3W --- translations/wsjtx_ca_ES.ts | 2421 ++++++++++++++++++----------------- 1 file changed, 1270 insertions(+), 1151 deletions(-) diff --git a/translations/wsjtx_ca_ES.ts b/translations/wsjtx_ca_ES.ts index d2fa39834..a73faee64 100644 --- a/translations/wsjtx_ca_ES.ts +++ b/translations/wsjtx_ca_ES.ts @@ -1,12 +1,12 @@ - + AbstractLogWindow &Delete ... - + &Esborrar ... @@ -14,16 +14,24 @@ Confirm Delete - + Confirma Esborrar - Are you sure you want to delete the %n selected QSO(s) from the log + Are you sure you want to delete the %n selected QSO(s) from the log? + + Are you sure you want to delete the %n selected QSO(s) from the log + Estas segur que vols esborrar els %n QSO's seleccionats del registre ? + + Estas segur que vols esborrar els %n QSO's seleccionats del registre + Estas segur que vols esborrar els %n QSO's seleccionats del registre + + Astro @@ -31,118 +39,118 @@ Doppler tracking - + Seguiment de Doppler <html><head/><body><p>One station does all Doppler shift correction, their QSO partner receives and transmits on the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> - + <html><head/><body><p>Una estació realitza totes les correccions de desplaçament Doppler, l'altra corresponsal de QSO rep i transmet a la freqüència de desplaçament.</p><p>Si l'equip no accepta comandes CAT QSY mentre es transmet, només s'aplicarà una sola correcció durant tot el període de transmissió.</p></body></html> Full Doppler to DX Grid - + Doppler complet a graella de DX <html><head/><body><p>Transmit takes place on sked frequency and receive frequency is corrected for own echoes. </p><p>This mode can be used for calling CQ, or when using Echo mode.</p></body></html> - + <html><head/><body><p>La transmissió té lloc en freqüència de desplaçament i la freqüència de recepció es corregeix per ecos propis. </p><p>Aquest mode es pot utilitzar per trucar a CQ o per utilitzar el mode Echo.</p></body></html> Own Echo - + Ressò propi <html><head/><body><p>Both stations correct for Doppler shift such that they would be heard on the moon at the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p><p>Use this option also for Echo mode.</p></body></html> - + <html><head/><body><p>Ambdues estacions corregeixen pel canvi Doppler de manera que seran escoltades a la lluna amb la freqüència de desplaçament.</p><p>Si l'equip no accepta comandes CAT QSY mentre es transmet, només s'aplicarà una sola correcció durant tot el període de transmissió.</p><p>Fes servir aquesta opció també per al mode eco.</p></body></html> Constant frequency on Moon - + Freqüència constant a la Lluna <html><head/><body><p>DX station announces their TX Freq, which is entered as the Sked Freq. Correction applied to RX and TX so you appear on the DX's station's own echo Freq.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> - + <html><head/><body><p>La estació DX anuncia la seva TX Freq, que s'introdueix com a Sked Freq. Correcció aplicada a RX i TX per tal que aparegui al propi eco Freq de l'estació del DX.</p><p>Si l'equip no accepta comandes CAT QSY mentre es transmet, només s'aplicarà una sola correcció durant tot el període de transmissió.</p></body></html> On DX Echo - + Endavant el Dx Ressò <html><head/><body><p>Tune radio manually and select this mode to put your echo on the same frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> - + <html><head/><body><p>Sintonitza la ràdio manualment i selecciona aquest mode per posar el teu eco a la mateixa freqüència.</p><p>Si l'equip no accepta comandes CAT QSY mentre es transmet, només s'aplicarà una sola correcció durant tot el període de transmissió.</p></body></html> Call DX - + Indicatiu de DX <html><head/><body><p>No Doppler shift correction is applied. This may be used when the QSO partner does full Doppler correction to your grid square.</p></body></html> - + <html><head/><body><p>No s'aplica cap correcció de desplaçament Doppler. Això es pot utilitzar quan l'altra corresponsal de QSO fa la correcció completa del Doppler al quadrat del teu Locator.</p></body></html> None - + Cap Sked frequency - + Freqüència marcada 0 - + 0 Rx: - + RX: Tx: - + TX: <html><head/><body><p>Press and hold the CTRL key to adjust the sked frequency manually with the rig's VFO dial or enter frequency directly into the band entry field on the main window.</p></body></html> - + <html><head/><body><p>Manten premuda la tecla CTRL per ajustar la freqüència de desplaçament manualment amb el dial VFO del equip o introdueix la freqüència directament al camp d’entrada de banda de la finestra principal.</p></body></html> Astro Data - + Dades Astro Astronomical Data - + Dades astronòmiques Doppler Tracking Error - + Error de Seguiment de Doppler Split operating is required for Doppler tracking - + L’Split és necessàri per al seguiment de Doppler Go to "Menu->File->Settings->Radio" to enable split operation - + Vés a "Menú-> Fitxer-> Configuració-> Ràdio" per habilitar l'operació dividida @@ -150,32 +158,32 @@ Band name - + Nom banda Lower frequency limit - + Límit inferior de freqüència Upper frequency limit - + Límit superior de freqüència Band - + Banda Lower Limit - + Límit inferior Upper Limit - + Límit superior @@ -183,12 +191,12 @@ About WSJT-X - + Quant a WSJT-X OK - + D'acord @@ -196,7 +204,7 @@ &Set Rx && Tx Offset - + &Definieix el desplaçament de RX && TX @@ -204,37 +212,37 @@ Freq(MHz) - + Freqüència en MHz Mode - + Mode Date & Time(UTC) - + Data i Hora en UTC Call - + Indicatiu Sent - + Enviat Rcvd - + Rebut Band - + Banda @@ -242,17 +250,17 @@ Contest Log - + Registre de Concurs <html><head/><body><p>Right-click here for available actions.</p></body></html> - + <html><head/><body><p>Fes clic amb el botó dret per veure les accions disponibles.</p></body></html> Right-click here for available actions. - + Fes clic amb el botó dret per veure les accions disponibles. @@ -260,7 +268,7 @@ Callsign - + Indicatiu @@ -283,87 +291,87 @@ K1ABC - + EA3RDG CQ in message - + CQ al missatge My Call in message - + El meu Indicatiu en el missatge Transmitted message - + Missatge transmès New DXCC - + Nou DXCC New Grid - + Nou Locator New DXCC on Band - + Nou DXCC en banda New Call - + No Indicatiu New Grid on Band - + Nou Locator en banda New Call on Band - + Nou Indicatiu en banda Uploads to LotW - + Càrregues a LotW New Continent - + Nou Continent New Continent on Band - + Nou Continent en banda New CQ Zone - + Nova Zona CQ New CQ Zone on Band - + Nova Zona CQ en banda New ITU Zone - + Nova Zona ITU New ITU Zone on Band - + Nova Zona ITU en banda @@ -373,68 +381,68 @@ &Delete - + &Esborrar &Insert ... - + &Insereix ... Failed to create save directory - + No s'ha pogut crear el directori per desar path: "%1% - + ruta: "%1% Failed to create samples directory - + No s'ha pogut crear el directori d'exemples path: "%1" - + ruta: "%1" &Load ... - + &Carrega ... &Save as ... - + &Guardar com ... &Merge ... - + &Combinar ... &Reset - + &Restablir Serial Port: - + Port sèrie: Serial port used for CAT control - + Port sèrie utilitzat per al control CAT Network Server: - + Servidor de xarxa: @@ -444,12 +452,17 @@ Formats: hostname:port IPv4-address:port [IPv6-address]:port - + Hostname opcional i port d'accés del servei de xarxa. +Deixa-ho en blanc per a un valor predeterminat raonable en aquesta màquina. +Formats: + hostname:port + IPv4-address:port + [IPv6-address]:port USB Device: - + Dispositiu USB: @@ -457,157 +470,160 @@ Formats: Leave blank for a sensible default for the rig. Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - + Identificació opcional del dispositiu. +Deixa en blanc un valor predeterminat raonable per a l'equip. +Format: + [VID[:PID[:VENDOR[:PRODUCT]]]] Invalid audio input device - + El dispositiu d'entrada d'àudio no és vàlid Invalid audio out device - + El dispositiu de sortida d'àudio no és vàlid Invalid PTT method - + El mètode PTT no és vàlid Invalid PTT port - + El port PTT no és vàlid Invalid Contest Exchange - + Intercanvi de concurs no vàlid You must input a valid ARRL Field Day exchange - + Has d’introduir un intercanvi de Field Day de l'ARRL vàlid You must input a valid ARRL RTTY Roundup exchange - + Has d’introduir un intercanvi vàlid de l'ARRL RTTY Roundup Reset Decode Highlighting - + Restableix Ressaltat de Descodificació Reset all decode highlighting and priorities to default values - + Restableix tot el ressaltat i les prioritats de descodificació als valors predeterminats WSJT-X Decoded Text Font Chooser - + Tipus de text de pantalla de descodificació WSJT-X Load Working Frequencies - + Càrrega les freqüències de treball Frequency files (*.qrg);;All files (*.*) - + Fitxers de freqüència (*.qrg);;All files (*.*) Replace Working Frequencies - + Substitueix les freqüències de treball Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - + Segur que vols descartar les teves freqüències de treball actuals i reemplaçar-les per les carregades ? Merge Working Frequencies - + Combina les freqüències de treball Not a valid frequencies file - + El fitxer de freqüències no és vàlid Incorrect file magic - + Fitxer màgic incorrecte Version is too new - + La versió és massa nova Contents corrupt - + Continguts corruptes Save Working Frequencies - + Desa les freqüències de treball Only Save Selected Working Frequencies - + Desa només les freqüències de treball seleccionades Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. - + Estàs segur que vols desar només les freqüències de treball seleccionades actualment? Fes clic a No per desar-ho tot. Reset Working Frequencies - + Restablir les freqüències de treball Are you sure you want to discard your current working frequencies and replace them with default ones? - + Segur que vols descartar les teves freqüències de treball actuals i reemplaçar-les per altres? Save Directory - + Desa el directori AzEl Directory - + AzEl Directori Rig control error - + Error de control del equip Failed to open connection to rig - + No s'ha pogut obrir la connexió al equip Rig failure - + Fallida de l'equip @@ -616,85 +632,89 @@ Format: Failed to connect to DX Lab Suite Commander - + Fallada al connectar al DX Lab Suite Commander + DX Lab Suite Commander didn't respond correctly reading frequency: - + El DX Lab Suite Commander no ha respost correctament la freqüència de lectura: DX Lab Suite Commander sent an unrecognised TX state: - + El DX Lab Suite Commander ha enviat un estat de TX desconegut: DX Lab Suite Commander didn't respond correctly polling TX status: - + El DX Lab Suite Commander no ha respost correctament l'estat de TX del sondeig: DX Lab Suite Commander rig did not respond to PTT: - + La transmissió del DX Lab Suite Commander no ha respost al PTT: DX Lab Suite Commander didn't respond correctly polling frequency: - + El DX Lab Suite Commander no ha respost correctament la freqüència del sondeig: DX Lab Suite Commander didn't respond correctly polling TX frequency: - + El DX Lab Suite Commander no ha respost correctament la freqüència del sondeig: DX Lab Suite Commander sent an unrecognised split state: - + El DX Lab Suite Commander ha enviat un estat de split desconegut: DX Lab Suite Commander didn't respond correctly polling split status: - + El DX Lab Suite Commander no ha respost correctament l'estat del split del sondeig: DX Lab Suite Commander sent an unrecognised mode: " - + El DX Lab Suite Commander ha enviat un mode desconegut: " DX Lab Suite Commander didn't respond correctly polling mode: - + El DX Lab Suite Commander no ha respost correctament el mode del sondeig: DX Lab Suite Commander send command failed - + Errada del DX Lab Suite Commander en l'enviament de comanda + DX Lab Suite Commander failed to send command "%1": %2 - + El DX Lab Suite Commander no ha pogut enviar la comanda "%1": %2 + DX Lab Suite Commander send command "%1" read reply failed: %2 - + El DX Lab Suite Commander ha enviat la comanda "%1" lectura de la resposta incorrecta: %2 + DX Lab Suite Commander retries exhausted sending command "%1" - + El DX Lab Suite Commander ha esgotat els reintents de la comanda "%1" - + DX Lab Suite Commander sent an unrecognized frequency - + El DX Lab Suite Commander ha enviat una freqüència desconeguda @@ -702,37 +722,37 @@ Format: &Foreground color ... - + &Color del primer pla ... Choose %1 Foreground Color - + Tria %1 el color del primer pla &Unset foreground color - + &Desactivar el color del primer pla &Background color ... - + &Color de fons ... Choose %1 Background Color - + Tria %1 un color de fons U&nset background color - + E&limina el color de fons &Reset this item to defaults - + &Restableix aquest element per defecte @@ -740,7 +760,7 @@ Format: Highlight Type - + Tipus de relleu @@ -748,33 +768,33 @@ Format: &Delete - + &Esborrar &Insert ... - + &Insereix ... Insert &after ... - + Insereix &després ... Import Palette - + Importa la paleta Palettes (*.pal) - + Paletes (*.pal) Export Palette - + Exporta la paleta @@ -782,7 +802,7 @@ Format: Gray time: - + Temps gris: @@ -791,14 +811,15 @@ Format: URL Error - + Error al URL Invalid URL: "%1" - + URL no vàlida: +"%1" @@ -809,63 +830,64 @@ Format: JSON Error - + Error a JSON Contents file syntax error %1 at character offset %2 - + Error de sintaxi %1 al fitxer de contingut, posició %2 Contents file top level must be a JSON array - + El nivell superior del fitxer de contingut ha de ser una matriu JSON File System Error - + Error al fitxer de sistema Failed to open "%1" Error: %2 - %3 - + Error a l'obrir "%1" +Error: %2 - %3 Contents entries must be a JSON array - + Les entrades de contingut han de ser una matriu JSON Contents entries must have a valid type - + Les entrades de contingut han de tenir un tipus vàlid Contents entries must have a valid name - + Les entrades de contingut han de tenir un nom vàlid Contents entries must be JSON objects - + Les entrades de contingut han de ser objectes JSON Contents directories must be relative and within "%1" - + Els directoris de contingut han de ser relatius i estar dins de "%1" Network Error - + Error de xarxa Authentication required - + Cal autenticació @@ -873,7 +895,7 @@ Error: %2 - %3 &Erase - + &Esborrar @@ -882,67 +904,67 @@ Error: %2 - %3 Echo Graph - + Gràfic eco <html><head/><body><p>Compression factor for frequency scale</p></body></html> - + <html><head/><body><p>Factor de compressió per a l'escala de freqüència</p></body></html> Bins/Pixel - + Bins/Pixel Gain - + Guany <html><head/><body><p>Echo spectrum gain</p></body></html> - + <html><head/><body><p>Augment espectre d'eco</p></body></html> Zero - + Zero <html><head/><body><p>Echo spectrum zero</p></body></html> - + <html><head/><body><p>Espectre d'eco zero</p></body></html> <html><head/><body><p>Smoothing of echo spectrum</p></body></html> - + <html><head/><body><p>Suavització de l'espectre del eco</p></body></html> Smooth - + Llis <html><head/><body><p>Number of echo transmissions averaged</p></body></html> - + <html><head/><body><p>Nombre mig de transmissions eco</p></body></html> N: 0 - + N: 0 <html><head/><body><p>Click to cycle through a sequence of colors and line widths.</p></body></html> - + <html><head/><body><p>Fes clic per passar per una seqüència de colors i amplades de línia.</p></body></html> Colors - + Colors @@ -950,7 +972,7 @@ Error: %2 - %3 Emulated split mode requires rig to be in simplex mode - + El mode de SPLIT requereix que l'equip estigui en mode simplex @@ -958,73 +980,73 @@ Error: %2 - %3 Phase - + Fase Freq (Hz) - + Freq (Hz) Phase (Π) - + Fase (Π) Delay (ms) - + Retard (ms) Measured - + Mesurat Proposed - + Proposat Current - + Actual Group Delay - + Retard del grup Amplitude - + Amplitud Relative Power (dB) - + Potència relativa (dB) Reference - + Referència Phase ... - + Fase ... Refresh - + Actualització Discard Measured - + Rebutja el mesurament @@ -1032,12 +1054,12 @@ Error: %2 - %3 Configuration to Clone From - + Configuració per clonar des de &Source Configuration Name: - + &Nom de la configuració de la font: @@ -1045,128 +1067,128 @@ Error: %2 - %3 Dialog - + Diàleg Location: - + Ubicació: SNJ - + SNJ Contest: - + Concurs: ARRL-RTTY - + ARRL-RTTY Callsign: - + Indicatiu: Category-Operator: - + Categoria-Oprador: SINGLE-OP - + Mono-operador Category-Transmitter: - + Categoria de transmissor: ONE - + UN Category-Power: - + Categoria de Potència: LOW - + BAIXA Category-Assisted: - + Categoria Assistida: NON-ASSISTED - + No Assistida Category-Band: - + Categoria de Banda: ALL - + TOTS Claimed-Score: - + Puntuació reclamada: Operators: - + Operadors: Club: - + Ràdio Club: Name: - + Nom: Address: - + Adressa: Save Log File - + Enreguistra el fitxer de log Cabrillo Log (*.cbr) - + Registre Cabrillo (*.cbr) Cannot open "%1" for writing: %2 - + No es pot obrir "%1" per escriure: %2 Export Cabrillo File Error - + Error al exportar el fitxer Cabrillo @@ -1175,32 +1197,32 @@ Error: %2 - %3 Fast Graph - + Gràfic ràpid Waterfall gain - + Guany de la cascada Waterfall zero - + Cascada zero Spectrum zero - + Espectre zero <html><head/><body><p>Set reasonable levels for gain and zero sliders.</p></body></html> - + <html><head/><body><p>Estableix nivells raonables per a les trames de guany i zero.</p></body></html> Auto Level - + Nivell automàtic @@ -1208,32 +1230,32 @@ Error: %2 - %3 Date & Time(UTC) - + Data i Hora en UTC Call - + Indicatiu Grid - + Locator Sent - + Enviat Rcvd - + Rebut Band - + Banda @@ -1241,74 +1263,74 @@ Error: %2 - %3 Fox Log - + Registre Guineu <html><head/><body><p>Right-click here for available actions.</p></body></html> - + <html><head/><body><p>Fes clic amb el botó dret per a les accions disponibles.</p></body></html> Callers: - + Indicatius: N - + N In progress: - + En progrés: Rate: - + Valoració: &Export ADIF ... - + &Exporta ADIF ... Export ADIF Log File - + Exporta fitxer de reguistre en format ADIF ADIF Log (*.adi) - + Registre ADIF (*.adi) Export ADIF File Error - + Error al fitxer d'exportar en format ADIF Cannot open "%1" for writing: %2 - + No es pot obrir "%1" per escriure: %2 &Reset ... - + &Restablir ... Confirm Reset - + Confirma que vols Restablir Are you sure you want to erase file FoxQSO.txt and start a new Fox log? - + Estàs segur que vols esborrar el fitxer FoxQSO.txt i començar un nou registre de Guineu? @@ -1316,22 +1338,22 @@ Error: %2 - %3 Add Frequency - + Afedueix Freqüència IARU &Region: - + Regió &IARU: &Mode: - + &Mode: &Frequency (MHz): - + &Freqüència en MHz.: @@ -1340,25 +1362,25 @@ Error: %2 - %3 IARU Region - + Regió IARU Mode - + Mode Frequency - + Freqüència Frequency (MHz) - + Freqüència en MHz @@ -1368,81 +1390,84 @@ Error: %2 - %3 Failed to connect to Ham Radio Deluxe - + No s'ha pogut connectar amb el Ham Radio Deluxe + Failed to open file "%1": %2. - + Error a l'obrir el fitxer "%1": %2. Ham Radio Deluxe: no rig found - + Ham Radio Deluxe: no s'ha trobat cap equip Ham Radio Deluxe: rig doesn't support mode - + Ham Radio Deluxe: l'equip no admet el mode Ham Radio Deluxe: sent an unrecognised mode - + Ham Radio Deluxe: ha enviat un mode desconegut Ham Radio Deluxe: item not found in %1 dropdown list - + Ham Radio Deluxe: element no trobat a la llista desplegable %1 Ham Radio Deluxe: button not available - + Ham Radio Deluxe: botó no disponible Ham Radio Deluxe didn't respond as expected - + La resposta del Ham Radio Deluxe no és l'esperada Ham Radio Deluxe: rig has disappeared or changed - + Ham Radio Deluxe: l'equip ha desaparegut o s'ha modificat Ham Radio Deluxe send command "%1" failed %2 - + La comanda %1 del Ham Radio Deluxe ha fallat %2 + Ham Radio Deluxe: failed to write command "%1" - + Ham Radio Deluxe: error a l'escriure la comanda "%1" Ham Radio Deluxe sent an invalid reply to our command "%1" - + La resposta del Ham Radio Deluxe no és vàlida per a la comanda "%1" Ham Radio Deluxe failed to reply to command "%1" %2 - + Fallada a la resposta del Ham Radio Deluxe a la comanda "%1" %2 + Ham Radio Deluxe retries exhausted sending command "%1" - + El Ham Radio Deluxe ha esgotat els reintents de la comanda "%1" Ham Radio Deluxe didn't respond to command "%1" as expected - + La resposta del Ham Radio Deluxe a la instrucció "%1" no és l'esperada @@ -1451,85 +1476,85 @@ Error: %2 - %3 Hamlib initialisation error - + Error d'inicialització de Hamlib Hamlib settings file error: %1 at character offset %2 - + Error del fitxer de configuració de Hamlib: %1 en el desplaçament de caràcters %2 Hamlib settings file error: top level must be a JSON object - + Error del fitxer de configuració de Hamlib: el nivell superior ha de ser un objecte JSON Hamlib settings file error: config must be a JSON object - + Error del fitxer de configuració de Hamlib: config ha de ser un objecte JSON Unsupported CAT type - + Tipus CAT no admès Hamlib error: %1 while %2 - + Error de Hamlib: %1 mentre %2 opening connection to rig - + connexió d'obertura a l'equip getting current frequency - + obtenir la freqüència actual getting current mode - + obtenir el mode actual exchanging VFOs - + intercanviant VFOs getting other VFO frequency - + obtenint una altra freqüència de VFO getting other VFO mode - + obtenint un altre mode VFO setting current VFO - + configuració del VFO actual getting frequency - + obtenint freqüència getting mode - + obtenint mode getting current VFO - + obtenir VFO actual @@ -1537,7 +1562,7 @@ Error: %2 - %3 getting current VFO frequency - + obtenir la freqüència actual del VFO @@ -1547,7 +1572,7 @@ Error: %2 - %3 setting frequency - + ajust de freqüència @@ -1555,7 +1580,7 @@ Error: %2 - %3 getting current VFO mode - + obtenir el mode VFO actual @@ -1564,64 +1589,64 @@ Error: %2 - %3 setting current VFO mode - + ajust del mode VFO actual setting/unsetting split mode - + activar/desactivar mode dividid (split) setting split mode - + activar mode dividid (Split) setting split TX frequency and mode - + ajust de freqüència i mode de transmissió dividida (Split) setting split TX frequency - + ajust de freqüència dividida (Split) TX getting split TX VFO mode - + obtenir el mode dividit (Split) TX VFO setting split TX VFO mode - + configuració del mode dividid (Split) TX VFO getting PTT state - + obtenir estat del PTT setting PTT on - + activant PTT setting PTT off - + desactivació del PTT setting a configuration item - + establir un element de configuració getting a configuration item - + obtenir un element de configuració @@ -1629,17 +1654,17 @@ Error: %2 - %3 Help file error - + Error del fitxer d'ajuda Cannot open "%1" for reading - + No es pot obrir "%1" per llegir Error: %1 - + Error: %1 @@ -1648,7 +1673,7 @@ Error: %2 - %3 IARU Region - + Regió IARU @@ -1656,120 +1681,120 @@ Error: %2 - %3 Click OK to confirm the following QSO: - + Clica Acceptar per confirmar el següent QSO: Call - + Indicatiu Start - + Inici dd/MM/yyyy HH:mm:ss - + dd/MM/yyyy HH:mm:ss End - + Final Mode - + Mode Band - + Banda Rpt Sent - + Senyal Env Rpt Rcvd - + Senyal Rev Grid - + Locator Name - + Nom Tx power - + Potència de TX Retain - + Mantenir Comments - + Comentaris Operator - + Operador Exch sent - + Intercanvi enviat Rcvd - + Rebut Invalid QSO Data - + Les dades de QSO no són vàlides Check exchange sent and received - + Comprovació de l’intercanvi enviat i rebut Check all fields - + Comprova tots els camps Log file error - + Error al fitxer de registre Cannot open "%1" for append - + No es pot obrir "%1" per afegir Error: %1 - + Error: %1 @@ -1778,39 +1803,47 @@ Error: %2 - %3 Network Error - SSL/TLS support not installed, cannot fetch: '%1' - + Error de xarxa - no s’instal·la el suport SSL/TLS, no es pot obtenir: +'%1' Network Error - Too many redirects: '%1' - + Error de xarxa - hi ha massa redireccions: +'%1' Network Error: %1 - + Error de xarxa: +%1 File System Error - Cannot commit changes to: "%1" - + Error del sistema de fitxers - no es poden fer canvis a: +"%1" File System Error - Cannot open file: "%1" Error(%2): %3 - + Error del sistema de fitxers - no es pot obrir el fitxer: +"%1" +Error(%2): %3 File System Error - Cannot write to file: "%1" Error(%2): %3 - + Error del sistema de fitxers - no es pot escriure al fitxer: +"%1" +Error(%2): %3 @@ -1818,168 +1851,168 @@ Error(%2): %3 WSJT-X by K1JT - + WSJT-X de K1JT Band Activity - + Activitat a la banda UTC dB DT Freq Dr - + UTC dB DH Freq Dr Rx Frequency - + Freqüència RX CQ only - + només CQ Enter this QSO in log - + Introduïu aquest QSO al registre Log &QSO - + Log &QSO Stop monitoring - + Atura la monitorització &Stop - + &Atura Toggle monitoring On/Off - + Activació / desactivació del control de monitorització &Monitor - + &Monitor <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> - + <html><head/><body><p>Esborra la finestra dreta Feu doble clic per esborrar les dues finestres.</p></body></html> Erase right window. Double-click to erase both windows. - + Esborra la finestra dreta Feu doble clic per esborrar les dues finestres. &Erase - + &Esborra <html><head/><body><p>Clear the accumulating message average.</p></body></html> - + <html><head/><body><p>Neteja la mitjana de missatges acumulats.</p></body></html> Clear the accumulating message average. - + Neteja la mitjana de missatges acumulats. Clear Avg - + Esborra mitjana <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> - + <html><head/><body><p>Descodificar el període de RX més recent en la freqüència de QSO</p></body></html> Decode most recent Rx period at QSO Frequency - + Descodificar el període de RX més recent en la freqüència de QSO &Decode - + &Descodificar <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> - + <html><head/><body><p>Activar / Desactiva TX</p></body></html> Toggle Auto-Tx On/Off - + Activar / Desactiva TX E&nable Tx - + A&ctiva TX Stop transmitting immediately - + Deixa de transmetre immediatament &Halt Tx - + &Atura TX <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> - + <html><head/><body><p>Activa / desactiva el to TX pur</p></body></html> Toggle a pure Tx tone On/Off - + Activa / desactiva el to TX pur &Tune - + &Sintonitza Menus - + Menús USB dial frequency - + freqüència de dial USB 14.078 000 - + 14.078 000 <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> - + <html><head/><body><p>30dB recomanat quan només hi ha soroll<br/>en Verd és un bon nivell<br/>en Vermell és poden produir retalls<br/>en Groc quan és massa baix</p></body></html> Rx Signal - + Senyal RX @@ -1987,457 +2020,464 @@ Error(%2): %3 Green when good Red when clipping may occur Yellow when too low - + 30dB recomanat quan només hi ha soroll +en Verd és un bon nivell +en Vermell és poden produir retalls +en Groc quan és massa baix DX Call - + Indicatiu DX DX Grid - + Locator DX Callsign of station to be worked - + Indiatiu de l'estació per ser treballada Search for callsign in database - + Buscar el indicatiu a la base de dades &Lookup - + &Cercar Locator of station to be worked - + Locator de l'estació a treballar Az: 251 16553 km - + Az: 251 16553 km Add callsign and locator to database - + Afegir indicatiu i locator a la base de dades Add - + Afegir Pwr - + Potència <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> - + <html><head/><body><p>Si hi ha hagut un error en el control de l'equip, fes clic per restablir i llegir la freqüència del dial. S implica mode dividit o split.</p></body></html> If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. - + Si hi ha hagut un error en el control de l'equip, fes clic per restablir i llegir la freqüència del dial. S implica mode dividit o split. ? - + ? Adjust Tx audio level - + Ajust del nivell d'àudio de TX <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> - + <html><head/><body><p>Selecciona la banda operativa, introdueix la freqüència en MHz o introdueix un increment de kHz seguit de k.</p></body></html> Frequency entry - + Freqüència d'entrada Select operating band or enter frequency in MHz or enter kHz increment followed by k. - + Selecciona la banda operativa, introdueix la freqüència en MHz o introdueix un increment de kHz seguit de k. <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> - + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> - + <html><head/><body><p>Comprova que es mantingui la freqüència de TX fixada quan facis doble clic sobre un text descodificat.</p></body></html> Check to keep Tx frequency fixed when double-clicking on decoded text. - + Comprova que es mantingui la freqüència de TX fixada quan facis doble clic sobre un text descodificat. Hold Tx Freq - + Manté TX Freq Audio Rx frequency - + Freqüència d'Àudio en RX Hz - + Hz Rx - + RX Set Tx frequency to Rx Frequency - + Estableix la freqüència de TX en la de RX ▲ - + Frequency tolerance (Hz) - + Freqüència de Tolerància F Tol - + F Tol Set Rx frequency to Tx Frequency - + Estableix la freqüència de RX en la de TX ▼ - + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> - + <html><head/><body><p>Sincronització del llindar. Els nombres més baixos accepten senyals de sincronització més febles.</p></body></html> Synchronizing threshold. Lower numbers accept weaker sync signals. - + Sincronització del llindar. Els nombres més baixos accepten senyals de sincronització més febles. Sync - + Sinc <html><head/><body><p>Check to use short-format messages.</p></body></html> - + <html><head/><body><p>Comprova que utilitzes missatges de format curt.</p></body></html> Check to use short-format messages. - + Comprova que utilitzes missatges de format curt. Sh - + Sh <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> - + <html><head/><body><p>Comprova que actives els modes ràpids JT9</p></body></html> Check to enable JT9 fast modes - + Comprova que actives els modes ràpids JT9 Fast - + Ràpid <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> - + <html><head/><body><p>Comprova que actives la seqüència automàtica dels missatges de TX en funció dels missatges rebuts.</p></body></html> Check to enable automatic sequencing of Tx messages based on received messages. - + Comprova que actives la seqüència automàtica dels missatges de TX en funció dels missatges rebuts. Auto Seq - + Seqüència Automàtica <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> - + <html><head/><body><p>Contesta al primer CQ descodificat.</p></body></html> Check to call the first decoded responder to my CQ. - + Contesta al primer CQ descodificat. Call 1st - + Contesta al primer CQ Check to generate "@1250 (SEND MSGS)" in Tx6. - + Comprova per generar "@1250 (SEND MSGS)" a TX6. Tx6 - + TX6 <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> - + <html><head/><body><p>Marca a TX en minuts o seqüències de números parells, a partir de 0; desmarca les seqüències senars.</p></body></html> Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. - + Marca a TX en minuts o seqüències de números parells, a partir de 0; desmarca les seqüències senars. Tx even/1st - + Alternar minut TX Parell / Senar <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> - + <html><head/><body><p>Freqüència per cridar CQ en kHz per sobre dels MHz actuals</p></body></html> Frequency to call CQ on in kHz above the current MHz - + Freqüència per cridar CQ en kHz per sobre dels MHz actuals Tx CQ - + TX CQ <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> - + <html><head/><body><p>Marca això per trucar a CQ a la freqüència &quot;TX CQ&quot;. RX serà a la freqüència actual i el missatge CQ inclourà la freqüència RX actual perquè els corresponsals sàpiguen quina freqüència respondre.</p><p>No està disponible per als titulars de indicatiu no estàndard.</p></body></html> Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. - + Marca això per trucar a CQ a la freqüència "TX CQ". RX serà a la freqüència actual i el missatge CQ inclourà la freqüència RX actual perquè els corresponsals sàpiguen quina freqüència respondre. +No està disponible per als titulars de indicatiu no estàndard. Rx All Freqs - + RX a totes les freqüències <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> - + <html><head/><body><p>La submode determina l'espai entre tons; A és més estret.</p></body></html> Submode determines tone spacing; A is narrowest. - + La submode determina l'espai entre tons; A és més estret. Submode - + Submode Fox - + Guineu <html><head/><body><p>Check to monitor Sh messages.</p></body></html> - + <html><head/><body><p>Marca per controlar els missatges Sh.</p></body></html> Check to monitor Sh messages. - + Marca per controlar els missatges Sh. SWL - + SWL Best S+P - + El millor S+P <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> - + <html><head/><body><p>Comprova-ho per començar a enregistrar dades de calibració.<br/>Mentre la mesura de la correcció de calibratge està desactivada.<br/>Si no està marcat, podeu veure els resultats de la calibració.</p></body></html> Check this to start recording calibration data. While measuring calibration correction is disabled. When not checked you can view the calibration results. - + Comprova-ho per començar a enregistrar dades de calibració. +Mentre la mesura de la correcció de calibratge està desactivada. +Si no està marcat, podeu veure els resultats de la calibració. Measure - + Mesura <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> - + <html><head/><body><p>Informe de senyal: Relació senyal / soroll en amplada de banda de referència de 2500 Hz (dB).</p></body></html> Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). - + Informe de senyal: Relació senyal / soroll en amplada de banda de referència de 2500 Hz (dB). Report - + Informe de senyal <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> - + <html><head/><body><p>TX / RX o Longitud de la seqüència de calibratge de la freqüència</p></body></html> Tx/Rx or Frequency calibration sequence length - + TX / RX o Longitud de la seqüència de calibratge de la freqüència s - + s T/R - + T/R Toggle Tx mode - + Commuta el mode TX Tx JT9 @ - + TX JT9 @ Audio Tx frequency - + Freqüència d'àudio de TX Tx - + TX Tx# - + TX# <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> - + <html><head/><body><p>Fes doble clic sobre un altre estació per fer una cua en trucada per al vostre proper QSO.</p></body></html> Double-click on another caller to queue that call for your next QSO. - + Fes doble clic sobre un altre estació per fer una cua en trucada per al vostre proper QSO. Next Call - + Proper Indicatiu 1 - + 1 Send this message in next Tx interval - + Envia aquest missatge al següent interval de TX Ctrl+2 - + Ctrl+2 <html><head/><body><p>Send this message in next Tx interval</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>Envia aquest missatge al següent interval de TX.</p><p>Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1)</p></body></html> Send this message in next Tx interval 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) - + Envia aquest missatge al següent interval de TX. +Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1) Ctrl+1 - + Ctrl+1 @@ -2445,159 +2485,166 @@ Double click to toggle the use of the Tx1 message to start a QSO with a station Switch to this Tx message NOW - + Canvia a aquest missatge de TX ARA Tx &2 - + TX &2 Alt+2 - + Alt+2 <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>Canvia a aquest missatge de TX ARA.</p><p>Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1)</p></body></html> Switch to this Tx message NOW 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) - + Canvia a aquest missatge de TX ARA. +Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1) Tx &1 - + TX &1 Alt+1 - + Alt+1 Ctrl+6 - + Ctrl+6 <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> - + <html><head/><body><p>Envia aquest missatge al següent interval de TX.</p><p>Fes doble clic per restablir el missatge estàndard 73</p></body></html> Send this message in next Tx interval Double-click to reset to the standard 73 message - + Envia aquest missatge al següent interval de TX. +Fes doble clic per restablir el missatge estàndard 73 Ctrl+5 - + Ctrl+5 Ctrl+3 - + Ctrl+3 Tx &3 - + TX &3 Alt+3 - + Alt+3 <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>Envia aquest missatge al següent interval de TX.</p><p>Fes doble clic per alternar entre els missatges RRR i RR73 a TX4 (no està permès per a titulars d'indicatius compostos del tipus 2)</p><p>Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge.</p></body></html> Send this message in next Tx interval Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required - + Envia aquest missatge al següent interval de TX. +Fes doble clic per alternar entre els missatges RRR i RR73 a TX4 (no està permès per a titulars d'indicatius compostos del tipus 2) +Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge Ctrl+4 - + Ctrl+4 <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>Canvia a aquest missatge de TX ARA.</p><p>Fes doble clic per alternar entre els missatges RRR i RR73 a TX4 (no està permès per a titulars d'indicatius compostos del tipus 2)</p><p>Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge.</p></body></html> Switch to this Tx message NOW Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required - + Canvia a aquest missatge de TX ARA. +Fes doble clic per alternar entre els missatges RRR i RR73 a TX4 (no està permès per a titulars d'indicatius compostos del tipus 2) +Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge Tx &4 - + TX &4 Alt+4 - + Alt+4 <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> - + <html><head/><body><p>Canvia a aquest missatge de TX ARA.</p><p>Fes doble clic per restablir el missatge estàndard 73</p></body></html> Switch to this Tx message NOW Double-click to reset to the standard 73 message - + Canvia a aquest missatge de TX ARA. +Fes doble clic per restablir el missatge estàndard 73 Tx &5 - + TX &5 Alt+5 - + Alt+5 Now - + Ara Generate standard messages for minimal QSO - + Genera missatges estàndard per a un QSO mínim Generate Std Msgs - + Generar Std Msgs Tx &6 - + TX &6 Alt+6 - + Alt+6 @@ -2606,865 +2653,868 @@ Double-click to reset to the standard 73 message or select a predefined macro from the dropdown list. Press ENTER to add the current text to the predefined list. The list can be maintained in Settings (F2). - + Introdueix un missatge de text lliure (màxim 13 caràcters) +o selecciona una macro predefinida de la llista desplegable. +Prem ENTER per afegir el text actual a la llista predefinida +La llista es pot mantenir a la configuració (F2). Queue up the next Tx message - + Posa a la cua el següent missatge de TX Next - + Pròxim 2 - + 2 Calling CQ - + Cridant a CQ Generate a CQ message - + Genera un missatge CQ CQ - + CQ Generate message with RRR - + Genera un missatge amb RRR RRR - + RRR Generate message with report - + Generar un missatge amb Informe de senyal dB - + dB Answering CQ - + Respondre un CQ Generate message for replying to a CQ - + Generar un missatge per respondre a un CQ Grid - + Locator Generate message with R+report - + Generar un missatge amb R+Informe de senyal R+dB - + R+dB Generate message with 73 - + Generar un missatge amb 73 73 - + 73 Send this standard (generated) message - + Envia aquest missatge estàndard (generat) Gen msg - + Gen msg Send this free-text message (max 13 characters) - + Envia aquest missatge de text lliure (màxim 13 caràcters) Free msg - + Msg Lliure 3 - + 3 Max dB - + Màx dB CQ AF - + CQ AF CQ AN - + CQ AN CQ AS - + CA AS CQ EU - + CQ EU CQ NA - + CQ NA CQ OC - + CQ OC CQ SA - + CQ SA CQ 0 - + CQ 0 CQ 1 - + CQ 1 CQ 2 - + CQ 2 CQ 3 - + CQ 3 CQ 4 - + CQ 3 CQ 5 - + CQ 4 CQ 6 - + CQ 6 CQ 7 - + CQ 7 CQ 8 - + CQ 8 CQ 9 - + CQ 9 Reset - + Restablir N List - + N Llist N Slots - + N Slots Random - + a l’atzar Call - + Indicatiu S/N (dB) - + S/N (dB) Distance - + Distància More CQs - + Més CQ's Percentage of 2-minute sequences devoted to transmitting. - + Percentatge de seqüències de 2 minuts dedicades a la transmissió. % - + % Tx Pct - + TX Pct Band Hopping - + Salt de Banda Choose bands and times of day for band-hopping. - + Tria bandes i hores del dia per al salt de bandes. Schedule ... - + Programació ... Upload decoded messages to WSPRnet.org. - + Carrega missatges descodificats a WSPRnet.org. Upload spots - + Carrega Spots <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>Els Locator de 6 dígits fan que s’enviïn 2 missatges diferents, el segon conté el locator complet, però només un disseny de trucada hash, les altres estacions han d’haver descodificat el primer una vegada abans de poder descodificar el segon. Marca aquesta opció per enviar només locators de 4 dígits i s’evitarà el protocol de dos missatges.</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. - + Els Locator de 6 dígits fan que s’enviïn 2 missatges diferents, el segon conté el locator complet, però només un disseny de trucada hash, les altres estacions han d’haver descodificat el primer una vegada abans de poder descodificar el segon. Marca aquesta opció per enviar només locators de 4 dígits i s’evitarà el protocol de dos missatges. Prefer type 1 messages - + Prefereixes missatges de tipus 1 No own call decodes - + No es descodifica cap indicatiu pròpi Transmit during the next 2-minute sequence. - + Transmetre durant la següent seqüència de 2 minuts. Tx Next - + Proper TX Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. - + Configura la potència de TX en dBm (dB per sobre d'1 mW) com a part del vostre missatge WSPR. File - + Fitxer View - + Veure Decode - + Descodificar Save - + Desa Help - + Ajuda Mode - + Mode Configurations - + Configuracions Tools - + Eines Exit - + Sortir Configuration - + Configuració F2 - + F2 About WSJT-X - + Quant a WSJT-X Waterfall - + Cascada Open - + Obrir Ctrl+O - + Ctrl+O Open next in directory - + Obre el següent directori Decode remaining files in directory - + Descodificar els fitxers restants al directori Shift+F6 - + Shift+F6 Delete all *.wav && *.c2 files in SaveDir - + Esborra tots els fitxers *.wav && *.c2 del directori DESA None - + Cap Save all - + Desa-ho tot Online User Guide - + Guia d'usuari online Keyboard shortcuts - + Dreceres de teclat Special mouse commands - + Ordres especials del ratolí JT9 - + JT9 Save decoded - + Desa el descodificat Normal - + Normal Deep - + Profunda Monitor OFF at startup - + Monitor apagat a l’inici Erase ALL.TXT - + Esborrar ALL.TXT Erase wsjtx_log.adi - + Esborrar wsjt_lg.adi Convert mode to RTTY for logging - + Converteix el mode a RTTY per registrar-te Log dB reports to Comments - + Posa els informes de recepció en dB als comentaris Prompt me to log QSO - + Inclòure el QSO al registre Blank line between decoding periods - + Línia en blanc entre els períodes de descodificació Clear DX Call and Grid after logging - + Neteja l'indicatiu i la graella de DX després del registre Display distance in miles - + Distància en milles Double-click on call sets Tx Enable - + Fes doble clic als conjunts d'indicatius d'activar TX F7 - + F7 Tx disabled after sending 73 - + TX desactivat després d’enviar 73 Runaway Tx watchdog - + Vigilant de fugida TX Allow multiple instances - + Permetre diverses instàncies Tx freq locked to Rx freq - + TX freq bloquejat a RX freq JT65 - + JT65 JT9+JT65 - + JT9+JT65 Tx messages to Rx Frequency window - + Missatges de TX a la finestra de freqüència de RX Gray1 - + Gris1 Show DXCC entity and worked B4 status - + Mostra l'entitat DXCC i l'estat de B4 treballat Astronomical data - + Dades astronòmiques List of Type 1 prefixes and suffixes - + Llista de prefixos i sufixos de tipus 1 Settings... - + Configuració... Local User Guide - + Guia d'usuari local Open log directory - + Obre el directori del registre JT4 - + JT4 Message averaging - + Mitjana de missatges Enable averaging - + Activa la mitjana Enable deep search - + Activa la cerca profunda WSPR - + WSPR Echo Graph - + Gràfic Echo F8 - + F8 Echo - + Echo EME Echo mode - + Mode EME Echo ISCAT - + ISCAT Fast Graph - + Gràfic ràpid F9 - + F9 &Download Samples ... - + &Descarregueu mostres ... <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> - + <html><head/><body><p>Descarrega fitxers d’àudio d’exemple mostrant els diversos modes.</p></body></html> MSK144 - + MSK144 QRA64 - + QRA64 Release Notes - + Notes de llançament Enable AP for DX Call - + Habilita AP per al indicatiu de DX FreqCal - + FreqCal Measure reference spectrum - + Mesura l’espectre de referència Measure phase response - + Mesura la resposta en fase Erase reference spectrum - + Esborra l'espectre de referència Execute frequency calibration cycle - + Executa el cicle de calibració de freqüència Equalization tools ... - + Eines d'equalització ... WSPR-LF - + WSPR-LF Experimental LF/MF mode - + Mode experimental LF/MF FT8 - + FT8 Enable AP - + Activa AP Solve for calibration parameters - + Resol els paràmetres de calibratge Copyright notice - + Avís de drets d’autor Shift+F1 - + Shift+F1 Fox log - + Log Guineu FT8 DXpedition Mode User Guide - + Guia de l'usuari del mode DXpedition a FT8 Reset Cabrillo log ... - + Restableix el registre de Cabrillo ... Color highlighting scheme - + Esquema de ressaltar el color Contest Log - + Registre de Concurs Export Cabrillo log ... - + Exporta el registre de Cabrillo ... Quick-Start Guide to WSJT-X 2.0 - + Guia d'inici ràpid a WSJT-X 2.0 Contest log - + Registre de Concurs Erase WSPR hashtable - + Esborra la taula WSPR FT4 - + FT4 Rig Control Error - + Error del control del equip Do you want to reconfigure the radio interface? - + Vols reconfigurar la interfície de la ràdio ? Error Scanning ADIF Log - + Error d'escaneig del registre ADIF Scanned ADIF log, %1 worked before records created - + Registre ADIF escanejat, %1 funcionava abans de la creació de registres Error Loading LotW Users Data - + S'ha produït un error al carregar les dades dels usuaris de LotW Error Writing WAV File - + S'ha produït un error al escriure el fitxer WAV Configurations... - + Configuracions... Error Killing jt9.exe Process - + Error en matar el procés jt9.exe KillByName return code: %1 - + Codi de retorn de KillByName: %1 Error removing "%1" - + Error en eliminar "%1" Click OK to retry - + Fes clic a D'acord per tornar-ho a provar Improper mode - + Mode inadequat File Open Error - + Error al obrir el fitxer @@ -3473,80 +3523,81 @@ list. The list can be maintained in Settings (F2). Cannot open "%1" for append: %2 - + No es pot obrir "%1" per annexar: %2 Error saving c2 file - + Error en desar el fitxer c2 Error in Sound Input - + Error a la entrada de so Error in Sound Output - + Error en la sortida de so Change Operator - + Canvi d'Operador New operator: - + Operador Nou: Status File Error - + Error del fitxer d'estat Cannot open "%1" for writing: %2 - + No es pot obrir "%1" per escriure: %2 Subprocess Error - + Error de subprocés Subprocess failed with exit code %1 - + Ha fallat el subprocés amb el codi de sortida %1 Running: %1 %2 - + Corrent: %1 +%2 Subprocess error - + Error de subprocés Reference spectrum saved - + Guarda l'espectre de referència Invalid data in fmt.all at line %1 - + Les dades no són vàlides a fmt.all a la línia %1 Good Calibration Solution - + Solució de bona calibració @@ -3555,74 +3606,79 @@ list. The list can be maintained in Settings (F2). %7%L8 %9%L10 Hz</pre> - + <pre>%1%L2 ±%L3 ppm +%4%L5 ±%L6 Hz + +%7%L8 +%9%L10 Hz</pre> Delete Calibration Measurements - + Suprimeix les mesures de calibració The "fmt.all" file will be renamed as "fmt.bak" - + El fitxer "fmt.all" serà renombrat com a "fmt.bak" If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + Si feu un ús raonable de qualsevol part de WSJT-X segons els termes de la Llicència Pública General de GNU, heu de mostrar de manera destacada el següent avís de copyright en el vostre treball derivat: +"Els algoritmes, codi font, aspecte de WSJT-X i programes relacionats i les especificacions de protocol per als modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 són Copyright (C) 2001-2020 per un o més dels següents autors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q i altres membres del grup de desenvolupament de WSJT. " No data read from disk. Wrong file format? - + No es llegeixen dades del disc. Format de fitxer incorrecte ? Confirm Delete - + Confirma Esborrar Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + Estàs segur que vols esborrar tots els fitxers *.wav i *.c2"%1" ? Keyboard Shortcuts - + Dreceres de teclat Special Mouse Commands - + Ordres especials del ratolí No more files to open. - + No s’obriran més fitxers. Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + Tria una altra freqüència de TX. El WSJT-X no transmetrà de manera conscient un altre mode a la sub-banda WSPR a 30 m. WSPR Guard Band - + Banda de Guàrdia WSPR Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Tria una altra freqüència de treball. WSJT-X no funcionarà en mode Guineu a les sub-bandes FT8 estàndard. Fox Mode warning - + Avís de mode Guineu @@ -3630,17 +3686,20 @@ list. The list can be maintained in Settings (F2). To do so, check 'Special operating activity' and 'EU VHF Contest' on the Settings | Advanced tab. - + Has de canviar al mode Concurs EU VHF? + +Per fer-ho, comprova "Activitat operativa especial" i + Concurs EU VHF a la Configuració | Pestanya avançada. Should you switch to ARRL Field Day mode? - + Heu de canviar al mode de Field Day de l'ARRL ? Should you switch to RTTY contest mode? - + Heu de canviar al mode de concurs RTTY? @@ -3648,148 +3707,150 @@ To do so, check 'Special operating activity' and Add to CALL3.TXT - + Afegeix a CALL3.TXT Please enter a valid grid locator - + Introduïu un locator vàlid Cannot open "%1" for read/write: %2 - + No es pot obrir "%1" per llegir o escriure: %2 %1 is already in CALL3.TXT, do you wish to replace it? - + %1 +ja és a CALL3.TXT, vols substituir-lo ? Warning: DX Call field is empty. - + Avís: el camp de indicatiu DX està buit. Log file error - + Error al fitxer de registre Cannot open "%1" - + No es pot obrir "%1" Error sending log to N1MM - + Error al enviar el registre a N1MM Write returned "%1" - + Escriptura retornada "%1" Confirm Erase - + Confirma Esborrar Are you sure you want to erase file ALL.TXT? - + Estàs segur que vols esborrar el fitxer ALL.TXT ? Confirm Reset - + Confirma que vols Restablir Are you sure you want to erase your contest log? - + Estàs segur que vols esborrar el registre del concurs ? Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Si fas això, suprimiràs tots els registres de QSO del concurs actual. Es conservaran al fitxer de registre ADIF, però no es podran exportar al registre de Cabrillo. Cabrillo Log saved - + Registre Cabrillo desat Are you sure you want to erase file wsjtx_log.adi? - + Estàs segur que vols esborrar el fitxer wsjtx_log.adi ? Are you sure you want to erase the WSPR hashtable? - + Estàs segur que vols esborrar la taula del WSPR ? VHF features warning - + Les característiques de VHF tenen un avís Tune digital gain - + Guany digital de sintonització Transmit digital gain - + Guany digital de transmissió Prefixes - + Prefixos Network Error - + Error de xarxa Error: %1 UDP server %2:%3 - + Error: %1 +UDP server %2:%3 File Error - + Error al fitxer Phase Training Disabled - + Entrenament de fase Desactivat Phase Training Enabled - + Entrenament de fase activat Log File Error - + Error al fitxer de registre Are you sure you want to clear the QSO queues? - + Estàs segur que vols esborrar les cues de QSO ? @@ -3798,12 +3859,12 @@ UDP server %2:%3 Message Averaging - + Missatge mitjà UTC Sync DT Freq - + UTC Sync DH Freq @@ -3812,7 +3873,7 @@ UDP server %2:%3 Mode - + Mode @@ -3820,7 +3881,7 @@ UDP server %2:%3 Default - + Per defecte @@ -3828,62 +3889,62 @@ UDP server %2:%3 &Switch To - + &Canviar a &Clone - + &Clon Clone &Into ... - + Clon &a ... R&eset - + R&establir &Rename ... - + &Canviar el nom ... &Delete - + &Esborrar Clone Into Configuration - + Clonar-se a la configuració Confirm overwrite of all values for configuration "%1" with values from "%2"? - + Confirmeu la sobreescriptura de tots els valors de la configuració "%1" amb valors de "%2"? Reset Configuration - + Restableix la configuració Confirm reset to default values for configuration "%1"? - + Confirmeu el restabliment dels valors per defecte per a la configuració "%1"? Delete Configuration - + Esborra la configuració Confirm deletion of configuration "%1"? - + Confirmes que vols esborrar la configuració "%1"? @@ -3891,17 +3952,17 @@ UDP server %2:%3 New Configuration Name - + Nou nom de configuració Old name: - + Nom antic: &New name: - + &Nou nom: @@ -3909,29 +3970,29 @@ UDP server %2:%3 OmniRig: unrecognized mode - + OmniRig: mode no reconegut Failed to start OmniRig COM server - + No s'ha pogut iniciar el servidor COM OmniRig OmniRig: don't know how to set rig frequency - + OmniRig: no sé com establir la freqüència de l'equip OmniRig: timeout waiting for update from rig - + OmniRig: el temps d'espera finalitzat per actualitzar des de l'equip OmniRig COM/OLE error: %1 at %2: %3 (%4) - + OmniRig Error COM/OLE: %1 at %2: %3 (%4) @@ -3939,60 +4000,60 @@ UDP server %2:%3 Unexpected rig error - + Error d'equip inesperat QObject - + Invalid rig name - \ & / not allowed - + Nom d'equip no vàlid: \ & / no permès User Defined - + Definit per l'usuari Failed to open LotW users CSV file: '%1' - + No s'ha pogut obrir el fitxer CSV dels usuaris de LotW: '%1' OOB - + OOB Too many colours in palette. - + Massa colors a la paleta. Error reading waterfall palette file "%1:%2" too many colors. - + Error de lectura del fitxer de paleta de la cascada "%1:%2" massa colors. Error reading waterfall palette file "%1:%2" invalid triplet. - + Error de lectura del fitxer de paleta de la cascada "%1:%2" triplet no vàlid. Error reading waterfall palette file "%1:%2" invalid color. - + Error de lectura del fitxer de paleta de la cascada "%1:%2" color no vàlid. Error opening waterfall palette file "%1": %2. - + Error obrint el fitxer de paleta de la cascada "%1": %2. Error writing waterfall palette file "%1": %2. - + Error d'escriptura del fitxer de paleta de la cascada "%1": %2. @@ -4005,7 +4066,7 @@ UDP server %2:%3 File System Error - + Error d'arxiu de sistema @@ -4013,56 +4074,66 @@ UDP server %2:%3 "%1" to: "%2" Error(%3): %4 - + No es pot renombrar el fitxer: +"%1" +a: "%2" +Error (%3): %4 Cannot delete file: "%1" - + No es pot esborrar el fitxer: +"%1" Network Error - + Error de xarxa Too many redirects: %1 - + Massa redireccionaments: %1 Redirect not followed: %1 - + No s'ha seguit la redirecció: %1 Cannot commit changes to: "%1" - + No es poden fer canvis a: +"%1" Cannot open file: "%1" Error(%2): %3 - + No es pot obrir el fitxer: +"%1" +Error (%2): %3 Cannot make path: "%1" - + No es pot crear el directori: +"%1" Cannot write to file: "%1" Error(%2): %3 - + Cannot write to file: +"%1" +Error(%2): %3 @@ -4070,17 +4141,17 @@ Error(%2): %3 Download Samples - + Descarrega mostres Input Error - + Error d’entrada Invalid URL format - + El format d’URL no és vàlid @@ -4088,67 +4159,67 @@ Error(%2): %3 An error opening the audio input device has occurred. - + S'ha produït un error obrint el dispositiu d'entrada d'àudio. An error occurred during read from the audio input device. - + S'ha produït un error de lectura des del dispositiu d'entrada d'àudio. Audio data not being fed to the audio input device fast enough. - + Les dades d'àudio no s'envien al dispositiu d'entrada d'àudio prou ràpid. Non-recoverable error, audio input device not usable at this time. - + Error no recuperable, el dispositiu d'entrada d'àudio no es pot utilitzar ara. Requested input audio format is not valid. - + El format sol·licitat d'àudio d'entrada no és vàlid. Requested input audio format is not supported on device. - + El format d'àudio d'entrada sol·licitat no és compatible amb el dispositiu. Failed to initialize audio sink device - + Error a l'inicialitzar el dispositiu de descarrega d'àudio Idle - + Inactiu Receiving - + Rebent Suspended - + Suspès Interrupted - + Interromput Error - + Error Stopped - + Aturat @@ -4156,62 +4227,62 @@ Error(%2): %3 An error opening the audio output device has occurred. - + S'ha produït un error obrint el dispositiu de sortida d'àudio. An error occurred during write to the audio output device. - + S'ha produït un error escribint en el dispositiu de sortida d'àudio. Audio data not being fed to the audio output device fast enough. - + Les dades d'àudio no s'envien al dispositiu de sortida d'àudio prou ràpid. Non-recoverable error, audio output device not usable at this time. - + Error no recuperable, dispositiu de sortida d'àudio no utilitzable ara. Requested output audio format is not valid. - + El format sol·licitat d'àudio de sortida no és vàlid. Requested output audio format is not supported on device. - + El format sol·licitat d'àudio de sortida no és compatible amb el dispositiu. Idle - + Inactiu Sending - + Enviant Suspended - + Suspès Interrupted - + Interromput Error - + Error Stopped - + Aturat @@ -4219,22 +4290,22 @@ Error(%2): %3 Add Station - + Afegir estació &Band: - + &Banda: &Offset (MHz): - + &Desplaçament en MHz: &Antenna: - + &Antena: @@ -4242,32 +4313,32 @@ Error(%2): %3 Band name - + Nom de la Banda Frequency offset - + Desplaçament de freqüència Antenna description - + Descripció de l'antena Band - + Manda Offset - + Desplaçament Antenna Description - + Descripció de l'antena @@ -4275,7 +4346,7 @@ Error(%2): %3 Unexpected rig error - + Error de l'equip inesperat @@ -4283,183 +4354,183 @@ Error(%2): %3 Dialog - + Diàleg Controls - + Controls Spectrum gain - + Augment de l’espectre Palette - + Paleta <html><head/><body><p>Enter definition for a new color palette.</p></body></html> - + <html><head/><body><p>Introdueix la definició per a una nova paleta de colors.</p></body></html> Adjust... - + Ajusta ... Waterfall gain - + Guany de la cascada <html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html> - + <html><head/><body><p>Estableix la mida fraccional de l'espectre en aquesta finestra.</p></body></html> % - + % Spec - + Espec <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> - + <html><head/><body><p>Aplica la línia base espectral sobre l'interval complet mostrat.</p></body></html> Flatten - + Aplanar <html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html> - + <html><head/><body><p>Calcula i desa un espectre de referència. (Encara no està completament implementat.)</p></body></html> Ref Spec - + Ref Espec Smoothing of Linear Average spectrum - + Suavització de l'espectre mitjà lineal Smooth - + Llis Compression factor for frequency scale - + Factor de compressió per a l'escala de freqüència Bins/Pixel - + Bins/Pixel Select waterfall palette - + Selecciona la paleta de la cascada <html><head/><body><p>Select data for spectral display</p></body></html> - + <html><head/><body><p>Selecciona les dades per a la visualització espectral</p></body></html> Current - + Actual Cumulative - + Acumulatiu Linear Avg - + Avg Lineal Reference - + Referència <html><head/><body><p>Frequency at left edge of waterfall</p></body></html> - + <html><head/><body><p>Freqüència a la vora esquerra de la cascada</p></body></html> Hz - + Hz Start - + Començar <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> - + <html><head/><body><p>Descodificar JT9 només per sobre d’aquesta freqüència</p></body></html> JT9 - + JT9 JT65 - + JT65 Number of FFTs averaged (controls waterfall scrolling rate) - + Nombre mitjà de FFT's (controla la velocitat de desplaçament de les cascades) N Avg - + N Avg Waterfall zero - + Cascada zero Spectrum zero - + Espectre zero Wide Graph - + Gràfic Ampli Read Palette - + Llegiu Paleta @@ -4467,268 +4538,269 @@ Error(%2): %3 Settings - + Configuració Genera&l - + Genera&l General station details and settings. - + Detalls i configuració generals de l'estació. Station Details - + Detalls de l'estació My C&all: - + El meu Indic&atiu: Station callsign. - + Indicatiu de l'estació. M&y Grid: - + E&l meu Locator: <html><head/><body><p>Maidenhead locator, preferably 6 characters.</p></body></html> - + <html><head/><body><p>Locator Maidenhead, preferiblement de 6 caràcters.</p></body></html> Check to allow grid changes from external programs - + Comprova que permets els canvis de la graella de programes externs AutoGrid - + Locator Automàtic IARU Region: - + Regió IARU: <html><head/><body><p>Select your IARU region.</p></body></html> - + <html><head/><body><p>Selecciona la teva regió IARU.</p></body></html> Message generation for type 2 compound callsign holders: - + Generació de missatges per a indicatius de tipus 2: <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>Els indicatius compostos del tipus 2 són aquells amb prefixos o sufixos no inclosos a la llista prèvia permesa (Consulta Ajuda,Prefixos i sufixos addicionals).</p><p>Aquesta opció determina quins missatges generats han de contenir el teu indicatiu de tipus complet 2 en lloc del teu indicatiu base. Només s’aplica si tens un indicatiu compost de tipus 2.</p><p>Aquesta opció controla la manera com es generen els missatges que s’utilitzen per respondre trucades de CQ. Els missatges generats 6 (CQ) i 5 (73) sempre contindran el teu indicatiu complet. Els protocols JT65 i JT9 permeten alguns missatges estàndard amb el teu indicatiu complet a costa d’una altra informació, com ara la trucada DX o el locator.</p><p>L'elecció del missatge 1 omet l'indicatiu de DX, que pot ser un problema quan es respon a les trucades de CQ. L'elecció del missatge 3 també omet l'indicatiu de DX i moltes versions d'aquest altre programari no extreuran l'informe. Si esculls cap, no significa que només el teu indicatiu complet aparegui al missatge 5 (73) de manera que l'altra operador de QSO pot registrar l'indicatiu erròni.</p><p>Cap d’aquestes opcions és perfecta, el missatge 3 sol ser millor, però tingues en compte que l'altra operador de QSO pot no registrar l’informe que li envies.</p></body></html> Full call in Tx1 - + Indicatiu complet a TX1 Full call in Tx3 - + Indicatiu complet a TX3 Full call in Tx5 only - + Indicatiu complet a TX5 només Display - + Pantalla Show outgoing transmitted messages in the Rx frequency window. - + Mostra els missatges transmesos sortints a la finestra de freqüència RX. &Tx messages to Rx frequency window - + &Missatges de TX a la finestra de la freqüència de RX Show if decoded stations are new DXCC entities or worked before. - + Mostra si les estacions descodificades són entitats DXCC noves o les has treballat abans. Show &DXCC, grid, and worked-before status - + Mostra &DXCC, Locator i si s'ha treballat abans <html><head/><body><p>Check to have decodes for a new period start at the top of the Band Activity window and not scroll off the top when the window is full.</p><p>This is to aid selecting decodes to double-click while decoding is still in progress. Use the Band Activity vertical scroll bar to reveal decodes past the bottom of the window.</p></body></html> - + <html><head/><body><p>Comprova que tinguis descodificacions per començar un període nou a la part superior de la finestra d'Activitat de banda i no moguis la part superior quan la finestra estigui plena.</p><p>Això serveix per ajudar a seleccionar descodificacions, pots fer doble clic mentre la descodificació encara està en curs. Utilitza la barra de desplaçament vertical d'Activitat de banda per revelar descodificacions passades a la part inferior de la finestra.</p></body></html> Start new period decodes at top - + Inicia un nou període de descodificacions a la part superior Show principal prefix instead of country name - + Mostra el prefix principal en lloc del nom del país Set the font characteristics for the application. - + Defineix les característiques del tipus de lletra per a l'aplicació. Font... - + Font... Set the font characteristics for the Band Activity and Rx Frequency areas. - + Defineix les característiques del tipus de lletra per a les àrees de freqüència i activitat de la banda. Decoded Text Font... - + Tipus de text descodificat ... Include a separator line between periods in the band activity window. - + Inclou una línia separadora entre períodes a la finestra d'activitat de la banda. &Blank line between decoding periods - + &Línia en blanc entre els períodes de descodificació Show distance to DX station in miles rather than kilometers. - + Mostra la distància a l'estació DX en milles i no en quilòmetres. Display dista&nce in miles - + Distà&ncia de visualització en milles Behavior - + Comportament Decode after EME delay - + Descodificar després del retard EME Tx watchdog: - + TX vigilant: <html><head/><body><p>Number of minutes before unattended transmissions are aborted</p></body></html> - + <html><head/><body><p>Nombre de minuts abans que s’abandonin les transmissions sense atenció</p></body></html> Disabled - + Desactivat minutes - + minuts Enable VHF/UHF/Microwave features - + Activa les funcions de VHF/UHF/Microones Single decode - + Descodificació única <html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html> - + <html><head/><body><p>Alguns equips no poden processar ordres CAT durant la transmissió. Això significa que si estàs operant en mode dividit, potser hauràs de desmarcar aquesta opció.</p></body></html> Allow Tx frequency changes while transmitting - + Permet canviar la freqüència de TX durant la transmissió Don't start decoding until the monitor button is clicked. - + No comencis a descodificar fins que no facis clic al botó de monitor. Mon&itor off at startup - + Mon&itor apagat a l'inici <html><head/><body><p>Check this if you wish to automatically return to the last monitored frequency when monitor is enabled, leave it unchecked if you wish to have the current rig frequency maintained.</p></body></html> - + <html><head/><body><p>Comprova-ho si vols tornar automàticament a l’última freqüència controlada quan el monitor estigui habilitat, deixa-ho sense marcar si vols mantenir la freqüència actual de l'equip.</p></body></html> Monitor returns to last used frequency - + El monitor torna a la darrera freqüència utilitzada Alternate F1-F6 bindings - + Enllaços alternatius F1-F6 Turns off automatic transmissions after sending a 73 or any other free text message. - + Desactiva les transmissions automàtiques després d’enviar un 73 o qualsevol altre +missatge de text lliure. Di&sable Tx after sending 73 - + De&sactiva TX després d’enviar 73 Send a CW ID after every 73 or free text message. - + Envia un ID de CW després de cada 73 o un missatge de text lluire. CW ID a&fter 73 - + CW ID d&esprés del 73 Periodic CW ID Inter&val: - + Inter&val d'ID periòdic en CW: @@ -4736,380 +4808,396 @@ text message. This might be required under your countries licence regulations. It will not interfere with other users as it is always sent in the quiet period when decoding is done. - + Envia un ID de CW periòdicament cada pocs minuts. +Pot ser que es requereixi a les regulacions de llicència dels vostres països. +No interferirà amb altres usuaris ja que s'envia sempre al +període tranquil quan es fa la descodificació. Automatic transmission mode. - + Mode de transmissió automàtica. Doubl&e-click on call sets Tx enable - + Fes dobl&e clic sobre els conjunts d'indicatius TX habilitat Calling CQ forces Call 1st - + Trucar a CQ obliga a trucar primer &Radio - + &Ràdio Radio interface configuration settings. - + Paràmetres de configuració de la interfície de ràdio. Settings that control your CAT interface. - + Configuració que controla el teu interfície CAT. CAT Control - + Control CAT Port: - + Port: Serial port used for CAT control. - + Port sèrie utilitzat per al control CAT. Serial Port Parameters - + Paràmetres de port sèrie Baud Rate: - + Velocitat de transmissió: Serial port data rate which must match the setting of your radio. - + Velocitat de dades del port sèrie que ha de coincidir amb la configuració del equip. 1200 - + 1200 2400 - + 2400 4800 - + 4800 9600 - + 9600 19200 - + 19200 38400 - + 38400 57600 - + 57600 115200 - + 115200 <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> - + <html><head/><body><p>Nombre de bits de dades utilitzats per a comunicar-se amb la interfície CAT del equip (generalment vuit).</p></body></html> Data Bits - + Bits de dades D&efault - + Per d&efecte Se&ven - + Se&t E&ight - + V&uit <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> - + <html><head/><body><p>Nombre de bits d’aturada utilitzats per a comunicar-se amb la interfície CAT del equip</p><p>(consulta el manual del equip per a més detalls).</p></body></html> Stop Bits - + Bits de parada Default - + Per defecte On&e - + U&n T&wo - + D&os <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> - + <html><head/><body><p>Protocol de control de flux que s’utilitza entre aquest ordinador i la interfície CAT del equip (generalment &quot;Cap&quot; però alguns requereixen &quot;Maquinari&quot;).</p></body></html> Handshake - + Encaix de mans &None - + &Cap Software flow control (very rare on CAT interfaces). - + Control de flux de programari (molt rar a les interfícies CAT). XON/XOFF - + XON/XOFF Flow control using the RTS and CTS RS-232 control lines not often used but some radios have it as an option and a few, particularly some Kenwood rigs, require it). - + Control de flux usant les línies de control RTS i CTS RS-232 +no s’utilitza sovint, però alguns equips ho tenen com a opció i +uns pocs, particularment alguns equips de Kenwood, ho requereixen. &Hardware - + &Maquinari Special control of CAT port control lines. - + Control especial de les línies de control de ports CAT. Force Control Lines - + Línies de control de força High - + Alt Low - + Baix DTR: - + DTR: RTS: - + RTS: + + + How this program activates the PTT on your radio + missing ? + Com activa aquest programa el PTT al vostre equip - How this program activates the PTT on your radio + How this program activates the PTT on your radio? PTT Method - + Mètode PTT <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> - + <html><head/><body><p>No hi ha cap activació PTT, en canvi, el VOX automàtic de l'equip s'utilitza per teclejar el transmissor.</p><p>Fes-la servir si no tens maquinari d'interfície de l'equip.</p></body></html> VO&X - + VO&X <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> - + <html><head/><body><p>Utilitza la línia de control RS-232 DTR per alternar el PTT del teu equip, requereix maquinari per interconnectar la línia.</p><p>Algunes unitats d'interfície comercial també utilitzen aquest mètode.</p><p>Es pot utilitzar la línia de control DTR del port sèrie CAT o es pot utilitzar una línia de control DTR en un port sèrie diferent.</p></body></html> &DTR - + &DTR Some radios support PTT via CAT commands, use this option if your radio supports it and you have no other hardware interface for PTT. - + Alguns equips admeten PTT mitjançant ordres CAT, +utilitza aquesta opció si l'equip li dóna suport i no en tens cap +altra interfície de maquinari per a PTT. C&AT - + C&AT <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> - + <html><head/><body><p>Utilitza la línia de control RS-232 RTS per canviar el PTT del teu equip, requereix que el maquinari interfereixi a la línia.</p><p>Algunes unitats d'interfície comercial també utilitzen aquest mètode.</p><p>Es pot utilitzar la línia de control RTS del port sèrie CAT o es pot utilitzar una línia de control RTS en un port sèrie diferent. Tingues en compte que aquesta opció no està disponible al port sèrie CAT quan s'utilitza el control del flux de maquinari.</p></body></html> R&TS - + R&TS <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> - + <html><head/><body><p>Selecciona el port sèrie RS-232 utilitzat per al control PTT, aquesta opció està disponible quan es selecciona DTR o RTS a dalt com a mètode de transmissió.</p><p>Aquest port pot ser el que s'utilitza per al control CAT.</p><p>Per a alguns tipus d'interfície es pot triar el valor especial CAT, aquest s'utilitza per a interfícies CAT no serials que puguin controlar les línies de control de ports sèrie de forma remota (per exemple, OmniRig).</p></body></html> Modulation mode selected on radio. - + Mode de modulació seleccionat al equip. Mode - + Mode <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> - + <html><head/><body><p>USB sol ser el mode de modulació correcte,</p><p>tret que l'equip tingui una configuració especial del mode de dades o paquets</p><p>per a l’operació AFSK.</p></body></html> US&B - + US&B Don't allow the program to set the radio mode (not recommended but use if the wrong mode or bandwidth is selected). - + No permetis que el programa configuri el mode de l'equip +(No es recomana però es fa servir si el mode és incorrecte +o es selecciona l'ample de banda). None - + Cap If this is available then it is usually the correct mode for this program. - + Si està disponible, normalment és el mode correcte per a aquest programa. Data/P&kt - + Data/P&kt Some radios can select the audio input using a CAT command, this setting allows you to select which audio input will be used (if it is available then generally the Rear/Data option is best). - + Alguns equips poden seleccionar l'entrada d'àudio mitjançant una ordre CAT, +aquest paràmetre et permet seleccionar quina entrada d'àudio s'utilitzarà +(si està disponible, en general, l'opció posterior/dades és la millor). Transmit Audio Source - + Font d’àudio de transmissió Rear&/Data - + Part posterior&/dades &Front/Mic - + &Frontal/Micròfon Rig: - + Equip: Poll Interval: - + Interval de sondeig: <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> - + <html><head/><body><p>Interval del sondeig de l'equip per a l'estat. Intervals més llargs significa que els canvis a l'equip triguen més a detectar-se.</p></body></html> s - + s <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> - + <html><head/><body><p>Intenta connectar-te a l'equip amb aquests paràmetres.</p><p>El botó es posarà de color verd si la connexió és correcta o vermella si hi ha algun problema.</p></body></html> Test CAT - + Prova de CAT @@ -5118,47 +5206,51 @@ Click again to deactivate. Normally no power should be output since there is no audio being generated at this time. Check that any Tx indication on your radio and/or your radio interface behave as expected. - + Intenta activar el transmissor. +Fes clic de nou per desactivar. Normalment no hi hauria d'haver +potència de sortida ja que no hi ha àudio generat en aquest moment. +Comprova que hi hagi alguna indicació de TX a l'equip i el teu +interfície de ràdio funcioni correctament. Test PTT - + Prova PTT Split Operation - + Operació Split Fake It - + Falseja-ho Rig - + Equip A&udio - + À&udio Audio interface settings - + Configuració de la interfície d'àudio Souncard - + Targeta de so Soundcard - + Targeta de so @@ -5167,46 +5259,50 @@ If this is your default device for system sounds then ensure that all system sounds are disabled otherwise you will broadcast any systems sounds generated during transmitting periods. - + Selecciona el CODEC d’àudio a utilitzar per a la transmissió. +Si aquest és el dispositiu predeterminat per als sons del sistema, +llavors assegura't de que tots els sons del sistema quedin +desactivats, en cas contrari emetreu els sons del sistema +generats durant els períodes de transmissió. Select the audio CODEC to use for receiving. - + Selecciona el CODEC d'àudio que cal utilitzar per rebre. &Input: - + &Entrada: Select the channel to use for receiving. - + Selecciona el canal a utilitzar per a rebre. Mono - + Mono Left - + Esquerra Right - + Dreta Both - + Tots dos @@ -5214,147 +5310,152 @@ transmitting periods. Unless you have multiple radios connected on different channels; then you will usually want to select mono or both here. - + Selecciona el canal d'àudio que s'utilitza per a la transmissió. +A menys de que tinguis diversos equips connectats a diferents +canals, llavors normalment voldras seleccionar mono o +els dos canals. Ou&tput: - + Sor&tida: Save Directory - + Desa el directori Loc&ation: - + Ubic&ació: Path to which .WAV files are saved. - + Ruta a la qual es desen els fitxers .WAV. TextLabel - + Etiqueta de text Click to select a different save directory for .WAV files. - + Fes clic per seleccionar un directori diferent per desar els fitxers .WAV. S&elect - + S&elecciona AzEl Directory - + Directori AzEl Location: - + Ubicació: Select - + Selecciona Power Memory By Band - + Memòria de potència per banda Remember power settings by band - + Recorda els ajustos de potència per banda Enable power memory during transmit - + Habilita la memòria de potència durant la transmissió Transmit - + Transmetre Enable power memory during tuning - + Habilita la memòria de potència durant la sintonització Tune - + Sintonitza Tx &Macros - + &Macros de TX Canned free text messages setup - + Configuració de missatges de text lliures &Add - + &Afegir &Delete - + &Esborrar Drag and drop items to rearrange order Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items - + Arrossega i deixa anar els elements per reorganitzar la comanda. +Fes clic amb el botó dret per a les accions específiques de l’element. +Fes clic, MAJÚ + clic i, CTRL+clic per seleccionar els elements Reportin&g - + Informe&s Reporting and logging settings - + Configuració d'informes i registre Logging - + Inici de sessió The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. - + El programa apareixerà un diàleg de QSO de registre parcialment completat quan envieu un missatge de text 73 o lliure. Promp&t me to log QSO - + regis&tra el QSO Op Call: - + Indicatiu de l'Operador: @@ -5362,53 +5463,57 @@ Click, SHIFT+Click and, CRTL+Click to select items saved by this program. Check this option to save the sent and received reports in the comments field. - + Alguns programes de registre no acceptaran el tipus d’informes +desat per aquest programa. +Comprova aquesta opció per desar els informes enviats i rebuts al fitxer +i al camp de comentaris. d&B reports to comments - + informa dels d&B's als comentaris Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. - + Marca aquesta opció per a forçar l'eliminació de la crida de DX +i camps Locator DX quan s’envia un missatge de text de 73 o lliure. Clear &DX call and grid after logging - + Buida la crida i la graella &DX després del registre <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> - + <html><head/><body><p>Alguns programes de registre no accepten noms del mode WSJT-X.</p></body></html> Con&vert mode to RTTY - + Con&verteix el mode a RTTY <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> - + <html><head/><body><p>L'Indicatiu de l'operador, si és diferent del indicatiu de l'estació.</p></body></html> <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> - + <html><head/><body><p>Marca perquè els QSO's es registrin automàticament, quan es completin.</p></body></html> Log automatically (contesting only) - + Registre automàtic (només concurs) Network Services - + Serveis de xarxa @@ -5416,607 +5521,621 @@ and DX Grid fields when a 73 or free text message is sent. decoded signals as spots to the http://pskreporter.info web site. This is used for reverse beacon analysis which is very useful for assessing propagation and system performance. - + El programa pot enviar totes les dades de l'estació i tots +els senyals descodificats com a punts del lloc web http://pskreporter.info. +S'utilitza per a l'anàlisi de balises inverses, que és molt útil +per avaluar la propagació i el rendiment del sistema. Enable &PSK Reporter Spotting - + Activa &PSK Reporter UDP Server - + Servidor UDP UDP Server: - + Servidor UDP: <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> - + <html><head/><body><p>Nom de l'amfitrió opcional del servei de xarxa per rebre descodificacions.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Nom d'amfitrió</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">adreça IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">adreça IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Adreça de grup multicast IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Adreça de grup multicast IPv6</li></ul><p>Si esborreu aquest camp, es desactivarà la difusió de les actualitzacions d’estat d’UDP.</p></body></html> UDP Server port number: - + Número de port del servidor UDP: <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> - + <html><head/><body><p>Introdueix el número de port del servei del servidor UDP al qual WSJT-X hauria d'enviar les actualitzacions. Si és zero, no s’emetran actualitzacions.</p></body></html> <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> - + <html><head/><body><p>Amb aquesta habilitat, WSJT-X acceptarà de nou algunes sol·licituds d’un servidor UDP que rep missatges de descodificació.</p></body></html> Accept UDP requests - + Accepta sol·licituds UDP <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> - + <html><head/><body><p>Indica l'acceptació d'una sol·licitud UDP entrant. L’efecte d’aquesta opció varia en funció del sistema operatiu i del gestor de finestres, la seva intenció és notificar l’acceptació d’una sol·licitud UDP entrant encara que aquesta aplicació estigui minimitzada o oculta.</p></body></html> Notify on accepted UDP request - + Notifica-la sobre la sol·licitud acceptada d’UDP <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> - + <html><head/><body><p>Restaura la finestra al mínim si s’accepta una sol·licitud UDP.</p></body></html> Accepted UDP request restores window - + La finestra de restauració de la sol·licitud UDP es acceptada Secondary UDP Server (deprecated) - + Servidor UDP secundari (obsolet) <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> - + <html><head/><body><p>Quan es marca, WSJT-X transmetrà un contacte registrat en format ADIF al nom d'amfitrió i port configurats. </p></body></html> Enable logged contact ADIF broadcast - + Habilita la transmissió ADIF de contacte registrad Server name or IP address: - + Nom del servidor o adreça IP: <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> - + <html><head/><body><p>Nom d'amfitrió opcional del programa N1MM Logger+ per rebre transmissions ADIF UDP. Generalment és "localhost" o adreça IP 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Nom d'amfitrió</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">adreça IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">adreça IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Adreça de grup multicast IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Adreça de grup multicast IPv6</li></ul><p>Si esborres aquest camp, es desactivarà la transmissió d’informació ADIF a través d’UDP.</p></body></html> Server port number: - + Número de port del servidor: <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> - + <html><head/><body><p>Introdueix el número de port que hauria d’utilitzar WSJT-X per a les emissions d'UDP d’informació de registre ADIF. Per N1MM Logger+, aquest valor hauria de ser 2333. Si aquest és zero, no es transmetran actualitzacions.</p></body></html> Frequencies - + Freqüències Default frequencies and band specific station details setup - + Configuració predeterminada de les freqüències i detalls de l'estació específics de la banda <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> - + <html><head/><body><p>Veure &quot;Freqüència de Calibració&quot; a la Guia de l'usuari de WSJT-X per obtenir més informació sobre com determinar aquests paràmetres per al teu equip.</p></body></html> Frequency Calibration - + Freqüència de Calibració Slope: - + Pendent: ppm - + ppm Intercept: - + Intercepte: Hz - + Hz Working Frequencies - + Freqüències de treball <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> - + <html><head/><body><p>Fes clic amb el botó dret per mantenir la llista de freqüències de treball.</p></body></html> Station Information - + Informació de l'estació Items may be edited. Right click for insert and delete options. - + Es poden editar ítems. +Fes clic amb el botó dret per a les opcions d'inserció i eliminació. Colors - + Colors Decode Highlightling - + Ressaltar Descodificar <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - + <html><head/><body><p>Fes clic per analitzar el fitxer ADIF wsjtx_log.adi de nou per obtenir la informació abans treballada</p></body></html> Rescan ADIF Log - + Rescaneig de nou el registre ADIF <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> - + <html><head/><body><p>Prem per restablir tots els elements destacats anteriors als valors i prioritats predeterminats.</p></body></html> Reset Highlighting - + Restableix Ressaltat <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> - + <html><head/><body><p>Activar o desactivar l'ús de les caselles de verificació i fes clic amb el botó dret en un element per canviar o desactivar el color del primer pla, el color de fons o restablir l'element als valors predeterminats. Arrossega i deixa anar els elements per canviar la seva prioritat, major a la llista és major en prioritat.</p><p>Recorda que cada color de primer pla o de fons pot estar configurat o no, el que vol dir que no està assignat per al tipus d'element i poden aplicar-se elements de menor prioritat.</p></body></html> <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> - + <html><head/><body><p>Marca per indicar noves entitats DXCC, quadrats de quadrícula i indicatius per modes.</p></body></html> Highlight by Mode - + Ressaltar per mode Include extra WAE entities - + Incloure entitats WAE addicionals Check to for grid highlighting to only apply to unworked grid fields - + Marca perquè el ressaltat de quadrícula només s'apliqui als camps de quadrícula no treballats Only grid Fields sought - + Només camps de quadrícula buscatsNomés camps de quadrícula buscats <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> - + <html><head/><body><p>Controls per a la recerca d'usuaris de Logbook of the World (LoTW).</p></body></html> Logbook of the World User Validation - + Validació de l’usuari a Logbook of the World (LoTW) Users CSV file URL: - + URL del fitxer CSV dels usuaris: <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> - + <html><head/><body><p>URL de l'últim fitxer de dades de dates i hores de càrrega de ARRL LotW que s'utilitza per ressaltar descodificacions d'estacions que se sap que carreguen el seu arxiu de registre a LotW.</p></body></html> https://lotw.arrl.org/lotw-user-activity.csv - + https://lotw.arrl.org/lotw-user-activity.csv <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> - + <html><head/><body><p>Fes clic sobre aquest botó per obtenir l'últim arxiu de dades de data i hora de càrrega dels usuaris de LotW.</p></body></html> Fetch Now - + Obtenir ara Age of last upload less than: - + Edat de la darrera càrrega inferior a: <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> - + <html><head/><body><p>Ajusta aquest quadre de selecció per establir el llindar d'edat de l'última data de càrrega dels usuaris de LotW que s'accepta com a usuari actual de LotW.</p></body></html> days - + dies Advanced - + Avançat <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> - + <html><head/><body><p>Paràmetres seleccionables per l'usuari per descodificació JT65 VHF/UHF/Microones.</p></body></html> JT65 VHF/UHF/Microwave decoding parameters - + Paràmetres de descodificació JT65 VHF/UHF/Microones Random erasure patterns: - + Patrons d'esborrament aleatoris: <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> - + <html><head/><body><p>El nombre màxim de patrons d'esborrat per al descodificador estoic de decisió suau Reed Solomon és 10^(n/2).</p></body></html> Aggressive decoding level: - + Nivell de descodificació agressiu: <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> - + <html><head/><body><p>A nivells més elevats augmentarà la probabilitat de descodificació, però també augmentarà la probabilitat de fals descodificació.</p></body></html> Two-pass decoding - + Descodificació a dos passos Special operating activity: Generation of FT4, FT8, and MSK144 messages - + Activitat operativa especial: Generació de missatges FT4, FT8 i MSK144 <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> - + <html><head/><body><p>Mode FT8 DXpedition: operador Hound que truca al DX.</p></body></html> Hound - + Hound <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> - + <html><head/><body><p>Concursos de VHF / UHF / Microones nord-americans i altres en què es necessita un intercanvi de locators de quatre caràcters.</p></body></html> NA VHF Contest - + Concurs NA VHF <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> - + <html><head/><body><p>Mode FT8 DXpedition: operador Guineu (DXpedition).</p></body></html> Fox - + Guineu <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> - + <html><head/><body><p>Concursos europeus de VHF i superiors que requereixen el informe de senyal, número de sèrie i locator de 6 caràcters.</p></body></html> EU VHF Contest - + Concurs EU VHF <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> - + <html><head/><body><p>ARRL RTTY Roundup i concursos similars. L’intercanvi és estat nord-americà, província canadenca o &quot;DX&quot;.</p></body></html> RTTY Roundup messages - + Missatges de Rencontre RTTY RTTY RU Exch: - + Intercanvi RTTY RU: NJ - + NJ <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> - + <html><head/><body><p>ARRL Field Day exchange: nombre de transmissors, classe i secció ARRL / RAC o &quot;DX&quot;.</p></body></html> ARRL Field Day - + ARRL Field Day FD Exch: - + Intercanvi FD : 6A SNJ - + 6A SNJ <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> - + <html><head/><body><p>Concurs World-Wide Digi-mode</p><p><br/></p></body></html> WW Digi Contest - + Concurs WW Digi Miscellaneous - + Divers Degrade S/N of .wav file: - + Grau S/N del fitxer .wav: For offline sensitivity tests - + Per a proves de sensibilitat fora de línia dB - + dB Receiver bandwidth: - + Amplada de banda del receptor: Hz - + Hz Tx delay: - + Retard de TX: Minimum delay between assertion of PTT and start of Tx audio. - + Retard mínim entre el PTT i l'inici de l'àudio TX. s - + s Tone spacing - + Espaiat de to <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> - + <html><head/><body><p>Genera l’àudio de TX amb el doble de l'espaiament normal. Destinat a transmissors especials de LF/MF que utilitzen un dividit per 2 abans de generar la RF.</p></body></html> x 2 - + x 2 <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> - + <html><head/><body><p>Genera àudio de TX amb quatre vegades l'espaiat del to normal. Destinat a transmissors especials de LF/MF que usen una divisió per 4 abans de generar la RF.</p></body></html> x 4 - + x 4 Waterfall spectra - + Espectres de cascades Low sidelobes - + Lòbuls laterals baixos Most sensitive - + El més sensible <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> - + <html><head/><body><p>Eliminar (Cancel·lar) o aplicar (OK) canvis de configuració inclosos</p><p>restablint la interfície de ràdio i aplicant els canvis a la targeta de so</p></body></html> main - + Fatal error - + Error fatal - + Unexpected fatal error - + Error fatal inesperat - + Where <rig-name> is for multi-instance support. - + On <rig-name> és per a suport de múltiples instàncies. + + + + rig-name + nom de l'equip - rig-name - + Where <configuration> is an existing one. + On <configuration> és ja existent. - - Where <configuration> is an existing one. - + + configuration + configuració - configuration + Where <language> is <lang-code>[-<country-code>]. - + + language + + + + Writable files in test location. Use with caution, for testing only. - + Fitxers amb permis d'escriptura a la ubicació de proves. Utilitzar amb precaució, només per a proves. - + Command line error - + Error de línia de comandament - + Command line help - + Ajuda de la línia de comandaments - + Application version - + Versió d’aplicació - + Another instance may be running - + Una altra instància pot ser que s'estigui executant - + try to remove stale lock file? - + intenteu eliminar el fitxer de bloqueig no realitzat? - + Failed to create a temporary directory - + No s'ha pogut crear el directori temporal - - + + Path: "%1" - + Ruta: "%1" - + Failed to create a usable temporary directory - + No s'ha pogut crear un directori temporal utilitzable - + Another application may be locking the directory - + Una altra aplicació pot ser que bloquegi del directori - + Failed to create data directory - + No s'ha pogut crear el directori de dades - + path: "%1" - + Ruta: "%1" - + Shared memory error - + Error de memòria compartida - + Unable to create shared memory segment - + No es pot crear el segment de memòria compartida @@ -6024,12 +6143,12 @@ Right click for insert and delete options. Palette Designer - + Dissenyador de paletes <html><head/><body><p>Double click a color to edit it.</p><p>Right click to insert or delete colors.</p><p>Colors at the top represent weak signals</p><p>and colors at the bottom represent strong</p><p>signals. You can have up to 256 colors.</p></body></html> - + <html><head/><body><p>Fes doble clic sobre un color per editar-lo.</p><p>Fes clic amb el botó dret per inserir o eliminar els colors.</p><p>Els colors a la part superior representen senyals febles,</p><p>i els colors a la part inferior representen senyals fortes.</p><p>Pot tenir fins a 256 colors.</p></body></html> From b5eb070ce8fa61d460cfcd3b1e56761139eb689f Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 19 May 2020 11:25:08 +0100 Subject: [PATCH 013/520] Updated Catalan UI string translations, thanks to Xavi, EA3W --- translations/wsjtx_ca_ES.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/translations/wsjtx_ca_ES.ts b/translations/wsjtx_ca_ES.ts index a73faee64..3fc0471f9 100644 --- a/translations/wsjtx_ca_ES.ts +++ b/translations/wsjtx_ca_ES.ts @@ -19,8 +19,9 @@ Are you sure you want to delete the %n selected QSO(s) from the log? - - + sorry i don't understand how to fix this + + Estas segur que vols esborrar els %n QSO's seleccionats del registre ? @@ -5044,7 +5045,7 @@ uns pocs, particularment alguns equips de Kenwood, ho requereixen. How this program activates the PTT on your radio? - + Com activa aquest programa el PTT al vostre equip ? @@ -6059,12 +6060,12 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. Where <language> is <lang-code>[-<country-code>]. - + On <language> és <lang-code>[-<country-code>]. language - + Idioma From 2e43f27b9e3bd85472f2184ca9bf361c41d6c41b Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 19 May 2020 11:26:24 +0100 Subject: [PATCH 014/520] Made more strings translatable --- models/DecodeHighlightingModel.cpp | 36 +++++++++++----------- widgets/mainwindow.cpp | 48 +++++++++++++++--------------- 2 files changed, 42 insertions(+), 42 deletions(-) diff --git a/models/DecodeHighlightingModel.cpp b/models/DecodeHighlightingModel.cpp index c4e9f7580..d6c7a028a 100644 --- a/models/DecodeHighlightingModel.cpp +++ b/models/DecodeHighlightingModel.cpp @@ -101,22 +101,22 @@ QString DecodeHighlightingModel::highlight_name (Highlight h) { switch (h) { - case Highlight::CQ: return "CQ in message"; - case Highlight::MyCall: return "My Call in message"; - case Highlight::Tx: return "Transmitted message"; - case Highlight::DXCC: return "New DXCC"; - case Highlight::DXCCBand: return "New DXCC on Band"; - case Highlight::Grid: return "New Grid"; - case Highlight::GridBand: return "New Grid on Band"; - case Highlight::Call: return "New Call"; - case Highlight::CallBand: return "New Call on Band"; - case Highlight::Continent: return "New Continent"; - case Highlight::ContinentBand: return "New Continent on Band"; - case Highlight::CQZone: return "New CQ Zone"; - case Highlight::CQZoneBand: return "New CQ Zone on Band"; - case Highlight::ITUZone: return "New ITU Zone"; - case Highlight::ITUZoneBand: return "New ITU Zone on Band"; - case Highlight::LotW: return "LotW User"; + case Highlight::CQ: return tr ("CQ in message"); + case Highlight::MyCall: return tr ("My Call in message"); + case Highlight::Tx: return tr ("Transmitted message"); + case Highlight::DXCC: return tr ("New DXCC"); + case Highlight::DXCCBand: return tr ("New DXCC on Band"); + case Highlight::Grid: return tr ("New Grid"); + case Highlight::GridBand: return tr ("New Grid on Band"); + case Highlight::Call: return tr ("New Call"); + case Highlight::CallBand: return tr ("New Call on Band"); + case Highlight::Continent: return tr ("New Continent"); + case Highlight::ContinentBand: return tr ("New Continent on Band"); + case Highlight::CQZone: return tr ("New CQ Zone"); + case Highlight::CQZoneBand: return tr ("New CQ Zone on Band"); + case Highlight::ITUZone: return tr ("New ITU Zone"); + case Highlight::ITUZoneBand: return tr ("New ITU Zone on Band"); + case Highlight::LotW: return tr ("LoTW User"); } return "Unknown"; } @@ -166,9 +166,9 @@ QVariant DecodeHighlightingModel::data (const QModelIndex& index, int role) cons return QString {"%1%2%3%4%4%5%6"} .arg (highlight_name (item.type_)) .arg (fg_unset || bg_unset ? QString {" ["} : QString {}) - .arg (fg_unset ? QString {"f/g unset"} : QString {}) + .arg (fg_unset ? tr ("f/g unset") : QString {}) .arg (fg_unset && bg_unset ? QString {" "} : QString {}) - .arg (bg_unset ? QString {"b/g unset"} : QString {}) + .arg (bg_unset ? tr ("b/g unset") : QString {}) .arg (fg_unset || bg_unset ? QString {"]"} : QString {}); break; case Qt::ForegroundRole: diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 29ab24a54..496bdf14d 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1784,8 +1784,8 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog m_config.transceiver_online (); if(!m_bFastMode) setXIT (ui->TxFreqSpinBox->value ()); if(m_config.single_decode() or m_mode=="JT4") { - ui->label_6->setText("Single-Period Decodes"); - ui->label_7->setText("Average Decodes"); + ui->label_6->setText(tr ("Single-Period Decodes")); + ui->label_7->setText(tr ("Average Decodes")); } update_watchdog_label (); @@ -4222,7 +4222,7 @@ void MainWindow::stopTx2() WSPR_scheduling (); m_ntr=0; } - last_tx_label.setText("Last Tx: " + m_currentMessage.trimmed()); + last_tx_label.setText(tr ("Last Tx: %1").arg (m_currentMessage.trimmed())); } void MainWindow::ba2msg(QByteArray ba, char message[]) //ba2msg() @@ -5794,8 +5794,8 @@ void MainWindow::on_actionFT4_triggered() m_wideGraph->setPeriod(m_TRperiod,m_nsps); m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe - ui->label_7->setText("Rx Frequency"); - ui->label_6->setText("Band Activity"); + ui->label_7->setText(tr ("Rx Frequency")); + ui->label_6->setText(tr ("Band Activity")); ui->decodedTextLabel->setText( " UTC dB DT Freq Message"); displayWidgets(nWidgets("111010000100111000010000000110001")); ui->txrb2->setEnabled(true); @@ -5838,12 +5838,12 @@ void MainWindow::on_actionFT8_triggered() m_wideGraph->setPeriod(m_TRperiod,m_nsps); m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe - ui->label_7->setText("Rx Frequency"); + ui->label_7->setText(tr ("Rx Frequency")); if(SpecOp::FOX==m_config.special_op_id()) { - ui->label_6->setText("Stations calling DXpedition " + m_config.my_callsign()); + ui->label_6->setText(tr ("Stations calling DXpedition %1").arg (m_config.my_callsign())); ui->decodedTextLabel->setText( "Call Grid dB Freq Dist Age Continent"); } else { - ui->label_6->setText("Band Activity"); + ui->label_6->setText(tr ("Band Activity")); ui->decodedTextLabel->setText( " UTC dB DT Freq Message"); } displayWidgets(nWidgets("111010000100111000010000100110001")); @@ -5865,7 +5865,7 @@ void MainWindow::on_actionFT8_triggered() ui->tabWidget->setCurrentIndex(2); ui->TxFreqSpinBox->setValue(300); displayWidgets(nWidgets("111010000100111000010000000000100")); - ui->labDXped->setText("Fox"); + ui->labDXped->setText(tr ("Fox")); on_fox_log_action_triggered(); } if(SpecOp::HOUND == m_config.special_op_id()) { @@ -5875,7 +5875,7 @@ void MainWindow::on_actionFT8_triggered() ui->tabWidget->setCurrentIndex(0); ui->cbHoldTxFreq->setChecked(true); displayWidgets(nWidgets("111010000100110000010000000000110")); - ui->labDXped->setText("Hound"); + ui->labDXped->setText(tr ("Hound")); ui->txrb1->setChecked(true); ui->txrb2->setEnabled(false); ui->txrb4->setEnabled(false); @@ -5939,8 +5939,8 @@ void MainWindow::on_actionJT4_triggered() m_bFast9=false; setup_status_bar (bVHF); ui->sbSubmode->setMaximum(6); - ui->label_6->setText("Single-Period Decodes"); - ui->label_7->setText("Average Decodes"); + ui->label_6->setText(tr ("Single-Period Decodes")); + ui->label_7->setText(tr ("Average Decodes")); ui->decodedTextLabel->setText("UTC dB DT Freq Message"); ui->decodedTextLabel2->setText("UTC dB DT Freq Message"); if(bVHF) { @@ -6001,8 +6001,8 @@ void MainWindow::on_actionJT9_triggered() m_wideGraph->setPeriod(m_TRperiod,m_nsps); m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe - ui->label_6->setText("Band Activity"); - ui->label_7->setText("Rx Frequency"); + ui->label_6->setText(tr ("Band Activity")); + ui->label_7->setText(tr ("Rx Frequency")); if(bVHF) { displayWidgets(nWidgets("111110101000111110010000000000000")); } else { @@ -6041,8 +6041,8 @@ void MainWindow::on_actionJT9_JT65_triggered() m_bFastMode=false; m_bFast9=false; ui->sbSubmode->setValue(0); - ui->label_6->setText("Band Activity"); - ui->label_7->setText("Rx Frequency"); + ui->label_6->setText(tr ("Band Activity")); + ui->label_7->setText(tr ("Rx Frequency")); ui->decodedTextLabel->setText("UTC dB DT Freq Message"); ui->decodedTextLabel2->setText("UTC dB DT Freq Message"); displayWidgets(nWidgets("111010000001111000010000000000001")); @@ -6085,12 +6085,12 @@ void MainWindow::on_actionJT65_triggered() ui->sbSubmode->setMaximum(2); if(bVHF) { ui->sbSubmode->setValue(m_nSubMode); - ui->label_6->setText("Single-Period Decodes"); - ui->label_7->setText("Average Decodes"); + ui->label_6->setText(tr ("Single-Period Decodes")); + ui->label_7->setText(tr ("Average Decodes")); } else { ui->sbSubmode->setValue(0); - ui->label_6->setText("Band Activity"); - ui->label_7->setText("Rx Frequency"); + ui->label_6->setText(tr ("Band Activity")); + ui->label_7->setText(tr ("Rx Frequency")); } if(bVHF) { displayWidgets(nWidgets("111110010000110110101100010000000")); @@ -6214,8 +6214,8 @@ void MainWindow::on_actionMSK144_triggered() m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe m_fastGraph->setTRPeriod(m_TRperiod); - ui->label_6->setText("Band Activity"); - ui->label_7->setText("Tx Messages"); + ui->label_6->setText(tr ("Band Activity")); + ui->label_7->setText(tr ("Tx Messages")); ui->actionMSK144->setChecked(true); ui->rptSpinBox->setMinimum(-8); ui->rptSpinBox->setMaximum(24); @@ -8101,7 +8101,7 @@ void MainWindow::tx_watchdog (bool triggered) if (m_tune) stop_tuning (); if (m_auto) auto_tx_mode (false); tx_status_label.setStyleSheet ("QLabel{background-color: #ff0000}"); - tx_status_label.setText ("Runaway Tx watchdog"); + tx_status_label.setText (tr ("Runaway Tx watchdog")); QApplication::alert (this); } else @@ -8116,7 +8116,7 @@ void MainWindow::update_watchdog_label () { if (m_config.watchdog () && !m_mode.startsWith ("WSPR")) { - watchdog_label.setText (QString {"WD:%1m"}.arg (m_config.watchdog () - m_idleMinutes)); + watchdog_label.setText (tr ("WD:%1m").arg (m_config.watchdog () - m_idleMinutes)); watchdog_label.setVisible (true); } else From 735cdc11f50e5b4e3148aa528b5bc081518d1fec Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 19 May 2020 12:13:43 +0100 Subject: [PATCH 015/520] Switch to a single common Catalan language translation file Xavi, EA3W, assures me that all Catalan dialects and variants are essentially the same, so there's no need to have country variant specific Catalan translation files. --- CMakeLists.txt | 2 +- translations/{wsjtx_ca_ES.ts => wsjtx_ca.ts} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename translations/{wsjtx_ca_ES.ts => wsjtx_ca.ts} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 191eaeded..fe79eb3aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1097,7 +1097,7 @@ set (LANGUAGES en_GB # English UK pt_PT # Poutuguese es_ES # Spanish - ca_ES # Catalan + ca # Catalan ) foreach (lang_ ${LANGUAGES}) file (TO_NATIVE_PATH translations/wsjtx_${lang_}.ts ts_) diff --git a/translations/wsjtx_ca_ES.ts b/translations/wsjtx_ca.ts similarity index 100% rename from translations/wsjtx_ca_ES.ts rename to translations/wsjtx_ca.ts From 8964cb54f55046ab3b7129713a3045209524631f Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 19 May 2020 12:15:58 +0100 Subject: [PATCH 016/520] More translatable strings in the UI --- main.cpp | 4 ++-- widgets/mainwindow.cpp | 41 ++++++++++++++++++++--------------------- 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/main.cpp b/main.cpp index 40e0247a7..9c840d1a4 100644 --- a/main.cpp +++ b/main.cpp @@ -201,7 +201,7 @@ int main(int argc, char *argv[]) auto language = parser.value (lang_option).replace ('-', '_'); if (translation_override_from_resources.load ("wsjtx_" + language , ":/Translations")) { - qDebug () << QString {"loaded translation file :/Translations/wsjtx_%1.qm"}.arg (language); + qDebug () << QString {"loaded translation file from :/Translations based on language %1"}.arg (language); a.installTranslator (&translation_override_from_resources); } } @@ -233,7 +233,7 @@ int main(int argc, char *argv[]) auto language = parser.value (lang_option).replace ('-', '_'); if (translation_override_from_files.load ("wsjtx_" + language)) { - qDebug () << QString {"loaded translation file $cwd/wsjtx_%1.qm"}.arg (language); + qDebug () << QString {"loaded translation file from $cwd based on language %1"}.arg (language); a.installTranslator (&translation_override_from_files); } } diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 496bdf14d..dee09fc65 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -326,7 +326,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_nsendingsh {0}, m_onAirFreq0 {0.0}, m_first_error {true}, - tx_status_label {"Receiving"}, + tx_status_label {tr ("Receiving")}, wsprNet {new WSPRNet {&m_network_manager, this}}, m_appDir {QApplication::applicationDirPath ()}, m_cqStr {""}, @@ -825,7 +825,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->labAz->setStyleSheet("border: 0px;"); ui->labAz->setText(""); - auto t = "UTC dB DT Freq Message"; + auto t = "UTC dB DT Freq " + tr ("Message"); ui->decodedTextLabel->setText(t); ui->decodedTextLabel2->setText(t); readSettings(); //Restore user's setup parameters @@ -4117,12 +4117,11 @@ void MainWindow::guiUpdate() } else if(m_monitoring) { if (!m_tx_watchdog) { tx_status_label.setStyleSheet("QLabel{background-color: #00ff00}"); - QString t; - t="Receiving"; + auto t = tr ("Receiving"); if(m_mode=="MSK144") { int npct=int(100.0*m_fCPUmskrtd/0.298667); if(npct>90) tx_status_label.setStyleSheet("QLabel{background-color: #ff0000}"); - t = t.asprintf("Receiving %2d%%",npct); + t += QString {" %1%"}.arg (npct, 2); } tx_status_label.setText (t); } @@ -5790,13 +5789,13 @@ void MainWindow::on_actionFT4_triggered() // ui->cbAutoSeq->setChecked(false); m_fastGraph->hide(); m_wideGraph->show(); - ui->decodedTextLabel2->setText(" UTC dB DT Freq Message"); + ui->decodedTextLabel2->setText(" UTC dB DT Freq " + tr ("Message")); m_wideGraph->setPeriod(m_TRperiod,m_nsps); m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe ui->label_7->setText(tr ("Rx Frequency")); ui->label_6->setText(tr ("Band Activity")); - ui->decodedTextLabel->setText( " UTC dB DT Freq Message"); + ui->decodedTextLabel->setText( " UTC dB DT Freq " + tr ("Message")); displayWidgets(nWidgets("111010000100111000010000000110001")); ui->txrb2->setEnabled(true); ui->txrb4->setEnabled(true); @@ -5834,7 +5833,7 @@ void MainWindow::on_actionFT8_triggered() m_TRperiod=15.0; m_fastGraph->hide(); m_wideGraph->show(); - ui->decodedTextLabel2->setText(" UTC dB DT Freq Message"); + ui->decodedTextLabel2->setText(" UTC dB DT Freq " + tr ("Message")); m_wideGraph->setPeriod(m_TRperiod,m_nsps); m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe @@ -5844,7 +5843,7 @@ void MainWindow::on_actionFT8_triggered() ui->decodedTextLabel->setText( "Call Grid dB Freq Dist Age Continent"); } else { ui->label_6->setText(tr ("Band Activity")); - ui->decodedTextLabel->setText( " UTC dB DT Freq Message"); + ui->decodedTextLabel->setText( " UTC dB DT Freq " + tr ("Message")); } displayWidgets(nWidgets("111010000100111000010000100110001")); ui->txrb2->setEnabled(true); @@ -5941,8 +5940,8 @@ void MainWindow::on_actionJT4_triggered() ui->sbSubmode->setMaximum(6); ui->label_6->setText(tr ("Single-Period Decodes")); ui->label_7->setText(tr ("Average Decodes")); - ui->decodedTextLabel->setText("UTC dB DT Freq Message"); - ui->decodedTextLabel2->setText("UTC dB DT Freq Message"); + ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message")); + ui->decodedTextLabel2->setText("UTC dB DT Freq " + tr ("Message")); if(bVHF) { ui->sbSubmode->setValue(m_nSubMode); } else { @@ -5990,13 +5989,13 @@ void MainWindow::on_actionJT9_triggered() m_fastGraph->show(); ui->TxFreqSpinBox->setValue(700); ui->RxFreqSpinBox->setValue(700); - ui->decodedTextLabel->setText("UTC dB T Freq Message"); - ui->decodedTextLabel2->setText("UTC dB T Freq Message"); + ui->decodedTextLabel->setText("UTC dB T Freq " + tr ("Message")); + ui->decodedTextLabel2->setText("UTC dB T Freq " + tr ("Message")); } else { ui->cbAutoSeq->setChecked(false); m_TRperiod=60.0; - ui->decodedTextLabel->setText("UTC dB DT Freq Message"); - ui->decodedTextLabel2->setText("UTC dB DT Freq Message"); + ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message")); + ui->decodedTextLabel2->setText("UTC dB DT Freq " + tr ("Message")); } m_wideGraph->setPeriod(m_TRperiod,m_nsps); m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe @@ -6043,8 +6042,8 @@ void MainWindow::on_actionJT9_JT65_triggered() ui->sbSubmode->setValue(0); ui->label_6->setText(tr ("Band Activity")); ui->label_7->setText(tr ("Rx Frequency")); - ui->decodedTextLabel->setText("UTC dB DT Freq Message"); - ui->decodedTextLabel2->setText("UTC dB DT Freq Message"); + ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message")); + ui->decodedTextLabel2->setText("UTC dB DT Freq " + tr ("Message")); displayWidgets(nWidgets("111010000001111000010000000000001")); fast_config(false); statusChanged(); @@ -6209,8 +6208,8 @@ void MainWindow::on_actionMSK144_triggered() ui->RxFreqSpinBox->setMinimum(1400); ui->RxFreqSpinBox->setMaximum(1600); ui->RxFreqSpinBox->setSingleStep(10); - ui->decodedTextLabel->setText("UTC dB T Freq Message"); - ui->decodedTextLabel2->setText("UTC dB T Freq Message"); + ui->decodedTextLabel->setText("UTC dB T Freq " + tr ("Message")); + ui->decodedTextLabel2->setText("UTC dB T Freq " + tr ("Message")); m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe m_fastGraph->setTRPeriod(m_TRperiod); @@ -6395,7 +6394,7 @@ void MainWindow::WSPR_config(bool b) } m_bSimplex = true; } else { - ui->decodedTextLabel->setText("UTC dB DT Freq Message"); + ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message")); m_bSimplex = false; } enable_DXCC_entity (m_config.DXCC ()); // sets text window proportions and (re)inits the logbook @@ -7632,7 +7631,7 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout if(!m_diskData) { WSPR_history(m_dialFreqRxWSPR, m_nWSPRdecodes); if(m_nWSPRdecodes==0 and ui->band_hopping_group_box->isChecked()) { - t = " Receiving " + m_mode + " ----------------------- " + + t = " " + tr ("Receiving") + " " + m_mode + " ----------------------- " + m_config.bands ()->find (m_dialFreqRxWSPR); t=WSPR_hhmm(-60) + ' ' + t.rightJustified (66, '-'); ui->decodedTextBrowser->appendText(t); From f90205ce7f65533d642b2d1518100e15ab384293 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 19 May 2020 12:23:11 +0100 Subject: [PATCH 017/520] Updated translation files --- translations/wsjtx_ca.ts | 259 +++++++++++++++++++++++++++++------- translations/wsjtx_en_GB.ts | 259 +++++++++++++++++++++++++++++------- translations/wsjtx_es_ES.ts | 259 +++++++++++++++++++++++++++++------- translations/wsjtx_pt_PT.ts | 259 +++++++++++++++++++++++++++++------- 4 files changed, 856 insertions(+), 180 deletions(-) diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index 3fc0471f9..5abbbfa9d 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -758,6 +758,96 @@ Format: DecodeHighlightingModel + + + CQ in message + CQ al missatge + + + + My Call in message + El meu Indicatiu en el missatge + + + + Transmitted message + Missatge transmès + + + + New DXCC + Nou DXCC + + + + New DXCC on Band + Nou DXCC en banda + + + + New Grid + Nou Locator + + + + New Grid on Band + Nou Locator en banda + + + + New Call + No Indicatiu + + + + New Call on Band + Nou Indicatiu en banda + + + + New Continent + Nou Continent + + + + New Continent on Band + Nou Continent en banda + + + + New CQ Zone + Nova Zona CQ + + + + New CQ Zone on Band + Nova Zona CQ en banda + + + + New ITU Zone + Nova Zona ITU + + + + New ITU Zone on Band + Nova Zona ITU en banda + + + + LoTW User + + + + + f/g unset + + + + + b/g unset + + Highlight Type @@ -1856,6 +1946,12 @@ Error(%2): %3 + + + + + + Band Activity Activitat a la banda @@ -1867,6 +1963,11 @@ Error(%2): %3 + + + + + Rx Frequency Freqüència RX @@ -2328,6 +2429,7 @@ No està disponible per als titulars de indicatiu no estàndard. + Fox Guineu @@ -3181,6 +3283,7 @@ La llista es pot mantenir a la configuració (F2). + Runaway Tx watchdog Vigilant de fugida TX @@ -3455,6 +3558,13 @@ La llista es pot mantenir a la configuració (F2). Rig Control Error Error del control del equip + + + + + Receiving + Rebent + Do you want to reconfigure the radio interface? @@ -3485,6 +3595,26 @@ La llista es pot mantenir a la configuració (F2). Configurations... Configuracions... + + + + + + + + + + + + + + + + + + Message + + Error Killing jt9.exe Process @@ -3507,22 +3637,22 @@ La llista es pot mantenir a la configuració (F2). - + Improper mode Mode inadequat - + File Open Error Error al obrir el fitxer - - - - + + + + Cannot open "%1" for append: %2 No es pot obrir "%1" per annexar: %2 @@ -3541,6 +3671,20 @@ La llista es pot mantenir a la configuració (F2). Error in Sound Output Error en la sortida de so + + + + + Single-Period Decodes + + + + + + + Average Decodes + + Change Operator @@ -3558,7 +3702,7 @@ La llista es pot mantenir a la configuració (F2). - + Cannot open "%1" for writing: %2 No es pot obrir "%1" per escriure: %2 @@ -3682,7 +3826,12 @@ La llista es pot mantenir a la configuració (F2). Avís de mode Guineu - + + Last Tx: %1 + + + + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3693,163 +3842,183 @@ Per fer-ho, comprova "Activitat operativa especial" i Concurs EU VHF a la Configuració | Pestanya avançada. - + Should you switch to ARRL Field Day mode? Heu de canviar al mode de Field Day de l'ARRL ? - + Should you switch to RTTY contest mode? Heu de canviar al mode de concurs RTTY? - - - - + + + + Add to CALL3.TXT Afegeix a CALL3.TXT - + Please enter a valid grid locator Introduïu un locator vàlid - + Cannot open "%1" for read/write: %2 No es pot obrir "%1" per llegir o escriure: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 ja és a CALL3.TXT, vols substituir-lo ? - + Warning: DX Call field is empty. Avís: el camp de indicatiu DX està buit. - + Log file error Error al fitxer de registre - + Cannot open "%1" No es pot obrir "%1" - + Error sending log to N1MM Error al enviar el registre a N1MM - + Write returned "%1" Escriptura retornada "%1" - - - + + Stations calling DXpedition %1 + + + + + Hound + Hound + + + + Tx Messages + + + + + + Confirm Erase Confirma Esborrar - + Are you sure you want to erase file ALL.TXT? Estàs segur que vols esborrar el fitxer ALL.TXT ? - - + + Confirm Reset Confirma que vols Restablir - + Are you sure you want to erase your contest log? Estàs segur que vols esborrar el registre del concurs ? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Si fas això, suprimiràs tots els registres de QSO del concurs actual. Es conservaran al fitxer de registre ADIF, però no es podran exportar al registre de Cabrillo. - + Cabrillo Log saved Registre Cabrillo desat - + Are you sure you want to erase file wsjtx_log.adi? Estàs segur que vols esborrar el fitxer wsjtx_log.adi ? - + Are you sure you want to erase the WSPR hashtable? Estàs segur que vols esborrar la taula del WSPR ? - + VHF features warning Les característiques de VHF tenen un avís - + Tune digital gain Guany digital de sintonització - + Transmit digital gain Guany digital de transmissió - + Prefixes Prefixos - + Network Error Error de xarxa - + Error: %1 UDP server %2:%3 Error: %1 UDP server %2:%3 - + File Error Error al fitxer - + Phase Training Disabled Entrenament de fase Desactivat - + Phase Training Enabled Entrenament de fase activat - - + + WD:%1m + + + + + Log File Error Error al fitxer de registre - + Are you sure you want to clear the QSO queues? Estàs segur que vols esborrar les cues de QSO ? diff --git a/translations/wsjtx_en_GB.ts b/translations/wsjtx_en_GB.ts index c103c3479..84f498e9e 100644 --- a/translations/wsjtx_en_GB.ts +++ b/translations/wsjtx_en_GB.ts @@ -737,6 +737,96 @@ Format: DecodeHighlightingModel + + + CQ in message + + + + + My Call in message + + + + + Transmitted message + + + + + New DXCC + + + + + New DXCC on Band + + + + + New Grid + + + + + New Grid on Band + + + + + New Call + + + + + New Call on Band + + + + + New Continent + + + + + New Continent on Band + + + + + New CQ Zone + + + + + New CQ Zone on Band + + + + + New ITU Zone + + + + + New ITU Zone on Band + + + + + LoTW User + + + + + f/g unset + + + + + b/g unset + + Highlight Type @@ -1822,6 +1912,12 @@ Error(%2): %3 + + + + + + Band Activity @@ -1833,6 +1929,11 @@ Error(%2): %3 + + + + + Rx Frequency @@ -2290,6 +2391,7 @@ Not available to nonstandard callsign holders. + Fox @@ -3130,6 +3232,7 @@ list. The list can be maintained in Settings (F2). + Runaway Tx watchdog @@ -3404,6 +3507,13 @@ list. The list can be maintained in Settings (F2). Rig Control Error + + + + + Receiving + + Do you want to reconfigure the radio interface? @@ -3434,6 +3544,26 @@ list. The list can be maintained in Settings (F2). Configurations... + + + + + + + + + + + + + + + + + + Message + + Error Killing jt9.exe Process @@ -3456,22 +3586,22 @@ list. The list can be maintained in Settings (F2). - + Improper mode - + File Open Error - - - - + + + + Cannot open "%1" for append: %2 @@ -3490,6 +3620,20 @@ list. The list can be maintained in Settings (F2). Error in Sound Output + + + + + Single-Period Decodes + + + + + + + Average Decodes + + Change Operator @@ -3507,7 +3651,7 @@ list. The list can be maintained in Settings (F2). - + Cannot open "%1" for writing: %2 @@ -3625,7 +3769,12 @@ list. The list can be maintained in Settings (F2). - + + Last Tx: %1 + + + + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3633,161 +3782,181 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - - - + + Stations calling DXpedition %1 + + + + + Hound + + + + + Tx Messages + + + + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + VHF features warning - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - - + + WD:%1m + + + + + Log File Error - + Are you sure you want to clear the QSO queues? diff --git a/translations/wsjtx_es_ES.ts b/translations/wsjtx_es_ES.ts index 04132aa4e..71ba4672d 100644 --- a/translations/wsjtx_es_ES.ts +++ b/translations/wsjtx_es_ES.ts @@ -737,6 +737,96 @@ Format: DecodeHighlightingModel + + + CQ in message + + + + + My Call in message + + + + + Transmitted message + + + + + New DXCC + + + + + New DXCC on Band + + + + + New Grid + + + + + New Grid on Band + + + + + New Call + + + + + New Call on Band + + + + + New Continent + + + + + New Continent on Band + + + + + New CQ Zone + + + + + New CQ Zone on Band + + + + + New ITU Zone + + + + + New ITU Zone on Band + + + + + LoTW User + + + + + f/g unset + + + + + b/g unset + + Highlight Type @@ -1822,6 +1912,12 @@ Error(%2): %3 + + + + + + Band Activity @@ -1833,6 +1929,11 @@ Error(%2): %3 + + + + + Rx Frequency @@ -2290,6 +2391,7 @@ Not available to nonstandard callsign holders. + Fox @@ -3130,6 +3232,7 @@ list. The list can be maintained in Settings (F2). + Runaway Tx watchdog @@ -3404,6 +3507,13 @@ list. The list can be maintained in Settings (F2). Rig Control Error + + + + + Receiving + + Do you want to reconfigure the radio interface? @@ -3434,6 +3544,26 @@ list. The list can be maintained in Settings (F2). Configurations... + + + + + + + + + + + + + + + + + + Message + + Error Killing jt9.exe Process @@ -3456,22 +3586,22 @@ list. The list can be maintained in Settings (F2). - + Improper mode - + File Open Error - - - - + + + + Cannot open "%1" for append: %2 @@ -3490,6 +3620,20 @@ list. The list can be maintained in Settings (F2). Error in Sound Output + + + + + Single-Period Decodes + + + + + + + Average Decodes + + Change Operator @@ -3507,7 +3651,7 @@ list. The list can be maintained in Settings (F2). - + Cannot open "%1" for writing: %2 @@ -3625,7 +3769,12 @@ list. The list can be maintained in Settings (F2). - + + Last Tx: %1 + + + + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3633,161 +3782,181 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - - - + + Stations calling DXpedition %1 + + + + + Hound + + + + + Tx Messages + + + + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + VHF features warning - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - - + + WD:%1m + + + + + Log File Error - + Are you sure you want to clear the QSO queues? diff --git a/translations/wsjtx_pt_PT.ts b/translations/wsjtx_pt_PT.ts index 8c55016af..34b756584 100644 --- a/translations/wsjtx_pt_PT.ts +++ b/translations/wsjtx_pt_PT.ts @@ -737,6 +737,96 @@ Format: DecodeHighlightingModel + + + CQ in message + + + + + My Call in message + + + + + Transmitted message + + + + + New DXCC + + + + + New DXCC on Band + + + + + New Grid + + + + + New Grid on Band + + + + + New Call + + + + + New Call on Band + + + + + New Continent + + + + + New Continent on Band + + + + + New CQ Zone + + + + + New CQ Zone on Band + + + + + New ITU Zone + + + + + New ITU Zone on Band + + + + + LoTW User + + + + + f/g unset + + + + + b/g unset + + Highlight Type @@ -1822,6 +1912,12 @@ Error(%2): %3 + + + + + + Band Activity @@ -1833,6 +1929,11 @@ Error(%2): %3 + + + + + Rx Frequency @@ -2290,6 +2391,7 @@ Not available to nonstandard callsign holders. + Fox @@ -3130,6 +3232,7 @@ list. The list can be maintained in Settings (F2). + Runaway Tx watchdog @@ -3404,6 +3507,13 @@ list. The list can be maintained in Settings (F2). Rig Control Error + + + + + Receiving + + Do you want to reconfigure the radio interface? @@ -3434,6 +3544,26 @@ list. The list can be maintained in Settings (F2). Configurations... + + + + + + + + + + + + + + + + + + Message + + Error Killing jt9.exe Process @@ -3456,22 +3586,22 @@ list. The list can be maintained in Settings (F2). - + Improper mode - + File Open Error - - - - + + + + Cannot open "%1" for append: %2 @@ -3490,6 +3620,20 @@ list. The list can be maintained in Settings (F2). Error in Sound Output + + + + + Single-Period Decodes + + + + + + + Average Decodes + + Change Operator @@ -3507,7 +3651,7 @@ list. The list can be maintained in Settings (F2). - + Cannot open "%1" for writing: %2 @@ -3625,7 +3769,12 @@ list. The list can be maintained in Settings (F2). - + + Last Tx: %1 + + + + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3633,161 +3782,181 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - - - + + Stations calling DXpedition %1 + + + + + Hound + + + + + Tx Messages + + + + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + VHF features warning - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - - + + WD:%1m + + + + + Log File Error - + Are you sure you want to clear the QSO queues? From 0f1e62036f2ed426f79581cc81cd709962b12d34 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 19 May 2020 15:42:25 +0100 Subject: [PATCH 018/520] Hierarchical translations lookup Load a base language translation file if found. E.g. if locale language is es-AR then wsjtx_es.qm will be loaded before wsjtx_es_AR.qm. this allows partial translations for languages where variants or dialects only require some translated strings to be different from the base language translations. the aim is to greatly simplify the work of translators, particularly when doing updates to translations. --- main.cpp | 64 +++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 57 insertions(+), 7 deletions(-) diff --git a/main.cpp b/main.cpp index 9c840d1a4..eb458021a 100644 --- a/main.cpp +++ b/main.cpp @@ -123,6 +123,7 @@ int main(int argc, char *argv[]) // Enable base i18n // QTranslator translator_from_resources; + QTranslator base_translator_from_resources; // Default translations for releases use translations stored in // the resources file system under the Translations // directory. These are built by the CMake build system from .ts @@ -133,6 +134,20 @@ int main(int argc, char *argv[]) // translations but should only be set when adding new // languages. The resulting .ts files should be checked info // source control for translators to access and update. + + // try and load the base translation + for (QString locale_name : locale.uiLanguages ()) + { + auto language = locale_name.left (2); + if (base_translator_from_resources.load ("wsjtx_" + language, ":/Translations")) + { + qDebug () << QString {"Loaded base translation file from :/Translations based on language %1"}.arg (language); + a.installTranslator (&base_translator_from_resources); + break; + } + } + // now try and load the most specific translations (may be a + // duplicate but we shouldn't care) if (translator_from_resources.load (locale, "wsjtx", "_", ":/Translations")) { qDebug () << "Loaded translations for current locale from resources"; @@ -190,6 +205,7 @@ int main(int argc, char *argv[]) // QTranslator translation_override_from_resources; + QTranslator base_translation_override_from_resources; // Load any matching translation from the current directory // using the command line option language override. This allows // translators to easily test their translations by releasing @@ -199,14 +215,24 @@ int main(int argc, char *argv[]) if (parser.isSet (lang_option)) { auto language = parser.value (lang_option).replace ('-', '_'); + // try and load the base translation + auto base_language = language.left (2); + if (base_translation_override_from_resources.load ("wsjtx_" + base_language, ":/Translations")) + { + qDebug () << QString {"Loaded base translation file from :/Translations based on language %1"}.arg (base_language); + a.installTranslator (&base_translation_override_from_resources); + } + // now load the requested translations (may be a duplicate + // but we shouldn't care) if (translation_override_from_resources.load ("wsjtx_" + language , ":/Translations")) { - qDebug () << QString {"loaded translation file from :/Translations based on language %1"}.arg (language); + qDebug () << QString {"Loaded translation file from :/Translations based on language %1"}.arg (language); a.installTranslator (&translation_override_from_resources); } } - QTranslator translator_from_files; + QTranslator translator_from_cwd; + QTranslator base_translator_from_cwd; // Load any matching translation from the current directory // using the current locale. This allows translators to easily // test their translations by releasing (lrelease) a .qm file @@ -215,13 +241,28 @@ int main(int argc, char *argv[]) // system locale setting will be used to select the translation // file which can be overridden by the LANG environment variable // on non-Windows system. - if (translator_from_files.load (locale, "wsjtx", "_")) + + // try and load the base translation + for (QString locale_name : locale.uiLanguages ()) + { + auto language = locale_name.left (2); + if (base_translator_from_cwd.load ("wsjtx_" + language)) + { + qDebug () << QString {"Loaded base translation file from $cwd based on language %1"}.arg (language); + a.installTranslator (&base_translator_from_cwd); + break; + } + } + // now try and load the most specific translations (may be a + // duplicate but we shouldn't care) + if (translator_from_cwd.load (locale, "wsjtx", "_")) { qDebug () << "loaded translations for current locale from a file"; - a.installTranslator (&translator_from_files); + a.installTranslator (&translator_from_cwd); } - QTranslator translation_override_from_files; + QTranslator translation_override_from_cwd; + QTranslator base_translation_override_from_cwd; // Load any matching translation from the current directory // using the command line option language override. This allows // translators to easily test their translations on Windows by @@ -231,10 +272,19 @@ int main(int argc, char *argv[]) if (parser.isSet (lang_option)) { auto language = parser.value (lang_option).replace ('-', '_'); - if (translation_override_from_files.load ("wsjtx_" + language)) + // try and load the base translation + auto base_language = language.left (2); + if (base_translation_override_from_cwd.load ("wsjtx_" + base_language)) + { + qDebug () << QString {"Loaded base translation file from $cwd based on language %1"}.arg (base_language); + a.installTranslator (&base_translation_override_from_cwd); + } + // now load the requested translations (may be a duplicate + // but we shouldn't care) + if (translation_override_from_cwd.load ("wsjtx_" + language)) { qDebug () << QString {"loaded translation file from $cwd based on language %1"}.arg (language); - a.installTranslator (&translation_override_from_files); + a.installTranslator (&translation_override_from_cwd); } } From 9826ea59f1425818317c13e652320d6dc5e3c7f2 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 19 May 2020 22:55:09 +0100 Subject: [PATCH 019/520] Turn of RC nag message --- widgets/mainwindow.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index dee09fc65..29d55e028 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1000,14 +1000,14 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, void MainWindow::not_GA_warning_message () { - MessageBox::critical_message (this, - "This is a pre-release version of WSJT-X 2.2.0 made\n" - "available for testing purposes. By design it will\n" - "be nonfunctional after 0000 UTC on June 10, 2020."); - auto now = QDateTime::currentDateTimeUtc (); - if (now >= QDateTime {{2020, 6, 10}, {0, 0}, Qt::UTC}) { - Q_EMIT finished (); - } + // MessageBox::critical_message (this, + // "This is a pre-release version of WSJT-X 2.2.0 made\n" + // "available for testing purposes. By design it will\n" + // "be nonfunctional after 0000 UTC on June 10, 2020."); + // auto now = QDateTime::currentDateTimeUtc (); + // if (now >= QDateTime {{2020, 6, 10}, {0, 0}, Qt::UTC}) { + // Q_EMIT finished (); + // } } void MainWindow::initialize_fonts () From 1520d01f0c5b0562b23f1862903615872ff96366 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 21 May 2020 11:43:23 -0500 Subject: [PATCH 020/520] Make sure that mycall13 and dxcall13 are initialized in FT4 mode. --- lib/ft4_decode.f90 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/ft4_decode.f90 b/lib/ft4_decode.f90 index fe6ce0863..b15368a4b 100644 --- a/lib/ft4_decode.f90 +++ b/lib/ft4_decode.f90 @@ -87,6 +87,9 @@ contains this%callback => callback hhmmss=cdatetime0(8:13) + dxcall13=hiscall ! initialize for use in packjt77 + mycall13=mycall + smax1=0. nd1=0 From 19c81eecb6b55e21e2b976d1c9446924e2a7a607 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 25 May 2020 22:44:05 +0100 Subject: [PATCH 021/520] Add some polish to i18n package Qt translations so that standard buttons etc. get l10n. --- CMakeLists.txt | 17 +++++++++++- main.cpp | 71 ++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 68 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d347e6e7..307de7fd1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1045,6 +1045,7 @@ endif () # stuff only qmake can tell us # get_target_property (QMAKE_EXECUTABLE Qt5::qmake LOCATION) +get_target_property (LCONVERT_EXECUTABLE Qt5::lconvert LOCATION) function (QUERY_QMAKE VAR RESULT) exec_program (${QMAKE_EXECUTABLE} ARGS "-query ${VAR}" RETURN_VALUE return_code OUTPUT_VARIABLE output) if (NOT return_code) @@ -1055,6 +1056,7 @@ function (QUERY_QMAKE VAR RESULT) endfunction (QUERY_QMAKE) query_qmake (QT_INSTALL_PLUGINS QT_PLUGINS_DIR) +query_qmake (QT_INSTALL_TRANSLATIONS QT_TRANSLATIONS_DIR) query_qmake (QT_INSTALL_IMPORTS QT_IMPORTS_DIR) query_qmake (QT_HOST_DATA QT_DATA_DIR) set (QT_MKSPECS_DIR ${QT_DATA_DIR}/mkspecs) @@ -1102,6 +1104,19 @@ set (LANGUAGES foreach (lang_ ${LANGUAGES}) file (TO_NATIVE_PATH translations/wsjtx_${lang_}.ts ts_) list (APPEND TS_FILES ${ts_}) + set (qt_translations_ "${QT_TRANSLATIONS_DIR}/qtbase_${lang_}.qm") + if (NOT EXISTS "${qt_translations_}") + string (REGEX REPLACE "([a-z][a-z])_[A-Z][A-Z]" "\\1" lang_ ${lang_}) + set (qt_translations_ "${QT_TRANSLATIONS_DIR}/qtbase_${lang_}.qm") + endif () + if (EXISTS "${qt_translations_}") + add_custom_command ( + OUTPUT "${CMAKE_BINARY_DIR}/qt_${lang_}.qm" + COMMAND ${LCONVERT_EXECUTABLE} -o "${CMAKE_BINARY_DIR}/qt_${lang_}.qm" ${qt_translations_} + COMMENT "Building required Qt translations for language ${lang_}" + ) + list (APPEND QM_FILES "${CMAKE_BINARY_DIR}/qt_${lang_}.qm") + endif () endforeach () if (UPDATE_TRANSLATIONS) message (STATUS "UPDATE_TRANSLATIONS option is set.") @@ -1712,7 +1727,7 @@ if (NOT is_debug_build) # PATTERN "*quick*${CMAKE_SHARED_LIBRARY_SUFFIX}" EXCLUDE # ) - # add plugins path for WIN32 + # add paths for WIN32 file (RELATIVE_PATH _plugins_path "${CMAKE_INSTALL_PREFIX}/${WSJT_QT_CONF_DESTINATION}" "${CMAKE_INSTALL_PREFIX}/${WSJT_PLUGIN_DESTINATION}") install (CODE " get_filename_component (the_qt_conf \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${WSJT_QT_CONF_DESTINATION}/qt.conf\" REALPATH) diff --git a/main.cpp b/main.cpp index eb458021a..25318467d 100644 --- a/main.cpp +++ b/main.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -107,9 +108,23 @@ int main(int argc, char *argv[]) ExceptionCatchingApplication a(argc, argv); try { - QLocale locale; // get the current system locale - qDebug () << "locale: language:" << locale.language () << "script:" << locale.script () - << "country:" << locale.country () << "ui-languages:" << locale.uiLanguages (); + std::unique_ptr early_messages {new QStringList}; + + QLocale locale; // get the current system locale + *early_messages << QString {"locale: language: %1 script: %2 country: %3 ui-languages: %4"} + .arg (QLocale::languageToString (locale.language ())) + .arg (QLocale::scriptToString (locale.script ())) + .arg (QLocale::countryToString (locale.country ())) + .arg (locale.uiLanguages ().join (", ")); + // qDebug () << "+++++++++++++++++++++++++++ Resources ++++++++++++++++++++++++++++"; + // { + // QDirIterator resources_iter {":/", QDirIterator::Subdirectories}; + // while (resources_iter.hasNext ()) + // { + // qDebug () << resources_iter.next (); + // } + // } + // qDebug () << "--------------------------- Resources ----------------------------"; setlocale (LC_NUMERIC, "C"); // ensure number forms are in // consistent format, do this after // instantiating QApplication so @@ -122,8 +137,14 @@ int main(int argc, char *argv[]) // // Enable base i18n // - QTranslator translator_from_resources; - QTranslator base_translator_from_resources; + QString translations_dir {":/Translations"}; + QTranslator qt_translator; + if (qt_translator.load (locale, "qt", "_", translations_dir)) + { + *early_messages << "Loaded Qt translations for current locale from resources"; + a.installTranslator (&qt_translator); + } + // Default translations for releases use translations stored in // the resources file system under the Translations // directory. These are built by the CMake build system from .ts @@ -136,19 +157,27 @@ int main(int argc, char *argv[]) // source control for translators to access and update. // try and load the base translation + QTranslator base_translator_from_resources; for (QString locale_name : locale.uiLanguages ()) { auto language = locale_name.left (2); if (base_translator_from_resources.load ("wsjtx_" + language, ":/Translations")) { - qDebug () << QString {"Loaded base translation file from :/Translations based on language %1"}.arg (language); - a.installTranslator (&base_translator_from_resources); - break; + *early_messages << QString {"Trying %1"}.arg (language); + if (base_translator_from_resources.load ("wsjtx_" + language, translations_dir)) + { + *early_messages << QString {"Loaded base translation file from %1 based on language %2"} + .arg (translations_dir) + .arg (language); + a.installTranslator (&base_translator_from_resources); + break; + } } } // now try and load the most specific translations (may be a // duplicate but we shouldn't care) - if (translator_from_resources.load (locale, "wsjtx", "_", ":/Translations")) + QTranslator translator_from_resources; + if (translator_from_resources.load (locale, "wsjtx", "_", translations_dir)) { qDebug () << "Loaded translations for current locale from resources"; a.installTranslator (&translator_from_resources); @@ -204,35 +233,37 @@ int main(int argc, char *argv[]) // Complete i18n // - QTranslator translation_override_from_resources; - QTranslator base_translation_override_from_resources; // Load any matching translation from the current directory // using the command line option language override. This allows // translators to easily test their translations by releasing // (lrelease) a .qm file into the current directory with a // suitable name (e.g. wsjtx_en_GB.qm), then running wsjtx to // view the results. + QTranslator base_translation_override_from_resources; + QTranslator translation_override_from_resources; if (parser.isSet (lang_option)) { auto language = parser.value (lang_option).replace ('-', '_'); // try and load the base translation auto base_language = language.left (2); - if (base_translation_override_from_resources.load ("wsjtx_" + base_language, ":/Translations")) + if (base_translation_override_from_resources.load ("wsjtx_" + base_language, translations_dir)) { - qDebug () << QString {"Loaded base translation file from :/Translations based on language %1"}.arg (base_language); + *early_messages << QString {"Loaded base translation file from %1 based on language %2"} + .arg (translations_dir) + .arg (base_language); a.installTranslator (&base_translation_override_from_resources); } // now load the requested translations (may be a duplicate // but we shouldn't care) - if (translation_override_from_resources.load ("wsjtx_" + language , ":/Translations")) + if (translation_override_from_resources.load ("wsjtx_" + language, translations_dir)) { - qDebug () << QString {"Loaded translation file from :/Translations based on language %1"}.arg (language); + *early_messages << QString {"Loaded translation file from %1 based on language %2"} + .arg (translations_dir) + .arg (language); a.installTranslator (&translation_override_from_resources); } } - QTranslator translator_from_cwd; - QTranslator base_translator_from_cwd; // Load any matching translation from the current directory // using the current locale. This allows translators to easily // test their translations by releasing (lrelease) a .qm file @@ -243,6 +274,7 @@ int main(int argc, char *argv[]) // on non-Windows system. // try and load the base translation + QTranslator base_translator_from_cwd; for (QString locale_name : locale.uiLanguages ()) { auto language = locale_name.left (2); @@ -255,20 +287,21 @@ int main(int argc, char *argv[]) } // now try and load the most specific translations (may be a // duplicate but we shouldn't care) + QTranslator translator_from_cwd; if (translator_from_cwd.load (locale, "wsjtx", "_")) { qDebug () << "loaded translations for current locale from a file"; a.installTranslator (&translator_from_cwd); } - QTranslator translation_override_from_cwd; - QTranslator base_translation_override_from_cwd; // Load any matching translation from the current directory // using the command line option language override. This allows // translators to easily test their translations on Windows by // releasing (lrelease) a .qm file into the current directory // with a suitable name (e.g. wsjtx_en_GB.qm), then running // wsjtx to view the results. + QTranslator base_translation_override_from_cwd; + QTranslator translation_override_from_cwd; if (parser.isSet (lang_option)) { auto language = parser.value (lang_option).replace ('-', '_'); From 546550e97ac466f59f655bbf7fe2738544088ba7 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 25 May 2020 23:52:28 +0100 Subject: [PATCH 022/520] Updated UI translation, inc. Spanish, Tnx to Xavi, EA3W --- translations/wsjtx_ca.ts | 573 +++----- translations/wsjtx_es_ES.ts | 2701 +++++++++++++++++------------------ 2 files changed, 1512 insertions(+), 1762 deletions(-) diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index 5abbbfa9d..addc30c79 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -21,7 +21,7 @@ Are you sure you want to delete the %n selected QSO(s) from the log? sorry i don't understand how to fix this - Estas segur que vols esborrar els %n QSO's seleccionats del registre ? + Segur que vols esborrar els %n QSO's seleccionats del registre ? @@ -55,17 +55,17 @@ <html><head/><body><p>Transmit takes place on sked frequency and receive frequency is corrected for own echoes. </p><p>This mode can be used for calling CQ, or when using Echo mode.</p></body></html> - <html><head/><body><p>La transmissió té lloc en freqüència de desplaçament i la freqüència de recepció es corregeix per ecos propis. </p><p>Aquest mode es pot utilitzar per trucar a CQ o per utilitzar el mode Echo.</p></body></html> + <html><head/><body><p>La transmissió té lloc en freqüència de desplaçament i la freqüència de recepció es corregeix per els ecos propis. </p><p>Aquest mode es pot utilitzar per trucar a CQ o per utilitzar el mode Eco.</p></body></html> Own Echo - Ressò propi + Eco propi <html><head/><body><p>Both stations correct for Doppler shift such that they would be heard on the moon at the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p><p>Use this option also for Echo mode.</p></body></html> - <html><head/><body><p>Ambdues estacions corregeixen pel canvi Doppler de manera que seran escoltades a la lluna amb la freqüència de desplaçament.</p><p>Si l'equip no accepta comandes CAT QSY mentre es transmet, només s'aplicarà una sola correcció durant tot el període de transmissió.</p><p>Fes servir aquesta opció també per al mode eco.</p></body></html> + <html><head/><body><p>Ambdues estacions corregeixen pel canvi Doppler de manera que seran escoltades a la Lluna amb la freqüència de desplaçament.</p><p>Si l'equip no accepta comandes CAT QSY mentre es transmet, només s'aplicarà una sola correcció durant tot el període de transmissió.</p><p>Fes servir aquesta opció també per al mode eco.</p></body></html> @@ -75,17 +75,17 @@ <html><head/><body><p>DX station announces their TX Freq, which is entered as the Sked Freq. Correction applied to RX and TX so you appear on the DX's station's own echo Freq.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> - <html><head/><body><p>La estació DX anuncia la seva TX Freq, que s'introdueix com a Sked Freq. Correcció aplicada a RX i TX per tal que aparegui al propi eco Freq de l'estació del DX.</p><p>Si l'equip no accepta comandes CAT QSY mentre es transmet, només s'aplicarà una sola correcció durant tot el període de transmissió.</p></body></html> + <html><head/><body><p>L'estació DX anuncia la seva freqüència de TX, que s'introdueix com a Sked Freq. La correcció aplicada a RX i TX per tal que aparegui al propi eco Freq de l'estació del DX.</p><p>Si l'equip no accepta comandes CAT QSY mentre es transmet, només s'aplicarà una sola correcció durant tot el període de transmissió.</p></body></html> On DX Echo - Endavant el Dx Ressò + Encès DX Eco <html><head/><body><p>Tune radio manually and select this mode to put your echo on the same frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> - <html><head/><body><p>Sintonitza la ràdio manualment i selecciona aquest mode per posar el teu eco a la mateixa freqüència.</p><p>Si l'equip no accepta comandes CAT QSY mentre es transmet, només s'aplicarà una sola correcció durant tot el període de transmissió.</p></body></html> + <html><head/><body><p>Sintonitza l'equip manualment i selecciona aquest mode per posar el teu eco a la mateixa freqüència.</p><p>Si l'equip no accepta comandes CAT QSY mentre es transmet, només s'aplicarà una sola correcció durant tot el període de transmissió.</p></body></html> @@ -95,7 +95,7 @@ <html><head/><body><p>No Doppler shift correction is applied. This may be used when the QSO partner does full Doppler correction to your grid square.</p></body></html> - <html><head/><body><p>No s'aplica cap correcció de desplaçament Doppler. Això es pot utilitzar quan l'altra corresponsal de QSO fa la correcció completa del Doppler al quadrat del teu Locator.</p></body></html> + <html><head/><body><p>No s'aplica cap correcció de desplaçament Doppler. Això es pot utilitzar quan l'altra corresponsal de QSO fa la correcció completa del Doppler al teu Locator.</p></body></html> @@ -105,7 +105,7 @@ Sked frequency - Freqüència marcada + Freqüència Sked @@ -457,8 +457,8 @@ Formats: Deixa-ho en blanc per a un valor predeterminat raonable en aquesta màquina. Formats: hostname:port - IPv4-address:port - [IPv6-address]:port + adreça IPv4:port + [adreça IPv6]:port @@ -489,12 +489,12 @@ Format: Invalid PTT method - El mètode PTT no és vàlid + El mètode de PTT no és vàlid Invalid PTT port - El port PTT no és vàlid + El port del PTT no és vàlid @@ -537,7 +537,7 @@ Format: Frequency files (*.qrg);;All files (*.*) - Fitxers de freqüència (*.qrg);;All files (*.*) + Fitxers de freqüència (*.qrg);;Tots els fitxers (*.*) @@ -547,7 +547,7 @@ Format: Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - Segur que vols descartar les teves freqüències de treball actuals i reemplaçar-les per les carregades ? + Segur que vols descartar les teves freqüències actuals de treball i reemplaçar-les per les carregades ? @@ -599,7 +599,7 @@ Format: Are you sure you want to discard your current working frequencies and replace them with default ones? - Segur que vols descartar les teves freqüències de treball actuals i reemplaçar-les per altres? + Segur que vols descartar les teves freqüències actuals de treball i reemplaçar-les per altres? @@ -609,12 +609,12 @@ Format: AzEl Directory - AzEl Directori + Directori AzEl Rig control error - Error de control del equip + Error de control de l'equip @@ -624,7 +624,7 @@ Format: Rig failure - Fallida de l'equip + Fallada en l'equip @@ -664,17 +664,17 @@ Format: DX Lab Suite Commander didn't respond correctly polling TX frequency: - El DX Lab Suite Commander no ha respost correctament la freqüència del sondeig: + El DX Lab Suite Commander no ha respost correctament a la freqüència del sondeig: DX Lab Suite Commander sent an unrecognised split state: - El DX Lab Suite Commander ha enviat un estat de split desconegut: + El DX Lab Suite Commander ha enviat un split desconegut: DX Lab Suite Commander didn't respond correctly polling split status: - El DX Lab Suite Commander no ha respost correctament l'estat del split del sondeig: + El DX Lab Suite Commander no ha respost correctament l'split del sondeig: @@ -758,96 +758,6 @@ Format: DecodeHighlightingModel - - - CQ in message - CQ al missatge - - - - My Call in message - El meu Indicatiu en el missatge - - - - Transmitted message - Missatge transmès - - - - New DXCC - Nou DXCC - - - - New DXCC on Band - Nou DXCC en banda - - - - New Grid - Nou Locator - - - - New Grid on Band - Nou Locator en banda - - - - New Call - No Indicatiu - - - - New Call on Band - Nou Indicatiu en banda - - - - New Continent - Nou Continent - - - - New Continent on Band - Nou Continent en banda - - - - New CQ Zone - Nova Zona CQ - - - - New CQ Zone on Band - Nova Zona CQ en banda - - - - New ITU Zone - Nova Zona ITU - - - - New ITU Zone on Band - Nova Zona ITU en banda - - - - LoTW User - - - - - f/g unset - - - - - b/g unset - - Highlight Type @@ -926,7 +836,7 @@ Format: Contents file syntax error %1 at character offset %2 - Error de sintaxi %1 al fitxer de contingut, posició %2 + Error de sintaxi %1 en el desplaçament de caràcters %2 @@ -1015,7 +925,7 @@ Error: %2 - %3 <html><head/><body><p>Echo spectrum gain</p></body></html> - <html><head/><body><p>Augment espectre d'eco</p></body></html> + <html><head/><body><p>Guany espectre d'eco</p></body></html> @@ -1030,17 +940,17 @@ Error: %2 - %3 <html><head/><body><p>Smoothing of echo spectrum</p></body></html> - <html><head/><body><p>Suavització de l'espectre del eco</p></body></html> + <html><head/><body><p>Suavitzat de l'espectre de l'eco</p></body></html> Smooth - Llis + Suau <html><head/><body><p>Number of echo transmissions averaged</p></body></html> - <html><head/><body><p>Nombre mig de transmissions eco</p></body></html> + <html><head/><body><p>Nombre mitjà de transmissions d'eco</p></body></html> @@ -1188,7 +1098,7 @@ Error: %2 - %3 Category-Operator: - Categoria-Oprador: + Categoria del Operador: @@ -1259,12 +1169,12 @@ Error: %2 - %3 Address: - Adressa: + Adreça: Save Log File - Enreguistra el fitxer de log + Enregistra el fitxer de log @@ -1401,7 +1311,7 @@ Error: %2 - %3 Export ADIF File Error - Error al fitxer d'exportar en format ADIF + Error al exportar el fitxer en format ADIF @@ -1421,7 +1331,7 @@ Error: %2 - %3 Are you sure you want to erase file FoxQSO.txt and start a new Fox log? - Estàs segur que vols esborrar el fitxer FoxQSO.txt i començar un nou registre de Guineu? + Estàs segur que vols esborrar el fitxer FoxQSO.txt i començar un nou registre de FOX (Guineu)? @@ -1508,7 +1418,7 @@ Error: %2 - %3 Ham Radio Deluxe: item not found in %1 dropdown list - Ham Radio Deluxe: element no trobat a la llista desplegable %1 + Ham Radio Deluxe: element no trobat %1 a la llista desplegable @@ -1529,31 +1439,31 @@ Error: %2 - %3 Ham Radio Deluxe send command "%1" failed %2 - La comanda %1 del Ham Radio Deluxe ha fallat %2 + La instrucció %1 del Ham Radio Deluxe ha fallat %2 Ham Radio Deluxe: failed to write command "%1" - Ham Radio Deluxe: error a l'escriure la comanda "%1" + Ham Radio Deluxe: error a l'escriure la instrucció "%1" Ham Radio Deluxe sent an invalid reply to our command "%1" - La resposta del Ham Radio Deluxe no és vàlida per a la comanda "%1" + La resposta del Ham Radio Deluxe no és vàlida per a la instrucció "%1" Ham Radio Deluxe failed to reply to command "%1" %2 - Fallada a la resposta del Ham Radio Deluxe a la comanda "%1" %2 + Fallada a la resposta del Ham Radio Deluxe a la instrucció "%1" %2 Ham Radio Deluxe retries exhausted sending command "%1" - El Ham Radio Deluxe ha esgotat els reintents de la comanda "%1" + El Ham Radio Deluxe ha esgotat els reintents de la instrucció "%1" @@ -1629,17 +1539,17 @@ Error: %2 - %3 setting current VFO - configuració del VFO actual + ajustar el VFO actual getting frequency - obtenint freqüència + obtenint la freqüència getting mode - obtenint mode + obtenint el mode @@ -1686,13 +1596,13 @@ Error: %2 - %3 setting/unsetting split mode - activar/desactivar mode dividid (split) + ajustar/desajustar mode dividid (split) setting split mode - activar mode dividid (Split) + ajustar mode dividid (Split) @@ -1702,32 +1612,32 @@ Error: %2 - %3 setting split TX frequency - ajust de freqüència dividida (Split) TX + ajust de freqüència dividida (Split) en TX getting split TX VFO mode - obtenir el mode dividit (Split) TX VFO + obtenir el mode dividit (Split) en TX del VFO setting split TX VFO mode - configuració del mode dividid (Split) TX VFO + ajustar del mode dividid (Split) en TX del VFO getting PTT state - obtenir estat del PTT + obtenir l'estat del PTT setting PTT on - activant PTT + activant el PTT setting PTT off - desactivació del PTT + desactivant el PTT @@ -1915,7 +1825,7 @@ Error: %2 - %3 File System Error - Cannot commit changes to: "%1" - Error del sistema de fitxers - no es poden fer canvis a: + Error de sistema de fitxers: no es poden confirmar els canvis a: "%1" @@ -1946,12 +1856,6 @@ Error(%2): %3 - - - - - - Band Activity Activitat a la banda @@ -1963,13 +1867,8 @@ Error(%2): %3 - - - - - Rx Frequency - Freqüència RX + Freqüència de RX @@ -1979,7 +1878,7 @@ Error(%2): %3 Enter this QSO in log - Introduïu aquest QSO al registre + Introdueix aquest QSO al registre @@ -2009,12 +1908,12 @@ Error(%2): %3 <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> - <html><head/><body><p>Esborra la finestra dreta Feu doble clic per esborrar les dues finestres.</p></body></html> + <html><head/><body><p>Esborra la finestra dreta, fes doble clic per esborrar les dues finestres.</p></body></html> Erase right window. Double-click to erase both windows. - Esborra la finestra dreta Feu doble clic per esborrar les dues finestres. + Esborra la finestra dreta, fes doble clic per esborrar les dues finestres. @@ -2054,12 +1953,12 @@ Error(%2): %3 <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> - <html><head/><body><p>Activar / Desactiva TX</p></body></html> + <html><head/><body><p>Activar/Desactivar TX</p></body></html> Toggle Auto-Tx On/Off - Activar / Desactiva TX + Activar/Desactivar TX @@ -2079,12 +1978,12 @@ Error(%2): %3 <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> - <html><head/><body><p>Activa / desactiva el to TX pur</p></body></html> + <html><head/><body><p>Activa/Desactiva el to de TX pur per a sintonització</p></body></html> Toggle a pure Tx tone On/Off - Activa / desactiva el to TX pur + Activa/desactiva el to TX pur per a sintonització @@ -2109,12 +2008,12 @@ Error(%2): %3 <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> - <html><head/><body><p>30dB recomanat quan només hi ha soroll<br/>en Verd és un bon nivell<br/>en Vermell és poden produir retalls<br/>en Groc quan és massa baix</p></body></html> + <html><head/><body><p>30dB recomanat quan només hi ha soroll,<br/>en Verd és un bon nivell,<br/>en Vermell és poden produir retalls, i<br/>en Groc quan és massa baix.</p></body></html> Rx Signal - Senyal RX + Senyal de RX @@ -2122,9 +2021,9 @@ Error(%2): %3 Green when good Red when clipping may occur Yellow when too low - 30dB recomanat quan només hi ha soroll -en Verd és un bon nivell -en Vermell és poden produir retalls + 30dB recomanat quan només hi ha soroll, +en Verd és un bon nivell, +en Vermell és poden produir retalls i en Groc quan és massa baix @@ -2220,12 +2119,12 @@ en Groc quan és massa baix <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> - <html><head/><body><p>Comprova que es mantingui la freqüència de TX fixada quan facis doble clic sobre un text descodificat.</p></body></html> + <html><head/><body><p>Marca per que es mantingui la freqüència de TX fixada quan facis doble clic sobre un text descodificat.</p></body></html> Check to keep Tx frequency fixed when double-clicking on decoded text. - Comprova que es mantingui la freqüència de TX fixada quan facis doble clic sobre un text descodificat. + Marca per que es mantingui la freqüència de TX fixada quan facis doble clic sobre un text descodificat. @@ -2262,7 +2161,7 @@ en Groc quan és massa baix Frequency tolerance (Hz) - Freqüència de Tolerància + Freqüència de Tolerància (Hz) @@ -2297,12 +2196,12 @@ en Groc quan és massa baix <html><head/><body><p>Check to use short-format messages.</p></body></html> - <html><head/><body><p>Comprova que utilitzes missatges de format curt.</p></body></html> + <html><head/><body><p>Marcar per utilitzar missatges de format curt.</p></body></html> Check to use short-format messages. - Comprova que utilitzes missatges de format curt. + Marcar per utilitzar missatges de format curt. @@ -2328,12 +2227,12 @@ en Groc quan és massa baix <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> - <html><head/><body><p>Comprova que actives la seqüència automàtica dels missatges de TX en funció dels missatges rebuts.</p></body></html> + <html><head/><body><p>Activa la seqüència automàtica dels missatges de TX en funció dels missatges rebuts.</p></body></html> Check to enable automatic sequencing of Tx messages based on received messages. - Comprova que actives la seqüència automàtica dels missatges de TX en funció dels missatges rebuts. + Activa la seqüència automàtica dels missatges de TX en funció dels missatges rebuts. @@ -2358,7 +2257,7 @@ en Groc quan és massa baix Check to generate "@1250 (SEND MSGS)" in Tx6. - Comprova per generar "@1250 (SEND MSGS)" a TX6. + Marca per generar "@1250 (SEND MSGS)" a TX6. @@ -2378,7 +2277,7 @@ en Groc quan és massa baix Tx even/1st - Alternar minut TX Parell / Senar + Alternar minut TX Parell/Senar @@ -2393,18 +2292,18 @@ en Groc quan és massa baix Tx CQ - TX CQ + TX CQ <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> - <html><head/><body><p>Marca això per trucar a CQ a la freqüència &quot;TX CQ&quot;. RX serà a la freqüència actual i el missatge CQ inclourà la freqüència RX actual perquè els corresponsals sàpiguen quina freqüència respondre.</p><p>No està disponible per als titulars de indicatiu no estàndard.</p></body></html> + <html><head/><body><p>Marca això per trucar a CQ a la freqüència &quot;TX CQ&quot;. RX serà a la freqüència actual i el missatge CQ inclourà la freqüència de RX actual perquè els corresponsals sàpiguen a quina freqüència respondre.</p><p>No està disponible per als titulars de indicatiu no estàndard.</p></body></html> Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. - Marca això per trucar a CQ a la freqüència "TX CQ". RX serà a la freqüència actual i el missatge CQ inclourà la freqüència RX actual perquè els corresponsals sàpiguen quina freqüència respondre. + Marca això per trucar a CQ a la freqüència "TX CQ". RX serà a la freqüència actual i el missatge CQ inclourà la freqüència de RX actual perquè els corresponsals sàpiguen a quina freqüència respondre. No està disponible per als titulars de indicatiu no estàndard. @@ -2425,23 +2324,22 @@ No està disponible per als titulars de indicatiu no estàndard. Submode - Submode + Submode - Fox Guineu <html><head/><body><p>Check to monitor Sh messages.</p></body></html> - <html><head/><body><p>Marca per controlar els missatges Sh.</p></body></html> + <html><head/><body><p>Marca per monitoritzar els missatges Sh.</p></body></html> Check to monitor Sh messages. - Marca per controlar els missatges Sh. + Marca per monitoritzar els missatges Sh. @@ -2456,16 +2354,16 @@ No està disponible per als titulars de indicatiu no estàndard. <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> - <html><head/><body><p>Comprova-ho per començar a enregistrar dades de calibració.<br/>Mentre la mesura de la correcció de calibratge està desactivada.<br/>Si no està marcat, podeu veure els resultats de la calibració.</p></body></html> + <html><head/><body><p>Marca per començar a enregistrar dades de calibració.<br/>Mentre es mesura la correcció de calibratge, es desactiva.<br/>Si no està marcat, pots veure els resultats de la calibració.</p></body></html> Check this to start recording calibration data. While measuring calibration correction is disabled. When not checked you can view the calibration results. - Comprova-ho per començar a enregistrar dades de calibració. -Mentre la mesura de la correcció de calibratge està desactivada. -Si no està marcat, podeu veure els resultats de la calibració. + Marca per començar a enregistrar dades de calibració. +Mentre es mesura la correcció de calibratge, es desactiva. +Si no està marcat, pots veure els resultats de la calibració. @@ -2475,12 +2373,12 @@ Si no està marcat, podeu veure els resultats de la calibració. <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> - <html><head/><body><p>Informe de senyal: Relació senyal / soroll en amplada de banda de referència de 2500 Hz (dB).</p></body></html> + <html><head/><body><p>Informe de senyal: Relació senyal/soroll en amplada de banda de referència de 2500 Hz (dB).</p></body></html> Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). - Informe de senyal: Relació senyal / soroll en amplada de banda de referència de 2500 Hz (dB). + Informe de senyal: Relació senyal/soroll en amplada de banda de referència de 2500 Hz (dB). @@ -2490,12 +2388,12 @@ Si no està marcat, podeu veure els resultats de la calibració. <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> - <html><head/><body><p>TX / RX o Longitud de la seqüència de calibratge de la freqüència</p></body></html> + <html><head/><body><p>TX/RX o Longitud de la seqüència de calibratge de la freqüència</p></body></html> Tx/Rx or Frequency calibration sequence length - TX / RX o Longitud de la seqüència de calibratge de la freqüència + TX/RX o Longitud de la seqüència de calibratge de la freqüència @@ -2536,12 +2434,12 @@ Si no està marcat, podeu veure els resultats de la calibració. <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> - <html><head/><body><p>Fes doble clic sobre un altre estació per fer una cua en trucada per al vostre proper QSO.</p></body></html> + <html><head/><body><p>Fes doble clic sobre un altre estació per posar a la cua en la trucada per al teu proper QSO.</p></body></html> Double-click on another caller to queue that call for your next QSO. - Fes doble clic sobre un altre estació per fer una cua en trucada per al vostre proper QSO. + Fes doble clic sobre un altre estació per posar a la cua en la trucada per al teu proper QSO. @@ -2568,14 +2466,14 @@ Si no està marcat, podeu veure els resultats de la calibració. <html><head/><body><p>Send this message in next Tx interval</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>Envia aquest missatge al següent interval de TX.</p><p>Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1)</p></body></html> + <html><head/><body><p>Envia aquest missatge al següent interval de TX.</p><p>Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1).</p></body></html> Send this message in next Tx interval 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) Envia aquest missatge al següent interval de TX. -Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1) +Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1). @@ -2603,14 +2501,14 @@ Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una e <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>Canvia a aquest missatge de TX ARA.</p><p>Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1)</p></body></html> + <html><head/><body><p>Canvia a aquest missatge de TX ARA.</p><p>Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1).</p></body></html> Switch to this Tx message NOW 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) Canvia a aquest missatge de TX ARA. -Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1) +Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1). @@ -2630,14 +2528,14 @@ Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una e <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> - <html><head/><body><p>Envia aquest missatge al següent interval de TX.</p><p>Fes doble clic per restablir el missatge estàndard 73</p></body></html> + <html><head/><body><p>Envia aquest missatge al següent interval de TX.</p><p>Fes doble clic per restablir el missatge estàndard 73.</p></body></html> Send this message in next Tx interval Double-click to reset to the standard 73 message Envia aquest missatge al següent interval de TX. -Fes doble clic per restablir el missatge estàndard 73 +Fes doble clic per restablir el missatge estàndard 73. @@ -2671,7 +2569,7 @@ Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for typ RR73 messages should only be used when you are reasonably confident that no message repetitions will be required Envia aquest missatge al següent interval de TX. Fes doble clic per alternar entre els missatges RRR i RR73 a TX4 (no està permès per a titulars d'indicatius compostos del tipus 2) -Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge +Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge. @@ -2690,7 +2588,7 @@ Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for typ RR73 messages should only be used when you are reasonably confident that no message repetitions will be required Canvia a aquest missatge de TX ARA. Fes doble clic per alternar entre els missatges RRR i RR73 a TX4 (no està permès per a titulars d'indicatius compostos del tipus 2) -Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge +Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge. @@ -2705,14 +2603,14 @@ Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonab <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> - <html><head/><body><p>Canvia a aquest missatge de TX ARA.</p><p>Fes doble clic per restablir el missatge estàndard 73</p></body></html> + <html><head/><body><p>Canvia a aquest missatge de TX ARA.</p><p>Fes doble clic per restablir el missatge estàndard 73.</p></body></html> Switch to this Tx message NOW Double-click to reset to the standard 73 message Canvia a aquest missatge de TX ARA. -Fes doble clic per restablir el missatge estàndard 73 +Fes doble clic per restablir el missatge estàndard 73. @@ -2972,7 +2870,7 @@ La llista es pot mantenir a la configuració (F2). N List - N Llist + N List @@ -3048,12 +2946,12 @@ La llista es pot mantenir a la configuració (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>Els Locator de 6 dígits fan que s’enviïn 2 missatges diferents, el segon conté el locator complet, però només un disseny de trucada hash, les altres estacions han d’haver descodificat el primer una vegada abans de poder descodificar el segon. Marca aquesta opció per enviar només locators de 4 dígits i s’evitarà el protocol de dos missatges.</p></body></html> + <html><head/><body><p>Els locator de 6 dígits fan que s’enviïn 2 missatges diferents, el segon conté el locator complet, però només un indicatiu trossejat, les altres estacions han d’haver descodificat el primer una vegada abans de poder descodificar el segon. Marca aquesta opció per enviar només locators de 4 dígits i s’evitarà el protocol de dos missatges.</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. - Els Locator de 6 dígits fan que s’enviïn 2 missatges diferents, el segon conté el locator complet, però només un disseny de trucada hash, les altres estacions han d’haver descodificat el primer una vegada abans de poder descodificar el segon. Marca aquesta opció per enviar només locators de 4 dígits i s’evitarà el protocol de dos missatges. + Els locator de 6 dígits fan que s’enviïn 2 missatges diferents, el segon conté el locator complet, però només un indicatiu trossejat, les altres estacions han d’haver descodificat el primer una vegada abans de poder descodificar el segon. Marca aquesta opció per enviar només locators de 4 dígits i s’evitarà el protocol de dos missatges. @@ -3098,7 +2996,7 @@ La llista es pot mantenir a la configuració (F2). Save - Desa + Guardar @@ -3173,7 +3071,7 @@ La llista es pot mantenir a la configuració (F2). Delete all *.wav && *.c2 files in SaveDir - Esborra tots els fitxers *.wav && *.c2 del directori DESA + Esborra tots els fitxers *.wav && *.c2 del directori Guardar @@ -3183,7 +3081,7 @@ La llista es pot mantenir a la configuració (F2). Save all - Desa-ho tot + Guardar-ho tot @@ -3208,7 +3106,7 @@ La llista es pot mantenir a la configuració (F2). Save decoded - Desa el descodificat + Guarda el descodificat @@ -3238,7 +3136,7 @@ La llista es pot mantenir a la configuració (F2). Convert mode to RTTY for logging - Converteix el mode a RTTY per registrar-te + Converteix el mode a RTTY després de registrar el QSO @@ -3258,7 +3156,7 @@ La llista es pot mantenir a la configuració (F2). Clear DX Call and Grid after logging - Neteja l'indicatiu i la graella de DX després del registre + Neteja l'indicatiu i la graella de DX després de registrar el QSO @@ -3283,7 +3181,6 @@ La llista es pot mantenir a la configuració (F2). - Runaway Tx watchdog Vigilant de fugida TX @@ -3375,7 +3272,7 @@ La llista es pot mantenir a la configuració (F2). Echo Graph - Gràfic Echo + Gràfic d'Eco @@ -3385,12 +3282,12 @@ La llista es pot mantenir a la configuració (F2). Echo - Echo + Eco EME Echo mode - Mode EME Echo + Mode EME Eco @@ -3558,13 +3455,6 @@ La llista es pot mantenir a la configuració (F2). Rig Control Error Error del control del equip - - - - - Receiving - Rebent - Do you want to reconfigure the radio interface? @@ -3595,26 +3485,6 @@ La llista es pot mantenir a la configuració (F2). Configurations... Configuracions... - - - - - - - - - - - - - - - - - - Message - - Error Killing jt9.exe Process @@ -3637,22 +3507,22 @@ La llista es pot mantenir a la configuració (F2). - + Improper mode Mode inadequat - + File Open Error Error al obrir el fitxer - - - - + + + + Cannot open "%1" for append: %2 No es pot obrir "%1" per annexar: %2 @@ -3671,20 +3541,6 @@ La llista es pot mantenir a la configuració (F2). Error in Sound Output Error en la sortida de so - - - - - Single-Period Decodes - - - - - - - Average Decodes - - Change Operator @@ -3698,11 +3554,11 @@ La llista es pot mantenir a la configuració (F2). Status File Error - Error del fitxer d'estat + Error d'estat del fitxer - + Cannot open "%1" for writing: %2 No es pot obrir "%1" per escriure: %2 @@ -3772,7 +3628,7 @@ La llista es pot mantenir a la configuració (F2). If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - Si feu un ús raonable de qualsevol part de WSJT-X segons els termes de la Llicència Pública General de GNU, heu de mostrar de manera destacada el següent avís de copyright en el vostre treball derivat: + Si fas un ús raonable de qualsevol part de WSJT-X segons els termes de la Llicència Pública General de GNU, has de mostrar de manera destacada el següent avís de copyright en el teu treball derivat: "Els algoritmes, codi font, aspecte de WSJT-X i programes relacionats i les especificacions de protocol per als modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 són Copyright (C) 2001-2020 per un o més dels següents autors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q i altres membres del grup de desenvolupament de WSJT. " @@ -3826,12 +3682,7 @@ La llista es pot mantenir a la configuració (F2). Avís de mode Guineu - - Last Tx: %1 - - - - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3842,183 +3693,163 @@ Per fer-ho, comprova "Activitat operativa especial" i Concurs EU VHF a la Configuració | Pestanya avançada. - + Should you switch to ARRL Field Day mode? Heu de canviar al mode de Field Day de l'ARRL ? - + Should you switch to RTTY contest mode? Heu de canviar al mode de concurs RTTY? - - - - + + + + Add to CALL3.TXT Afegeix a CALL3.TXT - + Please enter a valid grid locator Introduïu un locator vàlid - + Cannot open "%1" for read/write: %2 No es pot obrir "%1" per llegir o escriure: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 ja és a CALL3.TXT, vols substituir-lo ? - + Warning: DX Call field is empty. Avís: el camp de indicatiu DX està buit. - + Log file error Error al fitxer de registre - + Cannot open "%1" No es pot obrir "%1" - + Error sending log to N1MM Error al enviar el registre a N1MM - + Write returned "%1" Escriptura retornada "%1" - - Stations calling DXpedition %1 - - - - - Hound - Hound - - - - Tx Messages - - - - - - + + + Confirm Erase Confirma Esborrar - + Are you sure you want to erase file ALL.TXT? Estàs segur que vols esborrar el fitxer ALL.TXT ? - - + + Confirm Reset Confirma que vols Restablir - + Are you sure you want to erase your contest log? Estàs segur que vols esborrar el registre del concurs ? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Si fas això, suprimiràs tots els registres de QSO del concurs actual. Es conservaran al fitxer de registre ADIF, però no es podran exportar al registre de Cabrillo. - + Cabrillo Log saved Registre Cabrillo desat - + Are you sure you want to erase file wsjtx_log.adi? Estàs segur que vols esborrar el fitxer wsjtx_log.adi ? - + Are you sure you want to erase the WSPR hashtable? Estàs segur que vols esborrar la taula del WSPR ? - + VHF features warning Les característiques de VHF tenen un avís - + Tune digital gain - Guany digital de sintonització + Guany de sintonització digital - + Transmit digital gain Guany digital de transmissió - + Prefixes Prefixos - + Network Error Error de xarxa - + Error: %1 UDP server %2:%3 Error: %1 UDP server %2:%3 - + File Error Error al fitxer - + Phase Training Disabled Entrenament de fase Desactivat - + Phase Training Enabled Entrenament de fase activat - - WD:%1m - - - - - + + Log File Error Error al fitxer de registre - + Are you sure you want to clear the QSO queues? Estàs segur que vols esborrar les cues de QSO ? @@ -4029,7 +3860,7 @@ UDP server %2:%3 Message Averaging - Missatge mitjà + Promig de missatges @@ -4094,7 +3925,7 @@ UDP server %2:%3 Confirm overwrite of all values for configuration "%1" with values from "%2"? - Confirmeu la sobreescriptura de tots els valors de la configuració "%1" amb valors de "%2"? + Vols sobreescriure de tots els valors de la configuració "%1" amb valors de "%2"? @@ -4104,17 +3935,17 @@ UDP server %2:%3 Confirm reset to default values for configuration "%1"? - Confirmeu el restabliment dels valors per defecte per a la configuració "%1"? + Vols restablir els valors per defecte de la configuració "%1"? Delete Configuration - Esborra la configuració + Esborrar la configuració Confirm deletion of configuration "%1"? - Confirmes que vols esborrar la configuració "%1"? + vols esborrar la configuració "%1"? @@ -4157,12 +3988,12 @@ UDP server %2:%3 OmniRig: timeout waiting for update from rig - OmniRig: el temps d'espera finalitzat per actualitzar des de l'equip + OmniRig: el temps d'espera a finalitzat per actualitzar des de l'equip OmniRig COM/OLE error: %1 at %2: %3 (%4) - OmniRig Error COM/OLE: %1 at %2: %3 (%4) + OmniRig Error COM/OLE: %1 a %2: %3 (%4) @@ -4674,12 +4505,12 @@ Error(%2): %3 Number of FFTs averaged (controls waterfall scrolling rate) - Nombre mitjà de FFT's (controla la velocitat de desplaçament de les cascades) + Nombre mitjà de FFT's (controla la velocitat de desplaçament de la cascada) N Avg - N Avg + Mitjana N @@ -4748,7 +4579,7 @@ Error(%2): %3 Check to allow grid changes from external programs - Comprova que permets els canvis de la graella de programes externs + Comprova que permets els canvis de Locator de programes externs @@ -4773,7 +4604,7 @@ Error(%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>Els indicatius compostos del tipus 2 són aquells amb prefixos o sufixos no inclosos a la llista prèvia permesa (Consulta Ajuda,Prefixos i sufixos addicionals).</p><p>Aquesta opció determina quins missatges generats han de contenir el teu indicatiu de tipus complet 2 en lloc del teu indicatiu base. Només s’aplica si tens un indicatiu compost de tipus 2.</p><p>Aquesta opció controla la manera com es generen els missatges que s’utilitzen per respondre trucades de CQ. Els missatges generats 6 (CQ) i 5 (73) sempre contindran el teu indicatiu complet. Els protocols JT65 i JT9 permeten alguns missatges estàndard amb el teu indicatiu complet a costa d’una altra informació, com ara la trucada DX o el locator.</p><p>L'elecció del missatge 1 omet l'indicatiu de DX, que pot ser un problema quan es respon a les trucades de CQ. L'elecció del missatge 3 també omet l'indicatiu de DX i moltes versions d'aquest altre programari no extreuran l'informe. Si esculls cap, no significa que només el teu indicatiu complet aparegui al missatge 5 (73) de manera que l'altra operador de QSO pot registrar l'indicatiu erròni.</p><p>Cap d’aquestes opcions és perfecta, el missatge 3 sol ser millor, però tingues en compte que l'altra operador de QSO pot no registrar l’informe que li envies.</p></body></html> + <html><head/><body><p>Els indicatius compostos del tipus 2 són aquells amb prefixos o sufixos no inclosos a la llista prèvia permesa (Consulta Ajuda,Prefixos i sufixos addicionals).</p><p>Aquesta opció determina quins missatges generats han de contenir el teu indicatiu de tipus complet 2 en lloc del teu indicatiu base. Només s’aplica si tens un indicatiu compost de tipus 2.</p><p>Aquesta opció controla la manera com es generen els missatges que s’utilitzen per respondre trucades de CQ. Els missatges generats 6 (CQ) i 5 (73) sempre contindran el teu indicatiu complet. Els protocols JT65 i JT9 permeten alguns missatges estàndard amb el teu indicatiu complet a costa d’una altra informació, com ara la trucada DX o el locator.</p><p>L'elecció del missatge 1 omet l'indicatiu de DX, que pot ser un problema quan es respon a les trucades de CQ. L'elecció del missatge 3 també omet l'indicatiu de DX i moltes versions d'aquest altre programari no extreuran l'informe. Si esculls cap, no significa que només el teu indicatiu complet aparegui al missatge 5 (73) de manera que l'altra operador de QSO pot registrar l'indicatiu erròni.</p><p>Cap d’aquestes opcions és perfecta, el missatge 3 sol ser el millor, però tingues en compte que l'altra operador de QSO pot no registrar l’informe que li envies.</p></body></html> @@ -4798,7 +4629,7 @@ Error(%2): %3 Show outgoing transmitted messages in the Rx frequency window. - Mostra els missatges transmesos sortints a la finestra de freqüència RX. + Mostra els missatges transmesos sortints a la finestra de freqüència de RX. @@ -4818,7 +4649,7 @@ Error(%2): %3 <html><head/><body><p>Check to have decodes for a new period start at the top of the Band Activity window and not scroll off the top when the window is full.</p><p>This is to aid selecting decodes to double-click while decoding is still in progress. Use the Band Activity vertical scroll bar to reveal decodes past the bottom of the window.</p></body></html> - <html><head/><body><p>Comprova que tinguis descodificacions per començar un període nou a la part superior de la finestra d'Activitat de banda i no moguis la part superior quan la finestra estigui plena.</p><p>Això serveix per ajudar a seleccionar descodificacions, pots fer doble clic mentre la descodificació encara està en curs. Utilitza la barra de desplaçament vertical d'Activitat de banda per revelar descodificacions passades a la part inferior de la finestra.</p></body></html> + <html><head/><body><p>Comprova que tinguis descodificacions per començar un nou període a la part superior de la finestra d'Activitat de banda i no moguis la part superior quan la finestra estigui plena.</p><p>Això serveix per ajudar a seleccionar descodificacions, pots fer doble clic mentre la descodificació encara està en curs. Utilitza la barra de desplaçament vertical d'Activitat de banda per veure descodificacions passades a la part inferior de la finestra.</p></body></html> @@ -4848,7 +4679,7 @@ Error(%2): %3 Decoded Text Font... - Tipus de text descodificat ... + Tipus de font a l'àrea de descodificat ... @@ -4863,7 +4694,7 @@ Error(%2): %3 Show distance to DX station in miles rather than kilometers. - Mostra la distància a l'estació DX en milles i no en quilòmetres. + Mostra la distància a l'estació de DX en milles i no en quilòmetres. @@ -4878,7 +4709,7 @@ Error(%2): %3 Decode after EME delay - Descodificar després del retard EME + Descodificar després del retard d'EME @@ -4913,7 +4744,7 @@ Error(%2): %3 <html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html> - <html><head/><body><p>Alguns equips no poden processar ordres CAT durant la transmissió. Això significa que si estàs operant en mode dividit, potser hauràs de desmarcar aquesta opció.</p></body></html> + <html><head/><body><p>Alguns equips no poden processar ordres CAT durant la transmissió. Això significa que si estàs operant en mode dividit (split), potser hauràs de desmarcar aquesta opció.</p></body></html> @@ -4923,7 +4754,7 @@ Error(%2): %3 Don't start decoding until the monitor button is clicked. - No comencis a descodificar fins que no facis clic al botó de monitor. + No comença a descodificar fins que no facis clic al botó de monitor. @@ -4979,8 +4810,8 @@ This might be required under your countries licence regulations. It will not interfere with other users as it is always sent in the quiet period when decoding is done. Envia un ID de CW periòdicament cada pocs minuts. -Pot ser que es requereixi a les regulacions de llicència dels vostres països. -No interferirà amb altres usuaris ja que s'envia sempre al +Pot ser que es requereixi a les regulacions de llicència del teu país. +No interferirà amb altres usuaris ja que s'envia sempre en el període tranquil quan es fa la descodificació. @@ -4991,7 +4822,7 @@ període tranquil quan es fa la descodificació. Doubl&e-click on call sets Tx enable - Fes dobl&e clic sobre els conjunts d'indicatius TX habilitat + Fes dobl&e clic sobre els conjunts d'indicatius de TX habilitat @@ -5112,7 +4943,7 @@ període tranquil quan es fa la descodificació. <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> - <html><head/><body><p>Nombre de bits d’aturada utilitzats per a comunicar-se amb la interfície CAT del equip</p><p>(consulta el manual del equip per a més detalls).</p></body></html> + <html><head/><body><p>Nombre de bits de parada utilitzats per a comunicar-se amb la interfície CAT del equip</p><p>(consulta el manual del equip per a més detalls).</p></body></html> @@ -5143,7 +4974,7 @@ període tranquil quan es fa la descodificació. Handshake - Encaix de mans + Handshake @@ -5214,7 +5045,7 @@ uns pocs, particularment alguns equips de Kenwood, ho requereixen. How this program activates the PTT on your radio? - Com activa aquest programa el PTT al vostre equip ? + Com activa aquest programa el PTT del teu equip ? @@ -5313,7 +5144,7 @@ o es selecciona l'ample de banda). Data/P&kt - Data/P&kt + Dades/P&kt @@ -5593,9 +5424,9 @@ els dos canals. Drag and drop items to rearrange order Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items - Arrossega i deixa anar els elements per reorganitzar la comanda. + Arrossega i deixa anar els elements per reorganitzar l'ordre. Fes clic amb el botó dret per a les accions específiques de l’element. -Fes clic, MAJÚ + clic i, CTRL+clic per seleccionar els elements +Fes clic, MAJÚ + clic i, CTRL+clic per seleccionar els elements. @@ -5610,7 +5441,7 @@ Fes clic, MAJÚ + clic i, CTRL+clic per seleccionar els elements Logging - Inici de sessió + Registres @@ -5635,8 +5466,8 @@ Check this option to save the sent and received reports in the comments field. Alguns programes de registre no acceptaran el tipus d’informes desat per aquest programa. -Comprova aquesta opció per desar els informes enviats i rebuts al fitxer -i al camp de comentaris. +Comprova aquesta opció per desar els informes enviats i rebuts +al camp de comentaris. @@ -5647,13 +5478,13 @@ i al camp de comentaris. Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. - Marca aquesta opció per a forçar l'eliminació de la crida de DX -i camps Locator DX quan s’envia un missatge de text de 73 o lliure. + Marca aquesta opció per a forçar l'eliminació dels camps +Crida de DX i Locator DX quan s’envia un missatge de text 73 o lliure. Clear &DX call and grid after logging - Buida la crida i la graella &DX després del registre + Buida les graelles Crida i &DX després del registre @@ -5799,7 +5630,7 @@ per avaluar la propagació i el rendiment del sistema. Default frequencies and band specific station details setup - Configuració predeterminada de les freqüències i detalls de l'estació específics de la banda + Configuració predeterminada de les freqüències i banda amb detalls específics de l'estació @@ -5829,7 +5660,7 @@ per avaluar la propagació i el rendiment del sistema. Hz - Hz + Hz @@ -5871,7 +5702,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. Rescan ADIF Log - Rescaneig de nou el registre ADIF + Escaneig de nou el registre ADIF @@ -5886,12 +5717,12 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> - <html><head/><body><p>Activar o desactivar l'ús de les caselles de verificació i fes clic amb el botó dret en un element per canviar o desactivar el color del primer pla, el color de fons o restablir l'element als valors predeterminats. Arrossega i deixa anar els elements per canviar la seva prioritat, major a la llista és major en prioritat.</p><p>Recorda que cada color de primer pla o de fons pot estar configurat o no, el que vol dir que no està assignat per al tipus d'element i poden aplicar-se elements de menor prioritat.</p></body></html> + <html><head/><body><p>Activar o desactivar l'ús de les caselles de verificació fes clic amb el botó dret en un element per canviar o desactivar el color del primer pla, el color de fons o restablir l'element als valors predeterminats. Arrossega i deixa anar els elements per canviar la seva prioritat, major a la llista és major en prioritat.</p><p>Recorda que cada color de primer pla o de fons pot estar configurat o no, el que vol dir que no està assignat per al tipus d'element i poden aplicar-se elements de menor prioritat.</p></body></html> <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> - <html><head/><body><p>Marca per indicar noves entitats DXCC, quadrats de quadrícula i indicatius per modes.</p></body></html> + <html><head/><body><p>Marca per indicar noves entitats DXCC, Locators i indicatius per modes.</p></body></html> @@ -5906,12 +5737,12 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. Check to for grid highlighting to only apply to unworked grid fields - Marca perquè el ressaltat de quadrícula només s'apliqui als camps de quadrícula no treballats + Marca perquè el ressaltat de Locator només s'aplica als camps de Locator no treballats Only grid Fields sought - Només camps de quadrícula buscatsNomés camps de quadrícula buscats + Només camps de Locator buscats @@ -5941,7 +5772,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> - <html><head/><body><p>Fes clic sobre aquest botó per obtenir l'últim arxiu de dades de data i hora de càrrega dels usuaris de LotW.</p></body></html> + <html><head/><body><p>Fes clic sobre aquest botó per obtenir l'últim fitxer de dades de data i hora de càrrega dels usuaris de LotW.</p></body></html> @@ -6021,7 +5852,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> - <html><head/><body><p>Concursos de VHF / UHF / Microones nord-americans i altres en què es necessita un intercanvi de locators de quatre caràcters.</p></body></html> + <html><head/><body><p>Concursos de VHF/UHF/Microones nord-americans i altres en què es necessita un intercanvi de locators de quatre caràcters.</p></body></html> @@ -6083,7 +5914,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. FD Exch: - Intercanvi FD : + Intercanvi FD: @@ -6164,7 +5995,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> - <html><head/><body><p>Genera àudio de TX amb quatre vegades l'espaiat del to normal. Destinat a transmissors especials de LF/MF que usen una divisió per 4 abans de generar la RF.</p></body></html> + <html><head/><body><p>Genera l'àudio de TX amb quatre vegades l'espaiat del to normal. Destinat a transmissors especials de LF/MF que usen una divisió per 4 abans de generar la RF.</p></body></html> diff --git a/translations/wsjtx_es_ES.ts b/translations/wsjtx_es_ES.ts index 71ba4672d..b5b03827c 100644 --- a/translations/wsjtx_es_ES.ts +++ b/translations/wsjtx_es_ES.ts @@ -6,7 +6,7 @@ &Delete ... - + &Borrar ... @@ -14,13 +14,13 @@ Confirm Delete - + Confirmar borrado - Are you sure you want to delete the %n selected QSO(s) from the log? - - + Are you sure you want to delete the %n selected QSO(s) from the log + + ¿Seguro de que deseas borrar los %n QSO's seleccionados del registro ? @@ -31,118 +31,118 @@ Doppler tracking - + Seguimiento Doppler <html><head/><body><p>One station does all Doppler shift correction, their QSO partner receives and transmits on the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> - + <html><head/><body><p>Una estación realiza toda la corrección de desplazamiento Doppler, su corresponsal de QSO recibe y transmite en la frecuencia marcada.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p></body></html> Full Doppler to DX Grid - + Doppler completo en la parrilla de DX <html><head/><body><p>Transmit takes place on sked frequency and receive frequency is corrected for own echoes. </p><p>This mode can be used for calling CQ, or when using Echo mode.</p></body></html> - + <html><head/><body><p>La transmisión tiene lugar en la frecuencia marcada y la frecuencia de recepción se corrige por los propios ecos.</p><p>Este modo se puede usar para llamar a CQ o cuando se usa el modo Eco.</p></body></html> Own Echo - + Propio eco <html><head/><body><p>Both stations correct for Doppler shift such that they would be heard on the moon at the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p><p>Use this option also for Echo mode.</p></body></html> - + <html><head/><body><p>Ambas estaciones corrigen el cambio Doppler de tal manera que se escuchen en la Luna a la frecuencia marcada.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p><p>Usa esta opción también para el modo Eco.</p></body></html> Constant frequency on Moon - + Frecuencia constante en la Luna <html><head/><body><p>DX station announces their TX Freq, which is entered as the Sked Freq. Correction applied to RX and TX so you appear on the DX's station's own echo Freq.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> - + <html><head/><body><p>La estación DX anuncia su frecuencia de TX, que se ingresa como Sked Freq. La corrección aplicada a RX y TX para que aparezca en la propia frecuencia de eco de la estación DX.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p></body></html> On DX Echo - + DX Echo encendido <html><head/><body><p>Tune radio manually and select this mode to put your echo on the same frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> - + <html><head/><body><p>Sintoniza el equipo manualmente y selecciona este modo para poner tú eco en la misma frecuencia.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p></body></html> Call DX - + Indicativo de DX <html><head/><body><p>No Doppler shift correction is applied. This may be used when the QSO partner does full Doppler correction to your grid square.</p></body></html> - + <html><head/><body><p>No se aplica la corrección de desplazamiento Doppler. Esto se puede utilizar cuando el otro corresponsal de QSO realiza una corrección Doppler completa en tú locator.</p></body></html> None - + Ninguno Sked frequency - + Frecuencia Sked 0 - + 0 Rx: - + RX: Tx: - + TX: <html><head/><body><p>Press and hold the CTRL key to adjust the sked frequency manually with the rig's VFO dial or enter frequency directly into the band entry field on the main window.</p></body></html> - + <html><head/><body><p>Presiona y mantén presionada la tecla CTRL para ajustar la frecuencia sked manualmente con el dial VFO del equipo o introduce la frecuencia directamente en el campo de entrada de banda en la ventana principal.</p></body></html> Astro Data - + Datos Astro Astronomical Data - + Datos astronómicos Doppler Tracking Error - + Error de seguimiento de Doppler Split operating is required for Doppler tracking - + Se requiere un funcionamiento dividido para el seguimiento Doppler Go to "Menu->File->Settings->Radio" to enable split operation - + Ves a "Menú-> Archivo-> Configuración-> Radio" para habilitar la operación dividida @@ -150,32 +150,32 @@ Band name - + Nombre de la Banda Lower frequency limit - + Límite de frecuencia inferior Upper frequency limit - + Límite de frecuencia superior Band - + Banda Lower Limit - + Límite inferior Upper Limit - + Limite superior @@ -183,12 +183,12 @@ About WSJT-X - + A cerca de WSJT-X OK - + OK @@ -196,7 +196,7 @@ &Set Rx && Tx Offset - + &Define el desplazamiento de RX && TX @@ -204,37 +204,37 @@ Freq(MHz) - + Frecuencia en MHz Mode - + Modo Date & Time(UTC) - + Fecha y Hora en UTC Call - + Indicativo Sent - + Enviado Rcvd - + Recibido Band - + Banda @@ -242,17 +242,17 @@ Contest Log - + Registro de Concurso <html><head/><body><p>Right-click here for available actions.</p></body></html> - + <html><head/><body><p>Haz clic derecho aquí para ver las acciones disponibles.</p></body></html> Right-click here for available actions. - + Haz clic derecho aquí para ver las acciones disponibles. @@ -260,7 +260,7 @@ Callsign - + Indicativo @@ -283,87 +283,87 @@ K1ABC - + EA3RDG CQ in message - + CQ en el mensaje My Call in message - + Mi indicativo en el mensaje Transmitted message - + Mensaje transmitido New DXCC - + Nuevo DXCC New Grid - + Nuevo Locator New DXCC on Band - + Nuevo DXCC en banda New Call - + Nuevo indicativo New Grid on Band - + Nuevo Locator en banda New Call on Band - + Nuevo indicativo en banda Uploads to LotW - + Subidas a LotW New Continent - + Nuevo Continente New Continent on Band - + Nuevo Continente en banda New CQ Zone - + Nueva zona CQ New CQ Zone on Band - + Nueva zona CQ en banda New ITU Zone - + Nueva zona ITU New ITU Zone on Band - + Nueva zona ITU en banda @@ -373,68 +373,68 @@ &Delete - + &Borrar &Insert ... - + &Introducir ... Failed to create save directory - + No se pudo crear el directorio para guardar path: "%1% - + ruta: "%1% Failed to create samples directory - + No se pudo crear el directorio de ejemplos path: "%1" - + ruta: "%1" &Load ... - + &Carga ... &Save as ... - + &Guardar como ... &Merge ... - + &Fusionar ... &Reset - + &Reiniciar Serial Port: - + Puerto Serie: Serial port used for CAT control - + Puerto serie utilizado para el control CAT Network Server: - + Servidor de red: @@ -444,12 +444,17 @@ Formats: hostname:port IPv4-address:port [IPv6-address]:port - + Hostname opcional y puerto de acceso del servicio de red. +Déjalo en blanco para un valor predeterminado razonable en esta máquina. +Formatos: + hostname:port + dirección IPv4:port + [dirección IPv6]:port USB Device: - + Dispositivo USB: @@ -457,157 +462,160 @@ Formats: Leave blank for a sensible default for the rig. Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - + Identificación opcional del dispositivo. +Deja en blanco un valor predeterminado razonable para el equipo. +Formato: + [VID[:PID[:VENDOR[:PRODUCT]]]] Invalid audio input device - + El dispositivo de entrada de audio no es válido Invalid audio out device - + El dispositivo de salida de audio no es válido Invalid PTT method - + El método de PTT no es válido Invalid PTT port - + El puerto del PTT no es válido Invalid Contest Exchange - + Intercambio de concurso no válido You must input a valid ARRL Field Day exchange - + Debes introducir un intercambio de Field Day del ARRL válido You must input a valid ARRL RTTY Roundup exchange - + Debes introducir un intercambio válido de la ARRL RTTY Roundup Reset Decode Highlighting - + Restablecer Resaltado de Decodificación Reset all decode highlighting and priorities to default values - + Restablecer todo el resaltado y las prioridades de decodificación a los valores predeterminados WSJT-X Decoded Text Font Chooser - + Tipo de texto de pantalla de descodificación WSJT-X Load Working Frequencies - + Carga las frecuencias de trabajo Frequency files (*.qrg);;All files (*.*) - + Ficheros de frecuencia (*.qrg);;Todos los ficheros (*.*) Replace Working Frequencies - + Sustituye las frecuencias de trabajo Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - + ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por las cargadas? Merge Working Frequencies - + Combina las frecuencias de trabajo Not a valid frequencies file - + El fichero de frecuencias no es válido Incorrect file magic - + Archivo mágico incorrecto Version is too new - + La versión es demasiado nueva Contents corrupt - + contenidos corruptos Save Working Frequencies - + Guardar las frecuencias de trabajo Only Save Selected Working Frequencies - + Guarda sólo las frecuencias de trabajo seleccionadas Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. - + ¿Seguro que quieres guardar sólo las frecuencias de trabajo seleccionadas actualmente? Haz clic en No para guardar todo. Reset Working Frequencies - + Reiniciar las frecuencias de trabajo Are you sure you want to discard your current working frequencies and replace them with default ones? - + ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por otras? Save Directory - + Guardar directorio AzEl Directory - + Directorio AzEl Rig control error - + Error de control del equipo Failed to open connection to rig - + No se pudo abrir la conexión al equipo Rig failure - + Fallo en el equipo @@ -616,85 +624,89 @@ Format: Failed to connect to DX Lab Suite Commander - + No se pudo conectar a DX Lab Suite Commander + DX Lab Suite Commander didn't respond correctly reading frequency: - + DX Lab Suite Commander no respondió correctamente la frecuencia de lectura: DX Lab Suite Commander sent an unrecognised TX state: - + DX Lab Suite Commander envió un estado TX no reconocido: DX Lab Suite Commander didn't respond correctly polling TX status: - + DX Lab Suite Commander no respondió correctamente sondeando el estado de TX: DX Lab Suite Commander rig did not respond to PTT: - + El equipo DX Lab Suite Commander no respondió al PTT: DX Lab Suite Commander didn't respond correctly polling frequency: - + DX Lab Suite Commander no respondió correctamente a la frecuencia de sondeo: DX Lab Suite Commander didn't respond correctly polling TX frequency: - + DX Lab Suite Commander no respondió correctamente sondeando a la frecuencia TX: DX Lab Suite Commander sent an unrecognised split state: - + DX Lab Suite Commander envió un split no reconocido: DX Lab Suite Commander didn't respond correctly polling split status: - + DX Lab Suite Commander no respondió correctamente al split de sondeo: DX Lab Suite Commander sent an unrecognised mode: " - + DX Lab Suite Commander envió un modo no reconocido: " DX Lab Suite Commander didn't respond correctly polling mode: - + DX Lab Suite Commander no respondió correctamente el modo de sondeo: DX Lab Suite Commander send command failed - + El comando de envío de DX Lab Suite Commander falló + DX Lab Suite Commander failed to send command "%1": %2 - + DX Lab Suite Commander no pudo enviar el comando "%1": %2 + DX Lab Suite Commander send command "%1" read reply failed: %2 - + Comando de envío de DX Lab Suite Commander "%1" lectura de respuesta fallida: %2 + DX Lab Suite Commander retries exhausted sending command "%1" - + DX Lab Suite Commander reintenta el comando de envío agotado "%1" - + DX Lab Suite Commander sent an unrecognized frequency - + DX Lab Suite Commander envió una frecuencia no reconocida @@ -702,135 +714,45 @@ Format: &Foreground color ... - + &Color de primer plano ... Choose %1 Foreground Color - + Escoge %1 color de primer plano &Unset foreground color - + &Color de primer plano desarmado &Background color ... - + &Color de fondo ... Choose %1 Background Color - + Escoge %1 color de fondo U&nset background color - + C&olor de fondo desarmado &Reset this item to defaults - + &Restablece este elemento a los valores predeterminados DecodeHighlightingModel - - - CQ in message - - - - - My Call in message - - - - - Transmitted message - - - - - New DXCC - - - - - New DXCC on Band - - - - - New Grid - - - - - New Grid on Band - - - - - New Call - - - - - New Call on Band - - - - - New Continent - - - - - New Continent on Band - - - - - New CQ Zone - - - - - New CQ Zone on Band - - - - - New ITU Zone - - - - - New ITU Zone on Band - - - - - LoTW User - - - - - f/g unset - - - - - b/g unset - - Highlight Type - + Tipo de resaltado @@ -838,33 +760,33 @@ Format: &Delete - + &Borrar &Insert ... - + &Introducir ... Insert &after ... - + Introducir &después ... Import Palette - + Importar la paleta Palettes (*.pal) - + Paletas (.pal) Export Palette - + Exportar la paleta @@ -872,7 +794,7 @@ Format: Gray time: - + Tiempo Gris: @@ -881,14 +803,15 @@ Format: URL Error - + Error al URL Invalid URL: "%1" - + URL no válida: +"%1" @@ -899,63 +822,64 @@ Format: JSON Error - + Error en JSON Contents file syntax error %1 at character offset %2 - + Error de sintaxis %1 en el desplazamiento de caracteres %2 Contents file top level must be a JSON array - + El nivel superior del archivo de contenido debe ser una matriz JSON File System Error - + Error del sistema de archivos Failed to open "%1" Error: %2 - %3 - + Falló al abrir "%1" +Error: %2 - %3 Contents entries must be a JSON array - + Las entradas de contenido deben ser una matriz JSON Contents entries must have a valid type - + Las entradas de contenido deben tener un tipo válido Contents entries must have a valid name - + Las entradas de contenido deben tener un nombre válido Contents entries must be JSON objects - + Las entradas de contenido deben ser objetos JSON Contents directories must be relative and within "%1" - + Los directorios de contenido deben ser relativos y dentro de "%1" Network Error - + Error de red Authentication required - + Autenticacion requerida @@ -963,7 +887,7 @@ Error: %2 - %3 &Erase - + &Borrar @@ -972,67 +896,67 @@ Error: %2 - %3 Echo Graph - + Gráfico de eco <html><head/><body><p>Compression factor for frequency scale</p></body></html> - + <html><head/><body><p>Factor de compresión para la escala de frecuencia</p></body></html> Bins/Pixel - + Bins/Pixel Gain - + Ganancia <html><head/><body><p>Echo spectrum gain</p></body></html> - + <html><head/><body><p>Ganancia de espectro de eco</p></body></html> Zero - + Cero <html><head/><body><p>Echo spectrum zero</p></body></html> - + <html><head/><body><p>Espectro de eco cero</p></body></html> <html><head/><body><p>Smoothing of echo spectrum</p></body></html> - + <html><head/><body><p>Suavizado del espectro de eco</p></body></html> Smooth - + Suave <html><head/><body><p>Number of echo transmissions averaged</p></body></html> - + <html><head/><body><p>Número promedio de transmisiones de eco</p></body></html> N: 0 - + N: 0 <html><head/><body><p>Click to cycle through a sequence of colors and line widths.</p></body></html> - + <html><head/><body><p>Haz clic para recorrer una secuencia de colores y anchos de línea.</p></body></html> Colors - + Colores @@ -1040,7 +964,7 @@ Error: %2 - %3 Emulated split mode requires rig to be in simplex mode - + El modo dividido emulado requiere que el equipo esté en modo simplex @@ -1048,73 +972,73 @@ Error: %2 - %3 Phase - + Fase Freq (Hz) - + Freq (Hz) Phase (Π) - + Fase (Π) Delay (ms) - + Retardo (ms) Measured - + Medida Proposed - + Propuesta Current - + Actual Group Delay - + Retraso del grupo Amplitude - + Amplitud Relative Power (dB) - + Poténcia Relativa (dB) Reference - + Referencia Phase ... - + Fase ... Refresh - + Actualizar Discard Measured - + Rechaza la medición @@ -1122,12 +1046,12 @@ Error: %2 - %3 Configuration to Clone From - + Configuración para clonar desde &Source Configuration Name: - + &Nombre de la configuración de la fuente: @@ -1135,128 +1059,128 @@ Error: %2 - %3 Dialog - + Diálogo Location: - + Ubicación: SNJ - + SNJ Contest: - + Concurso: ARRL-RTTY - + ARRL-RTTY Callsign: - + Indicativo: Category-Operator: - + Categoria del Operador: SINGLE-OP - + Mono Operador Category-Transmitter: - + Categoria del Transmisor: ONE - + Uno Category-Power: - + Categoria de Poténcia: LOW - + BAJA Category-Assisted: - + Categoria Asistida: NON-ASSISTED - + No Asistida Category-Band: - + Categoria Banda: ALL - + Todas Claimed-Score: - + Puntuación reclamada: Operators: - + Operadores: Club: - + Radio Club: Name: - + Nombre: Address: - + Dirección: Save Log File - + Guardar archivo de registro Cabrillo Log (*.cbr) - + Registro Cabrillo (*.cbr) Cannot open "%1" for writing: %2 - + No se puede abrir "%1" para la escritura: %2 Export Cabrillo File Error - + Error al exportar el archivo Cabrillo @@ -1265,32 +1189,32 @@ Error: %2 - %3 Fast Graph - + Gráfico rápido Waterfall gain - + Ganancia de la cascada Waterfall zero - + Cascada cero Spectrum zero - + Espectro cero <html><head/><body><p>Set reasonable levels for gain and zero sliders.</p></body></html> - + <html><head/><body><p>Establece niveles razonables para ganancia y cero controles deslizantes.</p></body></html> Auto Level - + Nivel automático @@ -1298,32 +1222,32 @@ Error: %2 - %3 Date & Time(UTC) - + Fecha y Hora en UTC Call - + Indicativo Grid - + Locator Sent - + Enviado Rcvd - + Recibido Band - + Banda @@ -1331,74 +1255,74 @@ Error: %2 - %3 Fox Log - + Registro de Zorro <html><head/><body><p>Right-click here for available actions.</p></body></html> - + <html><head/><body><p>Haz clic derecho para ver las acciones disponibles.</p></body></html> Callers: - + Indicativos: N - + N In progress: - + En progreso: Rate: - + Velocidad: &Export ADIF ... - + &Exportar ADIF ... Export ADIF Log File - + Exportar archivo de registro ADIF ADIF Log (*.adi) - + Registro ADIF (*.adi) Export ADIF File Error - + Error al exportar el archivo ADIF Cannot open "%1" for writing: %2 - + No se puede abrir "%1" para la escritura: %2 &Reset ... - + &Reiniciar ... Confirm Reset - + Confirmar reinicio Are you sure you want to erase file FoxQSO.txt and start a new Fox log? - + ¿Estás seguro de que deseas borrar el archivo FoxQSO.txt e iniciar un nuevo registro de Fox? @@ -1406,22 +1330,22 @@ Error: %2 - %3 Add Frequency - + Agregar frecuencia IARU &Region: - + &Región IARU: &Mode: - + &Modo: &Frequency (MHz): - + &Frecuencia en MHz: @@ -1430,25 +1354,25 @@ Error: %2 - %3 IARU Region - + Región IARU Mode - + Modo Frequency - + Frecuencia Frequency (MHz) - + Frecuencia en MHz @@ -1458,81 +1382,84 @@ Error: %2 - %3 Failed to connect to Ham Radio Deluxe - + No se pudo conectar a Ham Radio Deluxe + Failed to open file "%1": %2. - + Fallo al abrir el archivo "%1": %2. Ham Radio Deluxe: no rig found - + Ham Radio Deluxe: no se encontró ningún equipo Ham Radio Deluxe: rig doesn't support mode - + Ham Radio Deluxe: el equipo no admite el modo Ham Radio Deluxe: sent an unrecognised mode - + Ham Radio Deluxe: envió un modo no desconocido Ham Radio Deluxe: item not found in %1 dropdown list - + Ham Radio Deluxe: artículo no encontrado en %1 la lista desplegable Ham Radio Deluxe: button not available - + Ham Radio Deluxe: botón no disponible Ham Radio Deluxe didn't respond as expected - + Ham Radio Deluxe no respondió como se esperaba Ham Radio Deluxe: rig has disappeared or changed - + Ham Radio Deluxe: el equipo de radio ha desaparecido o cambiado Ham Radio Deluxe send command "%1" failed %2 - + Comando de envío Ham Radio Deluxe "%1" ha fallado %2 + Ham Radio Deluxe: failed to write command "%1" - + Ham Radio Deluxe: error al escribir el comando "%1" Ham Radio Deluxe sent an invalid reply to our command "%1" - + Ham Radio Deluxe envió una respuesta no válida a nuestro comando "%1" Ham Radio Deluxe failed to reply to command "%1" %2 - + Ham Radio Deluxe no respondió al comando "%1" %2 + Ham Radio Deluxe retries exhausted sending command "%1" - + Ham Radio Deluxe reintenta agotado enviando comando "%1" Ham Radio Deluxe didn't respond to command "%1" as expected - + Ham Radio Deluxe no respondió al comando "%1" como se esperaba @@ -1541,85 +1468,85 @@ Error: %2 - %3 Hamlib initialisation error - + Error de inicialización de Hamlib Hamlib settings file error: %1 at character offset %2 - + Error de archivo de configuración de Hamlib:%1 en el desplazamiento de caracteres %2 Hamlib settings file error: top level must be a JSON object - + Error de archivo de configuración de Hamlib: el nivel superior debe ser un objeto JSON Hamlib settings file error: config must be a JSON object - + Error de archivo de configuración de Hamlib: config debe ser un objeto JSON Unsupported CAT type - + Tipo CAT no admitido Hamlib error: %1 while %2 - + Error Hamlib: %1 mientras %2 opening connection to rig - + conexión de apertura al equipo getting current frequency - + obteniendo frecuencia actual getting current mode - + obteniendo el modo actual exchanging VFOs - + intercambiando VFO's getting other VFO frequency - + obteniendo otra frecuencia de VFO getting other VFO mode - + obteniendo otro modo VFO setting current VFO - + ajuste al VFO actual getting frequency - + obteniendo frecuencia getting mode - + obteniendo modo getting current VFO - + obteniendo el VFO actual @@ -1627,7 +1554,7 @@ Error: %2 - %3 getting current VFO frequency - + obteniendo la frecuencia actual de VFO @@ -1637,7 +1564,7 @@ Error: %2 - %3 setting frequency - + ajuste de frecuencia @@ -1645,7 +1572,7 @@ Error: %2 - %3 getting current VFO mode - + obteniendo el modo VFO actual @@ -1654,64 +1581,64 @@ Error: %2 - %3 setting current VFO mode - + ajuste del modo VFO actual setting/unsetting split mode - + activación/desactivación del modo dividido (split) setting split mode - + activar modo dividido (split) setting split TX frequency and mode - + Ajuste de frecuencia y modo de transmisión dividida (split) setting split TX frequency - + ajuste de frecuencia dividida en TX getting split TX VFO mode - + obteniendo el modo dividido de TX en el VFO setting split TX VFO mode - + ajuste del modo dividido (split) en TX del VFO getting PTT state - + obteniendo el estado del PTT setting PTT on - + activar el PTT setting PTT off - + desactivar el PTT setting a configuration item - + activar un elemento de configuración getting a configuration item - + obteniendo un elemento de configuración @@ -1719,17 +1646,17 @@ Error: %2 - %3 Help file error - + Error del archivo de ayuda Cannot open "%1" for reading - + No se puede abrir "%1" para leer Error: %1 - + Error: %1 @@ -1738,7 +1665,7 @@ Error: %2 - %3 IARU Region - + Región IARU @@ -1746,120 +1673,120 @@ Error: %2 - %3 Click OK to confirm the following QSO: - + Haz clic en Aceptar para confirmar el siguiente QSO: Call - + Indicativo Start - + Comienzo dd/MM/yyyy HH:mm:ss - + dd/MM/yyyy HH:mm:ss End - + Final Mode - + Modo Band - + Banda Rpt Sent - + Reporte Enviado Rpt Rcvd - + Reporte Recibido Grid - + Locator Name - + Nombre Tx power - + Poténcia de TX Retain - + Conservar Comments - + Comentarios Operator - + Operador Exch sent - + Intercambio enviado Rcvd - + Recibido Invalid QSO Data - + Datos de QSO no válidos Check exchange sent and received - + Comprobación del intercambio enviado y recibido Check all fields - + Verifica todos los campos Log file error - + Error de archivo de registro Cannot open "%1" for append - + No puedo abrir "%1" para anexar Error: %1 - + Error: %1 @@ -1868,39 +1795,47 @@ Error: %2 - %3 Network Error - SSL/TLS support not installed, cannot fetch: '%1' - + Error de red: el soporte SSL/TLS no está instalado, no se puede recuperar: +'%1' Network Error - Too many redirects: '%1' - + Error de red: demasiados redireccionamientos: +'%1' Network Error: %1 - + Error de red: +%1 File System Error - Cannot commit changes to: "%1" - + Error del sistema de archivos: no se pueden confirmar los cambios en: +"%1" File System Error - Cannot open file: "%1" Error(%2): %3 - + Error del sistema de archivos: no se puede abrir el archivo: +"%1" +Error(%2): %3 File System Error - Cannot write to file: "%1" Error(%2): %3 - + Error del sistema de archivos: no se puede escribir en el archivo: +"%1" +Error(%2): %3 @@ -1908,179 +1843,168 @@ Error(%2): %3 WSJT-X by K1JT - + WSJT-X por K1JT - - - - - - Band Activity - + Activitat en la banda UTC dB DT Freq Dr - + UTC dB DH Freq Dr - - - - - Rx Frequency - + Frecuencia de RX CQ only - + Solo CQ Enter this QSO in log - + Entra este QSO al log Log &QSO - + Log &QSO Stop monitoring - + Deja de monitorizar &Stop - + &Detener Toggle monitoring On/Off - + Activar/desactivar la monitorización &Monitor - + &Monitor <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> - + <html><head/><body><p>Borrar ventana derecha. Haz doble clic para borrar ambas ventanas.</p></body></html> Erase right window. Double-click to erase both windows. - + Borrar ventana derecha. Haz doble clic para borrar ambas ventanas. &Erase - + &Borrar <html><head/><body><p>Clear the accumulating message average.</p></body></html> - + <html><head/><body><p>Borrar el promedio de mensajes acumulados.</p></body></html> Clear the accumulating message average. - + Borrar el promedio de mensajes acumulados. Clear Avg - + Borrar media <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> - + <html><head/><body><p>Decodifica el período de RX más reciente en la frecuencia QSO</p></body></html> Decode most recent Rx period at QSO Frequency - + Decodifica el período de RX más reciente en la frecuencia QSO &Decode - + &Decodifica <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> - + <html><head/><body><p>Activar/desactivar TX</p></body></html> Toggle Auto-Tx On/Off - + Activar/desactivar TX E&nable Tx - + A&ctiva TX Stop transmitting immediately - + Deja de transmitir inmediatamente &Halt Tx - + &Detener TX <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> - + <html><head/><body><p>Activar/desactivar un tono de transmisión puro</p></body></html> Toggle a pure Tx tone On/Off - + Activar/desactivar un tono de transmisión puro &Tune - + &Sintoniza Menus - + Menus USB dial frequency - + Frecuencia de dial USB 14.078 000 - + 14.078 000 <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> - + <html><head/><body><p>30dB recomendado cuando solo hay ruido presente,<br/>Verde cuando el nivel es bueno,<br/>Rojo cuando puede ocurrir recortes y<br/>Amarillo cuando esta muy bajo.</p></body></html> Rx Signal - + Señal de RX @@ -2088,458 +2012,464 @@ Error(%2): %3 Green when good Red when clipping may occur Yellow when too low - + 30dB recomendado cuando solo hay ruido presente, +Verde cuando el nivel es bueno, +Rojo cuando puede ocurrir recortes y +Amarillo cuando esta muy bajo. DX Call - + Indiativo DX DX Grid - + Locator DX Callsign of station to be worked - + Indicativo de la estación a trabajar Search for callsign in database - + Buscar el indicativo en la base de datos &Lookup - + &Buscar Locator of station to be worked - + Locator de la estación a trabajar Az: 251 16553 km - + Az: 251 16553 km Add callsign and locator to database - + Agregar indicativo y locator a la base de datos Add - + Agregar Pwr - + Potencia <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> - + <html><head/><body><p>Si ha habido un error en el control del equipo, haz clic para restablecer y leer la frecuencia del dial. S implica modo dividido o split.</p></body></html> If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. - + Si ha habido un error en el control del equipo, haz clic para restablecer y leer la frecuencia del dial. S implica modo dividido o split. ? - + ? Adjust Tx audio level - + Ajuste del nivel de audio de TX <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> - + <html><head/><body><p>Selecciona la banda operativa, introduce la frecuencia en MHz o introduce el incremento de kHz seguido de k.</p></body></html> Frequency entry - + Frecuencia de entrada Select operating band or enter frequency in MHz or enter kHz increment followed by k. - + Selecciona la banda operativa, introduce la frecuencia en MHz o introduce el incremento de kHz seguido de k. <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> - + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> - + <html><head/><body><p>Marca para mantener fija la frecuencia de transmisión al hacer doble clic en el texto descodificado.</p></body></html> Check to keep Tx frequency fixed when double-clicking on decoded text. - + Marca para mantener fija la frecuencia de transmisión al hacer doble clic en el texto descodificado. Hold Tx Freq - + Manten TX Freq Audio Rx frequency - + Frecuencia de audio en RX Hz - + Hz Rx - + RX Set Tx frequency to Rx Frequency - + Coloca la frecuencia de RX en la de TX ▲ - + Frequency tolerance (Hz) - + Frecuencia de tolerancia (Hz) F Tol - + F Tol Set Rx frequency to Tx Frequency - + Coloca la frecuencia de TX en la de RX ▼ - + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> - + <html><head/><body><p>Umbral de sincronización. Los números más bajos aceptan señales de sincronización más débiles.</p></body></html> Synchronizing threshold. Lower numbers accept weaker sync signals. - + Umbral de sincronización. Los números más bajos aceptan señales de sincronización más débiles. Sync - + Sinc <html><head/><body><p>Check to use short-format messages.</p></body></html> - + <html><head/><body><p>Marca para usar mensajes de formato corto.</p></body></html> Check to use short-format messages. - + Marca para usar mensajes de formato corto. Sh - + Sh <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> - + <html><head/><body><p>Marca para habilitar los modos rápidos JT9</p></body></html> Check to enable JT9 fast modes - + Marca para habilitar los modos rápidos JT9 Fast - + Rápido <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> - + <html><head/><body><p>Marca para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos.</p></body></html> Check to enable automatic sequencing of Tx messages based on received messages. - + Marca para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos. Auto Seq - + Secuencia Automática <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> - + <html><head/><body><p>Contesta al primer CQ decodificado.</p></body></html> Check to call the first decoded responder to my CQ. - + Contesta al primer CQ decodificado. Call 1st - + Contesta al primer CQ Check to generate "@1250 (SEND MSGS)" in Tx6. - + Marcar para generar "@1250 (SEND MSGS)" en TX6. Tx6 - + TX6 <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> - + <html><head/><body><p>Marca a TX en minutos o secuencias de números pares, a partir de 0; desmarca las secuencias impares.</p></body></html> Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. - + Marca a TX en minutos o secuencias de números pares, a partir de 0; desmarca las secuencias impares. Tx even/1st - + Alternar minuto TX Par/Impar <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> - + <html><head/><body><p>Frecuencia para llamar a CQ en kHz por encima del MHz actual</p></body></html> Frequency to call CQ on in kHz above the current MHz - + Frecuencia para llamar a CQ en kHz por encima del MHz actual Tx CQ - + TX CQ <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> - + <html><head/><body><p>Marca esto para llamar a CQ a la frecuencia&quot;TX CQ&quot;. RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder.</p><p>No está disponible para los titulares de indicativo no estándar.</p></body></html> Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. - + Marca esto para llamar a CQ a la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder. +No está disponible para los titulares de indicativo no estándar. Rx All Freqs - + RX en todas las frecuencias <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> - + <html><head/><body><p>El submodo determina el espaciado de tono; A es más estrecho.</p></body></html> Submode determines tone spacing; A is narrowest. - + El submodo determina el espaciado de tono; A es más estrecho. Submode - + Submodo - Fox - + Zorro <html><head/><body><p>Check to monitor Sh messages.</p></body></html> - + <html><head/><body><p>Marca para monitorear los mensajes Sh.</p></body></html> Check to monitor Sh messages. - + Marca para monitorear los mensajes Sh. SWL - + SWL Best S+P - + El mejor S+P <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> - + <html><head/><body><p>Marca para comenzar a registrar los datos de calibración.<br/>Mientras se mide la corrección de calibración, se desactiva.<br/>Cuando no está marcado, puedes ver los resultados de la calibración.</p></body></html> Check this to start recording calibration data. While measuring calibration correction is disabled. When not checked you can view the calibration results. - + Marca para comenzar a registrar los datos de calibración. +Mientras se mide la corrección de calibración, se desactiva. +Cuando no está marcado, puedes ver los resultados de la calibración. Measure - + Medida <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> - + <html><head/><body><p>Informe de señal: relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB).</p></body></html> Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). - + Informe de señal: relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB). Report - + Informe de señal <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> - + <html><head/><body><p>Tx/Rx o longitud de secuencia de calibración de frecuencia</p></body></html> Tx/Rx or Frequency calibration sequence length - + Tx/Rx o longitud de secuencia de calibración de frecuencia s - + s T/R - + T/R Toggle Tx mode - + Conmuta el modo TX Tx JT9 @ - + TX JT9 @ Audio Tx frequency - + Frecuencia de audio de TX Tx - + TX Tx# - + TX# <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> - + <html><head/><body><p>Haz doble clic en otro indicativo que llama para poner en la cola esa llamada para tú próximo QSO.</p></body></html> Double-click on another caller to queue that call for your next QSO. - + Haz doble clic en otro indicativo que llama para poner en la cola esa llamada para tú próximo QSO. Next Call - + Próximo Indicativo 1 - + 1 Send this message in next Tx interval - + Enviar este mensaje en el siguiente intervalo de transmisión Ctrl+2 - + Ctrl+2 <html><head/><body><p>Send this message in next Tx interval</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>Enviar este mensaje en el siguiente intervalo de transmisión.</p><p>Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> Send this message in next Tx interval 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) - + Enviar este mensaje en el siguiente intervalo de transmisión. +Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1). Ctrl+1 - + Ctrl+1 @@ -2547,159 +2477,166 @@ Double click to toggle the use of the Tx1 message to start a QSO with a station Switch to this Tx message NOW - + Cambia a este mensaje de TX AHORA Tx &2 - + TX &2 Alt+2 - + Alt+2 <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>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> Switch to this Tx message NOW 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) - + Cambia a este mensaje de TX AHORA. +Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1). Tx &1 - + Tx &1 Alt+1 - + Alt+1 Ctrl+6 - + Ctrl+6 <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> - + <html><head/><body><p>Enviar este mensaje en el siguiente intervalo de transmisión</p><p>Haz doble clic para restablecer el mensaje estándar 73.</p></body></html> Send this message in next Tx interval Double-click to reset to the standard 73 message - + Enviar este mensaje en el siguiente intervalo de transmisión +Haz doble clic para restablecer el mensaje estándar 73. Ctrl+5 - + Ctrl+5 Ctrl+3 - + Ctrl+3 Tx &3 - + TX &3 Alt+3 - + Alt+3 <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>Envia este mensaje en el siguiente intervalo de transmisión.</p><p>Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> Send this message in next Tx interval Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required - + Envia este mensaje en el siguiente intervalo de transmisión. +Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2). +Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes. Ctrl+4 - + Ctrl+4 <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>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> Switch to this Tx message NOW Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required - + Cambia a este mensaje de TX AHORA. +Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2). +Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes. Tx &4 - + TX &4 Alt+4 - + Alt+4 <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> - + <html><head/><body><p>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para restablecer el mensaje estándar 73.</p></body></html> Switch to this Tx message NOW Double-click to reset to the standard 73 message - + Cambia a este mensaje de TX AHORA. +Haz doble clic para restablecer el mensaje estándar 73. Tx &5 - + TX &5 Alt+5 - + Alt+5 Now - + Ahora Generate standard messages for minimal QSO - + Genera mensajes estándar para un QSO mínimo Generate Std Msgs - + Genera Std Msgs Tx &6 - + TX &6 Alt+6 - + Alt+6 @@ -2708,989 +2645,951 @@ Double-click to reset to the standard 73 message or select a predefined macro from the dropdown list. Press ENTER to add the current text to the predefined list. The list can be maintained in Settings (F2). - + Introduce un mensaje de texto libre (máximo 13 caracteres) +o selecciona una macro predefinida de la lista desplegable. +Presiona ENTRAR para agregar el texto actual al predefinido +de la lista. La lista se puede mantener en Configuración (F2). Queue up the next Tx message - + Poner en cola el siguiente mensaje de TX Next - + Próximo 2 - + 2 Calling CQ - + Llamada CQ Generate a CQ message - + Genera mensaje CQ CQ - + CQ Generate message with RRR - + Genera mensaje con RRR RRR - + RRR Generate message with report - + Genera mensaje con informe de señal dB - + dB Answering CQ - + Respondiendo a CQ Generate message for replying to a CQ - + Generar mensaje para responder a un CQ Grid - + Locator Generate message with R+report - + Generar mensaje con R+informe de señal R+dB - + R+dB Generate message with 73 - + Generar mensaje con 73 73 - + 73 Send this standard (generated) message - + Enviar este mensaje estándar (generado) Gen msg - + Gen msg Send this free-text message (max 13 characters) - + Enviar este mensaje de texto libre (máximo 13 caracteres) Free msg - + Msg Libre 3 - + 3 Max dB - + Max dB CQ AF - + CQ AF CQ AN - + CQ AN CQ AS - + CQ AS CQ EU - + CQ EU CQ NA - + CQ NA CQ OC - + CQ OC CQ SA - + CQ SA CQ 0 - + CQ 0 CQ 1 - + CQ 1 CQ 2 - + CQ 2 CQ 3 - + CQ 3 CQ 4 - + CQ 4 CQ 5 - + CQ 5 CQ 6 - + CQ 6 CQ 7 - + CQ 7 CQ 8 - + CQ 8 CQ 9 - + CQ 9 Reset - + Reiniciar N List - + N List N Slots - + N Slots Random - + Aleatorio Call - + Indicativo S/N (dB) - + S/N (dB) Distance - + Distancia More CQs - + Más CQ's Percentage of 2-minute sequences devoted to transmitting. - + Porcentaje de secuencias de 2 minutos dedicadas a la transmisión. % - + % Tx Pct - + TX Pct Band Hopping - + Salto de banda Choose bands and times of day for band-hopping. - + Elija bandas y momentos del día para saltar de banda. Schedule ... - + Calendario ... Upload decoded messages to WSPRnet.org. - + Cargue mensajes decodificados a WSPRnet.org. Upload spots - + Subir Spots <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>Los locator de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes.</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. - + Los locator de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes. Prefer type 1 messages - + Prefieres mensajes de tipo 1 No own call decodes - + No se descodifica ningún indicativo propio Transmit during the next 2-minute sequence. - + Transmite durante la siguiente secuencia de 2 minutos. Tx Next - + Siguiente TX Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. - + Configura la potencia de transmisión en dBm (dB por encima de 1 mW) como parte de tú mensaje WSPR. File - + Fichero View - + Ver Decode - + Decodifica Save - + Guardar Help - + Ayuda Mode - + Modo Configurations - + Configuraciones Tools - + Herramientas Exit - + Salir Configuration - + Configuración F2 - + F2 About WSJT-X - + Acerca de WSJT-X Waterfall - + Cascada Open - + Abrir Ctrl+O - + Ctrl+O Open next in directory - + Abrir siguiente en el directorio Decode remaining files in directory - + Decodifica los archivos restantes en el directorio Shift+F6 - + Shift+F6 Delete all *.wav && *.c2 files in SaveDir - + Borra todos los archivos *.wav && *.c2 del directorio Guardar None - + Ninguno Save all - + Guardar todo Online User Guide - + Guía de usuario en línea Keyboard shortcuts - + Atajos de teclado Special mouse commands - + Comandos especiales del ratón JT9 - + JT9 Save decoded - + Guarda el decodificado Normal - + Normal Deep - + Profundo Monitor OFF at startup - + Monitor apagado al inicio Erase ALL.TXT - + Borrar ALL.TXT Erase wsjtx_log.adi - + Borrar el fichero wsjtx_log.adi Convert mode to RTTY for logging - + Convierte el modo a RTTY después de registrar el QSO Log dB reports to Comments - + Pon los informes de recepción en dB en Comentarios Prompt me to log QSO - + Pedirme que registre QSO Blank line between decoding periods - + Línea en blanco entre períodos de decodificación Clear DX Call and Grid after logging - + Borrar Indicativo DX y Locator DX después de registrar el QSO Display distance in miles - + Mostrar distancia en millas Double-click on call sets Tx Enable - + Haz doble clic en los conjuntos de indicativos de activar TX F7 - + F7 Tx disabled after sending 73 - + Tx deshabilitado después de enviar 73 - Runaway Tx watchdog - + Vigilante de fuga TX Allow multiple instances - + Permitir múltiples instancias Tx freq locked to Rx freq - + TX frec bloqueado a RX frec JT65 - + JT65 JT9+JT65 - + JT9+JT65 Tx messages to Rx Frequency window - + Mensajes de texto a la ventana de frecuencia de RX Gray1 - + Gris1 Show DXCC entity and worked B4 status - + Mostrar entidad DXCC y estado B4 trabajado Astronomical data - + Datos astronómicos List of Type 1 prefixes and suffixes - + Lista de prefijos y sufijos de tipo 1 Settings... - + Configuraciones... Local User Guide - + Guía de usuario local Open log directory - + Abrir directorio de registro JT4 - + JT4 Message averaging - + Promedio de mensajes Enable averaging - + Habilitar el promedio Enable deep search - + Habilitar búsqueda profunda WSPR - + WSPR Echo Graph - + Gráfico de eco F8 - + F8 Echo - + Echo EME Echo mode - + Modo EME Echo ISCAT - + ISCAT Fast Graph - + Gráfico rápido F9 - + F9 &Download Samples ... - + &Descargar muestras ... <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> - + <html><head/><body><p>Descarga archivos de audio de muestra que demuestren los distintos modos.</p></body></html> MSK144 - + MSK144 QRA64 - + QRA64 Release Notes - + Notas de lanzamiento Enable AP for DX Call - + Habilitar AP para llamada DX FreqCal - + FreqCal Measure reference spectrum - + Medir espectro de referencia Measure phase response - + Medir la respuesta de fase Erase reference spectrum - + Borrar espectro de referencia Execute frequency calibration cycle - + Ejecutar ciclo de calibración de frecuencia Equalization tools ... - + Herramientas de ecualización ... WSPR-LF - + WSPR-LF Experimental LF/MF mode - + Modo experimental LF/MF FT8 - + FT8 Enable AP - + Habilitar AP Solve for calibration parameters - + Resolver para parámetros de calibración Copyright notice - + Aviso de Copyright Shift+F1 - + Shift+F1 Fox log - + Log Zorro FT8 DXpedition Mode User Guide - + Guía del usuario del modo FT8 DXpedition Reset Cabrillo log ... - + Restablecer registro de Cabrillo ... Color highlighting scheme - + Esquema de resaltado de color Contest Log - + Registro de Concurso Export Cabrillo log ... - + Exportar registro de Cabrillo ... Quick-Start Guide to WSJT-X 2.0 - + Guía de inicio rápido para WSJT-X 2.0 Contest log - + Registro de Concurso Erase WSPR hashtable - + Borrar la tabla de WSPR FT4 - + FT4 Rig Control Error - - - - - - - Receiving - + Error de control del equipo Do you want to reconfigure the radio interface? - + ¿Desea reconfigurar la interfaz de radio? Error Scanning ADIF Log - + Error al escanear el registro ADIF Scanned ADIF log, %1 worked before records created - + Registro ADIF escaneado, %1 funcionaba antes de la creación de registros Error Loading LotW Users Data - + Error al cargar datos de usuarios de LotW Error Writing WAV File - + Error al escribir el archivo WAV Configurations... - - - - - - - - - - - - - - - - - - - - Message - + Configuraciones... Error Killing jt9.exe Process - + Error al matar el proceso jt9.exe KillByName return code: %1 - + Código de retorno de KillByName: %1 Error removing "%1" - + Error al eliminar "%1" Click OK to retry - + Haga clic en Aceptar para volver a intentar - + Improper mode - + Modo incorrecto - + File Open Error - + Error de apertura de fichero - - - - + + + + Cannot open "%1" for append: %2 - + No puedo abrir "%1" para anexar: %2 Error saving c2 file - + Error al guardar el fichero c2 Error in Sound Input - + Error en entrada de sonido Error in Sound Output - - - - - - - Single-Period Decodes - - - - - - - Average Decodes - + Error en la salida de sonido Change Operator - + Cambiar operador New operator: - + Operador nuevo: Status File Error - + Error de estado del fichero - + Cannot open "%1" for writing: %2 - + No se puede abrir "%1" para la escritura: %2 Subprocess Error - + Error de subproceso Subprocess failed with exit code %1 - + El subproceso falló con el código de salida %1 Running: %1 %2 - + Corriendo: %1 +%2 Subprocess error - + Error de subproceso Reference spectrum saved - + Espectro de referencia guardado Invalid data in fmt.all at line %1 - + Datos no válidos en fmt.all en la línea %1 Good Calibration Solution - + Buena solución de calibración @@ -3699,266 +3598,252 @@ list. The list can be maintained in Settings (F2). %7%L8 %9%L10 Hz</pre> - + <pre>%1%L2 ±%L3 ppm +%4%L5 ±%L6 Hz + +%7%L8 +%9%L10 Hz</pre> Delete Calibration Measurements - + Eliminar mediciones de calibración The "fmt.all" file will be renamed as "fmt.bak" - + El fichero "fmt.all" será renombrado como "fmt.bak" If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + Si haces un uso justo de cualquier parte de WSJT-X bajo los términos de la Licencia Pública General de GNU, debes mostrar el siguiente aviso de copyright de manera destacada en tú trabajo derivado: + +"Los algoritmos, el código fuente, la apariencia de WSJT-X y los programas relacionados, y las especificaciones del protocolo para los modos FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 son Copyright (C) 2001-2020 por uno o más de los siguientes autores: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q y otros miembros del Grupo de Desarrollo WSJT ". No data read from disk. Wrong file format? - + No se leen datos del disco. Formato de archivo incorrecto? Confirm Delete - + Confirmar eliminación Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + ¿Estas seguro de que deseas eliminar todos los archivos *.wav y *.c2 en "%1"? Keyboard Shortcuts - + Atajo de teclado Special Mouse Commands - + Comandos especiales del ratón No more files to open. - + No hay más ficheros para abrir. Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + Por favor, elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30m. WSPR Guard Band - + Banda de Guardia WSPR Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Elige otra frecuencia de dial. WSJT-X no funcionará en modo Zorro en las sub-bandas FT8 estándar. Fox Mode warning - + Advertencia del modo Zorro - - Last Tx: %1 - - - - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and 'EU VHF Contest' on the Settings | Advanced tab. - + ¿Cambiar al modo Concurso VHF EU? + +Para hacerlo, marca 'Actividad operativa especial' y +'Concurso VHF EU' en la Configuración | Lengüeta avanzada. - + Should you switch to ARRL Field Day mode? - + ¿Cambiar al modo ARRL Field Day? - + Should you switch to RTTY contest mode? - - - - - - - - Add to CALL3.TXT - + ¿Cambiar al modo de concurso RTTY? - Please enter a valid grid locator - - - - Cannot open "%1" for read/write: %2 - + + + Add to CALL3.TXT + Añadir a CALL3.TXT - + + Please enter a valid grid locator + Por favor, introduce un locator válido + + + + Cannot open "%1" for read/write: %2 + No se puede abrir "%1" para leer/escribir: %2 + + + %1 is already in CALL3.TXT, do you wish to replace it? - + %1 +ya está en CALL3.TXT, ¿deseas reemplazarlo? - + Warning: DX Call field is empty. - - - - - Log file error - + Advertencia: el campo de Indicativo DX está vacío. - Cannot open "%1" - + Log file error + Error de archivo de registro - - Error sending log to N1MM - + + Cannot open "%1" + No puedo abrir "%1" + Error sending log to N1MM + Error al enviar el registro a N1MM + + + Write returned "%1" - - - - - Stations calling DXpedition %1 - - - - - Hound - - - - - Tx Messages - - - - - - - Confirm Erase - + Escritura devuelta "%1" - Are you sure you want to erase file ALL.TXT? - + + + Confirm Erase + Confirmar borrado - - - Confirm Reset - + + Are you sure you want to erase file ALL.TXT? + ¿Estás seguro de que quieres borrar el archivo ALL.TXT? - Are you sure you want to erase your contest log? - + + Confirm Reset + Confirmar reinicio + Are you sure you want to erase your contest log? + ¿Estás seguro de que quieres borrar el registro de tú concurso? + + + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Hacer esto eliminará todos los registros de QSO para el concurso actual. Se guardarán en el archivo de registro de ADIF, pero no estarán disponibles para la exportación en su registro de Cabrillo. - + Cabrillo Log saved - + Cabrillo Log guardado - + Are you sure you want to erase file wsjtx_log.adi? - + ¿Estás seguro de que quieres borrar el archivo wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + ¿Estás seguro de que quieres borrar la tabla WSPR? - + VHF features warning - + Advertencia de características VHF - + Tune digital gain - + Ganancia de sintonización digital - + Transmit digital gain - + Ganancia de transmisión digital - + Prefixes - - - - - Network Error - + Prefijos + Network Error + Error de red + + + Error: %1 UDP server %2:%3 - + Error: %1 +Servidor UDP %2:%3 - + File Error - + Error en fichero - + Phase Training Disabled - + Fase de entrenamiento deshabilitado - + Phase Training Enabled - + Fase de entrenamiento habilitado - - WD:%1m - - - - - + + Log File Error - + Error de archivo de registro - + Are you sure you want to clear the QSO queues? - + ¿Estás seguro de que quieres borrar las colas QSO? @@ -3967,12 +3852,12 @@ UDP server %2:%3 Message Averaging - + Promedio de mensajes UTC Sync DT Freq - + UTC Sync DH Freq @@ -3981,7 +3866,7 @@ UDP server %2:%3 Mode - + Modo @@ -3989,7 +3874,7 @@ UDP server %2:%3 Default - + por defecto @@ -3997,62 +3882,62 @@ UDP server %2:%3 &Switch To - + &Cambiar a &Clone - + &Clon Clone &Into ... - + Clon &a ... R&eset - + &Reiniciar &Rename ... - + &Renombrar ... &Delete - + &Borrar Clone Into Configuration - + Clonar a la configuración Confirm overwrite of all values for configuration "%1" with values from "%2"? - + ¿Confirmas la sobrescritura de todos los valores para la configuración "%1" con valores de "%2"? Reset Configuration - + Restablecer configuración Confirm reset to default values for configuration "%1"? - + ¿Quieres restablecer a los valores predeterminados para la configuración "%1"? Delete Configuration - + Eliminar configuración Confirm deletion of configuration "%1"? - + ¿Quieres eliminar de la configuración "%1"? @@ -4060,17 +3945,17 @@ UDP server %2:%3 New Configuration Name - + Nuevo nombre de configuración Old name: - + Nombre Anterior: &New name: - + &Nombre Nuevo: @@ -4078,29 +3963,29 @@ UDP server %2:%3 OmniRig: unrecognized mode - + OmniRig: modo no reconocido Failed to start OmniRig COM server - + Error al iniciar el servidor COM para OmniRig OmniRig: don't know how to set rig frequency - + OmniRig: no sé cómo configurar la frecuencia del equipo OmniRig: timeout waiting for update from rig - + OmniRig: el tiempo de espera finalizó en la actualización del equipo OmniRig COM/OLE error: %1 at %2: %3 (%4) - + Error de OmniRig COM/OLE: %1 a %2: %3 (%4 @@ -4108,60 +3993,60 @@ UDP server %2:%3 Unexpected rig error - + Error inesperado del equipo QObject - + Invalid rig name - \ & / not allowed - + Nombre del equipo inválido - \ & / No permitido User Defined - + Definido por el usuario Failed to open LotW users CSV file: '%1' - + Error al abrir el archivo CSV de los usuarios de LotW: '%1' OOB - + OOB Too many colours in palette. - + Demasiados colores en la paleta. Error reading waterfall palette file "%1:%2" too many colors. - + Error al leer el archivo de paleta en cascada "%1:%2" demasiados colores. Error reading waterfall palette file "%1:%2" invalid triplet. - + Error al leer el archivo de paleta en cascada "%1:%2" triplete inválido. Error reading waterfall palette file "%1:%2" invalid color. - + Error al leer el archivo de paleta en cascada "%1:%2" color inválido. Error opening waterfall palette file "%1": %2. - + Error al abrir el archivo de paleta en cascada "%1": %2. Error writing waterfall palette file "%1": %2. - + Error al escribir el archivo de paleta en cascada "%1": %2. @@ -4174,7 +4059,7 @@ UDP server %2:%3 File System Error - + Error del sistema de archivos @@ -4182,56 +4067,66 @@ UDP server %2:%3 "%1" to: "%2" Error(%3): %4 - + No se puede cambiar el nombre del archivo: +"%1" +a: "%2" +Error(%3): %4 Cannot delete file: "%1" - + No se puede eliminar el archivo: +"%1" Network Error - + Error de red Too many redirects: %1 - + Demasiados redireccionamientos: %1 Redirect not followed: %1 - + Redireccionamiento no seguido: %1 Cannot commit changes to: "%1" - + No se pueden enviar cambios a: +"%1" Cannot open file: "%1" Error(%2): %3 - + No puede abrir el archivo: +"%1" +Error(%2): %3 Cannot make path: "%1" - + No se puede hacer camino: +"%1" Cannot write to file: "%1" Error(%2): %3 - + No se puede escribir en el archivo: +"%1" +Error(%2): %3 @@ -4239,17 +4134,17 @@ Error(%2): %3 Download Samples - + Descargar muestras Input Error - + Error de entrada Invalid URL format - + Formato de URL no válido @@ -4257,67 +4152,67 @@ Error(%2): %3 An error opening the audio input device has occurred. - + Se produjo un error al abrir el dispositivo de entrada de audio. An error occurred during read from the audio input device. - + Se produjo un error durante la lectura desde el dispositivo de entrada de audio. Audio data not being fed to the audio input device fast enough. - + Los datos de audio no se envían al dispositivo de entrada de audio lo suficientemente rápido. Non-recoverable error, audio input device not usable at this time. - + Error no recuperable, el dispositivo de entrada de audio no se puede utilizar en este momento. Requested input audio format is not valid. - + El formato de audio de entrada solicitado no es válido. Requested input audio format is not supported on device. - + El formato de audio de entrada solicitado no es compatible con el dispositivo. Failed to initialize audio sink device - + Error al inicializar el dispositivo receptor de audio Idle - + Inactivo Receiving - + Recibiendo Suspended - + Suspendido Interrupted - + Interrumpido Error - + Error Stopped - + Detenido @@ -4325,62 +4220,62 @@ Error(%2): %3 An error opening the audio output device has occurred. - + Se produjo un error al abrir el dispositivo de salida de audio. An error occurred during write to the audio output device. - + Se produjo un error durante la escritura en el dispositivo de salida de audio. Audio data not being fed to the audio output device fast enough. - + Los datos de audio no se envían al dispositivo de salida de audio lo suficientemente rápido. Non-recoverable error, audio output device not usable at this time. - + Error no recuperable, dispositivo de salida de audio no utilizable en este momento. Requested output audio format is not valid. - + El formato de audio de salida solicitado no es válido. Requested output audio format is not supported on device. - + El formato de audio de salida solicitado no es compatible con el dispositivo. Idle - + Inactivo Sending - + Recibiendo Suspended - + Suspendido Interrupted - + Interrumpido Error - + Error Stopped - + Detenido @@ -4388,22 +4283,22 @@ Error(%2): %3 Add Station - + Agregar estación &Band: - + &Banda: &Offset (MHz): - + &Desplazamiento en MHz: &Antenna: - + &Antena: @@ -4411,32 +4306,32 @@ Error(%2): %3 Band name - + Nombre de la Banda Frequency offset - + Frecuencia de desplazamiento Antenna description - + Descripción de la antena Band - + Banda Offset - + Desplazamiento Antenna Description - + Descripción de la antena @@ -4444,7 +4339,7 @@ Error(%2): %3 Unexpected rig error - + Error inesperado del equipo @@ -4452,183 +4347,183 @@ Error(%2): %3 Dialog - + Diálogo Controls - + Controles Spectrum gain - + Ganancia del espectro Palette - + Paleta <html><head/><body><p>Enter definition for a new color palette.</p></body></html> - + <html><head/><body><p>Introduce la definición para una nueva paleta de colores.</p></body></html> Adjust... - + Ajustar... Waterfall gain - + Ganancia de la cascada <html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html> - + <html><head/><body><p>Establece el tamaño fraccional del espectro en esta ventana.</p></body></html> % - + % Spec - + Espec <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> - + <html><head/><body><p>Acoplar la línea base espectral sobre el intervalo visualizado completo.</p></body></html> Flatten - + Flatten <html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html> - + <html><head/><body><p>Calcula y guarda un espectro de referencia. (Todavía no está completamente implementado).</p></body></html> Ref Spec - + Ref Espec Smoothing of Linear Average spectrum - + Suavizado del espectro promedio lineal Smooth - + Suave Compression factor for frequency scale - + Factor de compresión para escala de frecuencia Bins/Pixel - + Bins/Pixel Select waterfall palette - + Seleccionar paleta de cascada <html><head/><body><p>Select data for spectral display</p></body></html> - + <html><head/><body><p>Seleccionar datos para visualización espectral</p></body></html> Current - + Actual Cumulative - + Acumulativo Linear Avg - + Promedio lineal Reference - + Referencia <html><head/><body><p>Frequency at left edge of waterfall</p></body></html> - + <html><head/><body><p>Frecuencia en el borde izquierdo de la cascada.</p></body></html> Hz - + Hz Start - + Empezar <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> - + <html><head/><body><p>Decodifica JT9 solo por encima de esta frecuencia</p></body></html> JT9 - + JT9 JT65 - + JT65 Number of FFTs averaged (controls waterfall scrolling rate) - + Número promedio de FFT (controla la velocidad de desplazamiento en la cascada) N Avg - + Promedio N Waterfall zero - + Cascada cero Spectrum zero - + Espectro cero Wide Graph - + Gráfico amplio Read Palette - + Leer paleta @@ -4636,268 +4531,269 @@ Error(%2): %3 Settings - + Configuraciones Genera&l - + Genera&l General station details and settings. - + Detalles generales de la estación y configuraciones. Station Details - + Detalles de la estación My C&all: - + Mi I&ndicativo: Station callsign. - + Indicativo de la Estación. M&y Grid: - + M&i Locator: <html><head/><body><p>Maidenhead locator, preferably 6 characters.</p></body></html> - + <html><head/><body><p>Locator tipo Maidenhead, preferiblemente 6 caracteres.</p></body></html> Check to allow grid changes from external programs - + Marca para permitir cambios de Locator de programas externos AutoGrid - + Locator automático IARU Region: - + Región IARU: <html><head/><body><p>Select your IARU region.</p></body></html> - + <html><head/><body><p>Seleccions tú región IARU.</p></body></html> Message generation for type 2 compound callsign holders: - + Generación de mensajes para titulares de indicativos compuestos de tipo 2: <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>Los indicativos compuestos del tipo 2 son aquellos con prefijos o sufijos no incluidos en la lista previa permitida (Consulta Ayuda, Prefijos y sufijos adicionales). </P><p>Esta opción determina qué mensajes generados deben contener tu indicativo de tipo completo 2 en lugar de tu indicativo base. Sólo se aplica si tienes un indicativo compuesto de tipo 2.</P><p>Esta opción controla la forma en que se generan los mensajes que se utilizan para responder a llamadas de CQ. Los mensajes generados 6 (CQ) y 5 (73) siempre contendrán tu indicativo completo. Los protocolos JT65 y JT9 permiten algunos mensajes estándar con tu indicativo completo a costa de otra información, como la llamada DX o el locator.</P> <p>La elección del mensaje 1 omite el indicativo de DX , que puede ser un problema cuando se responde a las llamadas de CQ. La elección del mensaje 3 también omite el indicativo de DX y muchas versiones de este software, puede no extraer el informe. Si escoges ninguno, no significa que sólo tu indicativo completo aparezca al mensaje 5 (73) de manera que el otro operador de QSO puede registrar el indicativo erróneo.</P><p> Ninguna de estas opciones es perfecta, el mensaje 3 suele ser el mejor, pero ten en cuenta que el otro operador de QSO puede no registrar el informe que le envías.</p></body></html> Full call in Tx1 - + Indicativo completo en TX1 Full call in Tx3 - + Indicativo completo en TX5 Full call in Tx5 only - + Indicativo completo solo en TX5 Display - + Monitor Show outgoing transmitted messages in the Rx frequency window. - + Mostrar mensajes transmitidos salientes en la ventana de frecuencia de RX. &Tx messages to Rx frequency window - + &Mensajes de texto en la ventana de frecuencia RX Show if decoded stations are new DXCC entities or worked before. - + Mostrar si las estaciones decodificadas son entidades DXCC nuevas o las has trabajado antes. Show &DXCC, grid, and worked-before status - + Mostrar &DXCC, Locator y si se ha trabajado antes <html><head/><body><p>Check to have decodes for a new period start at the top of the Band Activity window and not scroll off the top when the window is full.</p><p>This is to aid selecting decodes to double-click while decoding is still in progress. Use the Band Activity vertical scroll bar to reveal decodes past the bottom of the window.</p></body></html> - + <html><head/><body><p>Comprueba que tengas decodificaciones para comenzar un nuevo período en la parte superior de la ventana de Actividad de banda y no muevas la parte superior cuando la ventana esté llena.</p><p> Esto sirve para ayudar a seleccionar decodificaciones, puedes hacer doble clic mientras la decodificación aún está en curso. Utiliza la barra de desplazamiento vertical de Actividad de banda para ver decodificaciones pasadas en la parte inferior de la ventana.</P></body></html> Start new period decodes at top - + Inicia un nuevo periodo de decodificaciones en la parte superior Show principal prefix instead of country name - + Mostrar el prefijo principal en lugar del nombre del país Set the font characteristics for the application. - + Define las características de la fuente para la aplicación. Font... - + Fuente... Set the font characteristics for the Band Activity and Rx Frequency areas. - + Establece las características de la fuente para las áreas de Actividad de banda y Frecuencia de RX. Decoded Text Font... - + Tipo de fuente en el área de decodificada ... Include a separator line between periods in the band activity window. - + Incluye una línea de separación entre períodos en la ventana de actividad de la banda. &Blank line between decoding periods - + &Línea en blanco entre períodos de decodificación Show distance to DX station in miles rather than kilometers. - + Muestra la distancia a la estación de DX en millas en lugar de kilómetros. Display dista&nce in miles - + Mostrar dista&ncia en millas Behavior - + Comportamiento Decode after EME delay - + Decodificar después del retardo de EME Tx watchdog: - + TX Vigilante: <html><head/><body><p>Number of minutes before unattended transmissions are aborted</p></body></html> - + <html><head/><body><p>Número de minutos antes de que se cancelen las transmisiones desatendidas</p></body></html> Disabled - + Desactivado minutes - + minutos Enable VHF/UHF/Microwave features - + Habilita las funciones VHF/UHF/Microondas Single decode - + Decodificación individual <html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html> - + <html><head/><body><p>Algunos equipos no pueden procesar comandos CAT mientras transmiten. Esto significa que si estás operando en modo dividido (split) puede que tengas que desmarcar esta opción.</p></body></html> Allow Tx frequency changes while transmitting - + Permitir cambios de frecuencia de transmisión mientras se transmite Don't start decoding until the monitor button is clicked. - + No empieza a decodificar hasta que hagas clic en el botón de monitor. Mon&itor off at startup - + Mon&itor apagado al inicio <html><head/><body><p>Check this if you wish to automatically return to the last monitored frequency when monitor is enabled, leave it unchecked if you wish to have the current rig frequency maintained.</p></body></html> - + <html><head/><body><p>Marca esto si deseas volver automáticamente a la última frecuencia monitoreada cuando el monitor está habilitado, déjalo sin marcar si deseas mantener la frecuencia actual del equipo.</p></body></html> Monitor returns to last used frequency - + El monitor vuelve a la última frecuencia utilizada Alternate F1-F6 bindings - + Enlaces alternativos F1-F6 Turns off automatic transmissions after sending a 73 or any other free text message. - + Apaga las transmisiones automáticas después de enviar un 73 o +cualquier otro mensaje de texto libre. Di&sable Tx after sending 73 - + De&shabilita TX después de enviar un 73 Send a CW ID after every 73 or free text message. - + Envía una ID de CW después de cada 73 o mensaje de texto libre. CW ID a&fter 73 - + ID de CW d&espués de 73 Periodic CW ID Inter&val: - + Inter&valo de ID de CW periódico: @@ -4905,380 +4801,392 @@ text message. This might be required under your countries licence regulations. It will not interfere with other users as it is always sent in the quiet period when decoding is done. - + Envía una identificación de CW periódicamente cada pocos minutos. +Esto puede ser requerido bajo las regulaciones de licencia de tú país. +No interferirá con otros usuarios, ya que siempre se envía en el +período tranquilo cuando se realiza la decodificación. Automatic transmission mode. - + Modo de transmisión automática. Doubl&e-click on call sets Tx enable - + Haz dobl&e clic en los conjuntos de indicativos de habilitación de TX Calling CQ forces Call 1st - + Llamar a CQ obliga a llamar primero &Radio - + &Radio Radio interface configuration settings. - + Ajustes de configuración de la interfaz de radio. Settings that control your CAT interface. - + Configuraciones que controlan tú interfaz CAT. CAT Control - + Control CAT Port: - + Puerto: Serial port used for CAT control. - + Puerto serie usado para el control CAT Serial Port Parameters - + Parámetros del puerto serie Baud Rate: - + Velocidad de transmisión: Serial port data rate which must match the setting of your radio. - + Velocidad de datos del puerto serie que debe coincidir con la configuración de tú equipo. 1200 - + 1200 2400 - + 2400 4800 - + 9600 - + 9600 19200 - + 19200 38400 - + 38400 57600 - + 57600 115200 - + 115200 <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> - + <html><head/><body><p>Número de bits de datos utilizados para comunicarse con la interfaz CAT de tú equipo (generalmente ocho).</p></body></html> Data Bits - + Bits de datos D&efault - + por d&efecto Se&ven - + Si&ete E&ight - + O&cho <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> - + <html><head/><body><p>Número de bits de parada utilizados al comunicarse con la interfaz CAT de tú equipo</p><p>(consulta el manual de tú equipo para más detalles).</p></body></html> Stop Bits - + Bits de parada Default - + por defecto On&e - + Un&o T&wo - + D&os <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> - + <html><head/><body><p>Protocolo de control de flujo utilizado entre este PC y la interfaz CAT de tú equipo (generalmente &quot;Ninguno&quot;pero algunos requieren&quot;Hardware&quot;).</p></body></html> Handshake - + Handshake &None - + &Ninguno Software flow control (very rare on CAT interfaces). - + Control de flujo de software (muy raro en interfaces CAT). XON/XOFF - + XON/XOFF Flow control using the RTS and CTS RS-232 control lines not often used but some radios have it as an option and a few, particularly some Kenwood rigs, require it). - + it) no ( + Control de flujo usando las líneas de control RTS y CTS RS-232 +no se usa con frecuencia, pero algunos equipos lo tienen como una opción y +unos pocos, particularmente algunos equipos de Kenwood, lo requieren. &Hardware - + &Hardware Special control of CAT port control lines. - + Control especial de líneas de control de puertos CAT. Force Control Lines - + Líneas de control de fuerza High - + Alto Low - + Bajo DTR: - + DTR: RTS: - + RTS: - How this program activates the PTT on your radio? - + How this program activates the PTT on your radio + ¿ Cómo este programa activa el PTT en tú equipo ? PTT Method - + Método de PTT <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> - + <html><head/><body><p>Sin activación de PTT, en cambio, el VOX automático del equipo se usa para conectar el transmisor.</p><p>Usa esto si no tienes hardware de interfaz de radio.</p></body></html> VO&X - + VO&X <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> - + <html><head/><body><p>Usa la línea de control RS-232 DTR para alternar el PTT de tú equipo, requiere hardware para interconectar la línea.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control DTR del puerto serie CAT se puede usar para esto o se puede usar una línea de control DTR en un puerto serie diferente.</p></body></html> &DTR - + &DTR Some radios support PTT via CAT commands, use this option if your radio supports it and you have no other hardware interface for PTT. - + Algunos equipos admiten PTT a través de comandos CAT, +usa esta opción si tú equipo lo admite y no tiene +otra interfaz de hardware para PTT. C&AT - + C&AT <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> - + <html><head/><body><p>Usa la línea de control RS-232 RTS para alternar el PTT de tú equipo, requiere hardware para interconectar la línea.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control RTS del puerto serie CAT se puede usar para esto o se puede usar una línea de control RTS en un puerto serie diferente. Ten en cuenta que esta opción no está disponible en el puerto serie CAT cuando se usa el control de flujo de hardware.</p></body></html> R&TS - + R&TS <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> - + <html><head/><body><p>Selecciona el puerto serie RS-232 utilizado para el control PTT, esta opción está disponible cuando se selecciona DTR o RTS arriba como método de transmisión.</p><p>Este puerto puede ser el mismo que el utilizado para el control CAT.</p><p>Para algunos tipos de interfaz, se puede elegir el valor especial CAT, esto se usa para interfaces CAT no seriales que pueden controlar líneas de control de puerto serie de forma remota (OmniRig, por ejemplo).</p></body></html> Modulation mode selected on radio. - + Modo de modulación seleccionado en el equipo. Mode - + Modo <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> - + <html><head/><body><p>USB suele ser el modo de modulación correcto,</p><p>a menos que la radio tenga una configuración especial de datos o modo de paquete</p><p>para operación AFSK.</p></body></html> US&B - + US&B Don't allow the program to set the radio mode (not recommended but use if the wrong mode or bandwidth is selected). - + No permitas que el programa configure el modo del equipo +(no se recomienda pero se usa si el modo es incorrecto +o se selecciona el ancho de banda). None - + Ninguno If this is available then it is usually the correct mode for this program. - + Si está disponible, generalmente es el modo correcto para este programa. Data/P&kt - + Datos/P&kt Some radios can select the audio input using a CAT command, this setting allows you to select which audio input will be used (if it is available then generally the Rear/Data option is best). - + Algunos equipos pueden seleccionar la entrada de audio usando un comando CAT, +esta configuración te permite seleccionar qué entrada de audio se usará +(si está disponible, generalmente la opción Posterior/Datos es la mejor). Transmit Audio Source - + Fuente de audio de transmisión Rear&/Data - + Parte posterior&/Datos &Front/Mic - + &Frontal/Micrófono Rig: - + Equipo: Poll Interval: - + Intervalo de sondeo: <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> - + <html><head/><body><p>Intervalo de sondeo al equipo para el estado. Intervalos más largos significarán que los cambios en el equipo tardarán más en detectarse.</p></body></html> s - + s <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> - + <html><head/><body><p>Intenta conectarte al equipo con esta configuración.</p><p>El botón se pondrá verde si la conexión es correcta o rojo si hay un problema.</p></body></html> Test CAT - + Test de CAT @@ -5287,47 +5195,51 @@ Click again to deactivate. Normally no power should be output since there is no audio being generated at this time. Check that any Tx indication on your radio and/or your radio interface behave as expected. - + Intenta activar el transmisor. +Haz clic nuevamente para desactivar. Normalmente no debe haber potencia +de salida ya que no se genera audio en este momento. +Verifica cualquier indicación de TX en tú equipo y/o en tú +interfaz de radio se comporta como se espera. Test PTT - + Test de PTT Split Operation - + Operación dividida (Split) Fake It - + Fíngelo Rig - + Equipo A&udio - + A&udio Audio interface settings - + Configuraciones del interfaz de audio Souncard - + Tarjeta de Sonido Soundcard - + Tarjeta de Sonido @@ -5336,46 +5248,50 @@ If this is your default device for system sounds then ensure that all system sounds are disabled otherwise you will broadcast any systems sounds generated during transmitting periods. - + Selecciona el CODEC de audio a utilizar para transmitir +Si este es tú dispositivo predeterminado para los sonidos del sistema, +entonces, asegúrate de que todos los sonidos del sistema estén deshabilitados +de lo contrario transmitiras cualquier sonido del sistema generado durante +los períodos de transmisión. Select the audio CODEC to use for receiving. - + Selecciona el CODEC de audio que se usará para recibir. &Input: - + &Entrada: Select the channel to use for receiving. - + Selecciona el canal a usar para recibir. Mono - + Mono Left - + Izquierdo Right - + Derecho Both - + Ambos @@ -5383,147 +5299,152 @@ transmitting periods. Unless you have multiple radios connected on different channels; then you will usually want to select mono or both here. - + Selecciona el canal de audio utilizado para la transmisión. +A menos de que tengas varios equipos conectados en diferentes +canales, entonces, generalmente querrás seleccionar mono o +ambos canales. Ou&tput: - + Sa&lida: Save Directory - + Guardar directorio Loc&ation: - + Ubi&cación: Path to which .WAV files are saved. - + Ruta en la que se guardan los ficheros .WAV. TextLabel - + Etiqueta de texto Click to select a different save directory for .WAV files. - + Haz clic para seleccionar un directorio de guardado diferente para los archivos .WAV. S&elect - + S&elecciona AzEl Directory - + Directorio AzEl Location: - + Ubicación: Select - + Selecciona Power Memory By Band - + Memoriza la potencia por banda Remember power settings by band - + Recuerde los ajustes de potencia por banda Enable power memory during transmit - + Habilitar memoria de poténcia durante la transmisión Transmit - + Transmitir Enable power memory during tuning - + Habilitar memoria de poténcia durante la sintonización Tune - + Sintonia Tx &Macros - + &Macros de TX Canned free text messages setup - + Configuración de mensajes de texto libres &Add - + &Añadir &Delete - + &Borrar Drag and drop items to rearrange order Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items - + Arrastra y suelta elementos para reorganizar el orden +Haz clic derecho para acciones específicas del artículo. +Click, SHIFT+Click y, CTRL+Click para seleccionar elementos. Reportin&g - + Informe&s Reporting and logging settings - + Configuración de informes y registros Logging - + Registros The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. - + El programa mostrará un cuadro de diálogo Log QSO parcialmente completado cuando envíe un mensaje de texto 73 o libre. Promp&t me to log QSO - + regis&tra el QSO Op Call: - + Indicativo del Operador: @@ -5531,53 +5452,57 @@ Click, SHIFT+Click and, CRTL+Click to select items saved by this program. Check this option to save the sent and received reports in the comments field. - + Algunos programas de registro no aceptarán el tipo de informes +guardado por este programa. +Marca esta opción para guardar los informes enviados y recibidos en +el campo de comentarios. d&B reports to comments - + Informes de los d&B en los comentarios Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. - + Marca esta opción para forzar la eliminación de los campos +Llamada DX y Locator DX cuando se envía un mensaje de texto 73 o libre. Clear &DX call and grid after logging - + Borrar la Llamada &DX y Locator después del registro <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> - + <html><head/><body><p>Algunos programas de registro no aceptarán nombres de modo WSJT-X.</p></body></html> Con&vert mode to RTTY - + Con&vertir modo a RTTY <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> - + <html><head/><body><p>El indicativo del operador, si es diferente del indicativo de la estación.</p></body></html> <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> - + <html><head/><body><p>Marca para que los QSO's se registren automáticamente, cuando se completen.</p></body></html> Log automatically (contesting only) - + Registro automático (sólo concursos) Network Services - + Servicios de red @@ -5585,617 +5510,611 @@ and DX Grid fields when a 73 or free text message is sent. decoded signals as spots to the http://pskreporter.info web site. This is used for reverse beacon analysis which is very useful for assessing propagation and system performance. - + El programa puede enviar los detalles de su estación y todas las +señales decodificadas como puntos en el sitio web http://pskreporter.info. +Esto se utiliza para el análisis de baliza inversa que es muy útil +para evaluar la propagación y el rendimiento del sistema. Enable &PSK Reporter Spotting - + Activa &PSK Reporter UDP Server - + Servidor UDP UDP Server: - + Servidor UDP: <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> - + <html><head/><body><p>Nombre del host opcional del servicio de red para recibir decodificaciones.</p><p>Formatos:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">nombre de host</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección del grupo de multidifusión IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección del grupo de multidifusión IPv6</li></ul><p>Borrar este campo deshabilitará la transmisión de actualizaciones de estado UDP.</p></body></html> UDP Server port number: - + Número de puerto del servidor UDP: <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> - + <html><head/><body><p>Introduce el número de puerto del servicio del servidor UDP al que WSJT-X debe enviar actualizaciones. Si esto es cero, no se transmitirán actualizaciones.</p></body></html> <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> - + <html><head/><body><p>Con esto habilitado, WSJT-X aceptará ciertas solicitudes de un servidor UDP que recibe mensajes de decodificación.</p></body></html> Accept UDP requests - + Aceptar solicitudes UDP <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> - + <html><head/><body><p>Indica la aceptación de una solicitud UDP entrante. El efecto de esta opción varía según el sistema operativo y el administrador de ventanas, su intención es notificar la aceptación de una solicitud UDP entrante, incluso si esta aplicación está minimizada u oculta.</p></body></html> Notify on accepted UDP request - + Notificar sobre una solicitud UDP aceptada <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> - + <html><head/><body><p>Restaura la ventana minimizada si se acepta una solicitud UDP.</p></body></html> Accepted UDP request restores window - + La solicitud UDP aceptada restaura la ventana Secondary UDP Server (deprecated) - + Servidor UDP secundario (en desuso) <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> - + <html><head/><body><p>Cuando se marca, WSJT-X transmitirá un contacto registrado en formato ADIF al nombre de host y puerto configurados. </p></body></html> Enable logged contact ADIF broadcast - + Habilita la transmisión ADIF de contacto registrado Server name or IP address: - + Nombre del servidor o dirección IP: <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> - + <html><head/><body><p>Nombre de host opcional del programa N1MM Logger + para recibir transmisiones ADIF UDP. Esto suele ser 'localhost' o dirección IP 127.0.0.1</p><p>Formatos:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección de grupo de multidifusión IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección de grupo de multidifusión IPv6</li></ul><p>Borrar este campo deshabilitará la transmisión de información ADIF a través de UDP.</p></body></html> Server port number: - + Número de puerto del servidor: <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> - + <html><head/><body><p>Introduce el número de puerto que WSJT-X debe usar para las transmisiones UDP de información de registro ADIF. Para N1MM Logger +, este valor debe ser 2333. Si es cero, no se transmitirán actualizaciones.</p></body></html> Frequencies - + Frecuencias Default frequencies and band specific station details setup - + Configuración predeterminada de las frecuencias y banda con detalles específicos de la estación <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> - + <html><head/><body><p>Ver&quot;Calibración de Frecuencia&quot;en la Guía del usuario de WSJT-X para obtener detalles sobre cómo determinar estos parámetros para tú equipo.</p></body></html> Frequency Calibration - + Calibración de frecuencia Slope: - + Pendiente: ppm - + ppm Intercept: - + Interceptar: Hz - + Hz Working Frequencies - + Frecuencias de trabajo <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> - + <html><head/><body><p>Haz clic derecho para mantener la lista de frecuencias de trabajo.</p></body></html> Station Information - + Información de la estación Items may be edited. Right click for insert and delete options. - + Se pueden editar ítems. +Haz clic derecho para insertar y eliminar opciones. Colors - + Colores Decode Highlightling - + Resaltar Decodificado <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - + <html><head/><body><p>Haz clic para escanear el archivo ADIF wsjtx_log.adi nuevamente para obtener información trabajada antes</p></body></html> Rescan ADIF Log - + Escaneo de nuevo el registro ADIF <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> - + <html><head/><body><p>Presiona para restablecer todos los elementos resaltados arriba a los valores y prioridades predeterminados.</p></body></html> Reset Highlighting - + Restablecer resaltado <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> - + <html><head/><body><p>Activa o desactiva las casillas de verificación y haz clic con el botón derecho en un elemento para cambiar o desactivar el color del primer plano, el color de fondo o restablecer el elemento a los valores predeterminados. Arrastra y suelta los elementos para cambiar su prioridad, mayor en la lista es mayor en prioridad.</p><p>Ten en cuenta que cada color de primer plano o de fondo puede estar configurado o no, lo que significa que no está asignado para ese tipo de elemento y pueden aplicarse elementos de menor prioridad.</p></body></html> <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> - + <html><head/><body><p>Marca para indicar nuevas entidades DXCC, Locator y indicativos por modo.</p></body></html> Highlight by Mode - + Destacar por modo Include extra WAE entities - + Incluir entidades WAE adicionales Check to for grid highlighting to only apply to unworked grid fields - + Marca para que el resaltado de Locator sólo se aplique a los campos de Locator no trabajados Only grid Fields sought - + Solo campos de Locator buscados <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> - + <html><head/><body><p>Controles para la búsqueda de usuarios de Logbook of the World (LoTW).</p></body></html> Logbook of the World User Validation - + Validación de Usuario de Logbook of the World (LoTW) Users CSV file URL: - + URL del fichero CSV de los usuarios: <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> - + <html><head/><body><p>URL del último fichero de datos de fechas y horas de carga de ARRL LotW que se utiliza para resaltar decodificaciones de estaciones que se sabe que cargan su archivo de registro a LotW.</p></body></html> https://lotw.arrl.org/lotw-user-activity.csv - + https://lotw.arrl.org/lotw-user-activity.csv <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> - + <html><head/><body><p>Presiona este botón para obtener el último fichero de datos de fecha y hora de carga de los usuarios de LotW.</p></body></html> Fetch Now - + Buscar ahora Age of last upload less than: - + Edad de la última carga inferior a: <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> - + <html><head/><body><p>Ajusta este cuadro de selección para establecer el umbral de edad de la última fecha de carga del usuario de LotW que se acepta como usuario actual de LotW.</p></body></html> days - + dias Advanced - + Avanzado <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> - + <html><head/><body><p>Parámetros seleccionables por el usuario para decodificación JT65 VHF/UHF/Microondas.</p></body></html> JT65 VHF/UHF/Microwave decoding parameters - + Parámetros de decodificación JT65 VHF/UHF/Microondas Random erasure patterns: - + Patrones de borrado aleatorio: <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> - + <html><head/><body><p>El número máximo de patrones de borrado para el decodificador estoico de decisión suave Reed Solomon es 10^(n/2).</p></body></html> Aggressive decoding level: - + Nivel de decodificación agresivo: <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> - + <html><head/><body><p>Los niveles más altos aumentarán la probabilidad de decodificación, pero también aumentarán la probabilidad de una decodificación falsa.</p></body></html> Two-pass decoding - + Decodificación de dos pasos Special operating activity: Generation of FT4, FT8, and MSK144 messages - + Actividad operativa especial: generación de mensajes FT4, FT8 y MSK144 <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> - + <html><head/><body><p>Modo FT8 DXpedition: operador Hound llamando al DX.</p></body></html> Hound - + Hound <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> - + <html><head/><body><p>Concursos norteamericanos de VHF/UHF/microondas y otros en los que se requiere un locator de 4 caracteres.</p></body></html> NA VHF Contest - + Concurso NA VHF <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> - + <html><head/><body><p>Modo FT8 DXpedition: operador Zorro (DXpedition).</p></body></html> Fox - + Zorro <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> - + <html><head/><body><p>Concursos europeos de VHF y superiores que requieren un informe de señal, número de serie y locator de 6 caracteres.</p></body></html> EU VHF Contest - + Concurso EU de VHF <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> - + <html><head/><body><p>Resumen de ARRL RTTY y concursos similares. El intercambio es el estado de EE.UU., La provincia canadiense o &quot;DX&quot;.</p></body></html> RTTY Roundup messages - + Mensajes de resumen de ARTTY RTTY RU Exch: - + Intercambio RTTY RU: NJ - + NJ <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> - + <html><head/><body><p>Intercambio de ARRL Field Day: número de transmisores, clase y sección ARRL/RAC o &quot;DX&quot;.</p></body></html> ARRL Field Day - + ARRL Field Day FD Exch: - + Intercanvio FD: 6A SNJ - + 6A SNJ <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> - + <html><head/><body><p>Concurso World-Wide Digi-mode</p><p><br/></p></body></html> WW Digi Contest - + Concurso WW Digi Miscellaneous - + Diverso Degrade S/N of .wav file: - + Degradar S/N del fichero .wav: For offline sensitivity tests - + Para pruebas de sensibilidad fuera de línea dB - + dB Receiver bandwidth: - + Ancho de banda del receptor: Hz - + Hz Tx delay: - + Retardo de TX: Minimum delay between assertion of PTT and start of Tx audio. - + Retraso mínimo entre el PTT y el inicio del audio TX. s - + s Tone spacing - + Espaciado de tono <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> - + <html><head/><body><p>Genera el audio de TX con el doble del espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 2 antes de generar RF.</p></body></html> x 2 - + x 2 <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> - + <html><head/><body><p>Genera el audio de TX con cuatro veces el espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 4 antes de generar RF.</p></body></html> x 4 - + x 4 Waterfall spectra - + Espectros de la cascada Low sidelobes - + Lóbulos laterales bajos Most sensitive - + Más sensible <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> - + <html><head/><body><p>Descartar (Cancelar) o aplicar (OK) cambios de configuración que incluyen</p><p>restablecer la interfaz de radio y aplicar cualquier cambio en la tarjeta de sonido</p></body></html> main - + Fatal error - + Error fatal - + Unexpected fatal error - + Error fatal inesperado - + Where <rig-name> is for multi-instance support. - - - - - rig-name - + Dónde <rig-name> es para soporte de múltiples instancias. - Where <configuration> is an existing one. - + rig-name + Nombre del equipo - - configuration - + + Where <configuration> is an existing one. + Dónde <configuration> es ya existente. - Where <language> is <lang-code>[-<country-code>]. - + configuration + Configuración - - language - - - - + Writable files in test location. Use with caution, for testing only. - + Archivos grabables en la ubicación de prueba. Usa con precaución, solo para pruebas. - + Command line error - + Error de línea de comando - + Command line help - + Ayuda de la línea de comandos - + Application version - + Versión de la aplicación - + Another instance may be running - + Otra instancia puede estar ejecutándose - + try to remove stale lock file? - + ¿intentas eliminar el archivo de bloqueo obsoleto? - + Failed to create a temporary directory - + Error al crear un directorio temporal - - + + Path: "%1" - + Ruta: "%1" - + Failed to create a usable temporary directory - + Error al crear un directorio temporal utilizable - + Another application may be locking the directory - + Otra aplicación puede estar bloqueando el directorio - + Failed to create data directory - + Error al crear el directorio de datos - + path: "%1" - + ruta: "%1" - + Shared memory error - + Error de memoria compartida - + Unable to create shared memory segment - + No se puede crear un segmento de memoria compartida @@ -6203,12 +6122,12 @@ Right click for insert and delete options. Palette Designer - + Diseñador de paleta <html><head/><body><p>Double click a color to edit it.</p><p>Right click to insert or delete colors.</p><p>Colors at the top represent weak signals</p><p>and colors at the bottom represent strong</p><p>signals. You can have up to 256 colors.</p></body></html> - + <html><head/><body><p>Haz doble clic en un color para editarlo.</p><p>Haz clic derecho para insertar o eliminar colores.</p><p>Los colores en la parte superior representan señales débiles</p><p>y los colores en la parte inferior representan señales fuertes</p><p>Puedes tener hasta 256 colores.</p></body></html> From fc7696672029ade79e38f8e2487cf14f3364e290 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 26 May 2020 00:01:43 +0100 Subject: [PATCH 023/520] Use language only to identify Spanish translation files This allows the Spanish UI translation to work, for now, for all Spanish speaking locales. If necessary we can make it es-ES if other translators feel it is not a good base for their Spanish variant. OTOH if they just need to l10n a few strings then, say for Argentina, then they can do that in an wsjtx_es_AR.ts and untranslated strings there will fall back to the ones in wsjtx_es.ts automatically. This happens because of teh way the application loads multiple translation files in an order suitable for that to happen. --- CMakeLists.txt | 4 ++-- translations/{wsjtx_es_ES.ts => wsjtx_es.ts} | 0 translations/{wsjtx_pt_PT.ts => wsjtx_pt.ts} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename translations/{wsjtx_es_ES.ts => wsjtx_es.ts} (100%) rename translations/{wsjtx_pt_PT.ts => wsjtx_pt.ts} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 307de7fd1..467b6d3df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1097,8 +1097,8 @@ add_custom_target (etags COMMAND ${ETAGS} -o ${CMAKE_SOURCE_DIR}/TAGS -R ${sourc # Qt i18n set (LANGUAGES en_GB # English UK - pt_PT # Poutuguese - es_ES # Spanish + pt # Poutuguese + es # Spanish ca # Catalan ) foreach (lang_ ${LANGUAGES}) diff --git a/translations/wsjtx_es_ES.ts b/translations/wsjtx_es.ts similarity index 100% rename from translations/wsjtx_es_ES.ts rename to translations/wsjtx_es.ts diff --git a/translations/wsjtx_pt_PT.ts b/translations/wsjtx_pt.ts similarity index 100% rename from translations/wsjtx_pt_PT.ts rename to translations/wsjtx_pt.ts From 9ba465730960ffb8c08c2ac1ecc8396134b76362 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 26 May 2020 11:12:14 +0100 Subject: [PATCH 024/520] Catalan UI translation updates, thanks to Xavi, EA3W --- translations/wsjtx_ca.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index addc30c79..751fc7621 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -2151,7 +2151,7 @@ en Groc quan és massa baix Set Tx frequency to Rx Frequency - Estableix la freqüència de TX en la de RX + Estableix la freqüència de RX en la de TX @@ -2171,7 +2171,7 @@ en Groc quan és massa baix Set Rx frequency to Tx Frequency - Estableix la freqüència de RX en la de TX + Estableix la freqüència de TX en la de RX From 9ed7e5b903f843b4b0ac6f5eca6baa632daecabe Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 26 May 2020 12:42:13 +0100 Subject: [PATCH 025/520] Enable UI translations to Japanese --- CMakeLists.txt | 1 + translations/wsjtx_en_GB.ts | 366 +-- translations/wsjtx_ja.ts | 6213 +++++++++++++++++++++++++++++++++++ 3 files changed, 6397 insertions(+), 183 deletions(-) create mode 100644 translations/wsjtx_ja.ts diff --git a/CMakeLists.txt b/CMakeLists.txt index 467b6d3df..fdae367c7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1100,6 +1100,7 @@ set (LANGUAGES pt # Poutuguese es # Spanish ca # Catalan + ja # Japanese ) foreach (lang_ ${LANGUAGES}) file (TO_NATIVE_PATH translations/wsjtx_${lang_}.ts ts_) diff --git a/translations/wsjtx_en_GB.ts b/translations/wsjtx_en_GB.ts index 84f498e9e..ee0352105 100644 --- a/translations/wsjtx_en_GB.ts +++ b/translations/wsjtx_en_GB.ts @@ -1427,26 +1427,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region - - + + Mode - - + + Frequency - - + + Frequency (MHz) @@ -1912,12 +1912,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity @@ -1929,11 +1929,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency @@ -2391,7 +2391,7 @@ Not available to nonstandard callsign holders. - + Fox @@ -3232,7 +3232,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog @@ -3509,8 +3509,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving @@ -3545,155 +3545,155 @@ list. The list can be maintained in Settings (F2). - - - - - - - + + + + + + + + + - - - - - - - + + + + + Message - + Error Killing jt9.exe Process - + KillByName return code: %1 - + Error removing "%1" - + Click OK to retry - - + + Improper mode - - + + File Open Error - - - - - + + + + + Cannot open "%1" for append: %2 - + Error saving c2 file - + Error in Sound Input - + Error in Sound Output - - - + + + Single-Period Decodes - - - + + + Average Decodes - + Change Operator - + New operator: - + Status File Error - - + + Cannot open "%1" for writing: %2 - + Subprocess Error - + Subprocess failed with exit code %1 - - + + Running: %1 %2 - + Subprocess error - + Reference spectrum saved - + Invalid data in fmt.all at line %1 - + Good Calibration Solution - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3702,79 +3702,79 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements - + The "fmt.all" file will be renamed as "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? - + Confirm Delete - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + Keyboard Shortcuts - + Special Mouse Commands - + No more files to open. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + Last Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3782,181 +3782,181 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - + Stations calling DXpedition %1 - + Hound - + Tx Messages - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + VHF features warning - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - + WD:%1m - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -4114,7 +4114,7 @@ UDP server %2:%3 QObject - + Invalid rig name - \ & / not allowed @@ -4480,142 +4480,142 @@ Error(%2): %3 - + Waterfall gain - + <html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html> - + % - + Spec - + <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> - + Flatten - + <html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html> - + Ref Spec - + Smoothing of Linear Average spectrum - + Smooth - + Compression factor for frequency scale - + Bins/Pixel - + Select waterfall palette - + <html><head/><body><p>Select data for spectral display</p></body></html> - + Current - + Cumulative - + Linear Avg - + Reference - + <html><head/><body><p>Frequency at left edge of waterfall</p></body></html> - + Hz - + Start - + <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> - + JT9 - + JT65 - + Number of FFTs averaged (controls waterfall scrolling rate) - + N Avg - + Waterfall zero - + Spectrum zero @@ -6085,115 +6085,115 @@ Right click for insert and delete options. main - - + + Fatal error - - + + Unexpected fatal error - + Where <rig-name> is for multi-instance support. - + rig-name - + Where <configuration> is an existing one. - + configuration - + Where <language> is <lang-code>[-<country-code>]. - + language - + Writable files in test location. Use with caution, for testing only. - + Command line error - + Command line help - + Application version - + Another instance may be running - + try to remove stale lock file? - + Failed to create a temporary directory - - + + Path: "%1" - + Failed to create a usable temporary directory - + Another application may be locking the directory - + Failed to create data directory - + path: "%1" - + Shared memory error - + Unable to create shared memory segment diff --git a/translations/wsjtx_ja.ts b/translations/wsjtx_ja.ts new file mode 100644 index 000000000..60aa43831 --- /dev/null +++ b/translations/wsjtx_ja.ts @@ -0,0 +1,6213 @@ + + + + + AbstractLogWindow + + + &Delete ... + + + + + AbstractLogWindow::impl + + + Confirm Delete + + + + + Are you sure you want to delete the %n selected QSO(s) from the log? + + + + + + + Astro + + + + Doppler tracking + + + + + <html><head/><body><p>One station does all Doppler shift correction, their QSO partner receives and transmits on the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + + + + + Full Doppler to DX Grid + + + + + <html><head/><body><p>Transmit takes place on sked frequency and receive frequency is corrected for own echoes. </p><p>This mode can be used for calling CQ, or when using Echo mode.</p></body></html> + + + + + Own Echo + + + + + <html><head/><body><p>Both stations correct for Doppler shift such that they would be heard on the moon at the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p><p>Use this option also for Echo mode.</p></body></html> + + + + + Constant frequency on Moon + + + + + <html><head/><body><p>DX station announces their TX Freq, which is entered as the Sked Freq. Correction applied to RX and TX so you appear on the DX's station's own echo Freq.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + + + + + On DX Echo + + + + + <html><head/><body><p>Tune radio manually and select this mode to put your echo on the same frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + + + + + Call DX + + + + + <html><head/><body><p>No Doppler shift correction is applied. This may be used when the QSO partner does full Doppler correction to your grid square.</p></body></html> + + + + + None + + + + + Sked frequency + + + + + + 0 + + + + + Rx: + + + + + Tx: + + + + + <html><head/><body><p>Press and hold the CTRL key to adjust the sked frequency manually with the rig's VFO dial or enter frequency directly into the band entry field on the main window.</p></body></html> + + + + + Astro Data + + + + + Astronomical Data + + + + + Doppler Tracking Error + + + + + Split operating is required for Doppler tracking + + + + + Go to "Menu->File->Settings->Radio" to enable split operation + + + + + Bands + + + Band name + + + + + Lower frequency limit + + + + + Upper frequency limit + + + + + Band + + + + + Lower Limit + + + + + Upper Limit + + + + + CAboutDlg + + + About WSJT-X + + + + + OK + + + + + CPlotter + + + &Set Rx && Tx Offset + + + + + CabrilloLog + + + Freq(MHz) + + + + + Mode + + + + + Date & Time(UTC) + + + + + Call + + + + + Sent + + + + + Rcvd + + + + + Band + + + + + CabrilloLogWindow + + + Contest Log + + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + + + + + Right-click here for available actions. + + + + + CallsignDialog + + + Callsign + + + + + ColorHighlighting + + + + + + + + + + + + + + + + + + K1ABC + + + + + CQ in message + + + + + My Call in message + + + + + Transmitted message + + + + + New DXCC + + + + + New Grid + + + + + New DXCC on Band + + + + + New Call + + + + + New Grid on Band + + + + + New Call on Band + + + + + Uploads to LotW + + + + + New Continent + + + + + New Continent on Band + + + + + New CQ Zone + + + + + New CQ Zone on Band + + + + + New ITU Zone + + + + + New ITU Zone on Band + + + + + Configuration::impl + + + + + &Delete + + + + + + &Insert ... + + + + + Failed to create save directory + + + + + path: "%1% + + + + + Failed to create samples directory + + + + + path: "%1" + + + + + &Load ... + + + + + &Save as ... + + + + + &Merge ... + + + + + &Reset + + + + + Serial Port: + + + + + Serial port used for CAT control + + + + + Network Server: + + + + + Optional hostname and port of network service. +Leave blank for a sensible default on this machine. +Formats: + hostname:port + IPv4-address:port + [IPv6-address]:port + + + + + USB Device: + + + + + Optional device identification. +Leave blank for a sensible default for the rig. +Format: + [VID[:PID[:VENDOR[:PRODUCT]]]] + + + + + Invalid audio input device + + + + + Invalid audio out device + + + + + Invalid PTT method + + + + + Invalid PTT port + + + + + + Invalid Contest Exchange + + + + + You must input a valid ARRL Field Day exchange + + + + + You must input a valid ARRL RTTY Roundup exchange + + + + + Reset Decode Highlighting + + + + + Reset all decode highlighting and priorities to default values + + + + + WSJT-X Decoded Text Font Chooser + + + + + Load Working Frequencies + + + + + + + Frequency files (*.qrg);;All files (*.*) + + + + + Replace Working Frequencies + + + + + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? + + + + + Merge Working Frequencies + + + + + + + Not a valid frequencies file + + + + + Incorrect file magic + + + + + Version is too new + + + + + Contents corrupt + + + + + Save Working Frequencies + + + + + Only Save Selected Working Frequencies + + + + + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. + + + + + Reset Working Frequencies + + + + + Are you sure you want to discard your current working frequencies and replace them with default ones? + + + + + Save Directory + + + + + AzEl Directory + + + + + Rig control error + + + + + Failed to open connection to rig + + + + + Rig failure + + + + + DXLabSuiteCommanderTransceiver + + + Failed to connect to DX Lab Suite Commander + + + + + + DX Lab Suite Commander didn't respond correctly reading frequency: + + + + + DX Lab Suite Commander sent an unrecognised TX state: + + + + + DX Lab Suite Commander didn't respond correctly polling TX status: + + + + + DX Lab Suite Commander rig did not respond to PTT: + + + + + DX Lab Suite Commander didn't respond correctly polling frequency: + + + + + DX Lab Suite Commander didn't respond correctly polling TX frequency: + + + + + DX Lab Suite Commander sent an unrecognised split state: + + + + + DX Lab Suite Commander didn't respond correctly polling split status: + + + + + DX Lab Suite Commander sent an unrecognised mode: " + + + + + DX Lab Suite Commander didn't respond correctly polling mode: + + + + + DX Lab Suite Commander send command failed + + + + + + DX Lab Suite Commander failed to send command "%1": %2 + + + + + + DX Lab Suite Commander send command "%1" read reply failed: %2 + + + + + + DX Lab Suite Commander retries exhausted sending command "%1" + + + + + DX Lab Suite Commander sent an unrecognized frequency + + + + + DecodeHighlightingListView + + + &Foreground color ... + + + + + Choose %1 Foreground Color + + + + + &Unset foreground color + + + + + &Background color ... + + + + + Choose %1 Background Color + + + + + U&nset background color + + + + + &Reset this item to defaults + + + + + DecodeHighlightingModel + + + CQ in message + + + + + My Call in message + + + + + Transmitted message + + + + + New DXCC + + + + + New DXCC on Band + + + + + New Grid + + + + + New Grid on Band + + + + + New Call + + + + + New Call on Band + + + + + New Continent + + + + + New Continent on Band + + + + + New CQ Zone + + + + + New CQ Zone on Band + + + + + New ITU Zone + + + + + New ITU Zone on Band + + + + + LoTW User + + + + + f/g unset + + + + + b/g unset + + + + + Highlight Type + + + + + Designer + + + &Delete + + + + + &Insert ... + + + + + Insert &after ... + + + + + Import Palette + + + + + + Palettes (*.pal) + + + + + Export Palette + + + + + Dialog + + + Gray time: + + + + + Directory + + + + URL Error + + + + + + Invalid URL: +"%1" + + + + + + + + + + + JSON Error + + + + + Contents file syntax error %1 at character offset %2 + + + + + Contents file top level must be a JSON array + + + + + File System Error + + + + + Failed to open "%1" +Error: %2 - %3 + + + + + Contents entries must be a JSON array + + + + + Contents entries must have a valid type + + + + + Contents entries must have a valid name + + + + + Contents entries must be JSON objects + + + + + Contents directories must be relative and within "%1" + + + + + Network Error + + + + + Authentication required + + + + + DisplayText + + + &Erase + + + + + EchoGraph + + + + Echo Graph + + + + + <html><head/><body><p>Compression factor for frequency scale</p></body></html> + + + + + Bins/Pixel + + + + + Gain + + + + + <html><head/><body><p>Echo spectrum gain</p></body></html> + + + + + Zero + + + + + <html><head/><body><p>Echo spectrum zero</p></body></html> + + + + + <html><head/><body><p>Smoothing of echo spectrum</p></body></html> + + + + + Smooth + + + + + <html><head/><body><p>Number of echo transmissions averaged</p></body></html> + + + + + N: 0 + + + + + <html><head/><body><p>Click to cycle through a sequence of colors and line widths.</p></body></html> + + + + + Colors + + + + + EmulateSplitTransceiver + + + Emulated split mode requires rig to be in simplex mode + + + + + EqualizationToolsDialog::impl + + + Phase + + + + + + Freq (Hz) + + + + + Phase (Π) + + + + + Delay (ms) + + + + + Measured + + + + + Proposed + + + + + Current + + + + + Group Delay + + + + + Amplitude + + + + + Relative Power (dB) + + + + + Reference + + + + + Phase ... + + + + + Refresh + + + + + Discard Measured + + + + + ExistingNameDialog + + + Configuration to Clone From + + + + + &Source Configuration Name: + + + + + ExportCabrillo + + + Dialog + + + + + Location: + + + + + SNJ + + + + + Contest: + + + + + ARRL-RTTY + + + + + Callsign: + + + + + Category-Operator: + + + + + SINGLE-OP + + + + + Category-Transmitter: + + + + + ONE + + + + + Category-Power: + + + + + LOW + + + + + Category-Assisted: + + + + + NON-ASSISTED + + + + + Category-Band: + + + + + ALL + + + + + Claimed-Score: + + + + + Operators: + + + + + Club: + + + + + Name: + + + + + + Address: + + + + + Save Log File + + + + + Cabrillo Log (*.cbr) + + + + + Cannot open "%1" for writing: %2 + + + + + Export Cabrillo File Error + + + + + FastGraph + + + + Fast Graph + + + + + Waterfall gain + + + + + Waterfall zero + + + + + Spectrum zero + + + + + <html><head/><body><p>Set reasonable levels for gain and zero sliders.</p></body></html> + + + + + Auto Level + + + + + FoxLog::impl + + + Date & Time(UTC) + + + + + Call + + + + + Grid + + + + + Sent + + + + + Rcvd + + + + + Band + + + + + FoxLogWindow + + + Fox Log + + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + + + + + Callers: + + + + + + + N + + + + + In progress: + + + + + Rate: + + + + + &Export ADIF ... + + + + + Export ADIF Log File + + + + + ADIF Log (*.adi) + + + + + Export ADIF File Error + + + + + Cannot open "%1" for writing: %2 + + + + + &Reset ... + + + + + Confirm Reset + + + + + Are you sure you want to erase file FoxQSO.txt and start a new Fox log? + + + + + FrequencyDialog + + + Add Frequency + + + + + IARU &Region: + + + + + &Mode: + + + + + &Frequency (MHz): + + + + + FrequencyList_v2 + + + + IARU Region + + + + + + Mode + + + + + + Frequency + + + + + + Frequency (MHz) + + + + + HRDTransceiver + + + + Failed to connect to Ham Radio Deluxe + + + + + + Failed to open file "%1": %2. + + + + + + Ham Radio Deluxe: no rig found + + + + + Ham Radio Deluxe: rig doesn't support mode + + + + + Ham Radio Deluxe: sent an unrecognised mode + + + + + Ham Radio Deluxe: item not found in %1 dropdown list + + + + + Ham Radio Deluxe: button not available + + + + + Ham Radio Deluxe didn't respond as expected + + + + + Ham Radio Deluxe: rig has disappeared or changed + + + + + Ham Radio Deluxe send command "%1" failed %2 + + + + + + + Ham Radio Deluxe: failed to write command "%1" + + + + + Ham Radio Deluxe sent an invalid reply to our command "%1" + + + + + Ham Radio Deluxe failed to reply to command "%1" %2 + + + + + + Ham Radio Deluxe retries exhausted sending command "%1" + + + + + Ham Radio Deluxe didn't respond to command "%1" as expected + + + + + HamlibTransceiver + + + + Hamlib initialisation error + + + + + Hamlib settings file error: %1 at character offset %2 + + + + + Hamlib settings file error: top level must be a JSON object + + + + + Hamlib settings file error: config must be a JSON object + + + + + Unsupported CAT type + + + + + Hamlib error: %1 while %2 + + + + + opening connection to rig + + + + + getting current frequency + + + + + getting current mode + + + + + + exchanging VFOs + + + + + + getting other VFO frequency + + + + + getting other VFO mode + + + + + setting current VFO + + + + + getting frequency + + + + + getting mode + + + + + + getting current VFO + + + + + + + + getting current VFO frequency + + + + + + + + + + setting frequency + + + + + + + + getting current VFO mode + + + + + + + + + setting current VFO mode + + + + + + setting/unsetting split mode + + + + + + setting split mode + + + + + setting split TX frequency and mode + + + + + setting split TX frequency + + + + + getting split TX VFO mode + + + + + setting split TX VFO mode + + + + + getting PTT state + + + + + setting PTT on + + + + + setting PTT off + + + + + setting a configuration item + + + + + getting a configuration item + + + + + HelpTextWindow + + + Help file error + + + + + Cannot open "%1" for reading + + + + + Error: %1 + + + + + IARURegions + + + + IARU Region + + + + + LogQSO + + + Click OK to confirm the following QSO: + + + + + Call + + + + + Start + + + + + + dd/MM/yyyy HH:mm:ss + + + + + End + + + + + Mode + + + + + Band + + + + + Rpt Sent + + + + + Rpt Rcvd + + + + + Grid + + + + + Name + + + + + Tx power + + + + + + Retain + + + + + Comments + + + + + Operator + + + + + Exch sent + + + + + Rcvd + + + + + + Invalid QSO Data + + + + + Check exchange sent and received + + + + + Check all fields + + + + + Log file error + + + + + Cannot open "%1" for append + + + + + Error: %1 + + + + + LotWUsers::impl + + + Network Error - SSL/TLS support not installed, cannot fetch: +'%1' + + + + + Network Error - Too many redirects: +'%1' + + + + + Network Error: +%1 + + + + + File System Error - Cannot commit changes to: +"%1" + + + + + File System Error - Cannot open file: +"%1" +Error(%2): %3 + + + + + File System Error - Cannot write to file: +"%1" +Error(%2): %3 + + + + + MainWindow + + + WSJT-X by K1JT + + + + + + + + + + + Band Activity + + + + + + UTC dB DT Freq Dr + + + + + + + + + + Rx Frequency + + + + + CQ only + + + + + Enter this QSO in log + + + + + Log &QSO + + + + + Stop monitoring + + + + + &Stop + + + + + Toggle monitoring On/Off + + + + + &Monitor + + + + + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> + + + + + Erase right window. Double-click to erase both windows. + + + + + &Erase + + + + + <html><head/><body><p>Clear the accumulating message average.</p></body></html> + + + + + Clear the accumulating message average. + + + + + Clear Avg + + + + + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> + + + + + Decode most recent Rx period at QSO Frequency + + + + + &Decode + + + + + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> + + + + + Toggle Auto-Tx On/Off + + + + + E&nable Tx + + + + + Stop transmitting immediately + + + + + &Halt Tx + + + + + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> + + + + + Toggle a pure Tx tone On/Off + + + + + &Tune + + + + + Menus + + + + + USB dial frequency + + + + + 14.078 000 + + + + + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> + + + + + Rx Signal + + + + + 30dB recommended when only noise present +Green when good +Red when clipping may occur +Yellow when too low + + + + + DX Call + + + + + DX Grid + + + + + Callsign of station to be worked + + + + + Search for callsign in database + + + + + &Lookup + + + + + Locator of station to be worked + + + + + Az: 251 16553 km + + + + + Add callsign and locator to database + + + + + Add + + + + + Pwr + + + + + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> + + + + + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. + + + + + ? + + + + + Adjust Tx audio level + + + + + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> + + + + + Frequency entry + + + + + Select operating band or enter frequency in MHz or enter kHz increment followed by k. + + + + + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + + + + + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> + + + + + Check to keep Tx frequency fixed when double-clicking on decoded text. + + + + + Hold Tx Freq + + + + + Audio Rx frequency + + + + + + + Hz + + + + + Rx + + + + + Set Tx frequency to Rx Frequency + + + + + ▲ + + + + + Frequency tolerance (Hz) + + + + + F Tol + + + + + Set Rx frequency to Tx Frequency + + + + + ▼ + + + + + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> + + + + + Synchronizing threshold. Lower numbers accept weaker sync signals. + + + + + Sync + + + + + <html><head/><body><p>Check to use short-format messages.</p></body></html> + + + + + Check to use short-format messages. + + + + + Sh + + + + + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> + + + + + Check to enable JT9 fast modes + + + + + + Fast + + + + + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> + + + + + Check to enable automatic sequencing of Tx messages based on received messages. + + + + + Auto Seq + + + + + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> + + + + + Check to call the first decoded responder to my CQ. + + + + + Call 1st + + + + + Check to generate "@1250 (SEND MSGS)" in Tx6. + + + + + Tx6 + + + + + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> + + + + + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. + + + + + Tx even/1st + + + + + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> + + + + + Frequency to call CQ on in kHz above the current MHz + + + + + Tx CQ + + + + + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> + + + + + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. +Not available to nonstandard callsign holders. + + + + + Rx All Freqs + + + + + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> + + + + + Submode determines tone spacing; A is narrowest. + + + + + Submode + + + + + + Fox + + + + + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> + + + + + Check to monitor Sh messages. + + + + + SWL + + + + + Best S+P + + + + + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> + + + + + Check this to start recording calibration data. +While measuring calibration correction is disabled. +When not checked you can view the calibration results. + + + + + Measure + + + + + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> + + + + + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). + + + + + Report + + + + + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> + + + + + Tx/Rx or Frequency calibration sequence length + + + + + s + + + + + T/R + + + + + Toggle Tx mode + + + + + Tx JT9 @ + + + + + Audio Tx frequency + + + + + + Tx + + + + + Tx# + + + + + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> + + + + + Double-click on another caller to queue that call for your next QSO. + + + + + Next Call + + + + + 1 + + + + + + + Send this message in next Tx interval + + + + + Ctrl+2 + + + + + <html><head/><body><p>Send this message in next Tx interval</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> + + + + + Send this message in next Tx interval +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) + + + + + Ctrl+1 + + + + + + + + Switch to this Tx message NOW + + + + + Tx &2 + + + + + Alt+2 + + + + + <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> + + + + + Switch to this Tx message NOW +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) + + + + + Tx &1 + + + + + Alt+1 + + + + + Ctrl+6 + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> + + + + + Send this message in next Tx interval +Double-click to reset to the standard 73 message + + + + + Ctrl+5 + + + + + Ctrl+3 + + + + + Tx &3 + + + + + Alt+3 + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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> + + + + + Send this message in next Tx interval +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + + + + + Ctrl+4 + + + + + <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> + + + + + Switch to this Tx message NOW +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + + + + + Tx &4 + + + + + Alt+4 + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> + + + + + Switch to this Tx message NOW +Double-click to reset to the standard 73 message + + + + + Tx &5 + + + + + Alt+5 + + + + + Now + + + + + Generate standard messages for minimal QSO + + + + + Generate Std Msgs + + + + + Tx &6 + + + + + Alt+6 + + + + + + Enter a free text message (maximum 13 characters) +or select a predefined macro from the dropdown list. +Press ENTER to add the current text to the predefined +list. The list can be maintained in Settings (F2). + + + + + Queue up the next Tx message + + + + + Next + + + + + 2 + + + + + Calling CQ + + + + + Generate a CQ message + + + + + + + CQ + + + + + Generate message with RRR + + + + + RRR + + + + + Generate message with report + + + + + dB + + + + + Answering CQ + + + + + Generate message for replying to a CQ + + + + + + Grid + + + + + Generate message with R+report + + + + + R+dB + + + + + Generate message with 73 + + + + + 73 + + + + + Send this standard (generated) message + + + + + Gen msg + + + + + Send this free-text message (max 13 characters) + + + + + Free msg + + + + + 3 + + + + + Max dB + + + + + CQ AF + + + + + CQ AN + + + + + CQ AS + + + + + CQ EU + + + + + CQ NA + + + + + CQ OC + + + + + CQ SA + + + + + CQ 0 + + + + + CQ 1 + + + + + CQ 2 + + + + + CQ 3 + + + + + CQ 4 + + + + + CQ 5 + + + + + CQ 6 + + + + + CQ 7 + + + + + CQ 8 + + + + + CQ 9 + + + + + Reset + + + + + N List + + + + + N Slots + + + + + + Random + + + + + Call + + + + + S/N (dB) + + + + + Distance + + + + + More CQs + + + + + Percentage of 2-minute sequences devoted to transmitting. + + + + + % + + + + + Tx Pct + + + + + Band Hopping + + + + + Choose bands and times of day for band-hopping. + + + + + Schedule ... + + + + + Upload decoded messages to WSPRnet.org. + + + + + Upload spots + + + + + <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> + + + + + 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. + + + + + Prefer type 1 messages + + + + + No own call decodes + + + + + Transmit during the next 2-minute sequence. + + + + + Tx Next + + + + + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. + + + + + File + + + + + View + + + + + Decode + + + + + Save + + + + + Help + + + + + Mode + + + + + Configurations + + + + + Tools + + + + + Exit + + + + + Configuration + + + + + F2 + + + + + About WSJT-X + + + + + Waterfall + + + + + Open + + + + + Ctrl+O + + + + + Open next in directory + + + + + Decode remaining files in directory + + + + + Shift+F6 + + + + + Delete all *.wav && *.c2 files in SaveDir + + + + + None + + + + + Save all + + + + + Online User Guide + + + + + Keyboard shortcuts + + + + + Special mouse commands + + + + + JT9 + + + + + Save decoded + + + + + Normal + + + + + Deep + + + + + Monitor OFF at startup + + + + + Erase ALL.TXT + + + + + Erase wsjtx_log.adi + + + + + Convert mode to RTTY for logging + + + + + Log dB reports to Comments + + + + + Prompt me to log QSO + + + + + Blank line between decoding periods + + + + + Clear DX Call and Grid after logging + + + + + Display distance in miles + + + + + Double-click on call sets Tx Enable + + + + + + F7 + + + + + Tx disabled after sending 73 + + + + + + Runaway Tx watchdog + + + + + Allow multiple instances + + + + + Tx freq locked to Rx freq + + + + + JT65 + + + + + JT9+JT65 + + + + + Tx messages to Rx Frequency window + + + + + Gray1 + + + + + Show DXCC entity and worked B4 status + + + + + Astronomical data + + + + + List of Type 1 prefixes and suffixes + + + + + Settings... + + + + + Local User Guide + + + + + Open log directory + + + + + JT4 + + + + + Message averaging + + + + + Enable averaging + + + + + Enable deep search + + + + + WSPR + + + + + Echo Graph + + + + + F8 + + + + + Echo + + + + + EME Echo mode + + + + + ISCAT + + + + + Fast Graph + + + + + F9 + + + + + &Download Samples ... + + + + + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> + + + + + MSK144 + + + + + QRA64 + + + + + Release Notes + + + + + Enable AP for DX Call + + + + + FreqCal + + + + + Measure reference spectrum + + + + + Measure phase response + + + + + Erase reference spectrum + + + + + Execute frequency calibration cycle + + + + + Equalization tools ... + + + + + WSPR-LF + + + + + Experimental LF/MF mode + + + + + FT8 + + + + + + Enable AP + + + + + Solve for calibration parameters + + + + + Copyright notice + + + + + Shift+F1 + + + + + Fox log + + + + + FT8 DXpedition Mode User Guide + + + + + Reset Cabrillo log ... + + + + + Color highlighting scheme + + + + + Contest Log + + + + + Export Cabrillo log ... + + + + + Quick-Start Guide to WSJT-X 2.0 + + + + + Contest log + + + + + Erase WSPR hashtable + + + + + FT4 + + + + + Rig Control Error + + + + + + + Receiving + + + + + Do you want to reconfigure the radio interface? + + + + + Error Scanning ADIF Log + + + + + Scanned ADIF log, %1 worked before records created + + + + + Error Loading LotW Users Data + + + + + Error Writing WAV File + + + + + Configurations... + + + + + + + + + + + + + + + + + + + + Message + + + + + Error Killing jt9.exe Process + + + + + KillByName return code: %1 + + + + + Error removing "%1" + + + + + Click OK to retry + + + + + + Improper mode + + + + + + File Open Error + + + + + + + + + Cannot open "%1" for append: %2 + + + + + Error saving c2 file + + + + + Error in Sound Input + + + + + Error in Sound Output + + + + + + + Single-Period Decodes + + + + + + + Average Decodes + + + + + Change Operator + + + + + New operator: + + + + + Status File Error + + + + + + Cannot open "%1" for writing: %2 + + + + + Subprocess Error + + + + + Subprocess failed with exit code %1 + + + + + + Running: %1 +%2 + + + + + Subprocess error + + + + + Reference spectrum saved + + + + + Invalid data in fmt.all at line %1 + + + + + Good Calibration Solution + + + + + <pre>%1%L2 ±%L3 ppm +%4%L5 ±%L6 Hz + +%7%L8 +%9%L10 Hz</pre> + + + + + Delete Calibration Measurements + + + + + The "fmt.all" file will be renamed as "fmt.bak" + + + + + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: + +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." + + + + + No data read from disk. Wrong file format? + + + + + Confirm Delete + + + + + Are you sure you want to delete all *.wav and *.c2 files in "%1"? + + + + + Keyboard Shortcuts + + + + + Special Mouse Commands + + + + + No more files to open. + + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. + + + + + WSPR Guard Band + + + + + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. + + + + + Fox Mode warning + + + + + Last Tx: %1 + + + + + Should you switch to EU VHF Contest mode? + +To do so, check 'Special operating activity' and +'EU VHF Contest' on the Settings | Advanced tab. + + + + + Should you switch to ARRL Field Day mode? + + + + + Should you switch to RTTY contest mode? + + + + + + + + Add to CALL3.TXT + + + + + Please enter a valid grid locator + + + + + Cannot open "%1" for read/write: %2 + + + + + %1 +is already in CALL3.TXT, do you wish to replace it? + + + + + Warning: DX Call field is empty. + + + + + Log file error + + + + + Cannot open "%1" + + + + + Error sending log to N1MM + + + + + Write returned "%1" + + + + + Stations calling DXpedition %1 + + + + + Hound + + + + + Tx Messages + + + + + + + Confirm Erase + + + + + Are you sure you want to erase file ALL.TXT? + + + + + + Confirm Reset + + + + + Are you sure you want to erase your contest log? + + + + + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. + + + + + Cabrillo Log saved + + + + + Are you sure you want to erase file wsjtx_log.adi? + + + + + Are you sure you want to erase the WSPR hashtable? + + + + + VHF features warning + + + + + Tune digital gain + + + + + Transmit digital gain + + + + + Prefixes + + + + + Network Error + + + + + Error: %1 +UDP server %2:%3 + + + + + File Error + + + + + Phase Training Disabled + + + + + Phase Training Enabled + + + + + WD:%1m + + + + + + Log File Error + + + + + Are you sure you want to clear the QSO queues? + + + + + MessageAveraging + + + + Message Averaging + + + + + UTC Sync DT Freq + + + + + Modes + + + + Mode + + + + + MultiSettings + + + Default + + + + + MultiSettings::impl + + + &Switch To + + + + + &Clone + + + + + Clone &Into ... + + + + + R&eset + + + + + &Rename ... + + + + + &Delete + + + + + Clone Into Configuration + + + + + Confirm overwrite of all values for configuration "%1" with values from "%2"? + + + + + Reset Configuration + + + + + Confirm reset to default values for configuration "%1"? + + + + + Delete Configuration + + + + + Confirm deletion of configuration "%1"? + + + + + NameDialog + + + New Configuration Name + + + + + Old name: + + + + + &New name: + + + + + OmniRigTransceiver + + + OmniRig: unrecognized mode + + + + + Failed to start OmniRig COM server + + + + + + OmniRig: don't know how to set rig frequency + + + + + + OmniRig: timeout waiting for update from rig + + + + + OmniRig COM/OLE error: %1 at %2: %3 (%4) + + + + + PollingTransceiver + + + Unexpected rig error + + + + + QObject + + + Invalid rig name - \ & / not allowed + + + + + User Defined + + + + + Failed to open LotW users CSV file: '%1' + + + + + OOB + + + + + Too many colours in palette. + + + + + Error reading waterfall palette file "%1:%2" too many colors. + + + + + Error reading waterfall palette file "%1:%2" invalid triplet. + + + + + Error reading waterfall palette file "%1:%2" invalid color. + + + + + Error opening waterfall palette file "%1": %2. + + + + + Error writing waterfall palette file "%1": %2. + + + + + RemoteFile + + + + + + + + File System Error + + + + + Cannot rename file: +"%1" +to: "%2" +Error(%3): %4 + + + + + Cannot delete file: +"%1" + + + + + + + Network Error + + + + + Too many redirects: %1 + + + + + Redirect not followed: %1 + + + + + Cannot commit changes to: +"%1" + + + + + Cannot open file: +"%1" +Error(%2): %3 + + + + + Cannot make path: +"%1" + + + + + Cannot write to file: +"%1" +Error(%2): %3 + + + + + SampleDownloader::impl + + + Download Samples + + + + + Input Error + + + + + Invalid URL format + + + + + SoundInput + + + An error opening the audio input device has occurred. + + + + + An error occurred during read from the audio input device. + + + + + Audio data not being fed to the audio input device fast enough. + + + + + Non-recoverable error, audio input device not usable at this time. + + + + + Requested input audio format is not valid. + + + + + Requested input audio format is not supported on device. + + + + + Failed to initialize audio sink device + + + + + Idle + + + + + Receiving + + + + + Suspended + + + + + Interrupted + + + + + Error + + + + + Stopped + + + + + SoundOutput + + + An error opening the audio output device has occurred. + + + + + An error occurred during write to the audio output device. + + + + + Audio data not being fed to the audio output device fast enough. + + + + + Non-recoverable error, audio output device not usable at this time. + + + + + Requested output audio format is not valid. + + + + + Requested output audio format is not supported on device. + + + + + Idle + + + + + Sending + + + + + Suspended + + + + + Interrupted + + + + + Error + + + + + Stopped + + + + + StationDialog + + + Add Station + + + + + &Band: + + + + + &Offset (MHz): + + + + + &Antenna: + + + + + StationList::impl + + + Band name + + + + + Frequency offset + + + + + Antenna description + + + + + Band + + + + + Offset + + + + + Antenna Description + + + + + TransceiverBase + + + Unexpected rig error + + + + + WideGraph + + + Dialog + + + + + Controls + + + + + Spectrum gain + + + + + Palette + + + + + <html><head/><body><p>Enter definition for a new color palette.</p></body></html> + + + + + Adjust... + + + + + Waterfall gain + + + + + <html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html> + + + + + % + + + + + Spec + + + + + <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> + + + + + Flatten + + + + + <html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html> + + + + + Ref Spec + + + + + Smoothing of Linear Average spectrum + + + + + Smooth + + + + + Compression factor for frequency scale + + + + + Bins/Pixel + + + + + Select waterfall palette + + + + + <html><head/><body><p>Select data for spectral display</p></body></html> + + + + + Current + + + + + Cumulative + + + + + Linear Avg + + + + + Reference + + + + + <html><head/><body><p>Frequency at left edge of waterfall</p></body></html> + + + + + Hz + + + + + Start + + + + + <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> + + + + + JT9 + + + + + JT65 + + + + + Number of FFTs averaged (controls waterfall scrolling rate) + + + + + N Avg + + + + + Waterfall zero + + + + + Spectrum zero + + + + + Wide Graph + + + + + + Read Palette + + + + + configuration_dialog + + + Settings + + + + + Genera&l + + + + + General station details and settings. + + + + + Station Details + + + + + My C&all: + + + + + Station callsign. + + + + + M&y Grid: + + + + + <html><head/><body><p>Maidenhead locator, preferably 6 characters.</p></body></html> + + + + + Check to allow grid changes from external programs + + + + + AutoGrid + + + + + IARU Region: + + + + + <html><head/><body><p>Select your IARU region.</p></body></html> + + + + + Message generation for type 2 compound callsign holders: + + + + + <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> + + + + + Full call in Tx1 + + + + + Full call in Tx3 + + + + + Full call in Tx5 only + + + + + Display + + + + + Show outgoing transmitted messages in the Rx frequency window. + + + + + &Tx messages to Rx frequency window + + + + + Show if decoded stations are new DXCC entities or worked before. + + + + + Show &DXCC, grid, and worked-before status + + + + + <html><head/><body><p>Check to have decodes for a new period start at the top of the Band Activity window and not scroll off the top when the window is full.</p><p>This is to aid selecting decodes to double-click while decoding is still in progress. Use the Band Activity vertical scroll bar to reveal decodes past the bottom of the window.</p></body></html> + + + + + Start new period decodes at top + + + + + Show principal prefix instead of country name + + + + + Set the font characteristics for the application. + + + + + Font... + + + + + Set the font characteristics for the Band Activity and Rx Frequency areas. + + + + + Decoded Text Font... + + + + + Include a separator line between periods in the band activity window. + + + + + &Blank line between decoding periods + + + + + Show distance to DX station in miles rather than kilometers. + + + + + Display dista&nce in miles + + + + + Behavior + + + + + Decode after EME delay + + + + + Tx watchdog: + + + + + <html><head/><body><p>Number of minutes before unattended transmissions are aborted</p></body></html> + + + + + Disabled + + + + + minutes + + + + + Enable VHF/UHF/Microwave features + + + + + Single decode + + + + + <html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html> + + + + + Allow Tx frequency changes while transmitting + + + + + Don't start decoding until the monitor button is clicked. + + + + + Mon&itor off at startup + + + + + <html><head/><body><p>Check this if you wish to automatically return to the last monitored frequency when monitor is enabled, leave it unchecked if you wish to have the current rig frequency maintained.</p></body></html> + + + + + Monitor returns to last used frequency + + + + + Alternate F1-F6 bindings + + + + + Turns off automatic transmissions after sending a 73 or any other free +text message. + + + + + Di&sable Tx after sending 73 + + + + + Send a CW ID after every 73 or free text message. + + + + + CW ID a&fter 73 + + + + + Periodic CW ID Inter&val: + + + + + Send a CW ID periodically every few minutes. +This might be required under your countries licence regulations. +It will not interfere with other users as it is always sent in the +quiet period when decoding is done. + + + + + Automatic transmission mode. + + + + + Doubl&e-click on call sets Tx enable + + + + + Calling CQ forces Call 1st + + + + + &Radio + + + + + Radio interface configuration settings. + + + + + Settings that control your CAT interface. + + + + + CAT Control + + + + + + Port: + + + + + Serial port used for CAT control. + + + + + Serial Port Parameters + + + + + Baud Rate: + + + + + Serial port data rate which must match the setting of your radio. + + + + + 1200 + + + + + 2400 + + + + + 4800 + + + + + 9600 + + + + + 19200 + + + + + 38400 + + + + + 57600 + + + + + 115200 + + + + + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> + + + + + Data Bits + + + + + D&efault + + + + + Se&ven + + + + + E&ight + + + + + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> + + + + + Stop Bits + + + + + + Default + + + + + On&e + + + + + T&wo + + + + + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> + + + + + Handshake + + + + + &None + + + + + Software flow control (very rare on CAT interfaces). + + + + + XON/XOFF + + + + + Flow control using the RTS and CTS RS-232 control lines +not often used but some radios have it as an option and +a few, particularly some Kenwood rigs, require it). + + + + + &Hardware + + + + + Special control of CAT port control lines. + + + + + Force Control Lines + + + + + + High + + + + + + Low + + + + + DTR: + + + + + RTS: + + + + + How this program activates the PTT on your radio? + + + + + PTT Method + + + + + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> + + + + + VO&X + + + + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> + + + + + &DTR + + + + + Some radios support PTT via CAT commands, +use this option if your radio supports it and you have no +other hardware interface for PTT. + + + + + C&AT + + + + + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> + + + + + R&TS + + + + + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> + + + + + Modulation mode selected on radio. + + + + + Mode + + + + + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> + + + + + US&B + + + + + Don't allow the program to set the radio mode +(not recommended but use if the wrong mode +or bandwidth is selected). + + + + + + None + + + + + If this is available then it is usually the correct mode for this program. + + + + + Data/P&kt + + + + + Some radios can select the audio input using a CAT command, +this setting allows you to select which audio input will be used +(if it is available then generally the Rear/Data option is best). + + + + + Transmit Audio Source + + + + + Rear&/Data + + + + + &Front/Mic + + + + + Rig: + + + + + Poll Interval: + + + + + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> + + + + + s + + + + + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> + + + + + Test CAT + + + + + Attempt to activate the transmitter. +Click again to deactivate. Normally no power should be +output since there is no audio being generated at this time. +Check that any Tx indication on your radio and/or your +radio interface behave as expected. + + + + + Test PTT + + + + + Split Operation + + + + + Fake It + + + + + Rig + + + + + A&udio + + + + + Audio interface settings + + + + + Souncard + + + + + Soundcard + + + + + Select the audio CODEC to use for transmitting. +If this is your default device for system sounds then +ensure that all system sounds are disabled otherwise +you will broadcast any systems sounds generated during +transmitting periods. + + + + + Select the audio CODEC to use for receiving. + + + + + &Input: + + + + + Select the channel to use for receiving. + + + + + + Mono + + + + + + Left + + + + + + Right + + + + + + Both + + + + + Select the audio channel used for transmission. +Unless you have multiple radios connected on different +channels; then you will usually want to select mono or +both here. + + + + + Ou&tput: + + + + + + Save Directory + + + + + Loc&ation: + + + + + Path to which .WAV files are saved. + + + + + + TextLabel + + + + + Click to select a different save directory for .WAV files. + + + + + S&elect + + + + + + AzEl Directory + + + + + Location: + + + + + Select + + + + + Power Memory By Band + + + + + Remember power settings by band + + + + + Enable power memory during transmit + + + + + Transmit + + + + + Enable power memory during tuning + + + + + Tune + + + + + Tx &Macros + + + + + Canned free text messages setup + + + + + &Add + + + + + &Delete + + + + + Drag and drop items to rearrange order +Right click for item specific actions +Click, SHIFT+Click and, CRTL+Click to select items + + + + + Reportin&g + + + + + Reporting and logging settings + + + + + Logging + + + + + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. + + + + + Promp&t me to log QSO + + + + + Op Call: + + + + + Some logging programs will not accept the type of reports +saved by this program. +Check this option to save the sent and received reports in the +comments field. + + + + + d&B reports to comments + + + + + Check this option to force the clearing of the DX Call +and DX Grid fields when a 73 or free text message is sent. + + + + + Clear &DX call and grid after logging + + + + + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> + + + + + Con&vert mode to RTTY + + + + + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> + + + + + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> + + + + + Log automatically (contesting only) + + + + + Network Services + + + + + The program can send your station details and all +decoded signals as spots to the http://pskreporter.info web site. +This is used for reverse beacon analysis which is very useful +for assessing propagation and system performance. + + + + + Enable &PSK Reporter Spotting + + + + + UDP Server + + + + + UDP Server: + + + + + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> + + + + + UDP Server port number: + + + + + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> + + + + + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> + + + + + Accept UDP requests + + + + + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> + + + + + Notify on accepted UDP request + + + + + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> + + + + + Accepted UDP request restores window + + + + + Secondary UDP Server (deprecated) + + + + + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> + + + + + Enable logged contact ADIF broadcast + + + + + Server name or IP address: + + + + + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> + + + + + Server port number: + + + + + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> + + + + + Frequencies + + + + + Default frequencies and band specific station details setup + + + + + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> + + + + + Frequency Calibration + + + + + Slope: + + + + + ppm + + + + + Intercept: + + + + + Hz + + + + + Working Frequencies + + + + + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> + + + + + Station Information + + + + + Items may be edited. +Right click for insert and delete options. + + + + + Colors + + + + + Decode Highlightling + + + + + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> + + + + + Rescan ADIF Log + + + + + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> + + + + + Reset Highlighting + + + + + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> + + + + + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> + + + + + Highlight by Mode + + + + + Include extra WAE entities + + + + + Check to for grid highlighting to only apply to unworked grid fields + + + + + Only grid Fields sought + + + + + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> + + + + + Logbook of the World User Validation + + + + + Users CSV file URL: + + + + + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> + + + + + https://lotw.arrl.org/lotw-user-activity.csv + + + + + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> + + + + + Fetch Now + + + + + Age of last upload less than: + + + + + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> + + + + + days + + + + + Advanced + + + + + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> + + + + + JT65 VHF/UHF/Microwave decoding parameters + + + + + Random erasure patterns: + + + + + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> + + + + + Aggressive decoding level: + + + + + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> + + + + + Two-pass decoding + + + + + Special operating activity: Generation of FT4, FT8, and MSK144 messages + + + + + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> + + + + + Hound + + + + + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> + + + + + NA VHF Contest + + + + + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> + + + + + Fox + + + + + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> + + + + + EU VHF Contest + + + + + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> + + + + + RTTY Roundup messages + + + + + RTTY RU Exch: + + + + + NJ + + + + + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> + + + + + ARRL Field Day + + + + + FD Exch: + + + + + 6A SNJ + + + + + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> + + + + + WW Digi Contest + + + + + Miscellaneous + + + + + Degrade S/N of .wav file: + + + + + + For offline sensitivity tests + + + + + dB + + + + + Receiver bandwidth: + + + + + Hz + + + + + Tx delay: + + + + + Minimum delay between assertion of PTT and start of Tx audio. + + + + + s + + + + + Tone spacing + + + + + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> + + + + + x 2 + + + + + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> + + + + + x 4 + + + + + Waterfall spectra + + + + + Low sidelobes + + + + + Most sensitive + + + + + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> + + + + + main + + + + Fatal error + + + + + + Unexpected fatal error + + + + + Where <rig-name> is for multi-instance support. + + + + + rig-name + + + + + Where <configuration> is an existing one. + + + + + configuration + + + + + Where <language> is <lang-code>[-<country-code>]. + + + + + language + + + + + Writable files in test location. Use with caution, for testing only. + + + + + Command line error + + + + + Command line help + + + + + Application version + + + + + Another instance may be running + + + + + try to remove stale lock file? + + + + + Failed to create a temporary directory + + + + + + Path: "%1" + + + + + Failed to create a usable temporary directory + + + + + Another application may be locking the directory + + + + + Failed to create data directory + + + + + path: "%1" + + + + + Shared memory error + + + + + Unable to create shared memory segment + + + + + wf_palette_design_dialog + + + Palette Designer + + + + + <html><head/><body><p>Double click a color to edit it.</p><p>Right click to insert or delete colors.</p><p>Colors at the top represent weak signals</p><p>and colors at the bottom represent strong</p><p>signals. You can have up to 256 colors.</p></body></html> + + + + From 12993cb26636baf85c8ebe74bff8d7637f1364ba Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 27 May 2020 20:05:16 +0100 Subject: [PATCH 026/520] Avoid some bound to fail Hamlib API calls --- Transceiver/HamlibTransceiver.cpp | 6 ++++-- Transceiver/HamlibTransceiver.hpp | 1 + Transceiver/TransceiverBase.cpp | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Transceiver/HamlibTransceiver.cpp b/Transceiver/HamlibTransceiver.cpp index dd468eb82..f8ed19fac 100644 --- a/Transceiver/HamlibTransceiver.cpp +++ b/Transceiver/HamlibTransceiver.cpp @@ -185,6 +185,7 @@ HamlibTransceiver::HamlibTransceiver (TransceiverFactory::PTTMethod ptt_type, QS QObject * parent) : PollingTransceiver {0, parent} , rig_ {rig_init (RIG_MODEL_DUMMY)} + , ptt_only_ {true} , back_ptt_port_ {false} , one_VFO_ {false} , is_dummy_ {true} @@ -238,6 +239,7 @@ HamlibTransceiver::HamlibTransceiver (int model_number, TransceiverFactory::Para QObject * parent) : PollingTransceiver {params.poll_interval, parent} , rig_ {rig_init (model_number)} + , ptt_only_ {false} , back_ptt_port_ {TransceiverFactory::TX_audio_source_rear == params.audio_source} , one_VFO_ {false} , is_dummy_ {RIG_MODEL_DUMMY == model_number} @@ -579,7 +581,7 @@ int HamlibTransceiver::do_start () tickle_hamlib_ = true; - if (is_dummy_ && dummy_frequency_) + if (is_dummy_ && !ptt_only_ && dummy_frequency_) { // return to where last dummy instance was // TODO: this is going to break down if multiple dummy rigs are used @@ -640,7 +642,7 @@ int HamlibTransceiver::do_start () void HamlibTransceiver::do_stop () { - if (is_dummy_) + if (is_dummy_ && !ptt_only_) { rig_get_freq (rig_.data (), RIG_VFO_CURR, &dummy_frequency_); dummy_frequency_ = std::round (dummy_frequency_); diff --git a/Transceiver/HamlibTransceiver.hpp b/Transceiver/HamlibTransceiver.hpp index fcc17eeb9..dd78b7875 100644 --- a/Transceiver/HamlibTransceiver.hpp +++ b/Transceiver/HamlibTransceiver.hpp @@ -45,6 +45,7 @@ public: struct RIGDeleter {static void cleanup (RIG *);}; QScopedPointer rig_; + bool ptt_only_; // we can use a dummy device for PTT bool back_ptt_port_; bool one_VFO_; bool is_dummy_; diff --git a/Transceiver/TransceiverBase.cpp b/Transceiver/TransceiverBase.cpp index f1decb682..a61857528 100644 --- a/Transceiver/TransceiverBase.cpp +++ b/Transceiver/TransceiverBase.cpp @@ -172,14 +172,14 @@ void TransceiverBase::shutdown () do_tx_frequency (0, UNK, true); do_post_tx_frequency (0, UNK); } + do_stop (); + do_post_stop (); } catch (...) { // don't care about exceptions } } - do_stop (); - do_post_stop (); actual_ = TransceiverState {}; requested_ = TransceiverState {}; } From 304333a41866bf30b0352e944d42c9ff82875bb3 Mon Sep 17 00:00:00 2001 From: K9AN Date: Fri, 29 May 2020 07:59:46 -0500 Subject: [PATCH 027/520] Fix MSK144 timestamps in ALL.TXT log. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 145b6bd1a..2a92a9734 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -8829,7 +8829,7 @@ void MainWindow::write_all(QString txRx, QString message) auto time = QDateTime::currentDateTimeUtc (); if( txRx=="Rx" ) { double tdec = fmod(double(time.time().second()),m_TRperiod); - if( tdec < 0.5*m_TRperiod ) { + if( "MSK144" != m_mode && tdec < 0.5*m_TRperiod ) { tdec+=m_TRperiod; } time = time.addSecs(-tdec); From 1da87fe9044f3f630213c5b3b2490c3c3c87e326 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 29 May 2020 22:11:41 +0100 Subject: [PATCH 028/520] Empty wsjtx_en.qm so that macOS doesn't load a secondary l10n --- CMakeLists.txt | 4 + translations/wsjtx_en.ts | 6214 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 6218 insertions(+) create mode 100644 translations/wsjtx_en.ts diff --git a/CMakeLists.txt b/CMakeLists.txt index 68dbac44c..366895e04 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1096,6 +1096,10 @@ add_custom_target (etags COMMAND ${ETAGS} -o ${CMAKE_SOURCE_DIR}/TAGS -R ${sourc # Qt i18n set (LANGUAGES + en # English (we need this to stop + # translation loaders loading the + # second preference UI languge, it + # doesn't need to be populated) en_GB # English UK es # Spanish ca # Catalan diff --git a/translations/wsjtx_en.ts b/translations/wsjtx_en.ts new file mode 100644 index 000000000..d6a00ab33 --- /dev/null +++ b/translations/wsjtx_en.ts @@ -0,0 +1,6214 @@ + + + + + AbstractLogWindow + + + &Delete ... + + + + + AbstractLogWindow::impl + + + Confirm Delete + + + + + Are you sure you want to delete the %n selected QSO(s) from the log? + + + + + + + + Astro + + + + Doppler tracking + + + + + <html><head/><body><p>One station does all Doppler shift correction, their QSO partner receives and transmits on the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + + + + + Full Doppler to DX Grid + + + + + <html><head/><body><p>Transmit takes place on sked frequency and receive frequency is corrected for own echoes. </p><p>This mode can be used for calling CQ, or when using Echo mode.</p></body></html> + + + + + Own Echo + + + + + <html><head/><body><p>Both stations correct for Doppler shift such that they would be heard on the moon at the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p><p>Use this option also for Echo mode.</p></body></html> + + + + + Constant frequency on Moon + + + + + <html><head/><body><p>DX station announces their TX Freq, which is entered as the Sked Freq. Correction applied to RX and TX so you appear on the DX's station's own echo Freq.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + + + + + On DX Echo + + + + + <html><head/><body><p>Tune radio manually and select this mode to put your echo on the same frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + + + + + Call DX + + + + + <html><head/><body><p>No Doppler shift correction is applied. This may be used when the QSO partner does full Doppler correction to your grid square.</p></body></html> + + + + + None + + + + + Sked frequency + + + + + + 0 + + + + + Rx: + + + + + Tx: + + + + + <html><head/><body><p>Press and hold the CTRL key to adjust the sked frequency manually with the rig's VFO dial or enter frequency directly into the band entry field on the main window.</p></body></html> + + + + + Astro Data + + + + + Astronomical Data + + + + + Doppler Tracking Error + + + + + Split operating is required for Doppler tracking + + + + + Go to "Menu->File->Settings->Radio" to enable split operation + + + + + Bands + + + Band name + + + + + Lower frequency limit + + + + + Upper frequency limit + + + + + Band + + + + + Lower Limit + + + + + Upper Limit + + + + + CAboutDlg + + + About WSJT-X + + + + + OK + + + + + CPlotter + + + &Set Rx && Tx Offset + + + + + CabrilloLog + + + Freq(MHz) + + + + + Mode + + + + + Date & Time(UTC) + + + + + Call + + + + + Sent + + + + + Rcvd + + + + + Band + + + + + CabrilloLogWindow + + + Contest Log + + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + + + + + Right-click here for available actions. + + + + + CallsignDialog + + + Callsign + + + + + ColorHighlighting + + + + + + + + + + + + + + + + + + K1ABC + + + + + CQ in message + + + + + My Call in message + + + + + Transmitted message + + + + + New DXCC + + + + + New Grid + + + + + New DXCC on Band + + + + + New Call + + + + + New Grid on Band + + + + + New Call on Band + + + + + Uploads to LotW + + + + + New Continent + + + + + New Continent on Band + + + + + New CQ Zone + + + + + New CQ Zone on Band + + + + + New ITU Zone + + + + + New ITU Zone on Band + + + + + Configuration::impl + + + + + &Delete + + + + + + &Insert ... + + + + + Failed to create save directory + + + + + path: "%1% + + + + + Failed to create samples directory + + + + + path: "%1" + + + + + &Load ... + + + + + &Save as ... + + + + + &Merge ... + + + + + &Reset + + + + + Serial Port: + + + + + Serial port used for CAT control + + + + + Network Server: + + + + + Optional hostname and port of network service. +Leave blank for a sensible default on this machine. +Formats: + hostname:port + IPv4-address:port + [IPv6-address]:port + + + + + USB Device: + + + + + Optional device identification. +Leave blank for a sensible default for the rig. +Format: + [VID[:PID[:VENDOR[:PRODUCT]]]] + + + + + Invalid audio input device + + + + + Invalid audio out device + + + + + Invalid PTT method + + + + + Invalid PTT port + + + + + + Invalid Contest Exchange + + + + + You must input a valid ARRL Field Day exchange + + + + + You must input a valid ARRL RTTY Roundup exchange + + + + + Reset Decode Highlighting + + + + + Reset all decode highlighting and priorities to default values + + + + + WSJT-X Decoded Text Font Chooser + + + + + Load Working Frequencies + + + + + + + Frequency files (*.qrg);;All files (*.*) + + + + + Replace Working Frequencies + + + + + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? + + + + + Merge Working Frequencies + + + + + + + Not a valid frequencies file + + + + + Incorrect file magic + + + + + Version is too new + + + + + Contents corrupt + + + + + Save Working Frequencies + + + + + Only Save Selected Working Frequencies + + + + + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. + + + + + Reset Working Frequencies + + + + + Are you sure you want to discard your current working frequencies and replace them with default ones? + + + + + Save Directory + + + + + AzEl Directory + + + + + Rig control error + + + + + Failed to open connection to rig + + + + + Rig failure + + + + + DXLabSuiteCommanderTransceiver + + + Failed to connect to DX Lab Suite Commander + + + + + + DX Lab Suite Commander didn't respond correctly reading frequency: + + + + + DX Lab Suite Commander sent an unrecognised TX state: + + + + + DX Lab Suite Commander didn't respond correctly polling TX status: + + + + + DX Lab Suite Commander rig did not respond to PTT: + + + + + DX Lab Suite Commander didn't respond correctly polling frequency: + + + + + DX Lab Suite Commander didn't respond correctly polling TX frequency: + + + + + DX Lab Suite Commander sent an unrecognised split state: + + + + + DX Lab Suite Commander didn't respond correctly polling split status: + + + + + DX Lab Suite Commander sent an unrecognised mode: " + + + + + DX Lab Suite Commander didn't respond correctly polling mode: + + + + + DX Lab Suite Commander send command failed + + + + + + DX Lab Suite Commander failed to send command "%1": %2 + + + + + + DX Lab Suite Commander send command "%1" read reply failed: %2 + + + + + + DX Lab Suite Commander retries exhausted sending command "%1" + + + + + DX Lab Suite Commander sent an unrecognized frequency + + + + + DecodeHighlightingListView + + + &Foreground color ... + + + + + Choose %1 Foreground Color + + + + + &Unset foreground color + + + + + &Background color ... + + + + + Choose %1 Background Color + + + + + U&nset background color + + + + + &Reset this item to defaults + + + + + DecodeHighlightingModel + + + CQ in message + + + + + My Call in message + + + + + Transmitted message + + + + + New DXCC + + + + + New DXCC on Band + + + + + New Grid + + + + + New Grid on Band + + + + + New Call + + + + + New Call on Band + + + + + New Continent + + + + + New Continent on Band + + + + + New CQ Zone + + + + + New CQ Zone on Band + + + + + New ITU Zone + + + + + New ITU Zone on Band + + + + + LoTW User + + + + + f/g unset + + + + + b/g unset + + + + + Highlight Type + + + + + Designer + + + &Delete + + + + + &Insert ... + + + + + Insert &after ... + + + + + Import Palette + + + + + + Palettes (*.pal) + + + + + Export Palette + + + + + Dialog + + + Gray time: + + + + + Directory + + + + URL Error + + + + + + Invalid URL: +"%1" + + + + + + + + + + + JSON Error + + + + + Contents file syntax error %1 at character offset %2 + + + + + Contents file top level must be a JSON array + + + + + File System Error + + + + + Failed to open "%1" +Error: %2 - %3 + + + + + Contents entries must be a JSON array + + + + + Contents entries must have a valid type + + + + + Contents entries must have a valid name + + + + + Contents entries must be JSON objects + + + + + Contents directories must be relative and within "%1" + + + + + Network Error + + + + + Authentication required + + + + + DisplayText + + + &Erase + + + + + EchoGraph + + + + Echo Graph + + + + + <html><head/><body><p>Compression factor for frequency scale</p></body></html> + + + + + Bins/Pixel + + + + + Gain + + + + + <html><head/><body><p>Echo spectrum gain</p></body></html> + + + + + Zero + + + + + <html><head/><body><p>Echo spectrum zero</p></body></html> + + + + + <html><head/><body><p>Smoothing of echo spectrum</p></body></html> + + + + + Smooth + + + + + <html><head/><body><p>Number of echo transmissions averaged</p></body></html> + + + + + N: 0 + + + + + <html><head/><body><p>Click to cycle through a sequence of colors and line widths.</p></body></html> + + + + + Colors + + + + + EmulateSplitTransceiver + + + Emulated split mode requires rig to be in simplex mode + + + + + EqualizationToolsDialog::impl + + + Phase + + + + + + Freq (Hz) + + + + + Phase (Π) + + + + + Delay (ms) + + + + + Measured + + + + + Proposed + + + + + Current + + + + + Group Delay + + + + + Amplitude + + + + + Relative Power (dB) + + + + + Reference + + + + + Phase ... + + + + + Refresh + + + + + Discard Measured + + + + + ExistingNameDialog + + + Configuration to Clone From + + + + + &Source Configuration Name: + + + + + ExportCabrillo + + + Dialog + + + + + Location: + + + + + SNJ + + + + + Contest: + + + + + ARRL-RTTY + + + + + Callsign: + + + + + Category-Operator: + + + + + SINGLE-OP + + + + + Category-Transmitter: + + + + + ONE + + + + + Category-Power: + + + + + LOW + + + + + Category-Assisted: + + + + + NON-ASSISTED + + + + + Category-Band: + + + + + ALL + + + + + Claimed-Score: + + + + + Operators: + + + + + Club: + + + + + Name: + + + + + + Address: + + + + + Save Log File + + + + + Cabrillo Log (*.cbr) + + + + + Cannot open "%1" for writing: %2 + + + + + Export Cabrillo File Error + + + + + FastGraph + + + + Fast Graph + + + + + Waterfall gain + + + + + Waterfall zero + + + + + Spectrum zero + + + + + <html><head/><body><p>Set reasonable levels for gain and zero sliders.</p></body></html> + + + + + Auto Level + + + + + FoxLog::impl + + + Date & Time(UTC) + + + + + Call + + + + + Grid + + + + + Sent + + + + + Rcvd + + + + + Band + + + + + FoxLogWindow + + + Fox Log + + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + + + + + Callers: + + + + + + + N + + + + + In progress: + + + + + Rate: + + + + + &Export ADIF ... + + + + + Export ADIF Log File + + + + + ADIF Log (*.adi) + + + + + Export ADIF File Error + + + + + Cannot open "%1" for writing: %2 + + + + + &Reset ... + + + + + Confirm Reset + + + + + Are you sure you want to erase file FoxQSO.txt and start a new Fox log? + + + + + FrequencyDialog + + + Add Frequency + + + + + IARU &Region: + + + + + &Mode: + + + + + &Frequency (MHz): + + + + + FrequencyList_v2 + + + + IARU Region + + + + + + Mode + + + + + + Frequency + + + + + + Frequency (MHz) + + + + + HRDTransceiver + + + + Failed to connect to Ham Radio Deluxe + + + + + + Failed to open file "%1": %2. + + + + + + Ham Radio Deluxe: no rig found + + + + + Ham Radio Deluxe: rig doesn't support mode + + + + + Ham Radio Deluxe: sent an unrecognised mode + + + + + Ham Radio Deluxe: item not found in %1 dropdown list + + + + + Ham Radio Deluxe: button not available + + + + + Ham Radio Deluxe didn't respond as expected + + + + + Ham Radio Deluxe: rig has disappeared or changed + + + + + Ham Radio Deluxe send command "%1" failed %2 + + + + + + + Ham Radio Deluxe: failed to write command "%1" + + + + + Ham Radio Deluxe sent an invalid reply to our command "%1" + + + + + Ham Radio Deluxe failed to reply to command "%1" %2 + + + + + + Ham Radio Deluxe retries exhausted sending command "%1" + + + + + Ham Radio Deluxe didn't respond to command "%1" as expected + + + + + HamlibTransceiver + + + + Hamlib initialisation error + + + + + Hamlib settings file error: %1 at character offset %2 + + + + + Hamlib settings file error: top level must be a JSON object + + + + + Hamlib settings file error: config must be a JSON object + + + + + Unsupported CAT type + + + + + Hamlib error: %1 while %2 + + + + + opening connection to rig + + + + + getting current frequency + + + + + getting current mode + + + + + + exchanging VFOs + + + + + + getting other VFO frequency + + + + + getting other VFO mode + + + + + setting current VFO + + + + + getting frequency + + + + + getting mode + + + + + + getting current VFO + + + + + + + + getting current VFO frequency + + + + + + + + + + setting frequency + + + + + + + + getting current VFO mode + + + + + + + + + setting current VFO mode + + + + + + setting/unsetting split mode + + + + + + setting split mode + + + + + setting split TX frequency and mode + + + + + setting split TX frequency + + + + + getting split TX VFO mode + + + + + setting split TX VFO mode + + + + + getting PTT state + + + + + setting PTT on + + + + + setting PTT off + + + + + setting a configuration item + + + + + getting a configuration item + + + + + HelpTextWindow + + + Help file error + + + + + Cannot open "%1" for reading + + + + + Error: %1 + + + + + IARURegions + + + + IARU Region + + + + + LogQSO + + + Click OK to confirm the following QSO: + + + + + Call + + + + + Start + + + + + + dd/MM/yyyy HH:mm:ss + + + + + End + + + + + Mode + + + + + Band + + + + + Rpt Sent + + + + + Rpt Rcvd + + + + + Grid + + + + + Name + + + + + Tx power + + + + + + Retain + + + + + Comments + + + + + Operator + + + + + Exch sent + + + + + Rcvd + + + + + + Invalid QSO Data + + + + + Check exchange sent and received + + + + + Check all fields + + + + + Log file error + + + + + Cannot open "%1" for append + + + + + Error: %1 + + + + + LotWUsers::impl + + + Network Error - SSL/TLS support not installed, cannot fetch: +'%1' + + + + + Network Error - Too many redirects: +'%1' + + + + + Network Error: +%1 + + + + + File System Error - Cannot commit changes to: +"%1" + + + + + File System Error - Cannot open file: +"%1" +Error(%2): %3 + + + + + File System Error - Cannot write to file: +"%1" +Error(%2): %3 + + + + + MainWindow + + + WSJT-X by K1JT + + + + + + + + + + + Band Activity + + + + + + UTC dB DT Freq Dr + + + + + + + + + + Rx Frequency + + + + + CQ only + + + + + Enter this QSO in log + + + + + Log &QSO + + + + + Stop monitoring + + + + + &Stop + + + + + Toggle monitoring On/Off + + + + + &Monitor + + + + + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> + + + + + Erase right window. Double-click to erase both windows. + + + + + &Erase + + + + + <html><head/><body><p>Clear the accumulating message average.</p></body></html> + + + + + Clear the accumulating message average. + + + + + Clear Avg + + + + + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> + + + + + Decode most recent Rx period at QSO Frequency + + + + + &Decode + + + + + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> + + + + + Toggle Auto-Tx On/Off + + + + + E&nable Tx + + + + + Stop transmitting immediately + + + + + &Halt Tx + + + + + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> + + + + + Toggle a pure Tx tone On/Off + + + + + &Tune + + + + + Menus + + + + + USB dial frequency + + + + + 14.078 000 + + + + + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> + + + + + Rx Signal + + + + + 30dB recommended when only noise present +Green when good +Red when clipping may occur +Yellow when too low + + + + + DX Call + + + + + DX Grid + + + + + Callsign of station to be worked + + + + + Search for callsign in database + + + + + &Lookup + + + + + Locator of station to be worked + + + + + Az: 251 16553 km + + + + + Add callsign and locator to database + + + + + Add + + + + + Pwr + + + + + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> + + + + + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. + + + + + ? + + + + + Adjust Tx audio level + + + + + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> + + + + + Frequency entry + + + + + Select operating band or enter frequency in MHz or enter kHz increment followed by k. + + + + + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + + + + + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> + + + + + Check to keep Tx frequency fixed when double-clicking on decoded text. + + + + + Hold Tx Freq + + + + + Audio Rx frequency + + + + + + + Hz + + + + + Rx + + + + + Set Tx frequency to Rx Frequency + + + + + ▲ + + + + + Frequency tolerance (Hz) + + + + + F Tol + + + + + Set Rx frequency to Tx Frequency + + + + + ▼ + + + + + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> + + + + + Synchronizing threshold. Lower numbers accept weaker sync signals. + + + + + Sync + + + + + <html><head/><body><p>Check to use short-format messages.</p></body></html> + + + + + Check to use short-format messages. + + + + + Sh + + + + + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> + + + + + Check to enable JT9 fast modes + + + + + + Fast + + + + + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> + + + + + Check to enable automatic sequencing of Tx messages based on received messages. + + + + + Auto Seq + + + + + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> + + + + + Check to call the first decoded responder to my CQ. + + + + + Call 1st + + + + + Check to generate "@1250 (SEND MSGS)" in Tx6. + + + + + Tx6 + + + + + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> + + + + + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. + + + + + Tx even/1st + + + + + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> + + + + + Frequency to call CQ on in kHz above the current MHz + + + + + Tx CQ + + + + + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> + + + + + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. +Not available to nonstandard callsign holders. + + + + + Rx All Freqs + + + + + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> + + + + + Submode determines tone spacing; A is narrowest. + + + + + Submode + + + + + + Fox + + + + + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> + + + + + Check to monitor Sh messages. + + + + + SWL + + + + + Best S+P + + + + + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> + + + + + Check this to start recording calibration data. +While measuring calibration correction is disabled. +When not checked you can view the calibration results. + + + + + Measure + + + + + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> + + + + + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). + + + + + Report + + + + + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> + + + + + Tx/Rx or Frequency calibration sequence length + + + + + s + + + + + T/R + + + + + Toggle Tx mode + + + + + Tx JT9 @ + + + + + Audio Tx frequency + + + + + + Tx + + + + + Tx# + + + + + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> + + + + + Double-click on another caller to queue that call for your next QSO. + + + + + Next Call + + + + + 1 + + + + + + + Send this message in next Tx interval + + + + + Ctrl+2 + + + + + <html><head/><body><p>Send this message in next Tx interval</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> + + + + + Send this message in next Tx interval +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) + + + + + Ctrl+1 + + + + + + + + Switch to this Tx message NOW + + + + + Tx &2 + + + + + Alt+2 + + + + + <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> + + + + + Switch to this Tx message NOW +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) + + + + + Tx &1 + + + + + Alt+1 + + + + + Ctrl+6 + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> + + + + + Send this message in next Tx interval +Double-click to reset to the standard 73 message + + + + + Ctrl+5 + + + + + Ctrl+3 + + + + + Tx &3 + + + + + Alt+3 + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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> + + + + + Send this message in next Tx interval +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + + + + + Ctrl+4 + + + + + <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> + + + + + Switch to this Tx message NOW +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + + + + + Tx &4 + + + + + Alt+4 + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> + + + + + Switch to this Tx message NOW +Double-click to reset to the standard 73 message + + + + + Tx &5 + + + + + Alt+5 + + + + + Now + + + + + Generate standard messages for minimal QSO + + + + + Generate Std Msgs + + + + + Tx &6 + + + + + Alt+6 + + + + + + Enter a free text message (maximum 13 characters) +or select a predefined macro from the dropdown list. +Press ENTER to add the current text to the predefined +list. The list can be maintained in Settings (F2). + + + + + Queue up the next Tx message + + + + + Next + + + + + 2 + + + + + Calling CQ + + + + + Generate a CQ message + + + + + + + CQ + + + + + Generate message with RRR + + + + + RRR + + + + + Generate message with report + + + + + dB + + + + + Answering CQ + + + + + Generate message for replying to a CQ + + + + + + Grid + + + + + Generate message with R+report + + + + + R+dB + + + + + Generate message with 73 + + + + + 73 + + + + + Send this standard (generated) message + + + + + Gen msg + + + + + Send this free-text message (max 13 characters) + + + + + Free msg + + + + + 3 + + + + + Max dB + + + + + CQ AF + + + + + CQ AN + + + + + CQ AS + + + + + CQ EU + + + + + CQ NA + + + + + CQ OC + + + + + CQ SA + + + + + CQ 0 + + + + + CQ 1 + + + + + CQ 2 + + + + + CQ 3 + + + + + CQ 4 + + + + + CQ 5 + + + + + CQ 6 + + + + + CQ 7 + + + + + CQ 8 + + + + + CQ 9 + + + + + Reset + + + + + N List + + + + + N Slots + + + + + + Random + + + + + Call + + + + + S/N (dB) + + + + + Distance + + + + + More CQs + + + + + Percentage of 2-minute sequences devoted to transmitting. + + + + + % + + + + + Tx Pct + + + + + Band Hopping + + + + + Choose bands and times of day for band-hopping. + + + + + Schedule ... + + + + + Upload decoded messages to WSPRnet.org. + + + + + Upload spots + + + + + <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> + + + + + 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. + + + + + Prefer type 1 messages + + + + + No own call decodes + + + + + Transmit during the next 2-minute sequence. + + + + + Tx Next + + + + + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. + + + + + File + + + + + View + + + + + Decode + + + + + Save + + + + + Help + + + + + Mode + + + + + Configurations + + + + + Tools + + + + + Exit + + + + + Configuration + + + + + F2 + + + + + About WSJT-X + + + + + Waterfall + + + + + Open + + + + + Ctrl+O + + + + + Open next in directory + + + + + Decode remaining files in directory + + + + + Shift+F6 + + + + + Delete all *.wav && *.c2 files in SaveDir + + + + + None + + + + + Save all + + + + + Online User Guide + + + + + Keyboard shortcuts + + + + + Special mouse commands + + + + + JT9 + + + + + Save decoded + + + + + Normal + + + + + Deep + + + + + Monitor OFF at startup + + + + + Erase ALL.TXT + + + + + Erase wsjtx_log.adi + + + + + Convert mode to RTTY for logging + + + + + Log dB reports to Comments + + + + + Prompt me to log QSO + + + + + Blank line between decoding periods + + + + + Clear DX Call and Grid after logging + + + + + Display distance in miles + + + + + Double-click on call sets Tx Enable + + + + + + F7 + + + + + Tx disabled after sending 73 + + + + + + Runaway Tx watchdog + + + + + Allow multiple instances + + + + + Tx freq locked to Rx freq + + + + + JT65 + + + + + JT9+JT65 + + + + + Tx messages to Rx Frequency window + + + + + Gray1 + + + + + Show DXCC entity and worked B4 status + + + + + Astronomical data + + + + + List of Type 1 prefixes and suffixes + + + + + Settings... + + + + + Local User Guide + + + + + Open log directory + + + + + JT4 + + + + + Message averaging + + + + + Enable averaging + + + + + Enable deep search + + + + + WSPR + + + + + Echo Graph + + + + + F8 + + + + + Echo + + + + + EME Echo mode + + + + + ISCAT + + + + + Fast Graph + + + + + F9 + + + + + &Download Samples ... + + + + + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> + + + + + MSK144 + + + + + QRA64 + + + + + Release Notes + + + + + Enable AP for DX Call + + + + + FreqCal + + + + + Measure reference spectrum + + + + + Measure phase response + + + + + Erase reference spectrum + + + + + Execute frequency calibration cycle + + + + + Equalization tools ... + + + + + WSPR-LF + + + + + Experimental LF/MF mode + + + + + FT8 + + + + + + Enable AP + + + + + Solve for calibration parameters + + + + + Copyright notice + + + + + Shift+F1 + + + + + Fox log + + + + + FT8 DXpedition Mode User Guide + + + + + Reset Cabrillo log ... + + + + + Color highlighting scheme + + + + + Contest Log + + + + + Export Cabrillo log ... + + + + + Quick-Start Guide to WSJT-X 2.0 + + + + + Contest log + + + + + Erase WSPR hashtable + + + + + FT4 + + + + + Rig Control Error + + + + + + + Receiving + + + + + Do you want to reconfigure the radio interface? + + + + + Error Scanning ADIF Log + + + + + Scanned ADIF log, %1 worked before records created + + + + + Error Loading LotW Users Data + + + + + Error Writing WAV File + + + + + Configurations... + + + + + + + + + + + + + + + + + + + + Message + + + + + Error Killing jt9.exe Process + + + + + KillByName return code: %1 + + + + + Error removing "%1" + + + + + Click OK to retry + + + + + + Improper mode + + + + + + File Open Error + + + + + + + + + Cannot open "%1" for append: %2 + + + + + Error saving c2 file + + + + + Error in Sound Input + + + + + Error in Sound Output + + + + + + + Single-Period Decodes + + + + + + + Average Decodes + + + + + Change Operator + + + + + New operator: + + + + + Status File Error + + + + + + Cannot open "%1" for writing: %2 + + + + + Subprocess Error + + + + + Subprocess failed with exit code %1 + + + + + + Running: %1 +%2 + + + + + Subprocess error + + + + + Reference spectrum saved + + + + + Invalid data in fmt.all at line %1 + + + + + Good Calibration Solution + + + + + <pre>%1%L2 ±%L3 ppm +%4%L5 ±%L6 Hz + +%7%L8 +%9%L10 Hz</pre> + + + + + Delete Calibration Measurements + + + + + The "fmt.all" file will be renamed as "fmt.bak" + + + + + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: + +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." + + + + + No data read from disk. Wrong file format? + + + + + Confirm Delete + + + + + Are you sure you want to delete all *.wav and *.c2 files in "%1"? + + + + + Keyboard Shortcuts + + + + + Special Mouse Commands + + + + + No more files to open. + + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. + + + + + WSPR Guard Band + + + + + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. + + + + + Fox Mode warning + + + + + Last Tx: %1 + + + + + Should you switch to EU VHF Contest mode? + +To do so, check 'Special operating activity' and +'EU VHF Contest' on the Settings | Advanced tab. + + + + + Should you switch to ARRL Field Day mode? + + + + + Should you switch to RTTY contest mode? + + + + + + + + Add to CALL3.TXT + + + + + Please enter a valid grid locator + + + + + Cannot open "%1" for read/write: %2 + + + + + %1 +is already in CALL3.TXT, do you wish to replace it? + + + + + Warning: DX Call field is empty. + + + + + Log file error + + + + + Cannot open "%1" + + + + + Error sending log to N1MM + + + + + Write returned "%1" + + + + + Stations calling DXpedition %1 + + + + + Hound + + + + + Tx Messages + + + + + + + Confirm Erase + + + + + Are you sure you want to erase file ALL.TXT? + + + + + + Confirm Reset + + + + + Are you sure you want to erase your contest log? + + + + + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. + + + + + Cabrillo Log saved + + + + + Are you sure you want to erase file wsjtx_log.adi? + + + + + Are you sure you want to erase the WSPR hashtable? + + + + + VHF features warning + + + + + Tune digital gain + + + + + Transmit digital gain + + + + + Prefixes + + + + + Network Error + + + + + Error: %1 +UDP server %2:%3 + + + + + File Error + + + + + Phase Training Disabled + + + + + Phase Training Enabled + + + + + WD:%1m + + + + + + Log File Error + + + + + Are you sure you want to clear the QSO queues? + + + + + MessageAveraging + + + + Message Averaging + + + + + UTC Sync DT Freq + + + + + Modes + + + + Mode + + + + + MultiSettings + + + Default + + + + + MultiSettings::impl + + + &Switch To + + + + + &Clone + + + + + Clone &Into ... + + + + + R&eset + + + + + &Rename ... + + + + + &Delete + + + + + Clone Into Configuration + + + + + Confirm overwrite of all values for configuration "%1" with values from "%2"? + + + + + Reset Configuration + + + + + Confirm reset to default values for configuration "%1"? + + + + + Delete Configuration + + + + + Confirm deletion of configuration "%1"? + + + + + NameDialog + + + New Configuration Name + + + + + Old name: + + + + + &New name: + + + + + OmniRigTransceiver + + + OmniRig: unrecognized mode + + + + + Failed to start OmniRig COM server + + + + + + OmniRig: don't know how to set rig frequency + + + + + + OmniRig: timeout waiting for update from rig + + + + + OmniRig COM/OLE error: %1 at %2: %3 (%4) + + + + + PollingTransceiver + + + Unexpected rig error + + + + + QObject + + + Invalid rig name - \ & / not allowed + + + + + User Defined + + + + + Failed to open LotW users CSV file: '%1' + + + + + OOB + + + + + Too many colours in palette. + + + + + Error reading waterfall palette file "%1:%2" too many colors. + + + + + Error reading waterfall palette file "%1:%2" invalid triplet. + + + + + Error reading waterfall palette file "%1:%2" invalid color. + + + + + Error opening waterfall palette file "%1": %2. + + + + + Error writing waterfall palette file "%1": %2. + + + + + RemoteFile + + + + + + + + File System Error + + + + + Cannot rename file: +"%1" +to: "%2" +Error(%3): %4 + + + + + Cannot delete file: +"%1" + + + + + + + Network Error + + + + + Too many redirects: %1 + + + + + Redirect not followed: %1 + + + + + Cannot commit changes to: +"%1" + + + + + Cannot open file: +"%1" +Error(%2): %3 + + + + + Cannot make path: +"%1" + + + + + Cannot write to file: +"%1" +Error(%2): %3 + + + + + SampleDownloader::impl + + + Download Samples + + + + + Input Error + + + + + Invalid URL format + + + + + SoundInput + + + An error opening the audio input device has occurred. + + + + + An error occurred during read from the audio input device. + + + + + Audio data not being fed to the audio input device fast enough. + + + + + Non-recoverable error, audio input device not usable at this time. + + + + + Requested input audio format is not valid. + + + + + Requested input audio format is not supported on device. + + + + + Failed to initialize audio sink device + + + + + Idle + + + + + Receiving + + + + + Suspended + + + + + Interrupted + + + + + Error + + + + + Stopped + + + + + SoundOutput + + + An error opening the audio output device has occurred. + + + + + An error occurred during write to the audio output device. + + + + + Audio data not being fed to the audio output device fast enough. + + + + + Non-recoverable error, audio output device not usable at this time. + + + + + Requested output audio format is not valid. + + + + + Requested output audio format is not supported on device. + + + + + Idle + + + + + Sending + + + + + Suspended + + + + + Interrupted + + + + + Error + + + + + Stopped + + + + + StationDialog + + + Add Station + + + + + &Band: + + + + + &Offset (MHz): + + + + + &Antenna: + + + + + StationList::impl + + + Band name + + + + + Frequency offset + + + + + Antenna description + + + + + Band + + + + + Offset + + + + + Antenna Description + + + + + TransceiverBase + + + Unexpected rig error + + + + + WideGraph + + + Dialog + + + + + Controls + + + + + Spectrum gain + + + + + Palette + + + + + <html><head/><body><p>Enter definition for a new color palette.</p></body></html> + + + + + Adjust... + + + + + Waterfall gain + + + + + <html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html> + + + + + % + + + + + Spec + + + + + <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> + + + + + Flatten + + + + + <html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html> + + + + + Ref Spec + + + + + Smoothing of Linear Average spectrum + + + + + Smooth + + + + + Compression factor for frequency scale + + + + + Bins/Pixel + + + + + Select waterfall palette + + + + + <html><head/><body><p>Select data for spectral display</p></body></html> + + + + + Current + + + + + Cumulative + + + + + Linear Avg + + + + + Reference + + + + + <html><head/><body><p>Frequency at left edge of waterfall</p></body></html> + + + + + Hz + + + + + Start + + + + + <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> + + + + + JT9 + + + + + JT65 + + + + + Number of FFTs averaged (controls waterfall scrolling rate) + + + + + N Avg + + + + + Waterfall zero + + + + + Spectrum zero + + + + + Wide Graph + + + + + + Read Palette + + + + + configuration_dialog + + + Settings + + + + + Genera&l + + + + + General station details and settings. + + + + + Station Details + + + + + My C&all: + + + + + Station callsign. + + + + + M&y Grid: + + + + + <html><head/><body><p>Maidenhead locator, preferably 6 characters.</p></body></html> + + + + + Check to allow grid changes from external programs + + + + + AutoGrid + + + + + IARU Region: + + + + + <html><head/><body><p>Select your IARU region.</p></body></html> + + + + + Message generation for type 2 compound callsign holders: + + + + + <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> + + + + + Full call in Tx1 + + + + + Full call in Tx3 + + + + + Full call in Tx5 only + + + + + Display + + + + + Show outgoing transmitted messages in the Rx frequency window. + + + + + &Tx messages to Rx frequency window + + + + + Show if decoded stations are new DXCC entities or worked before. + + + + + Show &DXCC, grid, and worked-before status + + + + + <html><head/><body><p>Check to have decodes for a new period start at the top of the Band Activity window and not scroll off the top when the window is full.</p><p>This is to aid selecting decodes to double-click while decoding is still in progress. Use the Band Activity vertical scroll bar to reveal decodes past the bottom of the window.</p></body></html> + + + + + Start new period decodes at top + + + + + Show principal prefix instead of country name + + + + + Set the font characteristics for the application. + + + + + Font... + + + + + Set the font characteristics for the Band Activity and Rx Frequency areas. + + + + + Decoded Text Font... + + + + + Include a separator line between periods in the band activity window. + + + + + &Blank line between decoding periods + + + + + Show distance to DX station in miles rather than kilometers. + + + + + Display dista&nce in miles + + + + + Behavior + + + + + Decode after EME delay + + + + + Tx watchdog: + + + + + <html><head/><body><p>Number of minutes before unattended transmissions are aborted</p></body></html> + + + + + Disabled + + + + + minutes + + + + + Enable VHF/UHF/Microwave features + + + + + Single decode + + + + + <html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html> + + + + + Allow Tx frequency changes while transmitting + + + + + Don't start decoding until the monitor button is clicked. + + + + + Mon&itor off at startup + + + + + <html><head/><body><p>Check this if you wish to automatically return to the last monitored frequency when monitor is enabled, leave it unchecked if you wish to have the current rig frequency maintained.</p></body></html> + + + + + Monitor returns to last used frequency + + + + + Alternate F1-F6 bindings + + + + + Turns off automatic transmissions after sending a 73 or any other free +text message. + + + + + Di&sable Tx after sending 73 + + + + + Send a CW ID after every 73 or free text message. + + + + + CW ID a&fter 73 + + + + + Periodic CW ID Inter&val: + + + + + Send a CW ID periodically every few minutes. +This might be required under your countries licence regulations. +It will not interfere with other users as it is always sent in the +quiet period when decoding is done. + + + + + Automatic transmission mode. + + + + + Doubl&e-click on call sets Tx enable + + + + + Calling CQ forces Call 1st + + + + + &Radio + + + + + Radio interface configuration settings. + + + + + Settings that control your CAT interface. + + + + + CAT Control + + + + + + Port: + + + + + Serial port used for CAT control. + + + + + Serial Port Parameters + + + + + Baud Rate: + + + + + Serial port data rate which must match the setting of your radio. + + + + + 1200 + + + + + 2400 + + + + + 4800 + + + + + 9600 + + + + + 19200 + + + + + 38400 + + + + + 57600 + + + + + 115200 + + + + + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> + + + + + Data Bits + + + + + D&efault + + + + + Se&ven + + + + + E&ight + + + + + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> + + + + + Stop Bits + + + + + + Default + + + + + On&e + + + + + T&wo + + + + + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> + + + + + Handshake + + + + + &None + + + + + Software flow control (very rare on CAT interfaces). + + + + + XON/XOFF + + + + + Flow control using the RTS and CTS RS-232 control lines +not often used but some radios have it as an option and +a few, particularly some Kenwood rigs, require it). + + + + + &Hardware + + + + + Special control of CAT port control lines. + + + + + Force Control Lines + + + + + + High + + + + + + Low + + + + + DTR: + + + + + RTS: + + + + + How this program activates the PTT on your radio? + + + + + PTT Method + + + + + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> + + + + + VO&X + + + + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> + + + + + &DTR + + + + + Some radios support PTT via CAT commands, +use this option if your radio supports it and you have no +other hardware interface for PTT. + + + + + C&AT + + + + + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> + + + + + R&TS + + + + + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> + + + + + Modulation mode selected on radio. + + + + + Mode + + + + + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> + + + + + US&B + + + + + Don't allow the program to set the radio mode +(not recommended but use if the wrong mode +or bandwidth is selected). + + + + + + None + + + + + If this is available then it is usually the correct mode for this program. + + + + + Data/P&kt + + + + + Some radios can select the audio input using a CAT command, +this setting allows you to select which audio input will be used +(if it is available then generally the Rear/Data option is best). + + + + + Transmit Audio Source + + + + + Rear&/Data + + + + + &Front/Mic + + + + + Rig: + + + + + Poll Interval: + + + + + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> + + + + + s + + + + + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> + + + + + Test CAT + + + + + Attempt to activate the transmitter. +Click again to deactivate. Normally no power should be +output since there is no audio being generated at this time. +Check that any Tx indication on your radio and/or your +radio interface behave as expected. + + + + + Test PTT + + + + + Split Operation + + + + + Fake It + + + + + Rig + + + + + A&udio + + + + + Audio interface settings + + + + + Souncard + + + + + Soundcard + + + + + Select the audio CODEC to use for transmitting. +If this is your default device for system sounds then +ensure that all system sounds are disabled otherwise +you will broadcast any systems sounds generated during +transmitting periods. + + + + + Select the audio CODEC to use for receiving. + + + + + &Input: + + + + + Select the channel to use for receiving. + + + + + + Mono + + + + + + Left + + + + + + Right + + + + + + Both + + + + + Select the audio channel used for transmission. +Unless you have multiple radios connected on different +channels; then you will usually want to select mono or +both here. + + + + + Ou&tput: + + + + + + Save Directory + + + + + Loc&ation: + + + + + Path to which .WAV files are saved. + + + + + + TextLabel + + + + + Click to select a different save directory for .WAV files. + + + + + S&elect + + + + + + AzEl Directory + + + + + Location: + + + + + Select + + + + + Power Memory By Band + + + + + Remember power settings by band + + + + + Enable power memory during transmit + + + + + Transmit + + + + + Enable power memory during tuning + + + + + Tune + + + + + Tx &Macros + + + + + Canned free text messages setup + + + + + &Add + + + + + &Delete + + + + + Drag and drop items to rearrange order +Right click for item specific actions +Click, SHIFT+Click and, CRTL+Click to select items + + + + + Reportin&g + + + + + Reporting and logging settings + + + + + Logging + + + + + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. + + + + + Promp&t me to log QSO + + + + + Op Call: + + + + + Some logging programs will not accept the type of reports +saved by this program. +Check this option to save the sent and received reports in the +comments field. + + + + + d&B reports to comments + + + + + Check this option to force the clearing of the DX Call +and DX Grid fields when a 73 or free text message is sent. + + + + + Clear &DX call and grid after logging + + + + + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> + + + + + Con&vert mode to RTTY + + + + + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> + + + + + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> + + + + + Log automatically (contesting only) + + + + + Network Services + + + + + The program can send your station details and all +decoded signals as spots to the http://pskreporter.info web site. +This is used for reverse beacon analysis which is very useful +for assessing propagation and system performance. + + + + + Enable &PSK Reporter Spotting + + + + + UDP Server + + + + + UDP Server: + + + + + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> + + + + + UDP Server port number: + + + + + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> + + + + + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> + + + + + Accept UDP requests + + + + + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> + + + + + Notify on accepted UDP request + + + + + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> + + + + + Accepted UDP request restores window + + + + + Secondary UDP Server (deprecated) + + + + + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> + + + + + Enable logged contact ADIF broadcast + + + + + Server name or IP address: + + + + + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> + + + + + Server port number: + + + + + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> + + + + + Frequencies + + + + + Default frequencies and band specific station details setup + + + + + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> + + + + + Frequency Calibration + + + + + Slope: + + + + + ppm + + + + + Intercept: + + + + + Hz + + + + + Working Frequencies + + + + + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> + + + + + Station Information + + + + + Items may be edited. +Right click for insert and delete options. + + + + + Colors + + + + + Decode Highlightling + + + + + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> + + + + + Rescan ADIF Log + + + + + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> + + + + + Reset Highlighting + + + + + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> + + + + + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> + + + + + Highlight by Mode + + + + + Include extra WAE entities + + + + + Check to for grid highlighting to only apply to unworked grid fields + + + + + Only grid Fields sought + + + + + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> + + + + + Logbook of the World User Validation + + + + + Users CSV file URL: + + + + + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> + + + + + https://lotw.arrl.org/lotw-user-activity.csv + + + + + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> + + + + + Fetch Now + + + + + Age of last upload less than: + + + + + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> + + + + + days + + + + + Advanced + + + + + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> + + + + + JT65 VHF/UHF/Microwave decoding parameters + + + + + Random erasure patterns: + + + + + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> + + + + + Aggressive decoding level: + + + + + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> + + + + + Two-pass decoding + + + + + Special operating activity: Generation of FT4, FT8, and MSK144 messages + + + + + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> + + + + + Hound + + + + + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> + + + + + NA VHF Contest + + + + + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> + + + + + Fox + + + + + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> + + + + + EU VHF Contest + + + + + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> + + + + + RTTY Roundup messages + + + + + RTTY RU Exch: + + + + + NJ + + + + + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> + + + + + ARRL Field Day + + + + + FD Exch: + + + + + 6A SNJ + + + + + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> + + + + + WW Digi Contest + + + + + Miscellaneous + + + + + Degrade S/N of .wav file: + + + + + + For offline sensitivity tests + + + + + dB + + + + + Receiver bandwidth: + + + + + Hz + + + + + Tx delay: + + + + + Minimum delay between assertion of PTT and start of Tx audio. + + + + + s + + + + + Tone spacing + + + + + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> + + + + + x 2 + + + + + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> + + + + + x 4 + + + + + Waterfall spectra + + + + + Low sidelobes + + + + + Most sensitive + + + + + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> + + + + + main + + + + Fatal error + + + + + + Unexpected fatal error + + + + + Where <rig-name> is for multi-instance support. + + + + + rig-name + + + + + Where <configuration> is an existing one. + + + + + configuration + + + + + Where <language> is <lang-code>[-<country-code>]. + + + + + language + + + + + Writable files in test location. Use with caution, for testing only. + + + + + Command line error + + + + + Command line help + + + + + Application version + + + + + Another instance may be running + + + + + try to remove stale lock file? + + + + + Failed to create a temporary directory + + + + + + Path: "%1" + + + + + Failed to create a usable temporary directory + + + + + Another application may be locking the directory + + + + + Failed to create data directory + + + + + path: "%1" + + + + + Shared memory error + + + + + Unable to create shared memory segment + + + + + wf_palette_design_dialog + + + Palette Designer + + + + + <html><head/><body><p>Double click a color to edit it.</p><p>Right click to insert or delete colors.</p><p>Colors at the top represent weak signals</p><p>and colors at the bottom represent strong</p><p>signals. You can have up to 256 colors.</p></body></html> + + + + From 68310ec56123d5a57a28fcbf9811eeb1372c3bb5 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 30 May 2020 22:46:50 +0100 Subject: [PATCH 029/520] Updated translation files, thanks to Xavi, EA3W --- translations/wsjtx_ca.ts | 577 ++++++++++++++++++----------- translations/wsjtx_en.ts | 274 +++++++------- translations/wsjtx_en_GB.ts | 384 ++++++++++---------- translations/wsjtx_es.ts | 704 +++++++++++++++++++++++------------- 4 files changed, 1149 insertions(+), 790 deletions(-) diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index 751fc7621..d287939e4 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -758,6 +758,96 @@ Format: DecodeHighlightingModel + + + CQ in message + CQ al missatge + + + + My Call in message + El meu Indicatiu en el missatge + + + + Transmitted message + Missatge transmès + + + + New DXCC + Nou DXCC + + + + New DXCC on Band + Nou DXCC en banda + + + + New Grid + Nou Locator + + + + New Grid on Band + Nou Locator en banda + + + + New Call + No Indicatiu + + + + New Call on Band + Nou Indicatiu en banda + + + + New Continent + Nou Continent + + + + New Continent on Band + Nou Continent en banda + + + + New CQ Zone + Nova Zona CQ + + + + New CQ Zone on Band + Nova Zona CQ en banda + + + + New ITU Zone + Nova Zona ITU + + + + New ITU Zone on Band + Nova Zona ITU en banda + + + + LoTW User + + + + + f/g unset + + + + + b/g unset + + Highlight Type @@ -1360,26 +1450,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region Regió IARU - - + + Mode Mode - - + + Frequency Freqüència - - + + Frequency (MHz) Freqüència en MHz @@ -1474,178 +1564,178 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error Error d'inicialització de Hamlib - + Hamlib settings file error: %1 at character offset %2 Error del fitxer de configuració de Hamlib: %1 en el desplaçament de caràcters %2 - + Hamlib settings file error: top level must be a JSON object Error del fitxer de configuració de Hamlib: el nivell superior ha de ser un objecte JSON - + Hamlib settings file error: config must be a JSON object Error del fitxer de configuració de Hamlib: config ha de ser un objecte JSON - + Unsupported CAT type Tipus CAT no admès - + Hamlib error: %1 while %2 Error de Hamlib: %1 mentre %2 - + opening connection to rig connexió d'obertura a l'equip - + getting current frequency obtenir la freqüència actual - + getting current mode obtenir el mode actual - - + + exchanging VFOs intercanviant VFOs - - + + getting other VFO frequency obtenint una altra freqüència de VFO - + getting other VFO mode obtenint un altre mode VFO - + setting current VFO ajustar el VFO actual - + getting frequency obtenint la freqüència - + getting mode obtenint el mode - - + + getting current VFO obtenir VFO actual - - - - + + + + getting current VFO frequency obtenir la freqüència actual del VFO - - - - - - + + + + + + setting frequency ajust de freqüència - - - - + + + + getting current VFO mode obtenir el mode VFO actual - - - - - + + + + + setting current VFO mode ajust del mode VFO actual - - + + setting/unsetting split mode ajustar/desajustar mode dividid (split) - - + + setting split mode ajustar mode dividid (Split) - + setting split TX frequency and mode ajust de freqüència i mode de transmissió dividida (Split) - + setting split TX frequency ajust de freqüència dividida (Split) en TX - + getting split TX VFO mode obtenir el mode dividit (Split) en TX del VFO - + setting split TX VFO mode ajustar del mode dividid (Split) en TX del VFO - + getting PTT state obtenir l'estat del PTT - + setting PTT on activant el PTT - + setting PTT off desactivant el PTT - + setting a configuration item establir un element de configuració - + getting a configuration item obtenir un element de configuració @@ -1856,6 +1946,12 @@ Error(%2): %3 + + + + + + Band Activity Activitat a la banda @@ -1867,6 +1963,11 @@ Error(%2): %3 + + + + + Rx Frequency Freqüència de RX @@ -1963,7 +2064,7 @@ Error(%2): %3 E&nable Tx - A&ctiva TX + A&ctivar TX @@ -1973,7 +2074,7 @@ Error(%2): %3 &Halt Tx - &Atura TX + &Aturar TX @@ -1983,12 +2084,12 @@ Error(%2): %3 Toggle a pure Tx tone On/Off - Activa/desactiva el to TX pur per a sintonització + Activa/Desactiva el to TX pur per a sintonització &Tune - &Sintonitza + &Sintonitzar @@ -2277,7 +2378,7 @@ en Groc quan és massa baix Tx even/1st - Alternar minut TX Parell/Senar + Alternar període TX Parell/Senar @@ -2328,6 +2429,7 @@ No està disponible per als titulars de indicatiu no estàndard. + Fox Guineu @@ -3181,6 +3283,7 @@ La llista es pot mantenir a la configuració (F2). + Runaway Tx watchdog Vigilant de fugida TX @@ -3455,6 +3558,13 @@ La llista es pot mantenir a la configuració (F2). Rig Control Error Error del control del equip + + + + + Receiving + Rebent + Do you want to reconfigure the radio interface? @@ -3486,122 +3596,156 @@ La llista es pot mantenir a la configuració (F2). Configuracions... - + + + + + + + + + + + + + + + + + Message + + + + Error Killing jt9.exe Process Error en matar el procés jt9.exe - + KillByName return code: %1 Codi de retorn de KillByName: %1 - + Error removing "%1" Error en eliminar "%1" - + Click OK to retry Fes clic a D'acord per tornar-ho a provar - - + + Improper mode Mode inadequat - - + + File Open Error Error al obrir el fitxer - - - - - + + + + + Cannot open "%1" for append: %2 No es pot obrir "%1" per annexar: %2 - + Error saving c2 file Error en desar el fitxer c2 - + Error in Sound Input Error a la entrada de so - + Error in Sound Output Error en la sortida de so - + + + + Single-Period Decodes + + + + + + + Average Decodes + + + + Change Operator Canvi d'Operador - + New operator: Operador Nou: - + Status File Error Error d'estat del fitxer - - + + Cannot open "%1" for writing: %2 No es pot obrir "%1" per escriure: %2 - + Subprocess Error Error de subprocés - + Subprocess failed with exit code %1 Ha fallat el subprocés amb el codi de sortida %1 - - + + Running: %1 %2 Corrent: %1 %2 - + Subprocess error Error de subprocés - + Reference spectrum saved Guarda l'espectre de referència - + Invalid data in fmt.all at line %1 Les dades no són vàlides a fmt.all a la línia %1 - + Good Calibration Solution Solució de bona calibració - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3614,17 +3758,17 @@ La llista es pot mantenir a la configuració (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Suprimeix les mesures de calibració - + The "fmt.all" file will be renamed as "fmt.bak" El fitxer "fmt.all" serà renombrat com a "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3632,57 +3776,62 @@ La llista es pot mantenir a la configuració (F2). "Els algoritmes, codi font, aspecte de WSJT-X i programes relacionats i les especificacions de protocol per als modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 són Copyright (C) 2001-2020 per un o més dels següents autors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q i altres membres del grup de desenvolupament de WSJT. " - + No data read from disk. Wrong file format? No es llegeixen dades del disc. Format de fitxer incorrecte ? - + Confirm Delete Confirma Esborrar - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Estàs segur que vols esborrar tots els fitxers *.wav i *.c2"%1" ? - + Keyboard Shortcuts Dreceres de teclat - + Special Mouse Commands Ordres especials del ratolí - + No more files to open. No s’obriran més fitxers. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Tria una altra freqüència de TX. El WSJT-X no transmetrà de manera conscient un altre mode a la sub-banda WSPR a 30 m. - + WSPR Guard Band Banda de Guàrdia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Tria una altra freqüència de treball. WSJT-X no funcionarà en mode Guineu a les sub-bandes FT8 estàndard. - + Fox Mode warning Avís de mode Guineu - + + Last Tx: %1 + + + + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3693,163 +3842,183 @@ Per fer-ho, comprova "Activitat operativa especial" i Concurs EU VHF a la Configuració | Pestanya avançada. - + Should you switch to ARRL Field Day mode? - Heu de canviar al mode de Field Day de l'ARRL ? + Has de canviar al mode de Field Day de l'ARRL ? - + Should you switch to RTTY contest mode? - Heu de canviar al mode de concurs RTTY? + Has de canviar al mode de concurs RTTY? - - - - + + + + Add to CALL3.TXT Afegeix a CALL3.TXT - + Please enter a valid grid locator Introduïu un locator vàlid - + Cannot open "%1" for read/write: %2 No es pot obrir "%1" per llegir o escriure: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 ja és a CALL3.TXT, vols substituir-lo ? - + Warning: DX Call field is empty. Avís: el camp de indicatiu DX està buit. - + Log file error Error al fitxer de registre - + Cannot open "%1" No es pot obrir "%1" - + Error sending log to N1MM Error al enviar el registre a N1MM - + Write returned "%1" Escriptura retornada "%1" - - - + + Stations calling DXpedition %1 + + + + + Hound + Hound + + + + Tx Messages + + + + + + Confirm Erase Confirma Esborrar - + Are you sure you want to erase file ALL.TXT? Estàs segur que vols esborrar el fitxer ALL.TXT ? - - + + Confirm Reset Confirma que vols Restablir - + Are you sure you want to erase your contest log? Estàs segur que vols esborrar el registre del concurs ? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Si fas això, suprimiràs tots els registres de QSO del concurs actual. Es conservaran al fitxer de registre ADIF, però no es podran exportar al registre de Cabrillo. - + Cabrillo Log saved Registre Cabrillo desat - + Are you sure you want to erase file wsjtx_log.adi? Estàs segur que vols esborrar el fitxer wsjtx_log.adi ? - + Are you sure you want to erase the WSPR hashtable? Estàs segur que vols esborrar la taula del WSPR ? - + VHF features warning Les característiques de VHF tenen un avís - + Tune digital gain Guany de sintonització digital - + Transmit digital gain Guany digital de transmissió - + Prefixes Prefixos - + Network Error Error de xarxa - + Error: %1 UDP server %2:%3 Error: %1 UDP server %2:%3 - + File Error Error al fitxer - + Phase Training Disabled Entrenament de fase Desactivat - + Phase Training Enabled Entrenament de fase activat - - + + WD:%1m + + + + + Log File Error Error al fitxer de registre - + Are you sure you want to clear the QSO queues? Estàs segur que vols esborrar les cues de QSO ? @@ -4007,7 +4176,7 @@ UDP server %2:%3 QObject - + Invalid rig name - \ & / not allowed Nom d'equip no vàlid: \ & / no permès @@ -4383,142 +4552,142 @@ Error(%2): %3 Ajusta ... - + Waterfall gain Guany de la cascada - + <html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html> <html><head/><body><p>Estableix la mida fraccional de l'espectre en aquesta finestra.</p></body></html> - + % % - + Spec Espec - + <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> <html><head/><body><p>Aplica la línia base espectral sobre l'interval complet mostrat.</p></body></html> - + Flatten Aplanar - + <html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html> <html><head/><body><p>Calcula i desa un espectre de referència. (Encara no està completament implementat.)</p></body></html> - + Ref Spec Ref Espec - + Smoothing of Linear Average spectrum Suavització de l'espectre mitjà lineal - + Smooth Llis - + Compression factor for frequency scale Factor de compressió per a l'escala de freqüència - + Bins/Pixel Bins/Pixel - + Select waterfall palette Selecciona la paleta de la cascada - + <html><head/><body><p>Select data for spectral display</p></body></html> <html><head/><body><p>Selecciona les dades per a la visualització espectral</p></body></html> - + Current Actual - + Cumulative Acumulatiu - + Linear Avg Avg Lineal - + Reference Referència - + <html><head/><body><p>Frequency at left edge of waterfall</p></body></html> <html><head/><body><p>Freqüència a la vora esquerra de la cascada</p></body></html> - + Hz Hz - + Start Començar - + <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> <html><head/><body><p>Descodificar JT9 només per sobre d’aquesta freqüència</p></body></html> - + JT9 JT9 - + JT65 JT65 - + Number of FFTs averaged (controls waterfall scrolling rate) Nombre mitjà de FFT's (controla la velocitat de desplaçament de la cascada) - + N Avg Mitjana N - + Waterfall zero Cascada zero - + Spectrum zero Espectre zero @@ -5397,7 +5566,7 @@ els dos canals. Tune - Sintonitza + Sintonitzar @@ -5451,7 +5620,7 @@ Fes clic, MAJÚ + clic i, CTRL+clic per seleccionar els elements. Promp&t me to log QSO - regis&tra el QSO + Regis&tra el QSO @@ -6026,115 +6195,115 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. main - - + + Fatal error Error fatal - - + + Unexpected fatal error Error fatal inesperat - + Where <rig-name> is for multi-instance support. On <rig-name> és per a suport de múltiples instàncies. - + rig-name nom de l'equip - + Where <configuration> is an existing one. On <configuration> és ja existent. - + configuration configuració - + Where <language> is <lang-code>[-<country-code>]. On <language> és <lang-code>[-<country-code>]. - + language Idioma - + Writable files in test location. Use with caution, for testing only. Fitxers amb permis d'escriptura a la ubicació de proves. Utilitzar amb precaució, només per a proves. - + Command line error Error de línia de comandament - + Command line help Ajuda de la línia de comandaments - + Application version Versió d’aplicació - + Another instance may be running Una altra instància pot ser que s'estigui executant - + try to remove stale lock file? intenteu eliminar el fitxer de bloqueig no realitzat? - + Failed to create a temporary directory No s'ha pogut crear el directori temporal - - + + Path: "%1" Ruta: "%1" - + Failed to create a usable temporary directory No s'ha pogut crear un directori temporal utilitzable - + Another application may be locking the directory Una altra aplicació pot ser que bloquegi del directori - + Failed to create data directory No s'ha pogut crear el directori de dades - + path: "%1" Ruta: "%1" - + Shared memory error Error de memòria compartida - + Unable to create shared memory segment No es pot crear el segment de memòria compartida diff --git a/translations/wsjtx_en.ts b/translations/wsjtx_en.ts index d6a00ab33..9b3b396d7 100644 --- a/translations/wsjtx_en.ts +++ b/translations/wsjtx_en.ts @@ -1538,178 +1538,178 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error - + Hamlib settings file error: %1 at character offset %2 - + Hamlib settings file error: top level must be a JSON object - + Hamlib settings file error: config must be a JSON object - + Unsupported CAT type - + Hamlib error: %1 while %2 - + opening connection to rig - + getting current frequency - + getting current mode - - + + exchanging VFOs - - + + getting other VFO frequency - + getting other VFO mode - + setting current VFO - + getting frequency - + getting mode - - + + getting current VFO - - - - + + + + getting current VFO frequency - - - - - - + + + + + + setting frequency - - - - + + + + getting current VFO mode - - - - - + + + + + setting current VFO mode - - + + setting/unsetting split mode - - + + setting split mode - + setting split TX frequency and mode - + setting split TX frequency - + getting split TX VFO mode - + setting split TX VFO mode - + getting PTT state - + setting PTT on - + setting PTT off - + setting a configuration item - + getting a configuration item @@ -2284,7 +2284,7 @@ Yellow when too low - + Fast @@ -3090,415 +3090,415 @@ list. The list can be maintained in Settings (F2). - + Waterfall - + Open - + Ctrl+O - + Open next in directory - + Decode remaining files in directory - + Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir - + None - + Save all - + Online User Guide - + Keyboard shortcuts - + Special mouse commands - + JT9 - + Save decoded - + Normal - + Deep - + Monitor OFF at startup - + Erase ALL.TXT - + Erase wsjtx_log.adi - + Convert mode to RTTY for logging - + Log dB reports to Comments - + Prompt me to log QSO - + Blank line between decoding periods - + Clear DX Call and Grid after logging - + Display distance in miles - + Double-click on call sets Tx Enable - - + + F7 - + Tx disabled after sending 73 - + Runaway Tx watchdog - + Allow multiple instances - + Tx freq locked to Rx freq - + JT65 - + JT9+JT65 - + Tx messages to Rx Frequency window - + Gray1 - + Show DXCC entity and worked B4 status - + Astronomical data - + List of Type 1 prefixes and suffixes - + Settings... - + Local User Guide - + Open log directory - + JT4 - + Message averaging - + Enable averaging - + Enable deep search - + WSPR - + Echo Graph - + F8 - + Echo - + EME Echo mode - + ISCAT - + Fast Graph - + F9 - + &Download Samples ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> - + MSK144 - + QRA64 - + Release Notes - + Enable AP for DX Call - + FreqCal - + Measure reference spectrum - + Measure phase response - + Erase reference spectrum - + Execute frequency calibration cycle - + Equalization tools ... - + WSPR-LF - + Experimental LF/MF mode - + FT8 - - + + Enable AP - + Solve for calibration parameters - + Copyright notice - + Shift+F1 - + Fox log - + FT8 DXpedition Mode User Guide - + Reset Cabrillo log ... - + Color highlighting scheme - + Contest Log - + Export Cabrillo log ... - + Quick-Start Guide to WSJT-X 2.0 - + Contest log - + Erase WSPR hashtable - + FT4 diff --git a/translations/wsjtx_en_GB.ts b/translations/wsjtx_en_GB.ts index ee0352105..2a56b6e65 100644 --- a/translations/wsjtx_en_GB.ts +++ b/translations/wsjtx_en_GB.ts @@ -1538,178 +1538,178 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error - + Hamlib settings file error: %1 at character offset %2 - + Hamlib settings file error: top level must be a JSON object - + Hamlib settings file error: config must be a JSON object - + Unsupported CAT type - + Hamlib error: %1 while %2 - + opening connection to rig - + getting current frequency - + getting current mode - - + + exchanging VFOs - - + + getting other VFO frequency - + getting other VFO mode - + setting current VFO - + getting frequency - + getting mode - - + + getting current VFO - - - - + + + + getting current VFO frequency - - - - - - + + + + + + setting frequency - - - - + + + + getting current VFO mode - - - - - + + + + + setting current VFO mode - - + + setting/unsetting split mode - - + + setting split mode - + setting split TX frequency and mode - + setting split TX frequency - + getting split TX VFO mode - + setting split TX VFO mode - + getting PTT state - + setting PTT on - + setting PTT off - + setting a configuration item - + getting a configuration item @@ -1912,12 +1912,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity @@ -1929,11 +1929,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency @@ -2391,7 +2391,7 @@ Not available to nonstandard callsign holders. - + Fox @@ -3232,7 +3232,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog @@ -3509,8 +3509,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving @@ -3546,21 +3546,21 @@ list. The list can be maintained in Settings (F2). - - - - - + + + + - + - + - + - + - + + Message @@ -3585,115 +3585,115 @@ list. The list can be maintained in Settings (F2). - - + + Improper mode - - + + File Open Error - - - - - + + + + + Cannot open "%1" for append: %2 - + Error saving c2 file - + Error in Sound Input - + Error in Sound Output - - - - - Single-Period Decodes - - + Single-Period Decodes + + + + + + Average Decodes - + Change Operator - + New operator: - + Status File Error - - + + Cannot open "%1" for writing: %2 - + Subprocess Error - + Subprocess failed with exit code %1 - - + + Running: %1 %2 - + Subprocess error - + Reference spectrum saved - + Invalid data in fmt.all at line %1 - + Good Calibration Solution - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3702,79 +3702,79 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements - + The "fmt.all" file will be renamed as "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? - + Confirm Delete - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + Keyboard Shortcuts - + Special Mouse Commands - + No more files to open. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + Last Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3782,181 +3782,181 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - + Stations calling DXpedition %1 - + Hound - + Tx Messages - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + VHF features warning - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - + WD:%1m - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -4114,7 +4114,7 @@ UDP server %2:%3 QObject - + Invalid rig name - \ & / not allowed @@ -6085,115 +6085,115 @@ Right click for insert and delete options. main - - + + Fatal error - - + + Unexpected fatal error - + Where <rig-name> is for multi-instance support. - + rig-name - + Where <configuration> is an existing one. - + configuration - + Where <language> is <lang-code>[-<country-code>]. - + language - + Writable files in test location. Use with caution, for testing only. - + Command line error - + Command line help - + Application version - + Another instance may be running - + try to remove stale lock file? - + Failed to create a temporary directory - - + + Path: "%1" - + Failed to create a usable temporary directory - + Another application may be locking the directory - + Failed to create data directory - + path: "%1" - + Shared memory error - + Unable to create shared memory segment diff --git a/translations/wsjtx_es.ts b/translations/wsjtx_es.ts index b5b03827c..68bcd7ca9 100644 --- a/translations/wsjtx_es.ts +++ b/translations/wsjtx_es.ts @@ -18,8 +18,15 @@ + Are you sure you want to delete the %n selected QSO(s) from the log? + + + + + + Are you sure you want to delete the %n selected QSO(s) from the log - + ¿Seguro de que deseas borrar los %n QSO's seleccionados del registro ? @@ -142,7 +149,7 @@ Go to "Menu->File->Settings->Radio" to enable split operation - Ves a "Menú-> Archivo-> Configuración-> Radio" para habilitar la operación dividida + Ves a "Menú-> Archivo-> Configuración/Ajustes-> Radio" para habilitar la operación dividida @@ -308,7 +315,7 @@ New Grid - Nuevo Locator + Nuevo Locator/Grid @@ -323,7 +330,7 @@ New Grid on Band - Nuevo Locator en banda + Nuevo Locator/Grid en banda @@ -704,7 +711,7 @@ Formato: DX Lab Suite Commander reintenta el comando de envío agotado "%1" - + DX Lab Suite Commander sent an unrecognized frequency DX Lab Suite Commander envió una frecuencia no reconocida @@ -749,6 +756,96 @@ Formato: DecodeHighlightingModel + + + CQ in message + CQ en el mensaje + + + + My Call in message + Mi indicativo en el mensaje + + + + Transmitted message + Mensaje transmitido + + + + New DXCC + Nuevo DXCC + + + + New DXCC on Band + Nuevo DXCC en banda + + + + New Grid + Nuevo Locator/Grid + + + + New Grid on Band + Nuevo Locator/Grid en banda + + + + New Call + Nuevo indicativo + + + + New Call on Band + Nuevo indicativo en banda + + + + New Continent + Nuevo Continente + + + + New Continent on Band + Nuevo Continente en banda + + + + New CQ Zone + Nueva zona CQ + + + + New CQ Zone on Band + Nueva zona CQ en banda + + + + New ITU Zone + Nueva zona ITU + + + + New ITU Zone on Band + Nueva zona ITU en banda + + + + LoTW User + + + + + f/g unset + + + + + b/g unset + + Highlight Type @@ -1051,7 +1148,7 @@ Error: %2 - %3 &Source Configuration Name: - &Nombre de la configuración de la fuente: + &Nombre de la configuración/ajuste de la fuente: @@ -1232,7 +1329,7 @@ Error: %2 - %3 Grid - Locator + Locator/Grid @@ -1255,7 +1352,7 @@ Error: %2 - %3 Fox Log - Registro de Zorro + Registro Fox @@ -1351,26 +1448,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region Región IARU - - + + Mode Modo - - + + Frequency Frecuencia - - + + Frequency (MHz) Frecuencia en MHz @@ -1465,178 +1562,178 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error Error de inicialización de Hamlib - + Hamlib settings file error: %1 at character offset %2 Error de archivo de configuración de Hamlib:%1 en el desplazamiento de caracteres %2 - + Hamlib settings file error: top level must be a JSON object Error de archivo de configuración de Hamlib: el nivel superior debe ser un objeto JSON - + Hamlib settings file error: config must be a JSON object Error de archivo de configuración de Hamlib: config debe ser un objeto JSON - + Unsupported CAT type Tipo CAT no admitido - + Hamlib error: %1 while %2 Error Hamlib: %1 mientras %2 - + opening connection to rig conexión de apertura al equipo - + getting current frequency obteniendo frecuencia actual - + getting current mode obteniendo el modo actual - - + + exchanging VFOs intercambiando VFO's - - + + getting other VFO frequency obteniendo otra frecuencia de VFO - + getting other VFO mode obteniendo otro modo VFO - + setting current VFO ajuste al VFO actual - + getting frequency obteniendo frecuencia - + getting mode obteniendo modo - - + + getting current VFO obteniendo el VFO actual - - - - + + + + getting current VFO frequency obteniendo la frecuencia actual de VFO - - - - - - + + + + + + setting frequency ajuste de frecuencia - - - - + + + + getting current VFO mode obteniendo el modo VFO actual - - - - - + + + + + setting current VFO mode ajuste del modo VFO actual - - + + setting/unsetting split mode activación/desactivación del modo dividido (split) - - + + setting split mode activar modo dividido (split) - + setting split TX frequency and mode Ajuste de frecuencia y modo de transmisión dividida (split) - + setting split TX frequency ajuste de frecuencia dividida en TX - + getting split TX VFO mode obteniendo el modo dividido de TX en el VFO - + setting split TX VFO mode ajuste del modo dividido (split) en TX del VFO - + getting PTT state obteniendo el estado del PTT - + setting PTT on activar el PTT - + setting PTT off desactivar el PTT - + setting a configuration item activar un elemento de configuración - + getting a configuration item obteniendo un elemento de configuración @@ -1719,7 +1816,7 @@ Error: %2 - %3 Grid - Locator + Locator/Grid @@ -1847,8 +1944,14 @@ Error(%2): %3 + + + + + + Band Activity - Activitat en la banda + Actividad en la banda @@ -1858,6 +1961,11 @@ Error(%2): %3 + + + + + Rx Frequency Frecuencia de RX @@ -1939,7 +2047,7 @@ Error(%2): %3 &Decode - &Decodifica + &Decodificar @@ -1954,7 +2062,7 @@ Error(%2): %3 E&nable Tx - A&ctiva TX + A&ctivar TX @@ -1979,12 +2087,12 @@ Error(%2): %3 &Tune - &Sintoniza + &Sintonizar Menus - Menus + Menús @@ -2020,12 +2128,12 @@ Amarillo cuando esta muy bajo. DX Call - Indiativo DX + Indicativo DX DX Grid - Locator DX + Locator/Grid DX @@ -2045,7 +2153,7 @@ Amarillo cuando esta muy bajo. Locator of station to be worked - Locator de la estación a trabajar + Locator/Grid de la estación a trabajar @@ -2055,7 +2163,7 @@ Amarillo cuando esta muy bajo. Add callsign and locator to database - Agregar indicativo y locator a la base de datos + Agregar indicativo y locator/Grid a la base de datos @@ -2120,7 +2228,7 @@ Amarillo cuando esta muy bajo. Hold Tx Freq - Manten TX Freq + Mantén TX Freq @@ -2268,7 +2376,7 @@ Amarillo cuando esta muy bajo. Tx even/1st - Alternar minuto TX Par/Impar + Alternar periodo TX Par/Impar @@ -2319,8 +2427,9 @@ No está disponible para los titulares de indicativo no estándar. + Fox - Zorro + Fox @@ -2648,7 +2757,7 @@ list. The list can be maintained in Settings (F2). Introduce un mensaje de texto libre (máximo 13 caracteres) o selecciona una macro predefinida de la lista desplegable. Presiona ENTRAR para agregar el texto actual al predefinido -de la lista. La lista se puede mantener en Configuración (F2). +de la lista. La lista se puede mantener en Configuración/Ajustes (F2). @@ -2716,7 +2825,7 @@ de la lista. La lista se puede mantener en Configuración (F2). Grid - Locator + Locator/Grid @@ -2937,12 +3046,12 @@ de la lista. La lista se puede mantener en Configuración (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>Los locator de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes.</p></body></html> + <html><head/><body><p>Los Locator/Grid de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes.</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. - Los locator de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes. + Los Locator/Grid de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes. @@ -3002,7 +3111,7 @@ de la lista. La lista se puede mantener en Configuración (F2). Configurations - Configuraciones + Configuraciones/Ajustes @@ -3017,7 +3126,7 @@ de la lista. La lista se puede mantener en Configuración (F2). Configuration - Configuración + Configuración/Ajustes @@ -3147,7 +3256,7 @@ de la lista. La lista se puede mantener en Configuración (F2). Clear DX Call and Grid after logging - Borrar Indicativo DX y Locator DX después de registrar el QSO + Borrar Indicativo DX y Locator/Grid DX después de registrar un QSO @@ -3172,6 +3281,7 @@ de la lista. La lista se puede mantener en Configuración (F2). + Runaway Tx watchdog Vigilante de fuga TX @@ -3223,7 +3333,7 @@ de la lista. La lista se puede mantener en Configuración (F2). Settings... - Configuraciones... + Configuraciones/Ajustes... @@ -3394,7 +3504,7 @@ de la lista. La lista se puede mantener en Configuración (F2). Fox log - Log Zorro + Log Fox @@ -3446,6 +3556,13 @@ de la lista. La lista se puede mantener en Configuración (F2). Rig Control Error Error de control del equipo + + + + + Receiving + Recibiendo + Do you want to reconfigure the radio interface? @@ -3474,125 +3591,159 @@ de la lista. La lista se puede mantener en Configuración (F2). Configurations... - Configuraciones... + Configuraciones/Ajustes... - + + + + + + + + + + + + + + + + + Message + + + + Error Killing jt9.exe Process Error al matar el proceso jt9.exe - + KillByName return code: %1 Código de retorno de KillByName: %1 - + Error removing "%1" Error al eliminar "%1" - + Click OK to retry Haga clic en Aceptar para volver a intentar - - + + Improper mode Modo incorrecto - - + + File Open Error Error de apertura de fichero - - - - - + + + + + Cannot open "%1" for append: %2 No puedo abrir "%1" para anexar: %2 - + Error saving c2 file Error al guardar el fichero c2 - + Error in Sound Input Error en entrada de sonido - + Error in Sound Output Error en la salida de sonido - + + + + Single-Period Decodes + + + + + + + Average Decodes + + + + Change Operator Cambiar operador - + New operator: Operador nuevo: - + Status File Error Error de estado del fichero - - + + Cannot open "%1" for writing: %2 No se puede abrir "%1" para la escritura: %2 - + Subprocess Error Error de subproceso - + Subprocess failed with exit code %1 El subproceso falló con el código de salida %1 - - + + Running: %1 %2 Corriendo: %1 %2 - + Subprocess error Error de subproceso - + Reference spectrum saved Espectro de referencia guardado - + Invalid data in fmt.all at line %1 Datos no válidos en fmt.all en la línea %1 - + Good Calibration Solution Buena solución de calibración - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3605,17 +3756,17 @@ de la lista. La lista se puede mantener en Configuración (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Eliminar mediciones de calibración - + The "fmt.all" file will be renamed as "fmt.bak" El fichero "fmt.all" será renombrado como "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3624,57 +3775,62 @@ de la lista. La lista se puede mantener en Configuración (F2). "Los algoritmos, el código fuente, la apariencia de WSJT-X y los programas relacionados, y las especificaciones del protocolo para los modos FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 son Copyright (C) 2001-2020 por uno o más de los siguientes autores: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q y otros miembros del Grupo de Desarrollo WSJT ". - + No data read from disk. Wrong file format? No se leen datos del disco. Formato de archivo incorrecto? - + Confirm Delete Confirmar eliminación - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? ¿Estas seguro de que deseas eliminar todos los archivos *.wav y *.c2 en "%1"? - + Keyboard Shortcuts Atajo de teclado - + Special Mouse Commands Comandos especiales del ratón - + No more files to open. No hay más ficheros para abrir. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Por favor, elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30m. - + WSPR Guard Band Banda de Guardia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - Elige otra frecuencia de dial. WSJT-X no funcionará en modo Zorro en las sub-bandas FT8 estándar. + Elige otra frecuencia de dial. WSJT-X no funcionará en modo Fox en las sub-bandas FT8 estándar. - + Fox Mode warning - Advertencia del modo Zorro + Advertencia del modo Fox - + + Last Tx: %1 + + + + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3682,166 +3838,186 @@ To do so, check 'Special operating activity' and ¿Cambiar al modo Concurso VHF EU? Para hacerlo, marca 'Actividad operativa especial' y -'Concurso VHF EU' en la Configuración | Lengüeta avanzada. +'Concurso VHF EU' en la Configuración/Ajustes | Lengüeta avanzada. - + Should you switch to ARRL Field Day mode? ¿Cambiar al modo ARRL Field Day? - + Should you switch to RTTY contest mode? ¿Cambiar al modo de concurso RTTY? - - - - + + + + Add to CALL3.TXT Añadir a CALL3.TXT - + Please enter a valid grid locator - Por favor, introduce un locator válido + Por favor, introduce un locator/Grid válido - + Cannot open "%1" for read/write: %2 No se puede abrir "%1" para leer/escribir: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 ya está en CALL3.TXT, ¿deseas reemplazarlo? - + Warning: DX Call field is empty. Advertencia: el campo de Indicativo DX está vacío. - + Log file error Error de archivo de registro - + Cannot open "%1" No puedo abrir "%1" - + Error sending log to N1MM Error al enviar el registro a N1MM - + Write returned "%1" Escritura devuelta "%1" - - - + + Stations calling DXpedition %1 + + + + + Hound + Hound + + + + Tx Messages + + + + + + Confirm Erase Confirmar borrado - + Are you sure you want to erase file ALL.TXT? ¿Estás seguro de que quieres borrar el archivo ALL.TXT? - - + + Confirm Reset Confirmar reinicio - + Are you sure you want to erase your contest log? ¿Estás seguro de que quieres borrar el registro de tú concurso? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Hacer esto eliminará todos los registros de QSO para el concurso actual. Se guardarán en el archivo de registro de ADIF, pero no estarán disponibles para la exportación en su registro de Cabrillo. - + Cabrillo Log saved Cabrillo Log guardado - + Are you sure you want to erase file wsjtx_log.adi? ¿Estás seguro de que quieres borrar el archivo wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? ¿Estás seguro de que quieres borrar la tabla WSPR? - + VHF features warning Advertencia de características VHF - + Tune digital gain Ganancia de sintonización digital - + Transmit digital gain Ganancia de transmisión digital - + Prefixes Prefijos - + Network Error Error de red - + Error: %1 UDP server %2:%3 Error: %1 Servidor UDP %2:%3 - + File Error Error en fichero - + Phase Training Disabled Fase de entrenamiento deshabilitado - + Phase Training Enabled Fase de entrenamiento habilitado - - + + WD:%1m + + + + + Log File Error Error de archivo de registro - + Are you sure you want to clear the QSO queues? ¿Estás seguro de que quieres borrar las colas QSO? @@ -3922,7 +4098,7 @@ Servidor UDP %2:%3 Reset Configuration - Restablecer configuración + Restablecer configuración/ajuste @@ -3932,12 +4108,12 @@ Servidor UDP %2:%3 Delete Configuration - Eliminar configuración + Eliminar configuración/ajuste Confirm deletion of configuration "%1"? - ¿Quieres eliminar de la configuración "%1"? + ¿quieres eliminar la configuración/ajuste "%1"? @@ -3945,7 +4121,7 @@ Servidor UDP %2:%3 New Configuration Name - Nuevo nombre de configuración + Nuevo nombre de configuración/ajuste @@ -3999,7 +4175,7 @@ Servidor UDP %2:%3 QObject - + Invalid rig name - \ & / not allowed Nombre del equipo inválido - \ & / No permitido @@ -4375,142 +4551,142 @@ Error(%2): %3 Ajustar... - + Waterfall gain Ganancia de la cascada - + <html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html> <html><head/><body><p>Establece el tamaño fraccional del espectro en esta ventana.</p></body></html> - + % % - + Spec Espec - + <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> <html><head/><body><p>Acoplar la línea base espectral sobre el intervalo visualizado completo.</p></body></html> - + Flatten Flatten - + <html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html> <html><head/><body><p>Calcula y guarda un espectro de referencia. (Todavía no está completamente implementado).</p></body></html> - + Ref Spec Ref Espec - + Smoothing of Linear Average spectrum Suavizado del espectro promedio lineal - + Smooth Suave - + Compression factor for frequency scale Factor de compresión para escala de frecuencia - + Bins/Pixel Bins/Pixel - + Select waterfall palette Seleccionar paleta de cascada - + <html><head/><body><p>Select data for spectral display</p></body></html> <html><head/><body><p>Seleccionar datos para visualización espectral</p></body></html> - + Current Actual - + Cumulative Acumulativo - + Linear Avg Promedio lineal - + Reference Referencia - + <html><head/><body><p>Frequency at left edge of waterfall</p></body></html> <html><head/><body><p>Frecuencia en el borde izquierdo de la cascada.</p></body></html> - + Hz Hz - + Start Empezar - + <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> <html><head/><body><p>Decodifica JT9 solo por encima de esta frecuencia</p></body></html> - + JT9 JT9 - + JT65 JT65 - + Number of FFTs averaged (controls waterfall scrolling rate) Número promedio de FFT (controla la velocidad de desplazamiento en la cascada) - + N Avg Promedio N - + Waterfall zero Cascada cero - + Spectrum zero Espectro cero @@ -4531,7 +4707,7 @@ Error(%2): %3 Settings - Configuraciones + Configuraciones/Ajustes @@ -4541,7 +4717,7 @@ Error(%2): %3 General station details and settings. - Detalles generales de la estación y configuraciones. + Detalles generales de la estación y configuraciones/ajustes. @@ -4561,22 +4737,22 @@ Error(%2): %3 M&y Grid: - M&i Locator: + M&i Locator/Grid: <html><head/><body><p>Maidenhead locator, preferably 6 characters.</p></body></html> - <html><head/><body><p>Locator tipo Maidenhead, preferiblemente 6 caracteres.</p></body></html> + <html><head/><body><p>Locator/Grid tipo Maidenhead, preferiblemente 6 caracteres.</p></body></html> Check to allow grid changes from external programs - Marca para permitir cambios de Locator de programas externos + Marca para permitir cambios de Locator/Grid de programas externos AutoGrid - Locator automático + Locator/Grid automático @@ -4596,7 +4772,7 @@ Error(%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>Los indicativos compuestos del tipo 2 son aquellos con prefijos o sufijos no incluidos en la lista previa permitida (Consulta Ayuda, Prefijos y sufijos adicionales). </P><p>Esta opción determina qué mensajes generados deben contener tu indicativo de tipo completo 2 en lugar de tu indicativo base. Sólo se aplica si tienes un indicativo compuesto de tipo 2.</P><p>Esta opción controla la forma en que se generan los mensajes que se utilizan para responder a llamadas de CQ. Los mensajes generados 6 (CQ) y 5 (73) siempre contendrán tu indicativo completo. Los protocolos JT65 y JT9 permiten algunos mensajes estándar con tu indicativo completo a costa de otra información, como la llamada DX o el locator.</P> <p>La elección del mensaje 1 omite el indicativo de DX , que puede ser un problema cuando se responde a las llamadas de CQ. La elección del mensaje 3 también omite el indicativo de DX y muchas versiones de este software, puede no extraer el informe. Si escoges ninguno, no significa que sólo tu indicativo completo aparezca al mensaje 5 (73) de manera que el otro operador de QSO puede registrar el indicativo erróneo.</P><p> Ninguna de estas opciones es perfecta, el mensaje 3 suele ser el mejor, pero ten en cuenta que el otro operador de QSO puede no registrar el informe que le envías.</p></body></html> + <html><head/><body><p>Los indicativos compuestos del tipo 2 son aquellos con prefijos o sufijos no incluidos en la lista previa permitida (Consulta Ayuda, Prefijos y sufijos adicionales). </P><p>Esta opción determina qué mensajes generados deben contener tu indicativo de tipo completo 2 en lugar de tu indicativo base. Sólo se aplica si tienes un indicativo compuesto de tipo 2.</P><p>Esta opción controla la forma en que se generan los mensajes que se utilizan para responder a llamadas de CQ. Los mensajes generados 6 (CQ) y 5 (73) siempre contendrán tu indicativo completo. Los protocolos JT65 y JT9 permiten algunos mensajes estándar con tu indicativo completo a costa de otra información, como la llamada DX o el locator/Grid.</P> <p>La elección del mensaje 1 omite el indicativo de DX , que puede ser un problema cuando se responde a las llamadas de CQ. La elección del mensaje 3 también omite el indicativo de DX y muchas versiones de este software, puede no extraer el informe. Si escoges ninguno, no significa que sólo tu indicativo completo aparezca al mensaje 5 (73) de manera que el otro operador de QSO puede registrar el indicativo erróneo.</P><p> Ninguna de estas opciones es perfecta, el mensaje 3 suele ser el mejor, pero ten en cuenta que el otro operador de QSO puede no registrar el informe que le envías.</p></body></html> @@ -4636,7 +4812,7 @@ Error(%2): %3 Show &DXCC, grid, and worked-before status - Mostrar &DXCC, Locator y si se ha trabajado antes + Mostrar &DXCC, Locator/Grid y si se ha trabajado antes @@ -4865,7 +5041,7 @@ período tranquilo cuando se realiza la decodificación. Serial port data rate which must match the setting of your radio. - Velocidad de datos del puerto serie que debe coincidir con la configuración de tú equipo. + Velocidad de datos del puerto serie que debe coincidir con la configuración/ajuste de tú equipo. @@ -5031,9 +5207,13 @@ unos pocos, particularmente algunos equipos de Kenwood, lo requieren.RTS: - How this program activates the PTT on your radio - ¿ Cómo este programa activa el PTT en tú equipo ? + ¿ Cómo este programa activa el PTT en tú equipo ? + + + + How this program activates the PTT on your radio? + @@ -5102,7 +5282,7 @@ otra interfaz de hardware para PTT. <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> - <html><head/><body><p>USB suele ser el modo de modulación correcto,</p><p>a menos que la radio tenga una configuración especial de datos o modo de paquete</p><p>para operación AFSK.</p></body></html> + <html><head/><body><p>USB suele ser el modo de modulación correcto,</p><p>a menos que la radio tenga una configuración/ajuste especial de datos o modo de paquete</p><p>para operación AFSK.</p></body></html> @@ -5140,7 +5320,7 @@ o se selecciona el ancho de banda). this setting allows you to select which audio input will be used (if it is available then generally the Rear/Data option is best). Algunos equipos pueden seleccionar la entrada de audio usando un comando CAT, -esta configuración te permite seleccionar qué entrada de audio se usará +esta configuración/ajuste te permite seleccionar qué entrada de audio se usará (si está disponible, generalmente la opción Posterior/Datos es la mejor). @@ -5385,7 +5565,7 @@ ambos canales. Tune - Sintonia + Sintonizar @@ -5424,7 +5604,7 @@ Click, SHIFT+Click y, CTRL+Click para seleccionar elementos. Reporting and logging settings - Configuración de informes y registros + Configuración/ajuste de informes y registros @@ -5439,7 +5619,7 @@ Click, SHIFT+Click y, CTRL+Click para seleccionar elementos. Promp&t me to log QSO - regis&tra el QSO + Regis&tra el QSO @@ -5467,12 +5647,12 @@ el campo de comentarios. Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. Marca esta opción para forzar la eliminación de los campos -Llamada DX y Locator DX cuando se envía un mensaje de texto 73 o libre. +Llamada DX y Locator/Grid DX cuando se envía un mensaje de texto 73 o libre. Clear &DX call and grid after logging - Borrar la Llamada &DX y Locator después del registro + Borrar la Llamada &DX y Locator/Grid después del registro @@ -5730,7 +5910,7 @@ Haz clic derecho para insertar y eliminar opciones. Only grid Fields sought - Solo campos de Locator buscados + Solo campos de Locator/Grid buscados @@ -5850,12 +6030,12 @@ Haz clic derecho para insertar y eliminar opciones. <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> - <html><head/><body><p>Modo FT8 DXpedition: operador Zorro (DXpedition).</p></body></html> + <html><head/><body><p>Modo FT8 DXpedition: operador FOX (DXpedition).</p></body></html> Fox - Zorro + Fox @@ -5876,7 +6056,7 @@ Haz clic derecho para insertar y eliminar opciones. RTTY Roundup messages - Mensajes de resumen de ARTTY + Mensajes de resumen de RTTY @@ -5902,7 +6082,7 @@ Haz clic derecho para insertar y eliminar opciones. FD Exch: - Intercanvio FD: + Intercambio FD: @@ -6008,111 +6188,121 @@ Haz clic derecho para insertar y eliminar opciones. <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> - <html><head/><body><p>Descartar (Cancelar) o aplicar (OK) cambios de configuración que incluyen</p><p>restablecer la interfaz de radio y aplicar cualquier cambio en la tarjeta de sonido</p></body></html> + <html><head/><body><p>Descartar (Cancelar) o aplicar (OK) cambios de configuración/ajuste que incluyen</p><p>restablecer la interfaz de radio y aplicar cualquier cambio en la tarjeta de sonido</p></body></html> main - - + + Fatal error Error fatal - - + + Unexpected fatal error Error fatal inesperado - + Where <rig-name> is for multi-instance support. Dónde <rig-name> es para soporte de múltiples instancias. - + rig-name Nombre del equipo - + Where <configuration> is an existing one. Dónde <configuration> es ya existente. - + configuration - Configuración + Configuración/Ajustes - + + Where <language> is <lang-code>[-<country-code>]. + + + + + language + + + + Writable files in test location. Use with caution, for testing only. Archivos grabables en la ubicación de prueba. Usa con precaución, solo para pruebas. - + Command line error Error de línea de comando - + Command line help Ayuda de la línea de comandos - + Application version Versión de la aplicación - + Another instance may be running Otra instancia puede estar ejecutándose - + try to remove stale lock file? ¿intentas eliminar el archivo de bloqueo obsoleto? - + Failed to create a temporary directory Error al crear un directorio temporal - - + + Path: "%1" Ruta: "%1" - + Failed to create a usable temporary directory Error al crear un directorio temporal utilizable - + Another application may be locking the directory Otra aplicación puede estar bloqueando el directorio - + Failed to create data directory Error al crear el directorio de datos - + path: "%1" ruta: "%1" - + Shared memory error Error de memoria compartida - + Unable to create shared memory segment No se puede crear un segmento de memoria compartida From a611601eb6b735ec933122ffd7be8457b3ba2734 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 31 May 2020 13:35:48 +0100 Subject: [PATCH 030/520] Updated Catalan and Spanish UI translations, tnx Xavi, EA3W --- translations/wsjtx_ca.ts | 56 ++++++++++++++++----------------- translations/wsjtx_es.ts | 68 ++++++++++++++++++++-------------------- 2 files changed, 62 insertions(+), 62 deletions(-) diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index d287939e4..08da21769 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -761,92 +761,92 @@ Format: CQ in message - CQ al missatge + CQ al missatge My Call in message - El meu Indicatiu en el missatge + El meu Indicatiu en el missatge Transmitted message - Missatge transmès + Missatge transmès New DXCC - Nou DXCC + Nou DXCC New DXCC on Band - Nou DXCC en banda + Nou DXCC en banda New Grid - Nou Locator + Nou Locator New Grid on Band - Nou Locator en banda + Nou Locator en banda New Call - No Indicatiu + No Indicatiu New Call on Band - Nou Indicatiu en banda + Nou Indicatiu en banda New Continent - Nou Continent + Nou Continent New Continent on Band - Nou Continent en banda + Nou Continent en banda New CQ Zone - Nova Zona CQ + Nova Zona CQ New CQ Zone on Band - Nova Zona CQ en banda + Nova Zona CQ en banda New ITU Zone - Nova Zona ITU + Nova Zona ITU New ITU Zone on Band - Nova Zona ITU en banda + Nova Zona ITU en banda LoTW User - + Usuari LoTW f/g unset - + f/g desestablert b/g unset - + b/g desestablert @@ -3563,7 +3563,7 @@ La llista es pot mantenir a la configuració (F2). Receiving - Rebent + Rebent @@ -3613,7 +3613,7 @@ La llista es pot mantenir a la configuració (F2). Message - + Missatge @@ -3676,14 +3676,14 @@ La llista es pot mantenir a la configuració (F2). Single-Period Decodes - + Descodificacions d'un sol període Average Decodes - + Mitjans descodificats @@ -3828,7 +3828,7 @@ La llista es pot mantenir a la configuració (F2). Last Tx: %1 - + Últim TX: %1 @@ -3904,17 +3904,17 @@ ja és a CALL3.TXT, vols substituir-lo ? Stations calling DXpedition %1 - + Estacions que criden a DXpedition %1 Hound - Hound + Hound Tx Messages - + Missatges de TX @@ -3967,7 +3967,7 @@ ja és a CALL3.TXT, vols substituir-lo ? Tune digital gain - Guany de sintonització digital + Guany de sintonització digital @@ -4009,7 +4009,7 @@ UDP server %2:%3 WD:%1m - + WD:%1m diff --git a/translations/wsjtx_es.ts b/translations/wsjtx_es.ts index 68bcd7ca9..a1cac784c 100644 --- a/translations/wsjtx_es.ts +++ b/translations/wsjtx_es.ts @@ -19,8 +19,8 @@ Are you sure you want to delete the %n selected QSO(s) from the log? - - + + ¿Estás seguro de que deseas eliminar los %n QSO's seleccionados en el registro? @@ -759,92 +759,92 @@ Formato: CQ in message - CQ en el mensaje + CQ en el mensaje My Call in message - Mi indicativo en el mensaje + Mi indicativo en el mensaje Transmitted message - Mensaje transmitido + Mensaje transmitido New DXCC - Nuevo DXCC + Nuevo DXCC New DXCC on Band - Nuevo DXCC en banda + Nuevo DXCC en banda New Grid - Nuevo Locator/Grid + Nuevo Locator/Grid New Grid on Band - Nuevo Locator/Grid en banda + Nuevo Locator/Grid en banda New Call - Nuevo indicativo + Nuevo indicativo New Call on Band - Nuevo indicativo en banda + Nuevo indicativo en banda New Continent - Nuevo Continente + Nuevo Continente New Continent on Band - Nuevo Continente en banda + Nuevo Continente en banda New CQ Zone - Nueva zona CQ + Nueva zona CQ New CQ Zone on Band - Nueva zona CQ en banda + Nueva zona CQ en banda New ITU Zone - Nueva zona ITU + Nueva zona ITU New ITU Zone on Band - Nueva zona ITU en banda + Nueva zona ITU en banda LoTW User - + Usuario LoTW f/g unset - + f/g desarmado b/g unset - + b/g desarmado @@ -2396,13 +2396,13 @@ Amarillo cuando esta muy bajo. <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> - <html><head/><body><p>Marca esto para llamar a CQ a la frecuencia&quot;TX CQ&quot;. RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder.</p><p>No está disponible para los titulares de indicativo no estándar.</p></body></html> + <html><head/><body><p>Marca esto para llamar a CQ en la frecuencia&quot;TX CQ&quot;. RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder.</p><p>No está disponible para los titulares de indicativo no estándar.</p></body></html> Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. - Marca esto para llamar a CQ a la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder. + Marca esto para llamar a CQ en la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder. No está disponible para los titulares de indicativo no estándar. @@ -3561,7 +3561,7 @@ de la lista. La lista se puede mantener en Configuración/Ajustes (F2). Receiving - Recibiendo + Recibiendo @@ -3611,7 +3611,7 @@ de la lista. La lista se puede mantener en Configuración/Ajustes (F2). Message - + Mensaje @@ -3674,14 +3674,14 @@ de la lista. La lista se puede mantener en Configuración/Ajustes (F2). Single-Period Decodes - + Decodificaciones de un solo período Average Decodes - + Promedio de decodificaciones @@ -3827,7 +3827,7 @@ de la lista. La lista se puede mantener en Configuración/Ajustes (F2). Last Tx: %1 - + Última TX: %1 @@ -3903,17 +3903,17 @@ ya está en CALL3.TXT, ¿deseas reemplazarlo? Stations calling DXpedition %1 - + Estaciones que llaman a DXpedition %1 Hound - Hound + Hound Tx Messages - + Mensajes de TX @@ -4008,7 +4008,7 @@ Servidor UDP %2:%3 WD:%1m - + WD:%1m @@ -5213,7 +5213,7 @@ unos pocos, particularmente algunos equipos de Kenwood, lo requieren. How this program activates the PTT on your radio? - + ¿Cómo este programa activa el PTT en tú equipo? @@ -6228,12 +6228,12 @@ Haz clic derecho para insertar y eliminar opciones. Where <language> is <lang-code>[-<country-code>]. - + Dónde <language> es <lang-code>[-<country-code>]. language - + Idioma From 4f0c125dbe5cc74745b91733b189f54cec7d67cb Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 31 May 2020 13:38:38 +0100 Subject: [PATCH 031/520] Japanese UI translation, thanks to Oba san, JA7UDE --- CMakeLists.txt | 1 + translations/wsjtx_ja.ts | 6302 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 6303 insertions(+) create mode 100644 translations/wsjtx_ja.ts diff --git a/CMakeLists.txt b/CMakeLists.txt index 366895e04..b9c0e1d95 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1103,6 +1103,7 @@ set (LANGUAGES en_GB # English UK es # Spanish ca # Catalan + ja # Japanese ) foreach (lang_ ${LANGUAGES}) file (TO_NATIVE_PATH translations/wsjtx_${lang_}.ts ts_) diff --git a/translations/wsjtx_ja.ts b/translations/wsjtx_ja.ts new file mode 100644 index 000000000..5453cfe72 --- /dev/null +++ b/translations/wsjtx_ja.ts @@ -0,0 +1,6302 @@ + + + + + AbstractLogWindow + + + &Delete ... + 削除(&D)... + + + + AbstractLogWindow::impl + + + Confirm Delete + 削除確認 + + + + Are you sure you want to delete the %n selected QSO(s) from the log? + + 選択した%n個のQSOをログから削除していいですか? + + + + + Astro + + + + Doppler tracking + ドップラー追跡 + + + + <html><head/><body><p>One station does all Doppler shift correction, their QSO partner receives and transmits on the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + <html><head/><body><p>片方の局がドップラーシフトを修正します.相手局はスケジュール通りの周波数で送受信します.</p><p>もし無線機が送信中にCAT QSYコマンドを受け付けない場合、1回の送信では一度だけ周波数調整が行われます.</p></body></html> + + + + Full Doppler to DX Grid + DXのグリッドに対するフルドップラー効果 + + + + <html><head/><body><p>Transmit takes place on sked frequency and receive frequency is corrected for own echoes. </p><p>This mode can be used for calling CQ, or when using Echo mode.</p></body></html> + <html><head/><body><p>送信はスケジュールされた周波数で行われ、受信周波数は自分のエコーを使って調整されます. </p><p>このモードはCQを出すとき、またはエコーモードで使うことができます.</p></body></html> + + + + Own Echo + 自分のエコー + + + + <html><head/><body><p>Both stations correct for Doppler shift such that they would be heard on the moon at the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p><p>Use this option also for Echo mode.</p></body></html> + <html><head/><body><p>双方の局とも、ちょうど月面上でスケジュール周波数にて交信するかのようなドップラー周波数調整が行われます.</p><p>もし送信中に無線機がCAT QSYコマンドを受け付けない場合は、一回の送信につき一度の周波数調整が行われます.</p><p>このオプションはエコーモードのときにも使ってください.</p></body></html> + + + + Constant frequency on Moon + 月面で周波数を一定 + + + + <html><head/><body><p>DX station announces their TX Freq, which is entered as the Sked Freq. Correction applied to RX and TX so you appear on the DX's station's own echo Freq.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + <html><head/><body><p>DX局はスケジュール周波数として送信周波数をアナウンスします. あなたの信号がDX局の自分のエコー周波数に現れるように調整されます.</p><p>もし、無線機が送信中にCAT QSYコマンドを受け付けない場合、一回の送信には一度だけ周波数調整が行われます.</p></body></html> + + + + On DX Echo + DXのエコー + + + + <html><head/><body><p>Tune radio manually and select this mode to put your echo on the same frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + <html><head/><body><p>手動で送信機を調整し、同じ周波数にエコーが来るようこのモードを選びます.</p><p>もし無線機が送信中にCAT QSYコマンドを受け付けない場合、周波数調整は一回の送信当たり、一度だけ行われます.</p></body></html> + + + + Call DX + DXを呼ぶ + + + + <html><head/><body><p>No Doppler shift correction is applied. This may be used when the QSO partner does full Doppler correction to your grid square.</p></body></html> + <html><head/><body><p>ドップラーシフト修正なし. 相手があなたのグリッドロケーターに合わせてくれる場合に使用.</p></body></html> + + + + None + なし + + + + Sked frequency + スケジュール周波数 + + + + + 0 + + + + + Rx: + Rx: + + + + Tx: + Tx: + + + + <html><head/><body><p>Press and hold the CTRL key to adjust the sked frequency manually with the rig's VFO dial or enter frequency directly into the band entry field on the main window.</p></body></html> + <html><head/><body><p>CTRLキーを押したまま無線機のVFOダイアルを回してスケジュール周波数を調整するか、あるいは主画面のバンド入力フィールドに直接周波数をセットします.</p></body></html> + + + + Astro Data + 天文データ + + + + Astronomical Data + 天文データ + + + + Doppler Tracking Error + ドップラー追跡エラー + + + + Split operating is required for Doppler tracking + ドップラー追跡にはスプリットオペレーションが必要です + + + + Go to "Menu->File->Settings->Radio" to enable split operation + "メニュー->ファイル->設定->トランシーバー"と進んでスプリットをオンにします + + + + Bands + + + Band name + バンド名 + + + + Lower frequency limit + 下限周波数 + + + + Upper frequency limit + 上限周波数 + + + + Band + バンド + + + + Lower Limit + 下限 + + + + Upper Limit + 上限 + + + + CAboutDlg + + + About WSJT-X + WSJT-Xについて + + + + OK + OK + + + + CPlotter + + + &Set Rx && Tx Offset + 送受信オフセットを設定(&S) + + + + CabrilloLog + + + Freq(MHz) + 周波数(MHz) + + + + Mode + モード + + + + Date & Time(UTC) + 月日と時刻(UTC) + + + + Call + コール + + + + Sent + 送信 + + + + Rcvd + 受信 + + + + Band + バンド + + + + CabrilloLogWindow + + + Contest Log + コンテストログ + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + <html><head/><body><p>ここを右クリックし次の操作を選択<html><head/><body><p> + + + + Right-click here for available actions. + ここを右クリックし次の操作を選択. + + + + CallsignDialog + + + Callsign + コールサイン + + + + ColorHighlighting + + + + + + + + + + + + + + + + + + K1ABC + K1ABC + + + + CQ in message + CQを含むメッセージ + + + + My Call in message + 自局コールサインを含むメッセージ + + + + Transmitted message + 送信メッセージ + + + + New DXCC + 新DXCC + + + + New Grid + 新グリッド + + + + New DXCC on Band + バンドの新DXCC + + + + New Call + 新コールサイン + + + + New Grid on Band + バンドの新グリッド + + + + New Call on Band + バンドの新コールサイン + + + + Uploads to LotW + LotWへアップロード + + + + New Continent + 新しい大陸 + + + + New Continent on Band + バンドの新しい大陸 + + + + New CQ Zone + 新CQゾーン + + + + New CQ Zone on Band + バンドの新CQゾーン + + + + New ITU Zone + 新ITUゾーン + + + + New ITU Zone on Band + バンドで新ITUゾーン + + + + Configuration::impl + + + + + &Delete + 削除(&D) + + + + + &Insert ... + 挿入(&I)... + + + + Failed to create save directory + 保存のためのフォルダを作成できません + + + + path: "%1% + パス: "%1% + + + + Failed to create samples directory + サンプルフォルダを作成できません + + + + path: "%1" + パス: "%1" + + + + &Load ... + 読み込み(&L)... + + + + &Save as ... + 名前を付けて保存(&S)... + + + + &Merge ... + 結合(&M)... + + + + &Reset + リセット(&R) + + + + Serial Port: + シリアルポート: + + + + Serial port used for CAT control + CAT制御用シリアルポート + + + + Network Server: + ネットワークサーバ: + + + + Optional hostname and port of network service. +Leave blank for a sensible default on this machine. +Formats: + hostname:port + IPv4-address:port + [IPv6-address]:port + ネットワークサービスのホスト名とポート番号(オプション). +このPC上の設定をそのまま使うときは空白のままにする. +フォーマット: + ホスト名:ポート番号 + IPv4-アドレス:ポート番号 + [IPv6-アドレス]:ポート番号 + + + + USB Device: + USBデバイス: + + + + Optional device identification. +Leave blank for a sensible default for the rig. +Format: + [VID[:PID[:VENDOR[:PRODUCT]]]] + 無線機のUSB-ID(オプション). +無線機のデフォルトを使う場合は空白にする. +フォーマット: + [VID[:PID[:VENDOR[:PRODUCT]]]] + + + + Invalid audio input device + 無効なオーディオ入力デバイス + + + + Invalid audio out device + 無効なオーディオ出力デバイス + + + + Invalid PTT method + 無効なPTT方式 + + + + Invalid PTT port + 無効なPTT用ポート + + + + + Invalid Contest Exchange + 無効なコンテストナンバー + + + + You must input a valid ARRL Field Day exchange + 正しいARRLフィールドデーコンテストナンバーを入力しなければなりません + + + + You must input a valid ARRL RTTY Roundup exchange + 正しいARRL RTTY ラウンドアップのコンテストナンバーを入力しなければなりません + + + + Reset Decode Highlighting + デコードハイライトをリセット + + + + Reset all decode highlighting and priorities to default values + すべてのハイライトと優先順位設定をデフォルトへ戻す + + + + WSJT-X Decoded Text Font Chooser + WSJT-Xのデコード出力用フォント選択 + + + + Load Working Frequencies + 使用周波数を読み込み + + + + + + Frequency files (*.qrg);;All files (*.*) + 周波数ファイル (*.qrg);;全ファイル (*.*) + + + + Replace Working Frequencies + 使用周波数を置き換え + + + + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? + 本当に現在の周波数を読み込んだ周波数で置き換えてもいいですか? + + + + Merge Working Frequencies + 使用周波数を追加併合 + + + + + + Not a valid frequencies file + 正しい周波数ファイルではない + + + + Incorrect file magic + 無効なファイルマジック + + + + Version is too new + バージョンが新しすぎます + + + + Contents corrupt + 中身が壊れています + + + + Save Working Frequencies + 使用周波数を保存 + + + + Only Save Selected Working Frequencies + 選択した使用周波数のみ保存 + + + + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. + 選択した使用周波数だけを保存してもいいですか。全部を保存したいときはNoをクリックしてください。 + + + + Reset Working Frequencies + 使用周波数をリセット + + + + Are you sure you want to discard your current working frequencies and replace them with default ones? + 本当に現在の使用周波数を破棄してデフォルト周波数と置き換えてもよいですか? + + + + Save Directory + フォルダーを保存 + + + + AzEl Directory + AzElフォルダー + + + + Rig control error + 無線機コントロールエラー + + + + Failed to open connection to rig + 無線機へ接続できません + + + + Rig failure + 無線機エラー + + + + DXLabSuiteCommanderTransceiver + + + Failed to connect to DX Lab Suite Commander + + DX Lab Suite Commanderへ接続できません + + + + + DX Lab Suite Commander didn't respond correctly reading frequency: + DX Lab Suite Commanderが周波数を読めません: + + + + DX Lab Suite Commander sent an unrecognised TX state: + DX Lab Suite Commanderが認識できない送信状態を送ってきました: + + + + DX Lab Suite Commander didn't respond correctly polling TX status: + DX Lab Suite Commanderが送信状態を正しく返送してきません: + + + + DX Lab Suite Commander rig did not respond to PTT: + DX Lab Suite CommanderがPTTに応答しません: + + + + DX Lab Suite Commander didn't respond correctly polling frequency: + DX Lab Suite Commanderから周波数取得できません: + + + + DX Lab Suite Commander didn't respond correctly polling TX frequency: + DX Lab Suite Commanderから正しく送信周波数を取得できません: + + + + DX Lab Suite Commander sent an unrecognised split state: + DX Lab Suite Commanderが認識できないスプリット状態を送ってきました: + + + + DX Lab Suite Commander didn't respond correctly polling split status: + DX Lab Suite Commanderがスプリット状態を正しく返答してきません: + + + + DX Lab Suite Commander sent an unrecognised mode: " + DX Lab Suite Commanderが認識できないモードを送ってきました: " + + + + DX Lab Suite Commander didn't respond correctly polling mode: + DX Lab Suite Commanderが正しいモード情報を送ってきません: + + + + DX Lab Suite Commander send command failed + + DX Lab Suite Commanderがコマンドを送れませんでした + + + + + DX Lab Suite Commander failed to send command "%1": %2 + + DX Lab Suite Commanderが "%1": %2コマンドを送れませんでした + + + + + DX Lab Suite Commander send command "%1" read reply failed: %2 + + DX Lab Suite Commanderがコマンド"%1"を送りましたが、応答がありません: %2 + + + + + DX Lab Suite Commander retries exhausted sending command "%1" + DX Lab Suite Commander がコマンド"%1"を限度回数まで送りました + + + + DX Lab Suite Commander sent an unrecognized frequency + DX Lab Suite Commanderが認識できない周波数を送りました + + + + DecodeHighlightingListView + + + &Foreground color ... + 文字色(&F) ... + + + + Choose %1 Foreground Color + 文字色 %1 を選択 + + + + &Unset foreground color + 文字色指定を解除(&U) + + + + &Background color ... + 背景色(&B) ... + + + + Choose %1 Background Color + 背景色 %1 を選択 + + + + U&nset background color + 背景色の指定を解除(&n) + + + + &Reset this item to defaults + このアイテムをデフォルトへ戻す(&R) + + + + DecodeHighlightingModel + + + CQ in message + CQを含むメッセージ + + + + My Call in message + 自局コールを含むメッセージ + + + + Transmitted message + 送信メッセージ + + + + New DXCC + 新DXCC + + + + New DXCC on Band + バンドの新DXCC + + + + New Grid + 新グリッドロケーター + + + + New Grid on Band + バンドの新グリッドロケーター + + + + New Call + 新コールサイン + + + + New Call on Band + バンドの新コールサイン + + + + New Continent + 新大陸 + + + + New Continent on Band + バンドの新大陸 + + + + New CQ Zone + 新CQゾーン + + + + New CQ Zone on Band + バンドの新CQゾーン + + + + New ITU Zone + 新ITUゾーン + + + + New ITU Zone on Band + バンドの新ITUゾーン + + + + LoTW User + LoTWユーザー + + + + f/g unset + 文字色指定なし + + + + b/g unset + 背景色指定なし + + + + Highlight Type + ハイライトタイプ + + + + Designer + + + &Delete + 削除(&D) + + + + &Insert ... + 挿入(&I) ... + + + + Insert &after ... + 後ろに挿入(&a) ... + + + + Import Palette + パレットインポート + + + + + Palettes (*.pal) + パレット(*.pal) + + + + Export Palette + パレットエクスポート + + + + Dialog + + + Gray time: + グレータイム: + + + + Directory + + + + URL Error + URLエラー + + + + + Invalid URL: +"%1" + 無効なURL +"%1" + + + + + + + + + + JSON Error + JSONエラー + + + + Contents file syntax error %1 at character offset %2 + ファイルの中、文字オフセット%2でシンタックスエラー%1 + + + + Contents file top level must be a JSON array + ファイルのトップレベルはJSONアレーでなければいけません + + + + File System Error + ファイルシステムエラー + + + + Failed to open "%1" +Error: %2 - %3 + "%1"が開けません +エラー: %2 - %3 + + + + Contents entries must be a JSON array + JSONアレーでなければいけません + + + + Contents entries must have a valid type + 有効なタイプでなければいけません + + + + Contents entries must have a valid name + 有効な名前を持っていなければいけません + + + + Contents entries must be JSON objects + JSONオブジェクトでなければいけません + + + + Contents directories must be relative and within "%1" + ディレクトリーは相対指定で"%1"の中でなければいけません + + + + Network Error + ネットワークエラー + + + + Authentication required + 認証が必要です + + + + DisplayText + + + &Erase + 消去(&E) + + + + EchoGraph + + + + Echo Graph + エコーグラフ + + + + <html><head/><body><p>Compression factor for frequency scale</p></body></html> + <html><head/><body><p>周波数スケールの圧縮率</p></body></html> + + + + Bins/Pixel + Bin数/ピクセル + + + + Gain + ゲイン + + + + <html><head/><body><p>Echo spectrum gain</p></body></html> + <html><head/><body><p>エコースペクトラムゲイン</p></body></html> + + + + Zero + ゼロ + + + + <html><head/><body><p>Echo spectrum zero</p></body></html> + <html><head/><body><p>エコースペクトラムゼロ</p></body></html> + + + + <html><head/><body><p>Smoothing of echo spectrum</p></body></html> + <html><head/><body><p>エコースペクトラムの平滑化</p></body></html> + + + + Smooth + 平滑化 + + + + <html><head/><body><p>Number of echo transmissions averaged</p></body></html> + <html><head/><body><p>平均をとるエコー送信の数</p></body></html> + + + + N: 0 + N: 0 + + + + <html><head/><body><p>Click to cycle through a sequence of colors and line widths.</p></body></html> + <html><head/><body><p>クリックして色と行幅を繰り返す.</p></body></html> + + + + Colors + + + + + EmulateSplitTransceiver + + + Emulated split mode requires rig to be in simplex mode + スプリットモードエミュレーションを使う場合、無線機をシンプレックスモードにします + + + + EqualizationToolsDialog::impl + + + Phase + 位相 + + + + + Freq (Hz) + 周波数(Hz) + + + + Phase (Î ) + 位相 (Î ) + + + + Delay (ms) + 遅延(ms) + + + + Measured + 測定値 + + + + Proposed + 推奨値 + + + + Current + 標準 + + + + Group Delay + 群遅延 + + + + Amplitude + 振幅 + + + + Relative Power (dB) + 相対電力(dB) + + + + Reference + 参考値 + + + + Phase ... + 位相 ... + + + + Refresh + 再描画 + + + + Discard Measured + 測定値破棄 + + + + ExistingNameDialog + + + Configuration to Clone From + コンフィグレーションの複製 + + + + &Source Configuration Name: + 元のコンフィグレーション名(&S): + + + + ExportCabrillo + + + Dialog + ダイアログ + + + + Location: + ロケーション: + + + + SNJ + SNJ + + + + Contest: + コンテスト: + + + + ARRL-RTTY + ARRL-RTTY + + + + Callsign: + コールサイン: + + + + Category-Operator: + オペレータカテゴリー: + + + + SINGLE-OP + シングルオペ + + + + Category-Transmitter: + 送信機カテゴリー: + + + + ONE + ONE + + + + Category-Power: + 出力カテゴリー: + + + + LOW + LOW + + + + Category-Assisted: + アシストカテゴリー: + + + + NON-ASSISTED + アシスト無し + + + + Category-Band: + バンドカテゴリー: + + + + ALL + ALL + + + + Claimed-Score: + 申請点数: + + + + Operators: + オペレータ: + + + + Club: + クラブ: + + + + Name: + 名前: + + + + + Address: + 住所: + + + + Save Log File + ログファイルを保存 + + + + Cabrillo Log (*.cbr) + Cabrilloログ(*.cbf) + + + + Cannot open "%1" for writing: %2 + %2を書き込むための"%1"が開けません + + + + Export Cabrillo File Error + Cabrilloファイルのエクスポートエラー + + + + FastGraph + + + + Fast Graph + 高速グラフ + + + + Waterfall gain + ウォーターフォールゲイン + + + + Waterfall zero + ウォーターフォールゼロ + + + + Spectrum zero + スペクトラムゼロ + + + + <html><head/><body><p>Set reasonable levels for gain and zero sliders.</p></body></html> + <html><head/><body><p>感度とゼロ点のレベル調整スライダーを自動設定.</p></body></html> + + + + Auto Level + レベル自動 + + + + FoxLog::impl + + + Date & Time(UTC) + 月日と時刻(UTC) + + + + Call + コールサイン + + + + Grid + グリッド + + + + Sent + 送信レポート + + + + Rcvd + 受信レポート + + + + Band + バンド + + + + FoxLogWindow + + + Fox Log + Foxログ + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + <html><head/><body><p>右クリックで操作候補を見る.</p></body></html> + + + + Callers: + 呼び出し局: + + + + + + N + N + + + + In progress: + 処理中: + + + + Rate: + レート: + + + + &Export ADIF ... + ADIFエクスポート(&E) ... + + + + Export ADIF Log File + ADIFログファイルをエクスポート + + + + ADIF Log (*.adi) + ADIFログ(*.adi) + + + + Export ADIF File Error + ADIFファイルエクスポートエラー + + + + Cannot open "%1" for writing: %2 + %2を書き出す"%1"が開けません + + + + &Reset ... + リセット(&R) ... + + + + Confirm Reset + リセット確認 + + + + Are you sure you want to erase file FoxQSO.txt and start a new Fox log? + 本当にFoxQSO.txtを削除し新しいFoxログを開始しますか? + + + + FrequencyDialog + + + Add Frequency + 周波数を追加 + + + + IARU &Region: + IARU地域(&R): + + + + &Mode: + モード(&M): + + + + &Frequency (MHz): + 周波数MHz(&F): + + + + FrequencyList_v2 + + + + IARU Region + IARU地域 + + + + + Mode + モード + + + + + Frequency + 周波数 + + + + + Frequency (MHz) + 周波数(MHz) + + + + HRDTransceiver + + + + Failed to connect to Ham Radio Deluxe + + HamRadioDeluxeに接続できません + + + + + Failed to open file "%1": %2. + ファイルが開けません "%1": %2. + + + + + Ham Radio Deluxe: no rig found + HamRadioDeluxe: 無線機が見つかりません + + + + Ham Radio Deluxe: rig doesn't support mode + HamRadioDeluxe: 無線機がそのモードに対応していません + + + + Ham Radio Deluxe: sent an unrecognised mode + HamRadioDeluxe: 無効なモードです + + + + Ham Radio Deluxe: item not found in %1 dropdown list + HamRadioDeluxe: %1ドロップダウンリストに項目がありません + + + + Ham Radio Deluxe: button not available + HamRadioDeluxe: ボタンがありません + + + + Ham Radio Deluxe didn't respond as expected + HamRadioDeluxe: 意図しないレスポンスが返ってきました + + + + Ham Radio Deluxe: rig has disappeared or changed + HamRadioDeluxe: 無線機との接続が切れたか変更されました + + + + Ham Radio Deluxe send command "%1" failed %2 + + HamRadioDeluxe: コマンド"%1"が失敗しました%2 + + + + + + Ham Radio Deluxe: failed to write command "%1" + HamRadioDeluxe: コマンド"%1"がエラーしました + + + + Ham Radio Deluxe sent an invalid reply to our command "%1" + HamRadioDeluxe: コマンド"%1"に対し無効な返答が返ってきました + + + + Ham Radio Deluxe failed to reply to command "%1" %2 + + HamRadioDeluxe: コマンド"%1"に反応エラー%2 + + + + + Ham Radio Deluxe retries exhausted sending command "%1" + HamRadioDeluxe: コマンド"%1"が何度も失敗しました + + + + Ham Radio Deluxe didn't respond to command "%1" as expected + HamRadioDeluxe: コマンド"%1"に対する返答が正しくありません + + + + HamlibTransceiver + + + + Hamlib initialisation error + Hamlib初期化エラー + + + + Hamlib settings file error: %1 at character offset %2 + Hamlib設定ファイルエラー: %2にて%1 + + + + Hamlib settings file error: top level must be a JSON object + ファイルのトップレベルはJSONオブジェクトでなければいけません + + + + Hamlib settings file error: config must be a JSON object + Hamlib設定エラー: JSONオブジェクトでなければなりません + + + + Unsupported CAT type + サポートしていないCATタイプ + + + + Hamlib error: %1 while %2 + Hamlibエラー: %1 %2 + + + + opening connection to rig + 無線機への接続 + + + + getting current frequency + 現周波数を取得 + + + + getting current mode + 現モードを取得 + + + + + exchanging VFOs + VFO入れ替え + + + + + getting other VFO frequency + もう一方のVFOの周波数を取得 + + + + getting other VFO mode + もう一方のVFOのモードを取得 + + + + setting current VFO + 現VFOを設定 + + + + getting frequency + 周波数を取得 + + + + getting mode + モードを取得 + + + + + getting current VFO + 現VFOを取得 + + + + + + + getting current VFO frequency + 現VFOの周波数を取得 + + + + + + + + + setting frequency + 周波数を設定 + + + + + + + getting current VFO mode + 現VFOのモードを取得 + + + + + + + + setting current VFO mode + 現VFOモードを設定 + + + + + setting/unsetting split mode + スプリットのオン/オフ + + + + + setting split mode + スプリットモードオン + + + + setting split TX frequency and mode + スプリット送信周波数とモードをセット + + + + setting split TX frequency + スプリット送信周波数をセット + + + + getting split TX VFO mode + スプリットモードを取得 + + + + setting split TX VFO mode + スプリット送信VFOのモードをセット + + + + getting PTT state + PTT状態を取得 + + + + setting PTT on + PTTオン + + + + setting PTT off + PTTオフ + + + + setting a configuration item + コンフィグレーション項目をセット + + + + getting a configuration item + コンフィグレーション項目を取得 + + + + HelpTextWindow + + + Help file error + ヘルプファイルエラー + + + + Cannot open "%1" for reading + "%1"を開けません + + + + Error: %1 + エラー: %1 + + + + IARURegions + + + + IARU Region + IARU地域 + + + + LogQSO + + + Click OK to confirm the following QSO: + OKをクリックしてQSOを確認: + + + + Call + コールサイン + + + + Start + 開始 + + + + + dd/MM/yyyy HH:mm:ss + dd/MM/yyyy HH:mm:ss + + + + End + 終了 + + + + Mode + モード + + + + Band + バンド + + + + Rpt Sent + 送信レポート + + + + Rpt Rcvd + 受信レポート + + + + Grid + グリッド + + + + Name + 名前 + + + + Tx power + 送信電力 + + + + + Retain + 残す + + + + Comments + コメント + + + + Operator + オペレータ + + + + Exch sent + 送信 + + + + Rcvd + 受信 + + + + + Invalid QSO Data + 無効なQSOデータ + + + + Check exchange sent and received + 送受信したナンバーをチェック + + + + Check all fields + すべての項目をチェック + + + + Log file error + ログファイルエラー + + + + Cannot open "%1" for append + "%1"に追加できません + + + + Error: %1 + エラー: %1 + + + + LotWUsers::impl + + + Network Error - SSL/TLS support not installed, cannot fetch: +'%1' + ネットワークエラー SSL/TLSがインストールされていません: +'%1' + + + + Network Error - Too many redirects: +'%1' + ネットワークエラー リダイレクト過多 +'%1' + + + + Network Error: +%1 + ネットワークエラー: +%1 + + + + File System Error - Cannot commit changes to: +"%1" + ファイルシステムエラー - 変更を反映できません: +"%1" + + + + File System Error - Cannot open file: +"%1" +Error(%2): %3 + ファイルシステムエラー - ファイルを開けません: +"%1" +エラー(%2): %3 + + + + File System Error - Cannot write to file: +"%1" +Error(%2): %3 + ファイルシステムエラー - ファイルへ書きこめません: +"%1" +エラー(%2): %3 + + + + MainWindow + + + WSJT-X by K1JT + WSJT-X by K1JT + + + + + + + + + + Band Activity + バンド状況 + + + + + UTC dB DT Freq Dr + UTC dB DT Freq Dr + + + + + + + + + Rx Frequency + 受信周波数 + + + + CQ only + CQのみ + + + + Enter this QSO in log + このQSOをログする + + + + Log &QSO + QSOをログ(&Q) + + + + Stop monitoring + モニター停止 + + + + &Stop + 停止(&S) + + + + Toggle monitoring On/Off + モニターオン/オフ + + + + &Monitor + モニター(&M) + + + + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> + <html><head/><body><p>右側ウィンドウを消去. ダブルクリックで両側ウィンドウを消去.</p></body></html> + + + + Erase right window. Double-click to erase both windows. + 右側ウィンドウを消去. ダブルクリックで両側ウィンドウを消去. + + + + &Erase + 消去(&E) + + + + <html><head/><body><p>Clear the accumulating message average.</p></body></html> + <html><head/><body><p>累加メッセージ平均をクリア.</p></body></html> + + + + Clear the accumulating message average. + 累加メッセージ平均をクリア. + + + + Clear Avg + 平均をクリア + + + + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> + <html><head/><body><p>QSO周波数で最後に受信した信号をデコード</p></body></html> + + + + Decode most recent Rx period at QSO Frequency + QSO周波数で最後に受信した信号をデコード + + + + &Decode + デコード(&D) + + + + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> + <html><head/><body><p>自動送信をオン/オフ</p></body></html> + + + + Toggle Auto-Tx On/Off + 自動送信をオン/オフ + + + + E&nable Tx + 送信許可(&n) + + + + Stop transmitting immediately + 直ちに送信停止 + + + + &Halt Tx + 送信停止(&H) + + + + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> + <html><head/><body><p>シングルトーンのオン/オフ</p></body></html> + + + + Toggle a pure Tx tone On/Off + シングルトーンのオン/オフ + + + + &Tune + チューン(&T) + + + + Menus + メニュー + + + + USB dial frequency + USBダイアル周波数 + + + + 14.078 000 + 14.078 000 + + + + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> + <html><head/><body><p>ノイズのみ受信のとき30dBが適当<br/>緑:適切<br/>赤:過大<br/>黄:過少</p></body></html> + + + + Rx Signal + 受信信号 + + + + 30dB recommended when only noise present +Green when good +Red when clipping may occur +Yellow when too low + ノイズのみ受信のとき30dBが適当 +緑:適切 +赤:過大 +黄:過少 + + + + DX Call + DXコール + + + + DX Grid + DXグリッド + + + + Callsign of station to be worked + 交信相手コールサイン + + + + Search for callsign in database + データベース内でコールサイン検索 + + + + &Lookup + 検索(&L) + + + + Locator of station to be worked + 交信相手のロケータ + + + + Az: 251 16553 km + Az: 251 16553 km + + + + Add callsign and locator to database + データベースへコールサインとロケータを追加 + + + + Add + 追加 + + + + Pwr + 電力 + + + + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> + <html><head/><body><p>黄色か赤色の場合無線機制御にエラーあり. リセットを押しダイヤル周波数を読み込む. Sはスプリット.</p></body></html> + + + + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. + 黄色か赤色の場合無線機制御にエラーあり. リセットを押しダイヤル周波数を読み込む. Sはスプリット. + + + + ? + ? + + + + Adjust Tx audio level + 送信オーディオレベル調整 + + + + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> + <html><head/><body><p>バンドを選びMHz単位で周波数を入力するか差分をkHz単位(最後にkをつける)で入力.</p></body></html> + + + + Frequency entry + 周波数入力 + + + + Select operating band or enter frequency in MHz or enter kHz increment followed by k. + バンドを選びMHz単位で周波数を入力するか差分をkHz単位(最後にkをつける)で入力. + + + + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + + + + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> + <html><head/><body><p>デコードした文をダブルクリックしたときに送信周波数を動かさない.</p></body></html> + + + + Check to keep Tx frequency fixed when double-clicking on decoded text. + デコードした文をダブルクリックしたときに送信周波数を動かさない. + + + + Hold Tx Freq + 送信周波数固定 + + + + Audio Rx frequency + 受信オーディオ周波数 + + + + + + Hz + Hz + + + + Rx + Rx + + + + Set Tx frequency to Rx Frequency + 送信周波数を受信周波数へコピー + + + + â–² + 文字化け? + + + + + Frequency tolerance (Hz) + 許容周波数(Hz) + + + + F Tol + F Tol + + + + Set Rx frequency to Tx Frequency + 受信周波数を送信周波数へコピー + + + + â–¼ + 文字化け? + + + + + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> + <html><head/><body><p>同期信号閾値. 小さい値ほど弱い同期信号を検出.</p></body></html> + + + + Synchronizing threshold. Lower numbers accept weaker sync signals. + 同期信号閾値. 小さい値ほど弱い同期信号を検出. + + + + Sync + 同期 + + + + <html><head/><body><p>Check to use short-format messages.</p></body></html> + <html><head/><body><p>短いメッセージフォーマットを使うときはチェック.</p></body></html> + + + + Check to use short-format messages. + 短いメッセージフォーマットを使うときはチェック. + + + + Sh + Sh + + + + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> + <html><head/><body><p>JT9高速モードをオン</p></body></html> + + + + Check to enable JT9 fast modes + JT9高速モードをオン + + + + + Fast + 高速 + + + + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> + <html><head/><body><p>チェックすることで受信したメッセージに基づき自動的に送信メッセージを生成する.</p></body></html> + + + + Check to enable automatic sequencing of Tx messages based on received messages. + 受信メッセージに合わせて送信メッセージ自動生成. + + + + Auto Seq + 自動シーケンス + + + + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> + <html><head/><body><p>自分のCQに最初に応答してきた局をコール.</p></body></html> + + + + Check to call the first decoded responder to my CQ. + 自分のCQに最初に応答してきた局をコール. + + + + Call 1st + コール 1st + + + + Check to generate "@1250 (SEND MSGS)" in Tx6. + Tx6に "@1250 (SEND MSGS)" を生成. + + + + Tx6 + Tx6 + + + + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> + <html><head/><body><p>チェックすると偶数分の0秒から送信開始.チェックを外すと奇数分.</p></body></html> + + + + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. + チェックすると偶数分の0秒から送信開始.チェックを外すと奇数分. + + + + Tx even/1st + Tx even/1st + + + + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> + <html><head/><body><p>現在の周波数からkHz上でCQをコール</p></body></html> + + + + Frequency to call CQ on in kHz above the current MHz + 現在の周波数からkHz上でCQをコール + + + + Tx CQ + Tx CQ + + + + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> + <html><head/><body><p>チェックすると &quot;Tx CQ&quot; 周波数でCQをコール. 受信は現在の周波数. 相手局がどの周波数で呼べばよいが分かるようにCQメッセージに現在の受信周波数を含める.</p><p>非標準コールには非対応.</p></body></html> + + + + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. +Not available to nonstandard callsign holders. + チェックすると "Tx CQ" 周波数でCQをコール. 受信は現在の周波数. 相手局がどの周波数で呼べばよいが分かるようにCQメッセージに現在の受信周波数を含める. +非標準コールには非対応. + + + + Rx All Freqs + + + + + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> + <html><head/><body><p>サブモードはトーン間隔を意味する.Aが一番狭い.</p></body></html> + + + + Submode determines tone spacing; A is narrowest. + サブモードはトーン間隔を意味する.Aが一番狭い. + + + + Submode + サブモード + + + + + Fox + Fox + + + + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> + <html><head/><body><p>Shメッセージをモニターする.</p></body></html> + + + + Check to monitor Sh messages. + Shメッセージをモニターする. + + + + SWL + SWL + + + + Best S+P + Best S+P + + + + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> + <html><head/><body><p>ここをチェックして較正データを録音開始.<br/>測定中は較正処理は停止します.<br/>チェックをはずすと較正結果を見ることができます.</p></body></html> + + + + Check this to start recording calibration data. +While measuring calibration correction is disabled. +When not checked you can view the calibration results. + チェックすると較正データを録音開始. +測定中は較正非動作. +チェックしないと較正結果を表示. + + + + Measure + 測定 + + + + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> + <html><head/><body><p>シグナルレポート: 2500Hzバンド幅におけるSN比(dB).</p></body></html> + + + + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). + シグナルレポート: 2500Hzパスバンド幅におけるSN比(dB). + + + + Report + レポート + + + + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> + <html><head/><body><p>送信/受信または周波数較正の時間</p></body></html> + + + + Tx/Rx or Frequency calibration sequence length + Tx/Rxまたは周波数較正時間長 + + + + s + s + + + + T/R + T/R + + + + Toggle Tx mode + 送信モードをトグル + + + + Tx JT9 @ + + + + + Audio Tx frequency + 送信オーディオ周波数 + + + + + Tx + + + + + Tx# + Tx# + + + + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> + <html><head/><body><p>ダブルクリックして次のQSOの待ち行列に加える.</p></body></html> + + + + Double-click on another caller to queue that call for your next QSO. + ダブルクリックで次のQSOで呼ぶ相手を待ち行列に追加. + + + + Next Call + 次のコール + + + + 1 + + + + + + + Send this message in next Tx interval + このメッセージを次回送信する + + + + Ctrl+2 + + + + + <html><head/><body><p>Send this message in next Tx interval</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>このメッセージを次回送信する</p><p>ダブルクリックしてTx1メッセージとしてQSOを開始のオンオフ(タイプ1複合コールサインでは使えません)</p></body></html> + + + + Send this message in next Tx interval +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) + >このメッセージを次回送信する. ダブルクリックしてTx1メッセージとしてQSOを開始のオンオフ(タイプ1複合コールサインでは使えません) + + + + Ctrl+1 + + + + + + + + Switch to this Tx message NOW + このメッセージを送信 + + + + Tx &2 + + + + + Alt+2 + + + + + <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>このメッセージをすぐに送信</p><p>ダブルクリックすることでTx1メッセージを使うかどうか選択(タイプ1複合コールサインには使えません)</p></body></html> + + + + Switch to this Tx message NOW +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) + このメッセージをすぐに送信. ダブルクリックすることでTx1メッセージを使うかどうか選択(タイプ1複合コールサインには使えません) + + + + Tx &1 + + + + + Alt+1 + + + + + Ctrl+6 + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> + <html><head/><body><p>このメッセージを次回送信</p><p>ダブルクリックして標準73メッセージにリセット</p></body></html> + + + + Send this message in next Tx interval +Double-click to reset to the standard 73 message + このメッセージを次回送信 +ダブルクリックして標準73メッセージにリセット + + + + Ctrl+5 + + + + + Ctrl+3 + + + + + Tx &3 + + + + + Alt+3 + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>このメッセージを次回送信</p><p>ダブルクリックするとTx4でRRRかRR73を送るかを切り替え(タイプ2複合コールサインでは使えません)</p><p>RR73 メッセージは、相手が確実にコピーしたと考えられるときに使ってください</p></body></html> + + + + Send this message in next Tx interval +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + このメッセージを次回送信 +ダブルクリックするとTx4でRRRかRR73を送るかを切り替え(タイプ2複合コールサインでは使えません) +RR73 メッセージは、相手が確実にコピーしたと考えられるときに使ってください + + + + Ctrl+4 + + + + + <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>この送信メッセージをすぐに送信</p><p>ダブルクリックしてTx4のRRRとRR73を交互切り替え(タイプ2の複合コールサインでは使えません)</p><p>RR73は、双方ともメッセージを確認し、繰り返しが必要ないと考えうるときにのみ使いましょう</p></body></html> + + + + Switch to this Tx message NOW +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + このメッセージを送信 +ダブルクリックするとTx4でRRRかRR73を送るかを切り替え(タイプ2複合コールサインでは使えません) +RR73 メッセージは、相手が確実にコピーしたと考えられるときに使ってください + + + + Tx &4 + + + + + Alt+4 + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> + <html><head/><body><p>このメッセージをすぐに送信</p><p>ダブルクリックして標準73メッセージにリセット</p></body></html> + + + + Switch to this Tx message NOW +Double-click to reset to the standard 73 message + このメッセージをすぐに送信. ダブルクリックして標準73メッセージにリセット + + + + Tx &5 + + + + + Alt+5 + + + + + Now + 送信 + + + + Generate standard messages for minimal QSO + 最短QSO用メッセージを生成 + + + + Generate Std Msgs + 標準メッセージ生成 + + + + Tx &6 + + + + + Alt+6 + + + + + + Enter a free text message (maximum 13 characters) +or select a predefined macro from the dropdown list. +Press ENTER to add the current text to the predefined +list. The list can be maintained in Settings (F2). + フリーテキスト(最大13文字)を入力 +またはドロップダウンリストからあらかじめ登録したマクロを選択. +ENTERを押してテキストを登録リストに追加. +リストは設定(F2)で変更可能. + + + + Queue up the next Tx message + 次の送信メッセージを待ち行列に追加 + + + + Next + + + + + 2 + + + + + Calling CQ + CQをコール + + + + Generate a CQ message + CQメッセージ生成 + + + + + + CQ + + + + + Generate message with RRR + RRRメッセージを生成 + + + + RRR + + + + + Generate message with report + レポートメッセージを生成 + + + + dB + + + + + Answering CQ + CQに応答 + + + + Generate message for replying to a CQ + CQに応答するメッセージを生成 + + + + + Grid + グリッド + + + + Generate message with R+report + R+レポートメッセージ生成 + + + + R+dB + + + + + Generate message with 73 + 73メッセージ生成 + + + + 73 + + + + + Send this standard (generated) message + この生成された標準メッセージを送信 + + + + Gen msg + メッセージ生成 + + + + Send this free-text message (max 13 characters) + フリーテキストを送信(最大13文字) + + + + Free msg + フリーテキスト + + + + 3 + + + + + Max dB + 最大dB + + + + CQ AF + + + + + CQ AN + + + + + CQ AS + + + + + CQ EU + + + + + CQ NA + + + + + CQ OC + + + + + CQ SA + + + + + CQ 0 + + + + + CQ 1 + + + + + CQ 2 + + + + + CQ 3 + + + + + CQ 4 + + + + + CQ 5 + + + + + CQ 6 + + + + + CQ 7 + + + + + CQ 8 + + + + + CQ 9 + + + + + Reset + リセット + + + + N List + Nリスト + + + + N Slots + Nスロット + + + + + Random + ランダム + + + + Call + + + + + S/N (dB) + + + + + Distance + 距離 + + + + More CQs + これは何? + + + + + Percentage of 2-minute sequences devoted to transmitting. + 2分の送信に費やすパーセンテージ. + + + + % + % + + + + Tx Pct + Tx Pct + + + + Band Hopping + バンドホッピング + + + + Choose bands and times of day for band-hopping. + バンドホッピングためのバンドと時間を選択. + + + + Schedule ... + スケジュール .... + + + + Upload decoded messages to WSPRnet.org. + デコードしたメッセージをWSPRnet.orgへアップロード. + + + + Upload spots + スポットをアップロード + + + + <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>6桁のグリッドロケーターは2回のメッセージで送られます, 2回目のメッセージで6桁全部送られますが、コールサインはハッシュになります, 相手局は1回目であなたのコールサインをコピーしていなければなりません.. このオプションをチェックすると4桁のグリッドロケーターしか送らず、6桁のグリッドロケーターを送るための2回のメッセージ送信は行いません.</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. + 6桁のグリッドロケーターは2回のメッセージで送られます, 2回目のメッセージで6桁全部送られますが、コールサインはハッシュになります, 相手局は1回目であなたのコールサインをコピーしていなければなりません.. このオプションをチェックすると4桁のグリッドロケーターしか送らず、6桁のグリッドロケーターを送るための2回のメッセージ送信は行いません. + + + + Prefer type 1 messages + タイプ1メッセージを使う + + + + No own call decodes + 自分のコールサインをデコードしない + + + + Transmit during the next 2-minute sequence. + 次の2分送信シーケンスの間に送信. + + + + Tx Next + 次のTx + + + + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. + dBm単位の送信出力をWSPRメッセージに入れる. + + + + File + ファイル + + + + View + 表示 + + + + Decode + デコード + + + + Save + 保存 + + + + Help + ヘルプ + + + + Mode + モード + + + + Configurations + コンフィグレーション + + + + Tools + ツール + + + + Exit + 終了 + + + + Configuration + コンフィグレーション + + + + F2 + + + + + About WSJT-X + WSJT-Xについて + + + + Waterfall + ウォーターフォール + + + + Open + 開く + + + + Ctrl+O + + + + + Open next in directory + ディレクトリ中の次のファイルを開く + + + + Decode remaining files in directory + ディレクトリ中の残りのファイルをデコード + + + + Shift+F6 + + + + + Delete all *.wav && *.c2 files in SaveDir + SaveDirのすべての*.wavと*.c2ファイルを削除 + + + + None + 無し + + + + Save all + すべて保存 + + + + Online User Guide + オンラインユーザーガイド + + + + Keyboard shortcuts + キーボードショートカット + + + + Special mouse commands + 特別なマウス操作 + + + + JT9 + + + + + Save decoded + デコードしたメッセージを保存 + + + + Normal + 標準 + + + + Deep + ディープ + + + + Monitor OFF at startup + 起動時モニターオフ + + + + Erase ALL.TXT + ALL.TXTを消去 + + + + Erase wsjtx_log.adi + wsjtx_log.adiを消去 + + + + Convert mode to RTTY for logging + ログのためモードをRTTYに変換 + + + + Log dB reports to Comments + dBレポートをコメントに記録 + + + + Prompt me to log QSO + QSOをログするとき知らせる + + + + Blank line between decoding periods + デコードタイミング間に空白行を入れる + + + + Clear DX Call and Grid after logging + ログした後、DXコールサインとグリッドをクリア + + + + Display distance in miles + 距離をマイルで表示 + + + + Double-click on call sets Tx Enable + コールサインをダブルクリックして送信オン + + + + + F7 + + + + + Tx disabled after sending 73 + 73を送った後送信禁止 + + + + + Runaway Tx watchdog + Txウオッチドッグ発令 + + + + Allow multiple instances + 複数のインスタンス起動許可 + + + + Tx freq locked to Rx freq + 送信周波数を受信周波数にロック + + + + JT65 + + + + + JT9+JT65 + + + + + Tx messages to Rx Frequency window + 送信メッセージを受信周波数ウィンドウへ + + + + Gray1 + + + + + Show DXCC entity and worked B4 status + DXCCエンティティと交信済みステータスを表示 + + + + Astronomical data + 天文データ + + + + List of Type 1 prefixes and suffixes + タイプ1プリフィックス、サフィックスのリスト + + + + Settings... + 設定... + + + + Local User Guide + 各国版ユーザーガイド + + + + Open log directory + ログディレクトリを開く + + + + JT4 + + + + + Message averaging + メッセージ平均化 + + + + Enable averaging + 平均化オン + + + + Enable deep search + ディープサーチをオン + + + + WSPR + WSPR + + + + Echo Graph + エコーグラフ + + + + F8 + + + + + Echo + Echo + + + + EME Echo mode + EMEエコーモード + + + + ISCAT + + + + + Fast Graph + 高速グラフ + + + + F9 + + + + + &Download Samples ... + サンプルをダウンロード(&D)... + + + + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> + <html><head/><body><p>いろいろなモードのオーディオファイルをダウンロード.</p></body></html> + + + + MSK144 + + + + + QRA64 + + + + + Release Notes + リリースノート + + + + Enable AP for DX Call + DXコールのAPをオン + + + + FreqCal + + + + + Measure reference spectrum + 参照スペクトラムを測定 + + + + Measure phase response + 位相応答を測定 + + + + Erase reference spectrum + 参照スペクトラムを消去 + + + + Execute frequency calibration cycle + 周波数較正実行 + + + + Equalization tools ... + イコライザー... + + + + WSPR-LF + WSPR-LF + + + + Experimental LF/MF mode + 実験的LF/MFモード + + + + FT8 + + + + + + Enable AP + AP使用 + + + + Solve for calibration parameters + 較正パラメータ計算 + + + + Copyright notice + 著作権表示 + + + + Shift+F1 + + + + + Fox log + Foxログ + + + + FT8 DXpedition Mode User Guide + FT8 DXペディションモードユーザーガイド + + + + Reset Cabrillo log ... + Cabrilloログをリセット... + + + + Color highlighting scheme + ハイライト設定 + + + + Contest Log + コンテストログ + + + + Export Cabrillo log ... + Cabrilloログをエクスポート... + + + + Quick-Start Guide to WSJT-X 2.0 + WSJT-X 2.0クイックスタートガイド + + + + Contest log + コンテストログ + + + + Erase WSPR hashtable + WSPRハッシュテーブルを消去 + + + + FT4 + + + + + Rig Control Error + 無線機制御エラー + + + + + + Receiving + 受信中 + + + + Do you want to reconfigure the radio interface? + 無線機インターフェイスを再構成しますか? + + + + Error Scanning ADIF Log + ADIFログスキャンエラー + + + + Scanned ADIF log, %1 worked before records created + ADIFログ検索. %1交信済み記録作成しました + + + + Error Loading LotW Users Data + LotWユーザデータをロードできません + + + + Error Writing WAV File + WAVファイルを書き込みできません + + + + Configurations... + コンフィグレーション... + + + + + + + + + + + + + + + + + + + Message + メッセージ + + + + Error Killing jt9.exe Process + jt9.exeプロセスを終了できません + + + + KillByName return code: %1 + KillByNameリターンコード: %1 + + + + Error removing "%1" + "%1"を削除できません + + + + Click OK to retry + OKを押して再試行 + + + + + Improper mode + 不適切なモード + + + + + File Open Error + ファイルオープンエラー + + + + + + + + Cannot open "%1" for append: %2 + "%2"を追加する"%1"が開けません + + + + Error saving c2 file + c2ファイルを保存できません + + + + Error in Sound Input + サウンド入力にエラー発生 + + + + Error in Sound Output + サウンド出力にエラー発生 + + + + + + Single-Period Decodes + シングルパスデコード + + + + + + Average Decodes + 平均デコード + + + + Change Operator + オペレータ交代 + + + + New operator: + 新オペレータ: + + + + Status File Error + ステータスファイルエラー + + + + + Cannot open "%1" for writing: %2 + %2を書き込むための"%1"が開けません + + + + Subprocess Error + サブプロセスエラー + + + + Subprocess failed with exit code %1 + サブプロセスエラー 終了コード %1 + + + + + Running: %1 +%2 + 実行中: %1 +%2 + + + + Subprocess error + サブプロセスエラー + + + + Reference spectrum saved + 参照用スペクトラムを保存しました + + + + Invalid data in fmt.all at line %1 + fmt.allの%1行目に無効なデータ + + + + Good Calibration Solution + 較正良好 + + + + <pre>%1%L2 ±%L3 ppm +%4%L5 ±%L6 Hz + +%7%L8 +%9%L10 Hz</pre> + 文字化け? + + + + + Delete Calibration Measurements + 較正の測定結果を削除 + + + + The "fmt.all" file will be renamed as "fmt.bak" + "fmt.all"は"fmt.bak"に名前が変わります + + + + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: + +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." + + + + + No data read from disk. Wrong file format? + ディスクからデータが読めません.フォーマットが合っていますか? + + + + Confirm Delete + 削除確認 + + + + Are you sure you want to delete all *.wav and *.c2 files in "%1"? + "%1"のすべての*.wavと*.c2ファイルを削除していいですか? + + + + Keyboard Shortcuts + キーボードショートカット + + + + Special Mouse Commands + 特別なマウス操作 + + + + No more files to open. + これ以上開くファイルがありません. + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. + 他の送信周波数を使ってください. WSJT-Xは30mバンドのWSPRサブバンド中の他のモードを受信せずに送信してしまいます. + + + + WSPR Guard Band + WSPRガードバンド + + + + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. + 他のダイヤル周波数を使ってください. WSJT-XはFT8の標準サブバンドでFoxモードを使えません。 + + + + Fox Mode warning + Foxモード警告 + + + + Last Tx: %1 + 最終送信: %1 + + + + Should you switch to EU VHF Contest mode? + +To do so, check 'Special operating activity' and +'EU VHF Contest' on the Settings | Advanced tab. + EU VHFコンテストモードに切り替えますか? + +設定|詳細タブで設定変更してください. + + + + Should you switch to ARRL Field Day mode? + ARRLフィールドデーモードに切り替えますか? + + + + Should you switch to RTTY contest mode? + RTTYコンテストモードに切り替えますか? + + + + + + + Add to CALL3.TXT + CALL3.TXTへ追加 + + + + Please enter a valid grid locator + 有効なグリッドロケータを入力してください + + + + Cannot open "%1" for read/write: %2 + %2を読み書きするための"%1"が開けません + + + + %1 +is already in CALL3.TXT, do you wish to replace it? + %1 +がすでにCALL3.TXTにセットされています。置き換えますか? + + + + Warning: DX Call field is empty. + 警告 DXコールが空白です. + + + + Log file error + ログファイルエラー + + + + Cannot open "%1" + "%1"を開けません + + + + Error sending log to N1MM + N1MMへログを送れません + + + + Write returned "%1" + 応答"%1"を書き込み + + + + Stations calling DXpedition %1 + DXペディション %1を呼ぶ局 + + + + Hound + Hound + + + + Tx Messages + 送信メッセージ + + + + + + Confirm Erase + 消去確認 + + + + Are you sure you want to erase file ALL.TXT? + ALL.TXTファイルを消去してよいですか? + + + + + Confirm Reset + リセット確認 + + + + Are you sure you want to erase your contest log? + コンテストログを消去していいですか? + + + + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. + 現在のコンテストのQSO記録をすべて消去します。ADIFログには記録されますがCabrilloログにエクスポートすることはできません. + + + + Cabrillo Log saved + Cabrilloログ保存しました + + + + Are you sure you want to erase file wsjtx_log.adi? + wsjtx_log.adiを消してもよいですか? + + + + Are you sure you want to erase the WSPR hashtable? + WSPRのハッシュテーブルを消してもよいですか? + + + + VHF features warning + VHF機能警告 + + + + Tune digital gain + チューンのデジタルゲイン + + + + Transmit digital gain + 送信デジタルゲイン + + + + Prefixes + プリフィックス + + + + Network Error + ネットワークエラー + + + + Error: %1 +UDP server %2:%3 + エラー %1 +UDPサーバー %2:%3 + + + + File Error + ファイルエラー + + + + Phase Training Disabled + 位相調整オフ + + + + Phase Training Enabled + 位相調整オン + + + + WD:%1m + WD:%1m + + + + + Log File Error + ログファイルエラー + + + + Are you sure you want to clear the QSO queues? + QSO待ち行列をクリアしてもいいですか? + + + + MessageAveraging + + + + Message Averaging + メッセージ平均化 + + + + UTC Sync DT Freq + + + + + Modes + + + + Mode + モード + + + + MultiSettings + + + Default + デフォルト + + + + MultiSettings::impl + + + &Switch To + 変更(&S) + + + + &Clone + クローン(&C) + + + + Clone &Into ... + 名前をつけてクローン(&I)... + + + + R&eset + リセット(&R) + + + + &Rename ... + 名前の変更(&R)... + + + + &Delete + 削除(&D) + + + + Clone Into Configuration + コンフィグレーションへクローン + + + + Confirm overwrite of all values for configuration "%1" with values from "%2"? + コンフィグレーション%1のすべての項目を%2で置き換えていいですか? + + + + Reset Configuration + コンフィグレーションをリセット + + + + Confirm reset to default values for configuration "%1"? + コンフィグレーション"%1"をデフォルト値にリセットしてもいいですか? + + + + Delete Configuration + コンフィグレーションを削除 + + + + Confirm deletion of configuration "%1"? + コンフィグレーション"%1"を削除していいですか? + + + + NameDialog + + + New Configuration Name + 新しいコンフィグレーション名 + + + + Old name: + 元の名前: + + + + &New name: + 新しい名前(&N): + + + + OmniRigTransceiver + + + OmniRig: unrecognized mode + OmniRig: 認識できないモード + + + + Failed to start OmniRig COM server + OmniRig COMサーバーが開始できません + + + + + OmniRig: don't know how to set rig frequency + OmniRigが無線機周波数をセットできません + + + + + OmniRig: timeout waiting for update from rig + OmniRig: 無線機からの応答タイムアウト + + + + OmniRig COM/OLE error: %1 at %2: %3 (%4) + OmniRig COM/OLEエラー: %1 at %2 %3 (%4) + + + + PollingTransceiver + + + Unexpected rig error + 予期しない無線機エラー + + + + QObject + + + Invalid rig name - \ & / not allowed + 無効な名前 - \ & / は使えません + + + + User Defined + ユーサー定義 + + + + Failed to open LotW users CSV file: '%1' + LotW CSVファイル '%1'が開けません + + + + OOB + + + + + Too many colours in palette. + パレットに色の種類が多すぎます. + + + + Error reading waterfall palette file "%1:%2" too many colors. + ウォーターフォールパレットファイル "%1:%2"から読み込めません.色が多すぎます. + + + + Error reading waterfall palette file "%1:%2" invalid triplet. + ウォーターフォールパレットファイル "%1:%2"から読み込めません. 正しくないトリプレット. + + + + Error reading waterfall palette file "%1:%2" invalid color. + ウォーターフォールパレットファイル "%1:%2"から読み込めません. 正しくない色. + + + + Error opening waterfall palette file "%1": %2. + ウォーターフォールパレットファイル "%1": %2 が開けません. + + + + Error writing waterfall palette file "%1": %2. + ウォーターフォールパレットファイル "%1": %2 に書き込めません. + + + + RemoteFile + + + + + + + + File System Error + ファイルシステムエラー + + + + Cannot rename file: +"%1" +to: "%2" +Error(%3): %4 + ファイル名変更できません: +"%1" +から "%2" +エラー(%3): %4 + + + + Cannot delete file: +"%1" + ファイルが削除できません: +"%1" + + + + + + Network Error + ネットワークエラー + + + + Too many redirects: %1 + リダイレクト %1が多すぎます + + + + Redirect not followed: %1 + リダイレクトができません %1 + + + + Cannot commit changes to: +"%1" + 変更を反映できません: +"%1" + + + + Cannot open file: +"%1" +Error(%2): %3 + ファイルを開けません: +"%1" +エラー(%2): %3 + + + + Cannot make path: +"%1" + パスを作成できません: +"%1" + + + + Cannot write to file: +"%1" +Error(%2): %3 + ファイルへ書き込みできなせん: +"%1" +エラー(%2): (%3) + + + + SampleDownloader::impl + + + Download Samples + サンプルをダウンロード + + + + Input Error + 入力エラー + + + + Invalid URL format + 無効なURLフォーマット + + + + SoundInput + + + An error opening the audio input device has occurred. + オーディオ入力デバイスが開けません. + + + + An error occurred during read from the audio input device. + オーディオ入力デバイスから読み込みエラー発生. + + + + Audio data not being fed to the audio input device fast enough. + オーディオ入力デバイスにオーディオデータが入ってくる速度が遅すぎます. + + + + Non-recoverable error, audio input device not usable at this time. + 回復不能エラー. 現在オーディオ入力デバイスが使えません. + + + + Requested input audio format is not valid. + このオーディオフォーマットは無効です. + + + + Requested input audio format is not supported on device. + このオーディオ入力フォーマットはオーディオ入力デバイスでサポートされていません. + + + + Failed to initialize audio sink device + オーディオ出力デバイス初期化エラー + + + + Idle + 待機中 + + + + Receiving + 受信中 + + + + Suspended + サスペンド中 + + + + Interrupted + 割り込まれました + + + + Error + エラー + + + + Stopped + 停止中 + + + + SoundOutput + + + An error opening the audio output device has occurred. + オーディオ出力デバイスが開けません. + + + + An error occurred during write to the audio output device. + オーディオ出力デバイスへデータ書き込みエラー発生. + + + + Audio data not being fed to the audio output device fast enough. + 十分な速度でオーディオデータを出力デバイスへ送れません. + + + + Non-recoverable error, audio output device not usable at this time. + 回復不能エラー. 現在オーディオ出力デバイスが使えません. + + + + Requested output audio format is not valid. + このオーディオフォーマットは無効です. + + + + Requested output audio format is not supported on device. + このオーディオフォーマットはオーディオ出力デバイスでサポートされていません. + + + + Idle + 待機中 + + + + Sending + 送信中 + + + + Suspended + サスペンド中 + + + + Interrupted + 割り込まれました + + + + Error + エラー + + + + Stopped + 停止中 + + + + StationDialog + + + Add Station + 局を追加 + + + + &Band: + バンド(&B): + + + + &Offset (MHz): + オフセットMHz(&O): + + + + &Antenna: + アンテナ(&A): + + + + StationList::impl + + + Band name + バンド名 + + + + Frequency offset + 周波数オフセット + + + + Antenna description + 使用アンテナ + + + + Band + バンド + + + + Offset + オフセット + + + + Antenna Description + 使用アンテナ + + + + TransceiverBase + + + Unexpected rig error + 予期せぬ無線機エラー + + + + WideGraph + + + Dialog + ダイアログ + + + + Controls + 操作パネル + + + + Spectrum gain + スペクトラムゲイン + + + + Palette + パレット + + + + <html><head/><body><p>Enter definition for a new color palette.</p></body></html> + <html><head/><body><p>新しいカラーパレットの定義を入力.</p></body></html> + + + + Adjust... + 設定... + + + + Waterfall gain + ウォーターフォールゲイン + + + + <html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html> + <html><head/><body><p>このウィンドウにおけるスペクトラム表示占有率.</p></body></html> + + + + % + % + + + + Spec + スペクトラム + + + + <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> + <html><head/><body><p>スペクトラム表示している周波数全体を平滑化.</p></body></html> + + + + Flatten + 平滑化 + + + + <html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html> + 参照スペクトラムを計算して保存(一部未実装) + + + + Ref Spec + 日本語難しい + + + + + Smoothing of Linear Average spectrum + スペクトラム平滑化 + + + + Smooth + 平滑化 + + + + Compression factor for frequency scale + 周波数スケールの圧縮率 + + + + Bins/Pixel + Bin数/ピクセル + + + + Select waterfall palette + ウォーターフォールパレットを選択 + + + + <html><head/><body><p>Select data for spectral display</p></body></html> + <html><head/><body><p>スペクトラム表示データを選択</p></body></html> + + + + Current + 標準 + + + + Cumulative + 累加 + + + + Linear Avg + 線形平均 + + + + Reference + リファレンス + + + + <html><head/><body><p>Frequency at left edge of waterfall</p></body></html> + <html><head/><body><p>ウォーターフォール左端の周波数</p></body></html> + + + + Hz + Hz + + + + Start + 開始 + + + + <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> + <html><head/><body><p>この周波数より上でのみJT9をデコード</p></body></html> + + + + JT9 + JT9 + + + + JT65 + JT65 + + + + Number of FFTs averaged (controls waterfall scrolling rate) + 平均するFFT数(ウォーターフォールのスクロール速度を調整) + + + + N Avg + + + + + Waterfall zero + ウォーターフォールゼロ + + + + Spectrum zero + スペクトラムゼロ + + + + Wide Graph + ワイドグラフ + + + + + Read Palette + パレット読み込み + + + + configuration_dialog + + + Settings + 設定 + + + + Genera&l + 一般(&l) + + + + General station details and settings. + 一般的な局の詳細と設定. + + + + Station Details + 局の詳細 + + + + My C&all: + 自局コールサイン(&a): + + + + Station callsign. + コールサイン. + + + + M&y Grid: + 自局のグリッドロケーター(&y): + + + + <html><head/><body><p>Maidenhead locator, preferably 6 characters.</p></body></html> + <html><head/><body><p>グリッドロケーター、できるだけ6桁.</p></body></html> + + + + Check to allow grid changes from external programs + 外部プログラムからグリッドロケーター変更する場合チェック + + + + AutoGrid + 自動グリッドロケーター + + + + IARU Region: + IARU地域: + + + + <html><head/><body><p>Select your IARU region.</p></body></html> + <html><head/><body><p>自局のIARU地域を選択.</p></body></html> + + + + Message generation for type 2 compound callsign holders: + タイプ2複合コールサインのとき、いつフルコールを送信するか: + + + + <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>タイプ2コールサインは、プリフィックスまたはサフィックスが短縮リストに載っていない場合使われます.</p><p>このオプションはあなたがタイプ2複合コールサインを使うとき、どのメッセージでそれを送信するかを決めます. </p><p>CQに応答するとき基本コールサインを使うかタイプ2複合コールサインを使うか選択できます. 6 (CQ) と 5 (73) はいつもフルコールサインを含みます. JT65 と JT9 プロトコルはDXコールやロケーターを送らない代わりにフルのタイプ2複合コールサインを送ることができます.</p><p>メッセージ1を選ぶと、DXコールが含まれませんのでCQに応答するとき問題になるかもしれません. メッセージ3を選ぶとDXコールを省きますが、WSJT-Xのバージョンによって、あるいは、別のアプリがレポートを受け取れません. どちらも選ばないとフルのコールサインはメッセージ5(73)だけに含まれ、相手が間違ったコールサインをログしかねません.</p><p>どのオプションも完璧ではありません, メッセージ3が一番よいと思いますが、相手がレポートを受け取れない可能性があります.</p></body></html> + + + + Full call in Tx1 + + + + + Full call in Tx3 + + + + + Full call in Tx5 only + + + + + Display + 表示 + + + + Show outgoing transmitted messages in the Rx frequency window. + 受信周波数ウィンドウに送信するメッセージを表示. + + + + &Tx messages to Rx frequency window + 送信メッセージを受信周波数ウィンドウに表示(&T) + + + + Show if decoded stations are new DXCC entities or worked before. + 相手局が新しいDXCCかどうか表示. + + + + Show &DXCC, grid, and worked-before status + DXCC、グリッド、交信済みを表示(&D) + + + + <html><head/><body><p>Check to have decodes for a new period start at the top of the Band Activity window and not scroll off the top when the window is full.</p><p>This is to aid selecting decodes to double-click while decoding is still in progress. Use the Band Activity vertical scroll bar to reveal decodes past the bottom of the window.</p></body></html> + <html><head/><body><p>チェックすると新しいメッセージがバンド状況ウィンドウの一番上から表示され、ウィンドウがいっぱいになってもスクロールアウトされません. デコード中にダブルクリックしやすくなります. 縦のスクロールバーを使ってスクロールダウンすることで以前のメッセージを見てください.</p></body></html> + + + + Start new period decodes at top + 新しいデコードメッセージはウィンドウの上から表示 + + + + Show principal prefix instead of country name + 国名ではなく割り当てプリフィックスを表示 + + + + Set the font characteristics for the application. + アプリのフォント設定. + + + + Font... + フォント... + + + + Set the font characteristics for the Band Activity and Rx Frequency areas. + バンド状況と受信周波数エリアのフォント設定. + + + + Decoded Text Font... + デコードテキストフォント... + + + + Include a separator line between periods in the band activity window. + バンド状況ウィンドウでデコードシーケンスの間に区切り線を表示. + + + + &Blank line between decoding periods + デコード時間の間に空白行を入れる(&B) + + + + Show distance to DX station in miles rather than kilometers. + DX局までの距離をキロメートルではなくマイルで表示. + + + + Display dista&nce in miles + 距離をマイルで表示(&n) + + + + Behavior + + + + + Decode after EME delay + EME遅延を考慮してデコード開始 + + + + Tx watchdog: + 自動応答許可時間: + + + + <html><head/><body><p>Number of minutes before unattended transmissions are aborted</p></body></html> + <html><head/><body><p>ユーサーが離れてから自動送信を解除するまでの分数</p></body></html> + + + + Disabled + 解除 + + + + minutes + + + + + Enable VHF/UHF/Microwave features + VHF/UHF/Microwave機能をオン + + + + Single decode + シングルデコード + + + + <html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html> + <html><head/><body><p>無線機によっては、送信中にCATコマンドを受け付けません. スプリットモードのときはこのオプションを使えないかもしれません.</p></body></html> + + + + Allow Tx frequency changes while transmitting + 送信中の送信周波数変更を許可 + + + + Don't start decoding until the monitor button is clicked. + モニターボタンを押すまでデコードを開始しない. + + + + Mon&itor off at startup + 起動時にモニターをオフ(&i) + + + + <html><head/><body><p>Check this if you wish to automatically return to the last monitored frequency when monitor is enabled, leave it unchecked if you wish to have the current rig frequency maintained.</p></body></html> + <html><head/><body><p>モニターをオンにしたとき、最後にモニターしていた周波数に戻りたいときはチェック. そのままの周波数を維持したいときはチェックをはずす.</p></body></html> + + + + Monitor returns to last used frequency + 最後に使った周波数に戻る + + + + Alternate F1-F6 bindings + 別のF1-F6キーセット設定を使う + + + + Turns off automatic transmissions after sending a 73 or any other free +text message. + 73またはフリーテキストを送った後、自動送信をオフ. + + + + Di&sable Tx after sending 73 + 73を送った後、送信を停止(&s) + + + + Send a CW ID after every 73 or free text message. + 73またはフリーテキスト送信後にCW IDを送信. + + + + CW ID a&fter 73 + 73の後にCW IDを送信(&f) + + + + Periodic CW ID Inter&val: + CW ID送信間隔(&v): + + + + Send a CW ID periodically every few minutes. +This might be required under your countries licence regulations. +It will not interfere with other users as it is always sent in the +quiet period when decoding is done. + CW IDを数分ごとに送信. +国によってはID送信が規則になっています. +他のユーザーの妨げにならないようにデコードが終わった +時間に送信されるようになっています. + + + + Automatic transmission mode. + 自動送信モード. + + + + Doubl&e-click on call sets Tx enable + コールサインをダブルクリックすると送信可にする(&e) + + + + Calling CQ forces Call 1st + コール 1stをセットしてCQを出す + + + + &Radio + 無線機(&R) + + + + Radio interface configuration settings. + 無線機インターフェイス設定. + + + + Settings that control your CAT interface. + CATインターフェイス設定. + + + + CAT Control + CAT制御 + + + + + Port: + ポート: + + + + Serial port used for CAT control. + CAT制御用シリアルポート. + + + + Serial Port Parameters + シリアルポートパラメーター + + + + Baud Rate: + ボーレート: + + + + Serial port data rate which must match the setting of your radio. + シリアルポートの速度(無線機と同じでなければなりません). + + + + 1200 + + + + + 2400 + + + + + 4800 + + + + + 9600 + + + + + 19200 + + + + + 38400 + + + + + 57600 + + + + + 115200 + + + + + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> + <html><head/><body><p>CATインターフェイスのデータビット数(大抵はビット).</p></body></html> + + + + Data Bits + データビット + + + + D&efault + デフォルト(&e) + + + + Se&ven + + + + + E&ight + + + + + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> + <html><head/><body><p>CATインターフェイスのストップビット数</p><p>(詳細は取扱説明書を参照のこと).</p></body></html> + + + + Stop Bits + ストップビット + + + + + Default + デフォルト + + + + On&e + + + + + T&wo + + + + + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> + <html><head/><body><p>無線機のCATインターフェイスに使われるフロー制御(通常 &quot;None&quot; たまに &quot;Hardware&quot;).</p></body></html> + + + + Handshake + ハンドシェイク + + + + &None + なし(&N) + + + + Software flow control (very rare on CAT interfaces). + ソフトウェアによるフロー制御(CATではほとんど使われません). + + + + XON/XOFF + XON/XOFF + + + + Flow control using the RTS and CTS RS-232 control lines +not often used but some radios have it as an option and +a few, particularly some Kenwood rigs, require it). + RS-232のRTSとCTSをフロー制御に使うことはあまりありません. +しかし、いくつかの無線機ではオプションとして使われています. +またKenwoodのいくつかの無線機では必須です. + + + + &Hardware + ハードウェア(&H) + + + + Special control of CAT port control lines. + CAT用ポートの特別な設定. + + + + Force Control Lines + 制御信号を強制設定 + + + + + High + + + + + + Low + + + + + DTR: + + + + + RTS: + + + + + How this program activates the PTT on your radio? + このプログラムがどのようにして無線機のPTTを制御するか? + + + + PTT Method + PTT方式 + + + + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> + <html><head/><body><p>無線機のVOXで送受信を切り替える.</p><p>無線機インターフェイスハードウェアが無いとき使用.</p></body></html> + + + + VO&X + VO&X + + + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> + <html><head/><body><p>RS-232CのDTR信号をPTT制御に使う.</p><p>市販のCATインターフェイスのうち、いくつかはこの方法を使っています.</p><p>CATシリアルポートのDTRを使うか、または、別のポートのDTRを使うこともあります.</p></body></html> + + + + &DTR + + + + + Some radios support PTT via CAT commands, +use this option if your radio supports it and you have no +other hardware interface for PTT. + CATコマンドでPTTを制御する無線機があります. +そのような無線機ではこのオプションを使うと +他のハードウェアインターフェイスが必要なくなります. + + + + C&AT + + + + + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> + <html><head/><body><p>RS-232CのRTS信号をPTT制御に使います.</p><p>市販のCATインターフェイスのうち、いくつかはこの方法を使っています.</p><p>CATシリアルポートのRTSを使う、または、別のポートのRTSを使うこともあります. CATポートのハードウェアフロー制御を使う場合、このオプションは使えないことに注意してください.</p></body></html> + + + + R&TS + + + + + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> + <html><head/><body><p>PTT制御に使うシリアルポートを選択. このオプションはDTRまたはRTSでPTTを制御する場合に有効となります.</p><p>CAT制御のシリアルポートと同じポートでも構いません.</p><p>いくつかの特殊なインターフェイスでは特別なCATを選択します。そればリモートコントロールに使われたりします(例:OmniRig).</p></body></html> + + + + Modulation mode selected on radio. + 無線機の変調モード. + + + + Mode + モード + + + + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> + <html><head/><body><p>通常はUSBを使います</p><p>(無線機がデータやパケットモードを持っている場合以外).</p></body></html> + + + + US&B + US&B + + + + Don't allow the program to set the radio mode +(not recommended but use if the wrong mode +or bandwidth is selected). + プログラムが無線機のモードをセットできるようにはしないこと +(おすすめしませんが、無線機が間違ったモードやバンド幅に +セットされているときは使います). + + + + + None + 指定なし + + + + If this is available then it is usually the correct mode for this program. + + + + + Data/P&kt + + + + + Some radios can select the audio input using a CAT command, +this setting allows you to select which audio input will be used +(if it is available then generally the Rear/Data option is best). + CATコマンドで入力コネクタを選択できる無線機があります. +その場合、この設定でどの入力コネクタを使うか指定できます. +後ろのコネクタかデータ端子を使うことをお勧めします. + + + + Transmit Audio Source + 送信オーディオ入力端子 + + + + Rear&/Data + 後面/データ端子(&/) + + + + &Front/Mic + 前面/マイク端子(&F) + + + + Rig: + 無線機: + + + + Poll Interval: + ポーリング間隔: + + + + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> + <html><head/><body><p>無線機の状態を見に行く時間間隔. 長めに設定すると、無線機の状態がプログラムに反映されるのに長くかかります.</p></body></html> + + + + s + + + + + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> + <html><head/><body><p>これらの設定を使って無線機接続を試みます.</p><p>接続が確立されればボタンは緑に、失敗すれば赤になります.</p></body></html> + + + + Test CAT + CATをテスト + + + + Attempt to activate the transmitter. +Click again to deactivate. Normally no power should be +output since there is no audio being generated at this time. +Check that any Tx indication on your radio and/or your +radio interface behave as expected. + 無線機を送信状態にする. +もう一度クリックして送信状態解除. 通常はオーディオ信号を +発生していないので送信出力はでないはずです. +無線機が送信状態になるかどうか、 +インターフェイスが正しくどうさするかどうかチェックしてください. + + + + Test PTT + PTTテスト + + + + Split Operation + スプリット + + + + Fake It + 擬似スプリット + + + + Rig + 無線機 + + + + A&udio + オーディオ(&u) + + + + Audio interface settings + オーディオインターフェース設定 + + + + Souncard + サウンドカード + + + + Soundcard + サウンドカード + + + + Select the audio CODEC to use for transmitting. +If this is your default device for system sounds then +ensure that all system sounds are disabled otherwise +you will broadcast any systems sounds generated during +transmitting periods. + 送信用オーディオコーデックを選択. +もし、システムデフォルトデバイスであればシステム音が +すべてオフになっていることを確認してください. +さもないと、システム音が送信されてしまいます. + + + + Select the audio CODEC to use for receiving. + 受信用オーディオコーデックを選択. + + + + &Input: + 入力(&I): + + + + Select the channel to use for receiving. + 受信用チャンネルを選択. + + + + + Mono + モノラル + + + + + Left + + + + + + Right + + + + + + Both + 両方 + + + + Select the audio channel used for transmission. +Unless you have multiple radios connected on different +channels; then you will usually want to select mono or +both here. + 送信用オーディオチャンネルを選択. +複数の無線機を別々のチャネルに割り当てていない限り +モノラルまたはステレオをここで選びます. + + + + Ou&tput: + 出力(&t): + + + + + Save Directory + ディレクトリ保存 + + + + Loc&ation: + 場所(&a): + + + + Path to which .WAV files are saved. + .WAVファイルを保存するパス. + + + + + TextLabel + テキストラベル + + + + Click to select a different save directory for .WAV files. + ここをクリックして .WAVファイルを保存する別のディレクトリを選択. + + + + S&elect + 選択(&e) + + + + + AzEl Directory + AzElディレクトリ + + + + Location: + 場所: + + + + Select + 選択 + + + + Power Memory By Band + バンドごとの出力 + + + + Remember power settings by band + バンドごとに出力設定 + + + + Enable power memory during transmit + 送信中に出力メモリを可能とする + + + + Transmit + 送信 + + + + Enable power memory during tuning + チューニング中に出力メモリを可能とする + + + + Tune + チューン + + + + Tx &Macros + Txマクロ(&M) + + + + Canned free text messages setup + フリーテキストメッセージ設定 + + + + &Add + 追加(&A) + + + + &Delete + 削除(&D) + + + + Drag and drop items to rearrange order +Right click for item specific actions +Click, SHIFT+Click and, CRTL+Click to select items + ドラッグアンドドロップで順番を変えます +右クリックでそれぞれの設定を変更します +SHIFT+クリック、CTRL+クリックで複数選択できます + + + + Reportin&g + レポート(&g) + + + + Reporting and logging settings + レポートとログの設定 + + + + Logging + ログ + + + + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. + 73またはフリーテキストメッセージを送った後でQSOをログするかどうかたずねるダイアログがポップアップします. + + + + Promp&t me to log QSO + QSOをログするよう促すメッセージを出す(&t) + + + + Op Call: + オペレータコール: + + + + Some logging programs will not accept the type of reports +saved by this program. +Check this option to save the sent and received reports in the +comments field. + ログプログラムのなかにはこのプログラムで保存した +レポートを受け付けないものもあります. +このオプションを使うと送信と受信レポートを +コメントに付加します. + + + + d&B reports to comments + dBレポートをコメントに追加(&B) + + + + Check this option to force the clearing of the DX Call +and DX Grid fields when a 73 or free text message is sent. + このオプションをオンにすると73またはフリーテキスト +メッセージを送った後、DXコールとDXグリッドをクリアします. + + + + Clear &DX call and grid after logging + ログした後DXコールとDXグリッドをクリアする(&D) + + + + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> + <html><head/><body><p>いくつかのログプログラムはWSJT-Xのモード名を受け付けません.</p></body></html> + + + + Con&vert mode to RTTY + モードをRTTYに変換(&v) + + + + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> + <html><head/><body><p>もしオペレータのコールサインが局のコールサインと違う場合、ここに指定.</p></body></html> + + + + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> + <html><head/><body><p>ここをチェックするとQSOが終了次第自動的にログに追加.されます.</p></body></html> + + + + Log automatically (contesting only) + 自動ログ記録(コンテストのみ) + + + + Network Services + ネットワークサービス + + + + The program can send your station details and all +decoded signals as spots to the http://pskreporter.info web site. +This is used for reverse beacon analysis which is very useful +for assessing propagation and system performance. + 貴局の詳細情報とデコードした信号を + http://pskreporter.info webサイトにスポットします. +電波伝搬やシステム性能を評価するのに大変有用な +リバースビーコンに使用されます. + + + + Enable &PSK Reporter Spotting + PSK Reporterによるスポットをオン(&P) + + + + UDP Server + UDPサーバー + + + + UDP Server: + UDPサーバー: + + + + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> + <html><head/><body><p>ネットワークサービスのホスト名指定オプション.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ホスト名</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 アドレス</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 アドレス</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 マルチキャストグループアドレス</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 マルチキャストグループアドレス</li></ul><p>空白の場合は、UDPブロードキャストがオフ.</p></body></html> + + + + UDP Server port number: + UDPサーバーのポート番号: + + + + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> + <html><head/><body><p>WSJT-Xがデータを送る先のUDPポート番号. ゼロの場合はデータを送りません.</p></body></html> + + + + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> + <html><head/><body><p>オンにすると、WSJT-XはUDPサーバーからのデータを受け付けます.</p></body></html> + + + + Accept UDP requests + UDP要求を受け付ける + + + + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> + <html><head/><body><p>UDPリクエストを受け付けたことを表示. OSやウィンドウマネージャによって振る舞いが変わります. アプリウィンドウが最小化されていたり隠れていたりしていてもUDPリクエストが送られてきたことを知るために使うことができます.</p></body></html> + + + + Notify on accepted UDP request + UDPリクエストが来たとき知らせる + + + + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> + <html><head/><body><p>UDPリクエストが来たとき、ウィンドウを最小化から元の大きさへ戻します.</p></body></html> + + + + Accepted UDP request restores window + ウィンドウを元に戻すUDPリクエストを受け付ける + + + + Secondary UDP Server (deprecated) + 第二UDPサーバー(使わないことを推奨) + + + + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> + <html><head/><body><p>ここをチェックすると、WSJT-XはADIFフォーマットのログ情報を指定のホストの指定のポートへブロードキャストします. </p></body></html> + + + + Enable logged contact ADIF broadcast + ADIFログ情報をブロードキャスト + + + + Server name or IP address: + サーバー名またはIPアドレス: + + + + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> + <html><head/><body><p>ADIF UDP ブロードキャストを受けるN1MM Logger+のホスト名. 通常は 'localhost' または ip アドレス 127.0.0.1</p><p>フォーマット:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ホスト名</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 マルチキャストグループアドレス</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 マルチキャストグループアドレス</li></ul><p>空白にすることで、UDP経由のADIF情報ブロードキャストを停止.</p></body></html> + + + + Server port number: + サーバーのポート番号: + + + + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> + <html><head/><body><p>WSJT-XがADIF情報をブロードキャストする先のUDPポート番号. N1MM Logger+のときは2333. ゼロの場合はブロードキャスト停止.</p></body></html> + + + + Frequencies + 周波数 + + + + Default frequencies and band specific station details setup + デフォルト周波数及びバンドごとの局情報設定 + + + + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> + <html><head/><body><p>あなたの無線機に合わせたパラメータ設定の詳細については、WSJT-Xユーザーガイドの &quot;Frequency Calibration&quot; セクションを参照のこと.</p></body></html> + + + + Frequency Calibration + 周波数較正 + + + + Slope: + スロープ: + + + + ppm + + + + + Intercept: + インターセプト: + + + + Hz + + + + + Working Frequencies + 運用周波数 + + + + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> + <html><head/><body><p>右クリックで周波数リストの管理.</p></body></html> + + + + Station Information + 局情報 + + + + Items may be edited. +Right click for insert and delete options. + 項目は編集できます. +右クリックで挿入や削除が選べます. + + + + Colors + + + + + Decode Highlightling + デコードハイライト + + + + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> + クリックすることでADIFファイル(wsjtx_log.adi)を読み直し、交信済みの情報を得る + + + + Rescan ADIF Log + ADIFログを再読み込み + + + + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> + <html><head/><body><p>ここから上すべてのハイライト項目のデフォルト値と優先度をリセットする.</p></body></html> + + + + Reset Highlighting + ハイライトをリセット + + + + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> + <html><head/><body><p>チェックボックスでオンオフを切り替え、右クリックで項目を編集、文字色、背景色を指定、あるいはデフォルト値へリセット. ドラッグアンドドロップで項目の優先順位を変更、リストの上にいくほど優先度高.</p><p>文字色と背景色はそれぞれ指定または解除が選択可能. 解除とはその項目では色指定されないが、より低い優先度の項目で指定されるかもしれないという意味.</p></body></html> + + + + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> + <html><head/><body><p>チェックするとモードごとに新DXCCエンティティ、新グリッドスクエア、新コールサインを表示します.</p></body></html> + + + + Highlight by Mode + モードハイライト + + + + Include extra WAE entities + WAEの特別エンティティを含む + + + + Check to for grid highlighting to only apply to unworked grid fields + チェックするとグリッドハイライトは未交信グリッドのみに適用 + + + + Only grid Fields sought + グリッドのみ検索 + + + + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> + <html><head/><body><p>LotWユーザー参照設定.</p></body></html> + + + + Logbook of the World User Validation + LotWユーザー確認 + + + + Users CSV file URL: + ユーザーのCSVファイルURL: + + + + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> + <html><head/><body><p>ARRL LotWのURL. QSO相手がLotWを使っているかどうかを判定しハイライトするために、相手がいつログデータをLotWへアップロードしたか調べます.</p></body></html> + + + + https://lotw.arrl.org/lotw-user-activity.csv + + + + + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> + <html><head/><body><p>このボタンを押すとQSO相手が最近いつLotWへログをアップロードしたかという情報を取得します.</p></body></html> + + + + Fetch Now + データ取り込み + + + + Age of last upload less than: + 最終アップロード日がこの日数以内: + + + + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> + <html><head/><body><p>このスピンボックスを使ってLotWユーザが過去何日以内にLotWへログをアップデートしたらLotWを現在も使っていると判断するか指定します.</p></body></html> + + + + days + + + + + Advanced + 詳細 + + + + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> + <html><head/><body><p>JT65 VHF/UHF/Microwaveデコードのユーザパラメータ設定.</p></body></html> + + + + JT65 VHF/UHF/Microwave decoding parameters + JT65 VHF/UHF/Microwave デコードパラメータ + + + + Random erasure patterns: + ランダム消去パターン: + + + + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> + <html><head/><body><p>確率的判定の最大ランダム消去パターン数 Reed Solomon デコーダーは 10^(n/2).</p></body></html> + + + + Aggressive decoding level: + デコードレベル: + + + + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> + <html><head/><body><p>大きな値にするとデコードする確率は高まりますが、同時に誤ったデータを出力する可能性も高まります.</p></body></html> + + + + Two-pass decoding + 2パスデコード + + + + Special operating activity: Generation of FT4, FT8, and MSK144 messages + 特別な運用 FT4, FT8, MSK144用のメッセージ生成 + + + + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> + <html><head/><body><p>FT8 DXペディションモード: DXを呼ぶHound オペレータ</p></body></html> + + + + Hound + + + + + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> + <html><head/><body><p>北アメリカ VHF/UHF/Microwave コンテストなど、コンテストナンバーとして4桁のグリッドロケーター使う場合.</p></body></html> + + + + NA VHF Contest + NA VHFコンテスト + + + + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> + <html><head/><body><p>FT8 DXペディションモード: Fox (DXペディションのオペレータ).</p></body></html> + + + + Fox + + + + + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> + <html><head/><body><p>European VHF+ コンテスト, コンテストナンバーとしてシグナルレポート、シリアルナンバー、6桁のロケータを交換する場合.</p></body></html> + + + + EU VHF Contest + EU VHFコンテスト + + + + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> + <html><head/><body><p>ARRL RTTY ラウンドアップなどのコンテスト. コンテストナンバーはアメリカ州、カナダ州、または &quot;DX&quot;.</p></body></html> + + + + RTTY Roundup messages + RTTYラウンドアップメッセージ + + + + RTTY RU Exch: + + + + + NJ + + + + + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> + <html><head/><body><p>ARRL フィールドデーのコンテストナンバー、送信機, クラス, ARRL/RAC セクション または &quot;DX&quot;.</p></body></html> + + + + ARRL Field Day + ARRLフィールドデー + + + + FD Exch: + FD ナンバー: + + + + 6A SNJ + + + + + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> + <html><head/><body><p>World-Wide デジモードコンテスト</p><p><br/></p></body></html> + + + + WW Digi Contest + WWデジタルコンテスト + + + + Miscellaneous + その他 + + + + Degrade S/N of .wav file: + wavファイルのSN比を落とす: + + + + + For offline sensitivity tests + オフライン感度テスト用 + + + + dB + dB + + + + Receiver bandwidth: + 受信バンド幅: + + + + Hz + Hz + + + + Tx delay: + 送信遅延: + + + + Minimum delay between assertion of PTT and start of Tx audio. + PTTをオンにしてからオーディオ信号を発生するまでの最小時間. + + + + s + + + + + Tone spacing + トーン間隔 + + + + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> + <html><head/><body><p>通常の2倍のトーン間隔を持った信号を送信. 電波を出す際に周波数を2分の1にする特別なLF/MF送信機用.</p></body></html> + + + + x 2 + x 2 + + + + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> + <html><head/><body><p>通常の4倍のトーン間隔を持った信号を送信. 電波を出す際に周波数を4分の1にする特別なLF/MF送信機用.</p></body></html> + + + + x 4 + x 4 + + + + Waterfall spectra + ウォーターフォールスペクトラム + + + + Low sidelobes + サイドローブ表示控え目 + + + + Most sensitive + 最大感度 + + + + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> + <html><head/><body><p>コンフィグレーション変更の破棄 (キャンセル) または 適用 (OK)</p><p>無線機インターフェイスのリセットとサウンドカードの変更を含む</p></body></html> + + + + main + + + + Fatal error + 致命的エラー + + + + + Unexpected fatal error + 予期せぬ致命的エラー + + + + Where <rig-name> is for multi-instance support. + ここで<rig-name>は複数インスタンスのサポート. + + + + rig-name + + + + + Where <configuration> is an existing one. + ここで<configuration>はすでに設定済みのもの. + + + + configuration + + + + + Where <language> is <lang-code>[-<country-code>]. + ここで<language>は<lang-code>[-<country-code>]. + + + + language + + + + + Writable files in test location. Use with caution, for testing only. + テスト用書き込み可能ファイル. 注意してテストだけに使うこと. + + + + Command line error + コマンドラインエラー + + + + Command line help + コマンドラインヘルプ + + + + Application version + アプリのバージョン + + + + Another instance may be running + おそらく他のインスタンスが動作中 + + + + try to remove stale lock file? + 古いロックファイルの削除を試みますか? + + + + Failed to create a temporary directory + 一時的作業ディレクトリーが作成できません + + + + + Path: "%1" + パス:"%1" + + + + Failed to create a usable temporary directory + 一時的作業ディレクトリが作成できません + + + + Another application may be locking the directory + おそらく他のアプリがディレクトリをロックしています + + + + Failed to create data directory + データ用ディレクトリの作成ができません + + + + path: "%1" + パス: "%1" + + + + Shared memory error + 共有メモリエラー + + + + Unable to create shared memory segment + 共有メモリセグメントが作成できません + + + + wf_palette_design_dialog + + + Palette Designer + パレットデザイナー + + + + <html><head/><body><p>Double click a color to edit it.</p><p>Right click to insert or delete colors.</p><p>Colors at the top represent weak signals</p><p>and colors at the bottom represent strong</p><p>signals. You can have up to 256 colors.</p></body></html> + <html><head/><body><p>ダブルクリックで色変更.</p><p>右クリックで色の追加または削除.</p><p>上の方の色は弱い信号を表します</p><p>そして下の方の色は強い信号を表します</p><p>信号. 256色まで使用可能.</p></body></html> + + + From 51f18b1faa9aa467e726218959ccdaac86786938 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 31 May 2020 14:21:31 +0100 Subject: [PATCH 032/520] Chinese and HK Chinese UI translations, thanks Sze-To, VR2UPU --- CMakeLists.txt | 2 + translations/wsjtx_zh.ts | 6333 +++++++++++++++++++++++++++++++++++ translations/wsjtx_zh_HK.ts | 6333 +++++++++++++++++++++++++++++++++++ 3 files changed, 12668 insertions(+) create mode 100644 translations/wsjtx_zh.ts create mode 100644 translations/wsjtx_zh_HK.ts diff --git a/CMakeLists.txt b/CMakeLists.txt index b9c0e1d95..b95c09f54 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1104,6 +1104,8 @@ set (LANGUAGES es # Spanish ca # Catalan ja # Japanese + zh # Chinese + zh_HK # Chinese per Hong Kong ) foreach (lang_ ${LANGUAGES}) file (TO_NATIVE_PATH translations/wsjtx_${lang_}.ts ts_) diff --git a/translations/wsjtx_zh.ts b/translations/wsjtx_zh.ts new file mode 100644 index 000000000..a8288ca62 --- /dev/null +++ b/translations/wsjtx_zh.ts @@ -0,0 +1,6333 @@ + + + + + AbstractLogWindow + + + &Delete ... + 删除&D ... + + + + AbstractLogWindow::impl + + + Confirm Delete + 确认删除 + + + + Are you sure you want to delete the %n selected QSO(s) from the log? + + 是否确实要从日志中删除 %n 选定的通联? + + + + + Astro + + + + Doppler tracking + 多普勒跟踪 + + + + <html><head/><body><p>One station does all Doppler shift correction, their QSO partner receives and transmits on the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + <html><head/><body><p>一个站执行所有多普勒换档校正, 他们的通联合作伙伴接收和传输 sked 频率.</p><p>如果无线电设备在传输单个校正时不接受 CAT QSY 命令则在整个传输期间应用.</p></body></html> + + + + Full Doppler to DX Grid + 全多普勒到 DX 网格 + + + + <html><head/><body><p>Transmit takes place on sked frequency and receive frequency is corrected for own echoes. </p><p>This mode can be used for calling CQ, or when using Echo mode.</p></body></html> + <html><head/><body><p>传输以 sked 频率进行, 接收频率被校正为自己的回波. </p><p>此模式可用于呼叫 CQ 或使用回波模式时.</p></body></html> + + + + Own Echo + 自己的回波 + + + + <html><head/><body><p>Both stations correct for Doppler shift such that they would be heard on the moon at the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p><p>Use this option also for Echo mode.</p></body></html> + <html><head/><body><p>两个站都对多普勒移位进行校正, 这样它们就会在月球上以sked频率听到.</p><p>如果无线电设备在传输单个校正时不接受 CAT QSY 命令, 则在整个传输期间应用.</p><p>对于回波模式也使用此选项.</p></body></html> + + + + Constant frequency on Moon + 月球上的恒定频率 + + + + <html><head/><body><p>DX station announces their TX Freq, which is entered as the Sked Freq. Correction applied to RX and TX so you appear on the DX's station's own echo Freq.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + <html><head/><body><p>DX电台宣布其发射频率, 这是输入作为Sked频率修正应用于接收和发射, 所以你出现在DX电台自己的回波频率.</p><p>如果无线电设备在传输单个校正时不接受 CAT QSY 命令则在整个传输期间应用.</p></body></html> + + + + On DX Echo + 在 DX 回波 + + + + <html><head/><body><p>Tune radio manually and select this mode to put your echo on the same frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + <html><head/><body><p>手动调谐无线电设备并选择此模式, 将回波置于相同频率.</p><p>如果无线电设备在传输单个校正时不接受 CAT QSY 命令则在整个传输期间应用.</p></body></html> + + + + Call DX + 呼叫 DX + + + + <html><head/><body><p>No Doppler shift correction is applied. This may be used when the QSO partner does full Doppler correction to your grid square.</p></body></html> + <html><head/><body><p>未应用多普勒换文件校正. 当通联合作伙伴对网格方进行完全多普勒校正时可能会使用.</p></body></html> + + + + None + + + + + Sked frequency + Sked 频率 + + + + + 0 + + + + + Rx: + 接收: + + + + Tx: + 发射: + + + + <html><head/><body><p>Press and hold the CTRL key to adjust the sked frequency manually with the rig's VFO dial or enter frequency directly into the band entry field on the main window.</p></body></html> + <html><head/><body><p>按住 CTRL 键使用手动 sked 频率与无线电设备 VFO 将频率直接拨入主窗口中的频段输入字段.</p></body></html> + + + + Astro Data + 天体数据 + + + + Astronomical Data + 天文数据 + + + + Doppler Tracking Error + 多普勒跟踪错误 + + + + Split operating is required for Doppler tracking + 多普勒跟踪需要异频操作 + + + + Go to "Menu->File->Settings->Radio" to enable split operation + 转到 "菜单->档案->设置->无线电设备" 启用异频操作 + + + + Bands + + + Band name + 波段名称 + + + + Lower frequency limit + 频率下限 + + + + Upper frequency limit + 频率上限 + + + + Band + 波段 + + + + Lower Limit + 下限 + + + + Upper Limit + 上限 + + + + CAboutDlg + + + About WSJT-X + 关于 WSJT-X + + + + OK + 确定 + + + + CPlotter + + + &Set Rx && Tx Offset + 设置接收 & & 发射偏频&S + + + + CabrilloLog + + + Freq(MHz) + 频率(MHz) + + + + Mode + 模式 + + + + Date & Time(UTC) + 日期和时间(UTC) + + + + Call + 呼号 + + + + Sent + 发出 + + + + Rcvd + 接收 + + + + Band + 波段 + + + + CabrilloLogWindow + + + Contest Log + 竞赛日志 + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + <html><head/><body><p>按右键此处查看可用操作.</p></body></html> + + + + Right-click here for available actions. + 按右键此处查看可用操作. + + + + CallsignDialog + + + Callsign + 呼号 + + + + ColorHighlighting + + + + + + + + + + + + + + + + + + K1ABC + + + + + CQ in message + CQ 在信息内 + + + + My Call in message + 我呼号在信息内 + + + + Transmitted message + 发射信息 + + + + New DXCC + 新DXCC + + + + New Grid + 新网格 + + + + New DXCC on Band + 波段 新前缀 + + + + New Call + 新呼号 + + + + New Grid on Band + 波段 新网格 + + + + New Call on Band + 波段 新呼号 + + + + Uploads to LotW + 上传至 LotW + + + + New Continent + 新大洲 + + + + New Continent on Band + 波段 新大洲 + + + + New CQ Zone + 新 CQ区 + + + + New CQ Zone on Band + 波段 新CQ区 + + + + New ITU Zone + 新 ITU区 + + + + New ITU Zone on Band + 波段 新ITU区 + + + + Configuration::impl + + + + + &Delete + 删除&D + + + + + &Insert ... + 插入&I ... + + + + Failed to create save directory + 无法创建保存目录 + + + + path: "%1% + 目錄: "%1% + + + + Failed to create samples directory + 无法创建示例目录 + + + + path: "%1" + 目录: "%1" + + + + &Load ... + 加载&L ... + + + + &Save as ... + 另存为&S ... + + + + &Merge ... + 合并&M ... + + + + &Reset + 重置&R + + + + Serial Port: + 串行端口: + + + + Serial port used for CAT control + 用于CAT控制的串行端口 + + + + Network Server: + 网络服务器: + + + + Optional hostname and port of network service. +Leave blank for a sensible default on this machine. +Formats: + hostname:port + IPv4-address:port + [IPv6-address]:port + 可选主机名和网络服务端口. +为无线电设备合理默认值保留空白. +格式: + 主机名:端口 + IP v4-地址:端口 + [IPv6-地址]:端口 + + + + USB Device: + USB 设备: + + + + Optional device identification. +Leave blank for a sensible default for the rig. +Format: + [VID[:PID[:VENDOR[:PRODUCT]]]] + 可选的设备标识. +为无线电设备合理默认值保留空白. +格式: + [VID[:PID[:供应商[:产品]]]] + + + + Invalid audio input device + 无效的音频输入设备 + + + + Invalid audio out device + 无效的音频输出设备 + + + + Invalid PTT method + 无效的PTT方法 + + + + Invalid PTT port + 无效的PTT端口 + + + + + Invalid Contest Exchange + 无效的竞赛交换数据 + + + + You must input a valid ARRL Field Day exchange + 您必须输入有效的 ARRL Field Day交换数据 + + + + You must input a valid ARRL RTTY Roundup exchange + 您必须输入有效的 ARRL RTTY Roundup 交换 + + + + Reset Decode Highlighting + 重置解码突出显示 + + + + Reset all decode highlighting and priorities to default values + 将所有解码突出显示和优先级重置为默认值 + + + + WSJT-X Decoded Text Font Chooser + WSJT-X 解码文本字体选择 + + + + Load Working Frequencies + 载入工作频率 + + + + + + Frequency files (*.qrg);;All files (*.*) + 频率文件 (*.qrg);;所有文件 (*.*) + + + + Replace Working Frequencies + 替换工作频率 + + + + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? + 是否确实要放弃当前工作频率, 并将其替换为加载的频率? + + + + Merge Working Frequencies + 合并工作频率 + + + + + + Not a valid frequencies file + 不是有效的频率文件 + + + + Incorrect file magic + 不正确的文件內容 + + + + Version is too new + 版本太新 + + + + Contents corrupt + 内容已损坏 + + + + Save Working Frequencies + 保存工作频率 + + + + Only Save Selected Working Frequencies + 仅保存选定的工作频率 + + + + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. + 是否确实要仅保存当前选择的工作频率? 单击 否 可保存所有. + + + + Reset Working Frequencies + 重置工作频率 + + + + Are you sure you want to discard your current working frequencies and replace them with default ones? + 您确定要放弃您当前的工作频率并用默认值频率替换它们吗? + + + + Save Directory + 保存目录 + + + + AzEl Directory + AzEl 目录 + + + + Rig control error + 无线电设备控制错误 + + + + Failed to open connection to rig + 无法打开无线电设备的连接 + + + + Rig failure + 无线电设备故障 + + + + DXLabSuiteCommanderTransceiver + + + Failed to connect to DX Lab Suite Commander + + 无法连接到DX Lab Suite Commander + + + + + DX Lab Suite Commander didn't respond correctly reading frequency: + DX Lab Suite Commander读取频率没有正确响应: + + + + DX Lab Suite Commander sent an unrecognised TX state: + DX Lab Suite Commander 发送了一个无法识别的发送状态: + + + + DX Lab Suite Commander didn't respond correctly polling TX status: + DX Lab Suite Commander 没有测试正确响应轮询发送状态: + + + + DX Lab Suite Commander rig did not respond to PTT: + DX Lab Suite Commander 未响应无线电设备发送PTT: + + + + DX Lab Suite Commander didn't respond correctly polling frequency: + DX Lab Suite Commander 没有正确响应轮询频率: + + + + DX Lab Suite Commander didn't respond correctly polling TX frequency: + DX Lab Suite Commander 没有正确响应轮询发射频率: + + + + DX Lab Suite Commander sent an unrecognised split state: + DX Lab Suite Commander 发送了一个无法识别的异频状态: + + + + DX Lab Suite Commander didn't respond correctly polling split status: + DX Lab Suite Commander 没有正确响应轮询异频状态: + + + + DX Lab Suite Commander sent an unrecognised mode: " + DX Lab Suite Commander 发送了一个无法识别的模式: " + + + + DX Lab Suite Commander didn't respond correctly polling mode: + DX Lab Suite Commander 没有正确响应轮询模式: + + + + DX Lab Suite Commander send command failed + + DX Lab Suite Commander 发送命令失败 + + + + + DX Lab Suite Commander failed to send command "%1": %2 + + DX Lab Suite Commander 发送命令失败 "%1": %2 + + + + + DX Lab Suite Commander send command "%1" read reply failed: %2 + + DX Lab Suite Commander 发送命令 "%1" 读取回复失败: %2 + + + + + DX Lab Suite Commander retries exhausted sending command "%1" + DX Lab Suite Commander 发送命令重试失败 "%1" + + + + DX Lab Suite Commander sent an unrecognized frequency + DX Lab Suite Commander 发送了无法识别的频率 + + + + DecodeHighlightingListView + + + &Foreground color ... + 字体颜色&F... + + + + Choose %1 Foreground Color + 选择 %1 字体颜色 + + + + &Unset foreground color + 清除字体颜色&U + + + + &Background color ... + 底色&B ... + + + + Choose %1 Background Color + 选择 %1 底色 + + + + U&nset background color + 清除底色&n + + + + &Reset this item to defaults + 将此项重置为默认值&R + + + + DecodeHighlightingModel + + + CQ in message + CQ 信息 + + + + My Call in message + 我的信息 + + + + Transmitted message + 发射信息 + + + + New DXCC + 新DXCC + + + + New DXCC on Band + 波段新DXCC + + + + New Grid + 新网格 + + + + New Grid on Band + 波段新网格 + + + + New Call + 未曾通联过 + + + + New Call on Band + 波段未曾通联过 + + + + New Continent + 新大洲 + + + + New Continent on Band + 波段新大洲 + + + + New CQ Zone + 新 CQ Zone + + + + New CQ Zone on Band + 波段新 CQ Zone + + + + New ITU Zone + 新 ITU Zone + + + + New ITU Zone on Band + 波段新 ITU Zone + + + + LoTW User + LoTW用戶 + + + + f/g unset + f/g 未设置 + + + + b/g unset + b/g 未设置 + + + + Highlight Type + 突出显示类型 + + + + Designer + + + &Delete + 删除&D + + + + &Insert ... + 插入&I... + + + + Insert &after ... + 插入之后&a... + + + + Import Palette + 导入调色板 + + + + + Palettes (*.pal) + 调色板 (*.pal) + + + + Export Palette + 导出调色板 + + + + Dialog + + + Gray time: + 灰线时间: + + + + Directory + + + + URL Error + 网址出错误 + + + + + Invalid URL: +"%1" + 无效的网址: +"%1" + + + + + + + + + + JSON Error + JSON出错误 + + + + Contents file syntax error %1 at character offset %2 + 内容文件语法出错误 %1 字符偏移量 %2 + + + + Contents file top level must be a JSON array + 内容文件顶层必须是JSON数组 + + + + File System Error + 文件系统出错误 + + + + Failed to open "%1" +Error: %2 - %3 + 未能打开 "%1" +出错误: %2 - %3 + + + + Contents entries must be a JSON array + 输入内容必须是JSON数组 + + + + Contents entries must have a valid type + 输入内容必须具有有效的类型 + + + + Contents entries must have a valid name + 输入内容必须具有有效的名称 + + + + Contents entries must be JSON objects + 输入内容必须是JSON对象 + + + + Contents directories must be relative and within "%1" + 目录内容必须是相对的并且在 "%1" + + + + Network Error + 网络出错误 + + + + Authentication required + 需要认证 + + + + DisplayText + + + &Erase + 清除&E + + + + EchoGraph + + + + Echo Graph + 回波图 + + + + <html><head/><body><p>Compression factor for frequency scale</p></body></html> + <html><head/><body><p>频率刻度的压缩系数</p></body></html> + + + + Bins/Pixel + 点/像素 + + + + Gain + 增益 + + + + <html><head/><body><p>Echo spectrum gain</p></body></html> + <html><head/><body><p>回波频谱增益</p></body></html> + + + + Zero + 零度 + + + + <html><head/><body><p>Echo spectrum zero</p></body></html> + <html><head/><body><p>回波频谱零度</p></body></html> + + + + <html><head/><body><p>Smoothing of echo spectrum</p></body></html> + <html><head/><body><p>回波频谱平滑</p></body></html> + + + + Smooth + 平滑 + + + + <html><head/><body><p>Number of echo transmissions averaged</p></body></html> + <html><head/><body><p>平均回波传输次数</p></body></html> + + + + N: 0 + + + + + <html><head/><body><p>Click to cycle through a sequence of colors and line widths.</p></body></html> + <html><head/><body><p>单击以循环显示一系列颜色和线条宽度.</p></body></html> + + + + Colors + 颜色 + + + + EmulateSplitTransceiver + + + Emulated split mode requires rig to be in simplex mode + 模拟异频模式要求无线电设备处于单工模式 + + + + EqualizationToolsDialog::impl + + + Phase + 相位 + + + + + Freq (Hz) + 频率( Hz) + + + + Phase (Π) + 相位 (Π) + + + + Delay (ms) + 延迟( ms) + + + + Measured + 测量 + + + + Proposed + 提出 + + + + Current + 当前 + + + + Group Delay + 组延迟 + + + + Amplitude + 振幅 + + + + Relative Power (dB) + 相对功率( dB) + + + + Reference + 参考 + + + + Phase ... + 相位 ... + + + + Refresh + 刷新 + + + + Discard Measured + 丢弃测量 + + + + ExistingNameDialog + + + Configuration to Clone From + 从中克隆的配置 + + + + &Source Configuration Name: + 源配置名称&S: + + + + ExportCabrillo + + + Dialog + 对话框 + + + + Location: + 位置: + + + + SNJ + + + + + Contest: + 比赛: + + + + ARRL-RTTY + + + + + Callsign: + 呼号: + + + + Category-Operator: + 类别-操作员: + + + + SINGLE-OP + + + + + Category-Transmitter: + 类别-发射机: + + + + ONE + + + + + Category-Power: + 类别-功率: + + + + LOW + + + + + Category-Assisted: + 类別-帮助: + + + + NON-ASSISTED + + + + + Category-Band: + 类别-波段: + + + + ALL + + + + + Claimed-Score: + 声称-得分: + + + + Operators: + 操作员: + + + + Club: + 俱乐部: + + + + Name: + 名稱: + + + + + Address: + 地址: + + + + Save Log File + 保存日志文件 + + + + Cabrillo Log (*.cbr) + 卡布里略日志 (*.cbr) + + + + Cannot open "%1" for writing: %2 + 无法打开 "%1" 进行写入: %2 + + + + Export Cabrillo File Error + 导出卡布里略文件错误 + + + + FastGraph + + + + Fast Graph + 快速图 + + + + Waterfall gain + 瀑布增益 + + + + Waterfall zero + 瀑布零度 + + + + Spectrum zero + 频谱零度 + + + + <html><head/><body><p>Set reasonable levels for gain and zero sliders.</p></body></html> + <html><head/><body><p>为增益和零滑块设置合理的水平.</body> </p></html> + + + + Auto Level + 自动电平 + + + + FoxLog::impl + + + Date & Time(UTC) + 日期和时间 (UTC) + + + + Call + 呼号 + + + + Grid + 网格 + + + + Sent + 发送 + + + + Rcvd + 接收 + + + + Band + 波段 + + + + FoxLogWindow + + + Fox Log + Fox 日志 + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + <html><head/><body><p>右键单击此处查看可用操作.</p></body></html> + + + + Callers: + 呼叫者: + + + + + + N + + + + + In progress: + 正在进行中: + + + + Rate: + 率: + + + + &Export ADIF ... + 导出 ADIF&E ... + + + + Export ADIF Log File + 导出 ADIF 日记文件 + + + + ADIF Log (*.adi) + ADIF 日志 (*.adi) + + + + Export ADIF File Error + 导出 ADIF 日记文件错误 + + + + Cannot open "%1" for writing: %2 + 无法打开 "%1" 以进行写入: %2 + + + + &Reset ... + 重置&R ... + + + + Confirm Reset + 确认重置 + + + + Are you sure you want to erase file FoxQSO.txt and start a new Fox log? + 是否确实要擦除文件 file FoxQSO.txt 并启动新的 Fox log日志? + + + + FrequencyDialog + + + Add Frequency + 添加频率 + + + + IARU &Region: + IA&RU 区域: + + + + &Mode: + 模式&M: + + + + &Frequency (MHz): + 频率 (M&Hz): + + + + FrequencyList_v2 + + + + IARU Region + IARU 区域 + + + + + Mode + 模式 + + + + + Frequency + 频率 + + + + + Frequency (MHz) + 频率 (MHz) + + + + HRDTransceiver + + + + Failed to connect to Ham Radio Deluxe + + 无法连接到 Ham Radio Deluxe + + + + + Failed to open file "%1": %2. + 无法打开文件 "%1": %2. + + + + + Ham Radio Deluxe: no rig found + Ham Radio Deluxe: 未找到无线电设备 + + + + Ham Radio Deluxe: rig doesn't support mode + Ham Radio Deluxe: 无线电设备不支持模式 + + + + Ham Radio Deluxe: sent an unrecognised mode + Ham Radio Deluxe: 发送了一个无法识别的模式 + + + + Ham Radio Deluxe: item not found in %1 dropdown list + Ham Radio Deluxe: 在 %1 下拉列表中找不到项目 + + + + Ham Radio Deluxe: button not available + Ham Radio Deluxe: 按钮不可用 + + + + Ham Radio Deluxe didn't respond as expected + Ham Radio Deluxe 没有如预期的那样响应 + + + + Ham Radio Deluxe: rig has disappeared or changed + Ham Radio Deluxe: 无线电设备已经消失或改变 + + + + Ham Radio Deluxe send command "%1" failed %2 + + Ham Radio Deluxe 发送命令 "%1" 失败 %2 + + + + + + Ham Radio Deluxe: failed to write command "%1" + Ham Radio Deluxe: 无法写入命令 "%1" + + + + Ham Radio Deluxe sent an invalid reply to our command "%1" + Ham Radio Deluxe 对我们的命令发出了无效的回复 "%1" + + + + Ham Radio Deluxe failed to reply to command "%1" %2 + + Ham Radio Deluxe 无法回复命令 "%1" %2 + + + + + Ham Radio Deluxe retries exhausted sending command "%1" + Ham Radio Deluxe 发送命令重试失败 "%1" + + + + Ham Radio Deluxe didn't respond to command "%1" as expected + Ham Radio Deluxe 没有回应预期的命令 "%1" + + + + HamlibTransceiver + + + + Hamlib initialisation error + Hamlib 初始化出错误 + + + + Hamlib settings file error: %1 at character offset %2 + Hamlib 设置文件出错误: %1 字符偏移量 %2 + + + + Hamlib settings file error: top level must be a JSON object + Hamlib 设置文件出错误: 顶层必须是 JSON 对象 + + + + Hamlib settings file error: config must be a JSON object + Hamlib 设置文件出错误: 配置必须是JSON对象 + + + + Unsupported CAT type + 不支持 CAT 类型 + + + + Hamlib error: %1 while %2 + Hamlib 出错误: %1 当 %2 + + + + opening connection to rig + 打开连接无线电设备 + + + + getting current frequency + 获取当前频率 + + + + getting current mode + 获取当前模式 + + + + + exchanging VFOs + 在 VFOs 之间切换 + + + + + getting other VFO frequency + 获取其他 VFO 频率 + + + + getting other VFO mode + 获取其他 VFO 模式 + + + + setting current VFO + 设置当前 VFO + + + + getting frequency + 获取频率 + + + + getting mode + 获取模式 + + + + + getting current VFO + 获取当前 VFO + + + + + + + getting current VFO frequency + 获取当前 VFO 频率 + + + + + + + + + setting frequency + 设置频率 + + + + + + + getting current VFO mode + 获取当前 VFO 模式 + + + + + + + + setting current VFO mode + 设置当前 VFO 模式 + + + + + setting/unsetting split mode + 设置/取消 设置异频模式 + + + + + setting split mode + 设置异频模式 + + + + setting split TX frequency and mode + 设置异频发射频率和模式 + + + + setting split TX frequency + 设置异频发射频率 + + + + getting split TX VFO mode + 获得异频发射 VFO 模式 + + + + setting split TX VFO mode + 设置异频发射 VFO 模式 + + + + getting PTT state + 获取PTT 状态 + + + + setting PTT on + 设置PTT 开启 + + + + setting PTT off + 设置PTT 关闭 + + + + setting a configuration item + 设置配置项目 + + + + getting a configuration item + 获取配置项目 + + + + HelpTextWindow + + + Help file error + 帮助文件错误 + + + + Cannot open "%1" for reading + 无法打开 "%1" 以进行阅读 + + + + Error: %1 + 错误: %1 + + + + IARURegions + + + + IARU Region + IARU 区域 + + + + LogQSO + + + Click OK to confirm the following QSO: + 单击 确定 确认以下通联: + + + + Call + 呼号 + + + + Start + 开始 + + + + + dd/MM/yyyy HH:mm:ss + + + + + End + 结束 + + + + Mode + 模式 + + + + Band + 波段 + + + + Rpt Sent + 发送报告 + + + + Rpt Rcvd + 接收报告 + + + + Grid + 网格 + + + + Name + 姓名 + + + + Tx power + 发射功率 + + + + + Retain + 保留 + + + + Comments + 注释 + + + + Operator + 操作员 + + + + Exch sent + 交换发送 + + + + Rcvd + 接收 + + + + + Invalid QSO Data + 无效的通联数据 + + + + Check exchange sent and received + 选择已交换的发送和接收 + + + + Check all fields + 检查所有字段 + + + + Log file error + 日志文件错误 + + + + Cannot open "%1" for append + 无法打开 "%1" 的追加 + + + + Error: %1 + 错误: %1 + + + + LotWUsers::impl + + + Network Error - SSL/TLS support not installed, cannot fetch: +'%1' + 网络错误 - SSL/TLS 支持未安装, 无法提取: +'%1' + + + + Network Error - Too many redirects: +'%1' + 网络错误 - 重定向太多: +'%1' + + + + Network Error: +%1 + 网络错误: +%1 + + + + File System Error - Cannot commit changes to: +"%1" + 文件系统错误 - 无法将更改提交到: +"%1" + + + + File System Error - Cannot open file: +"%1" +Error(%2): %3 + 文件系统错误r - 无法打开文件: +"%1" +错误(%2): %3 + + + + File System Error - Cannot write to file: +"%1" +Error(%2): %3 + 文件系统错误 - 无法写入文件: +"%1" +错误(%2): %3 + + + + MainWindow + + + WSJT-X by K1JT + + + + + + + + + + + Band Activity + 波段活动 + + + + + UTC dB DT Freq Dr + + + + + + + + + + Rx Frequency + 接收信息 + + + + CQ only + 仅限 CQ + + + + Enter this QSO in log + 在日志中输入此通联 + + + + Log &QSO + 纪录 &QSO + + + + Stop monitoring + 停止监听 + + + + &Stop + 停止&S + + + + Toggle monitoring On/Off + 切换监听开/关 + + + + &Monitor + 监听&M + + + + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> + <html><head/><body><p>擦除右窗口. 双击可擦除两个窗口.</p></body></html> + + + + Erase right window. Double-click to erase both windows. + 擦除右窗口. 双击可擦除两个窗口. + + + + &Erase + 擦除&E + + + + <html><head/><body><p>Clear the accumulating message average.</p></body></html> + <html><head/><body><p>清除累积信息平均值.</p></body></html> + + + + Clear the accumulating message average. + 清除累积信息平均值. + + + + Clear Avg + 清除平均 + + + + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> + <html><head/><body><p>在通联频率下解码最近的接收周期</p></body></html> + + + + Decode most recent Rx period at QSO Frequency + 在通联频率下解码最近的接收周期 + + + + &Decode + 解码&D + + + + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> + <html><head/><body><p>切换自动发射 开/关</p></body></html> + + + + Toggle Auto-Tx On/Off + 切换自动发射 开/关 + + + + E&nable Tx + 启用发射&n + + + + Stop transmitting immediately + 立即停止发射 + + + + &Halt Tx + 停止发射&H + + + + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> + <html><head/><body><p>切换发射纯音调 开/关</p></body></html> + + + + Toggle a pure Tx tone On/Off + 切换发射纯音调 开/关 + + + + &Tune + 调谐&T + + + + Menus + 菜单 + + + + USB dial frequency + 上边带频率 + + + + 14.078 000 + + + + + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> + <html><head/><body><p>当只存在噪音时建议30dB<br/>绿色好<br/>红色时可能发生剪切<br/>黄色时太低</p></body></html> + + + + Rx Signal + 接收信号 + + + + 30dB recommended when only noise present +Green when good +Red when clipping may occur +Yellow when too low + 当只存在噪音时建议30dB +绿色好 +红色时可能发生剪切 +黄色时太低 + + + + DX Call + DX 呼号 + + + + DX Grid + DX 网格 + + + + Callsign of station to be worked + 正在通联的电台呼号 + + + + Search for callsign in database + 在数据库中搜索此呼号的网格数据 + + + + &Lookup + 检索&L + + + + Locator of station to be worked + 通联中的电台定位 + + + + Az: 251 16553 km + 角度: 251 16553 公里 + + + + Add callsign and locator to database + 增加这呼号及网格的数据在数据库中 + + + + Add + 增加 + + + + Pwr + 功率 + + + + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> + <html><head/><body><p>如果橙色或红色出现表示无线电设备控制故障, 请单击以重置并读取频率. S 表示异频模式.</p></body></html> + + + + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. + 如果橙色或红色出现表示无线电设备控制故障, 请单击以重置并读取频率. S 表示异频模式. + + + + ? + + + + + Adjust Tx audio level + 调整发射音频电平 + + + + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> + <html><head/><body><p>选择工作频段或输入 MHz 频率或输入 kHz 增量,然后输入 k.</p></body></html> + + + + Frequency entry + 输入频率 + + + + Select operating band or enter frequency in MHz or enter kHz increment followed by k. + 选择工作频段或输入 MHz 频率或输入 kHz 增量,然后输入 k. + + + + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + + + + + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> + <html><head/><body><p>双击解码文本时, 选择以保持发射频率固定.</p></body></html> + + + + Check to keep Tx frequency fixed when double-clicking on decoded text. + 双击解码文本时, 选择以保持发射频率固定. + + + + Hold Tx Freq + 保持发射频率 + + + + Audio Rx frequency + 音频接收频率 + + + + + + Hz + 赫兹 + + + + Rx + 接收 + + + + Set Tx frequency to Rx Frequency + 将发射频率设置为接收频率 + + + + ▲ + + + + + Frequency tolerance (Hz) + 频率容差 (Hz) + + + + F Tol + 容差 + + + + Set Rx frequency to Tx Frequency + 将接收频率位置移往发射频率位置 + + + + ▼ + + + + + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> + <html><head/><body><p>同步阈值. 较低的数字接受较弱的同步信号.</p></body></html> + + + + Synchronizing threshold. Lower numbers accept weaker sync signals. + 同步阈值. 较低的数字接受较弱的同步信号. + + + + Sync + 同步 + + + + <html><head/><body><p>Check to use short-format messages.</p></body></html> + <html><head/><body><p>选择以使用短格式信息.</p></body></html> + + + + Check to use short-format messages. + 选择以使用短格式信息. + + + + Sh + + + + + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> + <html><head/><body><p>选择以启用 JT9 快速模式</p></body></html> + + + + Check to enable JT9 fast modes + 选择以启用 JT9 快速模式 + + + + + Fast + 快速 + + + + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> + <html><head/><body><p>选择以启用基于收到的信息自动排序发射信息.</p></body></html> + + + + Check to enable automatic sequencing of Tx messages based on received messages. + 选择以启用基于收到的信息自动排序发射信息. + + + + Auto Seq + 自动程序 + + + + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> + <html><head/><body><p>选择以呼叫第一个解码的响应器到我的 CQ.</p></body></html> + + + + Check to call the first decoded responder to my CQ. + 选择以呼叫第一个解码的响应器到我的 CQ. + + + + Call 1st + 呼叫第一 + + + + Check to generate "@1250 (SEND MSGS)" in Tx6. + 选择以生成 "@1250 (SEND MSGS)" in Tx6. + + + + Tx6 + 发射6 + + + + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> + <html><head/><body><p>选择发射以偶数分钟或序列, 从 0 开始; 取消选择以奇数序列.</p></body></html> + + + + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. + 选择发射以偶数分钟或序列, 从 0 开始; 取消选择以奇数序列. + + + + Tx even/1st + 发射偶数/第一 + + + + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> + <html><head/><body><p>呼叫 CQ 的频率以 kHz 高于当前的 MHz</p></body></html> + + + + Frequency to call CQ on in kHz above the current MHz + 呼叫 CQ 的频率以 kHz 高于当前的 MHz + + + + Tx CQ + 发射 CQ + + + + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> + <html><head/><body><p>选中此项, 以发射CQ呼叫. 接收将在当前频率上, CQ信息将显示在当前的接收信息窗口, 以便呼叫者知道回复的频率.</p><p>不适用于非标准呼号持有者.</p></body></html> + + + + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. +Not available to nonstandard callsign holders. + 选中此项, 以发射CQ呼叫. 接收将在当前频率上, CQ信息将显示在当前的接收信息窗口, 以便呼叫者知道回复的频率. +不适用于非标准呼号持有者. + + + + Rx All Freqs + 接收全部频率 + + + + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> + <html><head/><body><p>子模式確定音調間距; A 最窄.</p></body></html> + + + + Submode determines tone spacing; A is narrowest. + 子模式確定音調間距; A 最窄. + + + + Submode + 子模式 + + + + + Fox + 狐狸 + + + + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> + <html><head/><body><p>选择以监视 Sh 信息.</p></body></html> + + + + Check to monitor Sh messages. + 选择以监视 Sh 信息. + + + + SWL + + + + + Best S+P + 最佳 S+P + + + + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> + <html><head/><body><p>选中可开始记录校准数据.<br/>当测量校准校正被禁用时.<br/>未检查时您可以查看校准结果.</p></body></html> + + + + Check this to start recording calibration data. +While measuring calibration correction is disabled. +When not checked you can view the calibration results. + 选中可开始记录校准数据. +当测量校准校正被禁用时. +未检查时您可以查看校准结果. + + + + Measure + 测量 + + + + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> + <html><head/><body><p>信号报告: 参考2500 Hz 带宽 (dB) 中的信噪比.</p></body></html> + + + + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). + 信号报告: 参考2500 Hz 带宽 (dB) 中的信噪比. + + + + Report + 报告 + + + + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> + <html><head/><body><p>发射/接收 或频率校准序列长度</p></body></html> + + + + Tx/Rx or Frequency calibration sequence length + 发射/接收 或频率校准序列长度 + + + + s + + + + + T/R + + + + + Toggle Tx mode + 切换发射模式 + + + + Tx JT9 @ + 发射 JT9 @ + + + + Audio Tx frequency + 音频发射频率 + + + + + Tx + 发射 + + + + Tx# + 发射# + + + + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> + <html><head/><body><p>双击另一个呼号以排队呼叫您的下一个通联.</p></body></html> + + + + Double-click on another caller to queue that call for your next QSO. + 双击另一个呼号以排队呼叫您的下一个通联. + + + + Next Call + 下一个通联 + + + + 1 + + + + + + + Send this message in next Tx interval + 在下一个发射间隔内发送此信息 + + + + Ctrl+2 + + + + + <html><head/><body><p>Send this message in next Tx interval</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>在下一个发射间隔内发送此信息</p><p>双击以切换使用 Tx1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者)</p></body></html> + + + + Send this message in next Tx interval +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) + 在下一个发射间隔内发送此信息 +双击以切换使用 Tx1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者) + + + + Ctrl+1 + + + + + + + + Switch to this Tx message NOW + 立即切换到此发射信息 + + + + Tx &2 + 发射&2 + + + + Alt+2 + + + + + <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>立即切换到此发射信息</p><p>双击以切换使用 Tx1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者)</p></body></html> + + + + Switch to this Tx message NOW +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) + 立即切换到此发射信息 +双击以切换使用 Tx1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者) + + + + Tx &1 + 发射&1 + + + + Alt+1 + + + + + Ctrl+6 + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> + <html><head/><body><p>在下一个发射间隔内发送此信息</p><p>双击可重置为标准 73 信息</p></body></html> + + + + Send this message in next Tx interval +Double-click to reset to the standard 73 message + 在下一个发射间隔内发送此信息 +双击可重置为标准 73 信息 + + + + Ctrl+5 + + + + + Ctrl+3 + + + + + Tx &3 + 发射&3 + + + + Alt+3 + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>在下一个发射间隔内发送此信息</p><p>双击可在 Tx4 中的 RRR 和 RR73 信息之间切换 (不允许类型 2 复合呼叫持有者)</p><p>RR73 信息仅在您有理由相信不需要重复信息时才应使用</p></body></html> + + + + Send this message in next Tx interval +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + 在下一个发射间隔内发送此信息 +双击可在 Tx4 中的 RRR 和 RR73 信息之间切换 (不允许类型 2 复合呼叫持有者) +RR73 信息仅在您有理由相信不需要重复信息时才应使用 + + + + Ctrl+4 + + + + + <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>立即切换到此发射信息</p><p>双击可在 Tx4 中的 RRR 和 RR73 信息之间切换 (不允许类型 2 复合呼叫持有者)</p><p>RR73 信息仅在您有理由相信不需要重复信息时才应使用</p></body></html> + + + + Switch to this Tx message NOW +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + 立即切换到此发射信息 +双击可在 Tx4 中的 RRR 和 RR73 信息之间切换 (不允许类型 2 复合呼叫持有者) +RR73 信息仅在您有理由相信不需要重复信息时才应使用 + + + + Tx &4 + 发射&4 + + + + Alt+4 + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> + <html><head/><body><p>立即切换到此发射信息</p><p>双击可重置为标准 73 信息</p></body></html> + + + + Switch to this Tx message NOW +Double-click to reset to the standard 73 message + 立即切换到此发射信息 +双击可重置为标准 73 信息 + + + + Tx &5 + 发射&5 + + + + Alt+5 + + + + + Now + 现在 + + + + Generate standard messages for minimal QSO + 生成标准信息用于通联 + + + + Generate Std Msgs + 生成标准信息 + + + + Tx &6 + 发射&6 + + + + Alt+6 + + + + + + Enter a free text message (maximum 13 characters) +or select a predefined macro from the dropdown list. +Press ENTER to add the current text to the predefined +list. The list can be maintained in Settings (F2). + 输入自定义文本信息(最多13个字符) +或者从下拉列表中选择预定义的宏. +按回车键将当前文本添加到预定义的 +列表. 该列表可在设置(F2)中维护. + + + + Queue up the next Tx message + 排队下一个发射信息 + + + + Next + 下一个 + + + + 2 + + + + + Calling CQ + 呼叫 CQ + + + + Generate a CQ message + 生成CQ信息 + + + + + + CQ + + + + + Generate message with RRR + 生成RRR信息 + + + + RRR + + + + + Generate message with report + 生成报告信息 + + + + dB + + + + + Answering CQ + 回答 CQ + + + + Generate message for replying to a CQ + 生成信息以回答 CQ + + + + + Grid + 网格 + + + + Generate message with R+report + 生成 R+ 报告信息 + + + + R+dB + + + + + Generate message with 73 + 生成73信息 + + + + 73 + + + + + Send this standard (generated) message + 发送此标准(生成)信息 + + + + Gen msg + 生成信息 + + + + Send this free-text message (max 13 characters) + 发送此自定义文本信息(最多13个字符) + + + + Free msg + 自定义文本 + + + + 3 + + + + + Max dB + 最大 dB + + + + CQ AF + + + + + CQ AN + + + + + CQ AS + + + + + CQ EU + + + + + CQ NA + + + + + CQ OC + + + + + CQ SA + + + + + CQ 0 + + + + + CQ 1 + + + + + CQ 2 + + + + + CQ 3 + + + + + CQ 4 + + + + + CQ 5 + + + + + CQ 6 + + + + + CQ 7 + + + + + CQ 8 + + + + + CQ 9 + + + + + Reset + 重置 + + + + N List + N 列表 + + + + N Slots + N 插槽 + + + + + Random + 随机 + + + + Call + 呼叫 + + + + S/N (dB) + + + + + Distance + 距离 + + + + More CQs + 更多 CQ + + + + Percentage of 2-minute sequences devoted to transmitting. + 用于传输的 2 分钟序列的百分比. + + + + % + + + + + Tx Pct + 发射 Pct + + + + Band Hopping + 波段预案 + + + + Choose bands and times of day for band-hopping. + 选择波段和一天之中的时间进行波段跳跃. + + + + Schedule ... + 时间流程 ... + + + + Upload decoded messages to WSPRnet.org. + 将解码的信息上载到 WSPRnet.org. + + + + Upload spots + 上传 spots + + + + <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>6 位定位器会导致发送 2 个不同的信息, 第二个包含完整定位器, 但只有哈希呼号. 其他电台必须解码第一个一次. 然后才能在第二个中解码您的呼叫. 如果此选项将避免两个信息协议. 则选中此选项仅发送 4 位定位器.</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. + 6 位定位器会导致发送 2 个不同的信息, 第二个包含完整定位器, 但只有哈希呼号. 其他电台必须解码第一个一次. 然后才能在第二个中解码您的呼叫. 如果此选项将避免两个信息协议. 则选中此选项仅发送 4 位定位器. + + + + Prefer type 1 messages + 首选类型 1信息 + + + + No own call decodes + 没有自己的呼号解码 + + + + Transmit during the next 2-minute sequence. + 在接下来的2分钟序列中输送. + + + + Tx Next + 发射下一个信息 + + + + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. + 将发射功率设置为 dBm (dB 高于 1 mW) 作为 WSPR 信息的一部分. + + + + File + 文件 + + + + View + 显示 + + + + Decode + 解码 + + + + Save + 保存 + + + + Help + 帮助 + + + + Mode + 模式 + + + + Configurations + 配置 + + + + Tools + 工具 + + + + Exit + 关闭软件 + + + + Configuration + 配置档 + + + + F2 + + + + + About WSJT-X + 有关 WSJT-X + + + + Waterfall + 瀑布图 + + + + Open + 打开文件 + + + + Ctrl+O + + + + + Open next in directory + 打开下一个文件 + + + + Decode remaining files in directory + 打开余下文件 + + + + Shift+F6 + + + + + Delete all *.wav && *.c2 files in SaveDir + 删除所有在SaveDir目录内 *.wav && *.c2 + + + + None + + + + + Save all + 保存所有 + + + + Online User Guide + 在线用户指南 + + + + Keyboard shortcuts + 键盘快捷键 + + + + Special mouse commands + 滑鼠特殊组合 + + + + JT9 + + + + + Save decoded + 保存解码 + + + + Normal + 正常 + + + + Deep + 深度 + + + + Monitor OFF at startup + 启动时关闭监听 + + + + Erase ALL.TXT + 删除 ALL.TXT + + + + Erase wsjtx_log.adi + 删除通联日志 wsjtx_log.adi + + + + Convert mode to RTTY for logging + 将日志记录模式转换为RTTY + + + + Log dB reports to Comments + 将 dB 报告记录到注释 + + + + Prompt me to log QSO + 提示我记录通联 + + + + Blank line between decoding periods + 解码期间之间添加空白行 + + + + Clear DX Call and Grid after logging + 日志记录后清除 DX 呼号和网格 + + + + Display distance in miles + 显示距离以英里为单位 + + + + Double-click on call sets Tx Enable + 双击呼号启用发射 + + + + + F7 + + + + + Tx disabled after sending 73 + 发送 73 后停止发射 + + + + + Runaway Tx watchdog + 运行发射监管计时器 + + + + Allow multiple instances + 允许多个情况 + + + + Tx freq locked to Rx freq + 发射频率锁定到接收频率 + + + + JT65 + + + + + JT9+JT65 + + + + + Tx messages to Rx Frequency window + 发射信息发送到接收信息窗口 + + + + Gray1 + + + + + Show DXCC entity and worked B4 status + 显示 DXCC 实体和曾经通联状态 + + + + Astronomical data + 天文数据 + + + + List of Type 1 prefixes and suffixes + 类型 1 前缀和后缀的列表 + + + + Settings... + 设置... + + + + Local User Guide + 本地用户指南 + + + + Open log directory + 打开日志文件目录 + + + + JT4 + + + + + Message averaging + 信息平均值 + + + + Enable averaging + 平均值 + + + + Enable deep search + 启用深度搜索 + + + + WSPR + + + + + Echo Graph + 回波图 + + + + F8 + + + + + Echo + 回波 + + + + EME Echo mode + EME 回波模式 + + + + ISCAT + + + + + Fast Graph + 快速图 + + + + F9 + + + + + &Download Samples ... + 下载样本&D ... + + + + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> + <html><head/><body><p>下载演示各种模式的示例音频文件.</p></body></html> + + + + MSK144 + + + + + QRA64 + + + + + Release Notes + 发行说明 + + + + Enable AP for DX Call + 启用 AP 为 DX 呼叫 + + + + FreqCal + + + + + Measure reference spectrum + 测量参考频谱 + + + + Measure phase response + 测量相位响应 + + + + Erase reference spectrum + 擦除参考频谱 + + + + Execute frequency calibration cycle + 执行频率校准周期 + + + + Equalization tools ... + 均衡工具 ... + + + + WSPR-LF + + + + + Experimental LF/MF mode + 实验性 LF/MF 模式 + + + + FT8 + + + + + + Enable AP + 启用 AP + + + + Solve for calibration parameters + 校准参数的解算 + + + + Copyright notice + 版权声明 + + + + Shift+F1 + + + + + Fox log + 狐狸日志 + + + + FT8 DXpedition Mode User Guide + FT8 远征模式用户指南 + + + + Reset Cabrillo log ... + 重置卡布里略日志 ... + + + + Color highlighting scheme + 颜色突显方案 + + + + Contest Log + 竞赛日志 + + + + Export Cabrillo log ... + 导出卡布里略日志 ... + + + + Quick-Start Guide to WSJT-X 2.0 + WSJT-X 2.0 快速入门指南 + + + + Contest log + 竞赛日志 + + + + Erase WSPR hashtable + 擦除 WSPR 哈希表 + + + + FT4 + + + + + Rig Control Error + 无线电设备控制错误 + + + + + + Receiving + 接收 + + + + Do you want to reconfigure the radio interface? + 是否要重新配置无线电设备接口? + + + + Error Scanning ADIF Log + 扫描 ADIF 日志错误 + + + + Scanned ADIF log, %1 worked before records created + 扫描 ADIF 日志, %1 在创建曾经通联记录 + + + + Error Loading LotW Users Data + 加载 LotW 用户数据错误 + + + + Error Writing WAV File + 写入 WAV 文件时错误 + + + + Configurations... + 配置文件... + + + + + + + + + + + + + + + + + + + Message + 信息 + + + + Error Killing jt9.exe Process + 错误终止 jt9.exe 进程 + + + + KillByName return code: %1 + 按名称终止返回代码: %1 + + + + Error removing "%1" + 删除时出错误 "%1" + + + + Click OK to retry + 单击 确定 重试 + + + + + Improper mode + 模式不正确 + + + + + File Open Error + 文件打开出错误 + + + + + + + + Cannot open "%1" for append: %2 + 无法打开 "%1" 用于附加: %2 + + + + Error saving c2 file + 保存c2文件出错误 + + + + Error in Sound Input + 声音输入出错误 + + + + Error in Sound Output + 声音输出错误 + + + + + + Single-Period Decodes + 单周期解码 + + + + + + Average Decodes + 平均解码 + + + + Change Operator + 改变操作员 + + + + New operator: + 新操作员: + + + + Status File Error + 状态文件错误 + + + + + Cannot open "%1" for writing: %2 + 无法打开 "%1" 用于写入: %2 + + + + Subprocess Error + 子流程出错误 + + + + Subprocess failed with exit code %1 + 子流程失败, 退出代码为 %1 + + + + + Running: %1 +%2 + 运行: %1 +%2 + + + + Subprocess error + 子进程错误 + + + + Reference spectrum saved + 保存参考频谱 + + + + Invalid data in fmt.all at line %1 + 在 %1 行中 fmt.all 的无效数据 + + + + Good Calibration Solution + 良好的校准解决方案 + + + + <pre>%1%L2 ±%L3 ppm +%4%L5 ±%L6 Hz + +%7%L8 +%9%L10 Hz</pre> + + + + + Delete Calibration Measurements + 删除校准测量值 + + + + The "fmt.all" file will be renamed as "fmt.bak" + "fmt.all" 文件将重命名为 "fmt.bak" + + + + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: + +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2019 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." + 如果您根据 GNU 通用公共许可证条款合理使用 WSJT-X 的任何部分, 则必须在衍生作品中醒目地显示以下版权声明: + +"WSJT-X 的算法, 源代码, 外观和感觉及相关程序,和协议规格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版权 (C) 2001-2019 由以下一个或多个作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 开发组的其他成员." + + + + No data read from disk. Wrong file format? + 没有从磁盘读取数据. 文件格式出错误? + + + + Confirm Delete + 确认删除 + + + + Are you sure you want to delete all *.wav and *.c2 files in "%1"? + 是否确实要删除所有 *.wav 和 *.c2 文件在 "%1"? + + + + Keyboard Shortcuts + 键盘快捷键 + + + + Special Mouse Commands + 滑鼠特殊组合 + + + + No more files to open. + 没有要打开的文件. + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. + 请选择其他发射频率. WSJT-X 不会故意传输另一个模式在 WSPR 30米子波段上. + + + + WSPR Guard Band + WSPR保护波段 + + + + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. + 请选择其它频率. WSJT-X 不会运行狐狸模式在标准 FT8 波段. + + + + Fox Mode warning + 狐狸模式警告 + + + + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: + +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." + 如果您根据 GNU 通用公共许可证条款合理使用 WSJT-X 的任何部分, 则必须在衍生作品中醒目地显示以下版权声明: + +"WSJT-X 的算法, 源代码, 外观和感觉及相关程序,和协议规格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版权 (C) 2001-2019 由以下一个或多个作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 开发组的其他成员." + + + + Last Tx: %1 + 最后发射: %1 + + + + Should you switch to EU VHF Contest mode? + +To do so, check 'Special operating activity' and +'EU VHF Contest' on the Settings | Advanced tab. + 是否应切换到 欧洲 VHF 竞赛模式? +为此, 请检查 '特殊操作活动' 和 +设置高级选项卡上的 '欧洲 VHF 竞赛'. + + + + Should you switch to ARRL Field Day mode? + 是否应切换到 ARRL Field Day 模式? + + + + Should you switch to RTTY contest mode? + 是否应切换到 RTTY 竞赛模式? + + + + + + + Add to CALL3.TXT + 添加到 CALL3.TXT + + + + Please enter a valid grid locator + 请输入有效的网格定位 + + + + Cannot open "%1" for read/write: %2 + 无法打开 "%1" 用于读/写: %2 + + + + %1 +is already in CALL3.TXT, do you wish to replace it? + %1 已经在 CALL3.TXT, 你想替换它吗? + + + + Warning: DX Call field is empty. + 警告: DX 呼号字段为空. + + + + Log file error + 日志文件错误 + + + + Cannot open "%1" + 无法打开 "%1" + + + + Error sending log to N1MM + 将日志发送到 N1MM 时出错 + + + + Write returned "%1" + 写入返回 "%1" + + + + Stations calling DXpedition %1 + 呼叫远征电台 %1 + + + + Hound + 猎犬 + + + + Tx Messages + 发射信息 + + + + + + Confirm Erase + 确认擦除 + + + + Are you sure you want to erase file ALL.TXT? + 是否确实要擦除 ALL.TXT 文件? + + + + + Confirm Reset + 确认重置 + + + + Are you sure you want to erase your contest log? + 是否确实要擦除竞赛日志? + + + + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. + 执行此操作将删除当前竞赛的所有通联记录. 它们将保留在 ADIF 日志文件中, 但无法导出到您的卡布里略日志中. + + + + Cabrillo Log saved + 卡布里略日志已保存 + + + + Are you sure you want to erase file wsjtx_log.adi? + 是否确实要擦除 wsjtx_log.adi 文件? + + + + Are you sure you want to erase the WSPR hashtable? + 是否确实要擦除 WSPR 哈希表? + + + + VHF features warning + VHF 功能警告 + + + + Tune digital gain + 调谐数码增益 + + + + Transmit digital gain + 传输数码增益 + + + + Prefixes + 前缀 + + + + Network Error + 网络错误 + + + + Error: %1 +UDP server %2:%3 + 错误: %1 +UDP 服务器 %2:%3 + + + + File Error + 文件错误 + + + + Phase Training Disabled + 已禁用阶段训练 + + + + Phase Training Enabled + 已启用阶段训练 + + + + WD:%1m + + + + + + Log File Error + 日志文件错误 + + + + Are you sure you want to clear the QSO queues? + 是否确实要清除通联队列? + + + + MessageAveraging + + + + Message Averaging + 信息平均值 + + + + UTC Sync DT Freq + + + + + Modes + + + + Mode + 模式 + + + + MultiSettings + + + Default + 默认值 + + + + MultiSettings::impl + + + &Switch To + 切换到&S + + + + &Clone + 克隆&C + + + + Clone &Into ... + 克隆到&I ... + + + + R&eset + 重置&e + + + + &Rename ... + 重新命名&R ... + + + + &Delete + 删除&D + + + + Clone Into Configuration + 克隆到配置 + + + + Confirm overwrite of all values for configuration "%1" with values from "%2"? + 确认覆盖配置 "%1" 的所有值, 以及来自 "%2"的值? + + + + Reset Configuration + 重置配置 + + + + Confirm reset to default values for configuration "%1"? + 确认重置为配置的默认值 "%1"? + + + + Delete Configuration + 删除配置 + + + + Confirm deletion of configuration "%1"? + 确认删除配置 "%1"? + + + + NameDialog + + + New Configuration Name + 新配置名称 + + + + Old name: + 旧名称: + + + + &New name: + 新名称&N: + + + + OmniRigTransceiver + + + OmniRig: unrecognized mode + OmniRig: 无法识别的模式 + + + + Failed to start OmniRig COM server + 无法启动 OmniRig COM 服务器 + + + + + OmniRig: don't know how to set rig frequency + OmniRig:不知道如何设置无线电设备频率 + + + + + OmniRig: timeout waiting for update from rig + OmniRig:等待从无线电设备更新的超时 + + + + OmniRig COM/OLE error: %1 at %2: %3 (%4) + OmniRig COM/OLE 错误: %1 at %2: %3 (%4) + + + + PollingTransceiver + + + Unexpected rig error + 无线电设备意外出错误 + + + + QObject + + + Invalid rig name - \ & / not allowed + 无效的无线电设备名称 - \ & / 不允许 + + + + User Defined + 用户定义 + + + + Failed to open LotW users CSV file: '%1' + 无法打开 LotW 用户 CSV 文件: '%1' + + + + OOB + + + + + Too many colours in palette. + 调色板中颜色太多. + + + + Error reading waterfall palette file "%1:%2" too many colors. + 读取瀑布调色板文件时出错误 "%1:%2" 太多颜色. + + + + Error reading waterfall palette file "%1:%2" invalid triplet. + 读取瀑布调色板文件时出错误 "%1:%2" 无效的三元组. + + + + Error reading waterfall palette file "%1:%2" invalid color. + 读取瀑布调色板文件时出错误 "%1:%2" 无效的颜色. + + + + Error opening waterfall palette file "%1": %2. + 读取瀑布调色板文件时出错误 "%1": %2. + + + + Error writing waterfall palette file "%1": %2. + 读取瀑布调色板文件时出错误 "%1": %2. + + + + RemoteFile + + + + + + + + File System Error + 文件系统出错误 + + + + Cannot rename file: +"%1" +to: "%2" +Error(%3): %4 + 无法重命名文件: +"%1" +到: "%2" +出错误(%3): %4 + + + + Cannot delete file: +"%1" + 无法删除文件: +"%1" + + + + + + Network Error + 网络出错误 + + + + Too many redirects: %1 + 太多重定向: %1 + + + + Redirect not followed: %1 + 未遵循重定向:%1 + + + + Cannot commit changes to: +"%1" + 无法将更改提交给: +"%1" + + + + Cannot open file: +"%1" +Error(%2): %3 + 无法打开文件: +"%1" +出错误(%2): %3 + + + + Cannot make path: +"%1" + 无法创建路径: +"%1" + + + + Cannot write to file: +"%1" +Error(%2): %3 + 无法写入文件: +"%1" +出错误(%2): %3 + + + + SampleDownloader::impl + + + Download Samples + 下载样本 + + + + Input Error + 输入错误 + + + + Invalid URL format + 无效网址格式 + + + + SoundInput + + + An error opening the audio input device has occurred. + 打开音频输入设备时出错误. + + + + An error occurred during read from the audio input device. + 从音频输入设备读取时出错误. + + + + Audio data not being fed to the audio input device fast enough. + 音频数据没有足够提供馈送到音频输入设备. + + + + Non-recoverable error, audio input device not usable at this time. + 不可恢复的出错误, 音频输入设备此时不可用. + + + + Requested input audio format is not valid. + 请求的输入音频格式无效. + + + + Requested input audio format is not supported on device. + 设备不支持请求输入的音频格式. + + + + Failed to initialize audio sink device + 无法初始化音频接收器设备 + + + + Idle + 闲置 + + + + Receiving + 接收 + + + + Suspended + 暂停 + + + + Interrupted + 中断 + + + + Error + 出错误 + + + + Stopped + 停止 + + + + SoundOutput + + + An error opening the audio output device has occurred. + 打开音频输出设备时出错误. + + + + An error occurred during write to the audio output device. + 写入音频输出设备期间出错误. + + + + Audio data not being fed to the audio output device fast enough. + 音频数据未以足够快的速度馈送到音频输出设备. + + + + Non-recoverable error, audio output device not usable at this time. + 不可恢复出错误, 音频输出设备此时不可用. + + + + Requested output audio format is not valid. + 请求的输出音频格式无效. + + + + Requested output audio format is not supported on device. + 设备不支持请求输出的音频格式. + + + + Idle + 闲置 + + + + Sending + 发送 + + + + Suspended + 暂停 + + + + Interrupted + 中断 + + + + Error + 出错误 + + + + Stopped + 停止 + + + + StationDialog + + + Add Station + 添加电台 + + + + &Band: + 波段&B: + + + + &Offset (MHz): + 偏移 (M&Hz): + + + + &Antenna: + 天线&A: + + + + StationList::impl + + + Band name + 波段名称 + + + + Frequency offset + 频率偏移 + + + + Antenna description + 天线描述 + + + + Band + 波段 + + + + Offset + 偏移 + + + + Antenna Description + 天线描述 + + + + TransceiverBase + + + Unexpected rig error + 无线电设备意外出错误 + + + + WideGraph + + + Dialog + 对话框 + + + + Controls + 控件列 + + + + Spectrum gain + 频谱增益 + + + + Palette + 调色板 + + + + <html><head/><body><p>Enter definition for a new color palette.</p></body></html> + <html><head/><body><p>输入新调色板的定义.</p></body></html> + + + + Adjust... + 调整... + + + + Waterfall gain + 瀑布增益 + + + + <html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html> + <html><head/><body><p>在此窗口中设置频谱的大小.</p></body></html> + + + + % + + + + + Spec + + + + + <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> + <html><head/><body><p>在完整显示的间隔内平展频谱基线.</p></body></html> + + + + Flatten + 平坦化 + + + + <html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html> + <html><head/><body><p>计算并保存参考频谱. (尚未完全实现.)</p></body></html> + + + + Ref Spec + 参考规格 + + + + Smoothing of Linear Average spectrum + 线性平均频谱的平滑 + + + + Smooth + 平滑 + + + + Compression factor for frequency scale + 频率刻度的压缩系数 + + + + Bins/Pixel + 点/像素 + + + + Select waterfall palette + 选择瀑布调色板 + + + + <html><head/><body><p>Select data for spectral display</p></body></html> + <html><head/><body><p>选择用于频谱显示的数据</p></body></html> + + + + Current + 当前 + + + + Cumulative + 累积 + + + + Linear Avg + 线性平均 + + + + Reference + 参考 + + + + <html><head/><body><p>Frequency at left edge of waterfall</p></body></html> + <html><head/><body><p>波段在瀑布左边缘显示</p></body></html> + + + + Hz + + + + + Start + 开始 + + + + <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> + <html><head/><body><p>仅在此频率以上解码 JT9</p></body></html> + + + + JT9 + + + + + JT65 + + + + + Number of FFTs averaged (controls waterfall scrolling rate) + FFT 平均数(控制瀑布滚动速率) + + + + N Avg + N 平均 + + + + Waterfall zero + 瀑布零度 + + + + Spectrum zero + 频谱零度 + + + + Wide Graph + 宽图 + + + + + Read Palette + 读取调色板 + + + + configuration_dialog + + + Settings + 设置 + + + + Genera&l + 一般&l + + + + General station details and settings. + 设置电台详细信息. + + + + Station Details + 电台资料 + + + + My C&all: + 我的呼号&a: + + + + Station callsign. + 电台呼号. + + + + M&y Grid: + 我的网格&y: + + + + <html><head/><body><p>Maidenhead locator, preferably 6 characters.</p></body></html> + <html><head/><body><p>梅登黑德定位器, 最好是 6 个字符.</p></body></html> + + + + Check to allow grid changes from external programs + 选择允许从外部程序更改网格 + + + + AutoGrid + 自动网格 + + + + IARU Region: + IARU 区域: + + + + <html><head/><body><p>Select your IARU region.</p></body></html> + <html><head/><body><p>选择您的 IARU 区域.</p></body></html> + + + + Message generation for type 2 compound callsign holders: + 信息生成用於類型2複合呼号持有人: + + + + <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>复合呼号类型2是那些前缀或后缀不包括在允许的决选名单中 (请参阅帮助-& gt; 加载项前缀和后缀).<p><p>此选项确定哪些生成的信息应包含完整类型2复合呼号, 而不是基本呼号.它仅适用于类型为2的复合呼号.</p><p>此选项控制用于应答 CQ 呼叫的信息的生成方式.生成的信息 6 (CQ) 和 5 (73) 将始终包含您的完整呼号.jt65 和 jt9 协议允许在您的完整呼叫中使用一些标准信息, 而牺牲了另一条信息, 如 dx 呼叫或您的定位器.</p><p>选择信息1省略 dx 呼号, 这在答复 cq 呼叫时可能是一个问题.选择信息3也会省略 dx 呼号, 此软件和其他软件的许多版本都不会提取报告.选择这两个都意味着你的完整呼号只会出现在你的信息 5 (73) 中, 所以你的 qso 伙伴我的日志是出错误的呼号.</p><p>这些选项都不是完美的, 信息3是最好的, 但请注意, 您的 qso 合作伙伴可能不会记录您发送的报告.</p></body></html> + + + + Full call in Tx1 + 完整呼号在 Tx1 + + + + Full call in Tx3 + 完整呼号在 Tx3 + + + + Full call in Tx5 only + 完整呼号在 Tx5 + + + + Display + 显示 + + + + Show outgoing transmitted messages in the Rx frequency window. + 在接收信息窗口中显示已发射的信息. + + + + &Tx messages to Rx frequency window + 发出讯息在接收信息窗口显示&T + + + + Show if decoded stations are new DXCC entities or worked before. + 显示解码的电台是新的 DXCC 实体还是以前曾经通联. + + + + Show &DXCC, grid, and worked-before status + 显示 &DXCC, 网格和曾经通联状态 + + + + <html><head/><body><p>Check to have decodes for a new period start at the top of the Band Activity window and not scroll off the top when the window is full.</p><p>This is to aid selecting decodes to double-click while decoding is still in progress. Use the Band Activity vertical scroll bar to reveal decodes past the bottom of the window.</p></body></html> + <html><head/><body><p>检查新週期的解码从 波段活动 窗口的顶部开始, 而不是在窗口已满时从顶部滚动.</p><p>这是为了帮助选择解码, 以双击, 而解码仍在进行中. 使用 波段活动 垂直滚动条显示窗口底部的解码.</p></body></html> + + + + Start new period decodes at top + 在顶部开始新期间解码 + + + + Show principal prefix instead of country name + 显示主体前缀而不是国家 地区名称 + + + + Set the font characteristics for the application. + 设置应用程序的字体. + + + + Font... + 软件字体... + + + + Set the font characteristics for the Band Activity and Rx Frequency areas. + 设置波段活动和接收信息窗口的字体. + + + + Decoded Text Font... + 解码字体... + + + + Include a separator line between periods in the band activity window. + 在波段活动窗口中加入时间分隔行. + + + + &Blank line between decoding periods + 每解码周期插入间隔行&B + + + + Show distance to DX station in miles rather than kilometers. + 以英里为单位显示 DX 站的距离而不是显示公里. + + + + Display dista&nce in miles + 显示距离为英里&n + + + + Behavior + 惯常方式 + + + + Decode after EME delay + EME 延迟后解码 + + + + Tx watchdog: + 发射监管计时器: + + + + <html><head/><body><p>Number of minutes before unattended transmissions are aborted</p></body></html> + <html><head/><body><p>无人值守传输时到达设定分钟数中止发射</p></body></html> + + + + Disabled + 停用 + + + + minutes + 分钟 + + + + Enable VHF/UHF/Microwave features + 启用 VHF/UHF/Microwave 功能 + + + + Single decode + 单独解码 + + + + <html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html> + <html><head/><body><p>某些无线电设备在发射时无法处理CAT 命令.这意味着, 如果您在异频模式下运行, 则可能必须取消选中此选项.</p></body></html> + + + + Allow Tx frequency changes while transmitting + 允许发射期间改变频率 + + + + Don't start decoding until the monitor button is clicked. + 软件开启时, 关闭监听按钮. + + + + Mon&itor off at startup + 开启时关闭监听&i + + + + <html><head/><body><p>Check this if you wish to automatically return to the last monitored frequency when monitor is enabled, leave it unchecked if you wish to have the current rig frequency maintained.</p></body></html> + <html><head/><body><p>如果您希望在启用监听时自动返回到最后一个监听频率.</p></body></html> + + + + Monitor returns to last used frequency + 开始监听时使用上一次的频率 + + + + Alternate F1-F6 bindings + 备用 F1-F6 绑定 + + + + Turns off automatic transmissions after sending a 73 or any other free +text message. + 发送 73 或任何其他自由文本消息后 +关闭自动发射. + + + + Di&sable Tx after sending 73 + 发送 73 后关闭发射&s + + + + Send a CW ID after every 73 or free text message. + 73或自定义信息发出后用CW模式发放你的呼号. + + + + CW ID a&fter 73 + 73发出后用CW模式发放你的呼号&f + + + + Periodic CW ID Inter&val: + 发射CW信息时间间隔&v: + + + + Send a CW ID periodically every few minutes. +This might be required under your countries licence regulations. +It will not interfere with other users as it is always sent in the +quiet period when decoding is done. + 每隔几分钟定期发送 CW ID. +这可能是必需根据您所在的国家/地区的执照规定. +它不会干扰其他用户,因为它总是 +在解码完成后的安静期间发送. + + + + Automatic transmission mode. + 自动发射模式. + + + + Doubl&e-click on call sets Tx enable + 双击呼号集启用发射l&e + + + + Calling CQ forces Call 1st + 呼叫CQ 强制呼叫第 1 + + + + &Radio + 电台&R + + + + Radio interface configuration settings. + 设置无线电设备接口设置. + + + + Settings that control your CAT interface. + 控制CAT界面的设置. + + + + CAT Control + CAT控制 + + + + + Port: + 端口: + + + + Serial port used for CAT control. + 用于CAT控制的串行端口. + + + + Serial Port Parameters + 串口参数 + + + + Baud Rate: + 波特率: + + + + Serial port data rate which must match the setting of your radio. + 串行端口数据速率必须与您的无线电设置相匹配. + + + + 1200 + + + + + 2400 + + + + + 4800 + + + + + 9600 + + + + + 19200 + + + + + 38400 + + + + + 57600 + + + + + 115200 + + + + + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> + <html><head/><body><p>用于与无线电设备 CAT 接口通信的数据位数 (通常为 8 ).</p></body></html> + + + + Data Bits + 数据位元 + + + + D&efault + 默认值&e + + + + Se&ven + Se&ven 7 + + + + E&ight + E&ight 8 + + + + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> + <html><head/><body><p>与无线电设备 CAT 接口通信时使用的停止位数</p><p>(详情请参阅无线电设备手册).</p></body></html> + + + + Stop Bits + 停止位元 + + + + + Default + 默认值 + + + + On&e + On&e 1 + + + + T&wo + T&wo 2 + + + + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> + <html><head/><body><p>电脑和无线电设备 CAT 接口 (通常是 "None") 之间使用的流量控制协议 (通常是 "无",但有些要求硬件).</p></body></html> + + + + Handshake + 握手方式 + + + + &None + + + + + Software flow control (very rare on CAT interfaces). + 软件控制流 (在CAT接口上非常罕见). + + + + XON/XOFF + + + + + Flow control using the RTS and CTS RS-232 control lines +not often used but some radios have it as an option and +a few, particularly some Kenwood rigs, require it). + 使用 RTS 和 CTS RS-232 控制线控制 + 不经常使用但有些无线电设备有它作为一个选项并且 + 很少,特别是一些 健伍无线电设备,需要它). + + + + &Hardware + 硬件&H + + + + Special control of CAT port control lines. + 特殊控制的CAT控制线. + + + + Force Control Lines + 强制控制线 + + + + + High + + + + + + Low + + + + + DTR: + + + + + RTS: + + + + + How this program activates the PTT on your radio + 此程序如何激活无线电设备上的 PTT + + + + PTT Method + PTT 方法 + + + + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> + <html><head/><body><p>如果您没有无线电设备接口硬件,没法PTT而是使用无线电设备的自动声控来发射,请使用此选项.</p></body></html> + + + + VO&X + + + + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to inteface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> + <html><head/><body><p>使用 RS-232 DTR 控制线路切换收音机的 PTT,需要硬件来整数线路.</p><p>某些商业接口单元也使用此方法 .</p><p>CAT 串行端口的 DTR 控制线路可用于此或可能用于其他串行端口上的 DTR 控制线路.</p></body></html> + + + + &DTR + + + + + Some radios support PTT via CAT commands, +use this option if your radio supports it and you have no +other hardware interface for PTT. + 一些无线电设备通过CAT命令支持 PTT, +如果您的无线电设备支持此选项请使用此选项而且您没有 +PTT的其它硬件接口. + + + + C&AT + + + + + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to inteface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> + + + + + R&TS + + + + + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> + <html><head/><body><p>选择用于 ptt 控制的RS-232 串行端口,当选择上述DTR或RTS作为发射方法时,此选项可用.此端口可以与用于CAT控制的端口相同.对于某些接口类型,可以选择特殊值CAT,这用于可以远程控制串口控制线的非串行CAT接口 (例如 omnirig).</p></body></html> + + + + Modulation mode selected on radio. + 在无线电设备上选择的调制模式. + + + + Mode + 模式 + + + + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> + <html><head/><body><p>上边带通常是正确的调制模式,除非无线电设备具有用于AFSK操作的特殊数据或数据包模式设置.</p></body></html> + + + + US&B + 上边带&B + + + + Don't allow the program to set the radio mode +(not recommended but use if the wrong mode +or bandwidth is selected). + 不允许程序设置无线电设备模式 +(不建议使用但如果选择了出错误的模式 +或带宽). + + + + + None + + + + + If this is availabe then it is usually the correct mode for this program. + 如果这是可用的那么它通常是这个程序的正确模式. + + + + Data/P&kt + 数据/封包&k + + + + Some radios can select the audio input using a CAT command, +this setting allows you to select which audio input will be used +(if it is available then generally the Rear/Data option is best). + 一些无线电设备可以使用 CAT 命令选择音频输入, +此设置允许您选择将使用的音频输入 +(如果可用,则通常 后方/数据 选项是最佳选择). + + + + Transmit Audio Source + 无线电设备音频源 + + + + Rear&/Data + 后方&/数据口 + + + + &Front/Mic + 前方/麦克风&F + + + + Rig: + 无线电设备: + + + + Poll Interval: + 时间间隔: + + + + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> + <html><head/><body><p>为软件与无线电设备沟通的时间间隔.时间间隔较长,意味着对无线电设备的更改需要更长的时间才能检测到.</p></body></html> + + + + s + + + + + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> + <html><head/><body><p>尝试使用这些设置连接到无线电设备.如果连接成功,该按钮将变为绿色; 如果有问题,则为红色.</p></body></html> + + + + Test CAT + 测试 CAT + + + + Attempt to activate the transmitter. +Click again to deactivate. Normally no power should be +output since there is no audio being generated at this time. +Check that any Tx indication on your radio and/or your +radio interface behave as expected. + 尝试激活无线电设备. +再次单击以停用.通常没有功率输出 +因为此时没有音频生成.检查无线电设备 +和/或您的无线电设备接口上 +的任何发射指示是否如预期的那样. + + + + Test PTT + 测试 PTT + + + + Split Operation + 异频操作 + + + + Fake It + 虚假 + + + + Rig + 无线电设备 + + + + A&udio + 音频&u + + + + Audio interface settings + 音频接口设置 + + + + Souncard + + + + + Soundcard + 声卡 + + + + Select the audio CODEC to use for transmitting. +If this is your default device for system sounds then +ensure that all system sounds are disabled otherwise +you will broadcast any systems sounds generated during +transmitting periods. + 选择要用于发射的音频信号. +如果这是您的默认值设备的系统声音 +然后确保所有系统声音被禁用 +否则您将任何系统生成的声音 +向外发射输出. + + + + Select the audio CODEC to use for receiving. + 选择要用于接收的音频信号. + + + + &Input: + 输入&I: + + + + Select the channel to use for receiving. + 选择要用于接收的通道. + + + + + Mono + 单声道 + + + + + Left + 左声道 + + + + + Right + 右声道 + + + + + Both + 双声道 + + + + Select the audio channel used for transmission. +Unless you have multiple radios connected on different +channels; then you will usually want to select mono or +both here. + 选择用于发射的音频通道. +除非您在不同无线电设备连接多个到不同的 +通道; 那么你通常会想要选择单声道或 +双声道. + + + + Ou&tput: + 输出&t: + + + + + Save Directory + 保存目录 + + + + Loc&ation: + 目录位置&a: + + + + Path to which .WAV files are saved. + .WAV 文件被保存到哪条路径. + + + + + TextLabel + + + + + Click to select a different save directory for .WAV files. + 单击选择不同的保存目录 .WAV 文件. + + + + S&elect + 选择&e + + + + + AzEl Directory + AzEl 目录 + + + + Location: + 位置: + + + + Select + 选择 + + + + Power Memory By Band + 按频段存储功率 + + + + Remember power settings by band + 按频段功率记忆设置 + + + + Enable power memory during transmit + 在传输过程中启用功率记忆 + + + + Transmit + 发射 + + + + Enable power memory during tuning + 在调谐期间启用功率记忆 + + + + Tune + 调谐 + + + + Tx &Macros + 自定义文字&M + + + + Canned free text messages setup + 设置自定义文字 + + + + &Add + 增加&A + + + + &Delete + 删除&D + + + + Drag and drop items to rearrange order +Right click for item specific actions +Click, SHIFT+Click and, CRTL+Click to select items + 拖放项目以重新排列顺序 +右键单击项目特定操作 +单击, SHIFT+单击 和, CRTL+单击 以选择项目 + + + + Reportin&g + 报告&g + + + + Reporting and logging settings + 设置日志和报告 + + + + Logging + 记录日志 + + + + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. + 当您发送73或自定义文字时,程序将弹出一个部分完成的日志QSO对话框. + + + + Promp&t me to log QSO + 提示我记录通联日志&t + + + + Op Call: + 操作员呼号: + + + + Some logging programs will not accept the type of reports +saved by this program. +Check this option to save the sent and received reports in the +comments field. + 一些日志程序不接受这种类型的报告 +由该程序保存. +选中此选项可将发送和接收的报告保存在 +注释字段. + + + + d&B reports to comments + 把d&B报告写入注释栏 + + + + Check this option to force the clearing of the DX Call +and DX Grid fields when a 73 or free text message is sent. + 选中此选项当发送73或自定义文字信息可强制清除DX呼叫 +和DX网格字段. + + + + Clear &DX call and grid after logging + 记录完成后清除&DX呼号及网格 + + + + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> + <html><head/><body><p>某些日志记录程序不接受 WSJT-X 模式名称.</p></body></html> + + + + Con&vert mode to RTTY + 把日志记录转成&RTTY模式 + + + + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> + <html><head/><body><p>操作员的呼号 (如果与电台呼号不同).</p></body></html> + + + + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> + <html><head/><body><p>选择当完成通联后, 自动记录.</p></body></html> + + + + Log automatically (contesting only) + 日志自动记录 (仅限竞赛) + + + + Network Services + 网络服务 + + + + The program can send your station details and all +decoded signals as spots to the http://pskreporter.info web site. +This is used for reverse beacon analysis which is very useful +for assessing propagation and system performance. + 该程序可以发送您的站的详细信息和所有 +解码信号作为点的 http://pskreporter.info 的网站. +这是用于反向信标分析,这是非常有用的 +用于评估传播和系统性能. + + + + Enable &PSK Reporter Spotting + 启用&PSK Reporter Spotting + + + + UDP Server + UDP服务器 + + + + UDP Server: + UDP服务器: + + + + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> + <html><head/><body><p>接收解码的网络服务的可选主机名称.</p><p>格式:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">主机名称</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4多点传送组地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 多点传送组地址</li></ul><p>清除此字段将禁用UDP状态更新的广播.</p></body></html> + + + + UDP Server port number: + UDP服务器端口: + + + + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> + <html><head/><body><p>输入 WSJT-X 应向其发送更新的 UDP 服务器的服务端口号. 如果为零, 将不会广播任何更新.</p></body></html> + + + + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> + <html><head/><body><p>启用此功能后,WSJT-X 将接受来自接收解码消息的 UDP 服务器的某些请求.</p></body></html> + + + + Accept UDP requests + 接受UDP请求 + + + + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> + <html><head/><body><p>指示接受传入的 UDP 请求.此选项的效果因操作系统和窗口管理器而异,其目的是通知接受传入的 UDP 请求,即使此应用程序最小化或隐藏</p></body></html> + + + + Notify on accepted UDP request + 在接受UDP的请求时通知 + + + + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> + <html><head/><body><p>如果接受 UDP 请求,则从最小化还原窗口.</p></body></html> + + + + Accepted UDP request restores window + 接受UDP请求还原窗口 + + + + Secondary UDP Server (deprecated) + 辅助 UDP 服务器 (已弃用) + + + + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> + <html><head/><body><p>选中后,WSJT-X 将以 ADIF 格式将记录的联系广播到配置的主机名和端口. </p></body></html> + + + + Enable logged contact ADIF broadcast + 启用记录联系 ADIF 广播 + + + + Server name or IP address: + 服务器名称或 IP 地址: + + + + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> + + + + + Server port number: + 服务器端口号: + + + + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> + <html><head/><body><p>输入 WSJT-X 应用于 ADIF 日志信息的 UDP 广播的端口号. 对于 N1MM Logger+, 此值应为 2333. 如果为零, 将不会广播任何更新.</p></body></html> + + + + Frequencies + 频率 + + + + Default frequencies and band specific station details setup + 设置默认值频率和带宽点特定的无线电设备详细信息 + + + + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> + <html><head/><body><p>阅读 &quot;频率校准&quot; 在 WSJT-X 用户指南中, 有关如何确定无线电的这些参数的详细信息.</p></body></html> + + + + Frequency Calibration + 频率校准 + + + + Slope: + 倾斜率: + + + + ppm + + + + + Intercept: + 拦截: + + + + Hz + + + + + Working Frequencies + 工作频率 + + + + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> + <html><head/><body><p>右键单击以保持工作频率列表.</p></body></html> + + + + Station Information + 电台信息 + + + + Items may be edited. +Right click for insert and delete options. + 项目可以编辑 +右键单击以插入和删除选项. + + + + Colors + 颜色 + + + + Decode Highlightling + 解码突出显示 + + + + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> + <html><head/><body><p>使用复选框启用或禁用项目,并右键单击项目以更改或取消设置前景颜色, 背景颜色, 或将项目重置为默认值. 拖放项目以更改其优先级, 列表中较高的优先级较高.</p><p>请注意, 每个前景或背景颜色都可以设置或取消设置, 取消设置意味着它未为该项分配, 其类型和低优先级项可能适用.</p></body></html> + + + + Rescan ADIF Log + 重新扫描 ADIF 日志 + + + + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> + <html><head/><body><p>推送将上述所有突出显示项重置为默认值和优先级.</p></body></html> + + + + Reset Highlighting + 重置高亮显示 + + + + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> + <html><head/><body><p>选择以指示每个模式新的 DXCC 实体, 网格和呼号.</p></body></html> + + + + Highlight by Mode + 按模式突出显示 + + + + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> + <html><head/><body><p>单击以再次扫描 wsjtx_log.adi ADIF 文件, 以便曾经通联信息</p></body></html> + + + + How this program activates the PTT on your radio? + 此程序如何激活无线电设备上的 PTT? + + + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> + <html><head/><body><p>使用 RS-232 DTR 控制线路切换无线电设备的 PTT, 需要硬件来接口线路.</p><p>某些商业接口单元也使用此方法 .</p><p>CAT 串行端口的 DTR 控制线路可用于此或可用于其他串行端口上的 DTR 控制线路 .</p></body></html> + + + + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> + <html><head/><body><p>使用 RS-232 RTS 控制线路切换无线电设备的 PTT,需要硬件来接口线路.</p><p>某些商业接口单元也使用此方法.</p><p>CAT 串行端口的 RTS 控制线路可用于此或可能用于其他串行端口上的 RTS 控制线路. 请注意, 使用硬件流控制时, CAT 串行端口上不可用此选项.</p></body></html> + + + + If this is available then it is usually the correct mode for this program. + 如果这是可用的, 那么它通常是这个程序的正确模式. + + + + Include extra WAE entities + 包括额外的 WAE 实体 + + + + Check to for grid highlighting to only apply to unworked grid fields + 检查到网格突出显示仅应用于未通联的网格字段 + + + + Only grid Fields sought + 仅寻求网格字段 + + + + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> + <html><head/><body><p>控制 LoTW 用户查找日志.</p></body></html> + + + + Logbook of the World User Validation + LoTW 用户验证日志 + + + + Users CSV file URL: + 用户 CSV 文件 URL: + + + + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> + <html><head/><body><p>ARRL LoTW 用户上次上传日期和时间数据文件的网址, 该文件用于突出显示已知将日志文件上载到 LoTW 的电台的解码.</p></body></html> + + + + https://lotw.arrl.org/lotw-user-activity.csv + + + + + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> + <html><head/><body><p>按下此按钮即可获取最新的 LoTW 用户的上传日期和时间数据文件.</p></body></html> + + + + Fetch Now + 立即获取 + + + + Age of last upload less than: + 上次上传的日期小于: + + + + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> + <html><head/><body><p>调整此旋转框以设置 LoTW 用户最后一个上传日期的日期阈值, 该日期被接受为当前 LoTW 用户.</p></body></html> + + + + days + + + + + Advanced + 高级设置 + + + + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> + <html><head/><body><p>用户可选参数用于 JT65 VHF/UHF/Microwave 的解码.</p></body></html> + + + + JT65 VHF/UHF/Microwave decoding parameters + JT65 VHF/UHF/Microwave 解码参数 + + + + Random erasure patterns: + 随机擦除模式: + + + + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> + <html><head/><body><p>随机软判决 Reed Solomon 解码器的最大擦除模式数为 10^(n/2).</p></body></html> + + + + Aggressive decoding level: + 主动解码级别: + + + + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> + <html><head/><body><p>较高的水平会增加解码的概率, 但也会增加错误解码的概率.</p></body></html> + + + + Two-pass decoding + 通过二次解码 + + + + Special operating activity: Generation of FT4, FT8, and MSK144 messages + 特殊操作活动: 产生FT4, FT8 和 MSK144 信息 + + + + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> + <html><head/><body><p>FT8 DX远征模式呼叫DX的猎犬操作员.</p></body></html> + + + + Hound + 猎犬 + + + + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> + <html><head/><body><p>北美 VHF/UHF/Microwave 竞赛和其他需要交换的 4 个字符网格定位器的竞赛.</p></body></html> + + + + NA VHF Contest + NA VHF 竞赛 + + + + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> + <html><head/><body><p>FT8 DX远征模式: 狐狸 (DX远征) 操作员.</p></body></html> + + + + Fox + 狐狸 + + + + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> + <html><head/><body><p>欧洲 VHF+ 竞赛需要信号报告, 序列号和 6 个字符定位.</p></body></html> + + + + EU VHF Contest + EU VHF 竞赛 + + + + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> + <html><head/><body><p>ARRL RTTY Roundup 和类似的比赛. 交换是美国的州, 加拿大省或 &quot;DX&quot;.</p></body></html> + + + + RTTY Roundup messages + RTTY Roundup 信息 + + + + RTTY RU Exch: + RTTY RU 交换: + + + + NJ + + + + + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> + <html><head/><body><p>ARRL Field Day 交换: 发射机数量, 类別, 和 ARRL/RAC 部分或 &quot;DX&quot;.</p></body></html> + + + + ARRL Field Day + + + + + FD Exch: + FD 交换: + + + + 6A SNJ + + + + + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> + <html><head/><body><p>世界数字模式竞赛</p><p><br/></p></body></html> + + + + WW Digi Contest + 世界数字竞赛 + + + + Miscellaneous + 杂项 + + + + Degrade S/N of .wav file: + 降低信噪比的 .wav文件: + + + + + For offline sensitivity tests + 用于离线灵敏度测试 + + + + dB + + + + + Receiver bandwidth: + 接收器带宽: + + + + Hz + + + + + Tx delay: + 发射延迟: + + + + Minimum delay between assertion of PTT and start of Tx audio. + PTT 验证与发射音频启动之间的最小延迟. + + + + s + + + + + Tone spacing + 音调间距 + + + + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> + <html><head/><body><p>生成具有正常音调间距两倍的发射音频. 适用于在产生射频之前使用除以 2 的特殊 LF/MF 发射器.</p></body></html> + + + + x 2 + + + + + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> + <html><head/><body><p>具有正常音調間距四倍的發射音頻. 適用於在產生射頻之前使用除以 4 的特殊 LF/MF 發射器.</p></body></html> + + + + x 4 + + + + + Waterfall spectra + 瀑布频谱 + + + + Low sidelobes + 低侧边 + + + + Most sensitive + 最敏感 + + + + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> + <html><head/><body><p>放弃 (取消) 或应用 (确定) 配置更改, 包括</p><p>重置无线电接口并应用任何声卡更改</p></body></html> + + + + main + + + + Fatal error + 严重出错误 + + + + + Unexpected fatal error + 意外的严重出错误 + + + + Where <rig-name> is for multi-instance support. + 使用 <rig-name> 用于多实例支持无线电设备. + + + + rig-name + 无线电设备名称 + + + + Where <configuration> is an existing one. + 哪里 <configuration> 是现有的. + + + + configuration + 配置 + + + + Where <language> is <lang-code>[-<country-code>]. + 哪里 <language> 是 <lang-code>[-<country-code>]. + + + + language + 语言 + + + + Writable files in test location. Use with caution, for testing only. + 测试位置中的可写文件. 小心使用, 仅用于测试. + + + + Command line error + 命令行错误 + + + + Command line help + 命令行帮助 + + + + Application version + 应用程序版本 + + + + Another instance may be running + 另一个应用程序可能正在运行 + + + + try to remove stale lock file? + 尝试删除陈旧的锁文件? + + + + Failed to create a temporary directory + 无法创建临时目录 + + + + + Path: "%1" + 目录: "%1" + + + + Failed to create a usable temporary directory + 无法创建可用的临时目录 + + + + Another application may be locking the directory + 另一个应用程序可能正在锁定目录 + + + + Failed to create data directory + 无法创建数据目录 + + + + path: "%1" + 目录: "%1" + + + + Shared memory error + 共享内存错误 + + + + Unable to create shared memory segment + 无法创建共享内存段 + + + + wf_palette_design_dialog + + + Palette Designer + 调色板设计 + + + + <html><head/><body><p>Double click a color to edit it.</p><p>Right click to insert or delete colors.</p><p>Colors at the top represent weak signals</p><p>and colors at the bottom represent strong</p><p>signals. You can have up to 256 colors.</p></body></html> + <html><head/><body><p>双击一种颜色进行编辑.</p><p>右键单击可插入或删除颜色.</p><p>顶部的颜色代表微弱的信号</p><p>底部的颜色代表强烈</p><p>信号. 您最多可以有256种颜色.</p></body></html> + + + diff --git a/translations/wsjtx_zh_HK.ts b/translations/wsjtx_zh_HK.ts new file mode 100644 index 000000000..b16c25cd9 --- /dev/null +++ b/translations/wsjtx_zh_HK.ts @@ -0,0 +1,6333 @@ + + + + + AbstractLogWindow + + + &Delete ... + 刪除&D ... + + + + AbstractLogWindow::impl + + + Confirm Delete + 確認刪除 + + + + Are you sure you want to delete the %n selected QSO(s) from the log? + + 是否確定要從日誌中刪除 %n 選取的通聯? + + + + + Astro + + + + Doppler tracking + 多普勒跟蹤 + + + + <html><head/><body><p>One station does all Doppler shift correction, their QSO partner receives and transmits on the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + <html><head/><body><p>一個站執行所有多普勒換檔校正, 他們的通聯合作夥伴接收和傳輸 sked 頻率.</p><p>如果無線電設備在傳輸單校正時不接受 CAT QSY 命令則在整個傳輸期間應用.</p></body></html> + + + + Full Doppler to DX Grid + 全多普勒到 DX 網格 + + + + <html><head/><body><p>Transmit takes place on sked frequency and receive frequency is corrected for own echoes. </p><p>This mode can be used for calling CQ, or when using Echo mode.</p></body></html> + <html><head/><body><p>傳輸以 sked 頻率進行, 接收頻率被校正為自己的回波. </p><p>此模式可用於呼叫 CQ 或使用回波模式時.</p></body></html> + + + + Own Echo + 自己的回波 + + + + <html><head/><body><p>Both stations correct for Doppler shift such that they would be heard on the moon at the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p><p>Use this option also for Echo mode.</p></body></html> + <html><head/><body><p>兩個站都對多普勒移位進行校正, 這樣它們就會在月球上以sked頻率聽到.</p><p>如果無線電設備在傳輸單校正時不接受 CAT QSY 命令, 則在整個傳輸期間應用.</p><p>對於回音模式也使用此選項</p></body></html> + + + + Constant frequency on Moon + 月球上的恆定頻率 + + + + <html><head/><body><p>DX station announces their TX Freq, which is entered as the Sked Freq. Correction applied to RX and TX so you appear on the DX's station's own echo Freq.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + <html><head/><body><p>DX電臺宣佈其發射頻率, 這是輸入作為Sked頻率修正應用於接收和發射, 所以你出現在DX電臺自己的回波頻率.</p><p>如果無線電設備在傳輸單個校正時不接受 CAT QSY 命令則在整個傳輸期間應用.</p></body></html> + + + + On DX Echo + 在 DX 回波 + + + + <html><head/><body><p>Tune radio manually and select this mode to put your echo on the same frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + <html><head/><body><p>手動調諧無線電設備並選擇此模式, 將回波置於相同頻率.</p><p>如果無線電設備在傳輸單個校正時不接受 CAT QSY 命令則在整個傳輸期間應用.</p></body></html> + + + + Call DX + 呼叫 DX + + + + <html><head/><body><p>No Doppler shift correction is applied. This may be used when the QSO partner does full Doppler correction to your grid square.</p></body></html> + <html><head/><body><p>未應用多普勒換檔校正. 當通聯合作夥伴對網格方進行完全多普勒校正時可能會使用.</p></body></html> + + + + None + + + + + Sked frequency + Sked 頻率 + + + + + 0 + + + + + Rx: + 接收: + + + + Tx: + 發射: + + + + <html><head/><body><p>Press and hold the CTRL key to adjust the sked frequency manually with the rig's VFO dial or enter frequency directly into the band entry field on the main window.</p></body></html> + <html><head/><body><p>按住 CTRL 鍵使用手動 sked 頻率與無線電設備 VFO 將頻率直接撥入主視窗中的頻段輸入欄位.</p></body></html> + + + + Astro Data + 天體資料 + + + + Astronomical Data + 天文資料 + + + + Doppler Tracking Error + 多普勒跟蹤錯誤 + + + + Split operating is required for Doppler tracking + 多普勒跟蹤需要異頻操作 + + + + Go to "Menu->File->Settings->Radio" to enable split operation + 轉到 "菜單->檔案->設置->無線電設備" 啟用異頻操作 + + + + Bands + + + Band name + 波段名稱 + + + + Lower frequency limit + 頻率下限 + + + + Upper frequency limit + 頻率上限 + + + + Band + 波段 + + + + Lower Limit + 下限 + + + + Upper Limit + 上限 + + + + CAboutDlg + + + About WSJT-X + 關於 WSJT-X + + + + OK + 確定 + + + + CPlotter + + + &Set Rx && Tx Offset + 設定接收 && 發射偏頻&S + + + + CabrilloLog + + + Freq(MHz) + 頻率(MHz) + + + + Mode + 模式 + + + + Date & Time(UTC) + 日期和時間(UTC) + + + + Call + 呼號 + + + + Sent + 發出 + + + + Rcvd + 接收 + + + + Band + 波段 + + + + CabrilloLogWindow + + + Contest Log + 競賽日誌 + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + <html><head/><body><p>按右鍵此處查看可用操作.</p></body></html> + + + + Right-click here for available actions. + 按右鍵此處查看可用操作. + + + + CallsignDialog + + + Callsign + 呼號 + + + + ColorHighlighting + + + + + + + + + + + + + + + + + + K1ABC + + + + + CQ in message + CQ 在信息內 + + + + My Call in message + 我呼號在信息內 + + + + Transmitted message + 發射信息 + + + + New DXCC + 新DXCC + + + + New Grid + 新網格 + + + + New DXCC on Band + 波段 新前綴 + + + + New Call + 新呼號 + + + + New Grid on Band + 波段 新網格 + + + + New Call on Band + 波段 新呼號 + + + + Uploads to LotW + 上傳至 LotW + + + + New Continent + 新大洲 + + + + New Continent on Band + 波段 新大洲 + + + + New CQ Zone + 新 CQ區 + + + + New CQ Zone on Band + 波段 新CQ區 + + + + New ITU Zone + 新 ITU區 + + + + New ITU Zone on Band + 波段 新ITU區 + + + + Configuration::impl + + + + + &Delete + 刪除&D + + + + + &Insert ... + 插入&I ... + + + + Failed to create save directory + 無法建立儲存目錄 + + + + path: "%1% + 目錄: "%1% + + + + Failed to create samples directory + 無法建立範例目錄 + + + + path: "%1" + 目錄: "%1" + + + + &Load ... + 載入&L ... + + + + &Save as ... + 另存為&S ... + + + + &Merge ... + 合併&M ... + + + + &Reset + 重置&R + + + + Serial Port: + 串行端口: + + + + Serial port used for CAT control + 用於CAT控制的串行端口 + + + + Network Server: + 網絡服務器: + + + + Optional hostname and port of network service. +Leave blank for a sensible default on this machine. +Formats: + hostname:port + IPv4-address:port + [IPv6-address]:port + 可選主機名和網絡服務端口. +為無線電設備合理默認值保留空白. +格式: + 主機名:端口 + IP v4-地址:端口 + [IPv6-地址]:端口 + + + + USB Device: + USB設備: + + + + Optional device identification. +Leave blank for a sensible default for the rig. +Format: + [VID[:PID[:VENDOR[:PRODUCT]]]] + 可選設備標識. +為無線電設備合理默認值保留空白. +格式: + [VID[:PID[:供應商[:產品]]]] + + + + Invalid audio input device + 無效的音頻輸入設備 + + + + Invalid audio out device + 無效的音頻輸出設備 + + + + Invalid PTT method + 無效的PTT方法 + + + + Invalid PTT port + 無效的PTT端口 + + + + + Invalid Contest Exchange + 無效的競賽交換數據 + + + + You must input a valid ARRL Field Day exchange + 您必須輸入有效的 ARRL Field Day交換數據 + + + + You must input a valid ARRL RTTY Roundup exchange + 您必須輸入有效的 ARRL RTTY Roundup 交換 + + + + Reset Decode Highlighting + 重置解碼突出顯示 + + + + Reset all decode highlighting and priorities to default values + 將所有解碼突出顯示和優先順序重置為預設值 + + + + WSJT-X Decoded Text Font Chooser + WSJT-X 解碼文本字體選擇 + + + + Load Working Frequencies + 載入工作頻率 + + + + + + Frequency files (*.qrg);;All files (*.*) + 頻率檔案 (*.qrg);;所有檔案 (*.*) + + + + Replace Working Frequencies + 替換工作頻率 + + + + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? + 是否確實要放棄當前工作頻率,並將其替換為載入的頻率? + + + + Merge Working Frequencies + 合併工作頻率 + + + + + + Not a valid frequencies file + 不是有效的頻率檔案 + + + + Incorrect file magic + 不正確的檔案內容 + + + + Version is too new + 版本太新 + + + + Contents corrupt + 內容已損壞 + + + + Save Working Frequencies + 儲存工作頻率 + + + + Only Save Selected Working Frequencies + 只儲存選取的工作頻率 + + + + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. + 是否要儲存目前選擇的工作頻率? 按一下 否 可儲存所有. + + + + Reset Working Frequencies + 重置工作頻率 + + + + Are you sure you want to discard your current working frequencies and replace them with default ones? + 您確定要放棄您當前的工作頻率並用默認值頻率替換它們嗎? + + + + Save Directory + 儲存目錄 + + + + AzEl Directory + AzEl 目錄 + + + + Rig control error + 無線電設備控制錯誤 + + + + Failed to open connection to rig + 無法開啟無線電設備的連接 + + + + Rig failure + 無線電設備故障 + + + + DXLabSuiteCommanderTransceiver + + + Failed to connect to DX Lab Suite Commander + + 無法連接到DX Lab Suite Commander + + + + + DX Lab Suite Commander didn't respond correctly reading frequency: + DX Lab Suite Commander讀取頻率沒有正確響應: + + + + DX Lab Suite Commander sent an unrecognised TX state: + DX Lab Suite Commander 發送了一個無法識別的發送狀態: + + + + DX Lab Suite Commander didn't respond correctly polling TX status: + DX Lab Suite Commander 沒有測試正確響應輪詢發送狀態: + + + + DX Lab Suite Commander rig did not respond to PTT: + DX Lab Suite Commander 未響應無線電設備發送PTT: + + + + DX Lab Suite Commander didn't respond correctly polling frequency: + DX Lab Suite Commander 沒有正確響應輪詢頻率: + + + + DX Lab Suite Commander didn't respond correctly polling TX frequency: + DX Lab Suite Commander 沒有正確響應輪詢發射頻率: + + + + DX Lab Suite Commander sent an unrecognised split state: + DX Lab Suite Commander 發送了一個無法識別的異頻狀態: + + + + DX Lab Suite Commander didn't respond correctly polling split status: + DX Lab Suite Commander 沒有正確響應輪詢異頻狀態: + + + + DX Lab Suite Commander sent an unrecognised mode: " + DX Lab Suite Commander 發送了一個無法識別的模式: " + + + + DX Lab Suite Commander didn't respond correctly polling mode: + DX Lab Suite Commander 沒有正確響應輪詢模式: + + + + DX Lab Suite Commander send command failed + + DX Lab Suite Commander 發送命令失敗 + + + + + DX Lab Suite Commander failed to send command "%1": %2 + + DX Lab Suite Commander 發送命令失敗 "%1": %2 + + + + + DX Lab Suite Commander send command "%1" read reply failed: %2 + + DX Lab Suite Commander 發送命令 "%1" 讀取回復失敗: %2 + + + + + DX Lab Suite Commander retries exhausted sending command "%1" + DX Lab Suite Commander 發送命令重試失敗 "%1" + + + + DX Lab Suite Commander sent an unrecognized frequency + DX Lab Suite Commander 發送了無法識別的頻率 + + + + DecodeHighlightingListView + + + &Foreground color ... + 字體顏色&F ... + + + + Choose %1 Foreground Color + 選擇 %1 字體顏色 + + + + &Unset foreground color + 清除字體顏色&U + + + + &Background color ... + 底色&B ... + + + + Choose %1 Background Color + 選擇 %1 底色 + + + + U&nset background color + 清除底色&n + + + + &Reset this item to defaults + 將此項重置為預設值&R + + + + DecodeHighlightingModel + + + CQ in message + CQ 信息 + + + + My Call in message + 我的信息 + + + + Transmitted message + 發射信息 + + + + New DXCC + 新DXCC + + + + New DXCC on Band + 波段新DXCC + + + + New Grid + 新網格 + + + + New Grid on Band + 波段新網格 + + + + New Call + 未曾通聯過 + + + + New Call on Band + 波段未曾通聯過 + + + + New Continent + 新大洲 + + + + New Continent on Band + 波段新大洲 + + + + New CQ Zone + 新 CQ Zone + + + + New CQ Zone on Band + 波段新 CQ Zone + + + + New ITU Zone + 新 ITU Zone + + + + New ITU Zone on Band + 波段新 ITU Zone + + + + LoTW User + LoTW用戶 + + + + f/g unset + f/g 未設定 + + + + b/g unset + b/g 未設定 + + + + Highlight Type + 突出顯示類型 + + + + Designer + + + &Delete + 刪除&D + + + + &Insert ... + 插入&I... + + + + Insert &after ... + 插入之後&a... + + + + Import Palette + 導入調色板 + + + + + Palettes (*.pal) + 調色板 (*.pal) + + + + Export Palette + 導出調色板 + + + + Dialog + + + Gray time: + 灰線時間: + + + + Directory + + + + URL Error + 網址出錯誤 + + + + + Invalid URL: +"%1" + 無效的網址: +"%1" + + + + + + + + + + JSON Error + JSON出錯誤 + + + + Contents file syntax error %1 at character offset %2 + 內容檔案語法出錯誤 %1 字符偏移量 %2 + + + + Contents file top level must be a JSON array + 內容檔案頂層必須是JSON數組 + + + + File System Error + 檔案系統出錯誤 + + + + Failed to open "%1" +Error: %2 - %3 + 未能開啟 "%1" +錯誤: %2 - %3 + + + + Contents entries must be a JSON array + 輸入內容必須是 JSON 數組 + + + + Contents entries must have a valid type + 輸入內容必須具有有效的類型 + + + + Contents entries must have a valid name + 輸入內容必須具有有效的名稱 + + + + Contents entries must be JSON objects + 輸入內容必須是 JSON 對象 + + + + Contents directories must be relative and within "%1" + 目錄內容必須是相對的並且在 "%1" + + + + Network Error + 網絡出錯誤 + + + + Authentication required + 需要認證 + + + + DisplayText + + + &Erase + 擦除&E + + + + EchoGraph + + + + Echo Graph + 回波圖 + + + + <html><head/><body><p>Compression factor for frequency scale</p></body></html> + <html><head/><body><p>頻率刻度的壓縮係數</p></body></html> + + + + Bins/Pixel + 點/像素 + + + + Gain + 增益 + + + + <html><head/><body><p>Echo spectrum gain</p></body></html> + <html><head/><body><p>回波頻譜增益</p></body></html> + + + + Zero + 零度 + + + + <html><head/><body><p>Echo spectrum zero</p></body></html> + <html><head/><body><p>回波頻譜零度</p></body></html> + + + + <html><head/><body><p>Smoothing of echo spectrum</p></body></html> + <html><head/><body><p>回波頻譜平滑</p></body></html> + + + + Smooth + 平滑 + + + + <html><head/><body><p>Number of echo transmissions averaged</p></body></html> + <html><head/><body><p>平均回波傳輸次數</p></body></html> + + + + N: 0 + + + + + <html><head/><body><p>Click to cycle through a sequence of colors and line widths.</p></body></html> + <html><head/><body><p>單擊以循環顯示一系列顏色和線條寬度.</p></body></html> + + + + Colors + 顏色 + + + + EmulateSplitTransceiver + + + Emulated split mode requires rig to be in simplex mode + 模擬異頻模式要求無線電設備處於單工模式 + + + + EqualizationToolsDialog::impl + + + Phase + 相位 + + + + + Freq (Hz) + 頻率 (Hz) + + + + Phase (Π) + 相位 (Π) + + + + Delay (ms) + 延遲 (ms) + + + + Measured + 測量 + + + + Proposed + 提出 + + + + Current + 當前 + + + + Group Delay + 組延遲 + + + + Amplitude + 振幅 + + + + Relative Power (dB) + 相對功率 (dB) + + + + Reference + 參考 + + + + Phase ... + 相位 ... + + + + Refresh + 刷新 + + + + Discard Measured + 丟棄測量 + + + + ExistingNameDialog + + + Configuration to Clone From + 從中克隆的設定 + + + + &Source Configuration Name: + 來源設定名稱&S: + + + + ExportCabrillo + + + Dialog + 對話框 + + + + Location: + 位置: + + + + SNJ + + + + + Contest: + 比賽: + + + + ARRL-RTTY + + + + + Callsign: + 呼號: + + + + Category-Operator: + 類別-操作員: + + + + SINGLE-OP + + + + + Category-Transmitter: + 類別-發射機: + + + + ONE + + + + + Category-Power: + 類別-功率: + + + + LOW + + + + + Category-Assisted: + 類別-協助: + + + + NON-ASSISTED + + + + + Category-Band: + 類別-波段: + + + + ALL + + + + + Claimed-Score: + 聲稱-得分: + + + + Operators: + 操作員: + + + + Club: + 俱樂部: + + + + Name: + 姓名: + + + + + Address: + 地址: + + + + Save Log File + 儲存日誌檔案 + + + + Cabrillo Log (*.cbr) + 卡布里略日誌 (*.cbr) + + + + Cannot open "%1" for writing: %2 + 無法開啟 "%1" 用於寫入: %2 + + + + Export Cabrillo File Error + 匯出卡布裡略檔案錯誤 + + + + FastGraph + + + + Fast Graph + 快速圖 + + + + Waterfall gain + 瀑布增益 + + + + Waterfall zero + 瀑布零度 + + + + Spectrum zero + 頻譜零度 + + + + <html><head/><body><p>Set reasonable levels for gain and zero sliders.</p></body></html> + <html><head/><body><p>為增益和零滑塊設置合理的水平.</p></body></html> + + + + Auto Level + 自動電平 + + + + FoxLog::impl + + + Date & Time(UTC) + 日期與時間 (UTC) + + + + Call + 呼號 + + + + Grid + 網格 + + + + Sent + 發出 + + + + Rcvd + 接收 + + + + Band + 波段 + + + + FoxLogWindow + + + Fox Log + Fox 日誌 + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + <html><head/><body><p>按右鍵此處查看可用操作.</p></body></html> + + + + Callers: + 呼叫者: + + + + + + N + + + + + In progress: + 正在進行中: + + + + Rate: + 率: + + + + &Export ADIF ... + 導出 ADIF&E ... + + + + Export ADIF Log File + 導出 ADIF 日誌檔案 + + + + ADIF Log (*.adi) + ADIF 日誌 (*.adi) + + + + Export ADIF File Error + 導出 ADIF 日誌檔案錯誤 + + + + Cannot open "%1" for writing: %2 + 無法打開 "%1" 以進行寫入: %2 + + + + &Reset ... + 重置&R ... + + + + Confirm Reset + 確認重置 + + + + Are you sure you want to erase file FoxQSO.txt and start a new Fox log? + 是否確實要擦除 FoxQSO.txt檔 並啟動新的Fox日誌? + + + + FrequencyDialog + + + Add Frequency + 添加頻率 + + + + IARU &Region: + IA&RU 區域: + + + + &Mode: + 模式&M: + + + + &Frequency (MHz): + 頻率 (M&Hz): + + + + FrequencyList_v2 + + + + IARU Region + IARU 區域 + + + + + Mode + 模式 + + + + + Frequency + 頻率 + + + + + Frequency (MHz) + 頻率 (MHz) + + + + HRDTransceiver + + + + Failed to connect to Ham Radio Deluxe + + 無法連接到 Ham Radio Deluxe + + + + + Failed to open file "%1": %2. + 無法開啟檔案 "%1": %2. + + + + + Ham Radio Deluxe: no rig found + Ham Radio Deluxe: 未找到無線電設備 + + + + Ham Radio Deluxe: rig doesn't support mode + Ham Radio Deluxe: 無線電設備不支持模式 + + + + Ham Radio Deluxe: sent an unrecognised mode + Ham Radio Deluxe: 發送了一個無法識別的模式 + + + + Ham Radio Deluxe: item not found in %1 dropdown list + Ham Radio Deluxe: 在 %1 下拉清單中找不到項目 + + + + Ham Radio Deluxe: button not available + Ham Radio Deluxe: 按鈕不可用 + + + + Ham Radio Deluxe didn't respond as expected + Ham Radio Deluxe 沒有如預期的那樣響應 + + + + Ham Radio Deluxe: rig has disappeared or changed + Ham Radio Deluxe: 無線電設備已經消失或改變 + + + + Ham Radio Deluxe send command "%1" failed %2 + + Ham Radio Deluxe 發送命令 "%1" 失敗 %2 + + + + + + Ham Radio Deluxe: failed to write command "%1" + Ham Radio Deluxe: 無法寫入命令 "%1" + + + + Ham Radio Deluxe sent an invalid reply to our command "%1" + Ham Radio Deluxe 對我們的命令發出了無效的回復 "%1" + + + + Ham Radio Deluxe failed to reply to command "%1" %2 + + Ham Radio Deluxe 無法回復命令 "%1" %2 + + + + + Ham Radio Deluxe retries exhausted sending command "%1" + Ham Radio Deluxe 發送命令重試失敗 "%1" + + + + Ham Radio Deluxe didn't respond to command "%1" as expected + Ham Radio Deluxe 沒有回應預期的命令 "%1" + + + + HamlibTransceiver + + + + Hamlib initialisation error + Hamlib 初始化出錯誤 + + + + Hamlib settings file error: %1 at character offset %2 + Hamlib 設置檔案出錯誤: %1 字符偏移量 %2 + + + + Hamlib settings file error: top level must be a JSON object + Hamlib 設置檔案出錯誤: 頂層必須是 JSON 對象 + + + + Hamlib settings file error: config must be a JSON object + Hamlib 設置檔案出錯誤: 配置必須是JSON對象 + + + + Unsupported CAT type + 不支持 CAT 類型 + + + + Hamlib error: %1 while %2 + Hamlib 出錯誤: %1 當 %2 + + + + opening connection to rig + 開啟連接無線電設備 + + + + getting current frequency + 獲取當前頻率 + + + + getting current mode + 獲取當前模式 + + + + + exchanging VFOs + 在 VFOs 之間切換 + + + + + getting other VFO frequency + 獲取其他 VFO 頻率 + + + + getting other VFO mode + 獲取其他 VFO 模式 + + + + setting current VFO + 設置當前 VFO + + + + getting frequency + 獲取頻率 + + + + getting mode + 獲取模式 + + + + + getting current VFO + 獲取當前 VFO + + + + + + + getting current VFO frequency + 獲取當前 VFO 頻率 + + + + + + + + + setting frequency + 設置頻率 + + + + + + + getting current VFO mode + 獲取當前 VFO 模式 + + + + + + + + setting current VFO mode + 設置當前 VFO 模式 + + + + + setting/unsetting split mode + 設置/取消 設置異頻模式 + + + + + setting split mode + 設置異頻模式 + + + + setting split TX frequency and mode + 設置異頻發射頻率和模式 + + + + setting split TX frequency + 設置異頻發射頻率 + + + + getting split TX VFO mode + 獲得異頻發射 VFO 模式 + + + + setting split TX VFO mode + 設置異頻發射 VFO 模式 + + + + getting PTT state + 獲取PTT 狀態 + + + + setting PTT on + 設置PTT 開啟 + + + + setting PTT off + 設置PTT 關閉 + + + + setting a configuration item + 設置配置項目 + + + + getting a configuration item + 獲取配置項目 + + + + HelpTextWindow + + + Help file error + 說明檔案錯誤 + + + + Cannot open "%1" for reading + 無法開啟 "%1" 以進行閱讀 + + + + Error: %1 + 錯誤: %1 + + + + IARURegions + + + + IARU Region + IARU 區域 + + + + LogQSO + + + Click OK to confirm the following QSO: + 單擊 確定 確認以下通聯: + + + + Call + 呼號 + + + + Start + 開始 + + + + + dd/MM/yyyy HH:mm:ss + + + + + End + 結束 + + + + Mode + 模式 + + + + Band + 波段 + + + + Rpt Sent + 發出報告 + + + + Rpt Rcvd + 接收報告 + + + + Grid + 網格 + + + + Name + 姓名 + + + + Tx power + 發射功率 + + + + + Retain + 保留 + + + + Comments + 注釋 + + + + Operator + 操作員 + + + + Exch sent + 交換發出 + + + + Rcvd + 接收 + + + + + Invalid QSO Data + 無效的通聯資料 + + + + Check exchange sent and received + 選擇已交換的發出及接收 + + + + Check all fields + 檢查所有欄位 + + + + Log file error + 日誌檔案錯誤 + + + + Cannot open "%1" for append + 無法開啟 "%1" 的附加 + + + + Error: %1 + 錯誤: %1 + + + + LotWUsers::impl + + + Network Error - SSL/TLS support not installed, cannot fetch: +'%1' + 網路錯誤 - SSL/TLS 支援未安裝, 無法提取: +'%1' + + + + Network Error - Too many redirects: +'%1' + 網路錯誤 - 重定向太多: +'%1' + + + + Network Error: +%1 + 網路錯誤: +%1 + + + + File System Error - Cannot commit changes to: +"%1" + 檔案系統錯誤 - 無法將變更提交到: +"%1" + + + + File System Error - Cannot open file: +"%1" +Error(%2): %3 + 檔案系統錯誤 - 無法開啟檔案: +"%1" +錯誤(%2): %3 + + + + File System Error - Cannot write to file: +"%1" +Error(%2): %3 + 檔案系統錯誤 - 無法寫入檔案: +"%1" +錯誤(%2): %3 + + + + MainWindow + + + WSJT-X by K1JT + + + + + + + + + + + Band Activity + 波段活動 + + + + + UTC dB DT Freq Dr + + + + + + + + + + Rx Frequency + 接收信息 + + + + CQ only + 只限 CQ + + + + Enter this QSO in log + 在紀錄中輸入此通聯 + + + + Log &QSO + 紀錄 &QSO + + + + Stop monitoring + 停止監聽 + + + + &Stop + 停止&S + + + + Toggle monitoring On/Off + 切換監聽開/關 + + + + &Monitor + 監聽&M + + + + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> + <html><head/><body><p>擦除右視窗. 雙擊可擦除兩個視窗.</p></body></html> + + + + Erase right window. Double-click to erase both windows. + 擦除右視窗. 雙擊可擦除兩個視窗. + + + + &Erase + 擦除&E + + + + <html><head/><body><p>Clear the accumulating message average.</p></body></html> + <html><head/><body><p>清除累積信息平均值.</p></body></html> + + + + Clear the accumulating message average. + 清除累積信息平均值. + + + + Clear Avg + 清除平均 + + + + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> + <html><head/><body><p>在通聯頻率下解碼最近的接收週期</p></body></html> + + + + Decode most recent Rx period at QSO Frequency + 在通聯頻率下解碼最近的接收週期 + + + + &Decode + 解碼&D + + + + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> + <html><head/><body><p>切換自動發射 開/關</p></body></html> + + + + Toggle Auto-Tx On/Off + 切換自動發射 開/關 + + + + E&nable Tx + 啟用發射&n + + + + Stop transmitting immediately + 立即停止發射 + + + + &Halt Tx + 停止發射&H + + + + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> + <html><head/><body><p>切換發射純音調 開/關</p></body></html> + + + + Toggle a pure Tx tone On/Off + 切換發射純音調 開/關 + + + + &Tune + 調諧&T + + + + Menus + 選單 + + + + USB dial frequency + 上邊帶頻率 + + + + 14.078 000 + + + + + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> + <html><head/><body><p>當只存在噪音時建議30dB<br/>綠色好<br/>紅色時可能發生剪切<br/>黃色時太低</p></body></html> + + + + Rx Signal + 接收信號 + + + + 30dB recommended when only noise present +Green when good +Red when clipping may occur +Yellow when too low + 當只存在噪音時建議30dB +綠色好 +紅色時可能發生剪切 +黃色時太低 + + + + DX Call + DX 呼號 + + + + DX Grid + DX 網格 + + + + Callsign of station to be worked + 正在通聯的電臺呼號 + + + + Search for callsign in database + 在數據庫中搜索此呼號的網格數據 + + + + &Lookup + 檢索&L + + + + Locator of station to be worked + 通聯中的電臺定位 + + + + Az: 251 16553 km + 角度: 251 16553 公里 + + + + Add callsign and locator to database + 增加這呼號及網格的數據在數據庫中 + + + + Add + 增加 + + + + Pwr + 功率 + + + + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> + <html><head/><body><p>如果橙色或紅色出現表示無線電設備控制故障, 請單擊以重置並讀取頻率. S 表示異頻模式.</p></body></html> + + + + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. + 如果橙色或红色出现表示无线电设备控制故障, 请单击以重置并读取频率. S 表示异频模式. + + + + ? + + + + + Adjust Tx audio level + 調整發射音效電平 + + + + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> + <html><head/><body><p>選擇工作頻段或輸入 MHz 頻率或輸入 kHz 增量,然後輸入 k.</p></body></html> + + + + Frequency entry + 輸入頻率 + + + + Select operating band or enter frequency in MHz or enter kHz increment followed by k. + 選擇工作頻段或輸入 MHz 頻率或輸入 kHz 增量,然後輸入 k. + + + + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + + + + + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> + <html><head/><body><p>按兩下解碼文字時, 選擇以保持發射頻率固定.</p></body></html> + + + + Check to keep Tx frequency fixed when double-clicking on decoded text. + 按兩下解碼文字時, 選擇以保持發射頻率固定. + + + + Hold Tx Freq + 保持發射頻率 + + + + Audio Rx frequency + 音頻接收頻率 + + + + + + Hz + 赫茲 + + + + Rx + 接收 + + + + Set Tx frequency to Rx Frequency + 將發射頻率設定為接收頻率 + + + + ▲ + + + + + Frequency tolerance (Hz) + 頻率容差 (Hz) + + + + F Tol + 容差 + + + + Set Rx frequency to Tx Frequency + 將接收頻率位置移往發射頻率位置 + + + + ▼ + + + + + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> + <html><head/><body><p>同步閾值. 較低的數位接受較弱的同步訊號.</p></body></html> + + + + Synchronizing threshold. Lower numbers accept weaker sync signals. + 同步閾值. 較低的數位接受較弱的同步訊號. + + + + Sync + 同步 + + + + <html><head/><body><p>Check to use short-format messages.</p></body></html> + <html><head/><body><p>選擇以使用短格式信息.</p></body></html> + + + + Check to use short-format messages. + 選擇以使用短格式信息. + + + + Sh + + + + + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> + <html><head/><body><p>選擇以開啟 JT9 快速模式</p></body></html> + + + + Check to enable JT9 fast modes + 選擇以開啟 JT9 快速模式 + + + + + Fast + 快速 + + + + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> + <html><head/><body><p>選擇以開啟接收到信息自動排序發射信息.</p></body></html> + + + + Check to enable automatic sequencing of Tx messages based on received messages. + 選擇以開啟接收到信息自動排序發射信息. + + + + Auto Seq + 自動程序 + + + + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> + <html><head/><body><p>選擇以呼叫第一個解碼的回應器到我的 CQ.</p></body></html> + + + + Check to call the first decoded responder to my CQ. + 選擇以呼叫第一個解碼的回應器到我的 CQ. + + + + Call 1st + 呼叫第一 + + + + Check to generate "@1250 (SEND MSGS)" in Tx6. + 選擇以產生 "@1250 (SEND MSGS)" in Tx6. + + + + Tx6 + 發射6 + + + + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> + <html><head/><body><p>選擇發射以偶數分鐘或序列, 從 0 開始; 取消選擇以奇數序列.</p></body></html> + + + + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. + 選擇發射以偶數分鐘或序列, 從 0 開始; 取消選擇以奇數序列. + + + + Tx even/1st + 發射偶數/第一 + + + + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> + <html><head/><body><p>呼叫CQ 的頻率以 kHz 高於目前的 MHz</p></body></html> + + + + Frequency to call CQ on in kHz above the current MHz + 呼叫CQ 的頻率以 kHz 高於目前的 MHz + + + + Tx CQ + 發射 CQ + + + + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> + <html><head/><body><p>勾選此項, 以發射CQ呼叫. 接收將在當前頻率上,CQ信息將顯示在當前的接收資訊視窗, 以便呼叫者知道回覆的頻率.</p><p> 不適用於非標準呼號持有者.</p></body></html> + + + + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. +Not available to nonstandard callsign holders. + 勾選此項, 以發射CQ呼叫. 接收將在當前頻率上,CQ信息將顯示在當前的接收資訊視窗, 以便呼叫者知道回覆的頻率. +不適用於非標準呼號持有者. + + + + Rx All Freqs + 接收所有頻率 + + + + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> + <html><head/><body><p>子模式確定音調間距; A 最窄.</p></body></html> + + + + Submode determines tone spacing; A is narrowest. + 子模式確定音調間距; A 最窄. + + + + Submode + 子模式 + + + + + Fox + 狐狸 + + + + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> + <html><head/><body><p>選擇以監視 Sh 信息.</p></body></html> + + + + Check to monitor Sh messages. + 選擇以監視 Sh 信息. + + + + SWL + + + + + Best S+P + 最佳 S+P + + + + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> + <html><head/><body><p>勾選可開始紀錄校準資料.<br/>當測量校準校正被禁用時.<br/>未檢查時您可以查看校準結果.</p></body></html> + + + + Check this to start recording calibration data. +While measuring calibration correction is disabled. +When not checked you can view the calibration results. + 勾選可開始紀錄校準資料. +當測量校準校正被禁用時. +未檢查時您可以查看校準結果. + + + + Measure + 測量 + + + + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> + <html><head/><body><p>信號報告: 參考2500 Hz 頻寬 (dB) 中的信噪比.</p></body></html> + + + + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). + 信號報告: 參考2500 Hz 頻寬 (dB) 中的信噪比. + + + + Report + 報告 + + + + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> + <html><head/><body><p>發射/接收 或頻率校準序列長度</p></body></html> + + + + Tx/Rx or Frequency calibration sequence length + 發射/接收 或頻率校準序列長度 + + + + s + + + + + T/R + + + + + Toggle Tx mode + 切換發射模式 + + + + Tx JT9 @ + 發射 JT9 @ + + + + Audio Tx frequency + 音訊發射頻率 + + + + + Tx + 發射 + + + + Tx# + 發射# + + + + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> + <html><head/><body><p>按兩下另一個呼號以排隊呼叫您的下一個通聯.</p></body></html> + + + + Double-click on another caller to queue that call for your next QSO. + 按兩下另一個呼號以排隊呼叫您的下一個通聯. + + + + Next Call + 下一個通聯 + + + + 1 + + + + + + + Send this message in next Tx interval + 在下一個發射間隔內發送此信息 + + + + Ctrl+2 + + + + + <html><head/><body><p>Send this message in next Tx interval</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>在下一個發射間隔中傳送此訊息</p><p>按兩下以切換使用 Tx1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者)<</p></body></html> + + + + Send this message in next Tx interval +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) + 在下一個發射間隔中傳送此訊息 +按兩下以切換使用 Tx1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者) + + + + Ctrl+1 + + + + + + + + Switch to this Tx message NOW + 立即切換到此發射信息 + + + + Tx &2 + 發射&2 + + + + Alt+2 + + + + + <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>立即切換到此發射信息</p><p>按兩下以切換使用 Tx1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者)</p></body></html> + + + + Switch to this Tx message NOW +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) + 立即切換到此發射信息 +按兩下以切換使用 Tx1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者) + + + + Tx &1 + 發射&1 + + + + Alt+1 + + + + + Ctrl+6 + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> + <html><head/><body><p>在下一個發射間隔內傳送此信息</p><p>雙擊可重置為標準 73 信息</p></body></html> + + + + Send this message in next Tx interval +Double-click to reset to the standard 73 message + 在下一個發射間隔內傳送此信息 +雙擊可重置為標準 73 信息 + + + + Ctrl+5 + + + + + Ctrl+3 + + + + + Tx &3 + 發射&3 + + + + Alt+3 + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>在下一個發射間隔內傳送此信息</p><p>按兩下可在 Tx4 中的 RRR 和 RR73 信息之間切換 (不允許類型 2 複合呼叫持有者)</p><p>RR73 信息僅在您有理由相信不需要重複信息時才應使用</p></body></html> + + + + Send this message in next Tx interval +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + 在下一個發射間隔內傳送此信息 +按兩下可在 Tx4 中的 RRR 和 RR73 信息之間切換 (不允許類型 2 複合呼叫持有者) +RR73 信息僅在您有理由相信不需要重複信息時才應使用 + + + + Ctrl+4 + + + + + <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>立即切換到此發射信息</p><p>按兩下可在 Tx4 中的 RRR 和 RR73 信息之間切換 (不允許類型 2 複合呼叫持有者)</p><p>RR73 信息僅在您有理由相信不需要重複信息時才應使用</p></body></html> + + + + Switch to this Tx message NOW +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + 立即切換到此發射信息 +按兩下可在 Tx4 中的 RRR 和 RR73 信息之間切換 (不允許類型 2 複合呼叫持有者) +RR73 信息僅在您有理由相信不需要重複信息時才應使用 + + + + Tx &4 + 發射&4 + + + + Alt+4 + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> + <html><head/><body><p>立即切换到此发射信息</p><p>雙擊可重置為標準 73 信息</p></body></html> + + + + Switch to this Tx message NOW +Double-click to reset to the standard 73 message + 立即切换到此发射信息 +雙擊可重置為標準 73 信息 + + + + Tx &5 + 發射&5 + + + + Alt+5 + + + + + Now + 現在 + + + + Generate standard messages for minimal QSO + 產生標準信息用於通聯 + + + + Generate Std Msgs + 產生標準信息 + + + + Tx &6 + 發射&6 + + + + Alt+6 + + + + + + Enter a free text message (maximum 13 characters) +or select a predefined macro from the dropdown list. +Press ENTER to add the current text to the predefined +list. The list can be maintained in Settings (F2). + 輸入自訂義文字資訊(最多13個字元) +或從下拉清單中選擇預定義的巨集. +按回車鍵將目前的文字加入預先定義的 +清單. 該清單可在設定(F2)中維護. + + + + Queue up the next Tx message + 排到下一個發射信息 + + + + Next + 下一個 + + + + 2 + + + + + Calling CQ + 呼叫 CQ + + + + Generate a CQ message + 產生CQ信息 + + + + + + CQ + + + + + Generate message with RRR + 產生RRR信息 + + + + RRR + + + + + Generate message with report + 產生報告信息 + + + + dB + + + + + Answering CQ + 回答 CQ + + + + Generate message for replying to a CQ + 產生信息以回答 CQ + + + + + Grid + 網格 + + + + Generate message with R+report + 產生 R+ 報告信息 + + + + R+dB + + + + + Generate message with 73 + 產生73信息 + + + + 73 + + + + + Send this standard (generated) message + 發送此標准(產生)信息 + + + + Gen msg + 產生信息 + + + + Send this free-text message (max 13 characters) + 發送此自定義文本信息(最多13個字符) + + + + Free msg + 自定義文本 + + + + 3 + + + + + Max dB + 最大 dB + + + + CQ AF + + + + + CQ AN + + + + + CQ AS + + + + + CQ EU + + + + + CQ NA + + + + + CQ OC + + + + + CQ SA + + + + + CQ 0 + + + + + CQ 1 + + + + + CQ 2 + + + + + CQ 3 + + + + + CQ 4 + + + + + CQ 5 + + + + + CQ 6 + + + + + CQ 7 + + + + + CQ 8 + + + + + CQ 9 + + + + + Reset + 重置 + + + + N List + N 清單 + + + + N Slots + N 插槽 + + + + + Random + 隨機 + + + + Call + 呼叫 + + + + S/N (dB) + + + + + Distance + 距離 + + + + More CQs + 更多 CQ + + + + Percentage of 2-minute sequences devoted to transmitting. + 用於傳輸的2分鐘序列的百分比. + + + + % + + + + + Tx Pct + 發射 Pct + + + + Band Hopping + 波段預案 + + + + Choose bands and times of day for band-hopping. + 選擇波段和一天之中的時間進行波段跳躍. + + + + Schedule ... + 時間流程 ... + + + + Upload decoded messages to WSPRnet.org. + 將解碼的信息上載到 WSPRnet.org. + + + + Upload spots + 上傳 spots + + + + <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>6 位定位器會導致發送 2 個不同的信息, 第二個包含完整定位器, 但只有哈希呼號,其他電臺必須解碼第一個一次, 然後才能在第二個中解碼您的呼叫. 如果此選項將避免兩個信息協定, 則選中此選項僅發送 4 位定位器.</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. + 6 位定位器會導致發送 2 個不同的信息, 第二個包含完整定位器, 但只有哈希呼號,其他電臺必須解碼第一個一次, 然後才能在第二個中解碼您的呼叫. 如果此選項將避免兩個信息協定, 則選中此選項僅發送 4 位定位器. + + + + Prefer type 1 messages + 首選類型 1信息 + + + + No own call decodes + 沒有自己的呼號解碼 + + + + Transmit during the next 2-minute sequence. + 在接下來的2分鐘序列中輸送. + + + + Tx Next + 發射下一個信息 + + + + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. + 將發射功率設置為 dBm (dB 高於 1 mW) 作為 WSPR 信息的一部分. + + + + File + 檔案 + + + + View + 顯示 + + + + Decode + 解碼 + + + + Save + 儲存 + + + + Help + 說明 + + + + Mode + 模式 + + + + Configurations + 設定 + + + + Tools + 工具 + + + + Exit + 關閉軟件 + + + + Configuration + 設定檔 + + + + F2 + + + + + About WSJT-X + 有關 WSJT-X + + + + Waterfall + 瀑布圖 + + + + Open + 開啟檔案 + + + + Ctrl+O + + + + + Open next in directory + 開啟下一個檔案 + + + + Decode remaining files in directory + 開啟剩餘檔案 + + + + Shift+F6 + + + + + Delete all *.wav && *.c2 files in SaveDir + 刪除所有在SaveDir目錄內 *.wav && *.c2 + + + + None + + + + + Save all + 儲存所有 + + + + Online User Guide + 線上使用者指南 + + + + Keyboard shortcuts + 鍵盤快捷鍵 + + + + Special mouse commands + 滑鼠特殊組合 + + + + JT9 + + + + + Save decoded + 儲存解碼 + + + + Normal + 正常 + + + + Deep + 深度 + + + + Monitor OFF at startup + 啟動時關閉監聽 + + + + Erase ALL.TXT + 刪除 ALL.TXT + + + + Erase wsjtx_log.adi + 刪除通聯日誌 wsjtx_log.adi + + + + Convert mode to RTTY for logging + 將日誌記錄模式轉換為RTTY + + + + Log dB reports to Comments + 將 dB 報告記錄到注釋 + + + + Prompt me to log QSO + 提示我記錄通聯 + + + + Blank line between decoding periods + 解碼期間之間添加空白行 + + + + Clear DX Call and Grid after logging + 日誌記錄後清除 DX 呼號和網格 + + + + Display distance in miles + 顯示距離以英里為單位 + + + + Double-click on call sets Tx Enable + 雙擊呼號啟用發射 + + + + + F7 + + + + + Tx disabled after sending 73 + 發送 73 後停止發射 + + + + + Runaway Tx watchdog + 運行發射監管計時器 + + + + Allow multiple instances + 允許多個情況 + + + + Tx freq locked to Rx freq + 發射頻率鎖定到接收頻率 + + + + JT65 + + + + + JT9+JT65 + + + + + Tx messages to Rx Frequency window + 發射信息發送到接收信息窗口 + + + + Gray1 + + + + + Show DXCC entity and worked B4 status + 顯示 DXCC 實體和曾經通聯狀態 + + + + Astronomical data + 天文數據 + + + + List of Type 1 prefixes and suffixes + 型態 1 前置碼與後綴清單 + + + + Settings... + 設置... + + + + Local User Guide + 本地使用者指南 + + + + Open log directory + 開啟日誌檔案目錄 + + + + JT4 + + + + + Message averaging + 信息平均值 + + + + Enable averaging + 平均值 + + + + Enable deep search + 開啟深度搜尋 + + + + WSPR + + + + + Echo Graph + 回波圖 + + + + F8 + + + + + Echo + 回波 + + + + EME Echo mode + EME 回波模式 + + + + ISCAT + + + + + Fast Graph + 快速圖 + + + + F9 + + + + + &Download Samples ... + 下載樣本&D ... + + + + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> + <html><head/><body><p>下載演示各種模式的示例音頻檔案.</p></body></html> + + + + MSK144 + + + + + QRA64 + + + + + Release Notes + 發行說明 + + + + Enable AP for DX Call + 開啟 AP 為 DX 呼叫 + + + + FreqCal + + + + + Measure reference spectrum + 測量參考頻譜 + + + + Measure phase response + 測量相位回應 + + + + Erase reference spectrum + 清除參考頻譜 + + + + Execute frequency calibration cycle + 執行頻率校準週期 + + + + Equalization tools ... + 均衡工具 ... + + + + WSPR-LF + + + + + Experimental LF/MF mode + 實驗性 LF/MF 模式 + + + + FT8 + + + + + + Enable AP + 開啟 AP + + + + Solve for calibration parameters + 修正參數的解算 + + + + Copyright notice + 版權聲明 + + + + Shift+F1 + + + + + Fox log + 狐狸日誌 + + + + FT8 DXpedition Mode User Guide + FT8 遠征模式使用者指南 + + + + Reset Cabrillo log ... + 重置卡布里略日誌 ... + + + + Color highlighting scheme + 色彩突顯機制 + + + + Contest Log + 競賽日誌 + + + + Export Cabrillo log ... + 匯出卡布里略日誌 ... + + + + Quick-Start Guide to WSJT-X 2.0 + WSJT-X 2.0 快速入門指南 + + + + Contest log + 競賽日誌 + + + + Erase WSPR hashtable + 擦除 WSPR 哈希表 + + + + FT4 + + + + + Rig Control Error + 無線電設備控制錯誤 + + + + + + Receiving + 接收 + + + + Do you want to reconfigure the radio interface? + 是否要重新配置無線電設備接口? + + + + Error Scanning ADIF Log + 掃描 ADIF 紀錄錯誤 + + + + Scanned ADIF log, %1 worked before records created + 掃描 ADIF 紀錄紀錄, %1 建立曾經通聯紀錄 + + + + Error Loading LotW Users Data + 載入 LotW 使用者資料錯誤 + + + + Error Writing WAV File + 寫入 WAV 檔案時錯誤 + + + + Configurations... + 設定檔案... + + + + + + + + + + + + + + + + + + + Message + 信息 + + + + Error Killing jt9.exe Process + 錯誤終止 jt9.exe 程序 + + + + KillByName return code: %1 + 按結束名稱返回代碼: %1 + + + + Error removing "%1" + 刪除時出錯誤 "%1" + + + + Click OK to retry + 單擊 確定 重試 + + + + + Improper mode + 模式不正確 + + + + + File Open Error + 檔案開啟出錯誤 + + + + + + + + Cannot open "%1" for append: %2 + 無法開啟 "%1" 用於附加: %2 + + + + Error saving c2 file + 保存c2檔案出錯誤 + + + + Error in Sound Input + 聲音輸入出錯誤 + + + + Error in Sound Output + 聲音輸出錯誤 + + + + + + Single-Period Decodes + 單週期解碼 + + + + + + Average Decodes + 平均解碼 + + + + Change Operator + 變更操作員 + + + + New operator: + 新操作員: + + + + Status File Error + 狀態檔案錯誤 + + + + + Cannot open "%1" for writing: %2 + 無法開啟 "%1" 用於寫入: %2 + + + + Subprocess Error + 子流程出錯誤 + + + + Subprocess failed with exit code %1 + 子流程失敗, 退出代碼為 %1 + + + + + Running: %1 +%2 + 運行: %1 +%2 + + + + Subprocess error + 子進程出錯誤 + + + + Reference spectrum saved + 儲存參考頻譜 + + + + Invalid data in fmt.all at line %1 + 在 %1 行中 fmt.all 的不合法資料 + + + + Good Calibration Solution + 良好的校準解決方案 + + + + <pre>%1%L2 ±%L3 ppm +%4%L5 ±%L6 Hz + +%7%L8 +%9%L10 Hz</pre> + + + + + Delete Calibration Measurements + 刪除校準測量值 + + + + The "fmt.all" file will be renamed as "fmt.bak" + "fmt.all" 檔案將重新命名為 "fmt.bak" + + + + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: + +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2019 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." + 如果您根據 GNU 通用公共授權條款合理使用 WSJT-X 的任何部分, 則必須在衍生作品中醒目地顯示以下版權聲明: + +"WSJT-X 的演演演算法, 原始碼, 外觀和感覺及相關程式, 和協定規格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版權 (C) 2001-2019 由以下一個或多個作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 開發組的其他成員." + + + + No data read from disk. Wrong file format? + 沒有從磁盤讀取數據. 檔案格式出錯誤? + + + + Confirm Delete + 確認刪除 + + + + Are you sure you want to delete all *.wav and *.c2 files in "%1"? + 是否確實要刪除所有 *.wav 和 *.c2 檔案在 "%1"? + + + + Keyboard Shortcuts + 鍵盤快捷鍵 + + + + Special Mouse Commands + 滑鼠特殊組合 + + + + No more files to open. + 沒有要打開的檔. + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. + 請選擇其他發射頻率. WSJT-X 不會故意傳輸另一個模式在 WSPR 30米子波段上. + + + + WSPR Guard Band + WSPR保護波段 + + + + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. + 請選擇其他頻率. WSJT-X 不會運行狐狸模式在標準 FT8 波段. + + + + Fox Mode warning + 狐狸模式警告 + + + + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: + +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." + 如果您根據 GNU 通用公共授權條款合理使用 WSJT-X 的任何部分, 則必須在衍生作品中醒目地顯示以下版權聲明: + +"WSJT-X 的演演演算法, 原始碼, 外觀和感覺及相關程式, 和協定規格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版權 (C) 2001-2019 由以下一個或多個作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 開發組的其他成員." + + + + Last Tx: %1 + 最後發射: %1 + + + + Should you switch to EU VHF Contest mode? + +To do so, check 'Special operating activity' and +'EU VHF Contest' on the Settings | Advanced tab. + 是否應切換到 歐洲 VHF 競賽模式? +為此, 請檢查 '特殊操作活動' 和 +設置高級選項卡上的 '歐洲 VHF 競賽'. + + + + Should you switch to ARRL Field Day mode? + 是否應切換到 ARRL Field Day 模式? + + + + Should you switch to RTTY contest mode? + 是否應切換到 RTTY 競賽模式? + + + + + + + Add to CALL3.TXT + 添加到 CALL3.TXT + + + + Please enter a valid grid locator + 請輸入有效的網格定位 + + + + Cannot open "%1" for read/write: %2 + 無法開啟 "%1" 用於讀/寫: %2 + + + + %1 +is already in CALL3.TXT, do you wish to replace it? + %1 已經在 CALL3.TXT, 你想替換它嗎? + + + + Warning: DX Call field is empty. + 警告: DX 呼號欄位為空. + + + + Log file error + 日誌檔案錯誤 + + + + Cannot open "%1" + 無法開啟 "%1" + + + + Error sending log to N1MM + 將日誌傳送到 N1MM 時發生錯誤 + + + + Write returned "%1" + 寫入返回 "%1" + + + + Stations calling DXpedition %1 + 呼叫遠征電臺 %1 + + + + Hound + 獵犬 + + + + Tx Messages + 發射信息 + + + + + + Confirm Erase + 確認擦除 + + + + Are you sure you want to erase file ALL.TXT? + 是否確實要擦除 ALL.Txt 檔案? + + + + + Confirm Reset + 確認重置 + + + + Are you sure you want to erase your contest log? + 是否確實要擦除競賽日誌? + + + + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. + 執行此動作將移除目前競賽的所有通聯記錄. 它們將保留在 ADIF 日誌檔中, 但無法匯出到您的卡布里略日誌中. + + + + Cabrillo Log saved + 卡布里略日誌已儲存 + + + + Are you sure you want to erase file wsjtx_log.adi? + 是否確實要擦除 wsjtx_log.adi 檔案? + + + + Are you sure you want to erase the WSPR hashtable? + 是否確定要擦除 WSPR 哈希表? + + + + VHF features warning + VHF 功能警告 + + + + Tune digital gain + 調諧數碼增益 + + + + Transmit digital gain + 傳輸數碼增益 + + + + Prefixes + 前綴 + + + + Network Error + 網路錯誤 + + + + Error: %1 +UDP server %2:%3 + 錯誤: %1 +UDP 服務器 %2:%3 + + + + File Error + 檔案錯誤 + + + + Phase Training Disabled + 關閉階段訓練 + + + + Phase Training Enabled + 開啟階段訓練 + + + + WD:%1m + + + + + + Log File Error + 日誌檔案錯誤 + + + + Are you sure you want to clear the QSO queues? + 是否要清除通聯佇列? + + + + MessageAveraging + + + + Message Averaging + 信息平均值 + + + + UTC Sync DT Freq + + + + + Modes + + + + Mode + 模式 + + + + MultiSettings + + + Default + 默認值 + + + + MultiSettings::impl + + + &Switch To + 切換到&S + + + + &Clone + 克隆&C + + + + Clone &Into ... + 克隆到&I ... + + + + R&eset + 重置&e + + + + &Rename ... + 重新命名&R ... + + + + &Delete + 刪除&D + + + + Clone Into Configuration + 克隆到設定 + + + + Confirm overwrite of all values for configuration "%1" with values from "%2"? + 確認覆蓋設定 "%1" 的值, 以及來自 "%2"的值? + + + + Reset Configuration + 重置設定 + + + + Confirm reset to default values for configuration "%1"? + 確認重置為設定的預設值 "%1"? + + + + Delete Configuration + 刪除設定 + + + + Confirm deletion of configuration "%1"? + 確認刪除設定 "%1"? + + + + NameDialog + + + New Configuration Name + 新設定名稱 + + + + Old name: + 舊名稱: + + + + &New name: + 新名稱&N: + + + + OmniRigTransceiver + + + OmniRig: unrecognized mode + OmniRig: 無法識別的模式 + + + + Failed to start OmniRig COM server + 無法啟動 OmniRig COM 伺服器 + + + + + OmniRig: don't know how to set rig frequency + OmniRig:不知道如何設置無線電設備頻率 + + + + + OmniRig: timeout waiting for update from rig + OmniRig:等待從無線電設備更新的超時 + + + + OmniRig COM/OLE error: %1 at %2: %3 (%4) + OmniRig COM/OLE 錯誤: %1 at %2: %3 (%4) + + + + PollingTransceiver + + + Unexpected rig error + 無線電設備意外出錯誤 + + + + QObject + + + Invalid rig name - \ & / not allowed + 無效的無線電設備名稱 - \ & / 不允許 + + + + User Defined + 用戶定義 + + + + Failed to open LotW users CSV file: '%1' + 無法開啟 LotW 使用者 CSV 檔案: '%1' + + + + OOB + + + + + Too many colours in palette. + 調色板中顏色太多. + + + + Error reading waterfall palette file "%1:%2" too many colors. + 讀取瀑布調色板檔案時出錯誤 "%1:%2" 太多顏色. + + + + Error reading waterfall palette file "%1:%2" invalid triplet. + 讀取瀑布調色板檔案時出錯誤 "%1:%2" 無效的三元組. + + + + Error reading waterfall palette file "%1:%2" invalid color. + 讀取瀑布調色板檔案時出錯誤 "%1:%2" 無效的顏色. + + + + Error opening waterfall palette file "%1": %2. + 讀取瀑布調色板檔案時出錯誤 "%1": %2. + + + + Error writing waterfall palette file "%1": %2. + 讀取瀑布調色板檔案時出錯誤 "%1": %2. + + + + RemoteFile + + + + + + + + File System Error + 檔案系統出錯誤 + + + + Cannot rename file: +"%1" +to: "%2" +Error(%3): %4 + 無法重命名檔案: +"%1" +到: "%2" +出錯誤(%3): %4 + + + + Cannot delete file: +"%1" + 無法刪除檔案: +"%1" + + + + + + Network Error + 網絡錯誤 + + + + Too many redirects: %1 + 太多重定向: %1 + + + + Redirect not followed: %1 + 未遵循重定向:%1 + + + + Cannot commit changes to: +"%1" + 無法將更改提交給: +"%1" + + + + Cannot open file: +"%1" +Error(%2): %3 + 無法開啟檔案: +"%1" +出錯誤(%2): %3 + + + + Cannot make path: +"%1" + 無法建立路徑: +"%1" + + + + Cannot write to file: +"%1" +Error(%2): %3 + 無法寫入檔案: +"%1" +出錯誤(%2): %3 + + + + SampleDownloader::impl + + + Download Samples + 下載樣本 + + + + Input Error + 輸入錯誤 + + + + Invalid URL format + 不合法網址格式 + + + + SoundInput + + + An error opening the audio input device has occurred. + 開啟音頻輸入設備時出錯誤. + + + + An error occurred during read from the audio input device. + 從音頻輸入設備讀取時出錯誤. + + + + Audio data not being fed to the audio input device fast enough. + 音頻數據沒有足夠提供饋送到音頻輸入設備. + + + + Non-recoverable error, audio input device not usable at this time. + 不可恢復的出錯誤, 音頻輸入設備此時不可用. + + + + Requested input audio format is not valid. + 請求的輸入音頻格式無效. + + + + Requested input audio format is not supported on device. + 設備不支持請求輸入的音頻格式. + + + + Failed to initialize audio sink device + 無法初始化音頻接收器設備 + + + + Idle + 閑置 + + + + Receiving + 接收 + + + + Suspended + 暫停 + + + + Interrupted + 中斷 + + + + Error + 出錯誤 + + + + Stopped + 停止 + + + + SoundOutput + + + An error opening the audio output device has occurred. + 開啟音頻輸出設備時出錯誤. + + + + An error occurred during write to the audio output device. + 寫入音頻輸出設備期間出錯誤. + + + + Audio data not being fed to the audio output device fast enough. + 音頻數據未以足夠快的速度饋送到音頻輸出設備. + + + + Non-recoverable error, audio output device not usable at this time. + 不可恢復出錯誤, 音頻輸出設備此時不可用. + + + + Requested output audio format is not valid. + 請求的輸出音頻格式無效. + + + + Requested output audio format is not supported on device. + 設備不支持請求輸出的音頻格式. + + + + Idle + 閑置 + + + + Sending + 發送 + + + + Suspended + 暫停 + + + + Interrupted + 中斷 + + + + Error + 出錯誤 + + + + Stopped + 停止 + + + + StationDialog + + + Add Station + 添加電臺 + + + + &Band: + 波段&B: + + + + &Offset (MHz): + 偏移 (M&Hz): + + + + &Antenna: + 天線&A: + + + + StationList::impl + + + Band name + 波段名稱 + + + + Frequency offset + 頻率偏移 + + + + Antenna description + 天線描述 + + + + Band + 波段 + + + + Offset + 偏移 + + + + Antenna Description + 天線描述 + + + + TransceiverBase + + + Unexpected rig error + 無線電設備意外出錯誤 + + + + WideGraph + + + Dialog + 對話框 + + + + Controls + 控件列 + + + + Spectrum gain + 頻譜增益 + + + + Palette + 調色板 + + + + <html><head/><body><p>Enter definition for a new color palette.</p></body></html> + <html><head/><body><p>輸入新調色板的定義.</p></body></html> + + + + Adjust... + 調整... + + + + Waterfall gain + 瀑布增益 + + + + <html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html> + <html><head/><body><p>在此窗口中設置頻譜的大小.</p></body></html> + + + + % + + + + + Spec + + + + + <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> + <html><head/><body><p>在完整顯示的間隔內平展頻譜基線.</p></body></html> + + + + Flatten + 平坦化 + + + + <html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html> + <html><head/><body><p>計算並保存參考頻譜. (尚未完全實現.)</p></body></html> + + + + Ref Spec + 參考規格 + + + + Smoothing of Linear Average spectrum + 線性平均頻譜的平滑 + + + + Smooth + 平滑 + + + + Compression factor for frequency scale + 頻率刻度的壓縮系數 + + + + Bins/Pixel + 點/像素 + + + + Select waterfall palette + 選擇瀑布調色板 + + + + <html><head/><body><p>Select data for spectral display</p></body></html> + <html><head/><body><p>選擇用於頻譜顯示的數據</p></body></html> + + + + Current + 當前 + + + + Cumulative + 累積 + + + + Linear Avg + 線性平均 + + + + Reference + 參考 + + + + <html><head/><body><p>Frequency at left edge of waterfall</p></body></html> + <html><head/><body><p>波段在瀑布左邊緣顯示</p></body></html> + + + + Hz + + + + + Start + 開始 + + + + <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> + <html><head/><body><p>僅在此頻率以上解碼 JT9</p></body></html> + + + + JT9 + + + + + JT65 + + + + + Number of FFTs averaged (controls waterfall scrolling rate) + FFT 平均數(控制瀑布滾動速率) + + + + N Avg + N 平均 + + + + Waterfall zero + 瀑布零度 + + + + Spectrum zero + 頻譜零度 + + + + Wide Graph + 寬圖 + + + + + Read Palette + 讀取調色盤 + + + + configuration_dialog + + + Settings + 設置 + + + + Genera&l + 一般&l + + + + General station details and settings. + 設置電臺詳細信息. + + + + Station Details + 電臺資料 + + + + My C&all: + 我的呼號&a: + + + + Station callsign. + 電臺呼號. + + + + M&y Grid: + 我的網格&y: + + + + <html><head/><body><p>Maidenhead locator, preferably 6 characters.</p></body></html> + <html><head/><body><p>梅登黑德定位器, 最好是 6 個字元.</p></body></html> + + + + Check to allow grid changes from external programs + 選擇允許從外部程式變更格線 + + + + AutoGrid + 自動格線 + + + + IARU Region: + IARU 區域: + + + + <html><head/><body><p>Select your IARU region.</p></body></html> + <html><head/><body><p>選擇您的 IARU 區域.</p></body></html> + + + + Message generation for type 2 compound callsign holders: + 信息產生用於類型2複合呼號持有人: + + + + <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>複合呼號類型2是那些首碼或後綴不包括在允許的決選名單中 (請參閱説明-& gt; 載入項目前綴和後綴).<p><p>這個選項確定哪些產生的資訊應包含完整類型2複合呼號, 而不是基本呼號.它僅適用於類型為2的複合呼號.</p><p>這個選項控制用於應答 CQ 呼叫的資訊產生方式.產生的資訊 6 (CQ) 和 5 (73) 將始終包含您的完整呼號.jt65 和 jt9 協定允許在您的完整呼叫中使用一些標準資訊, 而犧牲了另一條資訊, 如 dx 呼叫或您的定位.</p><p>選擇資訊1省略 DX 呼號, 這在答覆 CQ 呼叫時可能是一個問題.選擇資訊3也會省略 dx 呼號, 此軟體和其他軟體的許多版本都不會提取報告.選擇這兩個都意味著你的完整呼號只會出現在你的資訊 5 (73) 中, 所以你的 qso 夥伴我的日誌是出錯誤的呼號.</p><p>這些選項都不是完美的, 資訊 3 是最好的, 但請注意, 您的 qso 合作夥伴可能不會記錄您傳送的報告.</p></body></html> + + + + Full call in Tx1 + 完整呼號在 Tx1 + + + + Full call in Tx3 + 完整呼號在 Tx3 + + + + Full call in Tx5 only + 完整呼號在 Tx5 + + + + Display + 顯示 + + + + Show outgoing transmitted messages in the Rx frequency window. + 在接收信息窗口中顯示已發射的信息. + + + + &Tx messages to Rx frequency window + 發出訊息在接收信息窗口顯示&T + + + + Show if decoded stations are new DXCC entities or worked before. + 顯示解碼的電臺是新的 DXCC 實體還是以前曾經通聯. + + + + Show &DXCC, grid, and worked-before status + 顯示 &DXCC、網格與曾經通聯狀態 + + + + <html><head/><body><p>Check to have decodes for a new period start at the top of the Band Activity window and not scroll off the top when the window is full.</p><p>This is to aid selecting decodes to double-click while decoding is still in progress. Use the Band Activity vertical scroll bar to reveal decodes past the bottom of the window.</p></body></html> + <html><head/><body><p>檢查新週期的解碼從 波段活動 視窗的頂部開始,而不是在視窗已滿時從頂部滾動.</p><p>這是為了幫助選擇解碼, 以按兩下, 而解碼仍在進行中. 使用 波段活動 垂直滾動條顯示視窗底部的解碼.</p></body></html> + + + + Start new period decodes at top + 在頂部開始新期間解碼 + + + + Show principal prefix instead of country name + 顯示主體前綴而不是國家 地區名稱 + + + + Set the font characteristics for the application. + 設置應用程序的字體. + + + + Font... + 軟件字體... + + + + Set the font characteristics for the Band Activity and Rx Frequency areas. + 設置波段活動和接收信息窗口的字體. + + + + Decoded Text Font... + 解碼字體... + + + + Include a separator line between periods in the band activity window. + 在波段活動窗口中加入時間分隔行. + + + + &Blank line between decoding periods + 每解碼周期插入間隔行&B + + + + Show distance to DX station in miles rather than kilometers. + 以英里為單位顯示 DX 電臺的距離 而不是顯示公里. + + + + Display dista&nce in miles + 顯示距離為英里&n + + + + Behavior + 慣常方式 + + + + Decode after EME delay + EME 延遲後解碼 + + + + Tx watchdog: + 發射監管計時器: + + + + <html><head/><body><p>Number of minutes before unattended transmissions are aborted</p></body></html> + <html><head/><body><p>無人值守傳輸時到達設定分鐘數中止發射</p></body></html> + + + + Disabled + 停用 + + + + minutes + 分鐘 + + + + Enable VHF/UHF/Microwave features + 啟用 VHF/UHF/Microwave 功能 + + + + Single decode + 單獨解碼 + + + + <html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html> + <html><head/><body><p>某些無線電設備在發射時無法處理CAT 命令.這意味着, 如果您在異頻模式下運行, 則可能必須取消選中此選項.</p></body></html> + + + + Allow Tx frequency changes while transmitting + 允許發射期間改變頻率 + + + + Don't start decoding until the monitor button is clicked. + 軟件開啟時, 關閉監聽按鈕. + + + + Mon&itor off at startup + 開啟時關閉監聽&i + + + + <html><head/><body><p>Check this if you wish to automatically return to the last monitored frequency when monitor is enabled, leave it unchecked if you wish to have the current rig frequency maintained.</p></body></html> + <html><head/><body><p>如果您希望在啟用監聽時自動返回到最後一個監聽頻率.</p></body></html> + + + + Monitor returns to last used frequency + 開始監聽時使用上一次的頻率 + + + + Alternate F1-F6 bindings + 備用 F1-F6 綁定 + + + + Turns off automatic transmissions after sending a 73 or any other free +text message. + 傳送 73 或任何其他自由文本消息後 +關閉自動發射. + + + + Di&sable Tx after sending 73 + 傳送 73 後關閉發射&s + + + + Send a CW ID after every 73 or free text message. + 73或自定義信息發出後用CW模式發放你的呼號. + + + + CW ID a&fter 73 + 73發出後用CW模式發放你呼號&f + + + + Periodic CW ID Inter&val: + 發射CW信息時間間隔&v: + + + + Send a CW ID periodically every few minutes. +This might be required under your countries licence regulations. +It will not interfere with other users as it is always sent in the +quiet period when decoding is done. + 每隔几分鐘定期發送 CW ID. +這可能是必需根據您所在的國家/地區的執照規定. +它不會干擾其他用戶,因為它總是 +在解碼完成後的安靜期間發送. + + + + Automatic transmission mode. + 自動發射模式. + + + + Doubl&e-click on call sets Tx enable + 雙擊呼號集啟用發射l&e + + + + Calling CQ forces Call 1st + 呼叫 CQ 強制呼叫第 1 + + + + &Radio + 電臺&R + + + + Radio interface configuration settings. + 設置無線電設備接口設置. + + + + Settings that control your CAT interface. + 控制CAT界面的設置. + + + + CAT Control + CAT控制 + + + + + Port: + 端口: + + + + Serial port used for CAT control. + 用於CAT控制的串行端口. + + + + Serial Port Parameters + 串口參數 + + + + Baud Rate: + 波特率: + + + + Serial port data rate which must match the setting of your radio. + 串行端口數據速率必須與您的無線電設置相匹配. + + + + 1200 + + + + + 2400 + + + + + 4800 + + + + + 9600 + + + + + 19200 + + + + + 38400 + + + + + 57600 + + + + + 115200 + + + + + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> + <html><head/><body><p>用於與無線電設備 CAT 接口通信的數據位數 (通常為 8 ).</p></body></html> + + + + Data Bits + 數據位元 + + + + D&efault + 默認值&e + + + + Se&ven + Se&ven 7 + + + + E&ight + E&ight 8 + + + + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> + <html><head/><body><p>與無線電設備 CAT 接口通信時使用的停止位數</p><p>(詳情請參閱無線電設備手冊).</p></body></html> + + + + Stop Bits + 停止位元 + + + + + Default + 默認值 + + + + On&e + On&e 1 + + + + T&wo + T&wo 2 + + + + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> + <html><head/><body><p>電腦和無線電設備 CAT 接口 (通常是 "None") 之間使用的流量控制協議 (通常是 "無",但有些要求硬件).</p></body></html> + + + + Handshake + 握手方式 + + + + &None + + + + + Software flow control (very rare on CAT interfaces). + 軟件控制流 (在CAT接口上非常罕見). + + + + XON/XOFF + + + + + Flow control using the RTS and CTS RS-232 control lines +not often used but some radios have it as an option and +a few, particularly some Kenwood rigs, require it). + 使用 RTS 和 CTS RS-232 控制線控制 + 不經常使用但有些無線電設備有它作為一個選項並且 + 很少,特別是一些 健伍無線電設備,需要它). + + + + &Hardware + 硬件&H + + + + Special control of CAT port control lines. + 特殊控制的CAT控制線. + + + + Force Control Lines + 強制控制線 + + + + + High + + + + + + Low + + + + + DTR: + + + + + RTS: + + + + + How this program activates the PTT on your radio + 此程序如何激活無線電設備上的 PTT + + + + PTT Method + PTT 方法 + + + + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> + <html><head/><body><p>如果您沒有無線電設備接口硬件,沒法PTT而是使用無線電設備的自動聲控來發射,請使用此選項.</p></body></html> + + + + VO&X + + + + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to inteface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> + <html><head/><body><p>使用 RS-232 DTR 控制線路切換收音機的 PTT,需要硬體來整數線路.</p><p>某些商業介面單元也使用此方法.</p><p>CAT 串列埠的 DTR 控制線路可用於此或可能用於其他串行埠上的 DTR 控制線路.</p></body></html> + + + + &DTR + + + + + Some radios support PTT via CAT commands, +use this option if your radio supports it and you have no +other hardware interface for PTT. + 一些無線電設備通過CAT命令支持 PTT, +如果您的無線電設備支持此選項請使用此選項而且您沒有 +PTT的其它硬件接口. + + + + C&AT + + + + + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to inteface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> + <html><head/><body><p>使用 RS-232 RTS 控制線切換無線電設備的 PTT, 需要硬件將線路整數.</p><p>一些商業接口單元也使用此方法.</p><p>CAT 串行端口的 RTS 控制線可用於此, 也可以使用其他串行端口上的 RTS 控制線.請注意, 使用硬件流控制時, 此選項在 CAT 串行端口上不可用.</p></body></html> + + + + R&TS + + + + + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> + <html><head/><body><p>選擇用於 ptt 控制的RS-232 串行端口,當選擇上述DTR或RTS作為發射方法時,此選項可用.此端口可以與用於CAT控制的端口相同.對於某些接口類型,可以選擇特殊值CAT,這用於可以遠程控制串口控制線的非串行CAT接口 (例如 omnirig).</p></body></html> + + + + Modulation mode selected on radio. + 在無線電設備上選擇的調制模式. + + + + Mode + 模式 + + + + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> + <html><head/><body><p>上邊帶通常是正確的調制模式,除非無線電設備具有用於AFSK操作的特殊數據或數據包模式設置.</p></body></html> + + + + US&B + 上邊帶&B + + + + Don't allow the program to set the radio mode +(not recommended but use if the wrong mode +or bandwidth is selected). + 不允許程序設置無線電設備模式 +(不建議使用但如果選擇了出錯誤的模式 +或帶寬). + + + + + None + + + + + If this is availabe then it is usually the correct mode for this program. + 如果這是可用的那麼它通常是這個程序的正確模式. + + + + Data/P&kt + 數據/封包&k + + + + Some radios can select the audio input using a CAT command, +this setting allows you to select which audio input will be used +(if it is available then generally the Rear/Data option is best). + 一些無線電設備可以使用 CAT 命令選擇音頻輸入, +此設置允許您選擇將使用的音頻輸入 +(如果可用,則通常 後方/數據 選項是最佳選擇). + + + + Transmit Audio Source + 無線電設備音頻源 + + + + Rear&/Data + 後方&/數據口 + + + + &Front/Mic + 前方/咪高峰&F + + + + Rig: + 無線電設備: + + + + Poll Interval: + 時間間隔: + + + + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> + <html><head/><body><p>為軟件與無線電設備溝通的時間間隔.時間間隔較長,意味着對無線電設備的更改需要更長的時間才能檢測到.</p></body></html> + + + + s + + + + + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> + <html><head/><body><p>嘗試使用這些設置連接到無線電設備.如果連接成功,該按鈕將變為綠色; 如果有問題,則為紅色.</p></body></html> + + + + Test CAT + 測試 CAT + + + + Attempt to activate the transmitter. +Click again to deactivate. Normally no power should be +output since there is no audio being generated at this time. +Check that any Tx indication on your radio and/or your +radio interface behave as expected. + 嘗試激活無線電設備. +再次單擊以停用.通常沒有功率輸出 +因為此時沒有音頻生成.檢查無線電設備 +和/或您的無線電設備接口上 +的任何發射指示是否如預期的那樣. + + + + Test PTT + 測試 PTT + + + + Split Operation + 異頻操作 + + + + Fake It + 虛假 + + + + Rig + 無線電設備 + + + + A&udio + 音頻&u + + + + Audio interface settings + 音頻接口設置 + + + + Souncard + 音效卡 + + + + Soundcard + 聲卡 + + + + Select the audio CODEC to use for transmitting. +If this is your default device for system sounds then +ensure that all system sounds are disabled otherwise +you will broadcast any systems sounds generated during +transmitting periods. + 選擇要用於發射的音頻信號. +如果這是您的默認值設備的系統聲音 +然後確保所有系統聲音被禁用 +否則您將任何系統生成的聲音 +向外發射輸出. + + + + Select the audio CODEC to use for receiving. + 選擇要用於接收的音頻信號. + + + + &Input: + 輸入&I: + + + + Select the channel to use for receiving. + 選擇要用於接收的通道. + + + + + Mono + 單聲道 + + + + + Left + 左聲道 + + + + + Right + 右聲道 + + + + + Both + 雙聲道 + + + + Select the audio channel used for transmission. +Unless you have multiple radios connected on different +channels; then you will usually want to select mono or +both here. + 選擇用於發射的音頻通道. +除非您在不同無線電設備連接多個到不同的 +通道; 那麼你通常會想要選擇單聲道或 +雙聲道. + + + + Ou&tput: + 輸出&t: + + + + + Save Directory + 儲存目錄 + + + + Loc&ation: + 目錄位置&a: + + + + Path to which .WAV files are saved. + .WAV 檔案被儲存到哪條路徑. + + + + + TextLabel + + + + + Click to select a different save directory for .WAV files. + 單擊選擇不同的儲存目錄 .WAV 檔案. + + + + S&elect + 選擇&e + + + + + AzEl Directory + AzEl 目錄 + + + + Location: + 位置: + + + + Select + 選擇 + + + + Power Memory By Band + 依頻段記憶功率 + + + + Remember power settings by band + 按頻段功率記憶設定 + + + + Enable power memory during transmit + 在傳輸過程中啟用功率記憶 + + + + Transmit + 發射 + + + + Enable power memory during tuning + 在調諧期間開啟功率記憶 + + + + Tune + 調諧 + + + + Tx &Macros + 自定義文字&M + + + + Canned free text messages setup + 設置自定義文字 + + + + &Add + 增加&A + + + + &Delete + 删除&D + + + + Drag and drop items to rearrange order +Right click for item specific actions +Click, SHIFT+Click and, CRTL+Click to select items + 拖放項目以重新排列順序 +右鍵按下項目的操作 +單擊, SHIFT+單擊 和, CRTL+單擊 以選擇專案 + + + + Reportin&g + 報告&g + + + + Reporting and logging settings + 設置日誌和報告 + + + + Logging + 記錄日誌 + + + + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. + 當您發送73或自定義文字時,程序將彈出一個部分完成的日誌QSO對話框. + + + + Promp&t me to log QSO + 提示我記錄通聯日誌&t + + + + Op Call: + 操作員呼號: + + + + Some logging programs will not accept the type of reports +saved by this program. +Check this option to save the sent and received reports in the +comments field. + 一些日誌程序不接受這種類型的報告 +由該程序儲存. +選中此選項可將發送和接收的報告儲存在 +注釋字段. + + + + d&B reports to comments + 把d&B報告寫入注釋欄 + + + + Check this option to force the clearing of the DX Call +and DX Grid fields when a 73 or free text message is sent. + 選中此選項當發送73或自定義文字信息可強制清除DX呼叫 +和DX網格字段. + + + + Clear &DX call and grid after logging + 記錄完成後清除&DX呼號及網格 + + + + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> + <html><head/><body><p>某些紀錄紀錄程式不接受 WSJT-X 模式名稱.</p></body></html> + + + + Con&vert mode to RTTY + 把日誌記錄轉成RTTY模式&v + + + + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> + <html><head/><body><p>操作員的呼號 (如果與電臺呼號不同).</p></body></html> + + + + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> + <html><head/><body><p>選擇當完成通聯後, 自動記錄.</p></body></html> + + + + Log automatically (contesting only) + 日志自动记录 (仅限竞赛) + + + + Network Services + 網絡服務 + + + + The program can send your station details and all +decoded signals as spots to the http://pskreporter.info web site. +This is used for reverse beacon analysis which is very useful +for assessing propagation and system performance. + 該程序可以發送您的站的詳細信息和所有 +解碼信號作為點的 http://pskreporter.info 的網站. +這是用於反向信標分析,這是非常有用的 +用於評估傳播和系統性能. + + + + Enable &PSK Reporter Spotting + 啟用&PSK Reporter Spotting + + + + UDP Server + UDP服務器 + + + + UDP Server: + UDP服務器: + + + + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> + <html><head/><body><p>接收解碼的網絡服務的可選主機名稱.</p><p>格式:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">主機名稱</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4多點傳送組地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 多點傳送組地址</li></ul><p>清除此字段將禁用UDP狀態更新的廣播.</p></body></html> + + + + UDP Server port number: + 主要UDP服務器端口: + + + + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> + <html><head/><body><p>輸入 WSJT-X 應向其發送更新的 UDP 伺服器的服務埠號. 如果為零, 將不會廣播任何更新.</p></body></html> + + + + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> + <html><head/><body><p>啟用此功能後,WSJT-X 將接受來自接收解碼消息的 UDP 伺服器的某些請求.</p></body></html> + + + + Accept UDP requests + 接受UDP請求 + + + + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> + <html><head/><body><p>指示接受傳入的 UDP 請求.此選項的效果因操作系統和窗口管理器而異,其目的是通知接受傳入的 UDP 請求,即使此應用程序最小化或隱藏</p></body></html> + + + + Notify on accepted UDP request + 在接受UDP的請求時通知 + + + + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> + <html><head/><body><p>如果接受 UDP 請求,則從最小化還原窗口.</p></body></html> + + + + Accepted UDP request restores window + 接受UDP請求還原窗口 + + + + Secondary UDP Server (deprecated) + 輔助UDP 伺服器 (已棄用) + + + + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> + <html><head/><body><p>選擇後, WSJT-X 將以 ADIF 格式將記錄的聯絡廣播到設定的主機名稱和埠. </p></body></html> + + + + Enable logged contact ADIF broadcast + 開啟記錄連絡 ADIF 廣播 + + + + Server name or IP address: + 伺服器名稱或 IP 位址: + + + + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> + + + + + Server port number: + 伺服器連接埠號: + + + + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> + <html><head/><body><p>輸入 WSJT-X 應用於 ADIF 日誌資訊的 UDP 廣播的埠號. 對於 N1MM Logger+, 此值應為 2333. 如果為零, 將不會廣播任何更新.</p></body></html> + + + + Frequencies + 頻率 + + + + Default frequencies and band specific station details setup + 設置默認值頻率和帶寬點特定的電臺詳細信息 + + + + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> + <html><head/><body><p>閱讀 &quot;頻率校準&quot; 在 WSJT-X 使用者指南中, 有關如何確定無線電的這些參數的詳細資訊.</p></body></html> + + + + Frequency Calibration + 頻率校准 + + + + Slope: + 傾斜率: + + + + ppm + + + + + Intercept: + 攔截: + + + + Hz + + + + + Working Frequencies + 工作頻率 + + + + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> + <html><head/><body><p>右鍵按一下以保持工作頻率清單.</p></body></html> + + + + Station Information + 電臺信息 + + + + Items may be edited. +Right click for insert and delete options. + 專案可以編輯 +右鍵按下以插入與刪除選項. + + + + Colors + 顏色 + + + + Decode Highlightling + 解碼突出顯示 + + + + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> + <html><head/><body><p>使用複選框啟用或禁用專案, 並右鍵單擊專案以更改或取消設置前景顏色, 背景顏色, 或將專案重置為預設值. 拖放專案以更改其優先順序, 清單中較高的優先順序較高.</p><p> 請注意,每個前景或背景顏色都可以設置或取消設置, 未設置意味著未為該專案分配該類型, 低優先順序項可能適用.</p></body></html> + + + + Rescan ADIF Log + 重新掃描 ADIF 紀錄 + + + + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> + <html><head/><body><p>推送將上述所有突出顯示項重置為預設值和優先順序.</p></body></html> + + + + Reset Highlighting + 重置突顯顯示 + + + + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> + <html><head/><body><p>選擇以指示每個模式新的 DXCC 實體, 網格和呼號.</p></body></html> + + + + Highlight by Mode + 依模式突顯 + + + + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> + <html><head/><body><p>按下以再次掃描 wsjtx_log.adi ADIF 檔, 以便曾經通聯資訊</p></body></html> + + + + How this program activates the PTT on your radio? + 此程式如何啟動無線電設備上的 PTT? + + + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> + <html><head/><body><p>使用 RS-232 DTR 控制線路切換無線電設備的 PTT,需要硬體來介面線路.</p><p>某些商業介面單元也使用此方法.</p><p>CAT 串列埠的 DTR 控制線路可用於此或可用於其他串行埠上的 DTR 控制線路.</p></body></html> + + + + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> + <html><head/><body><p>使用 RS-232 RTS 控制線路切換無線電設備的 PTT, 需要硬體來介面線路.</p><p>某些商業介面單元也使用此方法.</p><p>CAT 串列埠的 RTS 控制線路可用於此或可能用於其他串行埠上的 RTS 控制線路. 請注意, 使用硬體流控制時, CAT 串行埠上不可用此選項.</p></body></html> + + + + If this is available then it is usually the correct mode for this program. + 如果這是可用的, 那麼它通常是這個程式的正確模式. + + + + Include extra WAE entities + 包括額外的 WAE 實體 + + + + Check to for grid highlighting to only apply to unworked grid fields + 檢查到格線突出顯示僅套用於未通聯的網格欄位 + + + + Only grid Fields sought + 只尋求格格欄位 + + + + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> + <html><head/><body><p>控制 LoTW 使用者查找日誌.</p></body></html> + + + + Logbook of the World User Validation + LoTW 使用者驗證紀錄 + + + + Users CSV file URL: + 使用者 CSV 檔案網址: + + + + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> + <html><head/><body><p>ARRL LoTW 使用者上次上傳日期和時間資料檔案的網址, 該檔案用於突出顯示已知將紀錄檔上載到 LoTW 的電臺的解碼.</p></body></html> + + + + https://lotw.arrl.org/lotw-user-activity.csv + + + + + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> + <html><head/><body><p>按下這個按鈕即可取得最新的 LoRW 使用者的上傳日期和時間資料檔.</p></body></html> + + + + Fetch Now + 立即取得 + + + + Age of last upload less than: + 上次上傳的日期小於: + + + + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> + <html><head/><body><p>調整此旋轉框以設定 LoTW 使用者最後一個上傳日期的日期閾值,該日期被接受為當前 LoTW 使用者.</p></body></html> + + + + days + + + + + Advanced + 高級設置 + + + + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> + <html><head/><body><p>用戶可選參數用於JT65 VHF/UHF/Microwave 的解碼.</p></body></html> + + + + JT65 VHF/UHF/Microwave decoding parameters + JT65 VHF/UHF/Microwave 解碼參數 + + + + Random erasure patterns: + 隨機擦除模式: + + + + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> + <html><head/><body><p>隨機軟決策 Reed Solomon 解碼器的最大擦除模式數為 10^(n/2).</p></body></html> + + + + Aggressive decoding level: + 主動解碼等級: + + + + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> + <html><head/><body><p>較高的水準會增加解碼的概率,但也會增加錯誤解碼的概率.</p></body></html> + + + + Two-pass decoding + 以二次解碼 + + + + Special operating activity: Generation of FT4, FT8, and MSK144 messages + 特殊操作活動: 產生FT4, FT8 和 MSK144 信息 + + + + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> + <html><head/><body><p>FT8 DX遠征模式呼叫DX的獵犬操作員.</p></body></html> + + + + Hound + 獵犬 + + + + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> + <html><head/><body><p>北美 VHF/UHF/Microwave 競賽和其他需要交換的 4 個字元網格定位的競賽.</p></body></html> + + + + NA VHF Contest + NA VHF 競賽 + + + + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> + <html><head/><body><p>FT8 DX远征模式: 狐狸 (DX远征) 操作员.</p></body></html> + + + + Fox + 狐狸 + + + + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> + <html><head/><body><p>歐洲 VHF+ 競賽需要信號報告, 序列號和 6 個字元定位.</p></body></html> + + + + EU VHF Contest + EU VHF 競賽 + + + + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> + <html><head/><body><p>ARRL RTTY Roundup 和類似的比賽. 交換是美國的州, 加拿大省或 &quot;DX&quot;.</p></body></html> + + + + RTTY Roundup messages + RTTY Roundup 信息 + + + + RTTY RU Exch: + RTTY RU 交換: + + + + NJ + + + + + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> + <html><head/><body><p>ARRL Field Day 交換: 發射機數量, 類別別, 和 ARRL/RAC 部份或 &quot;DX&quot;.</p></body></html> + + + + ARRL Field Day + + + + + FD Exch: + FD 交換: + + + + 6A SNJ + + + + + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> + <html><head/><body><p>世界數字模式競賽</p><p><br/></p></body></html> + + + + WW Digi Contest + 世界數字競賽 + + + + Miscellaneous + 雜項 + + + + Degrade S/N of .wav file: + 降低信噪比的 .wav文件: + + + + + For offline sensitivity tests + 用於離線靈敏度測試 + + + + dB + + + + + Receiver bandwidth: + 接收器頻寬: + + + + Hz + + + + + Tx delay: + 發射延遲: + + + + Minimum delay between assertion of PTT and start of Tx audio. + PTT 驗證與發射音訊啟動之間的最小延遲. + + + + s + + + + + Tone spacing + 音調間距 + + + + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> + <html><head/><body><p>產生具有正常音調間距兩倍的發射音頻. 適用於在產生射頻之前使用除以 2 的特殊 LF/MF 發射器.</p></body></html> + + + + x 2 + + + + + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> + <html><head/><body><p>具有正常音調間距四倍的發射音頻. 適用於在產生射頻之前使用除以 4 的特殊 LF/MF 發射器.</p></body></html> + + + + x 4 + + + + + Waterfall spectra + 瀑布頻譜 + + + + Low sidelobes + 低側邊 + + + + Most sensitive + 最敏感 + + + + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> + <html><head/><body><p>放棄 (取消) 或應用 (確定) 設定更改, 包括</p><p>重置無線電介面並套用任何音效卡變更</p></body></html> + + + + main + + + + Fatal error + 嚴重出錯誤 + + + + + Unexpected fatal error + 意外的嚴重出錯誤 + + + + Where <rig-name> is for multi-instance support. + 使用 <rig-name> 用於多實例支援無線電設備. + + + + rig-name + 無線電設備名稱 + + + + Where <configuration> is an existing one. + 哪裡 <configuration> 是現有的. + + + + configuration + 設定 + + + + Where <language> is <lang-code>[-<country-code>]. + 哪裡 <language> 是 <lang-code>[-<country-code>]. + + + + language + 語言 + + + + Writable files in test location. Use with caution, for testing only. + 測試位置中的可寫檔案. 小心使用, 僅用於測試. + + + + Command line error + 命令列錯誤 + + + + Command line help + 命令列説明 + + + + Application version + 應用程式版本 + + + + Another instance may be running + 另一個應用程式可能正在執行 + + + + try to remove stale lock file? + 嘗試刪除陳舊的鎖檔? + + + + Failed to create a temporary directory + 無法建立暫存目錄 + + + + + Path: "%1" + 目錄: "%1" + + + + Failed to create a usable temporary directory + 無法建立可用的暫存目錄 + + + + Another application may be locking the directory + 另一個應用程式可能正在鎖定目錄 + + + + Failed to create data directory + 無法建立資料目錄 + + + + path: "%1" + 目錄: "%1" + + + + Shared memory error + 共用記憶體錯誤 + + + + Unable to create shared memory segment + 無法建立共用記憶體段 + + + + wf_palette_design_dialog + + + Palette Designer + 調色盤設計 + + + + <html><head/><body><p>Double click a color to edit it.</p><p>Right click to insert or delete colors.</p><p>Colors at the top represent weak signals</p><p>and colors at the bottom represent strong</p><p>signals. You can have up to 256 colors.</p></body></html> + <html><head/><body><p>雙擊一種顏色進行編輯.</p><p>右鍵單擊可插入或刪除顏色.</p><p>頂部的顏色代表微弱的信號</p><p>底部的顏色代表強烈</p><p>信號. 您最多可以有256種顏色.</p></body></html> + + + From 1371b71c5aa5d3528e31da4224d73658cac22bd6 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 31 May 2020 14:41:59 +0100 Subject: [PATCH 033/520] Avoid duplicate resources and ensure generic Qt UI l10n loaded --- CMakeLists.txt | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b95c09f54..bf37768a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1094,7 +1094,7 @@ add_custom_target (ctags COMMAND ${CTAGS} -o ${CMAKE_SOURCE_DIR}/tags -R ${sourc add_custom_target (etags COMMAND ${ETAGS} -o ${CMAKE_SOURCE_DIR}/TAGS -R ${sources}) -# Qt i18n +# Qt i18n - always include the country generic if any regional variant is included set (LANGUAGES en # English (we need this to stop # translation loaders loading the @@ -1108,13 +1108,11 @@ set (LANGUAGES zh_HK # Chinese per Hong Kong ) foreach (lang_ ${LANGUAGES}) - file (TO_NATIVE_PATH translations/wsjtx_${lang_}.ts ts_) - list (APPEND TS_FILES ${ts_}) - set (qt_translations_ "${QT_TRANSLATIONS_DIR}/qtbase_${lang_}.qm") - if (NOT EXISTS "${qt_translations_}") - string (REGEX REPLACE "([a-z][a-z])_[A-Z][A-Z]" "\\1" lang_ ${lang_}) - set (qt_translations_ "${QT_TRANSLATIONS_DIR}/qtbase_${lang_}.qm") + file (TO_NATIVE_PATH ${CMAKE_SOURCE_DIR}/translations/wsjtx_${lang_}.ts ts_) + if (EXISTS "${ts_}") + list (APPEND TS_FILES ${ts_}) endif () + set (qt_translations_ "${QT_TRANSLATIONS_DIR}/qtbase_${lang_}.qm") if (EXISTS "${qt_translations_}") add_custom_command ( OUTPUT "${CMAKE_BINARY_DIR}/qt_${lang_}.qm" From b30c3cc8238d3d75e6ed74aea8079135babd9144 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 31 May 2020 14:45:49 +0100 Subject: [PATCH 034/520] Update .ts files --- translations/wsjtx_ja.ts | 413 ++++++++++++++--------------- translations/wsjtx_zh.ts | 509 ++++++++++++++++++------------------ translations/wsjtx_zh_HK.ts | 507 ++++++++++++++++++----------------- 3 files changed, 708 insertions(+), 721 deletions(-) diff --git a/translations/wsjtx_ja.ts b/translations/wsjtx_ja.ts index 5453cfe72..41b32845b 100644 --- a/translations/wsjtx_ja.ts +++ b/translations/wsjtx_ja.ts @@ -1070,9 +1070,13 @@ Error: %2 - %3 周波数(Hz) - Phase (Î ) - 位相 (Î ) + 位相 (Î ) + + + + Phase (Π) + @@ -1554,178 +1558,178 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error Hamlib初期化エラー - + Hamlib settings file error: %1 at character offset %2 Hamlib設定ファイルエラー: %2にて%1 - + Hamlib settings file error: top level must be a JSON object ファイルのトップレベルはJSONオブジェクトでなければいけません - + Hamlib settings file error: config must be a JSON object Hamlib設定エラー: JSONオブジェクトでなければなりません - + Unsupported CAT type サポートしていないCATタイプ - + Hamlib error: %1 while %2 Hamlibエラー: %1 %2 - + opening connection to rig 無線機への接続 - + getting current frequency 現周波数を取得 - + getting current mode 現モードを取得 - - + + exchanging VFOs VFO入れ替え - - + + getting other VFO frequency もう一方のVFOの周波数を取得 - + getting other VFO mode もう一方のVFOのモードを取得 - + setting current VFO 現VFOを設定 - + getting frequency 周波数を取得 - + getting mode モードを取得 - - + + getting current VFO 現VFOを取得 - - - - + + + + getting current VFO frequency 現VFOの周波数を取得 - - - - - - + + + + + + setting frequency 周波数を設定 - - - - + + + + getting current VFO mode 現VFOのモードを取得 - - - - - + + + + + setting current VFO mode 現VFOモードを設定 - - + + setting/unsetting split mode スプリットのオン/オフ - - + + setting split mode スプリットモードオン - + setting split TX frequency and mode スプリット送信周波数とモードをセット - + setting split TX frequency スプリット送信周波数をセット - + getting split TX VFO mode スプリットモードを取得 - + setting split TX VFO mode スプリット送信VFOのモードをセット - + getting PTT state PTT状態を取得 - + setting PTT on PTTオン - + setting PTT off PTTオフ - + setting a configuration item コンフィグレーション項目をセット - + getting a configuration item コンフィグレーション項目を取得 @@ -1936,12 +1940,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity バンド状況 @@ -1953,11 +1957,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency 受信周波数 @@ -2244,12 +2248,6 @@ Yellow when too low Set Tx frequency to Rx Frequency 送信周波数を受信周波数へコピー - - - â–² - 文字化け? - - Frequency tolerance (Hz) @@ -2265,11 +2263,15 @@ Yellow when too low Set Rx frequency to Tx Frequency 受信周波数を送信周波数へコピー + + + ▲ + + - â–¼ - 文字化け? - + ▼ + @@ -2421,7 +2423,7 @@ Not available to nonstandard callsign holders. - + Fox Fox @@ -3273,7 +3275,7 @@ ENTERを押してテキストを登録リストに追加. - + Runaway Tx watchdog Txウオッチドッグ発令 @@ -3550,8 +3552,8 @@ ENTERを押してテキストを登録リストに追加. - - + + Receiving 受信中 @@ -3587,21 +3589,21 @@ ENTERを押してテキストを登録リストに追加. - - - - - + + + + - + - + - + - + - + + Message メッセージ @@ -3626,198 +3628,197 @@ ENTERを押してテキストを登録リストに追加. OKを押して再試行 - - + + Improper mode 不適切なモード - - + + File Open Error ファイルオープンエラー - - - - - + + + + + Cannot open "%1" for append: %2 "%2"を追加する"%1"が開けません - + Error saving c2 file c2ファイルを保存できません - + Error in Sound Input サウンド入力にエラー発生 - + Error in Sound Output サウンド出力にエラー発生 - - - - - Single-Period Decodes - シングルパスデコード - + Single-Period Decodes + シングルパスデコード + + + + + Average Decodes 平均デコード - + Change Operator オペレータ交代 - + New operator: 新オペレータ: - + Status File Error ステータスファイルエラー - - + + Cannot open "%1" for writing: %2 %2を書き込むための"%1"が開けません - + Subprocess Error サブプロセスエラー - + Subprocess failed with exit code %1 サブプロセスエラー 終了コード %1 - - + + Running: %1 %2 実行中: %1 %2 - + Subprocess error サブプロセスエラー - + Reference spectrum saved 参照用スペクトラムを保存しました - + Invalid data in fmt.all at line %1 fmt.allの%1行目に無効なデータ - + Good Calibration Solution 較正良好 - - <pre>%1%L2 ±%L3 ppm -%4%L5 ±%L6 Hz + + <pre>%1%L2 ±%L3 ppm +%4%L5 ±%L6 Hz %7%L8 %9%L10 Hz</pre> - 文字化け? - + Delete Calibration Measurements 較正の測定結果を削除 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all"は"fmt.bak"に名前が変わります - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? ディスクからデータが読めません.フォーマットが合っていますか? - + Confirm Delete 削除確認 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? "%1"のすべての*.wavと*.c2ファイルを削除していいですか? - + Keyboard Shortcuts キーボードショートカット - + Special Mouse Commands 特別なマウス操作 - + No more files to open. これ以上開くファイルがありません. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 他の送信周波数を使ってください. WSJT-Xは30mバンドのWSPRサブバンド中の他のモードを受信せずに送信してしまいます. - + WSPR Guard Band WSPRガードバンド - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 他のダイヤル周波数を使ってください. WSJT-XはFT8の標準サブバンドでFoxモードを使えません。 - + Fox Mode warning Foxモード警告 - + Last Tx: %1 最終送信: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3827,183 +3828,183 @@ To do so, check 'Special operating activity' and 設定|詳細タブで設定変更してください. - + Should you switch to ARRL Field Day mode? ARRLフィールドデーモードに切り替えますか? - + Should you switch to RTTY contest mode? RTTYコンテストモードに切り替えますか? - - - - + + + + Add to CALL3.TXT CALL3.TXTへ追加 - + Please enter a valid grid locator 有効なグリッドロケータを入力してください - + Cannot open "%1" for read/write: %2 %2を読み書きするための"%1"が開けません - + %1 is already in CALL3.TXT, do you wish to replace it? %1 がすでにCALL3.TXTにセットされています。置き換えますか? - + Warning: DX Call field is empty. 警告 DXコールが空白です. - + Log file error ログファイルエラー - + Cannot open "%1" "%1"を開けません - + Error sending log to N1MM N1MMへログを送れません - + Write returned "%1" 応答"%1"を書き込み - + Stations calling DXpedition %1 DXペディション %1を呼ぶ局 - + Hound Hound - + Tx Messages 送信メッセージ - - - + + + Confirm Erase 消去確認 - + Are you sure you want to erase file ALL.TXT? ALL.TXTファイルを消去してよいですか? - - + + Confirm Reset リセット確認 - + Are you sure you want to erase your contest log? コンテストログを消去していいですか? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 現在のコンテストのQSO記録をすべて消去します。ADIFログには記録されますがCabrilloログにエクスポートすることはできません. - + Cabrillo Log saved Cabrilloログ保存しました - + Are you sure you want to erase file wsjtx_log.adi? wsjtx_log.adiを消してもよいですか? - + Are you sure you want to erase the WSPR hashtable? WSPRのハッシュテーブルを消してもよいですか? - + VHF features warning VHF機能警告 - + Tune digital gain チューンのデジタルゲイン - + Transmit digital gain 送信デジタルゲイン - + Prefixes プリフィックス - + Network Error ネットワークエラー - + Error: %1 UDP server %2:%3 エラー %1 UDPサーバー %2:%3 - + File Error ファイルエラー - + Phase Training Disabled 位相調整オフ - + Phase Training Enabled 位相調整オン - + WD:%1m WD:%1m - - + + Log File Error ログファイルエラー - + Are you sure you want to clear the QSO queues? QSO待ち行列をクリアしてもいいですか? @@ -4161,7 +4162,7 @@ UDPサーバー %2:%3 QObject - + Invalid rig name - \ & / not allowed 無効な名前 - \ & / は使えません @@ -6173,115 +6174,115 @@ Right click for insert and delete options. main - - + + Fatal error 致命的エラー - - + + Unexpected fatal error 予期せぬ致命的エラー - + Where <rig-name> is for multi-instance support. ここで<rig-name>は複数インスタンスのサポート. - + rig-name - + Where <configuration> is an existing one. ここで<configuration>はすでに設定済みのもの. - + configuration - + Where <language> is <lang-code>[-<country-code>]. ここで<language>は<lang-code>[-<country-code>]. - + language - + Writable files in test location. Use with caution, for testing only. テスト用書き込み可能ファイル. 注意してテストだけに使うこと. - + Command line error コマンドラインエラー - + Command line help コマンドラインヘルプ - + Application version アプリのバージョン - + Another instance may be running おそらく他のインスタンスが動作中 - + try to remove stale lock file? 古いロックファイルの削除を試みますか? - + Failed to create a temporary directory 一時的作業ディレクトリーが作成できません - - + + Path: "%1" パス:"%1" - + Failed to create a usable temporary directory 一時的作業ディレクトリが作成できません - + Another application may be locking the directory おそらく他のアプリがディレクトリをロックしています - + Failed to create data directory データ用ディレクトリの作成ができません - + path: "%1" パス: "%1" - + Shared memory error 共有メモリエラー - + Unable to create shared memory segment 共有メモリセグメントが作成できません diff --git a/translations/wsjtx_zh.ts b/translations/wsjtx_zh.ts index a8288ca62..ccf36f36c 100644 --- a/translations/wsjtx_zh.ts +++ b/translations/wsjtx_zh.ts @@ -881,7 +881,7 @@ Format: Dialog - + Gray time: 灰线时间: @@ -1467,86 +1467,86 @@ Error: %2 - %3 HRDTransceiver - - + + Failed to connect to Ham Radio Deluxe 无法连接到 Ham Radio Deluxe - + Failed to open file "%1": %2. 无法打开文件 "%1": %2. - - + + Ham Radio Deluxe: no rig found Ham Radio Deluxe: 未找到无线电设备 - + Ham Radio Deluxe: rig doesn't support mode Ham Radio Deluxe: 无线电设备不支持模式 - + Ham Radio Deluxe: sent an unrecognised mode Ham Radio Deluxe: 发送了一个无法识别的模式 - + Ham Radio Deluxe: item not found in %1 dropdown list Ham Radio Deluxe: 在 %1 下拉列表中找不到项目 - + Ham Radio Deluxe: button not available Ham Radio Deluxe: 按钮不可用 - + Ham Radio Deluxe didn't respond as expected Ham Radio Deluxe 没有如预期的那样响应 - + Ham Radio Deluxe: rig has disappeared or changed Ham Radio Deluxe: 无线电设备已经消失或改变 - + Ham Radio Deluxe send command "%1" failed %2 Ham Radio Deluxe 发送命令 "%1" 失败 %2 - - + + Ham Radio Deluxe: failed to write command "%1" Ham Radio Deluxe: 无法写入命令 "%1" - + Ham Radio Deluxe sent an invalid reply to our command "%1" Ham Radio Deluxe 对我们的命令发出了无效的回复 "%1" - + Ham Radio Deluxe failed to reply to command "%1" %2 Ham Radio Deluxe 无法回复命令 "%1" %2 - + Ham Radio Deluxe retries exhausted sending command "%1" Ham Radio Deluxe 发送命令重试失败 "%1" - + Ham Radio Deluxe didn't respond to command "%1" as expected Ham Radio Deluxe 没有回应预期的命令 "%1" @@ -1554,178 +1554,178 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error Hamlib 初始化出错误 - + Hamlib settings file error: %1 at character offset %2 Hamlib 设置文件出错误: %1 字符偏移量 %2 - + Hamlib settings file error: top level must be a JSON object Hamlib 设置文件出错误: 顶层必须是 JSON 对象 - + Hamlib settings file error: config must be a JSON object Hamlib 设置文件出错误: 配置必须是JSON对象 - + Unsupported CAT type 不支持 CAT 类型 - + Hamlib error: %1 while %2 Hamlib 出错误: %1 当 %2 - + opening connection to rig 打开连接无线电设备 - + getting current frequency 获取当前频率 - + getting current mode 获取当前模式 - - + + exchanging VFOs 在 VFOs 之间切换 - - + + getting other VFO frequency 获取其他 VFO 频率 - + getting other VFO mode 获取其他 VFO 模式 - + setting current VFO 设置当前 VFO - + getting frequency 获取频率 - + getting mode 获取模式 - - + + getting current VFO 获取当前 VFO - - - - + + + + getting current VFO frequency 获取当前 VFO 频率 - - - - - - + + + + + + setting frequency 设置频率 - - - - + + + + getting current VFO mode 获取当前 VFO 模式 - - - - - + + + + + setting current VFO mode 设置当前 VFO 模式 - - + + setting/unsetting split mode 设置/取消 设置异频模式 - - + + setting split mode 设置异频模式 - + setting split TX frequency and mode 设置异频发射频率和模式 - + setting split TX frequency 设置异频发射频率 - + getting split TX VFO mode 获得异频发射 VFO 模式 - + setting split TX VFO mode 设置异频发射 VFO 模式 - + getting PTT state 获取PTT 状态 - + setting PTT on 设置PTT 开启 - + setting PTT off 设置PTT 关闭 - + setting a configuration item 设置配置项目 - + getting a configuration item 获取配置项目 @@ -1936,12 +1936,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity 波段活动 @@ -1953,11 +1953,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency 接收信息 @@ -2419,7 +2419,7 @@ Not available to nonstandard callsign holders. - + Fox 狐狸 @@ -3273,7 +3273,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog 运行发射监管计时器 @@ -3550,8 +3550,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving 接收 @@ -3587,21 +3587,21 @@ list. The list can be maintained in Settings (F2). - - - - - + + + + - + - + - + - + - + + Message 信息 @@ -3626,116 +3626,116 @@ list. The list can be maintained in Settings (F2). 单击 确定 重试 - - + + Improper mode 模式不正确 - - + + File Open Error 文件打开出错误 - - - - - + + + + + Cannot open "%1" for append: %2 无法打开 "%1" 用于附加: %2 - + Error saving c2 file 保存c2文件出错误 - + Error in Sound Input 声音输入出错误 - + Error in Sound Output 声音输出错误 - - - - - Single-Period Decodes - 单周期解码 - + Single-Period Decodes + 单周期解码 + + + + + Average Decodes 平均解码 - + Change Operator 改变操作员 - + New operator: 新操作员: - + Status File Error 状态文件错误 - - + + Cannot open "%1" for writing: %2 无法打开 "%1" 用于写入: %2 - + Subprocess Error 子流程出错误 - + Subprocess failed with exit code %1 子流程失败, 退出代码为 %1 - - + + Running: %1 %2 运行: %1 %2 - + Subprocess error 子进程错误 - + Reference spectrum saved 保存参考频谱 - + Invalid data in fmt.all at line %1 在 %1 行中 fmt.all 的无效数据 - + Good Calibration Solution 良好的校准解决方案 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3744,76 +3744,75 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements 删除校准测量值 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all" 文件将重命名为 "fmt.bak" - If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2019 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - 如果您根据 GNU 通用公共许可证条款合理使用 WSJT-X 的任何部分, 则必须在衍生作品中醒目地显示以下版权声明: + 如果您根据 GNU 通用公共许可证条款合理使用 WSJT-X 的任何部分, 则必须在衍生作品中醒目地显示以下版权声明: "WSJT-X 的算法, 源代码, 外观和感觉及相关程序,和协议规格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版权 (C) 2001-2019 由以下一个或多个作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 开发组的其他成员." - + No data read from disk. Wrong file format? 没有从磁盘读取数据. 文件格式出错误? - + Confirm Delete 确认删除 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? 是否确实要删除所有 *.wav 和 *.c2 文件在 "%1"? - + Keyboard Shortcuts 键盘快捷键 - + Special Mouse Commands 滑鼠特殊组合 - + No more files to open. 没有要打开的文件. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 请选择其他发射频率. WSJT-X 不会故意传输另一个模式在 WSPR 30米子波段上. - + WSPR Guard Band WSPR保护波段 - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 请选择其它频率. WSJT-X 不会运行狐狸模式在标准 FT8 波段. - + Fox Mode warning 狐狸模式警告 - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3822,12 +3821,12 @@ list. The list can be maintained in Settings (F2). "WSJT-X 的算法, 源代码, 外观和感觉及相关程序,和协议规格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版权 (C) 2001-2019 由以下一个或多个作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 开发组的其他成员." - + Last Tx: %1 最后发射: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3837,182 +3836,182 @@ To do so, check 'Special operating activity' and 设置高级选项卡上的 '欧洲 VHF 竞赛'. - + Should you switch to ARRL Field Day mode? 是否应切换到 ARRL Field Day 模式? - + Should you switch to RTTY contest mode? 是否应切换到 RTTY 竞赛模式? - - - - + + + + Add to CALL3.TXT 添加到 CALL3.TXT - + Please enter a valid grid locator 请输入有效的网格定位 - + Cannot open "%1" for read/write: %2 无法打开 "%1" 用于读/写: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 已经在 CALL3.TXT, 你想替换它吗? - + Warning: DX Call field is empty. 警告: DX 呼号字段为空. - + Log file error 日志文件错误 - + Cannot open "%1" 无法打开 "%1" - + Error sending log to N1MM 将日志发送到 N1MM 时出错 - + Write returned "%1" 写入返回 "%1" - + Stations calling DXpedition %1 呼叫远征电台 %1 - + Hound 猎犬 - + Tx Messages 发射信息 - - - + + + Confirm Erase 确认擦除 - + Are you sure you want to erase file ALL.TXT? 是否确实要擦除 ALL.TXT 文件? - - + + Confirm Reset 确认重置 - + Are you sure you want to erase your contest log? 是否确实要擦除竞赛日志? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 执行此操作将删除当前竞赛的所有通联记录. 它们将保留在 ADIF 日志文件中, 但无法导出到您的卡布里略日志中. - + Cabrillo Log saved 卡布里略日志已保存 - + Are you sure you want to erase file wsjtx_log.adi? 是否确实要擦除 wsjtx_log.adi 文件? - + Are you sure you want to erase the WSPR hashtable? 是否确实要擦除 WSPR 哈希表? - + VHF features warning VHF 功能警告 - + Tune digital gain 调谐数码增益 - + Transmit digital gain 传输数码增益 - + Prefixes 前缀 - + Network Error 网络错误 - + Error: %1 UDP server %2:%3 错误: %1 UDP 服务器 %2:%3 - + File Error 文件错误 - + Phase Training Disabled 已禁用阶段训练 - + Phase Training Enabled 已启用阶段训练 - + WD:%1m - - + + Log File Error 日志文件错误 - + Are you sure you want to clear the QSO queues? 是否确实要清除通联队列? @@ -4132,29 +4131,29 @@ UDP 服务器 %2:%3 OmniRigTransceiver - + OmniRig: unrecognized mode OmniRig: 无法识别的模式 - + Failed to start OmniRig COM server 无法启动 OmniRig COM 服务器 - - + + OmniRig: don't know how to set rig frequency OmniRig:不知道如何设置无线电设备频率 - - + + OmniRig: timeout waiting for update from rig OmniRig:等待从无线电设备更新的超时 - + OmniRig COM/OLE error: %1 at %2: %3 (%4) OmniRig COM/OLE 错误: %1 at %2: %3 (%4) @@ -4162,7 +4161,7 @@ UDP 服务器 %2:%3 PollingTransceiver - + Unexpected rig error 无线电设备意外出错误 @@ -4170,7 +4169,7 @@ UDP 服务器 %2:%3 QObject - + Invalid rig name - \ & / not allowed 无效的无线电设备名称 - \ & / 不允许 @@ -4321,67 +4320,67 @@ Error(%2): %3 SoundInput - + An error opening the audio input device has occurred. 打开音频输入设备时出错误. - + An error occurred during read from the audio input device. 从音频输入设备读取时出错误. - + Audio data not being fed to the audio input device fast enough. 音频数据没有足够提供馈送到音频输入设备. - + Non-recoverable error, audio input device not usable at this time. 不可恢复的出错误, 音频输入设备此时不可用. - + Requested input audio format is not valid. 请求的输入音频格式无效. - + Requested input audio format is not supported on device. 设备不支持请求输入的音频格式. - + Failed to initialize audio sink device 无法初始化音频接收器设备 - + Idle 闲置 - + Receiving 接收 - + Suspended 暂停 - + Interrupted 中断 - + Error 出错误 - + Stopped 停止 @@ -4389,62 +4388,62 @@ Error(%2): %3 SoundOutput - + An error opening the audio output device has occurred. 打开音频输出设备时出错误. - + An error occurred during write to the audio output device. 写入音频输出设备期间出错误. - + Audio data not being fed to the audio output device fast enough. 音频数据未以足够快的速度馈送到音频输出设备. - + Non-recoverable error, audio output device not usable at this time. 不可恢复出错误, 音频输出设备此时不可用. - + Requested output audio format is not valid. 请求的输出音频格式无效. - + Requested output audio format is not supported on device. 设备不支持请求输出的音频格式. - + Idle 闲置 - + Sending 发送 - + Suspended 暂停 - + Interrupted 中断 - + Error 出错误 - + Stopped 停止 @@ -4508,7 +4507,7 @@ Error(%2): %3 TransceiverBase - + Unexpected rig error 无线电设备意外出错误 @@ -5201,9 +5200,8 @@ a few, particularly some Kenwood rigs, require it). - How this program activates the PTT on your radio - 此程序如何激活无线电设备上的 PTT + 此程序如何激活无线电设备上的 PTT @@ -5221,9 +5219,8 @@ a few, particularly some Kenwood rigs, require it). - <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to inteface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> - <html><head/><body><p>使用 RS-232 DTR 控制线路切换收音机的 PTT,需要硬件来整数线路.</p><p>某些商业接口单元也使用此方法 .</p><p>CAT 串行端口的 DTR 控制线路可用于此或可能用于其他串行端口上的 DTR 控制线路.</p></body></html> + <html><head/><body><p>使用 RS-232 DTR 控制线路切换收音机的 PTT,需要硬件来整数线路.</p><p>某些商业接口单元也使用此方法 .</p><p>CAT 串行端口的 DTR 控制线路可用于此或可能用于其他串行端口上的 DTR 控制线路.</p></body></html> @@ -5244,11 +5241,6 @@ PTT的其它硬件接口. C&AT - - - <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to inteface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> - - R&TS @@ -5295,9 +5287,8 @@ or bandwidth is selected). - If this is availabe then it is usually the correct mode for this program. - 如果这是可用的那么它通常是这个程序的正确模式. + 如果这是可用的那么它通常是这个程序的正确模式. @@ -5858,7 +5849,7 @@ Right click for insert and delete options. <html><head/><body><p>使用复选框启用或禁用项目,并右键单击项目以更改或取消设置前景颜色, 背景颜色, 或将项目重置为默认值. 拖放项目以更改其优先级, 列表中较高的优先级较高.</p><p>请注意, 每个前景或背景颜色都可以设置或取消设置, 取消设置意味着它未为该项分配, 其类型和低优先级项可能适用.</p></body></html> - + Rescan ADIF Log 重新扫描 ADIF 日志 @@ -6204,115 +6195,115 @@ Right click for insert and delete options. main - - + + Fatal error 严重出错误 - - + + Unexpected fatal error 意外的严重出错误 - + Where <rig-name> is for multi-instance support. 使用 <rig-name> 用于多实例支持无线电设备. - + rig-name 无线电设备名称 - + Where <configuration> is an existing one. 哪里 <configuration> 是现有的. - + configuration 配置 - + Where <language> is <lang-code>[-<country-code>]. 哪里 <language> 是 <lang-code>[-<country-code>]. - + language 语言 - + Writable files in test location. Use with caution, for testing only. 测试位置中的可写文件. 小心使用, 仅用于测试. - + Command line error 命令行错误 - + Command line help 命令行帮助 - + Application version 应用程序版本 - + Another instance may be running 另一个应用程序可能正在运行 - + try to remove stale lock file? 尝试删除陈旧的锁文件? - + Failed to create a temporary directory 无法创建临时目录 - - + + Path: "%1" 目录: "%1" - + Failed to create a usable temporary directory 无法创建可用的临时目录 - + Another application may be locking the directory 另一个应用程序可能正在锁定目录 - + Failed to create data directory 无法创建数据目录 - + path: "%1" 目录: "%1" - + Shared memory error 共享内存错误 - + Unable to create shared memory segment 无法创建共享内存段 diff --git a/translations/wsjtx_zh_HK.ts b/translations/wsjtx_zh_HK.ts index b16c25cd9..52af3f29f 100644 --- a/translations/wsjtx_zh_HK.ts +++ b/translations/wsjtx_zh_HK.ts @@ -881,7 +881,7 @@ Format: Dialog - + Gray time: 灰線時間: @@ -1467,86 +1467,86 @@ Error: %2 - %3 HRDTransceiver - - + + Failed to connect to Ham Radio Deluxe 無法連接到 Ham Radio Deluxe - + Failed to open file "%1": %2. 無法開啟檔案 "%1": %2. - - + + Ham Radio Deluxe: no rig found Ham Radio Deluxe: 未找到無線電設備 - + Ham Radio Deluxe: rig doesn't support mode Ham Radio Deluxe: 無線電設備不支持模式 - + Ham Radio Deluxe: sent an unrecognised mode Ham Radio Deluxe: 發送了一個無法識別的模式 - + Ham Radio Deluxe: item not found in %1 dropdown list Ham Radio Deluxe: 在 %1 下拉清單中找不到項目 - + Ham Radio Deluxe: button not available Ham Radio Deluxe: 按鈕不可用 - + Ham Radio Deluxe didn't respond as expected Ham Radio Deluxe 沒有如預期的那樣響應 - + Ham Radio Deluxe: rig has disappeared or changed Ham Radio Deluxe: 無線電設備已經消失或改變 - + Ham Radio Deluxe send command "%1" failed %2 Ham Radio Deluxe 發送命令 "%1" 失敗 %2 - - + + Ham Radio Deluxe: failed to write command "%1" Ham Radio Deluxe: 無法寫入命令 "%1" - + Ham Radio Deluxe sent an invalid reply to our command "%1" Ham Radio Deluxe 對我們的命令發出了無效的回復 "%1" - + Ham Radio Deluxe failed to reply to command "%1" %2 Ham Radio Deluxe 無法回復命令 "%1" %2 - + Ham Radio Deluxe retries exhausted sending command "%1" Ham Radio Deluxe 發送命令重試失敗 "%1" - + Ham Radio Deluxe didn't respond to command "%1" as expected Ham Radio Deluxe 沒有回應預期的命令 "%1" @@ -1554,178 +1554,178 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error Hamlib 初始化出錯誤 - + Hamlib settings file error: %1 at character offset %2 Hamlib 設置檔案出錯誤: %1 字符偏移量 %2 - + Hamlib settings file error: top level must be a JSON object Hamlib 設置檔案出錯誤: 頂層必須是 JSON 對象 - + Hamlib settings file error: config must be a JSON object Hamlib 設置檔案出錯誤: 配置必須是JSON對象 - + Unsupported CAT type 不支持 CAT 類型 - + Hamlib error: %1 while %2 Hamlib 出錯誤: %1 當 %2 - + opening connection to rig 開啟連接無線電設備 - + getting current frequency 獲取當前頻率 - + getting current mode 獲取當前模式 - - + + exchanging VFOs 在 VFOs 之間切換 - - + + getting other VFO frequency 獲取其他 VFO 頻率 - + getting other VFO mode 獲取其他 VFO 模式 - + setting current VFO 設置當前 VFO - + getting frequency 獲取頻率 - + getting mode 獲取模式 - - + + getting current VFO 獲取當前 VFO - - - - + + + + getting current VFO frequency 獲取當前 VFO 頻率 - - - - - - + + + + + + setting frequency 設置頻率 - - - - + + + + getting current VFO mode 獲取當前 VFO 模式 - - - - - + + + + + setting current VFO mode 設置當前 VFO 模式 - - + + setting/unsetting split mode 設置/取消 設置異頻模式 - - + + setting split mode 設置異頻模式 - + setting split TX frequency and mode 設置異頻發射頻率和模式 - + setting split TX frequency 設置異頻發射頻率 - + getting split TX VFO mode 獲得異頻發射 VFO 模式 - + setting split TX VFO mode 設置異頻發射 VFO 模式 - + getting PTT state 獲取PTT 狀態 - + setting PTT on 設置PTT 開啟 - + setting PTT off 設置PTT 關閉 - + setting a configuration item 設置配置項目 - + getting a configuration item 獲取配置項目 @@ -1936,12 +1936,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity 波段活動 @@ -1953,11 +1953,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency 接收信息 @@ -2419,7 +2419,7 @@ Not available to nonstandard callsign holders. - + Fox 狐狸 @@ -3273,7 +3273,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog 運行發射監管計時器 @@ -3550,8 +3550,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving 接收 @@ -3587,21 +3587,21 @@ list. The list can be maintained in Settings (F2). - - - - - + + + + - + - + - + - + - + + Message 信息 @@ -3626,116 +3626,116 @@ list. The list can be maintained in Settings (F2). 單擊 確定 重試 - - + + Improper mode 模式不正確 - - + + File Open Error 檔案開啟出錯誤 - - - - - + + + + + Cannot open "%1" for append: %2 無法開啟 "%1" 用於附加: %2 - + Error saving c2 file 保存c2檔案出錯誤 - + Error in Sound Input 聲音輸入出錯誤 - + Error in Sound Output 聲音輸出錯誤 - - - - - Single-Period Decodes - 單週期解碼 - + Single-Period Decodes + 單週期解碼 + + + + + Average Decodes 平均解碼 - + Change Operator 變更操作員 - + New operator: 新操作員: - + Status File Error 狀態檔案錯誤 - - + + Cannot open "%1" for writing: %2 無法開啟 "%1" 用於寫入: %2 - + Subprocess Error 子流程出錯誤 - + Subprocess failed with exit code %1 子流程失敗, 退出代碼為 %1 - - + + Running: %1 %2 運行: %1 %2 - + Subprocess error 子進程出錯誤 - + Reference spectrum saved 儲存參考頻譜 - + Invalid data in fmt.all at line %1 在 %1 行中 fmt.all 的不合法資料 - + Good Calibration Solution 良好的校準解決方案 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3744,76 +3744,75 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements 刪除校準測量值 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all" 檔案將重新命名為 "fmt.bak" - If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2019 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - 如果您根據 GNU 通用公共授權條款合理使用 WSJT-X 的任何部分, 則必須在衍生作品中醒目地顯示以下版權聲明: + 如果您根據 GNU 通用公共授權條款合理使用 WSJT-X 的任何部分, 則必須在衍生作品中醒目地顯示以下版權聲明: "WSJT-X 的演演演算法, 原始碼, 外觀和感覺及相關程式, 和協定規格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版權 (C) 2001-2019 由以下一個或多個作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 開發組的其他成員." - + No data read from disk. Wrong file format? 沒有從磁盤讀取數據. 檔案格式出錯誤? - + Confirm Delete 確認刪除 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? 是否確實要刪除所有 *.wav 和 *.c2 檔案在 "%1"? - + Keyboard Shortcuts 鍵盤快捷鍵 - + Special Mouse Commands 滑鼠特殊組合 - + No more files to open. 沒有要打開的檔. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 請選擇其他發射頻率. WSJT-X 不會故意傳輸另一個模式在 WSPR 30米子波段上. - + WSPR Guard Band WSPR保護波段 - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 請選擇其他頻率. WSJT-X 不會運行狐狸模式在標準 FT8 波段. - + Fox Mode warning 狐狸模式警告 - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3822,12 +3821,12 @@ list. The list can be maintained in Settings (F2). "WSJT-X 的演演演算法, 原始碼, 外觀和感覺及相關程式, 和協定規格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版權 (C) 2001-2019 由以下一個或多個作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 開發組的其他成員." - + Last Tx: %1 最後發射: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3837,182 +3836,182 @@ To do so, check 'Special operating activity' and 設置高級選項卡上的 '歐洲 VHF 競賽'. - + Should you switch to ARRL Field Day mode? 是否應切換到 ARRL Field Day 模式? - + Should you switch to RTTY contest mode? 是否應切換到 RTTY 競賽模式? - - - - + + + + Add to CALL3.TXT 添加到 CALL3.TXT - + Please enter a valid grid locator 請輸入有效的網格定位 - + Cannot open "%1" for read/write: %2 無法開啟 "%1" 用於讀/寫: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 已經在 CALL3.TXT, 你想替換它嗎? - + Warning: DX Call field is empty. 警告: DX 呼號欄位為空. - + Log file error 日誌檔案錯誤 - + Cannot open "%1" 無法開啟 "%1" - + Error sending log to N1MM 將日誌傳送到 N1MM 時發生錯誤 - + Write returned "%1" 寫入返回 "%1" - + Stations calling DXpedition %1 呼叫遠征電臺 %1 - + Hound 獵犬 - + Tx Messages 發射信息 - - - + + + Confirm Erase 確認擦除 - + Are you sure you want to erase file ALL.TXT? 是否確實要擦除 ALL.Txt 檔案? - - + + Confirm Reset 確認重置 - + Are you sure you want to erase your contest log? 是否確實要擦除競賽日誌? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 執行此動作將移除目前競賽的所有通聯記錄. 它們將保留在 ADIF 日誌檔中, 但無法匯出到您的卡布里略日誌中. - + Cabrillo Log saved 卡布里略日誌已儲存 - + Are you sure you want to erase file wsjtx_log.adi? 是否確實要擦除 wsjtx_log.adi 檔案? - + Are you sure you want to erase the WSPR hashtable? 是否確定要擦除 WSPR 哈希表? - + VHF features warning VHF 功能警告 - + Tune digital gain 調諧數碼增益 - + Transmit digital gain 傳輸數碼增益 - + Prefixes 前綴 - + Network Error 網路錯誤 - + Error: %1 UDP server %2:%3 錯誤: %1 UDP 服務器 %2:%3 - + File Error 檔案錯誤 - + Phase Training Disabled 關閉階段訓練 - + Phase Training Enabled 開啟階段訓練 - + WD:%1m - - + + Log File Error 日誌檔案錯誤 - + Are you sure you want to clear the QSO queues? 是否要清除通聯佇列? @@ -4132,29 +4131,29 @@ UDP 服務器 %2:%3 OmniRigTransceiver - + OmniRig: unrecognized mode OmniRig: 無法識別的模式 - + Failed to start OmniRig COM server 無法啟動 OmniRig COM 伺服器 - - + + OmniRig: don't know how to set rig frequency OmniRig:不知道如何設置無線電設備頻率 - - + + OmniRig: timeout waiting for update from rig OmniRig:等待從無線電設備更新的超時 - + OmniRig COM/OLE error: %1 at %2: %3 (%4) OmniRig COM/OLE 錯誤: %1 at %2: %3 (%4) @@ -4162,7 +4161,7 @@ UDP 服務器 %2:%3 PollingTransceiver - + Unexpected rig error 無線電設備意外出錯誤 @@ -4170,7 +4169,7 @@ UDP 服務器 %2:%3 QObject - + Invalid rig name - \ & / not allowed 無效的無線電設備名稱 - \ & / 不允許 @@ -4321,67 +4320,67 @@ Error(%2): %3 SoundInput - + An error opening the audio input device has occurred. 開啟音頻輸入設備時出錯誤. - + An error occurred during read from the audio input device. 從音頻輸入設備讀取時出錯誤. - + Audio data not being fed to the audio input device fast enough. 音頻數據沒有足夠提供饋送到音頻輸入設備. - + Non-recoverable error, audio input device not usable at this time. 不可恢復的出錯誤, 音頻輸入設備此時不可用. - + Requested input audio format is not valid. 請求的輸入音頻格式無效. - + Requested input audio format is not supported on device. 設備不支持請求輸入的音頻格式. - + Failed to initialize audio sink device 無法初始化音頻接收器設備 - + Idle 閑置 - + Receiving 接收 - + Suspended 暫停 - + Interrupted 中斷 - + Error 出錯誤 - + Stopped 停止 @@ -4389,62 +4388,62 @@ Error(%2): %3 SoundOutput - + An error opening the audio output device has occurred. 開啟音頻輸出設備時出錯誤. - + An error occurred during write to the audio output device. 寫入音頻輸出設備期間出錯誤. - + Audio data not being fed to the audio output device fast enough. 音頻數據未以足夠快的速度饋送到音頻輸出設備. - + Non-recoverable error, audio output device not usable at this time. 不可恢復出錯誤, 音頻輸出設備此時不可用. - + Requested output audio format is not valid. 請求的輸出音頻格式無效. - + Requested output audio format is not supported on device. 設備不支持請求輸出的音頻格式. - + Idle 閑置 - + Sending 發送 - + Suspended 暫停 - + Interrupted 中斷 - + Error 出錯誤 - + Stopped 停止 @@ -4508,7 +4507,7 @@ Error(%2): %3 TransceiverBase - + Unexpected rig error 無線電設備意外出錯誤 @@ -5201,9 +5200,8 @@ a few, particularly some Kenwood rigs, require it). - How this program activates the PTT on your radio - 此程序如何激活無線電設備上的 PTT + 此程序如何激活無線電設備上的 PTT @@ -5221,9 +5219,8 @@ a few, particularly some Kenwood rigs, require it). - <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to inteface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> - <html><head/><body><p>使用 RS-232 DTR 控制線路切換收音機的 PTT,需要硬體來整數線路.</p><p>某些商業介面單元也使用此方法.</p><p>CAT 串列埠的 DTR 控制線路可用於此或可能用於其他串行埠上的 DTR 控制線路.</p></body></html> + <html><head/><body><p>使用 RS-232 DTR 控制線路切換收音機的 PTT,需要硬體來整數線路.</p><p>某些商業介面單元也使用此方法.</p><p>CAT 串列埠的 DTR 控制線路可用於此或可能用於其他串行埠上的 DTR 控制線路.</p></body></html> @@ -5245,9 +5242,8 @@ PTT的其它硬件接口. - <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to inteface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> - <html><head/><body><p>使用 RS-232 RTS 控制線切換無線電設備的 PTT, 需要硬件將線路整數.</p><p>一些商業接口單元也使用此方法.</p><p>CAT 串行端口的 RTS 控制線可用於此, 也可以使用其他串行端口上的 RTS 控制線.請注意, 使用硬件流控制時, 此選項在 CAT 串行端口上不可用.</p></body></html> + <html><head/><body><p>使用 RS-232 RTS 控制線切換無線電設備的 PTT, 需要硬件將線路整數.</p><p>一些商業接口單元也使用此方法.</p><p>CAT 串行端口的 RTS 控制線可用於此, 也可以使用其他串行端口上的 RTS 控制線.請注意, 使用硬件流控制時, 此選項在 CAT 串行端口上不可用.</p></body></html> @@ -5295,9 +5291,8 @@ or bandwidth is selected). - If this is availabe then it is usually the correct mode for this program. - 如果這是可用的那麼它通常是這個程序的正確模式. + 如果這是可用的那麼它通常是這個程序的正確模式. @@ -5858,7 +5853,7 @@ Right click for insert and delete options. <html><head/><body><p>使用複選框啟用或禁用專案, 並右鍵單擊專案以更改或取消設置前景顏色, 背景顏色, 或將專案重置為預設值. 拖放專案以更改其優先順序, 清單中較高的優先順序較高.</p><p> 請注意,每個前景或背景顏色都可以設置或取消設置, 未設置意味著未為該專案分配該類型, 低優先順序項可能適用.</p></body></html> - + Rescan ADIF Log 重新掃描 ADIF 紀錄 @@ -6204,115 +6199,115 @@ Right click for insert and delete options. main - - + + Fatal error 嚴重出錯誤 - - + + Unexpected fatal error 意外的嚴重出錯誤 - + Where <rig-name> is for multi-instance support. 使用 <rig-name> 用於多實例支援無線電設備. - + rig-name 無線電設備名稱 - + Where <configuration> is an existing one. 哪裡 <configuration> 是現有的. - + configuration 設定 - + Where <language> is <lang-code>[-<country-code>]. 哪裡 <language> 是 <lang-code>[-<country-code>]. - + language 語言 - + Writable files in test location. Use with caution, for testing only. 測試位置中的可寫檔案. 小心使用, 僅用於測試. - + Command line error 命令列錯誤 - + Command line help 命令列説明 - + Application version 應用程式版本 - + Another instance may be running 另一個應用程式可能正在執行 - + try to remove stale lock file? 嘗試刪除陳舊的鎖檔? - + Failed to create a temporary directory 無法建立暫存目錄 - - + + Path: "%1" 目錄: "%1" - + Failed to create a usable temporary directory 無法建立可用的暫存目錄 - + Another application may be locking the directory 另一個應用程式可能正在鎖定目錄 - + Failed to create data directory 無法建立資料目錄 - + path: "%1" 目錄: "%1" - + Shared memory error 共用記憶體錯誤 - + Unable to create shared memory segment 無法建立共用記憶體段 From 0138bb9a75224af8ac4c9461cfa297a117568c40 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 1 Jun 2020 11:07:41 +0100 Subject: [PATCH 035/520] Tidy up l10n and allow for override to 'en' with no translations Passing `--language en', '-l en-US', or `-l en_US` now takes a special action to not load any translations using the current locale. This allows the current system UI language not to influence an translations loaded via the command line override when the native en-US is wanted. --- CMakeLists.txt | 1 + L10nLoader.cpp | 218 +++++++++++++++++++++++++++++++++++++++++++++++++ L10nLoader.hpp | 21 +++++ main.cpp | 187 ++++-------------------------------------- 4 files changed, 256 insertions(+), 171 deletions(-) create mode 100644 L10nLoader.cpp create mode 100644 L10nLoader.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index bf37768a2..1e5dd58ba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -229,6 +229,7 @@ set (wsjt_qt_CXXSRCS MetaDataRegistry.cpp Network/NetworkServerLookup.cpp revision_utils.cpp + L10nLoader.cpp WFPalette.cpp Radio.cpp RadioMetaType.cpp diff --git a/L10nLoader.cpp b/L10nLoader.cpp new file mode 100644 index 000000000..54f42ef1b --- /dev/null +++ b/L10nLoader.cpp @@ -0,0 +1,218 @@ +#include "L10nLoader.hpp" + +#include +#include + +#include +#include +#include +#include +#include + +#include "pimpl_impl.hpp" + +class L10nLoader::impl final +{ +public: + explicit impl(QApplication * app) + : app_ {app} + { + } + + bool load_translator (QString const& filename + , QString const& directory = QString {} + , QString const& search_delimiters = QString {} + , QString const& suffix = QString {}) + { + std::unique_ptr translator {new QTranslator}; + if (translator->load (filename, directory, search_delimiters, suffix)) + { + install (std::move (translator)); + return true; + } + return false; + } + + bool load_translator (QLocale const& locale, QString const& filename + , QString const& prefix = QString {} + , QString const& directory = QString {} + , QString const& suffix = QString {}) + { + std::unique_ptr translator {new QTranslator}; + if (translator->load (locale, filename, prefix, directory, suffix)) + { + install (std::move (translator)); + return true; + } + return false; + } + + void install (std::unique_ptr translator) + { + app_->installTranslator (translator.get ()); + translators_.push_back (std::move (translator)); + } + + QApplication * app_; + std::vector> translators_; +}; + +L10nLoader::L10nLoader (QApplication * app, QLocale const& locale, QString const& language_override) + : m_ {app} +{ + qDebug () << QString {"locale: language: %1 script: %2 country: %3 ui-languages: %4"} + .arg (QLocale::languageToString (locale.language ())) + .arg (QLocale::scriptToString (locale.script ())) + .arg (QLocale::countryToString (locale.country ())) + .arg (locale.uiLanguages ().join (", ")); + + // we don't load translators if the language override is 'en', + // 'en_US', or 'en-US'. In these cases we assume the user is trying + // to disable translations loaded because of their locale. We cannot + // load any locale based translations in this case. + auto skip_locale = language_override.contains (QRegularExpression {"^(?:en|en[-_]US)$"}); + + // + // Enable base i18n + // + QString translations_dir {":/Translations"}; + if (!skip_locale) + { + qDebug () << "Looking for locale based Qt translations in resources filesystem"; + if (m_->load_translator (locale, "qt", "_", translations_dir)) + { + qDebug () << "Loaded Qt translations for current locale from resources"; + } + + // Default translations for releases use translations stored in + // the resources file system under the Translations + // directory. These are built by the CMake build system from .ts + // files in the translations source directory. New languages are + // added by enabling the UPDATE_TRANSLATIONS CMake option and + // building with the new language added to the LANGUAGES CMake + // list variable. UPDATE_TRANSLATIONS will preserve existing + // translations but should only be set when adding new + // languages. The resulting .ts files should be checked info + // source control for translators to access and update. + + // try and load the base translation + qDebug () << "Looking for WSJT-X translations based on UI languages in the resources filesystem"; + for (QString locale_name : locale.uiLanguages ()) + { + auto language = locale_name.left (2); + if (locale.uiLanguages ().front ().left (2) == language) + { + qDebug () << QString {"Trying %1"}.arg (language); + if (m_->load_translator ("wsjtx_" + language, translations_dir)) + { + qDebug () << QString {"Loaded WSJT-X base translation file from %1 based on language %2"} + .arg (translations_dir) + .arg (language); + break; + } + } + } + // now try and load the most specific translations (may be a + // duplicate but we shouldn't care) + qDebug () << "Looking for WSJT-X translations based on locale in the resources filesystem"; + if (m_->load_translator (locale, "wsjtx", "_", translations_dir)) + { + qDebug () << "Loaded WSJT-X translations for current locale from resources"; + } + } + + // Load any matching translation from the current directory + // using the command line option language override. This allows + // translators to easily test their translations by releasing + // (lrelease) a .qm file into the current directory with a + // suitable name (e.g. wsjtx_en_GB.qm), then running wsjtx to + // view the results. + if (language_override.size ()) + { + auto language = language_override; + language.replace ('-', '_'); + // try and load the base translation + auto base_language = language.left (2); + qDebug () << "Looking for WSJT-X translations based on command line region override in the resources filesystem"; + if (m_->load_translator ("wsjtx_" + base_language, translations_dir)) + { + qDebug () << QString {"Loaded base translation file from %1 based on language %2"} + .arg (translations_dir) + .arg (base_language); + } + // now load the requested translations (may be a duplicate + // but we shouldn't care) + qDebug () << "Looking for WSJT-X translations based on command line override country in the resources filesystem"; + if (m_->load_translator ("wsjtx_" + language, translations_dir)) + { + qDebug () << QString {"Loaded translation file from %1 based on language %2"} + .arg (translations_dir) + .arg (language); + } + } + + // Load any matching translation from the current directory using + // the current locale. This allows translators to easily test their + // translations by releasing (lrelease) a .qm file into the current + // directory with a suitable name (e.g. wsjtx_en_GB.qm), then + // running wsjtx to view the results. The system locale setting will + // be used to select the translation file which can be overridden by + // the LANG environment variable on non-Windows system. + + // try and load the base translation + qDebug () << "Looking for WSJT-X translations based on command line override country in the current directory"; + for (QString locale_name : locale.uiLanguages ()) + { + auto language = locale_name.left (2); + if (locale.uiLanguages ().front ().left (2) == language) + { + qDebug () << QString {"Trying %1"}.arg (language); + if (m_->load_translator ("wsjtx_" + language)) + { + qDebug () << QString {"Loaded base translation file from $cwd based on language %1"}.arg (language); + break; + } + } + } + + if (!skip_locale) + { + // now try and load the most specific translations (may be a + // duplicate but we shouldn't care) + qDebug () << "Looking for WSJT-X translations based on locale in the resources filesystem"; + if (m_->load_translator (locale, "wsjtx", "_")) + { + qDebug () << "loaded translations for current locale from a file"; + } + } + + // Load any matching translation from the current directory using + // the command line option language override. This allows + // translators to easily test their translations on Windows by + // releasing (lrelease) a .qm file into the current directory with a + // suitable name (e.g. wsjtx_en_GB.qm), then running wsjtx to view + // the results. + if (language_override.size ()) + { + auto language = language_override; + language.replace ('-', '_'); + // try and load the base translation + auto base_language = language.left (2); + qDebug () << "Looking for WSJT-X translations based on command line override country in the current directory"; + if (m_->load_translator ("wsjtx_" + base_language)) + { + qDebug () << QString {"Loaded base translation file from $cwd based on language %1"}.arg (base_language); + } + // now load the requested translations (may be a duplicate + // but we shouldn't care) + qDebug () << "Looking for WSJT-X translations based on command line region in the current directory"; + if (m_->load_translator ("wsjtx_" + language)) + { + qDebug () << QString {"loaded translation file from $cwd based on language %1"}.arg (language); + } + } +} + +L10nLoader::~L10nLoader () +{ +} diff --git a/L10nLoader.hpp b/L10nLoader.hpp new file mode 100644 index 000000000..aecdb20e6 --- /dev/null +++ b/L10nLoader.hpp @@ -0,0 +1,21 @@ +#ifndef WSJTX_L10N_LOADER_HPP__ +#define WSJTX_L10N_LOADER_HPP__ + +#include +#include "pimpl_h.hpp" + +class QApplication; +class QLocale; + +class L10nLoader final +{ +public: + explicit L10nLoader (QApplication *, QLocale const&, QString const& language_override = QString {}); + ~L10nLoader (); + +private: + class impl; + pimpl m_; +}; + +#endif diff --git a/main.cpp b/main.cpp index fcd19e127..bce897adf 100644 --- a/main.cpp +++ b/main.cpp @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include @@ -31,6 +30,7 @@ #include "revision_utils.hpp" #include "MetaDataRegistry.hpp" +#include "L10nLoader.hpp" #include "SettingsGroup.hpp" #include "TraceFile.hpp" #include "MultiSettings.hpp" @@ -109,14 +109,6 @@ int main(int argc, char *argv[]) ExceptionCatchingApplication a(argc, argv); try { - std::unique_ptr early_messages {new QStringList}; - - QLocale locale; // get the current system locale - *early_messages << QString {"locale: language: %1 script: %2 country: %3 ui-languages: %4"} - .arg (QLocale::languageToString (locale.language ())) - .arg (QLocale::scriptToString (locale.script ())) - .arg (QLocale::countryToString (locale.country ())) - .arg (locale.uiLanguages ().join (", ")); // qDebug () << "+++++++++++++++++++++++++++ Resources ++++++++++++++++++++++++++++"; // { // QDirIterator resources_iter {":/", QDirIterator::Subdirectories}; @@ -126,6 +118,8 @@ int main(int argc, char *argv[]) // } // } // qDebug () << "--------------------------- Resources ----------------------------"; + + QLocale locale; // get the current system locale setlocale (LC_NUMERIC, "C"); // ensure number forms are in // consistent format, do this after // instantiating QApplication so @@ -135,55 +129,6 @@ int main(int argc, char *argv[]) a.setApplicationName ("WSJT-X"); a.setApplicationVersion (version ()); - // - // Enable base i18n - // - QString translations_dir {":/Translations"}; - QTranslator qt_translator; - if (qt_translator.load (locale, "qt", "_", translations_dir)) - { - *early_messages << "Loaded Qt translations for current locale from resources"; - a.installTranslator (&qt_translator); - } - - // Default translations for releases use translations stored in - // the resources file system under the Translations - // directory. These are built by the CMake build system from .ts - // files in the translations source directory. New languages are - // added by enabling the UPDATE_TRANSLATIONS CMake option and - // building with the new language added to the LANGUAGES CMake - // list variable. UPDATE_TRANSLATIONS will preserve existing - // translations but should only be set when adding new - // languages. The resulting .ts files should be checked info - // source control for translators to access and update. - - // try and load the base translation - QTranslator base_translator_from_resources; - for (QString locale_name : locale.uiLanguages ()) - { - auto language = locale_name.left (2); - if (locale.uiLanguages ().front ().left (2) == language) - { - *early_messages << QString {"Trying %1"}.arg (language); - if (base_translator_from_resources.load ("wsjtx_" + language, translations_dir)) - { - *early_messages << QString {"Loaded base translation file from %1 based on language %2"} - .arg (translations_dir) - .arg (language); - a.installTranslator (&base_translator_from_resources); - break; - } - } - } - // now try and load the most specific translations (may be a - // duplicate but we shouldn't care) - QTranslator translator_from_resources; - if (translator_from_resources.load (locale, "wsjtx", "_", translations_dir)) - { - *early_messages << "Loaded translations for current locale from resources"; - a.installTranslator (&translator_from_resources); - } - QCommandLineParser parser; parser.setApplicationDescription ("\n" PROJECT_SUMMARY_DESCRIPTION); auto help_option = parser.addHelpOption (); @@ -191,140 +136,47 @@ int main(int argc, char *argv[]) // support for multiple instances running from a single installation QCommandLineOption rig_option (QStringList {} << "r" << "rig-name" - , a.translate ("main", "Where is for multi-instance support.") - , a.translate ("main", "rig-name")); + , "Where is for multi-instance support." + , "rig-name"); parser.addOption (rig_option); // support for start up configuration QCommandLineOption cfg_option (QStringList {} << "c" << "config" - , a.translate ("main", "Where is an existing one.") - , a.translate ("main", "configuration")); + , "Where is an existing one." + , "configuration"); parser.addOption (cfg_option); // support for UI language override (useful on Windows) QCommandLineOption lang_option (QStringList {} << "l" << "language" - , a.translate ("main", "Where is [-].") - , a.translate ("main", "language")); + , "Where is [-]." + , "language"); parser.addOption (lang_option); QCommandLineOption test_option (QStringList {} << "test-mode" - , a.translate ("main", "Writable files in test location. Use with caution, for testing only.")); + , "Writable files in test location. Use with caution, for testing only."); parser.addOption (test_option); if (!parser.parse (a.arguments ())) { - MessageBox::critical_message (nullptr, a.translate ("main", "Command line error"), parser.errorText ()); + MessageBox::critical_message (nullptr, "Command line error", parser.errorText ()); return -1; } else { if (parser.isSet (help_option)) { - MessageBox::information_message (nullptr, a.translate ("main", "Command line help"), parser.helpText ()); + MessageBox::information_message (nullptr, "Command line help", parser.helpText ()); return 0; } else if (parser.isSet (version_option)) { - MessageBox::information_message (nullptr, a.translate ("main", "Application version"), a.applicationVersion ()); + MessageBox::information_message (nullptr, "Application version", a.applicationVersion ()); return 0; } } - // - // Complete i18n - // - - // Load any matching translation from the current directory - // using the command line option language override. This allows - // translators to easily test their translations by releasing - // (lrelease) a .qm file into the current directory with a - // suitable name (e.g. wsjtx_en_GB.qm), then running wsjtx to - // view the results. - QTranslator base_translation_override_from_resources; - QTranslator translation_override_from_resources; - if (parser.isSet (lang_option)) - { - auto language = parser.value (lang_option).replace ('-', '_'); - // try and load the base translation - auto base_language = language.left (2); - if (base_translation_override_from_resources.load ("wsjtx_" + base_language, translations_dir)) - { - *early_messages << QString {"Loaded base translation file from %1 based on language %2"} - .arg (translations_dir) - .arg (base_language); - a.installTranslator (&base_translation_override_from_resources); - } - // now load the requested translations (may be a duplicate - // but we shouldn't care) - if (translation_override_from_resources.load ("wsjtx_" + language, translations_dir)) - { - *early_messages << QString {"Loaded translation file from %1 based on language %2"} - .arg (translations_dir) - .arg (language); - a.installTranslator (&translation_override_from_resources); - } - } - - // Load any matching translation from the current directory - // using the current locale. This allows translators to easily - // test their translations by releasing (lrelease) a .qm file - // into the current directory with a suitable name (e.g. - // wsjtx_en_GB.qm), then running wsjtx to view the results. The - // system locale setting will be used to select the translation - // file which can be overridden by the LANG environment variable - // on non-Windows system. - - // try and load the base translation - QTranslator base_translator_from_cwd; - for (QString locale_name : locale.uiLanguages ()) - { - auto language = locale_name.left (2); - if (locale.uiLanguages ().front ().left (2) == language) - { - *early_messages << QString {"Trying %1"}.arg (language); - if (base_translator_from_cwd.load ("wsjtx_" + language)) - { - *early_messages << QString {"Loaded base translation file from $cwd based on language %1"}.arg (language); - a.installTranslator (&base_translator_from_cwd); - break; - } - } - } - // now try and load the most specific translations (may be a - // duplicate but we shouldn't care) - QTranslator translator_from_cwd; - if (translator_from_cwd.load (locale, "wsjtx", "_")) - { - *early_messages << "loaded translations for current locale from a file"; - a.installTranslator (&translator_from_cwd); - } - - // Load any matching translation from the current directory - // using the command line option language override. This allows - // translators to easily test their translations on Windows by - // releasing (lrelease) a .qm file into the current directory - // with a suitable name (e.g. wsjtx_en_GB.qm), then running - // wsjtx to view the results. - QTranslator base_translation_override_from_cwd; - QTranslator translation_override_from_cwd; - if (parser.isSet (lang_option)) - { - auto language = parser.value (lang_option).replace ('-', '_'); - // try and load the base translation - auto base_language = language.left (2); - if (base_translation_override_from_cwd.load ("wsjtx_" + base_language)) - { - *early_messages << QString {"Loaded base translation file from $cwd based on language %1"}.arg (base_language); - a.installTranslator (&base_translation_override_from_cwd); - } - // now load the requested translations (may be a duplicate - // but we shouldn't care) - if (translation_override_from_cwd.load ("wsjtx_" + language)) - { - *early_messages << QString {"loaded translation file from $cwd based on language %1"}.arg (language); - a.installTranslator (&translation_override_from_cwd); - } - } + // load UI translations + L10nLoader l10n {&a, locale, parser.value (lang_option)}; QStandardPaths::setTestModeEnabled (parser.isSet (test_option)); @@ -337,7 +189,7 @@ int main(int argc, char *argv[]) { if (temp_name.contains (QRegularExpression {R"([\\/,])"})) { - std::cerr << QObject::tr ("Invalid rig name - \\ & / not allowed").toLocal8Bit ().data () << std::endl; + std::cerr << "Invalid rig name - \\ & / not allowed" << std::endl; parser.showHelp (-1); } @@ -395,13 +247,6 @@ int main(int argc, char *argv[]) qDebug () << program_title (revision ()) + " - Program startup"; #endif - // trace early messages now we have a trace file - for (auto const& message : *early_messages) - { - qDebug () << message; - } - early_messages.reset (); // free memory - // Create a unique writeable temporary directory in a suitable location bool temp_ok {false}; QString unique_directory {QApplication::applicationName ()}; From 6ef19611c549906a3ce85154637670a079b41f15 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 1 Jun 2020 11:11:20 +0100 Subject: [PATCH 036/520] Updated Chinese & Hong Kong Chinese translations, tnx Sze-To, VR2UPU. --- translations/wsjtx_zh.ts | 24 ++---------------------- translations/wsjtx_zh_HK.ts | 28 ++-------------------------- 2 files changed, 4 insertions(+), 48 deletions(-) diff --git a/translations/wsjtx_zh.ts b/translations/wsjtx_zh.ts index ccf36f36c..b067e783d 100644 --- a/translations/wsjtx_zh.ts +++ b/translations/wsjtx_zh.ts @@ -1344,7 +1344,7 @@ Error: %2 - %3 Fox Log - Fox 日志 + 狐狸日志 @@ -3753,14 +3753,6 @@ list. The list can be maintained in Settings (F2). The "fmt.all" file will be renamed as "fmt.bak" "fmt.all" 文件将重命名为 "fmt.bak" - - If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: - -"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2019 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - 如果您根据 GNU 通用公共许可证条款合理使用 WSJT-X 的任何部分, 则必须在衍生作品中醒目地显示以下版权声明: - -"WSJT-X 的算法, 源代码, 外观和感觉及相关程序,和协议规格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版权 (C) 2001-2019 由以下一个或多个作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 开发组的其他成员." - No data read from disk. Wrong file format? @@ -5199,10 +5191,6 @@ a few, particularly some Kenwood rigs, require it). RTS: - - How this program activates the PTT on your radio - 此程序如何激活无线电设备上的 PTT - PTT Method @@ -5218,10 +5206,6 @@ a few, particularly some Kenwood rigs, require it). VO&X - - <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to inteface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> - <html><head/><body><p>使用 RS-232 DTR 控制线路切换收音机的 PTT,需要硬件来整数线路.</p><p>某些商业接口单元也使用此方法 .</p><p>CAT 串行端口的 DTR 控制线路可用于此或可能用于其他串行端口上的 DTR 控制线路.</p></body></html> - &DTR @@ -5286,10 +5270,6 @@ or bandwidth is selected). None - - If this is availabe then it is usually the correct mode for this program. - 如果这是可用的那么它通常是这个程序的正确模式. - Data/P&kt @@ -5759,7 +5739,7 @@ for assessing propagation and system performance. <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> - + <html><head/><body><p>N1MM Logger+ 程序的可选电脑主机, 用于接收 ADIF UDP 广播. 这通常是 'localhost' 或 IP地址 127.0.0.1</p><p>格式:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">主机名称</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 多播组地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 多播组地址</li></ul><p>清除此字段将禁用通过 UDP 广播 ADIF 信息.</p></body></html> diff --git a/translations/wsjtx_zh_HK.ts b/translations/wsjtx_zh_HK.ts index 52af3f29f..e05341741 100644 --- a/translations/wsjtx_zh_HK.ts +++ b/translations/wsjtx_zh_HK.ts @@ -1344,7 +1344,7 @@ Error: %2 - %3 Fox Log - Fox 日誌 + 狐狸日誌 @@ -3753,14 +3753,6 @@ list. The list can be maintained in Settings (F2). The "fmt.all" file will be renamed as "fmt.bak" "fmt.all" 檔案將重新命名為 "fmt.bak" - - If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: - -"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2019 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - 如果您根據 GNU 通用公共授權條款合理使用 WSJT-X 的任何部分, 則必須在衍生作品中醒目地顯示以下版權聲明: - -"WSJT-X 的演演演算法, 原始碼, 外觀和感覺及相關程式, 和協定規格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版權 (C) 2001-2019 由以下一個或多個作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 開發組的其他成員." - No data read from disk. Wrong file format? @@ -5199,10 +5191,6 @@ a few, particularly some Kenwood rigs, require it). RTS: - - How this program activates the PTT on your radio - 此程序如何激活無線電設備上的 PTT - PTT Method @@ -5218,10 +5206,6 @@ a few, particularly some Kenwood rigs, require it). VO&X - - <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to inteface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> - <html><head/><body><p>使用 RS-232 DTR 控制線路切換收音機的 PTT,需要硬體來整數線路.</p><p>某些商業介面單元也使用此方法.</p><p>CAT 串列埠的 DTR 控制線路可用於此或可能用於其他串行埠上的 DTR 控制線路.</p></body></html> - &DTR @@ -5241,10 +5225,6 @@ PTT的其它硬件接口. C&AT - - <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to inteface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> - <html><head/><body><p>使用 RS-232 RTS 控制線切換無線電設備的 PTT, 需要硬件將線路整數.</p><p>一些商業接口單元也使用此方法.</p><p>CAT 串行端口的 RTS 控制線可用於此, 也可以使用其他串行端口上的 RTS 控制線.請注意, 使用硬件流控制時, 此選項在 CAT 串行端口上不可用.</p></body></html> - R&TS @@ -5290,10 +5270,6 @@ or bandwidth is selected). None - - If this is availabe then it is usually the correct mode for this program. - 如果這是可用的那麼它通常是這個程序的正確模式. - Data/P&kt @@ -5763,7 +5739,7 @@ for assessing propagation and system performance. <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> - + <html><head/><body><p>N1MM Logger+ 程式可選電腦主機用於接收 ADIF UDP 廣播. 這通常是 'localhost' 或 IP 地址 127.0.0.1</p><p>格式:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">主機名稱</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 多播組地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 多播組地址</li></ul><p>清除此欄位將停用透過UDP廣播ADIF資訊.</p></body></html> From 0c7fe62c2ac1c291b6939aec82b79181b133e2ec Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 1 Jun 2020 11:15:26 +0100 Subject: [PATCH 037/520] Update .ts files --- translations/wsjtx_ca.ts | 69 ++++++++++++++------------------ translations/wsjtx_en.ts | 79 ++++++------------------------------- translations/wsjtx_en_GB.ts | 79 ++++++------------------------------- translations/wsjtx_es.ts | 69 ++++++++++++++------------------ translations/wsjtx_ja.ts | 75 ++++++++++++----------------------- 5 files changed, 108 insertions(+), 263 deletions(-) diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index 08da21769..887ba4e5f 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -4176,9 +4176,8 @@ UDP server %2:%3 QObject - Invalid rig name - \ & / not allowed - Nom d'equip no vàlid: \ & / no permès + Nom d'equip no vàlid: \ & / no permès @@ -6196,114 +6195,104 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació.main - + Fatal error Error fatal - + Unexpected fatal error Error fatal inesperat - Where <rig-name> is for multi-instance support. - On <rig-name> és per a suport de múltiples instàncies. + On <rig-name> és per a suport de múltiples instàncies. - rig-name - nom de l'equip + nom de l'equip - Where <configuration> is an existing one. - On <configuration> és ja existent. + On <configuration> és ja existent. - configuration - configuració + configuració - Where <language> is <lang-code>[-<country-code>]. - On <language> és <lang-code>[-<country-code>]. + On <language> és <lang-code>[-<country-code>]. - language - Idioma + Idioma - Writable files in test location. Use with caution, for testing only. - Fitxers amb permis d'escriptura a la ubicació de proves. Utilitzar amb precaució, només per a proves. + Fitxers amb permis d'escriptura a la ubicació de proves. Utilitzar amb precaució, només per a proves. - Command line error - Error de línia de comandament + Error de línia de comandament + + + Command line help + Ajuda de la línia de comandaments + + + Application version + Versió d’aplicació - Command line help - Ajuda de la línia de comandaments - - - - Application version - Versió d’aplicació - - - Another instance may be running Una altra instància pot ser que s'estigui executant - + try to remove stale lock file? intenteu eliminar el fitxer de bloqueig no realitzat? - + Failed to create a temporary directory No s'ha pogut crear el directori temporal - - + + Path: "%1" Ruta: "%1" - + Failed to create a usable temporary directory No s'ha pogut crear un directori temporal utilitzable - + Another application may be locking the directory Una altra aplicació pot ser que bloquegi del directori - + Failed to create data directory No s'ha pogut crear el directori de dades - + path: "%1" Ruta: "%1" - + Shared memory error Error de memòria compartida - + Unable to create shared memory segment No es pot crear el segment de memòria compartida diff --git a/translations/wsjtx_en.ts b/translations/wsjtx_en.ts index 9b3b396d7..8c0d0f821 100644 --- a/translations/wsjtx_en.ts +++ b/translations/wsjtx_en.ts @@ -4113,11 +4113,6 @@ UDP server %2:%3 QObject - - - Invalid rig name - \ & / not allowed - - User Defined @@ -6086,114 +6081,64 @@ Right click for insert and delete options. main - + Fatal error - + Unexpected fatal error - - - Where <rig-name> is for multi-instance support. - - - - - rig-name - - - - - Where <configuration> is an existing one. - - - - - configuration - - - - - Where <language> is <lang-code>[-<country-code>]. - - - - - language - - - - - Writable files in test location. Use with caution, for testing only. - - - - - Command line error - - - Command line help - - - - - Application version - - - - Another instance may be running - + try to remove stale lock file? - + Failed to create a temporary directory - - + + Path: "%1" - + Failed to create a usable temporary directory - + Another application may be locking the directory - + Failed to create data directory - + path: "%1" - + Shared memory error - + Unable to create shared memory segment diff --git a/translations/wsjtx_en_GB.ts b/translations/wsjtx_en_GB.ts index 2a56b6e65..5ed7e9f88 100644 --- a/translations/wsjtx_en_GB.ts +++ b/translations/wsjtx_en_GB.ts @@ -4113,11 +4113,6 @@ UDP server %2:%3 QObject - - - Invalid rig name - \ & / not allowed - - User Defined @@ -6086,114 +6081,64 @@ Right click for insert and delete options. main - + Fatal error - + Unexpected fatal error - - - Where <rig-name> is for multi-instance support. - - - - - rig-name - - - - - Where <configuration> is an existing one. - - - - - configuration - - - - - Where <language> is <lang-code>[-<country-code>]. - - - - - language - - - - - Writable files in test location. Use with caution, for testing only. - - - - - Command line error - - - Command line help - - - - - Application version - - - - Another instance may be running - + try to remove stale lock file? - + Failed to create a temporary directory - - + + Path: "%1" - + Failed to create a usable temporary directory - + Another application may be locking the directory - + Failed to create data directory - + path: "%1" - + Shared memory error - + Unable to create shared memory segment diff --git a/translations/wsjtx_es.ts b/translations/wsjtx_es.ts index a1cac784c..9446e4a92 100644 --- a/translations/wsjtx_es.ts +++ b/translations/wsjtx_es.ts @@ -4175,9 +4175,8 @@ Servidor UDP %2:%3 QObject - Invalid rig name - \ & / not allowed - Nombre del equipo inválido - \ & / No permitido + Nombre del equipo inválido - \ & / No permitido @@ -6195,114 +6194,104 @@ Haz clic derecho para insertar y eliminar opciones. main - + Fatal error Error fatal - + Unexpected fatal error Error fatal inesperado - Where <rig-name> is for multi-instance support. - Dónde <rig-name> es para soporte de múltiples instancias. + Dónde <rig-name> es para soporte de múltiples instancias. - rig-name - Nombre del equipo + Nombre del equipo - Where <configuration> is an existing one. - Dónde <configuration> es ya existente. + Dónde <configuration> es ya existente. - configuration - Configuración/Ajustes + Configuración/Ajustes - Where <language> is <lang-code>[-<country-code>]. - Dónde <language> es <lang-code>[-<country-code>]. + Dónde <language> es <lang-code>[-<country-code>]. - language - Idioma + Idioma - Writable files in test location. Use with caution, for testing only. - Archivos grabables en la ubicación de prueba. Usa con precaución, solo para pruebas. + Archivos grabables en la ubicación de prueba. Usa con precaución, solo para pruebas. - Command line error - Error de línea de comando + Error de línea de comando + + + Command line help + Ayuda de la línea de comandos + + + Application version + Versión de la aplicación - Command line help - Ayuda de la línea de comandos - - - - Application version - Versión de la aplicación - - - Another instance may be running Otra instancia puede estar ejecutándose - + try to remove stale lock file? ¿intentas eliminar el archivo de bloqueo obsoleto? - + Failed to create a temporary directory Error al crear un directorio temporal - - + + Path: "%1" Ruta: "%1" - + Failed to create a usable temporary directory Error al crear un directorio temporal utilizable - + Another application may be locking the directory Otra aplicación puede estar bloqueando el directorio - + Failed to create data directory Error al crear el directorio de datos - + path: "%1" ruta: "%1" - + Shared memory error Error de memoria compartida - + Unable to create shared memory segment No se puede crear un segmento de memoria compartida diff --git a/translations/wsjtx_ja.ts b/translations/wsjtx_ja.ts index 41b32845b..704d13d07 100644 --- a/translations/wsjtx_ja.ts +++ b/translations/wsjtx_ja.ts @@ -4162,9 +4162,8 @@ UDPサーバー %2:%3 QObject - Invalid rig name - \ & / not allowed - 無効な名前 - \ & / は使えません + 無効な名前 - \ & / は使えません @@ -6175,114 +6174,92 @@ Right click for insert and delete options. main - + Fatal error 致命的エラー - + Unexpected fatal error 予期せぬ致命的エラー - Where <rig-name> is for multi-instance support. - ここで<rig-name>は複数インスタンスのサポート. + ここで<rig-name>は複数インスタンスのサポート. - - rig-name - - - - Where <configuration> is an existing one. - ここで<configuration>はすでに設定済みのもの. + ここで<configuration>はすでに設定済みのもの. - - configuration - - - - Where <language> is <lang-code>[-<country-code>]. - ここで<language>は<lang-code>[-<country-code>]. + ここで<language>は<lang-code>[-<country-code>]. - - language - - - - Writable files in test location. Use with caution, for testing only. - テスト用書き込み可能ファイル. 注意してテストだけに使うこと. + テスト用書き込み可能ファイル. 注意してテストだけに使うこと. - Command line error - コマンドラインエラー + コマンドラインエラー + + + Command line help + コマンドラインヘルプ + + + Application version + アプリのバージョン - Command line help - コマンドラインヘルプ - - - - Application version - アプリのバージョン - - - Another instance may be running おそらく他のインスタンスが動作中 - + try to remove stale lock file? 古いロックファイルの削除を試みますか? - + Failed to create a temporary directory 一時的作業ディレクトリーが作成できません - - + + Path: "%1" パス:"%1" - + Failed to create a usable temporary directory 一時的作業ディレクトリが作成できません - + Another application may be locking the directory おそらく他のアプリがディレクトリをロックしています - + Failed to create data directory データ用ディレクトリの作成ができません - + path: "%1" パス: "%1" - + Shared memory error 共有メモリエラー - + Unable to create shared memory segment 共有メモリセグメントが作成できません From cec03164667a3c14049b647d523c7e3e6d11610e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 2 Jun 2020 14:11:56 +0100 Subject: [PATCH 038/520] Make some strings translatable and update .ts files --- SampleDownloader.cpp | 12 +- SampleDownloader/Directory.cpp | 2 +- translations/wsjtx_ca.ts | 494 ++++++++++++++++------------- translations/wsjtx_en.ts | 494 ++++++++++++++++------------- translations/wsjtx_en_GB.ts | 494 ++++++++++++++++------------- translations/wsjtx_es.ts | 494 ++++++++++++++++------------- translations/wsjtx_ja.ts | 494 ++++++++++++++++------------- translations/wsjtx_zh.ts | 563 +++++++++++++++++---------------- translations/wsjtx_zh_HK.ts | 563 +++++++++++++++++---------------- 9 files changed, 1934 insertions(+), 1676 deletions(-) diff --git a/SampleDownloader.cpp b/SampleDownloader.cpp index c5922bc2d..5902e7dcd 100644 --- a/SampleDownloader.cpp +++ b/SampleDownloader.cpp @@ -101,17 +101,17 @@ SampleDownloader::impl::impl (QSettings * settings setWindowTitle (QApplication::applicationName () + " - " + tr ("Download Samples")); button_box_.button (QDialogButtonBox::Close)->setDefault (true); - button_box_.addButton ("&Abort", QDialogButtonBox::DestructiveRole); - button_box_.addButton ("&Refresh", QDialogButtonBox::ResetRole); + button_box_.addButton (tr ("&Abort"), QDialogButtonBox::DestructiveRole); + button_box_.addButton (tr ("&Refresh"), QDialogButtonBox::ResetRole); left_layout_.addWidget (&directory_); - auto details_button = button_box_.addButton ("&Details", QDialogButtonBox::HelpRole); + auto details_button = button_box_.addButton (tr ("&Details"), QDialogButtonBox::HelpRole); details_button->setCheckable (true); details_widget_.hide (); details_layout_.setMargin (0); - details_layout_.addRow ("Base URL for samples:", &url_line_edit_); - details_layout_.addRow ("Only use HTTP:", &http_only_check_box_); - http_only_check_box_.setToolTip ("Check this is you get SSL/TLS errors"); + details_layout_.addRow (tr ("Base URL for samples:"), &url_line_edit_); + details_layout_.addRow (tr ("Only use HTTP:"), &http_only_check_box_); + http_only_check_box_.setToolTip (tr ("Check this is you get SSL/TLS errors")); details_widget_.setLayout (&details_layout_); main_layout_.addLayout (&left_layout_, 0, 0); diff --git a/SampleDownloader/Directory.cpp b/SampleDownloader/Directory.cpp index 3c7504424..19169e117 100644 --- a/SampleDownloader/Directory.cpp +++ b/SampleDownloader/Directory.cpp @@ -48,7 +48,7 @@ Directory::Directory (Configuration const * configuration file_icon_.addPixmap (style ()->standardPixmap (QStyle::SP_FileIcon)); setColumnCount (2); - setHeaderLabels ({"File", "Progress"}); + setHeaderLabels ({tr ("File"), tr ("Progress")}); header ()->setSectionResizeMode (QHeaderView::ResizeToContents); setItemDelegate (&item_delegate_); diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index 887ba4e5f..ff09d0797 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -898,6 +898,16 @@ Format: Directory + + + File + Fitxer + + + + Progress + + @@ -1450,26 +1460,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region Regió IARU - - + + Mode Mode - - + + Frequency Freqüència - - + + Frequency (MHz) Freqüència en MHz @@ -1590,152 +1600,152 @@ Error: %2 - %3 Tipus CAT no admès - + Hamlib error: %1 while %2 Error de Hamlib: %1 mentre %2 - + opening connection to rig connexió d'obertura a l'equip - + getting current frequency obtenir la freqüència actual - + getting current mode obtenir el mode actual - - + + exchanging VFOs intercanviant VFOs - - + + getting other VFO frequency obtenint una altra freqüència de VFO - + getting other VFO mode obtenint un altre mode VFO - + setting current VFO ajustar el VFO actual - + getting frequency obtenint la freqüència - + getting mode obtenint el mode - - + + getting current VFO obtenir VFO actual - - - - + + + + getting current VFO frequency obtenir la freqüència actual del VFO - - - - - - + + + + + + setting frequency ajust de freqüència - - - - + + + + getting current VFO mode obtenir el mode VFO actual - - - - - + + + + + setting current VFO mode ajust del mode VFO actual - - + + setting/unsetting split mode ajustar/desajustar mode dividid (split) - - + + setting split mode ajustar mode dividid (Split) - + setting split TX frequency and mode ajust de freqüència i mode de transmissió dividida (Split) - + setting split TX frequency ajust de freqüència dividida (Split) en TX - + getting split TX VFO mode obtenir el mode dividit (Split) en TX del VFO - + setting split TX VFO mode ajustar del mode dividid (Split) en TX del VFO - + getting PTT state obtenir l'estat del PTT - + setting PTT on activant el PTT - + setting PTT off desactivant el PTT - + setting a configuration item establir un element de configuració - + getting a configuration item obtenir un element de configuració @@ -1946,12 +1956,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity Activitat a la banda @@ -1963,11 +1973,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency Freqüència de RX @@ -2321,7 +2331,7 @@ en Groc quan és massa baix - + Fast Ràpid @@ -2429,7 +2439,7 @@ No està disponible per als titulars de indicatiu no estàndard. - + Fox Guineu @@ -3141,415 +3151,415 @@ La llista es pot mantenir a la configuració (F2). Quant a WSJT-X - + Waterfall Cascada - + Open Obrir - + Ctrl+O Ctrl+O - + Open next in directory Obre el següent directori - + Decode remaining files in directory Descodificar els fitxers restants al directori - + Shift+F6 Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir Esborra tots els fitxers *.wav && *.c2 del directori Guardar - + None Cap - + Save all Guardar-ho tot - + Online User Guide Guia d'usuari online - + Keyboard shortcuts Dreceres de teclat - + Special mouse commands Ordres especials del ratolí - + JT9 JT9 - + Save decoded Guarda el descodificat - + Normal Normal - + Deep Profunda - + Monitor OFF at startup Monitor apagat a l’inici - + Erase ALL.TXT Esborrar ALL.TXT - + Erase wsjtx_log.adi Esborrar wsjt_lg.adi - + Convert mode to RTTY for logging Converteix el mode a RTTY després de registrar el QSO - + Log dB reports to Comments Posa els informes de recepció en dB als comentaris - + Prompt me to log QSO Inclòure el QSO al registre - + Blank line between decoding periods Línia en blanc entre els períodes de descodificació - + Clear DX Call and Grid after logging Neteja l'indicatiu i la graella de DX després de registrar el QSO - + Display distance in miles Distància en milles - + Double-click on call sets Tx Enable Fes doble clic als conjunts d'indicatius d'activar TX - - + + F7 F7 - + Tx disabled after sending 73 TX desactivat després d’enviar 73 - - + + Runaway Tx watchdog Vigilant de fugida TX - + Allow multiple instances Permetre diverses instàncies - + Tx freq locked to Rx freq TX freq bloquejat a RX freq - + JT65 JT65 - + JT9+JT65 JT9+JT65 - + Tx messages to Rx Frequency window Missatges de TX a la finestra de freqüència de RX - + Gray1 Gris1 - + Show DXCC entity and worked B4 status Mostra l'entitat DXCC i l'estat de B4 treballat - + Astronomical data Dades astronòmiques - + List of Type 1 prefixes and suffixes Llista de prefixos i sufixos de tipus 1 - + Settings... Configuració... - + Local User Guide Guia d'usuari local - + Open log directory Obre el directori del registre - + JT4 JT4 - + Message averaging Mitjana de missatges - + Enable averaging Activa la mitjana - + Enable deep search Activa la cerca profunda - + WSPR WSPR - + Echo Graph Gràfic d'Eco - + F8 F8 - + Echo Eco - + EME Echo mode Mode EME Eco - + ISCAT ISCAT - + Fast Graph Gràfic ràpid - + F9 F9 - + &Download Samples ... &Descarregueu mostres ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>Descarrega fitxers d’àudio d’exemple mostrant els diversos modes.</p></body></html> - + MSK144 MSK144 - + QRA64 QRA64 - + Release Notes Notes de llançament - + Enable AP for DX Call Habilita AP per al indicatiu de DX - + FreqCal FreqCal - + Measure reference spectrum Mesura l’espectre de referència - + Measure phase response Mesura la resposta en fase - + Erase reference spectrum Esborra l'espectre de referència - + Execute frequency calibration cycle Executa el cicle de calibració de freqüència - + Equalization tools ... Eines d'equalització ... - + WSPR-LF WSPR-LF - + Experimental LF/MF mode Mode experimental LF/MF - + FT8 FT8 - - + + Enable AP Activa AP - + Solve for calibration parameters Resol els paràmetres de calibratge - + Copyright notice Avís de drets d’autor - + Shift+F1 Shift+F1 - + Fox log Log Guineu - + FT8 DXpedition Mode User Guide Guia de l'usuari del mode DXpedition a FT8 - + Reset Cabrillo log ... Restableix el registre de Cabrillo ... - + Color highlighting scheme Esquema de ressaltar el color - + Contest Log Registre de Concurs - + Export Cabrillo log ... Exporta el registre de Cabrillo ... - + Quick-Start Guide to WSJT-X 2.0 Guia d'inici ràpid a WSJT-X 2.0 - + Contest log Registre de Concurs - + Erase WSPR hashtable Esborra la taula WSPR - + FT4 FT4 @@ -3560,8 +3570,8 @@ La llista es pot mantenir a la configuració (F2). - - + + Receiving Rebent @@ -3597,21 +3607,21 @@ La llista es pot mantenir a la configuració (F2). - - - - - + + + + - + - + - + - + - + + Message Missatge @@ -3637,22 +3647,22 @@ La llista es pot mantenir a la configuració (F2). - + Improper mode Mode inadequat - + File Open Error Error al obrir el fitxer - - - - + + + + Cannot open "%1" for append: %2 No es pot obrir "%1" per annexar: %2 @@ -3673,15 +3683,15 @@ La llista es pot mantenir a la configuració (F2). - - + + Single-Period Decodes Descodificacions d'un sol període - - + + Average Decodes Mitjans descodificats @@ -3702,7 +3712,7 @@ La llista es pot mantenir a la configuració (F2). - + Cannot open "%1" for writing: %2 No es pot obrir "%1" per escriure: %2 @@ -3806,32 +3816,32 @@ La llista es pot mantenir a la configuració (F2). No s’obriran més fitxers. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Tria una altra freqüència de TX. El WSJT-X no transmetrà de manera conscient un altre mode a la sub-banda WSPR a 30 m. - + WSPR Guard Band Banda de Guàrdia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Tria una altra freqüència de treball. WSJT-X no funcionarà en mode Guineu a les sub-bandes FT8 estàndard. - + Fox Mode warning Avís de mode Guineu - + Last Tx: %1 Últim TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3842,183 +3852,183 @@ Per fer-ho, comprova "Activitat operativa especial" i Concurs EU VHF a la Configuració | Pestanya avançada. - + Should you switch to ARRL Field Day mode? Has de canviar al mode de Field Day de l'ARRL ? - + Should you switch to RTTY contest mode? Has de canviar al mode de concurs RTTY? - - - - + + + + Add to CALL3.TXT Afegeix a CALL3.TXT - + Please enter a valid grid locator Introduïu un locator vàlid - + Cannot open "%1" for read/write: %2 No es pot obrir "%1" per llegir o escriure: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 ja és a CALL3.TXT, vols substituir-lo ? - + Warning: DX Call field is empty. Avís: el camp de indicatiu DX està buit. - + Log file error Error al fitxer de registre - + Cannot open "%1" No es pot obrir "%1" - + Error sending log to N1MM Error al enviar el registre a N1MM - + Write returned "%1" Escriptura retornada "%1" - + Stations calling DXpedition %1 Estacions que criden a DXpedition %1 - + Hound Hound - + Tx Messages Missatges de TX - - - + + + Confirm Erase Confirma Esborrar - + Are you sure you want to erase file ALL.TXT? Estàs segur que vols esborrar el fitxer ALL.TXT ? - - + + Confirm Reset Confirma que vols Restablir - + Are you sure you want to erase your contest log? Estàs segur que vols esborrar el registre del concurs ? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Si fas això, suprimiràs tots els registres de QSO del concurs actual. Es conservaran al fitxer de registre ADIF, però no es podran exportar al registre de Cabrillo. - + Cabrillo Log saved Registre Cabrillo desat - + Are you sure you want to erase file wsjtx_log.adi? Estàs segur que vols esborrar el fitxer wsjtx_log.adi ? - + Are you sure you want to erase the WSPR hashtable? Estàs segur que vols esborrar la taula del WSPR ? - + VHF features warning Les característiques de VHF tenen un avís - + Tune digital gain Guany de sintonització digital - + Transmit digital gain Guany digital de transmissió - + Prefixes Prefixos - + Network Error Error de xarxa - + Error: %1 UDP server %2:%3 Error: %1 UDP server %2:%3 - + File Error Error al fitxer - + Phase Training Disabled Entrenament de fase Desactivat - + Phase Training Enabled Entrenament de fase activat - + WD:%1m WD:%1m - - + + Log File Error Error al fitxer de registre - + Are you sure you want to clear the QSO queues? Estàs segur que vols esborrar les cues de QSO ? @@ -4148,19 +4158,19 @@ UDP server %2:%3 No s'ha pogut iniciar el servidor COM OmniRig - - + + OmniRig: don't know how to set rig frequency OmniRig: no sé com establir la freqüència de l'equip - - + + OmniRig: timeout waiting for update from rig OmniRig: el temps d'espera a finalitzat per actualitzar des de l'equip - + OmniRig COM/OLE error: %1 at %2: %3 (%4) OmniRig Error COM/OLE: %1 a %2: %3 (%4) @@ -4312,6 +4322,36 @@ Error(%2): %3 Download Samples Descarrega mostres + + + &Abort + + + + + &Refresh + + + + + &Details + + + + + Base URL for samples: + + + + + Only use HTTP: + + + + + Check this is you get SSL/TLS errors + + Input Error diff --git a/translations/wsjtx_en.ts b/translations/wsjtx_en.ts index 8c0d0f821..485801d1f 100644 --- a/translations/wsjtx_en.ts +++ b/translations/wsjtx_en.ts @@ -877,6 +877,16 @@ Format: Directory + + + File + + + + + Progress + + @@ -1427,26 +1437,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region - - + + Mode - - + + Frequency - - + + Frequency (MHz) @@ -1564,152 +1574,152 @@ Error: %2 - %3 - + Hamlib error: %1 while %2 - + opening connection to rig - + getting current frequency - + getting current mode - - + + exchanging VFOs - - + + getting other VFO frequency - + getting other VFO mode - + setting current VFO - + getting frequency - + getting mode - - + + getting current VFO - - - - + + + + getting current VFO frequency - - - - - - + + + + + + setting frequency - - - - + + + + getting current VFO mode - - - - - + + + + + setting current VFO mode - - + + setting/unsetting split mode - - + + setting split mode - + setting split TX frequency and mode - + setting split TX frequency - + getting split TX VFO mode - + setting split TX VFO mode - + getting PTT state - + setting PTT on - + setting PTT off - + setting a configuration item - + getting a configuration item @@ -1912,12 +1922,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity @@ -1929,11 +1939,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency @@ -2284,7 +2294,7 @@ Yellow when too low - + Fast @@ -2391,7 +2401,7 @@ Not available to nonstandard callsign holders. - + Fox @@ -3090,415 +3100,415 @@ list. The list can be maintained in Settings (F2). - + Waterfall - + Open - + Ctrl+O - + Open next in directory - + Decode remaining files in directory - + Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir - + None - + Save all - + Online User Guide - + Keyboard shortcuts - + Special mouse commands - + JT9 - + Save decoded - + Normal - + Deep - + Monitor OFF at startup - + Erase ALL.TXT - + Erase wsjtx_log.adi - + Convert mode to RTTY for logging - + Log dB reports to Comments - + Prompt me to log QSO - + Blank line between decoding periods - + Clear DX Call and Grid after logging - + Display distance in miles - + Double-click on call sets Tx Enable - - + + F7 - + Tx disabled after sending 73 - - + + Runaway Tx watchdog - + Allow multiple instances - + Tx freq locked to Rx freq - + JT65 - + JT9+JT65 - + Tx messages to Rx Frequency window - + Gray1 - + Show DXCC entity and worked B4 status - + Astronomical data - + List of Type 1 prefixes and suffixes - + Settings... - + Local User Guide - + Open log directory - + JT4 - + Message averaging - + Enable averaging - + Enable deep search - + WSPR - + Echo Graph - + F8 - + Echo - + EME Echo mode - + ISCAT - + Fast Graph - + F9 - + &Download Samples ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> - + MSK144 - + QRA64 - + Release Notes - + Enable AP for DX Call - + FreqCal - + Measure reference spectrum - + Measure phase response - + Erase reference spectrum - + Execute frequency calibration cycle - + Equalization tools ... - + WSPR-LF - + Experimental LF/MF mode - + FT8 - - + + Enable AP - + Solve for calibration parameters - + Copyright notice - + Shift+F1 - + Fox log - + FT8 DXpedition Mode User Guide - + Reset Cabrillo log ... - + Color highlighting scheme - + Contest Log - + Export Cabrillo log ... - + Quick-Start Guide to WSJT-X 2.0 - + Contest log - + Erase WSPR hashtable - + FT4 @@ -3509,8 +3519,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving @@ -3546,21 +3556,21 @@ list. The list can be maintained in Settings (F2). - - - - - + + + + - + - + - + - + - + + Message @@ -3586,22 +3596,22 @@ list. The list can be maintained in Settings (F2). - + Improper mode - + File Open Error - - - - + + + + Cannot open "%1" for append: %2 @@ -3622,15 +3632,15 @@ list. The list can be maintained in Settings (F2). - - + + Single-Period Decodes - - + + Average Decodes @@ -3651,7 +3661,7 @@ list. The list can be maintained in Settings (F2). - + Cannot open "%1" for writing: %2 @@ -3749,32 +3759,32 @@ list. The list can be maintained in Settings (F2). - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + Last Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3782,181 +3792,181 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - + Stations calling DXpedition %1 - + Hound - + Tx Messages - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + VHF features warning - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - + WD:%1m - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -4086,19 +4096,19 @@ UDP server %2:%3 - - + + OmniRig: don't know how to set rig frequency - - + + OmniRig: timeout waiting for update from rig - + OmniRig COM/OLE error: %1 at %2: %3 (%4) @@ -4236,6 +4246,36 @@ Error(%2): %3 Download Samples + + + &Abort + + + + + &Refresh + + + + + &Details + + + + + Base URL for samples: + + + + + Only use HTTP: + + + + + Check this is you get SSL/TLS errors + + Input Error diff --git a/translations/wsjtx_en_GB.ts b/translations/wsjtx_en_GB.ts index 5ed7e9f88..7bf890562 100644 --- a/translations/wsjtx_en_GB.ts +++ b/translations/wsjtx_en_GB.ts @@ -877,6 +877,16 @@ Format: Directory + + + File + + + + + Progress + + @@ -1427,26 +1437,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region - - + + Mode - - + + Frequency - - + + Frequency (MHz) @@ -1564,152 +1574,152 @@ Error: %2 - %3 - + Hamlib error: %1 while %2 - + opening connection to rig - + getting current frequency - + getting current mode - - + + exchanging VFOs - - + + getting other VFO frequency - + getting other VFO mode - + setting current VFO - + getting frequency - + getting mode - - + + getting current VFO - - - - + + + + getting current VFO frequency - - - - - - + + + + + + setting frequency - - - - + + + + getting current VFO mode - - - - - + + + + + setting current VFO mode - - + + setting/unsetting split mode - - + + setting split mode - + setting split TX frequency and mode - + setting split TX frequency - + getting split TX VFO mode - + setting split TX VFO mode - + getting PTT state - + setting PTT on - + setting PTT off - + setting a configuration item - + getting a configuration item @@ -1912,12 +1922,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity @@ -1929,11 +1939,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency @@ -2284,7 +2294,7 @@ Yellow when too low - + Fast @@ -2391,7 +2401,7 @@ Not available to nonstandard callsign holders. - + Fox @@ -3090,415 +3100,415 @@ list. The list can be maintained in Settings (F2). - + Waterfall - + Open - + Ctrl+O - + Open next in directory - + Decode remaining files in directory - + Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir - + None - + Save all - + Online User Guide - + Keyboard shortcuts - + Special mouse commands - + JT9 - + Save decoded - + Normal - + Deep - + Monitor OFF at startup - + Erase ALL.TXT - + Erase wsjtx_log.adi - + Convert mode to RTTY for logging - + Log dB reports to Comments - + Prompt me to log QSO - + Blank line between decoding periods - + Clear DX Call and Grid after logging - + Display distance in miles - + Double-click on call sets Tx Enable - - + + F7 - + Tx disabled after sending 73 - - + + Runaway Tx watchdog - + Allow multiple instances - + Tx freq locked to Rx freq - + JT65 - + JT9+JT65 - + Tx messages to Rx Frequency window - + Gray1 - + Show DXCC entity and worked B4 status - + Astronomical data - + List of Type 1 prefixes and suffixes - + Settings... - + Local User Guide - + Open log directory - + JT4 - + Message averaging - + Enable averaging - + Enable deep search - + WSPR - + Echo Graph - + F8 - + Echo - + EME Echo mode - + ISCAT - + Fast Graph - + F9 - + &Download Samples ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> - + MSK144 - + QRA64 - + Release Notes - + Enable AP for DX Call - + FreqCal - + Measure reference spectrum - + Measure phase response - + Erase reference spectrum - + Execute frequency calibration cycle - + Equalization tools ... - + WSPR-LF - + Experimental LF/MF mode - + FT8 - - + + Enable AP - + Solve for calibration parameters - + Copyright notice - + Shift+F1 - + Fox log - + FT8 DXpedition Mode User Guide - + Reset Cabrillo log ... - + Color highlighting scheme - + Contest Log - + Export Cabrillo log ... - + Quick-Start Guide to WSJT-X 2.0 - + Contest log - + Erase WSPR hashtable - + FT4 @@ -3509,8 +3519,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving @@ -3546,21 +3556,21 @@ list. The list can be maintained in Settings (F2). - - - - - + + + + - + - + - + - + - + + Message @@ -3586,22 +3596,22 @@ list. The list can be maintained in Settings (F2). - + Improper mode - + File Open Error - - - - + + + + Cannot open "%1" for append: %2 @@ -3622,15 +3632,15 @@ list. The list can be maintained in Settings (F2). - - + + Single-Period Decodes - - + + Average Decodes @@ -3651,7 +3661,7 @@ list. The list can be maintained in Settings (F2). - + Cannot open "%1" for writing: %2 @@ -3749,32 +3759,32 @@ list. The list can be maintained in Settings (F2). - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + Last Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3782,181 +3792,181 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - + Stations calling DXpedition %1 - + Hound - + Tx Messages - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + VHF features warning - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - + WD:%1m - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -4086,19 +4096,19 @@ UDP server %2:%3 - - + + OmniRig: don't know how to set rig frequency - - + + OmniRig: timeout waiting for update from rig - + OmniRig COM/OLE error: %1 at %2: %3 (%4) @@ -4236,6 +4246,36 @@ Error(%2): %3 Download Samples + + + &Abort + + + + + &Refresh + + + + + &Details + + + + + Base URL for samples: + + + + + Only use HTTP: + + + + + Check this is you get SSL/TLS errors + + Input Error diff --git a/translations/wsjtx_es.ts b/translations/wsjtx_es.ts index 9446e4a92..56c6d7397 100644 --- a/translations/wsjtx_es.ts +++ b/translations/wsjtx_es.ts @@ -896,6 +896,16 @@ Formato: Directory + + + File + Fichero + + + + Progress + + @@ -1448,26 +1458,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region Región IARU - - + + Mode Modo - - + + Frequency Frecuencia - - + + Frequency (MHz) Frecuencia en MHz @@ -1588,152 +1598,152 @@ Error: %2 - %3 Tipo CAT no admitido - + Hamlib error: %1 while %2 Error Hamlib: %1 mientras %2 - + opening connection to rig conexión de apertura al equipo - + getting current frequency obteniendo frecuencia actual - + getting current mode obteniendo el modo actual - - + + exchanging VFOs intercambiando VFO's - - + + getting other VFO frequency obteniendo otra frecuencia de VFO - + getting other VFO mode obteniendo otro modo VFO - + setting current VFO ajuste al VFO actual - + getting frequency obteniendo frecuencia - + getting mode obteniendo modo - - + + getting current VFO obteniendo el VFO actual - - - - + + + + getting current VFO frequency obteniendo la frecuencia actual de VFO - - - - - - + + + + + + setting frequency ajuste de frecuencia - - - - + + + + getting current VFO mode obteniendo el modo VFO actual - - - - - + + + + + setting current VFO mode ajuste del modo VFO actual - - + + setting/unsetting split mode activación/desactivación del modo dividido (split) - - + + setting split mode activar modo dividido (split) - + setting split TX frequency and mode Ajuste de frecuencia y modo de transmisión dividida (split) - + setting split TX frequency ajuste de frecuencia dividida en TX - + getting split TX VFO mode obteniendo el modo dividido de TX en el VFO - + setting split TX VFO mode ajuste del modo dividido (split) en TX del VFO - + getting PTT state obteniendo el estado del PTT - + setting PTT on activar el PTT - + setting PTT off desactivar el PTT - + setting a configuration item activar un elemento de configuración - + getting a configuration item obteniendo un elemento de configuración @@ -1944,12 +1954,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity Actividad en la banda @@ -1961,11 +1971,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency Frecuencia de RX @@ -2319,7 +2329,7 @@ Amarillo cuando esta muy bajo. - + Fast Rápido @@ -2427,7 +2437,7 @@ No está disponible para los titulares de indicativo no estándar. - + Fox Fox @@ -3139,415 +3149,415 @@ de la lista. La lista se puede mantener en Configuración/Ajustes (F2).Acerca de WSJT-X - + Waterfall Cascada - + Open Abrir - + Ctrl+O Ctrl+O - + Open next in directory Abrir siguiente en el directorio - + Decode remaining files in directory Decodifica los archivos restantes en el directorio - + Shift+F6 Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir Borra todos los archivos *.wav && *.c2 del directorio Guardar - + None Ninguno - + Save all Guardar todo - + Online User Guide Guía de usuario en línea - + Keyboard shortcuts Atajos de teclado - + Special mouse commands Comandos especiales del ratón - + JT9 JT9 - + Save decoded Guarda el decodificado - + Normal Normal - + Deep Profundo - + Monitor OFF at startup Monitor apagado al inicio - + Erase ALL.TXT Borrar ALL.TXT - + Erase wsjtx_log.adi Borrar el fichero wsjtx_log.adi - + Convert mode to RTTY for logging Convierte el modo a RTTY después de registrar el QSO - + Log dB reports to Comments Pon los informes de recepción en dB en Comentarios - + Prompt me to log QSO Pedirme que registre QSO - + Blank line between decoding periods Línea en blanco entre períodos de decodificación - + Clear DX Call and Grid after logging Borrar Indicativo DX y Locator/Grid DX después de registrar un QSO - + Display distance in miles Mostrar distancia en millas - + Double-click on call sets Tx Enable Haz doble clic en los conjuntos de indicativos de activar TX - - + + F7 F7 - + Tx disabled after sending 73 Tx deshabilitado después de enviar 73 - - + + Runaway Tx watchdog Vigilante de fuga TX - + Allow multiple instances Permitir múltiples instancias - + Tx freq locked to Rx freq TX frec bloqueado a RX frec - + JT65 JT65 - + JT9+JT65 JT9+JT65 - + Tx messages to Rx Frequency window Mensajes de texto a la ventana de frecuencia de RX - + Gray1 Gris1 - + Show DXCC entity and worked B4 status Mostrar entidad DXCC y estado B4 trabajado - + Astronomical data Datos astronómicos - + List of Type 1 prefixes and suffixes Lista de prefijos y sufijos de tipo 1 - + Settings... Configuraciones/Ajustes... - + Local User Guide Guía de usuario local - + Open log directory Abrir directorio de registro - + JT4 JT4 - + Message averaging Promedio de mensajes - + Enable averaging Habilitar el promedio - + Enable deep search Habilitar búsqueda profunda - + WSPR WSPR - + Echo Graph Gráfico de eco - + F8 F8 - + Echo Echo - + EME Echo mode Modo EME Echo - + ISCAT ISCAT - + Fast Graph Gráfico rápido - + F9 F9 - + &Download Samples ... &Descargar muestras ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>Descarga archivos de audio de muestra que demuestren los distintos modos.</p></body></html> - + MSK144 MSK144 - + QRA64 QRA64 - + Release Notes Notas de lanzamiento - + Enable AP for DX Call Habilitar AP para llamada DX - + FreqCal FreqCal - + Measure reference spectrum Medir espectro de referencia - + Measure phase response Medir la respuesta de fase - + Erase reference spectrum Borrar espectro de referencia - + Execute frequency calibration cycle Ejecutar ciclo de calibración de frecuencia - + Equalization tools ... Herramientas de ecualización ... - + WSPR-LF WSPR-LF - + Experimental LF/MF mode Modo experimental LF/MF - + FT8 FT8 - - + + Enable AP Habilitar AP - + Solve for calibration parameters Resolver para parámetros de calibración - + Copyright notice Aviso de Copyright - + Shift+F1 Shift+F1 - + Fox log Log Fox - + FT8 DXpedition Mode User Guide Guía del usuario del modo FT8 DXpedition - + Reset Cabrillo log ... Restablecer registro de Cabrillo ... - + Color highlighting scheme Esquema de resaltado de color - + Contest Log Registro de Concurso - + Export Cabrillo log ... Exportar registro de Cabrillo ... - + Quick-Start Guide to WSJT-X 2.0 Guía de inicio rápido para WSJT-X 2.0 - + Contest log Registro de Concurso - + Erase WSPR hashtable Borrar la tabla de WSPR - + FT4 FT4 @@ -3558,8 +3568,8 @@ de la lista. La lista se puede mantener en Configuración/Ajustes (F2). - - + + Receiving Recibiendo @@ -3595,21 +3605,21 @@ de la lista. La lista se puede mantener en Configuración/Ajustes (F2). - - - - - + + + + - + - + - + - + - + + Message Mensaje @@ -3635,22 +3645,22 @@ de la lista. La lista se puede mantener en Configuración/Ajustes (F2). - + Improper mode Modo incorrecto - + File Open Error Error de apertura de fichero - - - - + + + + Cannot open "%1" for append: %2 No puedo abrir "%1" para anexar: %2 @@ -3671,15 +3681,15 @@ de la lista. La lista se puede mantener en Configuración/Ajustes (F2). - - + + Single-Period Decodes Decodificaciones de un solo período - - + + Average Decodes Promedio de decodificaciones @@ -3700,7 +3710,7 @@ de la lista. La lista se puede mantener en Configuración/Ajustes (F2). - + Cannot open "%1" for writing: %2 No se puede abrir "%1" para la escritura: %2 @@ -3805,32 +3815,32 @@ de la lista. La lista se puede mantener en Configuración/Ajustes (F2).No hay más ficheros para abrir. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Por favor, elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30m. - + WSPR Guard Band Banda de Guardia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Elige otra frecuencia de dial. WSJT-X no funcionará en modo Fox en las sub-bandas FT8 estándar. - + Fox Mode warning Advertencia del modo Fox - + Last Tx: %1 Última TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3841,183 +3851,183 @@ Para hacerlo, marca 'Actividad operativa especial' y 'Concurso VHF EU' en la Configuración/Ajustes | Lengüeta avanzada. - + Should you switch to ARRL Field Day mode? ¿Cambiar al modo ARRL Field Day? - + Should you switch to RTTY contest mode? ¿Cambiar al modo de concurso RTTY? - - - - + + + + Add to CALL3.TXT Añadir a CALL3.TXT - + Please enter a valid grid locator Por favor, introduce un locator/Grid válido - + Cannot open "%1" for read/write: %2 No se puede abrir "%1" para leer/escribir: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 ya está en CALL3.TXT, ¿deseas reemplazarlo? - + Warning: DX Call field is empty. Advertencia: el campo de Indicativo DX está vacío. - + Log file error Error de archivo de registro - + Cannot open "%1" No puedo abrir "%1" - + Error sending log to N1MM Error al enviar el registro a N1MM - + Write returned "%1" Escritura devuelta "%1" - + Stations calling DXpedition %1 Estaciones que llaman a DXpedition %1 - + Hound Hound - + Tx Messages Mensajes de TX - - - + + + Confirm Erase Confirmar borrado - + Are you sure you want to erase file ALL.TXT? ¿Estás seguro de que quieres borrar el archivo ALL.TXT? - - + + Confirm Reset Confirmar reinicio - + Are you sure you want to erase your contest log? ¿Estás seguro de que quieres borrar el registro de tú concurso? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Hacer esto eliminará todos los registros de QSO para el concurso actual. Se guardarán en el archivo de registro de ADIF, pero no estarán disponibles para la exportación en su registro de Cabrillo. - + Cabrillo Log saved Cabrillo Log guardado - + Are you sure you want to erase file wsjtx_log.adi? ¿Estás seguro de que quieres borrar el archivo wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? ¿Estás seguro de que quieres borrar la tabla WSPR? - + VHF features warning Advertencia de características VHF - + Tune digital gain Ganancia de sintonización digital - + Transmit digital gain Ganancia de transmisión digital - + Prefixes Prefijos - + Network Error Error de red - + Error: %1 UDP server %2:%3 Error: %1 Servidor UDP %2:%3 - + File Error Error en fichero - + Phase Training Disabled Fase de entrenamiento deshabilitado - + Phase Training Enabled Fase de entrenamiento habilitado - + WD:%1m WD:%1m - - + + Log File Error Error de archivo de registro - + Are you sure you want to clear the QSO queues? ¿Estás seguro de que quieres borrar las colas QSO? @@ -4147,19 +4157,19 @@ Servidor UDP %2:%3 Error al iniciar el servidor COM para OmniRig - - + + OmniRig: don't know how to set rig frequency OmniRig: no sé cómo configurar la frecuencia del equipo - - + + OmniRig: timeout waiting for update from rig OmniRig: el tiempo de espera finalizó en la actualización del equipo - + OmniRig COM/OLE error: %1 at %2: %3 (%4) Error de OmniRig COM/OLE: %1 a %2: %3 (%4 @@ -4311,6 +4321,36 @@ Error(%2): %3 Download Samples Descargar muestras + + + &Abort + + + + + &Refresh + + + + + &Details + + + + + Base URL for samples: + + + + + Only use HTTP: + + + + + Check this is you get SSL/TLS errors + + Input Error diff --git a/translations/wsjtx_ja.ts b/translations/wsjtx_ja.ts index 704d13d07..ebb3c7937 100644 --- a/translations/wsjtx_ja.ts +++ b/translations/wsjtx_ja.ts @@ -888,6 +888,16 @@ Format: Directory + + + File + ファイル + + + + Progress + + @@ -1444,26 +1454,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region IARU地域 - - + + Mode モード - - + + Frequency 周波数 - - + + Frequency (MHz) 周波数(MHz) @@ -1584,152 +1594,152 @@ Error: %2 - %3 サポートしていないCATタイプ - + Hamlib error: %1 while %2 Hamlibエラー: %1 %2 - + opening connection to rig 無線機への接続 - + getting current frequency 現周波数を取得 - + getting current mode 現モードを取得 - - + + exchanging VFOs VFO入れ替え - - + + getting other VFO frequency もう一方のVFOの周波数を取得 - + getting other VFO mode もう一方のVFOのモードを取得 - + setting current VFO 現VFOを設定 - + getting frequency 周波数を取得 - + getting mode モードを取得 - - + + getting current VFO 現VFOを取得 - - - - + + + + getting current VFO frequency 現VFOの周波数を取得 - - - - - - + + + + + + setting frequency 周波数を設定 - - - - + + + + getting current VFO mode 現VFOのモードを取得 - - - - - + + + + + setting current VFO mode 現VFOモードを設定 - - + + setting/unsetting split mode スプリットのオン/オフ - - + + setting split mode スプリットモードオン - + setting split TX frequency and mode スプリット送信周波数とモードをセット - + setting split TX frequency スプリット送信周波数をセット - + getting split TX VFO mode スプリットモードを取得 - + setting split TX VFO mode スプリット送信VFOのモードをセット - + getting PTT state PTT状態を取得 - + setting PTT on PTTオン - + setting PTT off PTTオフ - + setting a configuration item コンフィグレーション項目をセット - + getting a configuration item コンフィグレーション項目を取得 @@ -1940,12 +1950,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity バンド状況 @@ -1957,11 +1967,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency 受信周波数 @@ -2315,7 +2325,7 @@ Yellow when too low - + Fast 高速 @@ -2423,7 +2433,7 @@ Not available to nonstandard callsign holders. - + Fox Fox @@ -3133,415 +3143,415 @@ ENTERを押してテキストを登録リストに追加. WSJT-Xについて - + Waterfall ウォーターフォール - + Open 開く - + Ctrl+O - + Open next in directory ディレクトリ中の次のファイルを開く - + Decode remaining files in directory ディレクトリ中の残りのファイルをデコード - + Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir SaveDirのすべての*.wavと*.c2ファイルを削除 - + None 無し - + Save all すべて保存 - + Online User Guide オンラインユーザーガイド - + Keyboard shortcuts キーボードショートカット - + Special mouse commands 特別なマウス操作 - + JT9 - + Save decoded デコードしたメッセージを保存 - + Normal 標準 - + Deep ディープ - + Monitor OFF at startup 起動時モニターオフ - + Erase ALL.TXT ALL.TXTを消去 - + Erase wsjtx_log.adi wsjtx_log.adiを消去 - + Convert mode to RTTY for logging ログのためモードをRTTYに変換 - + Log dB reports to Comments dBレポートをコメントに記録 - + Prompt me to log QSO QSOをログするとき知らせる - + Blank line between decoding periods デコードタイミング間に空白行を入れる - + Clear DX Call and Grid after logging ログした後、DXコールサインとグリッドをクリア - + Display distance in miles 距離をマイルで表示 - + Double-click on call sets Tx Enable コールサインをダブルクリックして送信オン - - + + F7 - + Tx disabled after sending 73 73を送った後送信禁止 - - + + Runaway Tx watchdog Txウオッチドッグ発令 - + Allow multiple instances 複数のインスタンス起動許可 - + Tx freq locked to Rx freq 送信周波数を受信周波数にロック - + JT65 - + JT9+JT65 - + Tx messages to Rx Frequency window 送信メッセージを受信周波数ウィンドウへ - + Gray1 - + Show DXCC entity and worked B4 status DXCCエンティティと交信済みステータスを表示 - + Astronomical data 天文データ - + List of Type 1 prefixes and suffixes タイプ1プリフィックス、サフィックスのリスト - + Settings... 設定... - + Local User Guide 各国版ユーザーガイド - + Open log directory ログディレクトリを開く - + JT4 - + Message averaging メッセージ平均化 - + Enable averaging 平均化オン - + Enable deep search ディープサーチをオン - + WSPR WSPR - + Echo Graph エコーグラフ - + F8 - + Echo Echo - + EME Echo mode EMEエコーモード - + ISCAT - + Fast Graph 高速グラフ - + F9 - + &Download Samples ... サンプルをダウンロード(&D)... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>いろいろなモードのオーディオファイルをダウンロード.</p></body></html> - + MSK144 - + QRA64 - + Release Notes リリースノート - + Enable AP for DX Call DXコールのAPをオン - + FreqCal - + Measure reference spectrum 参照スペクトラムを測定 - + Measure phase response 位相応答を測定 - + Erase reference spectrum 参照スペクトラムを消去 - + Execute frequency calibration cycle 周波数較正実行 - + Equalization tools ... イコライザー... - + WSPR-LF WSPR-LF - + Experimental LF/MF mode 実験的LF/MFモード - + FT8 - - + + Enable AP AP使用 - + Solve for calibration parameters 較正パラメータ計算 - + Copyright notice 著作権表示 - + Shift+F1 - + Fox log Foxログ - + FT8 DXpedition Mode User Guide FT8 DXペディションモードユーザーガイド - + Reset Cabrillo log ... Cabrilloログをリセット... - + Color highlighting scheme ハイライト設定 - + Contest Log コンテストログ - + Export Cabrillo log ... Cabrilloログをエクスポート... - + Quick-Start Guide to WSJT-X 2.0 WSJT-X 2.0クイックスタートガイド - + Contest log コンテストログ - + Erase WSPR hashtable WSPRハッシュテーブルを消去 - + FT4 @@ -3552,8 +3562,8 @@ ENTERを押してテキストを登録リストに追加. - - + + Receiving 受信中 @@ -3589,21 +3599,21 @@ ENTERを押してテキストを登録リストに追加. - - - - - + + + + - + - + - + - + - + + Message メッセージ @@ -3629,22 +3639,22 @@ ENTERを押してテキストを登録リストに追加. - + Improper mode 不適切なモード - + File Open Error ファイルオープンエラー - - - - + + + + Cannot open "%1" for append: %2 "%2"を追加する"%1"が開けません @@ -3665,15 +3675,15 @@ ENTERを押してテキストを登録リストに追加. - - + + Single-Period Decodes シングルパスデコード - - + + Average Decodes 平均デコード @@ -3694,7 +3704,7 @@ ENTERを押してテキストを登録リストに追加. - + Cannot open "%1" for writing: %2 %2を書き込むための"%1"が開けません @@ -3793,32 +3803,32 @@ ENTERを押してテキストを登録リストに追加. これ以上開くファイルがありません. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 他の送信周波数を使ってください. WSJT-Xは30mバンドのWSPRサブバンド中の他のモードを受信せずに送信してしまいます. - + WSPR Guard Band WSPRガードバンド - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 他のダイヤル周波数を使ってください. WSJT-XはFT8の標準サブバンドでFoxモードを使えません。 - + Fox Mode warning Foxモード警告 - + Last Tx: %1 最終送信: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3828,183 +3838,183 @@ To do so, check 'Special operating activity' and 設定|詳細タブで設定変更してください. - + Should you switch to ARRL Field Day mode? ARRLフィールドデーモードに切り替えますか? - + Should you switch to RTTY contest mode? RTTYコンテストモードに切り替えますか? - - - - + + + + Add to CALL3.TXT CALL3.TXTへ追加 - + Please enter a valid grid locator 有効なグリッドロケータを入力してください - + Cannot open "%1" for read/write: %2 %2を読み書きするための"%1"が開けません - + %1 is already in CALL3.TXT, do you wish to replace it? %1 がすでにCALL3.TXTにセットされています。置き換えますか? - + Warning: DX Call field is empty. 警告 DXコールが空白です. - + Log file error ログファイルエラー - + Cannot open "%1" "%1"を開けません - + Error sending log to N1MM N1MMへログを送れません - + Write returned "%1" 応答"%1"を書き込み - + Stations calling DXpedition %1 DXペディション %1を呼ぶ局 - + Hound Hound - + Tx Messages 送信メッセージ - - - + + + Confirm Erase 消去確認 - + Are you sure you want to erase file ALL.TXT? ALL.TXTファイルを消去してよいですか? - - + + Confirm Reset リセット確認 - + Are you sure you want to erase your contest log? コンテストログを消去していいですか? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 現在のコンテストのQSO記録をすべて消去します。ADIFログには記録されますがCabrilloログにエクスポートすることはできません. - + Cabrillo Log saved Cabrilloログ保存しました - + Are you sure you want to erase file wsjtx_log.adi? wsjtx_log.adiを消してもよいですか? - + Are you sure you want to erase the WSPR hashtable? WSPRのハッシュテーブルを消してもよいですか? - + VHF features warning VHF機能警告 - + Tune digital gain チューンのデジタルゲイン - + Transmit digital gain 送信デジタルゲイン - + Prefixes プリフィックス - + Network Error ネットワークエラー - + Error: %1 UDP server %2:%3 エラー %1 UDPサーバー %2:%3 - + File Error ファイルエラー - + Phase Training Disabled 位相調整オフ - + Phase Training Enabled 位相調整オン - + WD:%1m WD:%1m - - + + Log File Error ログファイルエラー - + Are you sure you want to clear the QSO queues? QSO待ち行列をクリアしてもいいですか? @@ -4134,19 +4144,19 @@ UDPサーバー %2:%3 OmniRig COMサーバーが開始できません - - + + OmniRig: don't know how to set rig frequency OmniRigが無線機周波数をセットできません - - + + OmniRig: timeout waiting for update from rig OmniRig: 無線機からの応答タイムアウト - + OmniRig COM/OLE error: %1 at %2: %3 (%4) OmniRig COM/OLEエラー: %1 at %2 %3 (%4) @@ -4298,6 +4308,36 @@ Error(%2): %3 Download Samples サンプルをダウンロード + + + &Abort + + + + + &Refresh + + + + + &Details + + + + + Base URL for samples: + + + + + Only use HTTP: + + + + + Check this is you get SSL/TLS errors + + Input Error diff --git a/translations/wsjtx_zh.ts b/translations/wsjtx_zh.ts index b067e783d..71dafc300 100644 --- a/translations/wsjtx_zh.ts +++ b/translations/wsjtx_zh.ts @@ -888,6 +888,16 @@ Format: Directory + + + File + 文件 + + + + Progress + + @@ -1440,26 +1450,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region IARU 区域 - - + + Mode 模式 - - + + Frequency 频率 - - + + Frequency (MHz) 频率 (MHz) @@ -1580,152 +1590,152 @@ Error: %2 - %3 不支持 CAT 类型 - + Hamlib error: %1 while %2 Hamlib 出错误: %1 当 %2 - + opening connection to rig 打开连接无线电设备 - + getting current frequency 获取当前频率 - + getting current mode 获取当前模式 - - + + exchanging VFOs 在 VFOs 之间切换 - - + + getting other VFO frequency 获取其他 VFO 频率 - + getting other VFO mode 获取其他 VFO 模式 - + setting current VFO 设置当前 VFO - + getting frequency 获取频率 - + getting mode 获取模式 - - + + getting current VFO 获取当前 VFO - - - - + + + + getting current VFO frequency 获取当前 VFO 频率 - - - - - - + + + + + + setting frequency 设置频率 - - - - + + + + getting current VFO mode 获取当前 VFO 模式 - - - - - + + + + + setting current VFO mode 设置当前 VFO 模式 - - + + setting/unsetting split mode 设置/取消 设置异频模式 - - + + setting split mode 设置异频模式 - + setting split TX frequency and mode 设置异频发射频率和模式 - + setting split TX frequency 设置异频发射频率 - + getting split TX VFO mode 获得异频发射 VFO 模式 - + setting split TX VFO mode 设置异频发射 VFO 模式 - + getting PTT state 获取PTT 状态 - + setting PTT on 设置PTT 开启 - + setting PTT off 设置PTT 关闭 - + setting a configuration item 设置配置项目 - + getting a configuration item 获取配置项目 @@ -1936,12 +1946,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity 波段活动 @@ -1953,11 +1963,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency 接收信息 @@ -2311,7 +2321,7 @@ Yellow when too low - + Fast 快速 @@ -2419,7 +2429,7 @@ Not available to nonstandard callsign holders. - + Fox 狐狸 @@ -3131,415 +3141,415 @@ list. The list can be maintained in Settings (F2). 有关 WSJT-X - + Waterfall 瀑布图 - + Open 打开文件 - + Ctrl+O - + Open next in directory 打开下一个文件 - + Decode remaining files in directory 打开余下文件 - + Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir 删除所有在SaveDir目录内 *.wav && *.c2 - + None - + Save all 保存所有 - + Online User Guide 在线用户指南 - + Keyboard shortcuts 键盘快捷键 - + Special mouse commands 滑鼠特殊组合 - + JT9 - + Save decoded 保存解码 - + Normal 正常 - + Deep 深度 - + Monitor OFF at startup 启动时关闭监听 - + Erase ALL.TXT 删除 ALL.TXT - + Erase wsjtx_log.adi 删除通联日志 wsjtx_log.adi - + Convert mode to RTTY for logging 将日志记录模式转换为RTTY - + Log dB reports to Comments 将 dB 报告记录到注释 - + Prompt me to log QSO 提示我记录通联 - + Blank line between decoding periods 解码期间之间添加空白行 - + Clear DX Call and Grid after logging 日志记录后清除 DX 呼号和网格 - + Display distance in miles 显示距离以英里为单位 - + Double-click on call sets Tx Enable 双击呼号启用发射 - - + + F7 - + Tx disabled after sending 73 发送 73 后停止发射 - - + + Runaway Tx watchdog 运行发射监管计时器 - + Allow multiple instances 允许多个情况 - + Tx freq locked to Rx freq 发射频率锁定到接收频率 - + JT65 - + JT9+JT65 - + Tx messages to Rx Frequency window 发射信息发送到接收信息窗口 - + Gray1 - + Show DXCC entity and worked B4 status 显示 DXCC 实体和曾经通联状态 - + Astronomical data 天文数据 - + List of Type 1 prefixes and suffixes 类型 1 前缀和后缀的列表 - + Settings... 设置... - + Local User Guide 本地用户指南 - + Open log directory 打开日志文件目录 - + JT4 - + Message averaging 信息平均值 - + Enable averaging 平均值 - + Enable deep search 启用深度搜索 - + WSPR - + Echo Graph 回波图 - + F8 - + Echo 回波 - + EME Echo mode EME 回波模式 - + ISCAT - + Fast Graph 快速图 - + F9 - + &Download Samples ... 下载样本&D ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>下载演示各种模式的示例音频文件.</p></body></html> - + MSK144 - + QRA64 - + Release Notes 发行说明 - + Enable AP for DX Call 启用 AP 为 DX 呼叫 - + FreqCal - + Measure reference spectrum 测量参考频谱 - + Measure phase response 测量相位响应 - + Erase reference spectrum 擦除参考频谱 - + Execute frequency calibration cycle 执行频率校准周期 - + Equalization tools ... 均衡工具 ... - + WSPR-LF - + Experimental LF/MF mode 实验性 LF/MF 模式 - + FT8 - - + + Enable AP 启用 AP - + Solve for calibration parameters 校准参数的解算 - + Copyright notice 版权声明 - + Shift+F1 - + Fox log 狐狸日志 - + FT8 DXpedition Mode User Guide FT8 远征模式用户指南 - + Reset Cabrillo log ... 重置卡布里略日志 ... - + Color highlighting scheme 颜色突显方案 - + Contest Log 竞赛日志 - + Export Cabrillo log ... 导出卡布里略日志 ... - + Quick-Start Guide to WSJT-X 2.0 WSJT-X 2.0 快速入门指南 - + Contest log 竞赛日志 - + Erase WSPR hashtable 擦除 WSPR 哈希表 - + FT4 @@ -3550,8 +3560,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving 接收 @@ -3587,21 +3597,21 @@ list. The list can be maintained in Settings (F2). - - - - - + + + + - + - + - + - + - + + Message 信息 @@ -3627,22 +3637,22 @@ list. The list can be maintained in Settings (F2). - + Improper mode 模式不正确 - + File Open Error 文件打开出错误 - - - - + + + + Cannot open "%1" for append: %2 无法打开 "%1" 用于附加: %2 @@ -3663,15 +3673,15 @@ list. The list can be maintained in Settings (F2). - - + + Single-Period Decodes 单周期解码 - - + + Average Decodes 平均解码 @@ -3692,7 +3702,7 @@ list. The list can be maintained in Settings (F2). - + Cannot open "%1" for writing: %2 无法打开 "%1" 用于写入: %2 @@ -3784,22 +3794,22 @@ list. The list can be maintained in Settings (F2). 没有要打开的文件. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 请选择其他发射频率. WSJT-X 不会故意传输另一个模式在 WSPR 30米子波段上. - + WSPR Guard Band WSPR保护波段 - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 请选择其它频率. WSJT-X 不会运行狐狸模式在标准 FT8 波段. - + Fox Mode warning 狐狸模式警告 @@ -3813,12 +3823,12 @@ list. The list can be maintained in Settings (F2). "WSJT-X 的算法, 源代码, 外观和感觉及相关程序,和协议规格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版权 (C) 2001-2019 由以下一个或多个作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 开发组的其他成员." - + Last Tx: %1 最后发射: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3828,182 +3838,182 @@ To do so, check 'Special operating activity' and 设置高级选项卡上的 '欧洲 VHF 竞赛'. - + Should you switch to ARRL Field Day mode? 是否应切换到 ARRL Field Day 模式? - + Should you switch to RTTY contest mode? 是否应切换到 RTTY 竞赛模式? - - - - + + + + Add to CALL3.TXT 添加到 CALL3.TXT - + Please enter a valid grid locator 请输入有效的网格定位 - + Cannot open "%1" for read/write: %2 无法打开 "%1" 用于读/写: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 已经在 CALL3.TXT, 你想替换它吗? - + Warning: DX Call field is empty. 警告: DX 呼号字段为空. - + Log file error 日志文件错误 - + Cannot open "%1" 无法打开 "%1" - + Error sending log to N1MM 将日志发送到 N1MM 时出错 - + Write returned "%1" 写入返回 "%1" - + Stations calling DXpedition %1 呼叫远征电台 %1 - + Hound 猎犬 - + Tx Messages 发射信息 - - - + + + Confirm Erase 确认擦除 - + Are you sure you want to erase file ALL.TXT? 是否确实要擦除 ALL.TXT 文件? - - + + Confirm Reset 确认重置 - + Are you sure you want to erase your contest log? 是否确实要擦除竞赛日志? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 执行此操作将删除当前竞赛的所有通联记录. 它们将保留在 ADIF 日志文件中, 但无法导出到您的卡布里略日志中. - + Cabrillo Log saved 卡布里略日志已保存 - + Are you sure you want to erase file wsjtx_log.adi? 是否确实要擦除 wsjtx_log.adi 文件? - + Are you sure you want to erase the WSPR hashtable? 是否确实要擦除 WSPR 哈希表? - + VHF features warning VHF 功能警告 - + Tune digital gain 调谐数码增益 - + Transmit digital gain 传输数码增益 - + Prefixes 前缀 - + Network Error 网络错误 - + Error: %1 UDP server %2:%3 错误: %1 UDP 服务器 %2:%3 - + File Error 文件错误 - + Phase Training Disabled 已禁用阶段训练 - + Phase Training Enabled 已启用阶段训练 - + WD:%1m - - + + Log File Error 日志文件错误 - + Are you sure you want to clear the QSO queues? 是否确实要清除通联队列? @@ -4133,19 +4143,19 @@ UDP 服务器 %2:%3 无法启动 OmniRig COM 服务器 - - + + OmniRig: don't know how to set rig frequency OmniRig:不知道如何设置无线电设备频率 - - + + OmniRig: timeout waiting for update from rig OmniRig:等待从无线电设备更新的超时 - + OmniRig COM/OLE error: %1 at %2: %3 (%4) OmniRig COM/OLE 错误: %1 at %2: %3 (%4) @@ -4161,9 +4171,8 @@ UDP 服务器 %2:%3 QObject - Invalid rig name - \ & / not allowed - 无效的无线电设备名称 - \ & / 不允许 + 无效的无线电设备名称 - \ & / 不允许 @@ -4298,6 +4307,36 @@ Error(%2): %3 Download Samples 下载样本 + + + &Abort + + + + + &Refresh + + + + + &Details + + + + + Base URL for samples: + + + + + Only use HTTP: + + + + + Check this is you get SSL/TLS errors + + Input Error @@ -6176,114 +6215,104 @@ Right click for insert and delete options. main - + Fatal error 严重出错误 - + Unexpected fatal error 意外的严重出错误 - Where <rig-name> is for multi-instance support. - 使用 <rig-name> 用于多实例支持无线电设备. + 使用 <rig-name> 用于多实例支持无线电设备. - rig-name - 无线电设备名称 + 无线电设备名称 - Where <configuration> is an existing one. - 哪里 <configuration> 是现有的. + 哪里 <configuration> 是现有的. - configuration - 配置 + 配置 - Where <language> is <lang-code>[-<country-code>]. - 哪里 <language> 是 <lang-code>[-<country-code>]. + 哪里 <language> 是 <lang-code>[-<country-code>]. - language - 语言 + 语言 - Writable files in test location. Use with caution, for testing only. - 测试位置中的可写文件. 小心使用, 仅用于测试. + 测试位置中的可写文件. 小心使用, 仅用于测试. - Command line error - 命令行错误 + 命令行错误 + + + Command line help + 命令行帮助 + + + Application version + 应用程序版本 - Command line help - 命令行帮助 - - - - Application version - 应用程序版本 - - - Another instance may be running 另一个应用程序可能正在运行 - + try to remove stale lock file? 尝试删除陈旧的锁文件? - + Failed to create a temporary directory 无法创建临时目录 - - + + Path: "%1" 目录: "%1" - + Failed to create a usable temporary directory 无法创建可用的临时目录 - + Another application may be locking the directory 另一个应用程序可能正在锁定目录 - + Failed to create data directory 无法创建数据目录 - + path: "%1" 目录: "%1" - + Shared memory error 共享内存错误 - + Unable to create shared memory segment 无法创建共享内存段 diff --git a/translations/wsjtx_zh_HK.ts b/translations/wsjtx_zh_HK.ts index e05341741..a231351b0 100644 --- a/translations/wsjtx_zh_HK.ts +++ b/translations/wsjtx_zh_HK.ts @@ -888,6 +888,16 @@ Format: Directory + + + File + 檔案 + + + + Progress + + @@ -1440,26 +1450,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region IARU 區域 - - + + Mode 模式 - - + + Frequency 頻率 - - + + Frequency (MHz) 頻率 (MHz) @@ -1580,152 +1590,152 @@ Error: %2 - %3 不支持 CAT 類型 - + Hamlib error: %1 while %2 Hamlib 出錯誤: %1 當 %2 - + opening connection to rig 開啟連接無線電設備 - + getting current frequency 獲取當前頻率 - + getting current mode 獲取當前模式 - - + + exchanging VFOs 在 VFOs 之間切換 - - + + getting other VFO frequency 獲取其他 VFO 頻率 - + getting other VFO mode 獲取其他 VFO 模式 - + setting current VFO 設置當前 VFO - + getting frequency 獲取頻率 - + getting mode 獲取模式 - - + + getting current VFO 獲取當前 VFO - - - - + + + + getting current VFO frequency 獲取當前 VFO 頻率 - - - - - - + + + + + + setting frequency 設置頻率 - - - - + + + + getting current VFO mode 獲取當前 VFO 模式 - - - - - + + + + + setting current VFO mode 設置當前 VFO 模式 - - + + setting/unsetting split mode 設置/取消 設置異頻模式 - - + + setting split mode 設置異頻模式 - + setting split TX frequency and mode 設置異頻發射頻率和模式 - + setting split TX frequency 設置異頻發射頻率 - + getting split TX VFO mode 獲得異頻發射 VFO 模式 - + setting split TX VFO mode 設置異頻發射 VFO 模式 - + getting PTT state 獲取PTT 狀態 - + setting PTT on 設置PTT 開啟 - + setting PTT off 設置PTT 關閉 - + setting a configuration item 設置配置項目 - + getting a configuration item 獲取配置項目 @@ -1936,12 +1946,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity 波段活動 @@ -1953,11 +1963,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency 接收信息 @@ -2311,7 +2321,7 @@ Yellow when too low - + Fast 快速 @@ -2419,7 +2429,7 @@ Not available to nonstandard callsign holders. - + Fox 狐狸 @@ -3131,415 +3141,415 @@ list. The list can be maintained in Settings (F2). 有關 WSJT-X - + Waterfall 瀑布圖 - + Open 開啟檔案 - + Ctrl+O - + Open next in directory 開啟下一個檔案 - + Decode remaining files in directory 開啟剩餘檔案 - + Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir 刪除所有在SaveDir目錄內 *.wav && *.c2 - + None - + Save all 儲存所有 - + Online User Guide 線上使用者指南 - + Keyboard shortcuts 鍵盤快捷鍵 - + Special mouse commands 滑鼠特殊組合 - + JT9 - + Save decoded 儲存解碼 - + Normal 正常 - + Deep 深度 - + Monitor OFF at startup 啟動時關閉監聽 - + Erase ALL.TXT 刪除 ALL.TXT - + Erase wsjtx_log.adi 刪除通聯日誌 wsjtx_log.adi - + Convert mode to RTTY for logging 將日誌記錄模式轉換為RTTY - + Log dB reports to Comments 將 dB 報告記錄到注釋 - + Prompt me to log QSO 提示我記錄通聯 - + Blank line between decoding periods 解碼期間之間添加空白行 - + Clear DX Call and Grid after logging 日誌記錄後清除 DX 呼號和網格 - + Display distance in miles 顯示距離以英里為單位 - + Double-click on call sets Tx Enable 雙擊呼號啟用發射 - - + + F7 - + Tx disabled after sending 73 發送 73 後停止發射 - - + + Runaway Tx watchdog 運行發射監管計時器 - + Allow multiple instances 允許多個情況 - + Tx freq locked to Rx freq 發射頻率鎖定到接收頻率 - + JT65 - + JT9+JT65 - + Tx messages to Rx Frequency window 發射信息發送到接收信息窗口 - + Gray1 - + Show DXCC entity and worked B4 status 顯示 DXCC 實體和曾經通聯狀態 - + Astronomical data 天文數據 - + List of Type 1 prefixes and suffixes 型態 1 前置碼與後綴清單 - + Settings... 設置... - + Local User Guide 本地使用者指南 - + Open log directory 開啟日誌檔案目錄 - + JT4 - + Message averaging 信息平均值 - + Enable averaging 平均值 - + Enable deep search 開啟深度搜尋 - + WSPR - + Echo Graph 回波圖 - + F8 - + Echo 回波 - + EME Echo mode EME 回波模式 - + ISCAT - + Fast Graph 快速圖 - + F9 - + &Download Samples ... 下載樣本&D ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>下載演示各種模式的示例音頻檔案.</p></body></html> - + MSK144 - + QRA64 - + Release Notes 發行說明 - + Enable AP for DX Call 開啟 AP 為 DX 呼叫 - + FreqCal - + Measure reference spectrum 測量參考頻譜 - + Measure phase response 測量相位回應 - + Erase reference spectrum 清除參考頻譜 - + Execute frequency calibration cycle 執行頻率校準週期 - + Equalization tools ... 均衡工具 ... - + WSPR-LF - + Experimental LF/MF mode 實驗性 LF/MF 模式 - + FT8 - - + + Enable AP 開啟 AP - + Solve for calibration parameters 修正參數的解算 - + Copyright notice 版權聲明 - + Shift+F1 - + Fox log 狐狸日誌 - + FT8 DXpedition Mode User Guide FT8 遠征模式使用者指南 - + Reset Cabrillo log ... 重置卡布里略日誌 ... - + Color highlighting scheme 色彩突顯機制 - + Contest Log 競賽日誌 - + Export Cabrillo log ... 匯出卡布里略日誌 ... - + Quick-Start Guide to WSJT-X 2.0 WSJT-X 2.0 快速入門指南 - + Contest log 競賽日誌 - + Erase WSPR hashtable 擦除 WSPR 哈希表 - + FT4 @@ -3550,8 +3560,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving 接收 @@ -3587,21 +3597,21 @@ list. The list can be maintained in Settings (F2). - - - - - + + + + - + - + - + - + - + + Message 信息 @@ -3627,22 +3637,22 @@ list. The list can be maintained in Settings (F2). - + Improper mode 模式不正確 - + File Open Error 檔案開啟出錯誤 - - - - + + + + Cannot open "%1" for append: %2 無法開啟 "%1" 用於附加: %2 @@ -3663,15 +3673,15 @@ list. The list can be maintained in Settings (F2). - - + + Single-Period Decodes 單週期解碼 - - + + Average Decodes 平均解碼 @@ -3692,7 +3702,7 @@ list. The list can be maintained in Settings (F2). - + Cannot open "%1" for writing: %2 無法開啟 "%1" 用於寫入: %2 @@ -3784,22 +3794,22 @@ list. The list can be maintained in Settings (F2). 沒有要打開的檔. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 請選擇其他發射頻率. WSJT-X 不會故意傳輸另一個模式在 WSPR 30米子波段上. - + WSPR Guard Band WSPR保護波段 - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 請選擇其他頻率. WSJT-X 不會運行狐狸模式在標準 FT8 波段. - + Fox Mode warning 狐狸模式警告 @@ -3813,12 +3823,12 @@ list. The list can be maintained in Settings (F2). "WSJT-X 的演演演算法, 原始碼, 外觀和感覺及相關程式, 和協定規格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版權 (C) 2001-2019 由以下一個或多個作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 開發組的其他成員." - + Last Tx: %1 最後發射: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3828,182 +3838,182 @@ To do so, check 'Special operating activity' and 設置高級選項卡上的 '歐洲 VHF 競賽'. - + Should you switch to ARRL Field Day mode? 是否應切換到 ARRL Field Day 模式? - + Should you switch to RTTY contest mode? 是否應切換到 RTTY 競賽模式? - - - - + + + + Add to CALL3.TXT 添加到 CALL3.TXT - + Please enter a valid grid locator 請輸入有效的網格定位 - + Cannot open "%1" for read/write: %2 無法開啟 "%1" 用於讀/寫: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 已經在 CALL3.TXT, 你想替換它嗎? - + Warning: DX Call field is empty. 警告: DX 呼號欄位為空. - + Log file error 日誌檔案錯誤 - + Cannot open "%1" 無法開啟 "%1" - + Error sending log to N1MM 將日誌傳送到 N1MM 時發生錯誤 - + Write returned "%1" 寫入返回 "%1" - + Stations calling DXpedition %1 呼叫遠征電臺 %1 - + Hound 獵犬 - + Tx Messages 發射信息 - - - + + + Confirm Erase 確認擦除 - + Are you sure you want to erase file ALL.TXT? 是否確實要擦除 ALL.Txt 檔案? - - + + Confirm Reset 確認重置 - + Are you sure you want to erase your contest log? 是否確實要擦除競賽日誌? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 執行此動作將移除目前競賽的所有通聯記錄. 它們將保留在 ADIF 日誌檔中, 但無法匯出到您的卡布里略日誌中. - + Cabrillo Log saved 卡布里略日誌已儲存 - + Are you sure you want to erase file wsjtx_log.adi? 是否確實要擦除 wsjtx_log.adi 檔案? - + Are you sure you want to erase the WSPR hashtable? 是否確定要擦除 WSPR 哈希表? - + VHF features warning VHF 功能警告 - + Tune digital gain 調諧數碼增益 - + Transmit digital gain 傳輸數碼增益 - + Prefixes 前綴 - + Network Error 網路錯誤 - + Error: %1 UDP server %2:%3 錯誤: %1 UDP 服務器 %2:%3 - + File Error 檔案錯誤 - + Phase Training Disabled 關閉階段訓練 - + Phase Training Enabled 開啟階段訓練 - + WD:%1m - - + + Log File Error 日誌檔案錯誤 - + Are you sure you want to clear the QSO queues? 是否要清除通聯佇列? @@ -4133,19 +4143,19 @@ UDP 服務器 %2:%3 無法啟動 OmniRig COM 伺服器 - - + + OmniRig: don't know how to set rig frequency OmniRig:不知道如何設置無線電設備頻率 - - + + OmniRig: timeout waiting for update from rig OmniRig:等待從無線電設備更新的超時 - + OmniRig COM/OLE error: %1 at %2: %3 (%4) OmniRig COM/OLE 錯誤: %1 at %2: %3 (%4) @@ -4161,9 +4171,8 @@ UDP 服務器 %2:%3 QObject - Invalid rig name - \ & / not allowed - 無效的無線電設備名稱 - \ & / 不允許 + 無效的無線電設備名稱 - \ & / 不允許 @@ -4298,6 +4307,36 @@ Error(%2): %3 Download Samples 下載樣本 + + + &Abort + + + + + &Refresh + + + + + &Details + + + + + Base URL for samples: + + + + + Only use HTTP: + + + + + Check this is you get SSL/TLS errors + + Input Error @@ -6176,114 +6215,104 @@ Right click for insert and delete options. main - + Fatal error 嚴重出錯誤 - + Unexpected fatal error 意外的嚴重出錯誤 - Where <rig-name> is for multi-instance support. - 使用 <rig-name> 用於多實例支援無線電設備. + 使用 <rig-name> 用於多實例支援無線電設備. - rig-name - 無線電設備名稱 + 無線電設備名稱 - Where <configuration> is an existing one. - 哪裡 <configuration> 是現有的. + 哪裡 <configuration> 是現有的. - configuration - 設定 + 設定 - Where <language> is <lang-code>[-<country-code>]. - 哪裡 <language> 是 <lang-code>[-<country-code>]. + 哪裡 <language> 是 <lang-code>[-<country-code>]. - language - 語言 + 語言 - Writable files in test location. Use with caution, for testing only. - 測試位置中的可寫檔案. 小心使用, 僅用於測試. + 測試位置中的可寫檔案. 小心使用, 僅用於測試. - Command line error - 命令列錯誤 + 命令列錯誤 + + + Command line help + 命令列説明 + + + Application version + 應用程式版本 - Command line help - 命令列説明 - - - - Application version - 應用程式版本 - - - Another instance may be running 另一個應用程式可能正在執行 - + try to remove stale lock file? 嘗試刪除陳舊的鎖檔? - + Failed to create a temporary directory 無法建立暫存目錄 - - + + Path: "%1" 目錄: "%1" - + Failed to create a usable temporary directory 無法建立可用的暫存目錄 - + Another application may be locking the directory 另一個應用程式可能正在鎖定目錄 - + Failed to create data directory 無法建立資料目錄 - + path: "%1" 目錄: "%1" - + Shared memory error 共用記憶體錯誤 - + Unable to create shared memory segment 無法建立共用記憶體段 From 26fd98491c9c1db0a2fe20bcc850828c56d41099 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 2 Jun 2020 14:28:12 +0100 Subject: [PATCH 039/520] Chinese & HK Chinese translation updates, tnx Sze-To, VR2UPU --- translations/wsjtx_zh.ts | 64 ++++++++++++++++++------------------- translations/wsjtx_zh_HK.ts | 64 ++++++++++++++++++------------------- 2 files changed, 64 insertions(+), 64 deletions(-) diff --git a/translations/wsjtx_zh.ts b/translations/wsjtx_zh.ts index 71dafc300..eda368a41 100644 --- a/translations/wsjtx_zh.ts +++ b/translations/wsjtx_zh.ts @@ -213,7 +213,7 @@ Date & Time(UTC) - 日期和时间(UTC) + 日期和时间(UTC) @@ -1321,7 +1321,7 @@ Error: %2 - %3 Date & Time(UTC) - 日期和时间 (UTC) + 日期和时间(UTC) @@ -1391,7 +1391,7 @@ Error: %2 - %3 Export ADIF Log File - 导出 ADIF 日记文件 + 导出 ADIF 日志文件 @@ -1401,7 +1401,7 @@ Error: %2 - %3 Export ADIF File Error - 导出 ADIF 日记文件错误 + 导出 ADIF 日志文件错误 @@ -1421,7 +1421,7 @@ Error: %2 - %3 Are you sure you want to erase file FoxQSO.txt and start a new Fox log? - 是否确实要擦除文件 file FoxQSO.txt 并启动新的 Fox log日志? + 是否确实要擦除 FoxQSO.txt 文件并启动新的 狐狸日志? @@ -2358,7 +2358,7 @@ Yellow when too low Check to generate "@1250 (SEND MSGS)" in Tx6. - 选择以生成 "@1250 (SEND MSGS)" in Tx6. + 选择以生成 "@1250 (SEND MSGS)" 在发射6. @@ -2568,14 +2568,14 @@ When not checked you can view the calibration results. <html><head/><body><p>Send this message in next Tx interval</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>在下一个发射间隔内发送此信息</p><p>双击以切换使用 Tx1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者)</p></body></html> + <html><head/><body><p>在下一个发射间隔内发送此信息</p><p>双击以切换使用 发射 1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者)</p></body></html> Send this message in next Tx interval 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) 在下一个发射间隔内发送此信息 -双击以切换使用 Tx1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者) +双击以切换使用 发射 1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者) @@ -2593,7 +2593,7 @@ Double click to toggle the use of the Tx1 message to start a QSO with a station Tx &2 - 发射&2 + 发射 &2 @@ -2603,19 +2603,19 @@ Double click to toggle the use of the Tx1 message to start a QSO with a station <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>立即切换到此发射信息</p><p>双击以切换使用 Tx1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者)</p></body></html> + <html><head/><body><p>立即切换到此发射信息</p><p>双击以切换使用 发射 1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者)</p></body></html> Switch to this Tx message NOW 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) 立即切换到此发射信息 -双击以切换使用 Tx1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者) +双击以切换使用 发射 1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者) Tx &1 - 发射&1 + 发射 &1 @@ -2652,7 +2652,7 @@ Double-click to reset to the standard 73 message Tx &3 - 发射&3 + 发射 &3 @@ -2662,7 +2662,7 @@ Double-click to reset to the standard 73 message <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>在下一个发射间隔内发送此信息</p><p>双击可在 Tx4 中的 RRR 和 RR73 信息之间切换 (不允许类型 2 复合呼叫持有者)</p><p>RR73 信息仅在您有理由相信不需要重复信息时才应使用</p></body></html> + <html><head/><body><p>在下一个发射间隔内发送此信息</p><p>双击可在 发射4 中的 RRR 和 RR73 信息之间切换 (不允许类型 2 复合呼叫持有者)</p><p>RR73 信息仅在您有理由相信不需要重复信息时才应使用</p></body></html> @@ -2670,7 +2670,7 @@ Double-click to reset to the standard 73 message Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required 在下一个发射间隔内发送此信息 -双击可在 Tx4 中的 RRR 和 RR73 信息之间切换 (不允许类型 2 复合呼叫持有者) +双击可在 发射4 中的 RRR 和 RR73 信息之间切换 (不允许类型 2 复合呼叫持有者) RR73 信息仅在您有理由相信不需要重复信息时才应使用 @@ -2681,7 +2681,7 @@ RR73 信息仅在您有理由相信不需要重复信息时才应使用 <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>立即切换到此发射信息</p><p>双击可在 Tx4 中的 RRR 和 RR73 信息之间切换 (不允许类型 2 复合呼叫持有者)</p><p>RR73 信息仅在您有理由相信不需要重复信息时才应使用</p></body></html> + <html><head/><body><p>立即切换到此发射信息</p><p>双击可在 发射 4 中的 RRR 和 RR73 信息之间切换 (不允许类型 2 复合呼叫持有者)</p><p>RR73 信息仅在您有理由相信不需要重复信息时才应使用</p></body></html> @@ -2689,13 +2689,13 @@ RR73 信息仅在您有理由相信不需要重复信息时才应使用 立即切换到此发射信息 -双击可在 Tx4 中的 RRR 和 RR73 信息之间切换 (不允许类型 2 复合呼叫持有者) +双击可在 发射 4 中的 RRR 和 RR73 信息之间切换 (不允许类型 2 复合呼叫持有者) RR73 信息仅在您有理由相信不需要重复信息时才应使用 Tx &4 - 发射&4 + 发射 &4 @@ -2717,7 +2717,7 @@ Double-click to reset to the standard 73 message Tx &5 - 发射&5 + 发射 &5 @@ -2742,7 +2742,7 @@ Double-click to reset to the standard 73 message Tx &6 - 发射&6 + 发射 &6 @@ -2993,7 +2993,7 @@ list. The list can be maintained in Settings (F2). S/N (dB) - + 信噪比(分贝) @@ -3178,7 +3178,7 @@ list. The list can be maintained in Settings (F2). None - + 不保存 @@ -3578,7 +3578,7 @@ list. The list can be maintained in Settings (F2). Scanned ADIF log, %1 worked before records created - 扫描 ADIF 日志, %1 在创建曾经通联记录 + 扫描 ADIF 日志, %1 创建曾经通联记录 @@ -3889,7 +3889,7 @@ is already in CALL3.TXT, do you wish to replace it? Error sending log to N1MM - 将日志发送到 N1MM 时出错 + 将日志发送到 N1MM 时发生错误 @@ -4797,22 +4797,22 @@ Error(%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>复合呼号类型2是那些前缀或后缀不包括在允许的决选名单中 (请参阅帮助-& gt; 加载项前缀和后缀).<p><p>此选项确定哪些生成的信息应包含完整类型2复合呼号, 而不是基本呼号.它仅适用于类型为2的复合呼号.</p><p>此选项控制用于应答 CQ 呼叫的信息的生成方式.生成的信息 6 (CQ) 和 5 (73) 将始终包含您的完整呼号.jt65 和 jt9 协议允许在您的完整呼叫中使用一些标准信息, 而牺牲了另一条信息, 如 dx 呼叫或您的定位器.</p><p>选择信息1省略 dx 呼号, 这在答复 cq 呼叫时可能是一个问题.选择信息3也会省略 dx 呼号, 此软件和其他软件的许多版本都不会提取报告.选择这两个都意味着你的完整呼号只会出现在你的信息 5 (73) 中, 所以你的 qso 伙伴我的日志是出错误的呼号.</p><p>这些选项都不是完美的, 信息3是最好的, 但请注意, 您的 qso 合作伙伴可能不会记录您发送的报告.</p></body></html> + <html><head/><body><p>复合呼号类型2是那些前缀或后缀不包括在允许的决选名单中 (请参阅帮助-& gt; 加载项前缀和后缀).<p><p>此选项确定哪些生成的信息应包含完整类型2复合呼号, 而不是基本呼号.它仅适用于类型为2的复合呼号.</p><p>此选项控制用于应答 CQ 呼叫的信息的生成方式.生成的信息 6 (CQ) 和 5 (73) 将始终包含您的完整呼号.jt65 和 jt9 协议允许在您的完整呼叫中使用一些标准信息, 而牺牲了另一条信息, 如 DX 呼叫或您的定位器.</p><p>选择信息1省略DX 呼号, 这在答复 CQ 呼叫时可能是一个问题.选择信息3也会省略 DX 呼号, 此软件和其他软件的许多版本都不会提取报告.选择这两个都意味着你的完整呼号只会出现在你的信息 5 (73) 中, 所以你的通联伙伴我的日志是出错误的呼号.</p><p>这些选项都不是完美的, 信息3是最好的, 但请注意, 您的通联合作伙伴可能不会记录您发送的报告.</p></body></html> Full call in Tx1 - 完整呼号在 Tx1 + 完整呼号在 发射1 Full call in Tx3 - 完整呼号在 Tx3 + 完整呼号在 发射3 Full call in Tx5 only - 完整呼号在 Tx5 + 完整呼号在 发射5 @@ -5162,7 +5162,7 @@ quiet period when decoding is done. <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> - <html><head/><body><p>电脑和无线电设备 CAT 接口 (通常是 "None") 之间使用的流量控制协议 (通常是 "无",但有些要求硬件).</p></body></html> + <html><head/><body><p>电脑和无线电设备 CAT 接口 之间使用的流量控制协议 (通常是 "None",但有些要求"硬件").</p></body></html> @@ -5300,7 +5300,7 @@ PTT的其它硬件接口. (not recommended but use if the wrong mode or bandwidth is selected). 不允许程序设置无线电设备模式 -(不建议使用但如果选择了出错误的模式 +(不建议使用但如果选择错误的模式 或带宽). @@ -5614,7 +5614,7 @@ Click, SHIFT+Click and, CRTL+Click to select items The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. - 当您发送73或自定义文字时,程序将弹出一个部分完成的日志QSO对话框. + 当您发送73或自定义文字时,程序将弹出一个部分完成的日志通联对话框. @@ -5940,7 +5940,7 @@ Right click for insert and delete options. Logbook of the World User Validation - LoTW 用户验证日志 + LoTW 用户验证 diff --git a/translations/wsjtx_zh_HK.ts b/translations/wsjtx_zh_HK.ts index a231351b0..97c652724 100644 --- a/translations/wsjtx_zh_HK.ts +++ b/translations/wsjtx_zh_HK.ts @@ -1321,7 +1321,7 @@ Error: %2 - %3 Date & Time(UTC) - 日期與時間 (UTC) + 日期與時間(UTC) @@ -1421,7 +1421,7 @@ Error: %2 - %3 Are you sure you want to erase file FoxQSO.txt and start a new Fox log? - 是否確實要擦除 FoxQSO.txt檔 並啟動新的Fox日誌? + 是否確實要擦除 FoxQSO.txt 檔案並啟動新的 狐狸日誌? @@ -1979,7 +1979,7 @@ Error(%2): %3 Enter this QSO in log - 在紀錄中輸入此通聯 + 在日誌中輸入此通聯 @@ -2358,7 +2358,7 @@ Yellow when too low Check to generate "@1250 (SEND MSGS)" in Tx6. - 選擇以產生 "@1250 (SEND MSGS)" in Tx6. + 選擇以產生 "@1250 (SEND MSGS)" 在發射6. @@ -2568,14 +2568,14 @@ When not checked you can view the calibration results. <html><head/><body><p>Send this message in next Tx interval</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>在下一個發射間隔中傳送此訊息</p><p>按兩下以切換使用 Tx1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者)<</p></body></html> + <html><head/><body><p>在下一個發射間隔中傳送此訊息</p><p>按兩下以切換使用 發射 1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者)<</p></body></html> Send this message in next Tx interval 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) 在下一個發射間隔中傳送此訊息 -按兩下以切換使用 Tx1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者) +按兩下以切換使用 發射 1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者) @@ -2593,7 +2593,7 @@ Double click to toggle the use of the Tx1 message to start a QSO with a station Tx &2 - 發射&2 + 發射 &2 @@ -2603,19 +2603,19 @@ Double click to toggle the use of the Tx1 message to start a QSO with a station <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>立即切換到此發射信息</p><p>按兩下以切換使用 Tx1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者)</p></body></html> + <html><head/><body><p>立即切換到此發射信息</p><p>按兩下以切換使用 發射 1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者)</p></body></html> Switch to this Tx message NOW 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) 立即切換到此發射信息 -按兩下以切換使用 Tx1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者) +按兩下以切換使用 發射 1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者) Tx &1 - 發射&1 + 發射 &1 @@ -2652,7 +2652,7 @@ Double-click to reset to the standard 73 message Tx &3 - 發射&3 + 發射 &3 @@ -2662,7 +2662,7 @@ Double-click to reset to the standard 73 message <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>在下一個發射間隔內傳送此信息</p><p>按兩下可在 Tx4 中的 RRR 和 RR73 信息之間切換 (不允許類型 2 複合呼叫持有者)</p><p>RR73 信息僅在您有理由相信不需要重複信息時才應使用</p></body></html> + <html><head/><body><p>在下一個發射間隔內傳送此信息</p><p>按兩下可在 發射4 中的 RRR 和 RR73 信息之間切換 (不允許類型 2 複合呼叫持有者)</p><p>RR73 信息僅在您有理由相信不需要重複信息時才應使用</p></body></html> @@ -2670,7 +2670,7 @@ Double-click to reset to the standard 73 message Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required 在下一個發射間隔內傳送此信息 -按兩下可在 Tx4 中的 RRR 和 RR73 信息之間切換 (不允許類型 2 複合呼叫持有者) +按兩下可在 發射4 中的 RRR 和 RR73 信息之間切換 (不允許類型 2 複合呼叫持有者) RR73 信息僅在您有理由相信不需要重複信息時才應使用 @@ -2681,7 +2681,7 @@ RR73 信息僅在您有理由相信不需要重複信息時才應使用 <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>立即切換到此發射信息</p><p>按兩下可在 Tx4 中的 RRR 和 RR73 信息之間切換 (不允許類型 2 複合呼叫持有者)</p><p>RR73 信息僅在您有理由相信不需要重複信息時才應使用</p></body></html> + <html><head/><body><p>立即切換到此發射信息</p><p>按兩下可在 發射 4 中的 RRR 和 RR73 信息之間切換 (不允許類型 2 複合呼叫持有者)</p><p>RR73 信息僅在您有理由相信不需要重複信息時才應使用</p></body></html> @@ -2689,13 +2689,13 @@ RR73 信息僅在您有理由相信不需要重複信息時才應使用 立即切換到此發射信息 -按兩下可在 Tx4 中的 RRR 和 RR73 信息之間切換 (不允許類型 2 複合呼叫持有者) +按兩下可在 發射 4 中的 RRR 和 RR73 信息之間切換 (不允許類型 2 複合呼叫持有者) RR73 信息僅在您有理由相信不需要重複信息時才應使用 Tx &4 - 發射&4 + 發射 &4 @@ -2717,7 +2717,7 @@ Double-click to reset to the standard 73 message Tx &5 - 發射&5 + 發射 &5 @@ -2742,7 +2742,7 @@ Double-click to reset to the standard 73 message Tx &6 - 發射&6 + 發射 &6 @@ -2993,7 +2993,7 @@ list. The list can be maintained in Settings (F2). S/N (dB) - + 信噪比(分貝) @@ -3178,7 +3178,7 @@ list. The list can be maintained in Settings (F2). None - + 不儲存 @@ -3937,7 +3937,7 @@ is already in CALL3.TXT, do you wish to replace it? Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - 執行此動作將移除目前競賽的所有通聯記錄. 它們將保留在 ADIF 日誌檔中, 但無法匯出到您的卡布里略日誌中. + 執行此動作將移除目前競賽的所有通聯記錄. 它們將保留在 ADIF 日誌檔案中, 但無法匯出到您的卡布里略日誌中. @@ -4797,22 +4797,22 @@ Error(%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>複合呼號類型2是那些首碼或後綴不包括在允許的決選名單中 (請參閱説明-& gt; 載入項目前綴和後綴).<p><p>這個選項確定哪些產生的資訊應包含完整類型2複合呼號, 而不是基本呼號.它僅適用於類型為2的複合呼號.</p><p>這個選項控制用於應答 CQ 呼叫的資訊產生方式.產生的資訊 6 (CQ) 和 5 (73) 將始終包含您的完整呼號.jt65 和 jt9 協定允許在您的完整呼叫中使用一些標準資訊, 而犧牲了另一條資訊, 如 dx 呼叫或您的定位.</p><p>選擇資訊1省略 DX 呼號, 這在答覆 CQ 呼叫時可能是一個問題.選擇資訊3也會省略 dx 呼號, 此軟體和其他軟體的許多版本都不會提取報告.選擇這兩個都意味著你的完整呼號只會出現在你的資訊 5 (73) 中, 所以你的 qso 夥伴我的日誌是出錯誤的呼號.</p><p>這些選項都不是完美的, 資訊 3 是最好的, 但請注意, 您的 qso 合作夥伴可能不會記錄您傳送的報告.</p></body></html> + <html><head/><body><p>複合呼號類型2是那些前綴或後綴不包括在允許的決選名單中 (請參閱説明-& gt; 載入項目前綴和後綴).<p><p>這個選項確定哪些產生的資訊應包含完整類型2複合呼號, 而不是基本呼號.它僅適用於類型為2的複合呼號.</p><p>這個選項控制用於應答 CQ 呼叫的資訊產生方式.產生的資訊 6 (CQ) 和 5 (73) 將始終包含您的完整呼號.jt65 和 jt9 協定允許在您的完整呼叫中使用一些標準資訊, 而犧牲了另一條資訊, 如 DX 呼叫或您的定位.</p><p>選擇資訊1省略 DX 呼號, 這在答覆 CQ 呼叫時可能是一個問題.選擇資訊3也會省略 DX 呼號, 此軟體和其他軟體的許多版本都不會提取報告.選擇這兩個都意味著你的完整呼號只會出現在你的資訊 5 (73) 中, 所以你的通聯夥伴我的日誌是出錯誤的呼號.</p><p>這些選項都不是完美的, 資訊 3 是最好的, 但請注意, 您的通聯合作夥伴可能不會記錄您傳送的報告.</p></body></html> Full call in Tx1 - 完整呼號在 Tx1 + 完整呼號在 發射1 Full call in Tx3 - 完整呼號在 Tx3 + 完整呼號在 發射3 Full call in Tx5 only - 完整呼號在 Tx5 + 完整呼號在 發射5 @@ -5162,7 +5162,7 @@ quiet period when decoding is done. <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> - <html><head/><body><p>電腦和無線電設備 CAT 接口 (通常是 "None") 之間使用的流量控制協議 (通常是 "無",但有些要求硬件).</p></body></html> + <html><head/><body><p>電腦和無線電設備 CAT 接口 之間使用的流量控制協議 (通常是 "None",但有些要求"硬件").</p></body></html> @@ -5300,7 +5300,7 @@ PTT的其它硬件接口. (not recommended but use if the wrong mode or bandwidth is selected). 不允許程序設置無線電設備模式 -(不建議使用但如果選擇了出錯誤的模式 +(不建議使用但如果選擇錯誤的模式 或帶寬). @@ -5614,7 +5614,7 @@ Click, SHIFT+Click and, CRTL+Click to select items The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. - 當您發送73或自定義文字時,程序將彈出一個部分完成的日誌QSO對話框. + 當您發送73或自定義文字時,程序將彈出一個部分完成的日誌通聯對話框. @@ -5662,7 +5662,7 @@ and DX Grid fields when a 73 or free text message is sent. Con&vert mode to RTTY - 把日誌記錄轉成RTTY模式&v + 把日誌記錄轉成&RTTY模式 @@ -5677,7 +5677,7 @@ and DX Grid fields when a 73 or free text message is sent. Log automatically (contesting only) - 日志自动记录 (仅限竞赛) + 日誌自記錄 (僅限競赛) @@ -5870,7 +5870,7 @@ Right click for insert and delete options. Rescan ADIF Log - 重新掃描 ADIF 紀錄 + 重新掃描 ADIF 日誌 @@ -5940,7 +5940,7 @@ Right click for insert and delete options. Logbook of the World User Validation - LoTW 使用者驗證紀錄 + LoTW 使用者驗證 From 27a3b4d8fa5975a8a7e4d1f7bd5d8ba4c8f22d0f Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 2 Jun 2020 21:17:31 +0100 Subject: [PATCH 040/520] Add pending translations as comments in language list and fix a defect in setting up new languages. --- CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e5dd58ba..d934946f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1107,12 +1107,14 @@ set (LANGUAGES ja # Japanese zh # Chinese zh_HK # Chinese per Hong Kong + #no # Norwegian + #sv # Swedish + #pt # Portuguese + #it # Italian ) foreach (lang_ ${LANGUAGES}) file (TO_NATIVE_PATH ${CMAKE_SOURCE_DIR}/translations/wsjtx_${lang_}.ts ts_) - if (EXISTS "${ts_}") - list (APPEND TS_FILES ${ts_}) - endif () + list (APPEND TS_FILES ${ts_}) set (qt_translations_ "${QT_TRANSLATIONS_DIR}/qtbase_${lang_}.qm") if (EXISTS "${qt_translations_}") add_custom_command ( From 220cbc840a6f780d2a7be8866cad93265194ac9f Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 2 Jun 2020 22:44:14 +0100 Subject: [PATCH 041/520] Update UDP Status message documentation This for consistency, I suspect inserting a value into the special operations type enumeration will cause external programs some backwards compatibility issues. We should consider reverting this and adding the new value to the end. --- Network/NetworkMessage.hpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Network/NetworkMessage.hpp b/Network/NetworkMessage.hpp index 8055e2a49..3c5c9268f 100644 --- a/Network/NetworkMessage.hpp +++ b/Network/NetworkMessage.hpp @@ -194,8 +194,9 @@ * 2 -> EU VHF * 3 -> FIELD DAY * 4 -> RTTY RU - * 5 -> FOX - * 6 -> HOUND + * 5 -> WW DIGI + * 6 -> FOX + * 7 -> HOUND * * The Frequency Tolerance and T/R period fields may have a value * of the maximum quint32 value which implies the field is not From 3f95e811eb6a278b2ff61fde4f413ebb37b16830 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 3 Jun 2020 21:27:57 +0100 Subject: [PATCH 042/520] Updated Catalan UI translation, tnx Xavi, EA3W --- translations/wsjtx_ca.ts | 110 +++++++++++++++++++-------------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index ff09d0797..6f8d5d58a 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -21,7 +21,7 @@ Are you sure you want to delete the %n selected QSO(s) from the log? sorry i don't understand how to fix this - Segur que vols esborrar els %n QSO's seleccionats del registre ? + Segur que vols esborrar els %n QSO's seleccionats del log ? @@ -251,7 +251,7 @@ Contest Log - Registre de Concurs + Log de Concurs @@ -604,7 +604,7 @@ Format: Save Directory - Desa el directori + Directori de Guardar @@ -1279,7 +1279,7 @@ Error: %2 - %3 Cabrillo Log (*.cbr) - Registre Cabrillo (*.cbr) + Log Cabrillo (*.cbr) @@ -1364,7 +1364,7 @@ Error: %2 - %3 Fox Log - Registre Guineu + Log Fox @@ -1406,7 +1406,7 @@ Error: %2 - %3 ADIF Log (*.adi) - Registre ADIF (*.adi) + Log ADIF (*.adi) @@ -1431,7 +1431,7 @@ Error: %2 - %3 Are you sure you want to erase file FoxQSO.txt and start a new Fox log? - Estàs segur que vols esborrar el fitxer FoxQSO.txt i començar un nou registre de FOX (Guineu)? + Estàs segur que vols esborrar el fitxer FoxQSO.txt i començar un log nou de FOX ? @@ -1885,7 +1885,7 @@ Error: %2 - %3 Log file error - Error al fitxer de registre + Error al fitxer de log @@ -1989,7 +1989,7 @@ Error(%2): %3 Enter this QSO in log - Introdueix aquest QSO al registre + Introdueix aquest QSO al log @@ -2004,7 +2004,7 @@ Error(%2): %3 &Stop - &Atura + &Aturar @@ -2029,7 +2029,7 @@ Error(%2): %3 &Erase - &Esborra + &Esborrar @@ -2155,7 +2155,7 @@ en Groc quan és massa baix Search for callsign in database - Buscar el indicatiu a la base de dades + Buscar l'indicatiu a la base de dades @@ -2441,7 +2441,7 @@ No està disponible per als titulars de indicatiu no estàndard. Fox - Guineu + Fox @@ -3138,7 +3138,7 @@ La llista es pot mantenir a la configuració (F2). Configuration - Configuració + Ajustos @@ -3178,12 +3178,12 @@ La llista es pot mantenir a la configuració (F2). Shift+F6 - Shift+F6 + Majúscules+F6 Delete all *.wav && *.c2 files in SaveDir - Esborra tots els fitxers *.wav && *.c2 del directori Guardar + Esborrar tots els fitxers *.wav i *.c2 @@ -3238,12 +3238,12 @@ La llista es pot mantenir a la configuració (F2). Erase ALL.TXT - Esborrar ALL.TXT + Esborrar el fitxer ALL.TXT Erase wsjtx_log.adi - Esborrar wsjt_lg.adi + Esborrar el fitxer wsjt_log.adi @@ -3258,7 +3258,7 @@ La llista es pot mantenir a la configuració (F2). Prompt me to log QSO - Inclòure el QSO al registre + Inclòure el QSO al log @@ -3295,7 +3295,7 @@ La llista es pot mantenir a la configuració (F2). Runaway Tx watchdog - Vigilant de fugida TX + Seguretat de TX @@ -3355,7 +3355,7 @@ La llista es pot mantenir a la configuració (F2). Open log directory - Obre el directori del registre + Obre el directori del log @@ -3420,7 +3420,7 @@ La llista es pot mantenir a la configuració (F2). &Download Samples ... - &Descarregueu mostres ... + &Descarrega mostres ... @@ -3511,12 +3511,12 @@ La llista es pot mantenir a la configuració (F2). Shift+F1 - Shift+F1 + Majúscules+F1 Fox log - Log Guineu + Log Fox @@ -3526,7 +3526,7 @@ La llista es pot mantenir a la configuració (F2). Reset Cabrillo log ... - Restableix el registre de Cabrillo ... + Restableix el log de Cabrillo ... @@ -3536,12 +3536,12 @@ La llista es pot mantenir a la configuració (F2). Contest Log - Registre de Concurs + Log de Concurs Export Cabrillo log ... - Exporta el registre de Cabrillo ... + Exporta el log de Cabrillo ... @@ -3551,7 +3551,7 @@ La llista es pot mantenir a la configuració (F2). Contest log - Registre de Concurs + Log de Concurs @@ -3583,12 +3583,12 @@ La llista es pot mantenir a la configuració (F2). Error Scanning ADIF Log - Error d'escaneig del registre ADIF + Error d'escaneig del log ADIF Scanned ADIF log, %1 worked before records created - Registre ADIF escanejat, %1 funcionava abans de la creació de registres + Log ADIF escanejat, %1 funcionava abans de la creació de registres @@ -3828,12 +3828,12 @@ La llista es pot mantenir a la configuració (F2). Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - Tria una altra freqüència de treball. WSJT-X no funcionarà en mode Guineu a les sub-bandes FT8 estàndard. + Tria una altra freqüència de treball. WSJT-X no funcionarà en mode Fox a les sub-bandes FT8 estàndard. Fox Mode warning - Avís de mode Guineu + Avís de mode Fox @@ -3894,7 +3894,7 @@ ja és a CALL3.TXT, vols substituir-lo ? Log file error - Error al fitxer de registre + Error al fitxer de log @@ -3904,7 +3904,7 @@ ja és a CALL3.TXT, vols substituir-lo ? Error sending log to N1MM - Error al enviar el registre a N1MM + Error al enviar el log a N1MM @@ -3947,17 +3947,17 @@ ja és a CALL3.TXT, vols substituir-lo ? Are you sure you want to erase your contest log? - Estàs segur que vols esborrar el registre del concurs ? + Estàs segur que vols esborrar el log del concurs ? Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - Si fas això, suprimiràs tots els registres de QSO del concurs actual. Es conservaran al fitxer de registre ADIF, però no es podran exportar al registre de Cabrillo. + Si fas això, suprimiràs tots els registres de QSO del concurs actual. Es conservaran al fitxer de log ADIF, però no es podran exportar al log de Cabrillo. Cabrillo Log saved - Registre Cabrillo desat + Log Cabrillo desat @@ -4025,7 +4025,7 @@ UDP server %2:%3 Log File Error - Error al fitxer de registre + Error al fitxer de log @@ -4537,7 +4537,7 @@ Error(%2): %3 Band - Manda + Banda @@ -4922,7 +4922,7 @@ Error(%2): %3 Tx watchdog: - TX vigilant: + Seguretat de TX: @@ -5521,7 +5521,7 @@ channels; then you will usually want to select mono or both here. Selecciona el canal d'àudio que s'utilitza per a la transmissió. A menys de que tinguis diversos equips connectats a diferents -canals, llavors normalment voldras seleccionar mono o +canals, llavors normalment voldràs seleccionar mono o els dos canals. @@ -5533,7 +5533,7 @@ els dos canals. Save Directory - Desa el directori + Directori de Guardar @@ -5644,7 +5644,7 @@ Fes clic, MAJÚ + clic i, CTRL+clic per seleccionar els elements. Reporting and logging settings - Configuració d'informes i registre + Configuració d'informes i registres @@ -5654,7 +5654,7 @@ Fes clic, MAJÚ + clic i, CTRL+clic per seleccionar els elements. The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. - El programa apareixerà un diàleg de QSO de registre parcialment completat quan envieu un missatge de text 73 o lliure. + El programa apareixerà un diàleg de QSO de registre parcialment completat quan enviïs un missatge de text 73 o lliure. @@ -5672,8 +5672,8 @@ Fes clic, MAJÚ + clic i, CTRL+clic per seleccionar els elements. saved by this program. Check this option to save the sent and received reports in the comments field. - Alguns programes de registre no acceptaran el tipus d’informes -desat per aquest programa. + Alguns programes de log no acceptaran el tipus d’informes +desats per aquest programa. Comprova aquesta opció per desar els informes enviats i rebuts al camp de comentaris. @@ -5687,17 +5687,17 @@ al camp de comentaris. Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. Marca aquesta opció per a forçar l'eliminació dels camps -Crida de DX i Locator DX quan s’envia un missatge de text 73 o lliure. +Indicatiu DX i Locator DX quan s’envia un missatge de text 73 o lliure. Clear &DX call and grid after logging - Buida les graelles Crida i &DX després del registre + Buida les graelles Indicatiu DX i Locator&DX després del registre <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> - <html><head/><body><p>Alguns programes de registre no accepten noms del mode WSJT-X.</p></body></html> + <html><head/><body><p>Alguns programes de log no accepten noms del mode WSJT-X.</p></body></html> @@ -5717,7 +5717,7 @@ Crida de DX i Locator DX quan s’envia un missatge de text 73 o lliure. Log automatically (contesting only) - Registre automàtic (només concurs) + Log automàtic (només concurs) @@ -5838,7 +5838,7 @@ per avaluar la propagació i el rendiment del sistema. Default frequencies and band specific station details setup - Configuració predeterminada de les freqüències i banda amb detalls específics de l'estació + Configuració predeterminada de les freqüències i bandes amb detalls específics de l'estació @@ -5910,7 +5910,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. Rescan ADIF Log - Escaneig de nou el registre ADIF + Escaneig de nou el log ADIF @@ -5970,7 +5970,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> - <html><head/><body><p>URL de l'últim fitxer de dades de dates i hores de càrrega de ARRL LotW que s'utilitza per ressaltar descodificacions d'estacions que se sap que carreguen el seu arxiu de registre a LotW.</p></body></html> + <html><head/><body><p>URL de l'últim fitxer de dades de dates i hores de càrrega de ARRL LotW que s'utilitza per ressaltar descodificacions d'estacions que se sap que carreguen el seu arxiu de log a LotW.</p></body></html> @@ -6070,12 +6070,12 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> - <html><head/><body><p>Mode FT8 DXpedition: operador Guineu (DXpedition).</p></body></html> + <html><head/><body><p>Mode FT8 DXpedition: operador Fox (DXpedition).</p></body></html> Fox - Guineu + Fox From f5a284fe544b2a4157ee2664aac2fd15cdcf1bba Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 4 Jun 2020 16:28:49 +0100 Subject: [PATCH 043/520] New proposed Danish UI translation from Michael, 5P1KZX --- CMakeLists.txt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d934946f8..45c08822b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1097,20 +1097,21 @@ add_custom_target (etags COMMAND ${ETAGS} -o ${CMAKE_SOURCE_DIR}/TAGS -R ${sourc # Qt i18n - always include the country generic if any regional variant is included set (LANGUAGES + ca # Catalan + #da # Danish en # English (we need this to stop # translation loaders loading the # second preference UI languge, it # doesn't need to be populated) en_GB # English UK es # Spanish - ca # Catalan + #it # Italian ja # Japanese + #no # Norwegian + #pt # Portuguese + #sv # Swedish zh # Chinese zh_HK # Chinese per Hong Kong - #no # Norwegian - #sv # Swedish - #pt # Portuguese - #it # Italian ) foreach (lang_ ${LANGUAGES}) file (TO_NATIVE_PATH ${CMAKE_SOURCE_DIR}/translations/wsjtx_${lang_}.ts ts_) From 1b26218897dddbe278e1bc5efc5d7b5e936b4e2d Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 4 Jun 2020 20:08:07 +0100 Subject: [PATCH 044/520] Italian UI translation, tnx Marco, PY1ZRJ --- CMakeLists.txt | 1 + translations/wsjtx_it.ts | 6306 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 6307 insertions(+) create mode 100644 translations/wsjtx_it.ts diff --git a/CMakeLists.txt b/CMakeLists.txt index 45c08822b..4139dd9fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1112,6 +1112,7 @@ set (LANGUAGES #sv # Swedish zh # Chinese zh_HK # Chinese per Hong Kong + it # Italian ) foreach (lang_ ${LANGUAGES}) file (TO_NATIVE_PATH ${CMAKE_SOURCE_DIR}/translations/wsjtx_${lang_}.ts ts_) diff --git a/translations/wsjtx_it.ts b/translations/wsjtx_it.ts new file mode 100644 index 000000000..925c411ee --- /dev/null +++ b/translations/wsjtx_it.ts @@ -0,0 +1,6306 @@ + + + + + AbstractLogWindow + + + &Delete ... + &Elimina ... + + + + AbstractLogWindow::impl + + + Confirm Delete + Confermi Elimina + + + + Are you sure you want to delete the %n selected QSO(s) from the log? + + Sei sicuro di voler cancellare il %n selezionato QSO dal log? + Sei sicuro di voler cancellare i %n selezionati QSO dal log? + + + + + Astro + + + + Doppler tracking + Tracciamento Doppler + + + + <html><head/><body><p>One station does all Doppler shift correction, their QSO partner receives and transmits on the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + <html><head/><body><p>Una stazione fa tutta tutta la correzione Doppler shift, il loro partner di QSO riceve e trasmette sulla frequenza di sked.</p><p>Se il rig not accetta i comandi CAT QSY mentre è in trasmissione viene applicata una singola correzione per l'intero periodo transmesso.</p></body></html> + + + + Full Doppler to DX Grid + Doppler Pieno alal Griglia DX + + + + <html><head/><body><p>Transmit takes place on sked frequency and receive frequency is corrected for own echoes. </p><p>This mode can be used for calling CQ, or when using Echo mode.</p></body></html> + <html><head/><body><p>La trasmissione ha luogo sulla frequenza di sked e la frequenza di ricezione viene corretta per i propri echi. </p><p>Questo modo può essere usato per chiamare CQ o quando si usa il modo Eco.</p></body></html> + + + + Own Echo + Proprio Eco + + + + <html><head/><body><p>Both stations correct for Doppler shift such that they would be heard on the moon at the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p><p>Use this option also for Echo mode.</p></body></html> + <html><head/><body><p>Entrambe le stazioni correggono per lo shift Doppler in modo che esse sarebbero ascoltate sulla luna alla frequenza di sked.</p><p>Se il rig non accetta i comandi CAT QSY durante la trasmissione una correzione singola viene applicata per l'intero periodo di trasmissione.</p><p>Usare questa opzione anche per il modo Eco.</p></body></html> + + + + Constant frequency on Moon + Frequenza costante sulla Luna + + + + <html><head/><body><p>DX station announces their TX Freq, which is entered as the Sked Freq. Correction applied to RX and TX so you appear on the DX's station's own echo Freq.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + <html><head/><body><p>La stazione DX annuncia la sua TX Freq, la quale è inserita come frequenza di Sked La correzione à applicata a RX e TX così appari sulla propria frequenza di Eco della stazione DX</p><p>Se il rig non accetta i comandi CAT QSY durante la trasmissione una correzione singola viene applicata per l'intero periodo di trasmissione.</p></body></html> + + + + On DX Echo + Su Eco DX + + + + <html><head/><body><p>Tune radio manually and select this mode to put your echo on the same frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + <html><head/><body><p>Sintonizza la radio manualmente e seleziona questo modoper mettere il tuo ecosulla stessa frequenza.</p><p>Se il rig non accetta i comandi CAT QSY durante la trasmissione una correzione singola viene applicata per l'intero periodo di trasmissione.</p></body></html> + + + + Call DX + Chiama DX + + + + <html><head/><body><p>No Doppler shift correction is applied. This may be used when the QSO partner does full Doppler correction to your grid square.</p></body></html> + <html><head/><body><p>Non è applicata correzione Doppler shift Questo può essere usato quando il partner in QSO esegue una correzione completa Doppler per il tuo grid square.</p></body></html> + + + + None + Nessuna + + + + Sked frequency + Frequenza di Sked + + + + + 0 + 0 + + + + Rx: + Rx: + + + + Tx: + Tx: + + + + <html><head/><body><p>Press and hold the CTRL key to adjust the sked frequency manually with the rig's VFO dial or enter frequency directly into the band entry field on the main window.</p></body></html> + <html><head/><body><p>Premi e mantieni premuto il tasto CTRL per aggiustare la frequenza di sked manualmente con la manopola del VFO del rig o inserisci la frequenza direttamente nel campo di inserimento banda nella finestra principale.</p></body></html> + + + + Astro Data + Dati Astro + + + + Astronomical Data + Dati Astronomici + + + + Doppler Tracking Error + Errore Tracciamento Doppler + + + + Split operating is required for Doppler tracking + Operazione Split richiesta per il tracciamento Doppler + + + + Go to "Menu->File->Settings->Radio" to enable split operation + Vai a "Menu->File->Configurazione->Radio" per abilitare l'operazione split + + + + Bands + + + Band name + Nome Banda + + + + Lower frequency limit + Limite frequenza minore + + + + Upper frequency limit + Limite frequenza superiore + + + + Band + Banda + + + + Lower Limit + Limite inferiore + + + + Upper Limit + Limite superiore + + + + CAboutDlg + + + About WSJT-X + Informazioni su WSJT-X + + + + OK + OK + + + + CPlotter + + + &Set Rx && Tx Offset + &Imposta Rx && Tx Offset + + + + CabrilloLog + + + Freq(MHz) + Freq(MHz) + + + + Mode + Modo + + + + Date & Time(UTC) + Data & Orario(UTC) + + + + Call + Nominativo + + + + Sent + Inviato + + + + Rcvd + Ricevuto + + + + Band + Banda + + + + CabrilloLogWindow + + + Contest Log + Log del Contest + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + <html><head/><body><p>Fare clic con il tasto destro qui per le azioni disponibili.</p></body></html> + + + + Right-click here for available actions. + Fare clic con il tasto destro qui per le azioni disponibili. + + + + CallsignDialog + + + Callsign + Indicativo + + + + ColorHighlighting + + + + + + + + + + + + + + + + + + K1ABC + K1ABC + + + + CQ in message + CQ nel messaggio + + + + My Call in message + Il mio indicativo nel messaggio + + + + Transmitted message + Messaggio Trasmesso + + + + New DXCC + Nuovo DXCC + + + + New Grid + Nuova Griglia + + + + New DXCC on Band + Nuovo DXCC sulla Banda + + + + New Call + Nuovo Indicativo + + + + New Grid on Band + Nuova Griglia su Banda + + + + New Call on Band + Nuovo indicativo sulla Banda + + + + Uploads to LotW + Carica su LotW + + + + New Continent + Nuovo Continente + + + + New Continent on Band + Nuovo Continente sulla Banda + + + + New CQ Zone + Nuova Zona CQ + + + + New CQ Zone on Band + Nuovo Zona CQ sulla Banda + + + + New ITU Zone + Nuova Zona ITU + + + + New ITU Zone on Band + Nuovo Zona ITU sulla Banda + + + + Configuration::impl + + + + + &Delete + &Elimina + + + + + &Insert ... + &Inserisci ... + + + + Failed to create save directory + Impossibile creare la directory di salvataggio + + + + path: "%1% + Percorso: "%1" + + + + Failed to create samples directory + Impossibile creare la directory dei campioni + + + + path: "%1" + Percorso: "%1" + + + + &Load ... + &Carica ... + + + + &Save as ... + &Salva come ... + + + + &Merge ... + &Unisci ... + + + + &Reset + &Ripristina + + + + Serial Port: + Porta Seriale: + + + + Serial port used for CAT control + Porta Seriale usata per il controllo CAT + + + + Network Server: + Server di rete: + + + + Optional hostname and port of network service. +Leave blank for a sensible default on this machine. +Formats: + hostname:port + IPv4-address:port + [IPv6-address]:port + Nome host e porta del servizio di rete opzionali. +Lascia vuoto per un'impostazione predefinita ragionevole su questa macchina. +Formati: + hostname: porta + IPv4-indirizzo: porta + [IPv6-address]: porta + + + + USB Device: + Dispositivo USB: + + + + Optional device identification. +Leave blank for a sensible default for the rig. +Format: + [VID[:PID[:VENDOR[:PRODUCT]]]] + Identificazione del dispositivo opzionale. +Lasciare vuoto per un valore predefinito ragionevole per il rig. +Formato: + [VID [: PID [: VENDOR [: PRODOTTI]]]] + + + + Invalid audio input device + Dispositivo di input audio non valido + + + + Invalid audio out device + Dispositivo di uscita audio non valido + + + + Invalid PTT method + Metodo PTT non valido + + + + Invalid PTT port + Porta PTT non valida + + + + + Invalid Contest Exchange + Scambio Contest non valido + + + + You must input a valid ARRL Field Day exchange + È necessario inserire uno scambioField Day ARRL valido + + + + You must input a valid ARRL RTTY Roundup exchange + È necessario inserire uno scambio Roundup RTTY ARRL valido + + + + Reset Decode Highlighting + Ripristina l'evidenziazione della decodifica + + + + Reset all decode highlighting and priorities to default values + Ripristina tutti i valori di evidenziazione e priorità della decodifica sui valori predefiniti + + + + WSJT-X Decoded Text Font Chooser + Selezionatore font testo decodificato WSJT-X + + + + Load Working Frequencies + Carica frequenze di lavoro + + + + + + Frequency files (*.qrg);;All files (*.*) + File di frequenza (*.qrg);;Tutti i file (*.*) + + + + Replace Working Frequencies + Sostituisci le frequenze di lavoro + + + + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? + Sei sicuro di voler scartare le tue attuali frequenze di lavoro e sostituirle con quelle caricate? + + + + Merge Working Frequencies + Unisci le frequenze di lavoro + + + + + + Not a valid frequencies file + Non è un file di frequenze valido + + + + Incorrect file magic + Magic file errato + + + + Version is too new + La versione è troppo nuova + + + + Contents corrupt + Contenuto corrotto + + + + Save Working Frequencies + Salva frequenze di lavoro + + + + Only Save Selected Working Frequencies + Salva solo le frequenze di lavoro selezionate + + + + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. + Sei sicuro di voler salvare solo le frequenze di lavoro che sono attualmente selezionate? Fai clic su No per salvare tutto. + + + + Reset Working Frequencies + Ripristina frequenze di lavoro + + + + Are you sure you want to discard your current working frequencies and replace them with default ones? + Sei sicuro di voler scartare le tue attuali frequenze di lavoro e sostituirle con quelle predefinite? + + + + Save Directory + Salva il direttorio + + + + AzEl Directory + AzEl Direttorio + + + + Rig control error + Errore di controllo rig + + + + Failed to open connection to rig + Impossibile aprire la connessione al rig + + + + Rig failure + Rig fallito + + + + DXLabSuiteCommanderTransceiver + + + Failed to connect to DX Lab Suite Commander + + Impossibile connettersi al DX Lab Suite Commander + + + + + DX Lab Suite Commander didn't respond correctly reading frequency: + DX Lab Suite Commander non ha risposto correttamente alla frequenza di lettura: + + + + DX Lab Suite Commander sent an unrecognised TX state: + DX Lab Suite Commander ha inviato uno stato TX non riconosciuto: + + + + DX Lab Suite Commander didn't respond correctly polling TX status: + DX Lab Suite Commander non ha risposto correttamente al polling dello stato TX: + + + + DX Lab Suite Commander rig did not respond to PTT: + DX Lab Suite Commander rig non ha risposto al PTT: + + + + DX Lab Suite Commander didn't respond correctly polling frequency: + DX Lab Suite Commander non ha risposto correttamente alla frequenza di polling: + + + + DX Lab Suite Commander didn't respond correctly polling TX frequency: + DX Lab Suite Commander non ha risposto correttamente alla frequenza di polling TX: + + + + DX Lab Suite Commander sent an unrecognised split state: + DX Lab Suite Commander ha inviato uno stato di divisione non riconosciuto: + + + + DX Lab Suite Commander didn't respond correctly polling split status: + DX Lab Suite Commander non ha risposto correttamente allo stato di suddivisione del polling: + + + + DX Lab Suite Commander sent an unrecognised mode: " + DX Lab Suite Commander ha inviato una modalità non riconosciuta: " + + + + DX Lab Suite Commander didn't respond correctly polling mode: + DX Lab Suite Commander non ha risposto correttamente alla modalità di polling: + + + + DX Lab Suite Commander send command failed + + Comando di invio del comando DX Lab Suite non riuscito + + + + + DX Lab Suite Commander failed to send command "%1": %2 + + DX Lab Suite Commander non è riuscito a inviare il comando "%1": %2 + + + + + DX Lab Suite Commander send command "%1" read reply failed: %2 + + Comando di invio DX Lab Suite Comando "%1" lettura risposta non riuscita: %2 + + + + + DX Lab Suite Commander retries exhausted sending command "%1" + DX Lab Suite Commander ripete il comando di invio esaurito "%1" + + + + DX Lab Suite Commander sent an unrecognized frequency + DX Lab Suite Commander ha inviato una frequenza non riconosciuta + + + + DecodeHighlightingListView + + + &Foreground color ... + &Colore di primo piano ... + + + + Choose %1 Foreground Color + Scegli %1 colore di primo piano + + + + &Unset foreground color + &Annullare colore di primo piano + + + + &Background color ... + &Colore di sfondo ... + + + + Choose %1 Background Color + Scegli %1 colore di sfondo + Scegli.%1 colore di sfondo + + + + U&nset background color + A&nnullare colore di sfondo + + + + &Reset this item to defaults + &Reimposta questa voce ai valori predefiniti + + + + DecodeHighlightingModel + + + CQ in message + CQ nel messaggio + + + + My Call in message + Il mio indicativo nel messaggio + + + + Transmitted message + Messaggio Trasmesso + + + + New DXCC + Nuovo DXCC + + + + New DXCC on Band + Nuovo DXCC sulla Banda + + + + New Grid + Nuova Griglia + + + + New Grid on Band + Nuova Griglia su Banda + + + + New Call + Nuovo Indicativo + + + + New Call on Band + Nuovo indicativo sulla Banda + + + + New Continent + Nuovo Continente + + + + New Continent on Band + Nuovo Continente sulla Banda + + + + New CQ Zone + Nuova Zona CQ + + + + New CQ Zone on Band + Nuovo Zona CQ sulla Banda + + + + New ITU Zone + Nuova Zona ITU + + + + New ITU Zone on Band + Nuovo Zona ITU sulla Banda + + + + LoTW User + Utente LoTW + + + + f/g unset + f/g non impostato + + + + b/g unset + b/g non impostato + + + + Highlight Type + Evidenzia Tipo + + + + Designer + + + &Delete + &Elimina + + + + &Insert ... + &Inserisci ... + + + + Insert &after ... + Inserisci &dopo ... + + + + Import Palette + Importa Tavolozza + + + + + Palettes (*.pal) + Tavolozza (*.pal) + + + + Export Palette + Esporta Tavolozza + + + + Dialog + + + Gray time: + Orario Grayline: + + + + Directory + + + File + File + + + + Progress + Avanzamento + + + + + URL Error + Errore URL + + + + + Invalid URL: +"%1" + URL non valido: +"%1" + + + + + + + + + + JSON Error + Errore JSON + + + + Contents file syntax error %1 at character offset %2 + Errore di sintassi del file di contenuti %1 all'offset del carattere %2 + + + + Contents file top level must be a JSON array + Il file di livello superiore deve essere un array JSON + + + + File System Error + Errore File System + + + + Failed to open "%1" +Error: %2 - %3 + Impossibile aprire il file: +"%1" +Errore: %2 - %3 + + + + Contents entries must be a JSON array + Le voci di contenuto devono essere una matrice JSON + + + + Contents entries must have a valid type + Le voci di contenuto devono avere un tipo valido + + + + Contents entries must have a valid name + Le voci di contenuto devono avere un nome valido + + + + Contents entries must be JSON objects + Le voci del contenuto devono essere oggetti JSON + + + + Contents directories must be relative and within "%1" + Le directory dei contenuti devono essere relative e entro "%1" + + + + Network Error + Errore di Rete + + + + Authentication required + Autenticazione richiesta + + + + DisplayText + + + &Erase + &Cancellare + + + + EchoGraph + + + + Echo Graph + Grafico Eco + + + + <html><head/><body><p>Compression factor for frequency scale</p></body></html> + <html><head/><body><p>Fattore di compressione per scala di frequenza</p></body></html> + <html><head/><body><p>Compression factor for frequency scale</p></body></html> + + + + Bins/Pixel + Bins/Pixel + + + + Gain + Guadagno + + + + <html><head/><body><p>Echo spectrum gain</p></body></html> + <html><head/><body><p>Guadagno dello spettro dell'Eco</p></body></html> + + + + Zero + Zero + + + + <html><head/><body><p>Echo spectrum zero</p></body></html> + <html><head/><body><p>Zero spettro Eco</p></body></html> + + + + <html><head/><body><p>Smoothing of echo spectrum</p></body></html> + <html><head/><body><p>Livellamento dello spettro dell'Eco</p></body></html> + + + + Smooth + Liscio + + + + <html><head/><body><p>Number of echo transmissions averaged</p></body></html> + <html><head/><body><p>Numero medio di trasmissioni di Eco</p></body></html> + + + + N: 0 + N: 0 + + + + <html><head/><body><p>Click to cycle through a sequence of colors and line widths.</p></body></html> + <html><head/><body><p>Fare clic per scorrere una sequenza di colori e larghezze di linea.</p></body></html> + + + + Colors + Colori + + + + EmulateSplitTransceiver + + + Emulated split mode requires rig to be in simplex mode + La modalità split emulato richiede che il rig sia in modalità simplex + + + + EqualizationToolsDialog::impl + + + Phase + Fase + + + + + Freq (Hz) + Freq (Hz) + + + + Phase (Π) + Fase (Π) + + + + Delay (ms) + Ritardo (ms) + + + + Measured + Misurato + + + + Proposed + Proposto + + + + Current + Corrente + + + + Group Delay + Ritardo di Gruppo + + + + Amplitude + Ampiezza + + + + Relative Power (dB) + Potenza Relativa (dB) + + + + Reference + Riferimento + + + + Phase ... + Fase ... + + + + Refresh + Ricaricare + + + + Discard Measured + Elimina Misure + + + + ExistingNameDialog + + + Configuration to Clone From + Configurazione da cui clonare + + + + &Source Configuration Name: + &Nome configurazione sorgente: + + + + ExportCabrillo + + + Dialog + Dialogo + + + + Location: + Posizione: + + + + SNJ + SNJ + + + + Contest: + Contest: + + + + ARRL-RTTY + ARRL-RTTY + + + + Callsign: + Nominativo: + + + + Category-Operator: + Categoria Operatore: + + + + SINGLE-OP + Singolo OP + + + + Category-Transmitter: + Categoria Trasmettitore: + + + + ONE + UNO + + + + Category-Power: + Categoria Potenza: + + + + LOW + BASSA + + + + Category-Assisted: + Categoria Assistita: + + + + NON-ASSISTED + NON ASSISTITA + + + + Category-Band: + Categoria di Banda: + + + + ALL + TUTTO + + + + Claimed-Score: + Punteggio Dichiarato: + + + + Operators: + Operatori: + + + + Club: + Club: + + + + Name: + Nome: + + + + + Address: + Indirizzo: + + + + Save Log File + Salva File di Log + + + + Cabrillo Log (*.cbr) + Log Cabrillo (*.cbr) + + + + Cannot open "%1" for writing: %2 + Impossibile aprire "%1" in scrittura: %2 + + + + Export Cabrillo File Error + Esporta Errore File Cabrillo + + + + FastGraph + + + + Fast Graph + Grafico veloce + + + + Waterfall gain + Guadagno Display a cascata + + + + Waterfall zero + Azzeramento Display a cascata + + + + Spectrum zero + Azzeramento Spettro + + + + <html><head/><body><p>Set reasonable levels for gain and zero sliders.</p></body></html> + <html><head/><body><p>Imposta livelli ragionevoli per guadagno e cursori azzeramento.</p></body></html> + + + + Auto Level + Livello automatico + + + + FoxLog::impl + + + Date & Time(UTC) + Data & Orario(UTC) + + + + Call + Nominativo + + + + Grid + Griglia + + + + Sent + Inviato + + + + Rcvd + Ricevuto + + + + Band + Banda + + + + FoxLogWindow + + + Fox Log + (Registro log della Volpe) + Fox Log + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + <html><head/><body><p>Fare clic con il tasto destro qui per le azioni disponibili.</p></body></html> + + + + Callers: + Chiamanti: + + + + + + N + N + + + + In progress: + In corso: + + + + Rate: + Tasso: + + + + &Export ADIF ... + &Esporta ADIF ... + + + + Export ADIF Log File + Esporta il file di Log ADIF + + + + ADIF Log (*.adi) + ADIF Log (*.adi) + + + + Export ADIF File Error + Errore esportazione file ADIF + + + + Cannot open "%1" for writing: %2 + Impossibile aprire "%1" in scrittura: %2 + + + + &Reset ... + &Ricarica ... + + + + Confirm Reset + Conferma Ripristina + + + + Are you sure you want to erase file FoxQSO.txt and start a new Fox log? + Sei sicuro di voler cancellare il file FoxQSO.txt e avviare un nuovo log Fox? + + + + FrequencyDialog + + + Add Frequency + Aggiungi frequenza + + + + IARU &Region: + &Regione IARU: + + + + &Mode: + &Modo: + + + + &Frequency (MHz): + &Frequenza (MHz): + + + + FrequencyList_v2 + + + + IARU Region + Regione IARU + + + + + Mode + Modo + + + + + Frequency + Frequenza + + + + + Frequency (MHz) + Frequenza (MHz) + + + + HRDTransceiver + + + + Failed to connect to Ham Radio Deluxe + + Impossibile connettersi a Ham Radio Deluxe + + + + Failed to open file "%1": %2. + Impossibile aprire il file "%1":%2. + + + + + Ham Radio Deluxe: no rig found + Ham Radio Deluxe: nessun rig trovato + + + + Ham Radio Deluxe: rig doesn't support mode + Ham Radio Deluxe: il rig non supporta la modalità + + + + Ham Radio Deluxe: sent an unrecognised mode + Ham Radio Deluxe: ha inviato una modalità non riconosciuta + + + + Ham Radio Deluxe: item not found in %1 dropdown list + Ham Radio Deluxe: elemento non trovato nell'elenco a discesa%1 + + + + Ham Radio Deluxe: button not available + Ham Radio Deluxe: pulsante non disponibile + + + + Ham Radio Deluxe didn't respond as expected + Ham Radio Deluxe non ha risposto come previsto + + + + Ham Radio Deluxe: rig has disappeared or changed + Ham Radio Deluxe: il rig è scomparso o cambiato + + + + Ham Radio Deluxe send command "%1" failed %2 + + Ham Radio Deluxe comando di invio "%1" non riuscito%2 + + + + + + Ham Radio Deluxe: failed to write command "%1" + Ham Radio Deluxe: impossibile scrivere il comando "%1" + + + + Ham Radio Deluxe sent an invalid reply to our command "%1" + Ham Radio Deluxe ha inviato una risposta non valida al nostro comando "%1" + + + + Ham Radio Deluxe failed to reply to command "%1" %2 + + Ham Radio Deluxe non ha risposto al comando "%1"%2 + + + + + Ham Radio Deluxe retries exhausted sending command "%1" + Ham Radio Deluxe ritenta esaurito il comando di invio "%1" + + + + Ham Radio Deluxe didn't respond to command "%1" as expected + Ham Radio Deluxe non ha risposto al comando "%1" come previsto + + + + HamlibTransceiver + + + + Hamlib initialisation error + Errore di inizializzazione di Hamlib + + + + Hamlib settings file error: %1 at character offset %2 + Errore del file delle impostazioni di Hamlib:%1 all'offset del carattere %2 + + + + Hamlib settings file error: top level must be a JSON object + Errore del file delle impostazioni di Hamlib: il livello principale deve essere un oggetto JSON + + + + Hamlib settings file error: config must be a JSON object + Errore del file delle impostazioni di Hamlib: config deve essere un oggetto JSON + + + + Unsupported CAT type + Tipo CAT non supportato + + + + Hamlib error: %1 while %2 + Errore Hamlib: %1 mentre %2 + + + + opening connection to rig + apertura connessione al rig + + + + getting current frequency + ottenere la frequenza corrente + + + + getting current mode + ottenere la modalità corrente + + + + + exchanging VFOs + scambio di VFO + + + + + getting other VFO frequency + ottenere altra frequenza VFO + + + + getting other VFO mode + ottenere altra modalità VFO + + + + setting current VFO + impostazione del VFO corrente + + + + getting frequency + ottenere la frequenza + + + + getting mode + ottenere il modo + + + + + getting current VFO + ottenere il VFO corrente + + + + + + + getting current VFO frequency + ottenere la frequenza del VFO corrente + + + + + + + + + setting frequency + impostazione della frequenza + + + + + + + getting current VFO mode + ottenere il modo del VFO corrente + + + + + + + + setting current VFO mode + impostare il modo del VFO corrente + + + + + setting/unsetting split mode + impostazione / disinserimento della modalità split + + + + + setting split mode + + + + + setting split TX frequency and mode + impostazione della frequenza e della modalità TX divise + + + + setting split TX frequency + impostazione della frequenza Split TX + + + + getting split TX VFO mode + ottenere la modalità split VFO TX + + + + setting split TX VFO mode + impostazione della modalità VFO split TX + + + + getting PTT state + ottenere lo stato PTT + + + + setting PTT on + attivare PTT + + + + setting PTT off + disattivare PTT + + + + setting a configuration item + impostazione di un elemento di configurazione + + + + getting a configuration item + ottenere un elemento di configurazione + + + + HelpTextWindow + + + Help file error + Aiuto file di errore + + + + Cannot open "%1" for reading + Impossibile aprire "%1" per la lettura + + + + Error: %1 + Errore: %1 + + + + IARURegions + + + + IARU Region + Regione IARU + + + + LogQSO + + + Click OK to confirm the following QSO: + Fare clic su OK per confermare il seguente QSO: + + + + Call + Nominativo + + + + Start + Inizio + + + + + dd/MM/yyyy HH:mm:ss + dd/MM/yyyy HH:mm:ss + + + + End + Fine + + + + Mode + Modo + + + + Band + Banda + + + + Rpt Sent + Rpt Inviato + + + + Rpt Rcvd + Rpt Rcvt + + + + Grid + Griglia + + + + Name + Nome + + + + Tx power + Potenza Tx + + + + + Retain + Mantieni + + + + Comments + Commenti + + + + Operator + Operatore + + + + Exch sent + Exch inviato + + + + Rcvd + Rcvt + + + + + Invalid QSO Data + Dati QSO non validi + + + + Check exchange sent and received + Controlla lo scambio inviato e ricevuto + + + + Check all fields + Controlla tutti i campi + + + + Log file error + Errore file di Log + + + + Cannot open "%1" for append + Impossibile aprire "%1" per aggiungere + + + + Error: %1 + Errore: %1 + + + + LotWUsers::impl + + + Network Error - SSL/TLS support not installed, cannot fetch: +'%1' + Errore di rete - Supporto SSL / TLS non installato, impossibile recuperare: +'%1' + + + + Network Error - Too many redirects: +'%1' + Errore di rete - Troppi reindirizzamenti: +'%1' + + + + Network Error: +%1 + Errore di rete: +%1 + + + + File System Error - Cannot commit changes to: +"%1" + Errore del file system - Impossibile eseguire il commit delle modifiche a: +"%1" + + + + File System Error - Cannot open file: +"%1" +Error(%2): %3 + Errore del file system - Impossibile aprire il file: +"%1" +Errore (%2):%3 + + + + File System Error - Cannot write to file: +"%1" +Error(%2): %3 + Errore del file system - Impossibile scrivere sul file: +"%1" +Errore (%2):%3 + + + + MainWindow + + + WSJT-X by K1JT + WSJT-X di K1JT + + + + + + + + + + Band Activity + Attività di Banda + + + + + UTC dB DT Freq Dr + UTC dB DT Freq Dr + + + + + + + + + Rx Frequency + Frequenza Rx + + + + CQ only + Solo CQ + + + + Enter this QSO in log + Immettere questo QSO nel log + + + + Log &QSO + Log &QSO + + + + Stop monitoring + Interrompere il monitoraggio + + + + &Stop + &Stop + + + + Toggle monitoring On/Off + Attiva / disattiva il monitoraggio + + + + &Monitor + &Monitor + + + + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> + <html><head/><body><p>Cancella la finestra a destra. Fare doppio clic per cancellare entrambe le finestre.</p></body></html> + + + + Erase right window. Double-click to erase both windows. + Cancella la finestra a destra. Fare doppio clic per cancellare entrambe le finestre. + + + + &Erase + &Cancella + + + + <html><head/><body><p>Clear the accumulating message average.</p></body></html> + <html><head/><body><p>Cancella la media dei messaggi accumulati.</p></body></html> + + + + Clear the accumulating message average. + Cancella la media dei messaggi accumulati. + + + + Clear Avg + Cancella media + + + + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> + <html><head/><body><p>Decodifica il periodo Rx più recente alla frequenza QSO</p></body></html> + + + + Decode most recent Rx period at QSO Frequency + Decodifica il periodo Rx più recente alla frequenza QSO + + + + &Decode + &Decodifica + + + + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> + <html><head/><body> <p> Attiva / Disattiva Auto-Tx </p> </body> </html> + + + + Toggle Auto-Tx On/Off + Attiva / Disattiva Auto-Tx + + + + E&nable Tx + &Abilita Tx + + + + Stop transmitting immediately + Interrompere immediatamente la trasmissione + + + + &Halt Tx + &Arresta Tx + + + + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> + <html><head/><body><p>Attiva / disattiva un tono Tx puro</p></body></html> + + + + Toggle a pure Tx tone On/Off + Attiva / disattiva un tono Tx puro + + + + &Tune + &Accorda + + + + Menus + Menù + + + + USB dial frequency + Frequenza di chiamata USB + + + + 14.078 000 + 14.078 000 + + + + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> + <html><head/><body><p>30dB consigliato quando è presente solo rumore<br/>Verde quando buono<br/>Rosso quando può verificarsi distorsione<br/>Giallo quando troppo basso</p></body></html> + + + + Rx Signal + Segnale Rx + + + + 30dB recommended when only noise present +Green when good +Red when clipping may occur +Yellow when too low + 30dB consigliato quando è presente solo rumore +Verde quando è buono +Rosso quando può verificarsi distorsione +Giallo quando troppo basso + + + + DX Call + Nominativo DX + + + + DX Grid + Grid DX + + + + Callsign of station to be worked + Nominativo statione da collegare + + + + Search for callsign in database + Ricerca nominativo nel database + + + + &Lookup + &Ricerca + + + + Locator of station to be worked + Localizzatore della stazione da lavorare + + + + Az: 251 16553 km + Az: 251 16553 km + + + + Add callsign and locator to database + Aggiungi nominativo e localizzatore al database + + + + Add + Aggiungi + + + + Pwr + Potenza + + + + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> + <html><head/><body><p>Se arancione o rosso si è verificato un errore nel controllo rig, fare clic per ripristinare e leggere la frequenza di sintonia. S implica la modalità split.</p></body></html> + + + + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. + Se arancione o rosso si è verificato un errore nel controllo rig, fare clic per ripristinare e leggere la frequenza di sintonia. S implica la modalità split. + + + + ? + ? + + + + Adjust Tx audio level + Regola il livello audio Tx + + + + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> + <html><head/><body><p>Seleziona la banda operativa o inserisci la frequenza in MHz o inserisci l'incremento di kHz seguito da k.</p></body></html> + + + + Frequency entry + Immetti la frequenza + + + + Select operating band or enter frequency in MHz or enter kHz increment followed by k. + Seleziona la banda operativa o inserisci la frequenza in MHz o inserisci l'incremento di kHz seguito da k. + + + + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + <html><head/><body><p align="center"> 2015 Giu 17 </p><p align="center"> 01:23:45 </p></body></html> + + + + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> + <html><head/><body><p>Spuntare la casella per mantenere fissa la frequenza Tx quando si fa doppio clic sul testo decodificato.</p></body></html> + + + + Check to keep Tx frequency fixed when double-clicking on decoded text. + Spuntare la casella per mantenere fissa la frequenza Tx quando si fa doppio clic sul testo decodificato. + + + + Hold Tx Freq + Mantenere premuto Tx Freq + + + + Audio Rx frequency + Frequenza audio Rx + + + + + + Hz + Hz + + + + Rx + Rx + + + + Set Tx frequency to Rx Frequency + Impostare la frequenza Tx su Frequenza Rx + + + + ▲ + + + + + Frequency tolerance (Hz) + Tolleranza di frequenza (Hz) + + + + F Tol + F Tol + + + + Set Rx frequency to Tx Frequency + Impostare la frequenza Rx su Frequenza Tx + + + + ▼ + + + + + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> + <html><head/><body><p>Sincronizzazione della soglia. I numeri più bassi accettano segnali di sincronizzazione più deboli.</p></body></html> + + + + Synchronizing threshold. Lower numbers accept weaker sync signals. + Sincronizzazione della soglia. I numeri più bassi accettano segnali di sincronizzazione più deboli. + + + + Sync + Sinc + + + + <html><head/><body><p>Check to use short-format messages.</p></body></html> + <html><head/><body><p>Selezionare per utilizzare i messaggi di formato breve.</p></body></html> + + + + Check to use short-format messages. + Selezionare per utilizzare i messaggi di formato breve. + + + + Sh + Sh + + + + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> + <html><head/><body><p>Selezionare per abilitare le modalità rapide JT9</p></body></html> + + + + Check to enable JT9 fast modes + Selezionare per abilitare le modalità rapide JT9 + + + + + Fast + Veloce + + + + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> + <html><head/><body><p>Selezionare per abilitare il sequenziamento automatico dei messaggi Tx in base ai messaggi ricevuti.</p></body></html> + + + + Check to enable automatic sequencing of Tx messages based on received messages. + Selezionare per abilitare il sequenziamento automatico dei messaggi Tx in base ai messaggi ricevuti. + + + + Auto Seq + Auto Seq + + + + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> + <html><head/><body><p>Selezionare per chiamare il primo risponditore decodificato al mio CQ.</p></body></html> + + + + Check to call the first decoded responder to my CQ. + Selezionare per chiamare il primo risponditore decodificato al mio CQ. + + + + Call 1st + Chiama il 1º + + + + Check to generate "@1250 (SEND MSGS)" in Tx6. + Selezionare per generare "@1250 (INVIO MSGS)" in Tx6. + + + + Tx6 + Tx6 + + + + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> + <html><head/><body><p>Selezionare su Tx in minuti o sequenze di numero pari, iniziando da 0; deselezionare le sequenze dispari.</p></body></html> + + + + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. + Selezionare su Tx in minuti o sequenze di numero pari, iniziando da 0; deselezionare le sequenze dispari. + + + + Tx even/1st + Tx pari/1º + + + + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> + <html><head/><body> <p> Frequenza di chiamata CQ in kHz sopra l'attuale MHz </p> </body> </html> + + + + Frequency to call CQ on in kHz above the current MHz + Frequenza per chiamare CQ in kHz sopra l'attuale MHz + + + + Tx CQ + Tx CQ + + + + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> + <html><head/><body><p>Spunta questo per chiamare CQ sulla frequenza &quot;Tx CQ&quot;.L' Rx sarà sulla frequenza corrente e il messaggio CQ includerà la frequenza Rx corrente in modo che i chiamanti sappiano su quale frequenza rispondere. Non disponibile per i possessori di nominativi non standard.</p></body></html> + + + + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. +Not available to nonstandard callsign holders. + Spunta questo per chiamare CQ sulla frequenza "Tx CQ". Rx sarà sulla frequenza corrente e il messaggio CQ includerà la frequenza Rx corrente in modo che i chiamanti sappiano su quale frequenza rispondere. +Non disponibile per i possessori di nominativi non standard. + + + + Rx All Freqs + Rx Tutte le freq + + + + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> + <html><head/><body> <p> La modalità secondaria determina la spaziatura dei toni; A è il più stretto. </p> </body> </html> + + + + Submode determines tone spacing; A is narrowest. + La modalità secondaria determina la spaziatura dei toni; A è il più stretto. + + + + Submode + Modalità Secondaria + + + + + Fox + Fox + + + + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> + <html><head/><body><p>Spuntare per monitorare i messaggi Sh.</p></body></html> + + + + Check to monitor Sh messages. + Spuntare per monitorare i messaggi Sh. + + + + SWL + SWL + + + + Best S+P + Migliore S+P + + + + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> + <html><head/><body><p>Seleziona questa opzione per avviare la registrazione dei dati di calibrazione.<br/>Mentre la misurazione della correzione della calibrazione è disabilitata.<br/>Se non selezionato puoi visualizzare i risultati della calibrazione.</p></body></html> + + + + Check this to start recording calibration data. +While measuring calibration correction is disabled. +When not checked you can view the calibration results. + Selezionare questo per iniziare a registrare i dati di calibrazione. +Durante la misurazione, la correzione della calibrazione è disabilitata. +Se non selezionato, è possibile visualizzare i risultati della calibrazione. + + + + Measure + Misura + + + + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> + <html><head/><body><p>Rapporto segnale: rapporto segnale-rumore nella larghezza di banda di riferimento di 2500 Hz (dB).</p></body></html> + + + + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). + Rapporto segnale: rapporto segnale-rumore nella larghezza di banda di riferimento di 2500 Hz (dB). + + + + Report + Rapporto + + + + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> + <html><head/><body><p>TX/RX o Lunghezza della sequenza di calibrazione della frequenza</p></body></html> + + + + Tx/Rx or Frequency calibration sequence length + TX/RX o Lunghezza della sequenza di calibrazione della frequenza + + + + s + s + + + + T/R + T/R + + + + Toggle Tx mode + Attiva / disattiva la modalità Tx + + + + Tx JT9 @ + Tx JT9 @ + + + + Audio Tx frequency + Frequenza Tx audio + + + + + Tx + Tx + + + + Tx# + Tx# + + + + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> + <html><head/><body><p>Fare doppio clic su un altro chiamante per mettere in coda quella chiamata per il QSO successivo.</p></body></html> + + + + Double-click on another caller to queue that call for your next QSO. + Fare doppio clic su un altro chiamante per mettere in coda quella chiamata per il QSO successivo. + + + + Next Call + Prossima chiamata + + + + 1 + 1 + + + + + + Send this message in next Tx interval + Invia questo messaggio nel prossimo intervallo Tx + + + + Ctrl+2 + Ctrl+2 + + + + <html><head/><body><p>Send this message in next Tx interval</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>Invia questo messaggio nel prossimo intervallo Tx </p><p>Fare doppio clic per alternare 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> + + + + Send this message in next Tx interval +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) + Invia questo messaggio nel prossimo intervallo Tx +Fare doppio clic per attivare / disattivare l'uso del messaggio Tx1 per avviare un QSO con una stazione (non consentito per i detentori di chiamate composte di tipo 1) + + + + Ctrl+1 + Ctrl+1 + + + + + + + Switch to this Tx message NOW + Passa a questo messaggio Tx ADESSO + + + + Tx &2 + Tx &2 + + + + Alt+2 + Alt+2 + + + + <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> + + + + Switch to this Tx message NOW +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) + Passa a questo messaggio Tx ADESSO +Fare doppio clic per attivare / disattivare l'uso del messaggio Tx1 per avviare un QSO con una stazione (non consentito per i detentori di chiamate composte di tipo 1) + + + + Tx &1 + Tx &1 + + + + Alt+1 + Alt+1 + + + + Ctrl+6 + Ctrl+6 + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> + <html><head/><body><p>Invia questo messaggio nel prossimo intervallo Tx</p><p>Fare doppio clic per ripristinare il messaggio 73 standard</p></body></html> + + + + Send this message in next Tx interval +Double-click to reset to the standard 73 message + Invia questo messaggio nel prossimo intervallo Tx +Fare doppio clic per ripristinare il messaggio 73 standard + + + + Ctrl+5 + Ctrl+5 + + + + Ctrl+3 + Ctrl+3 + + + + Tx &3 + Tx &3 + + + + Alt+3 + Alt+3 + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>Invia questo messaggio nel prossimo intervallo Tx</p><p>Fare doppio clic per alternare tra i messaggi RRR e RR73 in Tx4 (non consentito per i possessori di chiamate composte di tipo 2)</p><p>I messaggi RR73 devono essere utilizzati solo quando si è ragionevolmente sicuri che non saranno necessarie ripetizioni dei messaggi</p></body></html> + + + + Send this message in next Tx interval +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + Invia questo messaggio nel prossimo intervallo Tx +Fare doppio clic per alternare tra i messaggi RRR e RR73 in Tx4 (non consentito per i detentori di chiamate composte di tipo 2) +I messaggi RR73 devono essere utilizzati solo quando si è ragionevolmente sicuri che non saranno necessarie ripetizioni dei messaggi + + + + Ctrl+4 + Ctrl+4 + + + + <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> + + + + Switch to this Tx message NOW +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + Passa a questo messaggio Tx ADESSO +Fare doppio clic per alternare tra i messaggi RRR e RR73 in Tx4 (non consentito per i detentori di chiamate composte di tipo2) +I messaggi RR73 devono essere utilizzati solo quando si è ragionevolmente sicuri che non saranno necessarie ripetizioni dei messaggi + + + + Tx &4 + Tx &4 + + + + Alt+4 + Alt+4 + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> + <html><head/><body><p>Passa a questo messaggio Tx ADESSO</p><p>Fai doppio clic per ripristinare il messaggio 73 standard</p></body></html> + + + + Switch to this Tx message NOW +Double-click to reset to the standard 73 message + Passa a questo messaggio Tx ADESSO +Fare doppio clic per ripristinare il messaggio 73 standard + + + + Tx &5 + Tx &5 + + + + Alt+5 + Alt+5 + + + + Now + Now + + + + Generate standard messages for minimal QSO + Genera messaggi standard per un QSO minimo + + + + Generate Std Msgs + Genera Std Msgs + + + + Tx &6 + Tx &6 + + + + Alt+6 + Alt+6 + + + + + Enter a free text message (maximum 13 characters) +or select a predefined macro from the dropdown list. +Press ENTER to add the current text to the predefined +list. The list can be maintained in Settings (F2). + Inserisci un messaggio di testo libero (massimo 13 caratteri) +oppure seleziona una macro predefinita dall'elenco a discesa. +Premere INVIO per aggiungere il testo corrente al predefinito +elenco. L'elenco può essere gestito in Impostazioni (F2). + + + + Queue up the next Tx message + Accoda il prossimo messaggio Tx + + + + Next + Prossimo + + + + 2 + 2 + + + + Calling CQ + Chiamando CQ + + + + Generate a CQ message + Genera un messaggio CQ + + + + + + CQ + CQ + + + + Generate message with RRR + Genera un messaggio con RRR + + + + RRR + RRR + + + + Generate message with report + Genera un messaggio con rapporto + + + + dB + dB + + + + Answering CQ + Rispondere al CQ + + + + Generate message for replying to a CQ + Genera messaggio di risposta al CQ + + + + + Grid + Grid + + + + Generate message with R+report + Genera messaggio con R+rapporto + + + + R+dB + R+dB + + + + Generate message with 73 + Genera messaggio con 73 + + + + 73 + 73 + + + + Send this standard (generated) message + Invia questo messaggio standard (generato) + + + + Gen msg + Gen msg + + + + Send this free-text message (max 13 characters) + Invia questo messaggio di testo libero (massimo 13 caratteri) + + + + Free msg + Msg libero + + + + 3 + 3 + + + + Max dB + Max dB + + + + CQ AF + CQ AF + + + + CQ AN + CQ AN + + + + CQ AS + CQ AS + + + + CQ EU + CQ EU + + + + CQ NA + CQ NA + + + + CQ OC + CQ OC + + + + CQ SA + CQ SA + + + + CQ 0 + CQ 0 + + + + CQ 1 + CQ 1 + + + + CQ 2 + CQ 2 + + + + CQ 3 + CQ 3 + + + + CQ 4 + CQ 4 + + + + CQ 5 + CQ 5 + + + + CQ 6 + CQ 6 + + + + CQ 7 + CQ 7 + + + + CQ 8 + CQ 8 + + + + CQ 9 + CQ 9 + + + + Reset + Ripristina + + + + N List + N List + + + + N Slots + N Slots + + + + + Random + Casuale + + + + Call + Nominativo + + + + S/N (dB) + S/N (dB) + + + + Distance + Distanza + + + + More CQs + Più CQs + + + + Percentage of 2-minute sequences devoted to transmitting. + Percentuale di sequenze di 2 minuti dedicate alla trasmissione. + + + + % + % + + + + Tx Pct + Tx Pct + + + + Band Hopping + Band Hopping + + + + Choose bands and times of day for band-hopping. + Scegli le fasce e gli orari del giorno per il band-hopping. + + + + Schedule ... + Programma ... + + + + Upload decoded messages to WSPRnet.org. + Carica messaggi decodificati su WSPRnet.org. + + + + Upload spots + Carica spot + + + + <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> + + + + 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. + + + + Prefer type 1 messages + Preferisci i messaggi di tipo 1 + + + + No own call decodes + Nessuna decodifica del proprio nominativo + + + + Transmit during the next 2-minute sequence. + Trasmettere durante la sequenza di 2 minuti successiva. + + + + Tx Next + Tx Successiva + + + + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. + Imposta la potenza Tx in dBm (dB sopra 1 mW) come parte del tuo messaggio WSPR. + + + + File + File + + + + View + Vista + + + + Decode + Decodificare + + + + Save + Salva + + + + Help + Aiuto + + + + Mode + Modo + + + + Configurations + Configurazioni + + + + Tools + Strumenti + + + + Exit + Uscita + + + + Configuration + Configurazione + + + + F2 + F2 + + + + About WSJT-X + Informazioni su WSJT-X + + + + Waterfall + Display a cascata + + + + Open + Apri + + + + Ctrl+O + Ctrl+O + + + + Open next in directory + Apri successivo nella directory + + + + Decode remaining files in directory + Decodifica i file rimanenti nella directory + + + + Shift+F6 + Shift+F6 + + + + Delete all *.wav && *.c2 files in SaveDir + Elimina tutti i file * .wav && * .c2 nel direttorio + + + + None + Nessuno + + + + Save all + Salva tutto + + + + Online User Guide + Guida per l'utente online + + + + Keyboard shortcuts + Scorciatoie da tastiera + + + + Special mouse commands + Comandi speciali mouse + + + + JT9 + JT9 + + + + Save decoded + Salva decodificato + + + + Normal + Normale + + + + Deep + Profondo + + + + Monitor OFF at startup + Monitor OFF all'avvio + + + + Erase ALL.TXT + Cancella ALL.TXT + + + + Erase wsjtx_log.adi + Cancella wsjtx_log.adi + + + + Convert mode to RTTY for logging + Convertire la modalità in RTTY per la registrazione + + + + Log dB reports to Comments + Registra rapporto dB nei commenti + + + + Prompt me to log QSO + Avvisami di registrare il QSO + + + + Blank line between decoding periods + Riga vuota tra i periodi di decodifica + + + + Clear DX Call and Grid after logging + Cancella chiamata DX e griglia dopo la registrazione + + + + Display distance in miles + Visualizza la distanza in miglia + + + + Double-click on call sets Tx Enable + Fare doppio clic sui set di chiamate Abilita Tx + + + + + F7 + F7 + + + + Tx disabled after sending 73 + Tx disabilitato dopo l'invio 73 + + + + + Runaway Tx watchdog + Watchdog Tx sfuggito + + + + Allow multiple instances + Consenti più istanze + + + + Tx freq locked to Rx freq + Tx freq bloccato su Rx freq + + + + JT65 + JT65 + + + + JT9+JT65 + JT9+JT65 + + + + Tx messages to Rx Frequency window + Messaggi Tx alla finestra Frequenza Rx + + + + Gray1 + Gray1 + + + + Show DXCC entity and worked B4 status + Mostra entità DXCC e stato B4 lavorato + + + + Astronomical data + Dati Astronomici + + + + List of Type 1 prefixes and suffixes + Elenco di prefissi e suffissi di tipo 1 + + + + Settings... + Impostazioni... + + + + Local User Guide + Guida per l'utente locale + + + + Open log directory + Apri il direttorio del Log + + + + JT4 + JT4 + + + + Message averaging + Media dei messaggi + + + + Enable averaging + Abilita Media + + + + Enable deep search + Abilita ricerca profonda + + + + WSPR + WSPR + + + + Echo Graph + Grafico Eco + + + + F8 + F8 + + + + Echo + Eco + + + + EME Echo mode + Modo Eco EME + + + + ISCAT + ISCAT + + + + Fast Graph + Grafico Veloce + + + + F9 + F9 + + + + &Download Samples ... + &Scarica Campioni ... + + + + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> + <html><head/><body><p>Scarica file audio di esempio che dimostrano le varie modalità.</p></body></html> + + + + MSK144 + MSK144 + + + + QRA64 + QRA64 + + + + Release Notes + Note di rilascio + + + + Enable AP for DX Call + Abilita AP per DX Call + + + + FreqCal + FreqCal + + + + Measure reference spectrum + Misurare lo spettro di riferimento + + + + Measure phase response + Misura la risposta di fase + + + + Erase reference spectrum + Cancella spettro di riferimento + + + + Execute frequency calibration cycle + Eseguire il ciclo di calibrazione della frequenza + + + + Equalization tools ... + Strumenti di equalizzazione ... + + + + WSPR-LF + WSPR-LF + + + + Experimental LF/MF mode + Modo Sperimentale LF/MF + + + + FT8 + FT8 + + + + + Enable AP + Abilita AP + + + + Solve for calibration parameters + Risolvi per i parametri di calibrazione + + + + Copyright notice + Avviso sul copyright + + + + Shift+F1 + Shift+F1 + + + + Fox log + Fox log + + + + FT8 DXpedition Mode User Guide + Manuale Utente modo FT8 DXpedition + + + + Reset Cabrillo log ... + Ripristina Cabrillo log ... + + + + Color highlighting scheme + Schema di evidenziazione del colore + + + + Contest Log + Log del Contest + + + + Export Cabrillo log ... + Esporta Log Cabrillo ... + + + + Quick-Start Guide to WSJT-X 2.0 + Guida rapida per WSJT-X 2.0 + + + + Contest log + Log del Contest + + + + Erase WSPR hashtable + Cancella hashtable WSPR + + + + FT4 + FT4 + + + + Rig Control Error + Errore di controllo rig + + + + + + Receiving + Ricevente + + + + Do you want to reconfigure the radio interface? + Vuoi riconfigurare l'interfaccia radio? + + + + Error Scanning ADIF Log + Errore durante la scansione del registro ADIF + + + + Scanned ADIF log, %1 worked before records created + Log ADIF scansionato,%1 ha funzionato prima della creazione dei record + + + + Error Loading LotW Users Data + Errore durante il caricamento dei dati degli utenti di LotW + + + + Error Writing WAV File + Errore durante la scrittura del file WAV + + + + Configurations... + Configurazioni... + + + + + + + + + + + + + + + + + + + Message + Messaggio + + + + Error Killing jt9.exe Process + Errore durante l'uccisione del processo jt9.exe + + + + KillByName return code: %1 + Codice di ritorno KillByName:%1 + + + + Error removing "%1" + Errore durante la rimozione di "%1" + + + + Click OK to retry + Fai clic su OK per riprovare + + + + + Improper mode + Modalità impropria + + + + + File Open Error + Errore apertura file + + + + + + + + Cannot open "%1" for append: %2 + Impossibile aprire "%1" per aggiungere:%2 + + + + Error saving c2 file + Errore salvataggio file c2 + + + + Error in Sound Input + Errore nell'ingresso audio + + + + Error in Sound Output + Errore nell'uscita audio + + + + + + Single-Period Decodes + Decodifiche a periodo singolo + + + + + + Average Decodes + Media Decodifiche + + + + Change Operator + Cambio Operatore + + + + New operator: + Nuovo operatore: + + + + Status File Error + Errore del file di stato + + + + + Cannot open "%1" for writing: %2 + Impossibile aprire "%1" per la scrittura:%2 + + + + Subprocess Error + Errore sottoprocesso + + + + Subprocess failed with exit code %1 + Il sottoprocesso non è riuscito con il codice di uscita%1 + + + + + Running: %1 +%2 + In esecuzione: %1 +%2 + + + + Subprocess error + Errore sottoprocesso + + + + Reference spectrum saved + Spettro di riferimento salvato + + + + Invalid data in fmt.all at line %1 + Dati non validi in fmt.all alla riga%1 + + + + Good Calibration Solution + Buona soluzione di calibrazione + + + + <pre>%1%L2 ±%L3 ppm +%4%L5 ±%L6 Hz + +%7%L8 +%9%L10 Hz</pre> + <pre>%1%L2 ±%L3 ppm +%4%L5 ±%L6 Hz + +%7%L8 +%9%L10 Hz</pre> + + + + Delete Calibration Measurements + Elimina misure di calibrazione + + + + The "fmt.all" file will be renamed as "fmt.bak" + Il file "fmt.all" verrà rinominato come "fmt.bak" + + + + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: + +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." + Se si utilizza in modo equo qualsiasi parte di WSJT-X in base ai termini della GNU General Public License, è necessario visualizzare in modo evidente la seguente nota sul copyright nell'opera derivata: + +"Gli algoritmi, il codice sorgente, l'aspetto di WSJT-X e dei relativi programmi e le specifiche del protocollo per le modalità FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 sono Copyright (C) 2001-2020 di uno o più dei seguenti autori: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q e altri membri del WSJT Development Group. " + + + + No data read from disk. Wrong file format? + Nessun dato letto dal disco. Formato file errato? + + + + Confirm Delete + Conferma Eliminazione + + + + Are you sure you want to delete all *.wav and *.c2 files in "%1"? + Sei sicuro di voler eliminare tutti i file * .wav e * .c2 in "%1"? + + + + Keyboard Shortcuts + Scorciatoie da tastiera + + + + Special Mouse Commands + Comandi speciali mouse + + + + No more files to open. + Niente più file da aprire. + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. + Scegli un'altra frequenza Tx. WSJT-X non trasmetterà consapevolmente un'altra modalità nella sottobanda WSPR a 30 m. + + + + WSPR Guard Band + Banda di guardia WSPR + + + + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. + Scegli un'altra frequenza di composizione. WSJT-X non funzionerà in modalità Fox nelle sottobande FT8 standard. + + + + Fox Mode warning + Avviso modalità Fox + + + + Last Tx: %1 + Ultimo Tx:%1 + + + + Should you switch to EU VHF Contest mode? + +To do so, check 'Special operating activity' and +'EU VHF Contest' on the Settings | Advanced tab. + Dovresti passare alla modalità Contest VHF EU? + +Per fare ciò, selezionare "Attività operativa speciale" e +"Contest VHF EU" sulle impostazioni | Scheda Avanzate. + + + + Should you switch to ARRL Field Day mode? + Dovresti passare alla modalità Field Day di ARRL? + + + + Should you switch to RTTY contest mode? + Dovresti passare alla modalità contest RTTY? + + + + + + + Add to CALL3.TXT + Aggiungi a CALL3.TXT + + + + Please enter a valid grid locator + Inserisci un localizzatore di griglia valido + + + + Cannot open "%1" for read/write: %2 + Impossibile aprire "%1" per lettura / scrittura:%2 + + + + %1 +is already in CALL3.TXT, do you wish to replace it? + %1 +è già in CALL3.TXT, desideri sostituirlo? + + + + Warning: DX Call field is empty. + Avviso: il campo Chiamata DX è vuoto. + + + + Log file error + Errore nel file di registro + + + + Cannot open "%1" + Impossibile aprire "%1" + + + + Error sending log to N1MM + Errore durante l'invio del Log a N1MM + + + + Write returned "%1" + Scrivi ha restituito "%1" + + + + Stations calling DXpedition %1 + Stazioni che chiamano la DXpedition %1 + + + + Hound + (Hound=Cane da caccia) + Hound + + + + Tx Messages + Messaggi Tx + + + + + + Confirm Erase + Conferma Cancella + + + + Are you sure you want to erase file ALL.TXT? + Sei sicuro di voler cancellare il file ALL.TXT? + + + + + Confirm Reset + Conferma Ripristina + + + + Are you sure you want to erase your contest log? + Sei sicuro di voler cancellare il tuo Log del contest? + + + + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. + In questo modo verranno rimossi tutti i record QSO per il contest corrente. Saranno conservati nel file di registro ADIF ma non saranno disponibili per l'esportazione nel registro Cabrillo. + + + + Cabrillo Log saved + Log Cabrillo salvato + + + + Are you sure you want to erase file wsjtx_log.adi? + Sei sicuro di voler cancellare il file wsjtx_log.adi? + + + + Are you sure you want to erase the WSPR hashtable? + Sei sicuro di voler cancellare la tabella hash WSPR? + + + + VHF features warning + VHF presenta un avviso + + + + Tune digital gain + Ottimizza il guadagno digitale + + + + Transmit digital gain + Trasmetti Guadagno digitale + + + + Prefixes + Prefissi + + + + Network Error + Errore di Rete + + + + Error: %1 +UDP server %2:%3 + Errore:%1 +Server UDP%2:%3 + + + + File Error + Errore File + + + + Phase Training Disabled + Fase di Allenamento Disabilitato + + + + Phase Training Enabled + Fase di allenamento abilitato + + + + WD:%1m + WD:%1m + + + + + Log File Error + Errore file di Log + + + + Are you sure you want to clear the QSO queues? + Sei sicuro di voler cancellare le code QSO? + + + + MessageAveraging + + + + Message Averaging + Media dei messaggi + + + + UTC Sync DT Freq + UTC Sync DT Freq + + + + Modes + + + + Mode + Modo + + + + MultiSettings + + + Default + Default + + + + MultiSettings::impl + + + &Switch To + &Passa a + + + + &Clone + &Clona + + + + Clone &Into ... + &Clona In ... + + + + R&eset + &Ripristina + + + + &Rename ... + &Rinomina ... + + + + &Delete + &Elimina + + + + Clone Into Configuration + Clona nella Configurazione + + + + Confirm overwrite of all values for configuration "%1" with values from "%2"? + Conferma sovrascrittura di tutti i valori per la configurazione "%1" con i valori da "%2"? + + + + Reset Configuration + Ripristina Configurazione + + + + Confirm reset to default values for configuration "%1"? + Conferma ripristino ai valori predefiniti per la configurazione "%1"? + + + + Delete Configuration + Cancella Configurazione + + + + Confirm deletion of configuration "%1"? + Conferma cancellazione della configurazione "%1"? + + + + NameDialog + + + New Configuration Name + Nuovo nome di configurazione + + + + Old name: + Vecchio nome: + + + + &New name: + &Nuovo nome: + + + + OmniRigTransceiver + + + OmniRig: unrecognized mode + OmniRig: modalità non riconosciuta + + + + Failed to start OmniRig COM server + Impossibile avviare il server COM OmniRig + + + + + OmniRig: don't know how to set rig frequency + OmniRig: non so come impostare la frequenza del rig + + + + + OmniRig: timeout waiting for update from rig + OmniRig: timeout in attesa di aggiornamento dal rig + + + + OmniRig COM/OLE error: %1 at %2: %3 (%4) + OmniRig errore.COM/OLE: %1 a %2: %3 (%4) + + + + PollingTransceiver + + + Unexpected rig error + Errore imprevisto del rig + + + + QObject + + + User Defined + Definito dall'utente + + + + Failed to open LotW users CSV file: '%1' + Impossibile aprire ilf file CSV LotW degli utenti: '%1' + + + + OOB + OOB + + + + Too many colours in palette. + Troppi colori nella tavolozza. + + + + Error reading waterfall palette file "%1:%2" too many colors. + Errore lettura del file della tavolozza del display a cascata "%1:%2" troppi colori. + + + + Error reading waterfall palette file "%1:%2" invalid triplet. + Errore lettura del file della tavolozza del display a cascata "%1:%2" terzina invalida. + + + + Error reading waterfall palette file "%1:%2" invalid color. + Errore lettura del file della tavolozza del display a cascata "%1:%2" colore invalido. + + + + Error opening waterfall palette file "%1": %2. + Errore lettura del file della tavolozza del display a cascata "%1: %2. + + + + Error writing waterfall palette file "%1": %2. + Errore lettura del file della tavolozza del display a cascata "%1: %2. + + + + RemoteFile + + + + + + + + File System Error + Errore File System + + + + Cannot rename file: +"%1" +to: "%2" +Error(%3): %4 + Impossibile rinominare il file: +"%1" +a: "%2" +Errore(%3): %4 + + + + Cannot delete file: +"%1" + Impossibile cancellare il file: +"%1" + + + + + + Network Error + Errore di Rete + + + + Too many redirects: %1 + Troppi reindirizzamenti: %1 + + + + Redirect not followed: %1 + Reindirizzamento non seguito: %1 + + + + Cannot commit changes to: +"%1" + Impossibile eseguire il commit delle modifiche a: +"%1" + + + + Cannot open file: +"%1" +Error(%2): %3 + Impossibile aprire il file: +"%1" +Errore(%2): %3 + + + + Cannot make path: +"%1" + Impossibile creare il percorso: +"%1" + + + + Cannot write to file: +"%1" +Error(%2): %3 + Impossibile scrivere sul file: +"%1" +Errore (%2):%3 + + + + SampleDownloader::impl + + + Download Samples + Scarica campioni + + + + &Abort + &Aborta + + + + &Refresh + &Ricarica + + + + &Details + &Dettagli + + + + Base URL for samples: + URL base per i campioni: + + + + Only use HTTP: + Usa solo HTTP: + + + + Check this is you get SSL/TLS errors + Verifica che si ottengano errori SSL / TLS + + + + Input Error + Errore ingresso + + + + Invalid URL format + Formato URL invalido + + + + SoundInput + + + An error opening the audio input device has occurred. + Si è verificato un errore durante l'apertura del dispositivo di input audio. + + + + An error occurred during read from the audio input device. + Si è verificato un errore durante la lettura dal dispositivo di ingresso audio. + + + + Audio data not being fed to the audio input device fast enough. + I dati audio non vengono inviati al dispositivo di input audio abbastanza velocemente. + + + + Non-recoverable error, audio input device not usable at this time. + Errore non recuperabile, dispositivo di input audio non utilizzabile in questo momento. + + + + Requested input audio format is not valid. + Il formato audio di input richiesto non è valido. + + + + Requested input audio format is not supported on device. + Il formato audio di input richiesto non è supportato sul dispositivo. + + + + Failed to initialize audio sink device + Impossibile inizializzare il dispositivo sink audio + + + + Idle + Inattivo + + + + Receiving + Ricevente + + + + Suspended + Sospeso + + + + Interrupted + Interrotto + + + + Error + Errore + + + + Stopped + Fermato + + + + SoundOutput + + + An error opening the audio output device has occurred. + Si è verificato un errore durante l'apertura del dispositivo di uscita audio. + + + + An error occurred during write to the audio output device. + Si è verificato un errore durante la scrittura sul dispositivo di uscita audio. + + + + Audio data not being fed to the audio output device fast enough. + I dati audio non vengono inviati al dispositivo di uscita audio abbastanza velocemente. + + + + Non-recoverable error, audio output device not usable at this time. + Errore non recuperabile, dispositivo di uscita audio non utilizzabile in questo momento. + + + + Requested output audio format is not valid. + Il formato audio di output richiesto non è valido. + + + + Requested output audio format is not supported on device. + Il formato audio di output richiesto non è supportato sul dispositivo. + + + + Idle + Inattivo + + + + Sending + Invio + + + + Suspended + Sospeso + + + + Interrupted + Interrotto + + + + Error + Errore + + + + Stopped + Fermato + + + + StationDialog + + + Add Station + Aggoingi Stazione + + + + &Band: + &Banda: + + + + &Offset (MHz): + &Offset (MHz): + + + + &Antenna: + &Antenna: + + + + StationList::impl + + + Band name + Nome Banda + + + + Frequency offset + Offset di frequenza + + + + Antenna description + Descrizione Antenna + + + + Band + Banda + + + + Offset + Offset + + + + Antenna Description + Descrizione Antenna + + + + TransceiverBase + + + Unexpected rig error + Errore imprevisto del rig + + + + WideGraph + + + Dialog + Dialogo + + + + Controls + Controlli + + + + Spectrum gain + Guadagno Spettro + + + + Palette + Tavolozza + + + + <html><head/><body><p>Enter definition for a new color palette.</p></body></html> + <html><head/><body><p>Inserisci la definizione per una nuova tavolozza di colori.</p></body></html> + + + + Adjust... + Regola... + + + + Waterfall gain + Guadagno Display a cascata + + + + <html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html> + <html><head/><body><p>Imposta la dimensione frazionaria dello spettro in questa finestra.</p></body></html> + + + + % + % + + + + Spec + Spec + + + + <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> + <html><head/><body><p>Appiattire la linea di base spettrale per l'intero intervallo visualizzato.</p></body></html> + + + + Flatten + Appiattire + + + + <html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html> + <html><head/><body><p>Calcola e salva uno spettro di riferimento. (Non ancora completamente implementato.)</p></body></html> + + + + Ref Spec + Ref Spec + + + + Smoothing of Linear Average spectrum + Livellamento dello spettro medio lineare + + + + Smooth + Liscio + + + + Compression factor for frequency scale + Fattore di compressione per scala di frequenza + + + + Bins/Pixel + Bins/Pixel + + + + Select waterfall palette + Seleziona Tavolozza Display a cascata + + + + <html><head/><body><p>Select data for spectral display</p></body></html> + <html><head/><body><p>Seleziona i dati per la visualizzazione spettrale</p></body></html> + + + + Current + Corrente + + + + Cumulative + Cumulativo + + + + Linear Avg + Media lineare + + + + Reference + Riferimento + + + + <html><head/><body><p>Frequency at left edge of waterfall</p></body></html> + <html><head/><body><p>Frequenza sul bordo sinistro del display a cascata</p></body></html> + + + + Hz + Hz + + + + Start + Inizio + + + + <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> + <html><head/><body><p>Decodifica JT9 solo sopra questa frequenza</p></body></html> + + + + JT9 + JT9 + + + + JT65 + JT65 + + + + Number of FFTs averaged (controls waterfall scrolling rate) + Numero medio di FFT (controlla la velocità di scorrimento del display a cascata) + + + + N Avg + N Avg + + + + Waterfall zero + Azzeramento Display a cascata + + + + Spectrum zero + Azzeramento Spettro + + + + Wide Graph + Grafico Ampio + + + + + Read Palette + Leggi Tavolozza + + + + configuration_dialog + + + Settings + Impostazioni + + + + Genera&l + &Generale + + + + General station details and settings. + Dettagli e impostazioni generali della stazione. + + + + Station Details + Dettagli Stazione + + + + My C&all: + &Mio indicativo: + + + + Station callsign. + Nominativo Stazione. + + + + M&y Grid: + &Mia Griglia: + + + + <html><head/><body><p>Maidenhead locator, preferably 6 characters.</p></body></html> + <html><head/><body><p>Localizzatore Maidenhead, preferibilmente 6 caratteri.</p></body></html> + + + + Check to allow grid changes from external programs + Selezionare per consentire le modifiche alla griglia da programmi esterni + + + + AutoGrid + Griglia Auto + + + + IARU Region: + Regione IARU: + + + + <html><head/><body><p>Select your IARU region.</p></body></html> + <html><head/><body><p>Seleziona la tua regione IARU.</p></body></html> + + + + Message generation for type 2 compound callsign holders: + Generazione di messaggi per titolari di nominativi composti di tipo 2: + + + + <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> + + + + Full call in Tx1 + Chiamata completa in Tx1 + + + + Full call in Tx3 + Chiamata completa in Tx3 + + + + Full call in Tx5 only + Chiamata completa solo in Tx5 + + + + Display + Display + + + + Show outgoing transmitted messages in the Rx frequency window. + Mostra i messaggi trasmessi in uscita nella finestra Frequenza Rx. + + + + &Tx messages to Rx frequency window + &Tx messaggi alla finestra della frequenza Rx + + + + Show if decoded stations are new DXCC entities or worked before. + Mostra se le stazioni decodificate sono nuove entità DXCC o sono state lavorate prima. + + + + Show &DXCC, grid, and worked-before status + Mostra &DXCC, griglia e stato lavorato prima + + + + <html><head/><body><p>Check to have decodes for a new period start at the top of the Band Activity window and not scroll off the top when the window is full.</p><p>This is to aid selecting decodes to double-click while decoding is still in progress. Use the Band Activity vertical scroll bar to reveal decodes past the bottom of the window.</p></body></html> + <html><head/><body><p>Verifica che la decodifica di un nuovo periodo inizi nella parte superiore della finestra Attività di banda e non scorra verso l'alto quando la finestra è piena.</p><p>Questo è di aiuto nella selezione di decodifiche da fare doppio clic mentre la decodifica è ancora in corso. Utilizza la barra di scorrimento verticale per rivelare decodifiche oltre la parte inferiore della finestra.</p></body></html> + + + + Start new period decodes at top + Inizia nuovo periodo decodifiche in alto + + + + Show principal prefix instead of country name + Mostra il prefisso principale anziché il nome del paese + + + + Set the font characteristics for the application. + Imposta le caratteristiche del carattere per l'applicazione. + + + + Font... + Tipo Carattere... + + + + Set the font characteristics for the Band Activity and Rx Frequency areas. + Imposta le caratteristiche del carattere per le aree Attività banda e Frequenza Rx. + + + + Decoded Text Font... + Carattere del testo decodificato... + + + + Include a separator line between periods in the band activity window. + Includere una linea di separazione tra i periodi nella finestra dell'attività della banda. + + + + &Blank line between decoding periods + &Riga vuota tra i periodi di decodifica + + + + Show distance to DX station in miles rather than kilometers. + Mostra la distanza dalla stazione DX in miglia anziché in chilometri. + + + + Display dista&nce in miles + Visualizza la dista&nza in miglia + + + + Behavior + Comportamento + + + + Decode after EME delay + Decodifica dopo il ritardo EME + + + + Tx watchdog: + Tx watchdog: + + + + <html><head/><body><p>Number of minutes before unattended transmissions are aborted</p></body></html> + <html><head/><body><p>Numero di minuti prima che le trasmissioni non presidiate vengano interrotte</p></body></html> + + + + Disabled + Disabilitato + + + + minutes + minuti + + + + Enable VHF/UHF/Microwave features + Abilita le funzionalità VHF / UHF / Microonde + + + + Single decode + Decodifica singola + + + + <html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html> + <html><head/><body><p>Alcuni rig non sono in grado di elaborare i comandi CAT durante la trasmissione. Ciò significa che se stai operando in modalità split potresti dover deselezionare questa opzione. </p></body></html> + + + + Allow Tx frequency changes while transmitting + Consenti cambi di frequenza Tx durante la trasmissione + + + + Don't start decoding until the monitor button is clicked. + Non iniziare la decodifica fino a quando non si fa clic sul pulsante monitor. + + + + Mon&itor off at startup + Mon&itor spento all'avvio + + + + <html><head/><body><p>Check this if you wish to automatically return to the last monitored frequency when monitor is enabled, leave it unchecked if you wish to have the current rig frequency maintained.</p></body></html> + <html><head/><body><p> Selezionare questa opzione se si desidera tornare automaticamente all'ultima frequenza monitorata quando il monitor è abilitato, lasciarlo deselezionato se si desidera mantenere la frequenza corrente del rig.</p></body></html> + + + + Monitor returns to last used frequency + Il monitor ritorna all'ultima frequenza utilizzata + + + + Alternate F1-F6 bindings + Attacchi F1-F6 alternati + + + + Turns off automatic transmissions after sending a 73 or any other free +text message. + Disattiva le trasmissioni automatiche dopo aver inviato un 73 o qualsiasi altro +messaggio testuale libero. + + + + Di&sable Tx after sending 73 + Di&sabilita Tx dopo l'invio 73 + + + + Send a CW ID after every 73 or free text message. + Invia un ID CW dopo ogni 73 o messaggio di testo libero. + + + + CW ID a&fter 73 + ID CW d&opo 73 + + + + Periodic CW ID Inter&val: + Inter&vallo ID CW periodico: + + + + Send a CW ID periodically every few minutes. +This might be required under your countries licence regulations. +It will not interfere with other users as it is always sent in the +quiet period when decoding is done. + Invia un ID CW periodicamente ogni pochi minuti. +Questo potrebbe essere richiesto dalle normative di licenza dei tuoi paesi. +Non interferirà con altri utenti in quanto viene sempre inviato in +periodo di quiete al termine della decodifica. + + + + Automatic transmission mode. + Modalità di trasmissione automatica. + + + + Doubl&e-click on call sets Tx enable + Far&e doppio clic sul nominativo Abilita il Tx + + + + Calling CQ forces Call 1st + Chiamando CQ forza Call 1º + + + + &Radio + &Radio + + + + Radio interface configuration settings. + Impostazioni di configurazione dell'interfaccia radio. + + + + Settings that control your CAT interface. + Impostazioni che controllano l'interfaccia CAT. + + + + CAT Control + Controllo CAT + + + + + Port: + Porta: + + + + Serial port used for CAT control. + Porta seriale utilizzata per il controllo CAT. + + + + Serial Port Parameters + Parametri Porta Seriale + + + + Baud Rate: + Baud Rate: + + + + Serial port data rate which must match the setting of your radio. + Velocità dati della porta seriale che deve corrispondere all'impostazione della radio. + + + + 1200 + 1200 + + + + 2400 + 2400 + + + + 4800 + 4800 + + + + 9600 + 9600 + + + + 19200 + 19200 + + + + 38400 + 38400 + + + + 57600 + 57600 + + + + 115200 + 115200 + + + + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> + <html><head/><body><p>Numero di bit di dati utilizzati per comunicare con l'interfaccia CAT della radio (in genere otto). </p></body></html> + + + + Data Bits + Bit di dati + + + + D&efault + Pred&efinito + + + + Se&ven + Se&tte + + + + E&ight + O&tto + + + + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> + <html><head/><body><p>Numero di bit di stop utilizzati durante la comunicazione con l'interfaccia CAT della radio</p><p>(consultare il manuale della radio per i dettagli).</p></body></html> + + + + Stop Bits + Bits di Stop + + + + + Default + Predefinito + + + + On&e + &Uno + + + + T&wo + &Due + + + + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> + <html><head/><body><p>Protocollo di controllo del flusso utilizzato tra questo computer e l'interfaccia CAT della radio (in genere &quot;Nessuno&quot; ma qualcuno richiede &quot;Hardware&quot;).</p></body></html> + + + + Handshake + Handshake + + + + &None + &Nessuno + + + + Software flow control (very rare on CAT interfaces). + Controllo del flusso del software (molto raro sulle interfacce CAT). + + + + XON/XOFF + XON/XOFF + + + + Flow control using the RTS and CTS RS-232 control lines +not often used but some radios have it as an option and +a few, particularly some Kenwood rigs, require it). + Controllo del flusso mediante le linee di controllo RTS e CTS RS-232 +non usato spesso ma alcune radio lo hanno come opzione e +alcuni, in particolare (alcuni rig Kenwood, lo richiedono). + + + + &Hardware + &Hardware + + + + Special control of CAT port control lines. + Controllo speciale delle linee di controllo della porta CAT. + + + + Force Control Lines + Forza Linee di controllo + + + + + High + Alto + + + + + Low + Basso + + + + DTR: + DTR: + + + + RTS: + RTS: + + + + How this program activates the PTT on your radio? + In che modo questo programma attiva il PTT sulla radio? + + + + PTT Method + Metodo PTT + + + + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> + <html><head/><body><p>Nessuna attivazione PTT, invece viene utilizzato il VOX automatico della radio per attivare il trasmettitore.</p><p>Usalo se non hai hardware di interfaccia radio.</p></body></html> + + + + VO&X + VO&X + + + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> + <html><head/><body><p>Utilizzare la linea di controllo DTR RS-232 per attivare / disattivare il PTT della radio, richiede l'hardware per interfacciare la linea.</p><p>Anche alcune unità di interfaccia commerciale utilizzano questo metodo.</p><p>La linea di controllo DTR della porta seriale CAT può essere usata a questo scopo o una linea di controllo DTR su una porta seriale diversa.</p></body></html> + + + + &DTR + &DTR + + + + Some radios support PTT via CAT commands, +use this option if your radio supports it and you have no +other hardware interface for PTT. + Alcune radio supportano PTT tramite comandi CAT, +usa questa opzione se la tua radio la supporta e non hai +altra interfaccia hardware per PTT. + + + + C&AT + C&AT + + + + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> + <html><head/><body><p>Usa la linea di controllo RS-232 RTS per attivare / disattivare il PTT della tua radio, richiede hardware per interfacciare la linea. </p><p>Anche alcune unità di interfaccia commerciale usano questo metodo.</p><p>La linea di controllo RTS della porta seriale CAT può essere utilizzata per questa o una linea di controllo RTS su una porta seriale diversa. Questa opzione non è disponibile sulla porta seriale CAT quando viene utilizzato il controllo del flusso hardware.</p></body></html> + + + + R&TS + R&TS + + + + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> + <html><head/><body><p>Seleziona la porta seriale RS-232 utilizzata per il controllo PTT, questa opzione è disponibile quando DTR o RTS è selezionato sopra come metodo di trasmissione.</p><p>Questa porta può essere uguale a quello utilizzato per il controllo CAT.</p><p>Per alcuni tipi di interfaccia è possibile scegliere il valore speciale CAT, utilizzato per interfacce CAT non seriali che possono controllare da remoto le linee di controllo della porta seriale ( OmniRig per esempio).</p></body></html> + + + + Modulation mode selected on radio. + Modalità di modulazione selezionata alla radio. + + + + Mode + Modo + + + + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> + <html><head/><body><p>L'USB è di solito la modalità di modulazione corretta,</p><p>a meno che la radio non abbia un'impostazione di dati speciali o modalità pacchetto</p><p>per il funzionamento di AFSK.</p></body></html> + + + + US&B + US&B + + + + Don't allow the program to set the radio mode +(not recommended but use if the wrong mode +or bandwidth is selected). + Non consentire al programma di impostare la modalità radio +(sconsigliato ma utilizzare se la modalità sbagliata +o la larghezza di banda è selezionata). + + + + + None + Nessuno + + + + If this is available then it is usually the correct mode for this program. + Se questo è disponibile, di solito è la modalità corretta per questo programma. + + + + Data/P&kt + Data/P&kt + + + + Some radios can select the audio input using a CAT command, +this setting allows you to select which audio input will be used +(if it is available then generally the Rear/Data option is best). + Alcune radio possono selezionare l'ingresso audio utilizzando un comando CAT, +questa impostazione consente di selezionare quale ingresso audio verrà utilizzato +(se disponibile, in genere l'opzione Posteriore / Dati è la migliore). + + + + Transmit Audio Source + Trasmettere la sorgente audio + + + + Rear&/Data + Rear&/Data + + + + &Front/Mic + &Front/Mic + + + + Rig: + Rig: + + + + Poll Interval: + Intervallo di Interrogazione: + + + + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> + <html><head/><body><p>Intervallo di interrogazione del rig per sapere lo status. Intervalli più lunghi significheranno che le modifiche al rig richiedono più tempo per essere rilevate.</p></body></html> + + + + s + s + + + + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> + <html><head/><body><p>Tenta di connettersi alla radio con queste impostazioni.</p><p>Il pulsante diventerà verde se la connessione ha esito positivo o rosso in caso di problemi. </p></body></html> + + + + Test CAT + Test CAT + + + + Attempt to activate the transmitter. +Click again to deactivate. Normally no power should be +output since there is no audio being generated at this time. +Check that any Tx indication on your radio and/or your +radio interface behave as expected. + Tentare di attivare il trasmettitore. +Fai di nuovo clic per disattivare. Normalmente non dovrebbe esserci nessuna +potenza in uscita poiché al momento non viene generato audio. +Verificare che qualsiasi indicazione Tx sulla radio e / o sul proprio +l'interfaccia radio si comporta come previsto. + + + + Test PTT + Prova-PTT + + + + Split Operation + Operazione in Split + + + + Fake It + Fai finta + + + + Rig + Rig + + + + A&udio + A&udio + + + + Audio interface settings + Impostazioni dell'interfaccia audio + + + + Souncard + Scheda audio + + + + Soundcard + Scheda audio + + + + Select the audio CODEC to use for transmitting. +If this is your default device for system sounds then +ensure that all system sounds are disabled otherwise +you will broadcast any systems sounds generated during +transmitting periods. + Seleziona l'audio CODEC da utilizzare per la trasmissione. +Se questo è il dispositivo predefinito per i suoni di sistema, allora +assicurarsi che tutti i suoni di sistema siano disabilitati altrimenti +trasmetterai qualsiasi suono di sistema generato durante +periodi di trasmissione. + + + + Select the audio CODEC to use for receiving. + Seleziona l'audio CODEC da utilizzare per la ricezione. + + + + &Input: + &Ingresso: + + + + Select the channel to use for receiving. + Seleziona il canale da utilizzare per la ricezione. + + + + + Mono + Mono + + + + + Left + Sinistro + + + + + Right + Destro + + + + + Both + Entrambi + + + + Select the audio channel used for transmission. +Unless you have multiple radios connected on different +channels; then you will usually want to select mono or +both here. + Seleziona il canale audio utilizzato per la trasmissione. +A meno che tu non abbia più radio collegate su differenti +canali; quindi di solito si desidera selezionare mono o +entrambi qui. + + + + Ou&tput: + Usci&ta: + + + + + Save Directory + Salva directory + + + + Loc&ation: + &Posizione: + + + + Path to which .WAV files are saved. + Percorso in cui vengono salvati i file .WAV. + + + + + TextLabel + Etichetta di testo + + + + Click to select a different save directory for .WAV files. + Fare clic per selezionare una directory di salvataggio diversa per i file .WAV. + + + + S&elect + S&eleziona + + + + + AzEl Directory + AzEl Directory + + + + Location: + Posizione: + + + + Select + Seleziona + + + + Power Memory By Band + Memoria di Potenza per banda + + + + Remember power settings by band + Ricorda le impostazioni di alimentazione per banda + + + + Enable power memory during transmit + Abilita la memoria di potenza durante la trasmissione + + + + Transmit + Trasmetti + + + + Enable power memory during tuning + Abilita la memoria di potenza durante la sintonia + + + + Tune + Accorda + + + + Tx &Macros + Tx &Macros + + + + Canned free text messages setup + Impostazione dei messaggi di testo libero + + + + &Add + &Aggiungi + + + + &Delete + &Elimina + + + + Drag and drop items to rearrange order +Right click for item specific actions +Click, SHIFT+Click and, CRTL+Click to select items + Trascina e rilascia elementi per riorganizzare l'ordine +Fare clic con il tasto destro per azioni specifiche dell'oggetto +Fare clic, MAIUSC + clic e, CRTL + clic per selezionare gli elementi + + + + Reportin&g + &Segnalazione + + + + Reporting and logging settings + Impostazioni di report e registrazione + + + + Logging + Registrazione + + + + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. + Il programma aprirà una finestra di dialogo Log QSO parzialmente completata quando si invia un messaggio di testo libero o 73. + + + + Promp&t me to log QSO + Avvisami di regis&trare il QSO + + + + Op Call: + Nominativo Op: + + + + Some logging programs will not accept the type of reports +saved by this program. +Check this option to save the sent and received reports in the +comments field. + (Registrazione=Log) + Alcuni programmi di registrazione non accettano il tipo di report +salvato da questo programma. +Seleziona questa opzione per salvare i rapporti inviati e ricevuti nel +campo commenti. + + + + d&B reports to comments + Riporta d&B nei 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 +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 + + + + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> + (Registrazione=Log) + <html><head/><body><p>Alcuni programmi di registrazione non accettano i nomi della modalità WSJT-X.</p></body></html> + + + + Con&vert mode to RTTY + Con&vertire la modalità in RTTY + + + + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> + <html><head/><body><p>Il nominativo dell'operatore, se diverso dal nominativo della stazione.</p></body></html> + + + + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> + <html><head/><body><p>Verifica che i QSO siano registrati automaticamente, quando completi. </p></body></html> + + + + Log automatically (contesting only) + (Registra=Scrivi nel Log) + Registra automaticamente (solo in contest) + + + + Network Services + Servizi di rete + + + + The program can send your station details and all +decoded signals as spots to the http://pskreporter.info web site. +This is used for reverse beacon analysis which is very useful +for assessing propagation and system performance. + Il programma può inviare i dettagli della tua stazione e tutto il resto +segnali decodificati come spot per il sito Web http://pskreporter.info. +Questo è usato per l'analisi del beacon inverso che è molto utile +per valutare la propagazione e le prestazioni del sistema. + + + + Enable &PSK Reporter Spotting + Abilita rilevamento &PSK Reporter + + + + UDP Server + UDP Server + + + + UDP Server: + UDP Server: + + + + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> + <html><head/><body><p>Nome host facoltativo del servizio di rete per ricevere decodifiche.</p><p>Formati:</p><ul style="margin-top: 0px; margin-bottom: 0px; margine-sinistra: 0px; margine-destra: 0px; -qt-list-indent: 1;"><li style="margin-top: 12px; margin-bottom: 0px; margin-left: 0px; margin- right: 0px; -qt-block-indent: 0; text-indent: 0px;">hostname</li><li style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin -right: 0px; -qt-block-indent: 0; text-indent: 0px;">Indirizzo IPv4</li><li style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px ; margin-right: 0px; -qt-block-indent: 0; text-indent: 0px;">Indirizzo IPv6</li><li style="margin-top: 0px; margin-bottom: 0px; margin-left : 0px; margine-destra: 0px; -qt-block-indent: 0; text-indent: 0px;">Indirizzo gruppo multicast IPv4</li><li style="margin-top: 0px; margin-bottom: 0px ; margin-left: 0px; margin-right: 0px; -qt-block-indent: 0; text-indent: 0px;">Indirizzo gruppo multicast IPv6</li></ul><p>Deselezionando questo campo si disabilita la trasmissione di aggiornamenti di stato UDP.</p></Body></html> + + + + UDP Server port number: + Porta del Server UDP: + + + + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> + <html><head/><body><p>Immettere il numero di porta del servizio del server UDP a cui WSJT-X deve inviare gli aggiornamenti. Se questo è zero, non verranno trasmessi aggiornamenti.</p></body></html> + + + + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> + <html><head/><body><p>Con questo abilitato WSJT-X accetterà alcune richieste di ritorno da un server UDP che riceve messaggi di decodifica.</p></body></html> + + + + Accept UDP requests + Accetta richieste UDP + + + + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> + <html><head/><body><p>Indica l'accettazione di una richiesta UDP in arrivo. L'effetto di questa opzione varia a seconda del sistema operativo e del gestore delle finestre, il suo intento è di notificare l'accettazione di una richiesta UDP in arrivo anche se questa applicazione è ridotta a icona o nascosta.</p></body></html> + + + + Notify on accepted UDP request + Notifica su richiesta UDP accettata + + + + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> + <html><head/><body><p>Ripristina la finestra da minimizzata se viene accettata una richiesta UDP.</p></body></html> + + + + Accepted UDP request restores window + Finestra di ripristino richieste UDP accettate + + + + Secondary UDP Server (deprecated) + Server UDP Secondario (obsoleto) + + + + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> + <html><head/><body><p>Se selezionato, WSJT-X trasmetterà un contatto registrato in formato ADIF al nome host e alla porta configurati.</p></body></html> + + + + Enable logged contact ADIF broadcast + Abilita trasmissione ADIF del contatto registrato + + + + Server name or IP address: + + + + + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> + <html><head/><body><p>Nome host facoltativo del programma Logger + N1MM per ricevere trasmissioni UDP ADIF. Di solito si tratta di "localhost" o indirizzo IP 127.0.0.1</p><p>Formati:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indirizzo IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indirizzo IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indirizzo di gruppo multicast IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indirizzo di gruppo multicast IPv6</li></ul><p>La cancellazione di questo campo disabiliterà la trasmissione di informazioni ADIF tramite UDP.</p></body></html> + + + + Server port number: + Numero porta Server: + + + + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> + <html><head/><body><p>Immettere il numero di porta che WSJT-X deve utilizzare per le trasmissioni UDP delle informazioni del registro ADIF. Per N1MM Logger +, questo valore dovrebbe essere 2333. Se questo è zero, non verrà trasmesso alcun aggiornamento.</p></body></html> + + + + Frequencies + Frequenze + + + + Default frequencies and band specific station details setup + Frequenze predefinite e impostazione specifiche dei dettagli della stazione per banda + + + + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> + <html><head/><body><p>Vedere &quot;Calibrazione di Frequenza&quot;nella Guida dell'utente WSJT-X per i dettagli su come determinare questi parametri per la radio.</p></body></html> + + + + Frequency Calibration + Calibrazione di Frequenza + + + + Slope: + Inclinazione: + + + + ppm + ppm + + + + Intercept: + Intercetta: + + + + Hz + Hz + + + + Working Frequencies + Frequenze di Lavoro + + + + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> + <html><head/><body><p>Fare clic con il tasto destro per mantenere l'elenco delle frequenze di lavoro.</p></body></html> + + + + Station Information + Informazioni Stazione + + + + Items may be edited. +Right click for insert and delete options. + Gli articoli possono essere modificati. +Fare clic con il tasto destro per inserire ed eliminare le opzioni. + + + + Colors + Colori + + + + Decode Highlightling + Evidenziazione Decodifica + + + + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> + <html><head/><body><p>Fare clic per scansionare nuovamente il file ADIF wsjtx_log.adi alla ricerca di informazioni se collegato prima</p></body></html> + + + + Rescan ADIF Log + Eseguire nuovamente la scansione del registro ADIF + + + + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> + <html><head/><body><p>Premere per ripristinare tutti gli elementi evidenziati sopra ai valori e alle priorità predefiniti.</p></body></html> + + + + Reset Highlighting + Ripristina l'evidenziazione + + + + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> + <html><head/><body><p>Abilitare o disabilitare utilizzando le caselle di controllo e fare clic con il pulsante destro del mouse su un elemento per modificare o annullare il colore di primo piano, il colore di sfondo o ripristinare l'elemento sui valori predefiniti. Trascina e rilascia gli elementi per cambiarne la priorità, più in alto nell'elenco ha una priorità più alta.</p><p>Nota che ogni colore di primo piano o di sfondo può essere impostato o non impostato, non impostato significa che non è assegnato per quello di quell'elemento possono essere applicati articoli di tipo e priorità inferiore.</p></body></html> + + + + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> + <html><head/><body><p>Selezionare per indicare nuove entità DXCC, quadrati della griglia e nominativi per modalità.</p></body></html> + + + + Highlight by Mode + Evidenzia per modalità + + + + Include extra WAE entities + Includi entità WAE extra + + + + Check to for grid highlighting to only apply to unworked grid fields + Verificare che l'evidenziazione della griglia si applichi solo ai campi della griglia non lavorati + + + + Only grid Fields sought + Sono stati cercati solo i campi della griglia + + + + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> + <html><head/><body><p>Controlli per la ricerca degli utenti di Logbook of the World.</p></body></html> + + + + Logbook of the World User Validation + Convalida dell'utente Logbook of the World + + + + Users CSV file URL: + URL del file CSV degli utenti: + + + + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> + <html><head/><body><p>URL del file di dati e date dell'ultimo caricamento dell'utente ARRL LotW utilizzato per evidenziare i decodificatori dalle stazioni note per caricare il loro file di registro su LotW.</p></body></html> + + + + https://lotw.arrl.org/lotw-user-activity.csv + https://lotw.arrl.org/lotw-user-activity.csv + + + + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> + <html><head/><body><p>Premere questo pulsante per recuperare l'ultimo file di dati di data e ora di caricamento dell'utente LotW.</p></body></html> + + + + Fetch Now + Scarica ora + + + + Age of last upload less than: + Periodo dell'ultimo caricamento inferiore a: + + + + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> + <html><head/><body><p>Regola questa casella di selezione per impostare la soglia del periodo dell'ultima data di caricamento dell'utente di LotW accettata come utente corrente di LotW.</p></body></html> + + + + days + giorni + + + + Advanced + Avanzato + + + + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> + <html><head/><body><p>Parametri selezionabili dall'utente per la decodifica JT65 VHF/UHF/Microonde.</p></body></html> + + + + JT65 VHF/UHF/Microwave decoding parameters + JT65 Parametri di decodifica VHF/UHF/Microonde + + + + Random erasure patterns: + Schemi di cancellazione casuali: + + + + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> + <html><head/><body><p>Il numero massimo di schemi di cancellazione per il decodificatore stocastico Reed Solomon a decisione morbida è 10^(n/2)</p></body></html> + + + + Aggressive decoding level: + Livello di decodifica aggressivo: + + + + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> + <html><head/><body><p>Livelli più alti aumenteranno la probabilità di decodifica, ma aumenteranno anche la probabilità di una decodifica falsa.</p></body></html> + + + + Two-pass decoding + Decodifica a due passaggi + + + + Special operating activity: Generation of FT4, FT8, and MSK144 messages + Attività operativa speciale: Generazione di messaggi FT4, FT8 e MSK144 + + + + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> + (Hound=Cane da caccia) + <html><head/><body><p>FT8 DXpedition mode: operator Hound chiama il DX.</p></body></html> + + + + Hound + Hound (Cane da caccia) + + + + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> + <html><head/><body><p>Contests Nordamericani VHF/UHF/Microonde e altri in cui un localizzatore di griglia a 4 caratteri è lo scambio richiesto.</p></body></html> + + + + NA VHF Contest + NA VHF Contest + + + + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> + <html><head/><body><p>Modalità FT8 DXpedition: operatore Fox (DXpedition).</p></body></html> + + + + Fox + (Fox=Volpe) + Fox + + + + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> + <html><head/><body><p>Contest VHF + Europei che richiedono un rapporto segnale, numero di serie e localizzatore a 6 caratteri.</p></body></html> + + + + EU VHF Contest + EU VHF Contest + + + + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> + <html><head/><body><p>ARRL RTTY Roundup e contests simili. Lo scambio è stato USA, provincia Canadese o &quot;DX&quot;</p></body></html> + + + + RTTY Roundup messages + Messaggi Roundup RTTY + + + + RTTY RU Exch: + Scambio RTTY RU: + + + + NJ + NJ + + + + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> + <html><head/><body><p>Scambio di Field Day ARRL: numero di trasmettitori, classe e sezione ARRL / RAC o&quot;DX&quot;.</p></body></html> + + + + ARRL Field Day + ARRL Field Day + + + + FD Exch: + Scambio FD: + + + + 6A SNJ + 6A SNJ + + + + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> + <html><head/><body><p>Contest Digi-Mode mondiale</p><p><br/></p></body></html> + + + + WW Digi Contest + WW Digi Contest + + + + Miscellaneous + Miscellanea + + + + Degrade S/N of .wav file: + Degrada S/N del file .wav: + + + + + For offline sensitivity tests + Per test di sensibilità offline + + + + dB + dB + + + + Receiver bandwidth: + Larghezza di banda ricevitore: + + + + Hz + Hz + + + + Tx delay: + Ritardo Tx: + + + + Minimum delay between assertion of PTT and start of Tx audio. + Ritardo minimo tra l'asserzione del PTT e l'avvio dell'audio Tx. + + + + s + ..s + + + + Tone spacing + Spaziatura dei toni + + + + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> + <html><head/><body><p>Genera audio Tx con una spaziatura del doppio del tono normale. Destinato a trasmettitori speciali LF / MF che utilizzano un divisore per 2 prima di generare RF.</p></body></html> + + + + x 2 + x 2 + + + + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> + <html><head/><body><p>Genera audio Tx con una spaziatura dei toni quattro volte superiore. Destinato a trasmettitori speciali LF / MF che utilizzano un divisore per 4 prima di generare RF.</p></body></html> + + + + x 4 + x 4 + + + + Waterfall spectra + Spettro Display a cascata + + + + Low sidelobes + Lobi laterali bassi + + + + Most sensitive + Più sensibile + + + + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> + <html><head/><body><p>Annulla (Annulla) o applica (OK) le modifiche alla configurazione incluso</p><p>ripristinando l'interfaccia radio e applicando eventuali modifiche alla scheda audio</p></body></html> + + + + main + + + + Fatal error + Errore fatale + + + + + Unexpected fatal error + Errore fatale inatteso + + + + Another instance may be running + Un'altra istanza potrebbe essere in esecuzione + + + + try to remove stale lock file? + Provo a rimuovere il file di blocco non aggiornato? + + + + Failed to create a temporary directory + Impossibile creare una directory temporanea + + + + + Path: "%1" + Percorso: "%1" + + + + Failed to create a usable temporary directory + Impossibile creare una directory temporanea utilizzabile + + + + Another application may be locking the directory + Un'altra applicazione potrebbe bloccare la directory + + + + Failed to create data directory + Impossibile creare la directory dei dati + + + + path: "%1" + percorso: "%1" + + + + Shared memory error + Errore di memoria condivisa + + + + Unable to create shared memory segment + Impossibile creare il segmento di memoria condivisa + + + + wf_palette_design_dialog + + + Palette Designer + Designer Tavolozza + + + + <html><head/><body><p>Double click a color to edit it.</p><p>Right click to insert or delete colors.</p><p>Colors at the top represent weak signals</p><p>and colors at the bottom represent strong</p><p>signals. You can have up to 256 colors.</p></body></html> + <html><head/><body><p>Doppio click su un colore per editarlo.</p><p>Click destro per inserire o cancellare colori.</p><p>I colori in alto rappresentano segnali deboli</p><p>e i colori in basso rappresentano segnali </p><p>forti. Puoi avere fino a 256 colori.</p></body></html> + + + From b9491862a1f956c03063bfdc1053459ce024678b Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 4 Jun 2020 23:32:29 +0100 Subject: [PATCH 045/520] Enable Italian UI translation --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4139dd9fd..a54983a5b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1105,7 +1105,7 @@ set (LANGUAGES # doesn't need to be populated) en_GB # English UK es # Spanish - #it # Italian + it # Italian ja # Japanese #no # Norwegian #pt # Portuguese From c058686bc6e1686f386e091cc4c7cfdde0c8aa91 Mon Sep 17 00:00:00 2001 From: K9AN Date: Sat, 6 Jun 2020 08:18:31 -0500 Subject: [PATCH 046/520] Override hashtable and use mycall when 22-bit hash in call_1 of i3=1 message matches hashmy22. --- lib/77bit/packjt77.f90 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/77bit/packjt77.f90 b/lib/77bit/packjt77.f90 index c5a663ccd..22cdb52fb 100644 --- a/lib/77bit/packjt77.f90 +++ b/lib/77bit/packjt77.f90 @@ -411,6 +411,10 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) read(c77,1000) n28a,ipa,n28b,ipb,ir,igrid4,i3 1000 format(2(b28,b1),b1,b15,b3) call unpack28(n28a,call_1,unpk28_success) + if(nrx.eq.1 .and. mycall13_set .and. hashmy22.eq.(n28a-2063592)) then + call_1='<'//trim(mycall13)//'>' + unpk28_success=.true. + endif if(.not.unpk28_success) unpk77_success=.false. call unpack28(n28b,call_2,unpk28_success) if(.not.unpk28_success) unpk77_success=.false. From d84861b2b3d38090116d1f1687bf977fbdf027c7 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 6 Jun 2020 14:55:48 +0100 Subject: [PATCH 047/520] =?UTF-8?q?Updated=20Catalan=20UI=20translation,?= =?UTF-8?q?=20tnx=20Xavi,=20EA3W,=20&=20C=C3=A9dric,=20EA4AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes some Alt key accelerator issues. --- translations/wsjtx_ca.ts | 591 +++++++++++++++++++-------------------- 1 file changed, 281 insertions(+), 310 deletions(-) diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index 6f8d5d58a..4c9f0ef77 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -898,16 +898,6 @@ Format: Directory - - - File - Fitxer - - - - Progress - - @@ -1460,26 +1450,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region Regió IARU - - + + Mode Mode - - + + Frequency Freqüència - - + + Frequency (MHz) Freqüència en MHz @@ -1600,152 +1590,152 @@ Error: %2 - %3 Tipus CAT no admès - + Hamlib error: %1 while %2 Error de Hamlib: %1 mentre %2 - + opening connection to rig connexió d'obertura a l'equip - + getting current frequency obtenir la freqüència actual - + getting current mode obtenir el mode actual - - + + exchanging VFOs intercanviant VFOs - - + + getting other VFO frequency obtenint una altra freqüència de VFO - + getting other VFO mode obtenint un altre mode VFO - + setting current VFO ajustar el VFO actual - + getting frequency obtenint la freqüència - + getting mode obtenint el mode - - + + getting current VFO obtenir VFO actual - - - - + + + + getting current VFO frequency obtenir la freqüència actual del VFO - - - - - - + + + + + + setting frequency ajust de freqüència - - - - + + + + getting current VFO mode obtenir el mode VFO actual - - - - - + + + + + setting current VFO mode ajust del mode VFO actual - - + + setting/unsetting split mode ajustar/desajustar mode dividid (split) - - + + setting split mode ajustar mode dividid (Split) - + setting split TX frequency and mode ajust de freqüència i mode de transmissió dividida (Split) - + setting split TX frequency ajust de freqüència dividida (Split) en TX - + getting split TX VFO mode obtenir el mode dividit (Split) en TX del VFO - + setting split TX VFO mode ajustar del mode dividid (Split) en TX del VFO - + getting PTT state obtenir l'estat del PTT - + setting PTT on activant el PTT - + setting PTT off desactivant el PTT - + setting a configuration item establir un element de configuració - + getting a configuration item obtenir un element de configuració @@ -1956,12 +1946,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity Activitat a la banda @@ -1973,11 +1963,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency Freqüència de RX @@ -2084,7 +2074,7 @@ Error(%2): %3 &Halt Tx - &Aturar TX + Aturar &TX @@ -2155,7 +2145,7 @@ en Groc quan és massa baix Search for callsign in database - Buscar l'indicatiu a la base de dades + Buscar el indicatiu a la base de dades @@ -2331,7 +2321,7 @@ en Groc quan és massa baix - + Fast Ràpid @@ -2439,7 +2429,7 @@ No està disponible per als titulars de indicatiu no estàndard. - + Fox Fox @@ -3151,415 +3141,415 @@ La llista es pot mantenir a la configuració (F2). Quant a WSJT-X - + Waterfall Cascada - + Open Obrir - + Ctrl+O Ctrl+O - + Open next in directory Obre el següent directori - + Decode remaining files in directory Descodificar els fitxers restants al directori - + Shift+F6 - Majúscules+F6 + Maj.+F6 - + Delete all *.wav && *.c2 files in SaveDir Esborrar tots els fitxers *.wav i *.c2 - + None Cap - + Save all Guardar-ho tot - + Online User Guide Guia d'usuari online - + Keyboard shortcuts Dreceres de teclat - + Special mouse commands Ordres especials del ratolí - + JT9 JT9 - + Save decoded Guarda el descodificat - + Normal Normal - + Deep Profunda - + Monitor OFF at startup Monitor apagat a l’inici - + Erase ALL.TXT Esborrar el fitxer ALL.TXT - + Erase wsjtx_log.adi Esborrar el fitxer wsjt_log.adi - + Convert mode to RTTY for logging Converteix el mode a RTTY després de registrar el QSO - + Log dB reports to Comments Posa els informes de recepció en dB als comentaris - + Prompt me to log QSO Inclòure el QSO al log - + Blank line between decoding periods Línia en blanc entre els períodes de descodificació - + Clear DX Call and Grid after logging Neteja l'indicatiu i la graella de DX després de registrar el QSO - + Display distance in miles Distància en milles - + Double-click on call sets Tx Enable Fes doble clic als conjunts d'indicatius d'activar TX - - + + F7 F7 - + Tx disabled after sending 73 TX desactivat després d’enviar 73 - - + + Runaway Tx watchdog Seguretat de TX - + Allow multiple instances Permetre diverses instàncies - + Tx freq locked to Rx freq TX freq bloquejat a RX freq - + JT65 JT65 - + JT9+JT65 JT9+JT65 - + Tx messages to Rx Frequency window Missatges de TX a la finestra de freqüència de RX - + Gray1 Gris1 - + Show DXCC entity and worked B4 status Mostra l'entitat DXCC i l'estat de B4 treballat - + Astronomical data Dades astronòmiques - + List of Type 1 prefixes and suffixes Llista de prefixos i sufixos de tipus 1 - + Settings... Configuració... - + Local User Guide Guia d'usuari local - + Open log directory Obre el directori del log - + JT4 JT4 - + Message averaging Mitjana de missatges - + Enable averaging Activa la mitjana - + Enable deep search Activa la cerca profunda - + WSPR WSPR - + Echo Graph Gràfic d'Eco - + F8 F8 - + Echo Eco - + EME Echo mode Mode EME Eco - + ISCAT ISCAT - + Fast Graph Gràfic ràpid - + F9 F9 - + &Download Samples ... &Descarrega mostres ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>Descarrega fitxers d’àudio d’exemple mostrant els diversos modes.</p></body></html> - + MSK144 MSK144 - + QRA64 QRA64 - + Release Notes Notes de llançament - + Enable AP for DX Call Habilita AP per al indicatiu de DX - + FreqCal FreqCal - + Measure reference spectrum Mesura l’espectre de referència - + Measure phase response Mesura la resposta en fase - + Erase reference spectrum Esborra l'espectre de referència - + Execute frequency calibration cycle Executa el cicle de calibració de freqüència - + Equalization tools ... Eines d'equalització ... - + WSPR-LF WSPR-LF - + Experimental LF/MF mode Mode experimental LF/MF - + FT8 FT8 - - + + Enable AP Activa AP - + Solve for calibration parameters Resol els paràmetres de calibratge - + Copyright notice Avís de drets d’autor - + Shift+F1 - Majúscules+F1 + Maj.+F1 - + Fox log Log Fox - + FT8 DXpedition Mode User Guide Guia de l'usuari del mode DXpedition a FT8 - + Reset Cabrillo log ... Restableix el log de Cabrillo ... - + Color highlighting scheme Esquema de ressaltar el color - + Contest Log Log de Concurs - + Export Cabrillo log ... Exporta el log de Cabrillo ... - + Quick-Start Guide to WSJT-X 2.0 Guia d'inici ràpid a WSJT-X 2.0 - + Contest log Log de Concurs - + Erase WSPR hashtable Esborra la taula WSPR - + FT4 FT4 @@ -3570,8 +3560,8 @@ La llista es pot mantenir a la configuració (F2). - - + + Receiving Rebent @@ -3607,21 +3597,21 @@ La llista es pot mantenir a la configuració (F2). - - - - + + + + + - + - + - + - + - - + Message Missatge @@ -3647,22 +3637,22 @@ La llista es pot mantenir a la configuració (F2). - + Improper mode Mode inadequat - + File Open Error Error al obrir el fitxer - - - - + + + + Cannot open "%1" for append: %2 No es pot obrir "%1" per annexar: %2 @@ -3683,15 +3673,15 @@ La llista es pot mantenir a la configuració (F2). - - + + Single-Period Decodes Descodificacions d'un sol període - - + + Average Decodes Mitjans descodificats @@ -3712,7 +3702,7 @@ La llista es pot mantenir a la configuració (F2). - + Cannot open "%1" for writing: %2 No es pot obrir "%1" per escriure: %2 @@ -3816,32 +3806,32 @@ La llista es pot mantenir a la configuració (F2). No s’obriran més fitxers. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Tria una altra freqüència de TX. El WSJT-X no transmetrà de manera conscient un altre mode a la sub-banda WSPR a 30 m. - + WSPR Guard Band Banda de Guàrdia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Tria una altra freqüència de treball. WSJT-X no funcionarà en mode Fox a les sub-bandes FT8 estàndard. - + Fox Mode warning Avís de mode Fox - + Last Tx: %1 Últim TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3852,183 +3842,183 @@ Per fer-ho, comprova "Activitat operativa especial" i Concurs EU VHF a la Configuració | Pestanya avançada. - + Should you switch to ARRL Field Day mode? Has de canviar al mode de Field Day de l'ARRL ? - + Should you switch to RTTY contest mode? Has de canviar al mode de concurs RTTY? - - - - + + + + Add to CALL3.TXT Afegeix a CALL3.TXT - + Please enter a valid grid locator Introduïu un locator vàlid - + Cannot open "%1" for read/write: %2 No es pot obrir "%1" per llegir o escriure: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 ja és a CALL3.TXT, vols substituir-lo ? - + Warning: DX Call field is empty. Avís: el camp de indicatiu DX està buit. - + Log file error Error al fitxer de log - + Cannot open "%1" No es pot obrir "%1" - + Error sending log to N1MM Error al enviar el log a N1MM - + Write returned "%1" Escriptura retornada "%1" - + Stations calling DXpedition %1 Estacions que criden a DXpedition %1 - + Hound Hound - + Tx Messages Missatges de TX - - - + + + Confirm Erase Confirma Esborrar - + Are you sure you want to erase file ALL.TXT? Estàs segur que vols esborrar el fitxer ALL.TXT ? - - + + Confirm Reset Confirma que vols Restablir - + Are you sure you want to erase your contest log? Estàs segur que vols esborrar el log del concurs ? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Si fas això, suprimiràs tots els registres de QSO del concurs actual. Es conservaran al fitxer de log ADIF, però no es podran exportar al log de Cabrillo. - + Cabrillo Log saved Log Cabrillo desat - + Are you sure you want to erase file wsjtx_log.adi? Estàs segur que vols esborrar el fitxer wsjtx_log.adi ? - + Are you sure you want to erase the WSPR hashtable? Estàs segur que vols esborrar la taula del WSPR ? - + VHF features warning Les característiques de VHF tenen un avís - + Tune digital gain Guany de sintonització digital - + Transmit digital gain Guany digital de transmissió - + Prefixes Prefixos - + Network Error Error de xarxa - + Error: %1 UDP server %2:%3 Error: %1 UDP server %2:%3 - + File Error Error al fitxer - + Phase Training Disabled Entrenament de fase Desactivat - + Phase Training Enabled Entrenament de fase activat - + WD:%1m WD:%1m - - + + Log File Error Error al fitxer de log - + Are you sure you want to clear the QSO queues? Estàs segur que vols esborrar les cues de QSO ? @@ -4158,19 +4148,19 @@ UDP server %2:%3 No s'ha pogut iniciar el servidor COM OmniRig - - + + OmniRig: don't know how to set rig frequency OmniRig: no sé com establir la freqüència de l'equip - - + + OmniRig: timeout waiting for update from rig OmniRig: el temps d'espera a finalitzat per actualitzar des de l'equip - + OmniRig COM/OLE error: %1 at %2: %3 (%4) OmniRig Error COM/OLE: %1 a %2: %3 (%4) @@ -4186,8 +4176,9 @@ UDP server %2:%3 QObject + Invalid rig name - \ & / not allowed - Nom d'equip no vàlid: \ & / no permès + Nom d'equip no vàlid: \ & / no permès @@ -4322,36 +4313,6 @@ Error(%2): %3 Download Samples Descarrega mostres - - - &Abort - - - - - &Refresh - - - - - &Details - - - - - Base URL for samples: - - - - - Only use HTTP: - - - - - Check this is you get SSL/TLS errors - - Input Error @@ -4777,7 +4738,7 @@ Error(%2): %3 M&y Grid: - E&l meu Locator: + El meu L&ocator: @@ -4842,7 +4803,7 @@ Error(%2): %3 &Tx messages to Rx frequency window - &Missatges de TX a la finestra de la freqüència de RX + Missa&tges de TX a la finestra de la freqüència de RX @@ -4897,7 +4858,7 @@ Error(%2): %3 &Blank line between decoding periods - &Línia en blanc entre els períodes de descodificació + Lín&ia en blanc entre els períodes de descodificació @@ -4994,7 +4955,7 @@ missatge de text lliure. Di&sable Tx after sending 73 - De&sactiva TX després d’enviar 73 + Desa&ctiva TX després d’enviar 73 @@ -5136,12 +5097,12 @@ període tranquil quan es fa la descodificació. D&efault - Per d&efecte + &Per defecte Se&ven - Se&t + S&et @@ -5211,7 +5172,7 @@ uns pocs, particularment alguns equips de Kenwood, ho requereixen. &Hardware - &Maquinari + Ma&quinari @@ -5559,7 +5520,7 @@ els dos canals. S&elect - S&elecciona + Sele&cciona @@ -5634,7 +5595,7 @@ Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items Arrossega i deixa anar els elements per reorganitzar l'ordre. Fes clic amb el botó dret per a les accions específiques de l’element. -Fes clic, MAJÚ + clic i, CTRL+clic per seleccionar els elements. +Fes clic, MAJ. + clic i, CTRL+clic per seleccionar els elements. @@ -5692,7 +5653,7 @@ Indicatiu DX i Locator DX quan s’envia un missatge de text 73 o lliure. Clear &DX call and grid after logging - Buida les graelles Indicatiu DX i Locator&DX després del registre + Buida les graelles Indicatiu DX i Locator &DX després del registre @@ -6235,104 +6196,114 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació.main - + Fatal error Error fatal - + Unexpected fatal error Error fatal inesperat + Where <rig-name> is for multi-instance support. - On <rig-name> és per a suport de múltiples instàncies. + On <rig-name> és per a suport de múltiples instàncies. + rig-name - nom de l'equip + nom de l'equip + Where <configuration> is an existing one. - On <configuration> és ja existent. + On <configuration> és ja existent. + configuration - configuració + configuració + Where <language> is <lang-code>[-<country-code>]. - On <language> és <lang-code>[-<country-code>]. + On <language> és <lang-code>[-<country-code>]. + language - Idioma + Idioma + Writable files in test location. Use with caution, for testing only. - Fitxers amb permis d'escriptura a la ubicació de proves. Utilitzar amb precaució, només per a proves. + Fitxers amb permis d'escriptura a la ubicació de proves. Utilitzar amb precaució, només per a proves. + Command line error - Error de línia de comandament - - - Command line help - Ajuda de la línia de comandaments - - - Application version - Versió d’aplicació + Error de línia de comandament + Command line help + Ajuda de la línia de comandaments + + + + Application version + Versió d’aplicació + + + Another instance may be running Una altra instància pot ser que s'estigui executant - + try to remove stale lock file? intenteu eliminar el fitxer de bloqueig no realitzat? - + Failed to create a temporary directory No s'ha pogut crear el directori temporal - - + + Path: "%1" Ruta: "%1" - + Failed to create a usable temporary directory No s'ha pogut crear un directori temporal utilitzable - + Another application may be locking the directory Una altra aplicació pot ser que bloquegi del directori - + Failed to create data directory No s'ha pogut crear el directori de dades - + path: "%1" Ruta: "%1" - + Shared memory error Error de memòria compartida - + Unable to create shared memory segment No es pot crear el segment de memòria compartida From 91d7c0124ffbd1d320fbdc5d3e479a6c5fa04c5d Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 7 Jun 2020 15:47:44 +0100 Subject: [PATCH 048/520] Remove testing only Hamlib dummy rig model --- Transceiver/HamlibTransceiver.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Transceiver/HamlibTransceiver.cpp b/Transceiver/HamlibTransceiver.cpp index 98afb2683..ef301b1da 100644 --- a/Transceiver/HamlibTransceiver.cpp +++ b/Transceiver/HamlibTransceiver.cpp @@ -65,6 +65,13 @@ namespace { TransceiverFactory::Transceivers * rigs = reinterpret_cast (callback_data); + // We can't use this one because it is only for testing Hamlib and + // would confuse users, possibly causing operating on the wrong frequency! + if (RIG_MODEL_DUMMY_NOVFO == caps->rig_model) + { + return 1; + } + QString key; if (RIG_MODEL_DUMMY == caps->rig_model) { From 9935ef8706ea1d34feddb8057cc2de49f8147653 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 7 Jun 2020 16:48:50 +0100 Subject: [PATCH 049/520] Make eliding the useless dummy rig model conditional on it existing --- Transceiver/HamlibTransceiver.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Transceiver/HamlibTransceiver.cpp b/Transceiver/HamlibTransceiver.cpp index ef301b1da..ea30a5b17 100644 --- a/Transceiver/HamlibTransceiver.cpp +++ b/Transceiver/HamlibTransceiver.cpp @@ -66,11 +66,14 @@ namespace TransceiverFactory::Transceivers * rigs = reinterpret_cast (callback_data); // We can't use this one because it is only for testing Hamlib and - // would confuse users, possibly causing operating on the wrong frequency! + // would confuse users, possibly causing operating on the wrong + // frequency! +#ifdef RIG_MODEL_DUMMY_NOVFO if (RIG_MODEL_DUMMY_NOVFO == caps->rig_model) { return 1; } +#endif QString key; if (RIG_MODEL_DUMMY == caps->rig_model) From bcfa4526d2bcd27f9775fe6ad4d607c1e36623d3 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 7 Jun 2020 13:02:27 -0400 Subject: [PATCH 050/520] Clear DX Grid after any change in DX Call. (Is this the best way to do it?) --- widgets/mainwindow.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 1f7313a54..48c6ebc73 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5547,6 +5547,7 @@ void MainWindow::on_tx6_editingFinished() //tx6 edited void MainWindow::on_dxCallEntry_textChanged (QString const& call) { m_hisCall = call; + ui->dxGridEntry->clear(); statusChanged(); statusUpdate (); } From 2973c8dad8d832269a1e790414e5f35fd96f80c4 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 7 Jun 2020 13:27:49 -0400 Subject: [PATCH 051/520] Remove the popup message that " was not found in CALL3.TXT". --- widgets/mainwindow.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 48c6ebc73..c26a1e362 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5337,10 +5337,6 @@ void MainWindow::lookup(bool lookupButtonClicked) for(int i=0; i<999999; i++) { n=f.readLine(c,sizeof(c)); if(n <= 0) { - if(lookupButtonClicked) { - QString msg=hisCall + tr(" not found in CALL3.TXT"); - MessageBox::information_message (this, msg); - } if(!hisgrid0.contains(grid_regexp)) { ui->dxGridEntry->clear(); } From 3ad2a4c2777971d196ee948f1fbbc27f937b9c34 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 7 Jun 2020 13:32:18 -0400 Subject: [PATCH 052/520] Remove a no-longer-used parameter from calls to lookup(). --- widgets/mainwindow.cpp | 8 ++++---- widgets/mainwindow.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index c26a1e362..a6ab9c8c2 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -2066,7 +2066,7 @@ void MainWindow::keyPressEvent (QKeyEvent * e) break; case Qt::Key_L: if(e->modifiers() & Qt::ControlModifier) { - lookup(true); + lookup(); genStdMsgs(m_rpt); return; } @@ -4916,7 +4916,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie if (hisgrid.contains (grid_regexp)) { if(ui->dxGridEntry->text().mid(0,4) != hisgrid) ui->dxGridEntry->setText(hisgrid); } - lookup(false); + lookup(); m_hisGrid = ui->dxGridEntry->text(); QString rpt = message.report(); @@ -5324,7 +5324,7 @@ void MainWindow::clearDX () m_QSOProgress = CALLING; } -void MainWindow::lookup(bool lookupButtonClicked) +void MainWindow::lookup() { QString hisCall {ui->dxCallEntry->text()}; QString hisgrid0 {ui->dxGridEntry->text()}; @@ -5364,7 +5364,7 @@ void MainWindow::lookup(bool lookupButtonClicked) void MainWindow::on_lookupButton_clicked() //Lookup button { - lookup(true); + lookup(); } void MainWindow::on_addButton_clicked() //Add button diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 473761afa..82f879fcd 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -700,7 +700,7 @@ private: void genStdMsgs(QString rpt, bool unconditional = false); void genCQMsg(); void clearDX (); - void lookup(bool lookupButtonClicked); + void lookup(); void ba2msg(QByteArray ba, char* message); void msgtype(QString t, QLineEdit* tx); void stub(); From efae4177faa8d5489155bc66431c07ebd0bf267e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 8 Jun 2020 21:05:22 +0100 Subject: [PATCH 053/520] Chinese & HK Chinese UI translation updates, tnx Sze-to, VR2UPU --- translations/wsjtx_zh.ts | 362 ++++++++++++++++-------------------- translations/wsjtx_zh_HK.ts | 362 ++++++++++++++++-------------------- 2 files changed, 320 insertions(+), 404 deletions(-) diff --git a/translations/wsjtx_zh.ts b/translations/wsjtx_zh.ts index eda368a41..89017e936 100644 --- a/translations/wsjtx_zh.ts +++ b/translations/wsjtx_zh.ts @@ -6,7 +6,7 @@ &Delete ... - 删除&D ... + 删除(&D) ... @@ -195,7 +195,7 @@ &Set Rx && Tx Offset - 设置接收 & & 发射偏频&S + 设置接收 & & 发射偏频(&S) @@ -203,7 +203,7 @@ Freq(MHz) - 频率(MHz) + 频率(MHz) @@ -312,7 +312,7 @@ New DXCC on Band - 波段 新前缀 + 新DXCC 波段 @@ -322,12 +322,12 @@ New Grid on Band - 波段 新网格 + 新网格 波段 New Call on Band - 波段 新呼号 + 新呼号 波段 @@ -342,7 +342,7 @@ New Continent on Band - 波段 新大洲 + 新大洲 波段 @@ -352,7 +352,7 @@ New CQ Zone on Band - 波段 新CQ区 + 新CQ区 波段 @@ -362,7 +362,7 @@ New ITU Zone on Band - 波段 新ITU区 + 新ITU区 波段 @@ -372,13 +372,13 @@ &Delete - 删除&D + 删除(&D) &Insert ... - 插入&I ... + 插入(&I) ... @@ -398,27 +398,27 @@ path: "%1" - 目录: "%1" + 目录: "%1" &Load ... - 加载&L ... + 加载(&L) ... &Save as ... - 另存为&S ... + 另存为(&S) ... &Merge ... - 合并&M ... + 合并(&M) ... &Reset - 重置&R + 重置(&R) @@ -500,7 +500,7 @@ Format: You must input a valid ARRL RTTY Roundup exchange - 您必须输入有效的 ARRL RTTY Roundup 交换 + 您必须输入有效的 ARRL RTTY Roundup 交换数据 @@ -713,7 +713,7 @@ Format: &Foreground color ... - 字体颜色&F... + 字体颜色(&F) ... @@ -723,12 +723,12 @@ Format: &Unset foreground color - 清除字体颜色&U + 清除字体颜色(&U) &Background color ... - 底色&B ... + 底色(&B) ... @@ -738,12 +738,12 @@ Format: U&nset background color - 清除底色&n + 未设置背景颜色(&n) &Reset this item to defaults - 将此项重置为默认值&R + 将此项重置为默认值(&R) @@ -771,7 +771,7 @@ Format: New DXCC on Band - 波段新DXCC + 新DXCC 波段 @@ -781,7 +781,7 @@ Format: New Grid on Band - 波段新网格 + 新网格 波段 @@ -791,7 +791,7 @@ Format: New Call on Band - 波段未曾通联过 + 未曾通联过 波段 @@ -801,7 +801,7 @@ Format: New Continent on Band - 波段新大洲 + 新大洲 波段 @@ -811,7 +811,7 @@ Format: New CQ Zone on Band - 波段新 CQ Zone + 新 CQ Zone 波段 @@ -821,7 +821,7 @@ Format: New ITU Zone on Band - 波段新 ITU Zone + 新 ITU Zone 波段 @@ -831,12 +831,12 @@ Format: f/g unset - f/g 未设置 + 字體颜色未设置 b/g unset - b/g 未设置 + 背景颜色未设置 @@ -849,17 +849,17 @@ Format: &Delete - 删除&D + 删除(&D) &Insert ... - 插入&I... + 插入(&I) ... Insert &after ... - 插入之后&a... + 插入之后(&a)... @@ -891,12 +891,12 @@ Format: File - 文件 + 文件 Progress - + 进度 @@ -986,7 +986,7 @@ Error: %2 - %3 &Erase - 清除&E + 擦除(&E) @@ -1077,7 +1077,7 @@ Error: %2 - %3 Freq (Hz) - 频率( Hz) + 频率 (Hz) @@ -1087,7 +1087,7 @@ Error: %2 - %3 Delay (ms) - 延迟( ms) + 延迟 (ms) @@ -1117,7 +1117,7 @@ Error: %2 - %3 Relative Power (dB) - 相对功率( dB) + 相对功率 (分贝) @@ -1145,12 +1145,12 @@ Error: %2 - %3 Configuration to Clone From - 从中克隆的配置 + 从克隆中的配置 &Source Configuration Name: - 源配置名称&S: + 源配置名称(&S): @@ -1173,7 +1173,7 @@ Error: %2 - %3 Contest: - 比赛: + 竞赛: @@ -1253,7 +1253,7 @@ Error: %2 - %3 Name: - 名稱: + 姓名: @@ -1386,7 +1386,7 @@ Error: %2 - %3 &Export ADIF ... - 导出 ADIF&E ... + 导出 ADIF(&E) ... @@ -1411,7 +1411,7 @@ Error: %2 - %3 &Reset ... - 重置&R ... + 重置(&R) ... @@ -1439,7 +1439,7 @@ Error: %2 - %3 &Mode: - 模式&M: + 模式(&M): @@ -1974,17 +1974,17 @@ Error(%2): %3 CQ only - 仅限 CQ + 仅显示 CQ Enter this QSO in log - 在日志中输入此通联 + 在日志中输入此通联纪录 Log &QSO - 纪录 &QSO + 纪录通联(&Q) @@ -1994,7 +1994,7 @@ Error(%2): %3 &Stop - 停止&S + 停止(&S) @@ -2004,7 +2004,7 @@ Error(%2): %3 &Monitor - 监听&M + 监听(&M) @@ -2019,7 +2019,7 @@ Error(%2): %3 &Erase - 擦除&E + 擦除(&E) @@ -2049,7 +2049,7 @@ Error(%2): %3 &Decode - 解码&D + 解码(&D) @@ -2064,7 +2064,7 @@ Error(%2): %3 E&nable Tx - 启用发射&n + 启用发射(&n) @@ -2074,7 +2074,7 @@ Error(%2): %3 &Halt Tx - 停止发射&H + 停止发射(&H) @@ -2089,7 +2089,7 @@ Error(%2): %3 &Tune - 调谐&T + 调谐(&T) @@ -2150,7 +2150,7 @@ Yellow when too low &Lookup - 检索&L + 检索(&L) @@ -2343,22 +2343,22 @@ Yellow when too low <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> - <html><head/><body><p>选择以呼叫第一个解码的响应器到我的 CQ.</p></body></html> + <html><head/><body><p>选择以呼叫第一个解码的响应我的 CQ.</p></body></html> Check to call the first decoded responder to my CQ. - 选择以呼叫第一个解码的响应器到我的 CQ. + 选择以呼叫第一个解码的响应我的 CQ. Call 1st - 呼叫第一 + 呼叫第一个解码 Check to generate "@1250 (SEND MSGS)" in Tx6. - 选择以生成 "@1250 (SEND MSGS)" 在发射6. + 选择以生成 "@1250 (发送信息)" 在发射6. @@ -2436,12 +2436,12 @@ Not available to nonstandard callsign holders. <html><head/><body><p>Check to monitor Sh messages.</p></body></html> - <html><head/><body><p>选择以监视 Sh 信息.</p></body></html> + <html><head/><body><p>选择以监视速记信息.</p></body></html> Check to monitor Sh messages. - 选择以监视 Sh 信息. + 选择以监视速记信息. @@ -2811,7 +2811,7 @@ list. The list can be maintained in Settings (F2). dB - + 分贝 @@ -2837,7 +2837,7 @@ list. The list can be maintained in Settings (F2). R+dB - + R+分贝 @@ -2877,42 +2877,42 @@ list. The list can be maintained in Settings (F2). Max dB - 最大 dB + 最大分贝 CQ AF - + CQ 非洲 CQ AN - + CQ 南极 CQ AS - + CQ 亚洲 CQ EU - + CQ 欧洲 CQ NA - + CQ 北美 CQ OC - + CQ 大洋洲 CQ SA - + CQ 南美 @@ -2988,7 +2988,7 @@ list. The list can be maintained in Settings (F2). Call - 呼叫 + 呼号 @@ -3385,7 +3385,7 @@ list. The list can be maintained in Settings (F2). Echo - 回波 + @@ -3410,7 +3410,7 @@ list. The list can be maintained in Settings (F2). &Download Samples ... - 下载样本&D ... + 下载样本(&D) ... @@ -3659,7 +3659,7 @@ list. The list can be maintained in Settings (F2). Error saving c2 file - 保存c2文件出错误 + 保存 c2 文件出错误 @@ -3834,6 +3834,7 @@ list. The list can be maintained in Settings (F2). To do so, check 'Special operating activity' and 'EU VHF Contest' on the Settings | Advanced tab. 是否应切换到 欧洲 VHF 竞赛模式? + 为此, 请检查 '特殊操作活动' 和 设置高级选项卡上的 '欧洲 VHF 竞赛'. @@ -3869,7 +3870,8 @@ To do so, check 'Special operating activity' and %1 is already in CALL3.TXT, do you wish to replace it? - %1 已经在 CALL3.TXT, 你想替换它吗? + %1 +已经在 CALL3.TXT, 你想替换它吗? @@ -4054,32 +4056,32 @@ UDP 服务器 %2:%3 &Switch To - 切换到&S + 切换到(&S) &Clone - 克隆&C + 克隆(&C) Clone &Into ... - 克隆到&I ... + 克隆到(&I) ... R&eset - 重置&e + 重置(&e) &Rename ... - 重新命名&R ... + 重新命名(&R) ... &Delete - 删除&D + 删除(&D) @@ -4127,7 +4129,7 @@ UDP 服务器 %2:%3 &New name: - 新名称&N: + 新名称(&N): @@ -4171,8 +4173,9 @@ UDP 服务器 %2:%3 QObject + Invalid rig name - \ & / not allowed - 无效的无线电设备名称 - \ & / 不允许 + 无效的无线电设备名称 - \ & / 不允许 @@ -4310,32 +4313,32 @@ Error(%2): %3 &Abort - + 中止 (&A) &Refresh - + 刷新 (&R) &Details - + 详情 (&D) Base URL for samples: - + 样本下载网址: Only use HTTP: - + 仅使用 HTTP: Check this is you get SSL/TLS errors - + 选择, 当你得到SSL/TLS错误 @@ -4408,7 +4411,7 @@ Error(%2): %3 Error - 出错误 + 错误 @@ -4421,12 +4424,12 @@ Error(%2): %3 An error opening the audio output device has occurred. - 打开音频输出设备时出错误. + 打开音频输出设备时错误. An error occurred during write to the audio output device. - 写入音频输出设备期间出错误. + 写入音频输出设备期间错误. @@ -4471,7 +4474,7 @@ Error(%2): %3 Error - 出错误 + 错误 @@ -4489,7 +4492,7 @@ Error(%2): %3 &Band: - 波段&B: + 波段(&B): @@ -4499,7 +4502,7 @@ Error(%2): %3 &Antenna: - 天线&A: + 天线(&A): @@ -4593,7 +4596,7 @@ Error(%2): %3 Spec - + 佔高 @@ -4673,7 +4676,7 @@ Error(%2): %3 Hz - + 赫兹 @@ -4737,7 +4740,7 @@ Error(%2): %3 Genera&l - 一般&l + 一般(&l) @@ -4752,7 +4755,7 @@ Error(%2): %3 My C&all: - 我的呼号&a: + 我的呼号(&a): @@ -4762,12 +4765,12 @@ Error(%2): %3 M&y Grid: - 我的网格&y: + 我的网格(&y): <html><head/><body><p>Maidenhead locator, preferably 6 characters.</p></body></html> - <html><head/><body><p>梅登黑德定位器, 最好是 6 个字符.</p></body></html> + <html><head/><body><p>梅登黑德定位, 最好是 6 个字符.</p></body></html> @@ -4827,7 +4830,7 @@ Error(%2): %3 &Tx messages to Rx frequency window - 发出讯息在接收信息窗口显示&T + 发出讯息在接收信息窗口显示(&T) @@ -4882,7 +4885,7 @@ Error(%2): %3 &Blank line between decoding periods - 每解码周期插入间隔行&B + 每解码周期插入间隔行(&B) @@ -4892,7 +4895,7 @@ Error(%2): %3 Display dista&nce in miles - 显示距离为英里&n + 显示距离为英里(&n) @@ -4952,7 +4955,7 @@ Error(%2): %3 Mon&itor off at startup - 开启时关闭监听&i + 开启时关闭监听(&i) @@ -4979,7 +4982,7 @@ text message. Di&sable Tx after sending 73 - 发送 73 后关闭发射&s + 发送 73 后关闭发射(&s) @@ -4989,12 +4992,12 @@ text message. CW ID a&fter 73 - 73发出后用CW模式发放你的呼号&f + 73发出后用CW模式发放你的呼号(&f) Periodic CW ID Inter&val: - 发射CW信息时间间隔&v: + 发射CW信息时间间隔(&v): @@ -5015,7 +5018,7 @@ quiet period when decoding is done. Doubl&e-click on call sets Tx enable - 双击呼号集启用发射l&e + 双击呼号集启用发射(&e) @@ -5025,7 +5028,7 @@ quiet period when decoding is done. &Radio - 电台&R + 电台(&R) @@ -5121,7 +5124,7 @@ quiet period when decoding is done. D&efault - 默认值&e + 默认值(&e) @@ -5172,7 +5175,7 @@ quiet period when decoding is done. &None - + 无(&N) @@ -5196,7 +5199,7 @@ a few, particularly some Kenwood rigs, require it). &Hardware - 硬件&H + 硬件(&H) @@ -5230,6 +5233,11 @@ a few, particularly some Kenwood rigs, require it). RTS: + + + How this program activates the PTT on your radio? + 此程序如何激活无线电设备上的 PTT? + PTT Method @@ -5245,6 +5253,11 @@ a few, particularly some Kenwood rigs, require it). VO&X + + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> + <html><head/><body><p>使用 RS-232 DTR 控制线路切换无线电设备的 PTT, 需要硬件来接口线路.</p><p>某些商业接口单元也使用此方法.</p><p>CAT 串行端口的 DTR 控制线路可用于此或可用于其他串行端口上的 DTR 控制线路.</p></body></html> + &DTR @@ -5264,6 +5277,11 @@ PTT的其它硬件接口. C&AT + + + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> + <html><head/><body><p>使用 RS-232 RTS 控制线路切换無線電設備的 PTT, 需要硬件来接口线路.</p><p>某些商业接口单元也使用此方法.</p><p>CAT 串行端口的 RTS 控制线路可用于此或可能用于其他串行端口上的 RTS 控制线路. 请注意, 使用硬件流控制时, CAT 串行端口上不可用此选项.</p></body></html> + R&TS @@ -5292,7 +5310,7 @@ PTT的其它硬件接口. US&B - 上边带&B + 上边带(&B) @@ -5307,12 +5325,17 @@ or bandwidth is selected). None - + + + + + If this is available then it is usually the correct mode for this program. + 如果这是可用的, 那么它通常是这个程序的正确模式. Data/P&kt - 数据/封包&k + 数据/封包(&k) @@ -5336,7 +5359,7 @@ this setting allows you to select which audio input will be used &Front/Mic - 前方/麦克风&F + 前方/麦克风(&F) @@ -5356,7 +5379,7 @@ this setting allows you to select which audio input will be used s - + @@ -5404,7 +5427,7 @@ radio interface behave as expected. A&udio - 音频&u + 音频(&u) @@ -5419,7 +5442,7 @@ radio interface behave as expected. Soundcard - 声卡 + 声效卡 @@ -5442,7 +5465,7 @@ transmitting periods. &Input: - 输入&I: + 输入(&I): @@ -5487,7 +5510,7 @@ both here. Ou&tput: - 输出&t: + 输出(&t): @@ -5498,7 +5521,7 @@ both here. Loc&ation: - 目录位置&a: + 目录位置(&a): @@ -5519,7 +5542,7 @@ both here. S&elect - 选择&e + 选择(&e) @@ -5570,7 +5593,7 @@ both here. Tx &Macros - 自定义文字&M + 自定义文字(&M) @@ -5580,12 +5603,12 @@ both here. &Add - 增加&A + 增加(&A) &Delete - 删除&D + 删除(&D) @@ -5599,7 +5622,7 @@ Click, SHIFT+Click and, CRTL+Click to select items Reportin&g - 报告&g + 报告(&g) @@ -5619,7 +5642,7 @@ Click, SHIFT+Click and, CRTL+Click to select items Promp&t me to log QSO - 提示我记录通联日志&t + 提示我记录通联日志(&t) @@ -5743,7 +5766,7 @@ for assessing propagation and system performance. Notify on accepted UDP request - 在接受UDP的请求时通知 + 接受UDP的请求时通知 @@ -5828,7 +5851,7 @@ for assessing propagation and system performance. Hz - + 赫兹 @@ -5892,31 +5915,6 @@ Right click for insert and delete options. Highlight by Mode 按模式突出显示 - - - <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - <html><head/><body><p>单击以再次扫描 wsjtx_log.adi ADIF 文件, 以便曾经通联信息</p></body></html> - - - - How this program activates the PTT on your radio? - 此程序如何激活无线电设备上的 PTT? - - - - <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> - <html><head/><body><p>使用 RS-232 DTR 控制线路切换无线电设备的 PTT, 需要硬件来接口线路.</p><p>某些商业接口单元也使用此方法 .</p><p>CAT 串行端口的 DTR 控制线路可用于此或可用于其他串行端口上的 DTR 控制线路 .</p></body></html> - - - - <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> - <html><head/><body><p>使用 RS-232 RTS 控制线路切换无线电设备的 PTT,需要硬件来接口线路.</p><p>某些商业接口单元也使用此方法.</p><p>CAT 串行端口的 RTS 控制线路可用于此或可能用于其他串行端口上的 RTS 控制线路. 请注意, 使用硬件流控制时, CAT 串行端口上不可用此选项.</p></body></html> - - - - If this is available then it is usually the correct mode for this program. - 如果这是可用的, 那么它通常是这个程序的正确模式. - Include extra WAE entities @@ -6138,7 +6136,7 @@ Right click for insert and delete options. dB - + 分贝 @@ -6148,7 +6146,7 @@ Right click for insert and delete options. Hz - + 赫兹 @@ -6163,7 +6161,7 @@ Right click for insert and delete options. s - + @@ -6225,46 +6223,6 @@ Right click for insert and delete options. Unexpected fatal error 意外的严重出错误 - - Where <rig-name> is for multi-instance support. - 使用 <rig-name> 用于多实例支持无线电设备. - - - rig-name - 无线电设备名称 - - - Where <configuration> is an existing one. - 哪里 <configuration> 是现有的. - - - configuration - 配置 - - - Where <language> is <lang-code>[-<country-code>]. - 哪里 <language> 是 <lang-code>[-<country-code>]. - - - language - 语言 - - - Writable files in test location. Use with caution, for testing only. - 测试位置中的可写文件. 小心使用, 仅用于测试. - - - Command line error - 命令行错误 - - - Command line help - 命令行帮助 - - - Application version - 应用程序版本 - Another instance may be running diff --git a/translations/wsjtx_zh_HK.ts b/translations/wsjtx_zh_HK.ts index 97c652724..9d62900e7 100644 --- a/translations/wsjtx_zh_HK.ts +++ b/translations/wsjtx_zh_HK.ts @@ -6,7 +6,7 @@ &Delete ... - 刪除&D ... + 刪除(&D) ... @@ -195,7 +195,7 @@ &Set Rx && Tx Offset - 設定接收 && 發射偏頻&S + 設定接收 && 發射偏頻(&S) @@ -312,7 +312,7 @@ New DXCC on Band - 波段 新前綴 + 新DXCC 波段 @@ -322,12 +322,12 @@ New Grid on Band - 波段 新網格 + 新網格 波段 New Call on Band - 波段 新呼號 + 新呼號 波段 @@ -342,7 +342,7 @@ New Continent on Band - 波段 新大洲 + 新大洲 波段 @@ -352,7 +352,7 @@ New CQ Zone on Band - 波段 新CQ區 + 新CQ區 波段 @@ -362,7 +362,7 @@ New ITU Zone on Band - 波段 新ITU區 + 新ITU區 波段 @@ -372,13 +372,13 @@ &Delete - 刪除&D + 刪除(&D) &Insert ... - 插入&I ... + 插入(&I) ... @@ -398,27 +398,27 @@ path: "%1" - 目錄: "%1" + 目录: "%1" &Load ... - 載入&L ... + 載入(&L)... &Save as ... - 另存為&S ... + 另存為(&S) ... &Merge ... - 合併&M ... + 合併(&M) ... &Reset - 重置&R + 重置(&R) @@ -500,7 +500,7 @@ Format: You must input a valid ARRL RTTY Roundup exchange - 您必須輸入有效的 ARRL RTTY Roundup 交換 + 您必須輸入有效的 ARRL RTTY Roundup 交換數據 @@ -537,7 +537,7 @@ Format: Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - 是否確實要放棄當前工作頻率,並將其替換為載入的頻率? + 是否確實要放棄當前工作頻率, 並將其替換為載入的頻率? @@ -579,7 +579,7 @@ Format: Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. - 是否要儲存目前選擇的工作頻率? 按一下 否 可儲存所有. + 是否確定要只儲存目前選擇的工作頻率? 按一下 否 可儲存所有. @@ -713,7 +713,7 @@ Format: &Foreground color ... - 字體顏色&F ... + 字體顏色(&F) ... @@ -723,12 +723,12 @@ Format: &Unset foreground color - 清除字體顏色&U + 清除字體顏色(&U) &Background color ... - 底色&B ... + 底色(&B) ... @@ -738,12 +738,12 @@ Format: U&nset background color - 清除底色&n + 未設定背景顏色(&n) &Reset this item to defaults - 將此項重置為預設值&R + 將此項重置為預設值(&R) @@ -771,7 +771,7 @@ Format: New DXCC on Band - 波段新DXCC + 新DXCC 波段 @@ -781,7 +781,7 @@ Format: New Grid on Band - 波段新網格 + 新網格 波段 @@ -791,7 +791,7 @@ Format: New Call on Band - 波段未曾通聯過 + 未曾通聯過 波段 @@ -801,27 +801,27 @@ Format: New Continent on Band - 波段新大洲 + 新大洲 波段 New CQ Zone - 新 CQ Zone + 新 CQ 區 New CQ Zone on Band - 波段新 CQ Zone + 新 CQ 區 波段 New ITU Zone - 新 ITU Zone + 新 ITU 區 New ITU Zone on Band - 波段新 ITU Zone + 新 ITU 區 波段 @@ -831,12 +831,12 @@ Format: f/g unset - f/g 未設定 + 字体颜色未設定 b/g unset - b/g 未設定 + 背景顏色未設定 @@ -849,17 +849,17 @@ Format: &Delete - 刪除&D + 刪除(&D) &Insert ... - 插入&I... + 插入(&I) ... Insert &after ... - 插入之後&a... + 插入之後(&a)... @@ -891,12 +891,12 @@ Format: File - 檔案 + 檔案 Progress - + 進度 @@ -986,7 +986,7 @@ Error: %2 - %3 &Erase - 擦除&E + 擦除(&E) @@ -1117,7 +1117,7 @@ Error: %2 - %3 Relative Power (dB) - 相對功率 (dB) + 相對功率 (分貝) @@ -1145,12 +1145,12 @@ Error: %2 - %3 Configuration to Clone From - 從中克隆的設定 + 從克隆中的設定 &Source Configuration Name: - 來源設定名稱&S: + 來源設定名稱(&S): @@ -1173,7 +1173,7 @@ Error: %2 - %3 Contest: - 比賽: + 競賽: @@ -1386,7 +1386,7 @@ Error: %2 - %3 &Export ADIF ... - 導出 ADIF&E ... + 導出 ADIF(&E) ... @@ -1411,7 +1411,7 @@ Error: %2 - %3 &Reset ... - 重置&R ... + 重置(&R) ... @@ -1439,7 +1439,7 @@ Error: %2 - %3 &Mode: - 模式&M: + 模式(&M): @@ -1849,7 +1849,7 @@ Error: %2 - %3 Exch sent - 交換發出 + 交換發送 @@ -1974,17 +1974,17 @@ Error(%2): %3 CQ only - 只限 CQ + 只顯示 CQ Enter this QSO in log - 在日誌中輸入此通聯 + 在日誌中輸入此通聯紀錄 Log &QSO - 紀錄 &QSO + 紀錄通聯(&Q) @@ -1994,7 +1994,7 @@ Error(%2): %3 &Stop - 停止&S + 停止(&S) @@ -2004,7 +2004,7 @@ Error(%2): %3 &Monitor - 監聽&M + 监听(&M) @@ -2019,7 +2019,7 @@ Error(%2): %3 &Erase - 擦除&E + 擦除(&E) @@ -2049,7 +2049,7 @@ Error(%2): %3 &Decode - 解碼&D + 解碼(&D) @@ -2064,7 +2064,7 @@ Error(%2): %3 E&nable Tx - 啟用發射&n + 啟用發射(&n) @@ -2074,7 +2074,7 @@ Error(%2): %3 &Halt Tx - 停止發射&H + 停止發射(&H) @@ -2089,7 +2089,7 @@ Error(%2): %3 &Tune - 調諧&T + 調諧(&T) @@ -2150,7 +2150,7 @@ Yellow when too low &Lookup - 檢索&L + 檢索(&L) @@ -2348,17 +2348,17 @@ Yellow when too low Check to call the first decoded responder to my CQ. - 選擇以呼叫第一個解碼的回應器到我的 CQ. + 選擇以呼叫第一個解碼的回應我的 CQ. Call 1st - 呼叫第一 + 呼叫第一個解碼 Check to generate "@1250 (SEND MSGS)" in Tx6. - 選擇以產生 "@1250 (SEND MSGS)" 在發射6. + 選擇以產生 "@1250 (傳送信息)" 在發射6. @@ -2436,12 +2436,12 @@ Not available to nonstandard callsign holders. <html><head/><body><p>Check to monitor Sh messages.</p></body></html> - <html><head/><body><p>選擇以監視 Sh 信息.</p></body></html> + <html><head/><body><p>選擇以監視速記信息.</p></body></html> Check to monitor Sh messages. - 選擇以監視 Sh 信息. + 選擇以監視速記信息. @@ -2500,7 +2500,7 @@ When not checked you can view the calibration results. s - + @@ -2811,7 +2811,7 @@ list. The list can be maintained in Settings (F2). dB - + 分貝 @@ -2837,7 +2837,7 @@ list. The list can be maintained in Settings (F2). R+dB - + R+分貝 @@ -2877,42 +2877,42 @@ list. The list can be maintained in Settings (F2). Max dB - 最大 dB + 最大分貝 CQ AF - + CQ 非洲 CQ AN - + CQ 南極 CQ AS - + CQ 亞洲 CQ EU - + CQ 歐洲 CQ NA - + CQ 北美 CQ OC - + CQ 大洋洲 CQ SA - + CQ 南美 @@ -2988,7 +2988,7 @@ list. The list can be maintained in Settings (F2). Call - 呼叫 + 呼號 @@ -3243,7 +3243,7 @@ list. The list can be maintained in Settings (F2). Log dB reports to Comments - 將 dB 報告記錄到注釋 + 將分貝報告記錄到注釋 @@ -3385,7 +3385,7 @@ list. The list can be maintained in Settings (F2). Echo - 回波 + @@ -3410,7 +3410,7 @@ list. The list can be maintained in Settings (F2). &Download Samples ... - 下載樣本&D ... + 下載樣本(&D) ... @@ -3834,6 +3834,7 @@ list. The list can be maintained in Settings (F2). To do so, check 'Special operating activity' and 'EU VHF Contest' on the Settings | Advanced tab. 是否應切換到 歐洲 VHF 競賽模式? + 為此, 請檢查 '特殊操作活動' 和 設置高級選項卡上的 '歐洲 VHF 競賽'. @@ -3869,7 +3870,8 @@ To do so, check 'Special operating activity' and %1 is already in CALL3.TXT, do you wish to replace it? - %1 已經在 CALL3.TXT, 你想替換它嗎? + %1 +已經在 CALL3.TXT, 你想替換它嗎? @@ -4054,32 +4056,32 @@ UDP 服務器 %2:%3 &Switch To - 切換到&S + 切換到(&S) &Clone - 克隆&C + 克隆(&C) Clone &Into ... - 克隆到&I ... + 克隆到(&I) ... R&eset - 重置&e + 重置(&e) &Rename ... - 重新命名&R ... + 重新命名(&R) ... &Delete - 刪除&D + 刪除(&D) @@ -4127,7 +4129,7 @@ UDP 服務器 %2:%3 &New name: - 新名稱&N: + 新名稱(&N): @@ -4171,8 +4173,9 @@ UDP 服務器 %2:%3 QObject + Invalid rig name - \ & / not allowed - 無效的無線電設備名稱 - \ & / 不允許 + 無效的無線電裝置名稱 - \ & / 不允許 @@ -4310,32 +4313,32 @@ Error(%2): %3 &Abort - + 中止 (&A) &Refresh - + 刷新 (&R) &Details - + 詳情 (&D) Base URL for samples: - + 樣本下載網址: Only use HTTP: - + 只使用 HTTP: Check this is you get SSL/TLS errors - + 選擇, 當你得到SSL/TLS錯誤 @@ -4408,7 +4411,7 @@ Error(%2): %3 Error - 出錯誤 + 錯誤 @@ -4421,12 +4424,12 @@ Error(%2): %3 An error opening the audio output device has occurred. - 開啟音頻輸出設備時出錯誤. + 開啟音頻輸出設備時錯誤. An error occurred during write to the audio output device. - 寫入音頻輸出設備期間出錯誤. + 寫入音頻輸出設備期間錯誤. @@ -4436,7 +4439,7 @@ Error(%2): %3 Non-recoverable error, audio output device not usable at this time. - 不可恢復出錯誤, 音頻輸出設備此時不可用. + 不可恢復錯誤, 音頻輸出設備此時不可用. @@ -4471,7 +4474,7 @@ Error(%2): %3 Error - 出錯誤 + 錯誤 @@ -4489,7 +4492,7 @@ Error(%2): %3 &Band: - 波段&B: + 波段(&B): @@ -4499,7 +4502,7 @@ Error(%2): %3 &Antenna: - 天線&A: + 天線(&A): @@ -4593,7 +4596,7 @@ Error(%2): %3 Spec - + 佔高 @@ -4673,7 +4676,7 @@ Error(%2): %3 Hz - + 赫茲 @@ -4737,7 +4740,7 @@ Error(%2): %3 Genera&l - 一般&l + 一般(&l) @@ -4752,7 +4755,7 @@ Error(%2): %3 My C&all: - 我的呼號&a: + 我的呼號(&a): @@ -4762,7 +4765,7 @@ Error(%2): %3 M&y Grid: - 我的網格&y: + 我的網格(&y): @@ -4827,7 +4830,7 @@ Error(%2): %3 &Tx messages to Rx frequency window - 發出訊息在接收信息窗口顯示&T + 發出訊息在接收信息窗口顯示(&T) @@ -4882,7 +4885,7 @@ Error(%2): %3 &Blank line between decoding periods - 每解碼周期插入間隔行&B + 每解碼周期插入間隔行(&B) @@ -4892,7 +4895,7 @@ Error(%2): %3 Display dista&nce in miles - 顯示距離為英里&n + 顯示距離為英里(&n) @@ -4952,7 +4955,7 @@ Error(%2): %3 Mon&itor off at startup - 開啟時關閉監聽&i + 開啟時關閉監聽(&i) @@ -4979,7 +4982,7 @@ text message. Di&sable Tx after sending 73 - 傳送 73 後關閉發射&s + 傳送 73 後關閉發射(&s) @@ -4989,12 +4992,12 @@ text message. CW ID a&fter 73 - 73發出後用CW模式發放你呼號&f + 73發出後用CW模式發放你呼號(&f) Periodic CW ID Inter&val: - 發射CW信息時間間隔&v: + 發射CW信息時間間隔(&v): @@ -5015,7 +5018,7 @@ quiet period when decoding is done. Doubl&e-click on call sets Tx enable - 雙擊呼號集啟用發射l&e + 雙擊呼號集啟用發射(&e) @@ -5025,7 +5028,7 @@ quiet period when decoding is done. &Radio - 電臺&R + 電臺(&R) @@ -5121,7 +5124,7 @@ quiet period when decoding is done. D&efault - 默認值&e + 默認值(&e) @@ -5172,7 +5175,7 @@ quiet period when decoding is done. &None - + 無(&N) @@ -5196,7 +5199,7 @@ a few, particularly some Kenwood rigs, require it). &Hardware - 硬件&H + 硬件(&H) @@ -5230,6 +5233,11 @@ a few, particularly some Kenwood rigs, require it). RTS: + + + How this program activates the PTT on your radio? + 此程式如何啟動無線電設備上的 PTT? + PTT Method @@ -5245,6 +5253,11 @@ a few, particularly some Kenwood rigs, require it). VO&X + + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> + <html><head/><body><p>使用 RS-232 DTR 控制線路切換無線電設備的 PTT, 需要硬體來介面線路.</p><p>某些商業介面單元也使用此方法.</p><p>CAT 串列埠的 DTR 控制線路可用於此或可用於其他串行埠上的 DTR 控制線路.</p></body></html> + &DTR @@ -5264,6 +5277,11 @@ PTT的其它硬件接口. C&AT + + + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> + <html><head/><body><p>使用 RS-232 RTS 控制線路切換無線電設備的 PTT, 需要硬體來介面線路.</p><p>某些商業介面單元也使用此方法.</p><p>CAT 串列埠的 RTS 控制線路可用於此或可能用於其他串行埠上的 RTS 控制線路. 請注意,使用硬體流控制時, CAT 串行埠上不可用此選項.</p></body></html> + R&TS @@ -5292,7 +5310,7 @@ PTT的其它硬件接口. US&B - 上邊帶&B + 上邊帶(&B) @@ -5307,12 +5325,17 @@ or bandwidth is selected). None - + + + + + If this is available then it is usually the correct mode for this program. + 如果這是可用的, 那麼它通常是這個程式的正確模式. Data/P&kt - 數據/封包&k + 數據/封包(&k) @@ -5336,7 +5359,7 @@ this setting allows you to select which audio input will be used &Front/Mic - 前方/咪高峰&F + 前方/咪高峰(&F) @@ -5356,7 +5379,7 @@ this setting allows you to select which audio input will be used s - + @@ -5404,7 +5427,7 @@ radio interface behave as expected. A&udio - 音頻&u + 音頻(&u) @@ -5419,7 +5442,7 @@ radio interface behave as expected. Soundcard - 聲卡 + 音效卡 @@ -5442,7 +5465,7 @@ transmitting periods. &Input: - 輸入&I: + 輸入(&I): @@ -5487,7 +5510,7 @@ both here. Ou&tput: - 輸出&t: + 輸出(&t): @@ -5498,7 +5521,7 @@ both here. Loc&ation: - 目錄位置&a: + 目錄位置(&a): @@ -5519,7 +5542,7 @@ both here. S&elect - 選擇&e + 選擇(&e) @@ -5570,7 +5593,7 @@ both here. Tx &Macros - 自定義文字&M + 自定義文字(&M) @@ -5580,12 +5603,12 @@ both here. &Add - 增加&A + 增加(&A) &Delete - 删除&D + 删除(&D) @@ -5599,7 +5622,7 @@ Click, SHIFT+Click and, CRTL+Click to select items Reportin&g - 報告&g + 報告(&g) @@ -5619,7 +5642,7 @@ Click, SHIFT+Click and, CRTL+Click to select items Promp&t me to log QSO - 提示我記錄通聯日誌&t + 提示我記錄通聯日誌(&t) @@ -5828,7 +5851,7 @@ for assessing propagation and system performance. Hz - + 赫茲 @@ -5892,31 +5915,6 @@ Right click for insert and delete options. Highlight by Mode 依模式突顯 - - - <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - <html><head/><body><p>按下以再次掃描 wsjtx_log.adi ADIF 檔, 以便曾經通聯資訊</p></body></html> - - - - How this program activates the PTT on your radio? - 此程式如何啟動無線電設備上的 PTT? - - - - <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> - <html><head/><body><p>使用 RS-232 DTR 控制線路切換無線電設備的 PTT,需要硬體來介面線路.</p><p>某些商業介面單元也使用此方法.</p><p>CAT 串列埠的 DTR 控制線路可用於此或可用於其他串行埠上的 DTR 控制線路.</p></body></html> - - - - <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> - <html><head/><body><p>使用 RS-232 RTS 控制線路切換無線電設備的 PTT, 需要硬體來介面線路.</p><p>某些商業介面單元也使用此方法.</p><p>CAT 串列埠的 RTS 控制線路可用於此或可能用於其他串行埠上的 RTS 控制線路. 請注意, 使用硬體流控制時, CAT 串行埠上不可用此選項.</p></body></html> - - - - If this is available then it is usually the correct mode for this program. - 如果這是可用的, 那麼它通常是這個程式的正確模式. - Include extra WAE entities @@ -6138,7 +6136,7 @@ Right click for insert and delete options. dB - + 分貝 @@ -6148,7 +6146,7 @@ Right click for insert and delete options. Hz - + 赫茲 @@ -6163,7 +6161,7 @@ Right click for insert and delete options. s - + @@ -6225,46 +6223,6 @@ Right click for insert and delete options. Unexpected fatal error 意外的嚴重出錯誤 - - Where <rig-name> is for multi-instance support. - 使用 <rig-name> 用於多實例支援無線電設備. - - - rig-name - 無線電設備名稱 - - - Where <configuration> is an existing one. - 哪裡 <configuration> 是現有的. - - - configuration - 設定 - - - Where <language> is <lang-code>[-<country-code>]. - 哪裡 <language> 是 <lang-code>[-<country-code>]. - - - language - 語言 - - - Writable files in test location. Use with caution, for testing only. - 測試位置中的可寫檔案. 小心使用, 僅用於測試. - - - Command line error - 命令列錯誤 - - - Command line help - 命令列説明 - - - Application version - 應用程式版本 - Another instance may be running From 573a7c55d43eca732fcab791c9b9f5996e0c0f83 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 8 Jun 2020 21:07:01 +0100 Subject: [PATCH 054/520] Updated Japanese UI translation, tnx Oba san, JA7UDE --- translations/wsjtx_ja.ts | 553 ++++++++++++++++++++------------------- 1 file changed, 281 insertions(+), 272 deletions(-) diff --git a/translations/wsjtx_ja.ts b/translations/wsjtx_ja.ts index f88fd17fd..490cb83e7 100644 --- a/translations/wsjtx_ja.ts +++ b/translations/wsjtx_ja.ts @@ -888,16 +888,6 @@ Format: Directory - - - File - ファイル - - - - Progress - 進捗 - @@ -1079,10 +1069,6 @@ Error: %2 - %3 Freq (Hz) 周波数(Hz) - - Phase (Î ) - 位相 (Î ) - Phase (Π) @@ -1454,26 +1440,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region IARU地域 - - + + Mode モード - - + + Frequency 周波数 - - + + Frequency (MHz) 周波数(MHz) @@ -1594,152 +1580,152 @@ Error: %2 - %3 サポートしていないCATタイプ - + Hamlib error: %1 while %2 Hamlibエラー: %1 %2 - + opening connection to rig 無線機への接続 - + getting current frequency 現周波数を取得 - + getting current mode 現モードを取得 - - + + exchanging VFOs VFO入れ替え - - + + getting other VFO frequency もう一方のVFOの周波数を取得 - + getting other VFO mode もう一方のVFOのモードを取得 - + setting current VFO 現VFOを設定 - + getting frequency 周波数を取得 - + getting mode モードを取得 - - + + getting current VFO 現VFOを取得 - - - - + + + + getting current VFO frequency 現VFOの周波数を取得 - - - - - - + + + + + + setting frequency 周波数を設定 - - - - + + + + getting current VFO mode 現VFOのモードを取得 - - - - - + + + + + setting current VFO mode 現VFOモードを設定 - - + + setting/unsetting split mode スプリットのオン/オフ - - + + setting split mode スプリットモードオン - + setting split TX frequency and mode スプリット送信周波数とモードをセット - + setting split TX frequency スプリット送信周波数をセット - + getting split TX VFO mode スプリットモードを取得 - + setting split TX VFO mode スプリット送信VFOのモードをセット - + getting PTT state PTT状態を取得 - + setting PTT on PTTオン - + setting PTT off PTTオフ - + setting a configuration item コンフィグレーション項目をセット - + getting a configuration item コンフィグレーション項目を取得 @@ -1950,12 +1936,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity バンド状況 @@ -1967,11 +1953,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency 受信周波数 @@ -2179,7 +2165,7 @@ Yellow when too low Pwr - 電力 + 出力 @@ -2258,6 +2244,11 @@ Yellow when too low Set Tx frequency to Rx Frequency 送信周波数を受信周波数へコピー + + + ▲ + + Frequency tolerance (Hz) @@ -2273,11 +2264,6 @@ Yellow when too low Set Rx frequency to Tx Frequency 受信周波数を送信周波数へコピー - - - ▲ - - ▼ @@ -2325,7 +2311,7 @@ Yellow when too low - + Fast 高速 @@ -2414,7 +2400,7 @@ Not available to nonstandard callsign holders. Rx All Freqs - + @@ -2433,7 +2419,7 @@ Not available to nonstandard callsign holders. - + Fox Fox @@ -2973,12 +2959,12 @@ ENTERを押してテキストを登録リストに追加. N List - Nリスト + リスト数 N Slots - Nスロット + スロット数 @@ -3004,8 +2990,8 @@ ENTERを押してテキストを登録リストに追加. More CQs - これは何? - + これは何?チェックすると5回の送信に1回CQを出す + @@ -3143,415 +3129,415 @@ ENTERを押してテキストを登録リストに追加. WSJT-Xについて - + Waterfall ウォーターフォール - + Open 開く - + Ctrl+O - + Open next in directory ディレクトリ中の次のファイルを開く - + Decode remaining files in directory ディレクトリ中の残りのファイルをデコード - + Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir SaveDirのすべての*.wavと*.c2ファイルを削除 - + None 無し - + Save all すべて保存 - + Online User Guide オンラインユーザーガイド - + Keyboard shortcuts キーボードショートカット - + Special mouse commands 特別なマウス操作 - + JT9 - + Save decoded デコードしたメッセージを保存 - + Normal 標準 - + Deep ディープ - + Monitor OFF at startup 起動時モニターオフ - + Erase ALL.TXT ALL.TXTを消去 - + Erase wsjtx_log.adi wsjtx_log.adiを消去 - + Convert mode to RTTY for logging ログのためモードをRTTYに変換 - + Log dB reports to Comments dBレポートをコメントに記録 - + Prompt me to log QSO QSOをログするとき知らせる - + Blank line between decoding periods デコードタイミング間に空白行を入れる - + Clear DX Call and Grid after logging ログした後、DXコールサインとグリッドをクリア - + Display distance in miles 距離をマイルで表示 - + Double-click on call sets Tx Enable コールサインをダブルクリックして送信オン - - + + F7 - + Tx disabled after sending 73 73を送った後送信禁止 - - + + Runaway Tx watchdog Txウオッチドッグ発令 - + Allow multiple instances 複数のインスタンス起動許可 - + Tx freq locked to Rx freq 送信周波数を受信周波数にロック - + JT65 - + JT9+JT65 - + Tx messages to Rx Frequency window 送信メッセージを受信周波数ウィンドウへ - + Gray1 - + Show DXCC entity and worked B4 status DXCCエンティティと交信済みステータスを表示 - + Astronomical data 天文データ - + List of Type 1 prefixes and suffixes タイプ1プリフィックス、サフィックスのリスト - + Settings... 設定... - + Local User Guide 各国版ユーザーガイド - + Open log directory ログディレクトリを開く - + JT4 - + Message averaging メッセージ平均化 - + Enable averaging 平均化オン - + Enable deep search ディープサーチをオン - + WSPR WSPR - + Echo Graph エコーグラフ - + F8 - + Echo Echo - + EME Echo mode EMEエコーモード - + ISCAT - + Fast Graph 高速グラフ - + F9 - + &Download Samples ... サンプルをダウンロード(&D)... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>いろいろなモードのオーディオファイルをダウンロード.</p></body></html> - + MSK144 - + QRA64 - + Release Notes リリースノート - + Enable AP for DX Call DXコールのAPをオン - + FreqCal - + Measure reference spectrum 参照スペクトラムを測定 - + Measure phase response 位相応答を測定 - + Erase reference spectrum 参照スペクトラムを消去 - + Execute frequency calibration cycle 周波数較正実行 - + Equalization tools ... イコライザー... - + WSPR-LF WSPR-LF - + Experimental LF/MF mode 実験的LF/MFモード - + FT8 - - + + Enable AP AP使用 - + Solve for calibration parameters 較正パラメータ計算 - + Copyright notice 著作権表示 - + Shift+F1 - + Fox log Foxログ - + FT8 DXpedition Mode User Guide FT8 DXペディションモードユーザーガイド - + Reset Cabrillo log ... Cabrilloログをリセット... - + Color highlighting scheme ハイライト設定 - + Contest Log コンテストログ - + Export Cabrillo log ... Cabrilloログをエクスポート... - + Quick-Start Guide to WSJT-X 2.0 WSJT-X 2.0クイックスタートガイド - + Contest log コンテストログ - + Erase WSPR hashtable WSPRハッシュテーブルを消去 - + FT4 @@ -3562,8 +3548,8 @@ ENTERを押してテキストを登録リストに追加. - - + + Receiving 受信中 @@ -3599,21 +3585,21 @@ ENTERを押してテキストを登録リストに追加. - - - - + + + + + - + - + - + - + - - + Message メッセージ @@ -3639,22 +3625,22 @@ ENTERを押してテキストを登録リストに追加. - + Improper mode 不適切なモード - + File Open Error ファイルオープンエラー - - - - + + + + Cannot open "%1" for append: %2 "%2"を追加する"%1"が開けません @@ -3675,15 +3661,15 @@ ENTERを押してテキストを登録リストに追加. - - + + Single-Period Decodes シングルパスデコード - - + + Average Decodes 平均デコード @@ -3704,7 +3690,7 @@ ENTERを押してテキストを登録リストに追加. - + Cannot open "%1" for writing: %2 %2を書き込むための"%1"が開けません @@ -3803,32 +3789,32 @@ ENTERを押してテキストを登録リストに追加. これ以上開くファイルがありません. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 他の送信周波数を使ってください. WSJT-Xは30mバンドのWSPRサブバンド中の他のモードを受信せずに送信してしまいます. - + WSPR Guard Band WSPRガードバンド - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 他のダイヤル周波数を使ってください. WSJT-XはFT8の標準サブバンドでFoxモードを使えません。 - + Fox Mode warning Foxモード警告 - + Last Tx: %1 最終送信: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3838,183 +3824,183 @@ To do so, check 'Special operating activity' and 設定|詳細タブで設定変更してください. - + Should you switch to ARRL Field Day mode? ARRLフィールドデーモードに切り替えますか? - + Should you switch to RTTY contest mode? RTTYコンテストモードに切り替えますか? - - - - + + + + Add to CALL3.TXT CALL3.TXTへ追加 - + Please enter a valid grid locator 有効なグリッドロケータを入力してください - + Cannot open "%1" for read/write: %2 %2を読み書きするための"%1"が開けません - + %1 is already in CALL3.TXT, do you wish to replace it? %1 がすでにCALL3.TXTにセットされています。置き換えますか? - + Warning: DX Call field is empty. 警告 DXコールが空白です. - + Log file error ログファイルエラー - + Cannot open "%1" "%1"を開けません - + Error sending log to N1MM N1MMへログを送れません - + Write returned "%1" 応答"%1"を書き込み - + Stations calling DXpedition %1 DXペディション %1を呼ぶ局 - + Hound Hound - + Tx Messages 送信メッセージ - - - + + + Confirm Erase 消去確認 - + Are you sure you want to erase file ALL.TXT? ALL.TXTファイルを消去してよいですか? - - + + Confirm Reset リセット確認 - + Are you sure you want to erase your contest log? コンテストログを消去していいですか? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 現在のコンテストのQSO記録をすべて消去します。ADIFログには記録されますがCabrilloログにエクスポートすることはできません. - + Cabrillo Log saved Cabrilloログ保存しました - + Are you sure you want to erase file wsjtx_log.adi? wsjtx_log.adiを消してもよいですか? - + Are you sure you want to erase the WSPR hashtable? WSPRのハッシュテーブルを消してもよいですか? - + VHF features warning VHF機能警告 - + Tune digital gain チューンのデジタルゲイン - + Transmit digital gain 送信デジタルゲイン - + Prefixes プリフィックス - + Network Error ネットワークエラー - + Error: %1 UDP server %2:%3 エラー %1 UDPサーバー %2:%3 - + File Error ファイルエラー - + Phase Training Disabled 位相調整オフ - + Phase Training Enabled 位相調整オン - + WD:%1m WD:%1m - - + + Log File Error ログファイルエラー - + Are you sure you want to clear the QSO queues? QSO待ち行列をクリアしてもいいですか? @@ -4030,7 +4016,7 @@ UDPサーバー %2:%3 UTC Sync DT Freq - + @@ -4144,19 +4130,19 @@ UDPサーバー %2:%3 OmniRig COMサーバーが開始できません - - + + OmniRig: don't know how to set rig frequency OmniRigが無線機周波数をセットできません - - + + OmniRig: timeout waiting for update from rig OmniRig: 無線機からの応答タイムアウト - + OmniRig COM/OLE error: %1 at %2: %3 (%4) OmniRig COM/OLEエラー: %1 at %2 %3 (%4) @@ -4172,6 +4158,7 @@ UDPサーバー %2:%3 QObject + Invalid rig name - \ & / not allowed 無効な名前 - \ & / は使えません @@ -4336,7 +4323,7 @@ Error(%2): %3 Check this is you get SSL/TLS errors - + チェックするとSSL/TLSエラーを表示 @@ -4615,7 +4602,7 @@ Error(%2): %3 Ref Spec 日本語難しい - + @@ -4899,7 +4886,7 @@ Error(%2): %3 Behavior - + 振る舞い @@ -5328,7 +5315,7 @@ or bandwidth is selected). If this is available then it is usually the correct mode for this program. - + これが使えるときは正しいモード. @@ -6214,92 +6201,114 @@ Right click for insert and delete options. main - + Fatal error 致命的エラー - + Unexpected fatal error 予期せぬ致命的エラー + Where <rig-name> is for multi-instance support. ここで<rig-name>は複数インスタンスのサポート. + + rig-name + 無線機名 + + + Where <configuration> is an existing one. ここで<configuration>はすでに設定済みのもの. - Where <language> is <lang-code>[-<country-code>]. - ここで<language>は<lang-code>[-<country-code>]. + + configuration + コンフィグレーション + + Where <language> is <lang-code>[-<country-code>]. + ここで <language> は <lang-code>[-<country-code>]. + + + + language + 言語 + + + Writable files in test location. Use with caution, for testing only. テスト用書き込み可能ファイル. 注意してテストだけに使うこと. + Command line error コマンドラインエラー + Command line help コマンドラインヘルプ + Application version アプリのバージョン - + Another instance may be running おそらく他のインスタンスが動作中 - + try to remove stale lock file? 古いロックファイルの削除を試みますか? - + Failed to create a temporary directory 一時的作業ディレクトリーが作成できません - - + + Path: "%1" パス:"%1" - + Failed to create a usable temporary directory 一時的作業ディレクトリが作成できません - + Another application may be locking the directory おそらく他のアプリがディレクトリをロックしています - + Failed to create data directory データ用ディレクトリの作成ができません - + path: "%1" パス: "%1" - + Shared memory error 共有メモリエラー - + Unable to create shared memory segment 共有メモリセグメントが作成できません From 29d4b4c359ae6202e9588966aa73969d935d50f7 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 9 Jun 2020 09:38:48 -0500 Subject: [PATCH 055/520] FT8: Make the Fast decode setting Faster. --- lib/ft8/ft8b.f90 | 10 ++++------ lib/ft8_decode.f90 | 3 ++- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/ft8/ft8b.f90 b/lib/ft8/ft8b.f90 index e6a3e8d34..08a49783f 100644 --- a/lib/ft8/ft8b.f90 +++ b/lib/ft8/ft8b.f90 @@ -403,14 +403,12 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, & dmin=0.0 norder=2 maxosd=2 - if(ndepth.lt.3) maxosd=1 - if(abs(nfqso-f1).le.napwid .or. abs(nftx-f1).le.napwid .or. ncontest.eq.7) then + if(ndepth.eq.2) maxosd=1 + if(ndepth.eq.1) maxosd=-1 + if(ndepth.ge.2 .and. & + (abs(nfqso-f1).le.napwid .or. abs(nftx-f1).le.napwid .or. ncontest.eq.7)) then maxosd=2 endif - if(nagain) then - norder=3 - maxosd=1 - endif call timer('dec174_91 ',0) Keff=91 call decode174_91(llrz,Keff,maxosd,norder,apmask,message91,cw, & diff --git a/lib/ft8_decode.f90 b/lib/ft8_decode.f90 index 7feb5b783..9350e8bc7 100644 --- a/lib/ft8_decode.f90 +++ b/lib/ft8_decode.f90 @@ -132,6 +132,7 @@ contains ! ndepth=2: subtraction, 3 passes, bp+osd (no subtract refinement) ! ndepth=3: subtraction, 3 passes, bp+osd npass=3 + if(ndepth.eq.1) npass=2 do ipass=1,npass newdat=.true. syncmin=1.3 @@ -148,7 +149,7 @@ contains elseif(ipass.eq.3) then if((ndecodes-n2).eq.0) cycle lsubtract=.true. - ndeep=3 + ndeep=ndepth endif call timer('sync8 ',0) maxc=MAXCAND From 7e18ea931e9179172a1a65a9d4a3e2a72cf9fb87 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 10 Jun 2020 14:13:20 +0100 Subject: [PATCH 056/520] Updated macOS installer ReadMe file, tnx John, G4KLA --- Darwin/ReadMe.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/Darwin/ReadMe.txt b/Darwin/ReadMe.txt index d6fbb55e9..3a2afdc19 100644 --- a/Darwin/ReadMe.txt +++ b/Darwin/ReadMe.txt @@ -1,9 +1,6 @@ Notes on WSJT-X Installation for Mac OS X ----------------------------------------- - Updated 21 October 2018 - ----------------------- - If you have already downloaded a previous version of WSJT-X then I suggest you change the name in the Applications folder from WSJT-X to WSJT-X_previous before proceeding. From 992351f58419686b5eb7002c20ee9bbdd3c8ebdd Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Wed, 10 Jun 2020 08:22:14 -0500 Subject: [PATCH 057/520] In gen_ft8wave, make sure that wave() is not referenced unless icmplx=0. --- lib/ft8/gen_ft8wave.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ft8/gen_ft8wave.f90 b/lib/ft8/gen_ft8wave.f90 index 02e7fdbd0..9e2773758 100644 --- a/lib/ft8/gen_ft8wave.f90 +++ b/lib/ft8/gen_ft8wave.f90 @@ -45,7 +45,7 @@ subroutine gen_ft8wave(itone,nsym,nsps,bt,fsample,f0,cwave,wave,icmplx,nwave) ! Calculate and insert the audio waveform phi=0.0 dphi = dphi + twopi*f0*dt !Shift frequency up by f0 - wave=0. + if(icmplx .eq. 0) wave=0. if(icmplx .ne. 0) cwave=0. !Avoid writing to memory we may not have access to call timer('gen_loop',0) From 29f448219c70f359c9a8b7c18e3b23910a4450ab Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 11 Jun 2020 09:23:16 -0400 Subject: [PATCH 058/520] Editorial work on WSJT-X User Guide: Thanks to Dave, KC3GPM! --- doc/user_guide/en/astro_data.adoc | 14 +++--- .../en/controls-functions-center.adoc | 31 +++++------- .../en/controls-functions-left.adoc | 11 ++-- .../en/controls-functions-main-window.adoc | 25 +++++----- .../en/controls-functions-menus.adoc | 23 +++------ .../en/controls-functions-messages.adoc | 26 +++++----- doc/user_guide/en/install-windows.adoc | 50 ++++++++----------- 7 files changed, 78 insertions(+), 102 deletions(-) diff --git a/doc/user_guide/en/astro_data.adoc b/doc/user_guide/en/astro_data.adoc index 361ee9b00..f0b43ec1d 100644 --- a/doc/user_guide/en/astro_data.adoc +++ b/doc/user_guide/en/astro_data.adoc @@ -1,3 +1,5 @@ +//status=edited + A text box entitled Astronomical Data provides information needed for tracking the sun or moon, compensating for EME Doppler shift, and estimating EME Doppler spread and path degradation. Toggle the @@ -5,7 +7,7 @@ estimating EME Doppler spread and path degradation. Toggle the image::AstroData_2.png[align="center",alt="Astronomical Data"] -Available information includes the current UTC *Date* and time; *Az* +Available information includes the current UTC *Date* and *Time*; *Az* and *El*, azimuth and elevation of the moon at your own location, in degrees; *SelfDop*, *Width*, and *Delay*, the Doppler shift, full limb-to-limb Doppler spread in Hz, and delay of your own EME echoes in @@ -23,17 +25,17 @@ relative to the best possible time with the moon at perigee in a cold part of the sky. On the higher microwave bands, where Faraday rotation is minimal and -linear polarization is often used, spatial offset will reduce signal -levels. Some stations have implemented mechanical polarisation -adjustment to overcome this loss, and the amount of rotation needed is +linear polarization is often used, spatial offset reduces signal +levels. Some stations have implemented mechanical polarisation +adjustment to overcome this loss. The amount of rotation needed is predicted in real time by the value of *Dpol*. Positive Dpol means that the antenna should be rotated in a clockwise direction looking from behind the antenna towards the moon. For a dish antenna, the feed should similarly be rotated clockwise looking into the mouth of -the feed. A negative value for Dpol means anticlockwise rotation. +the feed. A negative value for Dpol means a counterclockwise rotation. -The state of the art for establishing three-dimensional locations of +The state-of-the-art for establishing three-dimensional locations of the sun, moon, and planets at a specified time is embodied in a numerical model of the solar system maintained at the Jet Propulsion Laboratory. The model has been numerically integrated to produce diff --git a/doc/user_guide/en/controls-functions-center.adoc b/doc/user_guide/en/controls-functions-center.adoc index 0e56faa77..29efde698 100644 --- a/doc/user_guide/en/controls-functions-center.adoc +++ b/doc/user_guide/en/controls-functions-center.adoc @@ -1,4 +1,4 @@ -// Status=review +// Status=edited At the center of the main window are a number of controls used when making QSOs. Controls not relevant to a particular mode or submode @@ -7,41 +7,34 @@ may be "grayed out" (disabled) or removed from the display. //.Misc Controls Center image::misc-controls-center.png[align="center",alt="Misc Controls Center"] -* Check *Tx even* to transmit in even-numbered UTC minutes or +* Check *Tx even/1st* to transmit in even-numbered UTC minutes or sequences, starting at 0. Uncheck this box to transmit in the odd sequences. The correct selection is made automatically when you double-click on a decoded text line, as described in the <>. * The Tx and Rx audio frequencies can be set automatically by -double-clicking on decoded text or a signal in the waterfall. They +double-clicking decoded text or a signal in the waterfall. They can also be adjusted using the spinner controls. -* You can copy values between the *Tx Freq* and *Rx Freq* boxes by -clicking on the up/down arrows between the controls. Your -on-the-air frequency is the sum of dial frequency and audio Tx -frequency. By convention we define the frequency of WSJT-X modes as -the frequency of the lowest tone. +* You can force Tx frequency to the current Rx frequency by clicking +the *Tx<-Rx* button, and vice-versa for *Rx<-Tx*. The on-the-air +frequency of your lowest JT9 or JT65 tone is the sum of dial frequency +and audio Tx frequency. * Check the box *Hold Tx Freq* to ensure that the specified Tx frequency is not changed automatically when you double-click on decoded text or a signal in the waterfall. -* For modes lacking a multi-decode feature, or when *Enable -VHF/UHF/Microwave features* has been checked on the *Settings -> -General* tab, the *F Tol* control sets a frequency tolerance range -over which decoding will be attempted, centered on the Rx frequency. +* For modes lacking a multi-decode feature, or when *Enable VHF/UHF/Microwave features* has been checked on the *File -> Settings -> General* tab, the *F Tol* control sets a frequency tolerance range over which decoding is attempted, centered on the Rx frequency. -* The *Report* control lets you change a signal report that has been -inserted automatically. Typical reports for the various modes fall in +* The *Report* control lets you change an automatically inserted signal report. Typical reports for the various modes fall in the range –30 to +20 dB. Remember that JT65 reports saturate at an upper limit of -1 dB. + -TIP: Consider reducing power if your QSO partner reports your -signal above -5 dB in one of the _WSJT-X_ slow modes. These are -supposed to be weak signal modes! +TIP: Consider reducing power if your QSO partner reports your signal above -5 dB in one of the _WSJT-X_ slow modes. These are supposed to be weak signal modes! * In some circumstances, especially on VHF and higher bands, you can select a supported submode of the active mode by using the *Submode* @@ -51,11 +44,11 @@ time and frequency synchronization with a received signal. * Spinner control *T/R xx s* sets sequence lengths for transmission and reception in ISCAT, MSK144, and the fast JT9 modes. -* With *Split operation* activated on the *Settings -> Radio* tab, in +* With *Split operation* activated on the *File -> Settings -> Radio* tab, in MSK144 and the fast JT9 submodes you can activate the spinner control *Tx CQ nnn* by checking the box to its right. The program will then generate something like `CQ nnn K1ABC FN42` for your CQ message, where -`nnn` is the kHz portion of your current dial frequency, +`nnn` is the kHz portion of your current operating frequency, in the range 010 to 999. Your CQ message *Tx6* will then be transmitted at the calling frequency selected in the *Tx CQ nnn* spinner control. All other messages will diff --git a/doc/user_guide/en/controls-functions-left.adoc b/doc/user_guide/en/controls-functions-left.adoc index 4dcb20bc3..ee90eaf82 100644 --- a/doc/user_guide/en/controls-functions-left.adoc +++ b/doc/user_guide/en/controls-functions-left.adoc @@ -1,16 +1,15 @@ -// Status=review +// Status=edited Controls related to frequency selection, received audio level, the -station being called, and date and time are found at lower left of the +station being called, and date and time are found in the lower, left-hand section of the main window: //.Misc Controls Left image::misc-main-ui.png[align="center",alt="Misc Menu Items"] -* A drop-down list of frequencies and bands at upper left lets you -select the operating band and sets dial frequency to a value taken -from the *Frequencies* tab on the *Settings* window. If CAT control -is active the radio's dial frequency will be set accordingly; if not, +* A drop-down list of frequencies and bands in the upper, left-hand corner lets you +select the operating band. It also sets dial frequency to a value taken from the *Frequencies* tab on the *Settings* window. If CAT control +is active, the radio's dial frequency is set accordingly; if not, you must tune the radio manually. * Alternatively, you can enter a frequency (in MHz) or band name in diff --git a/doc/user_guide/en/controls-functions-main-window.adoc b/doc/user_guide/en/controls-functions-main-window.adoc index 2ea894351..d5adb0647 100644 --- a/doc/user_guide/en/controls-functions-main-window.adoc +++ b/doc/user_guide/en/controls-functions-main-window.adoc @@ -1,19 +1,17 @@ -The following controls appear just under the decoded -text windows on the main screen. Some controls appear only in certain -operating modes. +// Status=edited + +The following controls appear just under the decoded text windows on +the main screen: //.Main UI image::main-ui-controls.png[align="center",width=650,alt="Main UI Controls"] -* When *CQ only* is checked, only messages from stations calling CQ will -be displayed in the left text panel. +* When *CQ only* is checked, only messages from stations calling CQ are displayed in the left text panel. * *Log QSO* raises a dialog window pre-filled with known information about a QSO you have nearly completed. You can edit or add to this information before clicking *OK* to log the QSO. If you check *Prompt -me to log QSO* on the *Settings -> Reporting* tab, the program will -raise the confirmation screen automatically when you send a message -containing +73+. *Start Date* and *Start Time* are set when you click +me to log QSO* on the *File -> Settings -> Reporting* tab, the program raises the confirmation screen automatically when you send a message containing +73+. *Start Date* and *Start Time* are set when you click to send the *Tx 2* or *Tx 3* message, and backed up by one or two sequence lengths, respectively. (Note that the actual start time may have been earlier if repeats of early transmissions were required.) @@ -22,15 +20,15 @@ End date and time are set when the *Log QSO* screen is invoked. //.Log QSO Window image::log-qso.png[align="center",alt="Log QSO"] -* *Stop* will terminate normal data acquisition in case you want to +* *Stop* terminates normal data acquisition in case you want to freeze the waterfall or open and explore a previously recorded audio file. * *Monitor* toggles normal receive operation on or off. This button -is highlighted in green when the _WSJT-X_ is receiving. If you are +is highlighted in green when _WSJT-X_ is receiving. If you are using CAT control, toggling *Monitor* OFF relinquishes control of the rig; if *Monitor returns to last used frequency* is selected on the -*Settings | General* tab, toggling *Monitor* back ON will return to +*File -> Settings -> General* tab, toggling *Monitor* back ON will return to the original frequency. * *Erase* clears the right-hand decoded text window. @@ -64,8 +62,9 @@ carrier at the specified Tx frequency (red marker on waterfall scale). This process is useful for adjusting an antenna tuner or tuning an amplifier. The button is highlighted in red while *Tune* is active. Toggle the button a second time or click *Halt Tx* to terminate the -*Tune* process. Note that activating *Tune* interrupts a receive -sequence and will prevent decoding during that sequence. +*Tune* process. + +TIP: Activating *Tune* interrupts a receive sequence and will prevent decoding during that sequence. * Uncheck the box *Menus* to make the top-of-window menus disappear, leaving more vertical space for decoded messages. \ No newline at end of file diff --git a/doc/user_guide/en/controls-functions-menus.adoc b/doc/user_guide/en/controls-functions-menus.adoc index d069a9614..546a62d70 100644 --- a/doc/user_guide/en/controls-functions-menus.adoc +++ b/doc/user_guide/en/controls-functions-menus.adoc @@ -1,4 +1,4 @@ -// Status=review +// Status=edited Menus at top of the main window offer many options for configuration and operation. Most of the items are self-explanatory; a few @@ -9,8 +9,7 @@ frequently used menu items are listed at the right edge of the menu. image::MacAppMenu.png[align="left",alt="Mac App Menu"] This menu appears on the Macintosh only. *Settings* appears here, -labeled as *Preferences*, rather than on the *File* menu. *About -WSJT-X* appears here rather than on the *Help* menu. +labeled as *Preferences*, rather than on the *File* menu. *About WSJT-X* appears here rather than on the *Help* menu. [[FILE_MENU]] ==== File menu @@ -20,20 +19,12 @@ image::file-menu.png[align="left",alt="File Menu"] ==== Configuration Menu image::config-menu.png[align="left",alt="File Menu"] -Most users of more than one mode prefer to create and use entries on -the *Configurations* menu for switching between modes. You can -*Clone* the configuration currently in use, *Rename* the clone as -desired, and then make all desired settings for the new configuration. -The easiest way is to start with a working setup for some mode, say -*FT8*. *Clone* it, then select *Configurations | FT8 - Copy | Rename -...*, enter a new name, say *FT4*, and click *OK*. Then select the -new name from the *Configurations* menu and choose *Switch To*. When -the new configuration comes up you can change any desired settings: -for example, select *FT4* from the *Mode* menu. Configurations save -all settings that are normally restored after a program restart, -including which of the defined configurations is currently active. +Many users prefer to create and use entries on the *Configurations* +menu for switching between modes. Simply *Clone* the *Default* entry, +*Rename* it as desired, and then make all desired settings for that +configuration. These settings are restored whenever you select that configuration. -As well as switching between configurations while running _WSJT-X_ you +As well as switching between configurations while running _WSJT-X_, you can also start the application from the command line in any desired configuration. Use the command-line option `--config `, or `-c` for short, as in these diff --git a/doc/user_guide/en/controls-functions-messages.adoc b/doc/user_guide/en/controls-functions-messages.adoc index f7f23870c..2654de71f 100644 --- a/doc/user_guide/en/controls-functions-messages.adoc +++ b/doc/user_guide/en/controls-functions-messages.adoc @@ -1,4 +1,4 @@ -// Status=review +// Status=edited Two arrangements of controls are provided for generating and selecting Tx messages. Controls familiar to users of program _WSJT_ @@ -11,29 +11,27 @@ in one of the decoded text windows. image::traditional-msg-box.png[align="center",alt="Traditional Message Menu"] * Select the next message to be transmitted (at the start of your next -Tx sequence) by clicking on the circle under *Next*. +Tx sequence) by clicking the radio button in the *Next* column. * To change to a specified Tx message immediately during a -transmission, click on a rectangular button under the *Now* label. -Changing a Tx message in mid-stream will slightly reduce the chance of -a correct decode, but it is usually OK if done in the first 10-20% of -a transmission. +transmission, click a rectangular button in the *Now* column. +Changing a Tx message in mid-stream slightly reduces the chance of +a correct decode, but it is usually OK if done in the first 10-20% of a transmission. * All six Tx message fields are editable. You can modify an automatically generated message or enter a desired message, keeping in mind the limits on message content. See <> for details. -* Click on the pull-down arrow for message #5 to select one of the -pre-stored messages entered on the *Settings | Tx Macros* tab. +* Click the pull-down arrow for message #5 to select one of the +stored messages entered on the *Files -> Settings -> Tx Macros* tab. Pressing *Enter* on a modified message #5 automatically adds that message to the stored macros. * In some circumstances it may be desirable to make your QSOs as short as possible. To configure the program to start contacts with -message #2, disable message #1 by double-clicking on its round -radio-button or rectangular *Tx 1* button. Similarly, to send RR73 -rather than RRR for message #4, double-click on one of its buttons. +message #2, disable message #1 by double-clicking its radio-button in the *Next* column or *Tx 1* button in the *Now* column. Similarly, to send RR73 +rather than RRR for message #4, double-click one of its buttons. The second arrangement of controls for generating and selecting Tx messages appears on *Tab 2* of the Message Control Panel: @@ -52,12 +50,12 @@ immediately. * You can enter and transmit anything (up to 13 characters, including spaces) in the *Free Msg* box. -* Click on the pull-down arrow in the *Free Msg* box to select a -pre-stored macro. Pressing *Enter* on a modified message here +* Click the pull-down arrow in the *Free Msg* box to select a +stored macro. Pressing *Enter* on a modified message here automatically adds that message to the table of stored macros. + TIP: During a transmission the actual message being sent always -appears in the first box of the status bar (bottom left of the main +appears in the first box of the status bar (bottom-left corner of the main screen). diff --git a/doc/user_guide/en/install-windows.adoc b/doc/user_guide/en/install-windows.adoc index 15776b27e..95708c83d 100644 --- a/doc/user_guide/en/install-windows.adoc +++ b/doc/user_guide/en/install-windows.adoc @@ -1,17 +1,16 @@ -// Status=review +// Status=edited -Download and execute the package file {win32} (Win 7, Win 8, Win10, -32-bit) or {win64} (Win 7, Win 8, Win10, 64-bit) following these -instructions: +Download and execute the package file {win32} (WinXP, Vista, Win 7, +Win 8, Win10, 32-bit) or {win64} (Vista, Win 7, Win 8, Win10, 64-bit) +following these instructions: -* Install _WSJT-X_ into its own directory, for example `C:\WSJTX` or ` - C:\WSJT\WSJTX`, rather than the conventional location `C:\Program +* Install _WSJT-X_ into its own directory, for example `C:\WSJTX` or `C:\WSJT\WSJTX`, rather than the conventional location `C:\Program Files ...\WSJTX`. -* All program files relating to _WSJT-X_ will be stored in the chosen +* All program files relating to _WSJT-X_ are stored in the chosen installation directory and its subdirectories. -* Logs and other writeable files will normally be found in the +* Logs and other writeable files are normally found in the directory + `C:\Users\\AppData\Local\WSJT-X`. @@ -30,27 +29,23 @@ TIP: Your computer may be configured so that this directory is [[OPENSSL]] -* _WSJT-X_ requires the _OpenSSL_ libraries to be installed, and - suitable libraries may already be installed on your system. If they - are not you will see this error shortly after requesting a fetch of - the latest LoTW users database. To fix this you need to install the - _OpenSSL_ libraries. +image:LoTW_TLS_error.png[_WSJT-X_ LoTW download TLS error, + align="center"] + +* _WSJT-X_ requires installation of the _OpenSSL_ libraries. Suitable libraries may already be installed on your system. If they are not, you will see this error shortly after requesting a fetch of the latest LoTW users database. To fix this, install the _OpenSSL_ libraries. -image::LoTW_TLS_error.png[align="center"] - - -* You can download a suitable _OpenSSL_ package from - {win_openssl_packages}. You need the latest *Windows Light* - version. For the 32-bit _WSJT-X_ build use the latest Win32 v1.1.x +** You can download a suitable _OpenSSL_ package for Windows from + {win_openssl_packages}; you need the latest *Windows Light* + version. For the 32-bit _WSJT-X_ build, use the latest Win32 v1.1.1 version of the _OpenSSL_ libraries, for the 64-bit _WSJT-X_ use the - latest Win64 v1.1.x version of the _OpenSSL_ libraries which at the - time of writing were {win32_openssl} and {win64_openssl}. It is OK - to install both versions on a 64-bit system. + latest Win64 v1.1.1 version of the _OpenSSL_ libraries (Note: it is + OK to install both versions on a 64-bit system) which, at the time + of writing, were {win32_openssl} and {win64_openssl} respectively. ** Install the package and accept the default options, including the option to copy the _OpenSSL_ DLLs to the Windows system directory. There is no obligation to donate to the _OpenSSL_ - project, un-check all the donation options if desired. + + project. Un-check all the donation options if desired. + NOTE: If you still get the same network error after installing the _OpenSSL_ libraries then you also need to install the @@ -61,21 +56,20 @@ NOTE: If you still get the same network error after installing the TIP: If you cannot install the _OpenSSL_ libraries or do not have an Internet connection on the computer used to run - _WSJT-X_ {VERSION_MAJOR}.{VERSION_MINOR}, you can download + _WSJT-X_ {VERSION_MAJOR}.{VERSION_MINOR}, you can download the _LoTW_ file manually. Go to https://lotw.arrl.org/lotw-user-activity.csv in a web browser, download the file, then move it to the _WSJT-X_ log files directory. This directory can be opened by selecting - *File | Open log directory*. + *File|Open log directory* from the main menu. * _WSJT-X_ expects your sound card to do its raw sampling at 48000 Hz. To ensure that this will be so when running under recent versions of Windows, open the system's *Sound* control panel and select in turn - the *Recording* and *Playback* tabs. Click on *Properties*, then + the *Recording* and *Playback* tabs. Click *Properties*, then *Advanced*, and select *16 bit, 48000 Hz (DVD Quality)*. Switch off all audio enhancement features for these devices. * You can uninstall _WSJT-X_ by clicking its *Uninstall* link in the Windows *Start* menu, or by using *Uninstall a Program* on the - Windows Control Panel Programs and Features option or in Settings - Apps and Features on Windows 10. + *Windows Control Panel|Programs and Features* option or in *Settings|Apps* on Windows 10. From 96c97d4b12aa75566959d4c61cda1458c8ed8a27 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 11 Jun 2020 14:29:09 +0100 Subject: [PATCH 059/520] Updated Mac Read Me file, thanks to John, G4KLA --- Darwin/ReadMe.txt | 98 ++++++++++++++++++++++------------------------- 1 file changed, 45 insertions(+), 53 deletions(-) diff --git a/Darwin/ReadMe.txt b/Darwin/ReadMe.txt index 3a2afdc19..3adf32f21 100644 --- a/Darwin/ReadMe.txt +++ b/Darwin/ReadMe.txt @@ -5,40 +5,24 @@ If you have already downloaded a previous version of WSJT-X then I suggest you change the name in the Applications folder from WSJT-X to WSJT-X_previous before proceeding. -If you have installed a previous version of WSJT-X before then there is no -need to change anything on your system so proceed to NEXT. +If you have installed a previous version of WSJT-X before, then there is no +need to change anything on your system so proceed to NEXT. If you upgrade macOS +it is possible that you might need to re-install the sysctl.conf file. BEGIN: -There are some system matters you must deal with first. Open a Terminal window -by going to Applications->Utilities and clicking on Terminal. +Double-click on the wsjtx-...-Darwin.dmg file you have downloaded from K1JT's web-site. -Along with this ReadMe file there is a file: sysctl.conf. Drag this file to your Desktop. +Now open a Terminal window by going to Applications->Utilities and clicking on Terminal. -WSJT-X makes use of a block of memory which is shared between different parts of -the code. The normal allocation of shared memory on a Mac is insufficient and this -has to be increased. You should use a Mac editor to examine sysctl.conf. +Along with this ReadMe file there is a file: sysctl.conf which must be copied to a +system area by typing this line in the Terminal window and then pressing the Return key. -There are two important parameters that you need to consider. shmmax determines the -amount of shared memory that must be allocated for WSJT-X to operate. This is 14680064 (14MB) -and this is defined in the sysctl.conf file and should not be changed. + sudo cp /Volumes/WSJT-X/sysctl.conf /etc -It is possible to run more than one instance of WSJT-X simultaneously. See -"Section 14. Platform Dependencies" in the User Guide. The second important parameter -shmall=17920 determines how many instances are permitted. This is calculated as: - (shmall x 4096/14680064) = 5. -The sysctl.conf file is configured to permit up to 5 instances of wsjtx to run simultaneously. -If this limitation is acceptable then you can continue to install the sysctl.conf file without making any -alterations. Otherwise you must edit the file to increase shmall according to this calculation. - -Now move this file into place for the system to use by typing: (Note this assumes that -you really did drag this file to your Desktop as required earlier.) - - sudo cp "$HOME/Desktop/sysctl.conf" /etc/ - sudo chmod 664 /etc/sysctl.conf - sudo chown root:wheel /etc/sysctl.conf - -and then reboot your Mac. This is necessary to install the changes. After the +you will be asked for your normal password because authorisation is needed to copy this file. +(Your password will not be echoed but press the Return key when completed.) +Now re-boot your Mac. This is necessary to install the changes. After the reboot you should re-open the Terminal window as before and you can check that the change has been made by typing: @@ -47,11 +31,10 @@ change has been made by typing: If shmmax is not shown as 14680064 then contact me since WSJT-X will fail to load with an error message: "Unable to create shared memory segment". -You are now finished with system changes. You should make certain that NO error messages -have been produced during these steps. You can now close the Terminal window. It will -not be necessary to repeat this procedure again, even when you download an updated -version of WSJT-X. - +You can now close the Terminal window. It will not be necessary to repeat this procedure +again, even when you download an updated version of WSJT-X. It might be necessary if you +upgrade macOS. + NEXT: Drag the WSJT-X app to your preferred location, such as Applications. @@ -65,11 +48,8 @@ under the WSJT-X Menu and fill in various station details on the General panel. I recommend checking the 4 boxes under the Display heading and the first 4 boxes under the Behaviour heading. -IMPORTANT: If you are using macOS 10.14 (Mojave) it is important to note that the default setting -for audio input is "block". In order to receive audio from WSJT-X you must visit -System Preferences > Security & Privacy > Privacy and, with WSJT-X launched, select "Microphone" -under Location Services and wsjtx should appear in the panel. Check the "Allow" box. You will -have to quit WSJT-X for this change to take effect. +Depending on your macOS you might see a pop-up window suggesting that wsjtx wants to use the +microphone. What this means is that audio input must be allowed. Agree. Next visit the Audio panel and select the Audio Codec you use to communicate between WSJT-X and your rig. There are so many audio interfaces available that it is not @@ -77,31 +57,43 @@ possible to give detailed advice on selection. If you have difficulties contact Note the location of the Save Directory. Decoded wave forms are located here. Look at the Reporting panel. If you check the "Prompt me" box, a logging panel will appear -at the end of the QSO. Two log files are provided in Library/Application Support/WSJT-X. -These are a simple wsjtx.log file and wsjtx_log.adi which is formatted for use with -logging databases. The "File" menu bar items include a button "Open log directory" -to open the log directory in Finder for you, ready for processing by any logging -application you use. +at the end of the QSO. Visit Section 11 of the User Guide for information about log files +and how to access them. Finally, visit the Radio panel. WSJT-X is most effective when operated with CAT -control. You will need to install the relevant Mac driver for your rig. This must -be located in the device driver directory /dev. You should install your driver -and then re-launch WSJT-X. Return to the the Radio panel in Preferences and in -the "Serial port" panel select your driver from the list that is presented. If -for some reason your driver is not shown, then insert the full name -of your driver in the Serial Port panel. Such as: /dev/cu.PL2303-00002226 or -whatever driver you have. The /dev/ prefix is mandatory. Set the relevant -communication parameters as required by your transceiver and click "Test CAT" to -check. +control. You will need to install the relevant Mac device driver for your rig, +and then re-launch WSJT-X. Return to the Radio panel in Preferences and in +the "Serial port" panel select your driver from the list that is presented. If you +do not know where to get an appropriate driver, contact me. WSJT-X needs the Mac clock to be accurate. Visit System Preferences > Date & Time -and make sure that date and time are set automatically. The drop-down menu will +and make sure that Date and Time are set automatically. The drop-down menu will normally offer you several time servers to choose from. On the Help menu, have a look at the new Online User's Guide for operational hints -and tips. +and tips and possible solutions to any problem you might have. Please email me if you have problems. --- John G4KLA (g4kla@rmnjmn.co.uk) +Addendum: Information about sysctl.conf and multiple instances of wsjt-x. + +WSJT-X makes use of a block of memory which is shared between different parts of +the code. The normal allocation of shared memory on a Mac is insufficient and this +has to be increased. The sysctl.conf file is used for this purpose. You can +use a Mac editor to examine sysctl.conf. (Do not use another editor - the file +would be probably be corrupted.) + +There are two important parameters that you need to consider. shmmax determines the +amount of shared memory that must be allocated for WSJT-X to operate. This is 14680064 (14MB) +and this is defined in the sysctl.conf file and should not be changed. + +It is possible to run more than one instance of WSJT-X simultaneously. See +"Section 16.2 Frequently asked Questions" in the User Guide. The second important parameter +shmall=17920 determines how many instances are permitted. This is calculated as: + (shmall x 4096/14680064) = 5. +The sysctl.conf file is configured to permit up to 5 instances of wsjtx to run simultaneously. +If this limitation is acceptable then you can continue to install the sysctl.conf file without making any +alterations. Otherwise you must edit the file to increase shmall according to this calculation. + From b0a7cdff4857c7293501027f673ec7d9dc36a57c Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 12 Jun 2020 11:24:42 +0100 Subject: [PATCH 060/520] Updated Catalan UI translation, tnx Xavi, EA3W --- translations/wsjtx_ca.ts | 120 +++++++++++++++++++-------------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index 4c9f0ef77..b8bdc2fcb 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -151,7 +151,7 @@ Go to "Menu->File->Settings->Radio" to enable split operation - Vés a "Menú-> Fitxer-> Configuració-> Ràdio" per habilitar l'operació dividida + Vés a "Menú-> Arxiu-> Configuració-> Ràdio" per habilitar l'operació dividida @@ -537,7 +537,7 @@ Format: Frequency files (*.qrg);;All files (*.*) - Fitxers de freqüència (*.qrg);;Tots els fitxers (*.*) + Arxius de freqüència (*.qrg);;Tots els arxius (*.*) @@ -559,12 +559,12 @@ Format: Not a valid frequencies file - El fitxer de freqüències no és vàlid + L'arxiu de freqüències no és vàlid Incorrect file magic - Fitxer màgic incorrecte + L'arxiu màgic es incorrecte @@ -931,12 +931,12 @@ Format: Contents file top level must be a JSON array - El nivell superior del fitxer de contingut ha de ser una matriu JSON + El nivell superior de l'arxiu de contingut ha de ser una matriu JSON File System Error - Error al fitxer de sistema + Error al arxiu de sistema @@ -1264,7 +1264,7 @@ Error: %2 - %3 Save Log File - Enregistra el fitxer de log + Enregistra l'arxiu de log @@ -1279,7 +1279,7 @@ Error: %2 - %3 Export Cabrillo File Error - Error al exportar el fitxer Cabrillo + Error al exportar l'arxiu Cabrillo @@ -1391,7 +1391,7 @@ Error: %2 - %3 Export ADIF Log File - Exporta fitxer de reguistre en format ADIF + Exporta l'arxiu de reguistre en format ADIF @@ -1401,7 +1401,7 @@ Error: %2 - %3 Export ADIF File Error - Error al exportar el fitxer en format ADIF + Error al exportar l'arxiu en format ADIF @@ -1421,7 +1421,7 @@ Error: %2 - %3 Are you sure you want to erase file FoxQSO.txt and start a new Fox log? - Estàs segur que vols esborrar el fitxer FoxQSO.txt i començar un log nou de FOX ? + Estàs segur que vols esborrar l'arxiu FoxQSO.txt i començar un log nou de FOX ? @@ -1487,7 +1487,7 @@ Error: %2 - %3 Failed to open file "%1": %2. - Error a l'obrir el fitxer "%1": %2. + Error a l'obrir l'arxiu "%1": %2. @@ -1572,17 +1572,17 @@ Error: %2 - %3 Hamlib settings file error: %1 at character offset %2 - Error del fitxer de configuració de Hamlib: %1 en el desplaçament de caràcters %2 + Error de l'arxiu de configuració de Hamlib: %1 en el desplaçament de caràcters %2 Hamlib settings file error: top level must be a JSON object - Error del fitxer de configuració de Hamlib: el nivell superior ha de ser un objecte JSON + Error de l'arxiu de configuració de Hamlib: el nivell superior ha de ser un objecte JSON Hamlib settings file error: config must be a JSON object - Error del fitxer de configuració de Hamlib: config ha de ser un objecte JSON + Error de l'arxiu de configuració de Hamlib: config ha de ser un objecte JSON @@ -1745,7 +1745,7 @@ Error: %2 - %3 Help file error - Error del fitxer d'ajuda + Error de l'arxiu d'ajuda @@ -1875,7 +1875,7 @@ Error: %2 - %3 Log file error - Error al fitxer de log + Error a l'arxiu de log @@ -1915,7 +1915,7 @@ Error: %2 - %3 File System Error - Cannot commit changes to: "%1" - Error de sistema de fitxers: no es poden confirmar els canvis a: + Error de sistema d'arxius: no es poden confirmar els canvis a: "%1" @@ -1923,7 +1923,7 @@ Error: %2 - %3 File System Error - Cannot open file: "%1" Error(%2): %3 - Error del sistema de fitxers - no es pot obrir el fitxer: + Error del sistema d'arxius - no es pot obrir l'arxiu: "%1" Error(%2): %3 @@ -1932,7 +1932,7 @@ Error(%2): %3 File System Error - Cannot write to file: "%1" Error(%2): %3 - Error del sistema de fitxers - no es pot escriure al fitxer: + Error del sistema d'arxius - no es pot escriure a l'arxiu: "%1" Error(%2): %3 @@ -3083,7 +3083,7 @@ La llista es pot mantenir a la configuració (F2). File - Fitxer + Arxiu @@ -3163,7 +3163,7 @@ La llista es pot mantenir a la configuració (F2). Decode remaining files in directory - Descodificar els fitxers restants al directori + Descodificar els arxius restants al directori @@ -3173,7 +3173,7 @@ La llista es pot mantenir a la configuració (F2). Delete all *.wav && *.c2 files in SaveDir - Esborrar tots els fitxers *.wav i *.c2 + Esborrar tots els arxius *.wav i *.c2 @@ -3228,12 +3228,12 @@ La llista es pot mantenir a la configuració (F2). Erase ALL.TXT - Esborrar el fitxer ALL.TXT + Esborrar l'arxiu ALL.TXT Erase wsjtx_log.adi - Esborrar el fitxer wsjt_log.adi + Esborrar l'arxiu wsjtx_log.adi @@ -3415,7 +3415,7 @@ La llista es pot mantenir a la configuració (F2). <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> - <html><head/><body><p>Descarrega fitxers d’àudio d’exemple mostrant els diversos modes.</p></body></html> + <html><head/><body><p>Descarrega els arxius d’àudio d’exemple mostrant els diversos modes.</p></body></html> @@ -3588,7 +3588,7 @@ La llista es pot mantenir a la configuració (F2). Error Writing WAV File - S'ha produït un error al escriure el fitxer WAV + S'ha produït un error al escriure l'arxiu WAV @@ -3645,7 +3645,7 @@ La llista es pot mantenir a la configuració (F2). File Open Error - Error al obrir el fitxer + Error al obrir l'arxiu @@ -3659,7 +3659,7 @@ La llista es pot mantenir a la configuració (F2). Error saving c2 file - Error en desar el fitxer c2 + Error en desar l'arxiu c2 @@ -3698,7 +3698,7 @@ La llista es pot mantenir a la configuració (F2). Status File Error - Error d'estat del fitxer + Error d'estat de l'arxiu @@ -3765,7 +3765,7 @@ La llista es pot mantenir a la configuració (F2). The "fmt.all" file will be renamed as "fmt.bak" - El fitxer "fmt.all" serà renombrat com a "fmt.bak" + L'arxiu "fmt.all" serà renombrat com a "fmt.bak" @@ -3778,7 +3778,7 @@ La llista es pot mantenir a la configuració (F2). No data read from disk. Wrong file format? - No es llegeixen dades del disc. Format de fitxer incorrecte ? + No es llegeixen dades del disc. Format de l'arxiu incorrecte ? @@ -3788,7 +3788,7 @@ La llista es pot mantenir a la configuració (F2). Are you sure you want to delete all *.wav and *.c2 files in "%1"? - Estàs segur que vols esborrar tots els fitxers *.wav i *.c2"%1" ? + Estàs segur que vols esborrar tots els arxius *.wav i *.c2"%1" ? @@ -3803,7 +3803,7 @@ La llista es pot mantenir a la configuració (F2). No more files to open. - No s’obriran més fitxers. + No s’obriran més arxius. @@ -3884,7 +3884,7 @@ ja és a CALL3.TXT, vols substituir-lo ? Log file error - Error al fitxer de log + Error a l'arxiu de log @@ -3926,7 +3926,7 @@ ja és a CALL3.TXT, vols substituir-lo ? Are you sure you want to erase file ALL.TXT? - Estàs segur que vols esborrar el fitxer ALL.TXT ? + Estàs segur que vols esborrar l'arxiu ALL.TXT ? @@ -3942,7 +3942,7 @@ ja és a CALL3.TXT, vols substituir-lo ? Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - Si fas això, suprimiràs tots els registres de QSO del concurs actual. Es conservaran al fitxer de log ADIF, però no es podran exportar al log de Cabrillo. + Si fas això, suprimiràs tots els registres de QSO del concurs actual. Es conservaran a l'arxiu de log ADIF, però no es podran exportar al log de Cabrillo. @@ -3952,7 +3952,7 @@ ja és a CALL3.TXT, vols substituir-lo ? Are you sure you want to erase file wsjtx_log.adi? - Estàs segur que vols esborrar el fitxer wsjtx_log.adi ? + Estàs segur que vols esborrar l'arxiu wsjtx_log.adi ? @@ -3994,7 +3994,7 @@ UDP server %2:%3 File Error - Error al fitxer + Error a l'arxiu @@ -4015,7 +4015,7 @@ UDP server %2:%3 Log File Error - Error al fitxer de log + Error a l'arxiu de log @@ -4188,7 +4188,7 @@ UDP server %2:%3 Failed to open LotW users CSV file: '%1' - No s'ha pogut obrir el fitxer CSV dels usuaris de LotW: '%1' + No s'ha pogut obrir l'arxiu CSV dels usuaris de LotW: '%1' @@ -4203,27 +4203,27 @@ UDP server %2:%3 Error reading waterfall palette file "%1:%2" too many colors. - Error de lectura del fitxer de paleta de la cascada "%1:%2" massa colors. + Error de lectura de l'arxiu de paleta de la cascada "%1:%2" massa colors. Error reading waterfall palette file "%1:%2" invalid triplet. - Error de lectura del fitxer de paleta de la cascada "%1:%2" triplet no vàlid. + Error de lectura de l'arxiu de paleta de la cascada "%1:%2" triplet no vàlid. Error reading waterfall palette file "%1:%2" invalid color. - Error de lectura del fitxer de paleta de la cascada "%1:%2" color no vàlid. + Error de lectura de l'arxiu de paleta de la cascada "%1:%2" color no vàlid. Error opening waterfall palette file "%1": %2. - Error obrint el fitxer de paleta de la cascada "%1": %2. + Error obrint l'arxiu de paleta de la cascada "%1": %2. Error writing waterfall palette file "%1": %2. - Error d'escriptura del fitxer de paleta de la cascada "%1": %2. + Error d'escriptura de l'arxiu de paleta de la cascada "%1": %2. @@ -4244,7 +4244,7 @@ UDP server %2:%3 "%1" to: "%2" Error(%3): %4 - No es pot renombrar el fitxer: + No es pot renombrar l'arxiu: "%1" a: "%2" Error (%3): %4 @@ -4253,7 +4253,7 @@ Error (%3): %4 Cannot delete file: "%1" - No es pot esborrar el fitxer: + No es pot esborrar l'arxiu: "%1" @@ -4285,7 +4285,7 @@ Error (%3): %4 Cannot open file: "%1" Error(%2): %3 - No es pot obrir el fitxer: + No es pot obrir l'arxiu: "%1" Error (%2): %3 @@ -4803,7 +4803,7 @@ Error(%2): %3 &Tx messages to Rx frequency window - Missa&tges de TX a la finestra de la freqüència de RX + Missatges de &TX a la finestra de la freqüència de RX @@ -4965,7 +4965,7 @@ missatge de text lliure. CW ID a&fter 73 - CW ID d&esprés del 73 + CW ID després del &73 @@ -5504,7 +5504,7 @@ els dos canals. Path to which .WAV files are saved. - Ruta a la qual es desen els fitxers .WAV. + Ruta a la qual es desen els arxius .WAV. @@ -5515,7 +5515,7 @@ els dos canals. Click to select a different save directory for .WAV files. - Fes clic per seleccionar un directori diferent per desar els fitxers .WAV. + Fes clic per seleccionar un directori diferent per desar els arxius .WAV. @@ -5866,7 +5866,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - <html><head/><body><p>Fes clic per analitzar el fitxer ADIF wsjtx_log.adi de nou per obtenir la informació abans treballada</p></body></html> + <html><head/><body><p>Fes clic per analitzar l'arxiu ADIF wsjtx_log.adi de nou per obtenir la informació abans treballada</p></body></html> @@ -5926,12 +5926,12 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. Users CSV file URL: - URL del fitxer CSV dels usuaris: + URL de l'arxiu CSV dels usuaris: <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> - <html><head/><body><p>URL de l'últim fitxer de dades de dates i hores de càrrega de ARRL LotW que s'utilitza per ressaltar descodificacions d'estacions que se sap que carreguen el seu arxiu de log a LotW.</p></body></html> + <html><head/><body><p>URL de l'últim arxiu de dades de dates i hores de càrrega de ARRL LotW que s'utilitza per ressaltar descodificacions d'estacions que se sap que carreguen el seu arxiu de log a LotW.</p></body></html> @@ -5941,7 +5941,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> - <html><head/><body><p>Fes clic sobre aquest botó per obtenir l'últim fitxer de dades de data i hora de càrrega dels usuaris de LotW.</p></body></html> + <html><head/><body><p>Fes clic sobre aquest botó per obtenir l'últim arxiu de dades de data i hora de càrrega dels usuaris de LotW.</p></body></html> @@ -6108,7 +6108,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. Degrade S/N of .wav file: - Grau S/N del fitxer .wav: + Grau S/N de l'arxiu .wav: @@ -6239,7 +6239,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. Writable files in test location. Use with caution, for testing only. - Fitxers amb permis d'escriptura a la ubicació de proves. Utilitzar amb precaució, només per a proves. + Arxius amb permis d'escriptura a la ubicació de proves. Utilitzar amb precaució, només per a proves. @@ -6264,7 +6264,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. try to remove stale lock file? - intenteu eliminar el fitxer de bloqueig no realitzat? + intenteu eliminar l'arxiu de bloqueig no realitzat? From 4476c0e736dbb9aeae2e0c110235bb9722306b3a Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 12 Jun 2020 11:27:24 +0100 Subject: [PATCH 061/520] =?UTF-8?q?Updated=20Spanish=20UI=20translation,?= =?UTF-8?q?=20tnx=20C=C3=A9dric,=20EA4AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/wsjtx_es.ts | 2174 ++++++++++++++++++++++---------------- 1 file changed, 1261 insertions(+), 913 deletions(-) diff --git a/translations/wsjtx_es.ts b/translations/wsjtx_es.ts index 5befb7358..34a6c5036 100644 --- a/translations/wsjtx_es.ts +++ b/translations/wsjtx_es.ts @@ -6,7 +6,8 @@ &Delete ... - &Borrar ... + &Borrar ... + &Borrar @@ -19,9 +20,10 @@ Are you sure you want to delete the %n selected QSO(s) from the log? + ¿Estás seguro de que deseas eliminar los %n QSO's seleccionados en el log? NO HABÍA TRADUCCIÓN PARA EL PLURAL - ¿Estás seguro de que deseas eliminar los %n QSO's seleccionados en el log? - + ¿Está seguro de que desea borrar los %n QSO's seleccionados del log? + ¿Está seguro de que desea borrar los %n QSO's seleccionados del log? @@ -43,57 +45,65 @@ <html><head/><body><p>One station does all Doppler shift correction, their QSO partner receives and transmits on the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> - <html><head/><body><p>Una estación realiza toda la corrección de desplazamiento Doppler, su corresponsal de QSO recibe y transmite en la frecuencia marcada.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p></body></html> + <html><head/><body><p>Una estación realiza toda la corrección de desplazamiento Doppler, su corresponsal de QSO recibe y transmite en la frecuencia marcada.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p></body></html> + <html><head/><body><p>Una estación realiza toda la corrección de desplazamiento Doppler, su corresponsal recibe y transmite en la frecuencia pactada.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p></body></html> Full Doppler to DX Grid - Doppler completo en la parrilla de DX + Doppler completo en la parrilla de DX + "Full Doppler" al locator DX <html><head/><body><p>Transmit takes place on sked frequency and receive frequency is corrected for own echoes. </p><p>This mode can be used for calling CQ, or when using Echo mode.</p></body></html> - <html><head/><body><p>La transmisión tiene lugar en la frecuencia marcada y la frecuencia de recepción se corrige por los propios ecos.</p><p>Este modo se puede usar para llamar a CQ o cuando se usa el modo Eco.</p></body></html> + <html><head/><body><p>La transmisión tiene lugar en la frecuencia marcada y la frecuencia de recepción se corrige por los propios ecos.</p><p>Este modo se puede usar para llamar a CQ o cuando se usa el modo Eco.</p></body></html> + <html><head/><body><p>La transmisión tiene lugar en la frecuencia pactada y la frecuencia de recepción se corrige por los propios ecos.</p><p>Este modo se puede usar para llamar CQ o cuando se usa el modo Eco.</p></body></html> Own Echo - Propio Eco + Propio Eco <html><head/><body><p>Both stations correct for Doppler shift such that they would be heard on the moon at the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p><p>Use this option also for Echo mode.</p></body></html> - <html><head/><body><p>Ambas estaciones corrigen el cambio Doppler de tal manera que se escuchen en la Luna a la frecuencia marcada.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p><p>Usa esta opción también para el modo Eco.</p></body></html> + <html><head/><body><p>Ambas estaciones corrigen el cambio Doppler de tal manera que se escuchen en la Luna a la frecuencia marcada.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p><p>Usa esta opción también para el modo Eco.</p></body></html> + <html><head/><body><p>Ambas estaciones corrigen el efecto Doppler de tal manera que se escuchen en la luna a la frecuencia pactada.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p><p>Use esta opción también para el modo Eco.</p></body></html> Constant frequency on Moon - Frecuencia constante en la Luna + Frecuencia constante en la luna <html><head/><body><p>DX station announces their TX Freq, which is entered as the Sked Freq. Correction applied to RX and TX so you appear on the DX's station's own echo Freq.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> - <html><head/><body><p>La estación DX anuncia su frecuencia de TX, que se ingresa como Sked Freq. La corrección aplicada a RX y TX para que aparezca en la propia frecuencia de eco de la estación DX.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p></body></html> + <html><head/><body><p>La estación DX anuncia su frecuencia de TX, que se ingresa como Sked Freq. La corrección aplicada a RX y TX para que aparezca en la propia frecuencia de eco de la estación DX.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p></body></html> + <html><head/><body><p>Las estaciónes DX anuncian su frecuencia de TX, la cual es escrita en la frecuencia pactada. La corrección se aplica a RX y TX para que aparezca en la propia frecuencia de eco de la estación DX.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p></body></html> On DX Echo - Encender DX Eco + Encender DX Eco <html><head/><body><p>Tune radio manually and select this mode to put your echo on the same frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> - <html><head/><body><p>Sintoniza el equipo manualmente y selecciona este modo para poner tú eco en la misma frecuencia.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p></body></html> + <html><head/><body><p>Sintoniza el equipo manualmente y selecciona este modo para poner tú eco en la misma frecuencia.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p></body></html> + <html><head/><body><p>Sintoniza el equipo manualmente y selecciona este modo para poner tu eco en la misma frecuencia.</p><p>Si el equipo no acepta comandos CAT QSY mientras se transmite, se aplica una única corrección para todo el período de transmisión.</p></body></html> Call DX - Indicativo de DX + Indicativo de DX + Llamar DX <html><head/><body><p>No Doppler shift correction is applied. This may be used when the QSO partner does full Doppler correction to your grid square.</p></body></html> - <html><head/><body><p>No se aplica la corrección de desplazamiento Doppler. Esto se puede utilizar cuando el otro corresponsal de QSO realiza una corrección Doppler completa en tú locator.</p></body></html> + <html><head/><body><p>No se aplica la corrección de desplazamiento Doppler. Esto se puede utilizar cuando el otro corresponsal de QSO realiza una corrección Doppler completa en tú locator.</p></body></html> + <html><head/><body><p>No se aplica la corrección de efecto Doppler. Esto puede utilizarse cuando el corresponsal realice una corrección Doppler completa hacia tu locator.</p></body></html> @@ -103,7 +113,8 @@ Sked frequency - Frecuencia Sked + Frecuencia Sked + Frecuencia pactada @@ -124,7 +135,8 @@ <html><head/><body><p>Press and hold the CTRL key to adjust the sked frequency manually with the rig's VFO dial or enter frequency directly into the band entry field on the main window.</p></body></html> - <html><head/><body><p>Presiona y mantén presionada la tecla CTRL para ajustar la frecuencia sked manualmente con el dial VFO del equipo o introduce la frecuencia directamente en el campo de entrada de banda en la ventana principal.</p></body></html> + <html><head/><body><p>Presiona y mantén presionada la tecla CTRL para ajustar la frecuencia sked manualmente con el dial VFO del equipo o introduce la frecuencia directamente en el campo de entrada de banda en la ventana principal.</p></body></html> + <html><head/><body><p>Presiona y mantén presionada la tecla CTRL para ajustar la frecuencia pactada manualmente con el VFO del equipo o introduce la frecuencia directamente en el campo de entrada de banda en la ventana principal.</p></body></html> @@ -135,22 +147,25 @@ Astronomical Data Configuración para clonar desde Datos astronómicos - Datos Astronómicos + Datos Astronómicos Doppler Tracking Error - Error de seguimiento de Doppler + Error de seguimiento de Doppler + Seguimiento de error Doppler Split operating is required for Doppler tracking - Se requiere un funcionamiento dividido para el seguimiento Doppler + Se requiere un funcionamiento dividido para el seguimiento Doppler + Operación en "Split" es requerida para seguimiento Doppler Go to "Menu->File->Settings->Radio" to enable split operation - Ves a "Menú-> Archivo-> Configuración-> Radio" para habilitar la operación dividida + Ves a "Menú-> Archivo-> Configuración-> Radio" para habilitar la operación dividida + Ir a "Menú - Archivo - Ajustes - Radio" para habilitar la operación en "Split" @@ -158,7 +173,8 @@ Band name - Nombre de la Banda + Nombre de la Banda + Nombre de la banda @@ -204,7 +220,8 @@ &Set Rx && Tx Offset - &Define el desplazamiento de RX && TX + &Define el desplazamiento de RX && TX + E&stablecer frecuencia de RX y TX @@ -213,7 +230,7 @@ Freq(MHz) Frecuencia en MHz - Freq.(MHz) + Freq.(MHz) @@ -223,7 +240,8 @@ Date & Time(UTC) - Fecha y Hora en UTC + Fecha y Hora en UTC + Fecha y Hora (UTC) @@ -256,12 +274,14 @@ <html><head/><body><p>Right-click here for available actions.</p></body></html> - <html><head/><body><p>Haz clic derecho aquí para ver las acciones disponibles.</p></body></html> + <html><head/><body><p>Haz clic derecho aquí para ver las acciones disponibles.</p></body></html> + <html><head/><body><p>Clic derecho aquí para ver las opciones disponibles.</p></body></html> Right-click here for available actions. - Haz clic derecho aquí para ver las acciones disponibles. + Haz clic derecho aquí para ver las acciones disponibles. + Clic derecho aquí para ver las opciones disponibles. @@ -292,8 +312,8 @@ K1ABC - EA3RDG - Neutro, por favor - EA1ABC + EA3RDG + EA1ABC @@ -319,7 +339,7 @@ New Grid Nuevo Locator/Grid - Nuevo Locator + Nuevo locator @@ -335,7 +355,7 @@ New Grid on Band Nuevo Locator/Grid en banda - Nuevo Locator en banda + Nuevo locator en banda @@ -346,17 +366,19 @@ Uploads to LotW Subidas a LotW - Subidas a LoTW + Subidas a LoTW New Continent - Nuevo Continente + Nuevo Continente + Nuevo continente New Continent on Band - Nuevo Continente en banda + Nuevo Continente en banda + Nuevo continente en banda @@ -393,12 +415,13 @@ &Insert ... &Introducir ... - &Agregar ... + &Agregar Failed to create save directory - No se pudo crear el directorio para guardar + No se pudo crear el directorio para guardar + No se pudo crear el directorio "Save" @@ -408,7 +431,8 @@ Failed to create samples directory - No se pudo crear el directorio de ejemplos + No se pudo crear el directorio de ejemplos + No se pudo crear el directorio "Samples" @@ -418,17 +442,20 @@ &Load ... - &Carga ... + &Carga ... + &Cargar &Save as ... - &Guardar como ... + &Guardar como ... + &Guardar como &Merge ... - &Fusionar ... + &Fusionar ... + &Fusionar @@ -458,8 +485,14 @@ Formats: hostname:port IPv4-address:port [IPv6-address]:port - Hostname opcional y puerto de acceso del servicio de red. + Hostname opcional y puerto de acceso del servicio de red. Déjalo en blanco para un valor predeterminado razonable en esta máquina. +Formatos: + hostname:port + dirección IPv4:port + [dirección IPv6]:port + "Hostname" y puerto del servicio de red. +Dejar en blanco para un valor predeterminado en esta máquina. Formatos: hostname:port dirección IPv4:port @@ -476,30 +509,38 @@ Formatos: Leave blank for a sensible default for the rig. Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - Identificación opcional del dispositivo. + Identificación opcional del dispositivo. Deja en blanco un valor predeterminado razonable para el equipo. +Formato: + [VID[:PID[:VENDOR[:PRODUCT]]]] + Identificación opcional del dispositivo. +Deja en blanco un valor predeterminado para el equipo. Formato: [VID[:PID[:VENDOR[:PRODUCT]]]] Invalid audio input device - El dispositivo de entrada de audio no es válido + El dispositivo de entrada de audio no es válido + Dispositivo de entrada de audio no válido Invalid audio out device - El dispositivo de salida de audio no es válido + El dispositivo de salida de audio no es válido + Dispositivo de salida de audio no válido Invalid PTT method - El método de PTT no es válido + El método de PTT no es válido + Método PTT no válido Invalid PTT port - El puerto del PTT no es válido + El puerto del PTT no es válido + Puerto PTT no válido @@ -511,32 +552,37 @@ Formato: You must input a valid ARRL Field Day exchange Debes introducir un intercambio de Field Day del ARRL válido - Debes introducir un intercambio de Field Day (ARRL) válido + Debe introducir un intercambio válido para el ARRL Field Day You must input a valid ARRL RTTY Roundup exchange - Debes introducir un intercambio válido de la ARRL RTTY Roundup + Debes introducir un intercambio válido de la ARRL RTTY Roundup + Debe introducir un intercambio válido para el ARRL RTTY Roundup Reset Decode Highlighting - Restablecer Resaltado de Decodificación + Restablecer Resaltado de Decodificación + Restablecer resaltado de colores de decodificados Reset all decode highlighting and priorities to default values - Restablecer todo el resaltado y las prioridades de decodificación a los valores predeterminados + Restablecer todo el resaltado y las prioridades de decodificación a los valores predeterminados + Restablecer todo el resaltado de colores y prioridades a los valores predeterminados WSJT-X Decoded Text Font Chooser - Tipo de texto de pantalla de descodificación WSJT-X + Tipo de texto de pantalla de descodificación WSJT-X + Seleccionar un tipo de letra Load Working Frequencies - Carga las frecuencias de trabajo + Carga las frecuencias de trabajo + Cargar las frecuencias de trabajo @@ -548,16 +594,19 @@ Formato: Replace Working Frequencies - Sustituye las frecuencias de trabajo + Sustituye las frecuencias de trabajo + Sustituir las frecuencias de trabajo Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por las cargadas? + ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por las cargadas? + ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las cargadas? Merge Working Frequencies + Combinar las frecuencias de trabajo Combina las frecuencias de trabajo @@ -565,7 +614,8 @@ Formato: Not a valid frequencies file - El archivo de frecuencias no es válido + El archivo de frecuencias no es válido + Archivo de frecuencias no válido @@ -580,7 +630,8 @@ Formato: Contents corrupt - contenidos corruptos + contenidos corruptos + Contenido corrupto @@ -590,13 +641,14 @@ Formato: Only Save Selected Working Frequencies - Guarda sólo las frecuencias de trabajo seleccionadas + Guarda sólo las frecuencias de trabajo seleccionadas + Sólo guarda las frecuencias de trabajo seleccionadas Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. ¿Seguro que quieres guardar sólo las frecuencias de trabajo seleccionadas actualmente? Haz clic en No para guardar todo. - ¿Seguro que quiere guardar sólo las frecuencias de trabajo seleccionadas actualmente? Clic en No para guardar todo. + ¿Seguro que quiere guardar sólo las frecuencias de trabajo seleccionadas actualmente? Clic en No para guardar todo. @@ -606,13 +658,14 @@ Formato: Are you sure you want to discard your current working frequencies and replace them with default ones? - ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por otras? + ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por otras? + ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las de defecto? Save Directory Guardar directorio - Directorio "Save" + Directorio "Save" @@ -627,7 +680,8 @@ Formato: Failed to open connection to rig - No se pudo abrir la conexión al equipo + No se pudo abrir la conexión al equipo + Fallo al abrir la conexión al equipo @@ -647,12 +701,14 @@ Formato: DX Lab Suite Commander didn't respond correctly reading frequency: - DX Lab Suite Commander no respondió correctamente la frecuencia de lectura: + DX Lab Suite Commander no respondió correctamente la frecuencia de lectura: + DX Lab Suite Commander no respondió correctamente leyendo la frecuencia: DX Lab Suite Commander sent an unrecognised TX state: - DX Lab Suite Commander envió un estado TX no reconocido: + DX Lab Suite Commander envió un estado TX no reconocido: + DX Lab Suite Commander envió un estado de TX no reconocido: @@ -667,7 +723,8 @@ Formato: DX Lab Suite Commander didn't respond correctly polling frequency: - DX Lab Suite Commander no respondió correctamente a la frecuencia de sondeo: + DX Lab Suite Commander no respondió correctamente a la frecuencia de sondeo: + DX Lab Suite Commander no respondió correctamente sondeando la frecuencia: @@ -677,12 +734,14 @@ Formato: DX Lab Suite Commander sent an unrecognised split state: - DX Lab Suite Commander envió un split no reconocido: + DX Lab Suite Commander envió un split no reconocido: + DX Lab Suite Commander envió un estado de split no reconocido: DX Lab Suite Commander didn't respond correctly polling split status: - DX Lab Suite Commander no respondió correctamente al split de sondeo: + DX Lab Suite Commander no respondió correctamente al split de sondeo: + DX Lab Suite Commander no respondió correctamente sondeando el estado del split: @@ -692,33 +751,38 @@ Formato: DX Lab Suite Commander didn't respond correctly polling mode: - DX Lab Suite Commander no respondió correctamente el modo de sondeo: + DX Lab Suite Commander no respondió correctamente el modo de sondeo: + DX Lab Suite Commander no respondió correctamente sondeando el modo: DX Lab Suite Commander send command failed - El comando de envío de DX Lab Suite Commander falló + El comando de envío de DX Lab Suite Commander falló + DX Lab Suite Commander, el comando "enviar" ha fallado DX Lab Suite Commander failed to send command "%1": %2 - DX Lab Suite Commander no pudo enviar el comando "%1": %2 + DX Lab Suite Commander ha fallado al enviar el comando "%1": %2 DX Lab Suite Commander send command "%1" read reply failed: %2 - Comando de envío de DX Lab Suite Commander "%1" lectura de respuesta fallida: %2 + Comando de envío de DX Lab Suite Commander "%1" lectura de respuesta fallida: %2 + + DX Lab Suite Commander ha enviado el comando"%1" y lectura de respuesta ha fallido: %2 DX Lab Suite Commander retries exhausted sending command "%1" - DX Lab Suite Commander reintenta el comando de envío agotado "%1" + DX Lab Suite Commander reintenta el comando de envío agotado "%1" + DX Lab Suite Commander ha excedido los intentos enviando el comando "%1" @@ -732,19 +796,19 @@ Formato: &Foreground color ... &Color de primer plano ... - &Color de letras ... + &Color de letras ... Choose %1 Foreground Color Olvide copiar el texto original - Escoga %1 color de letras + Escoga %1 color de letras &Unset foreground color &Color de primer plano desarmado - &Color de letras predeterminado + &Reiniciar color de letras @@ -761,7 +825,7 @@ Formato: U&nset background color C&olor de fondo desarmado - C&olor de fondo predeterminado + Rei&niciar Color de fondo @@ -800,13 +864,13 @@ Formato: New Grid Nuevo Locator/Grid - Nuevo Locator + Nuevo locator New Grid on Band Nuevo Locator/Grid en banda - Nuevo Locator en banda + Nuevo locator en banda @@ -821,12 +885,14 @@ Formato: New Continent - Nuevo Continente + Nuevo Continente + Nuevo continente New Continent on Band - Nuevo Continente en banda + Nuevo Continente en banda + Nuevo continente en banda @@ -857,13 +923,13 @@ Formato: f/g unset f/g desarmado - color letras prederminado + Color letras prederminado b/g unset b/g desarmado - color fondo predeterminado + Color fondo predeterminado @@ -882,19 +948,19 @@ Formato: &Insert ... &Introducir ... - &Agregar ... + &Agregar ... Insert &after ... Introducir &después ... - Agregar &después ... + &Agregar después ... Import Palette Importar la paleta - Importar Paleta + Importar Paleta @@ -906,7 +972,7 @@ Formato: Export Palette Exportar la paleta - Exportar Paleta + Exportar Paleta @@ -920,28 +986,21 @@ Formato: Directory - - - File - Fichero - - - - Progress - - URL Error - Error al URL + Error al URL + Enrror en el enlace Invalid URL: "%1" - URL no válida: + URL no válida: +"%1" + Enlace no válido: "%1" @@ -958,49 +1017,59 @@ Formato: Contents file syntax error %1 at character offset %2 - Error de sintaxis %1 en el desplazamiento de caracteres %2 + Error de sintaxis %1 en el desplazamiento de caracteres %2 + Error de sintaxis %1 en el desplazamiento de caracteres %2 Contents file top level must be a JSON array - El nivel superior del archivo de contenido debe ser una matriz JSON + El nivel superior del archivo de contenido debe ser una matriz JSON + El nivel superior del archivo de contenido debe ser una matriz JSON File System Error - Error del sistema de archivos + Error del sistema de archivos + Error en el sistema de archivos Failed to open "%1" Error: %2 - %3 - Falló al abrir "%1" + Falló al abrir "%1" +Error: %2 - %3 + Fallo al abrir "%1" Error: %2 - %3 Contents entries must be a JSON array - Las entradas de contenido deben ser una matriz JSON + Las entradas de contenido deben ser una matriz JSON + Las entradas deben ser una matriz JSON Contents entries must have a valid type - Las entradas de contenido deben tener un tipo válido + Las entradas de contenido deben tener un tipo válido + Las entradas deben tener un tipo válido Contents entries must have a valid name - Las entradas de contenido deben tener un nombre válido + Las entradas de contenido deben tener un nombre válido + Las entradas deben tener un nombre válido Contents entries must be JSON objects - Las entradas de contenido deben ser objetos JSON + Las entradas de contenido deben ser objetos JSON + Las entradas deben ser objetos JSON Contents directories must be relative and within "%1" - Los directorios de contenido deben ser relativos y dentro de "%1" + Los directorios de contenido deben ser relativos y dentro de "%1" + Los directorios deben ser relativos y dentro de "%1" @@ -1028,7 +1097,7 @@ Error: %2 - %3 Echo Graph Gráfico de eco - Gráfico de Eco + Gráfico de Eco @@ -1049,7 +1118,7 @@ Error: %2 - %3 <html><head/><body><p>Echo spectrum gain</p></body></html> <html><head/><body><p>Ganancia de espectro de eco</p></body></html> - <html><head/><body><p>Ganancia de espectro de Eco</p></body></html> + <html><head/><body><p>Ganancia de espectro de Eco</p></body></html> @@ -1059,12 +1128,14 @@ Error: %2 - %3 <html><head/><body><p>Echo spectrum zero</p></body></html> - <html><head/><body><p>Espectro de eco cero</p></body></html> + <html><head/><body><p>Espectro de eco cero</p></body></html> + <html><head/><body><p>Eco, espectro cero</p></body></html> <html><head/><body><p>Smoothing of echo spectrum</p></body></html> - <html><head/><body><p>Suavizado del espectro de eco</p></body></html> + <html><head/><body><p>Suavizado del espectro de eco</p></body></html> + <html><head/><body><p>Suavizado del espectro de Eco</p></body></html> @@ -1074,7 +1145,8 @@ Error: %2 - %3 <html><head/><body><p>Number of echo transmissions averaged</p></body></html> - <html><head/><body><p>Número promedio de transmisiones de eco</p></body></html> + <html><head/><body><p>Número promedio de transmisiones de eco</p></body></html> + <html><head/><body><p>Número de transmisiones de Eco promedidas</p></body></html> @@ -1084,7 +1156,8 @@ Error: %2 - %3 <html><head/><body><p>Click to cycle through a sequence of colors and line widths.</p></body></html> - <html><head/><body><p>Haz clic para recorrer una secuencia de colores y anchos de línea.</p></body></html> + <html><head/><body><p>Haz clic para recorrer una secuencia de colores y anchos de línea.</p></body></html> + <html><head/><body><p>Clic para cambiar entre una secuencia de colores y anchos de línea.</p></body></html> @@ -1097,7 +1170,8 @@ Error: %2 - %3 Emulated split mode requires rig to be in simplex mode - El modo dividido emulado requiere que el equipo esté en modo simplex + El modo dividido emulado requiere que el equipo esté en modo simplex + Emular el modo "Split" el equipo requiere estar en modo simplex @@ -1126,12 +1200,14 @@ Error: %2 - %3 Measured - Medida + Medida + Medido Proposed - Propuesta + Propuesta + Propuesto @@ -1151,7 +1227,7 @@ Error: %2 - %3 Relative Power (dB) - Potencia Relativa (dB) + Potencia relativa (dB) @@ -1171,7 +1247,8 @@ Error: %2 - %3 Discard Measured - Rechaza la medición + Rechaza la medición + Rechazar lo medido @@ -1180,13 +1257,13 @@ Error: %2 - %3 Configuration to Clone From Configuración para clonar desde - Clonar desde + Clonar desde &Source Configuration Name: &Nombre de la configuración/ajuste de la fuente: - &Configuración de origen: + &Nombre de la configuración de origen: @@ -1224,7 +1301,8 @@ Error: %2 - %3 Category-Operator: - Categoria del Operador: + Categoria del Operador: + Categoria - Operador: @@ -1234,17 +1312,20 @@ Error: %2 - %3 Category-Transmitter: - Categoria del Transmisor: + Categoria del Transmisor: + Categoria - Transmisor: ONE - Uno + Uno + UNO Category-Power: - Categoria de Potencia: + Categoria de Potencia: + Categoria - Potencia: @@ -1254,23 +1335,26 @@ Error: %2 - %3 Category-Assisted: - Categoria Asistida: + Categoria Asistida: + Categoria - Asistida: NON-ASSISTED No Asistida - NO ASISTIDA + NO ASISTIDA Category-Band: - Categoria Banda: + Categoria Banda: + Categoria - Banda: ALL - Todas + Todas + TODAS @@ -1285,7 +1369,8 @@ Error: %2 - %3 Club: - Radio Club: + Radio Club: + Club: @@ -1301,7 +1386,8 @@ Error: %2 - %3 Save Log File - Guardar archivo de log + Guardar archivo de log + Guardar log @@ -1311,12 +1397,14 @@ Error: %2 - %3 Cannot open "%1" for writing: %2 - No se puede abrir "%1" para la escritura: %2 + No se puede abrir "%1" para la escritura: %2 + No se puede abrir "%1" para escritura: %2 Export Cabrillo File Error - Error al exportar el archivo Cabrillo + Error al exportar el archivo Cabrillo + Error al exportar log Cabrillo @@ -1325,17 +1413,19 @@ Error: %2 - %3 Fast Graph - Gráfico rápido + Gráfico rápido + "Fast Graph" Waterfall gain - Ganancia de la cascada + Ganancia de la cascada + Ganancia de la cascada (waterfall) Waterfall zero - Cascada cero + Cascada (waterfall) cero @@ -1358,7 +1448,8 @@ Error: %2 - %3 Date & Time(UTC) - Fecha y Hora en UTC + Fecha y Hora en UTC + Fecha y Hora (UTC) @@ -1369,7 +1460,7 @@ Error: %2 - %3 Grid Locator - Locator + Locator @@ -1393,12 +1484,13 @@ Error: %2 - %3 Fox Log Log Fox - Log "Fox" + Log "Fox" <html><head/><body><p>Right-click here for available actions.</p></body></html> - <html><head/><body><p>Haz clic derecho para ver las acciones disponibles.</p></body></html> + <html><head/><body><p>Haz clic derecho para ver las acciones disponibles.</p></body></html> + <html><head/><body><p>Clic derecho para ver las opciones disponibles.</p></body></html> @@ -1430,7 +1522,8 @@ Error: %2 - %3 Export ADIF Log File - Exportar archivo log ADIF + Exportar archivo log ADIF + Exportar log ADIF @@ -1445,7 +1538,8 @@ Error: %2 - %3 Cannot open "%1" for writing: %2 - No se puede abrir "%1" para la escritura: %2 + No se puede abrir "%1" para la escritura: %2 + No se puede abrir "%1" para escritura: %2 @@ -1461,7 +1555,7 @@ Error: %2 - %3 Are you sure you want to erase file FoxQSO.txt and start a new Fox log? ¿Estás seguro de que deseas borrar el archivo FoxQSO.txt e iniciar un nuevo log de Fox? - ¿Está seguro que desea borrar el archivo FoxQSO.txt e iniciar un nuevo log de "Fox"? + ¿Está seguro que desea borrar el archivo FoxQSO.txt e iniciar un nuevo log de "Fox"? @@ -1469,7 +1563,8 @@ Error: %2 - %3 Add Frequency - Agregar frecuencia + Agregar frecuencia + Añadir frecuencia @@ -1484,34 +1579,36 @@ Error: %2 - %3 &Frequency (MHz): - &Frecuencia en MHz: + &Frecuencia en MHz: + &Frecuencia (MHz): FrequencyList_v2 - - + + IARU Region Región IARU - - + + Mode Modo - - + + Frequency Frecuencia - - + + Frequency (MHz) - Frecuencia en MHz + Frecuencia en MHz + Frecuencia (MHz) @@ -1521,7 +1618,9 @@ Error: %2 - %3 Failed to connect to Ham Radio Deluxe - No se pudo conectar a Ham Radio Deluxe + No se pudo conectar a Ham Radio Deluxe + Fallo al conectar con el Ham Radio Deluxe + @@ -1543,12 +1642,14 @@ Error: %2 - %3 Ham Radio Deluxe: sent an unrecognised mode - Ham Radio Deluxe: envió un modo no desconocido + Ham Radio Deluxe: envió un modo no desconocido + Ham Radio Deluxe: envió un modo desconocido Ham Radio Deluxe: item not found in %1 dropdown list - Ham Radio Deluxe: artículo no encontrado en %1 la lista desplegable + Ham Radio Deluxe: artículo no encontrado en %1 la lista desplegable + Ham Radio Deluxe: elemento no encontrado en %1 la lista desplegable @@ -1563,13 +1664,14 @@ Error: %2 - %3 Ham Radio Deluxe: rig has disappeared or changed - Ham Radio Deluxe: el equipo de radio ha desaparecido o cambiado + Ham Radio Deluxe: equipo ha desaparecido o cambiado Ham Radio Deluxe send command "%1" failed %2 - Comando de envío Ham Radio Deluxe "%1" ha fallado %2 + Comando de envío Ham Radio Deluxe "%1" ha fallado %2 + Ham Radio Deluxe envió comando "%1" ha fallado %2 @@ -1587,13 +1689,16 @@ Error: %2 - %3 Ham Radio Deluxe failed to reply to command "%1" %2 - Ham Radio Deluxe no respondió al comando "%1" %2 + Ham Radio Deluxe no respondió al comando "%1" %2 + + Ham Radio Deluxe falló al responder al comando "%1" %2 Ham Radio Deluxe retries exhausted sending command "%1" - Ham Radio Deluxe reintenta agotado enviando comando "%1" + Ham Radio Deluxe reintenta agotado enviando comando "%1" + Ham Radio Deluxe ha excedido los intentos enviando comando "%1" @@ -1612,17 +1717,20 @@ Error: %2 - %3 Hamlib settings file error: %1 at character offset %2 - Error de archivo de configuración de Hamlib:%1 en el desplazamiento de caracteres %2 + Error de archivo de configuración de Hamlib:%1 en el desplazamiento de caracteres %2 + Error en archivo de configuración de Hamlib:%1 en el desplazamiento de caracteres %2 Hamlib settings file error: top level must be a JSON object + Error en archivo de configuración de Hamlib: el nivel superior debe ser un objeto JSON Error de archivo de configuración de Hamlib: el nivel superior debe ser un objeto JSON Hamlib settings file error: config must be a JSON object - Error de archivo de configuración de Hamlib: config debe ser un objeto JSON + Error de archivo de configuración de Hamlib: config debe ser un objeto JSON + Error en archivo de configuración de Hamlib: config debe ser un objeto JSON @@ -1630,152 +1738,170 @@ Error: %2 - %3 Tipo CAT no admitido - + Hamlib error: %1 while %2 Error Hamlib: %1 mientras %2 - + opening connection to rig - conexión de apertura al equipo + conexión de apertura al equipo + abriendo conexión al equipo - + getting current frequency obteniendo frecuencia actual - + getting current mode - obteniendo el modo actual + obteniendo el modo actual + obteniendo modo actual - - + + exchanging VFOs intercambiando VFO's - - + + getting other VFO frequency - obteniendo otra frecuencia de VFO + obteniendo otra frecuencia de VFO + obteniendo la frecuencia del otro VFO - + getting other VFO mode - obteniendo otro modo VFO + obteniendo otro modo VFO + obteniendo modo del otro VFO - + setting current VFO - ajuste al VFO actual + ajuste al VFO actual + ajustando VFO actual - + getting frequency obteniendo frecuencia - + getting mode obteniendo modo - - + + getting current VFO - obteniendo el VFO actual - - - - - - - getting current VFO frequency - obteniendo la frecuencia actual de VFO + obteniendo el VFO actual + obteniendo VFO actual + - - - - - - setting frequency - ajuste de frecuencia - - - - - - - getting current VFO mode - obteniendo el modo VFO actual - - - - - - - - setting current VFO mode - ajuste del modo VFO actual - - - - - setting/unsetting split mode - activación/desactivación del modo dividido (split) + + + getting current VFO frequency + obteniendo la frecuencia actual de VFO + obteniendo frecuencia del VFO actual + + + + + - + setting frequency + ajuste de frecuencia + ajustando frecuencia + + + + + + + getting current VFO mode + obteniendo modo del VFO actual + + + + + + + + setting current VFO mode + ajuste del modo VFO actual + ajustando modo del VFO actual + + + + + setting/unsetting split mode + activación/desactivación del modo dividido (split) + activar/desactivar modo "Split" + + + + setting split mode - activar modo dividido (split) + activar modo dividido (split) + ajustando modo "Split" - + setting split TX frequency and mode - Ajuste de frecuencia y modo de transmisión dividida (split) + Ajuste de frecuencia y modo de transmisión dividida (split) + ajustando la frecuencia de TX y modo del "Split" - + setting split TX frequency - ajuste de frecuencia dividida en TX + ajuste de frecuencia dividida en TX + ajustando frecuencia de TX del "Split" - + getting split TX VFO mode - obteniendo el modo dividido de TX en el VFO + obteniendo el modo dividido de TX en el VFO + obteniendo modo del VFO de TX en "Split" - + setting split TX VFO mode - ajuste del modo dividido (split) en TX del VFO + ajuste del modo dividido (split) en TX del VFO + ajustando modo del VFO de TX en "Split" - + getting PTT state obteniendo el estado del PTT - + setting PTT on - activar el PTT + activar el PTT + activando PTT - + setting PTT off - desactivar el PTT + desactivar el PTT + desactivando PTT - + setting a configuration item - activar un elemento de configuración + activar un elemento de configuración + ajustando un elemento de configuración - + getting a configuration item obteniendo un elemento de configuración @@ -1785,12 +1911,14 @@ Error: %2 - %3 Help file error - Error del archivo de ayuda + Error del archivo de ayuda + Error en el archivo de ayuda Cannot open "%1" for reading - No se puede abrir "%1" para leer + No se puede abrir "%1" para leer + No se puede abrir "%1" para lectura @@ -1812,7 +1940,8 @@ Error: %2 - %3 Click OK to confirm the following QSO: - Haz clic en Aceptar para confirmar el siguiente QSO: + Haz clic en Aceptar para confirmar el siguiente QSO: + Clic en "Aceptar" para confirmar el siguiente QSO: @@ -1823,7 +1952,7 @@ Error: %2 - %3 Start Comienzo - Inicio + Inicio @@ -1835,7 +1964,7 @@ Error: %2 - %3 End Final - Fin + Fin @@ -1851,19 +1980,19 @@ Error: %2 - %3 Rpt Sent Reporte Enviado - Rpt. Enviado + Rpt. Enviado Rpt Rcvd Reporte Recibido - RPT Recibido + Rpt. Recibido Grid Locator/Grid - Locator + Locator @@ -1873,8 +2002,8 @@ Error: %2 - %3 Tx power - Potencia de TX - Potencia TX + Poténcia de TX + Potencia TX @@ -1906,27 +2035,32 @@ Error: %2 - %3 Invalid QSO Data - Datos de QSO no válidos + Datos de QSO no válidos + Datos del QSO no válidos Check exchange sent and received - Comprobación del intercambio enviado y recibido + Comprobación del intercambio enviado y recibido + Verificar intercambio enviado y recibido Check all fields - Verifica todos los campos + Verifica todos los campos + Verificar todos los campos Log file error - Error de archivo log + Error de archivo log + Error en log Cannot open "%1" for append - No puedo abrir "%1" para anexar + No puedo abrir "%1" para anexar + No se puede abrir "%1" para anexar @@ -1940,14 +2074,18 @@ Error: %2 - %3 Network Error - SSL/TLS support not installed, cannot fetch: '%1' - Error de red: el soporte SSL/TLS no está instalado, no se puede recuperar: + Error de red: el soporte SSL/TLS no está instalado, no se puede recuperar: +'%1' + Error de red - Certificado SSL/TLS no instalado, no se puede recuperar: '%1' Network Error - Too many redirects: '%1' - Error de red: demasiados redireccionamientos: + Error de red: demasiados redireccionamientos: +'%1' + Error de red - Demasiados redireccionamientos: '%1' @@ -1961,7 +2099,9 @@ Error: %2 - %3 File System Error - Cannot commit changes to: "%1" - Error del sistema de archivos: no se pueden confirmar los cambios en: + Error del sistema de archivos: no se pueden confirmar los cambios en: +"%1" + Error de archivo - No se pueden grabar los cambios en: "%1" @@ -1969,7 +2109,10 @@ Error: %2 - %3 File System Error - Cannot open file: "%1" Error(%2): %3 - Error del sistema de archivos: no se puede abrir el archivo: + Error del sistema de archivos: no se puede abrir el archivo: +"%1" +Error(%2): %3 + Error de archivo - No se puede abrir el archivo: "%1" Error(%2): %3 @@ -1978,7 +2121,10 @@ Error(%2): %3 File System Error - Cannot write to file: "%1" Error(%2): %3 - Error del sistema de archivos: no se puede escribir en el archivo: + Error del sistema de archivos: no se puede escribir en el archivo: +"%1" +Error(%2): %3 + Error de archivo - No se puede escribir el archivo: "%1" Error(%2): %3 @@ -1992,12 +2138,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity Actividad en la banda @@ -2009,11 +2155,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency Frecuencia de RX @@ -2026,7 +2172,7 @@ Error(%2): %3 Enter this QSO in log Entra este QSO al log - Guarda este QSO en el log + Guarda este QSO en el log @@ -2037,7 +2183,7 @@ Error(%2): %3 Stop monitoring Deja de monitorizar - Detener la monitorización + Detener la monitorización @@ -2048,7 +2194,7 @@ Error(%2): %3 Toggle monitoring On/Off Activar/desactivar la monitorización - Activa/Desactiva la monitorización + Activa/Desactiva la monitorización @@ -2059,12 +2205,13 @@ Error(%2): %3 <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> <html><head/><body><p>Borrar ventana derecha. Haz doble clic para borrar ambas ventanas.</p></body></html> - <html><head/><body><p>Clic para borrar ventana derecha. Doble clic para borrar ambas ventanas.</p></body></html> + <html><head/><body><p>Clic para borrar ventana derecha.</p><p> Doble clic para borrar ambas ventanas.</p></body></html> Erase right window. Double-click to erase both windows. - Borrar ventana derecha. Haz doble clic para borrar ambas ventanas. + Borrar ventana derecha. Haz doble clic para borrar ambas ventanas. + Borra ventana derecha. Doble clic para borrar ambas ventanas. @@ -2074,12 +2221,13 @@ Error(%2): %3 <html><head/><body><p>Clear the accumulating message average.</p></body></html> - <html><head/><body><p>Borrar el promedio de mensajes acumulados.</p></body></html> + <html><head/><body><p>Borrar el promedio de mensajes acumulados.</p></body></html> + <html><head/><body><p>Borrar el promedio de mensajes acumulados.</p></body></html> Clear the accumulating message average. - Borrar el promedio de mensajes acumulados. + Borrar el promedio de mensajes acumulados. @@ -2089,7 +2237,8 @@ Error(%2): %3 <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> - <html><head/><body><p>Decodificar el período de RX más reciente en la frecuencia QSO</p></body></html> + <html><head/><body><p>Decodificar el período de RX más reciente en la frecuencia QSO</p></body></html> + <html><head/><body><p>Decodifica el período de RX más reciente en la frecuencia del QSO</p></body></html> @@ -2100,30 +2249,31 @@ Error(%2): %3 &Decode - &Decodificar + &Decodificar + &Decodifica <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> <html><head/><body><p>Activar/desactivar TX</p></body></html> - <html><head/><body><p>Activar/Desactivar TX</p></body></html> + <html><head/><body><p>Activar/Desactivar TX</p></body></html> Toggle Auto-Tx On/Off Activar/desactivar TX - Activa/Desactiva Auto-TX + Activa/Desactiva Auto-TX E&nable Tx - A&ctivar TX + &Activar TX Stop transmitting immediately Detiene TX inmediatamente - Detener TX inmediatamente + Detener TX inmediatamente @@ -2134,13 +2284,13 @@ Error(%2): %3 <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> <html><head/><body><p>Activar/desactivar un tono de transmisión puro</p></body></html> - <html><head/><body><p>Activa/Desactiva la transmisión de un tono </p></body></html> + <html><head/><body><p>Activa/Desactiva la transmisión de un tono continuo</p></body></html> Toggle a pure Tx tone On/Off Activar/desactivar un tono de transmisión puro - Activar/Desactivar TX con tono + Activar/Desactivar TX con tono continuo @@ -2166,13 +2316,13 @@ Error(%2): %3 <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> <html><head/><body><p>30dB recomendado cuando solo hay ruido presente,<br/>Verde cuando el nivel es bueno,<br/>Rojo cuando puede ocurrir recortes y<br/>Amarillo cuando esta muy bajo.</p></body></html> - <html><head/><body><p>30 dB recomendado cuando solo hay ruido presente.<br/>Verde: Nivel de audio aceptable.<br/>Rojo: Pueden ocurrir fallos de audio.<br/>Amarillo: Nivel de audio muy bajo.</p></body></html> + <html><head/><body><p>30 dB recomendado cuando solo hay ruido presente.<br/>Verde: Nivel de audio aceptable.<br/>Rojo: Pueden ocurrir fallos de audio.<br/>Amarillo: Nivel de audio muy bajo.</p></body></html> Rx Signal Señal de RX - Señal RX + Señal RX @@ -2180,9 +2330,13 @@ Error(%2): %3 Green when good Red when clipping may occur Yellow when too low - 30dB recomendado cuando solo hay ruido presente, + 30dB recomendado cuando solo hay ruido presente, Verde cuando el nivel es bueno, Rojo cuando puede ocurrir recortes y +Amarillo cuando esta muy bajo. + 30dB recomendado cuando solo hay ruido presente, +Verde cuando el nivel es bueno, +Rojo pueden ocurrir fallos de audio Amarillo cuando esta muy bajo. @@ -2194,7 +2348,7 @@ Amarillo cuando esta muy bajo. DX Grid Locator/Grid DX - Locator DX + Locator DX @@ -2204,7 +2358,7 @@ Amarillo cuando esta muy bajo. Search for callsign in database - Buscar el indicativo en la base de datos (CALL3.TXT) + Buscar el indicativo en la base de datos (CALL3.TXT) @@ -2215,7 +2369,7 @@ Amarillo cuando esta muy bajo. Locator of station to be worked Locator/Grid de la estación a trabajar - Locator de la estación a trabajar + Locator de la estación a trabajar @@ -2226,7 +2380,7 @@ Amarillo cuando esta muy bajo. Add callsign and locator to database Agregar indicativo y locator/Grid a la base de datos - Agregar indicativo y locator a la base de datos + Agregar indicativo y locator a la base de datos (CALL3.TXT) @@ -2241,12 +2395,14 @@ Amarillo cuando esta muy bajo. <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> - <html><head/><body><p>Si ha habido un error en el control del equipo, haz clic para restablecer y leer la frecuencia del dial. S implica modo dividido o split.</p></body></html> + <html><head/><body><p>Si ha habido un error en el control del equipo, haz clic para restablecer y leer la frecuencia del dial. S implica modo dividido o split.</p></body></html> + <html><head/><body><p>Si está naranja o rojo, ha habido un error en el control del equipo</p><p>Clic para reiniciar y leer la frecuencia del dial. </p><p>S indica modo "Split".</p></body></html> If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. - Si ha habido un error en el control del equipo, haz clic para restablecer y leer la frecuencia del dial. S implica modo dividido o split. + Si ha habido un error en el control del equipo, haz clic para restablecer y leer la frecuencia del dial. S implica modo dividido o split. + Si está naranja o rojo, ha habido un error en el control del equipo, clic para restablecer y leer la frecuencia del dial. S indica "Split". @@ -2256,12 +2412,14 @@ Amarillo cuando esta muy bajo. Adjust Tx audio level - Ajuste del nivel de audio de TX + Ajuste del nivel de audio de TX + Ajustar nivel de audio de TX <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> - <html><head/><body><p>Selecciona la banda operativa, introduce la frecuencia en MHz o introduce el incremento de kHz seguido de k.</p></body></html> + <html><head/><body><p>Selecciona la banda operativa, introduce la frecuencia en MHz o introduce el incremento de kHz seguido de k.</p></body></html> + <html><head/><body><p>Selecciona la banda, o escribe la frecuencia en MHz o escriba el incremento en kHz seguido de k.</p></body></html> @@ -2271,7 +2429,8 @@ Amarillo cuando esta muy bajo. Select operating band or enter frequency in MHz or enter kHz increment followed by k. - Selecciona la banda operativa, introduce la frecuencia en MHz o introduce el incremento de kHz seguido de k. + Selecciona la banda operativa, introduce la frecuencia en MHz o introduce el incremento de kHz seguido de k. + Selecciona la banda o introduce la frecuencia en MHz o ecribe el incremento en kHz seguido de la letra k. @@ -2281,25 +2440,26 @@ Amarillo cuando esta muy bajo. <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> - <html><head/><body><p>Marca para mantener fija la frecuencia de transmisión al hacer doble clic en el texto decodificado.</p></body></html> + <html><head/><body><p>Marca para mantener fija la frecuencia de transmisión al hacer doble clic en el texto decodificado.</p></body></html> + <html><head/><body><p>Marcar para mantener fija la frecuencia de TX al hacer doble clic en el texto decodificado.</p></body></html> Check to keep Tx frequency fixed when double-clicking on decoded text. Marca para mantener fija la frecuencia de transmisión al hacer doble clic en el texto decodificado. - Marca para mantener fija la frecuencia de TX al hacer doble clic en un texto decodificado. + Marcar para mantener fija la frecuencia de TX al hacer doble clic en un texto decodificado. Hold Tx Freq Mantén TX Freq - Mantener Freq TX + Mantener Frec. TX Audio Rx frequency Frecuencia de audio en RX - Frecuencia de RX + Frecuencia de RX @@ -2317,7 +2477,7 @@ Amarillo cuando esta muy bajo. Set Tx frequency to Rx Frequency Coloca la frecuencia de RX en la de TX - Coloca la frecuencia de TX en la de RX + Coloca la frecuencia de TX en la de RX @@ -2338,7 +2498,7 @@ Amarillo cuando esta muy bajo. Set Rx frequency to Tx Frequency Coloca la frecuencia de TX en la de RX - Coloca la frecuencia de RX en la de TX + Coloca la frecuencia de RX en la de TX @@ -2363,11 +2523,13 @@ Amarillo cuando esta muy bajo. <html><head/><body><p>Check to use short-format messages.</p></body></html> - <html><head/><body><p>Marca para usar mensajes de formato corto.</p></body></html> + <html><head/><body><p>Marca para usar mensajes de formato corto.</p></body></html> + <html><head/><body><p>Marcar para usar mensajes de formato corto.</p></body></html> Check to use short-format messages. + Marcar para usar mensajes de formato corto. Marca para usar mensajes de formato corto. @@ -2378,52 +2540,56 @@ Amarillo cuando esta muy bajo. <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> - <html><head/><body><p>Marca para habilitar los modos rápidos JT9</p></body></html> + <html><head/><body><p>Marca para habilitar los modos rápidos JT9</p></body></html> + <html><head/><body><p>Marcar para habilitar los modos rápidos JT9</p></body></html> Check to enable JT9 fast modes - Marca para habilitar los modos rápidos JT9 + Marca para habilitar los modos rápidos JT9 + Marcar para habilitar los modos rápidos JT9 - + Fast Rápido <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> - <html><head/><body><p>Marca para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos.</p></body></html> + <html><head/><body><p>Marca para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos.</p></body></html> + <html><head/><body><p>Marcar para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos.</p></body></html> Check to enable automatic sequencing of Tx messages based on received messages. - Marca para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos. + Marca para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos. + Marcar para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos. Auto Seq Secuencia Automática - Secuencia Auto. + Secuencia Auto. <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> <html><head/><body><p>Responde al 1er. CQ decodificado.</p></body></html> - <html><head/><body><p>Activar para responder a la1ra estación decodificada.</p></body></html> + <html><head/><body><p>Marcar para responder a la 1ra estación decodificada.</p></body></html> Check to call the first decoded responder to my CQ. Responde al 1er. CQ decodificado. - Responder al primer decodificado. + Marcar para responder al 1ra. estación decodificada. Call 1st Responde al 1er. CQ - 1er decodificado + 1er decodificado @@ -2439,28 +2605,31 @@ Amarillo cuando esta muy bajo. <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> <html><head/><body><p>Marca a TX en minutos o secuencias de números pares, a partir de 0; desmarca las secuencias impares.</p></body></html> - <html><head/><body><p>Marca para transmitir en secuencias o minutos pares, comenzando por 0; desmarca para transmitir en las secuencias o minutos impares.</p></body></html> + <html><head/><body><p>Marcar para transmitir en secuencias o minutos pares, comenzando por 0; desmarca para transmitir en las secuencias o minutos impares.</p></body></html> Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. - Marca a TX en minutos o secuencias de números pares, a partir de 0; desmarca las secuencias impares. + Marca a TX en minutos o secuencias de números pares, a partir de 0; desmarca las secuencias impares. + Marcar para transmitir en secuencias o minutos pares, comenzando por 0; desmarca para transmitir en las secuencias o minutos impares. Tx even/1st Alternar periodo TX Par/Impar - TX segundo par + TX segundo par <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> - <html><head/><body><p>Frecuencia para llamar a CQ en kHz por encima del MHz actual</p></body></html> + <html><head/><body><p>Frecuencia para llamar a CQ en kHz por encima del MHz actual</p></body></html> + <html><head/><body><p>Frecuencia para llamar CQ en kHz por sobre el MHz actual</p></body></html> Frequency to call CQ on in kHz above the current MHz - Frecuencia para llamar a CQ en kHz por encima del MHz actual + Frecuencia para llamar a CQ en kHz por encima del MHz actual + Frecuencia para llamar CQ en kHz por encima del MHz actual @@ -2470,14 +2639,16 @@ Amarillo cuando esta muy bajo. <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> - <html><head/><body><p>Marca esto para llamar a CQ en la frecuencia&quot;TX CQ&quot;. RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder.</p><p>No está disponible para los titulares de indicativo no estándar.</p></body></html> + <html><head/><body><p>Marca esto para llamar a CQ en la frecuencia&quot;TX CQ&quot;. RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder.</p><p>No está disponible para los titulares de indicativo no estándar.</p></body></html> + <html><head/><body><p>Marcar para llamar CQ en la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder.</p><p>No está disponible para los titulares de indicativo no estándar.</p></body></html> Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. - Marca esto para llamar a CQ en la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder. -No está disponible para los titulares de indicativo no estándar. + Marca esto para llamar a CQ en la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder. +No está disponible para los titulares de indicativo no estándar. + Marcar para llamar CQ en la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder. No está disponible para los titulares de indicativo no estándar. @@ -2487,12 +2658,12 @@ No está disponible para los titulares de indicativo no estándar. <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> - <html><head/><body><p>El submodo determina el espaciado de tono; A es más estrecho.</p></body></html> + <html><head/><body><p>El submodo determina el espaciado de tono; "A" es más estrecho.</p></body></html> Submode determines tone spacing; A is narrowest. - El submodo determina el espaciado de tono; A es más estrecho. + El submodo determina el espaciado de tono; "A" es más estrecho. @@ -2501,20 +2672,22 @@ No está disponible para los titulares de indicativo no estándar. - + Fox Fox - "Fox" + "Fox" <html><head/><body><p>Check to monitor Sh messages.</p></body></html> - <html><head/><body><p>Marca para monitorear los mensajes Sh.</p></body></html> + <html><head/><body><p>Marca para monitorear los mensajes Sh.</p></body></html> + <html><head/><body><p>Marcar para escuchar los mensajes Sh.</p></body></html> Check to monitor Sh messages. - Marca para monitorear los mensajes Sh. + Marca para monitorear los mensajes Sh. + Marcar para escuchar los mensajes Sh. @@ -2524,21 +2697,26 @@ No está disponible para los titulares de indicativo no estándar. Best S+P - El mejor S+P + El mejor S+P + S+P <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> - <html><head/><body><p>Marca para comenzar a registrar los datos de calibración.<br/>Mientras se mide la corrección de calibración, se desactiva.<br/>Cuando no está marcado, puedes ver los resultados de la calibración.</p></body></html> + <html><head/><body><p>Marca para comenzar a registrar los datos de calibración.<br/>Mientras se mide la corrección de calibración, se desactiva.<br/>Cuando no está marcado, puedes ver los resultados de la calibración.</p></body></html> + <html><head/><body><p>Marcar para comenzar a grabar los datos de calibración.<br/>Mientras se mide, la corrección de calibración está desactivada.<br/>Cuando no está marcado, puede verse los resultados de la calibración.</p></body></html> Check this to start recording calibration data. While measuring calibration correction is disabled. When not checked you can view the calibration results. - Marca para comenzar a registrar los datos de calibración. + Marca para comenzar a registrar los datos de calibración. Mientras se mide la corrección de calibración, se desactiva. -Cuando no está marcado, puedes ver los resultados de la calibración. +Cuando no está marcado, puedes ver los resultados de la calibración. + Marcar para comenzar a grabar los datos de calibración. +Mientras se mide, la corrección de calibración está desactivada. +Cuando no está marcado, puede verse los resultados de la calibración. @@ -2548,28 +2726,32 @@ Cuando no está marcado, puedes ver los resultados de la calibración. <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> - <html><head/><body><p>Informe de señal: relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB).</p></body></html> + <html><head/><body><p>Informe de señal: relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB).</p></body></html> + <html><head/><body><p>Reporte de señal: Relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB).</p></body></html> Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). - Informe de señal: relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB). + Informe de señal: relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB). + Reporte de señal: Relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB). Report No -> Señal de Recepción - Reporte + Reporte <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> - <html><head/><body><p>Tx/Rx o longitud de secuencia de calibración de frecuencia</p></body></html> + <html><head/><body><p>Tx/Rx o longitud de secuencia de calibración de frecuencia</p></body></html> + <html><head/><body><p>TX/RX o longitud de secuencia de calibración de frecuencia</p></body></html> Tx/Rx or Frequency calibration sequence length - Tx/Rx o longitud de secuencia de calibración de frecuencia + Tx/Rx o longitud de secuencia de calibración de frecuencia + TX/RX o longitud de secuencia de calibración de frecuencia @@ -2584,7 +2766,8 @@ Cuando no está marcado, puedes ver los resultados de la calibración. Toggle Tx mode - Conmuta el modo TX + Conmuta el modo TX + Conmuta modo TX @@ -2595,7 +2778,7 @@ Cuando no está marcado, puedes ver los resultados de la calibración. Audio Tx frequency Frecuencia de audio de TX - Frecuencia de TX + Frecuencia de TX @@ -2611,12 +2794,14 @@ Cuando no está marcado, puedes ver los resultados de la calibración. <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> - <html><head/><body><p>Haz doble clic en otro indicativo que llama para poner en la cola esa llamada para tú siguiente QSO.</p></body></html> + <html><head/><body><p>Haz doble clic en otro indicativo que llama para poner en la cola esa llamada para tú siguiente QSO.</p></body></html> + <html><head/><body><p>Doble clic en otra estación llamando para poner en la cola ese indicativo para tu siguiente QSO.</p></body></html> Double-click on another caller to queue that call for your next QSO. - Haz doble clic en otro indicativo que llama para poner en la cola esa llamada para tú siguiente QSO. + Haz doble clic en otro indicativo que llama para poner en la cola esa llamada para tú siguiente QSO. + Doble clic en otra estación llamando para poner en la cola ese indicativo para tu siguiente QSO. @@ -2633,7 +2818,8 @@ Cuando no está marcado, puedes ver los resultados de la calibración. Send this message in next Tx interval - Enviar este mensaje en el siguiente intervalo de transmisión + Enviar este mensaje en el siguiente intervalo de transmisión + Enviar este mensaje en el siguiente intervalo de TX @@ -2643,14 +2829,16 @@ Cuando no está marcado, puedes ver los resultados de la calibración. <html><head/><body><p>Send this message in next Tx interval</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>Enviar este mensaje en el siguiente intervalo de transmisión.</p><p>Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> + <html><head/><body><p>Enviar este mensaje en el siguiente intervalo de transmisión.</p><p>Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> + <html><head/><body><p>Enviar este mensaje en el siguiente intervalo de TX.</p><p>Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> Send this message in next Tx interval 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) - Enviar este mensaje en el siguiente intervalo de transmisión. -Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1). + Enviar este mensaje en el siguiente intervalo de transmisión. +Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1). + Enviar este mensaje en el siguiente intervalo de TX. Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1). @@ -2663,7 +2851,8 @@ Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una Switch to this Tx message NOW - Cambia a este mensaje de TX AHORA + Cambia a este mensaje de TX AHORA + Cambiar a este mensaje de TX AHORA @@ -2678,7 +2867,8 @@ Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una <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>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> + <html><head/><body><p>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> + <html><head/><body><p>Cambiar a este mensaje de TX AHORA.</p><p>Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> @@ -2686,8 +2876,7 @@ Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una 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) Cambia a este mensaje de TX AHORA. Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1). - Cambia a este mensaje de TX AHORA. -Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación.(no permitido para titulares de indicativos compuestos de tipo 1) + Cambiar a este mensaje de TX AHORA.Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1) @@ -2707,14 +2896,14 @@ Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una esta <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> - <html><head/><body><p>Enviar este mensaje en el siguiente intervalo de transmisión</p><p>Haz doble clic para restablecer el mensaje estándar 73.</p></body></html> + <html><head/><body><p>Enviar este mensaje en el siguiente intervalo de transmisión</p><p>Haz doble clic para restablecer el mensaje estándar 73.</p></body></html> + <html><head/><body><p>Enviar este mensaje en el siguiente intervalo de TX</p><p>Doble clic para restablecer el mensaje 73 estándar.</p></body></html> Send this message in next Tx interval Double-click to reset to the standard 73 message - Enviar este mensaje en el siguiente intervalo de transmisión -Haz doble clic para restablecer el mensaje estándar 73. + Enviar este mensaje en el siguiente intervalo de TX. Doble clic para restablecer el mensaje 73 estándar. @@ -2739,16 +2928,15 @@ Haz doble clic para restablecer el mensaje estándar 73. <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>Envia este mensaje en el siguiente intervalo de transmisión.</p><p>Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> + <html><head/><body><p>Envia este mensaje en el siguiente intervalo de transmisión.</p><p>Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> + <html><head/><body><p>Envia este mensaje en el siguiente intervalo de TX.</p><p>Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> Send this message in next Tx interval Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required - Envia este mensaje en el siguiente intervalo de transmisión. -Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2). -Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes. + Envia este mensaje en el siguiente intervalo de TX. Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2). Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes @@ -2758,7 +2946,8 @@ Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no <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>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> + <html><head/><body><p>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> + <html><head/><body><p>Cambiar a este mensaje de TX AHORA.</p><p>Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> @@ -2768,9 +2957,7 @@ RR73 messages should only be used when you are reasonably confident that no mess Cambia a este mensaje de TX AHORA. Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2). Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes. - Cambia a este mensaje de TX AHORA. -Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2). -Mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes. + Cambiar a este mensaje de TX AHORA. Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2). Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes. @@ -2785,7 +2972,8 @@ Mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> - <html><head/><body><p>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para restablecer el mensaje estándar 73.</p></body></html> + <html><head/><body><p>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para restablecer el mensaje estándar 73.</p></body></html> + <html><head/><body><p>Cambiar a este mensaje de TX AHORA.</p><p>Doble clic para restablecer el mensaje estándar 73.</p></body></html> @@ -2793,7 +2981,7 @@ Mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se Double-click to reset to the standard 73 message Cambia a este mensaje de TX AHORA. Haz doble clic para restablecer el mensaje estándar 73. - Cambia a este mensaje de TX AHORA. + Cambiar a este mensaje de TX AHORA. Doble clic para cambiar al mensaje estándar 73. @@ -2815,13 +3003,13 @@ Doble clic para cambiar al mensaje estándar 73. Generate standard messages for minimal QSO Genera mensajes estándar para un QSO mínimo - Genera los mensajes estándares para realizar un QSO + Genera mensajes estándares para realizar un QSO Generate Std Msgs Genera Mensaje Standar - Genera Mensaje Estándar + Genera Mensajes Estándar @@ -2840,10 +3028,14 @@ Doble clic para cambiar al mensaje estándar 73. or select a predefined macro from the dropdown list. Press ENTER to add the current text to the predefined list. The list can be maintained in Settings (F2). - Introduce un mensaje de texto libre (máximo 13 caracteres) + Introduce un mensaje de texto libre (máximo 13 caracteres) o selecciona una macro predefinida de la lista desplegable. Presiona ENTRAR para agregar el texto actual al predefinido -de la lista. La lista se puede mantener en Configuración (F2). +de la lista. La lista se puede mantener en Configuración (F2). + Escribe un mensaje de texto libre (máximo 13 caracteres) +o selecciona una macro predefinida de la lista desplegable. +Presiona INTRO para agregar el texto actual a la lista +predefinida. La lista se puede modificar en "Ajustes" (F2). @@ -2890,6 +3082,7 @@ de la lista. La lista se puede mantener en Configuración (F2). Generate message with report + Generar mensaje con informe de señal Genera mensaje con informe de señal @@ -2905,19 +3098,21 @@ de la lista. La lista se puede mantener en Configuración (F2). Generate message for replying to a CQ - Generar mensaje para responder a un CQ + Generar mensaje para responder a un CQ + Genera mensaje para responder a un CQ Grid - Locator solamente, Grid en inglés - Locator + Locator/grid + Locator Generate message with R+report - Generar mensaje con R+informe de señal + Generar mensaje con R+informe de señal + Genera mensaje con R más informe de señal @@ -2927,7 +3122,8 @@ de la lista. La lista se puede mantener en Configuración (F2). Generate message with 73 - Generar mensaje con 73 + Generar mensaje con 73 + Genera mensaje con 73 @@ -2937,17 +3133,20 @@ de la lista. La lista se puede mantener en Configuración (F2). Send this standard (generated) message - Enviar este mensaje estándar (generado) + Enviar este mensaje estándar (generado) + Envia este mensaje estándar (generado) Gen msg - Gen msg + Gen msg + Msg Gen Send this free-text message (max 13 characters) - Enviar este mensaje de texto libre (máximo 13 caracteres) + Enviar este mensaje de texto libre (máximo 13 caracteres) + Envia este mensaje de texto libre (máximo 13 caracteres) @@ -3062,7 +3261,7 @@ de la lista. La lista se puede mantener en Configuración (F2). N Slots - N Slots + N Slots @@ -3103,7 +3302,8 @@ de la lista. La lista se puede mantener en Configuración (F2). Tx Pct - TX Pct + TX Pct + Pct TX @@ -3113,44 +3313,49 @@ de la lista. La lista se puede mantener en Configuración (F2). Choose bands and times of day for band-hopping. - Elija bandas y momentos del día para saltar de banda. + Elija bandas y momentos del día para saltar de banda. + Escoja bandas y momentos del día para saltos de banda. Schedule ... - Calendario ... + Calendario ... + Programar ... Upload decoded messages to WSPRnet.org. - Cargue mensajes decodificados a WSPRnet.org. + Cargue mensajes decodificados a WSPRnet.org. + Subir mensajes decodificados a WSPRnet.org. Upload spots - Subir Spots + Subir "Spots" <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>Los Locator/Grid de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes.</p></body></html> - <html><head/><body><p>Los Locator de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes.</p></body></html> + <html><head/><body><p>Los locator de 6 dígitos hace que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo, otras estaciones deben haber decodificado el primero antes de poder descodificar el segundo. Marcar esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes.</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. Los Locator/Grid de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes. - Los Locator de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes. + Los locator de 6 dígitos hace que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo, otras estaciones deben haber decodificado el primero antes de poder descodificar el segundo. Marcar esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes. Prefer type 1 messages - Prefieres mensajes de tipo 1 + Prefieres mensajes de tipo 1 + Preferir mensajes de tipo 1 No own call decodes - No se descodifica ningún indicativo propio + No se descodifica ningún indicativo propio + No se descodifica mi indicativo @@ -3165,7 +3370,8 @@ de la lista. La lista se puede mantener en Configuración (F2). Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. - Configura la potencia de transmisión en dBm (dB por encima de 1 mW) como parte de tú mensaje WSPR. + Configura la potencia de transmisión en dBm (dB por encima de 1 mW) como parte de tú mensaje WSPR. + Configurar la potencia de TX en dBm (dB por encima de 1 mW) como parte de su mensaje WSPR. @@ -3181,7 +3387,7 @@ de la lista. La lista se puede mantener en Configuración (F2). Decode Decodifica - Decodificar + Decodificar @@ -3191,7 +3397,7 @@ de la lista. La lista se puede mantener en Configuración (F2). Help - Ayuda + Ayuda @@ -3230,431 +3436,441 @@ de la lista. La lista se puede mantener en Configuración (F2). Acerca de WSJT-X - + Waterfall Cascada - Cascada - Waterfall + Cascada (Waterfall) - + Open Abrir - + Ctrl+O Ctrl+O - + Open next in directory - Abrir siguiente en el directorio + Abrir siguiente en el directorio + + + + Decode remaining files in directory + Decodifica los archivos restantes en el directorio - Decode remaining files in directory - Decodifica los archivos restantes en el directorio - - - Shift+F6 Mayúsculas+F6 Mayúsculas+F6 - + Delete all *.wav && *.c2 files in SaveDir Borrar todos los archivos *.wav y *.c2 - + None Ninguno - + Save all Guardar todo - + Online User Guide Guía de usuario en línea - + Keyboard shortcuts Atajos de teclado - + Special mouse commands Comandos especiales del ratón - + JT9 JT9 - + Save decoded Guarda el decodificado - Guardar lo decodificado + Guardar lo decodificado - + Normal Normal - + Deep Profundo - + Monitor OFF at startup Monitor apagado al inicio - "Monitor" apagado al inicio + "Monitor" apagado al inicio - + Erase ALL.TXT - Borrar ALL.TXT + Borrar ALL.TXT - + Erase wsjtx_log.adi - Borrar el archivo wsjtx_log.adi + Borrar el archivo wsjtx_log.adi + Borrar archivo wsjtx_log.adi - + Convert mode to RTTY for logging Convierte el modo a RTTY después de registrar el QSO - Convierte a modo RTTY para guardar el QSO + Convierte el modo a RTTY para guardar el QSO - + Log dB reports to Comments Pon los informes de recepción en dB en Comentarios - Guardar reportes dB en los Comentarios + Guardar reportes dB en los Comentarios - + Prompt me to log QSO - Pedirme que registre QSO + Pedirme que registre QSO + Preguntarme antes de guardar el QSO - + Blank line between decoding periods Línea en blanco entre períodos de decodificación - + Clear DX Call and Grid after logging Borrar Indicativo DX y Locator/Grid DX después de registrar un QSO - Borrar Indicativo y Locator después de guardar QSO + Borrar Indicativo y Locator del DX después de guardar QSO - + Display distance in miles Mostrar distancia en millas - + Double-click on call sets Tx Enable - Haz doble clic en los conjuntos de indicativos de activar TX + Haz doble clic en los conjuntos de indicativos de activar TX + Doble clic en el indicativo activa la TX - - + + F7 F7 - + Tx disabled after sending 73 - Tx deshabilitado después de enviar 73 + Tx deshabilitado después de enviar 73 + Dehabilita TX después de enviar 73 - - + + Runaway Tx watchdog - Seguridad de TX + Control de TX - + Allow multiple instances Permitir múltiples instancias - + Tx freq locked to Rx freq - TX frec bloqueado a RX frec + TX frec bloqueado a RX frec + Freq. de TX bloqueda a freq. de RX - + JT65 JT65 - + JT9+JT65 JT9+JT65 - + Tx messages to Rx Frequency window - Mensajes de texto a la ventana de frecuencia de RX + Mensajes de texto a la ventana de frecuencia de RX + Mensajes de TX a la ventana de "Frecuencia de RX" - + Gray1 - Gris1 + Gris1 - + Show DXCC entity and worked B4 status - Mostrar entidad DXCC y estado B4 trabajado + Mostrar entidad DXCC y estado B4 trabajado + Mostrar DXCC y estado B4 trabajado - + Astronomical data Datos astronómicos - + List of Type 1 prefixes and suffixes Lista de prefijos y sufijos de tipo 1 - Lista de prefijos tipo 1 y sufijos + Lista de prefijos y sufijos tipo 1 - + Settings... - Settings = Ajustes - Ajustes... + Configuración + Ajustes - + Local User Guide Guía de usuario local - + Open log directory Abrir directorio de log - + JT4 JT4 - + Message averaging Promedio de mensajes - + Enable averaging Habilitar el promedio - + Enable deep search Habilitar búsqueda profunda - + WSPR WSPR - + Echo Graph Gráfico de eco - + F8 F8 - + Echo Echo - Eco + Eco - + EME Echo mode - Modo EME Eco + Modo EME Eco - + ISCAT ISCAT - + Fast Graph - Gráfico rápido + Gráfico rápido + "Fast Graph" - + F9 F9 - + &Download Samples ... - &Descargar muestras ... + &Descargar muestras ... + &Descargar muestras de audio ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> - <html><head/><body><p>Descarga archivos de audio de muestra que demuestren los distintos modos.</p></body></html> + <html><head/><body><p>Descarga archivos de audio de muestra que demuestren los distintos modos.</p></body></html> + <html><head/><body><p>Descargar archivos de audio de los distintos modos.</p></body></html> - + MSK144 MSK144 - + QRA64 QRA64 - + Release Notes Cambios en la nueva versión - + Enable AP for DX Call - Habilitar AP para llamada DX + Habilitar AP para llamada DX + Habilitar AP para indicativo DX - + FreqCal FreqCal - + Measure reference spectrum Medir espectro de referencia - + Measure phase response Medir la respuesta de fase - + Erase reference spectrum Borrar espectro de referencia - + Execute frequency calibration cycle Ejecutar ciclo de calibración de frecuencia - + Equalization tools ... Herramientas de ecualización ... - + WSPR-LF WSPR-LF - + Experimental LF/MF mode Modo experimental LF/MF - + FT8 FT8 - - + + Enable AP Habilitar AP - + Solve for calibration parameters Resolver para parámetros de calibración - Resolver parámetros de calibración + Resolver parámetros de calibración - + Copyright notice Derechos de Autor - + Shift+F1 - Mayúsculas+F1 - Mayúsculas+F1 + Mayúsculas+F1 - + Fox log Log Fox - Log "Fox" + Log "Fox" - + FT8 DXpedition Mode User Guide Guía de usuario del modo FT8 DXpedition (inglés) - + Reset Cabrillo log ... Restablecer log de Cabrillo ... - Restablecer log Cabrillo ... + Borrar log Cabrillo - + Color highlighting scheme Esquema de resaltado de color - Esquema de resaltado de colores + Esquema de resaltado de colores - + Contest Log Log de Concurso - + Export Cabrillo log ... Exportar log de Cabrillo ... - Exportar log Cabrillo ... + Exportar log Cabrillo - + Quick-Start Guide to WSJT-X 2.0 Guía de inicio rápido para WSJT-X 2.0 (inglés) - + Contest log Log de Concurso - + Erase WSPR hashtable Borrar la tabla de WSPR - + FT4 FT4 @@ -3665,8 +3881,8 @@ de la lista. La lista se puede mantener en Configuración (F2). - - + + Receiving Recibiendo @@ -3683,13 +3899,15 @@ de la lista. La lista se puede mantener en Configuración (F2). Scanned ADIF log, %1 worked before records created - Log ADIF escaneado, %1 funcionaba antes de la creación de registros + Log ADIF escaneado, %1 funcionaba antes de la creación de registros + Log ADIF escaneado, %1 registros trabajados B4 creados Error Loading LotW Users Data - -Error al cargar datos de usuarios de LotW + +Error al cargar datos de usuarios de LotW + Error al cargar datos de usuarios de LoTW @@ -3700,25 +3918,25 @@ Error al cargar datos de usuarios de LotW Configurations... Conmfiguraciones... - Configuraciones... + Configuraciones... - - - - + + + + + - + - + - + - + - - + Message Mensaje @@ -3730,7 +3948,8 @@ Error al cargar datos de usuarios de LotW KillByName return code: %1 - Código de retorno de KillByName: %1 + Código de retorno de KillByName: %1 + KillByName regresa código: %1 @@ -3740,34 +3959,37 @@ Error al cargar datos de usuarios de LotW Click OK to retry - Haga clic en Aceptar para volver a intentar + Haga clic en Aceptar para volver a intentar + Clic en "Aceptar" para reintentar - + Improper mode - Modo incorrecto + Modo incorrecto - + File Open Error Error de apertura del archivo Error al abrir archivo - - - - + + + + Cannot open "%1" for append: %2 - No puedo abrir "%1" para anexar: %2 + No puedo abrir "%1" para anexar: %2 + No se puedo abrir "%1" para anexar: %2 Error saving c2 file - Error al guardar el archivo c2 + Error al guardar el archivo c2 + Error al guardar archivo c2 @@ -3777,19 +3999,20 @@ Error al cargar datos de usuarios de LotW Error in Sound Output - Error en la salida de sonido + Error en la salida de sonido + Error en salida de audio - - + + Single-Period Decodes Decodificaciones de un solo período - - + + Average Decodes Promedio de decodificaciones @@ -3806,13 +4029,15 @@ Error al cargar datos de usuarios de LotW Status File Error - Error de estado del archivo + Error de estado del archivo + Error en el archivo de estado - + Cannot open "%1" for writing: %2 - No se puede abrir "%1" para la escritura: %2 + No se puede abrir "%1" para la escritura: %2 + No se puede abrir "%1" para escritura: %2 @@ -3829,7 +4054,9 @@ Error al cargar datos de usuarios de LotW Running: %1 %2 - Corriendo: %1 + Corriendo: %1 +%2 + Ejecutando: %1 %2 @@ -3850,7 +4077,7 @@ Error al cargar datos de usuarios de LotW Good Calibration Solution - Buena solución de calibración + Buena solución de calibración @@ -3868,7 +4095,8 @@ Error al cargar datos de usuarios de LotW Delete Calibration Measurements - Eliminar mediciones de calibración + Eliminar mediciones de calibración + Borrar mediciones de calibración @@ -3880,34 +4108,42 @@ Error al cargar datos de usuarios de LotW If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - Si haces un uso justo de cualquier parte de WSJT-X bajo los términos de la Licencia Pública General de GNU, debes mostrar el siguiente aviso de copyright de manera destacada en tú trabajo derivado: + Si haces un uso justo de cualquier parte de WSJT-X bajo los términos de la Licencia Pública General de GNU, debes mostrar el siguiente aviso de copyright de manera destacada en tú trabajo derivado: -"Los algoritmos, el código fuente, la apariencia de WSJT-X y los programas relacionados, y las especificaciones del protocolo para los modos FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 son Copyright (C) 2001-2020 por uno o más de los siguientes autores: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q y otros miembros del Grupo de Desarrollo WSJT ". +"Los algoritmos, el código fuente, la apariencia de WSJT-X y los programas relacionados, y las especificaciones del protocolo para los modos FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 son Copyright (C) 2001-2020 por uno o más de los siguientes autores: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q y otros miembros del Grupo de Desarrollo WSJT ". + Si haces un uso justo de cualquier parte de WSJT-X bajo los términos de la Licencia Pública General de GNU, debes mostrar el siguiente aviso de derechos de autor (copyright) de manera destacada en tu trabajo derivado: + +"Los algoritmos, el código fuente, la apariencia y comportamiento del WSJT-X y los programas relacionados, y las especificaciones del protocolo para los modos FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 son Copyright (C) 2001-2020 por uno o más de los siguientes autores: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q y otros miembros del Grupo de Desarrollo WSJT ". No data read from disk. Wrong file format? - No se leen datos del disco. Formato de archivo incorrecto? + No se leen datos del disco. Formato de archivo incorrecto? + No se han leido datos del disco. Formato de archivo incorrecto? Confirm Delete - Confirmar eliminación + Confirmar eliminación + Confirmar borrado Are you sure you want to delete all *.wav and *.c2 files in "%1"? - ¿Estas seguro de que deseas eliminar todos los archivos *.wav y *.c2 en "%1"? + ¿Estas seguro de que deseas eliminar todos los archivos *.wav y *.c2 en "%1"? + ¿Esta seguro de que desea borrar todos los archivos *.wav y *.c2 en "%1"? Keyboard Shortcuts - Atajo de teclado + Atajo de teclado + Atajos de teclado Special Mouse Commands - Comandos especiales del ratón + Comandos especiales del ratón + Comandos especiales de ratón @@ -3915,226 +4151,253 @@ Error al cargar datos de usuarios de LotW No hay más archivos para abrir. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - Por favor, elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30m. + Por favor, elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30m. + Elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30M. - + WSPR Guard Band - Banda de Guardia WSPR + Banda de Guardia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - Elige otra frecuencia de dial. WSJT-X no funcionará en modo Fox en las sub-bandas FT8 estándar. + Elige otra frecuencia de dial. WSJT-X no funcionará en modo Fox en las sub-bandas FT8 estándar. + Por favor elija otra frecuencia. WSJT-X no operá en modo "Fox" en las sub-bandas de FT8 estándar. - + Fox Mode warning - Advertencia del modo Fox + Advertencia del modo Fox + Advertencia de modo "Fox" - + Last Tx: %1 Última TX: %1 - Últ TX: %1 + Últ TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and 'EU VHF Contest' on the Settings | Advanced tab. - ¿Cambiar al modo Concurso VHF EU? + ¿Cambiar al modo Concurso VHF EU? Para hacerlo, marca 'Actividad operativa especial' y -'Concurso VHF EU' en la Configuración | Lengüeta avanzada. +'Concurso VHF EU' en la Configuración | Lengüeta avanzada. + ¿Cambiar al modo Concurso VHF EU? + +Para hacerlo, marca "Actividad operativa especial" y luego +"Concurso VHF EU" en "Archivo" - "Ajustes" - "Avanzado". - + Should you switch to ARRL Field Day mode? ¿Cambiar al modo ARRL Field Day? - + Should you switch to RTTY contest mode? ¿Cambiar al modo de concurso RTTY? - - - - + + + + Add to CALL3.TXT Añadir a CALL3.TXT - + Please enter a valid grid locator Por favor, introduce un locator/Grid válido - Por favor escriba un locator válido + Por favor escriba un locator válido - + Cannot open "%1" for read/write: %2 - No se puede abrir "%1" para leer/escribir: %2 + No se puede abrir "%1" para leer/escribir: %2 + No se puede abrir "%1" para lectura/escritura: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? + %1 +ya está en CALL3.TXT, ¿deseas reemplazarlo? %1 -ya está en CALL3.TXT, ¿deseas reemplazarlo? +ya está en CALL3.TXT, ¿desea reemplazarlo? - + Warning: DX Call field is empty. - Advertencia: el campo de Indicativo DX está vacío. + Advertencia: el campo de Indicativo DX está vacío. + Advertencia: el campo Indicativo DX está vacío. + + + + Log file error + Error de archivo de log + Error en el archivo de log - Log file error - Error de archivo de log - - - Cannot open "%1" - No puedo abrir "%1" + No puedo abrir "%1" + No se puede abrir "%1" - + Error sending log to N1MM Error al enviar el log a N1MM - + Write returned "%1" - Escritura devuelta "%1" + Escritura devuelta "%1" + Escritura devuelve "%1" - + Stations calling DXpedition %1 - Estaciones que llaman a DXpedition %1 + Estaciones que llaman a DXpedition %1 + Estaciones llamando a DXpedition %1 - + Hound - Hound + Hound + "Hound" - + Tx Messages - Mensajes de TX + Mensajes de TX + Mensajes TX - - - + + + Confirm Erase Confirmar borrado - + Are you sure you want to erase file ALL.TXT? ¿Estás seguro de que quiere borrar el archivo ALL.TXT? - - + + Confirm Reset - Confirmar reinicio + Confirmar reinicio + Confirmar restablecer + + + + Are you sure you want to erase your contest log? + ¿Estás seguro de que quieres borrar el log de tú concurso? + ¿Está seguro que quiere borrar el log de concurso? - Are you sure you want to erase your contest log? - ¿Estás seguro de que quieres borrar el log de tú concurso? - ¿Está seguro que quiere borrar el log de concurso? - - - Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - Hacer esto eliminará todos los registros de QSO para el concurso actual. Se guardarán en el archivo log de ADIF, pero no estarán disponibles para la exportación en tú log de Cabrillo. + Hacer esto eliminará todos los registros de QSO para el concurso actual. Se guardarán en el archivo log de ADIF, pero no estarán disponibles para la exportación en tú log de Cabrillo. + Hacer esto eliminará todos los QSOs del concurso actual. Se mantendrán en el log ADIF, pero no estarán disponibles para la exportación como log de Cabrillo. - + Cabrillo Log saved Cabrillo Log guardado - Log Cabrillo guardado + Log Cabrillo guardado - + Are you sure you want to erase file wsjtx_log.adi? ¿Estás seguro de que quieres borrar el archivo wsjtx_log.adi? - ¿Está seguro que quiere borrar el archivo wsjtx_log.adi? + ¿Está seguro que quiere borrar el archivo wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - ¿Estás seguro de que quieres borrar la tabla WSPR? + ¿Estás seguro de que quieres borrar la tabla WSPR? + ¿Está seguro de que quiere borrar la tabla hash WSPR? - + VHF features warning Advertencia de características VHF - + Tune digital gain - Ganancia de sintonización digital + Ganancia de sintonización digital + Ajustar ganancia digital - + Transmit digital gain - Ganancia de transmisión digital + Ganancia de transmisión digital + Transmitir ganancia digital - + Prefixes - Prefijos + Prefijos + Prefijos y sufijos tipo 1 - + Network Error Error de red - + Error: %1 UDP server %2:%3 Error: %1 Servidor UDP %2:%3 - + File Error Error en el archivo - + Phase Training Disabled - Fase de entrenamiento deshabilitado + Fase de entrenamiento deshabilitado + Entrenamieno de Fase deshabilitado - + Phase Training Enabled - Fase de entrenamiento habilitado + Fase de entrenamiento habilitado + Entrenamiento de Fase habilitado - + WD:%1m WD:%1m - - + + Log File Error - Error de archivo log + Error de archivo log + Error en archivo log - + Are you sure you want to clear the QSO queues? - ¿Estás seguro de que quieres borrar las colas QSO? + ¿Estás seguro de que quieres borrar las colas QSO? + ¿Está seguro que quiere borrar las colas de QSOs? @@ -4143,12 +4406,13 @@ Servidor UDP %2:%3 Message Averaging - Promedio de mensajes + Promedio de mensajes UTC Sync DT Freq - UTC Sync DH Freq + UTC Sync DH Freq + UTC Sync DT Freq @@ -4165,7 +4429,7 @@ Servidor UDP %2:%3 Default - Por defecto + Por defecto @@ -4179,13 +4443,13 @@ Servidor UDP %2:%3 &Clone &Clon - &Clonar + &Clonar Clone &Into ... Clon &a ... - Clonar &desde ... + &Clonar a ... @@ -4201,43 +4465,43 @@ Servidor UDP %2:%3 &Delete &Borrar - &Eliminar + &Borrar Clone Into Configuration Clonar a la configuración - Clonar a la Configuración + Clonar a la Configuración Confirm overwrite of all values for configuration "%1" with values from "%2"? ¿Confirmas la sobrescritura de todos los valores para la configuración "%1" con valores de "%2"? - ¿Confirmar la sobrescritura de todos los valores para la configuración "%1" con los valores de "%2"? + ¿Confirmar la sobrescritura de todos los valores para la configuración "%1" con los valores de "%2"? Reset Configuration Restablecer configuración/ajuste - Restablecer configuración + Restablecer configuración Confirm reset to default values for configuration "%1"? ¿Quieres restablecer a los valores predeterminados para la configuración "%1"? - ¿Restablecer a los valores predeterminados para la configuración "%1"? + ¿Confirmar restablecer a los valores predeterminados para la configuración "%1"? Delete Configuration Eliminar configuración/ajuste - Eliminar configuración + Borrar Configuración Confirm deletion of configuration "%1"? ¿quieres eliminar la configuración "%1"? - ¿Eliminar la configuración "%1"? + ¿Confirmar borrado de la configuración "%1"? @@ -4245,18 +4509,20 @@ Servidor UDP %2:%3 New Configuration Name - Nuevo nombre de configuración/ajuste + Nuevo nombre de configuración/ajuste + Nuevo nombre de la configuración Old name: - Nombre Anterior: + Nombre Anterior: + Nombre anterior: &New name: - &Nombre Nuevo: - Nuevo &Nombre: + Nuevo &Nombre: + &Nuevo nombre: @@ -4269,22 +4535,24 @@ Servidor UDP %2:%3 Failed to start OmniRig COM server - Error al iniciar el servidor COM para OmniRig + Error al iniciar el servidor COM para OmniRig + Error al iniciar servidor COM de OmniRig - - + + OmniRig: don't know how to set rig frequency OmniRig: no sé cómo configurar la frecuencia del equipo - - + + OmniRig: timeout waiting for update from rig - OmniRig: el tiempo de espera finalizó en la actualización del equipo + OmniRig: el tiempo de espera finalizó en la actualización del equipo + OmniRig: el tiempo de espera agotado esperando la actualización del equipo - + OmniRig COM/OLE error: %1 at %2: %3 (%4) Error de OmniRig COM/OLE: %1 a %2: %3 (%4 @@ -4300,8 +4568,10 @@ Servidor UDP %2:%3 QObject + Invalid rig name - \ & / not allowed - Nombre del equipo inválido - \ & / No permitido + Nombre del equipo inválido - \ & / No permitido + Nombre del equipo no válido - \ y / no permitidos @@ -4311,7 +4581,8 @@ Servidor UDP %2:%3 Failed to open LotW users CSV file: '%1' - Error al abrir el archivo CSV de los usuarios de LotW: '%1' + Error al abrir el archivo CSV de los usuarios de LotW: '%1' + Error al abrir archivo CSV de usuarios del LoTW: '%1' @@ -4326,27 +4597,32 @@ Servidor UDP %2:%3 Error reading waterfall palette file "%1:%2" too many colors. - Error al leer el archivo de paleta en cascada "%1:%2" demasiados colores. + Error al leer el archivo de paleta en cascada "%1:%2" demasiados colores. + Error al leer el archivo de paleta de la cascada (waterfall) "%1:%2" demasiados colores. Error reading waterfall palette file "%1:%2" invalid triplet. - Error al leer el archivo de paleta en cascada "%1:%2" triplete inválido. + Error al leer el archivo de paleta en cascada "%1:%2" triplete inválido. + Error al leer el archivo de paleta de la cascada (waterfall) "%1:%2" triplete inválido. Error reading waterfall palette file "%1:%2" invalid color. - Error al leer el archivo de paleta en cascada "%1:%2" color inválido. + Error al leer el archivo de paleta en cascada "%1:%2" color inválido. + Error al leer el archivo de paleta de la cascada (waterfall) "%1:%2" color inválido. Error opening waterfall palette file "%1": %2. - Error al abrir el archivo de paleta en cascada "%1": %2. + Error al abrir el archivo de paleta en cascada "%1": %2. + Error al abrir el archivo de paleta de la cascada (waterfall) "%1": %2. Error writing waterfall palette file "%1": %2. - Error al escribir el archivo de paleta en cascada "%1": %2. + Error al escribir el archivo de paleta en cascada "%1": %2. + Error al escribir el archivo de paleta de la cascada (waterfall) "%1": %2. @@ -4394,7 +4670,7 @@ Error(%3): %4 Redirect not followed: %1 - Redireccionamiento no seguido: %1 + Redireccionamiento no seguido: %1 @@ -4416,7 +4692,9 @@ Error(%2): %3 Cannot make path: "%1" - No se puede hacer camino: + No se puede hacer camino: +"%1" + No se puede hacer la ruta: "%1" @@ -4424,7 +4702,10 @@ Error(%2): %3 Cannot write to file: "%1" Error(%2): %3 - No se puede escribir en el archivo: + No se puede escribir en el archivo: +"%1" +Error(%2): %3 + No se puede escribir al archivo: "%1" Error(%2): %3 @@ -4434,37 +4715,7 @@ Error(%2): %3 Download Samples - Descargar muestras - - - - &Abort - - - - - &Refresh - - - - - &Details - - - - - Base URL for samples: - - - - - Only use HTTP: - - - - - Check this is you get SSL/TLS errors - + Descargar muestras de audio @@ -4474,7 +4725,8 @@ Error(%2): %3 Invalid URL format - Formato de URL no válido + Formato de URL no válido + Formato de enlace no válido @@ -4487,7 +4739,8 @@ Error(%2): %3 An error occurred during read from the audio input device. - Se produjo un error durante la lectura desde el dispositivo de entrada de audio. + Se produjo un error durante la lectura desde el dispositivo de entrada de audio. + Se produjo un error durante la lectura del dispositivo de entrada de audio. @@ -4497,7 +4750,8 @@ Error(%2): %3 Non-recoverable error, audio input device not usable at this time. - Error no recuperable, el dispositivo de entrada de audio no se puede utilizar en este momento. + Error no recuperable, el dispositivo de entrada de audio no se puede utilizar en este momento. + Error no recuperable, dispositivo de entrada de audio no disponible en este momento. @@ -4507,7 +4761,8 @@ Error(%2): %3 Requested input audio format is not supported on device. - El formato de audio de entrada solicitado no es compatible con el dispositivo. + El formato de audio de entrada solicitado no es compatible con el dispositivo. + El formato de audio de entrada solicitado no está soportado en el dispositivo. @@ -4624,7 +4879,7 @@ Error(%2): %3 &Offset (MHz): &Desplazamiento en MHz: - &Desplazamiento (MHz): + Desplazamient&o (MHz): @@ -4642,7 +4897,8 @@ Error(%2): %3 Frequency offset - Frecuencia de desplazamiento + Frecuencia de desplazamiento + Desplazamiento de la frecuencia @@ -4708,12 +4964,14 @@ Error(%2): %3 Waterfall gain - Ganancia de la cascada + Ganancia de la cascada + Ganancia de la cascada (waterfall) <html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html> - <html><head/><body><p>Establece el tamaño fraccional del espectro en esta ventana.</p></body></html> + <html><head/><body><p>Establece el tamaño fraccional del espectro en esta ventana.</p></body></html> + <html><head/><body><p>Establece el tamaño porcentual del espectro en esta ventana.</p></body></html> @@ -4724,17 +4982,18 @@ Error(%2): %3 Spec Espec - Espec + Espec <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> - <html><head/><body><p>Acoplar la línea base espectral sobre el intervalo visualizado completo.</p></body></html> + <html><head/><body><p>Acoplar la línea base espectral sobre el intervalo visualizado completo.</p></body></html> + <html><head/><body><p>Línea base del espectro sobre el intervalo visualizado completo.</p></body></html> Flatten - Flatten + Flatten @@ -4744,12 +5003,12 @@ Error(%2): %3 Ref Spec - Ref Espec + Ref Espec Smoothing of Linear Average spectrum - Suavizado del espectro promedio lineal + Suavizado del espectro promedio lineal @@ -4759,7 +5018,7 @@ Error(%2): %3 Compression factor for frequency scale - Factor de compresión para escala de frecuencia + Factor de compresión para escala de frecuencia @@ -4769,7 +5028,8 @@ Error(%2): %3 Select waterfall palette - Seleccionar Paleta de la cascasa + Seleccionar Paleta de la cascasa + Seleccionar paleta de la cascasa (waterfall) @@ -4800,7 +5060,8 @@ Error(%2): %3 <html><head/><body><p>Frequency at left edge of waterfall</p></body></html> - <html><head/><body><p>Frecuencia en el borde izquierdo de la cascada.</p></body></html> + <html><head/><body><p>Frecuencia en el borde izquierdo de la cascada.</p></body></html> + <html><head/><body><p>Frecuencia en el borde izquierdo de la cascada (waterfall)</p></body></html> @@ -4811,7 +5072,7 @@ Error(%2): %3 Start Empezar - Inicio + Inicio @@ -4831,7 +5092,8 @@ Error(%2): %3 Number of FFTs averaged (controls waterfall scrolling rate) - Número promedio de FFT (controla la velocidad de desplazamiento en la cascada) + Número promedio de FFT (controla la velocidad de desplazamiento en la cascada) + Número de FFTs promediados (controla la velocidad de desplazamiento en la cascada - waterfall) @@ -4842,7 +5104,8 @@ Error(%2): %3 Waterfall zero - Cascada cero + Cascada cero + Cascada (waterfall) cero @@ -4853,13 +5116,13 @@ Error(%2): %3 Wide Graph Gráfico amplio - Cascada - Waterfall + Cascada - Waterfall Read Palette - Leer Paleta + Leer Paleta @@ -4867,8 +5130,8 @@ Error(%2): %3 Settings - Ajustes en lugar de Configuración - Ajustes + Configuración + Ajustes @@ -4878,7 +5141,8 @@ Error(%2): %3 General station details and settings. - Detalles generales de la estación, configuraciones y ajustes. + Detalles generales de la estación, configuraciones y ajustes. + Detalles generales de la estación y ajustes. @@ -4888,36 +5152,37 @@ Error(%2): %3 My C&all: - Mi I&ndicativo: + Mi Indic&ativo: Station callsign. - Indicativo de la Estación. + Indicativo de la Estación. + Indicativo de la estación. M&y Grid: M&i Locator/Grid: - M&y Locator: + Mi L&ocator: <html><head/><body><p>Maidenhead locator, preferably 6 characters.</p></body></html> <html><head/><body><p>Locator/Grid tipo Maidenhead, preferiblemente 6 caracteres.</p></body></html> - <html><head/><body><p>Locator, preferiblemente 6 caracteres.</p></body></html> + <html><head/><body><p>Locator, preferiblemente 6 caracteres.</p></body></html> Check to allow grid changes from external programs Marca para permitir cambios de Locator/Grid de programas externos - Marca para permitir cambios de locator por programas externos + Marca para permitir cambios de locator por programas externos AutoGrid Locator/Grid automático - AutoLocator + AutoLocator @@ -4927,18 +5192,20 @@ Error(%2): %3 <html><head/><body><p>Select your IARU region.</p></body></html> - <html><head/><body><p>Seleccions tú región IARU.</p></body></html> + <html><head/><body><p>Seleccions tú región IARU.</p></body></html> + <html><head/><body><p>Selecciona tu región IARU.</p></body></html> Message generation for type 2 compound callsign holders: - Generación de mensajes para titulares de indicativos compuestos de tipo 2: + Generación de mensajes para titulares de indicativos compuestos de tipo 2: + Generación mensajes indicativos compuestos tipo 2: <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>Los indicativos compuestos del tipo 2 son aquellos con prefijos o sufijos no incluidos en la lista previa permitida (Consulta Ayuda, Prefijos y sufijos adicionales). </P><p>Esta opción determina qué mensajes generados deben contener tu indicativo de tipo completo 2 en lugar de tu indicativo base. Sólo se aplica si tienes un indicativo compuesto de tipo 2.</P><p>Esta opción controla la forma en que se generan los mensajes que se utilizan para responder a llamadas de CQ. Los mensajes generados 6 (CQ) y 5 (73) siempre contendrán tu indicativo completo. Los protocolos JT65 y JT9 permiten algunos mensajes estándar con tu indicativo completo a costa de otra información, como la llamada DX o el locator/Grid.</P> <p>La elección del mensaje 1 omite el indicativo de DX , que puede ser un problema cuando se responde a las llamadas de CQ. La elección del mensaje 3 también omite el indicativo de DX y muchas versiones de este software, puede no extraer el informe. Si escoges ninguno, no significa que sólo tu indicativo completo aparezca al mensaje 5 (73) de manera que el otro operador de QSO puede registrar el indicativo erróneo.</P><p> Ninguna de estas opciones es perfecta, el mensaje 3 suele ser el mejor, pero ten en cuenta que el otro operador de QSO puede no registrar el informe que le envías.</p></body></html> - <html><head/><body><p>Los indicativos compuestos del tipo 2 son aquellos con prefijos o sufijos no incluidos en la lista previa permitida (Consulta en "Ayuda - Lista de prefijos tipo 1 y sufijos). </P><p>Esta opción determina qué mensajes generados deben contener tu indicativo de tipo completo 2 en lugar de tu indicativo base. Sólo se aplica si tienes un indicativo compuesto de tipo 2.</P><p>Esta opción controla la forma en que se generan los mensajes que se utilizan para responder a llamadas de CQ. Los mensajes generados 6 (CQ) y 5 (73) siempre contendrán tu indicativo completo. Los protocolos JT65 y JT9 permiten algunos mensajes estándar con tu indicativo completo a costa de otra información, como la llamada DX o el locator/Grid.</P> <p>La elección del mensaje 1 omite el indicativo de DX , que puede ser un problema cuando se responde a las llamadas de CQ. La elección del mensaje 3 también omite el indicativo de DX y muchas versiones de este software, puede no extraer el informe. Si escoges ninguno, no significa que sólo tu indicativo completo aparezca al mensaje 5 (73) de manera que el otro operador de QSO puede registrar el indicativo erróneo.</P><p> Ninguna de estas opciones es perfecta, el mensaje 3 suele ser el mejor, pero ten en cuenta que el otro operador de QSO puede no registrar el informe que le envías.</p></body></html> + <html><head/><body><p>Los indicativos compuestos del tipo 2 son aquellos con prefijos o sufijos no incluidos en la lista previa permitida (Consulta en "Ayuda - Lista de prefijos y sufijos tipo 1). </P><p>Esta opción determina qué mensajes generados deben contener tu indicativo de tipo completo 2 en lugar de tu indicativo base. Sólo se aplica si tienes un indicativo compuesto de tipo 2.</P><p>Esta opción controla la forma en que se generan los mensajes que se utilizan para responder a llamadas de CQ. Los mensajes generados 6 (CQ) y 5 (73) siempre contendrán tu indicativo completo. Los protocolos JT65 y JT9 permiten algunos mensajes estándar con tu indicativo completo a costa de otra información, como la llamada DX o el locator/Grid.</P> <p>La elección del mensaje 1 omite el indicativo de DX , que puede ser un problema cuando se responde a las llamadas de CQ. La elección del mensaje 3 también omite el indicativo de DX y muchas versiones de este software, puede no extraer el informe. Si escoges ninguno, no significa que sólo tu indicativo completo aparezca al mensaje 5 (73) de manera que el otro operador de QSO puede registrar el indicativo erróneo.</P><p> Ninguna de estas opciones es perfecta, el mensaje 3 suele ser el mejor, pero ten en cuenta que el otro operador de QSO puede no registrar el informe que le envías.</p></body></html> @@ -4953,48 +5220,50 @@ Error(%2): %3 Full call in Tx5 only - Indicativo completo solo en TX5 + Indicativo completo solo en TX5 + Indicativo completo en TX5 solamente Display Monitor - Mostrar + Mostrar Show outgoing transmitted messages in the Rx frequency window. - Mostrar mensajes transmitidos salientes en la ventana de frecuencia de RX. + Mostrar mensajes transmitidos salientes en la ventana de frecuencia de RX. + Mostrar mensajes transmitidos en la ventana "Frecuencia de RX". &Tx messages to Rx frequency window &Mensajes de texto en la ventana de frecuencia RX - &Mensajes de TX en la ventana Frecuencia de RX + Mensajes de &TX en la ventana "Frecuencia de RX" Show if decoded stations are new DXCC entities or worked before. Mostrar si las estaciones decodificadas son entidades DXCC nuevas o las has trabajado antes. - Mostrar si las estaciones decodificadas son nuevas entidades DXCC o se ha trabajado antes. + Mostrar si las estaciones decodificadas son nuevas entidades DXCC o se ha trabajado antes. Show &DXCC, grid, and worked-before status Mostrar &DXCC, Locator/Grid y si se ha trabajado antes - Mostrar &DXCC, locator y estatus trabajado B4 + Mostrar &DXCC, locator y estatus trabajado B4 <html><head/><body><p>Check to have decodes for a new period start at the top of the Band Activity window and not scroll off the top when the window is full.</p><p>This is to aid selecting decodes to double-click while decoding is still in progress. Use the Band Activity vertical scroll bar to reveal decodes past the bottom of the window.</p></body></html> <html><head/><body><p>Comprueba que tengas decodificaciones para comenzar un nuevo período en la parte superior de la ventana de Actividad de banda y no muevas la parte superior cuando la ventana esté llena.</p><p> Esto sirve para ayudar a seleccionar decodificaciones, puedes hacer doble clic mientras la decodificación aún está en curso. Utiliza la barra de desplazamiento vertical de Actividad de banda para ver decodificaciones pasadas en la parte inferior de la ventana.</P></body></html> - <html><head/><body><p>Marcar para que las nuevas decodificaciones comiencen en la parte superior de la ventana de "Actividad en la banda" y no se desplacen hacia arriba cuando la ventana esté llena.</p><p> Esto sirve para seleccionar decodificaciones y hacerles doble clic mientras la decodificación aún está en curso. Utiliza la barra de desplazamiento vertical de la ventana "Actividad en la banda" para ver decodificaciones que esten en la parte inferior de la ventana.</P></body></html> + <html><head/><body><p>Marcar para que las nuevas decodificaciones comiencen en la parte superior de la ventana de "Actividad en la banda" y no se desplacen hacia arriba cuando la ventana esté llena.</p><p> Esto sirve para seleccionar decodificaciones y hacerles doble clic mientras la decodificación aún está en curso. Utiliza la barra de desplazamiento vertical de la ventana "Actividad en la banda" para ver decodificaciones que esten en la parte inferior de la ventana.</P></body></html> Start new period decodes at top Inicia un nuevo periodo de decodificaciones en la parte superior - Nuevo periodo de decodificaciones desde la parte superior de la ventana + Nuevo periodo de decodificaciones desde la parte superior de la ventana @@ -5005,40 +5274,42 @@ Error(%2): %3 Set the font characteristics for the application. Define las características de la fuente para la aplicación. - Cambia la fuente de letras para la aplicación. + Cambia el tipo de letras para la aplicación. Font... - Fuente... + Letra... + Tipo de letra para la aplicación Set the font characteristics for the Band Activity and Rx Frequency areas. Establece las características de la fuente para las áreas de Actividad de banda y Frecuencia de RX. - Cambiar la fuente de letras para las ventanas "Actividad en la banda" y "Frecuencia de RX". + Cambiar el tipo de letras para las ventanas "Actividad en la banda" y "Frecuencia de RX". Decoded Text Font... Tipo de fuente en el área de decodificada ... - Fuente Decodificados... + Tipo de letras decodificados... Include a separator line between periods in the band activity window. Incluye una línea de separación entre períodos en la ventana de actividad de la banda. - Incluye una línea de separación entre períodos de decodificación en la ventana "Actividad en la banda". + Incluye una línea de separación entre períodos de decodificación en la ventana "Actividad en la banda". &Blank line between decoding periods &Línea en blanco entre períodos de decodificación - &Línea de separación entre períodos de decodificación + Línea de &separación entre períodos de decodificación Show distance to DX station in miles rather than kilometers. + Muestra la distancia a la estación DX en millas en lugar de kilómetros. Muestra la distancia a la estación de DX en millas en lugar de kilómetros. @@ -5055,19 +5326,19 @@ Error(%2): %3 Decode after EME delay Decodificar después del retardo de EME - Decodificar después de retardo EME + Decodificar después de retardo EME Tx watchdog: Seguridad de TX: - Control de TX: + Control de TX: <html><head/><body><p>Number of minutes before unattended transmissions are aborted</p></body></html> <html><head/><body><p>Número de minutos antes de que se cancelen las transmisiones desatendidas</p></body></html> - <html><head/><body><p>Número de minutos antes que se cancelen las transmisiones desatendidas</p></body></html> + <html><head/><body><p>Número de minutos antes que se cancelen las transmisiones desatendidas</p></body></html> @@ -5082,52 +5353,54 @@ Error(%2): %3 Enable VHF/UHF/Microwave features - Habilita las funciones VHF/UHF/Microondas + Habilita las funciones VHF/UHF/Microondas + Habilita características en VHF/UHF/Microondas Single decode Decodificación individual - Una sola decodificación + Una sola decodificación <html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html> <html><head/><body><p>Algunos equipos no pueden procesar comandos CAT mientras transmiten. Esto significa que si estás operando en modo dividido (split) puede que tengas que desmarcar esta opción.</p></body></html> - <html><head/><body><p>Algunos equipos no pueden procesar comandos CAT mientras transmiten. Esto significa que si está operando en modo "split", puede que tenga que desmarcar esta opción.</p></body></html> + <html><head/><body><p>Algunos equipos no pueden procesar comandos CAT mientras transmiten. Esto significa que si está operando en modo "split", puede que tenga que desmarcar esta opción.</p></body></html> Allow Tx frequency changes while transmitting Permitir cambios de frecuencia de transmisión mientras se transmite - Permitir cambios de frecuencia TX mientras se transmite + Permitir cambios de frecuencia TX mientras se transmite Don't start decoding until the monitor button is clicked. - No empieza a decodificar hasta que hagas clic en el botón de monitor. + No empieza a decodificar hasta que hagas clic en el botón de monitor. + No se inicia la decodificación hasta se haga clic en el botón "Monitor". Mon&itor off at startup - Mon&itor apagado al inicio + "Mon&itor" apagado al inicio <html><head/><body><p>Check this if you wish to automatically return to the last monitored frequency when monitor is enabled, leave it unchecked if you wish to have the current rig frequency maintained.</p></body></html> <html><head/><body><p>Marca esto si deseas volver automáticamente a la última frecuencia monitoreada cuando el monitor está habilitado, déjalo sin marcar si deseas mantener la frecuencia actual del equipo.</p></body></html> - <html><head/><body><p>Marcar si desea volver automáticamente a la última frecuencia monitoreada cuando el "Monitor" está habilitado, déjar sin marcar si desea mantener la frecuencia actual del equipo.</p></body></html> + <html><head/><body><p>Marcar si desea volver automáticamente a la última frecuencia escuchada cuando el "Monitor" está habilitado, déjar sin marcar si desea mantener la frecuencia actual del equipo.</p></body></html> Monitor returns to last used frequency El monitor vuelve a la última frecuencia utilizada - "Monitor" vuelve a la última frecuencia utilizada + La escucha vuelve a la última frecuencia utilizada Alternate F1-F6 bindings - Enlaces alternativos F1-F6 + Enlaces alternativos F1-F6 @@ -5135,7 +5408,7 @@ Error(%2): %3 text message. Apaga las transmisiones automáticas después de enviar un 73 o cualquier otro mensaje de texto libre. - Desactiva TX después de enviar un 73 o cualquier mensaje de texto libre. + Desactiva TX después de enviar un 73 o cualquier mensaje de texto libre. @@ -5146,19 +5419,19 @@ cualquier otro mensaje de texto libre. Send a CW ID after every 73 or free text message. Envía una ID de CW después de cada 73 o mensaje de texto libre. - Envía una ID en CW después de cada 73 o mensaje de texto libre. + Envía una ID en CW después de cada 73 o mensaje de texto libre. CW ID a&fter 73 ID de CW d&espués de 73 - ID en CW d&espués de 73 + &ID en CW después de 73 Periodic CW ID Inter&val: Inter&valo de ID de CW periódico: - Inter&valo de ID en CW: + Inter&valo de ID en CW: @@ -5166,28 +5439,32 @@ cualquier otro mensaje de texto libre. This might be required under your countries licence regulations. It will not interfere with other users as it is always sent in the quiet period when decoding is done. - Envía una identificación de CW periódicamente cada pocos minutos. + Envía una identificación de CW periódicamente cada pocos minutos. Esto puede ser requerido bajo las regulaciones de licencia de tú país. No interferirá con otros usuarios, ya que siempre se envía en el -período tranquilo cuando se realiza la decodificación. +período tranquilo cuando se realiza la decodificación. + Envía una identificación en CW periódicamente cada pocos minutos. +Esto puede ser requerido bajo las regulaciones de licencia de tu país. +No interferirá con otros usuarios, ya que siempre se envía en el +período de silencio cuando se ha realizado la decodificación. Automatic transmission mode. Modo de transmisión automática. - Activa TX cuando se hace doble clic sobre indicativo + Activa TX cuando se hace doble clic sobre indicativo Doubl&e-click on call sets Tx enable Haz dobl&e clic en los conjuntos de indicativos de habilitación de TX - Dobl&e clic en indicativo activa TX + Dobl&e clic en indicativo activa TX Calling CQ forces Call 1st Llamar a CQ obliga a llamar primero - Llamar CQ habilita 1er decodificado + Llamar CQ habilita 1er decodificado @@ -5203,7 +5480,7 @@ período tranquilo cuando se realiza la decodificación. Settings that control your CAT interface. Ajustes que controlan tú interfaz CAT. - Ajustes que controlan el interface CAT. + Ajustes que controlan el interface CAT. @@ -5234,7 +5511,7 @@ período tranquilo cuando se realiza la decodificación. Serial port data rate which must match the setting of your radio. - Velocidad de datos del puerto serie que debe coincidir con la configuración/ajuste de tú equipo. + Velocidad de datos del puerto serie que debe coincidir con los ajustes de tu radio. @@ -5280,7 +5557,7 @@ período tranquilo cuando se realiza la decodificación. <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> <html><head/><body><p>Número de bits de datos utilizados para comunicarse con la interfaz CAT de tú equipo (generalmente ocho).</p></body></html> - <html><head/><body><p>Número de bits de datos utilizados para comunicarse con la interface CAT del equipo (generalmente ocho).</p></body></html> + <html><head/><body><p>Número de bits de datos utilizados para comunicarse con la interface CAT del equipo (generalmente ocho).</p></body></html> @@ -5290,23 +5567,23 @@ período tranquilo cuando se realiza la decodificación. D&efault - Por d&efecto + Por d&efecto Se&ven - Si&ete + &Siete E&ight - O&cho + O&cho <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> <html><head/><body><p>Número de bits de parada utilizados al comunicarse con la interfaz CAT de tú equipo</p><p>(consulta el manual de tú equipo para más detalles).</p></body></html> - <html><head/><body><p>Número de bits de parada utilizados al comunicarse con la interface CAT del equipo</p><p>(consulta el manual del equipo para más detalles).</p></body></html> + <html><head/><body><p>Número de bits de parada utilizados al comunicarse con la interface CAT del equipo</p><p>(consulta el manual del equipo para más detalles).</p></body></html> @@ -5317,22 +5594,23 @@ período tranquilo cuando se realiza la decodificación. Default - Por defecto + Por defecto On&e - Un&o + Un&o T&wo - D&os + &Dos <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> - <html><head/><body><p>Protocolo de control de flujo utilizado entre este PC y la interfaz CAT de tú equipo (generalmente &quot;Ninguno&quot;pero algunos requieren&quot;Hardware&quot;).</p></body></html> + <html><head/><body><p>Protocolo de control de flujo utilizado entre este PC y la interfaz CAT de tú equipo (generalmente &quot;Ninguno&quot;pero algunos requieren&quot;Hardware&quot;).</p></body></html> + <html><head/><body><p>Protocolo de control de flujo utilizado entre este PC y la interfaz CAT del equipo (generalmente "Ninguno", pero algunos requieren "Hardware").</p></body></html> @@ -5359,7 +5637,6 @@ período tranquilo cuando se realiza la decodificación. Flow control using the RTS and CTS RS-232 control lines not often used but some radios have it as an option and a few, particularly some Kenwood rigs, require it). - it) no ( Control de flujo usando las líneas de control RTS y CTS RS-232 no se usa con frecuencia, pero algunos equipos lo tienen como una opción y unos pocos, particularmente algunos equipos de Kenwood, lo requieren. @@ -5409,7 +5686,8 @@ unos pocos, particularmente algunos equipos de Kenwood, lo requieren. How this program activates the PTT on your radio? - ¿Cómo este programa activa el PTT en tú equipo? + ¿Cómo este programa activa el PTT en tú equipo? + ¿Cómo activa este programa el PTT del equipo? @@ -5420,7 +5698,7 @@ unos pocos, particularmente algunos equipos de Kenwood, lo requieren. <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> <html><head/><body><p>Sin activación de PTT, en cambio, el VOX automático del equipo se usa para conectar el transmisor.</p><p>Usa esto si no tienes hardware de interfaz de radio.</p></body></html> - <html><head/><body><p>Sin activación de PTT, se usa el VOX del equipo para activar el transmisor.</p><p>Usar esta opción si no se tiene una interface de radio.</p></body></html> + <html><head/><body><p>Sin activación de PTT, se use el VOX del equipo para activar el transmisor.</p><p>Use esta opción si no se tiene una interface de radio.</p></body></html> @@ -5431,7 +5709,7 @@ unos pocos, particularmente algunos equipos de Kenwood, lo requieren. <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> <html><head/><body><p>Usa la línea de control RS-232 DTR para alternar el PTT de tú equipo, requiere hardware para interconectar la línea.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control DTR del puerto serie CAT se puede usar para esto o se puede usar una línea de control DTR en un puerto serie diferente.</p></body></html> - <html><head/><body><p>Usa la línea de control RS-232 DTR para activar el PTT del equipo, se requiere de "hardware" para el envio de señales.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control DTR del puerto serie CAT se puede usar para esto o se puede usar una línea de control DTR en un puerto serie diferente.</p></body></html> + <html><head/><body><p>Use la línea de control RS-232 DTR para activar el PTT del equipo, se requiere de "hardware" para el envio de señales.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control DTR del puerto serie CAT se puede usar para esto o se puede usar una línea de control DTR en un puerto serie diferente.</p></body></html> @@ -5443,8 +5721,11 @@ unos pocos, particularmente algunos equipos de Kenwood, lo requieren.Some radios support PTT via CAT commands, use this option if your radio supports it and you have no other hardware interface for PTT. - Algunos equipos admiten PTT a través de comandos CAT, + Algunos equipos admiten PTT a través de comandos CAT, usa esta opción si tú equipo lo admite y no tiene +una interface para PTT. + Algunos equipos admiten PTT a través de comandos CAT, +use esta opción si el equipo lo admite y no tiene una interface para PTT. @@ -5455,7 +5736,8 @@ una interface para PTT. <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> - <html><head/><body><p>Usa la línea de control RS-232 RTS para alternar el PTT de tú equipo, requiere hardware para interconectar la línea.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control RTS del puerto serie CAT se puede usar para esto o se puede usar una línea de control RTS en un puerto serie diferente. Ten en cuenta que esta opción no está disponible en el puerto serie CAT cuando se usa el control de flujo de hardware.</p></body></html> + <html><head/><body><p>Usa la línea de control RS-232 RTS para alternar el PTT de tú equipo, requiere hardware para interconectar la línea.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control RTS del puerto serie CAT se puede usar para esto o se puede usar una línea de control RTS en un puerto serie diferente. Ten en cuenta que esta opción no está disponible en el puerto serie CAT cuando se usa el control de flujo de hardware.</p></body></html> + <html><head/><body><p>Use la línea de control RS-232 RTS para activar el PTT del equipo, requiere hardware para interconectar la línea.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control RTS del puerto serie CAT se puede usar para esto o se puede usar una línea de control RTS en un puerto serie diferente. Esta opción no está disponible en el puerto serie CAT cuando se usa el control de flujo de hardware.</p></body></html> @@ -5465,7 +5747,8 @@ una interface para PTT. <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> - <html><head/><body><p>Selecciona el puerto serie RS-232 utilizado para el control PTT, esta opción está disponible cuando se selecciona DTR o RTS arriba como método de transmisión.</p><p>Este puerto puede ser el mismo que el utilizado para el control CAT.</p><p>Para algunos tipos de interfaz, se puede elegir el valor especial CAT, esto se usa para interfaces CAT no seriales que pueden controlar líneas de control de puerto serie de forma remota (OmniRig, por ejemplo).</p></body></html> + <html><head/><body><p>Selecciona el puerto serie RS-232 utilizado para el control PTT, esta opción está disponible cuando se selecciona DTR o RTS arriba como método de transmisión.</p><p>Este puerto puede ser el mismo que el utilizado para el control CAT.</p><p>Para algunos tipos de interfaz, se puede elegir el valor especial CAT, esto se usa para interfaces CAT no seriales que pueden controlar líneas de control de puerto serie de forma remota (OmniRig, por ejemplo).</p></body></html> + <html><head/><body><p>Seleccione el puerto serie RS-232 utilizado para el control PTT, esta opción está disponible cuando se selecciona DTR o RTS como método de transmisión.</p><p>Este puerto puede ser el mismo que el utilizado para el control CAT.</p><p>Para algunos tipos de interfaz, se puede elegir el valor especial CAT, esto se usa para interfaces CAT no seriales que pueden controlar líneas de control de puerto serie de forma remota (OmniRig, por ejemplo).</p></body></html> @@ -5481,7 +5764,7 @@ una interface para PTT. <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> <html><head/><body><p>USB suele ser el modo de modulación correcto,</p><p>a menos que la radio tenga una configuración/ajuste especial de datos o modo de paquete</p><p>para operación AFSK.</p></body></html> - <html><head/><body><p>USB suele ser usualmente el modo correcto,</p><p>a menos que la radio tenga un ajuste de modo especifico para "data o packet"</p><p>para operación en AFSK.</p></body></html> + <html><head/><body><p>USB suele ser usualmente el modo correcto,</p><p>a menos que la radio tenga un ajuste de modo especifico para "data o packet"</p><p>para operación en AFSK.</p></body></html> @@ -5496,7 +5779,7 @@ or bandwidth is selected). No permitas que el programa configure el modo del equipo (no se recomienda pero se usa si el modo es incorrecto o se selecciona el ancho de banda). - No permite que el programa configure el modo en el equipo + No permite que el programa configure el modo en el equipo (no se recomienda, pero usese si un modo incorrecto o ancho de banda es seleccionado). @@ -5509,33 +5792,37 @@ o ancho de banda es seleccionado). If this is available then it is usually the correct mode for this program. - Si está disponible, generalmente es el modo correcto para este programa. + Si está disponible, generalmente es el modo correcto para este programa. + Si está disponible, entonces usualmente es el modo correcto para este programa. Data/P&kt Datos/P&kt - Data/P&kt + Data/P&kt Some radios can select the audio input using a CAT command, this setting allows you to select which audio input will be used (if it is available then generally the Rear/Data option is best). - Algunos equipos pueden seleccionar la entrada de audio usando un comando CAT, + Algunos equipos pueden seleccionar la entrada de audio usando un comando CAT, esta configuración/ajuste te permite seleccionar qué entrada de audio se usará -(si está disponible, generalmente la opción Posterior/Datos es la mejor). +(si está disponible, generalmente la opción Posterior/Datos es la mejor). + Algunos equipos pueden seleccionar la entrada de audio usando un comando CAT, +este ajuste permite seleccionar qué entrada de audio se usará +(si está disponible, generalmente la opción "Parte posterior" es la mejor). Transmit Audio Source - Fuente de audio de transmisión - Fuente de salida de audio + Fuente de audio de transmisión Rear&/Data - Parte posterior&/Datos + Parte posterior/Datos + Parte posterior @@ -5555,23 +5842,25 @@ esta configuración/ajuste te permite seleccionar qué entrada de audio se usar <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> - <html><head/><body><p>Intervalo de sondeo al equipo para el estado. Intervalos más largos significarán que los cambios en el equipo tardarán más en detectarse.</p></body></html> + <html><head/><body><p>Intervalo de sondeo al equipo para el estado. Intervalos más largos significarán que los cambios en el equipo tardarán más en detectarse.</p></body></html> + <html><head/><body><p>Intervalo para sondeo del estado del equipo. Intervalos más largos significará que los cambios en el equipo tardarán más en detectarse.</p></body></html> s - s + s <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> - <html><head/><body><p>Intenta conectarte al equipo con esta configuración.</p><p>El botón se pondrá verde si la conexión es correcta o rojo si hay un problema.</p></body></html> + <html><head/><body><p>Intenta conectarte al equipo con esta configuración.</p><p>El botón se pondrá verde si la conexión es correcta o rojo si hay un problema.</p></body></html> + <html><head/><body><p>Prueba de conexión al equipo por CAT utilizando esta configuración.</p><p>El botón cambiará a verde si la conexión es correcta o rojo si hay un problema.</p></body></html> Test CAT Test de CAT - Probar CAT + Probar CAT @@ -5580,29 +5869,37 @@ Click again to deactivate. Normally no power should be output since there is no audio being generated at this time. Check that any Tx indication on your radio and/or your radio interface behave as expected. - Intenta activar el transmisor. + Intenta activar el transmisor. Haz clic nuevamente para desactivar. Normalmente no debe haber potencia de salida ya que no se genera audio en este momento. + Verifica cualquier indicación de TX en tú equipo y/o en tú -interfaz de radio se comporta como se espera. +interfaz de radio se comporta como se espera. + Prueba de activación del PTT. + +Clic nuevamente para desactivar. Normalmente no debe haber potencia +de salida ya que no se genera audio en este momento. + +Verifica que cualquier indicación de TX en tu equipo y/o en el +interfaz de radio se comporte como se esperaba. Test PTT Test de PTT - Probar PTT + Probar PTT Split Operation Operación dividida (Split) - Operación en "Split" + Operación en "Split" Fake It Fíngelo - Fingir "Split" + Fingir "Split" @@ -5636,16 +5933,22 @@ If this is your default device for system sounds then ensure that all system sounds are disabled otherwise you will broadcast any systems sounds generated during transmitting periods. - Selecciona el CODEC de audio a utilizar para transmitir + Selecciona el CODEC de audio a utilizar para transmitir Si este es tú dispositivo predeterminado para los sonidos del sistema, entonces, asegúrate de que todos los sonidos del sistema estén deshabilitados de lo contrario transmitiras cualquier sonido del sistema generado durante +los períodos de transmisión. + Seleccione el CODEC de audio a utilizar para transmitir +Si este es el dispositivo predeterminado para los sonidos del sistema, +entonces, asegúrese de que todos los sonidos del sistema estén deshabilitados +de lo contrario transmitirá cualquier sonido del sistema generado durante los períodos de transmisión. Select the audio CODEC to use for receiving. - Selecciona el CODEC de audio que se usará para recibir. + Selecciona el CODEC de audio que se usará para recibir. + Selecciona el CODEC a usar para recibir. @@ -5655,7 +5958,8 @@ los períodos de transmisión. Select the channel to use for receiving. - Selecciona el canal a usar para recibir. + Selecciona el canal a usar para recibir. + Seleccione el canal a usar para recibir. @@ -5687,27 +5991,31 @@ los períodos de transmisión. Unless you have multiple radios connected on different channels; then you will usually want to select mono or both here. - Selecciona el canal de audio utilizado para la transmisión. + Selecciona el canal de audio utilizado para la transmisión. A menos de que tengas varios equipos conectados en diferentes canales, entonces, generalmente querrás seleccionar mono o -ambos canales. +ambos canales. + Selecciona el canal de audio utilizado para la transmisión. +A menos que tenga varios equipos conectados en diferentes +canales, entonces, generalmente debe seleccionar "Mono" o +"Ambos". Ou&tput: - Sa&lida: + &Salida: Save Directory Guardar directorio - Directorio "save" + Directorio "save" Loc&ation: - Ubi&cación: + Ubic&ación: @@ -5723,12 +6031,14 @@ ambos canales. Click to select a different save directory for .WAV files. - Haz clic para seleccionar un directorio de guardado diferente para los archivos .WAV. + Haz clic para seleccionar un directorio de guardado diferente para los archivos .WAV. + Clic para seleccionar un directorio "Save" diferente donde guardar los los archivos .WAV. S&elect - S&elecciona + S&elecciona + S&eleccionar @@ -5744,24 +6054,24 @@ ambos canales. Select - Selecciona + Seleccionar Power Memory By Band Memoriza la potencia por banda - Recuerdala potencia por banda + Recuerda la potencia por banda Remember power settings by band Recuerde los ajustes de potencia por banda - Recuerda ajustes de potencia por banda + Recuerda ajustes de potencia por banda Enable power memory during transmit - Habilitar memoria de potencia durante la transmisión + Habilita memoria de potencia durante la transmisión @@ -5771,7 +6081,7 @@ ambos canales. Enable power memory during tuning - Habilitar memoria de potencia durante la sintonización + Habilita memoria de potencia durante la sintonización @@ -5781,17 +6091,20 @@ ambos canales. Tx &Macros - &Macros de TX + Macros de T&X + Macros T&X Canned free text messages setup - Configuración de mensajes de texto libres + Configuración de mensajes de texto libres + Ajuste de mensajes de texto libre &Add - &Añadir + &Añadir + &Agregar @@ -5806,38 +6119,39 @@ Click, SHIFT+Click and, CRTL+Click to select items Arrastra y suelta elementos para reorganizar el orden Haz clic derecho para acciones específicas del artículo. Clic, Mayúsculas+Clic y, CTRL+Clic para seleccionar elementos. - Arrastra y suelta elementos para reorganizar el orden + Arrastre y suelte elementos para reorganizar el orden Clic derecho para acciones específicas del elemento. Clic, Mayús+Clic y CTRL+Clic para seleccionar elementos. Reportin&g - Informe&s + Informe&s + &Reportes Reporting and logging settings - Ajuste de informes y logs + Ajuste de informes y logs + Ajustes de reportes y gaurdado de logs Logging Registros - Log + Guardado de log The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. El programa mostrará un cuadro de diálogo Log QSO parcialmente completado cuando envíe un mensaje de texto 73 o libre. - El programa mostrará un cuadro de diálogo con datos del QSO parcialmente -completados cuando envíe un 73 o mensaje de texto libre. + El programa mostrará un cuadro de diálogo con datos del QSO parcialmente completados cuando envíe un 73 o mensaje de texto libre. Promp&t me to log QSO Regis&tra el QSO - Preguntarme para guardar el QSO + Pregun&tarme para guardar el QSO @@ -5856,6 +6170,7 @@ Marca esta opción para guardar los informes enviados y recibidos en el campo de comentarios. Algunos libros de guardia no aceptan el tipo de reportes guardados por este programa. + Marca esta opción para guardar los reportes enviados y recibidos en el campo de comentarios. @@ -5863,7 +6178,7 @@ el campo de comentarios. d&B reports to comments Informes de los d&B en los comentarios - Guardar reportes d&B en los comentarios + Guardar reportes d&B en los comentarios @@ -5871,14 +6186,14 @@ el campo de comentarios. and DX Grid fields when a 73 or free text message is sent. Marca esta opción para forzar la eliminación de los campos Llamada DX y Locator/Grid DX cuando se envía un mensaje de texto 73 o libre. - Marca esta opción para eliminar los campos -Indicativo DX y Locator DX cuando se envíe un 73 o un mensaje de texto libre. + Marca esta opción para eliminar los campos Indicativo DX y +Locator DX cuando se envíe un 73 o un mensaje de texto libre. Clear &DX call and grid after logging Borrar la Llamada &DX y Locator/Grid después del registro - Borrar Indicativo &DX y locator después de guardado el QSO + Borrar Indicativo &DX y Locator DX después de guardado el QSO @@ -5899,13 +6214,13 @@ Indicativo DX y Locator DX cuando se envíe un 73 o un mensaje de texto libre. <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> <html><head/><body><p>Marca para que los QSO's se registren automáticamente, cuando se completen.</p></body></html> - <html><head/><body><p>Marca para que los QSO's se guarden automáticamente, cuando se completen.</p></body></html> + <html><head/><body><p>Marca para que los QSO's se guarden automáticamente, cuando se completen.</p></body></html> Log automatically (contesting only) Log automático (sólo concursos) - Guardar QSO automáticamente (sólo concursos) + Guardar QSO automáticamente (sólo concursos) @@ -5922,16 +6237,17 @@ for assessing propagation and system performance. señales decodificadas como puntos en el sitio web http://pskreporter.info. Esto se utiliza para el análisis de baliza inversa que es muy útil para evaluar la propagación y el rendimiento del sistema. - Este programa puede enviar los detalles de su estación y todas las + Este programa puede enviar los detalles de su estación y todas las señales decodificadas como "spots" a la página web http://pskreporter.info. -Esto se utiliza para el análisis de "reverse beacon" que es muy útil + +Esto se utiliza para el análisis de "reverse beacon", lo cual es muy útil para evaluar la propagación y el rendimiento del sistema. Enable &PSK Reporter Spotting Activa &PSK Reporter - Activar "spotting" en &PSK Reporter + Activar "spotting" en &PSK Reporter @@ -5946,7 +6262,7 @@ para evaluar la propagación y el rendimiento del sistema. <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> - <html><head/><body><p>Nombre del host opcional del servicio de red para recibir decodificaciones.</p><p>Formatos:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">nombre de host</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección del grupo de multidifusión IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección del grupo de multidifusión IPv6</li></ul><p>Borrar este campo deshabilitará la transmisión de actualizaciones de estado UDP.</p></body></html> + <html><head/><body><p>"Hostname" del servicio de red para recibir decodificaciones.</p><p>Formatos:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4 multicast</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6 multicast</li></ul><p>Borrar este campo deshabilitará la transmisión de actualizaciones de estado UDP.</p></body></html> @@ -5956,13 +6272,14 @@ para evaluar la propagación y el rendimiento del sistema. <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> - <html><head/><body><p>Introduce el número de puerto del servicio del servidor UDP al que WSJT-X debe enviar actualizaciones. Si esto es cero, no se transmitirán actualizaciones.</p></body></html> + <html><head/><body><p>Introduce el número de puerto del servicio del servidor UDP al que WSJT-X debe enviar actualizaciones. Si esto es cero, no se transmitirán actualizaciones.</p></body></html> + <html><head/><body><p>Escriba el número del puerto del servidor UDP al que WSJT-X debe enviar actualizaciones. Si este es cero, no se transmitirán actualizaciones.</p></body></html> <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p>Con esto habilitado, WSJT-X aceptará ciertas solicitudes de un servidor UDP que recibe mensajes de decodificación.</p></body></html> - <html><head/><body><p>Si se habilita, WSJT-X aceptará ciertas solicitudes de un servidor UDP que recibe mensajes decodificados.</p></body></html> + <html><head/><body><p>Si se habilita, WSJT-X aceptará ciertas solicitudes de un servidor UDP que recibe mensajes decodificados.</p></body></html> @@ -5973,7 +6290,7 @@ para evaluar la propagación y el rendimiento del sistema. <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p>Indica la aceptación de una solicitud UDP entrante. El efecto de esta opción varía según el sistema operativo y el administrador de ventanas, su intención es notificar la aceptación de una solicitud UDP entrante, incluso si esta aplicación está minimizada u oculta.</p></body></html> - <html><head/><body><p>Indica la aceptación de una solicitud UDP entrante. El efecto de esta opción varía según el sistema operativo y el "Window Manager", su intención es notificar la aceptación de una solicitud UDP entrante, incluso si esta aplicación está minimizada u oculta.</p></body></html> + <html><head/><body><p>Indica la aceptación de una solicitud UDP entrante. El efecto de esta opción varía según el sistema operativo y el "Window Manager", su intención es notificar la aceptación de una solicitud UDP entrante, incluso si esta aplicación está minimizada u oculta.</p></body></html> @@ -5988,7 +6305,8 @@ para evaluar la propagación y el rendimiento del sistema. Accepted UDP request restores window - La solicitud UDP aceptada restaura la ventana + La solicitud UDP aceptada restaura la ventana + Una solicitud UDP aceptada restaura la ventana @@ -5999,13 +6317,13 @@ para evaluar la propagación y el rendimiento del sistema. <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p>Cuando se marca, WSJT-X transmitirá un contacto registrado en formato ADIF al nombre de host y puerto configurados. </p></body></html> - <html><head/><body><p>Si se marca , WSJT-X difundirá el contacto guardado, en formato ADIF, al servidor y puerto configurados. </p></body></html> + <html><head/><body><p>Si se marca , WSJT-X difundirá el contacto guardado, en formato ADIF, al servidor y puerto configurados. </p></body></html> Enable logged contact ADIF broadcast Habilita la transmisión ADIF de contacto registrado - Habilita transmisión ADIF de contacto guardado + Habilita transmisión ADIF de contacto guardado @@ -6015,7 +6333,7 @@ para evaluar la propagación y el rendimiento del sistema. <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> - <html><head/><body><p>Nombre de host opcional del programa N1MM Logger + para recibir transmisiones ADIF UDP. Esto suele ser 'localhost' o dirección IP 127.0.0.1</p><p>Formatos:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección de grupo de multidifusión IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">dirección de grupo de multidifusión IPv6</li></ul><p>Borrar este campo deshabilitará la transmisión de información ADIF a través de UDP.</p></body></html> + <html><head/><body><p>"Hostname" del programa N1MM Logger + donde se recibirán las transmisiones ADIF UDP. Este suele ser 'localhost' o dirección IP 127.0.0.1</p><p>Formatos:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4 multicast</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6 multicast</li></ul><p>Borrar este campo deshabilitará la transmisión de información ADIF a través de UDP.</p></body></html> @@ -6025,7 +6343,8 @@ para evaluar la propagación y el rendimiento del sistema. <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> - <html><head/><body><p>Introduce el número de puerto que WSJT-X debe usar para las transmisiones UDP de información de registro ADIF. Para N1MM Logger +, este valor debe ser 2333. Si es cero, no se transmitirán actualizaciones.</p></body></html> + <html><head/><body><p>Introduce el número de puerto que WSJT-X debe usar para las transmisiones UDP de información de registro ADIF. Para N1MM Logger +, este valor debe ser 2333. Si es cero, no se transmitirán actualizaciones.</p></body></html> + <html><head/><body><p>Escriba el número de puerto que WSJT-X debe usar para las transmisiones UDP del log ADIF guardado. Para N1MM Logger + este valor debe ser 2333. Si es cero, no se transmitirán actualizaciones.</p></body></html> @@ -6035,12 +6354,14 @@ para evaluar la propagación y el rendimiento del sistema. Default frequencies and band specific station details setup - Configuración predeterminada de las frecuencias y banda con detalles específicos de la estación + Configuración predeterminada de las frecuencias y banda con detalles específicos de la estación + Ajustes de frecuencias predeterminada y detalles de especificos de la banda <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> - <html><head/><body><p>Ver&quot;Calibración de Frecuencia&quot;en la Guía de usuario de WSJT-X para obtener detalles sobre cómo determinar estos parámetros para tú equipo.</p></body></html> + <html><head/><body><p>Ver&quot;Calibración de Frecuencia&quot;en la Guía de usuario de WSJT-X para obtener detalles sobre cómo determinar estos parámetros para tú equipo.</p></body></html> + <html><head/><body><p>Ver "Calibración de Frecuencia" en la Guía de usuario de WSJT-X para obtener detalles sobre cómo determinar estos parámetros para el equipo.</p></body></html> @@ -6051,7 +6372,7 @@ para evaluar la propagación y el rendimiento del sistema. Slope: Pendiente: - Cadencia: + Cadencia: @@ -6062,7 +6383,7 @@ para evaluar la propagación y el rendimiento del sistema. Intercept: Interceptar: - Intercepción: + Intercepción: @@ -6077,7 +6398,8 @@ para evaluar la propagación y el rendimiento del sistema. <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> - <html><head/><body><p>Haz clic derecho para mantener la lista de frecuencias de trabajo.</p></body></html> + <html><head/><body><p>Haz clic derecho para mantener la lista de frecuencias de trabajo.</p></body></html> + <html><head/><body><p>Clic derecho para mantener la lista de frecuencias de trabajo.</p></body></html> @@ -6090,7 +6412,7 @@ para evaluar la propagación y el rendimiento del sistema. Right click for insert and delete options. Se pueden editar ítems. Haz clic derecho para insertar y eliminar opciones. - Se puede editar elementos. + Se puede editar elementos. Clic derecho para insertar y eliminar opciones. @@ -6106,13 +6428,14 @@ Clic derecho para insertar y eliminar opciones. <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - <html><head/><body><p>Haz clic para escanear el archivo ADIF wsjtx_log.adi nuevamente para obtener información trabajada antes</p></body></html> + <html><head/><body><p>Haz clic para escanear el archivo ADIF wsjtx_log.adi nuevamente para obtener información trabajada antes</p></body></html> + <html><head/><body><p>Clic para procesar nuevamente el archivo ADIF wsjtx_log.adi para obtener información de estaciones trabajadas anteriormente</p></body></html> Rescan ADIF Log Escaneo de nuevo el log ADIF - Procesar nuevamente log ADIF + Procesar nuevamente log ADIF @@ -6134,7 +6457,7 @@ Clic derecho para insertar y eliminar opciones. <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>Marca para indicar nuevas entidades DXCC, Locator y indicativos por modo.</p></body></html> - <html><head/><body><p>Marcar para indicar nueva entidad DXCC, locator e indicativos por modo.</p></body></html> + <html><head/><body><p>Marcar para indicar nueva entidad DXCC, locator e indicativos por modo.</p></body></html> @@ -6150,35 +6473,37 @@ Clic derecho para insertar y eliminar opciones. Check to for grid highlighting to only apply to unworked grid fields Marca para que el resaltado de Locator sólo se aplique a los campos de Locator no trabajados - Marcar para que el resaltado de locator sólo se aplique a los campos no trabajados + Marcar para que el resaltado de locator sólo se aplique a los no trabajados Only grid Fields sought Solo campos de Locator/Grid buscados - Solo campos de locator buscados + Solo campos de locator buscados <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>Controles para la búsqueda de usuarios de Logbook of the World (LoTW).</p></body></html> - <html><head/><body><p>Búsqueda de usuarios de LoTW.</p></body></html> + <html><head/><body><p>Búsqueda de usuarios de LoTW.</p></body></html> Logbook of the World User Validation - Validación de Usuario de Logbook of the World (LoTW) + Validación de Usuario de Logbook of the World (LoTW) + Validación de usuario de LoTW Users CSV file URL: URL del archivo CSV de los usuarios: - Enlace del archivo CSV de los usuarios: + Enlace del archivo CSV de los usuarios: <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> - <html><head/><body><p>URL del último archivo de datos de fechas y horas de carga de ARRL LotW que se utiliza para resaltar decodificaciones de estaciones que se sabe que cargan su archivo de log a LotW.</p></body></html> + <html><head/><body><p>URL del último archivo de datos de fechas y horas de carga de ARRL LotW que se utiliza para resaltar decodificaciones de estaciones que se sabe que cargan su archivo de log a LotW.</p></body></html> + <html><head/><body><p>Enlace del último archivo con fechas y horas de subidas de usuarios del LoTW, que se utiliza para resaltar decodificaciones de estaciones que suben su log al LoTW.</p></body></html> @@ -6189,7 +6514,7 @@ Clic derecho para insertar y eliminar opciones. <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>Presiona este botón para obtener el último archivo de datos de fecha y hora de carga de los usuarios de LotW.</p></body></html> - <html><head/><body><p>Presionar este botón para descargar archivo de LoTW con la última fecha/hora de subida de los usuarios.</p></body></html> + <html><head/><body><p>Presionar este botón para descargar archivo de LoTW con la última fecha/hora de subida de los usuarios.</p></body></html> @@ -6200,12 +6525,13 @@ Clic derecho para insertar y eliminar opciones. Age of last upload less than: Edad de la última carga inferior a: - Fecha última subida a LoTW inferior a: + Fecha última subida a LoTW inferior a: <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> - <html><head/><body><p>Ajusta este cuadro de selección para establecer el umbral de edad de la última fecha de carga del usuario de LotW que se acepta como usuario actual de LotW.</p></body></html> + <html><head/><body><p>Ajusta este cuadro de selección para establecer el umbral de edad de la última fecha de carga del usuario de LotW que se acepta como usuario actual de LotW.</p></body></html> + <html><head/><body><p>Ajusta este cuadro de selección para establecer la última fecha de subida de logs del usuario de LoTW.</p></body></html> @@ -6226,7 +6552,7 @@ Clic derecho para insertar y eliminar opciones. JT65 VHF/UHF/Microwave decoding parameters Parámetros de decodificación JT65 VHF/UHF/Microondas - Parámetros decodificación JT65 VHF/UHF/Microondas + Parámetros decodificación JT65 VHF/UHF/Microondas @@ -6236,7 +6562,8 @@ Clic derecho para insertar y eliminar opciones. <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> - <html><head/><body><p>El número máximo de patrones de borrado para el decodificador estoico de decisión suave Reed Solomon es 10^(n/2).</p></body></html> + <html><head/><body><p>El número máximo de patrones de borrado para el decodificador estoico de decisión suave Reed Solomon es 10^(n/2).</p></body></html> + <html><head/><body><p>El número máximo de patrones de borrado para el decodificador linear Reed Solomon es 10^(n/2).</p></body></html> @@ -6246,36 +6573,37 @@ Clic derecho para insertar y eliminar opciones. <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> - <html><head/><body><p>Los niveles más altos aumentarán la probabilidad de decodificación, pero también aumentarán la probabilidad de una decodificación falsa.</p></body></html> + <html><head/><body><p>Los niveles más altos aumentarán la probabilidad de decodificación, pero también aumentarán la probabilidad de una decodificación falsa.</p></body></html> + <html><head/><body><p>Los niveles más altos aumentarán la probabilidad de decodificación, pero también aumentarán la probabilidad de una falsa decodificación.</p></body></html> Two-pass decoding Decodificación de dos pasos - Decodificación en dos pasos + Decodificación en dos pasos Special operating activity: Generation of FT4, FT8, and MSK144 messages Actividad operativa especial: generación de mensajes FT4, FT8 y MSK144 - Actividad operativa especial: Generación de mensajes FT4, FT8 y MSK144 + Actividad operativa especial: Generación de mensajes FT4, FT8 y MSK144 <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: operador Hound llamando al DX.</p></body></html> - <html><head/><body><p>Modo FT8 DXpedition: Operador "Hound" llamando al DX.</p></body></html> + <html><head/><body><p>Modo FT8 DXpedition: Operador "Hound" llamando al DX.</p></body></html> Hound - Hound + "Hound" <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>Concursos norteamericanos de VHF/UHF/microondas y otros en los que se requiere un locator de 4 caracteres.</p></body></html> - <html><head/><body><p>Concursos VHF/UHF/Microondas de norteamérica y otros en los cuales se requiere un intercambio de locator de 4 caracteres.</p></body></html> + <html><head/><body><p>Concursos VHF/UHF/Microondas de norteamérica y otros en los cuales se requiere un intercambio de locator de 4 caracteres.</p></body></html> @@ -6286,37 +6614,38 @@ Clic derecho para insertar y eliminar opciones. <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: operador FOX (DXpedition).</p></body></html> - <html><head/><body><p>Modo FT8 DXpedition: Operador "FOX" (DXpedition).</p></body></html> + <html><head/><body><p>Modo FT8 DXpedition: Operador "FOX" (DXpedition).</p></body></html> Fox - Fox + Fox + "Fox" <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>Concursos europeos de VHF y superiores que requieren un informe de señal, número de serie y locator de 6 caracteres.</p></body></html> - <html><head/><body><p>Concursos europeos de VHF y concursos que requieran reporte de señal, número de serie y locator de 6 caracteres.</p></body></html> + <html><head/><body><p>Concursos europeos de VHF y concursos que requieran reporte de señal, número de serie y locator de 6 caracteres.</p></body></html> EU VHF Contest Concurso EU de VHF - Concurso EU VHF + Concurso EU VHF <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>Resumen de ARRL RTTY y concursos similares. El intercambio es el estado de EE.UU., La provincia canadiense o &quot;DX&quot;.</p></body></html> - <html><head/><body><p>ARRL RTTY Roundup y concursos similares. Intercambio, estado de EE.UU., provincia de Canadá o "DX".</p></body></html> + <html><head/><body><p>ARRL RTTY Roundup y concursos similares. Intercambio, estado de EE.UU., provincia de Canadá o "DX".</p></body></html> RTTY Roundup messages Mensajes de resumen de RTTY - RTTY Roundup + Mesnajes para e lRTTY Roundup @@ -6333,7 +6662,7 @@ Clic derecho para insertar y eliminar opciones. <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>Intercambio de ARRL Field Day: número de transmisores, clase y sección ARRL/RAC o &quot;DX&quot;.</p></body></html> - <html><head/><body><p>ARRL Field Day (intercambio): número de transmisores, "Class" y sección ARRL/RAC o "DX".</p></body></html> + <html><head/><body><p>Intercambiio para el ARRL Field Day: número de transmisores, "Class" y sección ARRL/RAC o "DX".</p></body></html> @@ -6354,19 +6683,19 @@ Clic derecho para insertar y eliminar opciones. <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>Concurso World-Wide Digi-mode</p><p><br/></p></body></html> - <html><head/><body><p>Concurso World-Wide Digi DX</p><p><br/></p></body></html> + <html><head/><body><p>Concurso World-Wide Digi DX</p><p><br/></p></body></html> WW Digi Contest Concurso WW Digi - Concurso WW Digi DX + Concurso WW Digi DX Miscellaneous Diverso - Otros + Otros @@ -6417,7 +6746,8 @@ Clic derecho para insertar y eliminar opciones. <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> - <html><head/><body><p>Genera el audio de TX con el doble del espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 2 antes de generar RF.</p></body></html> + <html><head/><body><p>Genera el audio de TX con el doble del espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 2 antes de generar RF.</p></body></html> + <html><head/><body><p>Genera audio de TX con el doble del espaciado del tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 2 antes de generar RF.</p></body></html> @@ -6427,7 +6757,8 @@ Clic derecho para insertar y eliminar opciones. <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> - <html><head/><body><p>Genera el audio de TX con cuatro veces el espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 4 antes de generar RF.</p></body></html> + <html><head/><body><p>Genera el audio de TX con cuatro veces el espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 4 antes de generar RF.</p></body></html> + <html><head/><body><p>Genera audio de TX con cuatro veces el espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 4 antes de generar RF.</p></body></html> @@ -6437,7 +6768,8 @@ Clic derecho para insertar y eliminar opciones. Waterfall spectra - Espectros de la cascada + Espectros de la cascada + Espectro de la cascada (waterfall) @@ -6460,106 +6792,122 @@ Clic derecho para insertar y eliminar opciones. main - + Fatal error Error fatal - + Unexpected fatal error Error fatal inesperado + Where <rig-name> is for multi-instance support. - Dónde <rig-name> es para soporte de múltiples instancias. + Dónde <rig-name> es para soporte de múltiples instancias. + Dónde <rig-name> es para soporte múlti instancias. + rig-name No se puede traducir esta parte, es parte del código rig-name + Where <configuration> is an existing one. - Dónde <configuration> es ya existente. + Dónde <configuration> es ya existente. + Dónde <configuration> es una ya existente. + configuration - Ajustes + Ajustes + configuración + Where <language> is <lang-code>[-<country-code>]. - Dónde <language> es <lang-code>[-<country-code>]. + Dónde <language> es <lang-code>[-<country-code>]. + language - "I" minúscula + Idioma idioma + Writable files in test location. Use with caution, for testing only. - Archivos grabables en la ubicación de prueba. Usa con precaución, solo para pruebas. + Archivos grabables en la ubicación de prueba. Usa con precaución, solo para pruebas. + Archivos escribibles en la ubicación de prueba. Usa con precaución, solo para pruebas. + Command line error - Error de línea de comando - - - Command line help - Ayuda de la línea de comandos - - - Application version - Versión de la aplicación + Error de línea de comando + Command line help + Ayuda de la línea de comandos + + + + Application version + Versión de la aplicación + + + Another instance may be running Otra instancia puede estar ejecutándose - + try to remove stale lock file? - ¿intentas eliminar el archivo de bloqueo obsoleto? + ¿intentas eliminar el archivo de bloqueo obsoleto? + ¿intentar eliminar el archivo de bloqueo? - + Failed to create a temporary directory Error al crear un directorio temporal - - + + Path: "%1" Ruta: "%1" - + Failed to create a usable temporary directory - Error al crear un directorio temporal utilizable + Error al crear un directorio temporal utilizable + Error al crear un directorio temporal - + Another application may be locking the directory Otra aplicación puede estar bloqueando el directorio - + Failed to create data directory Error al crear el directorio de datos - + path: "%1" ruta: "%1" - + Shared memory error Error de memoria compartida - + Unable to create shared memory segment No se puede crear un segmento de memoria compartida @@ -6569,13 +6917,13 @@ Clic derecho para insertar y eliminar opciones. Palette Designer - Diseñador de paleta - Diseñador de Paleta + Diseñador de paleta <html><head/><body><p>Double click a color to edit it.</p><p>Right click to insert or delete colors.</p><p>Colors at the top represent weak signals</p><p>and colors at the bottom represent strong</p><p>signals. You can have up to 256 colors.</p></body></html> - <html><head/><body><p>Haz doble clic en un color para editarlo.</p><p>Haz clic derecho para insertar o eliminar colores.</p><p>Los colores en la parte superior representan señales débiles</p><p>y los colores en la parte inferior representan señales fuertes</p><p>Puedes tener hasta 256 colores.</p></body></html> + <html><head/><body><p>Haz doble clic en un color para editarlo.</p><p>Haz clic derecho para insertar o eliminar colores.</p><p>Los colores en la parte superior representan señales débiles</p><p>y los colores en la parte inferior representan señales fuertes</p><p>Puedes tener hasta 256 colores.</p></body></html> + <html><head/><body><p>Doble clic en un color para editarlo.</p><p>Clic derecho para insertar o eliminar colores.</p><p>Los colores en la parte superior representan señales débiles</p><p>y los colores en la parte inferior representan señales fuertes</p><p>Puedes utilizar hasta 256 colores.</p></body></html> From 9c22b5c3ed8d50b9b027754c778d4db6593f7dd1 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 13 Jun 2020 16:04:41 +0100 Subject: [PATCH 062/520] Qt v5.15 compatibility --- Audio/tools/record_time_signal.cpp | 88 ++++++++-- CMakeLists.txt | 10 +- Decoder/decodedtext.cpp | 5 +- DisplayManual.cpp | 2 + Modulator/Modulator.cpp | 8 + Network/LotWUsers.cpp | 2 + Network/MessageClient.cpp | 6 + Network/psk_reporter.cpp | 7 + Network/wsprnet.cpp | 2 + SampleDownloader/RemoteFile.cpp | 2 + TraceFile.cpp | 7 +- Transceiver/HRDTransceiver.cpp | 21 +-- UDPExamples/MessageServer.cpp | 7 + WFPalette.cpp | 8 +- getfile.cpp | 9 + killbyname.cpp | 16 +- logbook/WorkedBefore.cpp | 16 +- logbook/logbook.cpp | 16 +- main.cpp | 2 + models/FoxLog.cpp | 4 + qcustomplot-source/qcustomplot.cpp | 60 +++++-- qt_helpers.hpp | 6 + widgets/ExportCabrillo.cpp | 8 +- widgets/astro.cpp | 4 + widgets/logqso.cpp | 24 ++- widgets/mainwindow.cpp | 262 +++++++++++++++++++---------- widgets/mainwindow.h | 7 +- 27 files changed, 459 insertions(+), 150 deletions(-) diff --git a/Audio/tools/record_time_signal.cpp b/Audio/tools/record_time_signal.cpp index 6a78a0a2c..a54c78c65 100644 --- a/Audio/tools/record_time_signal.cpp +++ b/Audio/tools/record_time_signal.cpp @@ -67,16 +67,34 @@ public: private: Q_SLOT void start_recording () { - qtout << "started recording at " << QDateTime::currentDateTimeUtc ().toString ("hh:mm:ss.zzz UTC") << endl; + qtout << "started recording at " << QDateTime::currentDateTimeUtc ().toString ("hh:mm:ss.zzz UTC") +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; source_.start (output_); if (!notify_interval_) QTimer::singleShot (duration_ * 1000, Qt::PreciseTimer, this, &Record::stop_recording); - qtout << QString {"buffer size used is: %1"}.arg (source_.bufferSize ()) << endl; + qtout << QString {"buffer size used is: %1"}.arg (source_.bufferSize ()) +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; } Q_SLOT void notify () { auto length = source_.elapsedUSecs (); - qtout << QString {"%1 μs recorded\r"}.arg (length) << flush; + qtout << QString {"%1 μs recorded\r"}.arg (length) +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + << Qt::flush +#else + << flush +#endif + ; if (length >= duration_ * 1000 * 1000) stop_recording (); } @@ -85,7 +103,13 @@ private: auto length = source_.elapsedUSecs (); source_.stop (); qtout << QString {"%1 μs recorded "}.arg (length) << '(' << source_.format ().framesForBytes (output_->size ()) << " frames recorded)\n"; - qtout << "stopped recording at " << QDateTime::currentDateTimeUtc ().toString ("hh:mm:ss.zzz UTC") << endl; + qtout << "stopped recording at " << QDateTime::currentDateTimeUtc ().toString ("hh:mm:ss.zzz UTC") +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; Q_EMIT done (); } @@ -134,15 +158,33 @@ public: private: Q_SLOT void start_playback () { - qtout << "started playback at " << QDateTime::currentDateTimeUtc ().toString ("hh:mm:ss.zzz UTC") << endl; + qtout << "started playback at " << QDateTime::currentDateTimeUtc ().toString ("hh:mm:ss.zzz UTC") +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; sink_.start (input_); - qtout << QString {"buffer size used is: %1 (%2 frames)"}.arg (sink_.bufferSize ()).arg (sink_.format ().framesForBytes (sink_.bufferSize ())) << endl; + qtout << QString {"buffer size used is: %1 (%2 frames)"}.arg (sink_.bufferSize ()).arg (sink_.format ().framesForBytes (sink_.bufferSize ())) +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; } Q_SLOT void notify () { auto length = sink_.elapsedUSecs (); - qtout << QString {"%1 μs rendered\r"}.arg (length) << flush; + qtout << QString {"%1 μs rendered\r"}.arg (length) << +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + Qt::flush +#else + flush +#endif + ; } Q_SLOT void sink_state_changed (QAudio::State state) @@ -175,7 +217,13 @@ private: auto length = sink_.elapsedUSecs (); sink_.stop (); qtout << QString {"%1 μs rendered "}.arg (length) << '(' << sink_.format ().framesForBytes (input_->size ()) << " frames rendered)\n"; - qtout << "stopped playback at " << QDateTime::currentDateTimeUtc ().toString ("hh:mm:ss.zzz UTC") << endl; + qtout << "stopped playback at " << QDateTime::currentDateTimeUtc ().toString ("hh:mm:ss.zzz UTC") +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; Q_EMIT done (); } @@ -258,7 +306,13 @@ int main(int argc, char *argv[]) int n {0}; for (auto const& device : input_devices) { - qtout << ++n << " - [" << device.deviceName () << ']' << endl; + qtout << ++n << " - [" << device.deviceName () << ']' +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; } return 0; } @@ -269,7 +323,13 @@ int main(int argc, char *argv[]) int n {0}; for (auto const& device : output_devices) { - qtout << ++n << " - [" << device.deviceName () << ']' << endl; + qtout << ++n << " - [" << device.deviceName () << ']' +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; } return 0; } @@ -352,7 +412,13 @@ int main(int argc, char *argv[]) auto source = input_device ? input_devices[input_device - 1] : QAudioDeviceInfo::defaultInputDevice (); if (!source.isFormatSupported (audio_format)) { - qtout << "warning, requested format not supported, using nearest" << endl; + qtout << "warning, requested format not supported, using nearest" +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; audio_format = source.nearestFormat (audio_format); } BWFFile output_file {audio_format, ofi.filePath ()}; diff --git a/CMakeLists.txt b/CMakeLists.txt index a54983a5b..ca25c3a08 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -887,7 +887,7 @@ message (STATUS "hamlib_LIBRARY_DIRS: ${hamlib_LIBRARY_DIRS}") # # Widgets finds its own dependencies. -find_package (Qt5 COMPONENTS Widgets Multimedia PrintSupport Sql LinguistTools REQUIRED) +find_package (Qt5 COMPONENTS Widgets SerialPort Multimedia PrintSupport Sql LinguistTools REQUIRED) if (WIN32) add_definitions (-DQT_NEEDS_QTMAIN) @@ -1381,9 +1381,9 @@ set_target_properties (wsjtx PROPERTIES target_include_directories (wsjtx PRIVATE ${FFTW3_INCLUDE_DIRS}) if (APPLE) - target_link_libraries (wsjtx wsjt_fort wsjt_cxx wsjt_qt wsjt_qtmm ${hamlib_LIBRARIES} ${FFTW3_LIBRARIES}) + target_link_libraries (wsjtx Qt5::SerialPort wsjt_fort wsjt_cxx wsjt_qt wsjt_qtmm ${hamlib_LIBRARIES} ${FFTW3_LIBRARIES}) else () - target_link_libraries (wsjtx wsjt_fort_omp wsjt_cxx wsjt_qt wsjt_qtmm ${hamlib_LIBRARIES} ${FFTW3_LIBRARIES}) + target_link_libraries (wsjtx Qt5::SerialPort wsjt_fort_omp wsjt_cxx wsjt_qt wsjt_qtmm ${hamlib_LIBRARIES} ${FFTW3_LIBRARIES}) if (OpenMP_C_FLAGS) set_target_properties (wsjtx PROPERTIES COMPILE_FLAGS "${OpenMP_C_FLAGS}" @@ -1399,7 +1399,6 @@ else () ) endif () endif () -qt5_use_modules (wsjtx SerialPort) # not sure why the interface link library syntax above doesn't work # make a library for WSJT-X UDP servers # add_library (wsjtx_udp SHARED ${UDP_library_CXXSRCS}) @@ -1419,8 +1418,7 @@ set_target_properties (wsjtx_udp-static PROPERTIES OUTPUT_NAME wsjtx_udp ) target_compile_definitions (wsjtx_udp-static PUBLIC UDP_STATIC_DEFINE) -#qt5_use_modules (wsjtx_udp Network) -qt5_use_modules (wsjtx_udp-static Network Gui) +target_link_libraries (wsjtx_udp-static Qt5::Network Qt5::Gui) generate_export_header (wsjtx_udp-static BASE_NAME udp) add_executable (udp_daemon UDPExamples/UDPDaemon.cpp UDPExamples/udp_daemon.rc ${WSJTX_ICON_FILE}) diff --git a/Decoder/decodedtext.cpp b/Decoder/decodedtext.cpp index 7d5a57e84..6e2f359e4 100644 --- a/Decoder/decodedtext.cpp +++ b/Decoder/decodedtext.cpp @@ -3,6 +3,7 @@ #include #include #include +#include "qt_helpers.hpp" extern "C" { bool stdmsg_(char const * msg, fortran_charlen_t); @@ -58,7 +59,7 @@ QStringList DecodedText::messageWords () const return words_re.match(t).capturedTexts(); } // simple word split for free text messages - auto words = message_.split (' ', QString::SkipEmptyParts); + auto words = message_.split (' ', SkipEmptyParts); // add whole message as item 0 to mimic RE capture list words.prepend (message_); return words; @@ -122,7 +123,7 @@ bool DecodedText::report(QString const& myBaseCall, QString const& dxBaseCall, / { if (message_.size () < 1) return false; - QStringList const& w = message_.split(" ",QString::SkipEmptyParts); + QStringList const& w = message_.split(" ", Qt::SkipEmptyParts); if (w.size () && is_standard_ && (w[0] == myBaseCall || w[0].endsWith ("/" + myBaseCall) diff --git a/DisplayManual.cpp b/DisplayManual.cpp index 155c22006..c5b9021b4 100644 --- a/DisplayManual.cpp +++ b/DisplayManual.cpp @@ -49,10 +49,12 @@ public: void display (QUrl const& url, QString const& name_we) { +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) if (QNetworkAccessManager::Accessible != qnam_->networkAccessible ()) { // try and recover network access for QNAM qnam_->setNetworkAccessible (QNetworkAccessManager::Accessible); } +#endif // try and find a localized manual auto lang = QLocale::system ().name (); diff --git a/Modulator/Modulator.cpp b/Modulator/Modulator.cpp index ca9942e98..e527ce3e1 100644 --- a/Modulator/Modulator.cpp +++ b/Modulator/Modulator.cpp @@ -2,6 +2,9 @@ #include #include #include +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) +#include +#endif #include #include "widgets/mainwindow.h" // TODO: G4WJS - break this dependency #include "Audio/soundout.h" @@ -278,8 +281,13 @@ qint64 Modulator::readData (char * data, qint64 maxSize) int j=m_ic/480; if(m_fSpread>0.0 and j!=m_j0) { +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + float x1=QRandomGenerator::global ()->generateDouble (); + float x2=QRandomGenerator::global ()->generateDouble (); +#else float x1=(float)qrand()/RAND_MAX; float x2=(float)qrand()/RAND_MAX; +#endif toneFrequency = m_toneFrequency0 + 0.5*m_fSpread*(x1+x2-1.0); m_dphi = m_twoPi * toneFrequency / m_frameRate; m_j0=j; diff --git a/Network/LotWUsers.cpp b/Network/LotWUsers.cpp index fd1b5746c..4e8024010 100644 --- a/Network/LotWUsers.cpp +++ b/Network/LotWUsers.cpp @@ -69,11 +69,13 @@ public: void download (QUrl url) { +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) if (QNetworkAccessManager::Accessible != network_manager_->networkAccessible ()) { // try and recover network access for QNAM network_manager_->setNetworkAccessible (QNetworkAccessManager::Accessible); } +#endif QNetworkRequest request {url}; request.setRawHeader ("User-Agent", "WSJT LotW User Downloader"); diff --git a/Network/MessageClient.cpp b/Network/MessageClient.cpp index ddf269564..d33b2a636 100644 --- a/Network/MessageClient.cpp +++ b/Network/MessageClient.cpp @@ -423,6 +423,7 @@ MessageClient::MessageClient (QString const& id, QString const& version, QString : QObject {self} , m_ {id, version, revision, server_port, this} { +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) connect (&*m_, static_cast (&impl::error) , [this] (impl::SocketError e) { @@ -441,6 +442,11 @@ MessageClient::MessageClient (QString const& id, QString const& version, QString Q_EMIT error (m_->errorString ()); } }); +#else + connect (&*m_, &impl::errorOccurred, [this] (impl::SocketError) { + Q_EMIT error (m_->errorString ()); + }); +#endif set_server (server); } diff --git a/Network/psk_reporter.cpp b/Network/psk_reporter.cpp index e84b5a921..f84da5ecd 100644 --- a/Network/psk_reporter.cpp +++ b/Network/psk_reporter.cpp @@ -7,6 +7,9 @@ #include #include +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) +#include +#endif #include "Network/MessageClient.hpp" @@ -43,7 +46,11 @@ PSK_Reporter::PSK_Reporter(MessageClient * message_client, QObject *parent) : "00960004"; // Report time +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) m_randomId_h = QString("%1").arg(qrand(),8,16,QChar('0')); +#else + m_randomId_h = QString("%1").arg(QRandomGenerator::global ()->generate (), 8, 16, QChar('0')); +#endif QHostInfo::lookupHost("report.pskreporter.info", this, SLOT(dnsLookupResult(QHostInfo))); diff --git a/Network/wsprnet.cpp b/Network/wsprnet.cpp index 9e666088b..cdfed7683 100644 --- a/Network/wsprnet.cpp +++ b/Network/wsprnet.cpp @@ -208,10 +208,12 @@ QString WSPRNet::urlEncodeSpot(QHash const& query) void WSPRNet::work() { if (!urlQueue.isEmpty()) { +#if QT_VERSION < QT_VERSION_CHECK (5, 15, 0) if (QNetworkAccessManager::Accessible != networkManager->networkAccessible ()) { // try and recover network access for QNAM networkManager->setNetworkAccessible (QNetworkAccessManager::Accessible); } +#endif QUrl url(urlQueue.dequeue()); QNetworkRequest request(url); m_outstandingRequests << networkManager->get(request); diff --git a/SampleDownloader/RemoteFile.cpp b/SampleDownloader/RemoteFile.cpp index e5b4d2cd9..72d1ddbd4 100644 --- a/SampleDownloader/RemoteFile.cpp +++ b/SampleDownloader/RemoteFile.cpp @@ -121,10 +121,12 @@ bool RemoteFile::sync (QUrl const& url, bool local, bool force) void RemoteFile::download (QUrl url) { +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) if (QNetworkAccessManager::Accessible != network_manager_->networkAccessible ()) { // try and recover network access for QNAM network_manager_->setNetworkAccessible (QNetworkAccessManager::Accessible); } +#endif if (url.isValid () && (!QSslSocket::supportsSsl () || http_only_)) { diff --git a/TraceFile.cpp b/TraceFile.cpp index 87d4a82bb..22284d9b1 100644 --- a/TraceFile.cpp +++ b/TraceFile.cpp @@ -78,7 +78,12 @@ void TraceFile::impl::message_handler (QtMsgType type, QMessageLogContext const& Q_ASSERT_X (current_stream_, "TraceFile:message_handler", "no stream to write to"); { QMutexLocker lock {&mutex_}; // thread safety - serialize writes to the trace file - *current_stream_ << qFormatLogMessage (type, context, msg) << endl; + *current_stream_ << qFormatLogMessage (type, context, msg) << +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + endl; +#else + Qt::endl; +#endif } if (QtFatalMsg == type) diff --git a/Transceiver/HRDTransceiver.cpp b/Transceiver/HRDTransceiver.cpp index d471a5100..e81128b9c 100644 --- a/Transceiver/HRDTransceiver.cpp +++ b/Transceiver/HRDTransceiver.cpp @@ -10,6 +10,7 @@ #include #include "Network/NetworkServerLookup.hpp" +#include "qt_helpers.hpp" namespace { @@ -167,7 +168,7 @@ int HRDTransceiver::do_start () HRD_info << "Id: " << id << "\n"; HRD_info << "Version: " << version << "\n"; - auto radios = send_command ("get radios", false, false).trimmed ().split (',', QString::SkipEmptyParts); + auto radios = send_command ("get radios", false, false).trimmed ().split (',', Qt::SkipEmptyParts); if (radios.isEmpty ()) { TRACE_CAT ("HRDTransceiver", "no rig found"); @@ -178,7 +179,7 @@ int HRDTransceiver::do_start () Q_FOREACH (auto const& radio, radios) { HRD_info << "\t" << radio << "\n"; - auto entries = radio.trimmed ().split (':', QString::SkipEmptyParts); + auto entries = radio.trimmed ().split (':', Qt::SkipEmptyParts); radios_.push_back (std::forward_as_tuple (entries[0].toUInt (), entries[1])); } @@ -202,11 +203,11 @@ int HRDTransceiver::do_start () HRD_info << "VFO count: " << vfo_count_ << "\n"; TRACE_CAT ("HRDTransceiver", "vfo count:" << vfo_count_); - buttons_ = send_command ("get buttons").trimmed ().split (',', QString::SkipEmptyParts).replaceInStrings (" ", "~"); + buttons_ = send_command ("get buttons").trimmed ().split (',', Qt::SkipEmptyParts).replaceInStrings (" ", "~"); TRACE_CAT ("HRDTransceiver", "HRD Buttons: " << buttons_); HRD_info << "Buttons: {" << buttons_.join (", ") << "}\n"; - dropdown_names_ = send_command ("get dropdowns").trimmed ().split (',', QString::SkipEmptyParts); + dropdown_names_ = send_command ("get dropdowns").trimmed ().split (',', Qt::SkipEmptyParts); TRACE_CAT ("HRDTransceiver", "Dropdowns:"); HRD_info << "Dropdowns:\n"; Q_FOREACH (auto const& dd, dropdown_names_) @@ -217,12 +218,12 @@ int HRDTransceiver::do_start () dropdowns_[dd] = selections; } - slider_names_ = send_command ("get sliders").trimmed ().split (',', QString::SkipEmptyParts).replaceInStrings (" ", "~"); + slider_names_ = send_command ("get sliders").trimmed ().split (',', Qt::SkipEmptyParts).replaceInStrings (" ", "~"); TRACE_CAT ("HRDTransceiver", "Sliders:-"); HRD_info << "Sliders:\n"; Q_FOREACH (auto const& s, slider_names_) { - auto range = send_command ("get slider-range " + current_radio_name + " " + s).trimmed ().split (',', QString::SkipEmptyParts); + auto range = send_command ("get slider-range " + current_radio_name + " " + s).trimmed ().split (',', Qt::SkipEmptyParts); TRACE_CAT ("HRDTransceiver", "\t" << s << ": {" << range.join (", ") << "}"); HRD_info << "\t" << s << ": {" << range.join (", ") << "}\n"; sliders_[s] = range; @@ -601,7 +602,7 @@ void HRDTransceiver::do_frequency (Frequency f, MODE m, bool /*no_ignore*/) auto fo_string = QString::number (f); if (vfo_count_ > 1 && reversed_) { - auto frequencies = send_command ("get frequencies").trimmed ().split ('-', QString::SkipEmptyParts); + auto frequencies = send_command ("get frequencies").trimmed ().split ('-', Qt::SkipEmptyParts); send_simple_command ("set frequencies-hz " + QString::number (frequencies[0].toUInt ()) + ' ' + fo_string); } else @@ -687,14 +688,14 @@ void HRDTransceiver::do_tx_frequency (Frequency tx, MODE mode, bool /*no_ignore* { Q_ASSERT (vfo_count_ > 1); - auto frequencies = send_command ("get frequencies").trimmed ().split ('-', QString::SkipEmptyParts); + auto frequencies = send_command ("get frequencies").trimmed ().split ('-', Qt::SkipEmptyParts); send_simple_command ("set frequencies-hz " + fo_string + ' ' + QString::number (frequencies[1].toUInt ())); } else { if (vfo_count_ > 1) { - auto frequencies = send_command ("get frequencies").trimmed ().split ('-', QString::SkipEmptyParts); + auto frequencies = send_command ("get frequencies").trimmed ().split ('-', Qt::SkipEmptyParts); send_simple_command ("set frequencies-hz " + QString::number (frequencies[0].toUInt ()) + ' ' + fo_string); } else if ((vfo_B_button_ >= 0 && vfo_A_button_ >= 0) || vfo_toggle_button_ >= 0) @@ -986,7 +987,7 @@ void HRDTransceiver::do_poll () if (vfo_count_ > 1) { - auto frequencies = send_command ("get frequencies", quiet).trimmed ().split ('-', QString::SkipEmptyParts); + auto frequencies = send_command ("get frequencies", quiet).trimmed ().split ('-', Qt::SkipEmptyParts); update_rx_frequency (frequencies[reversed_ ? 1 : 0].toUInt ()); update_other_frequency (frequencies[reversed_ ? 0 : 1].toUInt ()); } diff --git a/UDPExamples/MessageServer.cpp b/UDPExamples/MessageServer.cpp index ce7cd6fb9..59907d521 100644 --- a/UDPExamples/MessageServer.cpp +++ b/UDPExamples/MessageServer.cpp @@ -39,11 +39,18 @@ public: Radio::register_types (); connect (this, &QIODevice::readyRead, this, &MessageServer::impl::pending_datagrams); +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) connect (this, static_cast (&impl::error) , [this] (SocketError /* e */) { Q_EMIT self_->error (errorString ()); }); +#else + connect (this, &impl::errorOccurred, [this] (SocketError /* e */) + { + Q_EMIT self_->error (errorString ()); + }); +#endif connect (clock_, &QTimer::timeout, this, &impl::tick); clock_->start (NetworkMessage::pulse * 1000); } diff --git a/WFPalette.cpp b/WFPalette.cpp index 1dd65fd24..d7d8a5e64 100644 --- a/WFPalette.cpp +++ b/WFPalette.cpp @@ -242,7 +242,13 @@ namespace QTextStream stream {&file}; Q_FOREACH (auto colour, colours_) { - stream << colour.red () << ';' << colour.green () << ';' << colour.blue () << endl; + stream << colour.red () << ';' << colour.green () << ';' << colour.blue () << +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + endl +#else + Qt::endl +#endif + ; } } else diff --git a/getfile.cpp b/getfile.cpp index b59a094a7..8cc6cedc2 100644 --- a/getfile.cpp +++ b/getfile.cpp @@ -1,5 +1,9 @@ #include "getfile.h" #include +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) +#include +#include +#endif #include #include #include @@ -171,6 +175,10 @@ void savewav(QString fname, int ntrperiod) /* Generate gaussian random float with mean=0 and std_dev=1 */ float gran() { +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + static std::normal_distribution d; + return d (*QRandomGenerator::global ()); +#else float fac,rsq,v1,v2; static float gset; static int iset; @@ -192,6 +200,7 @@ float gran() gset = v1*fac; iset++; return v2*fac; +#endif } int ptt(int nport, int ntx, int* iptt, int* nopen) diff --git a/killbyname.cpp b/killbyname.cpp index 3fe8841e2..d5a664aaa 100644 --- a/killbyname.cpp +++ b/killbyname.cpp @@ -84,12 +84,12 @@ int killbyname(const char *szToTerminate) if(hInstLib == NULL) return 605; // Get procedure addresses. - lpfEnumProcesses = (BOOL(WINAPI *)(DWORD *,DWORD,DWORD*)) + lpfEnumProcesses = (BOOL(WINAPI *)(DWORD *,DWORD,DWORD*))(void (*)()) GetProcAddress( hInstLib, "EnumProcesses" ) ; lpfEnumProcessModules = (BOOL(WINAPI *)(HANDLE, HMODULE *, - DWORD, LPDWORD)) GetProcAddress( hInstLib, "EnumProcessModules" ) ; + DWORD, LPDWORD))(void (*)()) GetProcAddress( hInstLib, "EnumProcessModules" ) ; lpfGetModuleBaseName =(DWORD (WINAPI *)(HANDLE, HMODULE, LPTSTR, - DWORD )) GetProcAddress( hInstLib, "GetModuleBaseNameA" ) ; + DWORD ))(void (*)()) GetProcAddress( hInstLib, "GetModuleBaseNameA" ) ; if(lpfEnumProcesses == NULL || lpfEnumProcessModules == NULL || lpfGetModuleBaseName == NULL) { @@ -164,20 +164,20 @@ int killbyname(const char *szToTerminate) // which does not have the Toolhelp32 // functions in the Kernel 32. lpfCreateToolhelp32Snapshot= - (HANDLE(WINAPI *)(DWORD,DWORD)) + (HANDLE(WINAPI *)(DWORD,DWORD))(void (*)()) GetProcAddress( hInstLib, "CreateToolhelp32Snapshot" ) ; lpfProcess32First= - (BOOL(WINAPI *)(HANDLE,LPPROCESSENTRY32)) + (BOOL(WINAPI *)(HANDLE,LPPROCESSENTRY32))(void (*)()) GetProcAddress( hInstLib, "Process32First" ) ; lpfProcess32Next= - (BOOL(WINAPI *)(HANDLE,LPPROCESSENTRY32)) + (BOOL(WINAPI *)(HANDLE,LPPROCESSENTRY32))(void (*)()) GetProcAddress( hInstLib, "Process32Next" ) ; lpfModule32First= - (BOOL(WINAPI *)(HANDLE,LPMODULEENTRY32)) + (BOOL(WINAPI *)(HANDLE,LPMODULEENTRY32))(void (*)()) GetProcAddress( hInstLib, "Module32First" ) ; lpfModule32Next= - (BOOL(WINAPI *)(HANDLE,LPMODULEENTRY32)) + (BOOL(WINAPI *)(HANDLE,LPMODULEENTRY32))(void (*)()) GetProcAddress( hInstLib, "Module32Next" ) ; if( lpfProcess32Next == NULL || lpfProcess32First == NULL || diff --git a/logbook/WorkedBefore.cpp b/logbook/WorkedBefore.cpp index a1d774e4e..438243d42 100644 --- a/logbook/WorkedBefore.cpp +++ b/logbook/WorkedBefore.cpp @@ -442,9 +442,21 @@ bool WorkedBefore::add (QString const& call QTextStream out {&file}; if (!file.size ()) { - out << "WSJT-X ADIF Export" << endl; // new file + out << "WSJT-X ADIF Export" << // new file +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + endl +#else + Qt::endl +#endif + ; } - out << ADIF_record << " " << endl; + out << ADIF_record << " " << +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + endl +#else + Qt::endl +#endif + ; } m_->worked_.emplace (call.toUpper (), grid.left (4).toUpper (), band.toUpper (), mode.toUpper () , entity.entity_name, entity.continent, entity.CQ_zone, entity.ITU_zone); diff --git a/logbook/logbook.cpp b/logbook/logbook.cpp index 96a8cb8e3..316901f9d 100644 --- a/logbook/logbook.cpp +++ b/logbook/logbook.cpp @@ -103,7 +103,13 @@ QByteArray LogBook::QSOToADIF (QString const& hisCall, QString const& hisGrid, Q if(operator_call!="") t+=" " + operator_call; if (xSent.size ()) { - auto words = xSent.split (' ', QString::SkipEmptyParts); + auto words = xSent.split (' ' +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + , QString::SkipEmptyParts +#else + , Qt::SkipEmptyParts +#endif + ); if (words.size () > 1) { if (words.back ().toUInt ()) @@ -126,7 +132,13 @@ QByteArray LogBook::QSOToADIF (QString const& hisCall, QString const& hisGrid, Q } } if (xRcvd.size ()) { - auto words = xRcvd.split (' ', QString::SkipEmptyParts); + auto words = xRcvd.split (' ' +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + , QString::SkipEmptyParts +#else + , Qt::SkipEmptyParts +#endif + ); if (words.size () == 2) { if (words.at (1).toUInt ()) diff --git a/main.cpp b/main.cpp index bce897adf..4943f2f02 100644 --- a/main.cpp +++ b/main.cpp @@ -49,6 +49,7 @@ extern "C" { namespace { +#if QT_VERSION < QT_VERSION_CHECK (5, 15, 0) struct RNGSetup { RNGSetup () @@ -58,6 +59,7 @@ namespace qsrand (seed); // this is good for rand() as well } } seeding; +#endif // We can't use the GUI after QApplication::exit() is called so // uncaught exceptions can get lost on Windows systems where there diff --git a/models/FoxLog.cpp b/models/FoxLog.cpp index 3ba7d2c23..01ce0c409 100644 --- a/models/FoxLog.cpp +++ b/models/FoxLog.cpp @@ -274,5 +274,9 @@ void FoxLog::export_qsos (QTextStream& out) const << ADIF_field {"operator", m_->configuration_->opCall ()} << ""; } +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) out << endl; +#else + out << Qt::endl; +#endif } diff --git a/qcustomplot-source/qcustomplot.cpp b/qcustomplot-source/qcustomplot.cpp index d51ccde7a..375fc57aa 100644 --- a/qcustomplot-source/qcustomplot.cpp +++ b/qcustomplot-source/qcustomplot.cpp @@ -4766,7 +4766,7 @@ Qt::Alignment QCPLayoutInset::insetAlignment(int index) const else { qDebug() << Q_FUNC_INFO << "Invalid element index:" << index; - return 0; + return Qt::Alignment {}; } } @@ -6013,11 +6013,13 @@ double QCPAxisTickerDateTime::dateTimeToKey(const QDateTime dateTime) */ double QCPAxisTickerDateTime::dateTimeToKey(const QDate date) { -# if QT_VERSION < QT_VERSION_CHECK(4, 7, 0) +#if QT_VERSION < QT_VERSION_CHECK(4, 7, 0) return QDateTime(date).toTime_t(); -# else +#elif QT_VERSION < QT_VERSION_CHECK(5, 14, 0) return QDateTime(date).toMSecsSinceEpoch()/1000.0; -# endif +#else + return date.startOfDay().toMSecsSinceEpoch()/1000.0; +#endif } /* end of 'src/axis/axistickerdatetime.cpp' */ @@ -6499,7 +6501,11 @@ void QCPAxisTickerText::addTick(double position, QString label) */ void QCPAxisTickerText::addTicks(const QMap &ticks) { +# if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) mTicks.unite(ticks); +#else + mTicks.insert(ticks); +#endif } /*! \overload @@ -12598,9 +12604,11 @@ QCustomPlot::QCustomPlot(QWidget *parent) : mBufferDevicePixelRatio(1.0), // will be adapted to primary screen below mPlotLayout(0), mAutoAddPlottableToLegend(true), +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) mAntialiasedElements(QCP::aeNone), mNotAntialiasedElements(QCP::aeNone), mInteractions(0), +#endif mSelectionTolerance(8), mNoAntialiasingOnDrag(false), mBackgroundBrush(Qt::white, Qt::SolidPattern), @@ -12617,7 +12625,9 @@ QCustomPlot::QCustomPlot(QWidget *parent) : mReplotting(false), mReplotQueued(false), mOpenGlMultisamples(16), +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) mOpenGlAntialiasedElementsBackup(QCP::aeNone), +#endif mOpenGlCacheLabelsBackup(true) { setAttribute(Qt::WA_NoMousePropagation); @@ -14668,7 +14678,15 @@ void QCustomPlot::wheelEvent(QWheelEvent *event) { emit mouseWheel(event); // forward event to layerable under cursor: - QList candidates = layerableListAt(event->pos(), false); + QList candidates = layerableListAt( +#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) + event->pos() +#elif QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + event->posF() +#else + event->position() +#endif + , false); for (int i=0; iaccept(); // default impl of QCPLayerable's mouse events ignore the event, in that case propagate to next candidate in list @@ -15002,7 +15020,7 @@ void QCustomPlot::processRectSelection(QRect rect, QMouseEvent *event) if (mInteractions.testFlag(QCP::iSelectPlottables)) { - QMap > potentialSelections; // map key is number of selected data points, so we have selections sorted by size + QMultiMap > potentialSelections; // map key is number of selected data points, so we have selections sorted by size QRectF rectF(rect.normalized()); if (QCPAxisRect *affectedAxisRect = axisRectAt(rectF.topLeft())) { @@ -15013,7 +15031,7 @@ void QCustomPlot::processRectSelection(QRect rect, QMouseEvent *event) { QCPDataSelection dataSel = plottableInterface->selectTestRect(rectF, true); if (!dataSel.isEmpty()) - potentialSelections.insertMulti(dataSel.dataPointCount(), QPair(plottable, dataSel)); + potentialSelections.insert(dataSel.dataPointCount(), QPair(plottable, dataSel)); } } @@ -15022,7 +15040,7 @@ void QCustomPlot::processRectSelection(QRect rect, QMouseEvent *event) // only leave plottable with most selected points in map, since we will only select a single plottable: if (!potentialSelections.isEmpty()) { - QMap >::iterator it = potentialSelections.begin(); + QMultiMap >::iterator it = potentialSelections.begin(); while (it != potentialSelections.end()-1) // erase all except last element it = potentialSelections.erase(it); } @@ -15048,7 +15066,7 @@ void QCustomPlot::processRectSelection(QRect rect, QMouseEvent *event) } // go through selections in reverse (largest selection first) and emit select events: - QMap >::const_iterator it = potentialSelections.constEnd(); + QMultiMap >::const_iterator it = potentialSelections.constEnd(); while (it != potentialSelections.constBegin()) { --it; @@ -17619,14 +17637,24 @@ void QCPAxisRect::wheelEvent(QWheelEvent *event) if (mRangeZoom != 0) { double factor; +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) double wheelSteps = event->delta()/120.0; // a single step delta is +/-120 usually +#else + double wheelSteps = event->angleDelta().y()/120.0; // a single step delta is +/-120 usually +#endif if (mRangeZoom.testFlag(Qt::Horizontal)) { factor = qPow(mRangeZoomFactorHorz, wheelSteps); for (int i=0; iscaleRange(factor, mRangeZoomHorzAxis.at(i)->pixelToCoord(event->pos().x())); + mRangeZoomHorzAxis.at(i)->scaleRange(factor, mRangeZoomHorzAxis.at(i)->pixelToCoord( +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + event->posF().x() +#else + event->position().x() +#endif + )); } } if (mRangeZoom.testFlag(Qt::Vertical)) @@ -17635,7 +17663,13 @@ void QCPAxisRect::wheelEvent(QWheelEvent *event) for (int i=0; iscaleRange(factor, mRangeZoomVertAxis.at(i)->pixelToCoord(event->pos().y())); + mRangeZoomVertAxis.at(i)->scaleRange(factor, mRangeZoomVertAxis.at(i)->pixelToCoord( +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + event->posF().y() +#else + event->position().y() +#endif + )); } } mParentPlot->replot(); @@ -19262,7 +19296,7 @@ void QCPColorScale::setRangeDrag(bool enabled) if (enabled) mAxisRect.data()->setRangeDrag(QCPAxis::orientation(mType)); else - mAxisRect.data()->setRangeDrag(0); + mAxisRect.data()->setRangeDrag(Qt::Orientations()); } /*! @@ -19282,7 +19316,7 @@ void QCPColorScale::setRangeZoom(bool enabled) if (enabled) mAxisRect.data()->setRangeZoom(QCPAxis::orientation(mType)); else - mAxisRect.data()->setRangeZoom(0); + mAxisRect.data()->setRangeZoom(Qt::Orientations()); } /*! diff --git a/qt_helpers.hpp b/qt_helpers.hpp index bdb7cc935..33f501437 100644 --- a/qt_helpers.hpp +++ b/qt_helpers.hpp @@ -51,6 +51,12 @@ return QString {mo.enumerator (mo.indexOfEnumerator (#ENUM)).valueToKey (static_cast (m))}; \ } +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) +Qt::SplitBehaviorFlags const SkipEmptyParts = Qt::SkipEmptyParts; +#else +QString::SplitBehavior const SkipEmptyParts = QString::SkipEmptyParts; +#endif + inline void throw_qstring (QString const& qs) { diff --git a/widgets/ExportCabrillo.cpp b/widgets/ExportCabrillo.cpp index 5fb54c7dc..9a20d7568 100644 --- a/widgets/ExportCabrillo.cpp +++ b/widgets/ExportCabrillo.cpp @@ -99,7 +99,13 @@ void ExportCabrillo::save_log () << "ADDRESS: " << ui->addr_1_line_edit->text() << '\n' << "ADDRESS: " << ui->addr_2_line_edit->text() << '\n'; if (log_) log_->export_qsos (out); - out << "END-OF-LOG:" << endl; + out << "END-OF-LOG:" +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; return; } else { auto const& message = tr ("Cannot open \"%1\" for writing: %2") diff --git a/widgets/astro.cpp b/widgets/astro.cpp index 8c083a89a..122b86eff 100644 --- a/widgets/astro.cpp +++ b/widgets/astro.cpp @@ -131,7 +131,11 @@ auto Astro::astroUpdate(QDateTime const& t, QString const& mygrid, QString const QTextStream out {&message}; out << " " << date << "\n" "UTC: " << utc << "\n" +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + << Qt::fixed +#else << fixed +#endif << qSetFieldWidth (6) << qSetRealNumberPrecision (1) << "Az: " << azmoon << "\n" diff --git a/widgets/logqso.cpp b/widgets/logqso.cpp index c79133677..187d2618c 100644 --- a/widgets/logqso.cpp +++ b/widgets/logqso.cpp @@ -142,8 +142,20 @@ void LogQSO::accept() } if ((special_op == SpOp::RTTY and xsent!="" and xrcvd!="")) { - if(rptSent=="" or !xsent.contains(rptSent+" ")) rptSent=xsent.split(" ",QString::SkipEmptyParts).at(0); - if(rptRcvd=="" or !xrcvd.contains(rptRcvd+" ")) rptRcvd=xrcvd.split(" ",QString::SkipEmptyParts).at(0); + if(rptSent=="" or !xsent.contains(rptSent+" ")) rptSent=xsent.split(" " +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + , QString::SkipEmptyParts +#else + , Qt::SkipEmptyParts +#endif + ).at(0); + if(rptRcvd=="" or !xrcvd.contains(rptRcvd+" ")) rptRcvd=xrcvd.split(" " +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + , QString::SkipEmptyParts +#else + , Qt::SkipEmptyParts +#endif + ).at(0); } // validate @@ -181,7 +193,13 @@ void LogQSO::accept() "," + rptSent + "," + rptRcvd + "," + m_txPower + "," + m_comments + "," + name; QTextStream out(&f); - out << logEntry << endl; + out << logEntry << +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + endl +#else + Qt::endl +#endif + ; f.close(); } diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index a6ab9c8c2..0ed391faa 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -39,6 +39,9 @@ #include #include #include +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) +#include +#endif #include "revision_utils.hpp" #include "qt_helpers.hpp" @@ -84,7 +87,6 @@ #include "ui_mainwindow.h" #include "moc_mainwindow.cpp" - extern "C" { //----------------------------------------------------- C and Fortran routines void symspec_(struct dec_data *, int* k, int* ntrperiod, int* nsps, int* ingain, @@ -654,16 +656,17 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, subProcessError (&proc_jt9, error); }); #else - connect(&proc_jt9, static_cast (&QProcess::errorOccurred), - [this] (QProcess::ProcessError error) { - subProcessError (&proc_jt9, error); - }); + connect(&proc_jt9, &QProcess::errorOccurred, [this] (QProcess::ProcessError error) { + subProcessError (&proc_jt9, error); + }); #endif connect(&proc_jt9, static_cast (&QProcess::finished), [this] (int exitCode, QProcess::ExitStatus status) { subProcessFailed (&proc_jt9, exitCode, status); }); - + connect(&p1, &QProcess::started, [this] () { + showStatusMessage (QString {"Started: %1 \"%2\""}.arg (p1.program ()).arg (p1.arguments ().join (QLatin1String {"\" \""}))); + }); connect(&p1, &QProcess::readyReadStandardOutput, this, &MainWindow::p1ReadFromStdout); #if QT_VERSION < QT_VERSION_CHECK (5, 6, 0) connect(&p1, static_cast (&QProcess::error), @@ -671,10 +674,9 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, subProcessError (&p1, error); }); #else - connect(&p1, static_cast (&QProcess::errorOccurred), - [this] (QProcess::ProcessError error) { - subProcessError (&p1, error); - }); + connect(&p1, &QProcess::errorOccurred, [this] (QProcess::ProcessError error) { + subProcessError (&p1, error); + }); #endif connect(&p1, static_cast (&QProcess::finished), [this] (int exitCode, QProcess::ExitStatus status) { @@ -687,11 +689,13 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, subProcessError (&p3, error); }); #else - connect(&p3, static_cast (&QProcess::errorOccurred), - [this] (QProcess::ProcessError error) { - subProcessError (&p3, error); - }); + connect(&p3, &QProcess::errorOccurred, [this] (QProcess::ProcessError error) { + subProcessError (&p3, error); + }); #endif + connect(&p3, &QProcess::started, [this] () { + showStatusMessage (QString {"Started: %1 \"%2\""}.arg (p3.program ()).arg (p3.arguments ().join (QLatin1String {"\" \""}))); + }); connect(&p3, static_cast (&QProcess::finished), [this] (int exitCode, QProcess::ExitStatus status) { subProcessFailed (&p3, exitCode, status); @@ -1400,7 +1404,13 @@ void MainWindow::dataSink(qint64 frames) QFile f {m_config.writeable_data_dir ().absoluteFilePath ("fmt.all")}; if (f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { QTextStream out(&f); - out << t << endl; + out << t +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; f.close(); } else { MessageBox::warning_message (this, tr ("File Open Error") @@ -1507,36 +1517,39 @@ void MainWindow::dataSink(qint64 frames) } if(m_mode.startsWith ("WSPR")) { - QString t2,cmnd,depth_string; - double f0m1500=m_dialFreqRxWSPR/1000000.0; // + 0.000001*(m_BFO - 1500); - t2 = t2.asprintf(" -f %.6f ",f0m1500); - if((m_ndepth&7)==1) depth_string=" -qB "; //2 pass w subtract, no Block detection, no shift jittering - if((m_ndepth&7)==2) depth_string=" -C 500 -o 4 "; //3 pass, subtract, Block detection, OSD - if((m_ndepth&7)==3) depth_string=" -C 500 -o 4 -d "; //3 pass, subtract, Block detect, OSD, more candidates - QString degrade; - degrade = degrade.asprintf("-d %4.1f ",m_config.degrade()); - + QStringList t2; + QStringList depth_args; + t2 << "-f" << QString {"%1"}.arg (m_dialFreqRxWSPR / 1000000.0, 0, 'f', 6); + if((m_ndepth&7)==1) depth_args << "-qB"; //2 pass w subtract, no Block detection, no shift jittering + if((m_ndepth&7)==2) depth_args << "-C" << "500" << "-o" << "4"; //3 pass, subtract, Block detection, OSD + if((m_ndepth&7)==3) depth_args << "-C" << "500" << "-o" << "4" << "-d"; //3 pass, subtract, Block detect, OSD, more candidates + QStringList degrade; + degrade << "-d" << QString {"%1"}.arg (m_config.degrade(), 4, 'f', 1); + m_cmndP1.clear (); if(m_diskData) { - cmnd='"' + m_appDir + '"' + "/wsprd " + depth_string + " -a \"" + - QDir::toNativeSeparators(m_config.writeable_data_dir ().absolutePath()) + "\" \"" + m_path + "\""; + m_cmndP1 << depth_args << "-a" + << QDir::toNativeSeparators (m_config.writeable_data_dir ().absolutePath()) << m_path; } else { - if(m_mode=="WSPR-LF") { -// cmnd='"' + m_appDir + '"' + "/wspr_fsk8d " + degrade + t2 +" -a \"" + -// QDir::toNativeSeparators(m_config.writeable_data_dir ().absolutePath()) + "\" " + -// '"' + m_fnameWE + ".wav\""; - } else { - cmnd='"' + m_appDir + '"' + "/wsprd " + depth_string + " -a \"" + - QDir::toNativeSeparators(m_config.writeable_data_dir ().absolutePath()) + "\" " + - t2 + '"' + m_fnameWE + ".wav\""; - } + // if(m_mode=="WSPR-LF") + // { + // m_cmndP1 << degrade << t2 << "-a" + // << QDir::toNativeSeparators (m_config.writeable_data_dir ().absolutePath()) + // << m_fnameWE + ".wav"; + // } + // else + { + m_cmndP1 << depth_args << "-a" + << QDir::toNativeSeparators (m_config.writeable_data_dir ().absolutePath()) + << t2 << m_fnameWE + ".wav"; + } } - QString t3=cmnd; - int i1=cmnd.indexOf("/wsprd "); - cmnd=t3.mid(0,i1+7) + t3.mid(i1+7); + // QString t3=cmnd; + // int i1=cmnd.indexOf("/wsprd "); + // cmnd=t3.mid(0,i1+7) + t3.mid(i1+7); // if(m_mode=="WSPR-LF") cmnd=cmnd.replace("/wsprd ","/wspr_fsk8d "+degrade+t2); if (ui) ui->DecodeButton->setChecked (true); - m_cmndP1=QDir::toNativeSeparators(cmnd); + // m_cmndP1=QDir::toNativeSeparators(cmnd); p1Timer.start(1000); m_decoderBusy = true; statusUpdate (); @@ -1547,7 +1560,14 @@ void MainWindow::dataSink(qint64 frames) void MainWindow::startP1() { - p1.start(m_cmndP1); + // if (m_mode=="WSPR-LF") + // { + // p1.start (QDir::toNativeSeparators (QDir {QApplication::applicationDirPath ()}.absoluteFilePath ("wspr_fsk8d")), m_cmndP1); + // } + // else + { + p1.start (QDir::toNativeSeparators (QDir {QApplication::applicationDirPath ()}.absoluteFilePath ("wsprd")), m_cmndP1); + } } QString MainWindow::save_wave_file (QString const& name, short const * data, int samples, @@ -2184,7 +2204,13 @@ void MainWindow::statusChanged() if (!tmpGrid.size ()) tmpGrid="n/a"; // Not Available out << qSetRealNumberPrecision (12) << (m_freqNominal / 1.e6) << ";" << m_mode << ";" << m_hisCall << ";" - << ui->rptSpinBox->value() << ";" << m_modeTx << ";" << tmpGrid << endl; + << ui->rptSpinBox->value() << ";" << m_modeTx << ";" << tmpGrid +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; f.close(); } else { if (m_splash && m_splash->isVisible ()) m_splash->hide (); @@ -2851,7 +2877,13 @@ void MainWindow::decode() //decode() if( m_dateTimeLastTX.isValid () ) { qint64 isecs_since_tx = m_dateTimeLastTX.secsTo(now); dec_data.params.lapcqonly= (isecs_since_tx > 300); -// QTextStream(stdout) << "last tx " << isecs_since_tx << endl; +// QTextStream(stdout) << "last tx " << isecs_since_tx +// #if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) +// << Qt::endl +// #else +// << endl +// #endif +// ; } else { m_dateTimeLastTX = now.addSecs(-900); dec_data.params.lapcqonly=true; @@ -3240,7 +3272,7 @@ void MainWindow::readFromStdout() //readFromStdout int audioFreq=decodedtext.frequencyOffset(); if(m_mode=="FT8" or m_mode=="FT4") { auto const& parts = decodedtext.string().remove("<").remove(">") - .split (' ', QString::SkipEmptyParts); + .split (' ', SkipEmptyParts); if (parts.size() > 6) { auto for_us = parts[5].contains (m_baseCall) || ("DE" == parts[5] && qAbs (ui->RxFreqSpinBox->value () - audioFreq) <= 10); @@ -3280,7 +3312,7 @@ void MainWindow::readFromStdout() //readFromStdout if(m_mode=="FT8" and SpecOp::HOUND==m_config.special_op_id()) { if(decodedtext.string().contains(";")) { - QStringList w=decodedtext.string().mid(24).split(" ",QString::SkipEmptyParts); + QStringList w=decodedtext.string().mid(24).split(" ",SkipEmptyParts); QString foxCall=w.at(3); foxCall=foxCall.remove("<").remove(">"); if(w.at(0)==m_config.my_callsign() or w.at(0)==Radio::base_callsign(m_config.my_callsign())) { @@ -3296,7 +3328,7 @@ void MainWindow::readFromStdout() //readFromStdout hound_reply (); } } else { - QStringList w=decodedtext.string().mid(24).split(" ",QString::SkipEmptyParts); + QStringList w=decodedtext.string().mid(24).split(" ",SkipEmptyParts); if(decodedtext.string().contains("/")) w.append(" +00"); //Add a dummy report if(w.size()>=3) { QString foxCall=w.at(1); @@ -3384,7 +3416,7 @@ void MainWindow::auto_sequence (DecodedText const& message, unsigned start_toler || message_words.contains ("DE"))) || !message.isStandardMessage ()); // free text 73/RR73 - QStringList w=message.string().mid(22).remove("<").remove(">").split(" ",QString::SkipEmptyParts); + QStringList w=message.string().mid(22).remove("<").remove(">").split(" ",SkipEmptyParts); QString w2; int nrpt=0; if (w.size () > 2) @@ -3665,8 +3697,12 @@ void MainWindow::guiUpdate() else if (SpecOp::HOUND == m_config.special_op_id()) { if(m_auto && !m_tune) { if (ui->TxFreqSpinBox->value() < 999 && m_ntx != 3) { - int nf = (qrand() % 2000) + 1000; // Hound randomized range: 1000-3000 Hz - ui->TxFreqSpinBox->setValue(nf); + // Hound randomized range: 1000-3000 Hz +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + ui->TxFreqSpinBox->setValue (QRandomGenerator::global ()->bounded (1000, 2999)); +#else + ui->TxFreqSpinBox->setValue ((qrand () % 2000) + 1000); +#endif } } if (m_nSentFoxRrpt==2 and m_ntx==3) { @@ -3685,8 +3721,11 @@ void MainWindow::guiUpdate() // If HoldTxFreq is not checked, randomize Fox's Tx Freq // NB: Maybe this should be done no more than once every 5 minutes or so ? if(m_mode=="FT8" and SpecOp::FOX==m_config.special_op_id() and !ui->cbHoldTxFreq->isChecked()) { - int fTx = 300.0 + 300.0*double(qrand())/RAND_MAX; - ui->TxFreqSpinBox->setValue(fTx); +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + ui->TxFreqSpinBox->setValue (QRandomGenerator::global ()->bounded (300, 599)); +#else + ui->TxFreqSpinBox->setValue(300.0 + 300.0*double(qrand())/RAND_MAX); +#endif } setXIT (ui->TxFreqSpinBox->value ()); @@ -3858,7 +3897,7 @@ void MainWindow::guiUpdate() if(SpecOp::FIELD_DAY==m_config.special_op_id() or SpecOp::RTTY==m_config.special_op_id()) { if(m_ntx==2 or m_ntx==3) { - QStringList t=ui->tx2->text().split(' ', QString::SkipEmptyParts); + QStringList t=ui->tx2->text().split(' ', SkipEmptyParts); int n=t.size(); m_xSent=t.at(n-2) + " " + t.at(n-1); } @@ -3893,7 +3932,7 @@ void MainWindow::guiUpdate() auto t2 = QDateTime::currentDateTimeUtc ().toString ("hhmm"); icw[0] = 0; - auto msg_parts = m_currentMessage.split (' ', QString::SkipEmptyParts); + auto msg_parts = m_currentMessage.split (' ', SkipEmptyParts); if (msg_parts.size () > 2) { // clean up short code forms msg_parts[0].remove (QChar {'<'}); @@ -3904,7 +3943,7 @@ void MainWindow::guiUpdate() auto is_73 = m_QSOProgress >= ROGER_REPORT && message_is_73 (m_currentMessageType, msg_parts); m_sentFirst73 = is_73 - && !message_is_73 (m_lastMessageType, m_lastMessageSent.split (' ', QString::SkipEmptyParts)); + && !message_is_73 (m_lastMessageType, m_lastMessageSent.split (' ', SkipEmptyParts)); if (m_sentFirst73) { m_qsoStop=t2; if(m_config.id_after_73 ()) { @@ -4472,7 +4511,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie auto ctrl = modifiers.testFlag (Qt::ControlModifier); // auto alt = modifiers.testFlag (Qt::AltModifier); // basic mode sanity checks - auto const& parts = message.string ().split (' ', QString::SkipEmptyParts); + auto const& parts = message.string ().split (' ', SkipEmptyParts); if (parts.size () < 5) return; auto const& mode = parts.at (4).left (1); if (("JT9+JT65" == m_mode && !("@" == mode || "#" == mode)) @@ -4530,7 +4569,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie ui->dxCallEntry->setText(hiscall); } - QStringList w=message.string().mid(22).remove("<").remove(">").split(" ",QString::SkipEmptyParts); + QStringList w=message.string().mid(22).remove("<").remove(">").split(" ",SkipEmptyParts); int nw=w.size(); if(nw>=4) { if(message_words.size()<3) return; @@ -4622,7 +4661,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie MessageBox::information_message (this, msg); } - QStringList t=message.string().split(' ', QString::SkipEmptyParts); + QStringList t=message.string().split(' ', SkipEmptyParts); int n=t.size(); QString t0=t.at(n-2); QString t1=t0.right(1); @@ -5396,7 +5435,13 @@ void MainWindow::on_addButton_clicked() //Add button } if(f1.size()==0) { QTextStream out(&f1); - out << "ZZZZZZ" << endl; + out << "ZZZZZZ" +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; f1.close(); f1.open(QIODevice::ReadOnly | QIODevice::Text); } @@ -6975,7 +7020,13 @@ void MainWindow::handle_transceiver_update (Transceiver::TransceiverState const& QTextStream out(&f2); out << QDateTime::currentDateTimeUtc().toString("yyyy-MM-dd hh:mm") << " " << qSetRealNumberPrecision (12) << (m_freqNominal / 1.e6) << " MHz " - << m_mode << endl; + << m_mode +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; f2.close(); } else { MessageBox::warning_message (this, tr ("File Error") @@ -7553,7 +7604,7 @@ void MainWindow::replayDecodes () // appended info if (message.size() >= 4 && message.left (4) != "----") { - auto const& parts = message.split (' ', QString::SkipEmptyParts); + auto const& parts = message.split (' ', SkipEmptyParts); if (parts.size () >= 5 && parts[3].contains ('.')) // WSPR { postWSPRDecode (false, parts); @@ -7571,7 +7622,7 @@ void MainWindow::replayDecodes () void MainWindow::postDecode (bool is_new, QString const& message) { auto const& decode = message.trimmed (); - auto const& parts = decode.left (22).split (' ', QString::SkipEmptyParts); + auto const& parts = decode.left (22).split (' ', SkipEmptyParts); if (parts.size () >= 5) { auto has_seconds = parts[0].size () > 4; @@ -7644,9 +7695,11 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout ui->DecodeButton->setChecked (false); if(m_uploadSpots && m_config.is_transceiver_online ()) { // need working rig control - float x=qrand()/((double)RAND_MAX + 1.0); - int msdelay=20000*x; - uploadTimer.start(msdelay); //Upload delay +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + uploadTimer.start(QRandomGenerator::global ()->bounded (0, 20000)); // Upload delay +#else + uploadTimer.start(20000 * qrand()/((double)RAND_MAX + 1.0)); // Upload delay +#endif } else { QFile f(QDir::toNativeSeparators(m_config.writeable_data_dir ().absolutePath()) + "/wspr_spots.txt"); if(f.exists()) f.remove(); @@ -7746,7 +7799,13 @@ void MainWindow::WSPR_history(Frequency dialFreq, int ndecodes) QFile f {m_config.writeable_data_dir ().absoluteFilePath ("WSPR_history.txt")}; if (f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { QTextStream out(&f); - out << t1 << endl; + out << t1 +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; f.close(); } else { MessageBox::warning_message (this, tr ("File Error") @@ -7836,18 +7895,22 @@ void MainWindow::WSPR_scheduling () if (hop_data.frequencies_index_ >= 0) { // new band ui->bandComboBox->setCurrentIndex (hop_data.frequencies_index_); on_bandComboBox_activated (hop_data.frequencies_index_); - m_cmnd.clear (); QStringList prefixes {".bat", ".cmd", ".exe", ""}; + QString target; for (auto const& prefix : prefixes) { - auto const& path = m_appDir + "/user_hardware" + prefix; - QFile f {path}; - if (f.exists ()) { - m_cmnd = QDir::toNativeSeparators (f.fileName ()) + ' ' + - m_config.bands ()->find (m_freqNominal).remove ('m'); + target = QDir {m_appDir}.absoluteFilePath (QLatin1String {"user_hardware"}); + QFileInfo f {target + prefix}; + if (f.isExecutable ()) { + break; } } - if(m_cmnd!="") p3.start(m_cmnd); // Execute user's hardware controller + if (target.size ()) + { + // Execute user's hardware controller + p3.start(QDir::toNativeSeparators (target) + , QStringList {m_config.bands ()->find (m_freqNominal).remove ('m')}); + } // Produce a short tuneup signal m_tuneup = false; @@ -8173,7 +8236,13 @@ void MainWindow::write_transmit_entry (QString const& file_name) out << time.toString("yyMMdd_hhmmss") << " Transmitting " << qSetRealNumberPrecision (12) << (m_freqNominal / 1.e6) << " MHz " << m_modeTx - << ": " << m_currentMessage << endl; + << ": " << m_currentMessage +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; f.close(); } else @@ -8261,7 +8330,7 @@ QString MainWindow::sortHoundCalls(QString t, int isort, int max_dB) QString msg,houndCall,t1; QString ABC{"ABCDEFGHIJKLMNOPQRSTUVWXYZ _"}; QList list; - int i,j,k,m,n,nlines; + int i,j,k,n,nlines; bool bReverse=(isort >= 3); isort=qAbs(isort); @@ -8278,20 +8347,20 @@ QString MainWindow::sortHoundCalls(QString t, int isort, int max_dB) j=0; t=""; for(auto a: map.keys()) { - t1=map[a].split(" ",QString::SkipEmptyParts).at(2); + t1=map[a].split(" ",SkipEmptyParts).at(2); int nsnr=t1.toInt(); // get snr if(nsnr <= max_dB) { // keep only if snr in specified range if(isort==1) t += map[a] + "\n"; if(isort==3 or isort==4) { i=2; // sort Hound calls by snr if(isort==4) i=4; // sort Hound calls by distance - t1=map[a].split(" ",QString::SkipEmptyParts).at(i); + t1=map[a].split(" ",SkipEmptyParts).at(i); n=1000*(t1.toInt()+100) + j; // pack (snr or dist) and index j into n list.insert(j,n); // add n to list at [j] } if(isort==2) { // sort Hound calls by grid - t1=map[a].split(" ",QString::SkipEmptyParts).at(1); + t1=map[a].split(" ",SkipEmptyParts).at(1); if(t1=="....") t1="ZZ99"; int i1=ABC.indexOf(t1.mid(0,1)); int i2=ABC.indexOf(t1.mid(1,1)); @@ -8328,11 +8397,13 @@ QString MainWindow::sortHoundCalls(QString t, int isort, int max_dB) a[i]=i; } for(i=nn-1; i>-1; i--) { +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + j = (i + 1) * QRandomGenerator::global ()->generateDouble (); +#else j=(i+1)*double(qrand())/RAND_MAX; - m=a[j]; - a[j]=a[i]; - a[i]=m; - t += lines2.at(m) + "\n"; +#endif + std::swap (a[j], a[i]); + t += lines2.at(a[i]) + "\n"; } } @@ -8356,13 +8427,13 @@ void MainWindow::selectHound(QString line) */ if(line.length()==0) return; - QString houndCall=line.split(" ",QString::SkipEmptyParts).at(0); + QString houndCall=line.split(" ",SkipEmptyParts).at(0); // Don't add a call already enqueued or in QSO if(ui->textBrowser4->toPlainText().indexOf(houndCall) >= 0) return; - QString houndGrid=line.split(" ",QString::SkipEmptyParts).at(1); // Hound caller's grid - QString rpt=line.split(" ",QString::SkipEmptyParts).at(2); // Hound SNR + QString houndGrid=line.split(" ",SkipEmptyParts).at(1); // Hound caller's grid + QString rpt=line.split(" ",SkipEmptyParts).at(2); // Hound SNR m_houndCallers=m_houndCallers.remove(line+"\n"); // Remove t from sorted Hound list m_nSortedHounds--; @@ -8726,9 +8797,20 @@ void MainWindow::writeFoxQSO(QString const& msg) QFile f {m_config.writeable_data_dir ().absoluteFilePath ("FoxQSO.txt")}; if (f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { QTextStream out(&f); - out << QDateTime::currentDateTimeUtc().toString("yyyy-MM-dd hh:mm:ss") - << " " << fixed << qSetRealNumberPrecision (3) << (m_freqNominal/1.e6) - << t << msg << endl; + out << QDateTime::currentDateTimeUtc().toString("yyyy-MM-dd hh:mm:ss") << " " +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + << Qt::fixed +#else + << fixed +#endif + << qSetRealNumberPrecision (3) << (m_freqNominal/1.e6) + << t << msg +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; f.close(); } else { MessageBox::warning_message (this, tr("File Open Error"), @@ -8855,7 +8937,13 @@ void MainWindow::write_all(QString txRx, QString message) QFile f{m_config.writeable_data_dir().absoluteFilePath(file_name)}; if (f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { QTextStream out(&f); - out << line << endl; + out << line +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + << Qt::endl +#else + << endl +#endif + ; f.close(); } else { auto const& message2 = tr ("Cannot open \"%1\" for append: %2") diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 82f879fcd..6da871b37 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -3,6 +3,8 @@ #define MAINWINDOW_H #include +#include +#include #include #include #include @@ -605,8 +607,7 @@ private: QString m_rptRcvd; QString m_qsoStart; QString m_qsoStop; - QString m_cmnd; - QString m_cmndP1; + QStringList m_cmndP1; QString m_msgSent0; QString m_calls; QString m_CQtype; @@ -713,7 +714,7 @@ private: void pskPost(DecodedText const& decodedtext); void displayDialFrequency (); void transmitDisplay (bool); - void processMessage(DecodedText const&, Qt::KeyboardModifiers = 0); + void processMessage(DecodedText const&, Qt::KeyboardModifiers = Qt::NoModifier); void replyToCQ (QTime, qint32 snr, float delta_time, quint32 delta_frequency, QString const& mode, QString const& message_text, bool low_confidence, quint8 modifiers); void locationChange(QString const& location); void replayDecodes (); From 713aad70570bc2ed1f270fee5a29c42c8915c97a Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 14 Jun 2020 12:35:48 +0100 Subject: [PATCH 063/520] Qt v5.15 and backwards compatibility --- Decoder/decodedtext.cpp | 2 +- Transceiver/HRDTransceiver.cpp | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Decoder/decodedtext.cpp b/Decoder/decodedtext.cpp index 6e2f359e4..e476ecb9b 100644 --- a/Decoder/decodedtext.cpp +++ b/Decoder/decodedtext.cpp @@ -123,7 +123,7 @@ bool DecodedText::report(QString const& myBaseCall, QString const& dxBaseCall, / { if (message_.size () < 1) return false; - QStringList const& w = message_.split(" ", Qt::SkipEmptyParts); + QStringList const& w = message_.split(" ", SkipEmptyParts); if (w.size () && is_standard_ && (w[0] == myBaseCall || w[0].endsWith ("/" + myBaseCall) diff --git a/Transceiver/HRDTransceiver.cpp b/Transceiver/HRDTransceiver.cpp index e81128b9c..a9403ef30 100644 --- a/Transceiver/HRDTransceiver.cpp +++ b/Transceiver/HRDTransceiver.cpp @@ -168,7 +168,7 @@ int HRDTransceiver::do_start () HRD_info << "Id: " << id << "\n"; HRD_info << "Version: " << version << "\n"; - auto radios = send_command ("get radios", false, false).trimmed ().split (',', Qt::SkipEmptyParts); + auto radios = send_command ("get radios", false, false).trimmed ().split (',', SkipEmptyParts); if (radios.isEmpty ()) { TRACE_CAT ("HRDTransceiver", "no rig found"); @@ -179,7 +179,7 @@ int HRDTransceiver::do_start () Q_FOREACH (auto const& radio, radios) { HRD_info << "\t" << radio << "\n"; - auto entries = radio.trimmed ().split (':', Qt::SkipEmptyParts); + auto entries = radio.trimmed ().split (':', SkipEmptyParts); radios_.push_back (std::forward_as_tuple (entries[0].toUInt (), entries[1])); } @@ -203,11 +203,11 @@ int HRDTransceiver::do_start () HRD_info << "VFO count: " << vfo_count_ << "\n"; TRACE_CAT ("HRDTransceiver", "vfo count:" << vfo_count_); - buttons_ = send_command ("get buttons").trimmed ().split (',', Qt::SkipEmptyParts).replaceInStrings (" ", "~"); + buttons_ = send_command ("get buttons").trimmed ().split (',', SkipEmptyParts).replaceInStrings (" ", "~"); TRACE_CAT ("HRDTransceiver", "HRD Buttons: " << buttons_); HRD_info << "Buttons: {" << buttons_.join (", ") << "}\n"; - dropdown_names_ = send_command ("get dropdowns").trimmed ().split (',', Qt::SkipEmptyParts); + dropdown_names_ = send_command ("get dropdowns").trimmed ().split (',', SkipEmptyParts); TRACE_CAT ("HRDTransceiver", "Dropdowns:"); HRD_info << "Dropdowns:\n"; Q_FOREACH (auto const& dd, dropdown_names_) @@ -218,12 +218,12 @@ int HRDTransceiver::do_start () dropdowns_[dd] = selections; } - slider_names_ = send_command ("get sliders").trimmed ().split (',', Qt::SkipEmptyParts).replaceInStrings (" ", "~"); + slider_names_ = send_command ("get sliders").trimmed ().split (',', SkipEmptyParts).replaceInStrings (" ", "~"); TRACE_CAT ("HRDTransceiver", "Sliders:-"); HRD_info << "Sliders:\n"; Q_FOREACH (auto const& s, slider_names_) { - auto range = send_command ("get slider-range " + current_radio_name + " " + s).trimmed ().split (',', Qt::SkipEmptyParts); + auto range = send_command ("get slider-range " + current_radio_name + " " + s).trimmed ().split (',', SkipEmptyParts); TRACE_CAT ("HRDTransceiver", "\t" << s << ": {" << range.join (", ") << "}"); HRD_info << "\t" << s << ": {" << range.join (", ") << "}\n"; sliders_[s] = range; @@ -602,7 +602,7 @@ void HRDTransceiver::do_frequency (Frequency f, MODE m, bool /*no_ignore*/) auto fo_string = QString::number (f); if (vfo_count_ > 1 && reversed_) { - auto frequencies = send_command ("get frequencies").trimmed ().split ('-', Qt::SkipEmptyParts); + auto frequencies = send_command ("get frequencies").trimmed ().split ('-', SkipEmptyParts); send_simple_command ("set frequencies-hz " + QString::number (frequencies[0].toUInt ()) + ' ' + fo_string); } else @@ -688,14 +688,14 @@ void HRDTransceiver::do_tx_frequency (Frequency tx, MODE mode, bool /*no_ignore* { Q_ASSERT (vfo_count_ > 1); - auto frequencies = send_command ("get frequencies").trimmed ().split ('-', Qt::SkipEmptyParts); + auto frequencies = send_command ("get frequencies").trimmed ().split ('-', SkipEmptyParts); send_simple_command ("set frequencies-hz " + fo_string + ' ' + QString::number (frequencies[1].toUInt ())); } else { if (vfo_count_ > 1) { - auto frequencies = send_command ("get frequencies").trimmed ().split ('-', Qt::SkipEmptyParts); + auto frequencies = send_command ("get frequencies").trimmed ().split ('-', SkipEmptyParts); send_simple_command ("set frequencies-hz " + QString::number (frequencies[0].toUInt ()) + ' ' + fo_string); } else if ((vfo_B_button_ >= 0 && vfo_A_button_ >= 0) || vfo_toggle_button_ >= 0) @@ -987,7 +987,7 @@ void HRDTransceiver::do_poll () if (vfo_count_ > 1) { - auto frequencies = send_command ("get frequencies", quiet).trimmed ().split ('-', Qt::SkipEmptyParts); + auto frequencies = send_command ("get frequencies", quiet).trimmed ().split ('-', SkipEmptyParts); update_rx_frequency (frequencies[reversed_ ? 1 : 0].toUInt ()); update_other_frequency (frequencies[reversed_ ? 0 : 1].toUInt ()); } From ee0d539b16b71ef41918d4b851791c9880ddb487 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sun, 14 Jun 2020 11:40:42 -0500 Subject: [PATCH 064/520] FT8: Make Fast decode setting faster. --- lib/ft8_decode.f90 | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/ft8_decode.f90 b/lib/ft8_decode.f90 index 9350e8bc7..56a813d35 100644 --- a/lib/ft8_decode.f90 +++ b/lib/ft8_decode.f90 @@ -71,7 +71,16 @@ contains write(datetime,1001) nutc !### TEMPORARY ### 1001 format("000000_",i6.6) + if(ndepth.eq.1 .and. nzhsym.lt.50) then + ndec_early=0 + return + endif + if(ndepth.eq.1 .and. nzhsym.eq.50) then + dd=iwave + endif + call ft8apset(mycall12,hiscall12,ncontest,apsym2,aph10) + if(nzhsym.le.47) then dd=iwave dd1=dd @@ -128,15 +137,15 @@ contains endif ! For now: -! ndepth=1: subtraction, 3 passes, bp (no subtract refinement) +! ndepth=1: 1 pass, bp ! ndepth=2: subtraction, 3 passes, bp+osd (no subtract refinement) ! ndepth=3: subtraction, 3 passes, bp+osd npass=3 - if(ndepth.eq.1) npass=2 + if(ndepth.eq.1) npass=1 do ipass=1,npass newdat=.true. syncmin=1.3 - if(ndepth.le.2) syncmin=1.6 + if(ndepth.le.2) syncmin=1.5 if(ipass.eq.1) then lsubtract=.true. ndeep=ndepth From 76566aca7b809ac88a3ac9ad90da4402d97c14f3 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 15 Jun 2020 13:56:35 -0500 Subject: [PATCH 065/520] Detune the Normal decode setting a bit to reduce false decodes even more. --- lib/ft8/ft8b.f90 | 4 ++-- lib/ft8_decode.f90 | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/ft8/ft8b.f90 b/lib/ft8/ft8b.f90 index 08a49783f..b4b8c737b 100644 --- a/lib/ft8/ft8b.f90 +++ b/lib/ft8/ft8b.f90 @@ -403,9 +403,9 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, & dmin=0.0 norder=2 maxosd=2 - if(ndepth.eq.2) maxosd=1 + if(ndepth.eq.2) maxosd=0 if(ndepth.eq.1) maxosd=-1 - if(ndepth.ge.2 .and. & + if(ndepth.eq.3 .and. & (abs(nfqso-f1).le.napwid .or. abs(nftx-f1).le.napwid .or. ncontest.eq.7)) then maxosd=2 endif diff --git a/lib/ft8_decode.f90 b/lib/ft8_decode.f90 index 56a813d35..26b12d6c9 100644 --- a/lib/ft8_decode.f90 +++ b/lib/ft8_decode.f90 @@ -145,7 +145,7 @@ contains do ipass=1,npass newdat=.true. syncmin=1.3 - if(ndepth.le.2) syncmin=1.5 + if(ndepth.le.2) syncmin=1.6 if(ipass.eq.1) then lsubtract=.true. ndeep=ndepth From ddbf22b3b94a8751d4047b0e54936afd5002d122 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 15 Jun 2020 22:59:00 +0100 Subject: [PATCH 066/520] Reduce source control local changes warning to status message This avoids IDEs detecting a build error on this notification. --- CMake/getsvn.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMake/getsvn.cmake b/CMake/getsvn.cmake index a21e86f07..af149a496 100644 --- a/CMake/getsvn.cmake +++ b/CMake/getsvn.cmake @@ -15,7 +15,7 @@ if (EXISTS "${SOURCE_DIR}/.svn") REGEX "^[^?].*$" ) if (__svn_changes) - message (WARNING "Source tree based on revision ${MY_WC_LAST_CHANGED_REV} appears to have local changes") + message (STATUS "Source tree based on revision ${MY_WC_LAST_CHANGED_REV} appears to have local changes") set (MY_WC_LAST_CHANGED_REV "${MY_WC_LAST_CHANGED_REV}-dirty") foreach (__svn_change ${__svn_changes}) message (STATUS "${__svn_change}") @@ -41,7 +41,7 @@ elseif (EXISTS "${SOURCE_DIR}/.git") REGEX "^diff-tree" ) if ((NOT ${__git_svn_status} EQUAL 0) OR __svn_changes) - message (WARNING "Source tree based on revision ${MY_WC_LAST_CHANGED_REV} appears to have local changes") + message (STATUS "Source tree based on revision ${MY_WC_LAST_CHANGED_REV} appears to have local changes") set (MY_WC_LAST_CHANGED_REV "${MY_WC_LAST_CHANGED_REV}-dirty") endif () # write a file with the SVNVERSION define @@ -56,7 +56,7 @@ elseif (EXISTS "${SOURCE_DIR}/.git") git_local_changes (${SOURCE_DIR} GIT_DIRTY) string (SUBSTRING "${GIT_SHA1}" 0 6 GIT_SHA1) if ("${GIT_DIRTY}" STREQUAL "DIRTY") - message (WARNING "Source tree based on revision ${GIT_REFSPEC} ${GIT_SHA1} appears to have local changes") + message (STATUS "Source tree based on revision ${GIT_REFSPEC} ${GIT_SHA1} appears to have local changes") set (GIT_SHA1 "${GIT_SHA1}-dirty") execute_process (COMMAND ${GIT_EXECUTABLE} --git-dir=${SOURCE_DIR}/.git --work-tree=${SOURCE_DIR} status ERROR_QUIET From 68747a5e12bd0f833ac6249a62a2852c165414c7 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 15 Jun 2020 17:25:30 -0500 Subject: [PATCH 067/520] cosmetic change. --- lib/ft8/ft8b.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ft8/ft8b.f90 b/lib/ft8/ft8b.f90 index b4b8c737b..246541461 100644 --- a/lib/ft8/ft8b.f90 +++ b/lib/ft8/ft8b.f90 @@ -403,8 +403,8 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, & dmin=0.0 norder=2 maxosd=2 - if(ndepth.eq.2) maxosd=0 - if(ndepth.eq.1) maxosd=-1 + if(ndepth.eq.1) maxosd=-1 ! BP only + if(ndepth.eq.2) maxosd=0 ! uncoupled BP+OSD if(ndepth.eq.3 .and. & (abs(nfqso-f1).le.napwid .or. abs(nftx-f1).le.napwid .or. ncontest.eq.7)) then maxosd=2 From d56f359b6993802a83c3129b2c72e6d076c0a98a Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 16 Jun 2020 10:26:36 -0400 Subject: [PATCH 068/520] Messages decoding to i3.n3 = 0.2 are now ignored: 0.2 is not currently used. --- lib/77bit/packjt77.f90 | 16 +++++----------- lib/ft8/ft8b.f90 | 17 +++++++++-------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/lib/77bit/packjt77.f90 b/lib/77bit/packjt77.f90 index 22cdb52fb..212887c11 100644 --- a/lib/77bit/packjt77.f90 +++ b/lib/77bit/packjt77.f90 @@ -281,7 +281,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) call unpacktext77(c77(1:71),msg(1:13)) msg(14:)=' ' msg=adjustl(msg) - + else if(i3.eq.0 .and. n3.eq.1) then ! 0.1 K1ABC RR73; W9XYZ -11 28 28 10 5 71 DXpedition Mode read(c77,1010) n28a,n28b,n10,n5 @@ -303,6 +303,9 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) n10.eq.hashmy10) call_3='<'//trim(mycall13)//'>' msg=trim(call_1)//' RR73; '//trim(call_2)//' '//trim(call_3)//' '//crpt + else if(i3.eq.0 .and. n3.eq.2) then + unpk77_success=.false. + else if(i3.eq.0 .and. (n3.eq.3 .or. n3.eq.4)) then ! 0.3 WA9XYZ KA1ABC R 16A EMA 28 28 1 4 3 7 71 ARRL Field Day ! 0.4 WA9XYZ KA1ABC R 32A EMA 28 28 1 4 3 7 71 ARRL Field Day @@ -411,10 +414,6 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) read(c77,1000) n28a,ipa,n28b,ipb,ir,igrid4,i3 1000 format(2(b28,b1),b1,b15,b3) call unpack28(n28a,call_1,unpk28_success) - if(nrx.eq.1 .and. mycall13_set .and. hashmy22.eq.(n28a-2063592)) then - call_1='<'//trim(mycall13)//'>' - unpk28_success=.true. - endif if(.not.unpk28_success) unpk77_success=.false. call unpack28(n28b,call_2,unpk28_success) if(.not.unpk28_success) unpk77_success=.false. @@ -537,12 +536,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) ! EU VHF contest read(c77,1060) n12,n22,ir,irpt,iserial,igrid6 1060 format(b12,b22,b1,b3,b11,b25) - if(igrid6.lt.0 .or. igrid6.gt.18662399) then - unpk77_success=.false. - return - endif call hash12(n12,call_1) - if(n12.eq.hashmy12) call_1='<'//trim(mycall13)//'>' call hash22(n22,call_2) nrs=52+irpt write(cexch,1022) nrs,iserial @@ -554,7 +548,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) else if(i3.ge.6) then ! i3 values 6 and 7 are not yet defined unpk77_success=.false. endif - if(msg(1:4).eq.'CQ <') unpk77_success=.false. +! if(msg(1:4).eq.'CQ <') unpk77_success=.false. return end subroutine unpack77 diff --git a/lib/ft8/ft8b.f90 b/lib/ft8/ft8b.f90 index 246541461..bbcc209f9 100644 --- a/lib/ft8/ft8b.f90 +++ b/lib/ft8/ft8b.f90 @@ -403,12 +403,14 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, & dmin=0.0 norder=2 maxosd=2 - if(ndepth.eq.1) maxosd=-1 ! BP only - if(ndepth.eq.2) maxosd=0 ! uncoupled BP+OSD - if(ndepth.eq.3 .and. & - (abs(nfqso-f1).le.napwid .or. abs(nftx-f1).le.napwid .or. ncontest.eq.7)) then + if(ndepth.lt.3) maxosd=1 + if(abs(nfqso-f1).le.napwid .or. abs(nftx-f1).le.napwid .or. ncontest.eq.7) then maxosd=2 endif + if(nagain) then + norder=3 + maxosd=1 + endif call timer('dec174_91 ',0) Keff=91 call decode174_91(llrz,Keff,maxosd,norder,apmask,message91,cw, & @@ -423,10 +425,9 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, & read(c77(72:74),'(b3)') n3 read(c77(75:77),'(b3)') i3 if(i3.gt.5 .or. (i3.eq.0.and.n3.gt.6)) cycle + if(i3.eq.0 .and. n3.eq.2) cycle call unpack77(c77,1,msg37,unpk77_success) - if(.not.unpk77_success) then - cycle - endif + if(.not.unpk77_success) cycle nbadcrc=0 ! If we get this far: valid codeword, valid (i3,n3), nonquirky message. call get_ft8_tones_from_77bits(message77,itone) if(lsubtract) then @@ -452,7 +453,7 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, & if(.not.nagain) then xsnr=xsnr2 endif - if(nsync.le.10 .and. xsnr.lt.-24.0) then !bail out, likely false decode + if(nsync.le.7 .and. xsnr.lt.-24.0) then !bail out, likely false decode nbadcrc=1 return endif From 027cb5186e72487339c9fbaa5fde3fcdbed1553f Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 16 Jun 2020 10:54:36 -0400 Subject: [PATCH 069/520] Revert "Messages decoding to i3.n3 = 0.2 are now ignored: 0.2 is not currently used." This reverts commit d56f359b6993802a83c3129b2c72e6d076c0a98a. --- lib/77bit/packjt77.f90 | 16 +++++++++++----- lib/ft8/ft8b.f90 | 17 ++++++++--------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/lib/77bit/packjt77.f90 b/lib/77bit/packjt77.f90 index 212887c11..22cdb52fb 100644 --- a/lib/77bit/packjt77.f90 +++ b/lib/77bit/packjt77.f90 @@ -281,7 +281,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) call unpacktext77(c77(1:71),msg(1:13)) msg(14:)=' ' msg=adjustl(msg) - + else if(i3.eq.0 .and. n3.eq.1) then ! 0.1 K1ABC RR73; W9XYZ -11 28 28 10 5 71 DXpedition Mode read(c77,1010) n28a,n28b,n10,n5 @@ -303,9 +303,6 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) n10.eq.hashmy10) call_3='<'//trim(mycall13)//'>' msg=trim(call_1)//' RR73; '//trim(call_2)//' '//trim(call_3)//' '//crpt - else if(i3.eq.0 .and. n3.eq.2) then - unpk77_success=.false. - else if(i3.eq.0 .and. (n3.eq.3 .or. n3.eq.4)) then ! 0.3 WA9XYZ KA1ABC R 16A EMA 28 28 1 4 3 7 71 ARRL Field Day ! 0.4 WA9XYZ KA1ABC R 32A EMA 28 28 1 4 3 7 71 ARRL Field Day @@ -414,6 +411,10 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) read(c77,1000) n28a,ipa,n28b,ipb,ir,igrid4,i3 1000 format(2(b28,b1),b1,b15,b3) call unpack28(n28a,call_1,unpk28_success) + if(nrx.eq.1 .and. mycall13_set .and. hashmy22.eq.(n28a-2063592)) then + call_1='<'//trim(mycall13)//'>' + unpk28_success=.true. + endif if(.not.unpk28_success) unpk77_success=.false. call unpack28(n28b,call_2,unpk28_success) if(.not.unpk28_success) unpk77_success=.false. @@ -536,7 +537,12 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) ! EU VHF contest read(c77,1060) n12,n22,ir,irpt,iserial,igrid6 1060 format(b12,b22,b1,b3,b11,b25) + if(igrid6.lt.0 .or. igrid6.gt.18662399) then + unpk77_success=.false. + return + endif call hash12(n12,call_1) + if(n12.eq.hashmy12) call_1='<'//trim(mycall13)//'>' call hash22(n22,call_2) nrs=52+irpt write(cexch,1022) nrs,iserial @@ -548,7 +554,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) else if(i3.ge.6) then ! i3 values 6 and 7 are not yet defined unpk77_success=.false. endif -! if(msg(1:4).eq.'CQ <') unpk77_success=.false. + if(msg(1:4).eq.'CQ <') unpk77_success=.false. return end subroutine unpack77 diff --git a/lib/ft8/ft8b.f90 b/lib/ft8/ft8b.f90 index bbcc209f9..246541461 100644 --- a/lib/ft8/ft8b.f90 +++ b/lib/ft8/ft8b.f90 @@ -403,14 +403,12 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, & dmin=0.0 norder=2 maxosd=2 - if(ndepth.lt.3) maxosd=1 - if(abs(nfqso-f1).le.napwid .or. abs(nftx-f1).le.napwid .or. ncontest.eq.7) then + if(ndepth.eq.1) maxosd=-1 ! BP only + if(ndepth.eq.2) maxosd=0 ! uncoupled BP+OSD + if(ndepth.eq.3 .and. & + (abs(nfqso-f1).le.napwid .or. abs(nftx-f1).le.napwid .or. ncontest.eq.7)) then maxosd=2 endif - if(nagain) then - norder=3 - maxosd=1 - endif call timer('dec174_91 ',0) Keff=91 call decode174_91(llrz,Keff,maxosd,norder,apmask,message91,cw, & @@ -425,9 +423,10 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, & read(c77(72:74),'(b3)') n3 read(c77(75:77),'(b3)') i3 if(i3.gt.5 .or. (i3.eq.0.and.n3.gt.6)) cycle - if(i3.eq.0 .and. n3.eq.2) cycle call unpack77(c77,1,msg37,unpk77_success) - if(.not.unpk77_success) cycle + if(.not.unpk77_success) then + cycle + endif nbadcrc=0 ! If we get this far: valid codeword, valid (i3,n3), nonquirky message. call get_ft8_tones_from_77bits(message77,itone) if(lsubtract) then @@ -453,7 +452,7 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, & if(.not.nagain) then xsnr=xsnr2 endif - if(nsync.le.7 .and. xsnr.lt.-24.0) then !bail out, likely false decode + if(nsync.le.10 .and. xsnr.lt.-24.0) then !bail out, likely false decode nbadcrc=1 return endif From cab1a005c6f7a7f5aa077b7b1255a5db83629430 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 16 Jun 2020 11:02:24 -0400 Subject: [PATCH 070/520] Another try: Ignore messages decoding to i3.n3 = 0.2. --- lib/77bit/packjt77.f90 | 5 ++++- lib/ft8/ft8b.f90 | 5 ++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/77bit/packjt77.f90 b/lib/77bit/packjt77.f90 index 22cdb52fb..2b1a60bf3 100644 --- a/lib/77bit/packjt77.f90 +++ b/lib/77bit/packjt77.f90 @@ -281,7 +281,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) call unpacktext77(c77(1:71),msg(1:13)) msg(14:)=' ' msg=adjustl(msg) - + else if(i3.eq.0 .and. n3.eq.1) then ! 0.1 K1ABC RR73; W9XYZ -11 28 28 10 5 71 DXpedition Mode read(c77,1010) n28a,n28b,n10,n5 @@ -303,6 +303,9 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) n10.eq.hashmy10) call_3='<'//trim(mycall13)//'>' msg=trim(call_1)//' RR73; '//trim(call_2)//' '//trim(call_3)//' '//crpt + else if(i3.eq.0 .and. n3.eq.2) then + unpk77_success=.false. + else if(i3.eq.0 .and. (n3.eq.3 .or. n3.eq.4)) then ! 0.3 WA9XYZ KA1ABC R 16A EMA 28 28 1 4 3 7 71 ARRL Field Day ! 0.4 WA9XYZ KA1ABC R 32A EMA 28 28 1 4 3 7 71 ARRL Field Day diff --git a/lib/ft8/ft8b.f90 b/lib/ft8/ft8b.f90 index 246541461..f4dd60183 100644 --- a/lib/ft8/ft8b.f90 +++ b/lib/ft8/ft8b.f90 @@ -423,10 +423,9 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, & read(c77(72:74),'(b3)') n3 read(c77(75:77),'(b3)') i3 if(i3.gt.5 .or. (i3.eq.0.and.n3.gt.6)) cycle + if(i3.eq.0 .and. n3.eq.2) cycle call unpack77(c77,1,msg37,unpk77_success) - if(.not.unpk77_success) then - cycle - endif + if(.not.unpk77_success) cycle nbadcrc=0 ! If we get this far: valid codeword, valid (i3,n3), nonquirky message. call get_ft8_tones_from_77bits(message77,itone) if(lsubtract) then From 74789783059ae71beaebb43298bd1ca6b5894251 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 16 Jun 2020 11:09:46 -0500 Subject: [PATCH 071/520] FT8: make sure that nbadcrc is initialized to true before each decoding attempt. --- lib/ft8/ft8b.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ft8/ft8b.f90 b/lib/ft8/ft8b.f90 index f4dd60183..d96cbd9c7 100644 --- a/lib/ft8/ft8b.f90 +++ b/lib/ft8/ft8b.f90 @@ -95,7 +95,6 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, & max_iterations=30 nharderrors=-1 - nbadcrc=1 ! this is used upstream to flag good decodes. fs2=12000.0/NDOWN dt2=1.0/fs2 twopi=8.0*atan(1.0) @@ -417,6 +416,7 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, & call timer('dec174_91 ',1) msg37=' ' + nbadcrc=1 if(nharderrors.lt.0 .or. nharderrors.gt.36) cycle if(count(cw.eq.0).eq.174) cycle !Reject the all-zero codeword write(c77,'(77i1)') message77 From a720e0ec2187e125c72517628993ba8d59dff87d Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 16 Jun 2020 12:28:56 -0500 Subject: [PATCH 072/520] Add fst280 files. --- lib/fst280/bpdecode280_101.f90 | 111 ++++++ lib/fst280/bpdecode280_74.f90 | 111 ++++++ lib/fst280/decode280_101.f90 | 154 ++++++++ lib/fst280/decode280_74.f90 | 153 ++++++++ lib/fst280/encode280_101.f90 | 46 +++ lib/fst280/encode280_74.f90 | 46 +++ lib/fst280/fst280.txt | 10 + lib/fst280/fst280d.f90 | 477 ++++++++++++++++++++++++ lib/fst280/fst280sim.f90 | 147 ++++++++ lib/fst280/ft4s280_params.f90 | 8 + lib/fst280/genfst280.f90 | 103 ++++++ lib/fst280/get_crc24.f90 | 25 ++ lib/fst280/get_fst280_bitmetrics.f90 | 118 ++++++ lib/fst280/ldpc_280_101_generator.f90 | 182 ++++++++++ lib/fst280/ldpc_280_101_parity.f90 | 476 ++++++++++++++++++++++++ lib/fst280/ldpc_280_74_generator.f90 | 209 +++++++++++ lib/fst280/ldpc_280_74_parity.f90 | 504 ++++++++++++++++++++++++++ lib/fst280/ldpcsim280_101.f90 | 139 +++++++ lib/fst280/ldpcsim280_74.f90 | 132 +++++++ lib/fst280/osd280_101.f90 | 403 ++++++++++++++++++++ lib/fst280/osd280_74.f90 | 403 ++++++++++++++++++++ 21 files changed, 3957 insertions(+) create mode 100644 lib/fst280/bpdecode280_101.f90 create mode 100644 lib/fst280/bpdecode280_74.f90 create mode 100644 lib/fst280/decode280_101.f90 create mode 100644 lib/fst280/decode280_74.f90 create mode 100644 lib/fst280/encode280_101.f90 create mode 100644 lib/fst280/encode280_74.f90 create mode 100644 lib/fst280/fst280.txt create mode 100644 lib/fst280/fst280d.f90 create mode 100644 lib/fst280/fst280sim.f90 create mode 100644 lib/fst280/ft4s280_params.f90 create mode 100644 lib/fst280/genfst280.f90 create mode 100644 lib/fst280/get_crc24.f90 create mode 100644 lib/fst280/get_fst280_bitmetrics.f90 create mode 100644 lib/fst280/ldpc_280_101_generator.f90 create mode 100644 lib/fst280/ldpc_280_101_parity.f90 create mode 100644 lib/fst280/ldpc_280_74_generator.f90 create mode 100644 lib/fst280/ldpc_280_74_parity.f90 create mode 100644 lib/fst280/ldpcsim280_101.f90 create mode 100644 lib/fst280/ldpcsim280_74.f90 create mode 100644 lib/fst280/osd280_101.f90 create mode 100644 lib/fst280/osd280_74.f90 diff --git a/lib/fst280/bpdecode280_101.f90 b/lib/fst280/bpdecode280_101.f90 new file mode 100644 index 000000000..a817a3d5c --- /dev/null +++ b/lib/fst280/bpdecode280_101.f90 @@ -0,0 +1,111 @@ +subroutine bpdecode280_101(llr,apmask,maxiterations,message101,cw,nharderror,iter,ncheck) +! +! A log-domain belief propagation decoder for the (280,101) code. +! + integer, parameter:: N=280, K=101, M=N-K + integer*1 cw(N),apmask(N) + integer*1 decoded(K) + integer*1 message101(101) + integer nrw(M),ncw + integer Nm(6,M) + integer Mn(3,N) ! 3 checks per bit + integer synd(M) + real tov(3,N) + real toc(6,M) + real tanhtoc(6,M) + real zn(N) + real llr(N) + real Tmn + + include "ldpc_280_101_parity.f90" + + decoded=0 + toc=0 + tov=0 + tanhtoc=0 +! initialize messages to checks + do j=1,M + do i=1,nrw(j) + toc(i,j)=llr((Nm(i,j))) + enddo + enddo + + ncnt=0 + nclast=0 + do iter=0,maxiterations +! Update bit log likelihood ratios (tov=0 in iteration 0). + do i=1,N + if( apmask(i) .ne. 1 ) then + zn(i)=llr(i)+sum(tov(1:ncw,i)) + else + zn(i)=llr(i) + endif + enddo + +! Check to see if we have a codeword (check before we do any iteration). + cw=0 + where( zn .gt. 0. ) cw=1 + ncheck=0 + do i=1,M + synd(i)=sum(cw(Nm(1:nrw(i),i))) + if( mod(synd(i),2) .ne. 0 ) ncheck=ncheck+1 +! if( mod(synd(i),2) .ne. 0 ) write(*,*) 'check ',i,' unsatisfied' + enddo + if( ncheck .eq. 0 ) then ! we have a codeword - if crc is good, return it + decoded=cw(1:101) + call get_crc24(decoded,101,nbadcrc) + nharderror=count( (2*cw-1)*llr .lt. 0.0 ) + if(nbadcrc.eq.0) then + message101=decoded(1:101) + return + endif + endif + + if( iter.gt.0 ) then ! this code block implements an early stopping criterion +! if( iter.gt.10000 ) then ! this code block implements an early stopping criterion + nd=ncheck-nclast + if( nd .lt. 0 ) then ! # of unsatisfied parity checks decreased + ncnt=0 ! reset counter + else + ncnt=ncnt+1 + endif +! write(*,*) iter,ncheck,nd,ncnt + if( ncnt .ge. 5 .and. iter .ge. 10 .and. ncheck .gt. 15) then + nharderror=-1 + return + endif + endif + nclast=ncheck + +! Send messages from bits to check nodes + do j=1,M + do i=1,nrw(j) + ibj=Nm(i,j) + toc(i,j)=zn(ibj) + do kk=1,ncw ! subtract off what the bit had received from the check + if( Mn(kk,ibj) .eq. j ) then + toc(i,j)=toc(i,j)-tov(kk,ibj) + endif + enddo + enddo + enddo + +! send messages from check nodes to variable nodes + do i=1,M + tanhtoc(1:6,i)=tanh(-toc(1:6,i)/2) + enddo + + do j=1,N + do i=1,ncw + ichk=Mn(i,j) ! Mn(:,j) are the checks that include bit j + Tmn=product(tanhtoc(1:nrw(ichk),ichk),mask=Nm(1:nrw(ichk),ichk).ne.j) + call platanh(-Tmn,y) +! y=atanh(-Tmn) + tov(i,j)=2*y + enddo + enddo + + enddo + nharderror=-1 + return +end subroutine bpdecode280_101 diff --git a/lib/fst280/bpdecode280_74.f90 b/lib/fst280/bpdecode280_74.f90 new file mode 100644 index 000000000..21b48d8db --- /dev/null +++ b/lib/fst280/bpdecode280_74.f90 @@ -0,0 +1,111 @@ +subroutine bpdecode280_74(llr,apmask,maxiterations,message74,cw,nharderror,iter,ncheck) +! +! A log-domain belief propagation decoder for the (280,74) code. +! + integer, parameter:: N=280, K=74, M=N-K + integer*1 cw(N),apmask(N) + integer*1 decoded(K) + integer*1 message74(74) + integer nrw(M),ncw + integer Nm(5,M) + integer Mn(3,N) ! 3 checks per bit + integer synd(M) + real tov(3,N) + real toc(5,M) + real tanhtoc(5,M) + real zn(N) + real llr(N) + real Tmn + + include "ldpc_280_74_parity.f90" + + decoded=0 + toc=0 + tov=0 + tanhtoc=0 +! initialize messages to checks + do j=1,M + do i=1,nrw(j) + toc(i,j)=llr((Nm(i,j))) + enddo + enddo + + ncnt=0 + nclast=0 + do iter=0,maxiterations +! Update bit log likelihood ratios (tov=0 in iteration 0). + do i=1,N + if( apmask(i) .ne. 1 ) then + zn(i)=llr(i)+sum(tov(1:ncw,i)) + else + zn(i)=llr(i) + endif + enddo + +! Check to see if we have a codeword (check before we do any iteration). + cw=0 + where( zn .gt. 0. ) cw=1 + ncheck=0 + do i=1,M + synd(i)=sum(cw(Nm(1:nrw(i),i))) + if( mod(synd(i),2) .ne. 0 ) ncheck=ncheck+1 +! if( mod(synd(i),2) .ne. 0 ) write(*,*) 'check ',i,' unsatisfied' + enddo + if( ncheck .eq. 0 ) then ! we have a codeword - if crc is good, return it + decoded=cw(1:74) + call get_crc24(decoded,74,nbadcrc) + nharderror=count( (2*cw-1)*llr .lt. 0.0 ) + if(nbadcrc.eq.0) then + message74=decoded(1:74) + return + endif + endif + + if( iter.gt.0 ) then ! this code block implements an early stopping criterion +! if( iter.gt.10000 ) then ! this code block implements an early stopping criterion + nd=ncheck-nclast + if( nd .lt. 0 ) then ! # of unsatisfied parity checks decreased + ncnt=0 ! reset counter + else + ncnt=ncnt+1 + endif +! write(*,*) iter,ncheck,nd,ncnt + if( ncnt .ge. 5 .and. iter .ge. 10 .and. ncheck .gt. 15) then + nharderror=-1 + return + endif + endif + nclast=ncheck + +! Send messages from bits to check nodes + do j=1,M + do i=1,nrw(j) + ibj=Nm(i,j) + toc(i,j)=zn(ibj) + do kk=1,ncw ! subtract off what the bit had received from the check + if( Mn(kk,ibj) .eq. j ) then + toc(i,j)=toc(i,j)-tov(kk,ibj) + endif + enddo + enddo + enddo + +! send messages from check nodes to variable nodes + do i=1,M + tanhtoc(1:5,i)=tanh(-toc(1:5,i)/2) + enddo + + do j=1,N + do i=1,ncw + ichk=Mn(i,j) ! Mn(:,j) are the checks that include bit j + Tmn=product(tanhtoc(1:nrw(ichk),ichk),mask=Nm(1:nrw(ichk),ichk).ne.j) + call platanh(-Tmn,y) +! y=atanh(-Tmn) + tov(i,j)=2*y + enddo + enddo + + enddo + nharderror=-1 + return +end subroutine bpdecode280_74 diff --git a/lib/fst280/decode280_101.f90 b/lib/fst280/decode280_101.f90 new file mode 100644 index 000000000..838906c78 --- /dev/null +++ b/lib/fst280/decode280_101.f90 @@ -0,0 +1,154 @@ +subroutine decode280_101(llr,Keff,maxosd,norder,apmask,message101,cw,ntype,nharderror,dmin) +! +! A hybrid bp/osd decoder for the (280,101) code. +! +! maxosd<0: do bp only +! maxosd=0: do bp and then call osd once with channel llrs +! maxosd>1: do bp and then call osd maxosd times with saved bp outputs +! norder : osd decoding depth +! + integer, parameter:: N=280, K=101, M=N-K + integer*1 cw(N),apmask(N) + integer*1 nxor(N),hdec(N) + integer*1 message101(101),m101(101) + integer nrw(M),ncw + integer Nm(6,M) + integer Mn(3,N) ! 3 checks per bit + integer synd(M) + real tov(3,N) + real toc(6,M) + real tanhtoc(6,M) + real zn(N),zsum(N),zsave(N,3) + real llr(N) + real Tmn + + include "ldpc_280_101_parity.f90" + + maxiterations=30 + nosd=0 + if(maxosd.gt.3) maxosd=3 + if(maxosd.eq.0) then ! osd with channel llrs + nosd=1 + zsave(:,1)=llr + elseif(maxosd.gt.0) then ! + nosd=maxosd + elseif(maxosd.lt.0) then ! just bp + nosd=0 + endif + + toc=0 + tov=0 + tanhtoc=0 +! initialize messages to checks + do j=1,M + do i=1,nrw(j) + toc(i,j)=llr((Nm(i,j))) + enddo + enddo + + ncnt=0 + nclast=0 + zsum=0.0 + do iter=0,maxiterations +! Update bit log likelihood ratios (tov=0 in iteration 0). + do i=1,N + if( apmask(i) .ne. 1 ) then + zn(i)=llr(i)+sum(tov(1:ncw,i)) + else + zn(i)=llr(i) + endif + enddo + zsum=zsum+zn + if(iter.gt.0 .and. iter.le.maxosd) then + zsave(:,iter)=zsum + endif + +! Check to see if we have a codeword (check before we do any iteration). + cw=0 + where( zn .gt. 0. ) cw=1 + ncheck=0 + do i=1,M + synd(i)=sum(cw(Nm(1:nrw(i),i))) + if( mod(synd(i),2) .ne. 0 ) ncheck=ncheck+1 + enddo + if( ncheck .eq. 0 ) then ! we have a codeword - if crc is good, return it + m101=0 + m101(1:101)=cw(1:101) + call get_crc24(m101,101,nbadcrc) + if(nbadcrc.eq.0) then + message101=cw(1:101) + hdec=0 + where(llr .ge. 0) hdec=1 + nxor=ieor(hdec,cw) + nharderror=sum(nxor) + dmin=sum(nxor*abs(llr)) + ntype=1 + return + endif + endif + + if( iter.gt.0 ) then ! this code block implements an early stopping criterion +! if( iter.gt.10000 ) then ! this code block implements an early stopping criterion + nd=ncheck-nclast + if( nd .lt. 0 ) then ! # of unsatisfied parity checks decreased + ncnt=0 ! reset counter + else + ncnt=ncnt+1 + endif +! write(*,*) iter,ncheck,nd,ncnt + if( ncnt .ge. 5 .and. iter .ge. 10 .and. ncheck .gt. 15) then + nharderror=-1 + exit + endif + endif + nclast=ncheck + +! Send messages from bits to check nodes + do j=1,M + do i=1,nrw(j) + ibj=Nm(i,j) + toc(i,j)=zn(ibj) + do kk=1,ncw ! subtract off what the bit had received from the check + if( Mn(kk,ibj) .eq. j ) then + toc(i,j)=toc(i,j)-tov(kk,ibj) + endif + enddo + enddo + enddo + +! send messages from check nodes to variable nodes + do i=1,M + tanhtoc(1:6,i)=tanh(-toc(1:6,i)/2) + enddo + + do j=1,N + do i=1,ncw + ichk=Mn(i,j) ! Mn(:,j) are the checks that include bit j + Tmn=product(tanhtoc(1:nrw(ichk),ichk),mask=Nm(1:nrw(ichk),ichk).ne.j) + call platanh(-Tmn,y) +! y=atanh(-Tmn) + tov(i,j)=2*y + enddo + enddo + + enddo ! bp iterations + + do i=1,nosd + zn=zsave(:,i) + call osd280_101(zn,Keff,apmask,norder,message101,cw,nharderror,dminosd) + if(nharderror.gt.0) then + hdec=0 + where(llr .ge. 0) hdec=1 + nxor=ieor(hdec,cw) + dmin=sum(nxor*abs(llr)) + ntype=2 + return + endif + enddo + + ntype=0 + nharderror=-1 + dminosd=0.0 + + return +end subroutine decode280_101 diff --git a/lib/fst280/decode280_74.f90 b/lib/fst280/decode280_74.f90 new file mode 100644 index 000000000..0d0c6fc4f --- /dev/null +++ b/lib/fst280/decode280_74.f90 @@ -0,0 +1,153 @@ +subroutine decode280_74(llr,Keff,maxosd,norder,apmask,message74,cw,ntype,nharderror,dmin) +! +! A hybrid bp/osd decoder for the (280,74) code. +! +! maxosd<0: do bp only +! maxosd=0: do bp and then call osd once with channel llrs +! maxosd>1: do bp and then call osd maxosd times with saved bp outputs +! norder : osd decoding depth +! + integer, parameter:: N=280, K=74, M=N-K + integer*1 cw(N),cwbest(N),apmask(N) + integer*1 nxor(N),hdec(N) + integer*1 message74(74),m74(74) + integer nrw(M),ncw + integer Nm(5,M) + integer Mn(3,N) ! 3 checks per bit + integer synd(M) + real tov(3,N) + real toc(5,M) + real tanhtoc(5,M) + real zn(N),zsum(N),zsave(N,max(1,maxosd)) + real llr(N) + real Tmn + + include "ldpc_280_74_parity.f90" + + maxiterations=30 + nosd=0 + if(maxosd.eq.0) then ! osd with channel llrs + nosd=1 + zsave(:,1)=llr + elseif(maxosd.gt.0) then ! + nosd=maxosd + elseif(maxosd.lt.0) then ! just bp + nosd=0 + endif + + toc=0 + tov=0 + tanhtoc=0 +! initialize messages to checks + do j=1,M + do i=1,nrw(j) + toc(i,j)=llr((Nm(i,j))) + enddo + enddo + + ncnt=0 + nclast=0 + zsum=0.0 + do iter=0,maxiterations +! Update bit log likelihood ratios (tov=0 in iteration 0). + do i=1,N + if( apmask(i) .ne. 1 ) then + zn(i)=llr(i)+sum(tov(1:ncw,i)) + else + zn(i)=llr(i) + endif + enddo + zsum=zsum+zn + if(iter.gt.0 .and. iter.le.maxosd) then + zsave(:,iter)=zsum + endif + +! Check to see if we have a codeword (check before we do any iteration). + cw=0 + where( zn .gt. 0. ) cw=1 + ncheck=0 + do i=1,M + synd(i)=sum(cw(Nm(1:nrw(i),i))) + if( mod(synd(i),2) .ne. 0 ) ncheck=ncheck+1 + enddo + if( ncheck .eq. 0 ) then ! we have a codeword - if crc is good, return it + m74=0 + m74(1:74)=cw(1:74) + call get_crc24(m74,74,nbadcrc) + if(nbadcrc.eq.0) then + message74=cw(1:74) + hdec=0 + where(llr .ge. 0) hdec=1 + nxor=ieor(hdec,cw) + nharderror=sum(nxor) + dmin=sum(nxor*abs(llr)) + ntype=1 + return + endif + endif + + if( iter.gt.0 ) then ! this code block implements an early stopping criterion +! if( iter.gt.10000 ) then ! this code block implements an early stopping criterion + nd=ncheck-nclast + if( nd .lt. 0 ) then ! # of unsatisfied parity checks decreased + ncnt=0 ! reset counter + else + ncnt=ncnt+1 + endif +! write(*,*) iter,ncheck,nd,ncnt + if( ncnt .ge. 5 .and. iter .ge. 10 .and. ncheck .gt. 15) then + nharderror=-1 + exit + endif + endif + nclast=ncheck + +! Send messages from bits to check nodes + do j=1,M + do i=1,nrw(j) + ibj=Nm(i,j) + toc(i,j)=zn(ibj) + do kk=1,ncw ! subtract off what the bit had received from the check + if( Mn(kk,ibj) .eq. j ) then + toc(i,j)=toc(i,j)-tov(kk,ibj) + endif + enddo + enddo + enddo + +! send messages from check nodes to variable nodes + do i=1,M + tanhtoc(1:5,i)=tanh(-toc(1:5,i)/2) + enddo + + do j=1,N + do i=1,ncw + ichk=Mn(i,j) ! Mn(:,j) are the checks that include bit j + Tmn=product(tanhtoc(1:nrw(ichk),ichk),mask=Nm(1:nrw(ichk),ichk).ne.j) + call platanh(-Tmn,y) +! y=atanh(-Tmn) + tov(i,j)=2*y + enddo + enddo + + enddo ! bp iterations + + do i=1,nosd + zn=zsave(:,i) + call osd280_74(zn,Keff,apmask,norder,message74,cw,nharderror,dminosd) + if(nharderror.ge.0) then + hdec=0 + where(llr .ge. 0) hdec=1 + nxor=ieor(hdec,cw) + dmin=sum(nxor*abs(llr)) + ntype=2 + return + endif + enddo + + ntype=0 + nharderror=-1 + dminosd=0.0 + + return +end subroutine decode280_74 diff --git a/lib/fst280/encode280_101.f90 b/lib/fst280/encode280_101.f90 new file mode 100644 index 000000000..704816355 --- /dev/null +++ b/lib/fst280/encode280_101.f90 @@ -0,0 +1,46 @@ +subroutine encode280_101(message,codeword) + use, intrinsic :: iso_c_binding + use iso_c_binding, only: c_loc,c_size_t + use crc + + integer, parameter:: N=280, K=101, M=N-K + character*24 c24 + integer*1 codeword(N) + integer*1 gen(M,K) + integer*1 message(K) + integer*1 pchecks(M) + integer*4 ncrc24 + include "ldpc_280_101_generator.f90" + logical first + data first/.true./ + save first,gen + + if( first ) then ! fill the generator matrix + gen=0 + do i=1,M + do j=1,26 + read(g(i)(j:j),"(Z1)") istr + ibmax=4 + if(j.eq.26) ibmax=1 + do jj=1, ibmax + icol=(j-1)*4+jj + if( btest(istr,4-jj) ) gen(i,icol)=1 + enddo + enddo + enddo + first=.false. + endif + + do i=1,M + nsum=0 + do j=1,K + nsum=nsum+message(j)*gen(i,j) + enddo + pchecks(i)=mod(nsum,2) + enddo + + codeword(1:K)=message + codeword(K+1:N)=pchecks + + return +end subroutine encode280_101 diff --git a/lib/fst280/encode280_74.f90 b/lib/fst280/encode280_74.f90 new file mode 100644 index 000000000..e923d46f7 --- /dev/null +++ b/lib/fst280/encode280_74.f90 @@ -0,0 +1,46 @@ +subroutine encode280_74(message,codeword) + use, intrinsic :: iso_c_binding + use iso_c_binding, only: c_loc,c_size_t + use crc + + integer, parameter:: N=280, K=74, M=N-K + character*24 c24 + integer*1 codeword(N) + integer*1 gen(M,K) + integer*1 message(K) + integer*1 pchecks(M) + integer*4 ncrc24 + include "ldpc_280_74_generator.f90" + logical first + data first/.true./ + save first,gen + + if( first ) then ! fill the generator matrix + gen=0 + do i=1,M + do j=1,19 + read(g(i)(j:j),"(Z1)") istr + ibmax=4 + if(j.eq.19) ibmax=2 + do jj=1, ibmax + icol=(j-1)*4+jj + if( btest(istr,4-jj) ) gen(i,icol)=1 + enddo + enddo + enddo + first=.false. + endif + + do i=1,M + nsum=0 + do j=1,K + nsum=nsum+message(j)*gen(i,j) + enddo + pchecks(i)=mod(nsum,2) + enddo + + codeword(1:K)=message + codeword(K+1:N)=pchecks + + return +end subroutine encode280_74 diff --git a/lib/fst280/fst280.txt b/lib/fst280/fst280.txt new file mode 100644 index 000000000..5e2c1c935 --- /dev/null +++ b/lib/fst280/fst280.txt @@ -0,0 +1,10 @@ +------------------------------------------------------------------- + NSPS T/R TxT Tst Txtra Txtra-2.6s DF BW SNR77 SNR50 + (s) (s) (s) (s) (s) (Hz) (Hz) (dB) (dB) +------------------------------------------------------------------- + 800 15 10.93 0.5 3.57 0.97 15.00 60.0 -21.3 -23.2 + 1680 30 22.96 1.0 6.04 3.44 7.14 28.6 -24.5 -26.4 + 4000 60 54.67 1.0 4.33 1.73 3.00 12.0 -28.3 -30.2 + 8400 120 114.80 1.0 4.20 1.60 1.43 5.7 -31.5 -33.4 +21504 300 293.89 1.0 5.11 2.51 0.56 2.2 -35.5 -37.4 +------------------------------------------------------------------- diff --git a/lib/fst280/fst280d.f90 b/lib/fst280/fst280d.f90 new file mode 100644 index 000000000..edfee81f7 --- /dev/null +++ b/lib/fst280/fst280d.f90 @@ -0,0 +1,477 @@ +program fst280d + +! Decode fst280 data read from *.c2 or *.wav files. + + use packjt77 + include 'ft4s280_params.f90' + character arg*8,infile*80,fname*16,datetime*11 +! character ch1*1,ch4*4,cseq*31 +! character*22 decodes(100) + character*37 msg + character*120 data_dir + character*77 c77 + character*1 tr_designator + complex, allocatable :: c2(:) + complex, allocatable :: cframe(:) + complex, allocatable :: c_bigfft(:) !Complex waveform + real, allocatable :: r_data(:) + real*8 fMHz + real llr(280),llra(280),llrb(280),llrc(280),llrd(280) + real candidates(100,3) + real bitmetrics(328,4) + integer ihdr(11) + integer*2, allocatable :: iwave(:) + integer*1 apmask(280),cw(280) + integer*1 hbits(328) + integer*1 message101(101),message74(74) + logical badsync,unpk77_success + + hmod=1.0 + Keff=91 + ndeep=3 + iwspr=0 + + nargs=iargc() + if(nargs.lt.1) then + print*,'Usage: fst280d [-a ] [-f fMHz] [-h hmod] [-k Keff] file1 [file2 ...]' + go to 999 + endif + iarg=1 + data_dir="." + call getarg(iarg,arg) + if(arg(1:2).eq.'-a') then + call getarg(iarg+1,data_dir) + iarg=iarg+2 + call getarg(iarg,arg) + endif + if(arg(1:2).eq.'-f') then + call getarg(iarg+1,arg) + read(arg,*) fMHz + iarg=iarg+2 + call getarg(iarg,arg) + endif + if(arg(1:2).eq.'-h') then + call getarg(iarg+1,arg) + read(arg,*) hmod + if(hmod.ne.1.and.hmod.ne.2.and.hmod.ne.4) then + print*,'invalid modulation index. h must be 1, 2, or 4' + goto 999 + endif + iarg=iarg+2 + call getarg(iarg,arg) + endif + if(arg(1:2).eq.'-k') then + call getarg(iarg+1,arg) + read(arg,*) Keff + if(Keff.le.74) iwspr=1 + iarg=iarg+2 + call getarg(iarg,arg) + endif + if(arg(1:2).eq.'-d') then + call getarg(iarg+1,arg) + read(arg,*) ndeep + iarg=iarg+2 + call getarg(iarg,arg) + endif + if(arg(1:2).eq.'-t') then + call getarg(iarg+1,arg) + read(arg,*) tr_designator + iarg=iarg+2 + endif + + nmax=15*12000 + select case (tr_designator) + case('A') + nsps=800 + nmax=15*12000 + ndown=32/hmod + case('B') + nsps=1680 + nmax=30*12000 + ndown=70/hmod + if(hmod.eq.4) ndown=15 + case('C') + nsps=4000 + nmax=60*12000 + ndown=160/hmod + case('D') + nsps=8400 + nmax=120*12000 + ndown=350/hmod + if(hmod.eq.4) ndown=84 + case('E') + nsps=21504 + nmax=300*12000 + ndown=896/hmod + end select + nss=nsps/ndown + fs=12000.0 !Sample rate + fs2=fs/ndown + nspsec=nint(fs2) + dt=1.0/fs !Sample interval (s) + dt2=1.0/fs2 + tt=nsps*dt !Duration of "itone" symbols (s) + + nfft1=2*int(nmax/2) + nh1=nfft1/2 + allocate( r_data(1:nfft1+2) ) + allocate( c_bigfft(0:nfft1/2) ) + + nfft2=nfft1/ndown + allocate( c2(0:nfft2-1) ) + allocate( cframe(0:164*nss-1) ) + allocate( iwave(nmax) ) + +!write(*,*) 'nsps: ',nsps +!write(*,*) 'nmax: ',nmax +!write(*,*) 'nss : ',nss +!write(*,*) 'nspsec: ',fs2 +!write(*,*) 'nfft1 : ',nfft1 +!write(*,*) 'nfft2 : ',nfft2 + + ngood=0 + ngoodsync=0 + nfile=0 + do ifile=iarg,nargs + nfile=nfile+1 + call getarg(ifile,infile) + open(10,file=infile,status='old',access='stream') + j1=index(infile,'.c2') + j2=index(infile,'.wav') + if(j1.gt.0) then + read(10,end=999) fname,ntrmin,fMHz,c2 + read(fname(8:11),*) nutc + write(datetime,'(i11)') nutc + else if(j2.gt.0) then + read(10,end=999) ihdr,iwave + read(infile(j2-4:j2-1),*) nutc + datetime=infile(j2-11:j2-1) + else + print*,'Wrong file format?' + go to 999 + endif + close(10) + + npts=nmax + fa=100.0 + fb=3500.0 + +! The big fft is done once and is used for calculating the smoothed spectrum +! and also for downconverting/downsampling each candidate. + r_data(1:nfft1)=iwave(1:nfft1) + r_data(nfft1+1:nfft1+2)=0.0 + call four2a(r_data,nfft1,1,-1,0) + c_bigfft=cmplx(r_data(1:nfft1+2:2),r_data(2:nfft1+2:2)) + +! Get first approximation of candidate frequencies + call get_candidates_fst280(c_bigfft,nfft1,nsps,hmod,fs,fa,fb,ncand,candidates) + + ndecodes=0 + isbest1=0 + isbest8=0 + fc21=fc0 + fc28=fc0 + do icand=1,ncand + fc0=candidates(icand,1) + xsnr=candidates(icand,2) + +! Downconvert and downsample a slice of the spectrum centered on the +! rough estimate of the candidates frequency. +! Output array c2 is complex baseband sampled at 12000/ndown Sa/sec. +! The size of the downsampled c2 array is nfft2=nfft1/ndown + + call fst280_downsample(c_bigfft,nfft1,ndown,fc0,c2) +! write(*,3001) c2(nfft2/3),candidates(icand,1:2) +!3001 format(2e15.6,2f10.3) + + do isync=0,1 + if(isync.eq.0) then + fc1=0.0 + is0=nint(fs2) + ishw=is0 + isst=4 + ifhw=10 + df=.1*8400/nsps + else if(isync.eq.1) then + fc1=fc28 + is0=isbest8 + ishw=4 + isst=1 + ifhw=10 + df=.02*8400/nsps + endif + + smax1=0.0 + smax8=0.0 + do if=-ifhw,ifhw + fc=fc1+df*if + do istart=max(1,is0-ishw),is0+ishw,isst + call sync_fst280(c2,istart,fc,hmod,1,nfft2,nss,fs2,sync1) + call sync_fst280(c2,istart,fc,hmod,8,nfft2,nss,fs2,sync8) + if(sync8.gt.smax8) then + fc28=fc + isbest8=istart + smax8=sync8 + endif + if(sync1.gt.smax1) then + fc21=fc + isbest1=istart + smax1=sync1 + endif + enddo + enddo +! write(*,1022) ifile,icand,isync,fc1, & +! fc21,isbest1,smax1,fc28,isbest8,smax8 +!1022 format(i5,1x,i4,1x,i4,1x,f7.2,1x,2(1x,f7.2,1x,i5,1x,e9.3)) + enddo + + if(smax8/smax1 .lt. 0.65 ) then + fc2=fc21 + isbest=isbest1 + ntmax=4 + if(hmod .gt. 1.0) ntmax=1 + ntmin=1 + njitter=2 + else + fc2=fc28 + isbest=isbest8 + ntmax=4 + if(hmod .gt. 1.0) ntmax=1 + ntmin=1 + njitter=2 + endif + fc_synced = fc0 + fc2 + dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 + + call fst280_downsample(c_bigfft,nfft1,ndown,fc_synced,c2) + + if(abs((isbest-fs2)/nss) .lt. 0.2 .and. abs(fc_synced-1500.0).lt.0.4) then + ngoodsync=ngoodsync+1 + endif + + do ijitter=0,2 + if(ijitter.eq.0) ioffset=0 + if(ijitter.eq.1) ioffset=2 + if(ijitter.eq.2) ioffset=-2 + is0=isbest+ioffset + if(is0.lt.0) cycle + cframe=c2(is0:is0+164*nss-1) + s2=sum(cframe*conjg(cframe)) + cframe=cframe/sqrt(s2) + call get_fst280_bitmetrics(cframe,nss,hmod,bitmetrics,badsync) + + hbits=0 + where(bitmetrics(:,1).ge.0) hbits=1 + ns1=count(hbits( 1: 8).eq.(/0,0,0,1,1,0,1,1/)) + ns2=count(hbits( 9: 16).eq.(/0,1,0,0,1,1,1,0/)) + ns3=count(hbits(157:164).eq.(/0,0,0,1,1,0,1,1/)) + ns4=count(hbits(165:172).eq.(/0,1,0,0,1,1,1,0/)) + ns5=count(hbits(313:320).eq.(/0,0,0,1,1,0,1,1/)) + ns6=count(hbits(321:328).eq.(/0,1,0,0,1,1,1,0/)) + nsync_qual=ns1+ns2+ns3+ns4+ns5+ns6 +! if(nsync_qual.lt. 20) cycle + + scalefac=2.83 + llra( 1:140)=bitmetrics( 17:156, 1) + llra(141:280)=bitmetrics(173:312, 1) + llra=scalefac*llra + llrb( 1:140)=bitmetrics( 17:156, 2) + llrb(141:280)=bitmetrics(173:312, 2) + llrb=scalefac*llrb + llrc( 1:140)=bitmetrics( 17:156, 3) + llrc(141:280)=bitmetrics(173:312, 3) + llrc=scalefac*llrc + llrd( 1:140)=bitmetrics( 17:156, 4) + llrd(141:280)=bitmetrics(173:312, 4) + llrd=scalefac*llrd + apmask=0 + + do itry=ntmax,ntmin,-1 + if(itry.eq.1) llr=llra + if(itry.eq.2) llr=llrb + if(itry.eq.3) llr=llrc + if(itry.eq.4) llr=llrd + dmin=0.0 + nharderrors=-1 + unpk77_success=.false. + if(iwspr.eq.0) then + maxosd=2 + call decode280_101(llr,Keff,maxosd,ndeep,apmask,message101,cw,ntype,nharderrors,dmin) + else + maxosd=2 + call decode280_74(llr,Keff,maxosd,ndeep,apmask,message74,cw,ntype,nharderrors,dmin) + endif + if(nharderrors .ge.0) then + if(iwspr.eq.0) then + write(c77,'(77i1)') message101(1:77) + call unpack77(c77,0,msg,unpk77_success) + else + write(c77,'(50i1)') message74(1:50) + c77(51:77)='000000000000000000000110000' + call unpack77(c77,0,msg,unpk77_success) + endif + if(nharderrors .ge.0 .and. unpk77_success) then + ngood=ngood+1 + write(*,1100) nfile,icand,xsnr,dt_synced,fc_synced, & + itry,ntype,nharderrors,dmin,ijitter,nsync_qual,msg(1:22) +1100 format(i5,i5,f6.1,f6.2,f7.1,i4,i4,i4,f7.2,i6,i6,2x,a22) + goto 2002 + else + cycle + endif + endif + enddo ! metrics + enddo ! istart jitter +2002 continue + enddo !candidate list + enddo !files + nfiles=nargs-iarg+1 + write(*,*) 'nfiles: ',nfiles,' ngood: ',ngood,' ngoodsync: ',ngoodsync + write(*,1120) +1120 format("") + +999 end program fst280d + +subroutine sync_fst280(cd0,i0,f0,hmod,ncoh,np,nss,fs,sync) + +! Compute sync power for a complex, downsampled FST280 signal. + + include 'ft4s280_params.f90' + complex cd0(0:np-1) + complex, allocatable, save :: csync(:) + complex, allocatable, save :: csynct(:) + complex ctwk(8*nss) + complex z1,z2,z3 + logical first + integer isyncword(0:7) + real f0save + data isyncword/0,1,3,2,1,0,2,3/ + data first/.true./ + data f0save/0.0/ + save first,twopi,dt,fac,f0save + + p(z1)=(real(z1*fac)**2 + aimag(z1*fac)**2)**0.5 !Statement function for power + + if( first ) then + allocate( csync(8*nss) ) + allocate( csynct(8*nss) ) + twopi=8.0*atan(1.0) + dt=1/fs + k=1 + phi=0.0 + do i=0,7 + dphi=twopi*hmod*(isyncword(i)-1.5)/real(nss) + do j=1,nss + csync(k)=cmplx(cos(phi),sin(phi)) + phi=mod(phi+dphi,twopi) + k=k+1 + enddo + enddo + first=.false. + fac=1.0/(8.0*nss) + endif + + if(f0.ne.f0save) then + dphi=twopi*f0*dt + phi=0.0 + do i=1,8*nss + ctwk(i)=cmplx(cos(phi),sin(phi)) + phi=mod(phi+dphi,twopi) + enddo + csynct=ctwk*csync + f0save=f0 + endif + + i1=i0 !Costas arrays + i2=i0+78*nss + i3=i0+156*nss + + s1=0.0 + s2=0.0 + s3=0.0 + nsec=8/ncoh + do i=1,nsec + is=(i-1)*ncoh*nss + z1=sum(cd0(i1+is:i1+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + z2=sum(cd0(i2+is:i2+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + z3=sum(cd0(i3+is:i3+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + s1=s1+abs(z1)/(8*nss) + s2=s2+abs(z2)/(8*nss) + s3=s3+abs(z3)/(8*nss) + enddo + + sync = s1+s2+s3 + + return +end subroutine sync_fst280 + +subroutine fst280_downsample(c_bigfft,nfft1,ndown,f0,c1) + +! Output: Complex data in c(), sampled at 12000/ndown Hz + + complex c_bigfft(0:nfft1/2) + complex c1(0:nfft1/ndown-1) + + df=12000.0/nfft1 + i0=nint(f0/df) + c1(0)=c_bigfft(i0) + nfft2=nfft1/ndown + do i=1,nfft2/2 + if(i0+i.le.nfft1/2) c1(i)=c_bigfft(i0+i) + if(i0-i.ge.0) c1(nfft2-i)=c_bigfft(i0-i) + enddo + c1=c1/nfft2 + call four2a(c1,nfft2,1,1,1) !c2c FFT back to time domain + return + +end subroutine fst280_downsample + +subroutine get_candidates_fst280(c_bigfft,nfft1,nsps,hmod,fs,fa,fb,ncand,candidates) + + complex c_bigfft(0:nfft1/2) + real candidates(100,3) + real s(18000) + real s2(18000) + data nfft1z/-1/ + save nfft1z + + nh1=nfft1/2 + df1=fs/nfft1 + baud=fs/nsps + df2=baud/2.0 + nd=df1/df2 + ndh=nd/2 + ia=fa/df2 + ib=fb/df2 + s=0. + do i=ia,ib + j0=nint(i*df2/df1) + do j=j0-ndh,j0+ndh + s(i)=s(i) + real(c_bigfft(j))**2 + aimag(c_bigfft(j))**2 + enddo + enddo + call pctile(s(ia:ib),ib-ia+1,30,base) + s=s/base + nh=hmod + do i=ia,ib + s2(i)=s(i-nh*3) + s(i-nh) +s(i+nh) +s(i+nh*3) + s2(i)=db(s2(i)) - 48.5 + enddo + + if(nh.eq.1) thresh=-29.5 + if(nh.eq.2) thresh=-27.0 + if(nh.eq.4) thresh=-25.0 + + ncand=0 + do i=ia,ib + if((s2(i).gt.s2(i-1)).and. & + (s2(i).gt.s2(i+1)).and. & + (s2(i).gt.thresh).and.ncand.lt.100) then + ncand=ncand+1 + candidates(ncand,1)=df2*i + candidates(ncand,2)=s2(i) + endif + enddo + + return +end subroutine get_candidates_fst280 diff --git a/lib/fst280/fst280sim.f90 b/lib/fst280/fst280sim.f90 new file mode 100644 index 000000000..72026344b --- /dev/null +++ b/lib/fst280/fst280sim.f90 @@ -0,0 +1,147 @@ +program fst280sim + +! Generate simulated signals for experimental slow FT4 mode + + use wavhdr + use packjt77 + include 'ft4s280_params.f90' !Set various constants + type(hdr) h !Header for .wav file + character arg*12,fname*17 + character msg37*37,msgsent37*37,c77*77 + character tr_designator*1 + complex, allocatable :: c0(:) + complex, allocatable :: c(:) + real, allocatable :: wave(:) + integer itone(NN) + integer*1 msgbits(101) + integer*2, allocatable :: iwave(:) !Generated full-length waveform + +! Get command-line argument(s) + nargs=iargc() + if(nargs.ne.9) then + print*,'Usage: fst280sim "message" type f0 DT h fdop del nfiles snr' + print*,'Examples: fst280sim "K1JT K9AN EN50" C 1500 0.0 1.0 0.1 1.0 10 -15' + print*,'A: 15 sec' + print*,'B: 30 sec' + print*,'C: 1 min' + print*,'D: 2 min' + print*,'E: 5 min' + go to 999 + endif + call getarg(1,msg37) !Message to be transmitted + call getarg(2,arg) + read(arg,*) tr_designator !TR selector + call getarg(3,arg) + read(arg,*) f0 !Frequency (only used for single-signal) + call getarg(4,arg) + read(arg,*) xdt !Time offset from nominal (s) + call getarg(5,arg) + read(arg,*) hmod !Modulation index, h + call getarg(6,arg) + read(arg,*) fspread !Watterson frequency spread (Hz) + call getarg(7,arg) + read(arg,*) delay !Watterson delay (ms) + call getarg(8,arg) + read(arg,*) nfiles !Number of files + call getarg(9,arg) + read(arg,*) snrdb !SNR_2500 + + nfiles=abs(nfiles) + twopi=8.0*atan(1.0) + fs=12000.0 !Sample rate (Hz) + dt=1.0/fs !Sample interval (s) + baud=1.0/tt !Keying rate (baud) + select case (tr_designator) + case('A') + nsps=800 + nmax=15*12000 + case('B') + nsps=1680 + nmax=30*12000 + case('C') + nsps=4000 + nmax=60*12000 + case('D') + nsps=8400 + nmax=120*12000 + case('E') + nsps=21504 + nmax=300*12000 + end select + nz=nsps*NN + nz2=nsps*NN2 + txt=nz2*dt !Transmission length (s) + tt=nsps*dt !Duration of symbols (s) + allocate( c0(0:nmax-1) ) + allocate( c(0:nmax-1) ) + allocate( wave(nmax) ) + allocate( iwave(nmax) ) + + bandwidth_ratio=2500.0/(fs/2.0) + sig=sqrt(2*bandwidth_ratio) * 10.0**(0.05*snrdb) + if(snrdb.gt.90.0) sig=1.0 + + i3=-1 + n3=-1 + call pack77(msg37,i3,n3,c77) + call genfst280(msg37,0,msgsent37,msgbits,itone,iwspr) + + write(*,*) + write(*,'(a9,a37)') 'Message: ',msgsent37 + write(*,1000) f0,xdt,hmod,txt,snrdb +1000 format('f0:',f9.3,' DT:',f6.2,' hmod:',f6.3,' TxT:',f6.1,' SNR:',f6.1) + write(*,*) + if(i3.eq.1) then + write(*,*) ' mycall hiscall hisgrid' + write(*,'(28i1,1x,i1,1x,28i1,1x,i1,1x,i1,1x,15i1,1x,3i1)') msgbits(1:77) + else + write(*,'(a14)') 'Message bits: ' + write(*,'(50i1,1x,24i1)') msgbits + endif + write(*,*) + write(*,'(a17)') 'Channel symbols: ' + write(*,'(10i1)') itone + write(*,*) + +! call sgran() + + fsample=12000.0 + icmplx=1 + call gen_fst280wave(itone,NN,nsps,nmax,fsample,hmod,f0,icmplx,c0,wave) + k=nint((xdt+1.0)/dt)-nsps + c0=cshift(c0,-k) + if(k.gt.0) c0(0:k-1)=0.0 + if(k.lt.0) c0(nmax+k:nmax-1)=0.0 + + do ifile=1,nfiles + c=c0 + if(fspread.ne.0.0 .or. delay.ne.0.0) call watterson(c,nmax,NZ,fs,delay,fspread) + c=sig*c + wave=real(c) + if(snrdb.lt.90) then + do i=1,nmax !Add gaussian noise at specified SNR + xnoise=gran() + wave(i)=wave(i) + xnoise + enddo + endif + gain=100.0 + if(snrdb.lt.90.0) then + wave=gain*wave + else + datpk=maxval(abs(wave)) + fac=32766.9/datpk + wave=fac*wave + endif + if(any(abs(wave).gt.32767.0)) print*,"Warning - data will be clipped." + iwave=nint(wave) + h=default_header(12000,nmax) + write(fname,1102) ifile +1102 format('000000_',i6.6,'.wav') + open(10,file=fname,status='unknown',access='stream') + write(10) h,iwave !Save to *.wav file + close(10) + write(*,1110) ifile,xdt,f0,snrdb,fname +1110 format(i4,f7.2,f8.2,f7.1,2x,a17) + enddo + +999 end program fst280sim diff --git a/lib/fst280/ft4s280_params.f90 b/lib/fst280/ft4s280_params.f90 new file mode 100644 index 000000000..dc1519160 --- /dev/null +++ b/lib/fst280/ft4s280_params.f90 @@ -0,0 +1,8 @@ +! FT4S280 +! LDPC(280,101)/CRC24 code, six 4x4 Costas arrays for sync, ramp-up and ramp-down symbols + +parameter (KK=77) !Information bits (77 + CRC24) +parameter (ND=140) !Data symbols +parameter (NS=24) !Sync symbols +parameter (NN=NS+ND) !Sync and data symbols (164) +parameter (NN2=NS+ND+2) !Total channel symbols (166) diff --git a/lib/fst280/genfst280.f90 b/lib/fst280/genfst280.f90 new file mode 100644 index 000000000..e074b5080 --- /dev/null +++ b/lib/fst280/genfst280.f90 @@ -0,0 +1,103 @@ +subroutine genfst280(msg0,ichk,msgsent,msgbits,i4tone,iwspr) + +! Input: +! - msg0 requested message to be transmitted +! - ichk if ichk=1, return only msgsent +! - msgsent message as it will be decoded +! - i4tone array of audio tone values, {0,1,2,3} +! - iwspr 0: (280,101)/crc24, 1: (280,74)/crc24 +! +! Frame structure: +! s8 d70 s8 d70 s8 + +! Message duration: TxT = 164*8400/12000 = 114.8 s + + use packjt77 + include 'ft4s280_params.f90' + character*37 msg0 + character*37 message !Message to be generated + character*37 msgsent !Message as it will be received + character*77 c77 + character*24 c24 + integer*4 i4tone(NN),itmp(ND) + integer*1 codeword(2*ND) + integer*1 msgbits(101),rvec(77) + integer isyncword(8) + integer ncrc24 + logical unpk77_success + data isyncword/0,1,3,2,1,0,2,3/ + data rvec/0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,0, & + 1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, & + 0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/ + message=msg0 + + do i=1, 37 + if(ichar(message(i:i)).eq.0) then + message(i:37)=' ' + exit + endif + enddo + do i=1,37 !Strip leading blanks + if(message(1:1).ne.' ') exit + message=message(i+1:) + enddo + + i3=-1 + n3=-1 + call pack77(message,i3,n3,c77) + call unpack77(c77,0,msgsent,unpk77_success) !Unpack to get msgsent + msgbits=0 + iwspr=0 + if(i3.eq.0.and.n3.eq.6) then + iwspr=1 + read(c77,'(50i1)') msgbits(1:50) + call get_crc24(msgbits,74,ncrc24) + write(c24,'(b24.24)') ncrc24 + read(c24,'(24i1)') msgbits(51:74) + else + read(c77,'(77i1)') msgbits(1:77) + call get_crc24(msgbits,101,ncrc24) + write(c24,'(b24.24)') ncrc24 + read(c24,'(24i1)') msgbits(78:101) + endif + + if(ichk.eq.1) go to 999 + if(unpk77_success) go to 2 +1 msgbits=0 + itone=0 + msgsent='*** bad message *** ' + go to 999 + + entry get_ft4s280_tones_from_bits(msgbits,i4tone,iwspr) + +2 continue + + if(iwspr.eq.0) then + call encode280_101(msgbits,codeword) + else + call encode280_74(msgbits(1:74),codeword) + endif + +! Grayscale mapping: +! bits tone +! 00 0 +! 01 1 +! 11 2 +! 10 3 + + do i=1,ND + is=codeword(2*i)+2*codeword(2*i-1) + if(is.le.1) itmp(i)=is + if(is.eq.2) itmp(i)=3 + if(is.eq.3) itmp(i)=2 + enddo + + i4tone(1:8)=isyncword + i4tone(9:78)=itmp(1:70) + i4tone(79:86)=isyncword + i4tone(87:156)=itmp(71:140) + i4tone(157:164)=isyncword + +999 return + +end subroutine genfst280 diff --git a/lib/fst280/get_crc24.f90 b/lib/fst280/get_crc24.f90 new file mode 100644 index 000000000..cb7f3a05f --- /dev/null +++ b/lib/fst280/get_crc24.f90 @@ -0,0 +1,25 @@ +subroutine get_crc24(mc,len,ncrc) +! +! 1. To calculate 24-bit CRC, mc(1:len-24) is the message and mc(len-23:len) are zero. +! 2. To check a received CRC, mc(1:len) is the received message plus CRC. +! ncrc will be zero if the received message/CRC are consistent. +! + character c24*24 + integer*1 mc(len) + integer*1 r(25),p(25) + integer ncrc +! polynomial for 24-bit CRC 0x100065b + data p/1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,1,0,1,1/ + +! divide by polynomial + r=mc(1:25) + do i=0,len-25 + r(25)=mc(i+25) + r=mod(r+r(1)*p,2) + r=cshift(r,1) + enddo + + write(c24,'(24b1)') r(1:24) + read(c24,'(b24.24)') ncrc + +end subroutine get_crc24 diff --git a/lib/fst280/get_fst280_bitmetrics.f90 b/lib/fst280/get_fst280_bitmetrics.f90 new file mode 100644 index 000000000..a50088f66 --- /dev/null +++ b/lib/fst280/get_fst280_bitmetrics.f90 @@ -0,0 +1,118 @@ +subroutine get_fst280_bitmetrics(cd,nss,hmod,bitmetrics,badsync) + + include 'ft4s280_params.f90' + complex cd(0:NN*nss-1) + complex cs(0:3,NN) + complex csymb(nss) + complex, allocatable, save :: c1(:,:) ! ideal waveforms, 20 samples per symbol, 4 tones + complex cp(0:3) ! accumulated phase shift over symbol types 0:3 + complex csum,cterm + integer icos8(0:7) + integer graymap(0:3) + integer ip(1) + logical one(0:65535,0:15) ! 65536 8-symbol sequences, 16 bits + logical first + logical badsync + real bitmetrics(2*NN,4) + real s2(0:65535) + real s4(0:3,NN) + data icos8/0,1,3,2,1,0,2,3/ + data graymap/0,1,3,2/ + data first/.true./ + save first,one,cp + + if(first) then + allocate(c1(nss,0:3)) + one=.false. + do i=0,65535 + do j=0,15 + if(iand(i,2**j).ne.0) one(i,j)=.true. + enddo + enddo + twopi=8.0*atan(1.0) + dphi=twopi*hmod/nss + do itone=0,3 + dp=(itone-1.5)*dphi + phi=0.0 + do j=1,nss + c1(j,itone)=cmplx(cos(phi),sin(phi)) + phi=mod(phi+dp,twopi) + enddo + cp(itone)=cmplx(cos(phi),sin(phi)) + enddo + first=.false. + endif + + do k=1,NN + i1=(k-1)*NSS + csymb=cd(i1:i1+NSS-1) + do itone=0,3 + cs(itone,k)=sum(csymb*conjg(c1(:,itone))) + enddo + s4(0:3,k)=abs(cs(0:3,k)) + enddo + +! Sync quality check + is1=0 + is2=0 + is3=0 + badsync=.false. + ibmax=0 + + do k=1,8 + ip=maxloc(s4(:,k)) + if(icos8(k-1).eq.(ip(1)-1)) is1=is1+1 + ip=maxloc(s4(:,k+78)) + if(icos8(k-1).eq.(ip(1)-1)) is2=is2+1 + ip=maxloc(s4(:,k+156)) + if(icos8(k-1).eq.(ip(1)-1)) is3=is3+1 + enddo + nsync=is1+is2+is3 !Number of correct hard sync symbols, 0-24 + + badsync=.false. +! if(nsync .lt. 8) then +! badsync=.true. +! return +! endif + + bitmetrics=0.0 + do nseq=1,4 !Try coherent sequences of 1, 2, and 4 symbols + if(nseq.eq.1) nsym=1 + if(nseq.eq.2) nsym=2 + if(nseq.eq.3) nsym=4 + if(nseq.eq.4) nsym=8 + nt=4**nsym + do ks=1,NN-nsym+1,nsym + s2=0 + do i=0,nt-1 + csum=0 + cterm=1 + do j=0,nsym-1 + ntone=mod(i/4**(nsym-1-j),4) + csum=csum+cs(graymap(ntone),ks+j)*cterm + cterm=cterm*conjg(cp(graymap(ntone))) + enddo + s2(i)=abs(csum) + enddo + ipt=1+(ks-1)*2 + if(nsym.eq.1) ibmax=1 + if(nsym.eq.2) ibmax=3 + if(nsym.eq.4) ibmax=7 + if(nsym.eq.8) ibmax=15 + do ib=0,ibmax + bm=maxval(s2(0:nt-1),one(0:nt-1,ibmax-ib)) - & + maxval(s2(0:nt-1),.not.one(0:nt-1,ibmax-ib)) + if(ipt+ib.gt.2*NN) cycle + bitmetrics(ipt+ib,nseq)=bm + enddo + enddo + enddo + bitmetrics(321:328,4)=bitmetrics(321:328,3) + + call normalizebmet(bitmetrics(:,1),2*NN) + call normalizebmet(bitmetrics(:,2),2*NN) + call normalizebmet(bitmetrics(:,3),2*NN) + call normalizebmet(bitmetrics(:,4),2*NN) + return + +end subroutine get_fst280_bitmetrics diff --git a/lib/fst280/ldpc_280_101_generator.f90 b/lib/fst280/ldpc_280_101_generator.f90 new file mode 100644 index 000000000..521e80026 --- /dev/null +++ b/lib/fst280/ldpc_280_101_generator.f90 @@ -0,0 +1,182 @@ +character*26 g(179) + +data g/ & + "c919bcbfe4091279702a761e98", & + "51b952dddd36200cf73cc1ed30", & + "15871d32e8e888439180cf6fd8", & + "581f858f6c89ee5ccb91664358", & + "3515e85cedf905eda366a8fc20", & + "e9fcaa6aaa9bab21bc91174e80", & + "0ac73221d424e8747628b13968", & + "4999f7116446f1a7a7a1453a30", & + "0e92773bff2a6d4f09caa48898", & + "7dfaec97c17679f6c3b6a425f0", & + "00707d76a2a7d90297ee39f660", & + "8048cc93fc4ad84ccfc021e6e0", & + "0c13df64062fed419c9bf43400", & + "5523d84459c826b7bc3335d508", & + "828ee2552144d041ed44ada8e0", & + "3f1b89fbd93f674df4813f0898", & + "4e13df64062fed419c9bf43400", & + "5d8645307d3d442991d6efafd0", & + "e5cd9b98d73aab17ce04c4df10", & + "06d26e11e2d02e9cb4f191c2b0", & + "5630cebc5b3a09f7d4fe58fab0", & + "bbfa9591589229738ecbc19288", & + "c98654d1f1f16d507e9bb77cf0", & + "c2af2107bb2bdff49d909dc730", & + "51da7da0c9b1bd18a15f580068", & + "5bdfd83e7ca3097146a5359428", & + "34fc4d397d97ca3ceb272f49a0", & + "6716a6d027ade94010e9aa90b0", & + "62ac7bb089d1a13f6e89f92348", & + "737c3ab63210e195e92e8ad478", & + "db2da5b8a21d22a7122ad80e60", & + "1226525dba4221d4768a495878", & + "a99deb4c9b7d316917b1ece958", & + "8123fb46556f22a0b57bdc7eb0", & + "cc6a80e87a7a9bf8addb17a6a8", & + "3d42bb6ca1c8d30e6cee77aa10", & + "ad15a0c2f36d4409a458cc83c0", & + "766a04039736bd8be23513ae58", & + "257a3da77558d7c707170c30c8", & + "8e54a55fd9f00eb669ab787678", & + "4ef1a73cc9da8670d83bebc588", & + "be8bb82558d44fea1ab27376a0", & + "ea9db4f88c60edf410cb0128d8", & + "a84e19a5261818262ee7247278", & + "51f99e4ea17cf84038d4e00bd0", & + "610560db4095fc44d2465308a0", & + "7688745b59c3d6baa6950c4f50", & + "4b8794914d365b6802bd62a9c8", & + "f62c211d05ed28802b9d278298", & + "b9cd45b2ffa8c0dd688f8d2bc0", & + "68555e81f4227a48e76878bc98", & + "7ab58f11d41a2d38b80d2a7558", & + "aba2d33e69077b6acad393af68", & + "81e5f58fa3ab563e73706201a8", & + "7586aea816750c41671eaa7db8", & + "af37b0a97ba5334a3dd01948e8", & + "4fdc03c263a0c42dcc265f7dc8", & + "b23f2d7f28748944cdfffd5af0", & + "5c1e6f37dfba8feacaafdb0f78", & + "3a85b051f4f1c930d921f60828", & + "72319352bd8022ce2cae2e7858", & + "78b79f633ac6879e3ac3a005a0", & + "9f0c470609669953b23328de60", & + "86d3745d50142c82a066ab9490", & + "743e7bf411490f36a9799e37e8", & + "9b8378677870933ef360d7e418", & + "5f7adbf515b663a1434b0d47d8", & + "13249a96b14c6cdcfae5009eb0", & + "da9570e0a52125d0dc4dec4430", & + "ada13ce2dbcb57e2f5b31172f0", & + "84f5485886d4157e9d37efb4d0", & + "23f58c3200bab4ae5dee54edd0", & + "d4377aadf8acb19d4369613ac8", & + "17cefcf65c87885fb6c4d537a0", & + "59d70b8536488298930aaea7f8", & + "49e8dbb08c2ecdaa84bb6a5378", & + "e1694479ecc1f87e503f959e50", & + "dbb3fc94f0f70d4bd4dcf302d8", & + "4ccb3a56f80c236424683b1588", & + "f4f123c72596a00397d56fcdf8", & + "13f9cf266a6957b87cd2b576f0", & + "0904d341bc0878460cd8361ac0", & + "69fd534caf2cccf9c90659a038", & + "757d3d95089a5bc20a7b77c618", & + "30df1d7b8124415c73190b08d8", & + "d39319584987dce0c44176d5d8", & + "1a81df299eb7434a5b6b9322a0", & + "fe4acfab1c22c7bea222f1a6b0", & + "2f2fde37fa8f87a318f7bcda10", & + "fae712210c23665aa7a3f10620", & + "977b8407c7fd22d7715077ee78", & + "2ab2b355b3477df0b738c49d48", & + "93a2468cfd11a522b310069d88", & + "0e5ae6e789ded3c0d436359318", & + "9ece0b13a3c06d560a15d3c448", & + "838e8bbf5e671503ea72ba3118", & + "7c827de9a87d740763c69c6778", & + "1fe395e4e2e6d1373602243488", & + "f2c4efee3d0ce2e22749be9e20", & + "46405cca0e40f36ab83de4a998", & + "8b6e931355a79630ef2dbdbdb8", & + "10df1d3b8124415c72190b08d8", & + "cdff258b07a4f7cfe5c2210ba8", & + "1515e85cedf904eda366a8fc20", & + "a38276f2d077abc1da5e177868", & + "67a7b5ab66f21f391d306c3330", & + "29492cc630f9bad1fdedf0c990", & + "490a6dd38170eab178f7cebf78", & + "ca9db4e88c60edf410cf0128d8", & + "e3f1c23fa8531fb1e4c7768d88", & + "39d7d8fbbb689b2a9bedfd4dd0", & + "d1b952dd5d36200cf734c1ed30", & + "0820a5ccb970d1ab109d84d700", & + "58bc3c509fcd7874e9b1533ba8", & + "08ed7724ac66b7974499b12f40", & + "4738529b2fd04afd89184b64b8", & + "7155b496e3b9f687135b4c55b8", & + "b5d1d3cf38b1765dd730d8b960", & + "296de2c373773a869b9cf804c8", & + "1cdf18b99bcc47ae72bf59df68", & + "ad0888db89dd794be0b2660e98", & + "1f2a8db9db19cd4d69a735d930", & + "44b720007480382206fdbfbb18", & + "c63817aad3801fb993ea9032c0", & + "d44707db5a0b489fd48748cca8", & + "49f98a67c6e128a5300f7ccc50", & + "04849fa9da91d4514355406388", & + "dfad3a11788cf6f6517f987de8", & + "47078a19e38a0763cabd7c8d70", & + "aafa7f864f0da5bc78f8e57ba8", & + "8acb5a34e18e111023b3e7b1f8", & + "5acc41263d6aa1767e5e6acdc8", & + "27623a9f6c1174e35394191820", & + "1f2bde9c006b3b687964b1c5e0", & + "b01c6e357bce202244b4a88d08", & + "61c85d74d7e97576507c9b0e88", & + "bcad5a44d75ae40bc43559d268", & + "10584eaf319552194418563de0", & + "b29b011d717d10a22de0983980", & + "2f9b42d7d2299449491c612b20", & + "389ba33f5fec3bfb3a0ef86b50", & + "3df89f78c19fb27ae7ff19d360", & + "65ff6ba4e107aa919a6afb4ff0", & + "39b607c3f09679a62e134cd390", & + "94ad06f7b7414727d92f998930", & + "169200459898ae0bc7f06714a0", & + "c7a5a945adebb554cb4d86a830", & + "f37c3ab63230e195e92e8ad478", & + "559a51262e91aa9ba0fa96af48", & + "fb2998ca916a557463d00fb160", & + "aa32462ada57a76ae132fc8de8", & + "e6df6b19f58bfee0b96b731b90", & + "e984335d40a54fe914a6249110", & + "ea73d8f3f14bd9fe2374e39120", & + "3adab8e51c36f53584e3669c88", & + "74ef69f64dc4fef86c3b1fe640", & + "d01c6bc112d7ae3e4ba4820a78", & + "62923979fd3c3d1153bcaaf338", & + "038f72995b5072df8fe5f4dfa0", & + "9f07e7cea2f1476fb035978790", & + "2a5aad6a75d5c86cab38fd0070", & + "a254a09cc3180854688d2aa9c8", & + "0495639712a04820f7038ae7c0", & + "d99fc716ca825ad45cca8f4518", & + "01b8d558073c0377ce67344a50", & + "2fbd0f86a17c3f93713fbd09a0", & + "c29dc84bec7b4cd00dd1c17380", & + "5e6238b823f530ae017a03f0e0", & + "51203d329c68b061977d78d4c0", & + "1186729e08cf1dfbec30237968", & + "40363018b431224a1f559d2908", & + "e334e78442b614a0c9a377e1b8", & + "ff2eda86339f589f96382f52e0", & + "58a30e07fc7a37a4f858623778", & + "f5067fe407a4c3b94ce7b63e48", & + "1d09ced788a3642bc0ec640ec8", & + "17734ca67d53cd9d8595970668", & + "47953c2105bd94bff079672740", & + "3444682d1dc0ab486036c1b0d0"/ diff --git a/lib/fst280/ldpc_280_101_parity.f90 b/lib/fst280/ldpc_280_101_parity.f90 new file mode 100644 index 000000000..b1cabb7d1 --- /dev/null +++ b/lib/fst280/ldpc_280_101_parity.f90 @@ -0,0 +1,476 @@ +data Mn/ & + 150, 151, 161, & + 6, 164, 172, & + 92, 128, 158, & + 2, 63, 135, & + 3, 14, 22, & + 4, 18, 29, & + 5, 17, 164, & + 7, 99, 179, & + 8, 88, 115, & + 9, 62, 110, & + 10, 107, 154, & + 11, 50, 140, & + 12, 28, 33, & + 13, 31, 170, & + 15, 69, 175, & + 16, 77, 178, & + 19, 70, 91, & + 20, 95, 177, & + 21, 96, 106, & + 23, 129, 168, & + 24, 49, 169, & + 25, 65, 102, & + 26, 82, 171, & + 27, 45, 137, & + 30, 89, 119, & + 32, 148, 158, & + 34, 94, 152, & + 35, 44, 92, & + 36, 39, 138, & + 37, 55, 58, & + 38, 121, 165, & + 40, 81, 162, & + 41, 139, 150, & + 42, 43, 83, & + 46, 80, 114, & + 47, 52, 54, & + 48, 166, 173, & + 38, 53, 87, & + 56, 64, 126, & + 57, 67, 127, & + 59, 156, 159, & + 60, 97, 133, & + 61, 118, 161, & + 66, 100, 123, & + 68, 124, 131, & + 71, 101, 155, & + 72, 74, 144, & + 73, 112, 141, & + 75, 136, 149, & + 59, 78, 117, & + 79, 130, 163, & + 84, 93, 113, & + 86, 108, 163, & + 103, 146, 157, & + 70, 104, 145, & + 105, 128, 142, & + 74, 109, 122, & + 54, 111, 153, & + 116, 154, 176, & + 120, 132, 167, & + 21, 125, 147, & + 134, 143, 166, & + 7, 81, 160, & + 32, 99, 174, & + 1, 93, 104, & + 2, 69, 98, & + 3, 33, 152, & + 4, 46, 159, & + 5, 126, 178, & + 6, 127, 147, & + 8, 101, 110, & + 9, 73, 158, & + 10, 120, 123, & + 11, 122, 125, & + 12, 58, 170, & + 13, 88, 105, & + 14, 133, 150, & + 15, 92, 100, & + 16, 90, 108, & + 17, 44, 106, & + 18, 35, 175, & + 19, 94, 179, & + 20, 97, 153, & + 22, 109, 130, & + 23, 63, 140, & + 24, 37, 146, & + 25, 141, 168, & + 26, 95, 115, & + 27, 107, 149, & + 28, 91, 168, & + 29, 134, 144, & + 30, 31, 169, & + 34, 40, 96, & + 36, 156, 172, & + 39, 61, 135, & + 41, 42, 121, & + 43, 57, 117, & + 45, 62, 72, & + 47, 137, 167, & + 48, 83, 116, & + 49, 65, 173, & + 1, 50, 141, & + 2, 8, 150, & + 3, 62, 140, & + 4, 104, 124, & + 5, 128, 139, & + 6, 64, 159, & + 7, 103, 176, & + 2, 11, 104, & + 9, 71, 85, & + 10, 80, 131, & + 11, 17, 130, & + 12, 148, 156, & + 13, 39, 164, & + 14, 15, 167, & + 14, 32, 89, & + 16, 114, 135, & + 8, 164, 169, & + 18, 107, 129, & + 19, 53, 102, & + 20, 134, 170, & + 21, 43, 145, & + 22, 24, 76, & + 23, 44, 146, & + 19, 22, 101, & + 25, 41, 48, & + 26, 46, 58, & + 27, 82, 87, & + 28, 78, 179, & + 29, 73, 81, & + 30, 116, 161, & + 31, 96, 157, & + 15, 58, 172, & + 10, 33, 160, & + 34, 110, 118, & + 33, 35, 113, & + 36, 166, 175, & + 32, 37, 152, & + 38, 57, 74, & + 13, 82, 176, & + 40, 42, 45, & + 25, 57, 177, & + 40, 120, 136, & + 21, 92, 121, & + 23, 34, 147, & + 12, 45, 54, & + 3, 46, 48, & + 47, 91, 169, & + 26, 61, 132, & + 49, 123, 147, & + 1, 79, 88, & + 51, 97, 101, & + 52, 155, 177, & + 24, 72, 105, & + 54, 84, 106, & + 55, 63, 126, & + 56, 72, 163, & + 38, 63, 170, & + 37, 71, 178, & + 20, 49, 59, & + 30, 60, 117, & + 61, 65, 137, & + 41, 98, 119, & + 47, 51, 62, & + 6, 76, 131, & + 55, 70, 81, & + 66, 111, 119, & + 60, 67, 94, & + 68, 112, 132, & + 9, 69, 157, & + 70, 75, 89, & + 69, 108, 153, & + 44, 53, 77, & + 29, 130, 149, & + 65, 103, 125, & + 74, 85, 156, & + 56, 67, 68, & + 77, 138, 144, & + 28, 95, 138, & + 79, 133, 142, & + 35, 50, 86, & + 73, 78, 137, & + 27, 126, 175, & + 83, 100, 143, & + 42, 142, 168, & + 40, 48, 158, & + 86, 95, 174, & + 39, 109, 129, & + 59, 88, 125, & + 6, 89, 155, & + 36, 90, 102, & + 75, 97, 141, & + 43, 146, 148, & + 93, 149, 168, & + 52, 83, 94, & + 80, 87, 106, & + 91, 96, 143, & + 3, 43, 126, & + 98, 154, 162, & + 99, 115, 173, & + 5, 84, 100, & + 64, 133, 154, & + 90, 117, 158, & + 7, 108, 151, & + 4, 128, 167, & + 105, 127, 136, & + 1, 83, 114, & + 107, 127, 134, & + 4, 108, 170, & + 92, 109, 171, & + 110, 113, 122, & + 111, 124, 166, & + 12, 112, 150, & + 2, 95, 105, & + 17, 114, 118, & + 99, 139, 144, & + 116, 165, 178, & + 5, 22, 73, & + 16, 115, 162, & + 13, 34, 41, & + 120, 122, 151, & + 121, 160, 172, & + 8, 37, 102, & + 123, 140, 165, & + 7, 53, 93, & + 9, 10, 130, & + 11, 30, 58, & + 31, 66, 179, & + 14, 31, 45, & + 15, 88, 129, & + 18, 101, 148, & + 16, 62, 127, & + 17, 20, 68, & + 19, 86, 98, & + 25, 106, 163, & + 135, 152, 163, & + 23, 124, 137, & + 21, 28, 71, & + 24, 26, 153, & + 29, 90, 123, & + 32, 113, 134, & + 35, 57, 169, & + 27, 50, 139, & + 33, 60, 65, & + 38, 61, 142, & + 145, 153, 154, & + 39, 67, 81, & + 36, 84, 133, & + 18, 161, 173, & + 93, 155, 171, & + 42, 99, 131, & + 49, 87, 162, & + 51, 56, 168, & + 47, 125, 144, & + 44, 143, 159, & + 46, 75, 138, & + 52, 78, 107, & + 54, 109, 174, & + 64, 110, 179, & + 159, 165, 174, & + 66, 135, 171, & + 63, 76, 117, & + 59, 111, 120, & + 72, 160, 166, & + 70, 118, 156, & + 55, 157, 173, & + 74, 100, 176, & + 77, 112, 145, & + 69, 141, 147, & + 94, 140, 151, & + 51, 82, 104, & + 85, 98, 167, & + 80, 119, 146, & + 97, 122, 172, & + 90, 96, 132, & + 79, 91, 178, & + 103, 136, 152, & + 1, 76, 85, & + 115, 121, 149, & + 116, 175, 177/ + +data Nm/ & + 65, 102, 151, 207, 278, 0, & + 4, 66, 103, 109, 214, 0, & + 5, 67, 104, 147, 198, 0, & + 6, 68, 105, 205, 209, 0, & + 7, 69, 106, 201, 218, 0, & + 2, 70, 107, 165, 190, 0, & + 8, 63, 108, 204, 225, 0, & + 9, 71, 103, 118, 223, 0, & + 10, 72, 110, 170, 226, 0, & + 11, 73, 111, 134, 226, 0, & + 12, 74, 109, 112, 227, 0, & + 13, 75, 113, 146, 213, 0, & + 14, 76, 114, 140, 220, 0, & + 5, 77, 115, 116, 229, 0, & + 15, 78, 115, 133, 230, 0, & + 16, 79, 117, 219, 232, 0, & + 7, 80, 112, 215, 233, 0, & + 6, 81, 119, 231, 249, 0, & + 17, 82, 120, 125, 234, 0, & + 18, 83, 121, 160, 233, 0, & + 19, 61, 122, 144, 238, 0, & + 5, 84, 123, 125, 218, 0, & + 20, 85, 124, 145, 237, 0, & + 21, 86, 123, 154, 239, 0, & + 22, 87, 126, 142, 235, 0, & + 23, 88, 127, 149, 239, 0, & + 24, 89, 128, 183, 243, 0, & + 13, 90, 129, 179, 238, 0, & + 6, 91, 130, 174, 240, 0, & + 25, 92, 131, 161, 227, 0, & + 14, 92, 132, 228, 229, 0, & + 26, 64, 116, 138, 241, 0, & + 13, 67, 134, 136, 244, 0, & + 27, 93, 135, 145, 220, 0, & + 28, 81, 136, 181, 242, 0, & + 29, 94, 137, 191, 248, 0, & + 30, 86, 138, 159, 223, 0, & + 31, 38, 139, 158, 245, 0, & + 29, 95, 114, 188, 247, 0, & + 32, 93, 141, 143, 186, 0, & + 33, 96, 126, 163, 220, 0, & + 34, 96, 141, 185, 251, 0, & + 34, 97, 122, 193, 198, 0, & + 28, 80, 124, 173, 255, 0, & + 24, 98, 141, 146, 229, 0, & + 35, 68, 127, 147, 256, 0, & + 36, 99, 148, 164, 254, 0, & + 37, 100, 126, 147, 186, 0, & + 21, 101, 150, 160, 252, 0, & + 12, 102, 181, 243, 0, 0, & + 152, 164, 253, 271, 0, 0, & + 36, 153, 195, 257, 0, 0, & + 38, 120, 173, 225, 0, 0, & + 36, 58, 146, 155, 258, 0, & + 30, 156, 166, 266, 0, 0, & + 39, 157, 177, 253, 0, 0, & + 40, 97, 139, 142, 242, 0, & + 30, 75, 127, 133, 227, 0, & + 41, 50, 160, 189, 263, 0, & + 42, 161, 168, 244, 0, 0, & + 43, 95, 149, 162, 245, 0, & + 10, 98, 104, 164, 232, 0, & + 4, 85, 156, 158, 262, 0, & + 39, 107, 202, 259, 0, 0, & + 22, 101, 162, 175, 244, 0, & + 44, 167, 228, 261, 0, 0, & + 40, 168, 177, 247, 0, 0, & + 45, 169, 177, 233, 0, 0, & + 15, 66, 170, 172, 269, 0, & + 17, 55, 166, 171, 265, 0, & + 46, 110, 159, 238, 0, 0, & + 47, 98, 154, 157, 264, 0, & + 48, 72, 130, 182, 218, 0, & + 47, 57, 139, 176, 267, 0, & + 49, 171, 192, 256, 0, 0, & + 123, 165, 262, 278, 0, 0, & + 16, 173, 178, 268, 0, 0, & + 50, 129, 182, 257, 0, 0, & + 51, 151, 180, 276, 0, 0, & + 35, 111, 196, 273, 0, 0, & + 32, 63, 130, 166, 247, 0, & + 23, 128, 140, 271, 0, 0, & + 34, 100, 184, 195, 207, 0, & + 52, 155, 201, 248, 0, 0, & + 110, 176, 272, 278, 0, 0, & + 53, 181, 187, 234, 0, 0, & + 38, 128, 196, 252, 0, 0, & + 9, 76, 151, 189, 230, 0, & + 25, 116, 171, 190, 0, 0, & + 79, 191, 203, 240, 275, 0, & + 17, 90, 148, 197, 276, 0, & + 3, 28, 78, 144, 210, 0, & + 52, 65, 194, 225, 250, 0, & + 27, 82, 168, 195, 270, 0, & + 18, 88, 179, 187, 214, 0, & + 19, 93, 132, 197, 275, 0, & + 42, 83, 152, 192, 274, 0, & + 66, 163, 199, 234, 272, 0, & + 8, 64, 200, 216, 251, 0, & + 44, 78, 184, 201, 267, 0, & + 46, 71, 125, 152, 231, 0, & + 22, 120, 191, 223, 0, 0, & + 54, 108, 175, 277, 0, 0, & + 55, 65, 105, 109, 271, 0, & + 56, 76, 154, 206, 214, 0, & + 19, 80, 155, 196, 235, 0, & + 11, 89, 119, 208, 257, 0, & + 53, 79, 172, 204, 209, 0, & + 57, 84, 188, 210, 258, 0, & + 10, 71, 135, 211, 259, 0, & + 58, 167, 212, 263, 0, 0, & + 48, 169, 213, 268, 0, 0, & + 52, 136, 211, 241, 0, 0, & + 35, 117, 207, 215, 0, 0, & + 9, 88, 200, 219, 279, 0, & + 59, 100, 131, 217, 280, 0, & + 50, 97, 161, 203, 262, 0, & + 43, 135, 215, 265, 0, 0, & + 25, 163, 167, 273, 0, 0, & + 60, 73, 143, 221, 263, 0, & + 31, 96, 144, 222, 279, 0, & + 57, 74, 211, 221, 274, 0, & + 44, 73, 150, 224, 240, 0, & + 45, 105, 212, 237, 0, 0, & + 61, 74, 175, 189, 254, 0, & + 39, 69, 156, 183, 198, 0, & + 40, 70, 206, 208, 232, 0, & + 3, 56, 106, 205, 0, 0, & + 20, 119, 188, 230, 0, 0, & + 51, 84, 112, 174, 226, 0, & + 45, 111, 165, 251, 0, 0, & + 60, 149, 169, 275, 0, 0, & + 42, 77, 180, 202, 248, 0, & + 62, 91, 121, 208, 241, 0, & + 4, 95, 117, 236, 261, 0, & + 49, 143, 206, 277, 0, 0, & + 24, 99, 162, 182, 237, 0, & + 29, 178, 179, 256, 0, 0, & + 33, 106, 216, 243, 0, 0, & + 12, 85, 104, 224, 270, 0, & + 48, 87, 102, 192, 269, 0, & + 56, 180, 185, 245, 0, 0, & + 62, 184, 197, 255, 0, 0, & + 47, 91, 178, 216, 254, 0, & + 55, 122, 246, 268, 0, 0, & + 54, 86, 124, 193, 273, 0, & + 61, 70, 145, 150, 269, 0, & + 26, 113, 193, 231, 0, 0, & + 49, 89, 174, 194, 279, 0, & + 1, 33, 77, 103, 213, 0, & + 1, 204, 221, 270, 0, 0, & + 27, 67, 138, 236, 277, 0, & + 58, 83, 172, 239, 246, 0, & + 11, 59, 199, 202, 246, 0, & + 46, 153, 190, 250, 0, 0, & + 41, 94, 113, 176, 265, 0, & + 54, 132, 170, 266, 0, 0, & + 3, 26, 72, 186, 203, 0, & + 41, 68, 107, 255, 260, 0, & + 63, 134, 222, 264, 0, 0, & + 1, 43, 131, 249, 0, 0, & + 32, 199, 219, 252, 0, 0, & + 51, 53, 157, 235, 236, 0, & + 2, 7, 114, 118, 0, 0, & + 31, 217, 224, 260, 0, 0, & + 37, 62, 137, 212, 264, 0, & + 60, 99, 115, 205, 272, 0, & + 20, 87, 90, 185, 194, 253, & + 21, 92, 118, 148, 242, 0, & + 14, 75, 121, 158, 209, 0, & + 23, 210, 250, 261, 0, 0, & + 2, 94, 133, 222, 274, 0, & + 37, 101, 200, 249, 266, 0, & + 64, 187, 258, 260, 0, 0, & + 15, 81, 137, 183, 280, 0, & + 59, 108, 140, 267, 0, 0, & + 18, 142, 153, 280, 0, 0, & + 16, 69, 159, 217, 276, 0, & + 8, 82, 129, 228, 259, 0/ + +data nrw/ & +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, & +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, & +5,5,5,5,5,5,5,5,5,4,4,4,4,5,4,4,5,5,5,4, & +5,5,5,4,5,4,4,4,5,5,4,5,5,5,4,4,4,4,4,4, & +5,4,5,4,4,4,4,5,4,5,5,5,5,5,5,5,5,5,5,5, & +5,4,4,5,5,5,5,5,5,5,4,4,4,4,5,5,5,4,4,5, & +5,5,5,4,5,5,5,4,4,5,4,4,5,5,5,4,5,4,4,5, & +5,4,4,5,4,5,5,4,5,5,4,5,5,5,4,5,4,5,5,4, & +4,4,5,4,4,5,5,6,5,5,4,5,5,4,5,4,4,5,5/ + +ncw=3 + diff --git a/lib/fst280/ldpc_280_74_generator.f90 b/lib/fst280/ldpc_280_74_generator.f90 new file mode 100644 index 000000000..8625e2fd2 --- /dev/null +++ b/lib/fst280/ldpc_280_74_generator.f90 @@ -0,0 +1,209 @@ +character*19 g(206) + +data g/ & + "f7842fd3230388e2388", & + "2ebea0b08a75d2261cc", & + "b037d38c9d9b9a5e520", & + "936729d89fd5474ecdc", & + "539287b4ef7ee4534a8", & + "a4d283607d3a5020508", & + "f4539f434b8b8585444", & + "1c7b56480cc52fa5228", & + "a1c788b066ac91de648", & + "6592203e5579bbd9248", & + "aaa9e1247a75c451654", & + "f06cbce3477735fcdac", & + "0b3bd1b2eb21c4a58e8", & + "9789c1e9afeaefe132c", & + "6f3090a344262fe9588", & + "523326e51ec096314c0", & + "33ad630efa2f0547a1c", & + "128e4669c5290997554", & + "d21ba68abe8a45c7388", & + "14792ff07616833ddcc", & + "f336703cec81b57b9d4", & + "dcb179c1ede8a193578", & + "19a5027744d4d5fc3ec", & + "416cb1bc4f9fc83f03c", & + "245f12d8a19902ff678", & + "3a9653df6b08f65e934", & + "94870f042c4015d30d0", & + "7db806a2e50336e78bc", & + "d799458b3559526d2a8", & + "77e7cfd440146912610", & + "67c9ca176f188a99b1c", & + "dd736cb5cbfaa6f6cb0", & + "1210f8c1310dde522e4", & + "3bdf62af1d111a616a8", & + "556e0b2cb64629c03e0", & + "153b771b34fd0e24038", & + "677111e1bd26700abec", & + "ba6a2362c2249224dc8", & + "96d96eda9f7d897b3a4", & + "ee632974db8208ed678", & + "ba6e8ace7ca7e5dba2c", & + "112aa2048b8723c3794", & + "04125e68eed114d3a74", & + "6ce3283112a3d15df18", & + "6717fa02c4245ac3cd4", & + "bba51cf56c4ab60d0e8", & + "bf02614f56d95557004", & + "db8d9537a66dae71170", & + "2aa9e1247a75c451614", & + "37887845236cdc5a498", & + "5a0fd4682a5116e3bd4", & + "66a13f0f4838812f4b0", & + "0189837a15fb8a3ea28", & + "bd833c6eb639530bb4c", & + "ad2cb697dcd08717134", & + "d28c4e5b0e4f93921e8", & + "4a10da97be29877762c", & + "11b1d2dbd7e029e0034", & + "8cebf77857fd5b4b2d0", & + "8cf76e6929f04a6f2d0", & + "4dfdef39d983b6ff054", & + "e19594dcc430c3f36f8", & + "b4e0a5979e86ca9e7d8", & + "c6e5822a81c720e1da8", & + "d8b1374afa4f4534c2c", & + "d50ebca7ce5022d72b8", & + "d1af50dba58c8b978d4", & + "0114771daca21b8a4e8", & + "5a12be303c2bcc6cad0", & + "75ba0d26c70194e20dc", & + "feeb4567ccdd6d44334", & + "de993868f8b317cdb08", & + "8c0f2fc7b031a0354ec", & + "df2ddab6d334a1316fc", & + "d410f54de1453f63024", & + "14870f042c4011d30d0", & + "bf8bb7654c089ff49f4", & + "48fe5211864e84af104", & + "a212348c05d3f2f7c8c", & + "1cb6e7158001aa32fa0", & + "bb2700d89c358ea9f74", & + "f5ff926daf5e6003708", & + "7eecbcdc28e9800b97c", & + "b38c9a3ff4e36761180", & + "aff8af260682347a39c", & + "24c2e6bf10c093cb8b8", & + "7633edd7825917114ec", & + "3383b1074eee8343950", & + "3d0636cf743b45409bc", & + "e6191c1e4753a438054", & + "a5ed8c6a5c54aaa2d0c", & + "2335c47d4da16e79fd4", & + "56f62a484a6243fea04", & + "090c7572a6b53ed67d8", & + "a12212511d2fe5a7a04", & + "55653c6f1cd716dfafc", & + "25fb9166056f5276e50", & + "b5500cd4a5a4903b794", & + "5aaa65c6ee1732ffa20", & + "702a7660612fd7307fc", & + "bbf00390ef7bb4219f4", & + "36a23bd84e7d142dc28", & + "00dd156a637e5b6cf34", & + "d960448d1d09f7a3d5c", & + "7cc7c47ef82e670f740", & + "0c72af8643fa31e0df8", & + "c60997484551c3304ec", & + "5234c7b54ce0fb97cd4", & + "e4551cf6ddc5bf7b85c", & + "7320bbe8f600cb3f654", & + "b25ac980a31e7d449e8", & + "da25337deba0f2a1024", & + "4b54fafbcdf9f159c70", & + "75252e36d57dc65a0c8", & + "9f792800ecd943f8784", & + "fb7d1b209de7997cd40", & + "f47e660b960bf39cda4", & + "630017e41ef1e01b3bc", & + "047d83c03cd1e69929c", & + "0b8be375675a21f6c50", & + "aebfa0b08a75d2261cc", & + "dcd8bfe5b2b83f3276c", & + "862503814b89c46f268", & + "caf108899bef63422e0", & + "0651e9975e9eb3049bc", & + "d2418a98d6be4bb1368", & + "0f886c109cbf0643a64", & + "ae76a8d1d71335942cc", & + "66a0d75d3f90f0d0c04", & + "51d30039a555c4ac8cc", & + "9d7a4b82e9323439734", & + "2475d34a372b289eba4", & + "2468b9122171f215a80", & + "f1eb642be43a6d15e74", & + "001d6a58165ada8f124", & + "dd770baa38e1f8c2fd8", & + "03e026dcb395529dc0c", & + "46dc96eb5146f71a614", & + "1402ba94f9d9e1ff3dc", & + "dd7970ccb883bf18678", & + "29ddaca7cd0bf0151f4", & + "865c5ec3ab28496ade4", & + "97d388a7557a659e7f8", & + "78ba47aec4ff81965dc", & + "26a0c75d3f90f0d0c04", & + "48bc3be9b33ad3a2960", & + "e9c4c425a39b4fa6520", & + "2a8cfed864a4c6f5bb8", & + "de273ccb39330dd42a0", & + "c7e0c4a6641be9a6934", & + "f8b8514aebccc0086a4", & + "0f2b8fda05f0d07629c", & + "8734be755b106490e04", & + "789a87c164b552602d4", & + "b588408fb1a6c128874", & + "9dddcc7da27769ac544", & + "288b20a6f933bab6328", & + "f38c9a3ff4e26761180", & + "dc5613392113fea3498", & + "62dcbccf74e9673662c", & + "729e135a6b13b1eb084", & + "3045e9bb3c808018868", & + "0d1e2b1a48642a04dac", & + "abb1dced614797b1288", & + "d29fba8d71829beb4a0", & + "8f4a38515de6db613c4", & + "67194fd309de34d2178", & + "fc73d1f5ea8fd6bf49c", & + "c6289740e2b97b8d29c", & + "6100d464faa8f4f3068", & + "2cb7e414a3da6ca0988", & + "b439b0fdfdf891f28ec", & + "b7d3aaa693c7f068120", & + "25d691a2bc6288c1c50", & + "52f1f88c882d24a5f9c", & + "9892d88821ebd874f1c", & + "fbda9cdf96a2c4e9b30", & + "7716ec58ca1ac237f90", & + "6993c923557c6c68b68", & + "eb32c8c6a30622d0c28", & + "ba7980eafa803e1d3dc", & + "a92b5a9ca961bf9a5bc", & + "36ecfc5928f2c7be4cc", & + "ab854e4b7a9944840d4", & + "62db1428386b97101e4", & + "734bc6eb48e3024c7a0", & + "5b06c92d9089c7e6e38", & + "c7d02e44052506c6d14", & + "d35f553090ce90d3b04", & + "5462cf72405e2525d7c", & + "c9b85ab24e5188e5d18", & + "d0bb27c6092eb01dc7c", & + "37036df9c68bfe4eb24", & + "4387156e9b00d277ce0", & + "a39bb776102878c96a4", & + "d6f1cd9b329e7d0b374", & + "d74ba376dbaa9de5270", & + "58df754b03e0fa7a714", & + "14dfaffe9ab7ba93ce8", & + "36652b8b0226f6cc940", & + "777234e72dd631499ac", & + "581964c38824c5a58f8", & + "187cba427974172c6a0", & + "a90588951da0399e6f0", & + "3ddb7427533342f51cc", & + "25d308610cf492a5ac4"/ diff --git a/lib/fst280/ldpc_280_74_parity.f90 b/lib/fst280/ldpc_280_74_parity.f90 new file mode 100644 index 000000000..302edeb25 --- /dev/null +++ b/lib/fst280/ldpc_280_74_parity.f90 @@ -0,0 +1,504 @@ +data Mn/ & + 95, 150, 172, & + 154, 178, 184, & + 1, 90, 164, & + 2, 143, 199, & + 3, 33, 70, & + 4, 23, 86, & + 5, 127, 174, & + 6, 18, 110, & + 7, 59, 99, & + 8, 94, 124, & + 9, 168, 206, & + 10, 165, 175, & + 11, 64, 166, & + 12, 103, 156, & + 13, 46, 80, & + 14, 35, 172, & + 15, 20, 189, & + 16, 162, 188, & + 17, 74, 200, & + 19, 52, 178, & + 21, 87, 182, & + 22, 30, 144, & + 24, 37, 126, & + 25, 107, 171, & + 26, 114, 187, & + 27, 36, 53, & + 28, 91, 169, & + 29, 100, 109, & + 31, 71, 192, & + 32, 106, 190, & + 34, 160, 204, & + 38, 93, 136, & + 39, 77, 196, & + 40, 43, 177, & + 41, 56, 66, & + 42, 115, 151, & + 44, 155, 180, & + 45, 105, 128, & + 47, 54, 203, & + 48, 117, 120, & + 49, 62, 183, & + 50, 185, 202, & + 51, 83, 147, & + 55, 75, 170, & + 57, 79, 205, & + 58, 67, 159, & + 60, 81, 201, & + 61, 89, 184, & + 63, 119, 198, & + 65, 104, 152, & + 68, 149, 191, & + 69, 134, 167, & + 72, 102, 129, & + 73, 95, 108, & + 76, 82, 146, & + 78, 112, 173, & + 84, 141, 161, & + 85, 138, 157, & + 92, 132, 145, & + 96, 131, 181, & + 97, 110, 121, & + 98, 133, 153, & + 74, 101, 195, & + 111, 118, 183, & + 113, 130, 163, & + 116, 176, 193, & + 125, 188, 194, & + 135, 142, 148, & + 28, 137, 140, & + 33, 68, 150, & + 46, 51, 179, & + 6, 186, 198, & + 79, 138, 197, & + 1, 30, 122, & + 1, 58, 162, & + 2, 9, 172, & + 3, 71, 161, & + 4, 119, 142, & + 5, 147, 160, & + 6, 73, 183, & + 7, 118, 202, & + 8, 82, 98, & + 2, 47, 56, & + 10, 92, 151, & + 11, 19, 150, & + 12, 169, 179, & + 13, 43, 188, & + 14, 15, 192, & + 14, 82, 120, & + 16, 131, 155, & + 17, 123, 148, & + 18, 60, 117, & + 11, 90, 134, & + 20, 154, 195, & + 21, 47, 166, & + 22, 24, 86, & + 23, 48, 167, & + 21, 22, 190, & + 25, 44, 53, & + 26, 50, 64, & + 4, 27, 95, & + 28, 87, 205, & + 1, 29, 183, & + 30, 132, 185, & + 31, 108, 180, & + 32, 38, 174, & + 33, 36, 128, & + 34, 125, 134, & + 35, 190, 201, & + 30, 33, 142, & + 37, 61, 81, & + 32, 65, 70, & + 39, 40, 41, & + 36, 39, 78, & + 40, 140, 144, & + 42, 100, 194, & + 9, 13, 111, & + 20, 25, 115, & + 45, 140, 165, & + 10, 46, 60, & + 15, 43, 200, & + 23, 113, 158, & + 16, 49, 150, & + 12, 26, 164, & + 51, 88, 115, & + 52, 63, 141, & + 44, 101, 187, & + 34, 54, 173, & + 55, 93, 139, & + 56, 67, 102, & + 57, 62, 152, & + 29, 80, 89, & + 5, 59, 195, & + 18, 100, 156, & + 28, 61, 162, & + 31, 62, 163, & + 38, 52, 103, & + 50, 149, 175, & + 65, 122, 138, & + 66, 112, 171, & + 24, 68, 198, & + 68, 69, 84, & + 51, 69, 108, & + 70, 146, 159, & + 3, 91, 201, & + 72, 143, 149, & + 6, 129, 188, & + 74, 104, 153, & + 54, 75, 186, & + 76, 95, 200, & + 77, 120, 168, & + 41, 104, 182, & + 79, 144, 187, & + 58, 171, 193, & + 37, 85, 135, & + 8, 174, 197, & + 83, 163, 176, & + 53, 67, 184, & + 85, 99, 196, & + 76, 84, 138, & + 77, 87, 194, & + 86, 123, 202, & + 57, 89, 146, & + 27, 90, 97, & + 91, 126, 136, & + 46, 107, 113, & + 55, 189, 204, & + 94, 111, 130, & + 19, 139, 152, & + 96, 121, 158, & + 75, 88, 94, & + 93, 98, 157, & + 79, 81, 203, & + 42, 148, 206, & + 101, 156, 181, & + 97, 114, 154, & + 103, 170, 175, & + 78, 106, 191, & + 105, 109, 135, & + 64, 74, 176, & + 73, 92, 169, & + 80, 132, 181, & + 71, 105, 186, & + 110, 137, 204, & + 21, 159, 192, & + 35, 66, 137, & + 48, 127, 205, & + 114, 182, 193, & + 2, 18, 163, & + 59, 116, 129, & + 99, 107, 119, & + 7, 121, 125, & + 102, 109, 141, & + 19, 87, 160, & + 96, 165, 172, & + 63, 118, 147, & + 17, 143, 196, & + 124, 164, 173, & + 112, 117, 131, & + 52, 151, 180, & + 127, 198, 199, & + 106, 110, 167, & + 116, 177, 178, & + 72, 130, 155, & + 49, 177, 203, & + 128, 133, 166, & + 133, 189, 206, & + 75, 145, 191, & + 1, 51, 133, & + 83, 136, 168, & + 4, 155, 179, & + 3, 127, 157, & + 90, 170, 190, & + 5, 140, 164, & + 6, 139, 196, & + 31, 34, 142, & + 7, 53, 104, & + 11, 39, 109, & + 145, 178, 197, & + 25, 143, 146, & + 8, 134, 181, & + 9, 61, 174, & + 10, 41, 198, & + 12, 135, 159, & + 14, 79, 113, & + 13, 33, 66, & + 153, 161, 188, & + 16, 20, 136, & + 17, 45, 180, & + 22, 100, 116, & + 15, 118, 191, & + 157, 179, 184, & + 37, 110, 185, & + 30, 141, 168, & + 27, 176, 189, & + 28, 76, 186, & + 24, 26, 111, & + 124, 185, 199, & + 45, 122, 126, & + 35, 72, 147, & + 32, 119, 194, & + 36, 50, 138, & + 23, 29, 175, & + 42, 67, 124, & + 40, 89, 94, & + 43, 103, 199, & + 49, 151, 167, & + 44, 84, 204, & + 47, 48, 122, & + 46, 105, 195, & + 55, 96, 177, & + 57, 59, 106, & + 38, 54, 193, & + 58, 86, 152, & + 63, 101, 162, & + 60, 98, 123, & + 64, 115, 205, & + 62, 200, 201, & + 65, 73, 154, & + 56, 82, 183, & + 69, 91, 99, & + 70, 202, 203, & + 74, 112, 197, & + 71, 131, 206, & + 77, 165, 171, & + 68, 97, 120, & + 78, 156, 161, & + 80, 114, 148, & + 83, 92, 187, & + 88, 102, 158, & + 107, 145, 166, & + 122, 125, 130, & + 85, 117, 170, & + 121, 128, 169, & + 126, 129, 173, & + 153, 158, 160, & + 93, 144, 149, & + 88, 123, 137, & + 81, 108, 182, & + 132, 139, 192/ + +data Nm/ & + 3, 74, 75, 103, 209, & + 4, 76, 83, 189, 0, & + 5, 77, 145, 212, 0, & + 6, 78, 101, 211, 0, & + 7, 79, 133, 214, 0, & + 8, 72, 80, 147, 215, & + 9, 81, 192, 217, 0, & + 10, 82, 156, 221, 0, & + 11, 76, 117, 222, 0, & + 12, 84, 120, 223, 0, & + 13, 85, 93, 218, 0, & + 14, 86, 124, 224, 0, & + 15, 87, 117, 226, 0, & + 16, 88, 89, 225, 0, & + 17, 88, 121, 231, 0, & + 18, 90, 123, 228, 0, & + 19, 91, 197, 229, 0, & + 8, 92, 134, 189, 0, & + 20, 85, 169, 194, 0, & + 17, 94, 118, 228, 0, & + 21, 95, 98, 185, 0, & + 22, 96, 98, 230, 0, & + 6, 97, 122, 243, 0, & + 23, 96, 141, 237, 0, & + 24, 99, 118, 220, 0, & + 25, 100, 124, 237, 0, & + 26, 101, 164, 235, 0, & + 27, 69, 102, 135, 236, & + 28, 103, 132, 243, 0, & + 22, 74, 104, 110, 234, & + 29, 105, 136, 216, 0, & + 30, 106, 112, 241, 0, & + 5, 70, 107, 110, 226, & + 31, 108, 128, 216, 0, & + 16, 109, 186, 240, 0, & + 26, 107, 114, 242, 0, & + 23, 111, 155, 233, 0, & + 32, 106, 137, 253, 0, & + 33, 113, 114, 218, 0, & + 34, 113, 115, 245, 0, & + 35, 113, 152, 223, 0, & + 36, 116, 174, 244, 0, & + 34, 87, 121, 246, 0, & + 37, 99, 127, 248, 0, & + 38, 119, 229, 239, 0, & + 15, 71, 120, 166, 250, & + 39, 83, 95, 249, 0, & + 40, 97, 187, 249, 0, & + 41, 123, 205, 247, 0, & + 42, 100, 138, 242, 0, & + 43, 71, 125, 143, 209, & + 20, 126, 137, 200, 0, & + 26, 99, 158, 217, 0, & + 39, 128, 149, 253, 0, & + 44, 129, 167, 251, 0, & + 35, 83, 130, 260, 0, & + 45, 131, 163, 252, 0, & + 46, 75, 154, 254, 0, & + 9, 133, 190, 252, 0, & + 47, 92, 120, 256, 0, & + 48, 111, 135, 222, 0, & + 41, 131, 136, 258, 0, & + 49, 126, 196, 255, 0, & + 13, 100, 180, 257, 0, & + 50, 112, 139, 259, 0, & + 35, 140, 186, 226, 0, & + 46, 130, 158, 244, 0, & + 51, 70, 141, 142, 266, & + 52, 142, 143, 261, 0, & + 5, 112, 144, 262, 0, & + 29, 77, 183, 264, 0, & + 53, 146, 204, 240, 0, & + 54, 80, 181, 259, 0, & + 19, 63, 148, 180, 263, & + 44, 149, 171, 208, 0, & + 55, 150, 160, 236, 0, & + 33, 151, 161, 265, 0, & + 56, 114, 178, 267, 0, & + 45, 73, 153, 173, 225, & + 15, 132, 182, 268, 0, & + 47, 111, 173, 279, 0, & + 55, 82, 89, 260, 0, & + 43, 157, 210, 269, 0, & + 57, 142, 160, 248, 0, & + 58, 155, 159, 273, 0, & + 6, 96, 162, 254, 0, & + 21, 102, 161, 194, 0, & + 125, 171, 270, 278, 0, & + 48, 132, 163, 245, 0, & + 3, 93, 164, 213, 0, & + 27, 145, 165, 261, 0, & + 59, 84, 181, 269, 0, & + 32, 129, 172, 277, 0, & + 10, 168, 171, 245, 0, & + 1, 54, 101, 150, 0, & + 60, 170, 195, 251, 0, & + 61, 164, 176, 266, 0, & + 62, 82, 172, 256, 0, & + 9, 159, 191, 261, 0, & + 28, 116, 134, 230, 0, & + 63, 127, 175, 255, 0, & + 53, 130, 193, 270, 0, & + 14, 137, 177, 246, 0, & + 50, 148, 152, 217, 0, & + 38, 179, 183, 250, 0, & + 30, 178, 202, 252, 0, & + 24, 166, 191, 271, 0, & + 54, 105, 143, 279, 0, & + 28, 179, 193, 218, 0, & + 8, 61, 184, 202, 233, & + 64, 117, 168, 237, 0, & + 56, 140, 199, 263, 0, & + 65, 122, 166, 225, 0, & + 25, 176, 188, 268, 0, & + 36, 118, 125, 257, 0, & + 66, 190, 203, 230, 0, & + 40, 92, 199, 273, 0, & + 64, 81, 196, 231, 0, & + 49, 78, 191, 241, 0, & + 40, 89, 151, 266, 0, & + 61, 170, 192, 274, 0, & + 74, 139, 239, 249, 272, & + 91, 162, 256, 278, 0, & + 10, 198, 238, 244, 0, & + 67, 108, 192, 272, 0, & + 23, 165, 239, 275, 0, & + 7, 187, 201, 212, 0, & + 38, 107, 206, 274, 0, & + 53, 147, 190, 275, 0, & + 65, 168, 204, 272, 0, & + 60, 90, 199, 264, 0, & + 59, 104, 182, 280, 0, & + 62, 206, 207, 209, 0, & + 52, 93, 108, 221, 0, & + 68, 155, 179, 224, 0, & + 32, 165, 210, 228, 0, & + 69, 184, 186, 278, 0, & + 58, 73, 139, 160, 242, & + 129, 169, 215, 280, 0, & + 69, 115, 119, 214, 0, & + 57, 126, 193, 234, 0, & + 68, 78, 110, 216, 0, & + 4, 146, 197, 220, 0, & + 22, 115, 153, 277, 0, & + 59, 208, 219, 271, 0, & + 55, 144, 163, 220, 0, & + 43, 79, 196, 240, 0, & + 68, 91, 174, 268, 0, & + 51, 138, 146, 277, 0, & + 1, 70, 85, 123, 0, & + 36, 84, 200, 247, 0, & + 50, 131, 169, 254, 0, & + 62, 148, 227, 276, 0, & + 2, 94, 176, 259, 0, & + 37, 90, 204, 211, 0, & + 14, 134, 175, 267, 0, & + 58, 172, 212, 232, 0, & + 122, 170, 270, 276, 0, & + 46, 144, 185, 224, 0, & + 31, 79, 194, 276, 0, & + 57, 77, 227, 267, 0, & + 18, 75, 135, 255, 0, & + 65, 136, 157, 189, 0, & + 3, 124, 198, 214, 0, & + 12, 119, 195, 265, 0, & + 13, 95, 206, 271, 0, & + 52, 97, 202, 247, 0, & + 11, 151, 210, 234, 0, & + 27, 86, 181, 274, 0, & + 44, 177, 213, 273, 0, & + 24, 140, 154, 265, 0, & + 1, 16, 76, 195, 0, & + 56, 128, 198, 275, 0, & + 7, 106, 156, 222, 0, & + 12, 138, 177, 243, 0, & + 66, 157, 180, 235, 0, & + 34, 203, 205, 251, 0, & + 2, 20, 203, 219, 0, & + 71, 86, 211, 232, 0, & + 37, 105, 200, 229, 0, & + 60, 175, 182, 221, 0, & + 21, 152, 188, 279, 0, & + 41, 64, 80, 103, 260, & + 2, 48, 158, 232, 0, & + 42, 104, 233, 238, 0, & + 72, 149, 183, 236, 0, & + 25, 127, 153, 269, 0, & + 18, 67, 87, 147, 227, & + 17, 167, 207, 235, 0, & + 30, 98, 109, 213, 0, & + 51, 178, 208, 231, 0, & + 29, 88, 185, 280, 0, & + 66, 154, 188, 253, 0, & + 67, 116, 161, 241, 0, & + 63, 94, 133, 250, 0, & + 33, 159, 197, 215, 0, & + 73, 156, 219, 263, 0, & + 49, 72, 141, 201, 223, & + 4, 201, 238, 246, 0, & + 19, 121, 150, 258, 0, & + 47, 109, 145, 258, 0, & + 42, 81, 162, 262, 0, & + 39, 173, 205, 262, 0, & + 31, 167, 184, 248, 0, & + 45, 102, 187, 257, 0, & + 11, 174, 207, 264, 0/ + +data nrw/ & +5,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4, & +4,4,4,4,4,4,4,5,4,5,4,4,5,4,4,4,4,4,4,4, & +4,4,4,4,4,5,4,4,4,4,5,4,4,4,4,4,4,4,4,4, & +4,4,4,4,4,4,4,5,4,4,4,4,4,5,4,4,4,4,5,4, & +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, & +4,4,4,4,4,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4, & +4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4, & +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, & +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, & +4,4,5,4,4,4,4,5,4,4,4,4,4,4,4,4,4,5,4,4, & +4,4,4,4,4,4/ + +ncw=3 diff --git a/lib/fst280/ldpcsim280_101.f90 b/lib/fst280/ldpcsim280_101.f90 new file mode 100644 index 000000000..df5e1f019 --- /dev/null +++ b/lib/fst280/ldpcsim280_101.f90 @@ -0,0 +1,139 @@ +program ldpcsim280_101 + +! End-to-end test of the (280,101)/crc24 encoder and decoders. + + use packjt77 + + parameter(N=280, K=101, M=N-K) + character*8 arg + character*37 msg0,msg + character*77 c77 + character*24 c24 + integer*1 msgbits(101) + integer*1 apmask(280) + integer*1 cw(280) + integer*1 codeword(N),message101(101) + integer ncrc24 + real rxdata(N),llr(N) + real llrd(280) + logical first,unpk77_success + data first/.true./ + + nargs=iargc() + if(nargs.ne.6 .and. nargs.ne.7) then + print*,'Usage : ldpcsim niter norder maxosd #trials s K [msg]' + print*,'e.g. ldpcsim280_101 20 3 2 1000 0.85 91 "K9AN K1JT FN20"' + print*,'s : if negative, then value is ignored and sigma is calculated from SNR.' + print*,'niter : is the number of BP iterations.' + print*,'norder: -1 is BP only, norder>=0 is OSD order' + print*,'K :is the number of message+CRC bits and must be in the range [77,101]' + print*,'WSPR-format message is optional' + return + endif + call getarg(1,arg) + read(arg,*) max_iterations + call getarg(2,arg) + read(arg,*) norder + call getarg(3,arg) + read(arg,*) maxosd + call getarg(4,arg) + read(arg,*) ntrials + call getarg(5,arg) + read(arg,*) s + call getarg(6,arg) + read(arg,*) Keff + msg0='K9AN K1JT FN20 ' + if(nargs.eq.7) call getarg(7,msg0) + call pack77(msg0,i3,n3,c77) + call unpack77(c77,0,msg,unpk77_success) + if(unpk77_success) then + write(*,1100) msg(1:37) +1100 format('Decoded message: ',a37) + else + print*,'Error unpacking message' + endif + + rate=real(91)/real(N) + + write(*,*) "code rate: ",rate + write(*,*) "niter : ",max_iterations + write(*,*) "norder : ",norder + write(*,*) "s : ",s + write(*,*) "K : ",Keff + + msgbits=0 + read(c77,'(77i1)') msgbits(1:77) + write(*,*) 'message' + write(*,'(77i1)') msgbits(1:77) + + call get_crc24(msgbits,101,ncrc24) + write(c24,'(b24.24)') ncrc24 + read(c24,'(24i1)') msgbits(78:101) + write(*,*) 'message with crc24' + write(*,'(101i1)') msgbits(1:101) + call encode280_101(msgbits,codeword) + call init_random_seed() + call sgran() + + write(*,*) 'codeword' + write(*,'(77i1,1x,24i1,1x,73i1)') codeword + + write(*,*) "Eb/N0 Es/N0 ngood nundetected sigma symbol error rate" + do idb = 8,-3,-1 + db=idb/2.0-1.0 + sigma=1/sqrt( 2*rate*(10**(db/10.0)) ) ! to make db represent Eb/No +! sigma=1/sqrt( 2*(10**(db/10.0)) ) ! db represents Es/No + ngood=0 + nue=0 + nberr=0 + do itrial=1, ntrials +! Create a realization of a noisy received word + do i=1,N + rxdata(i) = 2.0*codeword(i)-1.0 + sigma*gran() + enddo + nerr=0 + do i=1,N + if( rxdata(i)*(2*codeword(i)-1.0) .lt. 0 ) nerr=nerr+1 + enddo + nberr=nberr+nerr + + rxav=sum(rxdata)/N + rx2av=sum(rxdata*rxdata)/N + rxsig=sqrt(rx2av-rxav*rxav) + rxdata=rxdata/rxsig + if( s .lt. 0 ) then + ss=sigma + else + ss=s + endif + + llr=2.0*rxdata/(ss*ss) + apmask=0 +! max_iterations is max number of belief propagation iterations + call bpdecode280_101(llr,apmask,max_iterations,message101,cw,nharderror,niterations,nchecks) + dmin=0.0 + if( (nharderror .lt. 0) .and. (norder .ge. 0) ) then +! call osd280_101(llr, Keff, apmask, norder, message101, cw, nharderror, dmin) + call decode280_101(llr, Keff, maxosd, norder, apmask, message101, cw, ntype, nharderror, dmin) + endif + + if(nharderror.ge.0) then + n2err=0 + do i=1,N + if( cw(i)*(2*codeword(i)-1.0) .lt. 0 ) n2err=n2err+1 + enddo + if(n2err.eq.0) then + ngood=ngood+1 + else + nue=nue+1 + endif + endif + enddo +! snr2500=db+10*log10(200.0/116.0/2500.0) + esn0=db+10*log10(rate) + pberr=real(nberr)/(real(ntrials*N)) + write(*,"(f4.1,4x,f5.1,1x,i8,1x,i8,8x,f5.2,8x,e10.3)") db,esn0,ngood,nue,ss,pberr + + enddo + +end program ldpcsim280_101 diff --git a/lib/fst280/ldpcsim280_74.f90 b/lib/fst280/ldpcsim280_74.f90 new file mode 100644 index 000000000..8953973e9 --- /dev/null +++ b/lib/fst280/ldpcsim280_74.f90 @@ -0,0 +1,132 @@ +program ldpcsim280_74 + +! End-to-end test of the (280,74)/crc24 encoder and decoders. + + use packjt77 + + parameter(N=280, K=74, M=N-K) + character*8 arg + character*37 msg0,msg + character*77 c77 + character*24 c24 + integer*1 msgbits(74) + integer*1 apmask(280) + integer*1 cw(280) + integer*1 codeword(N),message74(74) + integer ncrc24 + real rxdata(N),llr(N) + real llrd(280) + logical first,unpk77_success + data first/.true./ + + nargs=iargc() + if(nargs.ne.5 .and. nargs.ne.6) then + print*,'Usage: ldpcsim norder maxosd #trials s K [msg]' + print*,'e.g. ldpcsim280_74 3 2 1000 0.85 91 "K9AN K1JT FN20"' + print*,'s : if negative, then value is ignored and sigma is calculated from SNR.' + print*,'niter: is the number of BP iterations.' + print*,'norder: -1 is BP only, norder>=0 is OSD order' + print*,'maxosd: number of calls to OSD' + print*,'K :is the number of message+CRC bits and must be in the range [50,74]' + print*,'WSPR-format message is optional' + return + endif + call getarg(1,arg) + read(arg,*) norder + call getarg(2,arg) + read(arg,*) maxosd + call getarg(3,arg) + read(arg,*) ntrials + call getarg(4,arg) + read(arg,*) s + call getarg(5,arg) + read(arg,*) Keff + msg0='K9AN K1JT FN20 ' + if(nargs.eq.6) call getarg(6,msg0) + call pack77(msg0,i3,n3,c77) + call unpack77(c77,0,msg,unpk77_success) + if(unpk77_success) then + write(*,1100) msg(1:37) +1100 format('Decoded message: ',a37) + else + print*,'Error unpacking message' + endif + + rate=real(64)/real(N) + + write(*,*) "code rate: ",rate + write(*,*) "norder : ",norder + write(*,*) "s : ",s + write(*,*) "K : ",Keff + + msgbits=0 + read(c77,'(50i1)') msgbits(1:50) + write(*,*) 'message' + write(*,'(50i1)') msgbits(1:50) + + msgbits(51:74)=0 + call get_crc24(msgbits,74,ncrc24) + write(c24,'(b24.24)') ncrc24 + read(c24,'(24i1)') msgbits(51:74) + write(*,*) 'message with crc24' + write(*,'(74i1)') msgbits(1:74) + call encode280_74(msgbits,codeword) + call init_random_seed() + call sgran() + + write(*,*) 'codeword' + write(*,'(50i1,1x,24i1,1x,206i1)') codeword + + write(*,*) "Eb/N0 Es/N0 ngood nundetected sigma symbol error rate" + do idb = 2,-2,-1 + db=idb/2.0-1.0 + sigma=1/sqrt( 2*rate*(10**(db/10.0)) ) ! to make db represent Eb/No +! sigma=1/sqrt( 2*(10**(db/10.0)) ) ! db represents Es/No + ngood=0 + nue=0 + nberr=0 + do itrial=1, ntrials +! Create a realization of a noisy received word + do i=1,N + rxdata(i) = 2.0*codeword(i)-1.0 + sigma*gran() + enddo + nerr=0 + do i=1,N + if( rxdata(i)*(2*codeword(i)-1.0) .lt. 0 ) nerr=nerr+1 + enddo + nberr=nberr+nerr + + rxav=sum(rxdata)/N + rx2av=sum(rxdata*rxdata)/N + rxsig=sqrt(rx2av-rxav*rxav) + rxdata=rxdata/rxsig + if( s .lt. 0 ) then + ss=sigma + else + ss=s + endif + + llr=2.0*rxdata/(ss*ss) + apmask=0 + call decode280_74(llr,Keff,maxosd,norder,apmask,message74,cw,ntype,nharderror,dmin) + + if(nharderror.ge.0) then + n2err=0 + do i=1,N + if( cw(i)*(2*codeword(i)-1.0) .lt. 0 ) n2err=n2err+1 + enddo + if(n2err.eq.0) then + ngood=ngood+1 + else + nue=nue+1 + endif + endif + enddo +! snr2500=db+10*log10(200.0/116.0/2500.0) + esn0=db+10*log10(rate) + pberr=real(nberr)/(real(ntrials*N)) + write(*,"(f4.1,4x,f5.1,1x,i8,1x,i8,8x,f5.2,8x,e10.3)") db,esn0,ngood,nue,ss,pberr + + enddo + +end program ldpcsim280_74 diff --git a/lib/fst280/osd280_101.f90 b/lib/fst280/osd280_101.f90 new file mode 100644 index 000000000..acea3f664 --- /dev/null +++ b/lib/fst280/osd280_101.f90 @@ -0,0 +1,403 @@ +subroutine osd280_101(llr,k,apmask,ndeep,message101,cw,nhardmin,dmin) +! +! An ordered-statistics decoder for the (280,101) code. +! Message payload is 77 bits. Any or all of a 24-bit CRC can be +! used for detecting incorrect codewords. The remaining CRC bits are +! cascaded with the LDPC code for the purpose of improving the +! distance spectrum of the code. +! +! If p1 (0.le.p1.le.24) is the number of CRC24 bits that are +! to be used for bad codeword detection, then the argument k should +! be set to 77+p1. +! +! Valid values for k are in the range [77,101]. +! + character*24 c24 + integer, parameter:: N=280 + integer*1 apmask(N),apmaskr(N) + integer*1, allocatable, save :: gen(:,:) + integer*1, allocatable :: genmrb(:,:),g2(:,:) + integer*1, allocatable :: temp(:),m0(:),me(:),mi(:),misub(:),e2sub(:),e2(:),ui(:) + integer*1, allocatable :: r2pat(:) + integer indices(N),nxor(N) + integer*1 cw(N),ce(N),c0(N),hdec(N) + integer*1, allocatable :: decoded(:) + integer*1 message101(101) + integer indx(N) + real llr(N),rx(N),absrx(N) + + logical first,reset + data first/.true./ + save first + + allocate( genmrb(k,N), g2(N,k) ) + allocate( temp(k), m0(k), me(k), mi(k), misub(k), e2sub(N-k), e2(N-k), ui(N-k) ) + allocate( r2pat(N-k), decoded(k) ) + + if( first ) then ! fill the generator matrix +! +! Create generator matrix for partial CRC cascaded with LDPC code. +! +! Let p2=101-k and p1+p2=24. +! +! The last p2 bits of the CRC24 are cascaded with the LDPC code. +! +! The first p1=k-77 CRC24 bits will be used for error detection. +! + allocate( gen(k,N) ) + gen=0 + do i=1,k + message101=0 + message101(i)=1 + if(i.le.77) then + call get_crc24(message101,101,ncrc24) + write(c24,'(b24.24)') ncrc24 + read(c24,'(24i1)') message101(78:101) + message101(78:k)=0 + endif + call encode280_101(message101,cw) + gen(i,:)=cw + enddo + + first=.false. + endif + + rx=llr + apmaskr=apmask + +! Hard decisions on the received word. + hdec=0 + where(rx .ge. 0) hdec=1 + +! Use magnitude of received symbols as a measure of reliability. + absrx=abs(rx) + call indexx(absrx,N,indx) + +! Re-order the columns of the generator matrix in order of decreasing reliability. + do i=1,N + genmrb(1:k,i)=gen(1:k,indx(N+1-i)) + indices(i)=indx(N+1-i) + enddo + +! Do gaussian elimination to create a generator matrix with the most reliable +! received bits in positions 1:k in order of decreasing reliability (more or less). + do id=1,k ! diagonal element indices + do icol=id,k+20 ! The 20 is ad hoc - beware + iflag=0 + if( genmrb(id,icol) .eq. 1 ) then + iflag=1 + if( icol .ne. id ) then ! reorder column + temp(1:k)=genmrb(1:k,id) + genmrb(1:k,id)=genmrb(1:k,icol) + genmrb(1:k,icol)=temp(1:k) + itmp=indices(id) + indices(id)=indices(icol) + indices(icol)=itmp + endif + do ii=1,k + if( ii .ne. id .and. genmrb(ii,id) .eq. 1 ) then + genmrb(ii,1:N)=ieor(genmrb(ii,1:N),genmrb(id,1:N)) + endif + enddo + exit + endif + enddo + enddo + + g2=transpose(genmrb) + +! The hard decisions for the k MRB bits define the order 0 message, m0. +! Encode m0 using the modified generator matrix to find the "order 0" codeword. +! Flip various combinations of bits in m0 and re-encode to generate a list of +! codewords. Return the member of the list that has the smallest Euclidean +! distance to the received word. + + hdec=hdec(indices) ! hard decisions from received symbols + m0=hdec(1:k) ! zero'th order message + absrx=absrx(indices) + rx=rx(indices) + apmaskr=apmaskr(indices) + + call mrbencode101(m0,c0,g2,N,k) + nxor=ieor(c0,hdec) + nhardmin=sum(nxor) + dmin=sum(nxor*absrx) + + cw=c0 + ntotal=0 + nrejected=0 + npre1=0 + npre2=0 + + if(ndeep.eq.0) goto 998 ! norder=0 + if(ndeep.gt.6) ndeep=6 + if( ndeep.eq. 1) then + nord=1 + npre1=0 + npre2=0 + nt=40 + ntheta=12 + elseif(ndeep.eq.2) then + nord=1 + npre1=1 + npre2=0 + nt=40 + ntheta=12 + elseif(ndeep.eq.3) then + nord=1 + npre1=1 + npre2=1 + nt=40 + ntheta=12 + ntau=14 + elseif(ndeep.eq.4) then + nord=2 + npre1=1 + npre2=1 + nt=40 + ntheta=12 + ntau=17 + elseif(ndeep.eq.5) then + nord=3 + npre1=1 + npre2=1 + nt=40 + ntheta=12 + ntau=15 + elseif(ndeep.eq.6) then + nord=4 + npre1=1 + npre2=1 + nt=95 + ntheta=12 + ntau=15 + endif + + do iorder=1,nord + misub(1:k-iorder)=0 + misub(k-iorder+1:k)=1 + iflag=k-iorder+1 + do while(iflag .ge.0) + if(iorder.eq.nord .and. npre1.eq.0) then + iend=iflag + else + iend=1 + endif + d1=0. + do n1=iflag,iend,-1 + mi=misub + mi(n1)=1 + if(any(iand(apmaskr(1:k),mi).eq.1)) cycle + ntotal=ntotal+1 + me=ieor(m0,mi) + if(n1.eq.iflag) then + call mrbencode101(me,ce,g2,N,k) + e2sub=ieor(ce(k+1:N),hdec(k+1:N)) + e2=e2sub + nd1kpt=sum(e2sub(1:nt))+1 + d1=sum(ieor(me(1:k),hdec(1:k))*absrx(1:k)) + else + e2=ieor(e2sub,g2(k+1:N,n1)) + nd1kpt=sum(e2(1:nt))+2 + endif + if(nd1kpt .le. ntheta) then + call mrbencode101(me,ce,g2,N,k) + nxor=ieor(ce,hdec) + if(n1.eq.iflag) then + dd=d1+sum(e2sub*absrx(k+1:N)) + else + dd=d1+ieor(ce(n1),hdec(n1))*absrx(n1)+sum(e2*absrx(k+1:N)) + endif + if( dd .lt. dmin ) then + dmin=dd + cw=ce + nhardmin=sum(nxor) + nd1kptbest=nd1kpt + endif + else + nrejected=nrejected+1 + endif + enddo +! Get the next test error pattern, iflag will go negative +! when the last pattern with weight iorder has been generated. + call nextpat101(misub,k,iorder,iflag) + enddo + enddo + + if(npre2.eq.1) then + reset=.true. + ntotal=0 + do i1=k,1,-1 + do i2=i1-1,1,-1 + ntotal=ntotal+1 + mi(1:ntau)=ieor(g2(k+1:k+ntau,i1),g2(k+1:k+ntau,i2)) + call boxit101(reset,mi(1:ntau),ntau,ntotal,i1,i2) + enddo + enddo + + ncount2=0 + ntotal2=0 + reset=.true. +! Now run through again and do the second pre-processing rule + misub(1:k-nord)=0 + misub(k-nord+1:k)=1 + iflag=k-nord+1 + do while(iflag .ge.0) + me=ieor(m0,misub) + call mrbencode101(me,ce,g2,N,k) + e2sub=ieor(ce(k+1:N),hdec(k+1:N)) + do i2=0,ntau + ntotal2=ntotal2+1 + ui=0 + if(i2.gt.0) ui(i2)=1 + r2pat=ieor(e2sub,ui) +778 continue + call fetchit101(reset,r2pat(1:ntau),ntau,in1,in2) + if(in1.gt.0.and.in2.gt.0) then + ncount2=ncount2+1 + mi=misub + mi(in1)=1 + mi(in2)=1 + if(sum(mi).lt.nord+npre1+npre2.or.any(iand(apmaskr(1:k),mi).eq.1)) cycle + me=ieor(m0,mi) + call mrbencode101(me,ce,g2,N,k) + nxor=ieor(ce,hdec) + dd=sum(nxor*absrx) + if( dd .lt. dmin ) then + dmin=dd + cw=ce + nhardmin=sum(nxor) + endif + goto 778 + endif + enddo + call nextpat101(misub,k,nord,iflag) + enddo + endif + +998 continue +! Re-order the codeword to [message bits][parity bits] format. + cw(indices)=cw + hdec(indices)=hdec + message101=cw(1:101) + call get_crc24(message101,101,nbadcrc) + if(nbadcrc.ne.0) nhardmin=-nhardmin + + return +end subroutine osd280_101 + +subroutine mrbencode101(me,codeword,g2,N,K) + integer*1 me(K),codeword(N),g2(N,K) +! fast encoding for low-weight test patterns + codeword=0 + do i=1,K + if( me(i) .eq. 1 ) then + codeword=ieor(codeword,g2(1:N,i)) + endif + enddo + return +end subroutine mrbencode101 + +subroutine nextpat101(mi,k,iorder,iflag) + integer*1 mi(k),ms(k) +! generate the next test error pattern + ind=-1 + do i=1,k-1 + if( mi(i).eq.0 .and. mi(i+1).eq.1) ind=i + enddo + if( ind .lt. 0 ) then ! no more patterns of this order + iflag=ind + return + endif + ms=0 + ms(1:ind-1)=mi(1:ind-1) + ms(ind)=1 + ms(ind+1)=0 + if( ind+1 .lt. k ) then + nz=iorder-sum(ms) + ms(k-nz+1:k)=1 + endif + mi=ms + do i=1,k ! iflag will point to the lowest-index 1 in mi + if(mi(i).eq.1) then + iflag=i + exit + endif + enddo + return +end subroutine nextpat101 + +subroutine boxit101(reset,e2,ntau,npindex,i1,i2) + integer*1 e2(1:ntau) + integer indexes(5000,2),fp(0:525000),np(5000) + logical reset + common/boxes/indexes,fp,np + + if(reset) then + patterns=-1 + fp=-1 + np=-1 + sc=-1 + indexes=-1 + reset=.false. + endif + + indexes(npindex,1)=i1 + indexes(npindex,2)=i2 + ipat=0 + do i=1,ntau + if(e2(i).eq.1) then + ipat=ipat+ishft(1,ntau-i) + endif + enddo + + ip=fp(ipat) ! see what's currently stored in fp(ipat) + if(ip.eq.-1) then + fp(ipat)=npindex + else + do while (np(ip).ne.-1) + ip=np(ip) + enddo + np(ip)=npindex + endif + return +end subroutine boxit101 + +subroutine fetchit101(reset,e2,ntau,i1,i2) + integer indexes(5000,2),fp(0:525000),np(5000) + integer lastpat + integer*1 e2(ntau) + logical reset + common/boxes/indexes,fp,np + save lastpat,inext + + if(reset) then + lastpat=-1 + reset=.false. + endif + + ipat=0 + do i=1,ntau + if(e2(i).eq.1) then + ipat=ipat+ishft(1,ntau-i) + endif + enddo + index=fp(ipat) + + if(lastpat.ne.ipat .and. index.gt.0) then ! return first set of indices + i1=indexes(index,1) + i2=indexes(index,2) + inext=np(index) + elseif(lastpat.eq.ipat .and. inext.gt.0) then + i1=indexes(inext,1) + i2=indexes(inext,2) + inext=np(inext) + else + i1=-1 + i2=-1 + inext=-1 + endif + lastpat=ipat + return +end subroutine fetchit101 + diff --git a/lib/fst280/osd280_74.f90 b/lib/fst280/osd280_74.f90 new file mode 100644 index 000000000..6f87dd216 --- /dev/null +++ b/lib/fst280/osd280_74.f90 @@ -0,0 +1,403 @@ +subroutine osd280_74(llr,k,apmask,ndeep,message74,cw,nhardmin,dmin) +! +! An ordered-statistics decoder for the (280,74) code. +! Message payload is 50 bits. Any or all of a 24-bit CRC can be +! used for detecting incorrect codewords. The remaining CRC bits are +! cascaded with the LDPC code for the purpose of improving the +! distance spectrum of the code. +! +! If p1 (0.le.p1.le.24) is the number of CRC24 bits that are +! to be used for bad codeword detection, then the argument k should +! be set to 50+p1. +! +! Valid values for k are in the range [50,74]. +! + character*24 c24 + integer, parameter:: N=280 + integer*1 apmask(N),apmaskr(N) + integer*1, allocatable, save :: gen(:,:) + integer*1, allocatable :: genmrb(:,:),g2(:,:) + integer*1, allocatable :: temp(:),m0(:),me(:),mi(:),misub(:),e2sub(:),e2(:),ui(:) + integer*1, allocatable :: r2pat(:) + integer indices(N),nxor(N) + integer*1 cw(N),ce(N),c0(N),hdec(N) + integer*1, allocatable :: decoded(:) + integer*1 message74(74) + integer indx(N) + real llr(N),rx(N),absrx(N) + + logical first,reset + data first/.true./ + save first + + allocate( genmrb(k,N), g2(N,k) ) + allocate( temp(k), m0(k), me(k), mi(k), misub(k), e2sub(N-k), e2(N-k), ui(N-k) ) + allocate( r2pat(N-k), decoded(k) ) + + if( first ) then ! fill the generator matrix +! +! Create generator matrix for partial CRC cascaded with LDPC code. +! +! Let p2=74-k and p1+p2=24. +! +! The last p2 bits of the CRC24 are cascaded with the LDPC code. +! +! The first p1=k-50 CRC24 bits will be used for error detection. +! + allocate( gen(k,N) ) + gen=0 + do i=1,k + message74=0 + message74(i)=1 + if(i.le.50) then + call get_crc24(message74,74,ncrc24) + write(c24,'(b24.24)') ncrc24 + read(c24,'(24i1)') message74(51:74) + message74(51:k)=0 + endif + call encode280_74(message74,cw) + gen(i,:)=cw + enddo + + first=.false. + endif + + rx=llr + apmaskr=apmask + +! Hard decisions on the received word. + hdec=0 + where(rx .ge. 0) hdec=1 + +! Use magnitude of received symbols as a measure of reliability. + absrx=abs(rx) + call indexx(absrx,N,indx) + +! Re-order the columns of the generator matrix in order of decreasing reliability. + do i=1,N + genmrb(1:k,i)=gen(1:k,indx(N+1-i)) + indices(i)=indx(N+1-i) + enddo + +! Do gaussian elimination to create a generator matrix with the most reliable +! received bits in positions 1:k in order of decreasing reliability (more or less). + do id=1,k ! diagonal element indices + do icol=id,k+20 ! The 20 is ad hoc - beware + iflag=0 + if( genmrb(id,icol) .eq. 1 ) then + iflag=1 + if( icol .ne. id ) then ! reorder column + temp(1:k)=genmrb(1:k,id) + genmrb(1:k,id)=genmrb(1:k,icol) + genmrb(1:k,icol)=temp(1:k) + itmp=indices(id) + indices(id)=indices(icol) + indices(icol)=itmp + endif + do ii=1,k + if( ii .ne. id .and. genmrb(ii,id) .eq. 1 ) then + genmrb(ii,1:N)=ieor(genmrb(ii,1:N),genmrb(id,1:N)) + endif + enddo + exit + endif + enddo + enddo + + g2=transpose(genmrb) + +! The hard decisions for the k MRB bits define the order 0 message, m0. +! Encode m0 using the modified generator matrix to find the "order 0" codeword. +! Flip various combinations of bits in m0 and re-encode to generate a list of +! codewords. Return the member of the list that has the smallest Euclidean +! distance to the received word. + + hdec=hdec(indices) ! hard decisions from received symbols + m0=hdec(1:k) ! zero'th order message + absrx=absrx(indices) + rx=rx(indices) + apmaskr=apmaskr(indices) + + call mrbencode74(m0,c0,g2,N,k) + nxor=ieor(c0,hdec) + nhardmin=sum(nxor) + dmin=sum(nxor*absrx) + + cw=c0 + ntotal=0 + nrejected=0 + npre1=0 + npre2=0 + + if(ndeep.eq.0) goto 998 ! norder=0 + if(ndeep.gt.6) ndeep=6 + if( ndeep.eq. 1) then + nord=1 + npre1=0 + npre2=0 + nt=40 + ntheta=12 + elseif(ndeep.eq.2) then + nord=1 + npre1=1 + npre2=0 + nt=40 + ntheta=12 + elseif(ndeep.eq.3) then + nord=1 + npre1=1 + npre2=1 + nt=40 + ntheta=12 + ntau=14 + elseif(ndeep.eq.4) then + nord=2 + npre1=1 + npre2=1 + nt=40 + ntheta=12 + ntau=17 + elseif(ndeep.eq.5) then + nord=3 + npre1=1 + npre2=1 + nt=40 + ntheta=12 + ntau=19 + elseif(ndeep.eq.6) then + nord=4 + npre1=1 + npre2=1 + nt=40 + ntheta=12 + ntau=19 + endif + + do iorder=1,nord + misub(1:k-iorder)=0 + misub(k-iorder+1:k)=1 + iflag=k-iorder+1 + do while(iflag .ge.0) + if(iorder.eq.nord .and. npre1.eq.0) then + iend=iflag + else + iend=1 + endif + d1=0. + do n1=iflag,iend,-1 + mi=misub + mi(n1)=1 + if(any(iand(apmaskr(1:k),mi).eq.1)) cycle + ntotal=ntotal+1 + me=ieor(m0,mi) + if(n1.eq.iflag) then + call mrbencode74(me,ce,g2,N,k) + e2sub=ieor(ce(k+1:N),hdec(k+1:N)) + e2=e2sub + nd1kpt=sum(e2sub(1:nt))+1 + d1=sum(ieor(me(1:k),hdec(1:k))*absrx(1:k)) + else + e2=ieor(e2sub,g2(k+1:N,n1)) + nd1kpt=sum(e2(1:nt))+2 + endif + if(nd1kpt .le. ntheta) then + call mrbencode74(me,ce,g2,N,k) + nxor=ieor(ce,hdec) + if(n1.eq.iflag) then + dd=d1+sum(e2sub*absrx(k+1:N)) + else + dd=d1+ieor(ce(n1),hdec(n1))*absrx(n1)+sum(e2*absrx(k+1:N)) + endif + if( dd .lt. dmin ) then + dmin=dd + cw=ce + nhardmin=sum(nxor) + nd1kptbest=nd1kpt + endif + else + nrejected=nrejected+1 + endif + enddo +! Get the next test error pattern, iflag will go negative +! when the last pattern with weight iorder has been generated. + call nextpat74(misub,k,iorder,iflag) + enddo + enddo + + if(npre2.eq.1) then + reset=.true. + ntotal=0 + do i1=k,1,-1 + do i2=i1-1,1,-1 + ntotal=ntotal+1 + mi(1:ntau)=ieor(g2(k+1:k+ntau,i1),g2(k+1:k+ntau,i2)) + call boxit74(reset,mi(1:ntau),ntau,ntotal,i1,i2) + enddo + enddo + + ncount2=0 + ntotal2=0 + reset=.true. +! Now run through again and do the second pre-processing rule + misub(1:k-nord)=0 + misub(k-nord+1:k)=1 + iflag=k-nord+1 + do while(iflag .ge.0) + me=ieor(m0,misub) + call mrbencode74(me,ce,g2,N,k) + e2sub=ieor(ce(k+1:N),hdec(k+1:N)) + do i2=0,ntau + ntotal2=ntotal2+1 + ui=0 + if(i2.gt.0) ui(i2)=1 + r2pat=ieor(e2sub,ui) +778 continue + call fetchit74(reset,r2pat(1:ntau),ntau,in1,in2) + if(in1.gt.0.and.in2.gt.0) then + ncount2=ncount2+1 + mi=misub + mi(in1)=1 + mi(in2)=1 + if(sum(mi).lt.nord+npre1+npre2.or.any(iand(apmaskr(1:k),mi).eq.1)) cycle + me=ieor(m0,mi) + call mrbencode74(me,ce,g2,N,k) + nxor=ieor(ce,hdec) + dd=sum(nxor*absrx) + if( dd .lt. dmin ) then + dmin=dd + cw=ce + nhardmin=sum(nxor) + endif + goto 778 + endif + enddo + call nextpat74(misub,k,nord,iflag) + enddo + endif + +998 continue +! Re-order the codeword to [message bits][parity bits] format. + cw(indices)=cw + hdec(indices)=hdec + message74=cw(1:74) + call get_crc24(message74,74,nbadcrc) + if(nbadcrc.ne.0) nhardmin=-nhardmin + + return +end subroutine osd280_74 + +subroutine mrbencode74(me,codeword,g2,N,K) + integer*1 me(K),codeword(N),g2(N,K) +! fast encoding for low-weight test patterns + codeword=0 + do i=1,K + if( me(i) .eq. 1 ) then + codeword=ieor(codeword,g2(1:N,i)) + endif + enddo + return +end subroutine mrbencode74 + +subroutine nextpat74(mi,k,iorder,iflag) + integer*1 mi(k),ms(k) +! generate the next test error pattern + ind=-1 + do i=1,k-1 + if( mi(i).eq.0 .and. mi(i+1).eq.1) ind=i + enddo + if( ind .lt. 0 ) then ! no more patterns of this order + iflag=ind + return + endif + ms=0 + ms(1:ind-1)=mi(1:ind-1) + ms(ind)=1 + ms(ind+1)=0 + if( ind+1 .lt. k ) then + nz=iorder-sum(ms) + ms(k-nz+1:k)=1 + endif + mi=ms + do i=1,k ! iflag will point to the lowest-index 1 in mi + if(mi(i).eq.1) then + iflag=i + exit + endif + enddo + return +end subroutine nextpat74 + +subroutine boxit74(reset,e2,ntau,npindex,i1,i2) + integer*1 e2(1:ntau) + integer indexes(5000,2),fp(0:525000),np(5000) + logical reset + common/boxes/indexes,fp,np + + if(reset) then + patterns=-1 + fp=-1 + np=-1 + sc=-1 + indexes=-1 + reset=.false. + endif + + indexes(npindex,1)=i1 + indexes(npindex,2)=i2 + ipat=0 + do i=1,ntau + if(e2(i).eq.1) then + ipat=ipat+ishft(1,ntau-i) + endif + enddo + + ip=fp(ipat) ! see what's currently stored in fp(ipat) + if(ip.eq.-1) then + fp(ipat)=npindex + else + do while (np(ip).ne.-1) + ip=np(ip) + enddo + np(ip)=npindex + endif + return +end subroutine boxit74 + +subroutine fetchit74(reset,e2,ntau,i1,i2) + integer indexes(5000,2),fp(0:525000),np(5000) + integer lastpat + integer*1 e2(ntau) + logical reset + common/boxes/indexes,fp,np + save lastpat,inext + + if(reset) then + lastpat=-1 + reset=.false. + endif + + ipat=0 + do i=1,ntau + if(e2(i).eq.1) then + ipat=ipat+ishft(1,ntau-i) + endif + enddo + index=fp(ipat) + + if(lastpat.ne.ipat .and. index.gt.0) then ! return first set of indices + i1=indexes(index,1) + i2=indexes(index,2) + inext=np(index) + elseif(lastpat.eq.ipat .and. inext.gt.0) then + i1=indexes(inext,1) + i2=indexes(inext,2) + inext=np(inext) + else + i1=-1 + i2=-1 + inext=-1 + endif + lastpat=ipat + return +end subroutine fetchit74 + From 5dfb3c781b4a98a6b0cafd7cfea17b9af29421ef Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 16 Jun 2020 12:59:22 -0500 Subject: [PATCH 073/520] Add fst280 files to CMakeLists.txt. Doesn't build yet. --- CMakeLists.txt | 27 +++++++++++++ lib/fst280/gen_fst280wave.f90 | 72 +++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 lib/fst280/gen_fst280wave.f90 diff --git a/CMakeLists.txt b/CMakeLists.txt index ca25c3a08..04776905e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -595,6 +595,21 @@ set (wsjt_FSRCS lib/wqencode.f90 lib/wspr_downsample.f90 lib/zplot9.f90 + lib/fst280/bpdecode280_101.f90 + lib/fst280/bpdecode280_74.f90 + lib/fst280/decode280_101.f90 + lib/fst280/decode280_74.f90 + lib/fst280/encode280_101.f90 + lib/fst280/encode280_74.f90 + lib/fst280/fst280d.f90 + lib/fst280/fst280sim.f90 + lib/fst280/genfst280_wave.f90 + lib/fst280/genfst280.f90 + lib/fst280/get_ft280_bitmetrics.f90 + lib/fst280/ldpcsim280_101.f90 + lib/fst280/ldpcsim280_74.f90 + lib/fst280/osd280_101.f90 + lib/fst280/osd280_74.f90 ) # temporary workaround for a gfortran v7.3 ICE on Fedora 27 64-bit @@ -1351,6 +1366,18 @@ target_link_libraries (ft4sim_mult wsjt_fort wsjt_cxx) add_executable (record_time_signal Audio/tools/record_time_signal.cpp) target_link_libraries (record_time_signal wsjt_cxx wsjt_qtmm wsjt_qt) +add_executable (fst280d lib/fst280/fst280d.f90 wsjtx.rc) +target_link_libraries (fst280d wsjt_fort wsjt_cxx) + +add_executable (fst280sim lib/fst280/fst280sim.f90 wsjtx.rc) +target_link_libraries (fst280sim wsjt_fort wsjt_cxx) + +add_executable (ldpcsim280_101 lib/fst280/ldpcsim280_101.f90 wsjtx.rc) +target_link_libraries (ldpcsim280_101 wsjt_fort wsjt_cxx) + +add_executable (ldpcsim280_74 lib/fst280/ldpcsim280_74.f90 wsjtx.rc) +target_link_libraries (ldpcsim280_74 wsjt_fort wsjt_cxx) + endif(WSJT_BUILD_UTILS) # build the main application diff --git a/lib/fst280/gen_fst280wave.f90 b/lib/fst280/gen_fst280wave.f90 new file mode 100644 index 000000000..dcf11ff4d --- /dev/null +++ b/lib/fst280/gen_fst280wave.f90 @@ -0,0 +1,72 @@ +subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0,icmplx,cwave,wave) + + real wave(nwave) + complex cwave(nwave) + real, allocatable, save :: pulse(:) + real, allocatable :: dphi(:) + integer itone(nsym) + logical first + data first/.true./ + save first,twopi,dt,tsym + + if(first) then + allocate( pulse(3*nsps*fsample) ) + twopi=8.0*atan(1.0) + dt=1.0/fsample + tsym=nsps/fsample +! Compute the smoothed frequency-deviation pulse + do i=1,3*nsps + tt=(i-1.5*nsps)/real(nsps) + pulse(i)=gfsk_pulse(2.0,tt) + enddo + first=.false. + endif + +! Compute the smoothed frequency waveform. +! Length = (nsym+2)*nsps samples, zero-padded + allocate( dphi(0:(nsym+2)*nsps-1) ) + dphi_peak=twopi*hmod/real(nsps) + dphi=0.0 + do j=1,nsym + ib=(j-1)*nsps + ie=ib+3*nsps-1 + dphi(ib:ie) = dphi(ib:ie) + dphi_peak*pulse(1:3*nsps)*itone(j) + enddo + +! Calculate and insert the audio waveform + phi=0.0 + dphi = dphi + twopi*(f0-1.5*hmod/tsym)*dt !Shift frequency up by f0 + wave=0. + if(icmplx.eq.1) cwave=0. + k=0 + do j=0,(nsym+2)*nsps-1 + k=k+1 + if(icmplx.eq.0) then + wave(k)=sin(phi) + else + cwave(k)=cmplx(cos(phi),sin(phi)) + endif + phi=mod(phi+dphi(j),twopi) + enddo + +! Compute the ramp-up and ramp-down symbols + if(icmplx.eq.0) then + wave(1:nsps/2)=0.0 + wave(nsps/2+1:nsps)=wave(nsps/2+1:nsps) * & + (1.0-cos(twopi*(/(i,i=0,nsps/2-1)/)/real(nsps)))/2.0 + k1=(nsym+1)*nsps+1 + wave(k1+nsps/2:)=0.0 + wave(k1:k1+nsps/2-1)=wave(k1:k1+nsps/2-1) * & + (1.0+cos(twopi*(/(i,i=0,nsps/2-1)/)/real(nsps)))/2.0 + else + cwave(1:nsps/2)=0.0 + cwave(nsps/2+1:nsps)=cwave(nsps/2+1:nsps) * & + (1.0-cos(twopi*(/(i,i=0,nsps/2-1)/)/real(nsps)))/2.0 + k1=(nsym+1)*nsps+1 + cwave(k1+nsps/2:)=0.0 + cwave(k1:k1+nsps/2-1)=cwave(k1:k1+nsps/2-1) * & + (1.0+cos(twopi*(/(i,i=0,nsps/2-1)/)/real(nsps)))/2.0 + endif + + return +end subroutine gen_fst280wave From e26d6d87156884f6bcfa537f0174b36a32b0c516 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 16 Jun 2020 19:34:14 +0100 Subject: [PATCH 074/520] Typos in source file names --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 04776905e..ef9e4dec7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -603,9 +603,9 @@ set (wsjt_FSRCS lib/fst280/encode280_74.f90 lib/fst280/fst280d.f90 lib/fst280/fst280sim.f90 - lib/fst280/genfst280_wave.f90 + lib/fst280/gen_fst280wave.f90 lib/fst280/genfst280.f90 - lib/fst280/get_ft280_bitmetrics.f90 + lib/fst280/get_fst280_bitmetrics.f90 lib/fst280/ldpcsim280_101.f90 lib/fst280/ldpcsim280_74.f90 lib/fst280/osd280_101.f90 From 27e7b7b17b27a1d3b7aad2559ed80940f2fc1749 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 16 Jun 2020 13:38:34 -0500 Subject: [PATCH 075/520] Remove unused variables. --- lib/fst280/encode280_101.f90 | 6 ------ lib/fst280/encode280_74.f90 | 6 ------ 2 files changed, 12 deletions(-) diff --git a/lib/fst280/encode280_101.f90 b/lib/fst280/encode280_101.f90 index 704816355..e908bb607 100644 --- a/lib/fst280/encode280_101.f90 +++ b/lib/fst280/encode280_101.f90 @@ -1,15 +1,9 @@ subroutine encode280_101(message,codeword) - use, intrinsic :: iso_c_binding - use iso_c_binding, only: c_loc,c_size_t - use crc - integer, parameter:: N=280, K=101, M=N-K - character*24 c24 integer*1 codeword(N) integer*1 gen(M,K) integer*1 message(K) integer*1 pchecks(M) - integer*4 ncrc24 include "ldpc_280_101_generator.f90" logical first data first/.true./ diff --git a/lib/fst280/encode280_74.f90 b/lib/fst280/encode280_74.f90 index e923d46f7..a64a57815 100644 --- a/lib/fst280/encode280_74.f90 +++ b/lib/fst280/encode280_74.f90 @@ -1,15 +1,9 @@ subroutine encode280_74(message,codeword) - use, intrinsic :: iso_c_binding - use iso_c_binding, only: c_loc,c_size_t - use crc - integer, parameter:: N=280, K=74, M=N-K - character*24 c24 integer*1 codeword(N) integer*1 gen(M,K) integer*1 message(K) integer*1 pchecks(M) - integer*4 ncrc24 include "ldpc_280_74_generator.f90" logical first data first/.true./ From 3424dd7aa1b3942d27f1215515546e2b323258d1 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 16 Jun 2020 19:34:14 +0100 Subject: [PATCH 076/520] Typos in source file names and missed file --- CMakeLists.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 04776905e..95ef7d9c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -603,13 +603,14 @@ set (wsjt_FSRCS lib/fst280/encode280_74.f90 lib/fst280/fst280d.f90 lib/fst280/fst280sim.f90 - lib/fst280/genfst280_wave.f90 + lib/fst280/gen_fst280wave.f90 lib/fst280/genfst280.f90 - lib/fst280/get_ft280_bitmetrics.f90 + lib/fst280/get_fst280_bitmetrics.f90 lib/fst280/ldpcsim280_101.f90 lib/fst280/ldpcsim280_74.f90 lib/fst280/osd280_101.f90 lib/fst280/osd280_74.f90 + lib/fst280/get_crc24.f90 ) # temporary workaround for a gfortran v7.3 ICE on Fedora 27 64-bit From 18776df8667b9983d8e437b069d7df28cb74fb2a Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 16 Jun 2020 13:40:52 -0500 Subject: [PATCH 077/520] Add missing get_crc24.f90 --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index ef9e4dec7..74289b285 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -603,6 +603,7 @@ set (wsjt_FSRCS lib/fst280/encode280_74.f90 lib/fst280/fst280d.f90 lib/fst280/fst280sim.f90 + lib/fst280/get_crc24.f90 lib/fst280/gen_fst280wave.f90 lib/fst280/genfst280.f90 lib/fst280/get_fst280_bitmetrics.f90 From 398414a811150ab1f92bb1f38e371f79e9458f02 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 16 Jun 2020 14:51:59 -0400 Subject: [PATCH 078/520] Add file names to widgets.pri --- widgets/widgets.pri | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/widgets/widgets.pri b/widgets/widgets.pri index 4ff058c66..7a364c4ee 100644 --- a/widgets/widgets.pri +++ b/widgets/widgets.pri @@ -10,7 +10,7 @@ SOURCES += \ widgets/AbstractLogWindow.cpp \ widgets/FrequencyLineEdit.cpp widgets/FrequencyDeltaLineEdit.cpp \ widgets/FoxLogWindow.cpp widgets/CabrilloLogWindow.cpp \ - widgets/HelpTextWindow.cpp + widgets/HelpTextWindow.cpp widgets/RestrictedSpinBox.cpp HEADERS += \ widgets/mainwindow.h widgets/plotter.h \ widgets/about.h widgets/widegraph.h \ @@ -21,7 +21,8 @@ HEADERS += \ widgets/fastplot.h widgets/MessageBox.hpp widgets/colorhighlighting.h \ widgets/ExportCabrillo.h widgets/AbstractLogWindow.hpp \ widgets/FoxLogWindow.hpp widgets/CabrilloLogWindow.hpp \ - widgets/DateTimeEdit.hpp widgets/HelpTextWindow.hpp + widgets/DateTimeEdit.hpp widgets/HelpTextWindow.hpp \ + widgets/RestrictedSpinBox.hpp FORMS += \ widgets/mainwindow.ui widgets/about.ui \ From 725933ddca59e0c253f42a85879819ecef060aa5 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 16 Jun 2020 14:58:08 -0400 Subject: [PATCH 079/520] Initial commit with some GUI features for FST280 and FS280W. --- widgets/mainwindow.cpp | 37 ++++++++++++++++++++++++++++++++++++- widgets/mainwindow.h | 2 ++ widgets/mainwindow.ui | 28 ++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 0ed391faa..03144f51d 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -422,7 +422,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, add_child_to_event_filter (this); ui->dxGridEntry->setValidator (new MaidenheadLocatorValidator {this}); ui->dxCallEntry->setValidator (new CallsignValidator {this}); - ui->sbTR->values ({5, 10, 15, 30}); + ui->sbTR->values ({5, 10, 15, 30, 60, 120, 300}); ui->decodedTextBrowser->set_configuration (&m_config, true); ui->decodedTextBrowser2->set_configuration (&m_config); @@ -573,6 +573,8 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, on_EraseButton_clicked (); QActionGroup* modeGroup = new QActionGroup(this); + ui->actionFST280->setActionGroup(modeGroup); + ui->actionFST280W->setActionGroup(modeGroup); ui->actionFT4->setActionGroup(modeGroup); ui->actionFT8->setActionGroup(modeGroup); ui->actionJT9->setActionGroup(modeGroup); @@ -2317,6 +2319,10 @@ void MainWindow::setup_status_bar (bool vhf) } else if ("FT4" == m_mode) { mode_label.setStyleSheet ("QLabel{background-color: #ff0099}"); } else if ("FT8" == m_mode) { + mode_label.setStyleSheet ("QLabel{background-color: #ff6699}"); + } else if ("FST280" == m_mode) { + mode_label.setStyleSheet ("QLabel{background-color: #99ff66}"); + } else if ("FST280W" == m_mode) { mode_label.setStyleSheet ("QLabel{background-color: #6699ff}"); } else if ("FreqCal" == m_mode) { mode_label.setStyleSheet ("QLabel{background-color: #ff9933}"); @@ -5812,6 +5818,33 @@ void MainWindow::displayWidgets(qint64 n) genStdMsgs (m_rpt, true); } +void MainWindow::on_actionFST280_triggered() +{ + m_mode="FST280"; + m_modeTx="FST280"; + ui->actionFST280->setChecked(true); + WSPR_config(false); +// 012345678901234567890123456789012 + displayWidgets(nWidgets("111011000000111100010000000000000")); + bool bVHF=m_config.enable_VHF_features(); + setup_status_bar (bVHF); + ui->sbSubmode->setMaximum(3); + statusChanged(); +} + +void MainWindow::on_actionFST280W_triggered() +{ + m_mode="FST280W"; + m_modeTx="FST280W"; + WSPR_config(true); + ui->actionFST280W->setChecked(true); +// 012345678901234567890123456789012 + displayWidgets(nWidgets("000000000000000001010000000000000")); + bool bVHF=m_config.enable_VHF_features(); + setup_status_bar (bVHF); + statusChanged(); +} + void MainWindow::on_actionFT4_triggered() { m_mode="FT4"; @@ -8994,6 +9027,8 @@ void MainWindow::on_pbBestSP_clicked() void MainWindow::set_mode (QString const& mode) { if ("FT4" == mode) on_actionFT4_triggered (); + else if ("FST280" == mode) on_actionFST280_triggered (); + else if ("FST280W" == mode) on_actionFST280W_triggered (); else if ("FT8" == mode) on_actionFT8_triggered (); else if ("JT4" == mode) on_actionJT4_triggered (); else if ("JT9" == mode) on_actionJT9_triggered (); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 6da871b37..887e59c15 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -204,6 +204,8 @@ private slots: void on_actionJT4_triggered(); void on_actionFT4_triggered(); void on_actionFT8_triggered(); + void on_actionFST280_triggered(); + void on_actionFST280W_triggered(); void on_TxFreqSpinBox_valueChanged(int arg1); void on_actionSave_decoded_triggered(); void on_actionQuickDecode_toggled (bool); diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index ac2b23bcb..88233bb8e 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -2842,6 +2842,8 @@ list. The list can be maintained in Settings (F2). Mode + + @@ -3476,6 +3478,32 @@ list. The list can be maintained in Settings (F2). FT4 + + + true + + + FST280 + + + + + FST280-W + + + + + FT280W + + + + + true + + + FST280W + + From ed021dadfaed012d27dbfd648d229c339666463e Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 16 Jun 2020 14:30:00 -0500 Subject: [PATCH 080/520] fix what I broke in the last commit. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bd3a1352c..95ef7d9c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -603,7 +603,7 @@ set (wsjt_FSRCS lib/fst280/encode280_74.f90 lib/fst280/fst280d.f90 lib/fst280/fst280sim.f90 - lib/fst280/gen_fst280_wave.f90 + lib/fst280/gen_fst280wave.f90 lib/fst280/genfst280.f90 lib/fst280/get_fst280_bitmetrics.f90 lib/fst280/ldpcsim280_101.f90 From 4f802cae84ecca51d070d93ad6368a69dddfe101 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 16 Jun 2020 15:56:15 -0400 Subject: [PATCH 081/520] More work toward implementing GUI features for FST280 and FST280W. --- models/Modes.cpp | 4 +++- models/Modes.hpp | 2 ++ widgets/mainwindow.cpp | 12 +++++++++++- widgets/mainwindow.ui | 23 +++++++++++++++++++++-- 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/models/Modes.cpp b/models/Modes.cpp index 838585b2a..1b1febfa8 100644 --- a/models/Modes.cpp +++ b/models/Modes.cpp @@ -24,7 +24,9 @@ namespace "QRA64", "FreqCal", "FT8", - "FT4" + "FT4", + "FST280", + "FST280W" }; std::size_t constexpr mode_names_size = sizeof (mode_names) / sizeof (mode_names[0]); } diff --git a/models/Modes.hpp b/models/Modes.hpp index fea55e4d4..c98b1c6fb 100644 --- a/models/Modes.hpp +++ b/models/Modes.hpp @@ -50,6 +50,8 @@ public: FreqCal, FT8, FT4, + FST280, + FST280W, MODES_END_SENTINAL_AND_COUNT // this must be last }; Q_ENUM (Mode) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 03144f51d..778ca321a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -423,6 +423,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->dxGridEntry->setValidator (new MaidenheadLocatorValidator {this}); ui->dxCallEntry->setValidator (new CallsignValidator {this}); ui->sbTR->values ({5, 10, 15, 30, 60, 120, 300}); + ui->sbTR_FST280W->values ({120, 300}); ui->decodedTextBrowser->set_configuration (&m_config, true); ui->decodedTextBrowser2->set_configuration (&m_config); @@ -5828,6 +5829,9 @@ void MainWindow::on_actionFST280_triggered() displayWidgets(nWidgets("111011000000111100010000000000000")); bool bVHF=m_config.enable_VHF_features(); setup_status_bar (bVHF); + m_TRperiod = ui->sbTR->value (); + ui->sbTR->setMinimum(15); + ui->sbTR->setMaximum(300); ui->sbSubmode->setMaximum(3); statusChanged(); } @@ -5839,9 +5843,14 @@ void MainWindow::on_actionFST280W_triggered() WSPR_config(true); ui->actionFST280W->setChecked(true); // 012345678901234567890123456789012 - displayWidgets(nWidgets("000000000000000001010000000000000")); + displayWidgets(nWidgets("000001000000000001010000000000000")); bool bVHF=m_config.enable_VHF_features(); setup_status_bar (bVHF); + m_TRperiod = ui->sbTR->value (); + ui->band_hopping_group_box->setVisible(false); + ui->sbTR->setMinimum(120); + ui->sbTR->setMaximum(300); + ui->sbSubmode->setMaximum(3); statusChanged(); } @@ -6464,6 +6473,7 @@ void MainWindow::WSPR_config(bool b) ui->label_7->setVisible(!b and ui->cbMenus->isChecked()); ui->logQSOButton->setVisible(!b); ui->DecodeButton->setEnabled(!b); + ui->band_hopping_group_box->setVisible(true); if(b and (m_mode!="Echo")) { QString t="UTC dB DT Freq Drift Call Grid dBm "; if(m_config.miles()) t += " mi"; diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 88233bb8e..ccce59e4c 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -1039,7 +1039,7 @@ QPushButton[state="ok"] { - 0 + 1 @@ -1608,7 +1608,7 @@ When not checked you can view the calibration results. QTabWidget::Triangular - 0 + 1 @@ -2590,6 +2590,25 @@ list. The list can be maintained in Settings (F2). + + + + Qt::AlignCenter + + + s + + + T/R + + + 120 + + + 300 + + + From abcb7c3ff58ebb9c70c26eaf24610a5de7535086 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 16 Jun 2020 16:33:15 -0400 Subject: [PATCH 082/520] Update one more file name, and the *.f90 references to 'include' it. --- lib/fst280/fst280_params.f90 | 8 ++++++++ lib/fst280/fst280d.f90 | 4 ++-- lib/fst280/fst280sim.f90 | 2 +- lib/fst280/genfst280.f90 | 4 ++-- lib/fst280/get_fst280_bitmetrics.f90 | 2 +- 5 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 lib/fst280/fst280_params.f90 diff --git a/lib/fst280/fst280_params.f90 b/lib/fst280/fst280_params.f90 new file mode 100644 index 000000000..e541beeed --- /dev/null +++ b/lib/fst280/fst280_params.f90 @@ -0,0 +1,8 @@ +! FT4S280 +! LDPC(280,101)/CRC24 code, six 4x4 Costas arrays for sync, ramp-up and ramp-down symbols + +parameter (KK=77) !Information bits (77 + CRC24) +parameter (ND=140) !Data symbols +parameter (NS=24) !Sync symbols +parameter (NN=NS+ND) !Sync and data symbols (164) +parameter (NN2=NS+ND+2) !Total channel symbols (166) diff --git a/lib/fst280/fst280d.f90 b/lib/fst280/fst280d.f90 index edfee81f7..8442b18d9 100644 --- a/lib/fst280/fst280d.f90 +++ b/lib/fst280/fst280d.f90 @@ -3,7 +3,7 @@ program fst280d ! Decode fst280 data read from *.c2 or *.wav files. use packjt77 - include 'ft4s280_params.f90' + include 'fst280_params.f90' character arg*8,infile*80,fname*16,datetime*11 ! character ch1*1,ch4*4,cseq*31 ! character*22 decodes(100) @@ -336,7 +336,7 @@ subroutine sync_fst280(cd0,i0,f0,hmod,ncoh,np,nss,fs,sync) ! Compute sync power for a complex, downsampled FST280 signal. - include 'ft4s280_params.f90' + include 'fst280_params.f90' complex cd0(0:np-1) complex, allocatable, save :: csync(:) complex, allocatable, save :: csynct(:) diff --git a/lib/fst280/fst280sim.f90 b/lib/fst280/fst280sim.f90 index 72026344b..70c6e5cb6 100644 --- a/lib/fst280/fst280sim.f90 +++ b/lib/fst280/fst280sim.f90 @@ -4,7 +4,7 @@ program fst280sim use wavhdr use packjt77 - include 'ft4s280_params.f90' !Set various constants + include 'fst280_params.f90' !Set various constants type(hdr) h !Header for .wav file character arg*12,fname*17 character msg37*37,msgsent37*37,c77*77 diff --git a/lib/fst280/genfst280.f90 b/lib/fst280/genfst280.f90 index e074b5080..a0adf5611 100644 --- a/lib/fst280/genfst280.f90 +++ b/lib/fst280/genfst280.f90 @@ -13,7 +13,7 @@ subroutine genfst280(msg0,ichk,msgsent,msgbits,i4tone,iwspr) ! Message duration: TxT = 164*8400/12000 = 114.8 s use packjt77 - include 'ft4s280_params.f90' + include 'fst280_params.f90' character*37 msg0 character*37 message !Message to be generated character*37 msgsent !Message as it will be received @@ -68,7 +68,7 @@ subroutine genfst280(msg0,ichk,msgsent,msgbits,i4tone,iwspr) msgsent='*** bad message *** ' go to 999 - entry get_ft4s280_tones_from_bits(msgbits,i4tone,iwspr) + entry get_fst280_tones_from_bits(msgbits,i4tone,iwspr) 2 continue diff --git a/lib/fst280/get_fst280_bitmetrics.f90 b/lib/fst280/get_fst280_bitmetrics.f90 index a50088f66..b5bcf8a10 100644 --- a/lib/fst280/get_fst280_bitmetrics.f90 +++ b/lib/fst280/get_fst280_bitmetrics.f90 @@ -1,6 +1,6 @@ subroutine get_fst280_bitmetrics(cd,nss,hmod,bitmetrics,badsync) - include 'ft4s280_params.f90' + include 'fst280_params.f90' complex cd(0:NN*nss-1) complex cs(0:3,NN) complex csymb(nss) From 0e3ff2688a6ea6c618a05fc5dfe429e207a4ed0d Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 16 Jun 2020 16:59:40 -0400 Subject: [PATCH 083/520] Further progress toward activating FST280 and FST280W in the GUI. --- lib/fst280/fst280_params.f90 | 16 ++++---- lib/fst280/ft4s280_params.f90 | 8 ---- widgets/mainwindow.cpp | 71 ++++++++++------------------------- widgets/mainwindow.h | 1 - 4 files changed, 28 insertions(+), 68 deletions(-) delete mode 100644 lib/fst280/ft4s280_params.f90 diff --git a/lib/fst280/fst280_params.f90 b/lib/fst280/fst280_params.f90 index e541beeed..dc1519160 100644 --- a/lib/fst280/fst280_params.f90 +++ b/lib/fst280/fst280_params.f90 @@ -1,8 +1,8 @@ -! FT4S280 -! LDPC(280,101)/CRC24 code, six 4x4 Costas arrays for sync, ramp-up and ramp-down symbols - -parameter (KK=77) !Information bits (77 + CRC24) -parameter (ND=140) !Data symbols -parameter (NS=24) !Sync symbols -parameter (NN=NS+ND) !Sync and data symbols (164) -parameter (NN2=NS+ND+2) !Total channel symbols (166) +! FT4S280 +! LDPC(280,101)/CRC24 code, six 4x4 Costas arrays for sync, ramp-up and ramp-down symbols + +parameter (KK=77) !Information bits (77 + CRC24) +parameter (ND=140) !Data symbols +parameter (NS=24) !Sync symbols +parameter (NN=NS+ND) !Sync and data symbols (164) +parameter (NN2=NS+ND+2) !Total channel symbols (166) diff --git a/lib/fst280/ft4s280_params.f90 b/lib/fst280/ft4s280_params.f90 deleted file mode 100644 index dc1519160..000000000 --- a/lib/fst280/ft4s280_params.f90 +++ /dev/null @@ -1,8 +0,0 @@ -! FT4S280 -! LDPC(280,101)/CRC24 code, six 4x4 Costas arrays for sync, ramp-up and ramp-down symbols - -parameter (KK=77) !Information bits (77 + CRC24) -parameter (ND=140) !Data symbols -parameter (NS=24) !Sync symbols -parameter (NN=NS+ND) !Sync and data symbols (164) -parameter (NN2=NS+ND+2) !Total channel symbols (166) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 778ca321a..935866bb3 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1316,8 +1316,6 @@ void MainWindow::fixStop() m_hsymStop=179; if(m_mode=="WSPR") { m_hsymStop=396; - } else if(m_mode=="WSPR-LF") { - m_hsymStop=813; } else if(m_mode=="Echo") { m_hsymStop=9; } else if (m_mode=="JT4"){ @@ -1533,26 +1531,11 @@ void MainWindow::dataSink(qint64 frames) m_cmndP1 << depth_args << "-a" << QDir::toNativeSeparators (m_config.writeable_data_dir ().absolutePath()) << m_path; } else { - // if(m_mode=="WSPR-LF") - // { - // m_cmndP1 << degrade << t2 << "-a" - // << QDir::toNativeSeparators (m_config.writeable_data_dir ().absolutePath()) - // << m_fnameWE + ".wav"; - // } - // else - { - m_cmndP1 << depth_args << "-a" - << QDir::toNativeSeparators (m_config.writeable_data_dir ().absolutePath()) - << t2 << m_fnameWE + ".wav"; - } + m_cmndP1 << depth_args << "-a" + << QDir::toNativeSeparators (m_config.writeable_data_dir ().absolutePath()) + << t2 << m_fnameWE + ".wav"; } - // QString t3=cmnd; - // int i1=cmnd.indexOf("/wsprd "); - // cmnd=t3.mid(0,i1+7) + t3.mid(i1+7); - -// if(m_mode=="WSPR-LF") cmnd=cmnd.replace("/wsprd ","/wspr_fsk8d "+degrade+t2); if (ui) ui->DecodeButton->setChecked (true); - // m_cmndP1=QDir::toNativeSeparators(cmnd); p1Timer.start(1000); m_decoderBusy = true; statusUpdate (); @@ -1563,14 +1546,8 @@ void MainWindow::dataSink(qint64 frames) void MainWindow::startP1() { - // if (m_mode=="WSPR-LF") - // { - // p1.start (QDir::toNativeSeparators (QDir {QApplication::applicationDirPath ()}.absoluteFilePath ("wspr_fsk8d")), m_cmndP1); - // } - // else - { - p1.start (QDir::toNativeSeparators (QDir {QApplication::applicationDirPath ()}.absoluteFilePath ("wsprd")), m_cmndP1); - } + // if(WSPR-LF) ... was here + p1.start (QDir::toNativeSeparators (QDir {QApplication::applicationDirPath ()}.absoluteFilePath ("wsprd")), m_cmndP1); } QString MainWindow::save_wave_file (QString const& name, short const * data, int samples, @@ -3561,9 +3538,15 @@ void MainWindow::guiUpdate() if(m_modeTx=="JT4") txDuration=1.0 + 207.0*2520/11025.0; // JT4 if(m_modeTx=="JT9") txDuration=1.0 + 85.0*m_nsps/12000.0; // JT9 if(m_modeTx=="JT65") txDuration=1.0 + 126*4096/11025.0; // JT65 - if(m_modeTx=="QRA64") txDuration=1.0 + 84*6912/12000.0; // QRA64 - if(m_modeTx=="WSPR") txDuration=2.0 + 162*8192/12000.0; // WSPR - if(m_modeTx=="WSPR-LF") txDuration=2.0 + 114*24576/12000.0; // WSPR-LF + if(m_modeTx=="QRA64") txDuration=1.0 + 84*6912/12000.0; // QRA64 + if(m_modeTx=="WSPR") txDuration=2.0 + 162*8192/12000.0; // WSPR + if(m_modeTx=="FST280" or m_mode=="FST280W") { //FST280, FST280W + if(m_TRperiod==15) txDuration=1.0 + 164*800/12000.0; + if(m_TRperiod==30) txDuration=1.0 + 164*1680/12000.0; + if(m_TRperiod==60) txDuration=1.0 + 164*4000/12000.0; + if(m_TRperiod==120) txDuration=1.0 + 164*8400/12000.0; + if(m_TRperiod==300) txDuration=1.0 + 164*2150500/12000.0; + } if(m_modeTx=="ISCAT" or m_mode=="MSK144" or m_bFast9) { txDuration=m_TRperiod-0.25; // ISCAT, JT9-fast, MSK144 } @@ -3834,8 +3817,6 @@ void MainWindow::guiUpdate() &m_currentMessageType, 22, 22); if(m_modeTx=="WSPR") genwspr_(message, msgsent, const_cast (itone), 22, 22); -// if(m_modeTx=="WSPR-LF") genwspr_fsk8_(message, msgsent, const_cast (itone), -// 22, 22); if(m_modeTx=="MSK144" or m_modeTx=="FT8" or m_modeTx=="FT4") { char MyCall[6]; char MyGrid[6]; @@ -3896,6 +3877,10 @@ void MainWindow::guiUpdate() gen_ft4wave_(const_cast(itone),&nsym,&nsps,&fsample,&f0,foxcom_.wave, foxcom_.wave,&icmplx,&nwave); } + if(m_modeTx=="FST280" or m_modeTx=="FST280W") { + // call genfst280() + // call gen_fst280wave() + } if(SpecOp::EU_VHF==m_config.special_op_id()) { if(m_ntx==2) m_xSent=ui->tx2->text().right(13); @@ -6353,23 +6338,6 @@ void MainWindow::on_actionWSPR_triggered() statusChanged(); } -void MainWindow::on_actionWSPR_LF_triggered() -{ - on_actionWSPR_triggered(); - m_mode="WSPR-LF"; - switch_mode (Modes::WSPR); - m_modeTx="WSPR-LF"; - m_TRperiod=240.0; - m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe - m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe - m_hsymStop=813; - m_toneSpacing=12000.0/24576.0; - setup_status_bar (false); - ui->actionWSPR_LF->setChecked(true); - m_wideGraph->setPeriod(m_TRperiod,m_nsps); - statusChanged(); -} - void MainWindow::on_actionEcho_triggered() { on_actionJT4_triggered(); @@ -9049,7 +9017,8 @@ void MainWindow::set_mode (QString const& mode) else if ("ISCAT" == mode) on_actionISCAT_triggered (); else if ("MSK144" == mode) on_actionMSK144_triggered (); else if ("WSPR" == mode) on_actionWSPR_triggered (); - else if ("WSPR-LF" == mode) on_actionWSPR_LF_triggered (); + else if ("FST280" == mode) on_actionFST280_triggered (); + else if ("FST280W" == mode) on_actionFST280W_triggered (); else if ("Echo" == mode) on_actionEcho_triggered (); } diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 887e59c15..779d76da4 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -278,7 +278,6 @@ private slots: void networkError (QString const&); void on_ClrAvgButton_clicked(); void on_actionWSPR_triggered(); - void on_actionWSPR_LF_triggered(); void on_syncSpinBox_valueChanged(int n); void on_TxPowerComboBox_currentIndexChanged(int); void on_sbTxPercent_valueChanged(int n); From 919702f6a7d88574c74d11c3bf78f31b49bc5c05 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 16 Jun 2020 17:27:49 -0400 Subject: [PATCH 084/520] Add suggested frequencies for FST280 and FSt280W. --- models/FrequencyList.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/models/FrequencyList.cpp b/models/FrequencyList.cpp index c0170a499..def2e6ec4 100644 --- a/models/FrequencyList.cpp +++ b/models/FrequencyList.cpp @@ -46,16 +46,21 @@ namespace {20000000, Modes::FreqCal, IARURegions::ALL}, {136000, Modes::WSPR, IARURegions::ALL}, + {136000, Modes::FST280W, IARURegions::ALL}, {136130, Modes::JT65, IARURegions::ALL}, {136130, Modes::JT9, IARURegions::ALL}, + {136130, Modes::FST280, IARURegions::ALL}, {474200, Modes::JT65, IARURegions::ALL}, {474200, Modes::JT9, IARURegions::ALL}, + {474200, Modes::FST280, IARURegions::ALL}, {474200, Modes::WSPR, IARURegions::ALL}, - + {474200, Modes::FST280W, IARURegions::ALL}, + {1836600, Modes::WSPR, IARURegions::ALL}, {1838000, Modes::JT65, IARURegions::ALL}, // squeezed allocations {1839000, Modes::JT9, IARURegions::ALL}, + {1839000, Modes::FST280, IARURegions::ALL}, {1840000, Modes::FT8, IARURegions::ALL}, // Band plans (all USB dial unless stated otherwise) @@ -87,6 +92,7 @@ namespace // {3570000, Modes::JT65, IARURegions::ALL}, // JA compatible {3572000, Modes::JT9, IARURegions::ALL}, + {3572000, Modes::FST280, IARURegions::ALL}, {3573000, Modes::FT8, IARURegions::ALL}, // above as below JT65 is out of DM allocation {3568600, Modes::WSPR, IARURegions::ALL}, // needs guard marker and lock out {3575000, Modes::FT4, IARURegions::ALL}, // provisional @@ -127,6 +133,7 @@ namespace {7074000, Modes::FT8, IARURegions::ALL}, {7076000, Modes::JT65, IARURegions::ALL}, {7078000, Modes::JT9, IARURegions::ALL}, + {7078000, Modes::FST280, IARURegions::ALL}, {7047500, Modes::FT4, IARURegions::ALL}, // provisional - moved // up 500Hz to clear // W1AW code practice QRG @@ -161,6 +168,7 @@ namespace {10138000, Modes::JT65, IARURegions::ALL}, {10138700, Modes::WSPR, IARURegions::ALL}, {10140000, Modes::JT9, IARURegions::ALL}, + {10140000, Modes::FST280, IARURegions::ALL}, {10140000, Modes::FT4, IARURegions::ALL}, // provisional // Band plans (all USB dial unless stated otherwise) @@ -204,6 +212,7 @@ namespace {14074000, Modes::FT8, IARURegions::ALL}, {14076000, Modes::JT65, IARURegions::ALL}, {14078000, Modes::JT9, IARURegions::ALL}, + {14078000, Modes::FST280, IARURegions::ALL}, {14080000, Modes::FT4, IARURegions::ALL}, // provisional // Band plans (all USB dial unless stated otherwise) @@ -236,24 +245,28 @@ namespace {18100000, Modes::FT8, IARURegions::ALL}, {18102000, Modes::JT65, IARURegions::ALL}, {18104000, Modes::JT9, IARURegions::ALL}, + {18104000, Modes::FST280, IARURegions::ALL}, {18104000, Modes::FT4, IARURegions::ALL}, // provisional {18104600, Modes::WSPR, IARURegions::ALL}, {21074000, Modes::FT8, IARURegions::ALL}, {21076000, Modes::JT65, IARURegions::ALL}, {21078000, Modes::JT9, IARURegions::ALL}, + {21078000, Modes::FST280, IARURegions::ALL}, {21094600, Modes::WSPR, IARURegions::ALL}, {21140000, Modes::FT4, IARURegions::ALL}, {24915000, Modes::FT8, IARURegions::ALL}, {24917000, Modes::JT65, IARURegions::ALL}, {24919000, Modes::JT9, IARURegions::ALL}, + {24919000, Modes::FST280, IARURegions::ALL}, {24919000, Modes::FT4, IARURegions::ALL}, // provisional {24924600, Modes::WSPR, IARURegions::ALL}, {28074000, Modes::FT8, IARURegions::ALL}, {28076000, Modes::JT65, IARURegions::ALL}, {28078000, Modes::JT9, IARURegions::ALL}, + {28078000, Modes::FST280, IARURegions::ALL}, {28124600, Modes::WSPR, IARURegions::ALL}, {28180000, Modes::FT4, IARURegions::ALL}, @@ -267,6 +280,7 @@ namespace {50293000, Modes::WSPR, IARURegions::R3}, {50310000, Modes::JT65, IARURegions::ALL}, {50312000, Modes::JT9, IARURegions::ALL}, + {50312000, Modes::FST280, IARURegions::ALL}, {50313000, Modes::FT8, IARURegions::ALL}, {50318000, Modes::FT4, IARURegions::ALL}, // provisional {50323000, Modes::FT8, IARURegions::ALL}, From af9f7b21c0404eab42fd4a793acb1bc67ee7e0a4 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 17 Jun 2020 10:56:18 -0400 Subject: [PATCH 085/520] Starting to implement FST280 decoder. Make Rx sequences behave as desired. --- CMakeLists.txt | 1 + lib/decoder.f90 | 13 +++++++++++++ widgets/mainwindow.cpp | 41 ++++++++++++++--------------------------- widgets/mainwindow.ui | 4 ++-- wsjtx.pro | 1 + 5 files changed, 31 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 95ef7d9c5..f8986e5c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -369,6 +369,7 @@ set (wsjt_FSRCS lib/jt65_mod.f90 lib/ft8_decode.f90 lib/ft4_decode.f90 + lib/fst280_decode.f90 lib/jt9_decode.f90 lib/options.f90 lib/packjt.f90 diff --git a/lib/decoder.f90 b/lib/decoder.f90 index c7b3585b5..61ff4163d 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -8,6 +8,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) use jt9_decode use ft8_decode use ft4_decode + use fst280_decode include 'jt9com.f90' include 'timer_common.inc' @@ -32,6 +33,10 @@ subroutine multimode_decoder(ss,id2,params,nfsample) integer :: decoded end type counting_ft4_decoder + type, extends(fst280_decoder) :: counting_fst280_decoder + integer :: decoded + end type counting_fst280_decoder + real ss(184,NSMAX) logical baddata,newdat65,newdat9,single_decode,bVHF,bad0,newdat,ex integer*2 id2(NTMAX*12000) @@ -48,6 +53,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) type(counting_jt9_decoder) :: my_jt9 type(counting_ft8_decoder) :: my_ft8 type(counting_ft4_decoder) :: my_ft4 + type(counting_fst280_decoder) :: my_fst280 !cast C character arrays to Fortran character strings datetime=transfer(params%datetime, datetime) @@ -62,6 +68,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) my_jt9%decoded = 0 my_ft8%decoded = 0 my_ft4%decoded = 0 + my_fst280%decoded = 0 ! For testing only: return Rx messages stored in a file as decodes inquire(file='rx_messages.txt',exist=ex) @@ -180,6 +187,12 @@ subroutine multimode_decoder(ss,id2,params,nfsample) go to 800 endif + if(params%nmode.eq.280) then +! We're in FST280/FST280W mode + print*,'FST280/FST280W' + go to 800 + endif + rms=sqrt(dot_product(float(id2(300000:310000)), & float(id2(300000:310000)))/10000.0) if(rms.lt.2.0) go to 800 diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 935866bb3..1b1b2a685 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1336,7 +1336,13 @@ void MainWindow::fixStop() m_hsymStop=50; } else if (m_mode=="FT4") { m_hsymStop=21; -} + } else if(m_mode=="FST280" or m_mode=="FST280W") { + if(m_TRperiod==15) m_hsymStop=51; + if(m_TRperiod==30) m_hsymStop=95; + if(m_TRperiod==60) m_hsymStop=205; + if(m_TRperiod==120) m_hsymStop=414; + if(m_TRperiod==300) m_hsymStop=1036; + } } //-------------------------------------------------------------- dataSink() @@ -1368,7 +1374,6 @@ void MainWindow::dataSink(qint64 frames) // Get power, spectrum, and ihsym int trmin=m_TRperiod/60.0; -// int k (frames - 1); dec_data.params.nfa=m_wideGraph->nStartFreq(); dec_data.params.nfb=m_wideGraph->Fmax(); int nsps=m_nsps; @@ -1388,6 +1393,7 @@ void MainWindow::dataSink(qint64 frames) if(m_mode=="MSK144") return; fixStop(); + qDebug() << "aa" << m_hsymStop << m_ihsym << m_TRperiod; if (m_mode == "FreqCal" // only calculate after 1st chunk, also skip chunk where rig // changed frequency @@ -1485,9 +1491,9 @@ void MainWindow::dataSink(qint64 frames) m_dateTime = now.toString ("yyyy-MMM-dd hh:mm"); if(!m_mode.startsWith ("WSPR")) decode(); //Start decoder if(m_mode=="FT8" and !m_diskData and (m_ihsym==m_earlyDecode or m_ihsym==m_earlyDecode2)) return; - if(!m_diskData and (m_saveAll or m_saveDecoded or m_mode=="WSPR")) { //Always save unless "Save None"; may delete later - if(m_mode=="FT8" or m_mode=="FT4") { +// if(m_mode=="FT8" or m_mode=="FT4") { + if(m_TRperiod < 60) { int n=fmod(double(now.time().second()),m_TRperiod); if(n<(m_TRperiod/2)) n=n+m_TRperiod; auto const& period_start=now.addSecs(-n); @@ -1516,7 +1522,6 @@ void MainWindow::dataSink(qint64 frames) if (err!=0) MessageBox::warning_message (this, tr ("Error saving c2 file"), c2name); } } - if(m_mode.startsWith ("WSPR")) { QStringList t2; QStringList depth_args; @@ -2861,13 +2866,6 @@ void MainWindow::decode() //decode() if( m_dateTimeLastTX.isValid () ) { qint64 isecs_since_tx = m_dateTimeLastTX.secsTo(now); dec_data.params.lapcqonly= (isecs_since_tx > 300); -// QTextStream(stdout) << "last tx " << isecs_since_tx -// #if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) -// << Qt::endl -// #else -// << endl -// #endif -// ; } else { m_dateTimeLastTX = now.addSecs(-900); dec_data.params.lapcqonly=true; @@ -2875,7 +2873,6 @@ void MainWindow::decode() //decode() if( m_diskData ) { dec_data.params.lapcqonly=false; } - m_msec0=QDateTime::currentMSecsSinceEpoch(); if(!m_dataAvailable or m_TRperiod==0.0) return; ui->DecodeButton->setChecked (true); @@ -2961,6 +2958,7 @@ void MainWindow::decode() //decode() dec_data.params.nmode=5; m_BestCQpriority=""; } + if(m_mode=="FST280") dec_data.params.nmode=280; dec_data.params.ntrperiod=m_TRperiod; dec_data.params.nsubmode=m_nSubMode; if(m_mode=="QRA64") dec_data.params.nsubmode=100 + m_nSubMode; @@ -3036,18 +3034,6 @@ void MainWindow::decode() //decode() mem_jt9->lock (); memcpy(to, from, qMin(mem_jt9->size(), size)); mem_jt9->unlock (); - -/* - auto now = QDateTime::currentDateTimeUtc(); - double tsec = fmod(double(now.toMSecsSinceEpoch()),86400000.0)/1000.0; - double tseq = fmod(double(now.toMSecsSinceEpoch()),1000.0*m_TRperiod)/1000.0; - if(tseq < 0.5*m_TRperiod) tseq+= m_TRperiod; - if(m_ihsym==m_earlyDecode) qDebug() << ""; - QString t; - t = t.asprintf("aa release_jt9 %11.3f %5d %5d %7.3f ",tsec,m_ihsym,m_ihsym,tseq); - qDebug().noquote() << t << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz"); -*/ - to_jt9(m_ihsym,1,-1); //Send m_ihsym to jt9[.exe] and start decoding decodeBusy(true); } @@ -4676,7 +4662,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie if(SpecOp::EU_VHF==m_config.special_op_id() and message_words.at(1).contains(m_baseCall) and (!message_words.at(2).contains(qso_partner_base_call)) and (!m_bDoubleClicked)) { -// qDebug() << "aa" << "Ignoring:" << message.string().mid(24); return; } @@ -5806,6 +5791,7 @@ void MainWindow::displayWidgets(qint64 n) void MainWindow::on_actionFST280_triggered() { + on_actionJT65_triggered(); m_mode="FST280"; m_modeTx="FST280"; ui->actionFST280->setChecked(true); @@ -5818,6 +5804,7 @@ void MainWindow::on_actionFST280_triggered() ui->sbTR->setMinimum(15); ui->sbTR->setMaximum(300); ui->sbSubmode->setMaximum(3); + on_sbTR_valueChanged(ui->sbTR->value()); statusChanged(); } @@ -7404,7 +7391,7 @@ void::MainWindow::VHF_features_enabled(bool b) void MainWindow::on_sbTR_valueChanged(int value) { // if(!m_bFastMode and n>m_nSubMode) m_MinW=m_nSubMode; - if(m_bFastMode or m_mode=="FreqCal") { + if(m_bFastMode or m_mode=="FreqCal" or m_mode=="FST280" or m_mode=="FST280W") { m_TRperiod = value; m_fastGraph->setTRPeriod (value); m_modulator->setTRPeriod (value); // TODO - not thread safe diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index ccce59e4c..9b07c7714 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -1039,7 +1039,7 @@ QPushButton[state="ok"] { - 1 + 0 @@ -1608,7 +1608,7 @@ When not checked you can view the calibration results. QTabWidget::Triangular - 1 + 2 diff --git a/wsjtx.pro b/wsjtx.pro index 3248fefd7..02a69d33c 100644 --- a/wsjtx.pro +++ b/wsjtx.pro @@ -53,6 +53,7 @@ include(item_delegates/item_delegates.pri) include(logbook/logbook.pri) include(widgets/widgets.pri) include(Decoder/decodedtext.pri) +include(Detector/Detector.pri) SOURCES += \ Radio.cpp NetworkServerLookup.cpp revision_utils.cpp \ From 57a2b7d565b64d79c729438af7099ac3337024d5 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Wed, 17 Jun 2020 10:44:29 -0500 Subject: [PATCH 086/520] Make hmod an integer everywhere. Add h=8. Increase nominal nss to 40*h Sa/symbol. --- lib/fst280/fst280d.f90 | 49 +++++++++++++++------------- lib/fst280/fst280sim.f90 | 4 ++- lib/fst280/gen_fst280wave.f90 | 1 + lib/fst280/get_fst280_bitmetrics.f90 | 1 + 4 files changed, 31 insertions(+), 24 deletions(-) diff --git a/lib/fst280/fst280d.f90 b/lib/fst280/fst280d.f90 index edfee81f7..7ec778727 100644 --- a/lib/fst280/fst280d.f90 +++ b/lib/fst280/fst280d.f90 @@ -19,21 +19,21 @@ program fst280d real llr(280),llra(280),llrb(280),llrc(280),llrd(280) real candidates(100,3) real bitmetrics(328,4) - integer ihdr(11) + integer hmod,ihdr(11) integer*2, allocatable :: iwave(:) integer*1 apmask(280),cw(280) integer*1 hbits(328) integer*1 message101(101),message74(74) logical badsync,unpk77_success - hmod=1.0 + hmod=1 Keff=91 ndeep=3 iwspr=0 nargs=iargc() if(nargs.lt.1) then - print*,'Usage: fst280d [-a ] [-f fMHz] [-h hmod] [-k Keff] file1 [file2 ...]' + print*,'Usage: fst280d [-a ] [-f fMHz] [-h hmod] [-k Keff] [-d depth] [-t t/r type] file1 [file2 ...]' go to 999 endif iarg=1 @@ -53,8 +53,8 @@ program fst280d if(arg(1:2).eq.'-h') then call getarg(iarg+1,arg) read(arg,*) hmod - if(hmod.ne.1.and.hmod.ne.2.and.hmod.ne.4) then - print*,'invalid modulation index. h must be 1, 2, or 4' + if(hmod.ne.1.and.hmod.ne.2.and.hmod.ne.4.and.hmod.ne.8) then + print*,'invalid modulation index. h must be 1, 2, 4, or 8' goto 999 endif iarg=iarg+2 @@ -84,25 +84,27 @@ program fst280d case('A') nsps=800 nmax=15*12000 - ndown=32/hmod + ndown=20/hmod + if(hmod.eq.8) ndown=2 case('B') nsps=1680 nmax=30*12000 - ndown=70/hmod - if(hmod.eq.4) ndown=15 + ndown=42/hmod ! 40 Sa/symbol + if(hmod.eq.4) ndown=10 + if(hmod.eq.8) ndown=5 case('C') nsps=4000 nmax=60*12000 - ndown=160/hmod + ndown=100/hmod ! 40 Sa/symbol + if(hmod.eq.8) ndown=16 case('D') nsps=8400 nmax=120*12000 - ndown=350/hmod - if(hmod.eq.4) ndown=84 + ndown=200/hmod case('E') nsps=21504 nmax=300*12000 - ndown=896/hmod + ndown=512/hmod end select nss=nsps/ndown fs=12000.0 !Sample rate @@ -122,12 +124,12 @@ program fst280d allocate( cframe(0:164*nss-1) ) allocate( iwave(nmax) ) -!write(*,*) 'nsps: ',nsps -!write(*,*) 'nmax: ',nmax -!write(*,*) 'nss : ',nss -!write(*,*) 'nspsec: ',fs2 -!write(*,*) 'nfft1 : ',nfft1 -!write(*,*) 'nfft2 : ',nfft2 +write(*,*) 'nsps: ',nsps +write(*,*) 'nmax: ',nmax +write(*,*) 'nss : ',nss +write(*,*) 'nspsec: ',fs2 +write(*,*) 'nfft1 : ',nfft1 +write(*,*) 'nfft2 : ',nfft2 ngood=0 ngoodsync=0 @@ -229,20 +231,19 @@ program fst280d fc2=fc21 isbest=isbest1 ntmax=4 - if(hmod .gt. 1.0) ntmax=1 + if(hmod .gt. 1) ntmax=1 ntmin=1 njitter=2 else fc2=fc28 isbest=isbest8 ntmax=4 - if(hmod .gt. 1.0) ntmax=1 + if(hmod .gt. 1) ntmax=1 ntmin=1 njitter=2 endif fc_synced = fc0 + fc2 dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 - call fst280_downsample(c_bigfft,nfft1,ndown,fc_synced,c2) if(abs((isbest-fs2)/nss) .lt. 0.2 .and. abs(fc_synced-1500.0).lt.0.4) then @@ -251,8 +252,8 @@ program fst280d do ijitter=0,2 if(ijitter.eq.0) ioffset=0 - if(ijitter.eq.1) ioffset=2 - if(ijitter.eq.2) ioffset=-2 + if(ijitter.eq.1) ioffset=1 + if(ijitter.eq.2) ioffset=-1 is0=isbest+ioffset if(is0.lt.0) cycle cframe=c2(is0:is0+164*nss-1) @@ -344,6 +345,7 @@ subroutine sync_fst280(cd0,i0,f0,hmod,ncoh,np,nss,fs,sync) complex z1,z2,z3 logical first integer isyncword(0:7) + integer hmod real f0save data isyncword/0,1,3,2,1,0,2,3/ data first/.true./ @@ -429,6 +431,7 @@ end subroutine fst280_downsample subroutine get_candidates_fst280(c_bigfft,nfft1,nsps,hmod,fs,fa,fb,ncand,candidates) complex c_bigfft(0:nfft1/2) + integer hmod real candidates(100,3) real s(18000) real s2(18000) diff --git a/lib/fst280/fst280sim.f90 b/lib/fst280/fst280sim.f90 index 72026344b..55c673854 100644 --- a/lib/fst280/fst280sim.f90 +++ b/lib/fst280/fst280sim.f90 @@ -12,6 +12,7 @@ program fst280sim complex, allocatable :: c0(:) complex, allocatable :: c(:) real, allocatable :: wave(:) + integer hmod integer itone(NN) integer*1 msgbits(101) integer*2, allocatable :: iwave(:) !Generated full-length waveform @@ -19,6 +20,7 @@ program fst280sim ! Get command-line argument(s) nargs=iargc() if(nargs.ne.9) then + print*,'Need 9 arguments, got ',nargs print*,'Usage: fst280sim "message" type f0 DT h fdop del nfiles snr' print*,'Examples: fst280sim "K1JT K9AN EN50" C 1500 0.0 1.0 0.1 1.0 10 -15' print*,'A: 15 sec' @@ -89,7 +91,7 @@ program fst280sim write(*,*) write(*,'(a9,a37)') 'Message: ',msgsent37 write(*,1000) f0,xdt,hmod,txt,snrdb -1000 format('f0:',f9.3,' DT:',f6.2,' hmod:',f6.3,' TxT:',f6.1,' SNR:',f6.1) +1000 format('f0:',f9.3,' DT:',f6.2,' hmod:',i6,' TxT:',f6.1,' SNR:',f6.1) write(*,*) if(i3.eq.1) then write(*,*) ' mycall hiscall hisgrid' diff --git a/lib/fst280/gen_fst280wave.f90 b/lib/fst280/gen_fst280wave.f90 index dcf11ff4d..7905544ef 100644 --- a/lib/fst280/gen_fst280wave.f90 +++ b/lib/fst280/gen_fst280wave.f90 @@ -4,6 +4,7 @@ subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0,icmplx,cwave,wav complex cwave(nwave) real, allocatable, save :: pulse(:) real, allocatable :: dphi(:) + integer hmod integer itone(nsym) logical first data first/.true./ diff --git a/lib/fst280/get_fst280_bitmetrics.f90 b/lib/fst280/get_fst280_bitmetrics.f90 index a50088f66..639230fa7 100644 --- a/lib/fst280/get_fst280_bitmetrics.f90 +++ b/lib/fst280/get_fst280_bitmetrics.f90 @@ -10,6 +10,7 @@ subroutine get_fst280_bitmetrics(cd,nss,hmod,bitmetrics,badsync) integer icos8(0:7) integer graymap(0:3) integer ip(1) + integer hmod logical one(0:65535,0:15) ! 65536 8-symbol sequences, 16 bits logical first logical badsync From 81c05489194a0b1926c8edd78029b62f72661b4b Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 17 Jun 2020 11:50:28 -0400 Subject: [PATCH 087/520] Add a dummy fst280 decoder. --- lib/decoder.f90 | 5 +++- lib/fst280_decode.f90 | 60 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 lib/fst280_decode.f90 diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 61ff4163d..795444972 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -189,7 +189,10 @@ subroutine multimode_decoder(ss,id2,params,nfsample) if(params%nmode.eq.280) then ! We're in FST280/FST280W mode - print*,'FST280/FST280W' + call timer('decfst28',0) + call my_fst280%decode(fst280_decoded,id2,params%nQSOProgress, & + params%nfqso,params%nfa,params%nfb,params%ndepth) + call timer('decfst28',1) go to 800 endif diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 new file mode 100644 index 000000000..2bdd86861 --- /dev/null +++ b/lib/fst280_decode.f90 @@ -0,0 +1,60 @@ +module fst280_decode + + type :: fst280_decoder + procedure(fst280_decode_callback), pointer :: callback + contains + procedure :: decode + end type fst280_decoder + + abstract interface + subroutine fst280_decode_callback (this,sync,snr,dt,freq,decoded,nap,qual) + import fst280_decoder + implicit none + class(fst280_decoder), intent(inout) :: this + real, intent(in) :: sync + integer, intent(in) :: snr + real, intent(in) :: dt + real, intent(in) :: freq + character(len=37), intent(in) :: decoded + integer, intent(in) :: nap + real, intent(in) :: qual + end subroutine fst280_decode_callback + end interface + +contains + + subroutine decode(this,callback,iwave,nQSOProgress,nfqso, & + nfa,nfb,ndepth) + + use timer_module, only: timer + use packjt77 + include 'fst280/fst280_params.f90' + parameter (MAXCAND=100) + class(fst280_decoder), intent(inout) :: this + character*37 msg + character*120 data_dir + character*77 c77 + character*1 tr_designator + complex, allocatable :: c2(:) + complex, allocatable :: cframe(:) + complex, allocatable :: c_bigfft(:) !Complex waveform + real, allocatable :: r_data(:) + real*8 fMHz + real llr(280),llra(280),llrb(280),llrc(280),llrd(280) + real candidates(100,3) + real bitmetrics(328,4) + integer ihdr(11) + integer*1 apmask(280),cw(280) + integer*1 hbits(328) + integer*1 message101(101),message74(74) + logical badsync,unpk77_success + integer*2 iwave(300*12000) + + write(*,3001) nQSOProgress,nfqso,nfa,nfb,ndepth +3001 format('aaa',5i5) + + + + end subroutine decode + +end module fst280_decode From 03632d97596304168b38e145ea7dc08a53af73ef Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Wed, 17 Jun 2020 11:24:29 -0500 Subject: [PATCH 088/520] Update sync thresholds and add threshold for h=8. --- lib/fst280/fst280d.f90 | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/fst280/fst280d.f90 b/lib/fst280/fst280d.f90 index dd683636d..45eff351d 100644 --- a/lib/fst280/fst280d.f90 +++ b/lib/fst280/fst280d.f90 @@ -89,13 +89,13 @@ program fst280d case('B') nsps=1680 nmax=30*12000 - ndown=42/hmod ! 40 Sa/symbol + ndown=42/hmod if(hmod.eq.4) ndown=10 if(hmod.eq.8) ndown=5 case('C') nsps=4000 nmax=60*12000 - ndown=100/hmod ! 40 Sa/symbol + ndown=100/hmod if(hmod.eq.8) ndown=16 case('D') nsps=8400 @@ -461,9 +461,10 @@ subroutine get_candidates_fst280(c_bigfft,nfft1,nsps,hmod,fs,fa,fb,ncand,candida s2(i)=db(s2(i)) - 48.5 enddo - if(nh.eq.1) thresh=-29.5 - if(nh.eq.2) thresh=-27.0 - if(nh.eq.4) thresh=-25.0 + if(hmod.eq.1) thresh=-29.5 + if(hmod.eq.2) thresh=-27.0 + if(hmod.eq.4) thresh=-27.0 + if(hmod.eq.8) thresh=-27.0 ncand=0 do i=ia,ib From 5aeaf5dc7877ce771aeb4e9b129c5b3d3cbba580 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 17 Jun 2020 14:17:03 -0400 Subject: [PATCH 089/520] Include h=8 and NSS=40 in the FST280 decoder. --- lib/decoder.f90 | 7 +- lib/fst280_decode.f90 | 426 ++++++++++++++++++++++++++++++++++++++--- widgets/mainwindow.cpp | 1 - 3 files changed, 402 insertions(+), 32 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 795444972..94fd367b2 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -189,10 +189,11 @@ subroutine multimode_decoder(ss,id2,params,nfsample) if(params%nmode.eq.280) then ! We're in FST280/FST280W mode - call timer('decfst28',0) + call timer('dec280 ',0) + ntrperiod=params%kin/12000 call my_fst280%decode(fst280_decoded,id2,params%nQSOProgress, & - params%nfqso,params%nfa,params%nfb,params%ndepth) - call timer('decfst28',1) + params%nfqso,params%nfa,params%nfb,params%ndepth,ntrperiod) + call timer('dec280 ',1) go to 800 endif diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 2bdd86861..9a9958a9e 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -23,38 +23,408 @@ module fst280_decode contains - subroutine decode(this,callback,iwave,nQSOProgress,nfqso, & - nfa,nfb,ndepth) + subroutine decode(this,callback,iwave,nQSOProgress,nfqso, & + nfa,nfb,ndepth,ntrperiod) - use timer_module, only: timer - use packjt77 - include 'fst280/fst280_params.f90' - parameter (MAXCAND=100) - class(fst280_decoder), intent(inout) :: this - character*37 msg - character*120 data_dir - character*77 c77 - character*1 tr_designator - complex, allocatable :: c2(:) - complex, allocatable :: cframe(:) - complex, allocatable :: c_bigfft(:) !Complex waveform - real, allocatable :: r_data(:) - real*8 fMHz - real llr(280),llra(280),llrb(280),llrc(280),llrd(280) - real candidates(100,3) - real bitmetrics(328,4) - integer ihdr(11) - integer*1 apmask(280),cw(280) - integer*1 hbits(328) - integer*1 message101(101),message74(74) - logical badsync,unpk77_success - integer*2 iwave(300*12000) + use timer_module, only: timer + use packjt77 + include 'fst280/fst280_params.f90' + parameter (MAXCAND=100) + class(fst280_decoder), intent(inout) :: this + character*37 msg + character*120 data_dir + character*77 c77 + character*1 tr_designator + complex, allocatable :: c2(:) + complex, allocatable :: cframe(:) + complex, allocatable :: c_bigfft(:) !Complex waveform + real, allocatable :: r_data(:) + real*8 fMHz + real llr(280),llra(280),llrb(280),llrc(280),llrd(280) + real candidates(100,3) + real bitmetrics(328,4) + integer hmod,ihdr(11) + integer*1 apmask(280),cw(280) + integer*1 hbits(328) + integer*1 message101(101),message74(74) + logical badsync,unpk77_success + integer*2 iwave(300*12000) - write(*,3001) nQSOProgress,nfqso,nfa,nfb,ndepth -3001 format('aaa',5i5) + hmod=1 !### pass as arg ### + Keff=91 + ndeep=3 + iwspr=0 + nmax=15*12000 + if(ntrperiod.eq.15) then + nsps=800 + nmax=15*12000 + ndown=20/hmod + if(hmod.eq.8) ndown=2 + else if(ntrperiod.eq.30) then + nsps=1680 + nmax=30*12000 + ndown=42/hmod + if(hmod.eq.4) ndown=10 + if(hmod.eq.8) ndown=5 + else if(ntrperiod.eq.60) then + nsps=4000 + nmax=60*12000 + ndown=100/hmod + if(hmod.eq.8) ndown=16 + else if(ntrperiod.eq.120) then + nsps=8400 + nmax=120*12000 + ndown=200/hmod + else if(ntrperiod.eq.300) then + nsps=21504 + nmax=300*12000 + ndown=512/hmod + end if + nss=nsps/ndown + fs=12000.0 !Sample rate + fs2=fs/ndown + nspsec=nint(fs2) + dt=1.0/fs !Sample interval (s) + dt2=1.0/fs2 + tt=nsps*dt !Duration of "itone" symbols (s) + nfft1=2*int(nmax/2) + nh1=nfft1/2 + allocate( r_data(1:nfft1+2) ) + allocate( c_bigfft(0:nfft1/2) ) - end subroutine decode + nfft2=nfft1/ndown + allocate( c2(0:nfft2-1) ) + allocate( cframe(0:164*nss-1) ) + + ngood=0 + ngoodsync=0 + npts=nmax + fa=100.0 + fb=3500.0 + +! The big fft is done once and is used for calculating the smoothed spectrum +! and also for downconverting/downsampling each candidate. + r_data(1:nfft1)=iwave(1:nfft1) + r_data(nfft1+1:nfft1+2)=0.0 + call four2a(r_data,nfft1,1,-1,0) + c_bigfft=cmplx(r_data(1:nfft1+2:2),r_data(2:nfft1+2:2)) + +! Get first approximation of candidate frequencies + call get_candidates_fst280(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & + ncand,candidates) + + ndecodes=0 + isbest1=0 + isbest8=0 + fc21=fc0 + fc28=fc0 + do icand=1,ncand + fc0=candidates(icand,1) + xsnr=candidates(icand,2) + +! Downconvert and downsample a slice of the spectrum centered on the +! rough estimate of the candidates frequency. +! Output array c2 is complex baseband sampled at 12000/ndown Sa/sec. +! The size of the downsampled c2 array is nfft2=nfft1/ndown + + call fst280_downsample(c_bigfft,nfft1,ndown,fc0,c2) + + call timer('sync280 ',0) + do isync=0,1 + if(isync.eq.0) then + fc1=0.0 + is0=nint(fs2) + ishw=is0 + isst=4 + ifhw=10 + df=.1*8400/nsps + else if(isync.eq.1) then + fc1=fc28 + is0=isbest8 + ishw=4 + isst=1 + ifhw=10 + df=.02*8400/nsps + endif + + smax1=0.0 + smax8=0.0 + do if=-ifhw,ifhw + fc=fc1+df*if + do istart=max(1,is0-ishw),is0+ishw,isst + call sync_fst280(c2,istart,fc,hmod,1,nfft2,nss,fs2,sync1) + call sync_fst280(c2,istart,fc,hmod,8,nfft2,nss,fs2,sync8) + if(sync8.gt.smax8) then + fc28=fc + isbest8=istart + smax8=sync8 + endif + if(sync1.gt.smax1) then + fc21=fc + isbest1=istart + smax1=sync1 + endif + enddo + enddo + enddo + call timer('sync280 ',1) + + if(smax8/smax1 .lt. 0.65 ) then + fc2=fc21 + isbest=isbest1 + ntmax=4 + if(hmod.gt.1) ntmax=1 + ntmin=1 + njitter=2 + else + fc2=fc28 + isbest=isbest8 + ntmax=4 + if(hmod.gt.1) ntmax=1 + ntmin=1 + njitter=2 + endif + fc_synced = fc0 + fc2 + dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 + + call fst280_downsample(c_bigfft,nfft1,ndown,fc_synced,c2) + + if(abs((isbest-fs2)/nss) .lt. 0.2 .and. abs(fc_synced-1500.0).lt.0.4) then + ngoodsync=ngoodsync+1 + endif + + do ijitter=0,2 + if(ijitter.eq.0) ioffset=0 + if(ijitter.eq.1) ioffset=1 + if(ijitter.eq.2) ioffset=-1 + is0=isbest+ioffset + if(is0.lt.0) cycle + cframe=c2(is0:is0+164*nss-1) + s2=sum(cframe*conjg(cframe)) + cframe=cframe/sqrt(s2) + call get_fst280_bitmetrics(cframe,nss,hmod,bitmetrics,badsync) + + hbits=0 + where(bitmetrics(:,1).ge.0) hbits=1 + ns1=count(hbits( 1: 8).eq.(/0,0,0,1,1,0,1,1/)) + ns2=count(hbits( 9: 16).eq.(/0,1,0,0,1,1,1,0/)) + ns3=count(hbits(157:164).eq.(/0,0,0,1,1,0,1,1/)) + ns4=count(hbits(165:172).eq.(/0,1,0,0,1,1,1,0/)) + ns5=count(hbits(313:320).eq.(/0,0,0,1,1,0,1,1/)) + ns6=count(hbits(321:328).eq.(/0,1,0,0,1,1,1,0/)) + nsync_qual=ns1+ns2+ns3+ns4+ns5+ns6 +! if(nsync_qual.lt. 20) cycle + + scalefac=2.83 + llra( 1:140)=bitmetrics( 17:156, 1) + llra(141:280)=bitmetrics(173:312, 1) + llra=scalefac*llra + llrb( 1:140)=bitmetrics( 17:156, 2) + llrb(141:280)=bitmetrics(173:312, 2) + llrb=scalefac*llrb + llrc( 1:140)=bitmetrics( 17:156, 3) + llrc(141:280)=bitmetrics(173:312, 3) + llrc=scalefac*llrc + llrd( 1:140)=bitmetrics( 17:156, 4) + llrd(141:280)=bitmetrics(173:312, 4) + llrd=scalefac*llrd + apmask=0 + + do itry=ntmax,ntmin,-1 + if(itry.eq.1) llr=llra + if(itry.eq.2) llr=llrb + if(itry.eq.3) llr=llrc + if(itry.eq.4) llr=llrd + dmin=0.0 + nharderrors=-1 + unpk77_success=.false. + if(iwspr.eq.0) then + maxosd=2 + call timer('d280_101',0) + call decode280_101(llr,Keff,maxosd,ndeep,apmask,message101, & + cw,ntype,nharderrors,dmin) + call timer('d280_101',1) + else + maxosd=2 + call timer('d280_74 ',0) + call decode280_74(llr,Keff,maxosd,ndeep,apmask,message74,cw, & + ntype,nharderrors,dmin) + call timer('d280_74 ',1) + endif + if(nharderrors .ge.0) then + if(iwspr.eq.0) then + write(c77,'(77i1)') message101(1:77) + call unpack77(c77,0,msg,unpk77_success) + else + write(c77,'(50i1)') message74(1:50) + c77(51:77)='000000000000000000000110000' + call unpack77(c77,0,msg,unpk77_success) + endif + if(nharderrors .ge.0 .and. unpk77_success) then + ngood=ngood+1 + write(*,1100) 0,nint(xsnr),dt_synced,nint(fc_synced),msg(1:22) +1100 format(i6.6,i5,f5.1,i5,' `',1x,a22) + goto 2002 + else + cycle + endif + endif + enddo ! metrics + enddo ! istart jitter +2002 continue + enddo !candidate list + write(*,1120) +1120 format("") + + return + end subroutine decode + + subroutine sync_fst280(cd0,i0,f0,hmod,ncoh,np,nss,fs,sync) + +! Compute sync power for a complex, downsampled FST280 signal. + + include 'fst280/fst280_params.f90' + complex cd0(0:np-1) + complex, allocatable, save :: csync(:) + complex, allocatable, save :: csynct(:) + complex ctwk(8*nss) + complex z1,z2,z3 + logical first + integer hmod,isyncword(0:7) + real f0save + data isyncword/0,1,3,2,1,0,2,3/ + data first/.true./ + data f0save/0.0/ + save first,twopi,dt,fac,f0save + + p(z1)=(real(z1*fac)**2 + aimag(z1*fac)**2)**0.5 !Statement function for power + + if( first ) then + allocate( csync(8*nss) ) + allocate( csynct(8*nss) ) + twopi=8.0*atan(1.0) + dt=1/fs + k=1 + phi=0.0 + do i=0,7 + dphi=twopi*hmod*(isyncword(i)-1.5)/real(nss) + do j=1,nss + csync(k)=cmplx(cos(phi),sin(phi)) + phi=mod(phi+dphi,twopi) + k=k+1 + enddo + enddo + first=.false. + fac=1.0/(8.0*nss) + endif + + if(f0.ne.f0save) then + dphi=twopi*f0*dt + phi=0.0 + do i=1,8*nss + ctwk(i)=cmplx(cos(phi),sin(phi)) + phi=mod(phi+dphi,twopi) + enddo + csynct=ctwk*csync + f0save=f0 + endif + + i1=i0 !Costas arrays + i2=i0+78*nss + i3=i0+156*nss + + s1=0.0 + s2=0.0 + s3=0.0 + nsec=8/ncoh + do i=1,nsec + is=(i-1)*ncoh*nss + z1=sum(cd0(i1+is:i1+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + z2=sum(cd0(i2+is:i2+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + z3=sum(cd0(i3+is:i3+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + s1=s1+abs(z1)/(8*nss) + s2=s2+abs(z2)/(8*nss) + s3=s3+abs(z3)/(8*nss) + enddo + + sync = s1+s2+s3 + + return + end subroutine sync_fst280 + + subroutine fst280_downsample(c_bigfft,nfft1,ndown,f0,c1) + +! Output: Complex data in c(), sampled at 12000/ndown Hz + + complex c_bigfft(0:nfft1/2) + complex c1(0:nfft1/ndown-1) + + df=12000.0/nfft1 + i0=nint(f0/df) + c1(0)=c_bigfft(i0) + nfft2=nfft1/ndown + do i=1,nfft2/2 + if(i0+i.le.nfft1/2) c1(i)=c_bigfft(i0+i) + if(i0-i.ge.0) c1(nfft2-i)=c_bigfft(i0-i) + enddo + c1=c1/nfft2 + call four2a(c1,nfft2,1,1,1) !c2c FFT back to time domain + return + + end subroutine fst280_downsample + + subroutine get_candidates_fst280(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & + ncand,candidates) + + complex c_bigfft(0:nfft1/2) + integer hmod + real candidates(100,3) + real s(18000) + real s2(18000) + data nfft1z/-1/ + save nfft1z + + nh1=nfft1/2 + df1=fs/nfft1 + baud=fs/nsps + df2=baud/2.0 + nd=df1/df2 + ndh=nd/2 + ia=fa/df2 + ib=fb/df2 + s=0. + do i=ia,ib + j0=nint(i*df2/df1) + do j=j0-ndh,j0+ndh + s(i)=s(i) + real(c_bigfft(j))**2 + aimag(c_bigfft(j))**2 + enddo + enddo + call pctile(s(ia:ib),ib-ia+1,30,base) + s=s/base + nh=hmod + do i=ia,ib + s2(i)=s(i-nh*3) + s(i-nh) +s(i+nh) +s(i+nh*3) + s2(i)=db(s2(i)) - 48.5 + enddo + + if(hmod.eq.1) thresh=-29.5 !### temporaray? ### + if(hmod.eq.2) thresh=-27.0 + if(hmid.eq.4) thresh=-25.0 + + ncand=0 + do i=ia,ib + if((s2(i).gt.s2(i-1)).and. & + (s2(i).gt.s2(i+1)).and. & + (s2(i).gt.thresh).and.ncand.lt.100) then + ncand=ncand+1 + candidates(ncand,1)=df2*i + candidates(ncand,2)=s2(i) + endif + enddo + + return + end subroutine get_candidates_fst280 end module fst280_decode diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 1b1b2a685..c56ccaaf5 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1393,7 +1393,6 @@ void MainWindow::dataSink(qint64 frames) if(m_mode=="MSK144") return; fixStop(); - qDebug() << "aa" << m_hsymStop << m_ihsym << m_TRperiod; if (m_mode == "FreqCal" // only calculate after 1st chunk, also skip chunk where rig // changed frequency From b0a979e3f2b86dd4c8168ac5550dcf14b445212b Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 17 Jun 2020 15:07:15 -0400 Subject: [PATCH 090/520] Enable FST280 decoding with jt9[.exe]. So far, with 60 s periods only. --- lib/jt9.f90 | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/lib/jt9.f90 b/lib/jt9.f90 index 7656f51e2..e2ced6542 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -25,7 +25,7 @@ program jt9 fhigh=4000,nrxfreq=1500,ntrperiod=1,ndepth=1,nexp_decode=0 logical :: read_files = .true., tx9 = .false., display_help = .false., & bLowSidelobes = .false. - type (option) :: long_options(26) = [ & + type (option) :: long_options(27) = [ & 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 MINUTES=1', & @@ -52,7 +52,8 @@ program jt9 'THREADS'), & option ('jt4', .false., '4', 'JT4 mode', ''), & option ('ft4', .false., '5', 'FT4 mode', ''), & - option ('jt65', .false.,'6', 'JT65 mode', ''), & + option ('jt65', .false.,'6', 'JT65 mode', ''), & + option ('fst280', .false., '7', 'FT8 mode', ''), & option ('ft8', .false., '8', 'FT8 mode', ''), & option ('jt9', .false., '9', 'JT9 mode', ''), & option ('qra64', .false., 'q', 'QRA64 mode', ''), & @@ -79,7 +80,7 @@ program jt9 nsubmode = 0 do - call getopt('hs:e:a:b:r:m:p:d:f:w:t:98654qTL:S:H:c:G:x:g:X:', & + call getopt('hs:e:a:b:r:m:p:d:f:w:t:987654qTL:S:H:c:G:x:g:X:', & long_options,c,optarg,arglen,stat,offset,remain,.true.) if (stat .ne. 0) then exit @@ -120,10 +121,12 @@ program jt9 mode = 5 case ('6') if (mode.lt.65) mode = mode + 65 - case ('9') - if (mode.lt.9.or.mode.eq.65) mode = mode + 9 + case ('7') + mode = 280 case ('8') mode = 8 + case ('9') + if (mode.lt.9.or.mode.eq.65) mode = mode + 9 case ('T') tx9 = .true. case ('w') @@ -182,7 +185,6 @@ program jt9 allocate(shared_data) nflatten=0 - do iarg = offset + 1, offset + remain call get_command_argument (iarg, optarg, arglen) infile = optarg(:arglen) @@ -220,11 +222,11 @@ program jt9 k=0 nhsym0=-999 npts=(60*ntrperiod-6)*12000 + if(mode.eq.280) npts=60*ntrperiod*12000 if(iarg .eq. offset + 1) then call init_timer (trim(data_dir)//'/timer.out') call timer('jt9 ',0) endif - shared_data%id2=0 !??? Why is this necessary ??? if(mode.eq.5) npts=21*3456 do iblk=1,npts/kstep @@ -249,7 +251,7 @@ program jt9 call timer('symspec ',1) endif nhsym0=nhsym - if(nhsym.ge.181) exit + if(nhsym.ge.181 .and. mode.ne.280) exit endif enddo close(unit=wav%lun) @@ -264,20 +266,14 @@ program jt9 shared_data%params%nfb=fhigh shared_data%params%ntol=20 shared_data%params%kin=64800 + if(mode.eq.280) shared_data%params%kin=720000 !### 60 s periods ### shared_data%params%nzhsym=181 shared_data%params%ndepth=ndepth shared_data%params%lft8apon=.true. shared_data%params%ljt65apon=.true. shared_data%params%napwid=75 shared_data%params%dttol=3. - -! shared_data%params%minsync=0 !### TEST ONLY -! shared_data%params%nfqso=1500 !### TEST ONLY -! mycall="G3WDG " !### TEST ONLY -! hiscall="VK7MO " !### TEST ONLY -! hisgrid="QE37 " !### TEST ONLY if(mode.eq.164 .and. nsubmode.lt.100) nsubmode=nsubmode+100 - shared_data%params%naggressive=0 shared_data%params%n2pass=2 ! shared_data%params%nranera=8 !### ntrials=10000 From 1cebbd2cdde79b8c01e3571ced623188fd78f8df Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 17 Jun 2020 19:28:44 -0400 Subject: [PATCH 091/520] Enable decoding of FST280 for other T/R sequence lengths. Needs testing! --- lib/jt9.f90 | 35 ++++++++++++++--------------------- lib/symspec.f90 | 7 ++++--- widgets/mainwindow.cpp | 5 ++--- 3 files changed, 20 insertions(+), 27 deletions(-) diff --git a/lib/jt9.f90 b/lib/jt9.f90 index e2ced6542..3c5a3f9c2 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -17,19 +17,20 @@ program jt9 integer(C_INT) iret type(wav_header) wav real*4 s(NSMAX) + real*8 TRperiod character c character(len=500) optarg, infile character wisfile*80 !### ndepth was defined as 60001. Why??? integer :: arglen,stat,offset,remain,mode=0,flow=200,fsplit=2700, & - fhigh=4000,nrxfreq=1500,ntrperiod=1,ndepth=1,nexp_decode=0 + fhigh=4000,nrxfreq=1500,ndepth=1,nexp_decode=0 logical :: read_files = .true., tx9 = .false., display_help = .false., & bLowSidelobes = .false. type (option) :: long_options(27) = [ & 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 MINUTES=1', & - 'MINUTES'), & + option ('tr-period', .true., 'p', 'Tx/Rx period, default SECONDS=60', & + 'SECONDS'), & option ('executable-path', .true., 'e', & 'Location of subordinate executables (KVASD) default PATH="."', & 'PATH'), & @@ -78,6 +79,7 @@ program jt9 data npatience/1/,nthreads/1/ nsubmode = 0 + TRperiod=60.d0 do call getopt('hs:e:a:b:r:m:p:d:f:w:t:987654qTL:S:H:c:G:x:g:X:', & @@ -102,7 +104,7 @@ program jt9 case ('m') read (optarg(:arglen), *) nthreads case ('p') - read (optarg(:arglen), *) ntrperiod + read (optarg(:arglen), *) TRperiod case ('d') read (optarg(:arglen), *) ndepth case ('f') @@ -200,29 +202,20 @@ program jt9 go to 2 1 nutc=0 2 nsps=0 - if(ntrperiod.eq.1) then + if(TRperiod.eq.60.d0) then nsps=6912 shared_data%params%nzhsym=181 - else if(ntrperiod.eq.2) then - nsps=15360 - shared_data%params%nzhsym=178 - else if(ntrperiod.eq.5) then - nsps=40960 - shared_data%params%nzhsym=172 - else if(ntrperiod.eq.10) then - nsps=82944 - shared_data%params%nzhsym=171 - else if(ntrperiod.eq.30) then - nsps=252000 - shared_data%params%nzhsym=167 + endif + if(mode.eq.280) then + nsps=6912 + npts=TRperiod*12000.d0 endif if(nsps.eq.0) stop 'Error: bad TRperiod' kstep=nsps/2 k=0 nhsym0=-999 - npts=(60*ntrperiod-6)*12000 - if(mode.eq.280) npts=60*ntrperiod*12000 + npts=(TRperiod-6.d0)*12000.d0 if(iarg .eq. offset + 1) then call init_timer (trim(data_dir)//'/timer.out') call timer('jt9 ',0) @@ -246,8 +239,8 @@ program jt9 ingain=0 call timer('symspec ',0) nminw=1 - call symspec(shared_data,k,ntrperiod,nsps,ingain,bLowSidelobes,nminw,pxdb, & - s,df3,ihsym,npts8,pxdbmax) + call symspec(shared_data,k,Tperiod,nsps,ingain, & + bLowSidelobes,nminw,pxdb,s,df3,ihsym,npts8,pxdbmax) call timer('symspec ',1) endif nhsym0=nhsym diff --git a/lib/symspec.f90 b/lib/symspec.f90 index b9f5e2088..f97757778 100644 --- a/lib/symspec.f90 +++ b/lib/symspec.f90 @@ -1,9 +1,9 @@ -subroutine symspec(shared_data,k,ntrperiod,nsps,ingain,bLowSidelobes, & +subroutine symspec(shared_data,k,TRperiod,nsps,ingain,bLowSidelobes, & nminw,pxdb,s,df3,ihsym,npts8,pxdbmax) ! Input: ! k pointer to the most recent new data -! ntrperiod T/R sequence length, minutes +! TRperiod T/R sequence length, seconds ! nsps samples per symbol, at 12000 Hz ! bLowSidelobes true to use windowed FFTs ! ndiskdat 0/1 to indicate if data from disk @@ -23,6 +23,7 @@ subroutine symspec(shared_data,k,ntrperiod,nsps,ingain,bLowSidelobes, & include 'jt9com.f90' type(dec_data) :: shared_data + real*8 TRperiod real*4 w3(MAXFFT3) real*4 s(NSMAX) real*4 ssum(NSMAX) @@ -38,7 +39,7 @@ subroutine symspec(shared_data,k,ntrperiod,nsps,ingain,bLowSidelobes, & equivalence (xc,cx) save - if(ntrperiod.eq.-999) stop !Silence compiler warning + if(TRperiod.lt.0.d0) stop !Silence compiler warning nfft3=16384 !df=12000.0/16384 = 0.732422 jstep=nsps/2 !Step size = half-symbol in id2() if(k.gt.NMAX) go to 900 diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index c56ccaaf5..4fdc12850 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -89,7 +89,7 @@ extern "C" { //----------------------------------------------------- C and Fortran routines - void symspec_(struct dec_data *, int* k, int* ntrperiod, int* nsps, int* ingain, + void symspec_(struct dec_data *, int* k, double* trperiod, int* nsps, int* ingain, bool* bLowSidelobes, int* minw, float* px, float s[], float* df3, int* nhsym, int* npts8, float *m_pxmax); @@ -1373,14 +1373,13 @@ void MainWindow::dataSink(qint64 frames) } // Get power, spectrum, and ihsym - int trmin=m_TRperiod/60.0; dec_data.params.nfa=m_wideGraph->nStartFreq(); dec_data.params.nfb=m_wideGraph->Fmax(); int nsps=m_nsps; if(m_bFastMode) nsps=6912; int nsmo=m_wideGraph->smoothYellow()-1; bool bLowSidelobes=m_config.lowSidelobes(); - symspec_(&dec_data,&k,&trmin,&nsps,&m_inGain,&bLowSidelobes,&nsmo,&m_px,s, + symspec_(&dec_data,&k,&m_TRperiod,&nsps,&m_inGain,&bLowSidelobes,&nsmo,&m_px,s, &m_df3,&m_ihsym,&m_npts8,&m_pxmax); if(m_mode=="WSPR") wspr_downsample_(dec_data.d2,&k); if(m_ihsym <=0) return; From 5c3a340f72b1528ed0d89f99771c60e81191436b Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 17 Jun 2020 19:58:21 -0400 Subject: [PATCH 092/520] Pass TRperiod (s) to fst280_decode(). --- lib/decoder.f90 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 94fd367b2..b79e77ccd 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -190,9 +190,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) if(params%nmode.eq.280) then ! We're in FST280/FST280W mode call timer('dec280 ',0) - ntrperiod=params%kin/12000 call my_fst280%decode(fst280_decoded,id2,params%nQSOProgress, & - params%nfqso,params%nfa,params%nfb,params%ndepth,ntrperiod) + params%nfqso,params%nfa,params%nfb,params%ndepth,params%ntr) call timer('dec280 ',1) go to 800 endif From 07721761a9de68426256e150f0b8ba6e727bf116 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 17 Jun 2020 20:31:54 -0400 Subject: [PATCH 093/520] Fix a few more passings of parameters from jt9 to decoder, for FST280. --- lib/fst280_decode.f90 | 2 +- lib/jt9.f90 | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 9a9958a9e..bfbbded60 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -49,7 +49,7 @@ contains integer*1 message101(101),message74(74) logical badsync,unpk77_success integer*2 iwave(300*12000) - + hmod=1 !### pass as arg ### Keff=91 ndeep=3 diff --git a/lib/jt9.f90 b/lib/jt9.f90 index 3c5a3f9c2..49bfbea2a 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -202,20 +202,18 @@ program jt9 go to 2 1 nutc=0 2 nsps=0 + npts=TRperiod*12000.d0 if(TRperiod.eq.60.d0) then nsps=6912 shared_data%params%nzhsym=181 + npts=(TRperiod-6.d0)*12000.d0 endif - if(mode.eq.280) then - nsps=6912 - npts=TRperiod*12000.d0 - endif + if(mode.eq.280) nsps=6912 if(nsps.eq.0) stop 'Error: bad TRperiod' - + kstep=nsps/2 k=0 nhsym0=-999 - npts=(TRperiod-6.d0)*12000.d0 if(iarg .eq. offset + 1) then call init_timer (trim(data_dir)//'/timer.out') call timer('jt9 ',0) @@ -250,7 +248,7 @@ program jt9 close(unit=wav%lun) shared_data%params%nutc=nutc shared_data%params%ndiskdat=.true. - shared_data%params%ntr=60 + shared_data%params%ntr=TRperiod shared_data%params%nfqso=nrxfreq shared_data%params%newdat=.true. shared_data%params%npts8=74736 From 3172f1e97685a94e9e8d739d45e5bb07eddee472 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 18 Jun 2020 08:14:11 -0500 Subject: [PATCH 094/520] Fix a type, add threshold for h=8, tweak gen_candidates to decrease the number of spurious candidates. --- lib/fst280_decode.f90 | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index bfbbded60..326e81f2d 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -408,15 +408,19 @@ contains s2(i)=s(i-nh*3) + s(i-nh) +s(i+nh) +s(i+nh*3) s2(i)=db(s2(i)) - 48.5 enddo + if(hmod.eq.1) thresh=-29.5 !### temporaray? ### if(hmod.eq.2) thresh=-27.0 - if(hmid.eq.4) thresh=-25.0 + if(hmod.eq.4) thresh=-27.0 + if(hmod.eq.8) thresh=-27.0 ncand=0 + if(ia.lt.3) ia=3 + if(ib.gt.18000-2) ib=18000-2 do i=ia,ib - if((s2(i).gt.s2(i-1)).and. & - (s2(i).gt.s2(i+1)).and. & + if((s2(i).gt.s2(i-2)).and. & + (s2(i).gt.s2(i+2)).and. & (s2(i).gt.thresh).and.ncand.lt.100) then ncand=ncand+1 candidates(ncand,1)=df2*i From 54c1df030b2f5bdf75281fbe263b19531d29ad98 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 18 Jun 2020 11:25:32 -0400 Subject: [PATCH 095/520] Fix the logic for setting length of FST280 data sent from jt9 to decoder. --- lib/jt9.f90 | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/lib/jt9.f90 b/lib/jt9.f90 index 49bfbea2a..afd5c374e 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -201,18 +201,11 @@ program jt9 endif go to 2 1 nutc=0 -2 nsps=0 +2 nsps=6912 npts=TRperiod*12000.d0 - if(TRperiod.eq.60.d0) then - nsps=6912 - shared_data%params%nzhsym=181 - npts=(TRperiod-6.d0)*12000.d0 - endif - if(mode.eq.280) nsps=6912 - if(nsps.eq.0) stop 'Error: bad TRperiod' - kstep=nsps/2 k=0 + nhsym=0 nhsym0=-999 if(iarg .eq. offset + 1) then call init_timer (trim(data_dir)//'/timer.out') @@ -258,7 +251,7 @@ program jt9 shared_data%params%ntol=20 shared_data%params%kin=64800 if(mode.eq.280) shared_data%params%kin=720000 !### 60 s periods ### - shared_data%params%nzhsym=181 + shared_data%params%nzhsym=nhsym shared_data%params%ndepth=ndepth shared_data%params%lft8apon=.true. shared_data%params%ljt65apon=.true. @@ -321,11 +314,6 @@ program jt9 999 continue ! Output decoder statistics call fini_timer () -! open (unit=12, file=trim(data_dir)//'/timer.out', status='unknown', position='append') -! write(12,1100) n65a,ntry65a,n65b,ntry65b,numfano,num9 -!1100 format(58('-')/' JT65_1 Tries_1 JT65_2 Tries_2 JT9 Tries'/ & -! 58('-')/6i8) - ! Save wisdom and free memory iret=fftwf_export_wisdom_to_filename(wisfile) call four2a(a,-1,1,1,1) From 72005888ac835586105853627e562204a9409b45 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 18 Jun 2020 13:37:49 -0400 Subject: [PATCH 096/520] Starting to implement callback routine fst280_decoded. Not yet functional! --- lib/decoder.f90 | 42 +++++++++++++++++++++++++++++++++++++++++- lib/fst280_decode.f90 | 8 +++++++- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index b79e77ccd..c2247d6d0 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -315,7 +315,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) ! JT65 is not yet producing info for nsynced, ndecoded. 800 ndecoded = my_jt4%decoded + my_jt65%decoded + my_jt9%decoded + & - my_ft8%decoded + my_ft4%decoded + my_ft8%decoded + my_ft4%decoded + my_fst280%decoded if(params%nmode.eq.8 .and. params%nzhsym.eq.41) ndec41=ndecoded if(params%nmode.eq.8 .and. params%nzhsym.eq.47) ndec47=ndecoded if(params%nmode.eq.8 .and. params%nzhsym.eq.50) then @@ -676,4 +676,44 @@ contains return end subroutine ft4_decoded + +! subroutine fst280_decoded (this,sync,nsnr,dt,freq,decoded,nap,qual) + +! use fst280_decode +! implicit none + +! class(fst280_decoder), intent(inout) :: this +! real, intent(in) :: sync +! integer, intent(in) :: nsnr +! real, intent(in) :: dt +! real, intent(in) :: freq +! character(len=37), intent(in) :: decoded +! integer, intent(in) :: nap +! real, intent(in) :: qual +! character*2 annot +! character*37 decoded0 + +! decoded0=decoded +! annot=' ' +! if(nap.ne.0) then +! write(annot,'(a1,i1)') 'a',nap +! if(qual.lt.0.17) decoded0(37:37)='?' +! endif + +! write(*,1001) params%nutc,nsnr,dt,nint(freq),decoded0,annot +!1001 format(i6.6,i4,f5.1,i5,' + ',1x,a37,1x,a2) +! write(13,1002) params%nutc,nint(sync),nsnr,dt,freq,0,decoded0 +!1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FST280') + +! call flush(6) +! call flush(13) + +! select type(this) +! type is (counting_fst280_decoder) +! this%decoded = this%decoded + 1 +! end select + +! return +! end subroutine fst280_decoded + end subroutine multimode_decoder diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 326e81f2d..bc4247efd 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -264,8 +264,14 @@ contains endif if(nharderrors .ge.0 .and. unpk77_success) then ngood=ngood+1 - write(*,1100) 0,nint(xsnr),dt_synced,nint(fc_synced),msg(1:22) + write(*,1100) 0,nint(xsnr),dt_synced,nint(fc_synced), & + msg(1:22) 1100 format(i6.6,i5,f5.1,i5,' `',1x,a22) + +! nsnr=nint(xsnr) +! iaptype=0 +! qual=0. +! call this%callback(smax1,nsnr,xdt,fc_synced,msg,iaptype,qual) goto 2002 else cycle From b270e7372f5e1fae74e71abbb2ebe38d03fd5d01 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 18 Jun 2020 15:03:41 -0400 Subject: [PATCH 097/520] Use hhmm in file name if TRperiod.ge.60. --- lib/fst280/fst280sim.f90 | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/fst280/fst280sim.f90 b/lib/fst280/fst280sim.f90 index c5f4fba12..577589beb 100644 --- a/lib/fst280/fst280sim.f90 +++ b/lib/fst280/fst280sim.f90 @@ -137,9 +137,14 @@ program fst280sim if(any(abs(wave).gt.32767.0)) print*,"Warning - data will be clipped." iwave=nint(wave) h=default_header(12000,nmax) - write(fname,1102) ifile -1102 format('000000_',i6.6,'.wav') - open(10,file=fname,status='unknown',access='stream') + if(nmax/12000.le.30) then + write(fname,1102) ifile +1102 format('000000_',i6.6,'.wav') + else + write(fname,1104) ifile +1104 format('000000_',i4.4,'.wav') + endif + open(10,file=trim(fname),status='unknown',access='stream') write(10) h,iwave !Save to *.wav file close(10) write(*,1110) ifile,xdt,f0,snrdb,fname From 402ce1b3fb08b9fd724a12f659e38995fdcef9bb Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 18 Jun 2020 23:33:36 +0100 Subject: [PATCH 098/520] Enable passing decodes back to caller --- lib/decoder.f90 | 62 ++++++++++++++++++++-------------------- lib/fst280/fst280sim.f90 | 2 +- lib/fst280_decode.f90 | 18 ++++++------ 3 files changed, 42 insertions(+), 40 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index c2247d6d0..e4b6b3a80 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -677,43 +677,43 @@ contains return end subroutine ft4_decoded -! subroutine fst280_decoded (this,sync,nsnr,dt,freq,decoded,nap,qual) + subroutine fst280_decoded (this,sync,nsnr,dt,freq,decoded,nap,qual) -! use fst280_decode -! implicit none + use fst280_decode + implicit none -! class(fst280_decoder), intent(inout) :: this -! real, intent(in) :: sync -! integer, intent(in) :: nsnr -! real, intent(in) :: dt -! real, intent(in) :: freq -! character(len=37), intent(in) :: decoded -! integer, intent(in) :: nap -! real, intent(in) :: qual -! character*2 annot -! character*37 decoded0 + class(fst280_decoder), intent(inout) :: this + real, intent(in) :: sync + integer, intent(in) :: nsnr + real, intent(in) :: dt + real, intent(in) :: freq + character(len=37), intent(in) :: decoded + integer, intent(in) :: nap + real, intent(in) :: qual + character*2 annot + character*37 decoded0 -! decoded0=decoded -! annot=' ' -! if(nap.ne.0) then -! write(annot,'(a1,i1)') 'a',nap -! if(qual.lt.0.17) decoded0(37:37)='?' -! endif + decoded0=decoded + annot=' ' + if(nap.ne.0) then + write(annot,'(a1,i1)') 'a',nap + if(qual.lt.0.17) decoded0(37:37)='?' + endif -! write(*,1001) params%nutc,nsnr,dt,nint(freq),decoded0,annot -!1001 format(i6.6,i4,f5.1,i5,' + ',1x,a37,1x,a2) -! write(13,1002) params%nutc,nint(sync),nsnr,dt,freq,0,decoded0 -!1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FST280') + write(*,1001) params%nutc,nsnr,dt,nint(freq),decoded0,annot +1001 format(i6.6,i4,f5.1,i5,' + ',1x,a37,1x,a2) + write(13,1002) params%nutc,nint(sync),nsnr,dt,freq,0,decoded0 +1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FST280') -! call flush(6) -! call flush(13) + call flush(6) + call flush(13) -! select type(this) -! type is (counting_fst280_decoder) -! this%decoded = this%decoded + 1 -! end select + select type(this) + type is (counting_fst280_decoder) + this%decoded = this%decoded + 1 + end select -! return -! end subroutine fst280_decoded + return + end subroutine fst280_decoded end subroutine multimode_decoder diff --git a/lib/fst280/fst280sim.f90 b/lib/fst280/fst280sim.f90 index c5f4fba12..53c887271 100644 --- a/lib/fst280/fst280sim.f90 +++ b/lib/fst280/fst280sim.f90 @@ -22,7 +22,7 @@ program fst280sim if(nargs.ne.9) then print*,'Need 9 arguments, got ',nargs print*,'Usage: fst280sim "message" type f0 DT h fdop del nfiles snr' - print*,'Examples: fst280sim "K1JT K9AN EN50" C 1500 0.0 1.0 0.1 1.0 10 -15' + print*,'Examples: fst280sim "K1JT K9AN EN50" C 1500 0.0 1 0.1 1.0 10 -15' print*,'A: 15 sec' print*,'B: 30 sec' print*,'C: 1 min' diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index bc4247efd..265c72615 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -31,6 +31,7 @@ contains include 'fst280/fst280_params.f90' parameter (MAXCAND=100) class(fst280_decoder), intent(inout) :: this + procedure(fst280_decode_callback) :: callback character*37 msg character*120 data_dir character*77 c77 @@ -49,7 +50,8 @@ contains integer*1 message101(101),message74(74) logical badsync,unpk77_success integer*2 iwave(300*12000) - + + this%callback => callback hmod=1 !### pass as arg ### Keff=91 ndeep=3 @@ -264,14 +266,14 @@ contains endif if(nharderrors .ge.0 .and. unpk77_success) then ngood=ngood+1 - write(*,1100) 0,nint(xsnr),dt_synced,nint(fc_synced), & - msg(1:22) -1100 format(i6.6,i5,f5.1,i5,' `',1x,a22) +! write(*,1100) 0,nint(xsnr),dt_synced,nint(fc_synced), & +! msg(1:22) +! 1100 format(i6.6,i5,f5.1,i5,' `',1x,a22) -! nsnr=nint(xsnr) -! iaptype=0 -! qual=0. -! call this%callback(smax1,nsnr,xdt,fc_synced,msg,iaptype,qual) + nsnr=nint(xsnr) + iaptype=0 + qual=0. + call this%callback(smax1,nsnr,xdt,fc_synced,msg,iaptype,qual) goto 2002 else cycle From 55697009800fffcae8df27d511da10b136a631a0 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 18 Jun 2020 19:53:49 -0400 Subject: [PATCH 099/520] Send nutc to the fst280 decoder, and use it. Also some code cleanup. --- lib/decoder.f90 | 14 ++++++++------ lib/fst280_decode.f90 | 40 ++++++++++++++-------------------------- 2 files changed, 22 insertions(+), 32 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index e4b6b3a80..bc1b820ec 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -190,8 +190,9 @@ subroutine multimode_decoder(ss,id2,params,nfsample) if(params%nmode.eq.280) then ! We're in FST280/FST280W mode call timer('dec280 ',0) - call my_fst280%decode(fst280_decoded,id2,params%nQSOProgress, & - params%nfqso,params%nfa,params%nfb,params%ndepth,params%ntr) + call my_fst280%decode(fst280_decoded,id2,params%nutc, & + params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & + params%ndepth,params%ntr) call timer('dec280 ',1) go to 800 endif @@ -677,12 +678,13 @@ contains return end subroutine ft4_decoded - subroutine fst280_decoded (this,sync,nsnr,dt,freq,decoded,nap,qual) + subroutine fst280_decoded (this,nutc,sync,nsnr,dt,freq,decoded,nap,qual) use fst280_decode implicit none class(fst280_decoder), intent(inout) :: this + integer, intent(in) :: nutc real, intent(in) :: sync integer, intent(in) :: nsnr real, intent(in) :: dt @@ -700,9 +702,9 @@ contains if(qual.lt.0.17) decoded0(37:37)='?' endif - write(*,1001) params%nutc,nsnr,dt,nint(freq),decoded0,annot -1001 format(i6.6,i4,f5.1,i5,' + ',1x,a37,1x,a2) - write(13,1002) params%nutc,nint(sync),nsnr,dt,freq,0,decoded0 + write(*,1001) nutc,nsnr,dt,nint(freq),decoded0,annot +1001 format(i6.6,i4,f5.1,i5,' ` ',1x,a37,1x,a2) + write(13,1002) nutc,nint(sync),nsnr,dt,freq,0,decoded0 1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FST280') call flush(6) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 265c72615..ea9fd0020 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -7,12 +7,14 @@ module fst280_decode end type fst280_decoder abstract interface - subroutine fst280_decode_callback (this,sync,snr,dt,freq,decoded,nap,qual) + subroutine fst280_decode_callback (this,nutc,sync,nsnr,dt,freq, & + decoded,nap,qual) import fst280_decoder implicit none class(fst280_decoder), intent(inout) :: this + integer, intent(in) :: nutc real, intent(in) :: sync - integer, intent(in) :: snr + integer, intent(in) :: nsnr real, intent(in) :: dt real, intent(in) :: freq character(len=37), intent(in) :: decoded @@ -23,8 +25,8 @@ module fst280_decode contains - subroutine decode(this,callback,iwave,nQSOProgress,nfqso, & - nfa,nfb,ndepth,ntrperiod) + subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfqso, & + nfa,nfb,ndeep,ntrperiod) use timer_module, only: timer use packjt77 @@ -33,18 +35,15 @@ contains class(fst280_decoder), intent(inout) :: this procedure(fst280_decode_callback) :: callback character*37 msg - character*120 data_dir character*77 c77 - character*1 tr_designator complex, allocatable :: c2(:) complex, allocatable :: cframe(:) complex, allocatable :: c_bigfft(:) !Complex waveform real, allocatable :: r_data(:) - real*8 fMHz real llr(280),llra(280),llrb(280),llrc(280),llrd(280) real candidates(100,3) real bitmetrics(328,4) - integer hmod,ihdr(11) + integer hmod integer*1 apmask(280),cw(280) integer*1 hbits(328) integer*1 message101(101),message74(74) @@ -53,8 +52,8 @@ contains this%callback => callback hmod=1 !### pass as arg ### + if(nfqso+nqsoprogress.eq.-999) return Keff=91 - ndeep=3 iwspr=0 nmax=15*12000 @@ -100,11 +99,9 @@ contains allocate( c2(0:nfft2-1) ) allocate( cframe(0:164*nss-1) ) - ngood=0 - ngoodsync=0 npts=nmax - fa=100.0 - fb=3500.0 + fa=nfa + fb=nfb ! The big fft is done once and is used for calculating the smoothed spectrum ! and also for downconverting/downsampling each candidate. @@ -120,8 +117,8 @@ contains ndecodes=0 isbest1=0 isbest8=0 - fc21=fc0 - fc28=fc0 + fc21=0. + fc28=0. do icand=1,ncand fc0=candidates(icand,1) xsnr=candidates(icand,2) @@ -192,10 +189,6 @@ contains dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 call fst280_downsample(c_bigfft,nfft1,ndown,fc_synced,c2) - - if(abs((isbest-fs2)/nss) .lt. 0.2 .and. abs(fc_synced-1500.0).lt.0.4) then - ngoodsync=ngoodsync+1 - endif do ijitter=0,2 if(ijitter.eq.0) ioffset=0 @@ -265,15 +258,11 @@ contains call unpack77(c77,0,msg,unpk77_success) endif if(nharderrors .ge.0 .and. unpk77_success) then - ngood=ngood+1 -! write(*,1100) 0,nint(xsnr),dt_synced,nint(fc_synced), & -! msg(1:22) -! 1100 format(i6.6,i5,f5.1,i5,' `',1x,a22) - nsnr=nint(xsnr) iaptype=0 qual=0. - call this%callback(smax1,nsnr,xdt,fc_synced,msg,iaptype,qual) + call this%callback(nutc,smax1,nsnr,xdt,fc_synced,msg, & + iaptype,qual) goto 2002 else cycle @@ -416,7 +405,6 @@ contains s2(i)=s(i-nh*3) + s(i-nh) +s(i+nh) +s(i+nh*3) s2(i)=db(s2(i)) - 48.5 enddo - if(hmod.eq.1) thresh=-29.5 !### temporaray? ### if(hmod.eq.2) thresh=-27.0 From d64e266e8ff93465cdb9d47e4b10a396907d83c2 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 19 Jun 2020 09:15:00 -0400 Subject: [PATCH 100/520] Pass submode (==> hmod) to fst280_decode.f90. --- lib/decoder.f90 | 2 +- lib/fst280_decode.f90 | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index bc1b820ec..c737a2ca6 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -192,7 +192,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) call timer('dec280 ',0) call my_fst280%decode(fst280_decoded,id2,params%nutc, & params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & - params%ndepth,params%ntr) + params%nsubmode,params%ndepth,params%ntr) call timer('dec280 ',1) go to 800 endif diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index ea9fd0020..24d100589 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -26,7 +26,7 @@ module fst280_decode contains subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfqso, & - nfa,nfb,ndeep,ntrperiod) + nfa,nfb,nsubmode,ndeep,ntrperiod) use timer_module, only: timer use packjt77 @@ -51,12 +51,12 @@ contains integer*2 iwave(300*12000) this%callback => callback - hmod=1 !### pass as arg ### + hmod=2**nsubmode if(nfqso+nqsoprogress.eq.-999) return Keff=91 iwspr=0 - nmax=15*12000 + if(ntrperiod.eq.15) then nsps=800 nmax=15*12000 From 8933e43fb337a456a4e5786363c1123b1aee3db8 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 19 Jun 2020 09:28:55 -0400 Subject: [PATCH 101/520] Use 15 30 60 120 300 rather than A B C D E for sequence length in FST280sim. --- lib/fst280/fst280sim.f90 | 40 ++++++++++++++-------------------------- 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/lib/fst280/fst280sim.f90 b/lib/fst280/fst280sim.f90 index 8aa8e61fd..9d95279f5 100644 --- a/lib/fst280/fst280sim.f90 +++ b/lib/fst280/fst280sim.f90 @@ -8,7 +8,6 @@ program fst280sim type(hdr) h !Header for .wav file character arg*12,fname*17 character msg37*37,msgsent37*37,c77*77 - character tr_designator*1 complex, allocatable :: c0(:) complex, allocatable :: c(:) real, allocatable :: wave(:) @@ -21,18 +20,13 @@ program fst280sim nargs=iargc() if(nargs.ne.9) then print*,'Need 9 arguments, got ',nargs - print*,'Usage: fst280sim "message" type f0 DT h fdop del nfiles snr' - print*,'Examples: fst280sim "K1JT K9AN EN50" C 1500 0.0 1 0.1 1.0 10 -15' - print*,'A: 15 sec' - print*,'B: 30 sec' - print*,'C: 1 min' - print*,'D: 2 min' - print*,'E: 5 min' + print*,'Usage: fst280sim "message" TRsec f0 DT h fdop del nfiles snr' + print*,'Examples: fst280sim "K1JT K9AN EN50" 60 1500 0.0 1 0.1 1.0 10 -15' go to 999 endif call getarg(1,msg37) !Message to be transmitted call getarg(2,arg) - read(arg,*) tr_designator !TR selector + read(arg,*) nsec !TR sequence length, seconds call getarg(3,arg) read(arg,*) f0 !Frequency (only used for single-signal) call getarg(4,arg) @@ -53,23 +47,17 @@ program fst280sim fs=12000.0 !Sample rate (Hz) dt=1.0/fs !Sample interval (s) baud=1.0/tt !Keying rate (baud) - select case (tr_designator) - case('A') - nsps=800 - nmax=15*12000 - case('B') - nsps=1680 - nmax=30*12000 - case('C') - nsps=4000 - nmax=60*12000 - case('D') - nsps=8400 - nmax=120*12000 - case('E') - nsps=21504 - nmax=300*12000 - end select + nsps=0 + if(nsec.eq.15) nsps=800 + if(nsec.eq.30) nsps=1680 + if(nsec.eq.60) nsps=4000 + if(nsec.eq.120) nsps=8400 + if(nsec.eq.300) nsps=21504 + if(nsps.eq.0) then + print*,'Invalid TR sequence length.' + go to 999 + endif + nmax=nsec*12000 nz=nsps*NN nz2=nsps*NN2 txt=nz2*dt !Transmission length (s) From a4e32807d95966f004a0d9cf3d89bb9121d8994c Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 19 Jun 2020 09:59:12 -0400 Subject: [PATCH 102/520] Correct WSJT-X's display of UTC in FST280 decodes for TR < 60 s. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 4fdc12850..78eeae69a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -2874,7 +2874,7 @@ void MainWindow::decode() //decode() m_msec0=QDateTime::currentMSecsSinceEpoch(); if(!m_dataAvailable or m_TRperiod==0.0) return; ui->DecodeButton->setChecked (true); - if(!dec_data.params.nagain && m_diskData && !m_bFastMode && m_mode!="FT8" && m_mode!="FT4") { + if(!dec_data.params.nagain && m_diskData && (m_TRperiod >= 60.0)) { dec_data.params.nutc=dec_data.params.nutc/100; } if(dec_data.params.nagain==0 && dec_data.params.newdat==1 && (!m_diskData)) { From 297c1a0dcbf30c3e62916135fc893c50f26fc315 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 19 Jun 2020 10:16:04 -0400 Subject: [PATCH 103/520] Must reallocate some arrays when FST280 submode changes. --- lib/fst280/get_fst280_bitmetrics.f90 | 7 ++++--- lib/fst280_decode.f90 | 12 ++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/lib/fst280/get_fst280_bitmetrics.f90 b/lib/fst280/get_fst280_bitmetrics.f90 index b266fce82..50568210f 100644 --- a/lib/fst280/get_fst280_bitmetrics.f90 +++ b/lib/fst280/get_fst280_bitmetrics.f90 @@ -19,10 +19,11 @@ subroutine get_fst280_bitmetrics(cd,nss,hmod,bitmetrics,badsync) real s4(0:3,NN) data icos8/0,1,3,2,1,0,2,3/ data graymap/0,1,3,2/ - data first/.true./ - save first,one,cp + data first/.true./,nss0/-1/ + save first,one,cp,nss0 - if(first) then + if(nss.ne.nss0 .and. allocated(c1)) deallocate(c1) + if(first .or. nss.ne.nss0) then allocate(c1(nss,0:3)) one=.false. do i=0,65535 diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 24d100589..e47e251e5 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -292,13 +292,12 @@ contains integer hmod,isyncword(0:7) real f0save data isyncword/0,1,3,2,1,0,2,3/ - data first/.true./ - data f0save/0.0/ - save first,twopi,dt,fac,f0save + data first/.true./,f0save/0.0/,nss0/-1/ + save first,twopi,dt,fac,f0save,nss0 + p(z1)=(real(z1*fac)**2 + aimag(z1*fac)**2)**0.5 !Compute power - p(z1)=(real(z1*fac)**2 + aimag(z1*fac)**2)**0.5 !Statement function for power - - if( first ) then + if(nss.ne.nss0 .and. allocated(csync)) deallocate(csync,csynct) + if(first .or. nss.ne.nss0) then allocate( csync(8*nss) ) allocate( csynct(8*nss) ) twopi=8.0*atan(1.0) @@ -314,6 +313,7 @@ contains enddo enddo first=.false. + nss0=nss fac=1.0/(8.0*nss) endif From acd04cc05028283845d19e885296ffd14c5668ec Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 19 Jun 2020 11:43:34 -0400 Subject: [PATCH 104/520] Correctly restore FST280 submode on program restart. --- widgets/mainwindow.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 78eeae69a..f6dce34af 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4703,7 +4703,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie m_QSOProgress=ROGER_REPORT; } m_xRcvd=t[n-2] + " " + t[n-1]; -// qDebug() << "bb" << w2 << w34 << t0 << m_xRcvd; } else if(SpecOp::FIELD_DAY==m_config.special_op_id() and bFieldDay_msg) { if(t0=="R") { gen_msg=setTxMsg(4); @@ -5789,19 +5788,22 @@ void MainWindow::displayWidgets(qint64 n) void MainWindow::on_actionFST280_triggered() { + int nsub=m_nSubMode; on_actionJT65_triggered(); + ui->sbSubmode->setMaximum(3); + m_nSubMode=nsub; + ui->sbSubmode->setValue(m_nSubMode); m_mode="FST280"; m_modeTx="FST280"; ui->actionFST280->setChecked(true); WSPR_config(false); + bool bVHF=m_config.enable_VHF_features(); // 012345678901234567890123456789012 displayWidgets(nWidgets("111011000000111100010000000000000")); - bool bVHF=m_config.enable_VHF_features(); setup_status_bar (bVHF); m_TRperiod = ui->sbTR->value (); ui->sbTR->setMinimum(15); ui->sbTR->setMaximum(300); - ui->sbSubmode->setMaximum(3); on_sbTR_valueChanged(ui->sbTR->value()); statusChanged(); } @@ -9002,8 +9004,6 @@ void MainWindow::set_mode (QString const& mode) else if ("ISCAT" == mode) on_actionISCAT_triggered (); else if ("MSK144" == mode) on_actionMSK144_triggered (); else if ("WSPR" == mode) on_actionWSPR_triggered (); - else if ("FST280" == mode) on_actionFST280_triggered (); - else if ("FST280W" == mode) on_actionFST280W_triggered (); else if ("Echo" == mode) on_actionEcho_triggered (); } From b2ae563a7d2bbc20cb3a93529f897222f862b420 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 19 Jun 2020 11:57:49 -0400 Subject: [PATCH 105/520] For the user, define FST280 frequency as that of the lowest tone. --- lib/fst280/fst280sim.f90 | 9 +++++---- lib/fst280_decode.f90 | 5 +++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/fst280/fst280sim.f90 b/lib/fst280/fst280sim.f90 index 9d95279f5..7c29d4298 100644 --- a/lib/fst280/fst280sim.f90 +++ b/lib/fst280/fst280sim.f90 @@ -28,7 +28,7 @@ program fst280sim call getarg(2,arg) read(arg,*) nsec !TR sequence length, seconds call getarg(3,arg) - read(arg,*) f0 !Frequency (only used for single-signal) + read(arg,*) f00 !Frequency (only used for single-signal) call getarg(4,arg) read(arg,*) xdt !Time offset from nominal (s) call getarg(5,arg) @@ -46,7 +46,6 @@ program fst280sim twopi=8.0*atan(1.0) fs=12000.0 !Sample rate (Hz) dt=1.0/fs !Sample interval (s) - baud=1.0/tt !Keying rate (baud) nsps=0 if(nsec.eq.15) nsps=800 if(nsec.eq.30) nsps=1680 @@ -57,6 +56,7 @@ program fst280sim print*,'Invalid TR sequence length.' go to 999 endif + baud=12000.0/nsps !Keying rate (baud) nmax=nsec*12000 nz=nsps*NN nz2=nsps*NN2 @@ -78,7 +78,7 @@ program fst280sim write(*,*) write(*,'(a9,a37)') 'Message: ',msgsent37 - write(*,1000) f0,xdt,hmod,txt,snrdb + write(*,1000) f00,xdt,hmod,txt,snrdb 1000 format('f0:',f9.3,' DT:',f6.2,' hmod:',i6,' TxT:',f6.1,' SNR:',f6.1) write(*,*) if(i3.eq.1) then @@ -97,6 +97,7 @@ program fst280sim fsample=12000.0 icmplx=1 + f0=f00+1.5*hmod*baud call gen_fst280wave(itone,NN,nsps,nmax,fsample,hmod,f0,icmplx,c0,wave) k=nint((xdt+1.0)/dt)-nsps c0=cshift(c0,-k) @@ -135,7 +136,7 @@ program fst280sim open(10,file=trim(fname),status='unknown',access='stream') write(10) h,iwave !Save to *.wav file close(10) - write(*,1110) ifile,xdt,f0,snrdb,fname + write(*,1110) ifile,xdt,f00,snrdb,fname 1110 format(i4,f7.2,f8.2,f7.1,2x,a17) enddo diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index e47e251e5..0c8fb6f22 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -89,7 +89,7 @@ contains dt=1.0/fs !Sample interval (s) dt2=1.0/fs2 tt=nsps*dt !Duration of "itone" symbols (s) - + baud=1.0/tt nfft1=2*int(nmax/2) nh1=nfft1/2 allocate( r_data(1:nfft1+2) ) @@ -261,7 +261,8 @@ contains nsnr=nint(xsnr) iaptype=0 qual=0. - call this%callback(nutc,smax1,nsnr,xdt,fc_synced,msg, & + fsig=fc_synced - 1.5*hmod*baud + call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & iaptype,qual) goto 2002 else From 1465ab6935d4649e82d5056b0a772faa75bca378 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Fri, 19 Jun 2020 13:39:10 -0500 Subject: [PATCH 106/520] Sync all signals and then de-dupe before decoding. Changes to sync threshold scheme. --- lib/fst280_decode.f90 | 57 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 12 deletions(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index e47e251e5..98b369deb 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -1,5 +1,4 @@ module fst280_decode - type :: fst280_decoder procedure(fst280_decode_callback), pointer :: callback contains @@ -41,7 +40,7 @@ contains complex, allocatable :: c_bigfft(:) !Complex waveform real, allocatable :: r_data(:) real llr(280),llra(280),llrb(280),llrc(280),llrd(280) - real candidates(100,3) + real candidates(100,4) real bitmetrics(328,4) integer hmod integer*1 apmask(280),cw(280) @@ -89,6 +88,7 @@ contains dt=1.0/fs !Sample interval (s) dt2=1.0/fs2 tt=nsps*dt !Duration of "itone" symbols (s) + baud=1/tt nfft1=2*int(nmax/2) nh1=nfft1/2 @@ -187,7 +187,40 @@ contains endif fc_synced = fc0 + fc2 dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 + candidates(icand,3)=fc_synced + candidates(icand,4)=isbest + enddo +! remove duplicate candidates + do icand=1,ncand + fc=candidates(icand,3) + isbest=nint(candidates(icand,4)) + do ic2=1,ncand + fc2=candidates(ic2,3) + isbest2=nint(candidates(ic2,4)) + if(ic2.ne.icand .and. fc2.gt.0.0) then + if(abs(fc2-fc).lt.0.05*baud) then ! same frequency + if(abs(isbest2-isbest).le.2) then + candidates(ic2,3)=-1 + endif + endif + endif + enddo + enddo + + ic=0 + do icand=1,ncand + if(candidates(icand,3).gt.0) then + ic=ic+1 + candidates(ic,:)=candidates(icand,:) + endif + enddo + ncand=ic + + do icand=1,ncand + fc_synced=candidates(icand,3) + isbest=nint(candidates(icand,4)) + xdt=(isbest-nspsec)/fs2 call fst280_downsample(c_bigfft,nfft1,ndown,fc_synced,c2) do ijitter=0,2 @@ -387,7 +420,7 @@ contains df1=fs/nfft1 baud=fs/nsps df2=baud/2.0 - nd=df1/df2 + nd=df2/df1 ndh=nd/2 ia=fa/df2 ib=fb/df2 @@ -398,19 +431,15 @@ contains s(i)=s(i) + real(c_bigfft(j))**2 + aimag(c_bigfft(j))**2 enddo enddo - call pctile(s(ia:ib),ib-ia+1,30,base) - s=s/base nh=hmod do i=ia,ib s2(i)=s(i-nh*3) + s(i-nh) +s(i+nh) +s(i+nh*3) - s2(i)=db(s2(i)) - 48.5 enddo + call pctile(s2(ia:ib),ib-ia+1,30,base) + s2=s2/base - if(hmod.eq.1) thresh=-29.5 !### temporaray? ### - if(hmod.eq.2) thresh=-27.0 - if(hmod.eq.4) thresh=-27.0 - if(hmod.eq.8) thresh=-27.0 - + thresh=1.25 + ncand=0 if(ia.lt.3) ia=3 if(ib.gt.18000-2) ib=18000-2 @@ -420,7 +449,11 @@ contains (s2(i).gt.thresh).and.ncand.lt.100) then ncand=ncand+1 candidates(ncand,1)=df2*i - candidates(ncand,2)=s2(i) + x=s2(i)-1 + snr=-99 +! temporary placeholder until we implement subtraction... + if(x.gt.0) snr=10*log10(x)-10*log10(2500.0*nsps/12000.0)+6.0 + candidates(ncand,2)=snr endif enddo From 7b62732a45f07a0e244cb9501704aa5645194322 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Fri, 19 Jun 2020 13:43:50 -0500 Subject: [PATCH 107/520] Fix size of candidates array. --- lib/fst280_decode.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 638872176..7347c5bc0 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -410,7 +410,7 @@ contains complex c_bigfft(0:nfft1/2) integer hmod - real candidates(100,3) + real candidates(100,4) real s(18000) real s2(18000) data nfft1z/-1/ From 87b79d0615b74c739c0b79e646c48814b3c939d9 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 19 Jun 2020 15:02:05 -0400 Subject: [PATCH 108/520] OK, we can now transmit in FST280 mode. --- commons.h | 2 +- lib/fst280/gen_fst280wave.f90 | 5 ++-- widgets/mainwindow.cpp | 47 ++++++++++++++++++++++++++++++++--- widgets/mainwindow.h | 1 + wsjtx.pro | 1 + 5 files changed, 50 insertions(+), 6 deletions(-) diff --git a/commons.h b/commons.h index 24441ea06..f53bfff99 100644 --- a/commons.h +++ b/commons.h @@ -85,7 +85,7 @@ extern struct { } echocom_; extern struct { - float wave[606720]; + float wave[14278656]; int nslots; int nfreq; int i3bit[5]; diff --git a/lib/fst280/gen_fst280wave.f90 b/lib/fst280/gen_fst280wave.f90 index 7905544ef..944e06a36 100644 --- a/lib/fst280/gen_fst280wave.f90 +++ b/lib/fst280/gen_fst280wave.f90 @@ -1,4 +1,5 @@ -subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0,icmplx,cwave,wave) +subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & + icmplx,cwave,wave) real wave(nwave) complex cwave(nwave) @@ -11,7 +12,7 @@ subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0,icmplx,cwave,wav save first,twopi,dt,tsym if(first) then - allocate( pulse(3*nsps*fsample) ) + allocate(pulse(3*nsps*int(fsample))) twopi=8.0*atan(1.0) dt=1.0/fsample tsym=nsps/fsample diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index f6dce34af..cf5f39494 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -105,12 +105,18 @@ extern "C" { void genft4_(char* msg, int* ichk, char* msgsent, char ft4msgbits[], int itone[], fortran_charlen_t, fortran_charlen_t); + void genfst280_(char* msg, int* ichk, char* msgsent, char fst280msgbits[], + int itone[], int* iwspr, fortran_charlen_t, fortran_charlen_t); + void gen_ft8wave_(int itone[], int* nsym, int* nsps, float* bt, float* fsample, float* f0, float xjunk[], float wave[], int* icmplx, int* nwave); void gen_ft4wave_(int itone[], int* nsym, int* nsps, float* fsample, float* f0, float xjunk[], float wave[], int* icmplx, int* nwave); + void gen_fst280wave_(int itone[], int* nsym, int* nsps, int* nwave, float* fsample, + int* hmod, float* f0, int* icmplx, float xjunk[], float wave[]); + void gen4_(char* msg, int* ichk, char* msgsent, int itone[], int* itext, fortran_charlen_t, fortran_charlen_t); @@ -3801,7 +3807,8 @@ void MainWindow::guiUpdate() &m_currentMessageType, 22, 22); if(m_modeTx=="WSPR") genwspr_(message, msgsent, const_cast (itone), 22, 22); - if(m_modeTx=="MSK144" or m_modeTx=="FT8" or m_modeTx=="FT4") { + if(m_modeTx=="MSK144" or m_modeTx=="FT8" or m_modeTx=="FT4" + or m_modeTx=="FST280" or m_modeTx=="FST280W") { char MyCall[6]; char MyGrid[6]; ::memcpy(MyCall, (m_config.my_callsign()+" ").toLatin1(), sizeof MyCall); @@ -3862,8 +3869,26 @@ void MainWindow::guiUpdate() foxcom_.wave,&icmplx,&nwave); } if(m_modeTx=="FST280" or m_modeTx=="FST280W") { - // call genfst280() - // call gen_fst280wave() + int ichk=0; + int iwspr=0; + char fst280msgbits[101]; + genfst280_(message,&ichk,msgsent,const_cast (fst280msgbits), + const_cast(itone), &iwspr, 37, 37); + int hmod=int(pow(2.0,double(m_nSubMode))); + int nsps=800; + if(m_TRperiod==30) nsps=1680; + if(m_TRperiod==60) nsps=4000; + if(m_TRperiod==120) nsps=8400; + if(m_TRperiod==300) nsps=21504; + nsps=4*nsps; //48000 Hz sampling + int nsym=164; + float fsample=48000.0; + float dfreq=hmod*fsample/nsps; + float f0=ui->TxFreqSpinBox->value() - m_XIT + 1.5*dfreq; + int nwave=(nsym+2)*nsps; + int icmplx=0; + gen_fst280wave_(const_cast(itone),&nsym,&nsps,&nwave, + &fsample,&hmod,&f0,&icmplx,foxcom_.wave,foxcom_.wave); } if(SpecOp::EU_VHF==m_config.special_op_id()) { @@ -7140,6 +7165,22 @@ void MainWindow::transmit (double snr) true, false, snr, m_TRperiod); } + if (m_modeTx == "FST280" or m_modeTx == "FST280W") { + m_dateTimeSentTx3=QDateTime::currentDateTimeUtc(); + toneSpacing=-2.0; //Transmit a pre-computed, filtered waveform. + int nsps=800; + if(m_TRperiod==30) nsps=1680; + if(m_TRperiod==60) nsps=4000; + if(m_TRperiod==120) nsps=8400; + if(m_TRperiod==300) nsps=21504; + int hmod=int(pow(2.0,double(m_nSubMode))); + double dfreq=hmod*12000.0/nsps; + double f0=ui->TxFreqSpinBox->value() - m_XIT + 1.5*dfreq; + Q_EMIT sendMessage (NUM_FST280_SYMBOLS,double(nsps),f0,toneSpacing, + m_soundOutput,m_config.audio_output_channel(), + true, false, snr, m_TRperiod); + } + if (m_modeTx == "QRA64") { if(m_nSubMode==0) toneSpacing=12000.0/6912.0; if(m_nSubMode==1) toneSpacing=2*12000.0/6912.0; diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 779d76da4..ac8c22d15 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -49,6 +49,7 @@ #define NUM_QRA64_SYMBOLS 84 //63 data + 21 sync #define NUM_FT8_SYMBOLS 79 #define NUM_FT4_SYMBOLS 105 +#define NUM_FST280_SYMBOLS 164 //280/2 data + 6*4 sync #define NUM_CW_SYMBOLS 250 #define TX_SAMPLE_RATE 48000 #define N_WIDGETS 33 diff --git a/wsjtx.pro b/wsjtx.pro index 02a69d33c..d8d2b0949 100644 --- a/wsjtx.pro +++ b/wsjtx.pro @@ -54,6 +54,7 @@ include(logbook/logbook.pri) include(widgets/widgets.pri) include(Decoder/decodedtext.pri) include(Detector/Detector.pri) +include(Modulator/Modulator.pri) SOURCES += \ Radio.cpp NetworkServerLookup.cpp revision_utils.cpp \ From dff2b7e146fa564a74a864e84c2991a00a483a49 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 19 Jun 2020 15:54:59 -0400 Subject: [PATCH 109/520] Add code to sort FST280 candidates by strength and return only the top few. Temporary? --- lib/fst280_decode.f90 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 7347c5bc0..a0e0c73dd 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -410,7 +410,10 @@ contains complex c_bigfft(0:nfft1/2) integer hmod + integer indx(100) real candidates(100,4) + real candidates0(100,4) + real snr_cand(100) real s(18000) real s2(18000) data nfft1z/-1/ @@ -457,6 +460,17 @@ contains endif enddo + snr_cand=0. + snr_cand(1:ncand)=candidates(1:ncand,2) + call indexx(snr_cand,ncand,indx) + nmax=5 + do i=1,min(ncand,nmax) + j=indx(ncand+1-i) + candidates0(i,1:4)=candidates(j,1:4) + enddo + candidates(1:nmax,1:4)=candidates0(1:nmax,1:4) + candidates(nmax+1:,1:4)=0. + return end subroutine get_candidates_fst280 From 28746dd0b69f8764e2f17445e8f0654223a8495d Mon Sep 17 00:00:00 2001 From: K9AN Date: Fri, 19 Jun 2020 16:49:26 -0500 Subject: [PATCH 110/520] Need to reallocate pulse() when nsps changes. --- lib/fst280/gen_fst280wave.f90 | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/fst280/gen_fst280wave.f90 b/lib/fst280/gen_fst280wave.f90 index 944e06a36..0735c7bf3 100644 --- a/lib/fst280/gen_fst280wave.f90 +++ b/lib/fst280/gen_fst280wave.f90 @@ -9,9 +9,13 @@ subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & integer itone(nsym) logical first data first/.true./ - save first,twopi,dt,tsym + data nsps0/-99/ + save first,twopi,dt,tsym,nsps0 - if(first) then + if(first.or.nsps.ne.nsps0) then + if(allocated(pulse)) then + deallocate(pulse) + endif allocate(pulse(3*nsps*int(fsample))) twopi=8.0*atan(1.0) dt=1.0/fsample @@ -22,6 +26,7 @@ subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & pulse(i)=gfsk_pulse(2.0,tt) enddo first=.false. + nsps0=nsps endif ! Compute the smoothed frequency waveform. @@ -38,7 +43,7 @@ subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & ! Calculate and insert the audio waveform phi=0.0 dphi = dphi + twopi*(f0-1.5*hmod/tsym)*dt !Shift frequency up by f0 - wave=0. + if(icmplx.eq.0) wave=0. if(icmplx.eq.1) cwave=0. k=0 do j=0,(nsym+2)*nsps-1 From f2b460231b438eeb3367a697ea9fea11967582e5 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 19 Jun 2020 19:17:05 -0400 Subject: [PATCH 111/520] Should allocate pulse(1:3*nsps), not pulse(1:3*nsps*fsample) ! --- lib/fst280/gen_fst280wave.f90 | 8 +++----- lib/ft8/foxgen.f90 | 26 +------------------------- 2 files changed, 4 insertions(+), 30 deletions(-) diff --git a/lib/fst280/gen_fst280wave.f90 b/lib/fst280/gen_fst280wave.f90 index 0735c7bf3..9245af406 100644 --- a/lib/fst280/gen_fst280wave.f90 +++ b/lib/fst280/gen_fst280wave.f90 @@ -13,10 +13,8 @@ subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & save first,twopi,dt,tsym,nsps0 if(first.or.nsps.ne.nsps0) then - if(allocated(pulse)) then - deallocate(pulse) - endif - allocate(pulse(3*nsps*int(fsample))) + if(allocated(pulse)) deallocate(pulse) + allocate(pulse(1:3*nsps)) twopi=8.0*atan(1.0) dt=1.0/fsample tsym=nsps/fsample @@ -42,7 +40,7 @@ subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & ! Calculate and insert the audio waveform phi=0.0 - dphi = dphi + twopi*(f0-1.5*hmod/tsym)*dt !Shift frequency up by f0 + dphi = dphi + twopi*(f0-1.5*hmod/tsym)*dt !Shift frequency up by f0 if(icmplx.eq.0) wave=0. if(icmplx.eq.1) cwave=0. k=0 diff --git a/lib/ft8/foxgen.f90 b/lib/ft8/foxgen.f90 index 7492a6f70..703da0ef9 100644 --- a/lib/ft8/foxgen.f90 +++ b/lib/ft8/foxgen.f90 @@ -15,7 +15,7 @@ subroutine foxgen() ! common block. parameter (NN=79,ND=58,NSPS=4*1920) - parameter (NWAVE=NN*NSPS,NFFT=614400,NH=NFFT/2) + parameter (NWAVE=14278656,NFFT=614400,NH=NFFT/2) character*40 cmsg character*37 msg,msgsent integer itone(79) @@ -60,34 +60,10 @@ subroutine foxgen() peak1=maxval(abs(wave)) wave=wave/peak1 -! call plotspec(1,wave) !Plot the spectrum - -! Apply compression -! rms=sqrt(dot_product(wave,wave)/kz) -! wave=wave/rms -! do i=1,NWAVE -! wave(i)=h1(wave(i)) -! enddo -! peak2=maxval(abs(wave)) -! wave=wave/peak2 - -! call plotspec(2,wave) !Plot the spectrum - width=50.0 call foxfilt(nslots,nfreq,width,wave) peak3=maxval(abs(wave)) wave=wave/peak3 - -! nadd=1000 -! j=0 -! do i=1,NWAVE,nadd -! sx=dot_product(wave(i:i+nadd-1),wave(i:i+nadd-1)) -! j=j+1 -! write(30,3001) j,sx/nadd -!3001 format(i8,f12.6) -! enddo - -! call plotspec(3,wave) !Plot the spectrum return end subroutine foxgen From e78f1abcedccca04eaddc6cefba01da2fc615cae Mon Sep 17 00:00:00 2001 From: K9AN Date: Fri, 19 Jun 2020 20:56:50 -0500 Subject: [PATCH 112/520] Make sure that ncand is correct even when the number of candidates has been limited. --- lib/fst280_decode.f90 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index a0e0c73dd..04806a27d 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -441,9 +441,10 @@ contains call pctile(s2(ia:ib),ib-ia+1,30,base) s2=s2/base - thresh=1.25 + thresh=1.4 ncand=0 + candidates=0 if(ia.lt.3) ia=3 if(ib.gt.18000-2) ib=18000-2 do i=ia,ib @@ -464,7 +465,8 @@ contains snr_cand(1:ncand)=candidates(1:ncand,2) call indexx(snr_cand,ncand,indx) nmax=5 - do i=1,min(ncand,nmax) + ncand=min(ncand,nmax) + do i=1,ncand j=indx(ncand+1-i) candidates0(i,1:4)=candidates(j,1:4) enddo From 644a570cb995b638c3fe9c75487e90a168cc8046 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sat, 20 Jun 2020 12:37:37 -0500 Subject: [PATCH 113/520] Enable sync checks on candidates. --- lib/fst280/get_fst280_bitmetrics.f90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/fst280/get_fst280_bitmetrics.f90 b/lib/fst280/get_fst280_bitmetrics.f90 index 50568210f..bba000d59 100644 --- a/lib/fst280/get_fst280_bitmetrics.f90 +++ b/lib/fst280/get_fst280_bitmetrics.f90 @@ -72,10 +72,10 @@ subroutine get_fst280_bitmetrics(cd,nss,hmod,bitmetrics,badsync) nsync=is1+is2+is3 !Number of correct hard sync symbols, 0-24 badsync=.false. -! if(nsync .lt. 8) then -! badsync=.true. -! return -! endif + if(nsync .lt. 8) then + badsync=.true. + return + endif bitmetrics=0.0 do nseq=1,4 !Try coherent sequences of 1, 2, and 4 symbols From f8d7489b4ed92148d3afa622d8b027fb9864206d Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 20 Jun 2020 13:47:32 -0400 Subject: [PATCH 114/520] Fix many odds & ends for merging FST280 properly into the GUI. --- lib/77bit/packjt77.f90 | 2 +- lib/decoder.f90 | 19 ++++++++++++++----- lib/fst280_decode.f90 | 5 +++-- widgets/displaytext.cpp | 6 ++++-- widgets/displaytext.h | 2 +- widgets/mainwindow.cpp | 21 +++++++++++---------- widgets/plotter.cpp | 15 ++++++++++++--- 7 files changed, 46 insertions(+), 24 deletions(-) diff --git a/lib/77bit/packjt77.f90 b/lib/77bit/packjt77.f90 index 2b1a60bf3..1937892bc 100644 --- a/lib/77bit/packjt77.f90 +++ b/lib/77bit/packjt77.f90 @@ -897,7 +897,7 @@ subroutine pack77_03(nwords,w,i3,n3,c77) ntx=-1 j=len(trim(w(nwords-1)))-1 - read(w(nwords-1)(1:j),*,err=1) ntx !Number of transmitters + read(w(nwords-1)(1:j),*,err=1,end=1) ntx !Number of transmitters 1 if(ntx.lt.1 .or. ntx.gt.32) return nclass=ichar(w(nwords-1)(j+1:j+1))-ichar('A') diff --git a/lib/decoder.f90 b/lib/decoder.f90 index c737a2ca6..5db74e39b 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -678,7 +678,8 @@ contains return end subroutine ft4_decoded - subroutine fst280_decoded (this,nutc,sync,nsnr,dt,freq,decoded,nap,qual) + subroutine fst280_decoded (this,nutc,sync,nsnr,dt,freq,decoded,nap, & + qual,ntrperiod) use fst280_decode implicit none @@ -692,6 +693,7 @@ contains character(len=37), intent(in) :: decoded integer, intent(in) :: nap real, intent(in) :: qual + integer, intent(in) :: ntrperiod character*2 annot character*37 decoded0 @@ -702,10 +704,17 @@ contains if(qual.lt.0.17) decoded0(37:37)='?' endif - write(*,1001) nutc,nsnr,dt,nint(freq),decoded0,annot -1001 format(i6.6,i4,f5.1,i5,' ` ',1x,a37,1x,a2) - write(13,1002) nutc,nint(sync),nsnr,dt,freq,0,decoded0 -1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FST280') + if(ntrperiod.lt.60) then + write(*,1001) nutc,nsnr,dt,nint(freq),decoded0,annot +1001 format(i6.6,i4,f5.1,i5,' ` ',1x,a37,1x,a2) + write(13,1002) nutc,nint(sync),nsnr,dt,freq,0,decoded0 +1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FST280') + else + write(*,1003) nutc,nsnr,dt,nint(freq),decoded0,annot +1003 format(i4.4,i4,f5.1,i5,' ` ',1x,a37,1x,a2) + write(13,1004) nutc,nint(sync),nsnr,dt,freq,0,decoded0 +1004 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a37,' FST280') + endif call flush(6) call flush(13) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index a0e0c73dd..377332cb7 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -7,7 +7,7 @@ module fst280_decode abstract interface subroutine fst280_decode_callback (this,nutc,sync,nsnr,dt,freq, & - decoded,nap,qual) + decoded,nap,qual,ntrperiod) import fst280_decoder implicit none class(fst280_decoder), intent(inout) :: this @@ -19,6 +19,7 @@ module fst280_decode character(len=37), intent(in) :: decoded integer, intent(in) :: nap real, intent(in) :: qual + integer, intent(in) :: ntrperiod end subroutine fst280_decode_callback end interface @@ -295,7 +296,7 @@ contains qual=0. fsig=fc_synced - 1.5*hmod*baud call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & - iaptype,qual) + iaptype,qual,ntrperiod) goto 2002 else cycle diff --git a/widgets/displaytext.cpp b/widgets/displaytext.cpp index f0f17f648..47478e346 100644 --- a/widgets/displaytext.cpp +++ b/widgets/displaytext.cpp @@ -451,7 +451,8 @@ void DisplayText::displayDecodedText(DecodedText const& decodedText, QString con } -void DisplayText::displayTransmittedText(QString text, QString modeTx, qint32 txFreq,bool bFastMode) +void DisplayText::displayTransmittedText(QString text, QString modeTx, qint32 txFreq, + bool bFastMode, double TRperiod) { QString t1=" @ "; if(modeTx=="FT4") t1=" + "; @@ -459,10 +460,11 @@ void DisplayText::displayTransmittedText(QString text, QString modeTx, qint32 tx if(modeTx=="JT4") t1=" $ "; if(modeTx=="JT65") t1=" # "; if(modeTx=="MSK144") t1=" & "; + if(modeTx=="FST280") t1=" ` "; QString t2; t2 = t2.asprintf("%4d",txFreq); QString t; - if(bFastMode or modeTx=="FT8" or modeTx=="FT4") { + if(bFastMode or modeTx=="FT8" or modeTx=="FT4" or (TRperiod<60)) { t = QDateTime::currentDateTimeUtc().toString("hhmmss") + \ " Tx " + t2 + t1 + text; } else if(modeTx.mid(0,6)=="FT8fox") { diff --git a/widgets/displaytext.h b/widgets/displaytext.h index fb8bb6134..d4adc3d2c 100644 --- a/widgets/displaytext.h +++ b/widgets/displaytext.h @@ -31,7 +31,7 @@ public: void displayDecodedText(DecodedText const& decodedText, QString const& myCall, QString const& mode, bool displayDXCCEntity, LogBook const& logBook, QString const& currentBand=QString {}, bool ppfx=false, bool bCQonly=false); - void displayTransmittedText(QString text, QString modeTx, qint32 txFreq, bool bFastMode); + void displayTransmittedText(QString text, QString modeTx, qint32 txFreq, bool bFastMode, double TRperiod); void displayQSY(QString text); void displayFoxToBeCalled(QString t, QColor bg = QColor {}, QColor fg = QColor {}); void new_period (); diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index cf5f39494..0d996fd6b 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -2890,9 +2890,9 @@ void MainWindow::decode() //decode() imin=imin % 60; if(m_TRperiod>=60) imin=imin - (imin % (int(m_TRperiod)/60)); dec_data.params.nutc=100*ihr + imin; - if(m_mode=="ISCAT" or m_mode=="MSK144" or m_bFast9 or m_mode=="FT8" or m_mode=="FT4") { + if(m_TRperiod < 60) { qint64 ms=1000.0*(2.0-m_TRperiod); - if(m_mode=="FT4") ms=1000.0*(2.0-m_TRperiod); + if(m_mode=="FST280") ms=1000.0*(6.0-m_TRperiod); //Adjust for FT8 early decode: if(m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) ms+=(m_hsymStop-m_earlyDecode)*288; if(m_mode=="FT8" and m_ihsym==m_earlyDecode2 and !m_diskData) ms+=(m_hsymStop-m_earlyDecode2)*288; @@ -3244,7 +3244,7 @@ void MainWindow::readFromStdout() //readFromStdout //Right (Rx Frequency) window bool bDisplayRight=bAvgMsg; int audioFreq=decodedtext.frequencyOffset(); - if(m_mode=="FT8" or m_mode=="FT4") { + if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST280") { auto const& parts = decodedtext.string().remove("<").remove(">") .split (' ', SkipEmptyParts); if (parts.size() > 6) { @@ -3327,7 +3327,8 @@ void MainWindow::readFromStdout() //readFromStdout //### I think this is where we are preventing Hounds from spotting Fox ### if(m_mode!="FT8" or (SpecOp::HOUND != m_config.special_op_id())) { - if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="QRA64" or m_mode=="JT4" or m_mode=="JT65" or m_mode=="JT9") { + if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="QRA64" or m_mode=="JT4" + or m_mode=="JT65" or m_mode=="JT9" or m_mode=="FST280") { auto_sequence (decodedtext, 25, 50); } @@ -3927,7 +3928,7 @@ void MainWindow::guiUpdate() write_all("Tx",m_currentMessage); if (m_config.TX_messages ()) { ui->decodedTextBrowser2->displayTransmittedText(m_currentMessage,m_modeTx, - ui->TxFreqSpinBox->value(),m_bFastMode); + ui->TxFreqSpinBox->value(),m_bFastMode,m_TRperiod); } } @@ -4030,7 +4031,7 @@ void MainWindow::guiUpdate() if (m_config.TX_messages () && !m_tune && SpecOp::FOX!=m_config.special_op_id()) { ui->decodedTextBrowser2->displayTransmittedText(current_message, m_modeTx, - ui->TxFreqSpinBox->value(),m_bFastMode); + ui->TxFreqSpinBox->value(),m_bFastMode,m_TRperiod); } // } @@ -5824,12 +5825,13 @@ void MainWindow::on_actionFST280_triggered() WSPR_config(false); bool bVHF=m_config.enable_VHF_features(); // 012345678901234567890123456789012 - displayWidgets(nWidgets("111011000000111100010000000000000")); + displayWidgets(nWidgets("111011000100111100010000000100000")); setup_status_bar (bVHF); m_TRperiod = ui->sbTR->value (); ui->sbTR->setMinimum(15); ui->sbTR->setMaximum(300); on_sbTR_valueChanged(ui->sbTR->value()); + ui->cbAutoSeq->setChecked(true); statusChanged(); } @@ -5872,7 +5874,6 @@ void MainWindow::on_actionFT4_triggered() m_wideGraph->setModeTx(m_modeTx); m_send_RR73=true; VHF_features_enabled(bVHF); -// ui->cbAutoSeq->setChecked(false); m_fastGraph->hide(); m_wideGraph->show(); ui->decodedTextLabel2->setText(" UTC dB DT Freq " + tr ("Message")); @@ -8256,7 +8257,7 @@ void MainWindow::on_cbFirst_toggled(bool b) void MainWindow::on_cbAutoSeq_toggled(bool b) { if(!b) ui->cbFirst->setChecked(false); - ui->cbFirst->setVisible((m_mode=="FT8" or m_mode=="FT4") and b); + ui->cbFirst->setVisible((m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST280") and b); } void MainWindow::on_measure_check_box_stateChanged (int state) @@ -8819,7 +8820,7 @@ void MainWindow::foxGenWaveform(int i,QString fm) QString txModeArg; txModeArg = txModeArg.asprintf("FT8fox %d",i+1); ui->decodedTextBrowser2->displayTransmittedText(fm.trimmed(), txModeArg, - ui->TxFreqSpinBox->value()+60*i,m_bFastMode); + ui->TxFreqSpinBox->value()+60*i,m_bFastMode,m_TRperiod); foxcom_.i3bit[i]=0; if(fm.indexOf("<")>0) foxcom_.i3bit[i]=1; strncpy(&foxcom_.cmsg[i][0],fm.toLatin1(),40); //Copy this message into cmsg[i] diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index c5ade99a5..cf1e70cd1 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -415,7 +415,16 @@ void CPlotter::DrawOverlay() //DrawOverlay() float bw=9.0*12000.0/m_nsps; //JT9 if(m_mode=="FT4") bw=3*12000.0/576.0; //FT4 ### (3x, or 4x???) ### if(m_mode=="FT8") bw=7*12000.0/1920.0; //FT8 - + if(m_mode=="FST280") { + int h=int(pow(2.0,m_nSubMode)); + int nsps=800; + if(m_TRperiod==30) nsps=1680; + if(m_TRperiod==60) nsps=4000; + if(m_TRperiod==120) nsps=8400; + if(m_TRperiod==300) nsps=21504; + float baud=12000.0/nsps; + bw=3.0*h*baud; + } if(m_mode=="JT4") { //JT4 bw=3*11025.0/2520.0; //Max tone spacing (3/4 of actual BW) if(m_nSubMode==1) bw=2*bw; @@ -492,7 +501,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() int yTxTop=12; int yRxBottom=yTxTop + 2*yh + 4; if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65" - or m_mode=="QRA64" or m_mode=="FT8" or m_mode=="FT4") { + or m_mode=="QRA64" or m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST280") { if(m_mode=="QRA64" or (m_mode=="JT65" and m_bVHF)) { painter0.setPen(penGreen); @@ -529,7 +538,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65" or m_mode.mid(0,4)=="WSPR" or m_mode=="QRA64" or m_mode=="FT8" - or m_mode=="FT4") { + or m_mode=="FT4" or m_mode=="FST280") { painter0.setPen(penRed); x1=XfromFreq(m_txFreq); x2=XfromFreq(m_txFreq+bw); From 066d2585bcee136dc4956d056de394e0947625af Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 20 Jun 2020 14:17:05 -0400 Subject: [PATCH 115/520] Revert "Enable sync checks on candidates." This reverts commit 644a570cb995b638c3fe9c75487e90a168cc8046. --- lib/fst280/get_fst280_bitmetrics.f90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/fst280/get_fst280_bitmetrics.f90 b/lib/fst280/get_fst280_bitmetrics.f90 index bba000d59..50568210f 100644 --- a/lib/fst280/get_fst280_bitmetrics.f90 +++ b/lib/fst280/get_fst280_bitmetrics.f90 @@ -72,10 +72,10 @@ subroutine get_fst280_bitmetrics(cd,nss,hmod,bitmetrics,badsync) nsync=is1+is2+is3 !Number of correct hard sync symbols, 0-24 badsync=.false. - if(nsync .lt. 8) then - badsync=.true. - return - endif +! if(nsync .lt. 8) then +! badsync=.true. +! return +! endif bitmetrics=0.0 do nseq=1,4 !Try coherent sequences of 1, 2, and 4 symbols From 17d1bc92dc9923330fb2f57e128eaee02899c7e4 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 20 Jun 2020 14:17:34 -0400 Subject: [PATCH 116/520] Revert "Make sure that ncand is correct even when the number of candidates has been limited." This reverts commit e78f1abcedccca04eaddc6cefba01da2fc615cae. --- lib/fst280_decode.f90 | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index a0e4b4a0c..377332cb7 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -442,10 +442,9 @@ contains call pctile(s2(ia:ib),ib-ia+1,30,base) s2=s2/base - thresh=1.4 + thresh=1.25 ncand=0 - candidates=0 if(ia.lt.3) ia=3 if(ib.gt.18000-2) ib=18000-2 do i=ia,ib @@ -466,8 +465,7 @@ contains snr_cand(1:ncand)=candidates(1:ncand,2) call indexx(snr_cand,ncand,indx) nmax=5 - ncand=min(ncand,nmax) - do i=1,ncand + do i=1,min(ncand,nmax) j=indx(ncand+1-i) candidates0(i,1:4)=candidates(j,1:4) enddo From 0e935f0cf7fcba2a6e54b7c8d7f15a15b7551fc7 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 20 Jun 2020 15:41:52 -0400 Subject: [PATCH 117/520] More tweaks to FST280 decoding. Suppress blank free text msgs. --- lib/77bit/packjt77.f90 | 4 ++++ lib/fst280/get_fst280_bitmetrics.f90 | 8 ++++---- lib/fst280_decode.f90 | 15 +++++++++------ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/77bit/packjt77.f90 b/lib/77bit/packjt77.f90 index 1937892bc..9819600d8 100644 --- a/lib/77bit/packjt77.f90 +++ b/lib/77bit/packjt77.f90 @@ -281,6 +281,10 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) call unpacktext77(c77(1:71),msg(1:13)) msg(14:)=' ' msg=adjustl(msg) + if(msg(1:1).eq.' ') then + unpk77_success=.false. + return + endif else if(i3.eq.0 .and. n3.eq.1) then ! 0.1 K1ABC RR73; W9XYZ -11 28 28 10 5 71 DXpedition Mode diff --git a/lib/fst280/get_fst280_bitmetrics.f90 b/lib/fst280/get_fst280_bitmetrics.f90 index 50568210f..bba000d59 100644 --- a/lib/fst280/get_fst280_bitmetrics.f90 +++ b/lib/fst280/get_fst280_bitmetrics.f90 @@ -72,10 +72,10 @@ subroutine get_fst280_bitmetrics(cd,nss,hmod,bitmetrics,badsync) nsync=is1+is2+is3 !Number of correct hard sync symbols, 0-24 badsync=.false. -! if(nsync .lt. 8) then -! badsync=.true. -! return -! endif + if(nsync .lt. 8) then + badsync=.true. + return + endif bitmetrics=0.0 do nseq=1,4 !Try coherent sequences of 1, 2, and 4 symbols diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 377332cb7..a0631ae20 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -232,6 +232,7 @@ contains cframe=c2(is0:is0+164*nss-1) s2=sum(cframe*conjg(cframe)) cframe=cframe/sqrt(s2) + bitmetrics=0 call get_fst280_bitmetrics(cframe,nss,hmod,bitmetrics,badsync) hbits=0 @@ -243,7 +244,7 @@ contains ns5=count(hbits(313:320).eq.(/0,0,0,1,1,0,1,1/)) ns6=count(hbits(321:328).eq.(/0,1,0,0,1,1,1,0/)) nsync_qual=ns1+ns2+ns3+ns4+ns5+ns6 -! if(nsync_qual.lt. 20) cycle + if(nsync_qual.lt. 30) cycle !### Value ?? ### scalefac=2.83 llra( 1:140)=bitmetrics( 17:156, 1) @@ -442,9 +443,10 @@ contains call pctile(s2(ia:ib),ib-ia+1,30,base) s2=s2/base - thresh=1.25 + thresh=1.4 ncand=0 + candidates=0 if(ia.lt.3) ia=3 if(ib.gt.18000-2) ib=18000-2 do i=ia,ib @@ -464,13 +466,14 @@ contains snr_cand=0. snr_cand(1:ncand)=candidates(1:ncand,2) call indexx(snr_cand,ncand,indx) - nmax=5 - do i=1,min(ncand,nmax) + nmax=min(ncand,5) + do i=1,nmax j=indx(ncand+1-i) candidates0(i,1:4)=candidates(j,1:4) enddo - candidates(1:nmax,1:4)=candidates0(1:nmax,1:4) - candidates(nmax+1:,1:4)=0. + ncand=nmax + candidates(1:ncand,1:4)=candidates0(1:ncand,1:4) + candidates(ncand+1:,1:4)=0. return end subroutine get_candidates_fst280 From b48b23450d7d5e07fcda37c1151db472cd68dd2b Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 21 Jun 2020 01:36:30 +0100 Subject: [PATCH 118/520] First iteration of optional TCP/IP client for PSK Reporter --- CMakeLists.txt | 2 +- Configuration.cpp | 6 + Configuration.hpp | 1 + Configuration.ui | 33 ++- Network/MessageClient.cpp | 60 ++--- Network/MessageClient.hpp | 9 - Network/PSK_Reporter.cpp | 495 ++++++++++++++++++++++++++++++++++++++ Network/PSK_Reporter.hpp | 41 ++++ Network/psk_reporter.cpp | 140 ----------- Network/psk_reporter.h | 54 ----- main.cpp | 8 +- widgets/mainwindow.cpp | 14 +- widgets/mainwindow.h | 5 +- wsjtx.pro | 4 +- 14 files changed, 598 insertions(+), 274 deletions(-) create mode 100644 Network/PSK_Reporter.cpp create mode 100644 Network/PSK_Reporter.hpp delete mode 100644 Network/psk_reporter.cpp delete mode 100644 Network/psk_reporter.h diff --git a/CMakeLists.txt b/CMakeLists.txt index ca25c3a08..8690c562f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -302,7 +302,7 @@ set (jt9_FSRCS set (wsjtx_CXXSRCS logbook/logbook.cpp - Network/psk_reporter.cpp + Network/PSK_Reporter.cpp Modulator/Modulator.cpp Detector/Detector.cpp widgets/logqso.cpp diff --git a/Configuration.cpp b/Configuration.cpp index 4afa9dfe7..c27c5591f 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -604,6 +604,7 @@ private: bool id_after_73_; bool tx_QSY_allowed_; bool spot_to_psk_reporter_; + bool psk_reporter_tcpip_; bool monitor_off_at_startup_; bool monitor_last_used_; bool log_as_RTTY_; @@ -701,6 +702,7 @@ bool Configuration::spot_to_psk_reporter () const // rig must be open and working to spot externally return is_transceiver_online () && m_->spot_to_psk_reporter_; } +bool Configuration::psk_reporter_tcpip () const {return m_->psk_reporter_tcpip_;} bool Configuration::monitor_off_at_startup () const {return m_->monitor_off_at_startup_;} bool Configuration::monitor_last_used () const {return m_->rig_is_dummy_ || m_->monitor_last_used_;} bool Configuration::log_as_RTTY () const {return m_->log_as_RTTY_;} @@ -1241,6 +1243,7 @@ void Configuration::impl::initialize_models () ui_->CW_id_after_73_check_box->setChecked (id_after_73_); ui_->tx_QSY_check_box->setChecked (tx_QSY_allowed_); ui_->psk_reporter_check_box->setChecked (spot_to_psk_reporter_); + ui_->psk_reporter_tcpip_check_box->setChecked (psk_reporter_tcpip_); ui_->monitor_off_check_box->setChecked (monitor_off_at_startup_); ui_->monitor_last_used_check_box->setChecked (monitor_last_used_); ui_->log_as_RTTY_check_box->setChecked (log_as_RTTY_); @@ -1448,6 +1451,7 @@ void Configuration::impl::read_settings () monitor_off_at_startup_ = settings_->value ("MonitorOFF", false).toBool (); monitor_last_used_ = settings_->value ("MonitorLastUsed", false).toBool (); spot_to_psk_reporter_ = settings_->value ("PSKReporter", false).toBool (); + psk_reporter_tcpip_ = settings_->value ("PSKReporterTCPIP", false).toBool (); id_after_73_ = settings_->value ("After73", false).toBool (); tx_QSY_allowed_ = settings_->value ("TxQSYAllowed", false).toBool (); use_dynamic_grid_ = settings_->value ("AutoGrid", false).toBool (); @@ -1587,6 +1591,7 @@ void Configuration::impl::write_settings () settings_->setValue ("MonitorOFF", monitor_off_at_startup_); settings_->setValue ("MonitorLastUsed", monitor_last_used_); settings_->setValue ("PSKReporter", spot_to_psk_reporter_); + settings_->setValue ("PSKReporterTCPIP", psk_reporter_tcpip_); settings_->setValue ("After73", id_after_73_); settings_->setValue ("TxQSYAllowed", tx_QSY_allowed_); settings_->setValue ("Macros", macros_.stringList ()); @@ -2041,6 +2046,7 @@ void Configuration::impl::accept () FD_exchange_= ui_->Field_Day_Exchange->text ().toUpper (); RTTY_exchange_= ui_->RTTY_Exchange->text ().toUpper (); spot_to_psk_reporter_ = ui_->psk_reporter_check_box->isChecked (); + psk_reporter_tcpip_ = ui_->psk_reporter_tcpip_check_box->isChecked (); id_interval_ = ui_->CW_id_interval_spin_box->value (); ntrials_ = ui_->sbNtrials->value (); txDelay_ = ui_->sbTxDelay->value (); diff --git a/Configuration.hpp b/Configuration.hpp index 43267d6ce..882a78629 100644 --- a/Configuration.hpp +++ b/Configuration.hpp @@ -113,6 +113,7 @@ public: bool id_after_73 () const; bool tx_QSY_allowed () const; bool spot_to_psk_reporter () const; + bool psk_reporter_tcpip () const; bool monitor_off_at_startup () const; bool monitor_last_used () const; bool log_as_RTTY () const; diff --git a/Configuration.ui b/Configuration.ui index fa16476e9..16a248223 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -6,8 +6,8 @@ 0 0 - 557 - 561 + 559 + 553 @@ -1800,20 +1800,27 @@ and DX Grid fields when a 73 or free text message is sent. Network Services - - + + - The program can send your station details and all -decoded signals as spots to the http://pskreporter.info web site. -This is used for reverse beacon analysis which is very useful -for assessing propagation and system performance. + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> Enable &PSK Reporter Spotting + + + + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> + + + Use TCP/IP connection + + + @@ -3108,13 +3115,13 @@ Right click for insert and delete options. + + - - - - - + + + diff --git a/Network/MessageClient.cpp b/Network/MessageClient.cpp index d33b2a636..d2de5867e 100644 --- a/Network/MessageClient.cpp +++ b/Network/MessageClient.cpp @@ -36,6 +36,7 @@ public: impl (QString const& id, QString const& version, QString const& revision, port_type server_port, MessageClient * self) : self_ {self} + , dns_lookup_id_ {0} , enabled_ {false} , id_ {id} , version_ {version} @@ -81,6 +82,7 @@ public: Q_SLOT void host_info_results (QHostInfo); MessageClient * self_; + int dns_lookup_id_; bool enabled_; QString id_; QString version_; @@ -101,6 +103,7 @@ public: void MessageClient::impl::host_info_results (QHostInfo host_info) { + if (host_info.lookupId () != dns_lookup_id_) return; if (QHostInfo::NoError != host_info.error ()) { Q_EMIT self_->error ("UDP server lookup failed:\n" + host_info.errorString ()); @@ -423,30 +426,24 @@ MessageClient::MessageClient (QString const& id, QString const& version, QString : QObject {self} , m_ {id, version, revision, server_port, this} { + connect (&*m_ #if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) - connect (&*m_, static_cast (&impl::error) - , [this] (impl::SocketError e) - { + , static_cast (&impl::error), [this] (impl::SocketError e) +#else + , &impl::errorOccurred, [this] (impl::SocketError e) +#endif + { #if defined (Q_OS_WIN) - if (e != impl::NetworkError // take this out when Qt 5.5 - // stops doing this - // spuriously - && e != impl::ConnectionRefusedError) // not - // interested - // in this with - // UDP socket + if (e != impl::NetworkError // take this out when Qt 5.5 stops doing this spuriously + && e != impl::ConnectionRefusedError) // not interested in this with UDP socket + { #else - Q_UNUSED (e); + { + Q_UNUSED (e); #endif - { - Q_EMIT error (m_->errorString ()); - } - }); -#else - connect (&*m_, &impl::errorOccurred, [this] (impl::SocketError) { Q_EMIT error (m_->errorString ()); - }); -#endif + } + }); set_server (server); } @@ -464,11 +461,11 @@ void MessageClient::set_server (QString const& server) { m_->server_.clear (); m_->server_string_ = server; - if (!server.isEmpty ()) + if (server.size ()) { // queue a host address lookup TRACE_UDP ("server host DNS lookup:" << server); - QHostInfo::lookupHost (server, &*m_, SLOT (host_info_results (QHostInfo))); + m_->dns_lookup_id_ = QHostInfo::lookupHost (server, &*m_, &MessageClient::impl::host_info_results); } } @@ -477,27 +474,6 @@ void MessageClient::set_server_port (port_type server_port) m_->server_port_ = server_port; } -qint64 MessageClient::send_raw_datagram (QByteArray const& message, QHostAddress const& dest_address - , port_type dest_port) -{ - if (dest_port && !dest_address.isNull ()) - { - return m_->writeDatagram (message, dest_address, dest_port); - } - return 0; -} - -void MessageClient::add_blocked_destination (QHostAddress const& a) -{ - m_->blocked_addresses_.push_back (a); - if (a == m_->server_) - { - m_->server_.clear (); - Q_EMIT error ("UDP server blocked, please try another"); - m_->pending_messages_.clear (); // discard - } -} - void MessageClient::enable (bool flag) { m_->enabled_ = flag; diff --git a/Network/MessageClient.hpp b/Network/MessageClient.hpp index 20f39b019..29730f22c 100644 --- a/Network/MessageClient.hpp +++ b/Network/MessageClient.hpp @@ -75,15 +75,6 @@ public: // of record marker Q_SLOT void logged_ADIF (QByteArray const& ADIF_record); - // this may be used to send arbitrary UDP datagrams to and - // destination allowing the underlying socket to be used for general - // UDP messaging if desired - qint64 send_raw_datagram (QByteArray const&, QHostAddress const& dest_address, port_type dest_port); - - // disallowed message destination (does not block datagrams sent - // with send_raw_datagram() above) - Q_SLOT void add_blocked_destination (QHostAddress const&); - // this signal is emitted if the server has requested a decode // window clear action Q_SIGNAL void clear_decodes (quint8 window); diff --git a/Network/PSK_Reporter.cpp b/Network/PSK_Reporter.cpp new file mode 100644 index 000000000..ae3a41043 --- /dev/null +++ b/Network/PSK_Reporter.cpp @@ -0,0 +1,495 @@ +// Interface for posting spots to PSK Reporter web site +// Implemented by Edson Pereira PY2SDR +// Updated by Bill Somerville, G4WJS +// +// Reports will be sent in batch mode every 5 minutes. + +#include "PSK_Reporter.hpp" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) +#include +#endif +#include + +#include "Configuration.hpp" +#include "pimpl_impl.hpp" + + +#include "moc_PSK_Reporter.cpp" + +namespace +{ + constexpr QLatin1String HOST {"report.pskreporter.info"}; + // constexpr QLatin1String HOST {"127.0.0.1"}; + // constexpr QLatin1String HOST {"192.168.1.195"}; + constexpr quint16 SERVICE_PORT {4739}; + // constexpr quint16 SERVICE_PORT {14739}; + constexpr int MIN_SEND_INTERVAL {60}; // in seconds + constexpr int FLUSH_INTERVAL {5}; // in send intervals + constexpr bool ALIGNMENT_PADDING {true}; + constexpr int MIN_PAYLOAD_LENGTH {508}; + constexpr int MAX_PAYLOAD_LENGTH {1400}; +} + +class PSK_Reporter::impl final + : public QObject +{ + Q_OBJECT + +public: + impl (PSK_Reporter * self, Configuration const * config, QString const& program_info) + : self_ {self} + , config_ {config} + , sequence_number_ {0u} + , send_descriptors_ {0} + , send_receiver_data_ {0} + , flush_counter_ {0u} + , prog_id_ {program_info} + { +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + observation_id_ = qrand(); +#else + observation_id_ = QRandomGenerator::global ()->generate (); +#endif + + // This timer sets the interval to check for spots to send. + connect (&report_timer_, &QTimer::timeout, [this] () {send_report ();}); + report_timer_.start (MIN_SEND_INTERVAL * 1000); + + // This timer repeats the sending of IPFIX templates and receiver + // information if we are using UDP, in case server has been + // restarted ans lost cached information. + connect (&descriptor_timer_, &QTimer::timeout, [this] () { + if (socket_ + && QAbstractSocket::UdpSocket == socket_->socketType ()) + { + // send templates again + send_descriptors_ = 3; // three times + // send receiver data set again + send_receiver_data_ = 3; // three times + } + }); + descriptor_timer_.start (1 * 60 * 60 * 1000); // hourly + } + + void check_connection () + { + if (!socket_ + || QAbstractSocket::UnconnectedState == socket_->state () + || (socket_->socketType () != config_->psk_reporter_tcpip () ? QAbstractSocket::TcpSocket : QAbstractSocket::UdpSocket)) + { + // we need to create the appropriate socket + if (socket_ + && QAbstractSocket::UnconnectedState != socket_->state () + && QAbstractSocket::ClosingState != socket_->state ()) + { + // handle re-opening asynchronously + auto connection = QSharedPointer::create (); + *connection = connect (socket_.get (), &QAbstractSocket::disconnected, [this, connection] () { + qDebug () << "PSK_Reporter::impl::check_connection: disconnected, socket state:" << socket_->state (); + disconnect (*connection); + check_connection (); + }); + // close gracefully + socket_->close (); + } + else + { + reconnect (); + } + } + } + + void handle_socket_error (QAbstractSocket::SocketError e) + { + switch (e) + { + case QAbstractSocket::RemoteHostClosedError: + socket_->disconnectFromHost (); + break; + + case QAbstractSocket::TemporaryError: + break; + + default: + spots_.clear (); + qDebug () << "PSK_Reporter::impl::handle_socket_error:" << socket_->errorString (); + Q_EMIT self_->errorOccurred (socket_->errorString ()); + break; + } + } + + void reconnect () + { + // Using deleteLater for the deleter as we may eventually + // be called from the disconnected handler above. + if (config_->psk_reporter_tcpip ()) + { + socket_.reset (new QTcpSocket, &QObject::deleteLater); + send_descriptors_ = 1; + send_receiver_data_ = 1; + } + else + { + socket_.reset (new QUdpSocket, &QObject::deleteLater); + send_descriptors_ = 3; + send_receiver_data_ = 3; + } + +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + connect (socket_.get (), &QAbstractSocket::errorOccurred, this, &PSK_Reporter::impl::handle_socket_error); +#else + connect (socket_.get (), QOverload::of (&QAbstractSocket::error), this, &PSK_Reporter::impl::handle_socket_error); +#endif + + // use this for pseudo connection with UDP, allows us to use + // QIODevice::write() instead of QUDPSocket::writeDatagram() + socket_->connectToHost (HOST, SERVICE_PORT, QAbstractSocket::WriteOnly); + } + + void send_report (bool send_residue = false); + void build_preamble (QDataStream&); + + bool flushing () + { + return FLUSH_INTERVAL && !(++flush_counter_ % FLUSH_INTERVAL); + } + + PSK_Reporter * self_; + Configuration const * config_; + QSharedPointer socket_; + int dns_lookup_id_; + QByteArray payload_; + quint32 sequence_number_; + int send_descriptors_; + + // Currently PSK Reporter requires that a receiver data set is sent + // in every data flow. This memeber variable can be used to only + // send that information at session start (3 times for UDP), when it + // changes (3 times for UDP), or once per hour (3 times) if using + // UDP. Uncomment the relevant code to enable that fuctionality. + int send_receiver_data_; + + unsigned flush_counter_; + quint32 observation_id_; + QString rx_call_; + QString rx_grid_; + QString rx_ant_; + QString prog_id_; + QByteArray tx_data_; + QByteArray tx_residue_; + struct Spot + { + bool operator == (Spot const& rhs) + { + return + call_ == rhs.call_ + && grid_ == rhs.grid_ + && mode_ == rhs.mode_ + && std::abs (Radio::FrequencyDelta (freq_ - rhs.freq_)) < 50; + } + + QString call_; + QString grid_; + int snr_; + Radio::Frequency freq_; + QString mode_; + QDateTime time_; + }; + QQueue spots_; + QTimer report_timer_; + QTimer descriptor_timer_; +}; + +#include "PSK_Reporter.moc" + +namespace +{ + void writeUtfString (QDataStream& out, QString const& s) + { + auto const& utf = s.toUtf8 ().left (254); + out << quint8 (utf.size ()); + out.writeRawData (utf, utf.size ()); + } + + constexpr + int num_pad_bytes (int len) + { + return ALIGNMENT_PADDING ? (4 - len % 4) % 4 : 0; + } + + void set_length (QDataStream& out, QByteArray& b) + { + // pad with nulls modulo 4 + auto pad_len = num_pad_bytes (b.size ()); + out.writeRawData (QByteArray {pad_len, '\0'}.constData (), pad_len); + auto pos = out.device ()->pos (); + out.device ()->seek (sizeof (quint16)); + // insert length + out << static_cast (b.size ()); + out.device ()->seek (pos); + } +} + +void PSK_Reporter::impl::build_preamble (QDataStream& message) +{ + // Message Header + message + << quint16 (10u) // Version Number + << quint16 (0u) // Length (place-holder filled in later) + << quint32 (0u) // Export Time (place-holder filled in later) + << ++sequence_number_ // Sequence Number + << observation_id_; // Observation Domain ID + + qDebug () << "PSK_Reporter::impl::build_preamble: send_descriptors_:" << send_descriptors_; + if (send_descriptors_) + { + --send_descriptors_; + { + // Sender Information descriptor + QByteArray descriptor; + QDataStream out {&descriptor, QIODevice::WriteOnly}; + out + << quint16 (2u) // Template Set ID + << quint16 (0u) // Length (place-holder) + << quint16 (0x50e3) // Link ID + << quint16 (7u) // Field Count + << quint16 (0x8000 + 1u) // Option 1 Information Element ID (senderCallsign) + << quint16 (0xffff) // Option 1 Field Length (variable) + << quint32 (30351u) // Option 1 Enterprise Number + << quint16 (0x8000 + 5u) // Option 2 Information Element ID (frequency) + << quint16 (4u) // Option 2 Field Length + << quint32 (30351u) // Option 2 Enterprise Number + << quint16 (0x8000 + 6u) // Option 3 Information Element ID (sNR) + << quint16 (1u) // Option 3 Field Length + << quint32 (30351u) // Option 3 Enterprise Number + << quint16 (0x8000 + 10u) // Option 4 Information Element ID (mode) + << quint16 (0xffff) // Option 4 Field Length (variable) + << quint32 (30351u) // Option 4 Enterprise Number + << quint16 (0x8000 + 3u) // Option 5 Information Element ID (senderLocator) + << quint16 (0xffff) // Option 5 Field Length (variable) + << quint32 (30351u) // Option 5 Enterprise Number + << quint16 (0x8000 + 11u) // Option 6 Information Element ID (informationSource) + << quint16 (1u) // Option 6 Field Length + << quint32 (30351u) // Option 6 Enterprise Number + << quint16 (150u) // Option 7 Information Element ID (dateTimeSeconds) + << quint16 (4u); // Option 7 Field Length + // insert Length and move to payload + set_length (out, descriptor); + message.writeRawData (descriptor.constData (), descriptor.size ()); + } + { + // Receiver Information descriptor + QByteArray descriptor; + QDataStream out {&descriptor, QIODevice::WriteOnly}; + out + << quint16 (3u) // Options Template Set ID + << quint16 (0u) // Length (place-holder) + << quint16 (0x50e2) // Link ID + << quint16 (4u) // Field Count + << quint16 (0u) // Scope Field Count + << quint16 (0x8000 + 2u) // Option 1 Information Element ID (receiverCallsign) + << quint16 (0xffff) // Option 1 Field Length (variable) + << quint32 (30351u) // Option 1 Enterprise Number + << quint16 (0x8000 + 4u) // Option 2 Information Element ID (receiverLocator) + << quint16 (0xffff) // Option 2 Field Length (variable) + << quint32 (30351u) // Option 2 Enterprise Number + << quint16 (0x8000 + 8u) // Option 3 Information Element ID (decodingSoftware) + << quint16 (0xffff) // Option 3 Field Length (variable) + << quint32 (30351u) // Option 3 Enterprise Number + << quint16 (0x8000 + 9u) // Option 4 Information Element ID (antennaInformation) + << quint16 (0xffff) // Option 4 Field Length (variable) + << quint32 (30351u); // Option 4 Enterprise Number + // insert Length + set_length (out, descriptor); + message.writeRawData (descriptor.constData (), descriptor.size ()); + } + } + + qDebug () << "PSK_Reporter::impl::build_preamble: send_receiver_data_:" << send_receiver_data_; + // if (send_receiver_data_) + { + // --send_receiver_data_; + + // Receiver information + QByteArray data; + QDataStream out {&data, QIODevice::WriteOnly}; + + // Set Header + out + << quint16 (0x50e2) // Template ID + << quint16 (0u); // Length (place-holder) + + // Set data + writeUtfString (out, rx_call_); + writeUtfString (out, rx_grid_); + writeUtfString (out, prog_id_); + writeUtfString (out, rx_ant_); + + // insert Length and move to payload + set_length (out, data); + message.writeRawData (data.constData (), data.size ()); + } +} + +void PSK_Reporter::impl::send_report (bool send_residue) +{ + check_connection (); + qDebug () << "PSK_Reporter::impl::send_report: send_residue:" << send_residue; + if (QAbstractSocket::ConnectedState != socket_->state ()) return; + + QDataStream message {&payload_, QIODevice::WriteOnly | QIODevice::Append}; + QDataStream tx_out {&tx_data_, QIODevice::WriteOnly | QIODevice::Append}; + + if (!payload_.size ()) + { + qDebug () << "PSK_Reporter::impl::send_report: building header"; + // Build header, optional descriptors, and receiver information + build_preamble (message); + } + + auto flush = flushing () || send_residue; + qDebug () << "PSK_Reporter::impl::send_report: flush:" << flush; + while (spots_.size () || (flush && (tx_data_.size () || tx_residue_.size ()))) + { + if (!payload_.size ()) + { + // Build header, optional descriptors, and receiver information + build_preamble (message); + } + + if (!tx_data_.size ()) + { + // Set Header + tx_out + << quint16 (0x50e3) // Template ID + << quint16 (0u); // Length (place-holder) + qDebug () << "PSK_Reporter::impl::send_report: set data set header"; + } + + // insert any residue + if (tx_residue_.size ()) + { + tx_out.writeRawData (tx_residue_.constData (), tx_residue_.size ()); + tx_residue_.clear (); + qDebug () << "PSK_Reporter::impl::send_report: inserted data residue"; + } + + while (spots_.size () || (flush && tx_data_.size ())) + { + auto tx_data_size = tx_data_.size (); + if (spots_.size ()) + { + auto const& spot = spots_.dequeue (); + qDebug () << "PSK_Reporter::impl::send_report: processing spotted call:" << spot.call_; + + // Sender information + writeUtfString (tx_out, spot.call_); + tx_out + << static_cast (spot.freq_) + << static_cast (spot.snr_); + writeUtfString (tx_out, spot.mode_); + writeUtfString (tx_out, spot.grid_); + tx_out + << quint8 (1u) // REPORTER_SOURCE_AUTOMATIC + << static_cast (spot.time_.toSecsSinceEpoch ()); + } + + auto len = payload_.size () + tx_data_.size (); + len += num_pad_bytes (tx_data_.size ()); + len += num_pad_bytes (len); + if (len > MAX_PAYLOAD_LENGTH // our upper datagram size limit + || (!spots_.size () && len > MIN_PAYLOAD_LENGTH) // spots drained and above lower datagram size limit + || (flush && !spots_.size () && tx_data_.size ())) // send what we have + { + if (len <= MAX_PAYLOAD_LENGTH) + { + tx_data_size = tx_data_.size (); + qDebug () << "PSK_Reporter::impl::send_report: sending short payload:" << tx_data_size; + } + QByteArray tx {tx_data_.left (tx_data_size)}; + QDataStream out {&tx, QIODevice::WriteOnly | QIODevice::Append}; + // insert Length + set_length (out, tx); + message.writeRawData (tx.constData (), tx.size ()); + + // insert Length and Export Time + set_length (message, payload_); + message.device ()->seek (2 * sizeof (quint16)); + message << static_cast (QDateTime::currentDateTime ().toSecsSinceEpoch ()); + + // Send data to PSK Reporter site + socket_->write (payload_); // TODO: handle errors + qDebug () << "PSK_Reporter::impl::send_report: sent payload:" << payload_.size () << "observation id:" << observation_id_; + message.device ()->seek (0u); + payload_.clear (); // Fresh message + // Save unsent spots + tx_residue_ = tx_data_.right (tx_data_.size () - tx_data_size); + tx_out.device ()->seek (0u); + tx_data_.clear (); + qDebug () << "PSK_Reporter::impl::send_report: payload sent residue length:" << tx_residue_.size (); + break; + } + } + } +} + +PSK_Reporter::PSK_Reporter (Configuration const * config, QString const& program_info) + : m_ {this, config, program_info} +{ +} + +PSK_Reporter::~PSK_Reporter () +{ + // m_->send_report (true); // send any pending spots +} + +void PSK_Reporter::reconnect () +{ + m_->reconnect (); +} + +void PSK_Reporter::setLocalStation (QString const& call, QString const& gridSquare, QString const& antenna) +{ + if (call != m_->rx_call_ || gridSquare != m_->rx_grid_ || antenna != m_->rx_ant_) + { + m_->send_receiver_data_ = m_->socket_ + && QAbstractSocket::UdpSocket == m_->socket_->socketType () ? 3 : 1; + m_->rx_call_ = call; + m_->rx_grid_ = gridSquare; + m_->rx_ant_ = antenna; + } +} + +bool PSK_Reporter::addRemoteStation (QString const& call, QString const& grid, Radio::Frequency freq + , QString const& mode, int snr) +{ + if (m_->socket_ && m_->socket_->isValid ()) + { + if (QAbstractSocket::UnconnectedState == m_->socket_->state ()) + { + reconnect (); + } + m_->spots_.enqueue ({call, grid, snr, freq, mode, QDateTime::currentDateTimeUtc ()}); + return true; + } + return false; +} + +void PSK_Reporter::sendReport () +{ + m_->send_report (true); +} diff --git a/Network/PSK_Reporter.hpp b/Network/PSK_Reporter.hpp new file mode 100644 index 000000000..5a8534521 --- /dev/null +++ b/Network/PSK_Reporter.hpp @@ -0,0 +1,41 @@ +#ifndef PSK_REPORTER_HPP_ +#define PSK_REPORTER_HPP_ + +#include +#include "Radio.hpp" +#include "pimpl_h.hpp" + +class QString; +class Configuration; + +class PSK_Reporter final + : public QObject +{ + Q_OBJECT + +public: + explicit PSK_Reporter (Configuration const *, QString const& program_info); + ~PSK_Reporter (); + + void reconnect (); + + void setLocalStation (QString const& call, QString const& grid, QString const& antenna); + + // + // Returns false if PSK Reporter connection is not available + // + bool addRemoteStation (QString const& call, QString const& grid, Radio::Frequency freq, QString const& mode, int snr); + + // + // Flush any pending spots to PSK Reporter + // + void sendReport (); + + Q_SIGNAL void errorOccurred (QString const& reason); + +private: + class impl; + pimpl m_; +}; + +#endif diff --git a/Network/psk_reporter.cpp b/Network/psk_reporter.cpp deleted file mode 100644 index f84da5ecd..000000000 --- a/Network/psk_reporter.cpp +++ /dev/null @@ -1,140 +0,0 @@ -// KISS Interface for posting spots to PSK Reporter web site -// Implemented by Edson Pereira PY2SDR -// -// Reports will be sent in batch mode every 5 minutes. - -#include "psk_reporter.h" - -#include -#include -#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) -#include -#endif - -#include "Network/MessageClient.hpp" - -#include "moc_psk_reporter.cpp" - -namespace -{ - int constexpr MAX_PAYLOAD_LENGTH {1400}; -} - -PSK_Reporter::PSK_Reporter(MessageClient * message_client, QObject *parent) : - QObject {parent}, - m_messageClient {message_client}, - reportTimer {new QTimer {this}}, - m_sequenceNumber {0} -{ - m_header_h = "000Allllttttttttssssssssiiiiiiii"; - - // We use 50E2 and 50E3 for link Id - m_rxInfoDescriptor_h = "0003002C50E200040000" - "8002FFFF0000768F" // 2. Rx Call - "8004FFFF0000768F" // 4. Rx Grid - "8008FFFF0000768F" // 8. Rx Soft - "8009FFFF0000768F" // 9. Rx Antenna - "0000"; - - m_txInfoDescriptor_h = "0002003C50E30007" - "8001FFFF0000768F" // 1. Tx Call - "800500040000768F" // 5. Tx Freq - "800600010000768F" // 6. Tx snr - "800AFFFF0000768F" // 10. Tx Mode - "8003FFFF0000768F" // 3. Tx Grid - "800B00010000768F" // 11. Tx info src - "00960004"; // Report time - - -#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) - m_randomId_h = QString("%1").arg(qrand(),8,16,QChar('0')); -#else - m_randomId_h = QString("%1").arg(QRandomGenerator::global ()->generate (), 8, 16, QChar('0')); -#endif - - QHostInfo::lookupHost("report.pskreporter.info", this, SLOT(dnsLookupResult(QHostInfo))); - - connect(reportTimer, SIGNAL(timeout()), this, SLOT(sendReport())); - reportTimer->start(5*60*1000); // 5 minutes; -} - -void PSK_Reporter::setLocalStation(QString call, QString gridSquare, QString antenna, QString programInfo) -{ - m_rxCall = call; - m_rxGrid = gridSquare; - m_rxAnt = antenna; - m_progId = programInfo; -} - -void PSK_Reporter::addRemoteStation(QString call, QString grid, QString freq, QString mode, QString snr, QString time ) -{ - QHash spot; - spot["call"] = call; - spot["grid"] = grid; - spot["snr"] = snr; - spot["freq"] = freq; - spot["mode"] = mode; - spot["time"] = time; - m_spotQueue.enqueue(spot); -} - -void PSK_Reporter::sendReport() -{ - while (!m_spotQueue.isEmpty()) { - QString report_h; - - // Header - QString header_h = m_header_h; - header_h.replace("tttttttt", QString("%1").arg(QDateTime::currentDateTime().toTime_t(),8,16,QChar('0'))); - header_h.replace("ssssssss", QString("%1").arg(++m_sequenceNumber,8,16,QChar('0'))); - header_h.replace("iiiiiiii", m_randomId_h); - - // Receiver information - QString rxInfoData_h = "50E2llll"; - rxInfoData_h += QString("%1").arg(m_rxCall.length(),2,16,QChar('0')) + m_rxCall.toUtf8().toHex(); - rxInfoData_h += QString("%1").arg(m_rxGrid.length(),2,16,QChar('0')) + m_rxGrid.toUtf8().toHex(); - rxInfoData_h += QString("%1").arg(m_progId.length(),2,16,QChar('0')) + m_progId.toUtf8().toHex(); - rxInfoData_h += QString("%1").arg(m_rxAnt.length(),2,16,QChar('0')) + m_rxAnt.toUtf8().toHex(); - rxInfoData_h += "0000"; - rxInfoData_h.replace("50E2llll", "50E2" + QString("%1").arg(rxInfoData_h.length()/2,4,16,QChar('0'))); - - // Sender information - QString txInfoData_h = "50E3llll"; - while (!m_spotQueue.isEmpty() - && (header_h.size () + m_rxInfoDescriptor_h.size () + m_txInfoDescriptor_h.size () + rxInfoData_h.size () + txInfoData_h.size ()) / 2 < MAX_PAYLOAD_LENGTH) { - QHash spot = m_spotQueue.dequeue(); - txInfoData_h += QString("%1").arg(spot["call"].length(),2,16,QChar('0')) + spot["call"].toUtf8().toHex(); - txInfoData_h += QString("%1").arg(spot["freq"].toLongLong(),8,16,QChar('0')); - txInfoData_h += QString("%1").arg(spot["snr"].toInt(),8,16,QChar('0')).right(2); - txInfoData_h += QString("%1").arg(spot["mode"].length(),2,16,QChar('0')) + spot["mode"].toUtf8().toHex(); - txInfoData_h += QString("%1").arg(spot["grid"].length(),2,16,QChar('0')) + spot["grid"].toUtf8().toHex(); - txInfoData_h += QString("%1").arg(1,2,16,QChar('0')); // REPORTER_SOURCE_AUTOMATIC - txInfoData_h += QString("%1").arg(spot["time"].toInt(),8,16,QChar('0')); - } - txInfoData_h += "0000"; - txInfoData_h.replace("50E3llll", "50E3" + QString("%1").arg(txInfoData_h.length()/2,4,16,QChar('0'))); - report_h = header_h + m_rxInfoDescriptor_h + m_txInfoDescriptor_h + rxInfoData_h + txInfoData_h; - //qDebug() << "Sending Report TX: "; - - report_h.replace("000Allll", "000A" + QString("%1").arg(report_h.length()/2,4,16,QChar('0'))); - QByteArray report = QByteArray::fromHex(report_h.toUtf8()); - - // Send data to PSK Reporter site - if (!m_pskReporterAddress.isNull()) { - m_messageClient->send_raw_datagram (report, m_pskReporterAddress, 4739); - } - } -} - -void PSK_Reporter::dnsLookupResult(QHostInfo info) -{ - if (!info.addresses().isEmpty()) { - m_pskReporterAddress = info.addresses().at(0); - // qDebug() << "PSK Reporter IP: " << m_pskReporterAddress; - - // deal with miss-configured settings that attempt to set a - // Pskreporter Internet address for the WSJT-X UDP protocol - // server address - m_messageClient->add_blocked_destination (m_pskReporterAddress); - } -} diff --git a/Network/psk_reporter.h b/Network/psk_reporter.h deleted file mode 100644 index 16afcf437..000000000 --- a/Network/psk_reporter.h +++ /dev/null @@ -1,54 +0,0 @@ -// -*- Mode: C++ -*- -#ifndef PSK_REPORTER_H -#define PSK_REPORTER_H - -#include -#include -#include -#include -#include - -class MessageClient; -class QTimer; -class QHostInfo; - -class PSK_Reporter : public QObject -{ - Q_OBJECT -public: - explicit PSK_Reporter(MessageClient *, QObject *parent = nullptr); - void setLocalStation(QString call, QString grid, QString antenna, QString programInfo); - void addRemoteStation(QString call, QString grid, QString freq, QString mode, QString snr, QString time); - -signals: - -public slots: - void sendReport(); - -private slots: - void dnsLookupResult(QHostInfo info); - -private: - QString m_header_h; - QString m_rxInfoDescriptor_h; - QString m_txInfoDescriptor_h; - QString m_randomId_h; - QString m_linkId_h; - - QString m_rxCall; - QString m_rxGrid; - QString m_rxAnt; - QString m_progId; - - QHostAddress m_pskReporterAddress; - - QQueue< QHash > m_spotQueue; - - MessageClient * m_messageClient; - - QTimer *reportTimer; - - int m_sequenceNumber; -}; - -#endif // PSK_REPORTER_H diff --git a/main.cpp b/main.cpp index 4943f2f02..3c743bfa2 100644 --- a/main.cpp +++ b/main.cpp @@ -82,12 +82,12 @@ namespace } catch (std::exception const& e) { - MessageBox::critical_message (nullptr, translate ("main", "Fatal error"), e.what ()); + MessageBox::critical_message (nullptr, "Fatal error", e.what ()); throw; } catch (...) { - MessageBox::critical_message (nullptr, translate ("main", "Unexpected fatal error")); + MessageBox::critical_message (nullptr, "Unexpected fatal error"); throw; } } @@ -407,12 +407,12 @@ int main(int argc, char *argv[]) } catch (std::exception const& e) { - MessageBox::critical_message (nullptr, QApplication::translate ("main", "Fatal error"), e.what ()); + MessageBox::critical_message (nullptr, "Fatal error", e.what ()); std::cerr << "Error: " << e.what () << '\n'; } catch (...) { - MessageBox::critical_message (nullptr, QApplication::translate ("main", "Unexpected fatal error")); + MessageBox::critical_message (nullptr, "Unexpected fatal error"); std::cerr << "Unexpected fatal error\n"; throw; // hoping the runtime might tell us more about the exception } diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 0ed391faa..3c9c56b59 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -412,7 +412,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, version (), revision (), m_config.udp_server_name (), m_config.udp_server_port (), this}}, - psk_Reporter {new PSK_Reporter {m_messageClient, this}}, + m_psk_Reporter {&m_config, QString {"WSJT-X v" + version () + " " + m_revision}.simplified ()}, m_manual {&m_network_manager}, m_block_udp_status_updates {false} { @@ -3481,8 +3481,10 @@ void MainWindow::pskPost (DecodedText const& decodedtext) pskSetLocal (); if(grid.contains (grid_regexp)) { // qDebug() << "To PSKreporter:" << deCall << grid << frequency << msgmode << snr; - psk_Reporter->addRemoteStation(deCall,grid,QString::number(frequency),msgmode, - QString::number(snr),QString::number(QDateTime::currentDateTimeUtc ().toTime_t())); + if (!m_psk_Reporter.addRemoteStation (deCall, grid, frequency, msgmode, snr)) + { + showStatusMessage (tr ("Spotting to PSK Reporter unavailable")); + } } } @@ -6635,7 +6637,7 @@ void MainWindow::band_changed (Frequency f) } m_lastBand.clear (); m_bandEdited = false; - psk_Reporter->sendReport(); // Upload any queued spots before changing band + m_psk_Reporter.sendReport(); // Upload any queued spots before changing band if (!m_transmitting) monitor (true); if ("FreqCal" == m_mode) { @@ -7314,9 +7316,7 @@ void MainWindow::pskSetLocal () , StationList::description_column).data ().toString (); } // qDebug() << "To PSKreporter: local station details"; - psk_Reporter->setLocalStation(m_config.my_callsign (), m_config.my_grid (), - antenna_description, QString {"WSJT-X v" + version() + " " + - m_revision}.simplified ()); + m_psk_Reporter.setLocalStation(m_config.my_callsign (), m_config.my_grid (), antenna_description); } void MainWindow::transmitDisplay (bool transmitting) diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 6da871b37..d00b9d9c1 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -33,7 +34,7 @@ #include "WSPR/WSPRBandHopping.hpp" #include "Transceiver/Transceiver.hpp" #include "DisplayManual.hpp" -#include "Network/psk_reporter.h" +#include "Network/PSK_Reporter.hpp" #include "logbook/logbook.h" #include "astro.h" #include "MessageBox.hpp" @@ -683,7 +684,7 @@ private: QProgressDialog m_optimizingProgress; QTimer m_heartbeat; MessageClient * m_messageClient; - PSK_Reporter *psk_Reporter; + PSK_Reporter m_psk_Reporter; DisplayManual m_manual; QHash m_pwrBandTxMemory; // Remembers power level by band QHash m_pwrBandTuneMemory; // Remembers power level by band for tuning diff --git a/wsjtx.pro b/wsjtx.pro index 3248fefd7..0bbe8b565 100644 --- a/wsjtx.pro +++ b/wsjtx.pro @@ -60,7 +60,7 @@ SOURCES += \ PollingTransceiver.cpp EmulateSplitTransceiver.cpp \ HRDTransceiver.cpp DXLabSuiteCommanderTransceiver.cpp \ HamlibTransceiver.cpp FrequencyLineEdit.cpp \ - Configuration.cpp psk_reporter.cpp AudioDevice.cpp \ + Configuration.cpp PSK_Reporter.cpp AudioDevice.cpp \ Modulator.cpp Detector.cpp \ getfile.cpp soundout.cpp soundin.cpp \ WFPalette.cpp \ @@ -77,7 +77,7 @@ HEADERS += qt_helpers.hpp qt_db_helpers.hpp \ soundin.h soundout.h \ WFPalette.hpp getfile.h decodedtext.h \ commons.h sleep.h \ - AudioDevice.hpp Detector.hpp Modulator.hpp psk_reporter.h \ + AudioDevice.hpp Detector.hpp Modulator.hpp PSK_Reporter.hpp \ Transceiver.hpp TransceiverBase.hpp TransceiverFactory.hpp PollingTransceiver.hpp \ EmulateSplitTransceiver.hpp DXLabSuiteCommanderTransceiver.hpp HamlibTransceiver.hpp \ Configuration.hpp wsprnet.h \ From af894c6039241c5064ff42a7f3900a5b77d84051 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 21 Jun 2020 02:15:31 +0100 Subject: [PATCH 119/520] Rename files to match class name Avoiding case insensitive file system issues. --- CMakeLists.txt | 2 +- Network/{PSK_Reporter.cpp => PSKReporter.cpp} | 60 +++++++++---------- Network/{PSK_Reporter.hpp => PSKReporter.hpp} | 6 +- widgets/mainwindow.h | 4 +- 4 files changed, 36 insertions(+), 36 deletions(-) rename Network/{PSK_Reporter.cpp => PSKReporter.cpp} (88%) rename Network/{PSK_Reporter.hpp => PSKReporter.hpp} (84%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8690c562f..18d632ebd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -302,7 +302,7 @@ set (jt9_FSRCS set (wsjtx_CXXSRCS logbook/logbook.cpp - Network/PSK_Reporter.cpp + Network/PSKReporter.cpp Modulator/Modulator.cpp Detector/Detector.cpp widgets/logqso.cpp diff --git a/Network/PSK_Reporter.cpp b/Network/PSKReporter.cpp similarity index 88% rename from Network/PSK_Reporter.cpp rename to Network/PSKReporter.cpp index ae3a41043..b981188b7 100644 --- a/Network/PSK_Reporter.cpp +++ b/Network/PSKReporter.cpp @@ -1,11 +1,11 @@ +#include "PSKReporter.hpp" + // Interface for posting spots to PSK Reporter web site // Implemented by Edson Pereira PY2SDR // Updated by Bill Somerville, G4WJS // // Reports will be sent in batch mode every 5 minutes. -#include "PSK_Reporter.hpp" - #include #include #include @@ -28,7 +28,7 @@ #include "pimpl_impl.hpp" -#include "moc_PSK_Reporter.cpp" +#include "moc_PSKReporter.cpp" namespace { @@ -44,13 +44,13 @@ namespace constexpr int MAX_PAYLOAD_LENGTH {1400}; } -class PSK_Reporter::impl final +class PSKReporter::impl final : public QObject { Q_OBJECT public: - impl (PSK_Reporter * self, Configuration const * config, QString const& program_info) + impl (PSKReporter * self, Configuration const * config, QString const& program_info) : self_ {self} , config_ {config} , sequence_number_ {0u} @@ -99,7 +99,7 @@ public: // handle re-opening asynchronously auto connection = QSharedPointer::create (); *connection = connect (socket_.get (), &QAbstractSocket::disconnected, [this, connection] () { - qDebug () << "PSK_Reporter::impl::check_connection: disconnected, socket state:" << socket_->state (); + qDebug () << "PSKReporter::impl::check_connection: disconnected, socket state:" << socket_->state (); disconnect (*connection); check_connection (); }); @@ -126,7 +126,7 @@ public: default: spots_.clear (); - qDebug () << "PSK_Reporter::impl::handle_socket_error:" << socket_->errorString (); + qDebug () << "PSKReporter::impl::handle_socket_error:" << socket_->errorString (); Q_EMIT self_->errorOccurred (socket_->errorString ()); break; } @@ -150,9 +150,9 @@ public: } #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) - connect (socket_.get (), &QAbstractSocket::errorOccurred, this, &PSK_Reporter::impl::handle_socket_error); + connect (socket_.get (), &QAbstractSocket::errorOccurred, this, &PSKReporter::impl::handle_socket_error); #else - connect (socket_.get (), QOverload::of (&QAbstractSocket::error), this, &PSK_Reporter::impl::handle_socket_error); + connect (socket_.get (), QOverload::of (&QAbstractSocket::error), this, &PSKReporter::impl::handle_socket_error); #endif // use this for pseudo connection with UDP, allows us to use @@ -168,7 +168,7 @@ public: return FLUSH_INTERVAL && !(++flush_counter_ % FLUSH_INTERVAL); } - PSK_Reporter * self_; + PSKReporter * self_; Configuration const * config_; QSharedPointer socket_; int dns_lookup_id_; @@ -214,7 +214,7 @@ public: QTimer descriptor_timer_; }; -#include "PSK_Reporter.moc" +#include "PSKReporter.moc" namespace { @@ -244,7 +244,7 @@ namespace } } -void PSK_Reporter::impl::build_preamble (QDataStream& message) +void PSKReporter::impl::build_preamble (QDataStream& message) { // Message Header message @@ -254,7 +254,7 @@ void PSK_Reporter::impl::build_preamble (QDataStream& message) << ++sequence_number_ // Sequence Number << observation_id_; // Observation Domain ID - qDebug () << "PSK_Reporter::impl::build_preamble: send_descriptors_:" << send_descriptors_; + qDebug () << "PSKReporter::impl::build_preamble: send_descriptors_:" << send_descriptors_; if (send_descriptors_) { --send_descriptors_; @@ -319,7 +319,7 @@ void PSK_Reporter::impl::build_preamble (QDataStream& message) } } - qDebug () << "PSK_Reporter::impl::build_preamble: send_receiver_data_:" << send_receiver_data_; + qDebug () << "PSKReporter::impl::build_preamble: send_receiver_data_:" << send_receiver_data_; // if (send_receiver_data_) { // --send_receiver_data_; @@ -345,10 +345,10 @@ void PSK_Reporter::impl::build_preamble (QDataStream& message) } } -void PSK_Reporter::impl::send_report (bool send_residue) +void PSKReporter::impl::send_report (bool send_residue) { check_connection (); - qDebug () << "PSK_Reporter::impl::send_report: send_residue:" << send_residue; + qDebug () << "PSKReporter::impl::send_report: send_residue:" << send_residue; if (QAbstractSocket::ConnectedState != socket_->state ()) return; QDataStream message {&payload_, QIODevice::WriteOnly | QIODevice::Append}; @@ -356,13 +356,13 @@ void PSK_Reporter::impl::send_report (bool send_residue) if (!payload_.size ()) { - qDebug () << "PSK_Reporter::impl::send_report: building header"; + qDebug () << "PSKReporter::impl::send_report: building header"; // Build header, optional descriptors, and receiver information build_preamble (message); } auto flush = flushing () || send_residue; - qDebug () << "PSK_Reporter::impl::send_report: flush:" << flush; + qDebug () << "PSKReporter::impl::send_report: flush:" << flush; while (spots_.size () || (flush && (tx_data_.size () || tx_residue_.size ()))) { if (!payload_.size ()) @@ -377,7 +377,7 @@ void PSK_Reporter::impl::send_report (bool send_residue) tx_out << quint16 (0x50e3) // Template ID << quint16 (0u); // Length (place-holder) - qDebug () << "PSK_Reporter::impl::send_report: set data set header"; + qDebug () << "PSKReporter::impl::send_report: set data set header"; } // insert any residue @@ -385,7 +385,7 @@ void PSK_Reporter::impl::send_report (bool send_residue) { tx_out.writeRawData (tx_residue_.constData (), tx_residue_.size ()); tx_residue_.clear (); - qDebug () << "PSK_Reporter::impl::send_report: inserted data residue"; + qDebug () << "PSKReporter::impl::send_report: inserted data residue"; } while (spots_.size () || (flush && tx_data_.size ())) @@ -394,7 +394,7 @@ void PSK_Reporter::impl::send_report (bool send_residue) if (spots_.size ()) { auto const& spot = spots_.dequeue (); - qDebug () << "PSK_Reporter::impl::send_report: processing spotted call:" << spot.call_; + qDebug () << "PSKReporter::impl::send_report: processing spotted call:" << spot.call_; // Sender information writeUtfString (tx_out, spot.call_); @@ -418,7 +418,7 @@ void PSK_Reporter::impl::send_report (bool send_residue) if (len <= MAX_PAYLOAD_LENGTH) { tx_data_size = tx_data_.size (); - qDebug () << "PSK_Reporter::impl::send_report: sending short payload:" << tx_data_size; + qDebug () << "PSKReporter::impl::send_report: sending short payload:" << tx_data_size; } QByteArray tx {tx_data_.left (tx_data_size)}; QDataStream out {&tx, QIODevice::WriteOnly | QIODevice::Append}; @@ -433,36 +433,36 @@ void PSK_Reporter::impl::send_report (bool send_residue) // Send data to PSK Reporter site socket_->write (payload_); // TODO: handle errors - qDebug () << "PSK_Reporter::impl::send_report: sent payload:" << payload_.size () << "observation id:" << observation_id_; + qDebug () << "PSKReporter::impl::send_report: sent payload:" << payload_.size () << "observation id:" << observation_id_; message.device ()->seek (0u); payload_.clear (); // Fresh message // Save unsent spots tx_residue_ = tx_data_.right (tx_data_.size () - tx_data_size); tx_out.device ()->seek (0u); tx_data_.clear (); - qDebug () << "PSK_Reporter::impl::send_report: payload sent residue length:" << tx_residue_.size (); + qDebug () << "PSKReporter::impl::send_report: payload sent residue length:" << tx_residue_.size (); break; } } } } -PSK_Reporter::PSK_Reporter (Configuration const * config, QString const& program_info) +PSKReporter::PSKReporter (Configuration const * config, QString const& program_info) : m_ {this, config, program_info} { } -PSK_Reporter::~PSK_Reporter () +PSKReporter::~PSKReporter () { // m_->send_report (true); // send any pending spots } -void PSK_Reporter::reconnect () +void PSKReporter::reconnect () { m_->reconnect (); } -void PSK_Reporter::setLocalStation (QString const& call, QString const& gridSquare, QString const& antenna) +void PSKReporter::setLocalStation (QString const& call, QString const& gridSquare, QString const& antenna) { if (call != m_->rx_call_ || gridSquare != m_->rx_grid_ || antenna != m_->rx_ant_) { @@ -474,7 +474,7 @@ void PSK_Reporter::setLocalStation (QString const& call, QString const& gridSqua } } -bool PSK_Reporter::addRemoteStation (QString const& call, QString const& grid, Radio::Frequency freq +bool PSKReporter::addRemoteStation (QString const& call, QString const& grid, Radio::Frequency freq , QString const& mode, int snr) { if (m_->socket_ && m_->socket_->isValid ()) @@ -489,7 +489,7 @@ bool PSK_Reporter::addRemoteStation (QString const& call, QString const& grid, R return false; } -void PSK_Reporter::sendReport () +void PSKReporter::sendReport () { m_->send_report (true); } diff --git a/Network/PSK_Reporter.hpp b/Network/PSKReporter.hpp similarity index 84% rename from Network/PSK_Reporter.hpp rename to Network/PSKReporter.hpp index 5a8534521..3582b5850 100644 --- a/Network/PSK_Reporter.hpp +++ b/Network/PSKReporter.hpp @@ -8,14 +8,14 @@ class QString; class Configuration; -class PSK_Reporter final +class PSKReporter final : public QObject { Q_OBJECT public: - explicit PSK_Reporter (Configuration const *, QString const& program_info); - ~PSK_Reporter (); + explicit PSKReporter (Configuration const *, QString const& program_info); + ~PSKReporter (); void reconnect (); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index d00b9d9c1..f24b4f2af 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -34,7 +34,7 @@ #include "WSPR/WSPRBandHopping.hpp" #include "Transceiver/Transceiver.hpp" #include "DisplayManual.hpp" -#include "Network/PSK_Reporter.hpp" +#include "Network/PSKReporter.hpp" #include "logbook/logbook.h" #include "astro.h" #include "MessageBox.hpp" @@ -684,7 +684,7 @@ private: QProgressDialog m_optimizingProgress; QTimer m_heartbeat; MessageClient * m_messageClient; - PSK_Reporter m_psk_Reporter; + PSKReporter m_psk_Reporter; DisplayManual m_manual; QHash m_pwrBandTxMemory; // Remembers power level by band QHash m_pwrBandTuneMemory; // Remembers power level by band for tuning From f03f411733520a5ac43f235fe080781804dc6d2e Mon Sep 17 00:00:00 2001 From: K9AN Date: Sun, 21 Jun 2020 08:48:34 -0500 Subject: [PATCH 120/520] Changes to enable Fast and Normal decode settings. NB - max number of candidates has been increased to 20. --- lib/fst280/get_fst280_bitmetrics.f90 | 4 +-- lib/fst280_decode.f90 | 40 +++++++++++++++++----------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/lib/fst280/get_fst280_bitmetrics.f90 b/lib/fst280/get_fst280_bitmetrics.f90 index bba000d59..f9f5f1b7e 100644 --- a/lib/fst280/get_fst280_bitmetrics.f90 +++ b/lib/fst280/get_fst280_bitmetrics.f90 @@ -1,4 +1,4 @@ -subroutine get_fst280_bitmetrics(cd,nss,hmod,bitmetrics,badsync) +subroutine get_fst280_bitmetrics(cd,nss,hmod,nmax,bitmetrics,badsync) include 'fst280_params.f90' complex cd(0:NN*nss-1) @@ -78,7 +78,7 @@ subroutine get_fst280_bitmetrics(cd,nss,hmod,bitmetrics,badsync) endif bitmetrics=0.0 - do nseq=1,4 !Try coherent sequences of 1, 2, and 4 symbols + do nseq=1,nmax !Try coherent sequences of 1, 2, and 4 symbols if(nseq.eq.1) nsym=1 if(nseq.eq.2) nsym=2 if(nseq.eq.3) nsym=4 diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index a0631ae20..366e39706 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -100,10 +100,24 @@ contains allocate( cframe(0:164*nss-1) ) npts=nmax - fa=nfa - fb=nfb + fa=max(100,nfa) + fb=min(4800,nfb) -! The big fft is done once and is used for calculating the smoothed spectrum + if(ndeep.eq.3) then + ntmax=4 ! number of block sizes to try + jittermax=2 + norder=3 + elseif(ndeep.eq.2) then + ntmax=3 + jittermax=2 + norder=3 + elseif(ndeep.eq.1) then + ntmax=1 + jittermax=2 + norder=2 + endif + + ! The big fft is done once and is used for calculating the smoothed spectrum ! and also for downconverting/downsampling each candidate. r_data(1:nfft1)=iwave(1:nfft1) r_data(nfft1+1:nfft1+2)=0.0 @@ -113,7 +127,7 @@ contains ! Get first approximation of candidate frequencies call get_candidates_fst280(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & ncand,candidates) - + ndecodes=0 isbest1=0 isbest8=0 @@ -173,16 +187,12 @@ contains if(smax8/smax1 .lt. 0.65 ) then fc2=fc21 isbest=isbest1 - ntmax=4 if(hmod.gt.1) ntmax=1 - ntmin=1 njitter=2 else fc2=fc28 isbest=isbest8 - ntmax=4 if(hmod.gt.1) ntmax=1 - ntmin=1 njitter=2 endif fc_synced = fc0 + fc2 @@ -223,7 +233,7 @@ contains xdt=(isbest-nspsec)/fs2 call fst280_downsample(c_bigfft,nfft1,ndown,fc_synced,c2) - do ijitter=0,2 + do ijitter=0,jittermax if(ijitter.eq.0) ioffset=0 if(ijitter.eq.1) ioffset=1 if(ijitter.eq.2) ioffset=-1 @@ -233,7 +243,8 @@ contains s2=sum(cframe*conjg(cframe)) cframe=cframe/sqrt(s2) bitmetrics=0 - call get_fst280_bitmetrics(cframe,nss,hmod,bitmetrics,badsync) + call get_fst280_bitmetrics(cframe,nss,hmod,ntmax,bitmetrics,badsync) + if(badsync) cycle hbits=0 where(bitmetrics(:,1).ge.0) hbits=1 @@ -261,7 +272,7 @@ contains llrd=scalefac*llrd apmask=0 - do itry=ntmax,ntmin,-1 + do itry=1,ntmax if(itry.eq.1) llr=llra if(itry.eq.2) llr=llrb if(itry.eq.3) llr=llrc @@ -272,13 +283,13 @@ contains if(iwspr.eq.0) then maxosd=2 call timer('d280_101',0) - call decode280_101(llr,Keff,maxosd,ndeep,apmask,message101, & + call decode280_101(llr,Keff,maxosd,norder,apmask,message101, & cw,ntype,nharderrors,dmin) call timer('d280_101',1) else maxosd=2 call timer('d280_74 ',0) - call decode280_74(llr,Keff,maxosd,ndeep,apmask,message74,cw, & + call decode280_74(llr,Keff,maxosd,norder,apmask,message74,cw, & ntype,nharderrors,dmin) call timer('d280_74 ',1) endif @@ -466,7 +477,7 @@ contains snr_cand=0. snr_cand(1:ncand)=candidates(1:ncand,2) call indexx(snr_cand,ncand,indx) - nmax=min(ncand,5) + nmax=min(ncand,20) do i=1,nmax j=indx(ncand+1-i) candidates0(i,1:4)=candidates(j,1:4) @@ -474,7 +485,6 @@ contains ncand=nmax candidates(1:ncand,1:4)=candidates0(1:ncand,1:4) candidates(ncand+1:,1:4)=0. - return end subroutine get_candidates_fst280 From ad4fac6b3d002f831b943d6e853e98f3b13f57e4 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 21 Jun 2020 10:33:36 -0400 Subject: [PATCH 121/520] Implement "Single decode" for FST280. --- lib/decoder.f90 | 3 ++- lib/fst280_decode.f90 | 14 ++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 5db74e39b..b51a3f906 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -192,7 +192,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) call timer('dec280 ',0) call my_fst280%decode(fst280_decoded,id2,params%nutc, & params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & - params%nsubmode,params%ndepth,params%ntr) + params%nsubmode,params%ndepth,params%ntr,params%nexp_decode, & + params%ntol) call timer('dec280 ',1) go to 800 endif diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 366e39706..865602e55 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -26,7 +26,7 @@ module fst280_decode contains subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfqso, & - nfa,nfb,nsubmode,ndeep,ntrperiod) + nfa,nfb,nsubmode,ndeep,ntrperiod,nexp_decode,ntol) use timer_module, only: timer use packjt77 @@ -47,7 +47,7 @@ contains integer*1 apmask(280),cw(280) integer*1 hbits(328) integer*1 message101(101),message74(74) - logical badsync,unpk77_success + logical badsync,unpk77_success,single_decode integer*2 iwave(300*12000) this%callback => callback @@ -56,6 +56,7 @@ contains Keff=91 iwspr=0 nmax=15*12000 + single_decode=iand(nexp_decode,32).eq.32 if(ntrperiod.eq.15) then nsps=800 @@ -100,8 +101,13 @@ contains allocate( cframe(0:164*nss-1) ) npts=nmax - fa=max(100,nfa) - fb=min(4800,nfb) + if(single_decode) then + fa=max(100,nfqso-ntol) + fb=min(4800,nfqso+ntol) + else + fa=max(100,nfa) + fb=min(4800,nfb) + endif if(ndeep.eq.3) then ntmax=4 ! number of block sizes to try From 37b1b7aa6fec424d7115bc91c13648b0bb642293 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 21 Jun 2020 10:34:24 -0400 Subject: [PATCH 122/520] More of "Single Decode". Also, update m_mode in Wide Graph when switching to FST280. --- widgets/mainwindow.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 0d996fd6b..686259ee4 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5825,13 +5825,15 @@ void MainWindow::on_actionFST280_triggered() WSPR_config(false); bool bVHF=m_config.enable_VHF_features(); // 012345678901234567890123456789012 - displayWidgets(nWidgets("111011000100111100010000000100000")); + displayWidgets(nWidgets("111111000100111100010000000100000")); setup_status_bar (bVHF); m_TRperiod = ui->sbTR->value (); ui->sbTR->setMinimum(15); ui->sbTR->setMaximum(300); on_sbTR_valueChanged(ui->sbTR->value()); ui->cbAutoSeq->setChecked(true); + m_wideGraph->setMode(m_mode); + m_wideGraph->setModeTx(m_modeTx); statusChanged(); } @@ -5850,6 +5852,8 @@ void MainWindow::on_actionFST280W_triggered() ui->sbTR->setMinimum(120); ui->sbTR->setMaximum(300); ui->sbSubmode->setMaximum(3); + m_wideGraph->setMode(m_mode); + m_wideGraph->setModeTx(m_modeTx); statusChanged(); } From f04c9d2267e9fcc13facd6471cd510bb3bc83406 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 21 Jun 2020 10:54:24 -0400 Subject: [PATCH 123/520] Mark the FST280 Ftol range on the waterfall scale. --- widgets/plotter.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index cf1e70cd1..c25ba6306 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -330,7 +330,6 @@ void CPlotter::DrawOverlay() //DrawOverlay() double df = m_binsPerPixel*m_fftBinWidth; QPen penOrange(QColor(255,165,0),3); -// QPen penGreen(Qt::green, 3); //Mark Tol range with green line QPen penGreen(QColor(15,153,105), 3); //Mark Tol range or BW with dark green line QPen penRed(Qt::red, 3); //Mark Tx freq with red QPainter painter(&m_OverlayPixmap); @@ -532,6 +531,11 @@ void CPlotter::DrawOverlay() //DrawOverlay() painter0.drawLine(x1,yRxBottom-yh,x1,yRxBottom); painter0.drawLine(x1,yRxBottom,x2,yRxBottom); painter0.drawLine(x2,yRxBottom-yh,x2,yRxBottom); + if(m_mode=="FST280") { + x1=XfromFreq(m_rxFreq-m_tol); + x2=XfromFreq(m_rxFreq+m_tol); + painter0.drawLine(x1,29,x2,29); // Mark the Tol range + } } } From 3a16399857980496af8c0d951aa6f180b3eeb18f Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 21 Jun 2020 11:08:46 -0400 Subject: [PATCH 124/520] Don't send "" twice for FST280. --- lib/fst280_decode.f90 | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 865602e55..66d38bc48 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -323,9 +323,7 @@ contains enddo ! metrics enddo ! istart jitter 2002 continue - enddo !candidate list - write(*,1120) -1120 format("") + enddo !candidate list!ws return end subroutine decode From 147f29e27191d8c9d683796f4f5d1504a06cc53d Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 21 Jun 2020 16:11:36 +0100 Subject: [PATCH 125/520] Allow flush to send a receiver info data set without any spots --- Network/PSKReporter.cpp | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/Network/PSKReporter.cpp b/Network/PSKReporter.cpp index b981188b7..5ffd87113 100644 --- a/Network/PSKReporter.cpp +++ b/Network/PSKReporter.cpp @@ -32,13 +32,13 @@ namespace { - constexpr QLatin1String HOST {"report.pskreporter.info"}; + // constexpr QLatin1String HOST {"report.pskreporter.info"}; // constexpr QLatin1String HOST {"127.0.0.1"}; - // constexpr QLatin1String HOST {"192.168.1.195"}; + constexpr QLatin1String HOST {"192.168.1.195"}; constexpr quint16 SERVICE_PORT {4739}; // constexpr quint16 SERVICE_PORT {14739}; - constexpr int MIN_SEND_INTERVAL {60}; // in seconds - constexpr int FLUSH_INTERVAL {5}; // in send intervals + constexpr int MIN_SEND_INTERVAL {15}; // in seconds + constexpr int FLUSH_INTERVAL {4 * 5}; // in send intervals constexpr bool ALIGNMENT_PADDING {true}; constexpr int MIN_PAYLOAD_LENGTH {508}; constexpr int MAX_PAYLOAD_LENGTH {1400}; @@ -363,7 +363,7 @@ void PSKReporter::impl::send_report (bool send_residue) auto flush = flushing () || send_residue; qDebug () << "PSKReporter::impl::send_report: flush:" << flush; - while (spots_.size () || (flush && (tx_data_.size () || tx_residue_.size ()))) + while (spots_.size () || flush) { if (!payload_.size ()) { @@ -371,7 +371,7 @@ void PSKReporter::impl::send_report (bool send_residue) build_preamble (message); } - if (!tx_data_.size ()) + if (!tx_data_.size () && (spots_.size () || tx_residue_.size ())) { // Set Header tx_out @@ -388,7 +388,7 @@ void PSKReporter::impl::send_report (bool send_residue) qDebug () << "PSKReporter::impl::send_report: inserted data residue"; } - while (spots_.size () || (flush && tx_data_.size ())) + while (spots_.size () || flush) { auto tx_data_size = tx_data_.size (); if (spots_.size ()) @@ -413,18 +413,21 @@ void PSKReporter::impl::send_report (bool send_residue) len += num_pad_bytes (len); if (len > MAX_PAYLOAD_LENGTH // our upper datagram size limit || (!spots_.size () && len > MIN_PAYLOAD_LENGTH) // spots drained and above lower datagram size limit - || (flush && !spots_.size () && tx_data_.size ())) // send what we have + || (flush && !spots_.size ())) // send what we have, possibly no spots { - if (len <= MAX_PAYLOAD_LENGTH) + if (tx_data_.size ()) { - tx_data_size = tx_data_.size (); - qDebug () << "PSKReporter::impl::send_report: sending short payload:" << tx_data_size; + if (len <= MAX_PAYLOAD_LENGTH) + { + tx_data_size = tx_data_.size (); + qDebug () << "PSKReporter::impl::send_report: sending short payload:" << tx_data_size; + } + QByteArray tx {tx_data_.left (tx_data_size)}; + QDataStream out {&tx, QIODevice::WriteOnly | QIODevice::Append}; + // insert Length + set_length (out, tx); + message.writeRawData (tx.constData (), tx.size ()); } - QByteArray tx {tx_data_.left (tx_data_size)}; - QDataStream out {&tx, QIODevice::WriteOnly | QIODevice::Append}; - // insert Length - set_length (out, tx); - message.writeRawData (tx.constData (), tx.size ()); // insert Length and Export Time set_length (message, payload_); @@ -434,6 +437,7 @@ void PSKReporter::impl::send_report (bool send_residue) // Send data to PSK Reporter site socket_->write (payload_); // TODO: handle errors qDebug () << "PSKReporter::impl::send_report: sent payload:" << payload_.size () << "observation id:" << observation_id_; + flush = false; // break loop message.device ()->seek (0u); payload_.clear (); // Fresh message // Save unsent spots From 956aa2dfc59367ff11a58b4a1bc0de5d6f3ecd32 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 21 Jun 2020 11:27:30 -0400 Subject: [PATCH 126/520] Call switch_mode() to repopulate bandComboBox after switching to FST280. --- widgets/mainwindow.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 686259ee4..b3cc32127 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5834,6 +5834,7 @@ void MainWindow::on_actionFST280_triggered() ui->cbAutoSeq->setChecked(true); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); + switch_mode (Modes::FST280); statusChanged(); } @@ -5854,6 +5855,7 @@ void MainWindow::on_actionFST280W_triggered() ui->sbSubmode->setMaximum(3); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); + switch_mode (Modes::FST280W); statusChanged(); } From 79c437f69a770d9cb82d0fdee95733fb23a9479b Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sun, 21 Jun 2020 12:40:38 -0500 Subject: [PATCH 127/520] Implement de-duping for FST280. --- lib/fst280_decode.f90 | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 66d38bc48..0d10eb095 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -34,6 +34,7 @@ contains parameter (MAXCAND=100) class(fst280_decoder), intent(inout) :: this procedure(fst280_decode_callback) :: callback + character*37 decodes(100) character*37 msg character*77 c77 complex, allocatable :: c2(:) @@ -135,6 +136,8 @@ contains ncand,candidates) ndecodes=0 + decodes=' ' + isbest1=0 isbest8=0 fc21=0. @@ -308,7 +311,14 @@ contains c77(51:77)='000000000000000000000110000' call unpack77(c77,0,msg,unpk77_success) endif - if(nharderrors .ge.0 .and. unpk77_success) then + if(unpk77_success) then + idupe=0 + do i=1,ndecodes + if(decodes(i).eq.msg) idupe=1 + enddo + if(idupe.eq.1) exit + ndecodes=ndecodes+1 + decodes(ndecodes)=msg nsnr=nint(xsnr) iaptype=0 qual=0. From 1f7d8545f3f24854fd0d6e9d631f486fab8730c6 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 21 Jun 2020 13:49:37 -0400 Subject: [PATCH 128/520] Tx line to ALL.TXT should be trimmed(). --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index b3cc32127..750e40520 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -8983,7 +8983,7 @@ void MainWindow::write_all(QString txRx, QString message) QFile f{m_config.writeable_data_dir().absoluteFilePath(file_name)}; if (f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { QTextStream out(&f); - out << line + out << line.trimmed() #if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) << Qt::endl #else From 501cb449230add9c64e5f562775ec420888c7824 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 21 Jun 2020 14:38:40 -0400 Subject: [PATCH 129/520] Clean up git workspace. --- .gitignore | 5 ++++ Decoder/decodedtext.pri | 3 ++ Detector/Detector.pri | 3 ++ Modulator/Modulator.pri | 3 ++ lib/77bit/call_to_c28.f90 | 21 ++++++++++++++ lib/77bit/free_text.f90 | 58 +++++++++++++++++++++++++++++++++++++ lib/77bit/nonstd_to_c58.f90 | 13 +++++++++ lib/t6.f90 | 56 ----------------------------------- 8 files changed, 106 insertions(+), 56 deletions(-) create mode 100644 Decoder/decodedtext.pri create mode 100644 Detector/Detector.pri create mode 100644 Modulator/Modulator.pri create mode 100644 lib/77bit/call_to_c28.f90 create mode 100644 lib/77bit/free_text.f90 create mode 100644 lib/77bit/nonstd_to_c58.f90 delete mode 100644 lib/t6.f90 diff --git a/.gitignore b/.gitignore index 3ffc4aed5..2bd99ec81 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,8 @@ jnq* *.txt cmake-build-debug cmake-build-release +CMakeFiles +fnd +lib/77bit/tmp +lib/tmp +lib/ftrsd diff --git a/Decoder/decodedtext.pri b/Decoder/decodedtext.pri new file mode 100644 index 000000000..6aa33dc36 --- /dev/null +++ b/Decoder/decodedtext.pri @@ -0,0 +1,3 @@ +SOURCES += Decoder/decodedtext.cpp + +HEADERS += Decoder/decodedtext.h diff --git a/Detector/Detector.pri b/Detector/Detector.pri new file mode 100644 index 000000000..a98051194 --- /dev/null +++ b/Detector/Detector.pri @@ -0,0 +1,3 @@ +SOURCES += Detector/Detector.cpp + +HEADERS += Detector/Detector.hpp diff --git a/Modulator/Modulator.pri b/Modulator/Modulator.pri new file mode 100644 index 000000000..a90a55f7a --- /dev/null +++ b/Modulator/Modulator.pri @@ -0,0 +1,3 @@ +SOURCES += Modulator/Modulator.cpp + +HEADERS += Modulator/Mpdulator.hpp diff --git a/lib/77bit/call_to_c28.f90 b/lib/77bit/call_to_c28.f90 new file mode 100644 index 000000000..96930c575 --- /dev/null +++ b/lib/77bit/call_to_c28.f90 @@ -0,0 +1,21 @@ +program call_to_c28 + parameter (NTOKENS=2063592,MAX22=4194304) + character*6 call_std + character a1*37,a2*36,a3*10,a4*27 + data a1/' 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'/ + data a2/'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'/ + data a3/'0123456789'/ + data a4/' ABCDEFGHIJKLMNOPQRSTUVWXYZ'/ + ! call_std must be right adjusted, length 6 + call_std=' K1ABC' !Redefine as needed + i1=index(a1,call_std(1:1))-1 + i2=index(a2,call_std(2:2))-1 + i3=index(a3,call_std(3:3))-1 + i4=index(a4,call_std(4:4))-1 + i5=index(a4,call_std(5:5))-1 + i6=index(a4,call_std(6:6))-1 + n28=NTOKENS + MAX22 + 36*10*27*27*27*i1 + 10*27*27*27*i2 + & + 27*27*27*i3 + 27*27*i4 + 27*i5 + i6 + write(*,1000) call_std,n28 +1000 format('Callsign: ',a6,2x,'c28 as decimal integer:',i10) +end program call_to_c28 diff --git a/lib/77bit/free_text.f90 b/lib/77bit/free_text.f90 new file mode 100644 index 000000000..c7e668234 --- /dev/null +++ b/lib/77bit/free_text.f90 @@ -0,0 +1,58 @@ +program free_text + character*13 c13,w + character*71 f71 + character*42 c + character*1 qa(10),qb(10) + data c/' 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ+-./?'/ + c13='TNX BOB 73 GL' !Redefine as needed + call mp_short_init + qa=char(0) + w=adjustr(c13) + do i=1,13 + j=index(c,w(i:i))-1 + if(j.lt.0) j=0 + call mp_short_mult(qb,qa(2:10),9,42) !qb(1:9)=42*qa(2:9) + call mp_short_add(qa,qb(2:10),9,j) !qa(1:9)=qb(2:9)+j + enddo + write(f71,1000) qa(2:10) +1000 format(b7.7,8b8.8) + write(*,1010) c13,f71 +1010 format('Free text: ',a13/'f71: ',a71) +end program free_text + +subroutine mp_short_ops(w,u) +! Multi-precision arithmetic with storage in character arrays. + character*1 w(*),u(*) + integer i,ireg,j,n,ir,iv,ii1,ii2 + character*1 creg(4) + save ii1,ii2 + equivalence (ireg,creg) + + entry mp_short_init + ireg=256*ichar('2')+ichar('1') + do j=1,4 + if (creg(j).eq.'1') ii1=j + if (creg(j).eq.'2') ii2=j + enddo + return + + entry mp_short_add(w,u,n,iv) + ireg=256*iv + do j=n,1,-1 + ireg=ichar(u(j))+ichar(creg(ii2)) + w(j+1)=creg(ii1) + enddo + w(1)=creg(ii2) + return + + entry mp_short_mult(w,u,n,iv) + ireg=0 + do j=n,1,-1 + ireg=ichar(u(j))*iv+ichar(creg(ii2)) + w(j+1)=creg(ii1) + enddo + w(1)=creg(ii2) + return + + return +end subroutine mp_short_ops diff --git a/lib/77bit/nonstd_to_c58.f90 b/lib/77bit/nonstd_to_c58.f90 new file mode 100644 index 000000000..09190423e --- /dev/null +++ b/lib/77bit/nonstd_to_c58.f90 @@ -0,0 +1,13 @@ +program nonstd_to_c58 + integer*8 n58 + character*11 call_nonstd + character*38 c + data c/' 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ/'/ + call_nonstd='PJ4/K1ABC' !Redifine as needed + n58=0 + do i=1,11 + n58=n58*38 + index(c,call_nonstd(i:i)) - 1 + enddo + write(*,1000) call_nonstd,n58 +1000 format('Callsign: ',a11,2x,'c58 as decimal integer:',i20) +end program nonstd_to_c58 diff --git a/lib/t6.f90 b/lib/t6.f90 deleted file mode 100644 index fd08f01f4..000000000 --- a/lib/t6.f90 +++ /dev/null @@ -1,56 +0,0 @@ -program t6 - - parameter (MAXFFT=1404) - complex c(0:MAXFFT-1) - real s(0:MAXFFT-1) - - m1=45 - m2=67 - m3=89 - nsym=3*11 + m1 + m2 + m3 - nfft=6*nsym - nh=nfft/2 - - best=9999. -! do m1=22,67 -! do m2=37,97 - do m1=30,67 - do m2=26,100 - m3=201-m2-m1 - if(m3.lt.13) cycle - c=0. - n1=6*(11+m1) - n2=n1+6*(11+m2) - c(1:66)=1. - c(1+n1:66+n1)=1. - c(1+n2:66+n2)=1. - - call four2a(c,nfft,1,-1,1) !c2c FFT - - df=12000.0/nfft - smax=0. - do i=0,nfft-1 - s(i)=real(c(i))**2 + aimag(c(i))**2 - if(i.ne.0) smax=max(s(i),smax) - enddo - sidelobe=db(smax/s(0)) - - if(sidelobe.lt.best) then - write(*,1000) m1,m2,m3,sidelobe -1000 format(3i5,f8.2) - best=sidelobe - s=s/s(0) - rewind 13 - do j=0,nfft-1 - i=mod(j+nh,nfft) - f=i*df - if(i.gt.nh) f=f-12000.0 - write(13,1020) f,s(i) -1020 format(2f12.4) - enddo - endif - enddo - enddo - -end program t6 - From 8a21533c2178a2d5a0057493b53422abd0c4bbd5 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 21 Jun 2020 18:46:21 -0400 Subject: [PATCH 130/520] UPdate some estimates in fst280.txt. --- lib/fst280/fst280.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/fst280/fst280.txt b/lib/fst280/fst280.txt index 5e2c1c935..8c9757e40 100644 --- a/lib/fst280/fst280.txt +++ b/lib/fst280/fst280.txt @@ -1,10 +1,10 @@ ------------------------------------------------------------------- NSPS T/R TxT Tst Txtra Txtra-2.6s DF BW SNR77 SNR50 - (s) (s) (s) (s) (s) (Hz) (Hz) (dB) (dB) + (s) (s) (s) (s) (s) (Hz) (Hz) (dB)? (dB)? ------------------------------------------------------------------- - 800 15 10.93 0.5 3.57 0.97 15.00 60.0 -21.3 -23.2 - 1680 30 22.96 1.0 6.04 3.44 7.14 28.6 -24.5 -26.4 - 4000 60 54.67 1.0 4.33 1.73 3.00 12.0 -28.3 -30.2 - 8400 120 114.80 1.0 4.20 1.60 1.43 5.7 -31.5 -33.4 -21504 300 293.89 1.0 5.11 2.51 0.56 2.2 -35.5 -37.4 + 800 15 10.93 0.5 3.57 0.97 15.00 60.0 -21.3 -22.6 + 1680 30 22.96 1.0 6.04 3.44 7.14 28.6 -24.5 -25.8 + 4000 60 54.67 1.0 4.33 1.73 3.00 12.0 -28.3 -29.6 + 8400 120 114.80 1.0 4.20 1.60 1.43 5.7 -31.5 -32.8 +21504 300 293.89 1.0 5.11 2.51 0.56 2.2 -35.5 -36.8 ------------------------------------------------------------------- From 7d5fb03dea8b4c79f10f2f5f3da120244a78a313 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 22 Jun 2020 08:11:45 -0500 Subject: [PATCH 131/520] First cut at SNR estimate. Needs testing. --- lib/fst280/get_fst280_bitmetrics.f90 | 2 +- lib/fst280_decode.f90 | 24 +++++++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/lib/fst280/get_fst280_bitmetrics.f90 b/lib/fst280/get_fst280_bitmetrics.f90 index f9f5f1b7e..598a385fc 100644 --- a/lib/fst280/get_fst280_bitmetrics.f90 +++ b/lib/fst280/get_fst280_bitmetrics.f90 @@ -1,4 +1,4 @@ -subroutine get_fst280_bitmetrics(cd,nss,hmod,nmax,bitmetrics,badsync) +subroutine get_fst280_bitmetrics(cd,nss,hmod,nmax,bitmetrics,s4,badsync) include 'fst280_params.f90' complex cd(0:NN*nss-1) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 0d10eb095..141bd35b8 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -44,6 +44,8 @@ contains real llr(280),llra(280),llrb(280),llrc(280),llrd(280) real candidates(100,4) real bitmetrics(328,4) + real s4(0:3,NN) + integer itone(NN) integer hmod integer*1 apmask(280),cw(280) integer*1 hbits(328) @@ -133,7 +135,7 @@ contains ! Get first approximation of candidate frequencies call get_candidates_fst280(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & - ncand,candidates) + ncand,candidates,base) ndecodes=0 decodes=' ' @@ -249,10 +251,8 @@ contains is0=isbest+ioffset if(is0.lt.0) cycle cframe=c2(is0:is0+164*nss-1) - s2=sum(cframe*conjg(cframe)) - cframe=cframe/sqrt(s2) bitmetrics=0 - call get_fst280_bitmetrics(cframe,nss,hmod,ntmax,bitmetrics,badsync) + call get_fst280_bitmetrics(cframe,nss,hmod,ntmax,bitmetrics,s4,badsync) if(badsync) cycle hbits=0 @@ -319,6 +319,20 @@ contains if(idupe.eq.1) exit ndecodes=ndecodes+1 decodes(ndecodes)=msg + if(iwspr.eq.0) then + call get_fst280_tones_from_bits(message101,itone,iwspr) + xsig=0 + do i=1,NN + xsig=xsig+s4(itone(i),i)**2 + enddo + arg=400.0*(xsig/base)-1.0 + if(arg.gt.0.0) then + xsnr=10*log10(arg)-21.0-11.7*log10(nsps/800.0) + else + xsnr=-99.9 + endif +!write(*,*) xsig,base,arg,xsnr + endif nsnr=nint(xsnr) iaptype=0 qual=0. @@ -433,7 +447,7 @@ contains end subroutine fst280_downsample subroutine get_candidates_fst280(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & - ncand,candidates) + ncand,candidates,base) complex c_bigfft(0:nfft1/2) integer hmod From 963bd78f63866f4d92dc3bf7991ac14e0df80248 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 22 Jun 2020 09:46:48 -0500 Subject: [PATCH 132/520] Tweak for better sensitivity. --- lib/fst280_decode.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 141bd35b8..8896af544 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -264,7 +264,7 @@ contains ns5=count(hbits(313:320).eq.(/0,0,0,1,1,0,1,1/)) ns6=count(hbits(321:328).eq.(/0,1,0,0,1,1,1,0/)) nsync_qual=ns1+ns2+ns3+ns4+ns5+ns6 - if(nsync_qual.lt. 30) cycle !### Value ?? ### + if(nsync_qual.lt. 28) cycle !### Value ?? ### scalefac=2.83 llra( 1:140)=bitmetrics( 17:156, 1) @@ -482,7 +482,7 @@ contains call pctile(s2(ia:ib),ib-ia+1,30,base) s2=s2/base - thresh=1.4 + thresh=1.30 ncand=0 candidates=0 From 65996b015c4d3b028dc0e7f61909a96629982d6b Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 22 Jun 2020 15:20:02 -0400 Subject: [PATCH 133/520] Exten the DT search range, Steve's suggestion. --- lib/fst280_decode.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 8896af544..a5b84d681 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -159,7 +159,7 @@ contains do isync=0,1 if(isync.eq.0) then fc1=0.0 - is0=nint(fs2) + is0=2*nint(fs2) ishw=is0 isst=4 ifhw=10 From 04e326e75a1b99742bbc54cace5d0bf54437965d Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 22 Jun 2020 15:20:41 -0400 Subject: [PATCH 134/520] Change "Enable VHF/UHF/Microwave features" to "Enable VHF and submode features", and remove the popup warning about being on a lower band. --- Configuration.ui | 6 +++--- widgets/mainwindow.cpp | 16 ---------------- widgets/mainwindow.h | 2 -- 3 files changed, 3 insertions(+), 21 deletions(-) diff --git a/Configuration.ui b/Configuration.ui index fa16476e9..44a57af24 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -357,7 +357,7 @@ - Enable VHF/UHF/Microwave features + Enable VHF and submode features @@ -3110,11 +3110,11 @@ Right click for insert and delete options. - + + - diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 750e40520..6b17d8e24 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -959,7 +959,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_bFastDone=false; m_bAltV=false; m_bNoMoreFiles=false; - m_bVHFwarned=false; m_bDoubleClicked=false; m_bCallingCQ=false; m_bCheckedContest=false; @@ -4082,11 +4081,6 @@ void MainWindow::guiUpdate() //Once per second: if(nsec != m_sec0) { // qDebug() << "onesec" << m_mode; - if(m_freqNominal!=0 and m_freqNominal<50000000 and m_config.enable_VHF_features()) { - if(!m_bVHFwarned) vhfWarning(); - } else { - m_bVHFwarned=false; - } m_currentBand=m_config.bands()->find(m_freqNominal); if( SpecOp::HOUND == m_config.special_op_id() ) { @@ -6436,7 +6430,6 @@ void MainWindow::switch_mode (Mode mode) ui->RxFreqSpinBox->setMaximum(5000); ui->RxFreqSpinBox->setSingleStep(1); } - m_bVHFwarned=false; bool b=m_mode=="FreqCal"; ui->tabWidget->setVisible(!b); if(b) { @@ -6671,20 +6664,11 @@ void MainWindow::band_changed (Frequency f) { m_frequency_list_fcal_iter = m_config.frequencies ()->find (f); } - float r=m_freqNominal/(f+0.0001); - if(r<0.9 or r>1.1) m_bVHFwarned=false; setRig (f); setXIT (ui->TxFreqSpinBox->value ()); } } -void MainWindow::vhfWarning() -{ - MessageBox::warning_message (this, tr ("VHF features warning"), - "VHF/UHF/Microwave features is enabled on a lower frequency band."); - m_bVHFwarned=true; -} - void MainWindow::enable_DXCC_entity (bool on) { if (on and !m_mode.startsWith ("WSPR") and m_mode!="Echo") { diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index ac8c22d15..51a935c93 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -677,7 +677,6 @@ private: bool m_tx_watchdog; // true when watchdog triggered bool m_block_pwr_tooltip; bool m_PwrBandSetOK; - bool m_bVHFwarned; bool m_bDisplayedOnce; Frequency m_lastMonitoredFrequency; double m_toneSpacing; @@ -762,7 +761,6 @@ private: void tx_watchdog (bool triggered); qint64 nWidgets(QString t); void displayWidgets(qint64 n); - void vhfWarning(); QChar current_submode () const; // returns QChar {0} if submode is not appropriate void write_transmit_entry (QString const& file_name); void selectHound(QString t); From 9741e08af2fbd0a28df840315b22a13afa7b32a1 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 22 Jun 2020 14:51:01 -0500 Subject: [PATCH 135/520] Improve sync search range to account for hmod>1. --- lib/fst280_decode.f90 | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 8896af544..27eccafb3 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -146,7 +146,7 @@ contains fc28=0. do icand=1,ncand fc0=candidates(icand,1) - xsnr=candidates(icand,2) + detmet=candidates(icand,2) ! Downconvert and downsample a slice of the spectrum centered on the ! rough estimate of the candidates frequency. @@ -161,16 +161,16 @@ contains fc1=0.0 is0=nint(fs2) ishw=is0 - isst=4 - ifhw=10 - df=.1*8400/nsps + isst=4*hmod + ifhw=12 + df=.1*baud else if(isync.eq.1) then fc1=fc28 is0=isbest8 - ishw=4 - isst=1 - ifhw=10 - df=.02*8400/nsps + ishw=4*hmod + isst=1*hmod + ifhw=7 + df=.02*baud endif smax1=0.0 @@ -211,7 +211,6 @@ contains candidates(icand,3)=fc_synced candidates(icand,4)=isbest enddo - ! remove duplicate candidates do icand=1,ncand fc=candidates(icand,3) @@ -264,8 +263,7 @@ contains ns5=count(hbits(313:320).eq.(/0,0,0,1,1,0,1,1/)) ns6=count(hbits(321:328).eq.(/0,1,0,0,1,1,1,0/)) nsync_qual=ns1+ns2+ns3+ns4+ns5+ns6 - if(nsync_qual.lt. 28) cycle !### Value ?? ### - + if(nsync_qual.lt. 26) cycle !### Value ?? ### scalefac=2.83 llra( 1:140)=bitmetrics( 17:156, 1) llra(141:280)=bitmetrics(173:312, 1) @@ -481,7 +479,6 @@ contains enddo call pctile(s2(ia:ib),ib-ia+1,30,base) s2=s2/base - thresh=1.30 ncand=0 @@ -494,11 +491,7 @@ contains (s2(i).gt.thresh).and.ncand.lt.100) then ncand=ncand+1 candidates(ncand,1)=df2*i - x=s2(i)-1 - snr=-99 -! temporary placeholder until we implement subtraction... - if(x.gt.0) snr=10*log10(x)-10*log10(2500.0*nsps/12000.0)+6.0 - candidates(ncand,2)=snr + candidates(ncand,2)=s2(i) endif enddo From 67f2450cc5d4d053ead1cd905e6126f4b378a995 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 22 Jun 2020 15:21:55 -0500 Subject: [PATCH 136/520] Make noise analysis bandwidth at least 10 times the signal bandwidth, when possible. --- lib/fst280_decode.f90 | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 98c8cd191..876caf316 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -464,20 +464,31 @@ contains df2=baud/2.0 nd=df2/df1 ndh=nd/2 - ia=fa/df2 - ib=fb/df2 + ia=nint(max(100.0,fa)/df2) + ib=nint(min(4800.0,fb)/df2) + signal_bw=4*(12000.0/nsps)*hmod + analysis_bw=min(4800.0,fb)-max(100.0,fa) + noise_bw=10.0*signal_bw + if(analysis_bw.gt.noise_bw) then + ina=ia + inb=ib + else + fcenter=(fa+fb)/2.0 + ina=nint(max(100.0,fcenter-noise_bw/2.)/df2) + inb=nint(min(4800.0,fcenter+noise_bw/2.)/df2) + endif s=0. - do i=ia,ib + do i=ina,inb ! noise analysis window includes signal analysis window j0=nint(i*df2/df1) do j=j0-ndh,j0+ndh s(i)=s(i) + real(c_bigfft(j))**2 + aimag(c_bigfft(j))**2 enddo enddo nh=hmod - do i=ia,ib + do i=ina,inb s2(i)=s(i-nh*3) + s(i-nh) +s(i+nh) +s(i+nh*3) enddo - call pctile(s2(ia:ib),ib-ia+1,30,base) + call pctile(s2(ina:inb),ib-ia+1,30,base) s2=s2/base thresh=1.30 From 1b2d690bf030ac20c38e945b21eee3b1a4f06845 Mon Sep 17 00:00:00 2001 From: K9AN Date: Tue, 23 Jun 2020 09:45:44 -0500 Subject: [PATCH 137/520] Avoid edge effects when finding noise baseline. --- lib/fst280_decode.f90 | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 876caf316..4f3166afa 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -60,7 +60,6 @@ contains iwspr=0 nmax=15*12000 single_decode=iand(nexp_decode,32).eq.32 - if(ntrperiod.eq.15) then nsps=800 nmax=15*12000 @@ -236,10 +235,9 @@ contains endif enddo ncand=ic - do icand=1,ncand fc_synced=candidates(icand,3) - isbest=nint(candidates(icand,4)) + isbest=nint(candidates(icand,4)) xdt=(isbest-nspsec)/fs2 call fst280_downsample(c_bigfft,nfft1,ndown,fc_synced,c2) @@ -474,8 +472,10 @@ contains inb=ib else fcenter=(fa+fb)/2.0 - ina=nint(max(100.0,fcenter-noise_bw/2.)/df2) - inb=nint(min(4800.0,fcenter+noise_bw/2.)/df2) + fl = max(100.0,fcenter-noise_bw/2.)/df2 + fh = min(4800.0,fcenter+noise_bw/2.)/df2 + ina=nint(fl) + inb=nint(fh) endif s=0. do i=ina,inb ! noise analysis window includes signal analysis window @@ -484,14 +484,13 @@ contains s(i)=s(i) + real(c_bigfft(j))**2 + aimag(c_bigfft(j))**2 enddo enddo - nh=hmod do i=ina,inb - s2(i)=s(i-nh*3) + s(i-nh) +s(i+nh) +s(i+nh*3) + s2(i)=s(i-hmod*3) + s(i-hmod) +s(i+hmod) +s(i+hmod*3) enddo - call pctile(s2(ina:inb),ib-ia+1,30,base) + call pctile(s2(ina+hmod*3:inb-hmod*3),inb-ina+1-hmod*6,30,base) s2=s2/base thresh=1.30 - + ncand=0 candidates=0 if(ia.lt.3) ia=3 From b006d8381a8c5ab2574405275a690147c0f386e6 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 23 Jun 2020 14:21:25 -0400 Subject: [PATCH 138/520] Code for a C++ puzzle. --- widgets/mainwindow.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 6b17d8e24..ea7f54a10 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4081,6 +4081,20 @@ void MainWindow::guiUpdate() //Once per second: if(nsec != m_sec0) { // qDebug() << "onesec" << m_mode; + +/* +{ + qint64 m_silentFrames; + unsigned mstr=3000; //Also try 1000 and 3000 + unsigned delay_ms=1000; + unsigned m_ic=0; + unsigned m_frameRate=48000; + m_silentFrames = m_ic + (delay_ms-mstr)*m_frameRate/1000; +// m_silentFrames = m_ic + 0.001*(delay_ms-mstr)*m_frameRate; + qDebug() << m_silentFrames; +} +*/ + m_currentBand=m_config.bands()->find(m_freqNominal); if( SpecOp::HOUND == m_config.special_op_id() ) { From 344b9c11f325c4bf73c038008163d90484c780d9 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 23 Jun 2020 15:08:56 -0400 Subject: [PATCH 139/520] Speed up gen_fst280wave() by nearly x10 for longest FST280 transmissions. --- lib/fst280/gen_fst280wave.f90 | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/lib/fst280/gen_fst280wave.f90 b/lib/fst280/gen_fst280wave.f90 index 9245af406..8485b99d8 100644 --- a/lib/fst280/gen_fst280wave.f90 +++ b/lib/fst280/gen_fst280wave.f90 @@ -1,21 +1,31 @@ subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & icmplx,cwave,wave) + parameter(NTAB=65536) real wave(nwave) - complex cwave(nwave) + complex cwave(nwave),ctab(0:NTAB-1) real, allocatable, save :: pulse(:) real, allocatable :: dphi(:) integer hmod integer itone(nsym) +! integer*8 count0,count1,clkfreq logical first data first/.true./ data nsps0/-99/ - save first,twopi,dt,tsym,nsps0 + save first,twopi,dt,tsym,nsps0,ctab + +! call system_clock(count0,clkfreq) + if(first) then + twopi=8.0*atan(1.0) + do i=0,NTAB-1 + phi=i*twopi/NTAB + ctab(i)=cmplx(cos(phi),sin(phi)) + enddo + endif if(first.or.nsps.ne.nsps0) then if(allocated(pulse)) deallocate(pulse) allocate(pulse(1:3*nsps)) - twopi=8.0*atan(1.0) dt=1.0/fsample tsym=nsps/fsample ! Compute the smoothed frequency-deviation pulse @@ -46,12 +56,15 @@ subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & k=0 do j=0,(nsym+2)*nsps-1 k=k+1 + i=phi*float(NTAB)/twopi + i=iand(i,NTAB-1) if(icmplx.eq.0) then - wave(k)=sin(phi) + wave(k)=real(ctab(i)) else - cwave(k)=cmplx(cos(phi),sin(phi)) + cwave(k)=ctab(i) endif - phi=mod(phi+dphi(j),twopi) + phi=phi+dphi(j) + if(phi.gt.twopi) phi=phi-twopi enddo ! Compute the ramp-up and ramp-down symbols @@ -73,5 +86,10 @@ subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & (1.0+cos(twopi*(/(i,i=0,nsps/2-1)/)/real(nsps)))/2.0 endif +! call system_clock(count1,clkfreq) +! tt=float(count1-count0)/float(clkfreq) +! write(*,3001) tt +!3001 format('Tgen:',f8.3) + return end subroutine gen_fst280wave From 503c2cc24257917f22e62c825b4397270197f860 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 23 Jun 2020 15:10:29 -0400 Subject: [PATCH 140/520] Tweak Modulator to align FST280 Tx start times properly. Still a possible issue with 5-min sequences? --- Modulator/Modulator.cpp | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/Modulator/Modulator.cpp b/Modulator/Modulator.cpp index e527ce3e1..6442fd4d9 100644 --- a/Modulator/Modulator.cpp +++ b/Modulator/Modulator.cpp @@ -69,8 +69,13 @@ void Modulator::start (unsigned symbolsLength, double framesPerSymbol, m_bFastMode=fastMode; m_TRperiod=TRperiod; unsigned delay_ms=1000; - if(m_nsps==1920) delay_ms=500; //FT8 - if(m_nsps==576) delay_ms=300; //FT4 + if(m_nsps==1920) delay_ms=500; //FT8 + if(m_nsps==576) delay_ms=300; //FT4 + if(m_nsps==800) delay_ms=750; //FST280-15 + if(m_nsps==1680) delay_ms=650; //FST280-30 + if(m_nsps==4000) delay_ms=450; //FST280-60 + if(m_nsps==8400) delay_ms=250; //FST280-120 + if(m_nsps==21504) delay_ms=50; //FST280-300 // noise generator parameters if (m_addNoise) { @@ -79,22 +84,22 @@ void Modulator::start (unsigned symbolsLength, double framesPerSymbol, if (m_snr > 1.0) m_fac = 3000.0 / m_snr; } + m_ic=0; // round up to an exact portion of a second that allows for startup delays - m_ic = (mstr / delay_ms) * m_frameRate * delay_ms / 1000; - - if(m_bFastMode) m_ic=0; + if(delay_ms > 0 and !m_bFastMode) { + m_ic = (mstr/delay_ms) * m_frameRate * delay_ms / 1000; + } + if(m_nsps==21504) m_ic=int(0.8*48000); //FST280-300 m_silentFrames = 0; // calculate number of silent frames to send, so that audio will start at // the nominal time "delay_ms" into the Tx sequence. if (synchronize && !m_tuning && !m_bFastMode) { - m_silentFrames = m_ic + m_frameRate / (1000 / delay_ms) - (mstr * (m_frameRate / 1000)); + if(delay_ms >= mstr) m_silentFrames = m_ic + 0.001*(delay_ms-mstr)*m_frameRate; } // qDebug() << "aa" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz") -// << m_ic << m_silentFrames << m_silentFrames/48000.0 -// << mstr << fmod(double(ms0),1000.0*m_period); - +// << delay_ms << mstr << m_silentFrames << m_ic; initialize (QIODevice::ReadOnly, channel); Q_EMIT stateChanged ((m_state = (synchronize && m_silentFrames) ? @@ -152,7 +157,8 @@ qint64 Modulator::readData (char * data, qint64 maxSize) qint16 * end (samples + numFrames * (bytesPerFrame () / sizeof (qint16))); qint64 framesGenerated (0); -// if(m_ic==0) qDebug() << "Modulator::readData" << 0.001*(QDateTime::currentMSecsSinceEpoch() % (1000*m_TRperiod)); +// if(m_ic==0) qDebug() << "aa" << 0.001*(QDateTime::currentMSecsSinceEpoch() % qint64(1000*m_TRperiod)) +// << m_state << m_TRperiod << m_silentFrames << m_ic << foxcom_.wave[m_ic]; switch (m_state) { From 55115a295555409d84e7b210b52b4effd44092c0 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 23 Jun 2020 15:15:45 -0400 Subject: [PATCH 141/520] Move the Wide Graph's green bar for FTol up 3 pixels. --- widgets/plotter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index c25ba6306..947f6a0e5 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -534,7 +534,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() if(m_mode=="FST280") { x1=XfromFreq(m_rxFreq-m_tol); x2=XfromFreq(m_rxFreq+m_tol); - painter0.drawLine(x1,29,x2,29); // Mark the Tol range + painter0.drawLine(x1,26,x2,26); // Mark the Tol range } } From 285c48c7b8df2a1dff98dfdc72a18d6aa0545673 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 24 Jun 2020 14:38:21 +0100 Subject: [PATCH 142/520] Remove references to Windows XP and Vista from User Guide --- doc/user_guide/en/install-windows.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/user_guide/en/install-windows.adoc b/doc/user_guide/en/install-windows.adoc index 95708c83d..04b9785ce 100644 --- a/doc/user_guide/en/install-windows.adoc +++ b/doc/user_guide/en/install-windows.adoc @@ -1,7 +1,7 @@ // Status=edited -Download and execute the package file {win32} (WinXP, Vista, Win 7, -Win 8, Win10, 32-bit) or {win64} (Vista, Win 7, Win 8, Win10, 64-bit) +Download and execute the package file {win32} (Win 7, +Win 8, Win10, 32-bit) or {win64} (Win 7, Win 8, Win10, 64-bit) following these instructions: * Install _WSJT-X_ into its own directory, for example `C:\WSJTX` or `C:\WSJT\WSJTX`, rather than the conventional location `C:\Program From 31f98b94b90ba0561446e011c5ce43cef57166bb Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Wed, 24 Jun 2020 12:22:22 -0500 Subject: [PATCH 143/520] Make DT search range -1s to +2s. --- lib/fst280_decode.f90 | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 4f3166afa..b05b56894 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -158,14 +158,16 @@ contains do isync=0,1 if(isync.eq.0) then fc1=0.0 - is0=2*nint(fs2) - ishw=is0 + is0=1.5*nint(fs2) + ishw=1.5*is0 isst=4*hmod ifhw=12 df=.1*baud else if(isync.eq.1) then - fc1=fc28 - is0=isbest8 + fc1=fc21 + if(hmod.eq.1) fc1=fc28 + is0=isbest1 + if(hmod.eq.1) is0=isbest8 ishw=4*hmod isst=1*hmod ifhw=7 @@ -408,9 +410,15 @@ contains nsec=8/ncoh do i=1,nsec is=(i-1)*ncoh*nss - z1=sum(cd0(i1+is:i1+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + z1=0 + if(i1+is.ge.1) then + z1=sum(cd0(i1+is:i1+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + endif z2=sum(cd0(i2+is:i2+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) - z3=sum(cd0(i3+is:i3+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + z3=0 + if(i3+is+ncoh*nss-1.le.np) then + z3=sum(cd0(i3+is:i3+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + endif s1=s1+abs(z1)/(8*nss) s2=s2+abs(z2)/(8*nss) s3=s3+abs(z3)/(8*nss) From 28b00fe4944a0f99f1f15b948137be2279192d32 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 24 Jun 2020 20:23:14 +0100 Subject: [PATCH 144/520] Fix editing hiccup that broke the log ADIF header, tnx Joe, WA6AXE --- logbook/WorkedBefore.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logbook/WorkedBefore.cpp b/logbook/WorkedBefore.cpp index 438243d42..152feeb25 100644 --- a/logbook/WorkedBefore.cpp +++ b/logbook/WorkedBefore.cpp @@ -442,7 +442,7 @@ bool WorkedBefore::add (QString const& call QTextStream out {&file}; if (!file.size ()) { - out << "WSJT-X ADIF Export" << // new file + out << "WSJT-X ADIF Export" << // new file #if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) endl #else From f06f5d77a58005de10178faf13fd94894b3e7eae Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Wed, 24 Jun 2020 15:15:20 -0500 Subject: [PATCH 145/520] New frame format, new symbol lengths and ndown values, gen_fst280wave now returns a waveform aligned so that first message symbol starts at t=1s. --- lib/fst280/fst280sim.f90 | 8 ++-- lib/fst280/gen_fst280wave.f90 | 3 ++ lib/fst280/genfst280.f90 | 14 +++++-- lib/fst280_decode.f90 | 72 ++++++++++++++++++++++++----------- 4 files changed, 66 insertions(+), 31 deletions(-) diff --git a/lib/fst280/fst280sim.f90 b/lib/fst280/fst280sim.f90 index 7c29d4298..a11bcc7e4 100644 --- a/lib/fst280/fst280sim.f90 +++ b/lib/fst280/fst280sim.f90 @@ -49,9 +49,9 @@ program fst280sim nsps=0 if(nsec.eq.15) nsps=800 if(nsec.eq.30) nsps=1680 - if(nsec.eq.60) nsps=4000 - if(nsec.eq.120) nsps=8400 - if(nsec.eq.300) nsps=21504 + if(nsec.eq.60) nsps=3888 + if(nsec.eq.120) nsps=8200 + if(nsec.eq.300) nsps=21168 if(nsps.eq.0) then print*,'Invalid TR sequence length.' go to 999 @@ -99,7 +99,7 @@ program fst280sim icmplx=1 f0=f00+1.5*hmod*baud call gen_fst280wave(itone,NN,nsps,nmax,fsample,hmod,f0,icmplx,c0,wave) - k=nint((xdt+1.0)/dt)-nsps + k=nint(xdt/dt) c0=cshift(c0,-k) if(k.gt.0) c0(0:k-1)=0.0 if(k.lt.0) c0(nmax+k:nmax-1)=0.0 diff --git a/lib/fst280/gen_fst280wave.f90 b/lib/fst280/gen_fst280wave.f90 index 8485b99d8..7a27ca90c 100644 --- a/lib/fst280/gen_fst280wave.f90 +++ b/lib/fst280/gen_fst280wave.f90 @@ -68,6 +68,7 @@ subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & enddo ! Compute the ramp-up and ramp-down symbols + kshift=nsps-nint(fsample) if(icmplx.eq.0) then wave(1:nsps/2)=0.0 wave(nsps/2+1:nsps)=wave(nsps/2+1:nsps) * & @@ -76,6 +77,7 @@ subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & wave(k1+nsps/2:)=0.0 wave(k1:k1+nsps/2-1)=wave(k1:k1+nsps/2-1) * & (1.0+cos(twopi*(/(i,i=0,nsps/2-1)/)/real(nsps)))/2.0 + wave=cshift(wave,kshift) else cwave(1:nsps/2)=0.0 cwave(nsps/2+1:nsps)=cwave(nsps/2+1:nsps) * & @@ -84,6 +86,7 @@ subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & cwave(k1+nsps/2:)=0.0 cwave(k1:k1+nsps/2-1)=cwave(k1:k1+nsps/2-1) * & (1.0+cos(twopi*(/(i,i=0,nsps/2-1)/)/real(nsps)))/2.0 + cwave=cshift(cwave,kshift) endif ! call system_clock(count1,clkfreq) diff --git a/lib/fst280/genfst280.f90 b/lib/fst280/genfst280.f90 index a0adf5611..919dd2197 100644 --- a/lib/fst280/genfst280.f90 +++ b/lib/fst280/genfst280.f90 @@ -92,11 +92,17 @@ subroutine genfst280(msg0,ichk,msgsent,msgbits,i4tone,iwspr) if(is.eq.3) itmp(i)=2 enddo - i4tone(1:8)=isyncword - i4tone(9:78)=itmp(1:70) + i4tone(1:7)=itmp(1:7) + i4tone(8:14)=itmp(15:21) + i4tone(15:35)=itmp(29:49) + i4tone(36:43)=isyncword + i4tone(44:78)=itmp(50:84) i4tone(79:86)=isyncword - i4tone(87:156)=itmp(71:140) - i4tone(157:164)=isyncword + i4tone(87:121)=itmp(85:119) + i4tone(122:129)=isyncword + i4tone(130:150)=itmp(120:140) + i4tone(151:157)=itmp(22:28) + i4tone(158:164)=itmp(8:14) 999 return diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index b05b56894..622b241e0 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -72,18 +72,19 @@ contains if(hmod.eq.4) ndown=10 if(hmod.eq.8) ndown=5 else if(ntrperiod.eq.60) then - nsps=4000 + nsps=3888 nmax=60*12000 - ndown=100/hmod - if(hmod.eq.8) ndown=16 + ndown=96/hmod + if(hmod.eq.1) ndown=108 else if(ntrperiod.eq.120) then - nsps=8400 + nsps=8200 nmax=120*12000 - ndown=200/hmod + if(hmod.eq.1) ndown=205 + ndown=100/hmod else if(ntrperiod.eq.300) then - nsps=21504 + nsps=21168 nmax=300*12000 - ndown=512/hmod + ndown=504/hmod end if nss=nsps/ndown fs=12000.0 !Sample rate @@ -239,7 +240,7 @@ contains ncand=ic do icand=1,ncand fc_synced=candidates(icand,3) - isbest=nint(candidates(icand,4)) + isbest=nint(candidates(icand,4)) xdt=(isbest-nspsec)/fs2 call fst280_downsample(c_bigfft,nfft1,ndown,fc_synced,c2) @@ -256,26 +257,51 @@ contains hbits=0 where(bitmetrics(:,1).ge.0) hbits=1 - ns1=count(hbits( 1: 8).eq.(/0,0,0,1,1,0,1,1/)) - ns2=count(hbits( 9: 16).eq.(/0,1,0,0,1,1,1,0/)) + ns1=count(hbits( 71: 78).eq.(/0,0,0,1,1,0,1,1/)) + ns2=count(hbits( 79: 86).eq.(/0,1,0,0,1,1,1,0/)) ns3=count(hbits(157:164).eq.(/0,0,0,1,1,0,1,1/)) ns4=count(hbits(165:172).eq.(/0,1,0,0,1,1,1,0/)) - ns5=count(hbits(313:320).eq.(/0,0,0,1,1,0,1,1/)) - ns6=count(hbits(321:328).eq.(/0,1,0,0,1,1,1,0/)) + ns5=count(hbits(243:250).eq.(/0,0,0,1,1,0,1,1/)) + ns6=count(hbits(251:258).eq.(/0,1,0,0,1,1,1,0/)) nsync_qual=ns1+ns2+ns3+ns4+ns5+ns6 if(nsync_qual.lt. 26) cycle !### Value ?? ### + scalefac=2.83 - llra( 1:140)=bitmetrics( 17:156, 1) - llra(141:280)=bitmetrics(173:312, 1) + llra( 1: 14)=bitmetrics( 1: 14, 1) + llra( 15: 28)=bitmetrics(315:328, 1) + llra( 29: 42)=bitmetrics( 15: 28, 1) + llra( 43: 56)=bitmetrics(301:314, 1) + llra( 57: 98)=bitmetrics( 29: 70, 1) + llra( 99:168)=bitmetrics( 87:156, 1) + llra(169:238)=bitmetrics(173:242, 1) + llra(239:280)=bitmetrics(259:300, 1) llra=scalefac*llra - llrb( 1:140)=bitmetrics( 17:156, 2) - llrb(141:280)=bitmetrics(173:312, 2) + llrb( 1: 14)=bitmetrics( 1: 14, 2) + llrb( 15: 28)=bitmetrics(315:328, 2) + llrb( 29: 42)=bitmetrics( 15: 28, 2) + llrb( 43: 56)=bitmetrics(301:314, 2) + llrb( 57: 98)=bitmetrics( 29: 70, 2) + llrb( 99:168)=bitmetrics( 87:156, 2) + llrb(169:238)=bitmetrics(173:242, 2) + llrb(239:280)=bitmetrics(259:300, 2) llrb=scalefac*llrb - llrc( 1:140)=bitmetrics( 17:156, 3) - llrc(141:280)=bitmetrics(173:312, 3) + llrc( 1: 14)=bitmetrics( 1: 14, 3) + llrc( 15: 28)=bitmetrics(315:328, 3) + llrc( 29: 42)=bitmetrics( 15: 28, 3) + llrc( 43: 56)=bitmetrics(301:314, 3) + llrc( 57: 98)=bitmetrics( 29: 70, 3) + llrc( 99:168)=bitmetrics( 87:156, 3) + llrc(169:238)=bitmetrics(173:242, 3) + llrc(239:280)=bitmetrics(259:300, 3) llrc=scalefac*llrc - llrd( 1:140)=bitmetrics( 17:156, 4) - llrd(141:280)=bitmetrics(173:312, 4) + llrd( 1: 14)=bitmetrics( 1: 14, 4) + llrd( 15: 28)=bitmetrics(315:328, 4) + llrd( 29: 42)=bitmetrics( 15: 28, 4) + llrd( 43: 56)=bitmetrics(301:314, 4) + llrd( 57: 98)=bitmetrics( 29: 70, 4) + llrd( 99:168)=bitmetrics( 87:156, 4) + llrd(169:238)=bitmetrics(173:242, 4) + llrd(239:280)=bitmetrics(259:300, 4) llrd=scalefac*llrd apmask=0 @@ -329,7 +355,7 @@ contains else xsnr=-99.9 endif -!write(*,*) xsig,base,arg,xsnr +!write(*,*) xsig,base,arg,xsnr,nsync_qual,ntype,nharderrors,dmin,msg endif nsnr=nint(xsnr) iaptype=0 @@ -400,9 +426,9 @@ contains f0save=f0 endif - i1=i0 !Costas arrays + i1=i0+35*nss !Costas arrays i2=i0+78*nss - i3=i0+156*nss + i3=i0+121*nss s1=0.0 s2=0.0 From 1226aacaadbe3458391acbd8b8497f38d968b029 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 24 Jun 2020 21:25:02 -0400 Subject: [PATCH 146/520] Remove the silly C++ puzzle, no longer needed. --- widgets/mainwindow.cpp | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index ea7f54a10..84eab0715 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4081,22 +4081,7 @@ void MainWindow::guiUpdate() //Once per second: if(nsec != m_sec0) { // qDebug() << "onesec" << m_mode; - -/* -{ - qint64 m_silentFrames; - unsigned mstr=3000; //Also try 1000 and 3000 - unsigned delay_ms=1000; - unsigned m_ic=0; - unsigned m_frameRate=48000; - m_silentFrames = m_ic + (delay_ms-mstr)*m_frameRate/1000; -// m_silentFrames = m_ic + 0.001*(delay_ms-mstr)*m_frameRate; - qDebug() << m_silentFrames; -} -*/ - m_currentBand=m_config.bands()->find(m_freqNominal); - if( SpecOp::HOUND == m_config.special_op_id() ) { qint32 tHound=QDateTime::currentMSecsSinceEpoch()/1000 - m_tAutoOn; //To keep calling Fox, Hound must reactivate Enable Tx at least once every 2 minutes From ee157cde96772d4d18bf8f6364c491c8c6df21f1 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 25 Jun 2020 12:57:12 +0100 Subject: [PATCH 147/520] Avoid overriding style sheet for astronomical data dialog background --- widgets/astro.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/widgets/astro.cpp b/widgets/astro.cpp index 122b86eff..b190d4a40 100644 --- a/widgets/astro.cpp +++ b/widgets/astro.cpp @@ -46,7 +46,8 @@ Astro::Astro(QSettings * settings, Configuration const * configuration, QWidget { ui_->setupUi (this); setWindowTitle (QApplication::applicationName () + " - " + tr ("Astronomical Data")); - setStyleSheet ("QWidget {background: white;}"); + setBackgroundRole (QPalette::Base); + setAutoFillBackground (true); connect (ui_->cbDopplerTracking, &QAbstractButton::toggled, ui_->doppler_widget, &QWidget::setVisible); read_settings (); ui_->text_label->clear (); From 76e84ec8fa1cfa3cd499ec1cc2cfe63577201519 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 25 Jun 2020 08:54:16 -0500 Subject: [PATCH 148/520] Add debug print statement, lower sync threshold. --- lib/fst280_decode.f90 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 622b241e0..3bf470c14 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -239,6 +239,7 @@ contains enddo ncand=ic do icand=1,ncand + sync=candidates(icand,2) fc_synced=candidates(icand,3) isbest=nint(candidates(icand,4)) xdt=(isbest-nspsec)/fs2 @@ -355,12 +356,13 @@ contains else xsnr=-99.9 endif -!write(*,*) xsig,base,arg,xsnr,nsync_qual,ntype,nharderrors,dmin,msg endif nsnr=nint(xsnr) iaptype=0 qual=0. fsig=fc_synced - 1.5*hmod*baud +!write(21,'(8i4,f7.1,f7.2,3f7.1,1x,a37)') & +! nutc,icand,itry,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & iaptype,qual,ntrperiod) goto 2002 @@ -523,7 +525,7 @@ contains enddo call pctile(s2(ina+hmod*3:inb-hmod*3),inb-ina+1-hmod*6,30,base) s2=s2/base - thresh=1.30 + thresh=1.25 ncand=0 candidates=0 From 9caf3b650cc0e764a998d92ad1d8a7fd4b976220 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 25 Jun 2020 17:18:48 -0400 Subject: [PATCH 149/520] Correct a number of parameters that control FST280 signal duration and timing. --- Modulator/Modulator.cpp | 27 +++++++++++++++++--------- widgets/mainwindow.cpp | 42 ++++++++++++++++++++++++----------------- widgets/mainwindow.h | 2 +- 3 files changed, 44 insertions(+), 27 deletions(-) diff --git a/Modulator/Modulator.cpp b/Modulator/Modulator.cpp index 6442fd4d9..3a33c42f1 100644 --- a/Modulator/Modulator.cpp +++ b/Modulator/Modulator.cpp @@ -69,13 +69,8 @@ void Modulator::start (unsigned symbolsLength, double framesPerSymbol, m_bFastMode=fastMode; m_TRperiod=TRperiod; unsigned delay_ms=1000; - if(m_nsps==1920) delay_ms=500; //FT8 - if(m_nsps==576) delay_ms=300; //FT4 - if(m_nsps==800) delay_ms=750; //FST280-15 - if(m_nsps==1680) delay_ms=650; //FST280-30 - if(m_nsps==4000) delay_ms=450; //FST280-60 - if(m_nsps==8400) delay_ms=250; //FST280-120 - if(m_nsps==21504) delay_ms=50; //FST280-300 + if(m_nsps==1920) delay_ms=500; //FT8 + if(m_nsps==576) delay_ms=300; //FT4 // noise generator parameters if (m_addNoise) { @@ -89,7 +84,6 @@ void Modulator::start (unsigned symbolsLength, double framesPerSymbol, if(delay_ms > 0 and !m_bFastMode) { m_ic = (mstr/delay_ms) * m_frameRate * delay_ms / 1000; } - if(m_nsps==21504) m_ic=int(0.8*48000); //FST280-300 m_silentFrames = 0; // calculate number of silent frames to send, so that audio will start at @@ -98,9 +92,21 @@ void Modulator::start (unsigned symbolsLength, double framesPerSymbol, if(delay_ms >= mstr) m_silentFrames = m_ic + 0.001*(delay_ms-mstr)*m_frameRate; } -// qDebug() << "aa" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz") + // Special case for FST280: +// qDebug() << "aa" << m_ic << m_silentFrames << m_symbolsLength << m_nsps; + if(m_nsps==800 or m_nsps==1680 or m_nsps==3888 or m_nsps==8200 or m_nsps==21168) { + m_ic = m_ic + 48000 - 2*m_nsps + 9600; //The 9600 is empirical + m_silentFrames = m_silentFrames - 2*m_nsps; + } + if(m_silentFrames<0) { + m_ic = m_ic - m_silentFrames; + m_silentFrames = 0; + } +// qDebug() << "bb" << m_ic << m_silentFrames; +// qDebug() << "cc" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz") // << delay_ms << mstr << m_silentFrames << m_ic; + initialize (QIODevice::ReadOnly, channel); Q_EMIT stateChanged ((m_state = (synchronize && m_silentFrames) ? Synchronizing : Active)); @@ -317,6 +323,9 @@ qint64 Modulator::readData (char * data, qint64 maxSize) ++m_ic; } +// qDebug() << "dd" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz") +// << m_ic << m_amp << foxcom_.wave[m_ic]; + if (m_amp == 0.0) { // TODO G4WJS: compare double with zero might not be wise if (icw[0] == 0) { // no CW ID to send diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 84eab0715..4ac9f485c 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1342,11 +1342,18 @@ void MainWindow::fixStop() } else if (m_mode=="FT4") { m_hsymStop=21; } else if(m_mode=="FST280" or m_mode=="FST280W") { - if(m_TRperiod==15) m_hsymStop=51; - if(m_TRperiod==30) m_hsymStop=95; - if(m_TRperiod==60) m_hsymStop=205; - if(m_TRperiod==120) m_hsymStop=414; - if(m_TRperiod==300) m_hsymStop=1036; + int stop[] = {45,87,192,397,1012}; + int stop_EME[] = {51,96,201,406,1021}; + int i=0; + if(m_TRperiod==30) i=1; + if(m_TRperiod==60) i=2; + if(m_TRperiod==120) i=3; + if(m_TRperiod==300) i=4; + if(m_config.decode_at_52s()) { + m_hsymStop=stop_EME[i]; + } else { + m_hsymStop=stop[i]; + } } } @@ -3531,11 +3538,11 @@ void MainWindow::guiUpdate() if(m_modeTx=="QRA64") txDuration=1.0 + 84*6912/12000.0; // QRA64 if(m_modeTx=="WSPR") txDuration=2.0 + 162*8192/12000.0; // WSPR if(m_modeTx=="FST280" or m_mode=="FST280W") { //FST280, FST280W - if(m_TRperiod==15) txDuration=1.0 + 164*800/12000.0; - if(m_TRperiod==30) txDuration=1.0 + 164*1680/12000.0; - if(m_TRperiod==60) txDuration=1.0 + 164*4000/12000.0; - if(m_TRperiod==120) txDuration=1.0 + 164*8400/12000.0; - if(m_TRperiod==300) txDuration=1.0 + 164*2150500/12000.0; + if(m_TRperiod==15) txDuration=1.0 + 166*800/12000.0; + if(m_TRperiod==30) txDuration=1.0 + 166*1680/12000.0; + if(m_TRperiod==60) txDuration=1.0 + 166*3888/12000.0; + if(m_TRperiod==120) txDuration=1.0 + 166*8200/12000.0; + if(m_TRperiod==300) txDuration=1.0 + 166*21168/12000.0; } if(m_modeTx=="ISCAT" or m_mode=="MSK144" or m_bFast9) { txDuration=m_TRperiod-0.25; // ISCAT, JT9-fast, MSK144 @@ -3877,15 +3884,16 @@ void MainWindow::guiUpdate() int hmod=int(pow(2.0,double(m_nSubMode))); int nsps=800; if(m_TRperiod==30) nsps=1680; - if(m_TRperiod==60) nsps=4000; - if(m_TRperiod==120) nsps=8400; - if(m_TRperiod==300) nsps=21504; + if(m_TRperiod==60) nsps=3888; + if(m_TRperiod==120) nsps=8200; + if(m_TRperiod==300) nsps=21168; nsps=4*nsps; //48000 Hz sampling int nsym=164; float fsample=48000.0; float dfreq=hmod*fsample/nsps; float f0=ui->TxFreqSpinBox->value() - m_XIT + 1.5*dfreq; - int nwave=(nsym+2)*nsps; +// int nwave=(nsym+2)*nsps; + int nwave=48000 + 166*nsps; int icmplx=0; gen_fst280wave_(const_cast(itone),&nsym,&nsps,&nwave, &fsample,&hmod,&f0,&icmplx,foxcom_.wave,foxcom_.wave); @@ -7160,9 +7168,9 @@ void MainWindow::transmit (double snr) toneSpacing=-2.0; //Transmit a pre-computed, filtered waveform. int nsps=800; if(m_TRperiod==30) nsps=1680; - if(m_TRperiod==60) nsps=4000; - if(m_TRperiod==120) nsps=8400; - if(m_TRperiod==300) nsps=21504; + if(m_TRperiod==60) nsps=3888; + if(m_TRperiod==120) nsps=8200; + if(m_TRperiod==300) nsps=21168; int hmod=int(pow(2.0,double(m_nSubMode))); double dfreq=hmod*12000.0/nsps; double f0=ui->TxFreqSpinBox->value() - m_XIT + 1.5*dfreq; diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 51a935c93..b342850bd 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -49,7 +49,7 @@ #define NUM_QRA64_SYMBOLS 84 //63 data + 21 sync #define NUM_FT8_SYMBOLS 79 #define NUM_FT4_SYMBOLS 105 -#define NUM_FST280_SYMBOLS 164 //280/2 data + 6*4 sync +#define NUM_FST280_SYMBOLS 166 //280/2 data + 6*4 sync + 2 ramp #define NUM_CW_SYMBOLS 250 #define TX_SAMPLE_RATE 48000 #define N_WIDGETS 33 From a02535d655e8467e364fd85be4f64be924e91608 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 26 Jun 2020 11:39:16 +0100 Subject: [PATCH 150/520] Ensure configurations switches start with the right style sheet --- main.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/main.cpp b/main.cpp index 4943f2f02..040225352 100644 --- a/main.cpp +++ b/main.cpp @@ -323,6 +323,7 @@ int main(int argc, char *argv[]) db.exec ("PRAGMA locking_mode=EXCLUSIVE"); int result; + auto const& original_style_sheet = a.styleSheet (); do { #if WSJT_QDEBUG_TO_FILE @@ -387,6 +388,9 @@ int main(int argc, char *argv[]) splash.raise (); QObject::connect (&a, SIGNAL (lastWindowClosed()), &a, SLOT (quit())); result = a.exec(); + + // ensure config switches start with the right style sheet + a.setStyleSheet (original_style_sheet); } while (!result && !multi_settings.exit ()); From 37d5af931170970a6746a800bc839d08d25ca190 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Fri, 26 Jun 2020 07:24:11 -0500 Subject: [PATCH 151/520] Fix an out-of-bounds error. --- lib/fst280_decode.f90 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 3bf470c14..64d2087be 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -520,6 +520,9 @@ contains s(i)=s(i) + real(c_bigfft(j))**2 + aimag(c_bigfft(j))**2 enddo enddo + if(ina-hmod*3.lt.1) ina=1+hmod*3 + if(inb+hmod*3.gt.18000) inb=18000-hmod*3 + s2=0. do i=ina,inb s2(i)=s(i-hmod*3) + s(i-hmod) +s(i+hmod) +s(i+hmod*3) enddo From 2cfe0513bba9c9173c6f08455f58fb279eb87a03 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Fri, 26 Jun 2020 08:40:01 -0500 Subject: [PATCH 152/520] Adjust analysis window when single-decode is checked. --- lib/fst280_decode.f90 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/fst280_decode.f90 b/lib/fst280_decode.f90 index 64d2087be..5969146c9 100644 --- a/lib/fst280_decode.f90 +++ b/lib/fst280_decode.f90 @@ -105,8 +105,8 @@ contains npts=nmax if(single_decode) then - fa=max(100,nfqso-ntol) - fb=min(4800,nfqso+ntol) + fa=max(100,nint(nfqso+1.5*hmod*baud-ntol)) + fb=min(4800,nint(nfqso+1.5*hmod*baud+ntol)) else fa=max(100,nfa) fb=min(4800,nfb) @@ -243,6 +243,7 @@ contains fc_synced=candidates(icand,3) isbest=nint(candidates(icand,4)) xdt=(isbest-nspsec)/fs2 + call fst280_downsample(c_bigfft,nfft1,ndown,fc_synced,c2) do ijitter=0,jittermax @@ -520,8 +521,8 @@ contains s(i)=s(i) + real(c_bigfft(j))**2 + aimag(c_bigfft(j))**2 enddo enddo - if(ina-hmod*3.lt.1) ina=1+hmod*3 - if(inb+hmod*3.gt.18000) inb=18000-hmod*3 + ina=max(ina,1+3*hmod) + inb=min(inb,18000-3*hmod) s2=0. do i=ina,inb s2(i)=s(i-hmod*3) + s(i-hmod) +s(i+hmod) +s(i+hmod*3) From a24f402655c6eb9e81b76bfc1fe3e8cd27b5115e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 26 Jun 2020 17:57:21 +0100 Subject: [PATCH 153/520] Skipping of connection refused net errors on Windows with Qt 5.15 Apparently this is still required. --- Network/MessageClient.cpp | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/Network/MessageClient.cpp b/Network/MessageClient.cpp index d33b2a636..dae238b23 100644 --- a/Network/MessageClient.cpp +++ b/Network/MessageClient.cpp @@ -425,28 +425,23 @@ MessageClient::MessageClient (QString const& id, QString const& version, QString { #if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) connect (&*m_, static_cast (&impl::error) - , [this] (impl::SocketError e) - { -#if defined (Q_OS_WIN) - if (e != impl::NetworkError // take this out when Qt 5.5 - // stops doing this - // spuriously - && e != impl::ConnectionRefusedError) // not - // interested - // in this with - // UDP socket + , [this] (impl::SocketError e) { #else - Q_UNUSED (e); + connect (&*m_, &impl::errorOccurred, [this] (impl::SocketError e) { +#endif +#if defined (Q_OS_WIN) + // take this out when Qt 5.5 stops doing this spuriously + if (e != impl::NetworkError + // not interested in this with UDP socket + && e != impl::ConnectionRefusedError) +#else + Q_UNUSED (e); #endif { Q_EMIT error (m_->errorString ()); } }); -#else - connect (&*m_, &impl::errorOccurred, [this] (impl::SocketError) { - Q_EMIT error (m_->errorString ()); - }); -#endif + set_server (server); } From 27b4f2939a680722754ad5d185b4f83aa12a75dc Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 26 Jun 2020 21:35:29 +0100 Subject: [PATCH 154/520] More flexible execution of the user's hardware controller Updated ways to implement a user defined hardware controller which is executed just after band changes during WSPR band hopping operation. Allows the user_hardware executable to be located in any directory on the PATH environment variable. On Windows any file extension listed on the PATHEXT environment variable may be used, the first match using PATH and PATHEXT will be executed. On Windows this is achieved by using CMD.EXE with a '/C' command line flag, i.e. the user's hardware controller is executed like this: CMD.EXE /C user_hardware nn where 'nn' is the new band as an integer in meters. On non-Windows systems the user's executable will be run if it is found on the directories specified by the PATH environment variable, and it is executable, i.e. it is equivalent to something like: /bin/sh -c user_hardware nn where 'nn' is the new band as an integer in meters. In all cases the user_hardware controller should exit with a zero status, otherwise it have been deemed to have failed. On Windows avoid an exit status of one as that is utilized by CMD.EXE to indicate the file was not found, which WSJT-X ignores silently. This change means the prior need to put the user's hardware controller into a WSJT-X installation directory like /usr/local/bin or C:\WSJT\wsjtx\bin is no longer necessary. --- widgets/mainwindow.cpp | 79 +++++++++++++++++++++++++++--------------- widgets/mainwindow.h | 3 +- 2 files changed, 54 insertions(+), 28 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 0ed391faa..d2fc5184b 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -662,7 +662,12 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, #endif connect(&proc_jt9, static_cast (&QProcess::finished), [this] (int exitCode, QProcess::ExitStatus status) { - subProcessFailed (&proc_jt9, exitCode, status); + if (subProcessFailed (&proc_jt9, exitCode, status)) + { + m_valid = false; // ensures exit if still + // constructing + QTimer::singleShot (0, this, SLOT (close ())); + } }); connect(&p1, &QProcess::started, [this] () { showStatusMessage (QString {"Started: %1 \"%2\""}.arg (p1.program ()).arg (p1.arguments ().join (QLatin1String {"\" \""}))); @@ -680,25 +685,42 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, #endif connect(&p1, static_cast (&QProcess::finished), [this] (int exitCode, QProcess::ExitStatus status) { - subProcessFailed (&p1, exitCode, status); + if (subProcessFailed (&p1, exitCode, status)) + { + m_valid = false; // ensures exit if still + // constructing + QTimer::singleShot (0, this, SLOT (close ())); + } }); #if QT_VERSION < QT_VERSION_CHECK (5, 6, 0) connect(&p3, static_cast (&QProcess::error), [this] (QProcess::ProcessError error) { - subProcessError (&p3, error); - }); #else connect(&p3, &QProcess::errorOccurred, [this] (QProcess::ProcessError error) { - subProcessError (&p3, error); - }); #endif +#if not defined(Q_OS_WIN) + if (QProcess::FailedToStart != error) +#endif + { + subProcessError (&p3, error); + } + }); connect(&p3, &QProcess::started, [this] () { showStatusMessage (QString {"Started: %1 \"%2\""}.arg (p3.program ()).arg (p3.arguments ().join (QLatin1String {"\" \""}))); }); connect(&p3, static_cast (&QProcess::finished), [this] (int exitCode, QProcess::ExitStatus status) { - subProcessFailed (&p3, exitCode, status); +#if defined(Q_OS_WIN) + // We forgo detecting user_hardware failures with exit + // code 1 on Windows. This is because we use CMD.EXE to + // run the executable. CMD.EXE returns exit code 1 when it + // can't find the target executable. + if (exitCode != 1) // CMD.EXE couldn't find file to execute +#endif + { + subProcessFailed (&p3, exitCode, status); + } }); // hook up save WAV file exit handling @@ -2335,7 +2357,7 @@ void MainWindow::setup_status_bar (bool vhf) } } -void MainWindow::subProcessFailed (QProcess * process, int exit_code, QProcess::ExitStatus status) +bool MainWindow::subProcessFailed (QProcess * process, int exit_code, QProcess::ExitStatus status) { if (m_valid && (exit_code || QProcess::NormalExit != status)) { @@ -2352,9 +2374,9 @@ void MainWindow::subProcessFailed (QProcess * process, int exit_code, QProcess:: , tr ("Running: %1\n%2") .arg (process->program () + ' ' + arguments.join (' ')) .arg (QString {process->readAllStandardError()})); - QTimer::singleShot (0, this, SLOT (close ())); - m_valid = false; // ensures exit if still constructing + return true; } + return false; } void MainWindow::subProcessError (QProcess * process, QProcess::ProcessError) @@ -2372,8 +2394,8 @@ void MainWindow::subProcessError (QProcess * process, QProcess::ProcessError) , tr ("Running: %1\n%2") .arg (process->program () + ' ' + arguments.join (' ')) .arg (process->errorString ())); - QTimer::singleShot (0, this, SLOT (close ())); m_valid = false; // ensures exit if still constructing + QTimer::singleShot (0, this, SLOT (close ())); } } @@ -7895,22 +7917,25 @@ void MainWindow::WSPR_scheduling () if (hop_data.frequencies_index_ >= 0) { // new band ui->bandComboBox->setCurrentIndex (hop_data.frequencies_index_); on_bandComboBox_activated (hop_data.frequencies_index_); - QStringList prefixes {".bat", ".cmd", ".exe", ""}; - QString target; - for (auto const& prefix : prefixes) - { - target = QDir {m_appDir}.absoluteFilePath (QLatin1String {"user_hardware"}); - QFileInfo f {target + prefix}; - if (f.isExecutable ()) { - break; - } - } - if (target.size ()) - { - // Execute user's hardware controller - p3.start(QDir::toNativeSeparators (target) - , QStringList {m_config.bands ()->find (m_freqNominal).remove ('m')}); - } + // Execute user's hardware controller + auto const& band = m_config.bands ()->find (m_freqNominal).remove ('m'); +#if defined(Q_OS_WIN) + // On windows we use CMD.EXE to find and execute the + // user_hardware executable. This means that the first matching + // file extension on the PATHEXT environment variable found on + // the PATH environment variable path list. This give maximum + // flexibility for users to write user_hardware in their + // language of choice, and place the file anywhere on the PATH + // environment variable. Equivalent to typing user_hardware + // without any path or extension at the CMD.EXE prompt. + p3.start("CMD", QStringList {QLatin1String {"/C"}, QLatin1String {"user_hardware"}, band}); +#else + // On non-Windows systems we expect the user_hardware executable + // to be anywhere in the paths specified in the PATH environment + // variable path list, and executable. Equivalent to typing + // user_hardware without any path at the shell prompt. + p3.start(QLatin1String {"user_hardware"}, QStringList {band}); +#endif // Produce a short tuneup signal m_tuneup = false; diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 6da871b37..047f39205 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -3,6 +3,7 @@ #define MAINWINDOW_H #include +#include #include #include #include @@ -749,7 +750,7 @@ private: void rm_tb4(QString houndCall); void read_wav_file (QString const& fname); void decodeDone (); - void subProcessFailed (QProcess *, int exit_code, QProcess::ExitStatus); + bool subProcessFailed (QProcess *, int exit_code, QProcess::ExitStatus); void subProcessError (QProcess *, QProcess::ProcessError); void statusUpdate () const; void update_watchdog_label (); From 6cbc91b653564b142d3430b8ac88dae03c330e38 Mon Sep 17 00:00:00 2001 From: phl0 Date: Thu, 25 Jun 2020 19:58:47 +0200 Subject: [PATCH 155/520] Include prop mode in ADIF and UDP messages --- Network/MessageClient.cpp | 6 +- Network/MessageClient.hpp | 3 +- logbook/logbook.cpp | 3 +- logbook/logbook.h | 2 +- widgets/logqso.cpp | 172 +++++++++++++++++++++++++++++++++++++- widgets/logqso.h | 3 +- widgets/logqso.ui | 123 ++++++++++++++++++++++++++- widgets/mainwindow.cpp | 4 +- widgets/mainwindow.h | 2 +- 9 files changed, 304 insertions(+), 14 deletions(-) diff --git a/Network/MessageClient.cpp b/Network/MessageClient.cpp index dae238b23..a71beee6e 100644 --- a/Network/MessageClient.cpp +++ b/Network/MessageClient.cpp @@ -568,7 +568,7 @@ void MessageClient::qso_logged (QDateTime time_off, QString const& dx_call, QStr , QString const& comments, QString const& name, QDateTime time_on , QString const& operator_call, QString const& my_call , QString const& my_grid, QString const& exchange_sent - , QString const& exchange_rcvd) + , QString const& exchange_rcvd, QString const& propmode) { if (m_->server_port_ && !m_->server_string_.isEmpty ()) { @@ -577,8 +577,8 @@ void MessageClient::qso_logged (QDateTime time_off, QString const& dx_call, QStr out << time_off << dx_call.toUtf8 () << dx_grid.toUtf8 () << dial_frequency << mode.toUtf8 () << report_sent.toUtf8 () << report_received.toUtf8 () << tx_power.toUtf8 () << comments.toUtf8 () << name.toUtf8 () << time_on << operator_call.toUtf8 () << my_call.toUtf8 () << my_grid.toUtf8 () - << exchange_sent.toUtf8 () << exchange_rcvd.toUtf8 (); - TRACE_UDP ("time off:" << time_off << "DX:" << dx_call << "DX grid:" << dx_grid << "dial:" << dial_frequency << "mode:" << mode << "sent:" << report_sent << "rcvd:" << report_received << "pwr:" << tx_power << "comments:" << comments << "name:" << name << "time on:" << time_on << "op:" << operator_call << "DE:" << my_call << "DE grid:" << my_grid << "exch sent:" << exchange_sent << "exch rcvd:" << exchange_rcvd); + << exchange_sent.toUtf8 () << exchange_rcvd.toUtf8 () << propmode.toUtf8 (); + TRACE_UDP ("time off:" << time_off << "DX:" << dx_call << "DX grid:" << dx_grid << "dial:" << dial_frequency << "mode:" << mode << "sent:" << report_sent << "rcvd:" << report_received << "pwr:" << tx_power << "comments:" << comments << "name:" << name << "time on:" << time_on << "op:" << operator_call << "DE:" << my_call << "DE grid:" << my_grid << "exch sent:" << exchange_sent << "exch rcvd:" << exchange_rcvd << "prop_mode:" << propmode); m_->send_message (out, message); } } diff --git a/Network/MessageClient.hpp b/Network/MessageClient.hpp index 20f39b019..797149fc6 100644 --- a/Network/MessageClient.hpp +++ b/Network/MessageClient.hpp @@ -69,7 +69,8 @@ public: , QString const& report_received, QString const& tx_power, QString const& comments , QString const& name, QDateTime time_on, QString const& operator_call , QString const& my_call, QString const& my_grid - , QString const& exchange_sent, QString const& exchange_rcvd); + , QString const& exchange_sent, QString const& exchange_rcvd + , QString const& propmode); // ADIF_record argument should be valid ADIF excluding any end // of record marker diff --git a/logbook/logbook.cpp b/logbook/logbook.cpp index 316901f9d..327585110 100644 --- a/logbook/logbook.cpp +++ b/logbook/logbook.cpp @@ -74,7 +74,7 @@ QByteArray LogBook::QSOToADIF (QString const& hisCall, QString const& hisGrid, Q QDateTime const& dateTimeOff, QString const& band, QString const& comments, QString const& name, QString const& strDialFreq, QString const& myCall, QString const& myGrid, QString const& txPower, QString const& operator_call, - QString const& xSent, QString const& xRcvd) + QString const& xSent, QString const& xRcvd, QString const& propmode) { QString t; t = "" + hisCall; @@ -101,6 +101,7 @@ QByteArray LogBook::QSOToADIF (QString const& hisCall, QString const& hisGrid, Q if(comments!="") t += " " + comments; if(name!="") t += " " + name; if(operator_call!="") t+=" " + operator_call; + if(propmode!="") t += " " + propmode; if (xSent.size ()) { auto words = xSent.split (' ' diff --git a/logbook/logbook.h b/logbook/logbook.h index 858bb64d8..de7ffae10 100644 --- a/logbook/logbook.h +++ b/logbook/logbook.h @@ -44,7 +44,7 @@ public: QDateTime const& dateTimeOff, QString const& band, QString const& comments, QString const& name, QString const& strDialFreq, QString const& myCall, QString const& m_myGrid, QString const& m_txPower, QString const& operator_call, - QString const& xSent, QString const& xRcvd); + QString const& xSent, QString const& xRcvd, QString const& propmode); Q_SIGNAL void finished_loading (int worked_before_record_count, QString const& error) const; diff --git a/widgets/logqso.cpp b/widgets/logqso.cpp index 187d2618c..58dcd04f4 100644 --- a/widgets/logqso.cpp +++ b/widgets/logqso.cpp @@ -39,8 +39,10 @@ void LogQSO::loadSettings () restoreGeometry (m_settings->value ("geometry", saveGeometry ()).toByteArray ()); ui->cbTxPower->setChecked (m_settings->value ("SaveTxPower", false).toBool ()); ui->cbComments->setChecked (m_settings->value ("SaveComments", false).toBool ()); + ui->cbPropMode->setChecked (m_settings->value ("SavePropMode", false).toBool ()); m_txPower = m_settings->value ("TxPower", "").toString (); m_comments = m_settings->value ("LogComments", "").toString(); + m_propmode = m_settings->value ("PropMode", "").toString(); m_settings->endGroup (); } @@ -50,8 +52,68 @@ void LogQSO::storeSettings () const m_settings->setValue ("geometry", saveGeometry ()); m_settings->setValue ("SaveTxPower", ui->cbTxPower->isChecked ()); m_settings->setValue ("SaveComments", ui->cbComments->isChecked ()); + m_settings->setValue ("SavePropMode", ui->cbPropMode->isChecked ()); m_settings->setValue ("TxPower", m_txPower); m_settings->setValue ("LogComments", m_comments); + switch (ui->comboBoxPropMode->currentIndex()) { + case 0: + m_settings->setValue ("PropMode", ""); + break; + case 1: + m_settings->setValue ("PropMode", "AS"); + break; + case 2: + m_settings->setValue ("PropMode", "AUE"); + break; + case 3: + m_settings->setValue ("PropMode", "AUR"); + break; + case 4: + m_settings->setValue ("PropMode", "BS"); + break; + case 5: + m_settings->setValue ("PropMode", "ECH"); + break; + case 6: + m_settings->setValue ("PropMode", "EME"); + break; + case 7: + m_settings->setValue ("PropMode", "ES"); + break; + case 8: + m_settings->setValue ("PropMode", "F2"); + break; + case 9: + m_settings->setValue ("PropMode", "FAI"); + break; + case 10: + m_settings->setValue ("PropMode", "INTERNET"); + break; + case 11: + m_settings->setValue ("PropMode", "ION"); + break; + case 12: + m_settings->setValue ("PropMode", "IRL"); + break; + case 13: + m_settings->setValue ("PropMode", "MS"); + break; + case 14: + m_settings->setValue ("PropMode", "RPT"); + break; + case 15: + m_settings->setValue ("PropMode", "RS"); + break; + case 16: + m_settings->setValue ("PropMode", "SAT"); + break; + case 17: + m_settings->setValue ("PropMode", "TEP"); + break; + case 18: + m_settings->setValue ("PropMode", "TR"); + break; + } m_settings->endGroup (); } @@ -80,6 +142,51 @@ void LogQSO::initLogQSO(QString const& hisCall, QString const& hisGrid, QString { ui->comments->clear (); } + if (ui->cbPropMode->isChecked ()) + { + if (m_propmode == "") + ui->comboBoxPropMode->setCurrentIndex(0); + if (m_propmode == "AS") + ui->comboBoxPropMode->setCurrentIndex(1); + if (m_propmode == "AUE") + ui->comboBoxPropMode->setCurrentIndex(2); + if (m_propmode == "AUR") + ui->comboBoxPropMode->setCurrentIndex(3); + if (m_propmode == "BS") + ui->comboBoxPropMode->setCurrentIndex(4); + if (m_propmode == "ECH") + ui->comboBoxPropMode->setCurrentIndex(5); + if (m_propmode == "EME") + ui->comboBoxPropMode->setCurrentIndex(6); + if (m_propmode == "ES") + ui->comboBoxPropMode->setCurrentIndex(7); + if (m_propmode == "F2") + ui->comboBoxPropMode->setCurrentIndex(8); + if (m_propmode == "FAI") + ui->comboBoxPropMode->setCurrentIndex(9); + if (m_propmode == "INTERNET") + ui->comboBoxPropMode->setCurrentIndex(10); + if (m_propmode == "ION") + ui->comboBoxPropMode->setCurrentIndex(11); + if (m_propmode == "IRL") + ui->comboBoxPropMode->setCurrentIndex(12); + if (m_propmode == "MS") + ui->comboBoxPropMode->setCurrentIndex(13); + if (m_propmode == "RPT") + ui->comboBoxPropMode->setCurrentIndex(14); + if (m_propmode == "RS") + ui->comboBoxPropMode->setCurrentIndex(15); + if (m_propmode == "SAT") + ui->comboBoxPropMode->setCurrentIndex(16); + if (m_propmode == "TEP") + ui->comboBoxPropMode->setCurrentIndex(17); + if (m_propmode == "TR") + ui->comboBoxPropMode->setCurrentIndex(18); + } + else + { + ui->comboBoxPropMode->setCurrentIndex(0); + } if (m_config->report_in_comments()) { auto t=mode; if(rptSent!="") t+=" Sent: " + rptSent; @@ -133,6 +240,65 @@ void LogQSO::accept() auto operator_call = ui->loggedOperator->text (); auto xsent = ui->exchSent->text (); auto xrcvd = ui->exchRcvd->text (); + switch (ui->comboBoxPropMode->currentIndex()) { + case 0: + m_propmode = ""; + break; + case 1: + m_propmode = "AS"; + break; + case 2: + m_propmode = "AUE"; + break; + case 3: + m_propmode = "AUR"; + break; + case 4: + m_propmode = "BS"; + break; + case 5: + m_propmode = "ECH"; + break; + case 6: + m_propmode = "EME"; + break; + case 7: + m_propmode = "ES"; + break; + case 8: + m_propmode = "F2"; + break; + case 9: + m_propmode = "FAI"; + break; + case 10: + m_propmode = "INTERNET"; + break; + case 11: + m_propmode = "ION"; + break; + case 12: + m_propmode = "IRL"; + break; + case 13: + m_propmode = "MS"; + break; + case 14: + m_propmode = "RPT"; + break; + case 15: + m_propmode = "RS"; + break; + case 16: + m_propmode = "SAT"; + break; + case 17: + m_propmode = "TEP"; + break; + case 18: + m_propmode = "TR"; + break; + } using SpOp = Configuration::SpecialOperatingActivity; auto special_op = m_config->special_op_id (); @@ -191,7 +357,7 @@ void LogQSO::accept() dateTimeOff.time().toString("hh:mm:ss,") + hisCall + "," + hisGrid + "," + strDialFreq + "," + mode + "," + rptSent + "," + rptRcvd + "," + m_txPower + - "," + m_comments + "," + name; + "," + m_comments + "," + name + "," + m_propmode; QTextStream out(&f); out << logEntry << #if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) @@ -220,6 +386,7 @@ void LogQSO::accept() , m_myGrid , xsent , xrcvd + , m_propmode , m_log->QSOToADIF (hisCall , hisGrid , mode @@ -236,7 +403,8 @@ void LogQSO::accept() , m_txPower , operator_call , xsent - , xrcvd)); + , xrcvd + , m_propmode)); QDialog::accept(); } diff --git a/widgets/logqso.h b/widgets/logqso.h index 739a601f7..70674bad8 100644 --- a/widgets/logqso.h +++ b/widgets/logqso.h @@ -42,7 +42,7 @@ signals: , QString const& name, QDateTime const& QSO_date_on, QString const& operator_call , QString const& my_call, QString const& my_grid , QString const& exchange_sent, QString const& exchange_rcvd - , QByteArray const& ADIF); + , QString const& propmode, QByteArray const& ADIF); protected: void hideEvent (QHideEvent *); @@ -57,6 +57,7 @@ private: LogBook * m_log; QString m_txPower; QString m_comments; + QString m_propmode; Radio::Frequency m_dialFreq; QString m_myCall; QString m_myGrid; diff --git a/widgets/logqso.ui b/widgets/logqso.ui index a03a3028a..f1b198cec 100644 --- a/widgets/logqso.ui +++ b/widgets/logqso.ui @@ -6,8 +6,8 @@ 0 0 - 377 - 287 + 437 + 351 @@ -447,6 +447,123 @@ + + + + + + Prop Mode + + + + + + + + + + + + + AS | Aircraft scatter + + + + + AUE | Aurora-E + + + + + AUR | Aurora + + + + + BS | Back scatter + + + + + ECH | Echolink + + + + + EME | Earth-moon-earth + + + + + ES | Sporadic E + + + + + F2 | F2 Reflection + + + + + FAI | Field aligned irregularities + + + + + INTERNET | Internet-assisted + + + + + ION | Ionoscatter + + + + + IRL | IRLP + + + + + MS | Meteor scatter + + + + + RPT | Terrestrial or atmospheric repeater or transponder + + + + + RS | Rain scatter + + + + + SAT | Satellite + + + + + TEP | Trans-equatorial + + + + + TR | Troposheric ducting + + + + + + + + Retain + + + + + @@ -486,6 +603,8 @@ cbTxPower comments cbComments + cbPropMode + comboBoxPropMode diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 0ed391faa..3ac19c349 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5700,7 +5700,7 @@ void MainWindow::acceptQSO (QDateTime const& QSO_date_off, QString const& call, , QString const& name, QDateTime const& QSO_date_on, QString const& operator_call , QString const& my_call, QString const& my_grid , QString const& exchange_sent, QString const& exchange_rcvd - , QByteArray const& ADIF) + , QString const& propmode, QByteArray const& ADIF) { QString date = QSO_date_on.toString("yyyyMMdd"); if (!m_logBook.add (call, grid, m_config.bands()->find(dial_freq), mode, ADIF)) @@ -5711,7 +5711,7 @@ void MainWindow::acceptQSO (QDateTime const& QSO_date_off, QString const& call, m_messageClient->qso_logged (QSO_date_off, call, grid, dial_freq, mode, rpt_sent, rpt_received , tx_power, comments, name, QSO_date_on, operator_call, my_call, my_grid - , exchange_sent, exchange_rcvd); + , exchange_sent, exchange_rcvd, propmode); m_messageClient->logged_ADIF (ADIF); // Log to N1MM Logger diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 6da871b37..f9897e32e 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -240,7 +240,7 @@ private slots: , QString const& name, QDateTime const& QSO_date_on, QString const& operator_call , QString const& my_call, QString const& my_grid , QString const& exchange_sent, QString const& exchange_rcvd - , QByteArray const& ADIF); + , QString const& propmode, QByteArray const& ADIF); void on_bandComboBox_currentIndexChanged (int index); void on_bandComboBox_activated (int index); void on_readFreq_clicked(); From 2a31d12d39679e1c5facde338e2f73afb8c2dccd Mon Sep 17 00:00:00 2001 From: phl0 Date: Sat, 27 Jun 2020 00:17:03 +0200 Subject: [PATCH 156/520] Adapt brach to changes proposed by G4WJS --- UDPExamples/MessageAggregatorMainWindow.cpp | 9 +- UDPExamples/MessageAggregatorMainWindow.hpp | 2 +- UDPExamples/MessageServer.cpp | 5 +- UDPExamples/MessageServer.hpp | 2 +- UDPExamples/UDPDaemon.cpp | 9 +- widgets/logqso.cpp | 217 +++++--------------- widgets/logqso.h | 1 - widgets/logqso.ui | 152 +++++--------- 8 files changed, 118 insertions(+), 279 deletions(-) diff --git a/UDPExamples/MessageAggregatorMainWindow.cpp b/UDPExamples/MessageAggregatorMainWindow.cpp index 6245918a9..ba034b0e2 100644 --- a/UDPExamples/MessageAggregatorMainWindow.cpp +++ b/UDPExamples/MessageAggregatorMainWindow.cpp @@ -25,8 +25,9 @@ namespace QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "Operator"), QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "My Call"), QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "My Grid"), - QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "Exchange Sent"), - QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "Exchange Rcvd"), + QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "Exch Sent"), + QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "Exch Rcvd"), + QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "Prop"), QT_TRANSLATE_NOOP ("MessageAggregatorMainWindow", "Comments"), }; } @@ -212,7 +213,8 @@ void MessageAggregatorMainWindow::log_qso (QString const& /*id*/, QDateTime time , QString const& tx_power, QString const& comments , QString const& name, QDateTime time_on, QString const& operator_call , QString const& my_call, QString const& my_grid - , QString const& exchange_sent, QString const& exchange_rcvd) + , QString const& exchange_sent, QString const& exchange_rcvd + , QString const& prop_mode) { QList row; row << new QStandardItem {time_on.toString ("dd-MMM-yyyy hh:mm:ss")} @@ -230,6 +232,7 @@ void MessageAggregatorMainWindow::log_qso (QString const& /*id*/, QDateTime time << new QStandardItem {my_grid} << new QStandardItem {exchange_sent} << new QStandardItem {exchange_rcvd} + << new QStandardItem {prop_mode} << new QStandardItem {comments}; log_->appendRow (row); log_table_view_->resizeColumnsToContents (); diff --git a/UDPExamples/MessageAggregatorMainWindow.hpp b/UDPExamples/MessageAggregatorMainWindow.hpp index 29f762d3d..045f4e945 100644 --- a/UDPExamples/MessageAggregatorMainWindow.hpp +++ b/UDPExamples/MessageAggregatorMainWindow.hpp @@ -33,7 +33,7 @@ public: , QString const& report_received, QString const& tx_power, QString const& comments , QString const& name, QDateTime time_on, QString const& operator_call , QString const& my_call, QString const& my_grid - , QString const& exchange_sent, QString const& exchange_rcvd); + , QString const& exchange_sent, QString const& exchange_rcvd, QString const& prop_mode); private: void add_client (QString const& id, QString const& version, QString const& revision); diff --git a/UDPExamples/MessageServer.cpp b/UDPExamples/MessageServer.cpp index 59907d521..42a9689ef 100644 --- a/UDPExamples/MessageServer.cpp +++ b/UDPExamples/MessageServer.cpp @@ -345,9 +345,10 @@ void MessageServer::impl::parse_message (QHostAddress const& sender, port_type s QByteArray my_grid; QByteArray exchange_sent; QByteArray exchange_rcvd; + QByteArray prop_mode; in >> time_off >> dx_call >> dx_grid >> dial_frequency >> mode >> report_sent >> report_received >> tx_power >> comments >> name >> time_on >> operator_call >> my_call >> my_grid - >> exchange_sent >> exchange_rcvd; + >> exchange_sent >> exchange_rcvd >> prop_mode; if (check_status (in) != Fail) { Q_EMIT self_->qso_logged (id, time_off, QString::fromUtf8 (dx_call), QString::fromUtf8 (dx_grid) @@ -356,7 +357,7 @@ void MessageServer::impl::parse_message (QHostAddress const& sender, port_type s , QString::fromUtf8 (comments), QString::fromUtf8 (name), time_on , QString::fromUtf8 (operator_call), QString::fromUtf8 (my_call) , QString::fromUtf8 (my_grid), QString::fromUtf8 (exchange_sent) - , QString::fromUtf8 (exchange_rcvd)); + , QString::fromUtf8 (exchange_rcvd), QString::fromUtf8 (prop_mode)); } } break; diff --git a/UDPExamples/MessageServer.hpp b/UDPExamples/MessageServer.hpp index f59c21fe0..184410117 100644 --- a/UDPExamples/MessageServer.hpp +++ b/UDPExamples/MessageServer.hpp @@ -106,7 +106,7 @@ public: , QString const& report_received, QString const& tx_power, QString const& comments , QString const& name, QDateTime time_on, QString const& operator_call , QString const& my_call, QString const& my_grid - , QString const& exchange_sent, QString const& exchange_rcvd); + , QString const& exchange_sent, QString const& exchange_rcvd, QString const& prop_mode); Q_SIGNAL void decodes_cleared (QString const& id); Q_SIGNAL void logged_ADIF (QString const& id, QByteArray const& ADIF); diff --git a/UDPExamples/UDPDaemon.cpp b/UDPExamples/UDPDaemon.cpp index dea2c68c9..be1b5edeb 100644 --- a/UDPExamples/UDPDaemon.cpp +++ b/UDPExamples/UDPDaemon.cpp @@ -102,7 +102,7 @@ public: , QString const& report_received, QString const& tx_power , QString const& comments, QString const& name, QDateTime time_on , QString const& operator_call, QString const& my_call, QString const& my_grid - , QString const& exchange_sent, QString const& exchange_rcvd) + , QString const& exchange_sent, QString const& exchange_rcvd, QString const& prop_mode) { if (client_id == id_) { @@ -111,12 +111,13 @@ public: << "rpt_rcvd:" << report_received << "Tx_pwr:" << tx_power << "comments:" << comments << "name:" << name << "operator_call:" << operator_call << "my_call:" << my_call << "my_grid:" << my_grid << "exchange_sent:" << exchange_sent - << "exchange_rcvd:" << exchange_rcvd; + << "exchange_rcvd:" << exchange_rcvd << "prop_mode:" << prop_mode; std::cout << QByteArray {80, '-'}.data () << '\n'; - std::cout << tr ("%1: Logged %2 grid: %3 power: %4 sent: %5 recd: %6 freq: %7 time_off: %8 op: %9 my_call: %10 my_grid: %11") + std::cout << tr ("%1: Logged %2 grid: %3 power: %4 sent: %5 recd: %6 freq: %7 time_off: %8 op: %9 my_call: %10 my_grid: %11 exchange_sent: %12 exchange_rcvd: %13 comments: %14 prop_mode: %15") .arg (id_).arg (dx_call).arg (dx_grid).arg (tx_power).arg (report_sent).arg (report_received) .arg (dial_frequency).arg (time_off.toString("yyyy-MM-dd hh:mm:ss.z")).arg (operator_call) - .arg (my_call).arg (my_grid).toStdString () + .arg (my_call).arg (my_grid).arg (exchange_sent).arg (exchange_rcvd) + .arg (comments).arg (prop_mode).toStdString () << std::endl; } } diff --git a/widgets/logqso.cpp b/widgets/logqso.cpp index 58dcd04f4..7a74b86cf 100644 --- a/widgets/logqso.cpp +++ b/widgets/logqso.cpp @@ -15,6 +15,37 @@ #include "ui_logqso.h" #include "moc_logqso.cpp" +namespace +{ + struct PropMode + { + char const * id_; + char const * name_; + }; + constexpr PropMode prop_modes[] = + { + {"", ""} + , {"AS", QT_TRANSLATE_NOOP ("LogQSO", "Aircraft scatter")} + , {"AUE", QT_TRANSLATE_NOOP ("LogQSO", "Aurora-E")} + , {"AUR", QT_TRANSLATE_NOOP ("LogQSO", "Aurora")} + , {"BS", QT_TRANSLATE_NOOP ("LogQSO", "Back scatter")} + , {"ECH", QT_TRANSLATE_NOOP ("LogQSO", "Echolink")} + , {"EME", QT_TRANSLATE_NOOP ("LogQSO", "Earth-moon-earth")} + , {"ES", QT_TRANSLATE_NOOP ("LogQSO", "Sporadic E")} + , {"F2", QT_TRANSLATE_NOOP ("LogQSO", "F2 Reflection")} + , {"FAI", QT_TRANSLATE_NOOP ("LogQSO", "Field aligned irregularities")} + , {"INTERNET", QT_TRANSLATE_NOOP ("LogQSO", "Internet-assisted")} + , {"ION", QT_TRANSLATE_NOOP ("LogQSO", "Ionoscatter")} + , {"IRL", QT_TRANSLATE_NOOP ("LogQSO", "IRLP")} + , {"MS", QT_TRANSLATE_NOOP ("LogQSO", "Meteor scatter")} + , {"RPT", QT_TRANSLATE_NOOP ("LogQSO", "Non-satellite repeater or transponder")} + , {"RS", QT_TRANSLATE_NOOP ("LogQSO", "Rain scatter")} + , {"SAT", QT_TRANSLATE_NOOP ("LogQSO", "Satellite")} + , {"TEP", QT_TRANSLATE_NOOP ("LogQSO", "Trans-equatorial")} + , {"TR", QT_TRANSLATE_NOOP ("LogQSO", "Troposheric ducting")} + }; +} + LogQSO::LogQSO(QString const& programTitle, QSettings * settings , Configuration const * config, LogBook * log, QWidget *parent) : QDialog {parent, Qt::WindowStaysOnTopHint | Qt::WindowTitleHint | Qt::WindowSystemMenuHint} @@ -25,6 +56,10 @@ LogQSO::LogQSO(QString const& programTitle, QSettings * settings { ui->setupUi(this); setWindowTitle(programTitle + " - Log QSO"); + for (auto const& prop_mode : prop_modes) + { + ui->comboBoxPropMode->addItem (prop_mode.name_, prop_mode.id_); + } loadSettings (); ui->grid->setValidator (new MaidenheadLocatorValidator {this}); } @@ -42,7 +77,12 @@ void LogQSO::loadSettings () ui->cbPropMode->setChecked (m_settings->value ("SavePropMode", false).toBool ()); m_txPower = m_settings->value ("TxPower", "").toString (); m_comments = m_settings->value ("LogComments", "").toString(); - m_propmode = m_settings->value ("PropMode", "").toString(); + int prop_index {0}; + if (ui->cbPropMode->isChecked ()) + { + prop_index = ui->comboBoxPropMode->findData (m_settings->value ("PropMode", "").toString()); + } + ui->comboBoxPropMode->setCurrentIndex (prop_index); m_settings->endGroup (); } @@ -55,65 +95,7 @@ void LogQSO::storeSettings () const m_settings->setValue ("SavePropMode", ui->cbPropMode->isChecked ()); m_settings->setValue ("TxPower", m_txPower); m_settings->setValue ("LogComments", m_comments); - switch (ui->comboBoxPropMode->currentIndex()) { - case 0: - m_settings->setValue ("PropMode", ""); - break; - case 1: - m_settings->setValue ("PropMode", "AS"); - break; - case 2: - m_settings->setValue ("PropMode", "AUE"); - break; - case 3: - m_settings->setValue ("PropMode", "AUR"); - break; - case 4: - m_settings->setValue ("PropMode", "BS"); - break; - case 5: - m_settings->setValue ("PropMode", "ECH"); - break; - case 6: - m_settings->setValue ("PropMode", "EME"); - break; - case 7: - m_settings->setValue ("PropMode", "ES"); - break; - case 8: - m_settings->setValue ("PropMode", "F2"); - break; - case 9: - m_settings->setValue ("PropMode", "FAI"); - break; - case 10: - m_settings->setValue ("PropMode", "INTERNET"); - break; - case 11: - m_settings->setValue ("PropMode", "ION"); - break; - case 12: - m_settings->setValue ("PropMode", "IRL"); - break; - case 13: - m_settings->setValue ("PropMode", "MS"); - break; - case 14: - m_settings->setValue ("PropMode", "RPT"); - break; - case 15: - m_settings->setValue ("PropMode", "RS"); - break; - case 16: - m_settings->setValue ("PropMode", "SAT"); - break; - case 17: - m_settings->setValue ("PropMode", "TEP"); - break; - case 18: - m_settings->setValue ("PropMode", "TR"); - break; - } + m_settings->setValue ("PropMode", ui->comboBoxPropMode->currentData ()); m_settings->endGroup (); } @@ -142,51 +124,6 @@ void LogQSO::initLogQSO(QString const& hisCall, QString const& hisGrid, QString { ui->comments->clear (); } - if (ui->cbPropMode->isChecked ()) - { - if (m_propmode == "") - ui->comboBoxPropMode->setCurrentIndex(0); - if (m_propmode == "AS") - ui->comboBoxPropMode->setCurrentIndex(1); - if (m_propmode == "AUE") - ui->comboBoxPropMode->setCurrentIndex(2); - if (m_propmode == "AUR") - ui->comboBoxPropMode->setCurrentIndex(3); - if (m_propmode == "BS") - ui->comboBoxPropMode->setCurrentIndex(4); - if (m_propmode == "ECH") - ui->comboBoxPropMode->setCurrentIndex(5); - if (m_propmode == "EME") - ui->comboBoxPropMode->setCurrentIndex(6); - if (m_propmode == "ES") - ui->comboBoxPropMode->setCurrentIndex(7); - if (m_propmode == "F2") - ui->comboBoxPropMode->setCurrentIndex(8); - if (m_propmode == "FAI") - ui->comboBoxPropMode->setCurrentIndex(9); - if (m_propmode == "INTERNET") - ui->comboBoxPropMode->setCurrentIndex(10); - if (m_propmode == "ION") - ui->comboBoxPropMode->setCurrentIndex(11); - if (m_propmode == "IRL") - ui->comboBoxPropMode->setCurrentIndex(12); - if (m_propmode == "MS") - ui->comboBoxPropMode->setCurrentIndex(13); - if (m_propmode == "RPT") - ui->comboBoxPropMode->setCurrentIndex(14); - if (m_propmode == "RS") - ui->comboBoxPropMode->setCurrentIndex(15); - if (m_propmode == "SAT") - ui->comboBoxPropMode->setCurrentIndex(16); - if (m_propmode == "TEP") - ui->comboBoxPropMode->setCurrentIndex(17); - if (m_propmode == "TR") - ui->comboBoxPropMode->setCurrentIndex(18); - } - else - { - ui->comboBoxPropMode->setCurrentIndex(0); - } if (m_config->report_in_comments()) { auto t=mode; if(rptSent!="") t+=" Sent: " + rptSent; @@ -207,6 +144,10 @@ void LogQSO::initLogQSO(QString const& hisCall, QString const& hisGrid, QString ui->loggedOperator->setText(m_config->opCall()); ui->exchSent->setText (xSent); ui->exchRcvd->setText (xRcvd); + if (!ui->cbPropMode->isChecked ()) + { + ui->comboBoxPropMode->setCurrentIndex (-1); + } using SpOp = Configuration::SpecialOperatingActivity; auto special_op = m_config->special_op_id (); @@ -240,65 +181,6 @@ void LogQSO::accept() auto operator_call = ui->loggedOperator->text (); auto xsent = ui->exchSent->text (); auto xrcvd = ui->exchRcvd->text (); - switch (ui->comboBoxPropMode->currentIndex()) { - case 0: - m_propmode = ""; - break; - case 1: - m_propmode = "AS"; - break; - case 2: - m_propmode = "AUE"; - break; - case 3: - m_propmode = "AUR"; - break; - case 4: - m_propmode = "BS"; - break; - case 5: - m_propmode = "ECH"; - break; - case 6: - m_propmode = "EME"; - break; - case 7: - m_propmode = "ES"; - break; - case 8: - m_propmode = "F2"; - break; - case 9: - m_propmode = "FAI"; - break; - case 10: - m_propmode = "INTERNET"; - break; - case 11: - m_propmode = "ION"; - break; - case 12: - m_propmode = "IRL"; - break; - case 13: - m_propmode = "MS"; - break; - case 14: - m_propmode = "RPT"; - break; - case 15: - m_propmode = "RS"; - break; - case 16: - m_propmode = "SAT"; - break; - case 17: - m_propmode = "TEP"; - break; - case 18: - m_propmode = "TR"; - break; - } using SpOp = Configuration::SpecialOperatingActivity; auto special_op = m_config->special_op_id (); @@ -344,6 +226,7 @@ void LogQSO::accept() } } + auto const& prop_mode = ui->comboBoxPropMode->currentData ().toString (); //Log this QSO to file "wsjtx.log" static QFile f {QDir {QStandardPaths::writableLocation (QStandardPaths::DataLocation)}.absoluteFilePath ("wsjtx.log")}; if(!f.open(QIODevice::Text | QIODevice::Append)) { @@ -357,7 +240,7 @@ void LogQSO::accept() dateTimeOff.time().toString("hh:mm:ss,") + hisCall + "," + hisGrid + "," + strDialFreq + "," + mode + "," + rptSent + "," + rptRcvd + "," + m_txPower + - "," + m_comments + "," + name + "," + m_propmode; + "," + m_comments + "," + name + "," + prop_mode; QTextStream out(&f); out << logEntry << #if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) @@ -386,7 +269,7 @@ void LogQSO::accept() , m_myGrid , xsent , xrcvd - , m_propmode + , prop_mode , m_log->QSOToADIF (hisCall , hisGrid , mode @@ -404,7 +287,7 @@ void LogQSO::accept() , operator_call , xsent , xrcvd - , m_propmode)); + , prop_mode)); QDialog::accept(); } diff --git a/widgets/logqso.h b/widgets/logqso.h index 70674bad8..f6e8d4fed 100644 --- a/widgets/logqso.h +++ b/widgets/logqso.h @@ -57,7 +57,6 @@ private: LogBook * m_log; QString m_txPower; QString m_comments; - QString m_propmode; Radio::Frequency m_dialFreq; QString m_myCall; QString m_myGrid; diff --git a/widgets/logqso.ui b/widgets/logqso.ui index f1b198cec..7b885cd01 100644 --- a/widgets/logqso.ui +++ b/widgets/logqso.ui @@ -6,8 +6,8 @@ 0 0 - 437 - 351 + 440 + 322 @@ -46,6 +46,9 @@ Qt::AlignCenter + + call + @@ -68,6 +71,9 @@ Qt::AlignCenter + + start_date_time + @@ -103,6 +109,9 @@ Qt::AlignCenter + + end_date_time + @@ -142,6 +151,9 @@ Qt::AlignCenter + + mode + @@ -171,6 +183,9 @@ Qt::AlignCenter + + band + @@ -200,6 +215,9 @@ Qt::AlignCenter + + sent + @@ -229,6 +247,9 @@ Qt::AlignCenter + + rcvd + @@ -258,6 +279,9 @@ Qt::AlignCenter + + grid + @@ -290,6 +314,9 @@ Qt::AlignCenter + + name + @@ -310,6 +337,9 @@ Tx power + + txPower + @@ -339,6 +369,9 @@ Comments + + comments + @@ -369,6 +402,9 @@ Operator + + loggedOperator + @@ -403,6 +439,9 @@ Exch sent + + exchSent + @@ -433,6 +472,9 @@ Rcvd + + exchRcvd + @@ -454,106 +496,13 @@ Prop Mode + + comboBoxPropMode + - - - - - - - - - AS | Aircraft scatter - - - - - AUE | Aurora-E - - - - - AUR | Aurora - - - - - BS | Back scatter - - - - - ECH | Echolink - - - - - EME | Earth-moon-earth - - - - - ES | Sporadic E - - - - - F2 | F2 Reflection - - - - - FAI | Field aligned irregularities - - - - - INTERNET | Internet-assisted - - - - - ION | Ionoscatter - - - - - IRL | IRLP - - - - - MS | Meteor scatter - - - - - RPT | Terrestrial or atmospheric repeater or transponder - - - - - RS | Rain scatter - - - - - SAT | Satellite - - - - - TEP | Trans-equatorial - - - - - TR | Troposheric ducting - - - + @@ -603,8 +552,11 @@ cbTxPower comments cbComments - cbPropMode + loggedOperator + exchSent + exchRcvd comboBoxPropMode + cbPropMode From 37ab6eecd1f2910836adf7fdded07ddf23140509 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 27 Jun 2020 00:23:34 +0100 Subject: [PATCH 157/520] Update contributors, and UDP Message Protocol documentation --- Network/NetworkMessage.hpp | 1 + widgets/about.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Network/NetworkMessage.hpp b/Network/NetworkMessage.hpp index 3c5c9268f..c484efb23 100644 --- a/Network/NetworkMessage.hpp +++ b/Network/NetworkMessage.hpp @@ -308,6 +308,7 @@ * My grid utf8 * Exchange sent utf8 * Exchange received utf8 + * ADIF Propagation mode utf8 * * The QSO logged message is sent to the server(s) when the * WSJT-X user accepts the "Log QSO" dialog by clicking the "OK" diff --git a/widgets/about.cpp b/widgets/about.cpp index b1af01807..cc7f8a337 100644 --- a/widgets/about.cpp +++ b/widgets/about.cpp @@ -20,10 +20,10 @@ CAboutDlg::CAboutDlg(QWidget *parent) : "weak-signal Amateur Radio communication.

" "© 2001-2020 by Joe Taylor, K1JT, Bill Somerville, G4WJS,
" "and Steve Franke, K9AN.

" - "We gratefully acknowledge contributions from AC6SL, AE4JY, DJ0OT,
" - "G3WDG, G4KLA, IV3NWV, IW3RAB, K3WYC, KA6MAL, KA9Q, KB1ZMX,
" - "KD6EKQ, KI7MT, KK1D, ND0B, PY2SDR, VE1SKY, VK3ACF, VK4BDJ,
" - "VK7MO, W4TI, W4TV, and W9MDB.

" + "We gratefully acknowledge contributions from AC6SL, AE4JY,
" + "DF2ET, DJ0OT, G3WDG, G4KLA, IV3NWV, IW3RAB, K3WYC, KA6MAL,
" + "KA9Q, KB1ZMX, KD6EKQ, KI7MT, KK1D, ND0B, PY2SDR, VE1SKY,
" + "VK3ACF, VK4BDJ, VK7MO, W4TI, W4TV, and W9MDB.

" "WSJT-X is licensed under the terms of Version 3
" "of the GNU General Public License (GPL)

" "" From 390884268cac035c2602143267c0572452ac8bd9 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sat, 27 Jun 2020 08:53:11 -0500 Subject: [PATCH 158/520] Wholesale change from FST280 to FST240 --- CMakeLists.txt | 42 +- lib/decoder.f90 | 36 +- lib/fsk4hf/.DS_Store | Bin 0 -> 6148 bytes lib/fst240/bpdecode240_101.f90 | 111 ++++ lib/{fst280 => fst240}/bpdecode280_101.f90 | 0 lib/{fst280 => fst240}/bpdecode280_74.f90 | 0 lib/fst240/decode240_101.f90 | 154 +++++ lib/{fst280 => fst240}/decode280_101.f90 | 0 lib/{fst280 => fst240}/decode280_74.f90 | 0 lib/fst240/encode240_101.f90 | 46 ++ lib/{fst280 => fst240}/encode280_101.f90 | 0 lib/{fst280 => fst240}/encode280_74.f90 | 0 lib/fst240/fst240_params.f90 | 7 + lib/fst240/fst240sim.f90 | 143 +++++ lib/{fst280 => fst240}/fst280.txt | 0 lib/{fst280 => fst240}/fst280_params.f90 | 0 lib/{fst280 => fst240}/fst280d.f90 | 0 lib/{fst280 => fst240}/fst280sim.f90 | 0 lib/fst240/gen_fst240wave.f90 | 98 ++++ lib/{fst280 => fst240}/gen_fst280wave.f90 | 0 lib/fst240/genfst240.f90 | 101 ++++ lib/{fst280 => fst240}/genfst280.f90 | 0 lib/{fst280 => fst240}/get_crc24.f90 | 0 lib/fst240/get_fst240_bitmetrics.f90 | 123 ++++ .../get_fst280_bitmetrics.f90 | 0 lib/fst240/ldpc_240_101_generator.f90 | 142 +++++ lib/fst240/ldpc_240_101_parity.f90 | 393 +++++++++++++ .../ldpc_280_101_generator.f90 | 0 .../ldpc_280_101_parity.f90 | 0 .../ldpc_280_74_generator.f90 | 0 lib/{fst280 => fst240}/ldpc_280_74_parity.f90 | 0 lib/fst240/ldpcsim240_101.f90 | 143 +++++ lib/{fst280 => fst240}/ldpcsim280_101.f90 | 0 lib/{fst280 => fst240}/ldpcsim280_74.f90 | 0 lib/fst240/osd240_101.f90 | 403 +++++++++++++ lib/{fst280 => fst240}/osd280_101.f90 | 0 lib/{fst280 => fst240}/osd280_74.f90 | 0 lib/fst240_decode.f90 | 554 ++++++++++++++++++ lib/jt9.f90 | 8 +- models/FrequencyList.cpp | 28 +- models/Modes.hpp | 4 +- widgets/displaytext.cpp | 2 +- widgets/mainwindow.cpp | 68 +-- widgets/mainwindow.h | 6 +- widgets/mainwindow.ui | 22 +- widgets/plotter.cpp | 8 +- 46 files changed, 2524 insertions(+), 118 deletions(-) create mode 100644 lib/fsk4hf/.DS_Store create mode 100644 lib/fst240/bpdecode240_101.f90 rename lib/{fst280 => fst240}/bpdecode280_101.f90 (100%) rename lib/{fst280 => fst240}/bpdecode280_74.f90 (100%) create mode 100644 lib/fst240/decode240_101.f90 rename lib/{fst280 => fst240}/decode280_101.f90 (100%) rename lib/{fst280 => fst240}/decode280_74.f90 (100%) create mode 100644 lib/fst240/encode240_101.f90 rename lib/{fst280 => fst240}/encode280_101.f90 (100%) rename lib/{fst280 => fst240}/encode280_74.f90 (100%) create mode 100644 lib/fst240/fst240_params.f90 create mode 100644 lib/fst240/fst240sim.f90 rename lib/{fst280 => fst240}/fst280.txt (100%) rename lib/{fst280 => fst240}/fst280_params.f90 (100%) rename lib/{fst280 => fst240}/fst280d.f90 (100%) rename lib/{fst280 => fst240}/fst280sim.f90 (100%) create mode 100644 lib/fst240/gen_fst240wave.f90 rename lib/{fst280 => fst240}/gen_fst280wave.f90 (100%) create mode 100644 lib/fst240/genfst240.f90 rename lib/{fst280 => fst240}/genfst280.f90 (100%) rename lib/{fst280 => fst240}/get_crc24.f90 (100%) create mode 100644 lib/fst240/get_fst240_bitmetrics.f90 rename lib/{fst280 => fst240}/get_fst280_bitmetrics.f90 (100%) create mode 100644 lib/fst240/ldpc_240_101_generator.f90 create mode 100644 lib/fst240/ldpc_240_101_parity.f90 rename lib/{fst280 => fst240}/ldpc_280_101_generator.f90 (100%) rename lib/{fst280 => fst240}/ldpc_280_101_parity.f90 (100%) rename lib/{fst280 => fst240}/ldpc_280_74_generator.f90 (100%) rename lib/{fst280 => fst240}/ldpc_280_74_parity.f90 (100%) create mode 100644 lib/fst240/ldpcsim240_101.f90 rename lib/{fst280 => fst240}/ldpcsim280_101.f90 (100%) rename lib/{fst280 => fst240}/ldpcsim280_74.f90 (100%) create mode 100644 lib/fst240/osd240_101.f90 rename lib/{fst280 => fst240}/osd280_101.f90 (100%) rename lib/{fst280 => fst240}/osd280_74.f90 (100%) create mode 100644 lib/fst240_decode.f90 diff --git a/CMakeLists.txt b/CMakeLists.txt index f8986e5c8..20eb32034 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -369,7 +369,7 @@ set (wsjt_FSRCS lib/jt65_mod.f90 lib/ft8_decode.f90 lib/ft4_decode.f90 - lib/fst280_decode.f90 + lib/fst240_decode.f90 lib/jt9_decode.f90 lib/options.f90 lib/packjt.f90 @@ -596,22 +596,16 @@ set (wsjt_FSRCS lib/wqencode.f90 lib/wspr_downsample.f90 lib/zplot9.f90 - lib/fst280/bpdecode280_101.f90 - lib/fst280/bpdecode280_74.f90 - lib/fst280/decode280_101.f90 - lib/fst280/decode280_74.f90 - lib/fst280/encode280_101.f90 - lib/fst280/encode280_74.f90 - lib/fst280/fst280d.f90 - lib/fst280/fst280sim.f90 - lib/fst280/gen_fst280wave.f90 - lib/fst280/genfst280.f90 - lib/fst280/get_fst280_bitmetrics.f90 - lib/fst280/ldpcsim280_101.f90 - lib/fst280/ldpcsim280_74.f90 - lib/fst280/osd280_101.f90 - lib/fst280/osd280_74.f90 - lib/fst280/get_crc24.f90 + lib/fst240/bpdecode240_101.f90 + lib/fst240/decode240_101.f90 + lib/fst240/encode240_101.f90 + lib/fst240/fst240sim.f90 + lib/fst240/gen_fst240wave.f90 + lib/fst240/genfst240.f90 + lib/fst240/get_fst240_bitmetrics.f90 + lib/fst240/ldpcsim240_101.f90 + lib/fst240/osd240_101.f90 + lib/fst240/get_crc24.f90 ) # temporary workaround for a gfortran v7.3 ICE on Fedora 27 64-bit @@ -1368,17 +1362,11 @@ target_link_libraries (ft4sim_mult wsjt_fort wsjt_cxx) add_executable (record_time_signal Audio/tools/record_time_signal.cpp) target_link_libraries (record_time_signal wsjt_cxx wsjt_qtmm wsjt_qt) -add_executable (fst280d lib/fst280/fst280d.f90 wsjtx.rc) -target_link_libraries (fst280d wsjt_fort wsjt_cxx) +add_executable (fst240sim lib/fst240/fst240sim.f90 wsjtx.rc) +target_link_libraries (fst240sim wsjt_fort wsjt_cxx) -add_executable (fst280sim lib/fst280/fst280sim.f90 wsjtx.rc) -target_link_libraries (fst280sim wsjt_fort wsjt_cxx) - -add_executable (ldpcsim280_101 lib/fst280/ldpcsim280_101.f90 wsjtx.rc) -target_link_libraries (ldpcsim280_101 wsjt_fort wsjt_cxx) - -add_executable (ldpcsim280_74 lib/fst280/ldpcsim280_74.f90 wsjtx.rc) -target_link_libraries (ldpcsim280_74 wsjt_fort wsjt_cxx) +add_executable (ldpcsim240_101 lib/fst240/ldpcsim240_101.f90 wsjtx.rc) +target_link_libraries (ldpcsim240_101 wsjt_fort wsjt_cxx) endif(WSJT_BUILD_UTILS) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index b51a3f906..dee9044de 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -8,7 +8,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) use jt9_decode use ft8_decode use ft4_decode - use fst280_decode + use fst240_decode include 'jt9com.f90' include 'timer_common.inc' @@ -33,9 +33,9 @@ subroutine multimode_decoder(ss,id2,params,nfsample) integer :: decoded end type counting_ft4_decoder - type, extends(fst280_decoder) :: counting_fst280_decoder + type, extends(fst240_decoder) :: counting_fst240_decoder integer :: decoded - end type counting_fst280_decoder + end type counting_fst240_decoder real ss(184,NSMAX) logical baddata,newdat65,newdat9,single_decode,bVHF,bad0,newdat,ex @@ -53,7 +53,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) type(counting_jt9_decoder) :: my_jt9 type(counting_ft8_decoder) :: my_ft8 type(counting_ft4_decoder) :: my_ft4 - type(counting_fst280_decoder) :: my_fst280 + type(counting_fst240_decoder) :: my_fst240 !cast C character arrays to Fortran character strings datetime=transfer(params%datetime, datetime) @@ -68,7 +68,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) my_jt9%decoded = 0 my_ft8%decoded = 0 my_ft4%decoded = 0 - my_fst280%decoded = 0 + my_fst240%decoded = 0 ! For testing only: return Rx messages stored in a file as decodes inquire(file='rx_messages.txt',exist=ex) @@ -187,14 +187,14 @@ subroutine multimode_decoder(ss,id2,params,nfsample) go to 800 endif - if(params%nmode.eq.280) then -! We're in FST280/FST280W mode - call timer('dec280 ',0) - call my_fst280%decode(fst280_decoded,id2,params%nutc, & + if(params%nmode.eq.240) then +! We're in FST240/FST240W mode + call timer('dec240 ',0) + call my_fst240%decode(fst240_decoded,id2,params%nutc, & params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & params%nsubmode,params%ndepth,params%ntr,params%nexp_decode, & params%ntol) - call timer('dec280 ',1) + call timer('dec240 ',1) go to 800 endif @@ -317,7 +317,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) ! JT65 is not yet producing info for nsynced, ndecoded. 800 ndecoded = my_jt4%decoded + my_jt65%decoded + my_jt9%decoded + & - my_ft8%decoded + my_ft4%decoded + my_fst280%decoded + my_ft8%decoded + my_ft4%decoded + my_fst240%decoded if(params%nmode.eq.8 .and. params%nzhsym.eq.41) ndec41=ndecoded if(params%nmode.eq.8 .and. params%nzhsym.eq.47) ndec47=ndecoded if(params%nmode.eq.8 .and. params%nzhsym.eq.50) then @@ -679,13 +679,13 @@ contains return end subroutine ft4_decoded - subroutine fst280_decoded (this,nutc,sync,nsnr,dt,freq,decoded,nap, & + subroutine fst240_decoded (this,nutc,sync,nsnr,dt,freq,decoded,nap, & qual,ntrperiod) - use fst280_decode + use fst240_decode implicit none - class(fst280_decoder), intent(inout) :: this + class(fst240_decoder), intent(inout) :: this integer, intent(in) :: nutc real, intent(in) :: sync integer, intent(in) :: nsnr @@ -709,23 +709,23 @@ contains write(*,1001) nutc,nsnr,dt,nint(freq),decoded0,annot 1001 format(i6.6,i4,f5.1,i5,' ` ',1x,a37,1x,a2) write(13,1002) nutc,nint(sync),nsnr,dt,freq,0,decoded0 -1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FST280') +1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FST240') else write(*,1003) nutc,nsnr,dt,nint(freq),decoded0,annot 1003 format(i4.4,i4,f5.1,i5,' ` ',1x,a37,1x,a2) write(13,1004) nutc,nint(sync),nsnr,dt,freq,0,decoded0 -1004 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a37,' FST280') +1004 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a37,' FST240') endif call flush(6) call flush(13) select type(this) - type is (counting_fst280_decoder) + type is (counting_fst240_decoder) this%decoded = this%decoded + 1 end select return - end subroutine fst280_decoded + end subroutine fst240_decoded end subroutine multimode_decoder diff --git a/lib/fsk4hf/.DS_Store b/lib/fsk4hf/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T01: do bp and then call osd maxosd times with saved bp outputs +! norder : osd decoding depth +! + integer, parameter:: N=240, K=101, M=N-K + integer*1 cw(N),apmask(N) + integer*1 nxor(N),hdec(N) + integer*1 message101(101),m101(101) + integer nrw(M),ncw + integer Nm(6,M) + integer Mn(3,N) ! 3 checks per bit + integer synd(M) + real tov(3,N) + real toc(6,M) + real tanhtoc(6,M) + real zn(N),zsum(N),zsave(N,3) + real llr(N) + real Tmn + + include "ldpc_240_101_parity.f90" + + maxiterations=30 + nosd=0 + if(maxosd.gt.3) maxosd=3 + if(maxosd.eq.0) then ! osd with channel llrs + nosd=1 + zsave(:,1)=llr + elseif(maxosd.gt.0) then ! + nosd=maxosd + elseif(maxosd.lt.0) then ! just bp + nosd=0 + endif + + toc=0 + tov=0 + tanhtoc=0 +! initialize messages to checks + do j=1,M + do i=1,nrw(j) + toc(i,j)=llr((Nm(i,j))) + enddo + enddo + + ncnt=0 + nclast=0 + zsum=0.0 + do iter=0,maxiterations +! Update bit log likelihood ratios (tov=0 in iteration 0). + do i=1,N + if( apmask(i) .ne. 1 ) then + zn(i)=llr(i)+sum(tov(1:ncw,i)) + else + zn(i)=llr(i) + endif + enddo + zsum=zsum+zn + if(iter.gt.0 .and. iter.le.maxosd) then + zsave(:,iter)=zsum + endif + +! Check to see if we have a codeword (check before we do any iteration). + cw=0 + where( zn .gt. 0. ) cw=1 + ncheck=0 + do i=1,M + synd(i)=sum(cw(Nm(1:nrw(i),i))) + if( mod(synd(i),2) .ne. 0 ) ncheck=ncheck+1 + enddo + if( ncheck .eq. 0 ) then ! we have a codeword - if crc is good, return it + m101=0 + m101(1:101)=cw(1:101) + call get_crc24(m101,101,nbadcrc) + if(nbadcrc.eq.0) then + message101=cw(1:101) + hdec=0 + where(llr .ge. 0) hdec=1 + nxor=ieor(hdec,cw) + nharderror=sum(nxor) + dmin=sum(nxor*abs(llr)) + ntype=1 + return + endif + endif + + if( iter.gt.0 ) then ! this code block implements an early stopping criterion +! if( iter.gt.10000 ) then ! this code block implements an early stopping criterion + nd=ncheck-nclast + if( nd .lt. 0 ) then ! # of unsatisfied parity checks decreased + ncnt=0 ! reset counter + else + ncnt=ncnt+1 + endif +! write(*,*) iter,ncheck,nd,ncnt + if( ncnt .ge. 5 .and. iter .ge. 10 .and. ncheck .gt. 15) then + nharderror=-1 + exit + endif + endif + nclast=ncheck + +! Send messages from bits to check nodes + do j=1,M + do i=1,nrw(j) + ibj=Nm(i,j) + toc(i,j)=zn(ibj) + do kk=1,ncw ! subtract off what the bit had received from the check + if( Mn(kk,ibj) .eq. j ) then + toc(i,j)=toc(i,j)-tov(kk,ibj) + endif + enddo + enddo + enddo + +! send messages from check nodes to variable nodes + do i=1,M + tanhtoc(1:6,i)=tanh(-toc(1:6,i)/2) + enddo + + do j=1,N + do i=1,ncw + ichk=Mn(i,j) ! Mn(:,j) are the checks that include bit j + Tmn=product(tanhtoc(1:nrw(ichk),ichk),mask=Nm(1:nrw(ichk),ichk).ne.j) + call platanh(-Tmn,y) +! y=atanh(-Tmn) + tov(i,j)=2*y + enddo + enddo + + enddo ! bp iterations + + do i=1,nosd + zn=zsave(:,i) + call osd240_101(zn,Keff,apmask,norder,message101,cw,nharderror,dminosd) + if(nharderror.gt.0) then + hdec=0 + where(llr .ge. 0) hdec=1 + nxor=ieor(hdec,cw) + dmin=sum(nxor*abs(llr)) + ntype=2 + return + endif + enddo + + ntype=0 + nharderror=-1 + dminosd=0.0 + + return +end subroutine decode240_101 diff --git a/lib/fst280/decode280_101.f90 b/lib/fst240/decode280_101.f90 similarity index 100% rename from lib/fst280/decode280_101.f90 rename to lib/fst240/decode280_101.f90 diff --git a/lib/fst280/decode280_74.f90 b/lib/fst240/decode280_74.f90 similarity index 100% rename from lib/fst280/decode280_74.f90 rename to lib/fst240/decode280_74.f90 diff --git a/lib/fst240/encode240_101.f90 b/lib/fst240/encode240_101.f90 new file mode 100644 index 000000000..da0021df3 --- /dev/null +++ b/lib/fst240/encode240_101.f90 @@ -0,0 +1,46 @@ +subroutine encode240_101(message,codeword) + use, intrinsic :: iso_c_binding + use iso_c_binding, only: c_loc,c_size_t + use crc + + integer, parameter:: N=240, K=101, M=N-K + character*24 c24 + integer*1 codeword(N) + integer*1 gen(M,K) + integer*1 message(K) + integer*1 pchecks(M) + integer*4 ncrc24 + include "ldpc_240_101_generator.f90" + logical first + data first/.true./ + save first,gen + + if( first ) then ! fill the generator matrix + gen=0 + do i=1,M + do j=1,26 + read(g(i)(j:j),"(Z1)") istr + ibmax=4 + if(j.eq.26) ibmax=1 + do jj=1, ibmax + icol=(j-1)*4+jj + if( btest(istr,4-jj) ) gen(i,icol)=1 + enddo + enddo + enddo + first=.false. + endif + + do i=1,M + nsum=0 + do j=1,K + nsum=nsum+message(j)*gen(i,j) + enddo + pchecks(i)=mod(nsum,2) + enddo + + codeword(1:K)=message + codeword(K+1:N)=pchecks + + return +end subroutine encode240_101 diff --git a/lib/fst280/encode280_101.f90 b/lib/fst240/encode280_101.f90 similarity index 100% rename from lib/fst280/encode280_101.f90 rename to lib/fst240/encode280_101.f90 diff --git a/lib/fst280/encode280_74.f90 b/lib/fst240/encode280_74.f90 similarity index 100% rename from lib/fst280/encode280_74.f90 rename to lib/fst240/encode280_74.f90 diff --git a/lib/fst240/fst240_params.f90 b/lib/fst240/fst240_params.f90 new file mode 100644 index 000000000..f6204915d --- /dev/null +++ b/lib/fst240/fst240_params.f90 @@ -0,0 +1,7 @@ +! FST240 +! LDPC(240,101)/CRC24 code, five 8x4 sync + +parameter (KK=77) !Information bits (77 + CRC24) +parameter (ND=120) !Data symbols +parameter (NS=40) !Sync symbols +parameter (NN=NS+ND) !Sync and data symbols (160) diff --git a/lib/fst240/fst240sim.f90 b/lib/fst240/fst240sim.f90 new file mode 100644 index 000000000..842e32876 --- /dev/null +++ b/lib/fst240/fst240sim.f90 @@ -0,0 +1,143 @@ +program fst240sim + +! Generate simulated signals for experimental slow FT4 mode + + use wavhdr + use packjt77 + include 'fst240_params.f90' !Set various constants + type(hdr) h !Header for .wav file + character arg*12,fname*17 + character msg37*37,msgsent37*37,c77*77 + complex, allocatable :: c0(:) + complex, allocatable :: c(:) + real, allocatable :: wave(:) + integer hmod + integer itone(NN) + integer*1 msgbits(101) + integer*2, allocatable :: iwave(:) !Generated full-length waveform + +! Get command-line argument(s) + nargs=iargc() + if(nargs.ne.9) then + print*,'Need 9 arguments, got ',nargs + print*,'Usage: fst240sim "message" TRsec f0 DT h fdop del nfiles snr' + print*,'Examples: fst240sim "K1JT K9AN EN50" 60 1500 0.0 1 0.1 1.0 10 -15' + go to 999 + endif + call getarg(1,msg37) !Message to be transmitted + call getarg(2,arg) + read(arg,*) nsec !TR sequence length, seconds + call getarg(3,arg) + read(arg,*) f00 !Frequency (only used for single-signal) + call getarg(4,arg) + read(arg,*) xdt !Time offset from nominal (s) + call getarg(5,arg) + read(arg,*) hmod !Modulation index, h + call getarg(6,arg) + read(arg,*) fspread !Watterson frequency spread (Hz) + call getarg(7,arg) + read(arg,*) delay !Watterson delay (ms) + call getarg(8,arg) + read(arg,*) nfiles !Number of files + call getarg(9,arg) + read(arg,*) snrdb !SNR_2500 + + nfiles=abs(nfiles) + twopi=8.0*atan(1.0) + fs=12000.0 !Sample rate (Hz) + dt=1.0/fs !Sample interval (s) + nsps=0 + if(nsec.eq.15) nsps=800 + if(nsec.eq.30) nsps=1680 + if(nsec.eq.60) nsps=3888 + if(nsec.eq.120) nsps=8200 + if(nsec.eq.300) nsps=21168 + if(nsps.eq.0) then + print*,'Invalid TR sequence length.' + go to 999 + endif + baud=12000.0/nsps !Keying rate (baud) + nmax=nsec*12000 + nz=nsps*NN + nz2=nsps*NN2 + txt=nz2*dt !Transmission length (s) + tt=nsps*dt !Duration of symbols (s) + allocate( c0(0:nmax-1) ) + allocate( c(0:nmax-1) ) + allocate( wave(nmax) ) + allocate( iwave(nmax) ) + + bandwidth_ratio=2500.0/(fs/2.0) + sig=sqrt(2*bandwidth_ratio) * 10.0**(0.05*snrdb) + if(snrdb.gt.90.0) sig=1.0 + + i3=-1 + n3=-1 + call pack77(msg37,i3,n3,c77) + call genfst240(msg37,0,msgsent37,msgbits,itone,iwspr) + + write(*,*) + write(*,'(a9,a37)') 'Message: ',msgsent37 + write(*,1000) f00,xdt,hmod,txt,snrdb +1000 format('f0:',f9.3,' DT:',f6.2,' hmod:',i6,' TxT:',f6.1,' SNR:',f6.1) + write(*,*) + if(i3.eq.1) then + write(*,*) ' mycall hiscall hisgrid' + write(*,'(28i1,1x,i1,1x,28i1,1x,i1,1x,i1,1x,15i1,1x,3i1)') msgbits(1:77) + else + write(*,'(a14)') 'Message bits: ' + write(*,'(50i1,1x,24i1)') msgbits + endif + write(*,*) + write(*,'(a17)') 'Channel symbols: ' + write(*,'(10i1)') itone + write(*,*) + +! call sgran() + + fsample=12000.0 + icmplx=1 + f0=f00+1.5*hmod*baud + call gen_fst240wave(itone,NN,nsps,nmax,fsample,hmod,f0,icmplx,c0,wave) + k=nint(xdt/dt) + c0=cshift(c0,-k) + if(k.gt.0) c0(0:k-1)=0.0 + if(k.lt.0) c0(nmax+k:nmax-1)=0.0 + + do ifile=1,nfiles + c=c0 + if(fspread.ne.0.0 .or. delay.ne.0.0) call watterson(c,nmax,NZ,fs,delay,fspread) + c=sig*c + wave=real(c) + if(snrdb.lt.90) then + do i=1,nmax !Add gaussian noise at specified SNR + xnoise=gran() + wave(i)=wave(i) + xnoise + enddo + endif + gain=100.0 + if(snrdb.lt.90.0) then + wave=gain*wave + else + datpk=maxval(abs(wave)) + fac=32766.9/datpk + wave=fac*wave + endif + if(any(abs(wave).gt.32767.0)) print*,"Warning - data will be clipped." + iwave=nint(wave) + h=default_header(12000,nmax) + if(nmax/12000.le.30) then + write(fname,1102) ifile +1102 format('000000_',i6.6,'.wav') + else + write(fname,1104) ifile +1104 format('000000_',i4.4,'.wav') + endif + open(10,file=trim(fname),status='unknown',access='stream') + write(10) h,iwave !Save to *.wav file + close(10) + write(*,1110) ifile,xdt,f00,snrdb,fname +1110 format(i4,f7.2,f8.2,f7.1,2x,a17) + enddo + +999 end program fst240sim diff --git a/lib/fst280/fst280.txt b/lib/fst240/fst280.txt similarity index 100% rename from lib/fst280/fst280.txt rename to lib/fst240/fst280.txt diff --git a/lib/fst280/fst280_params.f90 b/lib/fst240/fst280_params.f90 similarity index 100% rename from lib/fst280/fst280_params.f90 rename to lib/fst240/fst280_params.f90 diff --git a/lib/fst280/fst280d.f90 b/lib/fst240/fst280d.f90 similarity index 100% rename from lib/fst280/fst280d.f90 rename to lib/fst240/fst280d.f90 diff --git a/lib/fst280/fst280sim.f90 b/lib/fst240/fst280sim.f90 similarity index 100% rename from lib/fst280/fst280sim.f90 rename to lib/fst240/fst280sim.f90 diff --git a/lib/fst240/gen_fst240wave.f90 b/lib/fst240/gen_fst240wave.f90 new file mode 100644 index 000000000..3005968b2 --- /dev/null +++ b/lib/fst240/gen_fst240wave.f90 @@ -0,0 +1,98 @@ +subroutine gen_fst240wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & + icmplx,cwave,wave) + + parameter(NTAB=65536) + real wave(nwave) + complex cwave(nwave),ctab(0:NTAB-1) + real, allocatable, save :: pulse(:) + real, allocatable :: dphi(:) + integer hmod + integer itone(nsym) +! integer*8 count0,count1,clkfreq + logical first + data first/.true./ + data nsps0/-99/ + save first,twopi,dt,tsym,nsps0,ctab + +! call system_clock(count0,clkfreq) + if(first) then + twopi=8.0*atan(1.0) + do i=0,NTAB-1 + phi=i*twopi/NTAB + ctab(i)=cmplx(cos(phi),sin(phi)) + enddo + endif + + if(first.or.nsps.ne.nsps0) then + if(allocated(pulse)) deallocate(pulse) + allocate(pulse(1:3*nsps)) + dt=1.0/fsample + tsym=nsps/fsample +! Compute the smoothed frequency-deviation pulse + do i=1,3*nsps + tt=(i-1.5*nsps)/real(nsps) + pulse(i)=gfsk_pulse(2.0,tt) + enddo + first=.false. + nsps0=nsps + endif + +! Compute the smoothed frequency waveform. +! Length = (nsym+2)*nsps samples, zero-padded + allocate( dphi(0:(nsym+2)*nsps-1) ) + dphi_peak=twopi*hmod/real(nsps) + dphi=0.0 + do j=1,nsym + ib=(j-1)*nsps + ie=ib+3*nsps-1 + dphi(ib:ie) = dphi(ib:ie) + dphi_peak*pulse(1:3*nsps)*itone(j) + enddo + +! Calculate and insert the audio waveform + phi=0.0 + dphi = dphi + twopi*(f0-1.5*hmod/tsym)*dt !Shift frequency up by f0 + if(icmplx.eq.0) wave=0. + if(icmplx.eq.1) cwave=0. + k=0 + do j=0,(nsym+2)*nsps-1 + k=k+1 + i=phi*float(NTAB)/twopi + i=iand(i,NTAB-1) + if(icmplx.eq.0) then + wave(k)=real(ctab(i)) + else + cwave(k)=ctab(i) + endif + phi=phi+dphi(j) + if(phi.gt.twopi) phi=phi-twopi + enddo + +! Compute the ramp-up and ramp-down symbols + kshift=nsps-nint(fsample) + if(icmplx.eq.0) then + wave(1:nsps)=0.0 + wave(nsps+1:nsps+nsps/4)=wave(nsps+1:nsps+nsps/4) * & + (1.0-cos(twopi*(/(i,i=0,nsps/4-1)/)/real(nsps/2)))/2.0 + k1=nsym*nsps+3*nsps/4 + wave((nsym+1)*nsps+1:)=0.0 + wave(k1:k1+nsps/4-1)=wave(k1:k1+nsps/4-1) * & + (1.0+cos(twopi*(/(i,i=0,nsps/4-1)/)/real(nsps/2)))/2.0 + wave=cshift(wave,kshift) + else + cwave(1:nsps)=0.0 + cwave(nsps+1:nsps+nsps/4)=cwave(nsps+1:nsps+nsps/4) * & + (1.0-cos(twopi*(/(i,i=0,nsps/4-1)/)/real(nsps/2)))/2.0 + k1=nsym*nsps+3*nsps/4 + cwave((nsym+1)*nsps+1:)=0.0 + cwave(k1:k1+nsps/4-1)=cwave(k1:k1+nsps/4-1) * & + (1.0+cos(twopi*(/(i,i=0,nsps/4-1)/)/real(nsps/2)))/2.0 + cwave=cshift(cwave,kshift) + endif + +! call system_clock(count1,clkfreq) +! tt=float(count1-count0)/float(clkfreq) +! write(*,3001) tt +!3001 format('Tgen:',f8.3) + + return +end subroutine gen_fst240wave diff --git a/lib/fst280/gen_fst280wave.f90 b/lib/fst240/gen_fst280wave.f90 similarity index 100% rename from lib/fst280/gen_fst280wave.f90 rename to lib/fst240/gen_fst280wave.f90 diff --git a/lib/fst240/genfst240.f90 b/lib/fst240/genfst240.f90 new file mode 100644 index 000000000..4cf688308 --- /dev/null +++ b/lib/fst240/genfst240.f90 @@ -0,0 +1,101 @@ +subroutine genfst240(msg0,ichk,msgsent,msgbits,i4tone,iwspr) + +! Input: +! - msg0 requested message to be transmitted +! - ichk if ichk=1, return only msgsent +! - msgsent message as it will be decoded +! - i4tone array of audio tone values, {0,1,2,3} +! - iwspr 0: (240,101)/crc24, 1: (240,74)/crc24 +! +! Frame structure: +! s8 d30 s8 d30 s8 d30 s8 d30 s8 + + use packjt77 + include 'fst240_params.f90' + character*37 msg0 + character*37 message !Message to be generated + character*37 msgsent !Message as it will be received + character*77 c77 + character*24 c24 + integer*4 i4tone(NN),itmp(ND) + integer*1 codeword(2*ND) + integer*1 msgbits(101),rvec(77) + integer isyncword(8) + integer ncrc24 + logical unpk77_success + data isyncword/0,1,3,2,1,0,2,3/ + data rvec/0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,0, & + 1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, & + 0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/ + message=msg0 + + do i=1, 37 + if(ichar(message(i:i)).eq.0) then + message(i:37)=' ' + exit + endif + enddo + do i=1,37 !Strip leading blanks + if(message(1:1).ne.' ') exit + message=message(i+1:) + enddo + + i3=-1 + n3=-1 + call pack77(message,i3,n3,c77) + call unpack77(c77,0,msgsent,unpk77_success) !Unpack to get msgsent + msgbits=0 + iwspr=0 + if(i3.eq.0.and.n3.eq.6) then + iwspr=1 + read(c77,'(50i1)') msgbits(1:50) + call get_crc24(msgbits,74,ncrc24) + write(c24,'(b24.24)') ncrc24 + read(c24,'(24i1)') msgbits(51:74) + else + read(c77,'(77i1)') msgbits(1:77) + call get_crc24(msgbits,101,ncrc24) + write(c24,'(b24.24)') ncrc24 + read(c24,'(24i1)') msgbits(78:101) + endif + + if(ichk.eq.1) go to 999 + if(unpk77_success) go to 2 +1 msgbits=0 + itone=0 + msgsent='*** bad message *** ' + go to 999 + + entry get_fst240_tones_from_bits(msgbits,i4tone,iwspr) + +2 continue + + call encode240_101(msgbits,codeword) + +! Grayscale mapping: +! bits tone +! 00 0 +! 01 1 +! 11 2 +! 10 3 + + do i=1,ND + is=codeword(2*i)+2*codeword(2*i-1) + if(is.le.1) itmp(i)=is + if(is.eq.2) itmp(i)=3 + if(is.eq.3) itmp(i)=2 + enddo + + i4tone( 1: 8)=isyncword + i4tone( 9: 38)=itmp( 1: 30) + i4tone( 39: 46)=isyncword + i4tone( 47: 76)=itmp( 31: 60) + i4tone( 77: 84)=isyncword + i4tone( 85:114)=itmp( 61: 90) + i4tone(115:122)=isyncword + i4tone(123:152)=itmp( 91:120) + i4tone(153:160)=isyncword + +999 return + +end subroutine genfst240 diff --git a/lib/fst280/genfst280.f90 b/lib/fst240/genfst280.f90 similarity index 100% rename from lib/fst280/genfst280.f90 rename to lib/fst240/genfst280.f90 diff --git a/lib/fst280/get_crc24.f90 b/lib/fst240/get_crc24.f90 similarity index 100% rename from lib/fst280/get_crc24.f90 rename to lib/fst240/get_crc24.f90 diff --git a/lib/fst240/get_fst240_bitmetrics.f90 b/lib/fst240/get_fst240_bitmetrics.f90 new file mode 100644 index 000000000..ddefbad68 --- /dev/null +++ b/lib/fst240/get_fst240_bitmetrics.f90 @@ -0,0 +1,123 @@ +subroutine get_fst240_bitmetrics(cd,nss,hmod,nmax,bitmetrics,s4,badsync) + + include 'fst240_params.f90' + complex cd(0:NN*nss-1) + complex cs(0:3,NN) + complex csymb(nss) + complex, allocatable, save :: c1(:,:) ! ideal waveforms, 20 samples per symbol, 4 tones + complex cp(0:3) ! accumulated phase shift over symbol types 0:3 + complex csum,cterm + integer icos8(0:7) + integer graymap(0:3) + integer ip(1) + integer hmod + logical one(0:65535,0:15) ! 65536 8-symbol sequences, 16 bits + logical first + logical badsync + real bitmetrics(2*NN,4) + real s2(0:65535) + real s4(0:3,NN) + data icos8/0,1,3,2,1,0,2,3/ + data graymap/0,1,3,2/ + data first/.true./,nss0/-1/ + save first,one,cp,nss0 + + if(nss.ne.nss0 .and. allocated(c1)) deallocate(c1) + if(first .or. nss.ne.nss0) then + allocate(c1(nss,0:3)) + one=.false. + do i=0,65535 + do j=0,15 + if(iand(i,2**j).ne.0) one(i,j)=.true. + enddo + enddo + twopi=8.0*atan(1.0) + dphi=twopi*hmod/nss + do itone=0,3 + dp=(itone-1.5)*dphi + phi=0.0 + do j=1,nss + c1(j,itone)=cmplx(cos(phi),sin(phi)) + phi=mod(phi+dp,twopi) + enddo + cp(itone)=cmplx(cos(phi),sin(phi)) + enddo + first=.false. + endif + + do k=1,NN + i1=(k-1)*NSS + csymb=cd(i1:i1+NSS-1) + do itone=0,3 + cs(itone,k)=sum(csymb*conjg(c1(:,itone))) + enddo + s4(0:3,k)=abs(cs(0:3,k)) + enddo + +! Sync quality check + is1=0 + is2=0 + is3=0 + badsync=.false. + ibmax=0 + + do k=1,8 + ip=maxloc(s4(:,k)) + if(icos8(k-1).eq.(ip(1)-1)) is1=is1+1 + ip=maxloc(s4(:,k+38)) + if(icos8(k-1).eq.(ip(1)-1)) is2=is2+1 + ip=maxloc(s4(:,k+76)) + if(icos8(k-1).eq.(ip(1)-1)) is3=is3+1 + ip=maxloc(s4(:,k+114)) + if(icos8(k-1).eq.(ip(1)-1)) is4=is4+1 + ip=maxloc(s4(:,k+152)) + if(icos8(k-1).eq.(ip(1)-1)) is5=is5+1 + enddo + nsync=is1+is2+is3+is4+is5 !Number of correct hard sync symbols, 0-40 + + badsync=.false. + if(nsync .lt. 8) then + badsync=.true. + return + endif + + bitmetrics=0.0 + do nseq=1,nmax !Try coherent sequences of 1, 2, and 4 symbols + if(nseq.eq.1) nsym=1 + if(nseq.eq.2) nsym=2 + if(nseq.eq.3) nsym=4 + if(nseq.eq.4) nsym=8 + nt=4**nsym + do ks=1,NN-nsym+1,nsym + s2=0 + do i=0,nt-1 + csum=0 + cterm=1 + do j=0,nsym-1 + ntone=mod(i/4**(nsym-1-j),4) + csum=csum+cs(graymap(ntone),ks+j)*cterm + cterm=cterm*conjg(cp(graymap(ntone))) + enddo + s2(i)=abs(csum) + enddo + ipt=1+(ks-1)*2 + if(nsym.eq.1) ibmax=1 + if(nsym.eq.2) ibmax=3 + if(nsym.eq.4) ibmax=7 + if(nsym.eq.8) ibmax=15 + do ib=0,ibmax + bm=maxval(s2(0:nt-1),one(0:nt-1,ibmax-ib)) - & + maxval(s2(0:nt-1),.not.one(0:nt-1,ibmax-ib)) + if(ipt+ib.gt.2*NN) cycle + bitmetrics(ipt+ib,nseq)=bm + enddo + enddo + enddo + + call normalizebmet(bitmetrics(:,1),2*NN) + call normalizebmet(bitmetrics(:,2),2*NN) + call normalizebmet(bitmetrics(:,3),2*NN) + call normalizebmet(bitmetrics(:,4),2*NN) + return + +end subroutine get_fst240_bitmetrics diff --git a/lib/fst280/get_fst280_bitmetrics.f90 b/lib/fst240/get_fst280_bitmetrics.f90 similarity index 100% rename from lib/fst280/get_fst280_bitmetrics.f90 rename to lib/fst240/get_fst280_bitmetrics.f90 diff --git a/lib/fst240/ldpc_240_101_generator.f90 b/lib/fst240/ldpc_240_101_generator.f90 new file mode 100644 index 000000000..782e0a211 --- /dev/null +++ b/lib/fst240/ldpc_240_101_generator.f90 @@ -0,0 +1,142 @@ +character*26 g(139) + +data g/ & + "e28df133efbc554bcd30eb1828", & + "b1adf97787f81b4ac02e0caff8", & + "e70c43adce5036f847af367560", & + "c26663f7f7acafdf5abacb6f30", & + "eba93204ddfa3bcf994aea8998", & + "126b51e33c6a740afa0d5ce990", & + "b41a1569e6fede1f2f5395cb68", & + "1d3af0bb43fddbc670a291cc70", & + "e0aebd9921e2c9e1d453ffccb0", & + "897d1370f0df94b8b27a5e4fb8", & + "5e97539338003b13fa8198ad38", & + "7276b87da4a4d777e2752fdd48", & + "989888bd3a85835e2bc6a560f8", & + "7ec4f4a56199ab0a8d6e102478", & + "207007665090258782d1b38a98", & + "1ea1f61cd7f0b7eed7dd346ab8", & + "08f150b27c7f18a027783de0e8", & + "d42324a4e21b62d548d7865858", & + "2e029656269d4fe46e167d21d0", & + "7d84acb7737b0ca6b6f2ef5eb0", & + "6674ca04528ad4782bf5e15248", & + "118ce9825f563ae4963af7a0b0", & + "fb06248cc985e314b1b36ccd38", & + "1c478b7a5aec7e1cfc9c24eb70", & + "185a0f06a84f7f4f484c455020", & + "98b840a3a70688cd58588e3e30", & + "cfb7719de83a3baf582e5b2aa0", & + "9d8cc6b5a01fdbfa307a769048", & + "ed776a728ca162d6fcc8996760", & + "8d2b068128dfb2f8d22c79db50", & + "bd2ba50007789ffb7324aa9190", & + "fd95008fe88812025e78065610", & + "3027849be8e99f9ef68eac1020", & + "88574e1ea39d87414b15e803a8", & + "89365b330e76e6dde740dced08", & + "c83f37b913ed0f6b802aaf21d8", & + "bdca7c1959caa7488b7eb13030", & + "794e0b4888e1ef42992287dd98", & + "526ac87fbaa790c6cd58864e08", & + "940518ba1a51c1da55bc8b2d70", & + "59c5e51ebfbd02ab30ff822378", & + "c81fff87866e04f8f3948c7f10", & + "7913513f3e2a3c0f76b69f6d68", & + "e43cc04da189c44803c4f740a0", & + "fdca7c1959ca85488b7eb13030", & + "95b07fce9b7b1bf4f057ca61b8", & + "d7db48a86691a0c0c9305aac90", & + "0d50bf79a59464597c43ba8058", & + "4a9c34b23fd5eaff8c9dc215e0", & + "3d5305a6f0427938eeb9d1c118", & + "55d8b6b58039f7a3a2d592a900", & + "784f349ecb74c4abbdbb073b90", & + "5973bbb2205f9d6a5c9a55c238", & + "5d2ee61006fec94f69f6b0f460", & + "9e1f52ef1e6589990dd0ce0cc8", & + "85b7b48f4b45775c9f8a36cc90", & + "ae1d6a0171168f6d70804b79f8", & + "a467aa9aa6cdc7094677c730d8", & + "dcf2f56c9ae20fb57e89b916d0", & + "3ae98d26ae96ea714c1a5146d0", & + "103c89581446805b8c71b2e638", & + "6783f3dfec835dd4e92131cc20", & + "52f88428c50f12c55876f7d8a8", & + "51fcb0e56a22fa3b7140aeaa80", & + "07c54871155603e65325f66cd8", & + "a8dd4fac47a113ee5706eef180", & + "f6cdc6f4cc1fa7e4db15bf86f8", & + "2e1c6a0171168f6d70c04a79f8", & + "2a90ab82bef6424db981752dc8", & + "845a1db59c193249d937e889d0", & + "a929d379f1769cb4baa4e41e90", & + "0c2a5829548d82223d6f566d48", & + "420087bc5c4e2f5bc139ad0220", & + "6df8d880ae7209fe52c69ede00", & + "dfbdcef29a985fd40d052d1a88", & + "8567fc332342b1ed8408f5fa00", & + "c908feb4e1866a24ca0c702a08", & + "645f5ee59f9f64fd43a5f2ec30", & + "bee56991e877baf3e9cf11b770", & + "649ea2e4194ca51be28abf3430", & + "90e7394c551bd58d00686d5420", & + "4e3cf731f8f89e8414214afaf0", & + "dcbf16aa8180a7712571e94f98", & + "9b456c015999c52b7fbd1ab390", & + "397ab76924659c4b8b3be4ac58", & + "4f5038c4f9da4b02bdfa178278", & + "4892fada978c98dd4fd363c450", & + "6c8af64b426bc474431c110c98", & + "84a553be5ef0e57390a5af05b0", & + "bed4a9347c9a2064f6d63ac0f8", & + "d973bbb2605f9d6a5c9a57c238", & + "1e3bee9a99fe10d3864ee669d8", & + "a590771ff185d807cb32f46000", & + "9a498fc4b549d81c625f80fc90", & + "28b3e72878aadee7e0e2617950", & + "96ce025d621a91396aa8f3ec20", & + "4f5a77becf838a590d6d406ea8", & + "52d3856dfb9fe78012f10e25c0", & + "b45323c2b28b4752ca0675d2e0", & + "3bae5a8452a785beb35851ad18", & + "65098832d20d915e75bea336e8", & + "5eb6f3c331098e8c0fbfa3aee0", & + "ef19d974a25540c8998fbf1df0", & + "403ea58feff08cf92d5cacc780", & + "6ba93204ddfa7bcb994aea8998", & + "653909166aa7bead4bd9c90020", & + "089cb20e639bc5a44da66f17c0", & + "10f803949961359e994f5ade88", & + "15b7ec1e6106cd55ef7d996590", & + "c99e99de9d85d2b999a17a95d8", & + "ca3e161b97148bac6dd28a6178", & + "e1ab199c992cb4c22aee115358", & + "ea8a4d0e96d3d9f827899b6d88", & + "8af4992d60223f021569a8ab60", & + "5087771abceb87a6d872291fe8", & + "d045e0812e217bb7bbdac92f30", & + "ccccd78ae5fa6e191f21c06908", & + "54545f37df6fed4734ef6509b0", & + "b0780327d899cbc03d95a81a48", & + "a4229c31f2b85e44a322273d50", & + "d182ab001c2085ea7be26a20d0", & + "1a82c30b4fba7dfaafb8d287a8", & + "d974fba598e7fb0630c1587db0", & + "b5c078a8cbab3e73728659ea20", & + "626bbf9eed1a8715c3a7d38f60", & + "c1efe9aa67130865fda93d8be8", & + "d39796dbce155df6306e7b77c0", & + "c7e7c1f032d7209b4549e84aa8", & + "d5799b30a1605baf6b9cd04960", & + "0baf2d21051a926dfd87046d70", & + "da8bf7d1e305c499b573c02cc8", & + "0ccaa7fffb9ae3e42dd0688328", & + "b951b62e18f5290ac13c195130", & + "79b006f001961fb233be80d0e8", & + "56637b6dedfd6e050f06404a48", & + "e0c4bf71a15597523bbd57bde0", & + "1312231ffa04426a34a8fab038", & + "db5f6f0455d24b8358d1cbc3d8", & + "d559e31b34d21f48e1f501af30"/ diff --git a/lib/fst240/ldpc_240_101_parity.f90 b/lib/fst240/ldpc_240_101_parity.f90 new file mode 100644 index 000000000..d3c1280c6 --- /dev/null +++ b/lib/fst240/ldpc_240_101_parity.f90 @@ -0,0 +1,393 @@ +data Mn/ & + 57, 100, 134, & + 56, 99, 136, & + 1, 12, 15, & + 2, 23, 72, & + 3, 133, 137, & + 4, 93, 125, & + 5, 68, 139, & + 6, 38, 55, & + 7, 40, 78, & + 8, 30, 84, & + 9, 17, 122, & + 10, 34, 95, & + 11, 36, 138, & + 13, 90, 132, & + 14, 50, 117, & + 16, 57, 83, & + 18, 22, 121, & + 19, 60, 89, & + 20, 98, 107, & + 21, 37, 61, & + 24, 26, 75, & + 25, 88, 115, & + 27, 49, 127, & + 28, 74, 119, & + 29, 111, 114, & + 31, 91, 129, & + 32, 96, 104, & + 30, 33, 130, & + 35, 65, 135, & + 41, 42, 87, & + 44, 108, 131, & + 45, 94, 101, & + 45, 46, 97, & + 47, 102, 134, & + 48, 64, 104, & + 19, 51, 116, & + 20, 52, 67, & + 53, 104, 113, & + 12, 54, 103, & + 58, 66, 88, & + 62, 80, 124, & + 63, 70, 71, & + 73, 114, 123, & + 76, 85, 128, & + 77, 106, 109, & + 46, 79, 126, & + 61, 81, 110, & + 82, 92, 120, & + 86, 105, 112, & + 66, 100, 118, & + 23, 51, 136, & + 1, 40, 53, & + 2, 73, 81, & + 3, 63, 130, & + 4, 68, 136, & + 5, 60, 78, & + 6, 72, 131, & + 7, 115, 124, & + 8, 89, 120, & + 9, 15, 44, & + 10, 22, 93, & + 11, 49, 100, & + 13, 55, 80, & + 14, 76, 95, & + 16, 54, 111, & + 17, 41, 110, & + 18, 69, 139, & + 21, 24, 116, & + 25, 39, 71, & + 26, 69, 90, & + 27, 101, 133, & + 28, 64, 126, & + 29, 94, 103, & + 31, 56, 57, & + 32, 91, 102, & + 33, 35, 129, & + 34, 47, 128, & + 36, 86, 117, & + 37, 74, 75, & + 38, 79, 106, & + 42, 82, 123, & + 43, 77, 99, & + 48, 70, 92, & + 50, 109, 118, & + 52, 112, 119, & + 58, 62, 108, & + 59, 84, 134, & + 57, 65, 122, & + 67, 97, 113, & + 83, 127, 135, & + 85, 121, 125, & + 87, 132, 137, & + 96, 98, 105, & + 73, 107, 138, & + 1, 83, 89, & + 2, 41, 70, & + 3, 35, 131, & + 4, 111, 128, & + 5, 29, 99, & + 6, 25, 31, & + 7, 19, 96, & + 1, 39, 110, & + 2, 7, 117, & + 3, 49, 109, & + 4, 81, 96, & + 5, 100, 108, & + 6, 51, 124, & + 2, 20, 132, & + 8, 80, 137, & + 9, 56, 67, & + 10, 63, 102, & + 11, 16, 101, & + 12, 115, 122, & + 13, 32, 128, & + 14, 15, 130, & + 14, 70, 99, & + 11, 51, 69, & + 17, 89, 105, & + 18, 83, 99, & + 19, 44, 79, & + 20, 106, 133, & + 10, 21, 123, & + 22, 23, 61, & + 16, 22, 60, & + 24, 38, 114, & + 25, 37, 42, & + 26, 43, 52, & + 27, 68, 71, & + 28, 65, 139, & + 29, 62, 69, & + 30, 92, 126, & + 31, 78, 123, & + 13, 44, 78, & + 33, 40, 120, & + 7, 34, 119, & + 4, 35, 77, & + 12, 36, 52, & + 25, 98, 136, & + 5, 24, 133, & + 1, 80, 91, & + 33, 96, 97, & + 34, 41, 91, & + 32, 37, 117, & + 26, 72, 125, & + 19, 65, 75, & + 45, 131, 136, & + 46, 55, 70, & + 47, 48, 50, & + 6, 48, 94, & + 3, 74, 79, & + 39, 50, 126, & + 23, 118, 127, & + 21, 36, 113, & + 53, 77, 134, & + 30, 54, 55, & + 17, 46, 135, & + 9, 92, 102, & + 57, 85, 87, & + 58, 125, 138, & + 59, 76, 93, & + 60, 66, 107, & + 47, 132, 138, & + 29, 85, 131, & + 43, 73, 108, & + 64, 75, 129, & + 28, 38, 53, & + 61, 106, 122, & + 56, 71, 114, & + 27, 57, 120, & + 62, 67, 130, & + 54, 104, 118, & + 8, 68, 115, & + 72, 86, 111, & + 73, 74, 94, & + 49, 105, 113, & + 42, 86, 121, & + 40, 59, 109, & + 35, 88, 95, & + 31, 107, 112, & + 58, 64, 87, & + 68, 79, 104, & + 1, 5, 121, & + 15, 82, 93, & + 18, 88, 116, & + 82, 84, 119, & + 7, 71, 103, & + 4, 80, 94, & + 63, 81, 84, & + 66, 76, 137, & + 83, 124, 129, & + 90, 112, 116, & + 89, 111, 134, & + 6, 21, 120, & + 3, 16, 25, & + 12, 28, 131, & + 45, 95, 110, & + 17, 93, 124, & + 97, 121, 127, & + 98, 103, 135, & + 8, 99, 138, & + 41, 101, 139, & + 13, 24, 105, & + 14, 53, 107, & + 10, 64, 98, & + 11, 35, 78, & + 90, 100, 103, & + 9, 72, 101, & + 18, 74, 92, & + 15, 73, 87, & + 2, 88, 113, & + 20, 55, 85, & + 19, 67, 110, & + 26, 27, 95, & + 22, 50, 114, & + 29, 49, 81, & + 32, 52, 83, & + 30, 37, 77, & + 39, 128, 135, & + 23, 128, 130, & + 36, 76, 126, & + 33, 132, 139, & + 34, 89, 118, & + 38, 58, 127, & + 31, 54, 125, & + 40, 70, 75, & + 41, 109, 116, & + 43, 60, 63, & + 44, 84, 86, & + 42, 47, 62, & + 45, 82, 90, & + 43, 46, 91, & + 48, 112, 122, & + 51, 102, 133, & + 59, 61, 108, & + 65, 117, 137, & + 56, 66, 96, & + 59, 69, 104, & + 39, 69, 119, & + 97, 115, 123, & + 106, 111, 129/ + +data Nm/ & + 3, 52, 95, 102, 140, 182, & + 4, 53, 96, 103, 108, 210, & + 5, 54, 97, 104, 150, 194, & + 6, 55, 98, 105, 136, 187, & + 7, 56, 99, 106, 139, 182, & + 8, 57, 100, 107, 149, 193, & + 9, 58, 101, 103, 135, 186, & + 10, 59, 109, 172, 200, 0, & + 11, 60, 110, 157, 207, 0, & + 12, 61, 111, 122, 204, 0, & + 13, 62, 112, 117, 205, 0, & + 3, 39, 113, 137, 195, 0, & + 14, 63, 114, 133, 202, 0, & + 15, 64, 115, 116, 203, 0, & + 3, 60, 115, 183, 209, 0, & + 16, 65, 112, 124, 194, 0, & + 11, 66, 118, 156, 197, 0, & + 17, 67, 119, 184, 208, 0, & + 18, 36, 101, 120, 145, 212, & + 19, 37, 108, 121, 211, 0, & + 20, 68, 122, 153, 193, 0, & + 17, 61, 123, 124, 214, 0, & + 4, 51, 123, 152, 219, 0, & + 21, 68, 125, 139, 202, 0, & + 22, 69, 100, 126, 138, 194, & + 21, 70, 127, 144, 213, 0, & + 23, 71, 128, 169, 213, 0, & + 24, 72, 129, 166, 195, 0, & + 25, 73, 99, 130, 163, 215, & + 10, 28, 131, 155, 217, 0, & + 26, 74, 100, 132, 179, 224, & + 27, 75, 114, 143, 216, 0, & + 28, 76, 134, 141, 221, 0, & + 12, 77, 135, 142, 222, 0, & + 29, 76, 97, 136, 178, 205, & + 13, 78, 137, 153, 220, 0, & + 20, 79, 126, 143, 217, 0, & + 8, 80, 125, 166, 223, 0, & + 69, 102, 151, 218, 238, 0, & + 9, 52, 134, 177, 225, 0, & + 30, 66, 96, 142, 201, 226, & + 30, 81, 126, 176, 229, 0, & + 82, 127, 164, 227, 231, 0, & + 31, 60, 120, 133, 228, 0, & + 32, 33, 146, 196, 230, 0, & + 33, 46, 147, 156, 231, 0, & + 34, 77, 148, 162, 229, 0, & + 35, 83, 148, 149, 232, 0, & + 23, 62, 104, 175, 215, 0, & + 15, 84, 148, 151, 214, 0, & + 36, 51, 107, 117, 233, 0, & + 37, 85, 127, 137, 216, 0, & + 38, 52, 154, 166, 203, 0, & + 39, 65, 155, 171, 224, 0, & + 8, 63, 147, 155, 211, 0, & + 2, 74, 110, 168, 236, 0, & + 1, 16, 74, 88, 158, 169, & + 40, 86, 159, 180, 223, 0, & + 87, 160, 177, 234, 237, 0, & + 18, 56, 124, 161, 227, 0, & + 20, 47, 123, 167, 234, 0, & + 41, 86, 130, 170, 229, 0, & + 42, 54, 111, 188, 227, 0, & + 35, 72, 165, 180, 204, 0, & + 29, 88, 129, 145, 235, 0, & + 40, 50, 161, 189, 236, 0, & + 37, 89, 110, 170, 212, 0, & + 7, 55, 128, 172, 181, 0, & + 67, 70, 117, 130, 237, 238, & + 42, 83, 96, 116, 147, 225, & + 42, 69, 128, 168, 186, 0, & + 4, 57, 144, 173, 207, 0, & + 43, 53, 94, 164, 174, 209, & + 24, 79, 150, 174, 208, 0, & + 21, 79, 145, 165, 225, 0, & + 44, 64, 160, 189, 220, 0, & + 45, 82, 136, 154, 217, 0, & + 9, 56, 132, 133, 205, 0, & + 46, 80, 120, 150, 181, 0, & + 41, 63, 109, 140, 187, 0, & + 47, 53, 105, 188, 215, 0, & + 48, 81, 183, 185, 230, 0, & + 16, 90, 95, 119, 190, 216, & + 10, 87, 185, 188, 228, 0, & + 44, 91, 158, 163, 211, 0, & + 49, 78, 173, 176, 228, 0, & + 30, 92, 158, 180, 209, 0, & + 22, 40, 178, 184, 210, 0, & + 18, 59, 95, 118, 192, 222, & + 14, 70, 191, 206, 230, 0, & + 26, 75, 140, 142, 231, 0, & + 48, 83, 131, 157, 208, 0, & + 6, 61, 160, 183, 197, 0, & + 32, 73, 149, 174, 187, 0, & + 12, 64, 178, 196, 213, 0, & + 27, 93, 101, 105, 141, 236, & + 33, 89, 141, 198, 239, 0, & + 19, 93, 138, 199, 204, 0, & + 2, 82, 99, 116, 119, 200, & + 1, 50, 62, 106, 206, 0, & + 32, 71, 112, 201, 207, 0, & + 34, 75, 111, 157, 233, 0, & + 39, 73, 186, 199, 206, 0, & + 27, 35, 38, 171, 181, 237, & + 49, 93, 118, 175, 202, 0, & + 45, 80, 121, 167, 240, 0, & + 19, 94, 161, 179, 203, 0, & + 31, 86, 106, 164, 234, 0, & + 45, 84, 104, 177, 226, 0, & + 47, 66, 102, 196, 212, 0, & + 25, 65, 98, 173, 192, 240, & + 49, 85, 179, 191, 232, 0, & + 38, 89, 153, 175, 210, 0, & + 25, 43, 125, 168, 214, 0, & + 22, 58, 113, 172, 239, 0, & + 36, 68, 184, 191, 226, 0, & + 15, 78, 103, 143, 235, 0, & + 50, 84, 152, 171, 222, 0, & + 24, 85, 135, 185, 238, 0, & + 48, 59, 134, 169, 193, 0, & + 17, 91, 176, 182, 198, 0, & + 11, 88, 113, 167, 232, 0, & + 43, 81, 122, 132, 239, 0, & + 41, 58, 107, 190, 197, 0, & + 6, 91, 144, 159, 224, 0, & + 46, 72, 131, 151, 220, 0, & + 23, 90, 152, 198, 223, 0, & + 44, 77, 98, 114, 218, 219, & + 26, 76, 165, 190, 240, 0, & + 28, 54, 115, 170, 219, 0, & + 31, 57, 97, 146, 163, 195, & + 14, 92, 108, 162, 221, 0, & + 5, 71, 121, 139, 233, 0, & + 1, 34, 87, 154, 192, 0, & + 29, 90, 156, 199, 218, 0, & + 2, 51, 55, 138, 146, 0, & + 5, 92, 109, 189, 235, 0, & + 13, 94, 159, 162, 200, 0, & + 7, 67, 129, 201, 221, 0/ + +data nrw/ & +6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,6,5, & +5,5,5,5,6,5,5,5,6,5,6,5,5,5,6,5,5,5,5,5, & +6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,5,5, & +5,5,5,5,5,5,5,5,6,6,5,5,6,5,5,5,5,5,5,5, & +5,5,6,5,5,5,5,5,6,5,5,5,5,5,5,6,5,5,6,5, & +5,5,5,6,5,5,5,5,5,5,6,5,5,5,5,5,5,5,5,5, & +5,5,5,5,5,5,5,6,5,5,6,5,5,5,5,5,5,5,5/ + +ncw=3 diff --git a/lib/fst280/ldpc_280_101_generator.f90 b/lib/fst240/ldpc_280_101_generator.f90 similarity index 100% rename from lib/fst280/ldpc_280_101_generator.f90 rename to lib/fst240/ldpc_280_101_generator.f90 diff --git a/lib/fst280/ldpc_280_101_parity.f90 b/lib/fst240/ldpc_280_101_parity.f90 similarity index 100% rename from lib/fst280/ldpc_280_101_parity.f90 rename to lib/fst240/ldpc_280_101_parity.f90 diff --git a/lib/fst280/ldpc_280_74_generator.f90 b/lib/fst240/ldpc_280_74_generator.f90 similarity index 100% rename from lib/fst280/ldpc_280_74_generator.f90 rename to lib/fst240/ldpc_280_74_generator.f90 diff --git a/lib/fst280/ldpc_280_74_parity.f90 b/lib/fst240/ldpc_280_74_parity.f90 similarity index 100% rename from lib/fst280/ldpc_280_74_parity.f90 rename to lib/fst240/ldpc_280_74_parity.f90 diff --git a/lib/fst240/ldpcsim240_101.f90 b/lib/fst240/ldpcsim240_101.f90 new file mode 100644 index 000000000..55121b5c3 --- /dev/null +++ b/lib/fst240/ldpcsim240_101.f90 @@ -0,0 +1,143 @@ +program ldpcsim240_101 + +! End-to-end test of the (240,101)/crc24 encoder and decoders. + + use packjt77 + + parameter(N=240, K=101, M=N-K) + character*8 arg + character*37 msg0,msg + character*77 c77 + character*24 c24 + integer*1 msgbits(101) + integer*1 apmask(240) + integer*1 cw(240) + integer*1 codeword(N),message101(101) + integer ncrc24 + real rxdata(N),llr(N) + logical first,unpk77_success + data first/.true./ + + nargs=iargc() + if(nargs.ne.5 .and. nargs.ne.6) then + print*,'Usage: ldpcsim niter ndeep #trials s K [msg]' + print*,'e.g. ldpcsim240_101 20 5 1000 0.85 91 "K9AN K1JT FN20"' + print*,'s : if negative, then value is ignored and sigma is calculated from SNR.' + print*,'niter: is the number of BP iterations.' + print*,'ndeep: -1 is BP only, ndeep>=0 is OSD order' + print*,'K :is the number of message+CRC bits and must be in the range [77,101]' + print*,'WSPR-format message is optional' + return + endif + call getarg(1,arg) + read(arg,*) max_iterations + call getarg(2,arg) + read(arg,*) ndeep + call getarg(3,arg) + read(arg,*) ntrials + call getarg(4,arg) + read(arg,*) s + call getarg(5,arg) + read(arg,*) Keff + msg0='K9AN K1JT FN20 ' + if(nargs.eq.6) call getarg(6,msg0) + call pack77(msg0,i3,n3,c77) + + rate=real(Keff)/real(N) + + write(*,*) "code rate: ",rate + write(*,*) "niter : ",max_iterations + write(*,*) "ndeep : ",ndeep + write(*,*) "s : ",s + write(*,*) "K : ",Keff + + msgbits=0 + read(c77,'(77i1)') msgbits(1:77) + write(*,*) 'message' + write(*,'(77i1)') msgbits(1:77) + + call get_crc24(msgbits,101,ncrc24) + write(c24,'(b24.24)') ncrc24 + read(c24,'(24i1)') msgbits(78:101) +write(*,'(24i1)') msgbits(78:101) + write(*,*) 'message with crc24' + write(*,'(101i1)') msgbits(1:101) + call encode240_101(msgbits,codeword) + call init_random_seed() + call sgran() + + write(*,*) 'codeword' + write(*,'(77i1,1x,24i1,1x,73i1)') codeword + + write(*,*) "Eb/N0 Es/N0 ngood nundetected sigma symbol error rate" + do idb = 8,-3,-1 + db=idb/2.0-1.0 + sigma=1/sqrt( 2*rate*(10**(db/10.0)) ) ! to make db represent Eb/No +! sigma=1/sqrt( 2*(10**(db/10.0)) ) ! db represents Es/No + ngood=0 + nue=0 + nberr=0 + do itrial=1, ntrials +! Create a realization of a noisy received word + do i=1,N + rxdata(i) = 2.0*codeword(i)-1.0 + sigma*gran() + enddo + nerr=0 + do i=1,N + if( rxdata(i)*(2*codeword(i)-1.0) .lt. 0 ) nerr=nerr+1 + enddo + nberr=nberr+nerr + + rxav=sum(rxdata)/N + rx2av=sum(rxdata*rxdata)/N + rxsig=sqrt(rx2av-rxav*rxav) + rxdata=rxdata/rxsig + if( s .lt. 0 ) then + ss=sigma + else + ss=s + endif + + llr=2.0*rxdata/(ss*ss) + apmask=0 +! max_iterations is max number of belief propagation iterations + call bpdecode240_101(llr,apmask,max_iterations,message101,cw,nharderror,niterations,nchecks) + dmin=0.0 + if( (nharderror .lt. 0) .and. (ndeep .ge. 0) ) then +! call osd240_101(llr, Keff, apmask, ndeep, message101, cw, nharderror, dmin) + maxsuper=2 + call decode240_101(llr, Keff, ndeep, apmask, maxsuper, message101, cw, nharderror, iterations, ncheck, dmin, isuper) + endif + + if(nharderror.ge.0) then + n2err=0 + do i=1,N + if( cw(i)*(2*codeword(i)-1.0) .lt. 0 ) n2err=n2err+1 + enddo + if(n2err.eq.0) then + ngood=ngood+1 + else + nue=nue+1 + endif + endif + enddo +! snr2500=db+10*log10(200.0/116.0/2500.0) + esn0=db+10*log10(rate) + pberr=real(nberr)/(real(ntrials*N)) + write(*,"(f4.1,4x,f5.1,1x,i8,1x,i8,8x,f5.2,8x,e10.3)") db,esn0,ngood,nue,ss,pberr + + if(first) then + write(c77,'(77i1)') message101(1:77) +write(*,'(101i1)') message101 + call unpack77(c77,0,msg,unpk77_success) + if(unpk77_success) then + write(*,1100) msg(1:37) +1100 format('Decoded message: ',a37) + else + print*,'Error unpacking message' + endif + first=.false. + endif + enddo + +end program ldpcsim240_101 diff --git a/lib/fst280/ldpcsim280_101.f90 b/lib/fst240/ldpcsim280_101.f90 similarity index 100% rename from lib/fst280/ldpcsim280_101.f90 rename to lib/fst240/ldpcsim280_101.f90 diff --git a/lib/fst280/ldpcsim280_74.f90 b/lib/fst240/ldpcsim280_74.f90 similarity index 100% rename from lib/fst280/ldpcsim280_74.f90 rename to lib/fst240/ldpcsim280_74.f90 diff --git a/lib/fst240/osd240_101.f90 b/lib/fst240/osd240_101.f90 new file mode 100644 index 000000000..5e9f5d195 --- /dev/null +++ b/lib/fst240/osd240_101.f90 @@ -0,0 +1,403 @@ +subroutine osd240_101(llr,k,apmask,ndeep,message101,cw,nhardmin,dmin) +! +! An ordered-statistics decoder for the (240,101) code. +! Message payload is 77 bits. Any or all of a 24-bit CRC can be +! used for detecting incorrect codewords. The remaining CRC bits are +! cascaded with the LDPC code for the purpose of improving the +! distance spectrum of the code. +! +! If p1 (0.le.p1.le.24) is the number of CRC24 bits that are +! to be used for bad codeword detection, then the argument k should +! be set to 77+p1. +! +! Valid values for k are in the range [77,101]. +! + character*24 c24 + integer, parameter:: N=240 + integer*1 apmask(N),apmaskr(N) + integer*1, allocatable, save :: gen(:,:) + integer*1, allocatable :: genmrb(:,:),g2(:,:) + integer*1, allocatable :: temp(:),m0(:),me(:),mi(:),misub(:),e2sub(:),e2(:),ui(:) + integer*1, allocatable :: r2pat(:) + integer indices(N),nxor(N) + integer*1 cw(N),ce(N),c0(N),hdec(N) + integer*1, allocatable :: decoded(:) + integer*1 message101(101) + integer indx(N) + real llr(N),rx(N),absrx(N) + + logical first,reset + data first/.true./ + save first + + allocate( genmrb(k,N), g2(N,k) ) + allocate( temp(k), m0(k), me(k), mi(k), misub(k), e2sub(N-k), e2(N-k), ui(N-k) ) + allocate( r2pat(N-k), decoded(k) ) + + if( first ) then ! fill the generator matrix +! +! Create generator matrix for partial CRC cascaded with LDPC code. +! +! Let p2=101-k and p1+p2=24. +! +! The last p2 bits of the CRC24 are cascaded with the LDPC code. +! +! The first p1=k-77 CRC24 bits will be used for error detection. +! + allocate( gen(k,N) ) + gen=0 + do i=1,k + message101=0 + message101(i)=1 + if(i.le.77) then + call get_crc24(message101,101,ncrc24) + write(c24,'(b24.24)') ncrc24 + read(c24,'(24i1)') message101(78:101) + message101(78:k)=0 + endif + call encode240_101(message101,cw) + gen(i,:)=cw + enddo + + first=.false. + endif + + rx=llr + apmaskr=apmask + +! Hard decisions on the received word. + hdec=0 + where(rx .ge. 0) hdec=1 + +! Use magnitude of received symbols as a measure of reliability. + absrx=abs(rx) + call indexx(absrx,N,indx) + +! Re-order the columns of the generator matrix in order of decreasing reliability. + do i=1,N + genmrb(1:k,i)=gen(1:k,indx(N+1-i)) + indices(i)=indx(N+1-i) + enddo + +! Do gaussian elimination to create a generator matrix with the most reliable +! received bits in positions 1:k in order of decreasing reliability (more or less). + do id=1,k ! diagonal element indices + do icol=id,k+20 ! The 20 is ad hoc - beware + iflag=0 + if( genmrb(id,icol) .eq. 1 ) then + iflag=1 + if( icol .ne. id ) then ! reorder column + temp(1:k)=genmrb(1:k,id) + genmrb(1:k,id)=genmrb(1:k,icol) + genmrb(1:k,icol)=temp(1:k) + itmp=indices(id) + indices(id)=indices(icol) + indices(icol)=itmp + endif + do ii=1,k + if( ii .ne. id .and. genmrb(ii,id) .eq. 1 ) then + genmrb(ii,1:N)=ieor(genmrb(ii,1:N),genmrb(id,1:N)) + endif + enddo + exit + endif + enddo + enddo + + g2=transpose(genmrb) + +! The hard decisions for the k MRB bits define the order 0 message, m0. +! Encode m0 using the modified generator matrix to find the "order 0" codeword. +! Flip various combinations of bits in m0 and re-encode to generate a list of +! codewords. Return the member of the list that has the smallest Euclidean +! distance to the received word. + + hdec=hdec(indices) ! hard decisions from received symbols + m0=hdec(1:k) ! zero'th order message + absrx=absrx(indices) + rx=rx(indices) + apmaskr=apmaskr(indices) + + call mrbencode101(m0,c0,g2,N,k) + nxor=ieor(c0,hdec) + nhardmin=sum(nxor) + dmin=sum(nxor*absrx) + + cw=c0 + ntotal=0 + nrejected=0 + npre1=0 + npre2=0 + + if(ndeep.eq.0) goto 998 ! norder=0 + if(ndeep.gt.6) ndeep=6 + if( ndeep.eq. 1) then + nord=1 + npre1=0 + npre2=0 + nt=40 + ntheta=12 + elseif(ndeep.eq.2) then + nord=1 + npre1=1 + npre2=0 + nt=40 + ntheta=12 + elseif(ndeep.eq.3) then + nord=1 + npre1=1 + npre2=1 + nt=40 + ntheta=12 + ntau=14 + elseif(ndeep.eq.4) then + nord=2 + npre1=1 + npre2=1 + nt=40 + ntheta=12 + ntau=17 + elseif(ndeep.eq.5) then + nord=3 + npre1=1 + npre2=1 + nt=40 + ntheta=12 + ntau=15 + elseif(ndeep.eq.6) then + nord=4 + npre1=1 + npre2=1 + nt=95 + ntheta=12 + ntau=15 + endif + + do iorder=1,nord + misub(1:k-iorder)=0 + misub(k-iorder+1:k)=1 + iflag=k-iorder+1 + do while(iflag .ge.0) + if(iorder.eq.nord .and. npre1.eq.0) then + iend=iflag + else + iend=1 + endif + d1=0. + do n1=iflag,iend,-1 + mi=misub + mi(n1)=1 + if(any(iand(apmaskr(1:k),mi).eq.1)) cycle + ntotal=ntotal+1 + me=ieor(m0,mi) + if(n1.eq.iflag) then + call mrbencode101(me,ce,g2,N,k) + e2sub=ieor(ce(k+1:N),hdec(k+1:N)) + e2=e2sub + nd1kpt=sum(e2sub(1:nt))+1 + d1=sum(ieor(me(1:k),hdec(1:k))*absrx(1:k)) + else + e2=ieor(e2sub,g2(k+1:N,n1)) + nd1kpt=sum(e2(1:nt))+2 + endif + if(nd1kpt .le. ntheta) then + call mrbencode101(me,ce,g2,N,k) + nxor=ieor(ce,hdec) + if(n1.eq.iflag) then + dd=d1+sum(e2sub*absrx(k+1:N)) + else + dd=d1+ieor(ce(n1),hdec(n1))*absrx(n1)+sum(e2*absrx(k+1:N)) + endif + if( dd .lt. dmin ) then + dmin=dd + cw=ce + nhardmin=sum(nxor) + nd1kptbest=nd1kpt + endif + else + nrejected=nrejected+1 + endif + enddo +! Get the next test error pattern, iflag will go negative +! when the last pattern with weight iorder has been generated. + call nextpat101(misub,k,iorder,iflag) + enddo + enddo + + if(npre2.eq.1) then + reset=.true. + ntotal=0 + do i1=k,1,-1 + do i2=i1-1,1,-1 + ntotal=ntotal+1 + mi(1:ntau)=ieor(g2(k+1:k+ntau,i1),g2(k+1:k+ntau,i2)) + call boxit101(reset,mi(1:ntau),ntau,ntotal,i1,i2) + enddo + enddo + + ncount2=0 + ntotal2=0 + reset=.true. +! Now run through again and do the second pre-processing rule + misub(1:k-nord)=0 + misub(k-nord+1:k)=1 + iflag=k-nord+1 + do while(iflag .ge.0) + me=ieor(m0,misub) + call mrbencode101(me,ce,g2,N,k) + e2sub=ieor(ce(k+1:N),hdec(k+1:N)) + do i2=0,ntau + ntotal2=ntotal2+1 + ui=0 + if(i2.gt.0) ui(i2)=1 + r2pat=ieor(e2sub,ui) +778 continue + call fetchit101(reset,r2pat(1:ntau),ntau,in1,in2) + if(in1.gt.0.and.in2.gt.0) then + ncount2=ncount2+1 + mi=misub + mi(in1)=1 + mi(in2)=1 + if(sum(mi).lt.nord+npre1+npre2.or.any(iand(apmaskr(1:k),mi).eq.1)) cycle + me=ieor(m0,mi) + call mrbencode101(me,ce,g2,N,k) + nxor=ieor(ce,hdec) + dd=sum(nxor*absrx) + if( dd .lt. dmin ) then + dmin=dd + cw=ce + nhardmin=sum(nxor) + endif + goto 778 + endif + enddo + call nextpat101(misub,k,nord,iflag) + enddo + endif + +998 continue +! Re-order the codeword to [message bits][parity bits] format. + cw(indices)=cw + hdec(indices)=hdec + message101=cw(1:101) + call get_crc24(message101,101,nbadcrc) + if(nbadcrc.ne.0) nhardmin=-nhardmin + + return +end subroutine osd240_101 + +subroutine mrbencode101(me,codeword,g2,N,K) + integer*1 me(K),codeword(N),g2(N,K) +! fast encoding for low-weight test patterns + codeword=0 + do i=1,K + if( me(i) .eq. 1 ) then + codeword=ieor(codeword,g2(1:N,i)) + endif + enddo + return +end subroutine mrbencode101 + +subroutine nextpat101(mi,k,iorder,iflag) + integer*1 mi(k),ms(k) +! generate the next test error pattern + ind=-1 + do i=1,k-1 + if( mi(i).eq.0 .and. mi(i+1).eq.1) ind=i + enddo + if( ind .lt. 0 ) then ! no more patterns of this order + iflag=ind + return + endif + ms=0 + ms(1:ind-1)=mi(1:ind-1) + ms(ind)=1 + ms(ind+1)=0 + if( ind+1 .lt. k ) then + nz=iorder-sum(ms) + ms(k-nz+1:k)=1 + endif + mi=ms + do i=1,k ! iflag will point to the lowest-index 1 in mi + if(mi(i).eq.1) then + iflag=i + exit + endif + enddo + return +end subroutine nextpat101 + +subroutine boxit101(reset,e2,ntau,npindex,i1,i2) + integer*1 e2(1:ntau) + integer indexes(5000,2),fp(0:525000),np(5000) + logical reset + common/boxes/indexes,fp,np + + if(reset) then + patterns=-1 + fp=-1 + np=-1 + sc=-1 + indexes=-1 + reset=.false. + endif + + indexes(npindex,1)=i1 + indexes(npindex,2)=i2 + ipat=0 + do i=1,ntau + if(e2(i).eq.1) then + ipat=ipat+ishft(1,ntau-i) + endif + enddo + + ip=fp(ipat) ! see what's currently stored in fp(ipat) + if(ip.eq.-1) then + fp(ipat)=npindex + else + do while (np(ip).ne.-1) + ip=np(ip) + enddo + np(ip)=npindex + endif + return +end subroutine boxit101 + +subroutine fetchit101(reset,e2,ntau,i1,i2) + integer indexes(5000,2),fp(0:525000),np(5000) + integer lastpat + integer*1 e2(ntau) + logical reset + common/boxes/indexes,fp,np + save lastpat,inext + + if(reset) then + lastpat=-1 + reset=.false. + endif + + ipat=0 + do i=1,ntau + if(e2(i).eq.1) then + ipat=ipat+ishft(1,ntau-i) + endif + enddo + index=fp(ipat) + + if(lastpat.ne.ipat .and. index.gt.0) then ! return first set of indices + i1=indexes(index,1) + i2=indexes(index,2) + inext=np(index) + elseif(lastpat.eq.ipat .and. inext.gt.0) then + i1=indexes(inext,1) + i2=indexes(inext,2) + inext=np(inext) + else + i1=-1 + i2=-1 + inext=-1 + endif + lastpat=ipat + return +end subroutine fetchit101 + diff --git a/lib/fst280/osd280_101.f90 b/lib/fst240/osd280_101.f90 similarity index 100% rename from lib/fst280/osd280_101.f90 rename to lib/fst240/osd280_101.f90 diff --git a/lib/fst280/osd280_74.f90 b/lib/fst240/osd280_74.f90 similarity index 100% rename from lib/fst280/osd280_74.f90 rename to lib/fst240/osd280_74.f90 diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 new file mode 100644 index 000000000..231e00e84 --- /dev/null +++ b/lib/fst240_decode.f90 @@ -0,0 +1,554 @@ +module fst240_decode + + type :: fst240_decoder + procedure(fst240_decode_callback), pointer :: callback + contains + procedure :: decode + end type fst240_decoder + + abstract interface + subroutine fst240_decode_callback (this,nutc,sync,nsnr,dt,freq, & + decoded,nap,qual,ntrperiod) + import fst240_decoder + implicit none + class(fst240_decoder), intent(inout) :: this + integer, intent(in) :: nutc + real, intent(in) :: sync + integer, intent(in) :: nsnr + real, intent(in) :: dt + real, intent(in) :: freq + character(len=37), intent(in) :: decoded + integer, intent(in) :: nap + real, intent(in) :: qual + integer, intent(in) :: ntrperiod + end subroutine fst240_decode_callback + end interface + +contains + + subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfqso, & + nfa,nfb,nsubmode,ndeep,ntrperiod,nexp_decode,ntol) + + use timer_module, only: timer + use packjt77 + include 'fst240/fst240_params.f90' + parameter (MAXCAND=100) + class(fst240_decoder), intent(inout) :: this + procedure(fst240_decode_callback) :: callback + character*37 decodes(100) + character*37 msg + character*77 c77 + complex, allocatable :: c2(:) + complex, allocatable :: cframe(:) + complex, allocatable :: c_bigfft(:) !Complex waveform + real, allocatable :: r_data(:) + real llr(240),llra(240),llrb(240),llrc(240),llrd(240) + real candidates(100,4) + real bitmetrics(320,4) + real s4(0:3,NN) + integer itone(NN) + integer hmod + integer*1 apmask(240),cw(240) + integer*1 hbits(320) + integer*1 message101(101),message74(74) + logical badsync,unpk77_success,single_decode + integer*2 iwave(300*12000) + + this%callback => callback + hmod=2**nsubmode + if(nfqso+nqsoprogress.eq.-999) return + Keff=91 + iwspr=0 + nmax=15*12000 + single_decode=iand(nexp_decode,32).eq.32 + if(ntrperiod.eq.15) then + nsps=800 + nmax=15*12000 + ndown=20/hmod !nss=40,80,160,400 + if(hmod.eq.8) ndown=2 + else if(ntrperiod.eq.30) then + nsps=1680 + nmax=30*12000 + ndown=42/hmod !nss=40,80,168,336 + if(hmod.eq.4) ndown=10 + if(hmod.eq.8) ndown=5 + else if(ntrperiod.eq.60) then + nsps=3888 + nmax=60*12000 + ndown=96/hmod !nss=36,81,162,324 + if(hmod.eq.1) ndown=108 + else if(ntrperiod.eq.120) then + nsps=8200 + nmax=120*12000 + ndown=200/hmod !nss=40,82,164,328 + if(hmod.eq.1) ndown=205 + else if(ntrperiod.eq.300) then + nsps=21504 + nmax=300*12000 + ndown=512/hmod !nss=42,84,168,336 + end if + nss=nsps/ndown + fs=12000.0 !Sample rate + fs2=fs/ndown + nspsec=nint(fs2) + dt=1.0/fs !Sample interval (s) + dt2=1.0/fs2 + tt=nsps*dt !Duration of "itone" symbols (s) + baud=1.0/tt + nfft1=2*int(nmax/2) + nh1=nfft1/2 + allocate( r_data(1:nfft1+2) ) + allocate( c_bigfft(0:nfft1/2) ) + + nfft2=nfft1/ndown + allocate( c2(0:nfft2-1) ) + allocate( cframe(0:164*nss-1) ) + + npts=nmax + if(single_decode) then + fa=max(100,nint(nfqso+1.5*hmod*baud-ntol)) + fb=min(4800,nint(nfqso+1.5*hmod*baud+ntol)) + else + fa=max(100,nfa) + fb=min(4800,nfb) + endif + + if(ndeep.eq.3) then + ntmax=4 ! number of block sizes to try + jittermax=2 + norder=3 + elseif(ndeep.eq.2) then + ntmax=3 + jittermax=2 + norder=3 + elseif(ndeep.eq.1) then + ntmax=1 + jittermax=2 + norder=2 + endif + + ! The big fft is done once and is used for calculating the smoothed spectrum +! and also for downconverting/downsampling each candidate. + r_data(1:nfft1)=iwave(1:nfft1) + r_data(nfft1+1:nfft1+2)=0.0 + call four2a(r_data,nfft1,1,-1,0) + c_bigfft=cmplx(r_data(1:nfft1+2:2),r_data(2:nfft1+2:2)) + +! Get first approximation of candidate frequencies + call get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & + ncand,candidates,base) + + ndecodes=0 + decodes=' ' + + isbest1=0 + isbest8=0 + fc21=0. + fc28=0. + do icand=1,ncand + fc0=candidates(icand,1) + detmet=candidates(icand,2) + +! Downconvert and downsample a slice of the spectrum centered on the +! rough estimate of the candidates frequency. +! Output array c2 is complex baseband sampled at 12000/ndown Sa/sec. +! The size of the downsampled c2 array is nfft2=nfft1/ndown + + call fst240_downsample(c_bigfft,nfft1,ndown,fc0,c2) + + call timer('sync240 ',0) + do isync=0,1 + if(isync.eq.0) then + fc1=0.0 + is0=1.5*nint(fs2) + ishw=1.5*is0 + isst=4*hmod + ifhw=12 + df=.1*baud + else if(isync.eq.1) then + fc1=fc21 + if(hmod.eq.1) fc1=fc28 + is0=isbest1 + if(hmod.eq.1) is0=isbest8 + ishw=4*hmod + isst=1*hmod + ifhw=7 + df=.02*baud + endif + + smax1=0.0 + smax8=0.0 + do if=-ifhw,ifhw + fc=fc1+df*if + do istart=max(1,is0-ishw),is0+ishw,isst + call sync_fst240(c2,istart,fc,hmod,1,nfft2,nss,fs2,sync1) + call sync_fst240(c2,istart,fc,hmod,8,nfft2,nss,fs2,sync8) + if(sync8.gt.smax8) then + fc28=fc + isbest8=istart + smax8=sync8 + endif + if(sync1.gt.smax1) then + fc21=fc + isbest1=istart + smax1=sync1 + endif + enddo + enddo + enddo + call timer('sync240 ',1) + + if(smax8/smax1 .lt. 0.65 ) then + fc2=fc21 + isbest=isbest1 + if(hmod.gt.1) ntmax=1 + njitter=2 + else + fc2=fc28 + isbest=isbest8 + if(hmod.gt.1) ntmax=1 + njitter=2 + endif + fc_synced = fc0 + fc2 + dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 + candidates(icand,3)=fc_synced + candidates(icand,4)=isbest + enddo +! remove duplicate candidates + do icand=1,ncand + fc=candidates(icand,3) + isbest=nint(candidates(icand,4)) + do ic2=1,ncand + fc2=candidates(ic2,3) + isbest2=nint(candidates(ic2,4)) + if(ic2.ne.icand .and. fc2.gt.0.0) then + if(abs(fc2-fc).lt.0.05*baud) then ! same frequency + if(abs(isbest2-isbest).le.2) then + candidates(ic2,3)=-1 + endif + endif + endif + enddo + enddo + + ic=0 + do icand=1,ncand + if(candidates(icand,3).gt.0) then + ic=ic+1 + candidates(ic,:)=candidates(icand,:) + endif + enddo + ncand=ic + do icand=1,ncand + sync=candidates(icand,2) + fc_synced=candidates(icand,3) + isbest=nint(candidates(icand,4)) + xdt=(isbest-nspsec)/fs2 + call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,c2) + + do ijitter=0,jittermax + if(ijitter.eq.0) ioffset=0 + if(ijitter.eq.1) ioffset=1 + if(ijitter.eq.2) ioffset=-1 + is0=isbest+ioffset + if(is0.lt.0) cycle + cframe=c2(is0:is0+164*nss-1) + bitmetrics=0 + call get_fst240_bitmetrics(cframe,nss,hmod,ntmax,bitmetrics,s4,badsync) + if(badsync) cycle + + hbits=0 + where(bitmetrics(:,1).ge.0) hbits=1 + ns1=count(hbits( 1: 16).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + ns2=count(hbits( 77: 92).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + ns3=count(hbits(153:168).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + ns4=count(hbits(229:244).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + nsync_qual=ns1+ns2+ns3+ns4+ns5 + if(nsync_qual.lt. 26) cycle !### Value ?? ### + + scalefac=2.83 + llra( 1: 60)=bitmetrics( 17: 76, 1) + llra( 61:120)=bitmetrics( 93:152, 1) + llra(121:180)=bitmetrics(169:228, 1) + llra(181:240)=bitmetrics(245:304, 1) + llra=scalefac*llra + llrb( 1: 60)=bitmetrics( 17: 76, 2) + llrb( 61:120)=bitmetrics( 93:152, 2) + llrb(121:180)=bitmetrics(169:228, 2) + llrb(181:240)=bitmetrics(245:304, 2) + llrb=scalefac*llrb + llrc( 1: 60)=bitmetrics( 17: 76, 3) + llrc( 61:120)=bitmetrics( 93:152, 3) + llrc(121:180)=bitmetrics(169:228, 3) + llrc(181:240)=bitmetrics(245:304, 3) + llrc=scalefac*llrc + llrd( 1: 60)=bitmetrics( 17: 76, 4) + llrd( 61:120)=bitmetrics( 93:152, 4) + llrd(121:180)=bitmetrics(169:228, 4) + llrd(181:240)=bitmetrics(245:304, 4) + llrd=scalefac*llrd + apmask=0 + + do itry=1,ntmax + if(itry.eq.1) llr=llra + if(itry.eq.2) llr=llrb + if(itry.eq.3) llr=llrc + if(itry.eq.4) llr=llrd + dmin=0.0 + nharderrors=-1 + unpk77_success=.false. + if(iwspr.eq.0) then + maxosd=2 + call timer('d240_101',0) + call decode240_101(llr,Keff,maxosd,norder,apmask,message101, & + cw,ntype,nharderrors,dmin) + call timer('d240_101',1) + else + maxosd=2 + call timer('d240_74 ',0) +! call decode240_74(llr,Keff,maxosd,norder,apmask,message74,cw, & +! ntype,nharderrors,dmin) + call timer('d240_74 ',1) + endif + if(nharderrors .ge.0) then + if(iwspr.eq.0) then + write(c77,'(77i1)') message101(1:77) + call unpack77(c77,0,msg,unpk77_success) + else + write(c77,'(50i1)') message74(1:50) + c77(51:77)='000000000000000000000110000' + call unpack77(c77,0,msg,unpk77_success) + endif + if(unpk77_success) then + idupe=0 + do i=1,ndecodes + if(decodes(i).eq.msg) idupe=1 + enddo + if(idupe.eq.1) exit + ndecodes=ndecodes+1 + decodes(ndecodes)=msg + if(iwspr.eq.0) then + call get_fst240_tones_from_bits(message101,itone,iwspr) + xsig=0 + do i=1,NN + xsig=xsig+s4(itone(i),i)**2 + enddo + arg=400.0*(xsig/base)-1.0 + if(arg.gt.0.0) then + xsnr=10*log10(arg)-21.0-11.7*log10(nsps/800.0) + else + xsnr=-99.9 + endif + endif + nsnr=nint(xsnr) + iaptype=0 + qual=0. + fsig=fc_synced - 1.5*hmod*baud +write(21,'(8i4,f7.1,f7.2,3f7.1,1x,a37)') & + nutc,icand,itry,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg + call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & + iaptype,qual,ntrperiod) + goto 2002 + else + cycle + endif + endif + enddo ! metrics + enddo ! istart jitter +2002 continue + enddo !candidate list!ws + + return + end subroutine decode + + subroutine sync_fst240(cd0,i0,f0,hmod,ncoh,np,nss,fs,sync) + +! Compute sync power for a complex, downsampled FST240 signal. + + include 'fst240/fst240_params.f90' + complex cd0(0:np-1) + complex, allocatable, save :: csync(:) + complex, allocatable, save :: csynct(:) + complex ctwk(8*nss) + complex z1,z2,z3,z4,z5 + logical first + integer hmod,isyncword(0:7) + real f0save + data isyncword/0,1,3,2,1,0,2,3/ + data first/.true./,f0save/0.0/,nss0/-1/ + save first,twopi,dt,fac,f0save,nss0 + p(z1)=(real(z1*fac)**2 + aimag(z1*fac)**2)**0.5 !Compute power + + if(nss.ne.nss0 .and. allocated(csync)) deallocate(csync,csynct) + if(first .or. nss.ne.nss0) then + allocate( csync(8*nss) ) + allocate( csynct(8*nss) ) + twopi=8.0*atan(1.0) + dt=1/fs + k=1 + phi=0.0 + do i=0,7 + dphi=twopi*hmod*(isyncword(i)-1.5)/real(nss) + do j=1,nss + csync(k)=cmplx(cos(phi),sin(phi)) + phi=mod(phi+dphi,twopi) + k=k+1 + enddo + enddo + first=.false. + nss0=nss + fac=1.0/(8.0*nss) + endif + + if(f0.ne.f0save) then + dphi=twopi*f0*dt + phi=0.0 + do i=1,8*nss + ctwk(i)=cmplx(cos(phi),sin(phi)) + phi=mod(phi+dphi,twopi) + enddo + csynct=ctwk*csync + f0save=f0 + endif + + i1=i0 !Costas arrays + i2=i0+38*nss + i3=i0+76*nss + i4=i0+114*nss + i5=i0+152*nss + + s1=0.0 + s2=0.0 + s3=0.0 + s4=0.0 + s5=0.0 + + nsec=8/ncoh + do i=1,nsec + is=(i-1)*ncoh*nss + z1=0 + if(i1+is.ge.1) then + z1=sum(cd0(i1+is:i1+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + endif + z2=sum(cd0(i2+is:i2+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + z3=sum(cd0(i3+is:i3+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + z4=sum(cd0(i4+is:i4+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + z5=0 + if(i5+is+ncoh*nss-1.le.np) then + z5=sum(cd0(i5+is:i5+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + endif + s1=s1+abs(z1)/(8*nss) + s2=s2+abs(z2)/(8*nss) + s3=s3+abs(z3)/(8*nss) + s4=s4+abs(z4)/(8*nss) + s5=s5+abs(z5)/(8*nss) + enddo + + sync = s1+s2+s3+s4+s5 + + return + end subroutine sync_fst240 + + subroutine fst240_downsample(c_bigfft,nfft1,ndown,f0,c1) + +! Output: Complex data in c(), sampled at 12000/ndown Hz + + complex c_bigfft(0:nfft1/2) + complex c1(0:nfft1/ndown-1) + + df=12000.0/nfft1 + i0=nint(f0/df) + c1(0)=c_bigfft(i0) + nfft2=nfft1/ndown + do i=1,nfft2/2 + if(i0+i.le.nfft1/2) c1(i)=c_bigfft(i0+i) + if(i0-i.ge.0) c1(nfft2-i)=c_bigfft(i0-i) + enddo + c1=c1/nfft2 + call four2a(c1,nfft2,1,1,1) !c2c FFT back to time domain + return + + end subroutine fst240_downsample + + subroutine get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & + ncand,candidates,base) + + complex c_bigfft(0:nfft1/2) + integer hmod + integer indx(100) + real candidates(100,4) + real candidates0(100,4) + real snr_cand(100) + real s(18000) + real s2(18000) + data nfft1z/-1/ + save nfft1z + + nh1=nfft1/2 + df1=fs/nfft1 + baud=fs/nsps + df2=baud/2.0 + nd=df2/df1 + ndh=nd/2 + ia=nint(max(100.0,fa)/df2) + ib=nint(min(4800.0,fb)/df2) + signal_bw=4*(12000.0/nsps)*hmod + analysis_bw=min(4800.0,fb)-max(100.0,fa) + noise_bw=10.0*signal_bw + if(analysis_bw.gt.noise_bw) then + ina=ia + inb=ib + else + fcenter=(fa+fb)/2.0 + fl = max(100.0,fcenter-noise_bw/2.)/df2 + fh = min(4800.0,fcenter+noise_bw/2.)/df2 + ina=nint(fl) + inb=nint(fh) + endif + s=0. + do i=ina,inb ! noise analysis window includes signal analysis window + j0=nint(i*df2/df1) + do j=j0-ndh,j0+ndh + s(i)=s(i) + real(c_bigfft(j))**2 + aimag(c_bigfft(j))**2 + enddo + enddo + ina=max(ina,1+3*hmod) + inb=min(inb,18000-3*hmod) + s2=0. + do i=ina,inb + s2(i)=s(i-hmod*3) + s(i-hmod) +s(i+hmod) +s(i+hmod*3) + enddo + call pctile(s2(ina+hmod*3:inb-hmod*3),inb-ina+1-hmod*6,30,base) + s2=s2/base + thresh=1.25 + + ncand=0 + candidates=0 + if(ia.lt.3) ia=3 + if(ib.gt.18000-2) ib=18000-2 + do i=ia,ib + if((s2(i).gt.s2(i-2)).and. & + (s2(i).gt.s2(i+2)).and. & + (s2(i).gt.thresh).and.ncand.lt.100) then + ncand=ncand+1 + candidates(ncand,1)=df2*i + candidates(ncand,2)=s2(i) + endif + enddo + + snr_cand=0. + snr_cand(1:ncand)=candidates(1:ncand,2) + call indexx(snr_cand,ncand,indx) + nmax=min(ncand,20) + do i=1,nmax + j=indx(ncand+1-i) + candidates0(i,1:4)=candidates(j,1:4) + enddo + ncand=nmax + candidates(1:ncand,1:4)=candidates0(1:ncand,1:4) + candidates(ncand+1:,1:4)=0. + return + end subroutine get_candidates_fst240 + +end module fst240_decode diff --git a/lib/jt9.f90 b/lib/jt9.f90 index afd5c374e..23f330c9f 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -54,7 +54,7 @@ program jt9 option ('jt4', .false., '4', 'JT4 mode', ''), & option ('ft4', .false., '5', 'FT4 mode', ''), & option ('jt65', .false.,'6', 'JT65 mode', ''), & - option ('fst280', .false., '7', 'FT8 mode', ''), & + option ('fst240', .false., '7', 'FT8 mode', ''), & option ('ft8', .false., '8', 'FT8 mode', ''), & option ('jt9', .false., '9', 'JT9 mode', ''), & option ('qra64', .false., 'q', 'QRA64 mode', ''), & @@ -124,7 +124,7 @@ program jt9 case ('6') if (mode.lt.65) mode = mode + 65 case ('7') - mode = 280 + mode = 240 case ('8') mode = 8 case ('9') @@ -235,7 +235,7 @@ program jt9 call timer('symspec ',1) endif nhsym0=nhsym - if(nhsym.ge.181 .and. mode.ne.280) exit + if(nhsym.ge.181 .and. mode.ne.240) exit endif enddo close(unit=wav%lun) @@ -250,7 +250,7 @@ program jt9 shared_data%params%nfb=fhigh shared_data%params%ntol=20 shared_data%params%kin=64800 - if(mode.eq.280) shared_data%params%kin=720000 !### 60 s periods ### + if(mode.eq.240) shared_data%params%kin=720000 !### 60 s periods ### shared_data%params%nzhsym=nhsym shared_data%params%ndepth=ndepth shared_data%params%lft8apon=.true. diff --git a/models/FrequencyList.cpp b/models/FrequencyList.cpp index def2e6ec4..056950611 100644 --- a/models/FrequencyList.cpp +++ b/models/FrequencyList.cpp @@ -46,21 +46,21 @@ namespace {20000000, Modes::FreqCal, IARURegions::ALL}, {136000, Modes::WSPR, IARURegions::ALL}, - {136000, Modes::FST280W, IARURegions::ALL}, + {136000, Modes::FST240W, IARURegions::ALL}, {136130, Modes::JT65, IARURegions::ALL}, {136130, Modes::JT9, IARURegions::ALL}, - {136130, Modes::FST280, IARURegions::ALL}, + {136130, Modes::FST240, IARURegions::ALL}, {474200, Modes::JT65, IARURegions::ALL}, {474200, Modes::JT9, IARURegions::ALL}, - {474200, Modes::FST280, IARURegions::ALL}, + {474200, Modes::FST240, IARURegions::ALL}, {474200, Modes::WSPR, IARURegions::ALL}, - {474200, Modes::FST280W, IARURegions::ALL}, + {474200, Modes::FST240W, IARURegions::ALL}, {1836600, Modes::WSPR, IARURegions::ALL}, {1838000, Modes::JT65, IARURegions::ALL}, // squeezed allocations {1839000, Modes::JT9, IARURegions::ALL}, - {1839000, Modes::FST280, IARURegions::ALL}, + {1839000, Modes::FST240, IARURegions::ALL}, {1840000, Modes::FT8, IARURegions::ALL}, // Band plans (all USB dial unless stated otherwise) @@ -92,7 +92,7 @@ namespace // {3570000, Modes::JT65, IARURegions::ALL}, // JA compatible {3572000, Modes::JT9, IARURegions::ALL}, - {3572000, Modes::FST280, IARURegions::ALL}, + {3572000, Modes::FST240, IARURegions::ALL}, {3573000, Modes::FT8, IARURegions::ALL}, // above as below JT65 is out of DM allocation {3568600, Modes::WSPR, IARURegions::ALL}, // needs guard marker and lock out {3575000, Modes::FT4, IARURegions::ALL}, // provisional @@ -133,7 +133,7 @@ namespace {7074000, Modes::FT8, IARURegions::ALL}, {7076000, Modes::JT65, IARURegions::ALL}, {7078000, Modes::JT9, IARURegions::ALL}, - {7078000, Modes::FST280, IARURegions::ALL}, + {7078000, Modes::FST240, IARURegions::ALL}, {7047500, Modes::FT4, IARURegions::ALL}, // provisional - moved // up 500Hz to clear // W1AW code practice QRG @@ -168,7 +168,7 @@ namespace {10138000, Modes::JT65, IARURegions::ALL}, {10138700, Modes::WSPR, IARURegions::ALL}, {10140000, Modes::JT9, IARURegions::ALL}, - {10140000, Modes::FST280, IARURegions::ALL}, + {10140000, Modes::FST240, IARURegions::ALL}, {10140000, Modes::FT4, IARURegions::ALL}, // provisional // Band plans (all USB dial unless stated otherwise) @@ -212,7 +212,7 @@ namespace {14074000, Modes::FT8, IARURegions::ALL}, {14076000, Modes::JT65, IARURegions::ALL}, {14078000, Modes::JT9, IARURegions::ALL}, - {14078000, Modes::FST280, IARURegions::ALL}, + {14078000, Modes::FST240, IARURegions::ALL}, {14080000, Modes::FT4, IARURegions::ALL}, // provisional // Band plans (all USB dial unless stated otherwise) @@ -245,28 +245,28 @@ namespace {18100000, Modes::FT8, IARURegions::ALL}, {18102000, Modes::JT65, IARURegions::ALL}, {18104000, Modes::JT9, IARURegions::ALL}, - {18104000, Modes::FST280, IARURegions::ALL}, + {18104000, Modes::FST240, IARURegions::ALL}, {18104000, Modes::FT4, IARURegions::ALL}, // provisional {18104600, Modes::WSPR, IARURegions::ALL}, {21074000, Modes::FT8, IARURegions::ALL}, {21076000, Modes::JT65, IARURegions::ALL}, {21078000, Modes::JT9, IARURegions::ALL}, - {21078000, Modes::FST280, IARURegions::ALL}, + {21078000, Modes::FST240, IARURegions::ALL}, {21094600, Modes::WSPR, IARURegions::ALL}, {21140000, Modes::FT4, IARURegions::ALL}, {24915000, Modes::FT8, IARURegions::ALL}, {24917000, Modes::JT65, IARURegions::ALL}, {24919000, Modes::JT9, IARURegions::ALL}, - {24919000, Modes::FST280, IARURegions::ALL}, + {24919000, Modes::FST240, IARURegions::ALL}, {24919000, Modes::FT4, IARURegions::ALL}, // provisional {24924600, Modes::WSPR, IARURegions::ALL}, {28074000, Modes::FT8, IARURegions::ALL}, {28076000, Modes::JT65, IARURegions::ALL}, {28078000, Modes::JT9, IARURegions::ALL}, - {28078000, Modes::FST280, IARURegions::ALL}, + {28078000, Modes::FST240, IARURegions::ALL}, {28124600, Modes::WSPR, IARURegions::ALL}, {28180000, Modes::FT4, IARURegions::ALL}, @@ -280,7 +280,7 @@ namespace {50293000, Modes::WSPR, IARURegions::R3}, {50310000, Modes::JT65, IARURegions::ALL}, {50312000, Modes::JT9, IARURegions::ALL}, - {50312000, Modes::FST280, IARURegions::ALL}, + {50312000, Modes::FST240, IARURegions::ALL}, {50313000, Modes::FT8, IARURegions::ALL}, {50318000, Modes::FT4, IARURegions::ALL}, // provisional {50323000, Modes::FT8, IARURegions::ALL}, diff --git a/models/Modes.hpp b/models/Modes.hpp index c98b1c6fb..deb22865f 100644 --- a/models/Modes.hpp +++ b/models/Modes.hpp @@ -50,8 +50,8 @@ public: FreqCal, FT8, FT4, - FST280, - FST280W, + FST240, + FST240W, MODES_END_SENTINAL_AND_COUNT // this must be last }; Q_ENUM (Mode) diff --git a/widgets/displaytext.cpp b/widgets/displaytext.cpp index 47478e346..5d8136a01 100644 --- a/widgets/displaytext.cpp +++ b/widgets/displaytext.cpp @@ -460,7 +460,7 @@ void DisplayText::displayTransmittedText(QString text, QString modeTx, qint32 tx if(modeTx=="JT4") t1=" $ "; if(modeTx=="JT65") t1=" # "; if(modeTx=="MSK144") t1=" & "; - if(modeTx=="FST280") t1=" ` "; + if(modeTx=="FST240") t1=" ` "; QString t2; t2 = t2.asprintf("%4d",txFreq); QString t; diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 4ac9f485c..40c94143d 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -105,7 +105,7 @@ extern "C" { void genft4_(char* msg, int* ichk, char* msgsent, char ft4msgbits[], int itone[], fortran_charlen_t, fortran_charlen_t); - void genfst280_(char* msg, int* ichk, char* msgsent, char fst280msgbits[], + void genfst240_(char* msg, int* ichk, char* msgsent, char fst240msgbits[], int itone[], int* iwspr, fortran_charlen_t, fortran_charlen_t); void gen_ft8wave_(int itone[], int* nsym, int* nsps, float* bt, float* fsample, float* f0, @@ -114,7 +114,7 @@ extern "C" { void gen_ft4wave_(int itone[], int* nsym, int* nsps, float* fsample, float* f0, float xjunk[], float wave[], int* icmplx, int* nwave); - void gen_fst280wave_(int itone[], int* nsym, int* nsps, int* nwave, float* fsample, + void gen_fst240wave_(int itone[], int* nsym, int* nsps, int* nwave, float* fsample, int* hmod, float* f0, int* icmplx, float xjunk[], float wave[]); void gen4_(char* msg, int* ichk, char* msgsent, int itone[], @@ -429,7 +429,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->dxGridEntry->setValidator (new MaidenheadLocatorValidator {this}); ui->dxCallEntry->setValidator (new CallsignValidator {this}); ui->sbTR->values ({5, 10, 15, 30, 60, 120, 300}); - ui->sbTR_FST280W->values ({120, 300}); + ui->sbTR_FST240W->values ({120, 300}); ui->decodedTextBrowser->set_configuration (&m_config, true); ui->decodedTextBrowser2->set_configuration (&m_config); @@ -580,8 +580,8 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, on_EraseButton_clicked (); QActionGroup* modeGroup = new QActionGroup(this); - ui->actionFST280->setActionGroup(modeGroup); - ui->actionFST280W->setActionGroup(modeGroup); + ui->actionFST240->setActionGroup(modeGroup); + ui->actionFST240W->setActionGroup(modeGroup); ui->actionFT4->setActionGroup(modeGroup); ui->actionFT8->setActionGroup(modeGroup); ui->actionJT9->setActionGroup(modeGroup); @@ -1341,7 +1341,7 @@ void MainWindow::fixStop() m_hsymStop=50; } else if (m_mode=="FT4") { m_hsymStop=21; - } else if(m_mode=="FST280" or m_mode=="FST280W") { + } else if(m_mode=="FST240" or m_mode=="FST240W") { int stop[] = {45,87,192,397,1012}; int stop_EME[] = {51,96,201,406,1021}; int i=0; @@ -2313,9 +2313,9 @@ void MainWindow::setup_status_bar (bool vhf) mode_label.setStyleSheet ("QLabel{background-color: #ff0099}"); } else if ("FT8" == m_mode) { mode_label.setStyleSheet ("QLabel{background-color: #ff6699}"); - } else if ("FST280" == m_mode) { + } else if ("FST240" == m_mode) { mode_label.setStyleSheet ("QLabel{background-color: #99ff66}"); - } else if ("FST280W" == m_mode) { + } else if ("FST240W" == m_mode) { mode_label.setStyleSheet ("QLabel{background-color: #6699ff}"); } else if ("FreqCal" == m_mode) { mode_label.setStyleSheet ("QLabel{background-color: #ff9933}"); @@ -2898,7 +2898,7 @@ void MainWindow::decode() //decode() dec_data.params.nutc=100*ihr + imin; if(m_TRperiod < 60) { qint64 ms=1000.0*(2.0-m_TRperiod); - if(m_mode=="FST280") ms=1000.0*(6.0-m_TRperiod); + if(m_mode=="FST240") ms=1000.0*(6.0-m_TRperiod); //Adjust for FT8 early decode: if(m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) ms+=(m_hsymStop-m_earlyDecode)*288; if(m_mode=="FT8" and m_ihsym==m_earlyDecode2 and !m_diskData) ms+=(m_hsymStop-m_earlyDecode2)*288; @@ -2968,7 +2968,7 @@ void MainWindow::decode() //decode() dec_data.params.nmode=5; m_BestCQpriority=""; } - if(m_mode=="FST280") dec_data.params.nmode=280; + if(m_mode=="FST240") dec_data.params.nmode=240; dec_data.params.ntrperiod=m_TRperiod; dec_data.params.nsubmode=m_nSubMode; if(m_mode=="QRA64") dec_data.params.nsubmode=100 + m_nSubMode; @@ -3250,7 +3250,7 @@ void MainWindow::readFromStdout() //readFromStdout //Right (Rx Frequency) window bool bDisplayRight=bAvgMsg; int audioFreq=decodedtext.frequencyOffset(); - if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST280") { + if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST240") { auto const& parts = decodedtext.string().remove("<").remove(">") .split (' ', SkipEmptyParts); if (parts.size() > 6) { @@ -3334,7 +3334,7 @@ void MainWindow::readFromStdout() //readFromStdout //### I think this is where we are preventing Hounds from spotting Fox ### if(m_mode!="FT8" or (SpecOp::HOUND != m_config.special_op_id())) { if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="QRA64" or m_mode=="JT4" - or m_mode=="JT65" or m_mode=="JT9" or m_mode=="FST280") { + or m_mode=="JT65" or m_mode=="JT9" or m_mode=="FST240") { auto_sequence (decodedtext, 25, 50); } @@ -3537,7 +3537,7 @@ void MainWindow::guiUpdate() if(m_modeTx=="JT65") txDuration=1.0 + 126*4096/11025.0; // JT65 if(m_modeTx=="QRA64") txDuration=1.0 + 84*6912/12000.0; // QRA64 if(m_modeTx=="WSPR") txDuration=2.0 + 162*8192/12000.0; // WSPR - if(m_modeTx=="FST280" or m_mode=="FST280W") { //FST280, FST280W + if(m_modeTx=="FST240" or m_mode=="FST240W") { //FST240, FST240W if(m_TRperiod==15) txDuration=1.0 + 166*800/12000.0; if(m_TRperiod==30) txDuration=1.0 + 166*1680/12000.0; if(m_TRperiod==60) txDuration=1.0 + 166*3888/12000.0; @@ -3815,7 +3815,7 @@ void MainWindow::guiUpdate() if(m_modeTx=="WSPR") genwspr_(message, msgsent, const_cast (itone), 22, 22); if(m_modeTx=="MSK144" or m_modeTx=="FT8" or m_modeTx=="FT4" - or m_modeTx=="FST280" or m_modeTx=="FST280W") { + or m_modeTx=="FST240" or m_modeTx=="FST240W") { char MyCall[6]; char MyGrid[6]; ::memcpy(MyCall, (m_config.my_callsign()+" ").toLatin1(), sizeof MyCall); @@ -3875,11 +3875,11 @@ void MainWindow::guiUpdate() gen_ft4wave_(const_cast(itone),&nsym,&nsps,&fsample,&f0,foxcom_.wave, foxcom_.wave,&icmplx,&nwave); } - if(m_modeTx=="FST280" or m_modeTx=="FST280W") { + if(m_modeTx=="FST240" or m_modeTx=="FST240W") { int ichk=0; int iwspr=0; - char fst280msgbits[101]; - genfst280_(message,&ichk,msgsent,const_cast (fst280msgbits), + char fst240msgbits[101]; + genfst240_(message,&ichk,msgsent,const_cast (fst240msgbits), const_cast(itone), &iwspr, 37, 37); int hmod=int(pow(2.0,double(m_nSubMode))); int nsps=800; @@ -3895,7 +3895,7 @@ void MainWindow::guiUpdate() // int nwave=(nsym+2)*nsps; int nwave=48000 + 166*nsps; int icmplx=0; - gen_fst280wave_(const_cast(itone),&nsym,&nsps,&nwave, + gen_fst240wave_(const_cast(itone),&nsym,&nsps,&nwave, &fsample,&hmod,&f0,&icmplx,foxcom_.wave,foxcom_.wave); } @@ -5813,16 +5813,16 @@ void MainWindow::displayWidgets(qint64 n) genStdMsgs (m_rpt, true); } -void MainWindow::on_actionFST280_triggered() +void MainWindow::on_actionFST240_triggered() { int nsub=m_nSubMode; on_actionJT65_triggered(); ui->sbSubmode->setMaximum(3); m_nSubMode=nsub; ui->sbSubmode->setValue(m_nSubMode); - m_mode="FST280"; - m_modeTx="FST280"; - ui->actionFST280->setChecked(true); + m_mode="FST240"; + m_modeTx="FST240"; + ui->actionFST240->setChecked(true); WSPR_config(false); bool bVHF=m_config.enable_VHF_features(); // 012345678901234567890123456789012 @@ -5835,16 +5835,16 @@ void MainWindow::on_actionFST280_triggered() ui->cbAutoSeq->setChecked(true); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); - switch_mode (Modes::FST280); + switch_mode (Modes::FST240); statusChanged(); } -void MainWindow::on_actionFST280W_triggered() +void MainWindow::on_actionFST240W_triggered() { - m_mode="FST280W"; - m_modeTx="FST280W"; + m_mode="FST240W"; + m_modeTx="FST240W"; WSPR_config(true); - ui->actionFST280W->setChecked(true); + ui->actionFST240W->setChecked(true); // 012345678901234567890123456789012 displayWidgets(nWidgets("000001000000000001010000000000000")); bool bVHF=m_config.enable_VHF_features(); @@ -5856,7 +5856,7 @@ void MainWindow::on_actionFST280W_triggered() ui->sbSubmode->setMaximum(3); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); - switch_mode (Modes::FST280W); + switch_mode (Modes::FST240W); statusChanged(); } @@ -7163,7 +7163,7 @@ void MainWindow::transmit (double snr) true, false, snr, m_TRperiod); } - if (m_modeTx == "FST280" or m_modeTx == "FST280W") { + if (m_modeTx == "FST240" or m_modeTx == "FST240W") { m_dateTimeSentTx3=QDateTime::currentDateTimeUtc(); toneSpacing=-2.0; //Transmit a pre-computed, filtered waveform. int nsps=800; @@ -7174,7 +7174,7 @@ void MainWindow::transmit (double snr) int hmod=int(pow(2.0,double(m_nSubMode))); double dfreq=hmod*12000.0/nsps; double f0=ui->TxFreqSpinBox->value() - m_XIT + 1.5*dfreq; - Q_EMIT sendMessage (NUM_FST280_SYMBOLS,double(nsps),f0,toneSpacing, + Q_EMIT sendMessage (NUM_FST240_SYMBOLS,double(nsps),f0,toneSpacing, m_soundOutput,m_config.audio_output_channel(), true, false, snr, m_TRperiod); } @@ -7430,7 +7430,7 @@ void::MainWindow::VHF_features_enabled(bool b) void MainWindow::on_sbTR_valueChanged(int value) { // if(!m_bFastMode and n>m_nSubMode) m_MinW=m_nSubMode; - if(m_bFastMode or m_mode=="FreqCal" or m_mode=="FST280" or m_mode=="FST280W") { + if(m_bFastMode or m_mode=="FreqCal" or m_mode=="FST240" or m_mode=="FST240W") { m_TRperiod = value; m_fastGraph->setTRPeriod (value); m_modulator->setTRPeriod (value); // TODO - not thread safe @@ -8254,7 +8254,7 @@ void MainWindow::on_cbFirst_toggled(bool b) void MainWindow::on_cbAutoSeq_toggled(bool b) { if(!b) ui->cbFirst->setChecked(false); - ui->cbFirst->setVisible((m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST280") and b); + ui->cbFirst->setVisible((m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST240") and b); } void MainWindow::on_measure_check_box_stateChanged (int state) @@ -9031,8 +9031,8 @@ void MainWindow::on_pbBestSP_clicked() void MainWindow::set_mode (QString const& mode) { if ("FT4" == mode) on_actionFT4_triggered (); - else if ("FST280" == mode) on_actionFST280_triggered (); - else if ("FST280W" == mode) on_actionFST280W_triggered (); + else if ("FST240" == mode) on_actionFST240_triggered (); + else if ("FST240W" == mode) on_actionFST240W_triggered (); else if ("FT8" == mode) on_actionFT8_triggered (); else if ("JT4" == mode) on_actionJT4_triggered (); else if ("JT9" == mode) on_actionJT9_triggered (); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index b342850bd..157141cdd 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -49,7 +49,7 @@ #define NUM_QRA64_SYMBOLS 84 //63 data + 21 sync #define NUM_FT8_SYMBOLS 79 #define NUM_FT4_SYMBOLS 105 -#define NUM_FST280_SYMBOLS 166 //280/2 data + 6*4 sync + 2 ramp +#define NUM_FST240_SYMBOLS 160 //240/2 data + 5*8 sync #define NUM_CW_SYMBOLS 250 #define TX_SAMPLE_RATE 48000 #define N_WIDGETS 33 @@ -205,8 +205,8 @@ private slots: void on_actionJT4_triggered(); void on_actionFT4_triggered(); void on_actionFT8_triggered(); - void on_actionFST280_triggered(); - void on_actionFST280W_triggered(); + void on_actionFST240_triggered(); + void on_actionFST240W_triggered(); void on_TxFreqSpinBox_valueChanged(int arg1); void on_actionSave_decoded_triggered(); void on_actionQuickDecode_toggled (bool); diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 9b07c7714..b635ee21a 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -2591,7 +2591,7 @@ list. The list can be maintained in Settings (F2).
- + Qt::AlignCenter @@ -2861,8 +2861,8 @@ list. The list can be maintained in Settings (F2). Mode - - + + @@ -3497,30 +3497,30 @@ list. The list can be maintained in Settings (F2). FT4
- + true - FST280 + FST240 - + - FST280-W + FST240-W - + - FT280W + FT240W - + true - FST280W + FST240W diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index 947f6a0e5..5ac16038c 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -414,7 +414,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() float bw=9.0*12000.0/m_nsps; //JT9 if(m_mode=="FT4") bw=3*12000.0/576.0; //FT4 ### (3x, or 4x???) ### if(m_mode=="FT8") bw=7*12000.0/1920.0; //FT8 - if(m_mode=="FST280") { + if(m_mode=="FST240") { int h=int(pow(2.0,m_nSubMode)); int nsps=800; if(m_TRperiod==30) nsps=1680; @@ -500,7 +500,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() int yTxTop=12; int yRxBottom=yTxTop + 2*yh + 4; if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65" - or m_mode=="QRA64" or m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST280") { + or m_mode=="QRA64" or m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST240") { if(m_mode=="QRA64" or (m_mode=="JT65" and m_bVHF)) { painter0.setPen(penGreen); @@ -531,7 +531,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() painter0.drawLine(x1,yRxBottom-yh,x1,yRxBottom); painter0.drawLine(x1,yRxBottom,x2,yRxBottom); painter0.drawLine(x2,yRxBottom-yh,x2,yRxBottom); - if(m_mode=="FST280") { + if(m_mode=="FST240") { x1=XfromFreq(m_rxFreq-m_tol); x2=XfromFreq(m_rxFreq+m_tol); painter0.drawLine(x1,26,x2,26); // Mark the Tol range @@ -542,7 +542,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65" or m_mode.mid(0,4)=="WSPR" or m_mode=="QRA64" or m_mode=="FT8" - or m_mode=="FT4" or m_mode=="FST280") { + or m_mode=="FT4" or m_mode=="FST240") { painter0.setPen(penRed); x1=XfromFreq(m_txFreq); x2=XfromFreq(m_txFreq+bw); From 3cb1980ef1b730e0a36680f4ccd0b2df860d6c89 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sat, 27 Jun 2020 09:21:43 -0500 Subject: [PATCH 159/520] Remove un-needed files. --- lib/fst240/bpdecode280_101.f90 | 111 ------ lib/fst240/bpdecode280_74.f90 | 111 ------ lib/fst240/decode280_101.f90 | 154 -------- lib/fst240/decode280_74.f90 | 153 -------- lib/fst240/encode280_101.f90 | 40 -- lib/fst240/encode280_74.f90 | 40 -- lib/fst240/fst280.txt | 10 - lib/fst240/fst280_params.f90 | 8 - lib/fst240/fst280d.f90 | 481 ------------------------ lib/fst240/fst280sim.f90 | 143 -------- lib/fst240/gen_fst280wave.f90 | 98 ----- lib/fst240/genfst280.f90 | 109 ------ lib/fst240/get_fst280_bitmetrics.f90 | 120 ------ lib/fst240/ldpc_280_101_generator.f90 | 182 ---------- lib/fst240/ldpc_280_101_parity.f90 | 476 ------------------------ lib/fst240/ldpc_280_74_generator.f90 | 209 ----------- lib/fst240/ldpc_280_74_parity.f90 | 504 -------------------------- lib/fst240/ldpcsim280_101.f90 | 139 ------- lib/fst240/ldpcsim280_74.f90 | 132 ------- lib/fst240/osd280_101.f90 | 403 -------------------- lib/fst240/osd280_74.f90 | 403 -------------------- 21 files changed, 4026 deletions(-) delete mode 100644 lib/fst240/bpdecode280_101.f90 delete mode 100644 lib/fst240/bpdecode280_74.f90 delete mode 100644 lib/fst240/decode280_101.f90 delete mode 100644 lib/fst240/decode280_74.f90 delete mode 100644 lib/fst240/encode280_101.f90 delete mode 100644 lib/fst240/encode280_74.f90 delete mode 100644 lib/fst240/fst280.txt delete mode 100644 lib/fst240/fst280_params.f90 delete mode 100644 lib/fst240/fst280d.f90 delete mode 100644 lib/fst240/fst280sim.f90 delete mode 100644 lib/fst240/gen_fst280wave.f90 delete mode 100644 lib/fst240/genfst280.f90 delete mode 100644 lib/fst240/get_fst280_bitmetrics.f90 delete mode 100644 lib/fst240/ldpc_280_101_generator.f90 delete mode 100644 lib/fst240/ldpc_280_101_parity.f90 delete mode 100644 lib/fst240/ldpc_280_74_generator.f90 delete mode 100644 lib/fst240/ldpc_280_74_parity.f90 delete mode 100644 lib/fst240/ldpcsim280_101.f90 delete mode 100644 lib/fst240/ldpcsim280_74.f90 delete mode 100644 lib/fst240/osd280_101.f90 delete mode 100644 lib/fst240/osd280_74.f90 diff --git a/lib/fst240/bpdecode280_101.f90 b/lib/fst240/bpdecode280_101.f90 deleted file mode 100644 index a817a3d5c..000000000 --- a/lib/fst240/bpdecode280_101.f90 +++ /dev/null @@ -1,111 +0,0 @@ -subroutine bpdecode280_101(llr,apmask,maxiterations,message101,cw,nharderror,iter,ncheck) -! -! A log-domain belief propagation decoder for the (280,101) code. -! - integer, parameter:: N=280, K=101, M=N-K - integer*1 cw(N),apmask(N) - integer*1 decoded(K) - integer*1 message101(101) - integer nrw(M),ncw - integer Nm(6,M) - integer Mn(3,N) ! 3 checks per bit - integer synd(M) - real tov(3,N) - real toc(6,M) - real tanhtoc(6,M) - real zn(N) - real llr(N) - real Tmn - - include "ldpc_280_101_parity.f90" - - decoded=0 - toc=0 - tov=0 - tanhtoc=0 -! initialize messages to checks - do j=1,M - do i=1,nrw(j) - toc(i,j)=llr((Nm(i,j))) - enddo - enddo - - ncnt=0 - nclast=0 - do iter=0,maxiterations -! Update bit log likelihood ratios (tov=0 in iteration 0). - do i=1,N - if( apmask(i) .ne. 1 ) then - zn(i)=llr(i)+sum(tov(1:ncw,i)) - else - zn(i)=llr(i) - endif - enddo - -! Check to see if we have a codeword (check before we do any iteration). - cw=0 - where( zn .gt. 0. ) cw=1 - ncheck=0 - do i=1,M - synd(i)=sum(cw(Nm(1:nrw(i),i))) - if( mod(synd(i),2) .ne. 0 ) ncheck=ncheck+1 -! if( mod(synd(i),2) .ne. 0 ) write(*,*) 'check ',i,' unsatisfied' - enddo - if( ncheck .eq. 0 ) then ! we have a codeword - if crc is good, return it - decoded=cw(1:101) - call get_crc24(decoded,101,nbadcrc) - nharderror=count( (2*cw-1)*llr .lt. 0.0 ) - if(nbadcrc.eq.0) then - message101=decoded(1:101) - return - endif - endif - - if( iter.gt.0 ) then ! this code block implements an early stopping criterion -! if( iter.gt.10000 ) then ! this code block implements an early stopping criterion - nd=ncheck-nclast - if( nd .lt. 0 ) then ! # of unsatisfied parity checks decreased - ncnt=0 ! reset counter - else - ncnt=ncnt+1 - endif -! write(*,*) iter,ncheck,nd,ncnt - if( ncnt .ge. 5 .and. iter .ge. 10 .and. ncheck .gt. 15) then - nharderror=-1 - return - endif - endif - nclast=ncheck - -! Send messages from bits to check nodes - do j=1,M - do i=1,nrw(j) - ibj=Nm(i,j) - toc(i,j)=zn(ibj) - do kk=1,ncw ! subtract off what the bit had received from the check - if( Mn(kk,ibj) .eq. j ) then - toc(i,j)=toc(i,j)-tov(kk,ibj) - endif - enddo - enddo - enddo - -! send messages from check nodes to variable nodes - do i=1,M - tanhtoc(1:6,i)=tanh(-toc(1:6,i)/2) - enddo - - do j=1,N - do i=1,ncw - ichk=Mn(i,j) ! Mn(:,j) are the checks that include bit j - Tmn=product(tanhtoc(1:nrw(ichk),ichk),mask=Nm(1:nrw(ichk),ichk).ne.j) - call platanh(-Tmn,y) -! y=atanh(-Tmn) - tov(i,j)=2*y - enddo - enddo - - enddo - nharderror=-1 - return -end subroutine bpdecode280_101 diff --git a/lib/fst240/bpdecode280_74.f90 b/lib/fst240/bpdecode280_74.f90 deleted file mode 100644 index 21b48d8db..000000000 --- a/lib/fst240/bpdecode280_74.f90 +++ /dev/null @@ -1,111 +0,0 @@ -subroutine bpdecode280_74(llr,apmask,maxiterations,message74,cw,nharderror,iter,ncheck) -! -! A log-domain belief propagation decoder for the (280,74) code. -! - integer, parameter:: N=280, K=74, M=N-K - integer*1 cw(N),apmask(N) - integer*1 decoded(K) - integer*1 message74(74) - integer nrw(M),ncw - integer Nm(5,M) - integer Mn(3,N) ! 3 checks per bit - integer synd(M) - real tov(3,N) - real toc(5,M) - real tanhtoc(5,M) - real zn(N) - real llr(N) - real Tmn - - include "ldpc_280_74_parity.f90" - - decoded=0 - toc=0 - tov=0 - tanhtoc=0 -! initialize messages to checks - do j=1,M - do i=1,nrw(j) - toc(i,j)=llr((Nm(i,j))) - enddo - enddo - - ncnt=0 - nclast=0 - do iter=0,maxiterations -! Update bit log likelihood ratios (tov=0 in iteration 0). - do i=1,N - if( apmask(i) .ne. 1 ) then - zn(i)=llr(i)+sum(tov(1:ncw,i)) - else - zn(i)=llr(i) - endif - enddo - -! Check to see if we have a codeword (check before we do any iteration). - cw=0 - where( zn .gt. 0. ) cw=1 - ncheck=0 - do i=1,M - synd(i)=sum(cw(Nm(1:nrw(i),i))) - if( mod(synd(i),2) .ne. 0 ) ncheck=ncheck+1 -! if( mod(synd(i),2) .ne. 0 ) write(*,*) 'check ',i,' unsatisfied' - enddo - if( ncheck .eq. 0 ) then ! we have a codeword - if crc is good, return it - decoded=cw(1:74) - call get_crc24(decoded,74,nbadcrc) - nharderror=count( (2*cw-1)*llr .lt. 0.0 ) - if(nbadcrc.eq.0) then - message74=decoded(1:74) - return - endif - endif - - if( iter.gt.0 ) then ! this code block implements an early stopping criterion -! if( iter.gt.10000 ) then ! this code block implements an early stopping criterion - nd=ncheck-nclast - if( nd .lt. 0 ) then ! # of unsatisfied parity checks decreased - ncnt=0 ! reset counter - else - ncnt=ncnt+1 - endif -! write(*,*) iter,ncheck,nd,ncnt - if( ncnt .ge. 5 .and. iter .ge. 10 .and. ncheck .gt. 15) then - nharderror=-1 - return - endif - endif - nclast=ncheck - -! Send messages from bits to check nodes - do j=1,M - do i=1,nrw(j) - ibj=Nm(i,j) - toc(i,j)=zn(ibj) - do kk=1,ncw ! subtract off what the bit had received from the check - if( Mn(kk,ibj) .eq. j ) then - toc(i,j)=toc(i,j)-tov(kk,ibj) - endif - enddo - enddo - enddo - -! send messages from check nodes to variable nodes - do i=1,M - tanhtoc(1:5,i)=tanh(-toc(1:5,i)/2) - enddo - - do j=1,N - do i=1,ncw - ichk=Mn(i,j) ! Mn(:,j) are the checks that include bit j - Tmn=product(tanhtoc(1:nrw(ichk),ichk),mask=Nm(1:nrw(ichk),ichk).ne.j) - call platanh(-Tmn,y) -! y=atanh(-Tmn) - tov(i,j)=2*y - enddo - enddo - - enddo - nharderror=-1 - return -end subroutine bpdecode280_74 diff --git a/lib/fst240/decode280_101.f90 b/lib/fst240/decode280_101.f90 deleted file mode 100644 index 838906c78..000000000 --- a/lib/fst240/decode280_101.f90 +++ /dev/null @@ -1,154 +0,0 @@ -subroutine decode280_101(llr,Keff,maxosd,norder,apmask,message101,cw,ntype,nharderror,dmin) -! -! A hybrid bp/osd decoder for the (280,101) code. -! -! maxosd<0: do bp only -! maxosd=0: do bp and then call osd once with channel llrs -! maxosd>1: do bp and then call osd maxosd times with saved bp outputs -! norder : osd decoding depth -! - integer, parameter:: N=280, K=101, M=N-K - integer*1 cw(N),apmask(N) - integer*1 nxor(N),hdec(N) - integer*1 message101(101),m101(101) - integer nrw(M),ncw - integer Nm(6,M) - integer Mn(3,N) ! 3 checks per bit - integer synd(M) - real tov(3,N) - real toc(6,M) - real tanhtoc(6,M) - real zn(N),zsum(N),zsave(N,3) - real llr(N) - real Tmn - - include "ldpc_280_101_parity.f90" - - maxiterations=30 - nosd=0 - if(maxosd.gt.3) maxosd=3 - if(maxosd.eq.0) then ! osd with channel llrs - nosd=1 - zsave(:,1)=llr - elseif(maxosd.gt.0) then ! - nosd=maxosd - elseif(maxosd.lt.0) then ! just bp - nosd=0 - endif - - toc=0 - tov=0 - tanhtoc=0 -! initialize messages to checks - do j=1,M - do i=1,nrw(j) - toc(i,j)=llr((Nm(i,j))) - enddo - enddo - - ncnt=0 - nclast=0 - zsum=0.0 - do iter=0,maxiterations -! Update bit log likelihood ratios (tov=0 in iteration 0). - do i=1,N - if( apmask(i) .ne. 1 ) then - zn(i)=llr(i)+sum(tov(1:ncw,i)) - else - zn(i)=llr(i) - endif - enddo - zsum=zsum+zn - if(iter.gt.0 .and. iter.le.maxosd) then - zsave(:,iter)=zsum - endif - -! Check to see if we have a codeword (check before we do any iteration). - cw=0 - where( zn .gt. 0. ) cw=1 - ncheck=0 - do i=1,M - synd(i)=sum(cw(Nm(1:nrw(i),i))) - if( mod(synd(i),2) .ne. 0 ) ncheck=ncheck+1 - enddo - if( ncheck .eq. 0 ) then ! we have a codeword - if crc is good, return it - m101=0 - m101(1:101)=cw(1:101) - call get_crc24(m101,101,nbadcrc) - if(nbadcrc.eq.0) then - message101=cw(1:101) - hdec=0 - where(llr .ge. 0) hdec=1 - nxor=ieor(hdec,cw) - nharderror=sum(nxor) - dmin=sum(nxor*abs(llr)) - ntype=1 - return - endif - endif - - if( iter.gt.0 ) then ! this code block implements an early stopping criterion -! if( iter.gt.10000 ) then ! this code block implements an early stopping criterion - nd=ncheck-nclast - if( nd .lt. 0 ) then ! # of unsatisfied parity checks decreased - ncnt=0 ! reset counter - else - ncnt=ncnt+1 - endif -! write(*,*) iter,ncheck,nd,ncnt - if( ncnt .ge. 5 .and. iter .ge. 10 .and. ncheck .gt. 15) then - nharderror=-1 - exit - endif - endif - nclast=ncheck - -! Send messages from bits to check nodes - do j=1,M - do i=1,nrw(j) - ibj=Nm(i,j) - toc(i,j)=zn(ibj) - do kk=1,ncw ! subtract off what the bit had received from the check - if( Mn(kk,ibj) .eq. j ) then - toc(i,j)=toc(i,j)-tov(kk,ibj) - endif - enddo - enddo - enddo - -! send messages from check nodes to variable nodes - do i=1,M - tanhtoc(1:6,i)=tanh(-toc(1:6,i)/2) - enddo - - do j=1,N - do i=1,ncw - ichk=Mn(i,j) ! Mn(:,j) are the checks that include bit j - Tmn=product(tanhtoc(1:nrw(ichk),ichk),mask=Nm(1:nrw(ichk),ichk).ne.j) - call platanh(-Tmn,y) -! y=atanh(-Tmn) - tov(i,j)=2*y - enddo - enddo - - enddo ! bp iterations - - do i=1,nosd - zn=zsave(:,i) - call osd280_101(zn,Keff,apmask,norder,message101,cw,nharderror,dminosd) - if(nharderror.gt.0) then - hdec=0 - where(llr .ge. 0) hdec=1 - nxor=ieor(hdec,cw) - dmin=sum(nxor*abs(llr)) - ntype=2 - return - endif - enddo - - ntype=0 - nharderror=-1 - dminosd=0.0 - - return -end subroutine decode280_101 diff --git a/lib/fst240/decode280_74.f90 b/lib/fst240/decode280_74.f90 deleted file mode 100644 index 0d0c6fc4f..000000000 --- a/lib/fst240/decode280_74.f90 +++ /dev/null @@ -1,153 +0,0 @@ -subroutine decode280_74(llr,Keff,maxosd,norder,apmask,message74,cw,ntype,nharderror,dmin) -! -! A hybrid bp/osd decoder for the (280,74) code. -! -! maxosd<0: do bp only -! maxosd=0: do bp and then call osd once with channel llrs -! maxosd>1: do bp and then call osd maxosd times with saved bp outputs -! norder : osd decoding depth -! - integer, parameter:: N=280, K=74, M=N-K - integer*1 cw(N),cwbest(N),apmask(N) - integer*1 nxor(N),hdec(N) - integer*1 message74(74),m74(74) - integer nrw(M),ncw - integer Nm(5,M) - integer Mn(3,N) ! 3 checks per bit - integer synd(M) - real tov(3,N) - real toc(5,M) - real tanhtoc(5,M) - real zn(N),zsum(N),zsave(N,max(1,maxosd)) - real llr(N) - real Tmn - - include "ldpc_280_74_parity.f90" - - maxiterations=30 - nosd=0 - if(maxosd.eq.0) then ! osd with channel llrs - nosd=1 - zsave(:,1)=llr - elseif(maxosd.gt.0) then ! - nosd=maxosd - elseif(maxosd.lt.0) then ! just bp - nosd=0 - endif - - toc=0 - tov=0 - tanhtoc=0 -! initialize messages to checks - do j=1,M - do i=1,nrw(j) - toc(i,j)=llr((Nm(i,j))) - enddo - enddo - - ncnt=0 - nclast=0 - zsum=0.0 - do iter=0,maxiterations -! Update bit log likelihood ratios (tov=0 in iteration 0). - do i=1,N - if( apmask(i) .ne. 1 ) then - zn(i)=llr(i)+sum(tov(1:ncw,i)) - else - zn(i)=llr(i) - endif - enddo - zsum=zsum+zn - if(iter.gt.0 .and. iter.le.maxosd) then - zsave(:,iter)=zsum - endif - -! Check to see if we have a codeword (check before we do any iteration). - cw=0 - where( zn .gt. 0. ) cw=1 - ncheck=0 - do i=1,M - synd(i)=sum(cw(Nm(1:nrw(i),i))) - if( mod(synd(i),2) .ne. 0 ) ncheck=ncheck+1 - enddo - if( ncheck .eq. 0 ) then ! we have a codeword - if crc is good, return it - m74=0 - m74(1:74)=cw(1:74) - call get_crc24(m74,74,nbadcrc) - if(nbadcrc.eq.0) then - message74=cw(1:74) - hdec=0 - where(llr .ge. 0) hdec=1 - nxor=ieor(hdec,cw) - nharderror=sum(nxor) - dmin=sum(nxor*abs(llr)) - ntype=1 - return - endif - endif - - if( iter.gt.0 ) then ! this code block implements an early stopping criterion -! if( iter.gt.10000 ) then ! this code block implements an early stopping criterion - nd=ncheck-nclast - if( nd .lt. 0 ) then ! # of unsatisfied parity checks decreased - ncnt=0 ! reset counter - else - ncnt=ncnt+1 - endif -! write(*,*) iter,ncheck,nd,ncnt - if( ncnt .ge. 5 .and. iter .ge. 10 .and. ncheck .gt. 15) then - nharderror=-1 - exit - endif - endif - nclast=ncheck - -! Send messages from bits to check nodes - do j=1,M - do i=1,nrw(j) - ibj=Nm(i,j) - toc(i,j)=zn(ibj) - do kk=1,ncw ! subtract off what the bit had received from the check - if( Mn(kk,ibj) .eq. j ) then - toc(i,j)=toc(i,j)-tov(kk,ibj) - endif - enddo - enddo - enddo - -! send messages from check nodes to variable nodes - do i=1,M - tanhtoc(1:5,i)=tanh(-toc(1:5,i)/2) - enddo - - do j=1,N - do i=1,ncw - ichk=Mn(i,j) ! Mn(:,j) are the checks that include bit j - Tmn=product(tanhtoc(1:nrw(ichk),ichk),mask=Nm(1:nrw(ichk),ichk).ne.j) - call platanh(-Tmn,y) -! y=atanh(-Tmn) - tov(i,j)=2*y - enddo - enddo - - enddo ! bp iterations - - do i=1,nosd - zn=zsave(:,i) - call osd280_74(zn,Keff,apmask,norder,message74,cw,nharderror,dminosd) - if(nharderror.ge.0) then - hdec=0 - where(llr .ge. 0) hdec=1 - nxor=ieor(hdec,cw) - dmin=sum(nxor*abs(llr)) - ntype=2 - return - endif - enddo - - ntype=0 - nharderror=-1 - dminosd=0.0 - - return -end subroutine decode280_74 diff --git a/lib/fst240/encode280_101.f90 b/lib/fst240/encode280_101.f90 deleted file mode 100644 index e908bb607..000000000 --- a/lib/fst240/encode280_101.f90 +++ /dev/null @@ -1,40 +0,0 @@ -subroutine encode280_101(message,codeword) - integer, parameter:: N=280, K=101, M=N-K - integer*1 codeword(N) - integer*1 gen(M,K) - integer*1 message(K) - integer*1 pchecks(M) - include "ldpc_280_101_generator.f90" - logical first - data first/.true./ - save first,gen - - if( first ) then ! fill the generator matrix - gen=0 - do i=1,M - do j=1,26 - read(g(i)(j:j),"(Z1)") istr - ibmax=4 - if(j.eq.26) ibmax=1 - do jj=1, ibmax - icol=(j-1)*4+jj - if( btest(istr,4-jj) ) gen(i,icol)=1 - enddo - enddo - enddo - first=.false. - endif - - do i=1,M - nsum=0 - do j=1,K - nsum=nsum+message(j)*gen(i,j) - enddo - pchecks(i)=mod(nsum,2) - enddo - - codeword(1:K)=message - codeword(K+1:N)=pchecks - - return -end subroutine encode280_101 diff --git a/lib/fst240/encode280_74.f90 b/lib/fst240/encode280_74.f90 deleted file mode 100644 index a64a57815..000000000 --- a/lib/fst240/encode280_74.f90 +++ /dev/null @@ -1,40 +0,0 @@ -subroutine encode280_74(message,codeword) - integer, parameter:: N=280, K=74, M=N-K - integer*1 codeword(N) - integer*1 gen(M,K) - integer*1 message(K) - integer*1 pchecks(M) - include "ldpc_280_74_generator.f90" - logical first - data first/.true./ - save first,gen - - if( first ) then ! fill the generator matrix - gen=0 - do i=1,M - do j=1,19 - read(g(i)(j:j),"(Z1)") istr - ibmax=4 - if(j.eq.19) ibmax=2 - do jj=1, ibmax - icol=(j-1)*4+jj - if( btest(istr,4-jj) ) gen(i,icol)=1 - enddo - enddo - enddo - first=.false. - endif - - do i=1,M - nsum=0 - do j=1,K - nsum=nsum+message(j)*gen(i,j) - enddo - pchecks(i)=mod(nsum,2) - enddo - - codeword(1:K)=message - codeword(K+1:N)=pchecks - - return -end subroutine encode280_74 diff --git a/lib/fst240/fst280.txt b/lib/fst240/fst280.txt deleted file mode 100644 index 8c9757e40..000000000 --- a/lib/fst240/fst280.txt +++ /dev/null @@ -1,10 +0,0 @@ -------------------------------------------------------------------- - NSPS T/R TxT Tst Txtra Txtra-2.6s DF BW SNR77 SNR50 - (s) (s) (s) (s) (s) (Hz) (Hz) (dB)? (dB)? -------------------------------------------------------------------- - 800 15 10.93 0.5 3.57 0.97 15.00 60.0 -21.3 -22.6 - 1680 30 22.96 1.0 6.04 3.44 7.14 28.6 -24.5 -25.8 - 4000 60 54.67 1.0 4.33 1.73 3.00 12.0 -28.3 -29.6 - 8400 120 114.80 1.0 4.20 1.60 1.43 5.7 -31.5 -32.8 -21504 300 293.89 1.0 5.11 2.51 0.56 2.2 -35.5 -36.8 -------------------------------------------------------------------- diff --git a/lib/fst240/fst280_params.f90 b/lib/fst240/fst280_params.f90 deleted file mode 100644 index dc1519160..000000000 --- a/lib/fst240/fst280_params.f90 +++ /dev/null @@ -1,8 +0,0 @@ -! FT4S280 -! LDPC(280,101)/CRC24 code, six 4x4 Costas arrays for sync, ramp-up and ramp-down symbols - -parameter (KK=77) !Information bits (77 + CRC24) -parameter (ND=140) !Data symbols -parameter (NS=24) !Sync symbols -parameter (NN=NS+ND) !Sync and data symbols (164) -parameter (NN2=NS+ND+2) !Total channel symbols (166) diff --git a/lib/fst240/fst280d.f90 b/lib/fst240/fst280d.f90 deleted file mode 100644 index 45eff351d..000000000 --- a/lib/fst240/fst280d.f90 +++ /dev/null @@ -1,481 +0,0 @@ -program fst280d - -! Decode fst280 data read from *.c2 or *.wav files. - - use packjt77 - include 'fst280_params.f90' - character arg*8,infile*80,fname*16,datetime*11 -! character ch1*1,ch4*4,cseq*31 -! character*22 decodes(100) - character*37 msg - character*120 data_dir - character*77 c77 - character*1 tr_designator - complex, allocatable :: c2(:) - complex, allocatable :: cframe(:) - complex, allocatable :: c_bigfft(:) !Complex waveform - real, allocatable :: r_data(:) - real*8 fMHz - real llr(280),llra(280),llrb(280),llrc(280),llrd(280) - real candidates(100,3) - real bitmetrics(328,4) - integer hmod,ihdr(11) - integer*2, allocatable :: iwave(:) - integer*1 apmask(280),cw(280) - integer*1 hbits(328) - integer*1 message101(101),message74(74) - logical badsync,unpk77_success - - hmod=1 - Keff=91 - ndeep=3 - iwspr=0 - - nargs=iargc() - if(nargs.lt.1) then - print*,'Usage: fst280d [-a ] [-f fMHz] [-h hmod] [-k Keff] [-d depth] [-t t/r type] file1 [file2 ...]' - go to 999 - endif - iarg=1 - data_dir="." - call getarg(iarg,arg) - if(arg(1:2).eq.'-a') then - call getarg(iarg+1,data_dir) - iarg=iarg+2 - call getarg(iarg,arg) - endif - if(arg(1:2).eq.'-f') then - call getarg(iarg+1,arg) - read(arg,*) fMHz - iarg=iarg+2 - call getarg(iarg,arg) - endif - if(arg(1:2).eq.'-h') then - call getarg(iarg+1,arg) - read(arg,*) hmod - if(hmod.ne.1.and.hmod.ne.2.and.hmod.ne.4.and.hmod.ne.8) then - print*,'invalid modulation index. h must be 1, 2, 4, or 8' - goto 999 - endif - iarg=iarg+2 - call getarg(iarg,arg) - endif - if(arg(1:2).eq.'-k') then - call getarg(iarg+1,arg) - read(arg,*) Keff - if(Keff.le.74) iwspr=1 - iarg=iarg+2 - call getarg(iarg,arg) - endif - if(arg(1:2).eq.'-d') then - call getarg(iarg+1,arg) - read(arg,*) ndeep - iarg=iarg+2 - call getarg(iarg,arg) - endif - if(arg(1:2).eq.'-t') then - call getarg(iarg+1,arg) - read(arg,*) tr_designator - iarg=iarg+2 - endif - - nmax=15*12000 - select case (tr_designator) - case('A') - nsps=800 - nmax=15*12000 - ndown=20/hmod - if(hmod.eq.8) ndown=2 - case('B') - nsps=1680 - nmax=30*12000 - ndown=42/hmod - if(hmod.eq.4) ndown=10 - if(hmod.eq.8) ndown=5 - case('C') - nsps=4000 - nmax=60*12000 - ndown=100/hmod - if(hmod.eq.8) ndown=16 - case('D') - nsps=8400 - nmax=120*12000 - ndown=200/hmod - case('E') - nsps=21504 - nmax=300*12000 - ndown=512/hmod - end select - nss=nsps/ndown - fs=12000.0 !Sample rate - fs2=fs/ndown - nspsec=nint(fs2) - dt=1.0/fs !Sample interval (s) - dt2=1.0/fs2 - tt=nsps*dt !Duration of "itone" symbols (s) - - nfft1=2*int(nmax/2) - nh1=nfft1/2 - allocate( r_data(1:nfft1+2) ) - allocate( c_bigfft(0:nfft1/2) ) - - nfft2=nfft1/ndown - allocate( c2(0:nfft2-1) ) - allocate( cframe(0:164*nss-1) ) - allocate( iwave(nmax) ) - -write(*,*) 'nsps: ',nsps -write(*,*) 'nmax: ',nmax -write(*,*) 'nss : ',nss -write(*,*) 'nspsec: ',fs2 -write(*,*) 'nfft1 : ',nfft1 -write(*,*) 'nfft2 : ',nfft2 - - ngood=0 - ngoodsync=0 - nfile=0 - do ifile=iarg,nargs - nfile=nfile+1 - call getarg(ifile,infile) - open(10,file=infile,status='old',access='stream') - j1=index(infile,'.c2') - j2=index(infile,'.wav') - if(j1.gt.0) then - read(10,end=999) fname,ntrmin,fMHz,c2 - read(fname(8:11),*) nutc - write(datetime,'(i11)') nutc - else if(j2.gt.0) then - read(10,end=999) ihdr,iwave - read(infile(j2-4:j2-1),*) nutc - datetime=infile(j2-11:j2-1) - else - print*,'Wrong file format?' - go to 999 - endif - close(10) - - npts=nmax - fa=100.0 - fb=3500.0 - -! The big fft is done once and is used for calculating the smoothed spectrum -! and also for downconverting/downsampling each candidate. - r_data(1:nfft1)=iwave(1:nfft1) - r_data(nfft1+1:nfft1+2)=0.0 - call four2a(r_data,nfft1,1,-1,0) - c_bigfft=cmplx(r_data(1:nfft1+2:2),r_data(2:nfft1+2:2)) - -! Get first approximation of candidate frequencies - call get_candidates_fst280(c_bigfft,nfft1,nsps,hmod,fs,fa,fb,ncand,candidates) - - ndecodes=0 - isbest1=0 - isbest8=0 - fc21=fc0 - fc28=fc0 - do icand=1,ncand - fc0=candidates(icand,1) - xsnr=candidates(icand,2) - -! Downconvert and downsample a slice of the spectrum centered on the -! rough estimate of the candidates frequency. -! Output array c2 is complex baseband sampled at 12000/ndown Sa/sec. -! The size of the downsampled c2 array is nfft2=nfft1/ndown - - call fst280_downsample(c_bigfft,nfft1,ndown,fc0,c2) -! write(*,3001) c2(nfft2/3),candidates(icand,1:2) -!3001 format(2e15.6,2f10.3) - - do isync=0,1 - if(isync.eq.0) then - fc1=0.0 - is0=nint(fs2) - ishw=is0 - isst=4 - ifhw=10 - df=.1*8400/nsps - else if(isync.eq.1) then - fc1=fc28 - is0=isbest8 - ishw=4 - isst=1 - ifhw=10 - df=.02*8400/nsps - endif - - smax1=0.0 - smax8=0.0 - do if=-ifhw,ifhw - fc=fc1+df*if - do istart=max(1,is0-ishw),is0+ishw,isst - call sync_fst280(c2,istart,fc,hmod,1,nfft2,nss,fs2,sync1) - call sync_fst280(c2,istart,fc,hmod,8,nfft2,nss,fs2,sync8) - if(sync8.gt.smax8) then - fc28=fc - isbest8=istart - smax8=sync8 - endif - if(sync1.gt.smax1) then - fc21=fc - isbest1=istart - smax1=sync1 - endif - enddo - enddo -! write(*,1022) ifile,icand,isync,fc1, & -! fc21,isbest1,smax1,fc28,isbest8,smax8 -!1022 format(i5,1x,i4,1x,i4,1x,f7.2,1x,2(1x,f7.2,1x,i5,1x,e9.3)) - enddo - - if(smax8/smax1 .lt. 0.65 ) then - fc2=fc21 - isbest=isbest1 - ntmax=4 - if(hmod .gt. 1) ntmax=1 - ntmin=1 - njitter=2 - else - fc2=fc28 - isbest=isbest8 - ntmax=4 - if(hmod .gt. 1) ntmax=1 - ntmin=1 - njitter=2 - endif - fc_synced = fc0 + fc2 - dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 - call fst280_downsample(c_bigfft,nfft1,ndown,fc_synced,c2) - - if(abs((isbest-fs2)/nss) .lt. 0.2 .and. abs(fc_synced-1500.0).lt.0.4) then - ngoodsync=ngoodsync+1 - endif - - do ijitter=0,2 - if(ijitter.eq.0) ioffset=0 - if(ijitter.eq.1) ioffset=1 - if(ijitter.eq.2) ioffset=-1 - is0=isbest+ioffset - if(is0.lt.0) cycle - cframe=c2(is0:is0+164*nss-1) - s2=sum(cframe*conjg(cframe)) - cframe=cframe/sqrt(s2) - call get_fst280_bitmetrics(cframe,nss,hmod,bitmetrics,badsync) - - hbits=0 - where(bitmetrics(:,1).ge.0) hbits=1 - ns1=count(hbits( 1: 8).eq.(/0,0,0,1,1,0,1,1/)) - ns2=count(hbits( 9: 16).eq.(/0,1,0,0,1,1,1,0/)) - ns3=count(hbits(157:164).eq.(/0,0,0,1,1,0,1,1/)) - ns4=count(hbits(165:172).eq.(/0,1,0,0,1,1,1,0/)) - ns5=count(hbits(313:320).eq.(/0,0,0,1,1,0,1,1/)) - ns6=count(hbits(321:328).eq.(/0,1,0,0,1,1,1,0/)) - nsync_qual=ns1+ns2+ns3+ns4+ns5+ns6 -! if(nsync_qual.lt. 20) cycle - - scalefac=2.83 - llra( 1:140)=bitmetrics( 17:156, 1) - llra(141:280)=bitmetrics(173:312, 1) - llra=scalefac*llra - llrb( 1:140)=bitmetrics( 17:156, 2) - llrb(141:280)=bitmetrics(173:312, 2) - llrb=scalefac*llrb - llrc( 1:140)=bitmetrics( 17:156, 3) - llrc(141:280)=bitmetrics(173:312, 3) - llrc=scalefac*llrc - llrd( 1:140)=bitmetrics( 17:156, 4) - llrd(141:280)=bitmetrics(173:312, 4) - llrd=scalefac*llrd - apmask=0 - - do itry=ntmax,ntmin,-1 - if(itry.eq.1) llr=llra - if(itry.eq.2) llr=llrb - if(itry.eq.3) llr=llrc - if(itry.eq.4) llr=llrd - dmin=0.0 - nharderrors=-1 - unpk77_success=.false. - if(iwspr.eq.0) then - maxosd=2 - call decode280_101(llr,Keff,maxosd,ndeep,apmask,message101,cw,ntype,nharderrors,dmin) - else - maxosd=2 - call decode280_74(llr,Keff,maxosd,ndeep,apmask,message74,cw,ntype,nharderrors,dmin) - endif - if(nharderrors .ge.0) then - if(iwspr.eq.0) then - write(c77,'(77i1)') message101(1:77) - call unpack77(c77,0,msg,unpk77_success) - else - write(c77,'(50i1)') message74(1:50) - c77(51:77)='000000000000000000000110000' - call unpack77(c77,0,msg,unpk77_success) - endif - if(nharderrors .ge.0 .and. unpk77_success) then - ngood=ngood+1 - write(*,1100) nfile,icand,xsnr,dt_synced,fc_synced, & - itry,ntype,nharderrors,dmin,ijitter,nsync_qual,msg(1:22) -1100 format(i5,i5,f6.1,f6.2,f7.1,i4,i4,i4,f7.2,i6,i6,2x,a22) - goto 2002 - else - cycle - endif - endif - enddo ! metrics - enddo ! istart jitter -2002 continue - enddo !candidate list - enddo !files - nfiles=nargs-iarg+1 - write(*,*) 'nfiles: ',nfiles,' ngood: ',ngood,' ngoodsync: ',ngoodsync - write(*,1120) -1120 format("") - -999 end program fst280d - -subroutine sync_fst280(cd0,i0,f0,hmod,ncoh,np,nss,fs,sync) - -! Compute sync power for a complex, downsampled FST280 signal. - - include 'fst280_params.f90' - complex cd0(0:np-1) - complex, allocatable, save :: csync(:) - complex, allocatable, save :: csynct(:) - complex ctwk(8*nss) - complex z1,z2,z3 - logical first - integer isyncword(0:7) - integer hmod - real f0save - data isyncword/0,1,3,2,1,0,2,3/ - data first/.true./ - data f0save/0.0/ - save first,twopi,dt,fac,f0save - - p(z1)=(real(z1*fac)**2 + aimag(z1*fac)**2)**0.5 !Statement function for power - - if( first ) then - allocate( csync(8*nss) ) - allocate( csynct(8*nss) ) - twopi=8.0*atan(1.0) - dt=1/fs - k=1 - phi=0.0 - do i=0,7 - dphi=twopi*hmod*(isyncword(i)-1.5)/real(nss) - do j=1,nss - csync(k)=cmplx(cos(phi),sin(phi)) - phi=mod(phi+dphi,twopi) - k=k+1 - enddo - enddo - first=.false. - fac=1.0/(8.0*nss) - endif - - if(f0.ne.f0save) then - dphi=twopi*f0*dt - phi=0.0 - do i=1,8*nss - ctwk(i)=cmplx(cos(phi),sin(phi)) - phi=mod(phi+dphi,twopi) - enddo - csynct=ctwk*csync - f0save=f0 - endif - - i1=i0 !Costas arrays - i2=i0+78*nss - i3=i0+156*nss - - s1=0.0 - s2=0.0 - s3=0.0 - nsec=8/ncoh - do i=1,nsec - is=(i-1)*ncoh*nss - z1=sum(cd0(i1+is:i1+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) - z2=sum(cd0(i2+is:i2+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) - z3=sum(cd0(i3+is:i3+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) - s1=s1+abs(z1)/(8*nss) - s2=s2+abs(z2)/(8*nss) - s3=s3+abs(z3)/(8*nss) - enddo - - sync = s1+s2+s3 - - return -end subroutine sync_fst280 - -subroutine fst280_downsample(c_bigfft,nfft1,ndown,f0,c1) - -! Output: Complex data in c(), sampled at 12000/ndown Hz - - complex c_bigfft(0:nfft1/2) - complex c1(0:nfft1/ndown-1) - - df=12000.0/nfft1 - i0=nint(f0/df) - c1(0)=c_bigfft(i0) - nfft2=nfft1/ndown - do i=1,nfft2/2 - if(i0+i.le.nfft1/2) c1(i)=c_bigfft(i0+i) - if(i0-i.ge.0) c1(nfft2-i)=c_bigfft(i0-i) - enddo - c1=c1/nfft2 - call four2a(c1,nfft2,1,1,1) !c2c FFT back to time domain - return - -end subroutine fst280_downsample - -subroutine get_candidates_fst280(c_bigfft,nfft1,nsps,hmod,fs,fa,fb,ncand,candidates) - - complex c_bigfft(0:nfft1/2) - integer hmod - real candidates(100,3) - real s(18000) - real s2(18000) - data nfft1z/-1/ - save nfft1z - - nh1=nfft1/2 - df1=fs/nfft1 - baud=fs/nsps - df2=baud/2.0 - nd=df1/df2 - ndh=nd/2 - ia=fa/df2 - ib=fb/df2 - s=0. - do i=ia,ib - j0=nint(i*df2/df1) - do j=j0-ndh,j0+ndh - s(i)=s(i) + real(c_bigfft(j))**2 + aimag(c_bigfft(j))**2 - enddo - enddo - call pctile(s(ia:ib),ib-ia+1,30,base) - s=s/base - nh=hmod - do i=ia,ib - s2(i)=s(i-nh*3) + s(i-nh) +s(i+nh) +s(i+nh*3) - s2(i)=db(s2(i)) - 48.5 - enddo - - if(hmod.eq.1) thresh=-29.5 - if(hmod.eq.2) thresh=-27.0 - if(hmod.eq.4) thresh=-27.0 - if(hmod.eq.8) thresh=-27.0 - - ncand=0 - do i=ia,ib - if((s2(i).gt.s2(i-1)).and. & - (s2(i).gt.s2(i+1)).and. & - (s2(i).gt.thresh).and.ncand.lt.100) then - ncand=ncand+1 - candidates(ncand,1)=df2*i - candidates(ncand,2)=s2(i) - endif - enddo - - return -end subroutine get_candidates_fst280 diff --git a/lib/fst240/fst280sim.f90 b/lib/fst240/fst280sim.f90 deleted file mode 100644 index a11bcc7e4..000000000 --- a/lib/fst240/fst280sim.f90 +++ /dev/null @@ -1,143 +0,0 @@ -program fst280sim - -! Generate simulated signals for experimental slow FT4 mode - - use wavhdr - use packjt77 - include 'fst280_params.f90' !Set various constants - type(hdr) h !Header for .wav file - character arg*12,fname*17 - character msg37*37,msgsent37*37,c77*77 - complex, allocatable :: c0(:) - complex, allocatable :: c(:) - real, allocatable :: wave(:) - integer hmod - integer itone(NN) - integer*1 msgbits(101) - integer*2, allocatable :: iwave(:) !Generated full-length waveform - -! Get command-line argument(s) - nargs=iargc() - if(nargs.ne.9) then - print*,'Need 9 arguments, got ',nargs - print*,'Usage: fst280sim "message" TRsec f0 DT h fdop del nfiles snr' - print*,'Examples: fst280sim "K1JT K9AN EN50" 60 1500 0.0 1 0.1 1.0 10 -15' - go to 999 - endif - call getarg(1,msg37) !Message to be transmitted - call getarg(2,arg) - read(arg,*) nsec !TR sequence length, seconds - call getarg(3,arg) - read(arg,*) f00 !Frequency (only used for single-signal) - call getarg(4,arg) - read(arg,*) xdt !Time offset from nominal (s) - call getarg(5,arg) - read(arg,*) hmod !Modulation index, h - call getarg(6,arg) - read(arg,*) fspread !Watterson frequency spread (Hz) - call getarg(7,arg) - read(arg,*) delay !Watterson delay (ms) - call getarg(8,arg) - read(arg,*) nfiles !Number of files - call getarg(9,arg) - read(arg,*) snrdb !SNR_2500 - - nfiles=abs(nfiles) - twopi=8.0*atan(1.0) - fs=12000.0 !Sample rate (Hz) - dt=1.0/fs !Sample interval (s) - nsps=0 - if(nsec.eq.15) nsps=800 - if(nsec.eq.30) nsps=1680 - if(nsec.eq.60) nsps=3888 - if(nsec.eq.120) nsps=8200 - if(nsec.eq.300) nsps=21168 - if(nsps.eq.0) then - print*,'Invalid TR sequence length.' - go to 999 - endif - baud=12000.0/nsps !Keying rate (baud) - nmax=nsec*12000 - nz=nsps*NN - nz2=nsps*NN2 - txt=nz2*dt !Transmission length (s) - tt=nsps*dt !Duration of symbols (s) - allocate( c0(0:nmax-1) ) - allocate( c(0:nmax-1) ) - allocate( wave(nmax) ) - allocate( iwave(nmax) ) - - bandwidth_ratio=2500.0/(fs/2.0) - sig=sqrt(2*bandwidth_ratio) * 10.0**(0.05*snrdb) - if(snrdb.gt.90.0) sig=1.0 - - i3=-1 - n3=-1 - call pack77(msg37,i3,n3,c77) - call genfst280(msg37,0,msgsent37,msgbits,itone,iwspr) - - write(*,*) - write(*,'(a9,a37)') 'Message: ',msgsent37 - write(*,1000) f00,xdt,hmod,txt,snrdb -1000 format('f0:',f9.3,' DT:',f6.2,' hmod:',i6,' TxT:',f6.1,' SNR:',f6.1) - write(*,*) - if(i3.eq.1) then - write(*,*) ' mycall hiscall hisgrid' - write(*,'(28i1,1x,i1,1x,28i1,1x,i1,1x,i1,1x,15i1,1x,3i1)') msgbits(1:77) - else - write(*,'(a14)') 'Message bits: ' - write(*,'(50i1,1x,24i1)') msgbits - endif - write(*,*) - write(*,'(a17)') 'Channel symbols: ' - write(*,'(10i1)') itone - write(*,*) - -! call sgran() - - fsample=12000.0 - icmplx=1 - f0=f00+1.5*hmod*baud - call gen_fst280wave(itone,NN,nsps,nmax,fsample,hmod,f0,icmplx,c0,wave) - k=nint(xdt/dt) - c0=cshift(c0,-k) - if(k.gt.0) c0(0:k-1)=0.0 - if(k.lt.0) c0(nmax+k:nmax-1)=0.0 - - do ifile=1,nfiles - c=c0 - if(fspread.ne.0.0 .or. delay.ne.0.0) call watterson(c,nmax,NZ,fs,delay,fspread) - c=sig*c - wave=real(c) - if(snrdb.lt.90) then - do i=1,nmax !Add gaussian noise at specified SNR - xnoise=gran() - wave(i)=wave(i) + xnoise - enddo - endif - gain=100.0 - if(snrdb.lt.90.0) then - wave=gain*wave - else - datpk=maxval(abs(wave)) - fac=32766.9/datpk - wave=fac*wave - endif - if(any(abs(wave).gt.32767.0)) print*,"Warning - data will be clipped." - iwave=nint(wave) - h=default_header(12000,nmax) - if(nmax/12000.le.30) then - write(fname,1102) ifile -1102 format('000000_',i6.6,'.wav') - else - write(fname,1104) ifile -1104 format('000000_',i4.4,'.wav') - endif - open(10,file=trim(fname),status='unknown',access='stream') - write(10) h,iwave !Save to *.wav file - close(10) - write(*,1110) ifile,xdt,f00,snrdb,fname -1110 format(i4,f7.2,f8.2,f7.1,2x,a17) - enddo - -999 end program fst280sim diff --git a/lib/fst240/gen_fst280wave.f90 b/lib/fst240/gen_fst280wave.f90 deleted file mode 100644 index 7a27ca90c..000000000 --- a/lib/fst240/gen_fst280wave.f90 +++ /dev/null @@ -1,98 +0,0 @@ -subroutine gen_fst280wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & - icmplx,cwave,wave) - - parameter(NTAB=65536) - real wave(nwave) - complex cwave(nwave),ctab(0:NTAB-1) - real, allocatable, save :: pulse(:) - real, allocatable :: dphi(:) - integer hmod - integer itone(nsym) -! integer*8 count0,count1,clkfreq - logical first - data first/.true./ - data nsps0/-99/ - save first,twopi,dt,tsym,nsps0,ctab - -! call system_clock(count0,clkfreq) - if(first) then - twopi=8.0*atan(1.0) - do i=0,NTAB-1 - phi=i*twopi/NTAB - ctab(i)=cmplx(cos(phi),sin(phi)) - enddo - endif - - if(first.or.nsps.ne.nsps0) then - if(allocated(pulse)) deallocate(pulse) - allocate(pulse(1:3*nsps)) - dt=1.0/fsample - tsym=nsps/fsample -! Compute the smoothed frequency-deviation pulse - do i=1,3*nsps - tt=(i-1.5*nsps)/real(nsps) - pulse(i)=gfsk_pulse(2.0,tt) - enddo - first=.false. - nsps0=nsps - endif - -! Compute the smoothed frequency waveform. -! Length = (nsym+2)*nsps samples, zero-padded - allocate( dphi(0:(nsym+2)*nsps-1) ) - dphi_peak=twopi*hmod/real(nsps) - dphi=0.0 - do j=1,nsym - ib=(j-1)*nsps - ie=ib+3*nsps-1 - dphi(ib:ie) = dphi(ib:ie) + dphi_peak*pulse(1:3*nsps)*itone(j) - enddo - -! Calculate and insert the audio waveform - phi=0.0 - dphi = dphi + twopi*(f0-1.5*hmod/tsym)*dt !Shift frequency up by f0 - if(icmplx.eq.0) wave=0. - if(icmplx.eq.1) cwave=0. - k=0 - do j=0,(nsym+2)*nsps-1 - k=k+1 - i=phi*float(NTAB)/twopi - i=iand(i,NTAB-1) - if(icmplx.eq.0) then - wave(k)=real(ctab(i)) - else - cwave(k)=ctab(i) - endif - phi=phi+dphi(j) - if(phi.gt.twopi) phi=phi-twopi - enddo - -! Compute the ramp-up and ramp-down symbols - kshift=nsps-nint(fsample) - if(icmplx.eq.0) then - wave(1:nsps/2)=0.0 - wave(nsps/2+1:nsps)=wave(nsps/2+1:nsps) * & - (1.0-cos(twopi*(/(i,i=0,nsps/2-1)/)/real(nsps)))/2.0 - k1=(nsym+1)*nsps+1 - wave(k1+nsps/2:)=0.0 - wave(k1:k1+nsps/2-1)=wave(k1:k1+nsps/2-1) * & - (1.0+cos(twopi*(/(i,i=0,nsps/2-1)/)/real(nsps)))/2.0 - wave=cshift(wave,kshift) - else - cwave(1:nsps/2)=0.0 - cwave(nsps/2+1:nsps)=cwave(nsps/2+1:nsps) * & - (1.0-cos(twopi*(/(i,i=0,nsps/2-1)/)/real(nsps)))/2.0 - k1=(nsym+1)*nsps+1 - cwave(k1+nsps/2:)=0.0 - cwave(k1:k1+nsps/2-1)=cwave(k1:k1+nsps/2-1) * & - (1.0+cos(twopi*(/(i,i=0,nsps/2-1)/)/real(nsps)))/2.0 - cwave=cshift(cwave,kshift) - endif - -! call system_clock(count1,clkfreq) -! tt=float(count1-count0)/float(clkfreq) -! write(*,3001) tt -!3001 format('Tgen:',f8.3) - - return -end subroutine gen_fst280wave diff --git a/lib/fst240/genfst280.f90 b/lib/fst240/genfst280.f90 deleted file mode 100644 index 919dd2197..000000000 --- a/lib/fst240/genfst280.f90 +++ /dev/null @@ -1,109 +0,0 @@ -subroutine genfst280(msg0,ichk,msgsent,msgbits,i4tone,iwspr) - -! Input: -! - msg0 requested message to be transmitted -! - ichk if ichk=1, return only msgsent -! - msgsent message as it will be decoded -! - i4tone array of audio tone values, {0,1,2,3} -! - iwspr 0: (280,101)/crc24, 1: (280,74)/crc24 -! -! Frame structure: -! s8 d70 s8 d70 s8 - -! Message duration: TxT = 164*8400/12000 = 114.8 s - - use packjt77 - include 'fst280_params.f90' - character*37 msg0 - character*37 message !Message to be generated - character*37 msgsent !Message as it will be received - character*77 c77 - character*24 c24 - integer*4 i4tone(NN),itmp(ND) - integer*1 codeword(2*ND) - integer*1 msgbits(101),rvec(77) - integer isyncword(8) - integer ncrc24 - logical unpk77_success - data isyncword/0,1,3,2,1,0,2,3/ - data rvec/0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,0, & - 1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, & - 0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/ - message=msg0 - - do i=1, 37 - if(ichar(message(i:i)).eq.0) then - message(i:37)=' ' - exit - endif - enddo - do i=1,37 !Strip leading blanks - if(message(1:1).ne.' ') exit - message=message(i+1:) - enddo - - i3=-1 - n3=-1 - call pack77(message,i3,n3,c77) - call unpack77(c77,0,msgsent,unpk77_success) !Unpack to get msgsent - msgbits=0 - iwspr=0 - if(i3.eq.0.and.n3.eq.6) then - iwspr=1 - read(c77,'(50i1)') msgbits(1:50) - call get_crc24(msgbits,74,ncrc24) - write(c24,'(b24.24)') ncrc24 - read(c24,'(24i1)') msgbits(51:74) - else - read(c77,'(77i1)') msgbits(1:77) - call get_crc24(msgbits,101,ncrc24) - write(c24,'(b24.24)') ncrc24 - read(c24,'(24i1)') msgbits(78:101) - endif - - if(ichk.eq.1) go to 999 - if(unpk77_success) go to 2 -1 msgbits=0 - itone=0 - msgsent='*** bad message *** ' - go to 999 - - entry get_fst280_tones_from_bits(msgbits,i4tone,iwspr) - -2 continue - - if(iwspr.eq.0) then - call encode280_101(msgbits,codeword) - else - call encode280_74(msgbits(1:74),codeword) - endif - -! Grayscale mapping: -! bits tone -! 00 0 -! 01 1 -! 11 2 -! 10 3 - - do i=1,ND - is=codeword(2*i)+2*codeword(2*i-1) - if(is.le.1) itmp(i)=is - if(is.eq.2) itmp(i)=3 - if(is.eq.3) itmp(i)=2 - enddo - - i4tone(1:7)=itmp(1:7) - i4tone(8:14)=itmp(15:21) - i4tone(15:35)=itmp(29:49) - i4tone(36:43)=isyncword - i4tone(44:78)=itmp(50:84) - i4tone(79:86)=isyncword - i4tone(87:121)=itmp(85:119) - i4tone(122:129)=isyncword - i4tone(130:150)=itmp(120:140) - i4tone(151:157)=itmp(22:28) - i4tone(158:164)=itmp(8:14) - -999 return - -end subroutine genfst280 diff --git a/lib/fst240/get_fst280_bitmetrics.f90 b/lib/fst240/get_fst280_bitmetrics.f90 deleted file mode 100644 index 598a385fc..000000000 --- a/lib/fst240/get_fst280_bitmetrics.f90 +++ /dev/null @@ -1,120 +0,0 @@ -subroutine get_fst280_bitmetrics(cd,nss,hmod,nmax,bitmetrics,s4,badsync) - - include 'fst280_params.f90' - complex cd(0:NN*nss-1) - complex cs(0:3,NN) - complex csymb(nss) - complex, allocatable, save :: c1(:,:) ! ideal waveforms, 20 samples per symbol, 4 tones - complex cp(0:3) ! accumulated phase shift over symbol types 0:3 - complex csum,cterm - integer icos8(0:7) - integer graymap(0:3) - integer ip(1) - integer hmod - logical one(0:65535,0:15) ! 65536 8-symbol sequences, 16 bits - logical first - logical badsync - real bitmetrics(2*NN,4) - real s2(0:65535) - real s4(0:3,NN) - data icos8/0,1,3,2,1,0,2,3/ - data graymap/0,1,3,2/ - data first/.true./,nss0/-1/ - save first,one,cp,nss0 - - if(nss.ne.nss0 .and. allocated(c1)) deallocate(c1) - if(first .or. nss.ne.nss0) then - allocate(c1(nss,0:3)) - one=.false. - do i=0,65535 - do j=0,15 - if(iand(i,2**j).ne.0) one(i,j)=.true. - enddo - enddo - twopi=8.0*atan(1.0) - dphi=twopi*hmod/nss - do itone=0,3 - dp=(itone-1.5)*dphi - phi=0.0 - do j=1,nss - c1(j,itone)=cmplx(cos(phi),sin(phi)) - phi=mod(phi+dp,twopi) - enddo - cp(itone)=cmplx(cos(phi),sin(phi)) - enddo - first=.false. - endif - - do k=1,NN - i1=(k-1)*NSS - csymb=cd(i1:i1+NSS-1) - do itone=0,3 - cs(itone,k)=sum(csymb*conjg(c1(:,itone))) - enddo - s4(0:3,k)=abs(cs(0:3,k)) - enddo - -! Sync quality check - is1=0 - is2=0 - is3=0 - badsync=.false. - ibmax=0 - - do k=1,8 - ip=maxloc(s4(:,k)) - if(icos8(k-1).eq.(ip(1)-1)) is1=is1+1 - ip=maxloc(s4(:,k+78)) - if(icos8(k-1).eq.(ip(1)-1)) is2=is2+1 - ip=maxloc(s4(:,k+156)) - if(icos8(k-1).eq.(ip(1)-1)) is3=is3+1 - enddo - nsync=is1+is2+is3 !Number of correct hard sync symbols, 0-24 - - badsync=.false. - if(nsync .lt. 8) then - badsync=.true. - return - endif - - bitmetrics=0.0 - do nseq=1,nmax !Try coherent sequences of 1, 2, and 4 symbols - if(nseq.eq.1) nsym=1 - if(nseq.eq.2) nsym=2 - if(nseq.eq.3) nsym=4 - if(nseq.eq.4) nsym=8 - nt=4**nsym - do ks=1,NN-nsym+1,nsym - s2=0 - do i=0,nt-1 - csum=0 - cterm=1 - do j=0,nsym-1 - ntone=mod(i/4**(nsym-1-j),4) - csum=csum+cs(graymap(ntone),ks+j)*cterm - cterm=cterm*conjg(cp(graymap(ntone))) - enddo - s2(i)=abs(csum) - enddo - ipt=1+(ks-1)*2 - if(nsym.eq.1) ibmax=1 - if(nsym.eq.2) ibmax=3 - if(nsym.eq.4) ibmax=7 - if(nsym.eq.8) ibmax=15 - do ib=0,ibmax - bm=maxval(s2(0:nt-1),one(0:nt-1,ibmax-ib)) - & - maxval(s2(0:nt-1),.not.one(0:nt-1,ibmax-ib)) - if(ipt+ib.gt.2*NN) cycle - bitmetrics(ipt+ib,nseq)=bm - enddo - enddo - enddo - bitmetrics(321:328,4)=bitmetrics(321:328,3) - - call normalizebmet(bitmetrics(:,1),2*NN) - call normalizebmet(bitmetrics(:,2),2*NN) - call normalizebmet(bitmetrics(:,3),2*NN) - call normalizebmet(bitmetrics(:,4),2*NN) - return - -end subroutine get_fst280_bitmetrics diff --git a/lib/fst240/ldpc_280_101_generator.f90 b/lib/fst240/ldpc_280_101_generator.f90 deleted file mode 100644 index 521e80026..000000000 --- a/lib/fst240/ldpc_280_101_generator.f90 +++ /dev/null @@ -1,182 +0,0 @@ -character*26 g(179) - -data g/ & - "c919bcbfe4091279702a761e98", & - "51b952dddd36200cf73cc1ed30", & - "15871d32e8e888439180cf6fd8", & - "581f858f6c89ee5ccb91664358", & - "3515e85cedf905eda366a8fc20", & - "e9fcaa6aaa9bab21bc91174e80", & - "0ac73221d424e8747628b13968", & - "4999f7116446f1a7a7a1453a30", & - "0e92773bff2a6d4f09caa48898", & - "7dfaec97c17679f6c3b6a425f0", & - "00707d76a2a7d90297ee39f660", & - "8048cc93fc4ad84ccfc021e6e0", & - "0c13df64062fed419c9bf43400", & - "5523d84459c826b7bc3335d508", & - "828ee2552144d041ed44ada8e0", & - "3f1b89fbd93f674df4813f0898", & - "4e13df64062fed419c9bf43400", & - "5d8645307d3d442991d6efafd0", & - "e5cd9b98d73aab17ce04c4df10", & - "06d26e11e2d02e9cb4f191c2b0", & - "5630cebc5b3a09f7d4fe58fab0", & - "bbfa9591589229738ecbc19288", & - "c98654d1f1f16d507e9bb77cf0", & - "c2af2107bb2bdff49d909dc730", & - "51da7da0c9b1bd18a15f580068", & - "5bdfd83e7ca3097146a5359428", & - "34fc4d397d97ca3ceb272f49a0", & - "6716a6d027ade94010e9aa90b0", & - "62ac7bb089d1a13f6e89f92348", & - "737c3ab63210e195e92e8ad478", & - "db2da5b8a21d22a7122ad80e60", & - "1226525dba4221d4768a495878", & - "a99deb4c9b7d316917b1ece958", & - "8123fb46556f22a0b57bdc7eb0", & - "cc6a80e87a7a9bf8addb17a6a8", & - "3d42bb6ca1c8d30e6cee77aa10", & - "ad15a0c2f36d4409a458cc83c0", & - "766a04039736bd8be23513ae58", & - "257a3da77558d7c707170c30c8", & - "8e54a55fd9f00eb669ab787678", & - "4ef1a73cc9da8670d83bebc588", & - "be8bb82558d44fea1ab27376a0", & - "ea9db4f88c60edf410cb0128d8", & - "a84e19a5261818262ee7247278", & - "51f99e4ea17cf84038d4e00bd0", & - "610560db4095fc44d2465308a0", & - "7688745b59c3d6baa6950c4f50", & - "4b8794914d365b6802bd62a9c8", & - "f62c211d05ed28802b9d278298", & - "b9cd45b2ffa8c0dd688f8d2bc0", & - "68555e81f4227a48e76878bc98", & - "7ab58f11d41a2d38b80d2a7558", & - "aba2d33e69077b6acad393af68", & - "81e5f58fa3ab563e73706201a8", & - "7586aea816750c41671eaa7db8", & - "af37b0a97ba5334a3dd01948e8", & - "4fdc03c263a0c42dcc265f7dc8", & - "b23f2d7f28748944cdfffd5af0", & - "5c1e6f37dfba8feacaafdb0f78", & - "3a85b051f4f1c930d921f60828", & - "72319352bd8022ce2cae2e7858", & - "78b79f633ac6879e3ac3a005a0", & - "9f0c470609669953b23328de60", & - "86d3745d50142c82a066ab9490", & - "743e7bf411490f36a9799e37e8", & - "9b8378677870933ef360d7e418", & - "5f7adbf515b663a1434b0d47d8", & - "13249a96b14c6cdcfae5009eb0", & - "da9570e0a52125d0dc4dec4430", & - "ada13ce2dbcb57e2f5b31172f0", & - "84f5485886d4157e9d37efb4d0", & - "23f58c3200bab4ae5dee54edd0", & - "d4377aadf8acb19d4369613ac8", & - "17cefcf65c87885fb6c4d537a0", & - "59d70b8536488298930aaea7f8", & - "49e8dbb08c2ecdaa84bb6a5378", & - "e1694479ecc1f87e503f959e50", & - "dbb3fc94f0f70d4bd4dcf302d8", & - "4ccb3a56f80c236424683b1588", & - "f4f123c72596a00397d56fcdf8", & - "13f9cf266a6957b87cd2b576f0", & - "0904d341bc0878460cd8361ac0", & - "69fd534caf2cccf9c90659a038", & - "757d3d95089a5bc20a7b77c618", & - "30df1d7b8124415c73190b08d8", & - "d39319584987dce0c44176d5d8", & - "1a81df299eb7434a5b6b9322a0", & - "fe4acfab1c22c7bea222f1a6b0", & - "2f2fde37fa8f87a318f7bcda10", & - "fae712210c23665aa7a3f10620", & - "977b8407c7fd22d7715077ee78", & - "2ab2b355b3477df0b738c49d48", & - "93a2468cfd11a522b310069d88", & - "0e5ae6e789ded3c0d436359318", & - "9ece0b13a3c06d560a15d3c448", & - "838e8bbf5e671503ea72ba3118", & - "7c827de9a87d740763c69c6778", & - "1fe395e4e2e6d1373602243488", & - "f2c4efee3d0ce2e22749be9e20", & - "46405cca0e40f36ab83de4a998", & - "8b6e931355a79630ef2dbdbdb8", & - "10df1d3b8124415c72190b08d8", & - "cdff258b07a4f7cfe5c2210ba8", & - "1515e85cedf904eda366a8fc20", & - "a38276f2d077abc1da5e177868", & - "67a7b5ab66f21f391d306c3330", & - "29492cc630f9bad1fdedf0c990", & - "490a6dd38170eab178f7cebf78", & - "ca9db4e88c60edf410cf0128d8", & - "e3f1c23fa8531fb1e4c7768d88", & - "39d7d8fbbb689b2a9bedfd4dd0", & - "d1b952dd5d36200cf734c1ed30", & - "0820a5ccb970d1ab109d84d700", & - "58bc3c509fcd7874e9b1533ba8", & - "08ed7724ac66b7974499b12f40", & - "4738529b2fd04afd89184b64b8", & - "7155b496e3b9f687135b4c55b8", & - "b5d1d3cf38b1765dd730d8b960", & - "296de2c373773a869b9cf804c8", & - "1cdf18b99bcc47ae72bf59df68", & - "ad0888db89dd794be0b2660e98", & - "1f2a8db9db19cd4d69a735d930", & - "44b720007480382206fdbfbb18", & - "c63817aad3801fb993ea9032c0", & - "d44707db5a0b489fd48748cca8", & - "49f98a67c6e128a5300f7ccc50", & - "04849fa9da91d4514355406388", & - "dfad3a11788cf6f6517f987de8", & - "47078a19e38a0763cabd7c8d70", & - "aafa7f864f0da5bc78f8e57ba8", & - "8acb5a34e18e111023b3e7b1f8", & - "5acc41263d6aa1767e5e6acdc8", & - "27623a9f6c1174e35394191820", & - "1f2bde9c006b3b687964b1c5e0", & - "b01c6e357bce202244b4a88d08", & - "61c85d74d7e97576507c9b0e88", & - "bcad5a44d75ae40bc43559d268", & - "10584eaf319552194418563de0", & - "b29b011d717d10a22de0983980", & - "2f9b42d7d2299449491c612b20", & - "389ba33f5fec3bfb3a0ef86b50", & - "3df89f78c19fb27ae7ff19d360", & - "65ff6ba4e107aa919a6afb4ff0", & - "39b607c3f09679a62e134cd390", & - "94ad06f7b7414727d92f998930", & - "169200459898ae0bc7f06714a0", & - "c7a5a945adebb554cb4d86a830", & - "f37c3ab63230e195e92e8ad478", & - "559a51262e91aa9ba0fa96af48", & - "fb2998ca916a557463d00fb160", & - "aa32462ada57a76ae132fc8de8", & - "e6df6b19f58bfee0b96b731b90", & - "e984335d40a54fe914a6249110", & - "ea73d8f3f14bd9fe2374e39120", & - "3adab8e51c36f53584e3669c88", & - "74ef69f64dc4fef86c3b1fe640", & - "d01c6bc112d7ae3e4ba4820a78", & - "62923979fd3c3d1153bcaaf338", & - "038f72995b5072df8fe5f4dfa0", & - "9f07e7cea2f1476fb035978790", & - "2a5aad6a75d5c86cab38fd0070", & - "a254a09cc3180854688d2aa9c8", & - "0495639712a04820f7038ae7c0", & - "d99fc716ca825ad45cca8f4518", & - "01b8d558073c0377ce67344a50", & - "2fbd0f86a17c3f93713fbd09a0", & - "c29dc84bec7b4cd00dd1c17380", & - "5e6238b823f530ae017a03f0e0", & - "51203d329c68b061977d78d4c0", & - "1186729e08cf1dfbec30237968", & - "40363018b431224a1f559d2908", & - "e334e78442b614a0c9a377e1b8", & - "ff2eda86339f589f96382f52e0", & - "58a30e07fc7a37a4f858623778", & - "f5067fe407a4c3b94ce7b63e48", & - "1d09ced788a3642bc0ec640ec8", & - "17734ca67d53cd9d8595970668", & - "47953c2105bd94bff079672740", & - "3444682d1dc0ab486036c1b0d0"/ diff --git a/lib/fst240/ldpc_280_101_parity.f90 b/lib/fst240/ldpc_280_101_parity.f90 deleted file mode 100644 index b1cabb7d1..000000000 --- a/lib/fst240/ldpc_280_101_parity.f90 +++ /dev/null @@ -1,476 +0,0 @@ -data Mn/ & - 150, 151, 161, & - 6, 164, 172, & - 92, 128, 158, & - 2, 63, 135, & - 3, 14, 22, & - 4, 18, 29, & - 5, 17, 164, & - 7, 99, 179, & - 8, 88, 115, & - 9, 62, 110, & - 10, 107, 154, & - 11, 50, 140, & - 12, 28, 33, & - 13, 31, 170, & - 15, 69, 175, & - 16, 77, 178, & - 19, 70, 91, & - 20, 95, 177, & - 21, 96, 106, & - 23, 129, 168, & - 24, 49, 169, & - 25, 65, 102, & - 26, 82, 171, & - 27, 45, 137, & - 30, 89, 119, & - 32, 148, 158, & - 34, 94, 152, & - 35, 44, 92, & - 36, 39, 138, & - 37, 55, 58, & - 38, 121, 165, & - 40, 81, 162, & - 41, 139, 150, & - 42, 43, 83, & - 46, 80, 114, & - 47, 52, 54, & - 48, 166, 173, & - 38, 53, 87, & - 56, 64, 126, & - 57, 67, 127, & - 59, 156, 159, & - 60, 97, 133, & - 61, 118, 161, & - 66, 100, 123, & - 68, 124, 131, & - 71, 101, 155, & - 72, 74, 144, & - 73, 112, 141, & - 75, 136, 149, & - 59, 78, 117, & - 79, 130, 163, & - 84, 93, 113, & - 86, 108, 163, & - 103, 146, 157, & - 70, 104, 145, & - 105, 128, 142, & - 74, 109, 122, & - 54, 111, 153, & - 116, 154, 176, & - 120, 132, 167, & - 21, 125, 147, & - 134, 143, 166, & - 7, 81, 160, & - 32, 99, 174, & - 1, 93, 104, & - 2, 69, 98, & - 3, 33, 152, & - 4, 46, 159, & - 5, 126, 178, & - 6, 127, 147, & - 8, 101, 110, & - 9, 73, 158, & - 10, 120, 123, & - 11, 122, 125, & - 12, 58, 170, & - 13, 88, 105, & - 14, 133, 150, & - 15, 92, 100, & - 16, 90, 108, & - 17, 44, 106, & - 18, 35, 175, & - 19, 94, 179, & - 20, 97, 153, & - 22, 109, 130, & - 23, 63, 140, & - 24, 37, 146, & - 25, 141, 168, & - 26, 95, 115, & - 27, 107, 149, & - 28, 91, 168, & - 29, 134, 144, & - 30, 31, 169, & - 34, 40, 96, & - 36, 156, 172, & - 39, 61, 135, & - 41, 42, 121, & - 43, 57, 117, & - 45, 62, 72, & - 47, 137, 167, & - 48, 83, 116, & - 49, 65, 173, & - 1, 50, 141, & - 2, 8, 150, & - 3, 62, 140, & - 4, 104, 124, & - 5, 128, 139, & - 6, 64, 159, & - 7, 103, 176, & - 2, 11, 104, & - 9, 71, 85, & - 10, 80, 131, & - 11, 17, 130, & - 12, 148, 156, & - 13, 39, 164, & - 14, 15, 167, & - 14, 32, 89, & - 16, 114, 135, & - 8, 164, 169, & - 18, 107, 129, & - 19, 53, 102, & - 20, 134, 170, & - 21, 43, 145, & - 22, 24, 76, & - 23, 44, 146, & - 19, 22, 101, & - 25, 41, 48, & - 26, 46, 58, & - 27, 82, 87, & - 28, 78, 179, & - 29, 73, 81, & - 30, 116, 161, & - 31, 96, 157, & - 15, 58, 172, & - 10, 33, 160, & - 34, 110, 118, & - 33, 35, 113, & - 36, 166, 175, & - 32, 37, 152, & - 38, 57, 74, & - 13, 82, 176, & - 40, 42, 45, & - 25, 57, 177, & - 40, 120, 136, & - 21, 92, 121, & - 23, 34, 147, & - 12, 45, 54, & - 3, 46, 48, & - 47, 91, 169, & - 26, 61, 132, & - 49, 123, 147, & - 1, 79, 88, & - 51, 97, 101, & - 52, 155, 177, & - 24, 72, 105, & - 54, 84, 106, & - 55, 63, 126, & - 56, 72, 163, & - 38, 63, 170, & - 37, 71, 178, & - 20, 49, 59, & - 30, 60, 117, & - 61, 65, 137, & - 41, 98, 119, & - 47, 51, 62, & - 6, 76, 131, & - 55, 70, 81, & - 66, 111, 119, & - 60, 67, 94, & - 68, 112, 132, & - 9, 69, 157, & - 70, 75, 89, & - 69, 108, 153, & - 44, 53, 77, & - 29, 130, 149, & - 65, 103, 125, & - 74, 85, 156, & - 56, 67, 68, & - 77, 138, 144, & - 28, 95, 138, & - 79, 133, 142, & - 35, 50, 86, & - 73, 78, 137, & - 27, 126, 175, & - 83, 100, 143, & - 42, 142, 168, & - 40, 48, 158, & - 86, 95, 174, & - 39, 109, 129, & - 59, 88, 125, & - 6, 89, 155, & - 36, 90, 102, & - 75, 97, 141, & - 43, 146, 148, & - 93, 149, 168, & - 52, 83, 94, & - 80, 87, 106, & - 91, 96, 143, & - 3, 43, 126, & - 98, 154, 162, & - 99, 115, 173, & - 5, 84, 100, & - 64, 133, 154, & - 90, 117, 158, & - 7, 108, 151, & - 4, 128, 167, & - 105, 127, 136, & - 1, 83, 114, & - 107, 127, 134, & - 4, 108, 170, & - 92, 109, 171, & - 110, 113, 122, & - 111, 124, 166, & - 12, 112, 150, & - 2, 95, 105, & - 17, 114, 118, & - 99, 139, 144, & - 116, 165, 178, & - 5, 22, 73, & - 16, 115, 162, & - 13, 34, 41, & - 120, 122, 151, & - 121, 160, 172, & - 8, 37, 102, & - 123, 140, 165, & - 7, 53, 93, & - 9, 10, 130, & - 11, 30, 58, & - 31, 66, 179, & - 14, 31, 45, & - 15, 88, 129, & - 18, 101, 148, & - 16, 62, 127, & - 17, 20, 68, & - 19, 86, 98, & - 25, 106, 163, & - 135, 152, 163, & - 23, 124, 137, & - 21, 28, 71, & - 24, 26, 153, & - 29, 90, 123, & - 32, 113, 134, & - 35, 57, 169, & - 27, 50, 139, & - 33, 60, 65, & - 38, 61, 142, & - 145, 153, 154, & - 39, 67, 81, & - 36, 84, 133, & - 18, 161, 173, & - 93, 155, 171, & - 42, 99, 131, & - 49, 87, 162, & - 51, 56, 168, & - 47, 125, 144, & - 44, 143, 159, & - 46, 75, 138, & - 52, 78, 107, & - 54, 109, 174, & - 64, 110, 179, & - 159, 165, 174, & - 66, 135, 171, & - 63, 76, 117, & - 59, 111, 120, & - 72, 160, 166, & - 70, 118, 156, & - 55, 157, 173, & - 74, 100, 176, & - 77, 112, 145, & - 69, 141, 147, & - 94, 140, 151, & - 51, 82, 104, & - 85, 98, 167, & - 80, 119, 146, & - 97, 122, 172, & - 90, 96, 132, & - 79, 91, 178, & - 103, 136, 152, & - 1, 76, 85, & - 115, 121, 149, & - 116, 175, 177/ - -data Nm/ & - 65, 102, 151, 207, 278, 0, & - 4, 66, 103, 109, 214, 0, & - 5, 67, 104, 147, 198, 0, & - 6, 68, 105, 205, 209, 0, & - 7, 69, 106, 201, 218, 0, & - 2, 70, 107, 165, 190, 0, & - 8, 63, 108, 204, 225, 0, & - 9, 71, 103, 118, 223, 0, & - 10, 72, 110, 170, 226, 0, & - 11, 73, 111, 134, 226, 0, & - 12, 74, 109, 112, 227, 0, & - 13, 75, 113, 146, 213, 0, & - 14, 76, 114, 140, 220, 0, & - 5, 77, 115, 116, 229, 0, & - 15, 78, 115, 133, 230, 0, & - 16, 79, 117, 219, 232, 0, & - 7, 80, 112, 215, 233, 0, & - 6, 81, 119, 231, 249, 0, & - 17, 82, 120, 125, 234, 0, & - 18, 83, 121, 160, 233, 0, & - 19, 61, 122, 144, 238, 0, & - 5, 84, 123, 125, 218, 0, & - 20, 85, 124, 145, 237, 0, & - 21, 86, 123, 154, 239, 0, & - 22, 87, 126, 142, 235, 0, & - 23, 88, 127, 149, 239, 0, & - 24, 89, 128, 183, 243, 0, & - 13, 90, 129, 179, 238, 0, & - 6, 91, 130, 174, 240, 0, & - 25, 92, 131, 161, 227, 0, & - 14, 92, 132, 228, 229, 0, & - 26, 64, 116, 138, 241, 0, & - 13, 67, 134, 136, 244, 0, & - 27, 93, 135, 145, 220, 0, & - 28, 81, 136, 181, 242, 0, & - 29, 94, 137, 191, 248, 0, & - 30, 86, 138, 159, 223, 0, & - 31, 38, 139, 158, 245, 0, & - 29, 95, 114, 188, 247, 0, & - 32, 93, 141, 143, 186, 0, & - 33, 96, 126, 163, 220, 0, & - 34, 96, 141, 185, 251, 0, & - 34, 97, 122, 193, 198, 0, & - 28, 80, 124, 173, 255, 0, & - 24, 98, 141, 146, 229, 0, & - 35, 68, 127, 147, 256, 0, & - 36, 99, 148, 164, 254, 0, & - 37, 100, 126, 147, 186, 0, & - 21, 101, 150, 160, 252, 0, & - 12, 102, 181, 243, 0, 0, & - 152, 164, 253, 271, 0, 0, & - 36, 153, 195, 257, 0, 0, & - 38, 120, 173, 225, 0, 0, & - 36, 58, 146, 155, 258, 0, & - 30, 156, 166, 266, 0, 0, & - 39, 157, 177, 253, 0, 0, & - 40, 97, 139, 142, 242, 0, & - 30, 75, 127, 133, 227, 0, & - 41, 50, 160, 189, 263, 0, & - 42, 161, 168, 244, 0, 0, & - 43, 95, 149, 162, 245, 0, & - 10, 98, 104, 164, 232, 0, & - 4, 85, 156, 158, 262, 0, & - 39, 107, 202, 259, 0, 0, & - 22, 101, 162, 175, 244, 0, & - 44, 167, 228, 261, 0, 0, & - 40, 168, 177, 247, 0, 0, & - 45, 169, 177, 233, 0, 0, & - 15, 66, 170, 172, 269, 0, & - 17, 55, 166, 171, 265, 0, & - 46, 110, 159, 238, 0, 0, & - 47, 98, 154, 157, 264, 0, & - 48, 72, 130, 182, 218, 0, & - 47, 57, 139, 176, 267, 0, & - 49, 171, 192, 256, 0, 0, & - 123, 165, 262, 278, 0, 0, & - 16, 173, 178, 268, 0, 0, & - 50, 129, 182, 257, 0, 0, & - 51, 151, 180, 276, 0, 0, & - 35, 111, 196, 273, 0, 0, & - 32, 63, 130, 166, 247, 0, & - 23, 128, 140, 271, 0, 0, & - 34, 100, 184, 195, 207, 0, & - 52, 155, 201, 248, 0, 0, & - 110, 176, 272, 278, 0, 0, & - 53, 181, 187, 234, 0, 0, & - 38, 128, 196, 252, 0, 0, & - 9, 76, 151, 189, 230, 0, & - 25, 116, 171, 190, 0, 0, & - 79, 191, 203, 240, 275, 0, & - 17, 90, 148, 197, 276, 0, & - 3, 28, 78, 144, 210, 0, & - 52, 65, 194, 225, 250, 0, & - 27, 82, 168, 195, 270, 0, & - 18, 88, 179, 187, 214, 0, & - 19, 93, 132, 197, 275, 0, & - 42, 83, 152, 192, 274, 0, & - 66, 163, 199, 234, 272, 0, & - 8, 64, 200, 216, 251, 0, & - 44, 78, 184, 201, 267, 0, & - 46, 71, 125, 152, 231, 0, & - 22, 120, 191, 223, 0, 0, & - 54, 108, 175, 277, 0, 0, & - 55, 65, 105, 109, 271, 0, & - 56, 76, 154, 206, 214, 0, & - 19, 80, 155, 196, 235, 0, & - 11, 89, 119, 208, 257, 0, & - 53, 79, 172, 204, 209, 0, & - 57, 84, 188, 210, 258, 0, & - 10, 71, 135, 211, 259, 0, & - 58, 167, 212, 263, 0, 0, & - 48, 169, 213, 268, 0, 0, & - 52, 136, 211, 241, 0, 0, & - 35, 117, 207, 215, 0, 0, & - 9, 88, 200, 219, 279, 0, & - 59, 100, 131, 217, 280, 0, & - 50, 97, 161, 203, 262, 0, & - 43, 135, 215, 265, 0, 0, & - 25, 163, 167, 273, 0, 0, & - 60, 73, 143, 221, 263, 0, & - 31, 96, 144, 222, 279, 0, & - 57, 74, 211, 221, 274, 0, & - 44, 73, 150, 224, 240, 0, & - 45, 105, 212, 237, 0, 0, & - 61, 74, 175, 189, 254, 0, & - 39, 69, 156, 183, 198, 0, & - 40, 70, 206, 208, 232, 0, & - 3, 56, 106, 205, 0, 0, & - 20, 119, 188, 230, 0, 0, & - 51, 84, 112, 174, 226, 0, & - 45, 111, 165, 251, 0, 0, & - 60, 149, 169, 275, 0, 0, & - 42, 77, 180, 202, 248, 0, & - 62, 91, 121, 208, 241, 0, & - 4, 95, 117, 236, 261, 0, & - 49, 143, 206, 277, 0, 0, & - 24, 99, 162, 182, 237, 0, & - 29, 178, 179, 256, 0, 0, & - 33, 106, 216, 243, 0, 0, & - 12, 85, 104, 224, 270, 0, & - 48, 87, 102, 192, 269, 0, & - 56, 180, 185, 245, 0, 0, & - 62, 184, 197, 255, 0, 0, & - 47, 91, 178, 216, 254, 0, & - 55, 122, 246, 268, 0, 0, & - 54, 86, 124, 193, 273, 0, & - 61, 70, 145, 150, 269, 0, & - 26, 113, 193, 231, 0, 0, & - 49, 89, 174, 194, 279, 0, & - 1, 33, 77, 103, 213, 0, & - 1, 204, 221, 270, 0, 0, & - 27, 67, 138, 236, 277, 0, & - 58, 83, 172, 239, 246, 0, & - 11, 59, 199, 202, 246, 0, & - 46, 153, 190, 250, 0, 0, & - 41, 94, 113, 176, 265, 0, & - 54, 132, 170, 266, 0, 0, & - 3, 26, 72, 186, 203, 0, & - 41, 68, 107, 255, 260, 0, & - 63, 134, 222, 264, 0, 0, & - 1, 43, 131, 249, 0, 0, & - 32, 199, 219, 252, 0, 0, & - 51, 53, 157, 235, 236, 0, & - 2, 7, 114, 118, 0, 0, & - 31, 217, 224, 260, 0, 0, & - 37, 62, 137, 212, 264, 0, & - 60, 99, 115, 205, 272, 0, & - 20, 87, 90, 185, 194, 253, & - 21, 92, 118, 148, 242, 0, & - 14, 75, 121, 158, 209, 0, & - 23, 210, 250, 261, 0, 0, & - 2, 94, 133, 222, 274, 0, & - 37, 101, 200, 249, 266, 0, & - 64, 187, 258, 260, 0, 0, & - 15, 81, 137, 183, 280, 0, & - 59, 108, 140, 267, 0, 0, & - 18, 142, 153, 280, 0, 0, & - 16, 69, 159, 217, 276, 0, & - 8, 82, 129, 228, 259, 0/ - -data nrw/ & -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, & -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, & -5,5,5,5,5,5,5,5,5,4,4,4,4,5,4,4,5,5,5,4, & -5,5,5,4,5,4,4,4,5,5,4,5,5,5,4,4,4,4,4,4, & -5,4,5,4,4,4,4,5,4,5,5,5,5,5,5,5,5,5,5,5, & -5,4,4,5,5,5,5,5,5,5,4,4,4,4,5,5,5,4,4,5, & -5,5,5,4,5,5,5,4,4,5,4,4,5,5,5,4,5,4,4,5, & -5,4,4,5,4,5,5,4,5,5,4,5,5,5,4,5,4,5,5,4, & -4,4,5,4,4,5,5,6,5,5,4,5,5,4,5,4,4,5,5/ - -ncw=3 - diff --git a/lib/fst240/ldpc_280_74_generator.f90 b/lib/fst240/ldpc_280_74_generator.f90 deleted file mode 100644 index 8625e2fd2..000000000 --- a/lib/fst240/ldpc_280_74_generator.f90 +++ /dev/null @@ -1,209 +0,0 @@ -character*19 g(206) - -data g/ & - "f7842fd3230388e2388", & - "2ebea0b08a75d2261cc", & - "b037d38c9d9b9a5e520", & - "936729d89fd5474ecdc", & - "539287b4ef7ee4534a8", & - "a4d283607d3a5020508", & - "f4539f434b8b8585444", & - "1c7b56480cc52fa5228", & - "a1c788b066ac91de648", & - "6592203e5579bbd9248", & - "aaa9e1247a75c451654", & - "f06cbce3477735fcdac", & - "0b3bd1b2eb21c4a58e8", & - "9789c1e9afeaefe132c", & - "6f3090a344262fe9588", & - "523326e51ec096314c0", & - "33ad630efa2f0547a1c", & - "128e4669c5290997554", & - "d21ba68abe8a45c7388", & - "14792ff07616833ddcc", & - "f336703cec81b57b9d4", & - "dcb179c1ede8a193578", & - "19a5027744d4d5fc3ec", & - "416cb1bc4f9fc83f03c", & - "245f12d8a19902ff678", & - "3a9653df6b08f65e934", & - "94870f042c4015d30d0", & - "7db806a2e50336e78bc", & - "d799458b3559526d2a8", & - "77e7cfd440146912610", & - "67c9ca176f188a99b1c", & - "dd736cb5cbfaa6f6cb0", & - "1210f8c1310dde522e4", & - "3bdf62af1d111a616a8", & - "556e0b2cb64629c03e0", & - "153b771b34fd0e24038", & - "677111e1bd26700abec", & - "ba6a2362c2249224dc8", & - "96d96eda9f7d897b3a4", & - "ee632974db8208ed678", & - "ba6e8ace7ca7e5dba2c", & - "112aa2048b8723c3794", & - "04125e68eed114d3a74", & - "6ce3283112a3d15df18", & - "6717fa02c4245ac3cd4", & - "bba51cf56c4ab60d0e8", & - "bf02614f56d95557004", & - "db8d9537a66dae71170", & - "2aa9e1247a75c451614", & - "37887845236cdc5a498", & - "5a0fd4682a5116e3bd4", & - "66a13f0f4838812f4b0", & - "0189837a15fb8a3ea28", & - "bd833c6eb639530bb4c", & - "ad2cb697dcd08717134", & - "d28c4e5b0e4f93921e8", & - "4a10da97be29877762c", & - "11b1d2dbd7e029e0034", & - "8cebf77857fd5b4b2d0", & - "8cf76e6929f04a6f2d0", & - "4dfdef39d983b6ff054", & - "e19594dcc430c3f36f8", & - "b4e0a5979e86ca9e7d8", & - "c6e5822a81c720e1da8", & - "d8b1374afa4f4534c2c", & - "d50ebca7ce5022d72b8", & - "d1af50dba58c8b978d4", & - "0114771daca21b8a4e8", & - "5a12be303c2bcc6cad0", & - "75ba0d26c70194e20dc", & - "feeb4567ccdd6d44334", & - "de993868f8b317cdb08", & - "8c0f2fc7b031a0354ec", & - "df2ddab6d334a1316fc", & - "d410f54de1453f63024", & - "14870f042c4011d30d0", & - "bf8bb7654c089ff49f4", & - "48fe5211864e84af104", & - "a212348c05d3f2f7c8c", & - "1cb6e7158001aa32fa0", & - "bb2700d89c358ea9f74", & - "f5ff926daf5e6003708", & - "7eecbcdc28e9800b97c", & - "b38c9a3ff4e36761180", & - "aff8af260682347a39c", & - "24c2e6bf10c093cb8b8", & - "7633edd7825917114ec", & - "3383b1074eee8343950", & - "3d0636cf743b45409bc", & - "e6191c1e4753a438054", & - "a5ed8c6a5c54aaa2d0c", & - "2335c47d4da16e79fd4", & - "56f62a484a6243fea04", & - "090c7572a6b53ed67d8", & - "a12212511d2fe5a7a04", & - "55653c6f1cd716dfafc", & - "25fb9166056f5276e50", & - "b5500cd4a5a4903b794", & - "5aaa65c6ee1732ffa20", & - "702a7660612fd7307fc", & - "bbf00390ef7bb4219f4", & - "36a23bd84e7d142dc28", & - "00dd156a637e5b6cf34", & - "d960448d1d09f7a3d5c", & - "7cc7c47ef82e670f740", & - "0c72af8643fa31e0df8", & - "c60997484551c3304ec", & - "5234c7b54ce0fb97cd4", & - "e4551cf6ddc5bf7b85c", & - "7320bbe8f600cb3f654", & - "b25ac980a31e7d449e8", & - "da25337deba0f2a1024", & - "4b54fafbcdf9f159c70", & - "75252e36d57dc65a0c8", & - "9f792800ecd943f8784", & - "fb7d1b209de7997cd40", & - "f47e660b960bf39cda4", & - "630017e41ef1e01b3bc", & - "047d83c03cd1e69929c", & - "0b8be375675a21f6c50", & - "aebfa0b08a75d2261cc", & - "dcd8bfe5b2b83f3276c", & - "862503814b89c46f268", & - "caf108899bef63422e0", & - "0651e9975e9eb3049bc", & - "d2418a98d6be4bb1368", & - "0f886c109cbf0643a64", & - "ae76a8d1d71335942cc", & - "66a0d75d3f90f0d0c04", & - "51d30039a555c4ac8cc", & - "9d7a4b82e9323439734", & - "2475d34a372b289eba4", & - "2468b9122171f215a80", & - "f1eb642be43a6d15e74", & - "001d6a58165ada8f124", & - "dd770baa38e1f8c2fd8", & - "03e026dcb395529dc0c", & - "46dc96eb5146f71a614", & - "1402ba94f9d9e1ff3dc", & - "dd7970ccb883bf18678", & - "29ddaca7cd0bf0151f4", & - "865c5ec3ab28496ade4", & - "97d388a7557a659e7f8", & - "78ba47aec4ff81965dc", & - "26a0c75d3f90f0d0c04", & - "48bc3be9b33ad3a2960", & - "e9c4c425a39b4fa6520", & - "2a8cfed864a4c6f5bb8", & - "de273ccb39330dd42a0", & - "c7e0c4a6641be9a6934", & - "f8b8514aebccc0086a4", & - "0f2b8fda05f0d07629c", & - "8734be755b106490e04", & - "789a87c164b552602d4", & - "b588408fb1a6c128874", & - "9dddcc7da27769ac544", & - "288b20a6f933bab6328", & - "f38c9a3ff4e26761180", & - "dc5613392113fea3498", & - "62dcbccf74e9673662c", & - "729e135a6b13b1eb084", & - "3045e9bb3c808018868", & - "0d1e2b1a48642a04dac", & - "abb1dced614797b1288", & - "d29fba8d71829beb4a0", & - "8f4a38515de6db613c4", & - "67194fd309de34d2178", & - "fc73d1f5ea8fd6bf49c", & - "c6289740e2b97b8d29c", & - "6100d464faa8f4f3068", & - "2cb7e414a3da6ca0988", & - "b439b0fdfdf891f28ec", & - "b7d3aaa693c7f068120", & - "25d691a2bc6288c1c50", & - "52f1f88c882d24a5f9c", & - "9892d88821ebd874f1c", & - "fbda9cdf96a2c4e9b30", & - "7716ec58ca1ac237f90", & - "6993c923557c6c68b68", & - "eb32c8c6a30622d0c28", & - "ba7980eafa803e1d3dc", & - "a92b5a9ca961bf9a5bc", & - "36ecfc5928f2c7be4cc", & - "ab854e4b7a9944840d4", & - "62db1428386b97101e4", & - "734bc6eb48e3024c7a0", & - "5b06c92d9089c7e6e38", & - "c7d02e44052506c6d14", & - "d35f553090ce90d3b04", & - "5462cf72405e2525d7c", & - "c9b85ab24e5188e5d18", & - "d0bb27c6092eb01dc7c", & - "37036df9c68bfe4eb24", & - "4387156e9b00d277ce0", & - "a39bb776102878c96a4", & - "d6f1cd9b329e7d0b374", & - "d74ba376dbaa9de5270", & - "58df754b03e0fa7a714", & - "14dfaffe9ab7ba93ce8", & - "36652b8b0226f6cc940", & - "777234e72dd631499ac", & - "581964c38824c5a58f8", & - "187cba427974172c6a0", & - "a90588951da0399e6f0", & - "3ddb7427533342f51cc", & - "25d308610cf492a5ac4"/ diff --git a/lib/fst240/ldpc_280_74_parity.f90 b/lib/fst240/ldpc_280_74_parity.f90 deleted file mode 100644 index 302edeb25..000000000 --- a/lib/fst240/ldpc_280_74_parity.f90 +++ /dev/null @@ -1,504 +0,0 @@ -data Mn/ & - 95, 150, 172, & - 154, 178, 184, & - 1, 90, 164, & - 2, 143, 199, & - 3, 33, 70, & - 4, 23, 86, & - 5, 127, 174, & - 6, 18, 110, & - 7, 59, 99, & - 8, 94, 124, & - 9, 168, 206, & - 10, 165, 175, & - 11, 64, 166, & - 12, 103, 156, & - 13, 46, 80, & - 14, 35, 172, & - 15, 20, 189, & - 16, 162, 188, & - 17, 74, 200, & - 19, 52, 178, & - 21, 87, 182, & - 22, 30, 144, & - 24, 37, 126, & - 25, 107, 171, & - 26, 114, 187, & - 27, 36, 53, & - 28, 91, 169, & - 29, 100, 109, & - 31, 71, 192, & - 32, 106, 190, & - 34, 160, 204, & - 38, 93, 136, & - 39, 77, 196, & - 40, 43, 177, & - 41, 56, 66, & - 42, 115, 151, & - 44, 155, 180, & - 45, 105, 128, & - 47, 54, 203, & - 48, 117, 120, & - 49, 62, 183, & - 50, 185, 202, & - 51, 83, 147, & - 55, 75, 170, & - 57, 79, 205, & - 58, 67, 159, & - 60, 81, 201, & - 61, 89, 184, & - 63, 119, 198, & - 65, 104, 152, & - 68, 149, 191, & - 69, 134, 167, & - 72, 102, 129, & - 73, 95, 108, & - 76, 82, 146, & - 78, 112, 173, & - 84, 141, 161, & - 85, 138, 157, & - 92, 132, 145, & - 96, 131, 181, & - 97, 110, 121, & - 98, 133, 153, & - 74, 101, 195, & - 111, 118, 183, & - 113, 130, 163, & - 116, 176, 193, & - 125, 188, 194, & - 135, 142, 148, & - 28, 137, 140, & - 33, 68, 150, & - 46, 51, 179, & - 6, 186, 198, & - 79, 138, 197, & - 1, 30, 122, & - 1, 58, 162, & - 2, 9, 172, & - 3, 71, 161, & - 4, 119, 142, & - 5, 147, 160, & - 6, 73, 183, & - 7, 118, 202, & - 8, 82, 98, & - 2, 47, 56, & - 10, 92, 151, & - 11, 19, 150, & - 12, 169, 179, & - 13, 43, 188, & - 14, 15, 192, & - 14, 82, 120, & - 16, 131, 155, & - 17, 123, 148, & - 18, 60, 117, & - 11, 90, 134, & - 20, 154, 195, & - 21, 47, 166, & - 22, 24, 86, & - 23, 48, 167, & - 21, 22, 190, & - 25, 44, 53, & - 26, 50, 64, & - 4, 27, 95, & - 28, 87, 205, & - 1, 29, 183, & - 30, 132, 185, & - 31, 108, 180, & - 32, 38, 174, & - 33, 36, 128, & - 34, 125, 134, & - 35, 190, 201, & - 30, 33, 142, & - 37, 61, 81, & - 32, 65, 70, & - 39, 40, 41, & - 36, 39, 78, & - 40, 140, 144, & - 42, 100, 194, & - 9, 13, 111, & - 20, 25, 115, & - 45, 140, 165, & - 10, 46, 60, & - 15, 43, 200, & - 23, 113, 158, & - 16, 49, 150, & - 12, 26, 164, & - 51, 88, 115, & - 52, 63, 141, & - 44, 101, 187, & - 34, 54, 173, & - 55, 93, 139, & - 56, 67, 102, & - 57, 62, 152, & - 29, 80, 89, & - 5, 59, 195, & - 18, 100, 156, & - 28, 61, 162, & - 31, 62, 163, & - 38, 52, 103, & - 50, 149, 175, & - 65, 122, 138, & - 66, 112, 171, & - 24, 68, 198, & - 68, 69, 84, & - 51, 69, 108, & - 70, 146, 159, & - 3, 91, 201, & - 72, 143, 149, & - 6, 129, 188, & - 74, 104, 153, & - 54, 75, 186, & - 76, 95, 200, & - 77, 120, 168, & - 41, 104, 182, & - 79, 144, 187, & - 58, 171, 193, & - 37, 85, 135, & - 8, 174, 197, & - 83, 163, 176, & - 53, 67, 184, & - 85, 99, 196, & - 76, 84, 138, & - 77, 87, 194, & - 86, 123, 202, & - 57, 89, 146, & - 27, 90, 97, & - 91, 126, 136, & - 46, 107, 113, & - 55, 189, 204, & - 94, 111, 130, & - 19, 139, 152, & - 96, 121, 158, & - 75, 88, 94, & - 93, 98, 157, & - 79, 81, 203, & - 42, 148, 206, & - 101, 156, 181, & - 97, 114, 154, & - 103, 170, 175, & - 78, 106, 191, & - 105, 109, 135, & - 64, 74, 176, & - 73, 92, 169, & - 80, 132, 181, & - 71, 105, 186, & - 110, 137, 204, & - 21, 159, 192, & - 35, 66, 137, & - 48, 127, 205, & - 114, 182, 193, & - 2, 18, 163, & - 59, 116, 129, & - 99, 107, 119, & - 7, 121, 125, & - 102, 109, 141, & - 19, 87, 160, & - 96, 165, 172, & - 63, 118, 147, & - 17, 143, 196, & - 124, 164, 173, & - 112, 117, 131, & - 52, 151, 180, & - 127, 198, 199, & - 106, 110, 167, & - 116, 177, 178, & - 72, 130, 155, & - 49, 177, 203, & - 128, 133, 166, & - 133, 189, 206, & - 75, 145, 191, & - 1, 51, 133, & - 83, 136, 168, & - 4, 155, 179, & - 3, 127, 157, & - 90, 170, 190, & - 5, 140, 164, & - 6, 139, 196, & - 31, 34, 142, & - 7, 53, 104, & - 11, 39, 109, & - 145, 178, 197, & - 25, 143, 146, & - 8, 134, 181, & - 9, 61, 174, & - 10, 41, 198, & - 12, 135, 159, & - 14, 79, 113, & - 13, 33, 66, & - 153, 161, 188, & - 16, 20, 136, & - 17, 45, 180, & - 22, 100, 116, & - 15, 118, 191, & - 157, 179, 184, & - 37, 110, 185, & - 30, 141, 168, & - 27, 176, 189, & - 28, 76, 186, & - 24, 26, 111, & - 124, 185, 199, & - 45, 122, 126, & - 35, 72, 147, & - 32, 119, 194, & - 36, 50, 138, & - 23, 29, 175, & - 42, 67, 124, & - 40, 89, 94, & - 43, 103, 199, & - 49, 151, 167, & - 44, 84, 204, & - 47, 48, 122, & - 46, 105, 195, & - 55, 96, 177, & - 57, 59, 106, & - 38, 54, 193, & - 58, 86, 152, & - 63, 101, 162, & - 60, 98, 123, & - 64, 115, 205, & - 62, 200, 201, & - 65, 73, 154, & - 56, 82, 183, & - 69, 91, 99, & - 70, 202, 203, & - 74, 112, 197, & - 71, 131, 206, & - 77, 165, 171, & - 68, 97, 120, & - 78, 156, 161, & - 80, 114, 148, & - 83, 92, 187, & - 88, 102, 158, & - 107, 145, 166, & - 122, 125, 130, & - 85, 117, 170, & - 121, 128, 169, & - 126, 129, 173, & - 153, 158, 160, & - 93, 144, 149, & - 88, 123, 137, & - 81, 108, 182, & - 132, 139, 192/ - -data Nm/ & - 3, 74, 75, 103, 209, & - 4, 76, 83, 189, 0, & - 5, 77, 145, 212, 0, & - 6, 78, 101, 211, 0, & - 7, 79, 133, 214, 0, & - 8, 72, 80, 147, 215, & - 9, 81, 192, 217, 0, & - 10, 82, 156, 221, 0, & - 11, 76, 117, 222, 0, & - 12, 84, 120, 223, 0, & - 13, 85, 93, 218, 0, & - 14, 86, 124, 224, 0, & - 15, 87, 117, 226, 0, & - 16, 88, 89, 225, 0, & - 17, 88, 121, 231, 0, & - 18, 90, 123, 228, 0, & - 19, 91, 197, 229, 0, & - 8, 92, 134, 189, 0, & - 20, 85, 169, 194, 0, & - 17, 94, 118, 228, 0, & - 21, 95, 98, 185, 0, & - 22, 96, 98, 230, 0, & - 6, 97, 122, 243, 0, & - 23, 96, 141, 237, 0, & - 24, 99, 118, 220, 0, & - 25, 100, 124, 237, 0, & - 26, 101, 164, 235, 0, & - 27, 69, 102, 135, 236, & - 28, 103, 132, 243, 0, & - 22, 74, 104, 110, 234, & - 29, 105, 136, 216, 0, & - 30, 106, 112, 241, 0, & - 5, 70, 107, 110, 226, & - 31, 108, 128, 216, 0, & - 16, 109, 186, 240, 0, & - 26, 107, 114, 242, 0, & - 23, 111, 155, 233, 0, & - 32, 106, 137, 253, 0, & - 33, 113, 114, 218, 0, & - 34, 113, 115, 245, 0, & - 35, 113, 152, 223, 0, & - 36, 116, 174, 244, 0, & - 34, 87, 121, 246, 0, & - 37, 99, 127, 248, 0, & - 38, 119, 229, 239, 0, & - 15, 71, 120, 166, 250, & - 39, 83, 95, 249, 0, & - 40, 97, 187, 249, 0, & - 41, 123, 205, 247, 0, & - 42, 100, 138, 242, 0, & - 43, 71, 125, 143, 209, & - 20, 126, 137, 200, 0, & - 26, 99, 158, 217, 0, & - 39, 128, 149, 253, 0, & - 44, 129, 167, 251, 0, & - 35, 83, 130, 260, 0, & - 45, 131, 163, 252, 0, & - 46, 75, 154, 254, 0, & - 9, 133, 190, 252, 0, & - 47, 92, 120, 256, 0, & - 48, 111, 135, 222, 0, & - 41, 131, 136, 258, 0, & - 49, 126, 196, 255, 0, & - 13, 100, 180, 257, 0, & - 50, 112, 139, 259, 0, & - 35, 140, 186, 226, 0, & - 46, 130, 158, 244, 0, & - 51, 70, 141, 142, 266, & - 52, 142, 143, 261, 0, & - 5, 112, 144, 262, 0, & - 29, 77, 183, 264, 0, & - 53, 146, 204, 240, 0, & - 54, 80, 181, 259, 0, & - 19, 63, 148, 180, 263, & - 44, 149, 171, 208, 0, & - 55, 150, 160, 236, 0, & - 33, 151, 161, 265, 0, & - 56, 114, 178, 267, 0, & - 45, 73, 153, 173, 225, & - 15, 132, 182, 268, 0, & - 47, 111, 173, 279, 0, & - 55, 82, 89, 260, 0, & - 43, 157, 210, 269, 0, & - 57, 142, 160, 248, 0, & - 58, 155, 159, 273, 0, & - 6, 96, 162, 254, 0, & - 21, 102, 161, 194, 0, & - 125, 171, 270, 278, 0, & - 48, 132, 163, 245, 0, & - 3, 93, 164, 213, 0, & - 27, 145, 165, 261, 0, & - 59, 84, 181, 269, 0, & - 32, 129, 172, 277, 0, & - 10, 168, 171, 245, 0, & - 1, 54, 101, 150, 0, & - 60, 170, 195, 251, 0, & - 61, 164, 176, 266, 0, & - 62, 82, 172, 256, 0, & - 9, 159, 191, 261, 0, & - 28, 116, 134, 230, 0, & - 63, 127, 175, 255, 0, & - 53, 130, 193, 270, 0, & - 14, 137, 177, 246, 0, & - 50, 148, 152, 217, 0, & - 38, 179, 183, 250, 0, & - 30, 178, 202, 252, 0, & - 24, 166, 191, 271, 0, & - 54, 105, 143, 279, 0, & - 28, 179, 193, 218, 0, & - 8, 61, 184, 202, 233, & - 64, 117, 168, 237, 0, & - 56, 140, 199, 263, 0, & - 65, 122, 166, 225, 0, & - 25, 176, 188, 268, 0, & - 36, 118, 125, 257, 0, & - 66, 190, 203, 230, 0, & - 40, 92, 199, 273, 0, & - 64, 81, 196, 231, 0, & - 49, 78, 191, 241, 0, & - 40, 89, 151, 266, 0, & - 61, 170, 192, 274, 0, & - 74, 139, 239, 249, 272, & - 91, 162, 256, 278, 0, & - 10, 198, 238, 244, 0, & - 67, 108, 192, 272, 0, & - 23, 165, 239, 275, 0, & - 7, 187, 201, 212, 0, & - 38, 107, 206, 274, 0, & - 53, 147, 190, 275, 0, & - 65, 168, 204, 272, 0, & - 60, 90, 199, 264, 0, & - 59, 104, 182, 280, 0, & - 62, 206, 207, 209, 0, & - 52, 93, 108, 221, 0, & - 68, 155, 179, 224, 0, & - 32, 165, 210, 228, 0, & - 69, 184, 186, 278, 0, & - 58, 73, 139, 160, 242, & - 129, 169, 215, 280, 0, & - 69, 115, 119, 214, 0, & - 57, 126, 193, 234, 0, & - 68, 78, 110, 216, 0, & - 4, 146, 197, 220, 0, & - 22, 115, 153, 277, 0, & - 59, 208, 219, 271, 0, & - 55, 144, 163, 220, 0, & - 43, 79, 196, 240, 0, & - 68, 91, 174, 268, 0, & - 51, 138, 146, 277, 0, & - 1, 70, 85, 123, 0, & - 36, 84, 200, 247, 0, & - 50, 131, 169, 254, 0, & - 62, 148, 227, 276, 0, & - 2, 94, 176, 259, 0, & - 37, 90, 204, 211, 0, & - 14, 134, 175, 267, 0, & - 58, 172, 212, 232, 0, & - 122, 170, 270, 276, 0, & - 46, 144, 185, 224, 0, & - 31, 79, 194, 276, 0, & - 57, 77, 227, 267, 0, & - 18, 75, 135, 255, 0, & - 65, 136, 157, 189, 0, & - 3, 124, 198, 214, 0, & - 12, 119, 195, 265, 0, & - 13, 95, 206, 271, 0, & - 52, 97, 202, 247, 0, & - 11, 151, 210, 234, 0, & - 27, 86, 181, 274, 0, & - 44, 177, 213, 273, 0, & - 24, 140, 154, 265, 0, & - 1, 16, 76, 195, 0, & - 56, 128, 198, 275, 0, & - 7, 106, 156, 222, 0, & - 12, 138, 177, 243, 0, & - 66, 157, 180, 235, 0, & - 34, 203, 205, 251, 0, & - 2, 20, 203, 219, 0, & - 71, 86, 211, 232, 0, & - 37, 105, 200, 229, 0, & - 60, 175, 182, 221, 0, & - 21, 152, 188, 279, 0, & - 41, 64, 80, 103, 260, & - 2, 48, 158, 232, 0, & - 42, 104, 233, 238, 0, & - 72, 149, 183, 236, 0, & - 25, 127, 153, 269, 0, & - 18, 67, 87, 147, 227, & - 17, 167, 207, 235, 0, & - 30, 98, 109, 213, 0, & - 51, 178, 208, 231, 0, & - 29, 88, 185, 280, 0, & - 66, 154, 188, 253, 0, & - 67, 116, 161, 241, 0, & - 63, 94, 133, 250, 0, & - 33, 159, 197, 215, 0, & - 73, 156, 219, 263, 0, & - 49, 72, 141, 201, 223, & - 4, 201, 238, 246, 0, & - 19, 121, 150, 258, 0, & - 47, 109, 145, 258, 0, & - 42, 81, 162, 262, 0, & - 39, 173, 205, 262, 0, & - 31, 167, 184, 248, 0, & - 45, 102, 187, 257, 0, & - 11, 174, 207, 264, 0/ - -data nrw/ & -5,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4, & -4,4,4,4,4,4,4,5,4,5,4,4,5,4,4,4,4,4,4,4, & -4,4,4,4,4,5,4,4,4,4,5,4,4,4,4,4,4,4,4,4, & -4,4,4,4,4,4,4,5,4,4,4,4,4,5,4,4,4,4,5,4, & -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, & -4,4,4,4,4,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4, & -4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4, & -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, & -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, & -4,4,5,4,4,4,4,5,4,4,4,4,4,4,4,4,4,5,4,4, & -4,4,4,4,4,4/ - -ncw=3 diff --git a/lib/fst240/ldpcsim280_101.f90 b/lib/fst240/ldpcsim280_101.f90 deleted file mode 100644 index df5e1f019..000000000 --- a/lib/fst240/ldpcsim280_101.f90 +++ /dev/null @@ -1,139 +0,0 @@ -program ldpcsim280_101 - -! End-to-end test of the (280,101)/crc24 encoder and decoders. - - use packjt77 - - parameter(N=280, K=101, M=N-K) - character*8 arg - character*37 msg0,msg - character*77 c77 - character*24 c24 - integer*1 msgbits(101) - integer*1 apmask(280) - integer*1 cw(280) - integer*1 codeword(N),message101(101) - integer ncrc24 - real rxdata(N),llr(N) - real llrd(280) - logical first,unpk77_success - data first/.true./ - - nargs=iargc() - if(nargs.ne.6 .and. nargs.ne.7) then - print*,'Usage : ldpcsim niter norder maxosd #trials s K [msg]' - print*,'e.g. ldpcsim280_101 20 3 2 1000 0.85 91 "K9AN K1JT FN20"' - print*,'s : if negative, then value is ignored and sigma is calculated from SNR.' - print*,'niter : is the number of BP iterations.' - print*,'norder: -1 is BP only, norder>=0 is OSD order' - print*,'K :is the number of message+CRC bits and must be in the range [77,101]' - print*,'WSPR-format message is optional' - return - endif - call getarg(1,arg) - read(arg,*) max_iterations - call getarg(2,arg) - read(arg,*) norder - call getarg(3,arg) - read(arg,*) maxosd - call getarg(4,arg) - read(arg,*) ntrials - call getarg(5,arg) - read(arg,*) s - call getarg(6,arg) - read(arg,*) Keff - msg0='K9AN K1JT FN20 ' - if(nargs.eq.7) call getarg(7,msg0) - call pack77(msg0,i3,n3,c77) - call unpack77(c77,0,msg,unpk77_success) - if(unpk77_success) then - write(*,1100) msg(1:37) -1100 format('Decoded message: ',a37) - else - print*,'Error unpacking message' - endif - - rate=real(91)/real(N) - - write(*,*) "code rate: ",rate - write(*,*) "niter : ",max_iterations - write(*,*) "norder : ",norder - write(*,*) "s : ",s - write(*,*) "K : ",Keff - - msgbits=0 - read(c77,'(77i1)') msgbits(1:77) - write(*,*) 'message' - write(*,'(77i1)') msgbits(1:77) - - call get_crc24(msgbits,101,ncrc24) - write(c24,'(b24.24)') ncrc24 - read(c24,'(24i1)') msgbits(78:101) - write(*,*) 'message with crc24' - write(*,'(101i1)') msgbits(1:101) - call encode280_101(msgbits,codeword) - call init_random_seed() - call sgran() - - write(*,*) 'codeword' - write(*,'(77i1,1x,24i1,1x,73i1)') codeword - - write(*,*) "Eb/N0 Es/N0 ngood nundetected sigma symbol error rate" - do idb = 8,-3,-1 - db=idb/2.0-1.0 - sigma=1/sqrt( 2*rate*(10**(db/10.0)) ) ! to make db represent Eb/No -! sigma=1/sqrt( 2*(10**(db/10.0)) ) ! db represents Es/No - ngood=0 - nue=0 - nberr=0 - do itrial=1, ntrials -! Create a realization of a noisy received word - do i=1,N - rxdata(i) = 2.0*codeword(i)-1.0 + sigma*gran() - enddo - nerr=0 - do i=1,N - if( rxdata(i)*(2*codeword(i)-1.0) .lt. 0 ) nerr=nerr+1 - enddo - nberr=nberr+nerr - - rxav=sum(rxdata)/N - rx2av=sum(rxdata*rxdata)/N - rxsig=sqrt(rx2av-rxav*rxav) - rxdata=rxdata/rxsig - if( s .lt. 0 ) then - ss=sigma - else - ss=s - endif - - llr=2.0*rxdata/(ss*ss) - apmask=0 -! max_iterations is max number of belief propagation iterations - call bpdecode280_101(llr,apmask,max_iterations,message101,cw,nharderror,niterations,nchecks) - dmin=0.0 - if( (nharderror .lt. 0) .and. (norder .ge. 0) ) then -! call osd280_101(llr, Keff, apmask, norder, message101, cw, nharderror, dmin) - call decode280_101(llr, Keff, maxosd, norder, apmask, message101, cw, ntype, nharderror, dmin) - endif - - if(nharderror.ge.0) then - n2err=0 - do i=1,N - if( cw(i)*(2*codeword(i)-1.0) .lt. 0 ) n2err=n2err+1 - enddo - if(n2err.eq.0) then - ngood=ngood+1 - else - nue=nue+1 - endif - endif - enddo -! snr2500=db+10*log10(200.0/116.0/2500.0) - esn0=db+10*log10(rate) - pberr=real(nberr)/(real(ntrials*N)) - write(*,"(f4.1,4x,f5.1,1x,i8,1x,i8,8x,f5.2,8x,e10.3)") db,esn0,ngood,nue,ss,pberr - - enddo - -end program ldpcsim280_101 diff --git a/lib/fst240/ldpcsim280_74.f90 b/lib/fst240/ldpcsim280_74.f90 deleted file mode 100644 index 8953973e9..000000000 --- a/lib/fst240/ldpcsim280_74.f90 +++ /dev/null @@ -1,132 +0,0 @@ -program ldpcsim280_74 - -! End-to-end test of the (280,74)/crc24 encoder and decoders. - - use packjt77 - - parameter(N=280, K=74, M=N-K) - character*8 arg - character*37 msg0,msg - character*77 c77 - character*24 c24 - integer*1 msgbits(74) - integer*1 apmask(280) - integer*1 cw(280) - integer*1 codeword(N),message74(74) - integer ncrc24 - real rxdata(N),llr(N) - real llrd(280) - logical first,unpk77_success - data first/.true./ - - nargs=iargc() - if(nargs.ne.5 .and. nargs.ne.6) then - print*,'Usage: ldpcsim norder maxosd #trials s K [msg]' - print*,'e.g. ldpcsim280_74 3 2 1000 0.85 91 "K9AN K1JT FN20"' - print*,'s : if negative, then value is ignored and sigma is calculated from SNR.' - print*,'niter: is the number of BP iterations.' - print*,'norder: -1 is BP only, norder>=0 is OSD order' - print*,'maxosd: number of calls to OSD' - print*,'K :is the number of message+CRC bits and must be in the range [50,74]' - print*,'WSPR-format message is optional' - return - endif - call getarg(1,arg) - read(arg,*) norder - call getarg(2,arg) - read(arg,*) maxosd - call getarg(3,arg) - read(arg,*) ntrials - call getarg(4,arg) - read(arg,*) s - call getarg(5,arg) - read(arg,*) Keff - msg0='K9AN K1JT FN20 ' - if(nargs.eq.6) call getarg(6,msg0) - call pack77(msg0,i3,n3,c77) - call unpack77(c77,0,msg,unpk77_success) - if(unpk77_success) then - write(*,1100) msg(1:37) -1100 format('Decoded message: ',a37) - else - print*,'Error unpacking message' - endif - - rate=real(64)/real(N) - - write(*,*) "code rate: ",rate - write(*,*) "norder : ",norder - write(*,*) "s : ",s - write(*,*) "K : ",Keff - - msgbits=0 - read(c77,'(50i1)') msgbits(1:50) - write(*,*) 'message' - write(*,'(50i1)') msgbits(1:50) - - msgbits(51:74)=0 - call get_crc24(msgbits,74,ncrc24) - write(c24,'(b24.24)') ncrc24 - read(c24,'(24i1)') msgbits(51:74) - write(*,*) 'message with crc24' - write(*,'(74i1)') msgbits(1:74) - call encode280_74(msgbits,codeword) - call init_random_seed() - call sgran() - - write(*,*) 'codeword' - write(*,'(50i1,1x,24i1,1x,206i1)') codeword - - write(*,*) "Eb/N0 Es/N0 ngood nundetected sigma symbol error rate" - do idb = 2,-2,-1 - db=idb/2.0-1.0 - sigma=1/sqrt( 2*rate*(10**(db/10.0)) ) ! to make db represent Eb/No -! sigma=1/sqrt( 2*(10**(db/10.0)) ) ! db represents Es/No - ngood=0 - nue=0 - nberr=0 - do itrial=1, ntrials -! Create a realization of a noisy received word - do i=1,N - rxdata(i) = 2.0*codeword(i)-1.0 + sigma*gran() - enddo - nerr=0 - do i=1,N - if( rxdata(i)*(2*codeword(i)-1.0) .lt. 0 ) nerr=nerr+1 - enddo - nberr=nberr+nerr - - rxav=sum(rxdata)/N - rx2av=sum(rxdata*rxdata)/N - rxsig=sqrt(rx2av-rxav*rxav) - rxdata=rxdata/rxsig - if( s .lt. 0 ) then - ss=sigma - else - ss=s - endif - - llr=2.0*rxdata/(ss*ss) - apmask=0 - call decode280_74(llr,Keff,maxosd,norder,apmask,message74,cw,ntype,nharderror,dmin) - - if(nharderror.ge.0) then - n2err=0 - do i=1,N - if( cw(i)*(2*codeword(i)-1.0) .lt. 0 ) n2err=n2err+1 - enddo - if(n2err.eq.0) then - ngood=ngood+1 - else - nue=nue+1 - endif - endif - enddo -! snr2500=db+10*log10(200.0/116.0/2500.0) - esn0=db+10*log10(rate) - pberr=real(nberr)/(real(ntrials*N)) - write(*,"(f4.1,4x,f5.1,1x,i8,1x,i8,8x,f5.2,8x,e10.3)") db,esn0,ngood,nue,ss,pberr - - enddo - -end program ldpcsim280_74 diff --git a/lib/fst240/osd280_101.f90 b/lib/fst240/osd280_101.f90 deleted file mode 100644 index acea3f664..000000000 --- a/lib/fst240/osd280_101.f90 +++ /dev/null @@ -1,403 +0,0 @@ -subroutine osd280_101(llr,k,apmask,ndeep,message101,cw,nhardmin,dmin) -! -! An ordered-statistics decoder for the (280,101) code. -! Message payload is 77 bits. Any or all of a 24-bit CRC can be -! used for detecting incorrect codewords. The remaining CRC bits are -! cascaded with the LDPC code for the purpose of improving the -! distance spectrum of the code. -! -! If p1 (0.le.p1.le.24) is the number of CRC24 bits that are -! to be used for bad codeword detection, then the argument k should -! be set to 77+p1. -! -! Valid values for k are in the range [77,101]. -! - character*24 c24 - integer, parameter:: N=280 - integer*1 apmask(N),apmaskr(N) - integer*1, allocatable, save :: gen(:,:) - integer*1, allocatable :: genmrb(:,:),g2(:,:) - integer*1, allocatable :: temp(:),m0(:),me(:),mi(:),misub(:),e2sub(:),e2(:),ui(:) - integer*1, allocatable :: r2pat(:) - integer indices(N),nxor(N) - integer*1 cw(N),ce(N),c0(N),hdec(N) - integer*1, allocatable :: decoded(:) - integer*1 message101(101) - integer indx(N) - real llr(N),rx(N),absrx(N) - - logical first,reset - data first/.true./ - save first - - allocate( genmrb(k,N), g2(N,k) ) - allocate( temp(k), m0(k), me(k), mi(k), misub(k), e2sub(N-k), e2(N-k), ui(N-k) ) - allocate( r2pat(N-k), decoded(k) ) - - if( first ) then ! fill the generator matrix -! -! Create generator matrix for partial CRC cascaded with LDPC code. -! -! Let p2=101-k and p1+p2=24. -! -! The last p2 bits of the CRC24 are cascaded with the LDPC code. -! -! The first p1=k-77 CRC24 bits will be used for error detection. -! - allocate( gen(k,N) ) - gen=0 - do i=1,k - message101=0 - message101(i)=1 - if(i.le.77) then - call get_crc24(message101,101,ncrc24) - write(c24,'(b24.24)') ncrc24 - read(c24,'(24i1)') message101(78:101) - message101(78:k)=0 - endif - call encode280_101(message101,cw) - gen(i,:)=cw - enddo - - first=.false. - endif - - rx=llr - apmaskr=apmask - -! Hard decisions on the received word. - hdec=0 - where(rx .ge. 0) hdec=1 - -! Use magnitude of received symbols as a measure of reliability. - absrx=abs(rx) - call indexx(absrx,N,indx) - -! Re-order the columns of the generator matrix in order of decreasing reliability. - do i=1,N - genmrb(1:k,i)=gen(1:k,indx(N+1-i)) - indices(i)=indx(N+1-i) - enddo - -! Do gaussian elimination to create a generator matrix with the most reliable -! received bits in positions 1:k in order of decreasing reliability (more or less). - do id=1,k ! diagonal element indices - do icol=id,k+20 ! The 20 is ad hoc - beware - iflag=0 - if( genmrb(id,icol) .eq. 1 ) then - iflag=1 - if( icol .ne. id ) then ! reorder column - temp(1:k)=genmrb(1:k,id) - genmrb(1:k,id)=genmrb(1:k,icol) - genmrb(1:k,icol)=temp(1:k) - itmp=indices(id) - indices(id)=indices(icol) - indices(icol)=itmp - endif - do ii=1,k - if( ii .ne. id .and. genmrb(ii,id) .eq. 1 ) then - genmrb(ii,1:N)=ieor(genmrb(ii,1:N),genmrb(id,1:N)) - endif - enddo - exit - endif - enddo - enddo - - g2=transpose(genmrb) - -! The hard decisions for the k MRB bits define the order 0 message, m0. -! Encode m0 using the modified generator matrix to find the "order 0" codeword. -! Flip various combinations of bits in m0 and re-encode to generate a list of -! codewords. Return the member of the list that has the smallest Euclidean -! distance to the received word. - - hdec=hdec(indices) ! hard decisions from received symbols - m0=hdec(1:k) ! zero'th order message - absrx=absrx(indices) - rx=rx(indices) - apmaskr=apmaskr(indices) - - call mrbencode101(m0,c0,g2,N,k) - nxor=ieor(c0,hdec) - nhardmin=sum(nxor) - dmin=sum(nxor*absrx) - - cw=c0 - ntotal=0 - nrejected=0 - npre1=0 - npre2=0 - - if(ndeep.eq.0) goto 998 ! norder=0 - if(ndeep.gt.6) ndeep=6 - if( ndeep.eq. 1) then - nord=1 - npre1=0 - npre2=0 - nt=40 - ntheta=12 - elseif(ndeep.eq.2) then - nord=1 - npre1=1 - npre2=0 - nt=40 - ntheta=12 - elseif(ndeep.eq.3) then - nord=1 - npre1=1 - npre2=1 - nt=40 - ntheta=12 - ntau=14 - elseif(ndeep.eq.4) then - nord=2 - npre1=1 - npre2=1 - nt=40 - ntheta=12 - ntau=17 - elseif(ndeep.eq.5) then - nord=3 - npre1=1 - npre2=1 - nt=40 - ntheta=12 - ntau=15 - elseif(ndeep.eq.6) then - nord=4 - npre1=1 - npre2=1 - nt=95 - ntheta=12 - ntau=15 - endif - - do iorder=1,nord - misub(1:k-iorder)=0 - misub(k-iorder+1:k)=1 - iflag=k-iorder+1 - do while(iflag .ge.0) - if(iorder.eq.nord .and. npre1.eq.0) then - iend=iflag - else - iend=1 - endif - d1=0. - do n1=iflag,iend,-1 - mi=misub - mi(n1)=1 - if(any(iand(apmaskr(1:k),mi).eq.1)) cycle - ntotal=ntotal+1 - me=ieor(m0,mi) - if(n1.eq.iflag) then - call mrbencode101(me,ce,g2,N,k) - e2sub=ieor(ce(k+1:N),hdec(k+1:N)) - e2=e2sub - nd1kpt=sum(e2sub(1:nt))+1 - d1=sum(ieor(me(1:k),hdec(1:k))*absrx(1:k)) - else - e2=ieor(e2sub,g2(k+1:N,n1)) - nd1kpt=sum(e2(1:nt))+2 - endif - if(nd1kpt .le. ntheta) then - call mrbencode101(me,ce,g2,N,k) - nxor=ieor(ce,hdec) - if(n1.eq.iflag) then - dd=d1+sum(e2sub*absrx(k+1:N)) - else - dd=d1+ieor(ce(n1),hdec(n1))*absrx(n1)+sum(e2*absrx(k+1:N)) - endif - if( dd .lt. dmin ) then - dmin=dd - cw=ce - nhardmin=sum(nxor) - nd1kptbest=nd1kpt - endif - else - nrejected=nrejected+1 - endif - enddo -! Get the next test error pattern, iflag will go negative -! when the last pattern with weight iorder has been generated. - call nextpat101(misub,k,iorder,iflag) - enddo - enddo - - if(npre2.eq.1) then - reset=.true. - ntotal=0 - do i1=k,1,-1 - do i2=i1-1,1,-1 - ntotal=ntotal+1 - mi(1:ntau)=ieor(g2(k+1:k+ntau,i1),g2(k+1:k+ntau,i2)) - call boxit101(reset,mi(1:ntau),ntau,ntotal,i1,i2) - enddo - enddo - - ncount2=0 - ntotal2=0 - reset=.true. -! Now run through again and do the second pre-processing rule - misub(1:k-nord)=0 - misub(k-nord+1:k)=1 - iflag=k-nord+1 - do while(iflag .ge.0) - me=ieor(m0,misub) - call mrbencode101(me,ce,g2,N,k) - e2sub=ieor(ce(k+1:N),hdec(k+1:N)) - do i2=0,ntau - ntotal2=ntotal2+1 - ui=0 - if(i2.gt.0) ui(i2)=1 - r2pat=ieor(e2sub,ui) -778 continue - call fetchit101(reset,r2pat(1:ntau),ntau,in1,in2) - if(in1.gt.0.and.in2.gt.0) then - ncount2=ncount2+1 - mi=misub - mi(in1)=1 - mi(in2)=1 - if(sum(mi).lt.nord+npre1+npre2.or.any(iand(apmaskr(1:k),mi).eq.1)) cycle - me=ieor(m0,mi) - call mrbencode101(me,ce,g2,N,k) - nxor=ieor(ce,hdec) - dd=sum(nxor*absrx) - if( dd .lt. dmin ) then - dmin=dd - cw=ce - nhardmin=sum(nxor) - endif - goto 778 - endif - enddo - call nextpat101(misub,k,nord,iflag) - enddo - endif - -998 continue -! Re-order the codeword to [message bits][parity bits] format. - cw(indices)=cw - hdec(indices)=hdec - message101=cw(1:101) - call get_crc24(message101,101,nbadcrc) - if(nbadcrc.ne.0) nhardmin=-nhardmin - - return -end subroutine osd280_101 - -subroutine mrbencode101(me,codeword,g2,N,K) - integer*1 me(K),codeword(N),g2(N,K) -! fast encoding for low-weight test patterns - codeword=0 - do i=1,K - if( me(i) .eq. 1 ) then - codeword=ieor(codeword,g2(1:N,i)) - endif - enddo - return -end subroutine mrbencode101 - -subroutine nextpat101(mi,k,iorder,iflag) - integer*1 mi(k),ms(k) -! generate the next test error pattern - ind=-1 - do i=1,k-1 - if( mi(i).eq.0 .and. mi(i+1).eq.1) ind=i - enddo - if( ind .lt. 0 ) then ! no more patterns of this order - iflag=ind - return - endif - ms=0 - ms(1:ind-1)=mi(1:ind-1) - ms(ind)=1 - ms(ind+1)=0 - if( ind+1 .lt. k ) then - nz=iorder-sum(ms) - ms(k-nz+1:k)=1 - endif - mi=ms - do i=1,k ! iflag will point to the lowest-index 1 in mi - if(mi(i).eq.1) then - iflag=i - exit - endif - enddo - return -end subroutine nextpat101 - -subroutine boxit101(reset,e2,ntau,npindex,i1,i2) - integer*1 e2(1:ntau) - integer indexes(5000,2),fp(0:525000),np(5000) - logical reset - common/boxes/indexes,fp,np - - if(reset) then - patterns=-1 - fp=-1 - np=-1 - sc=-1 - indexes=-1 - reset=.false. - endif - - indexes(npindex,1)=i1 - indexes(npindex,2)=i2 - ipat=0 - do i=1,ntau - if(e2(i).eq.1) then - ipat=ipat+ishft(1,ntau-i) - endif - enddo - - ip=fp(ipat) ! see what's currently stored in fp(ipat) - if(ip.eq.-1) then - fp(ipat)=npindex - else - do while (np(ip).ne.-1) - ip=np(ip) - enddo - np(ip)=npindex - endif - return -end subroutine boxit101 - -subroutine fetchit101(reset,e2,ntau,i1,i2) - integer indexes(5000,2),fp(0:525000),np(5000) - integer lastpat - integer*1 e2(ntau) - logical reset - common/boxes/indexes,fp,np - save lastpat,inext - - if(reset) then - lastpat=-1 - reset=.false. - endif - - ipat=0 - do i=1,ntau - if(e2(i).eq.1) then - ipat=ipat+ishft(1,ntau-i) - endif - enddo - index=fp(ipat) - - if(lastpat.ne.ipat .and. index.gt.0) then ! return first set of indices - i1=indexes(index,1) - i2=indexes(index,2) - inext=np(index) - elseif(lastpat.eq.ipat .and. inext.gt.0) then - i1=indexes(inext,1) - i2=indexes(inext,2) - inext=np(inext) - else - i1=-1 - i2=-1 - inext=-1 - endif - lastpat=ipat - return -end subroutine fetchit101 - diff --git a/lib/fst240/osd280_74.f90 b/lib/fst240/osd280_74.f90 deleted file mode 100644 index 6f87dd216..000000000 --- a/lib/fst240/osd280_74.f90 +++ /dev/null @@ -1,403 +0,0 @@ -subroutine osd280_74(llr,k,apmask,ndeep,message74,cw,nhardmin,dmin) -! -! An ordered-statistics decoder for the (280,74) code. -! Message payload is 50 bits. Any or all of a 24-bit CRC can be -! used for detecting incorrect codewords. The remaining CRC bits are -! cascaded with the LDPC code for the purpose of improving the -! distance spectrum of the code. -! -! If p1 (0.le.p1.le.24) is the number of CRC24 bits that are -! to be used for bad codeword detection, then the argument k should -! be set to 50+p1. -! -! Valid values for k are in the range [50,74]. -! - character*24 c24 - integer, parameter:: N=280 - integer*1 apmask(N),apmaskr(N) - integer*1, allocatable, save :: gen(:,:) - integer*1, allocatable :: genmrb(:,:),g2(:,:) - integer*1, allocatable :: temp(:),m0(:),me(:),mi(:),misub(:),e2sub(:),e2(:),ui(:) - integer*1, allocatable :: r2pat(:) - integer indices(N),nxor(N) - integer*1 cw(N),ce(N),c0(N),hdec(N) - integer*1, allocatable :: decoded(:) - integer*1 message74(74) - integer indx(N) - real llr(N),rx(N),absrx(N) - - logical first,reset - data first/.true./ - save first - - allocate( genmrb(k,N), g2(N,k) ) - allocate( temp(k), m0(k), me(k), mi(k), misub(k), e2sub(N-k), e2(N-k), ui(N-k) ) - allocate( r2pat(N-k), decoded(k) ) - - if( first ) then ! fill the generator matrix -! -! Create generator matrix for partial CRC cascaded with LDPC code. -! -! Let p2=74-k and p1+p2=24. -! -! The last p2 bits of the CRC24 are cascaded with the LDPC code. -! -! The first p1=k-50 CRC24 bits will be used for error detection. -! - allocate( gen(k,N) ) - gen=0 - do i=1,k - message74=0 - message74(i)=1 - if(i.le.50) then - call get_crc24(message74,74,ncrc24) - write(c24,'(b24.24)') ncrc24 - read(c24,'(24i1)') message74(51:74) - message74(51:k)=0 - endif - call encode280_74(message74,cw) - gen(i,:)=cw - enddo - - first=.false. - endif - - rx=llr - apmaskr=apmask - -! Hard decisions on the received word. - hdec=0 - where(rx .ge. 0) hdec=1 - -! Use magnitude of received symbols as a measure of reliability. - absrx=abs(rx) - call indexx(absrx,N,indx) - -! Re-order the columns of the generator matrix in order of decreasing reliability. - do i=1,N - genmrb(1:k,i)=gen(1:k,indx(N+1-i)) - indices(i)=indx(N+1-i) - enddo - -! Do gaussian elimination to create a generator matrix with the most reliable -! received bits in positions 1:k in order of decreasing reliability (more or less). - do id=1,k ! diagonal element indices - do icol=id,k+20 ! The 20 is ad hoc - beware - iflag=0 - if( genmrb(id,icol) .eq. 1 ) then - iflag=1 - if( icol .ne. id ) then ! reorder column - temp(1:k)=genmrb(1:k,id) - genmrb(1:k,id)=genmrb(1:k,icol) - genmrb(1:k,icol)=temp(1:k) - itmp=indices(id) - indices(id)=indices(icol) - indices(icol)=itmp - endif - do ii=1,k - if( ii .ne. id .and. genmrb(ii,id) .eq. 1 ) then - genmrb(ii,1:N)=ieor(genmrb(ii,1:N),genmrb(id,1:N)) - endif - enddo - exit - endif - enddo - enddo - - g2=transpose(genmrb) - -! The hard decisions for the k MRB bits define the order 0 message, m0. -! Encode m0 using the modified generator matrix to find the "order 0" codeword. -! Flip various combinations of bits in m0 and re-encode to generate a list of -! codewords. Return the member of the list that has the smallest Euclidean -! distance to the received word. - - hdec=hdec(indices) ! hard decisions from received symbols - m0=hdec(1:k) ! zero'th order message - absrx=absrx(indices) - rx=rx(indices) - apmaskr=apmaskr(indices) - - call mrbencode74(m0,c0,g2,N,k) - nxor=ieor(c0,hdec) - nhardmin=sum(nxor) - dmin=sum(nxor*absrx) - - cw=c0 - ntotal=0 - nrejected=0 - npre1=0 - npre2=0 - - if(ndeep.eq.0) goto 998 ! norder=0 - if(ndeep.gt.6) ndeep=6 - if( ndeep.eq. 1) then - nord=1 - npre1=0 - npre2=0 - nt=40 - ntheta=12 - elseif(ndeep.eq.2) then - nord=1 - npre1=1 - npre2=0 - nt=40 - ntheta=12 - elseif(ndeep.eq.3) then - nord=1 - npre1=1 - npre2=1 - nt=40 - ntheta=12 - ntau=14 - elseif(ndeep.eq.4) then - nord=2 - npre1=1 - npre2=1 - nt=40 - ntheta=12 - ntau=17 - elseif(ndeep.eq.5) then - nord=3 - npre1=1 - npre2=1 - nt=40 - ntheta=12 - ntau=19 - elseif(ndeep.eq.6) then - nord=4 - npre1=1 - npre2=1 - nt=40 - ntheta=12 - ntau=19 - endif - - do iorder=1,nord - misub(1:k-iorder)=0 - misub(k-iorder+1:k)=1 - iflag=k-iorder+1 - do while(iflag .ge.0) - if(iorder.eq.nord .and. npre1.eq.0) then - iend=iflag - else - iend=1 - endif - d1=0. - do n1=iflag,iend,-1 - mi=misub - mi(n1)=1 - if(any(iand(apmaskr(1:k),mi).eq.1)) cycle - ntotal=ntotal+1 - me=ieor(m0,mi) - if(n1.eq.iflag) then - call mrbencode74(me,ce,g2,N,k) - e2sub=ieor(ce(k+1:N),hdec(k+1:N)) - e2=e2sub - nd1kpt=sum(e2sub(1:nt))+1 - d1=sum(ieor(me(1:k),hdec(1:k))*absrx(1:k)) - else - e2=ieor(e2sub,g2(k+1:N,n1)) - nd1kpt=sum(e2(1:nt))+2 - endif - if(nd1kpt .le. ntheta) then - call mrbencode74(me,ce,g2,N,k) - nxor=ieor(ce,hdec) - if(n1.eq.iflag) then - dd=d1+sum(e2sub*absrx(k+1:N)) - else - dd=d1+ieor(ce(n1),hdec(n1))*absrx(n1)+sum(e2*absrx(k+1:N)) - endif - if( dd .lt. dmin ) then - dmin=dd - cw=ce - nhardmin=sum(nxor) - nd1kptbest=nd1kpt - endif - else - nrejected=nrejected+1 - endif - enddo -! Get the next test error pattern, iflag will go negative -! when the last pattern with weight iorder has been generated. - call nextpat74(misub,k,iorder,iflag) - enddo - enddo - - if(npre2.eq.1) then - reset=.true. - ntotal=0 - do i1=k,1,-1 - do i2=i1-1,1,-1 - ntotal=ntotal+1 - mi(1:ntau)=ieor(g2(k+1:k+ntau,i1),g2(k+1:k+ntau,i2)) - call boxit74(reset,mi(1:ntau),ntau,ntotal,i1,i2) - enddo - enddo - - ncount2=0 - ntotal2=0 - reset=.true. -! Now run through again and do the second pre-processing rule - misub(1:k-nord)=0 - misub(k-nord+1:k)=1 - iflag=k-nord+1 - do while(iflag .ge.0) - me=ieor(m0,misub) - call mrbencode74(me,ce,g2,N,k) - e2sub=ieor(ce(k+1:N),hdec(k+1:N)) - do i2=0,ntau - ntotal2=ntotal2+1 - ui=0 - if(i2.gt.0) ui(i2)=1 - r2pat=ieor(e2sub,ui) -778 continue - call fetchit74(reset,r2pat(1:ntau),ntau,in1,in2) - if(in1.gt.0.and.in2.gt.0) then - ncount2=ncount2+1 - mi=misub - mi(in1)=1 - mi(in2)=1 - if(sum(mi).lt.nord+npre1+npre2.or.any(iand(apmaskr(1:k),mi).eq.1)) cycle - me=ieor(m0,mi) - call mrbencode74(me,ce,g2,N,k) - nxor=ieor(ce,hdec) - dd=sum(nxor*absrx) - if( dd .lt. dmin ) then - dmin=dd - cw=ce - nhardmin=sum(nxor) - endif - goto 778 - endif - enddo - call nextpat74(misub,k,nord,iflag) - enddo - endif - -998 continue -! Re-order the codeword to [message bits][parity bits] format. - cw(indices)=cw - hdec(indices)=hdec - message74=cw(1:74) - call get_crc24(message74,74,nbadcrc) - if(nbadcrc.ne.0) nhardmin=-nhardmin - - return -end subroutine osd280_74 - -subroutine mrbencode74(me,codeword,g2,N,K) - integer*1 me(K),codeword(N),g2(N,K) -! fast encoding for low-weight test patterns - codeword=0 - do i=1,K - if( me(i) .eq. 1 ) then - codeword=ieor(codeword,g2(1:N,i)) - endif - enddo - return -end subroutine mrbencode74 - -subroutine nextpat74(mi,k,iorder,iflag) - integer*1 mi(k),ms(k) -! generate the next test error pattern - ind=-1 - do i=1,k-1 - if( mi(i).eq.0 .and. mi(i+1).eq.1) ind=i - enddo - if( ind .lt. 0 ) then ! no more patterns of this order - iflag=ind - return - endif - ms=0 - ms(1:ind-1)=mi(1:ind-1) - ms(ind)=1 - ms(ind+1)=0 - if( ind+1 .lt. k ) then - nz=iorder-sum(ms) - ms(k-nz+1:k)=1 - endif - mi=ms - do i=1,k ! iflag will point to the lowest-index 1 in mi - if(mi(i).eq.1) then - iflag=i - exit - endif - enddo - return -end subroutine nextpat74 - -subroutine boxit74(reset,e2,ntau,npindex,i1,i2) - integer*1 e2(1:ntau) - integer indexes(5000,2),fp(0:525000),np(5000) - logical reset - common/boxes/indexes,fp,np - - if(reset) then - patterns=-1 - fp=-1 - np=-1 - sc=-1 - indexes=-1 - reset=.false. - endif - - indexes(npindex,1)=i1 - indexes(npindex,2)=i2 - ipat=0 - do i=1,ntau - if(e2(i).eq.1) then - ipat=ipat+ishft(1,ntau-i) - endif - enddo - - ip=fp(ipat) ! see what's currently stored in fp(ipat) - if(ip.eq.-1) then - fp(ipat)=npindex - else - do while (np(ip).ne.-1) - ip=np(ip) - enddo - np(ip)=npindex - endif - return -end subroutine boxit74 - -subroutine fetchit74(reset,e2,ntau,i1,i2) - integer indexes(5000,2),fp(0:525000),np(5000) - integer lastpat - integer*1 e2(ntau) - logical reset - common/boxes/indexes,fp,np - save lastpat,inext - - if(reset) then - lastpat=-1 - reset=.false. - endif - - ipat=0 - do i=1,ntau - if(e2(i).eq.1) then - ipat=ipat+ishft(1,ntau-i) - endif - enddo - index=fp(ipat) - - if(lastpat.ne.ipat .and. index.gt.0) then ! return first set of indices - i1=indexes(index,1) - i2=indexes(index,2) - inext=np(index) - elseif(lastpat.eq.ipat .and. inext.gt.0) then - i1=indexes(inext,1) - i2=indexes(inext,2) - inext=np(inext) - else - i1=-1 - i2=-1 - inext=-1 - endif - lastpat=ipat - return -end subroutine fetchit74 - From cd9146e646cf7023ff77a43166c97fc31b58a328 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 27 Jun 2020 13:07:11 -0400 Subject: [PATCH 160/520] Change a few more GUI parameters for the switch from FST280 to FST240. Tx timing probably still needs work. --- widgets/mainwindow.cpp | 14 +++++++------- widgets/mainwindow.ui | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 40c94143d..269fdc75f 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1342,8 +1342,8 @@ void MainWindow::fixStop() } else if (m_mode=="FT4") { m_hsymStop=21; } else if(m_mode=="FST240" or m_mode=="FST240W") { - int stop[] = {45,87,192,397,1012}; - int stop_EME[] = {51,96,201,406,1021}; + int stop[] = {44,85,187,387,987}; + int stop_EME[] = {51,95,197,396,997}; int i=0; if(m_TRperiod==30) i=1; if(m_TRperiod==60) i=2; @@ -3538,11 +3538,11 @@ void MainWindow::guiUpdate() if(m_modeTx=="QRA64") txDuration=1.0 + 84*6912/12000.0; // QRA64 if(m_modeTx=="WSPR") txDuration=2.0 + 162*8192/12000.0; // WSPR if(m_modeTx=="FST240" or m_mode=="FST240W") { //FST240, FST240W - if(m_TRperiod==15) txDuration=1.0 + 166*800/12000.0; - if(m_TRperiod==30) txDuration=1.0 + 166*1680/12000.0; - if(m_TRperiod==60) txDuration=1.0 + 166*3888/12000.0; - if(m_TRperiod==120) txDuration=1.0 + 166*8200/12000.0; - if(m_TRperiod==300) txDuration=1.0 + 166*21168/12000.0; + if(m_TRperiod==15) txDuration=1.0 + 160*800/12000.0; + if(m_TRperiod==30) txDuration=1.0 + 160*1680/12000.0; + if(m_TRperiod==60) txDuration=1.0 + 160*3888/12000.0; + if(m_TRperiod==120) txDuration=1.0 + 160*8200/12000.0; + if(m_TRperiod==300) txDuration=1.0 + 160*21168/12000.0; } if(m_modeTx=="ISCAT" or m_mode=="MSK144" or m_bFast9) { txDuration=m_TRperiod-0.25; // ISCAT, JT9-fast, MSK144 diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index b635ee21a..b45784cf0 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -1608,7 +1608,7 @@ When not checked you can view the calibration results. QTabWidget::Triangular
- 2 + 0 From eb167b11d34151a50cac120df89dc935545e4476 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 27 Jun 2020 14:13:59 -0400 Subject: [PATCH 161/520] Fix several more GUI parameters for FST240. --- lib/fst240/gen_fst240wave.f90 | 7 ------- widgets/mainwindow.cpp | 5 ++--- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/lib/fst240/gen_fst240wave.f90 b/lib/fst240/gen_fst240wave.f90 index 3005968b2..0df62c1b7 100644 --- a/lib/fst240/gen_fst240wave.f90 +++ b/lib/fst240/gen_fst240wave.f90 @@ -8,13 +8,11 @@ subroutine gen_fst240wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & real, allocatable :: dphi(:) integer hmod integer itone(nsym) -! integer*8 count0,count1,clkfreq logical first data first/.true./ data nsps0/-99/ save first,twopi,dt,tsym,nsps0,ctab -! call system_clock(count0,clkfreq) if(first) then twopi=8.0*atan(1.0) do i=0,NTAB-1 @@ -88,11 +86,6 @@ subroutine gen_fst240wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & (1.0+cos(twopi*(/(i,i=0,nsps/4-1)/)/real(nsps/2)))/2.0 cwave=cshift(cwave,kshift) endif - -! call system_clock(count1,clkfreq) -! tt=float(count1-count0)/float(clkfreq) -! write(*,3001) tt -!3001 format('Tgen:',f8.3) return end subroutine gen_fst240wave diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 269fdc75f..575d43202 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3888,12 +3888,11 @@ void MainWindow::guiUpdate() if(m_TRperiod==120) nsps=8200; if(m_TRperiod==300) nsps=21168; nsps=4*nsps; //48000 Hz sampling - int nsym=164; + int nsym=160; float fsample=48000.0; float dfreq=hmod*fsample/nsps; float f0=ui->TxFreqSpinBox->value() - m_XIT + 1.5*dfreq; -// int nwave=(nsym+2)*nsps; - int nwave=48000 + 166*nsps; + int nwave=48000 + (nsym+2)*nsps; int icmplx=0; gen_fst240wave_(const_cast(itone),&nsym,&nsps,&nwave, &fsample,&hmod,&f0,&icmplx,foxcom_.wave,foxcom_.wave); From 1f16beeafe3b37618ac14e1f1b3c571e7763c554 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sat, 27 Jun 2020 14:11:37 -0500 Subject: [PATCH 162/520] Make T/R=300s work from the command line. --- lib/fst240/fst240sim.f90 | 2 +- lib/fst240_decode.f90 | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/fst240/fst240sim.f90 b/lib/fst240/fst240sim.f90 index 842e32876..9cca82504 100644 --- a/lib/fst240/fst240sim.f90 +++ b/lib/fst240/fst240sim.f90 @@ -51,7 +51,7 @@ program fst240sim if(nsec.eq.30) nsps=1680 if(nsec.eq.60) nsps=3888 if(nsec.eq.120) nsps=8200 - if(nsec.eq.300) nsps=21168 + if(nsec.eq.300) nsps=21504 if(nsps.eq.0) then print*,'Invalid TR sequence length.' go to 999 diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 231e00e84..b857e3dc1 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -155,7 +155,7 @@ contains ! The size of the downsampled c2 array is nfft2=nfft1/ndown call fst240_downsample(c_bigfft,nfft1,ndown,fc0,c2) - + call timer('sync240 ',0) do isync=0,1 if(isync.eq.0) then @@ -376,7 +376,7 @@ write(21,'(8i4,f7.1,f7.2,3f7.1,1x,a37)') & integer hmod,isyncword(0:7) real f0save data isyncword/0,1,3,2,1,0,2,3/ - data first/.true./,f0save/0.0/,nss0/-1/ + data first/.true./,f0save/-99.9/,nss0/-1/ save first,twopi,dt,fac,f0save,nss0 p(z1)=(real(z1*fac)**2 + aimag(z1*fac)**2)**0.5 !Compute power @@ -444,7 +444,6 @@ write(21,'(8i4,f7.1,f7.2,3f7.1,1x,a37)') & s4=s4+abs(z4)/(8*nss) s5=s5+abs(z5)/(8*nss) enddo - sync = s1+s2+s3+s4+s5 return From 51447ef1d3b0b42dabae31af0f82bde73795d2b9 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 27 Jun 2020 16:24:11 -0400 Subject: [PATCH 163/520] Remove the 1 s offset in wave() array. Fix NSPS for 300 s periods. --- Modulator/Modulator.cpp | 24 ++++++++---------------- lib/fst240/gen_fst240wave.f90 | 10 ++++++++-- widgets/mainwindow.cpp | 8 ++++---- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/Modulator/Modulator.cpp b/Modulator/Modulator.cpp index 3a33c42f1..f267022e0 100644 --- a/Modulator/Modulator.cpp +++ b/Modulator/Modulator.cpp @@ -92,20 +92,8 @@ void Modulator::start (unsigned symbolsLength, double framesPerSymbol, if(delay_ms >= mstr) m_silentFrames = m_ic + 0.001*(delay_ms-mstr)*m_frameRate; } - // Special case for FST280: -// qDebug() << "aa" << m_ic << m_silentFrames << m_symbolsLength << m_nsps; - if(m_nsps==800 or m_nsps==1680 or m_nsps==3888 or m_nsps==8200 or m_nsps==21168) { - m_ic = m_ic + 48000 - 2*m_nsps + 9600; //The 9600 is empirical - m_silentFrames = m_silentFrames - 2*m_nsps; - } - if(m_silentFrames<0) { - m_ic = m_ic - m_silentFrames; - m_silentFrames = 0; - } -// qDebug() << "bb" << m_ic << m_silentFrames; -// qDebug() << "cc" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz") -// << delay_ms << mstr << m_silentFrames << m_ic; - +// qDebug() << "aa" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz") +// << delay_ms << mstr << m_silentFrames << m_ic << m_symbolsLength; initialize (QIODevice::ReadOnly, channel); Q_EMIT stateChanged ((m_state = (synchronize && m_silentFrames) ? @@ -317,14 +305,18 @@ qint64 Modulator::readData (char * data, qint64 maxSize) m_amp=32767.0; sample=qRound(m_amp*foxcom_.wave[m_ic]); } - +/* + if((m_ic<1000 or (4*m_symbolsLength*m_nsps - m_ic) < 1000) and (m_ic%10)==0) { + qDebug() << "cc" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz") << m_ic << sample; + } +*/ samples = load(postProcessSample(sample), samples); ++framesGenerated; ++m_ic; } // qDebug() << "dd" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz") -// << m_ic << m_amp << foxcom_.wave[m_ic]; +// << m_ic << i1 << foxcom_.wave[m_ic] << framesGenerated; if (m_amp == 0.0) { // TODO G4WJS: compare double with zero might not be wise if (icw[0] == 0) { diff --git a/lib/fst240/gen_fst240wave.f90 b/lib/fst240/gen_fst240wave.f90 index 0df62c1b7..43170638d 100644 --- a/lib/fst240/gen_fst240wave.f90 +++ b/lib/fst240/gen_fst240wave.f90 @@ -66,7 +66,7 @@ subroutine gen_fst240wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & enddo ! Compute the ramp-up and ramp-down symbols - kshift=nsps-nint(fsample) + kshift=nsps if(icmplx.eq.0) then wave(1:nsps)=0.0 wave(nsps+1:nsps+nsps/4)=wave(nsps+1:nsps+nsps/4) * & @@ -86,6 +86,12 @@ subroutine gen_fst240wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & (1.0+cos(twopi*(/(i,i=0,nsps/4-1)/)/real(nsps/2)))/2.0 cwave=cshift(cwave,kshift) endif - + +! do i=1,nwave +! write(71,3071) i,i/48000.0,wave(i) +!3071 format(i10,2f15.9) +! enddo + wave(nsps*nsym:)=0. !Kill a stray spike ?? + return end subroutine gen_fst240wave diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 575d43202..e7042b59a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3542,7 +3542,7 @@ void MainWindow::guiUpdate() if(m_TRperiod==30) txDuration=1.0 + 160*1680/12000.0; if(m_TRperiod==60) txDuration=1.0 + 160*3888/12000.0; if(m_TRperiod==120) txDuration=1.0 + 160*8200/12000.0; - if(m_TRperiod==300) txDuration=1.0 + 160*21168/12000.0; + if(m_TRperiod==300) txDuration=1.0 + 160*21504/12000.0; } if(m_modeTx=="ISCAT" or m_mode=="MSK144" or m_bFast9) { txDuration=m_TRperiod-0.25; // ISCAT, JT9-fast, MSK144 @@ -3886,13 +3886,13 @@ void MainWindow::guiUpdate() if(m_TRperiod==30) nsps=1680; if(m_TRperiod==60) nsps=3888; if(m_TRperiod==120) nsps=8200; - if(m_TRperiod==300) nsps=21168; + if(m_TRperiod==300) nsps=21504; nsps=4*nsps; //48000 Hz sampling int nsym=160; float fsample=48000.0; float dfreq=hmod*fsample/nsps; float f0=ui->TxFreqSpinBox->value() - m_XIT + 1.5*dfreq; - int nwave=48000 + (nsym+2)*nsps; + int nwave=(nsym+2)*nsps; int icmplx=0; gen_fst240wave_(const_cast(itone),&nsym,&nsps,&nwave, &fsample,&hmod,&f0,&icmplx,foxcom_.wave,foxcom_.wave); @@ -7169,7 +7169,7 @@ void MainWindow::transmit (double snr) if(m_TRperiod==30) nsps=1680; if(m_TRperiod==60) nsps=3888; if(m_TRperiod==120) nsps=8200; - if(m_TRperiod==300) nsps=21168; + if(m_TRperiod==300) nsps=21504; int hmod=int(pow(2.0,double(m_nSubMode))); double dfreq=hmod*12000.0/nsps; double f0=ui->TxFreqSpinBox->value() - m_XIT + 1.5*dfreq; From 89c81cb5f1200a40da5f189a226daa4b76532748 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sat, 27 Jun 2020 15:43:14 -0500 Subject: [PATCH 164/520] XOR the message with rvec before calculating CRC --- lib/fst240/genfst240.f90 | 2 +- lib/fst240_decode.f90 | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/fst240/genfst240.f90 b/lib/fst240/genfst240.f90 index 4cf688308..b442b3efa 100644 --- a/lib/fst240/genfst240.f90 +++ b/lib/fst240/genfst240.f90 @@ -54,6 +54,7 @@ subroutine genfst240(msg0,ichk,msgsent,msgbits,i4tone,iwspr) read(c24,'(24i1)') msgbits(51:74) else read(c77,'(77i1)') msgbits(1:77) + msgbits(1:77)=mod(msgbits(1:77)+rvec,2) call get_crc24(msgbits,101,ncrc24) write(c24,'(b24.24)') ncrc24 read(c24,'(24i1)') msgbits(78:101) @@ -69,7 +70,6 @@ subroutine genfst240(msg0,ichk,msgsent,msgbits,i4tone,iwspr) entry get_fst240_tones_from_bits(msgbits,i4tone,iwspr) 2 continue - call encode240_101(msgbits,codeword) ! Grayscale mapping: diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index b857e3dc1..c68997bde 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -51,8 +51,12 @@ contains integer*1 apmask(240),cw(240) integer*1 hbits(320) integer*1 message101(101),message74(74) + integer*1 rvec(77) logical badsync,unpk77_success,single_decode integer*2 iwave(300*12000) + data rvec/0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,0, & + 1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, & + 0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/ this%callback => callback hmod=2**nsubmode @@ -313,7 +317,7 @@ contains endif if(nharderrors .ge.0) then if(iwspr.eq.0) then - write(c77,'(77i1)') message101(1:77) + write(c77,'(77i1)') mod(message101(1:77)+rvec,2) call unpack77(c77,0,msg,unpk77_success) else write(c77,'(50i1)') message74(1:50) From 2b85c70bbc3abe77ef88fbadac0ed09b8d156644 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 27 Jun 2020 16:58:55 -0400 Subject: [PATCH 165/520] Correct the m_hsymStop values for FST240-300. --- widgets/mainwindow.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index e7042b59a..645d7c810 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1342,8 +1342,8 @@ void MainWindow::fixStop() } else if (m_mode=="FT4") { m_hsymStop=21; } else if(m_mode=="FST240" or m_mode=="FST240W") { - int stop[] = {44,85,187,387,987}; - int stop_EME[] = {51,95,197,396,997}; + int stop[] = {44,85,187,387,1003}; + int stop_EME[] = {51,95,197,396,1012}; int i=0; if(m_TRperiod==30) i=1; if(m_TRperiod==60) i=2; From f774cecd000fc90f940f46cd46625318d5a2554f Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sun, 28 Jun 2020 15:22:35 -0500 Subject: [PATCH 166/520] Experimental change to candidate detection. --- lib/fst240/get_fst240_bitmetrics.f90 | 5 +-- lib/fst240_decode.f90 | 52 +++++++++++++++------------- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/lib/fst240/get_fst240_bitmetrics.f90 b/lib/fst240/get_fst240_bitmetrics.f90 index ddefbad68..491158264 100644 --- a/lib/fst240/get_fst240_bitmetrics.f90 +++ b/lib/fst240/get_fst240_bitmetrics.f90 @@ -58,6 +58,8 @@ subroutine get_fst240_bitmetrics(cd,nss,hmod,nmax,bitmetrics,s4,badsync) is1=0 is2=0 is3=0 + is4=0 + is5=0 badsync=.false. ibmax=0 @@ -74,9 +76,8 @@ subroutine get_fst240_bitmetrics(cd,nss,hmod,nmax,bitmetrics,s4,badsync) if(icos8(k-1).eq.(ip(1)-1)) is5=is5+1 enddo nsync=is1+is2+is3+is4+is5 !Number of correct hard sync symbols, 0-40 - badsync=.false. - if(nsync .lt. 8) then + if(nsync .lt. 16) then badsync=.true. return endif diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index c68997bde..9c59492e6 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -131,7 +131,7 @@ contains norder=2 endif - ! The big fft is done once and is used for calculating the smoothed spectrum +! The big fft is done once and is used for calculating the smoothed spectrum ! and also for downconverting/downsampling each candidate. r_data(1:nfft1)=iwave(1:nfft1) r_data(nfft1+1:nfft1+2)=0.0 @@ -218,6 +218,7 @@ contains candidates(icand,3)=fc_synced candidates(icand,4)=isbest enddo + ! remove duplicate candidates do icand=1,ncand fc=candidates(icand,3) @@ -226,7 +227,7 @@ contains fc2=candidates(ic2,3) isbest2=nint(candidates(ic2,4)) if(ic2.ne.icand .and. fc2.gt.0.0) then - if(abs(fc2-fc).lt.0.05*baud) then ! same frequency + if(abs(fc2-fc).lt.0.10*baud) then ! same frequency if(abs(isbest2-isbest).le.2) then candidates(ic2,3)=-1 endif @@ -243,6 +244,7 @@ contains endif enddo ncand=ic + do icand=1,ncand sync=candidates(icand,2) fc_synced=candidates(icand,3) @@ -269,7 +271,7 @@ contains ns4=count(hbits(229:244).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) nsync_qual=ns1+ns2+ns3+ns4+ns5 - if(nsync_qual.lt. 26) cycle !### Value ?? ### + if(nsync_qual.lt. 44) cycle !### Value ?? ### scalefac=2.83 llra( 1: 60)=bitmetrics( 17: 76, 1) @@ -349,7 +351,7 @@ contains iaptype=0 qual=0. fsig=fc_synced - 1.5*hmod*baud -write(21,'(8i4,f7.1,f7.2,3f7.1,1x,a37)') & +write(21,'(i6,7i6,f7.1,f9.2,3f7.1,1x,a37)') & nutc,icand,itry,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & iaptype,qual,ntrperiod) @@ -479,12 +481,14 @@ write(21,'(8i4,f7.1,f7.2,3f7.1,1x,a37)') & complex c_bigfft(0:nfft1/2) integer hmod - integer indx(100) + integer indx(100),im(1) real candidates(100,4) real candidates0(100,4) real snr_cand(100) real s(18000) real s2(18000) + real xdb(-3:3) + data xdb/0.25,0.50,0.75,1.0,0.75,0.50,0.25/ data nfft1z/-1/ save nfft1z @@ -530,27 +534,25 @@ write(21,'(8i4,f7.1,f7.2,3f7.1,1x,a37)') & candidates=0 if(ia.lt.3) ia=3 if(ib.gt.18000-2) ib=18000-2 - do i=ia,ib - if((s2(i).gt.s2(i-2)).and. & - (s2(i).gt.s2(i+2)).and. & - (s2(i).gt.thresh).and.ncand.lt.100) then - ncand=ncand+1 - candidates(ncand,1)=df2*i - candidates(ncand,2)=s2(i) - endif - enddo - snr_cand=0. - snr_cand(1:ncand)=candidates(1:ncand,2) - call indexx(snr_cand,ncand,indx) - nmax=min(ncand,20) - do i=1,nmax - j=indx(ncand+1-i) - candidates0(i,1:4)=candidates(j,1:4) - enddo - ncand=nmax - candidates(1:ncand,1:4)=candidates0(1:ncand,1:4) - candidates(ncand+1:,1:4)=0. + pval=99.99 + do while(ncand.lt.100 .and. pval.gt.thresh) + im=maxloc(s2(ia:ib)) + iploc=ia+im(1)-1 + pval=s2(iploc) + if(s2(iploc).gt.thresh) then + do i=-3,+3 + k=iploc+2*hmod*i + if(k.ge.ia .and. k.le.ib) then + s2(k)=max(0.,s2(k)-0.9*pval*xdb(i)) + endif + enddo + ncand=ncand+1 + candidates(ncand,1)=df2*iploc + candidates(ncand,2)=pval + endif + enddo + return end subroutine get_candidates_fst240 From 5b22280631d7adae582ec76e557a00ff52a43e47 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 28 Jun 2020 16:26:22 -0400 Subject: [PATCH 167/520] Fix the "double-click on AP decode" crash. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 645d7c810..5569385c0 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4501,7 +4501,7 @@ void MainWindow::doubleClickOnCall(Qt::KeyboardModifiers modifiers) } return; } - DecodedText message {cursor.block().text().trimmed().remove("TU; ")}; + DecodedText message {cursor.block().text().trimmed().left(61).remove("TU; ")}; m_bDoubleClicked = true; processMessage (message, modifiers); } From 7d094b36bff582559879e1c5fd1d518cacb75af7 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 28 Jun 2020 16:26:22 -0400 Subject: [PATCH 168/520] Fix the "double-click on AP decode" crash. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 3ac19c349..f54355842 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4499,7 +4499,7 @@ void MainWindow::doubleClickOnCall(Qt::KeyboardModifiers modifiers) } return; } - DecodedText message {cursor.block().text().trimmed().remove("TU; ")}; + DecodedText message {cursor.block().text().trimmed().left(61).remove("TU; ")}; m_bDoubleClicked = true; processMessage (message, modifiers); } From 494481fa8aa8c8c44d9a6ff761366a1af358feac Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 28 Jun 2020 20:22:24 -0400 Subject: [PATCH 169/520] Remove a poisonous but unused line of code. --- widgets/mainwindow.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 71f17093a..6bdd04347 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4575,8 +4575,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie int nw=w.size(); if(nw>=4) { if(message_words.size()<3) return; - // Temporary? Correct for the fact that message.deCallAndGrid() does not work for EU VHF contest messages - QString t=message_words.at(nw-2); int n=w.at(nw-2).toInt(); if(n>=520001 and n<=592047) { hiscall=w.at(1); From 5480beba3a6ec48da45cf67d34df9bcf0a590069 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 29 Jun 2020 07:42:00 -0500 Subject: [PATCH 170/520] Change DT search range back to -1s -> 2s. NB - FST240-15 is subject to false sync at DT=+2.5s - bad for EME? --- lib/fst240_decode.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 9c59492e6..c0de49f24 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -165,7 +165,7 @@ contains if(isync.eq.0) then fc1=0.0 is0=1.5*nint(fs2) - ishw=1.5*is0 + ishw=is0 isst=4*hmod ifhw=12 df=.1*baud From 4fbed923aba20555e49f24e8ff56a7e43e5ddb74 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 29 Jun 2020 09:37:29 -0400 Subject: [PATCH 171/520] Add detailed comments to get_candidates_fst240.f90. --- lib/fst240_decode.f90 | 63 ++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 9c59492e6..f52a89880 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -244,6 +244,7 @@ contains endif enddo ncand=ic + xsnr=0. do icand=1,ncand sync=candidates(icand,2) @@ -351,8 +352,8 @@ contains iaptype=0 qual=0. fsig=fc_synced - 1.5*hmod*baud -write(21,'(i6,7i6,f7.1,f9.2,3f7.1,1x,a37)') & - nutc,icand,itry,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg +!write(21,'(i6,7i6,f7.1,f9.2,3f7.1,1x,a37)') & +! nutc,icand,itry,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & iaptype,qual,ntrperiod) goto 2002 @@ -479,77 +480,79 @@ write(21,'(i6,7i6,f7.1,f9.2,3f7.1,1x,a37)') & subroutine get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & ncand,candidates,base) - complex c_bigfft(0:nfft1/2) - integer hmod - integer indx(100),im(1) - real candidates(100,4) - real candidates0(100,4) - real snr_cand(100) - real s(18000) - real s2(18000) - real xdb(-3:3) + complex c_bigfft(0:nfft1/2) !Full length FFT of raw data + integer hmod !Modulation index (submode) + integer im(1) !For maxloc + real candidates(100,4) !Candidate list + real s(18000) !Low resolution power spectrum + real s2(18000) !CCF of s() with 4 tones + real xdb(-3:3) !Model 4-tone CCF peaks data xdb/0.25,0.50,0.75,1.0,0.75,0.50,0.25/ data nfft1z/-1/ save nfft1z nh1=nfft1/2 df1=fs/nfft1 - baud=fs/nsps + baud=fs/nsps !Keying rate df2=baud/2.0 - nd=df2/df1 + nd=df2/df1 !s() sums this many bins of big FFT ndh=nd/2 - ia=nint(max(100.0,fa)/df2) - ib=nint(min(4800.0,fb)/df2) + ia=nint(max(100.0,fa)/df2) !Low frequency search limit + ib=nint(min(4800.0,fb)/df2) !High frequency limit signal_bw=4*(12000.0/nsps)*hmod analysis_bw=min(4800.0,fb)-max(100.0,fa) - noise_bw=10.0*signal_bw + noise_bw=10.0*signal_bw !Is this a good compromise? if(analysis_bw.gt.noise_bw) then ina=ia inb=ib else - fcenter=(fa+fb)/2.0 - fl = max(100.0,fcenter-noise_bw/2.)/df2 + fcenter=(fa+fb)/2.0 !If noise_bw > analysis_bw, + fl = max(100.0,fcenter-noise_bw/2.)/df2 !we'll search over noise_bw fh = min(4800.0,fcenter+noise_bw/2.)/df2 ina=nint(fl) inb=nint(fh) endif - s=0. + + s=0. !Compute low-resloution power spectrum do i=ina,inb ! noise analysis window includes signal analysis window j0=nint(i*df2/df1) do j=j0-ndh,j0+ndh s(i)=s(i) + real(c_bigfft(j))**2 + aimag(c_bigfft(j))**2 enddo enddo - ina=max(ina,1+3*hmod) + + ina=max(ina,1+3*hmod) !Don't run off the ends inb=min(inb,18000-3*hmod) s2=0. - do i=ina,inb + do i=ina,inb !Compute CCF of s() and 4 tones s2(i)=s(i-hmod*3) + s(i-hmod) +s(i+hmod) +s(i+hmod*3) enddo call pctile(s2(ina+hmod*3:inb-hmod*3),inb-ina+1-hmod*6,30,base) - s2=s2/base - thresh=1.25 + s2=s2/base !Normalize wrt noise level + thresh=1.25 !First candidate threshold ncand=0 candidates=0 if(ia.lt.3) ia=3 if(ib.gt.18000-2) ib=18000-2 +! Find candidates, using the CLEAN algorithm to remove a model of each one +! from s2() after it has been found. pval=99.99 do while(ncand.lt.100 .and. pval.gt.thresh) im=maxloc(s2(ia:ib)) - iploc=ia+im(1)-1 - pval=s2(iploc) - if(s2(iploc).gt.thresh) then - do i=-3,+3 - k=iploc+2*hmod*i + iploc=ia+im(1)-1 !Index of CCF peak + pval=s2(iploc) !Peak value + if(s2(iploc).gt.thresh) then !Is this a possible candidate? + do i=-3,+3 !Remove 0.9 of a model CCF at + k=iploc+2*hmod*i !this frequency from s2() if(k.ge.ia .and. k.le.ib) then s2(k)=max(0.,s2(k)-0.9*pval*xdb(i)) endif enddo ncand=ncand+1 - candidates(ncand,1)=df2*iploc - candidates(ncand,2)=pval + candidates(ncand,1)=df2*iploc !Candidate frequency + candidates(ncand,2)=pval !Rough estimate of SNR endif enddo From 83fddb1f578d134e6fbdcb5da94ab26c7461eb8a Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 29 Jun 2020 12:21:34 -0400 Subject: [PATCH 172/520] Pass more parameters to fst240_decode(). --- lib/decoder.f90 | 3 ++- lib/fst240_decode.f90 | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index dee9044de..0266dc2a6 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -193,7 +193,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) call my_fst240%decode(fst240_decoded,id2,params%nutc, & params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & params%nsubmode,params%ndepth,params%ntr,params%nexp_decode, & - params%ntol) + params%ntol,params%nzhsym,params%emedelay, & + logical(params%lapcqonly),params%napwid,mycall,hiscall) call timer('dec240 ',1) go to 800 endif diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index aaf422911..1347654a4 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -27,7 +27,8 @@ module fst240_decode contains subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfqso, & - nfa,nfb,nsubmode,ndeep,ntrperiod,nexp_decode,ntol) + nfa,nfb,nsubmode,ndeep,ntrperiod,nexp_decode,ntol,nzhsym, & + emedelay,lapcqonly,napwid,mycall,hiscall) use timer_module, only: timer use packjt77 @@ -38,6 +39,7 @@ contains character*37 decodes(100) character*37 msg character*77 c77 + character*12 mycall,hiscall complex, allocatable :: c2(:) complex, allocatable :: cframe(:) complex, allocatable :: c_bigfft(:) !Complex waveform @@ -46,6 +48,7 @@ contains real candidates(100,4) real bitmetrics(320,4) real s4(0:3,NN) + logical lapcqonly integer itone(NN) integer hmod integer*1 apmask(240),cw(240) @@ -58,6 +61,9 @@ contains 1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, & 0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/ + write(*,3001) nzhsym,emedelay,lapcqonly,napwid,mycall,hiscall +3001 format(i4,f6.1,L3,i3,2x,2a12) + this%callback => callback hmod=2**nsubmode if(nfqso+nqsoprogress.eq.-999) return From 06b8e0eec6c848a50088ce1aee206fcb3bdebc7b Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 29 Jun 2020 12:15:28 -0500 Subject: [PATCH 173/520] Try to ensure that nfft1 and nfft2 are nice values. Add a brickwall filter in the downsampler. --- lib/fst240_decode.f90 | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 1347654a4..a0ad0591e 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -76,26 +76,38 @@ contains nmax=15*12000 ndown=20/hmod !nss=40,80,160,400 if(hmod.eq.8) ndown=2 + nfft1=int(nmax/ndown)*ndown else if(ntrperiod.eq.30) then nsps=1680 nmax=30*12000 ndown=42/hmod !nss=40,80,168,336 - if(hmod.eq.4) ndown=10 - if(hmod.eq.8) ndown=5 + nfft1=359856 + if(hmod.eq.4) then + ndown=10 + nfft1=nmax + endif + if(hmod.eq.8) then + ndown=5 + nfft1=nmax + endif + nfft1=int(nmax/ndown)*ndown else if(ntrperiod.eq.60) then nsps=3888 nmax=60*12000 ndown=96/hmod !nss=36,81,162,324 if(hmod.eq.1) ndown=108 + nfft1=int(719808/ndown)*ndown else if(ntrperiod.eq.120) then nsps=8200 nmax=120*12000 ndown=200/hmod !nss=40,82,164,328 if(hmod.eq.1) ndown=205 + nfft1=int(nmax/ndown)*ndown else if(ntrperiod.eq.300) then nsps=21504 nmax=300*12000 ndown=512/hmod !nss=42,84,168,336 + nfft1=int((nmax-200)/ndown)*ndown end if nss=nsps/ndown fs=12000.0 !Sample rate @@ -105,16 +117,17 @@ contains dt2=1.0/fs2 tt=nsps*dt !Duration of "itone" symbols (s) baud=1.0/tt - nfft1=2*int(nmax/2) - nh1=nfft1/2 + sigbw=4.0*hmod*baud + nfft2=nfft1/ndown !make sure that nfft1 is exactly nfft2*ndown + nfft1=nfft2*ndown + nh1=nfft1/2 + allocate( r_data(1:nfft1+2) ) allocate( c_bigfft(0:nfft1/2) ) - nfft2=nfft1/ndown allocate( c2(0:nfft2-1) ) - allocate( cframe(0:164*nss-1) ) + allocate( cframe(0:160*nss-1) ) - npts=nmax if(single_decode) then fa=max(100,nint(nfqso+1.5*hmod*baud-ntol)) fb=min(4800,nint(nfqso+1.5*hmod*baud+ntol)) @@ -164,7 +177,7 @@ contains ! Output array c2 is complex baseband sampled at 12000/ndown Sa/sec. ! The size of the downsampled c2 array is nfft2=nfft1/ndown - call fst240_downsample(c_bigfft,nfft1,ndown,fc0,c2) + call fst240_downsample(c_bigfft,nfft1,ndown,fc0,sigbw,c2) call timer('sync240 ',0) do isync=0,1 @@ -257,7 +270,7 @@ contains fc_synced=candidates(icand,3) isbest=nint(candidates(icand,4)) xdt=(isbest-nspsec)/fs2 - call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,c2) + call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) do ijitter=0,jittermax if(ijitter.eq.0) ioffset=0 @@ -462,7 +475,7 @@ contains return end subroutine sync_fst240 - subroutine fst240_downsample(c_bigfft,nfft1,ndown,f0,c1) + subroutine fst240_downsample(c_bigfft,nfft1,ndown,f0,sigbw,c1) ! Output: Complex data in c(), sampled at 12000/ndown Hz @@ -471,9 +484,12 @@ contains df=12000.0/nfft1 i0=nint(f0/df) + ih=nint( ( f0 + 1.2*sigbw/2.0 )/df) + nbw=ih-i0+1 + c1=0. c1(0)=c_bigfft(i0) nfft2=nfft1/ndown - do i=1,nfft2/2 + do i=1,nbw if(i0+i.le.nfft1/2) c1(i)=c_bigfft(i0+i) if(i0-i.ge.0) c1(nfft2-i)=c_bigfft(i0-i) enddo From 67422f2ede74a7d5b2ef622a4b5c820e01dc298e Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 29 Jun 2020 13:28:06 -0400 Subject: [PATCH 174/520] Remove a diagnostic write statement. --- lib/fst240_decode.f90 | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 1347654a4..106344139 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -61,9 +61,6 @@ contains 1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, & 0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/ - write(*,3001) nzhsym,emedelay,lapcqonly,napwid,mycall,hiscall -3001 format(i4,f6.1,L3,i3,2x,2a12) - this%callback => callback hmod=2**nsubmode if(nfqso+nqsoprogress.eq.-999) return From a5cb88deed4aa2c8780934ac1a9aad3079ba9e89 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 29 Jun 2020 12:31:16 -0500 Subject: [PATCH 175/520] Use two alternating sync words. Change DT=0 to t=0.5 s for ntrperiod=15 s only. --- lib/fst240/genfst240.f90 | 15 ++++++++------- lib/fst240/get_fst240_bitmetrics.f90 | 15 ++++++++------- lib/fst240_decode.f90 | 5 +++-- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/lib/fst240/genfst240.f90 b/lib/fst240/genfst240.f90 index b442b3efa..f60dc8446 100644 --- a/lib/fst240/genfst240.f90 +++ b/lib/fst240/genfst240.f90 @@ -20,10 +20,11 @@ subroutine genfst240(msg0,ichk,msgsent,msgbits,i4tone,iwspr) integer*4 i4tone(NN),itmp(ND) integer*1 codeword(2*ND) integer*1 msgbits(101),rvec(77) - integer isyncword(8) + integer isyncword1(8),isyncword2(8) integer ncrc24 logical unpk77_success - data isyncword/0,1,3,2,1,0,2,3/ + data isyncword1/0,1,3,2,1,0,2,3/ + data isyncword2/2,3,1,0,3,2,0,1/ data rvec/0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,0, & 1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, & 0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/ @@ -86,15 +87,15 @@ subroutine genfst240(msg0,ichk,msgsent,msgbits,i4tone,iwspr) if(is.eq.3) itmp(i)=2 enddo - i4tone( 1: 8)=isyncword + i4tone( 1: 8)=isyncword1 i4tone( 9: 38)=itmp( 1: 30) - i4tone( 39: 46)=isyncword + i4tone( 39: 46)=isyncword2 i4tone( 47: 76)=itmp( 31: 60) - i4tone( 77: 84)=isyncword + i4tone( 77: 84)=isyncword1 i4tone( 85:114)=itmp( 61: 90) - i4tone(115:122)=isyncword + i4tone(115:122)=isyncword2 i4tone(123:152)=itmp( 91:120) - i4tone(153:160)=isyncword + i4tone(153:160)=isyncword1 999 return diff --git a/lib/fst240/get_fst240_bitmetrics.f90 b/lib/fst240/get_fst240_bitmetrics.f90 index 491158264..60804cba7 100644 --- a/lib/fst240/get_fst240_bitmetrics.f90 +++ b/lib/fst240/get_fst240_bitmetrics.f90 @@ -7,7 +7,7 @@ subroutine get_fst240_bitmetrics(cd,nss,hmod,nmax,bitmetrics,s4,badsync) complex, allocatable, save :: c1(:,:) ! ideal waveforms, 20 samples per symbol, 4 tones complex cp(0:3) ! accumulated phase shift over symbol types 0:3 complex csum,cterm - integer icos8(0:7) + integer isyncword1(0:7),isyncword2(0:7) integer graymap(0:3) integer ip(1) integer hmod @@ -17,7 +17,8 @@ subroutine get_fst240_bitmetrics(cd,nss,hmod,nmax,bitmetrics,s4,badsync) real bitmetrics(2*NN,4) real s2(0:65535) real s4(0:3,NN) - data icos8/0,1,3,2,1,0,2,3/ + data isyncword1/0,1,3,2,1,0,2,3/ + data isyncword2/2,3,1,0,3,2,0,1/ data graymap/0,1,3,2/ data first/.true./,nss0/-1/ save first,one,cp,nss0 @@ -65,15 +66,15 @@ subroutine get_fst240_bitmetrics(cd,nss,hmod,nmax,bitmetrics,s4,badsync) do k=1,8 ip=maxloc(s4(:,k)) - if(icos8(k-1).eq.(ip(1)-1)) is1=is1+1 + if(isyncword1(k-1).eq.(ip(1)-1)) is1=is1+1 ip=maxloc(s4(:,k+38)) - if(icos8(k-1).eq.(ip(1)-1)) is2=is2+1 + if(isyncword2(k-1).eq.(ip(1)-1)) is2=is2+1 ip=maxloc(s4(:,k+76)) - if(icos8(k-1).eq.(ip(1)-1)) is3=is3+1 + if(isyncword1(k-1).eq.(ip(1)-1)) is3=is3+1 ip=maxloc(s4(:,k+114)) - if(icos8(k-1).eq.(ip(1)-1)) is4=is4+1 + if(isyncword2(k-1).eq.(ip(1)-1)) is4=is4+1 ip=maxloc(s4(:,k+152)) - if(icos8(k-1).eq.(ip(1)-1)) is5=is5+1 + if(isyncword1(k-1).eq.(ip(1)-1)) is5=is5+1 enddo nsync=is1+is2+is3+is4+is5 !Number of correct hard sync symbols, 0-40 badsync=.false. diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index a0ad0591e..4fded52ae 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -270,6 +270,7 @@ contains fc_synced=candidates(icand,3) isbest=nint(candidates(icand,4)) xdt=(isbest-nspsec)/fs2 + if(ntrperiod.eq.15) xdt=(isbest-real(nspsec)/2.0)/fs2 call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) do ijitter=0,jittermax @@ -286,9 +287,9 @@ contains hbits=0 where(bitmetrics(:,1).ge.0) hbits=1 ns1=count(hbits( 1: 16).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) - ns2=count(hbits( 77: 92).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + ns2=count(hbits( 77: 92).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) ns3=count(hbits(153:168).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) - ns4=count(hbits(229:244).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + ns4=count(hbits(229:244).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) nsync_qual=ns1+ns2+ns3+ns4+ns5 if(nsync_qual.lt. 44) cycle !### Value ?? ### From ae6ca148bd46f0e51995756e7ae6ba20cb498a0e Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 29 Jun 2020 14:47:46 -0400 Subject: [PATCH 176/520] Pass mode name to the Modulator. --- Modulator/Modulator.cpp | 6 +++--- Modulator/Modulator.hpp | 2 +- widgets/mainwindow.cpp | 30 ++++++++++++------------------ widgets/mainwindow.h | 4 ++-- 4 files changed, 18 insertions(+), 24 deletions(-) diff --git a/Modulator/Modulator.cpp b/Modulator/Modulator.cpp index f267022e0..7b06cd915 100644 --- a/Modulator/Modulator.cpp +++ b/Modulator/Modulator.cpp @@ -45,7 +45,7 @@ Modulator::Modulator (unsigned frameRate, double periodLengthInSeconds, { } -void Modulator::start (unsigned symbolsLength, double framesPerSymbol, +void Modulator::start (QString mode, unsigned symbolsLength, double framesPerSymbol, double frequency, double toneSpacing, SoundOutput * stream, Channel channel, bool synchronize, bool fastMode, double dBSNR, double TRperiod) @@ -69,8 +69,8 @@ void Modulator::start (unsigned symbolsLength, double framesPerSymbol, m_bFastMode=fastMode; m_TRperiod=TRperiod; unsigned delay_ms=1000; - if(m_nsps==1920) delay_ms=500; //FT8 - if(m_nsps==576) delay_ms=300; //FT4 + if(mode=="FT8" or (mode=="FST240" and m_nsps==800)) delay_ms=500; //FT8, FST240-15 + if(mode=="FT4") delay_ms=300; //FT4 // noise generator parameters if (m_addNoise) { diff --git a/Modulator/Modulator.hpp b/Modulator/Modulator.hpp index 1043be697..c25074efe 100644 --- a/Modulator/Modulator.hpp +++ b/Modulator/Modulator.hpp @@ -35,7 +35,7 @@ public: void set_nsym(int n) {m_symbolsLength=n;} void set_ms0(qint64 ms) {m_ms0=ms;} - Q_SLOT void start (unsigned symbolsLength, double framesPerSymbol, double frequency, + Q_SLOT void start (QString mode, unsigned symbolsLength, double framesPerSymbol, double frequency, double toneSpacing, SoundOutput *, Channel = Mono, bool synchronize = true, bool fastMode = false, double dBSNR = 99., double TRperiod=60.0); diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 6bdd04347..097cec75a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -7133,7 +7133,7 @@ void MainWindow::transmit (double snr) if(m_nSubMode==0) toneSpacing=11025.0/4096.0; if(m_nSubMode==1) toneSpacing=2*11025.0/4096.0; if(m_nSubMode==2) toneSpacing=4*11025.0/4096.0; - Q_EMIT sendMessage (NUM_JT65_SYMBOLS, + Q_EMIT sendMessage (m_mode, NUM_JT65_SYMBOLS, 4096.0*12000.0/11025.0, ui->TxFreqSpinBox->value () - m_XIT, toneSpacing, m_soundOutput, m_config.audio_output_channel (), true, false, snr, m_TRperiod); @@ -7145,7 +7145,7 @@ void MainWindow::transmit (double snr) if(m_config.x2ToneSpacing()) toneSpacing=2*12000.0/1920.0; if(m_config.x4ToneSpacing()) toneSpacing=4*12000.0/1920.0; if(SpecOp::FOX==m_config.special_op_id() and !m_tune) toneSpacing=-1; - Q_EMIT sendMessage (NUM_FT8_SYMBOLS, + Q_EMIT sendMessage (m_mode, NUM_FT8_SYMBOLS, 1920.0, ui->TxFreqSpinBox->value () - m_XIT, toneSpacing, m_soundOutput, m_config.audio_output_channel (), true, false, snr, m_TRperiod); @@ -7154,7 +7154,7 @@ void MainWindow::transmit (double snr) if (m_modeTx == "FT4") { m_dateTimeSentTx3=QDateTime::currentDateTimeUtc(); toneSpacing=-2.0; //Transmit a pre-computed, filtered waveform. - Q_EMIT sendMessage (NUM_FT4_SYMBOLS, + Q_EMIT sendMessage (m_mode, NUM_FT4_SYMBOLS, 576.0, ui->TxFreqSpinBox->value() - m_XIT, toneSpacing, m_soundOutput, m_config.audio_output_channel(), true, false, snr, m_TRperiod); @@ -7171,7 +7171,7 @@ void MainWindow::transmit (double snr) int hmod=int(pow(2.0,double(m_nSubMode))); double dfreq=hmod*12000.0/nsps; double f0=ui->TxFreqSpinBox->value() - m_XIT + 1.5*dfreq; - Q_EMIT sendMessage (NUM_FST240_SYMBOLS,double(nsps),f0,toneSpacing, + Q_EMIT sendMessage (m_mode, NUM_FST240_SYMBOLS,double(nsps),f0,toneSpacing, m_soundOutput,m_config.audio_output_channel(), true, false, snr, m_TRperiod); } @@ -7182,7 +7182,7 @@ void MainWindow::transmit (double snr) if(m_nSubMode==2) toneSpacing=4*12000.0/6912.0; if(m_nSubMode==3) toneSpacing=8*12000.0/6912.0; if(m_nSubMode==4) toneSpacing=16*12000.0/6912.0; - Q_EMIT sendMessage (NUM_QRA64_SYMBOLS, + Q_EMIT sendMessage (m_mode, NUM_QRA64_SYMBOLS, 6912.0, ui->TxFreqSpinBox->value () - m_XIT, toneSpacing, m_soundOutput, m_config.audio_output_channel (), true, false, snr, m_TRperiod); @@ -7201,7 +7201,7 @@ void MainWindow::transmit (double snr) sps=nsps[m_nSubMode-4]; m_toneSpacing=12000.0/sps; } - Q_EMIT sendMessage (NUM_JT9_SYMBOLS, sps, + Q_EMIT sendMessage (m_mode, NUM_JT9_SYMBOLS, sps, ui->TxFreqSpinBox->value() - m_XIT, m_toneSpacing, m_soundOutput, m_config.audio_output_channel (), true, fastmode, snr, m_TRperiod); @@ -7220,7 +7220,7 @@ void MainWindow::transmit (double snr) int nsym; nsym=NUM_MSK144_SYMBOLS; if(itone[40] < 0) nsym=40; - Q_EMIT sendMessage (nsym, double(m_nsps), f0, m_toneSpacing, + Q_EMIT sendMessage (m_mode, nsym, double(m_nsps), f0, m_toneSpacing, m_soundOutput, m_config.audio_output_channel (), true, true, snr, m_TRperiod); } @@ -7233,7 +7233,7 @@ void MainWindow::transmit (double snr) if(m_nSubMode==4) toneSpacing=18*4.375; if(m_nSubMode==5) toneSpacing=36*4.375; if(m_nSubMode==6) toneSpacing=72*4.375; - Q_EMIT sendMessage (NUM_JT4_SYMBOLS, + Q_EMIT sendMessage (m_mode, NUM_JT4_SYMBOLS, 2520.0*12000.0/11025.0, ui->TxFreqSpinBox->value () - m_XIT, toneSpacing, m_soundOutput, m_config.audio_output_channel (), true, false, snr, m_TRperiod); @@ -7242,22 +7242,16 @@ void MainWindow::transmit (double snr) int nToneSpacing=1; if(m_config.x2ToneSpacing()) nToneSpacing=2; if(m_config.x4ToneSpacing()) nToneSpacing=4; - Q_EMIT sendMessage (NUM_WSPR_SYMBOLS, 8192.0, + Q_EMIT sendMessage (m_mode, NUM_WSPR_SYMBOLS, 8192.0, ui->TxFreqSpinBox->value() - 1.5 * 12000 / 8192, m_toneSpacing*nToneSpacing, m_soundOutput, m_config.audio_output_channel(),true, false, snr, m_TRperiod); } - if (m_mode=="WSPR-LF") { - Q_EMIT sendMessage (NUM_WSPR_LF_SYMBOLS, 24576.0, - ui->TxFreqSpinBox->value(), - m_toneSpacing, m_soundOutput, - m_config.audio_output_channel(),true, false, snr, - m_TRperiod); - } + if(m_mode=="Echo") { //??? should use "fastMode = true" here ??? - Q_EMIT sendMessage (27, 1024.0, 1500.0, 0.0, m_soundOutput, + Q_EMIT sendMessage (m_mode, 27, 1024.0, 1500.0, 0.0, m_soundOutput, m_config.audio_output_channel(), false, false, snr, m_TRperiod); } @@ -7273,7 +7267,7 @@ void MainWindow::transmit (double snr) toneSpacing=11025.0/256.0; f0=13*toneSpacing; } - Q_EMIT sendMessage (NUM_ISCAT_SYMBOLS, sps, f0, toneSpacing, m_soundOutput, + Q_EMIT sendMessage (m_mode, NUM_ISCAT_SYMBOLS, sps, f0, toneSpacing, m_soundOutput, m_config.audio_output_channel(), true, true, snr, m_TRperiod); } diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index e62f7da9a..001742f7f 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -337,8 +337,8 @@ private: Q_SIGNAL void transmitFrequency (double) const; Q_SIGNAL void endTransmitMessage (bool quick = false) const; Q_SIGNAL void tune (bool = true) const; - Q_SIGNAL void sendMessage (unsigned symbolsLength, double framesPerSymbol, - double frequency, double toneSpacing, + Q_SIGNAL void sendMessage (QString mode, unsigned symbolsLength, + double framesPerSymbol, double frequency, double toneSpacing, SoundOutput *, AudioDevice::Channel = AudioDevice::Mono, bool synchronize = true, bool fastMode = false, double dBSNR = 99., int TRperiod=60) const; From 355b060454ce4edd1a935846b9517a423e90828b Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 29 Jun 2020 15:06:11 -0500 Subject: [PATCH 177/520] 1. Fix broken sync. 2. Change FST240-15 to use nsps=720 --- lib/fst240/fst240sim.f90 | 5 ++-- lib/fst240/gen_fst240wave.f90 | 12 ++++----- lib/fst240_decode.f90 | 50 ++++++++++++++++++++--------------- 3 files changed, 37 insertions(+), 30 deletions(-) diff --git a/lib/fst240/fst240sim.f90 b/lib/fst240/fst240sim.f90 index 9cca82504..ceefa00e8 100644 --- a/lib/fst240/fst240sim.f90 +++ b/lib/fst240/fst240sim.f90 @@ -47,7 +47,7 @@ program fst240sim fs=12000.0 !Sample rate (Hz) dt=1.0/fs !Sample interval (s) nsps=0 - if(nsec.eq.15) nsps=800 + if(nsec.eq.15) nsps=720 if(nsec.eq.30) nsps=1680 if(nsec.eq.60) nsps=3888 if(nsec.eq.120) nsps=8200 @@ -99,7 +99,8 @@ program fst240sim icmplx=1 f0=f00+1.5*hmod*baud call gen_fst240wave(itone,NN,nsps,nmax,fsample,hmod,f0,icmplx,c0,wave) - k=nint(xdt/dt) + k=nint((xdt+1.0)/dt) + if(nsec.eq.15) k=nint((xdt+0.5)/dt) c0=cshift(c0,-k) if(k.gt.0) c0(0:k-1)=0.0 if(k.lt.0) c0(nmax+k:nmax-1)=0.0 diff --git a/lib/fst240/gen_fst240wave.f90 b/lib/fst240/gen_fst240wave.f90 index 43170638d..3ba1c2d82 100644 --- a/lib/fst240/gen_fst240wave.f90 +++ b/lib/fst240/gen_fst240wave.f90 @@ -71,19 +71,19 @@ subroutine gen_fst240wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & wave(1:nsps)=0.0 wave(nsps+1:nsps+nsps/4)=wave(nsps+1:nsps+nsps/4) * & (1.0-cos(twopi*(/(i,i=0,nsps/4-1)/)/real(nsps/2)))/2.0 - k1=nsym*nsps+3*nsps/4 + k1=nsym*nsps+3*nsps/4+1 wave((nsym+1)*nsps+1:)=0.0 - wave(k1:k1+nsps/4-1)=wave(k1:k1+nsps/4-1) * & - (1.0+cos(twopi*(/(i,i=0,nsps/4-1)/)/real(nsps/2)))/2.0 + wave(k1:k1+nsps/4)=wave(k1:k1+nsps/4) * & + (1.0+cos(twopi*(/(i,i=0,nsps/4)/)/real(nsps/2)))/2.0 wave=cshift(wave,kshift) else cwave(1:nsps)=0.0 cwave(nsps+1:nsps+nsps/4)=cwave(nsps+1:nsps+nsps/4) * & (1.0-cos(twopi*(/(i,i=0,nsps/4-1)/)/real(nsps/2)))/2.0 - k1=nsym*nsps+3*nsps/4 + k1=nsym*nsps+3*nsps/4+1 cwave((nsym+1)*nsps+1:)=0.0 - cwave(k1:k1+nsps/4-1)=cwave(k1:k1+nsps/4-1) * & - (1.0+cos(twopi*(/(i,i=0,nsps/4-1)/)/real(nsps/2)))/2.0 + cwave(k1:k1+nsps/4)=cwave(k1:k1+nsps/4) * & + (1.0+cos(twopi*(/(i,i=0,nsps/4)/)/real(nsps/2)))/2.0 cwave=cshift(cwave,kshift) endif diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 2465065fd..46a047b53 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -69,9 +69,10 @@ contains nmax=15*12000 single_decode=iand(nexp_decode,32).eq.32 if(ntrperiod.eq.15) then - nsps=800 + nsps=720 nmax=15*12000 - ndown=20/hmod !nss=40,80,160,400 + ndown=18/hmod !nss=40,80,160,400 + if(hmod.eq.4) ndown=4 if(hmod.eq.8) ndown=2 nfft1=int(nmax/ndown)*ndown else if(ntrperiod.eq.30) then @@ -87,7 +88,6 @@ contains ndown=5 nfft1=nmax endif - nfft1=int(nmax/ndown)*ndown else if(ntrperiod.eq.60) then nsps=3888 nmax=60*12000 @@ -276,7 +276,7 @@ contains if(ijitter.eq.2) ioffset=-1 is0=isbest+ioffset if(is0.lt.0) cycle - cframe=c2(is0:is0+164*nss-1) + cframe=c2(is0:is0+160*nss-1) bitmetrics=0 call get_fst240_bitmetrics(cframe,nss,hmod,ntmax,bitmetrics,s4,badsync) if(badsync) cycle @@ -392,31 +392,36 @@ contains include 'fst240/fst240_params.f90' complex cd0(0:np-1) - complex, allocatable, save :: csync(:) - complex, allocatable, save :: csynct(:) + complex, allocatable, save :: csync1(:),csync2(:) + complex, allocatable, save :: csynct1(:),csynct2(:) complex ctwk(8*nss) complex z1,z2,z3,z4,z5 logical first - integer hmod,isyncword(0:7) + integer hmod,isyncword1(0:7),isyncword2(0:7) real f0save - data isyncword/0,1,3,2,1,0,2,3/ + data isyncword1/0,1,3,2,1,0,2,3/ + data isyncword2/2,3,1,0,3,2,0,1/ data first/.true./,f0save/-99.9/,nss0/-1/ save first,twopi,dt,fac,f0save,nss0 p(z1)=(real(z1*fac)**2 + aimag(z1*fac)**2)**0.5 !Compute power - if(nss.ne.nss0 .and. allocated(csync)) deallocate(csync,csynct) + if(nss.ne.nss0 .and. allocated(csync1)) deallocate(csync1,csync2,csynct1,csynct2) if(first .or. nss.ne.nss0) then - allocate( csync(8*nss) ) - allocate( csynct(8*nss) ) + allocate( csync1(8*nss), csync2(8*nss) ) + allocate( csynct1(8*nss), csynct2(8*nss) ) twopi=8.0*atan(1.0) dt=1/fs k=1 - phi=0.0 + phi1=0.0 + phi2=0.0 do i=0,7 - dphi=twopi*hmod*(isyncword(i)-1.5)/real(nss) + dphi1=twopi*hmod*(isyncword1(i)-1.5)/real(nss) + dphi2=twopi*hmod*(isyncword2(i)-1.5)/real(nss) do j=1,nss - csync(k)=cmplx(cos(phi),sin(phi)) - phi=mod(phi+dphi,twopi) + csync1(k)=cmplx(cos(phi1),sin(phi1)) + csync2(k)=cmplx(cos(phi2),sin(phi2)) + phi1=mod(phi1+dphi1,twopi) + phi2=mod(phi2+dphi2,twopi) k=k+1 enddo enddo @@ -432,7 +437,8 @@ contains ctwk(i)=cmplx(cos(phi),sin(phi)) phi=mod(phi+dphi,twopi) enddo - csynct=ctwk*csync + csynct1=ctwk*csync1 + csynct2=ctwk*csync2 f0save=f0 endif @@ -453,14 +459,14 @@ contains is=(i-1)*ncoh*nss z1=0 if(i1+is.ge.1) then - z1=sum(cd0(i1+is:i1+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + z1=sum(cd0(i1+is:i1+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) endif - z2=sum(cd0(i2+is:i2+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) - z3=sum(cd0(i3+is:i3+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) - z4=sum(cd0(i4+is:i4+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + z2=sum(cd0(i2+is:i2+is+ncoh*nss-1)*conjg(csynct2(is+1:is+ncoh*nss))) + z3=sum(cd0(i3+is:i3+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) + z4=sum(cd0(i4+is:i4+is+ncoh*nss-1)*conjg(csynct2(is+1:is+ncoh*nss))) z5=0 if(i5+is+ncoh*nss-1.le.np) then - z5=sum(cd0(i5+is:i5+is+ncoh*nss-1)*conjg(csynct(is+1:is+ncoh*nss))) + z5=sum(cd0(i5+is:i5+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) endif s1=s1+abs(z1)/(8*nss) s2=s2+abs(z2)/(8*nss) @@ -482,7 +488,7 @@ contains df=12000.0/nfft1 i0=nint(f0/df) - ih=nint( ( f0 + 1.2*sigbw/2.0 )/df) + ih=nint( ( f0 + 1.3*sigbw/2.0 )/df) nbw=ih-i0+1 c1=0. c1(0)=c_bigfft(i0) From d462277a3ed3e46d3a6e8912ad7e9d8e807e50ba Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 29 Jun 2020 16:09:12 -0500 Subject: [PATCH 178/520] Make ldpcsim program work again. --- lib/fst240/ldpcsim240_101.f90 | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/lib/fst240/ldpcsim240_101.f90 b/lib/fst240/ldpcsim240_101.f90 index 55121b5c3..e201ac413 100644 --- a/lib/fst240/ldpcsim240_101.f90 +++ b/lib/fst240/ldpcsim240_101.f90 @@ -32,7 +32,7 @@ program ldpcsim240_101 call getarg(1,arg) read(arg,*) max_iterations call getarg(2,arg) - read(arg,*) ndeep + read(arg,*) norder call getarg(3,arg) read(arg,*) ntrials call getarg(4,arg) @@ -47,7 +47,7 @@ program ldpcsim240_101 write(*,*) "code rate: ",rate write(*,*) "niter : ",max_iterations - write(*,*) "ndeep : ",ndeep + write(*,*) "norder : ",norder write(*,*) "s : ",s write(*,*) "K : ",Keff @@ -100,19 +100,13 @@ write(*,'(24i1)') msgbits(78:101) llr=2.0*rxdata/(ss*ss) apmask=0 -! max_iterations is max number of belief propagation iterations - call bpdecode240_101(llr,apmask,max_iterations,message101,cw,nharderror,niterations,nchecks) dmin=0.0 - if( (nharderror .lt. 0) .and. (ndeep .ge. 0) ) then -! call osd240_101(llr, Keff, apmask, ndeep, message101, cw, nharderror, dmin) - maxsuper=2 - call decode240_101(llr, Keff, ndeep, apmask, maxsuper, message101, cw, nharderror, iterations, ncheck, dmin, isuper) - endif - + maxosd=2 + call decode240_101(llr, Keff, maxosd, norder, apmask, message101, cw, ntype, nharderror, dmin) if(nharderror.ge.0) then n2err=0 do i=1,N - if( cw(i)*(2*codeword(i)-1.0) .lt. 0 ) n2err=n2err+1 + if( cw(i).ne.codeword(i) ) n2err=n2err+1 enddo if(n2err.eq.0) then ngood=ngood+1 From a44b240192323e4ee677d430014984556cdcd900 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 29 Jun 2020 17:33:46 -0400 Subject: [PATCH 179/520] Change to NSPS=720 for 15-seconf FST240 modes, to allow use for EME. --- Modulator/Modulator.cpp | 2 +- widgets/mainwindow.cpp | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Modulator/Modulator.cpp b/Modulator/Modulator.cpp index 7b06cd915..8308a44cb 100644 --- a/Modulator/Modulator.cpp +++ b/Modulator/Modulator.cpp @@ -69,7 +69,7 @@ void Modulator::start (QString mode, unsigned symbolsLength, double framesPerSym m_bFastMode=fastMode; m_TRperiod=TRperiod; unsigned delay_ms=1000; - if(mode=="FT8" or (mode=="FST240" and m_nsps==800)) delay_ms=500; //FT8, FST240-15 + if(mode=="FT8" or (mode=="FST240" and m_nsps==720)) delay_ms=500; //FT8, FST240-15 if(mode=="FT4") delay_ms=300; //FT4 // noise generator parameters diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 097cec75a..1ff8edaac 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1342,8 +1342,8 @@ void MainWindow::fixStop() } else if (m_mode=="FT4") { m_hsymStop=21; } else if(m_mode=="FST240" or m_mode=="FST240W") { - int stop[] = {44,85,187,387,1003}; - int stop_EME[] = {51,95,197,396,1012}; + int stop[] = {39,85,187,387,1003}; + int stop_EME[] = {48,95,197,396,1012}; int i=0; if(m_TRperiod==30) i=1; if(m_TRperiod==60) i=2; @@ -3538,7 +3538,7 @@ void MainWindow::guiUpdate() if(m_modeTx=="QRA64") txDuration=1.0 + 84*6912/12000.0; // QRA64 if(m_modeTx=="WSPR") txDuration=2.0 + 162*8192/12000.0; // WSPR if(m_modeTx=="FST240" or m_mode=="FST240W") { //FST240, FST240W - if(m_TRperiod==15) txDuration=1.0 + 160*800/12000.0; + if(m_TRperiod==15) txDuration=1.0 + 160*720/12000.0; if(m_TRperiod==30) txDuration=1.0 + 160*1680/12000.0; if(m_TRperiod==60) txDuration=1.0 + 160*3888/12000.0; if(m_TRperiod==120) txDuration=1.0 + 160*8200/12000.0; @@ -3882,7 +3882,7 @@ void MainWindow::guiUpdate() genfst240_(message,&ichk,msgsent,const_cast (fst240msgbits), const_cast(itone), &iwspr, 37, 37); int hmod=int(pow(2.0,double(m_nSubMode))); - int nsps=800; + int nsps=720; if(m_TRperiod==30) nsps=1680; if(m_TRperiod==60) nsps=3888; if(m_TRperiod==120) nsps=8200; @@ -7163,7 +7163,7 @@ void MainWindow::transmit (double snr) if (m_modeTx == "FST240" or m_modeTx == "FST240W") { m_dateTimeSentTx3=QDateTime::currentDateTimeUtc(); toneSpacing=-2.0; //Transmit a pre-computed, filtered waveform. - int nsps=800; + int nsps=720; if(m_TRperiod==30) nsps=1680; if(m_TRperiod==60) nsps=3888; if(m_TRperiod==120) nsps=8200; From 3d081a09a81432bd350e61c3df604bde252c0b51 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 30 Jun 2020 13:22:59 +0100 Subject: [PATCH 180/520] Update documentation URLs to SSL/TLS where available Some like *.princeton.edu now require this. --- doc/common/links.adoc | 118 +++++++++++++++++++++--------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/doc/common/links.adoc b/doc/common/links.adoc index 5b7296b2c..ff03ebd0b 100644 --- a/doc/common/links.adoc +++ b/doc/common/links.adoc @@ -5,10 +5,10 @@ Usage example: include::../common/links.adoc[] Syntax: [link-id] [link] [displayed text] Example: -:pskreporter: http://pskreporter.info/pskmap.html[PSK Reporter] +:pskreporter: https://pskreporter.info/pskmap.html[PSK Reporter] [link-id] = :pskreporter: -[link] http://pskreporter.info/pskmap.html +[link] https://pskreporter.info/pskmap.html [displayed text] PSK Reporter Perform searches from the doc root directory: doc @@ -42,53 +42,53 @@ d). Edit lines as needed. Keeping them in alphabetic order help see dupes. // General URL's //:launchpadac6sl: https://launchpad.net/~jnogatch/+archive/wsjtx[WSJT-X Linux Packages] :alarmejt: http://f5jmh.free.fr/index.php?page=english[AlarmeJT] -:asciidoc_cheatsheet: http://powerman.name/doc/asciidoc[AsciiDoc Cheatsheet] -:asciidoc_help: http://www.methods.co.nz/asciidoc/userguide.html[AsciiDoc User Guide] -:asciidoc_questions: http://www.methods.co.nz/asciidoc/faq.html[AsciiDoc FAQ] +:asciidoc_cheatsheet: https://powerman.name/doc/asciidoc[AsciiDoc Cheatsheet] +:asciidoc_help: https://www.methods.co.nz/asciidoc/userguide.html[AsciiDoc User Guide] +:asciidoc_questions: https://www.methods.co.nz/asciidoc/faq.html[AsciiDoc FAQ] :asciidoc_syntax: http://xpt.sourceforge.net/techdocs/nix/tool/asciidoc-syn/ascs01-AsciiDocMarkupSyntaxQuickSummary/single/[AsciiDoc Syntax] -:asciidoctor_style: http://asciidoctor.org/docs/asciidoc-writers-guide/#delimited-blocks[AsciiDoctor Styles Guide] -:asciidoctor_syntax: http://asciidoctor.org/docs/asciidoc-writers-guide/#delimited-blocks[AsciiDoctor Syntax Guide] -:cc_by_sa: http://creativecommons.org/licenses/by-sa/3.0/[Commons Attribution-ShareAlike 3.0 Unported License] -:debian32: http://physics.princeton.edu/pulsar/K1JT/wsjtx_{VERSION}_i386.deb[wsjtx_{VERSION}_i386.deb] -:debian64: http://physics.princeton.edu/pulsar/K1JT/wsjtx_{VERSION}_amd64.deb[wsjtx_{VERSION}_amd64.deb] -:raspbian: http://physics.princeton.edu/pulsar/K1JT/wsjtx_{VERSION}_armhf.deb[wsjtx_{VERSION}_armhf.deb] -:debian: http://www.debian.org/[Debian] -:dev_guide: http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/wsjt-dev-guide.html[Dev-Guide] -:devsvn: http://sourceforge.net/p/wsjt/wsjt/HEAD/tree/[Devel-SVN] +:asciidoctor_style: https://asciidoctor.org/docs/asciidoc-writers-guide/#delimited-blocks[AsciiDoctor Styles Guide] +:asciidoctor_syntax: https://asciidoctor.org/docs/asciidoc-writers-guide/#delimited-blocks[AsciiDoctor Syntax Guide] +:cc_by_sa: https://creativecommons.org/licenses/by-sa/3.0/[Commons Attribution-ShareAlike 3.0 Unported License] +:debian32: https://physics.princeton.edu/pulsar/K1JT/wsjtx_{VERSION}_i386.deb[wsjtx_{VERSION}_i386.deb] +:debian64: https://physics.princeton.edu/pulsar/K1JT/wsjtx_{VERSION}_amd64.deb[wsjtx_{VERSION}_amd64.deb] +:raspbian: https://physics.princeton.edu/pulsar/K1JT/wsjtx_{VERSION}_armhf.deb[wsjtx_{VERSION}_armhf.deb] +:debian: https://www.debian.org/[Debian] +:dev_guide: https://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/wsjt-dev-guide.html[Dev-Guide] +:devsvn: https://sourceforge.net/p/wsjt/wsjt/HEAD/tree/[Devel-SVN] :devrepo: https://sourceforge.net/p/wsjt/wsjtx/ci/master/tree/[SourceForge] :dimension4: http://www.thinkman.com/dimension4/[Thinking Man Software] -:download: http://physics.princeton.edu/pulsar/K1JT/wsjtx.html[Download Page] +:download: https://physics.princeton.edu/pulsar/K1JT/wsjtx.html[Download Page] :dxatlas: http://www.dxatlas.com/[Afreet Software, Inc.] -:dxlcommander: http://www.dxlabsuite.com/commander/[Commander] -:dxlsuite: http://www.dxlabsuite.com/[DX Lab Suite] -:fedora32: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-i686.rpm[wsjtx-{VERSION}-i686.rpm] -:fedora64: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-x86_64.rpm[wsjtx-{VERSION}-x86_64.rpm] -:fmt_arrl: http://www.arrl.org/frequency-measuring-test[ARRL FMT Info] +:dxlcommander: https://www.dxlabsuite.com/commander/[Commander] +:dxlsuite: https://www.dxlabsuite.com/[DX Lab Suite] +:fedora32: https://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-i686.rpm[wsjtx-{VERSION}-i686.rpm] +:fedora64: https://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-x86_64.rpm[wsjtx-{VERSION}-x86_64.rpm] +:fmt_arrl: https://www.arrl.org/frequency-measuring-test[ARRL FMT Info] :fmt_group: https://groups.yahoo.com/neo/groups/FMT-nuts/info[FMT Group] :fmt_k5cm: http://www.k5cm.com/[FMT Event Info] -:fmt_wspr: http://www.physics.princeton.edu/pulsar/K1JT/FMT_User.pdf[Accurate Frequency Measurements with your WSPR Setup] -:ft4_protocol: http://physics.princeton.edu/pulsar/k1jt/FT4_Protocol.pdf[The FT4 Protocol for Digital Contesting] -:ft4_ft8_protocols: http://physics.princeton.edu/pulsar/k1jt/FT4_FT8_QEX.pdf[The FT4 and FT8 Communication Protocols] -:ft8_tips: http://www.g4ifb.com/FT8_Hinson_tips_for_HF_DXers.pdf[FT8 Operating Guide] -:ft8_DXped: http://physics.princeton.edu/pulsar/k1jt/FT8_DXpedition_Mode.pdf[FT8 DXpedition Mode] -:gnu_gpl: http://www.gnu.org/licenses/gpl-3.0.txt[GNU General Public License] -:homepage: http://physics.princeton.edu/pulsar/K1JT/[WSJT Home Page] +:fmt_wspr: https://www.physics.princeton.edu/pulsar/K1JT/FMT_User.pdf[Accurate Frequency Measurements with your WSPR Setup] +:ft4_protocol: https://physics.princeton.edu/pulsar/k1jt/FT4_Protocol.pdf[The FT4 Protocol for Digital Contesting] +:ft4_ft8_protocols: https://physics.princeton.edu/pulsar/k1jt/FT4_FT8_QEX.pdf[The FT4 and FT8 Communication Protocols] +:ft8_tips: https://www.g4ifb.com/FT8_Hinson_tips_for_HF_DXers.pdf[FT8 Operating Guide] +:ft8_DXped: https://physics.princeton.edu/pulsar/k1jt/FT8_DXpedition_Mode.pdf[FT8 DXpedition Mode] +:gnu_gpl: https://www.gnu.org/licenses/gpl-3.0.txt[GNU General Public License] +:homepage: https://physics.princeton.edu/pulsar/K1JT/[WSJT Home Page] :hrd: http://www.hrdsoftwarellc.com/[Ham Radio Deluxe] -:jt4eme: http://physics.princeton.edu/pulsar/K1JT/WSJT-X_1.6.0_for_JT4_v7.pdf[Using WSJT-X for JT4 EME Operation] -:jt65protocol: http://physics.princeton.edu/pulsar/K1JT/JT65.pdf[QEX] -:jtalert: http://hamapps.com/[JTAlert] +:jt4eme: https://physics.princeton.edu/pulsar/K1JT/WSJT-X_1.6.0_for_JT4_v7.pdf[Using WSJT-X for JT4 EME Operation] +:jt65protocol: https://physics.princeton.edu/pulsar/K1JT/JT65.pdf[QEX] +:jtalert: https://hamapps.com/[JTAlert] :launchpadki7mt: https://launchpad.net/~ki7mt[KI7MT PPA's] -:log4om: http://www.log4om.com[Log4OM] -:lunarEchoes: http://physics.princeton.edu/pulsar/K1JT/LunarEchoes_QEX.pdf[QEX] -:msk144: http://physics.princeton.edu/pulsar/k1jt/MSK144_Protocol_QEX.pdf[QEX] +:log4om: https://www.log4om.com[Log4OM] +:lunarEchoes: https://physics.princeton.edu/pulsar/K1JT/LunarEchoes_QEX.pdf[QEX] +:msk144: https://physics.princeton.edu/pulsar/k1jt/MSK144_Protocol_QEX.pdf[QEX] :msvcpp_redist: https://www.microsoft.com/en-ph/download/details.aspx?id=40784[Microsoft VC++ 2013 Redistributable] -:msys_url: http://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/[MSYS Download] +:msys_url: https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/[MSYS Download] :n1mm_logger: https://n1mm.hamdocs.com/tiki-index.php[N1MM Logger+] -:ntpsetup: http://www.satsignal.eu/ntp/setup.html[Network Time Protocol Setup] -:osx_instructions: http://physics.princeton.edu/pulsar/K1JT/OSX_Readme[Mac OS X Install Instructions] -:ppa: http://en.wikipedia.org/wiki/Personal_Package_Archive[PPA] -:projsummary: http://sourceforge.net/projects/wsjt/[Project Summary] -:pskreporter: http://pskreporter.info/pskmap.html[PSK Reporter] +:ntpsetup: https://www.satsignal.eu/ntp/setup.html[Network Time Protocol Setup] +:osx_instructions: https://physics.princeton.edu/pulsar/K1JT/OSX_Readme[Mac OS X Install Instructions] +:ppa: https://en.wikipedia.org/wiki/Personal_Package_Archive[PPA] +:projsummary: https://sourceforge.net/projects/wsjt/[Project Summary] +:pskreporter: https://pskreporter.info/pskmap.html[PSK Reporter] :sourceforge: https://sourceforge.net/user/registration[SourceForge] :sourceforge-jtsdk: https://sourceforge.net/projects/jtsdk[SourceForge JTSDK] :ubuntu_sdk: https://launchpad.net/~ubuntu-sdk-team/+archive/ppa[Ubuntu SDK Notice] @@ -97,37 +97,37 @@ d). Edit lines as needed. Keeping them in alphabetic order help see dupes. :win64_openssl: https://slproweb.com/download/Win64OpenSSL_Light-1_1_1g.msi[Win64 OpenSSL Light Package] :writelog: https://writelog.com/[Writelog] :wsjtx_group: https://groups.io/g/WSJTX[WSJTX Group] -:wsjtx: http://physics.princeton.edu/pulsar/K1JT/wsjtx.html[WSJT-X] -:wspr0_guide: http://www.physics.princeton.edu/pulsar/K1JT/WSPR0_Instructions.TXT[WSPR0 Guide] -:wspr: http://physics.princeton.edu/pulsar/K1JT/wspr.html[WSPR Home Page] -:wsprnet: http://wsprnet.org/drupal/[WSPRnet] -:wsprnet_activity: http://wsprnet.org/drupal/wsprnet/activity[WSPRnet Activity page] +:wsjtx: https://physics.princeton.edu/pulsar/K1JT/wsjtx.html[WSJT-X] +:wspr0_guide: https://www.physics.princeton.edu/pulsar/K1JT/WSPR0_Instructions.TXT[WSPR0 Guide] +:wspr: https://physics.princeton.edu/pulsar/K1JT/wspr.html[WSPR Home Page] +:wsprnet: https://wsprnet.org/drupal/[WSPRnet] +:wsprnet_activity: https://wsprnet.org/drupal/wsprnet/activity[WSPRnet Activity page] // Download Links -:cty_dat: http://www.country-files.com/cty/[Amateur Radio Country Files] -:jtbridge: http://jt-bridge.eller.nu/[JT-Bridge] -:jtsdk_doc: http://physics.princeton.edu/pulsar/K1JT/JTSDK-DOC.exe[Download] -:jtsdk_installer: http://sourceforge.net/projects/jtsdk/files/win32/2.0.0/JTSDK-2.0.0-B2-Win32.exe/download[Download] -:jtsdk_omnirig: http://sourceforge.net/projects/jtsdk/files/win32/2.0.0/base/contrib/OmniRig.zip/download[Download] -:jtsdk_py: http://physics.princeton.edu/pulsar/K1JT/JTSDK-PY.exe[Download] -:jtsdk_qt: http://physics.princeton.edu/pulsar/K1JT/JTSDK-QT.exe[Download] -:jtsdk_vcredist: http://sourceforge.net/projects/jtsdk/files/win32/2.0.0/base/contrib/vcredist_x86.exe/download[Download] +:cty_dat: https://www.country-files.com/cty/[Amateur Radio Country Files] +:jtbridge: https://jt-bridge.eller.nu/[JT-Bridge] +:jtsdk_doc: https://physics.princeton.edu/pulsar/K1JT/JTSDK-DOC.exe[Download] +:jtsdk_installer: https://sourceforge.net/projects/jtsdk/files/win32/2.0.0/JTSDK-2.0.0-B2-Win32.exe/download[Download] +:jtsdk_omnirig: https://sourceforge.net/projects/jtsdk/files/win32/2.0.0/base/contrib/OmniRig.zip/download[Download] +:jtsdk_py: https://physics.princeton.edu/pulsar/K1JT/JTSDK-PY.exe[Download] +:jtsdk_qt: https://physics.princeton.edu/pulsar/K1JT/JTSDK-QT.exe[Download] +:jtsdk_vcredist: https://sourceforge.net/projects/jtsdk/files/win32/2.0.0/base/contrib/vcredist_x86.exe/download[Download] :nh6z: http://www.nh6z.net/Amatuer_Radio_Station_NH6Z/Other_Peoples_Software.html[here] :omnirig: http://www.dxatlas.com/OmniRig/Files/OmniRig.zip[Omni-Rig] -:osx: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-Darwin.dmg[wsjtx-{VERSION}-Darwin.dmg] -:QRA64_EME: http://physics.princeton.edu/pulsar/K1JT/QRA64_EME.pdf[QRA64 for microwave EME] -:svn: http://subversion.apache.org/packages.html#windows[Subversion] -:win32: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-win32.exe[wsjtx-{VERSION}-win32.exe] -:win64: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-win64.exe[wsjtx-{VERSION}-win64.exe] +:osx: https://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-Darwin.dmg[wsjtx-{VERSION}-Darwin.dmg] +:QRA64_EME: https://physics.princeton.edu/pulsar/K1JT/QRA64_EME.pdf[QRA64 for microwave EME] +:svn: https://subversion.apache.org/packages.html#windows[Subversion] +:win32: https://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-win32.exe[wsjtx-{VERSION}-win32.exe] +:win64: https://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-win64.exe[wsjtx-{VERSION}-win64.exe] :wsjt-devel: https://lists.sourceforge.net/lists/listinfo/wsjt-devel[here] :wsjt_repo: https://sourceforge.net/p/wsjt/wsjt_orig/ci/master/tree/[WSJT Source Repository] -:wspr_code: http://physics.princeton.edu/pulsar/K1JT/WSPRcode.exe[WSPRcode.exe] +:wspr_code: https://physics.princeton.edu/pulsar/K1JT/WSPRcode.exe[WSPRcode.exe] :wspr_svn: https://sourceforge.net/p/wsjt/wspr/ci/master/tree/[WSPR Source Repository] // MAIL-TO links :alex_efros: mailto:powerman@powerman.name[Alex Efros] :bill_somerville: mailto:g4wjs -at- c l a s s d e s i g n -dot- com [G4WJS] -:dev_mail_list: http://sourceforge.net/mailarchive/forum.php?forum_name=wsjt-devel[WSJT Developers Email List] +:dev_mail_list: https://sourceforge.net/mailarchive/forum.php?forum_name=wsjt-devel[WSJT Developers Email List] :dev_mail_svn: https://sourceforge.net/auth/subscriptions/[WSJT SVN Archives] :devmail: mailto:wsjt-devel@lists.sourceforge.net[wsjt-devel@lists.sourceforge.net] :devmail1: mailto:wsjt-devel@lists.sourceforge.net[Post Message] From 023e09bc4d2533288872a2a9d8af9b9f465bf3d6 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 30 Jun 2020 08:58:40 -0400 Subject: [PATCH 181/520] Correct the help message's option label for setting FST240 mode. --- lib/jt9.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/jt9.f90 b/lib/jt9.f90 index 23f330c9f..1bebf56f9 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -54,7 +54,7 @@ program jt9 option ('jt4', .false., '4', 'JT4 mode', ''), & option ('ft4', .false., '5', 'FT4 mode', ''), & option ('jt65', .false.,'6', 'JT65 mode', ''), & - option ('fst240', .false., '7', 'FT8 mode', ''), & + option ('fst240', .false., '7', 'FST240 mode', ''), & option ('ft8', .false., '8', 'FT8 mode', ''), & option ('jt9', .false., '9', 'JT9 mode', ''), & option ('qra64', .false., 'q', 'QRA64 mode', ''), & From d34f05f985e2b4d125be82274e99718fb918a80a Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 30 Jun 2020 08:42:54 -0500 Subject: [PATCH 182/520] Implement basic AP decoding for FST240. No contests. --- lib/fst240_decode.f90 | 152 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 143 insertions(+), 9 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 46a047b53..5c5d07838 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -37,9 +37,10 @@ contains class(fst240_decoder), intent(inout) :: this procedure(fst240_decode_callback) :: callback character*37 decodes(100) - character*37 msg + character*37 msg,msgsent character*77 c77 character*12 mycall,hiscall + character*12 mycall0,hiscall0 complex, allocatable :: c2(:) complex, allocatable :: cframe(:) complex, allocatable :: c_bigfft(:) !Complex waveform @@ -53,15 +54,103 @@ contains integer hmod integer*1 apmask(240),cw(240) integer*1 hbits(320) - integer*1 message101(101),message74(74) + integer*1 message101(101),message74(74),message77(77) integer*1 rvec(77) + integer apbits(240) + integer nappasses(0:5) ! # of decoding passes for QSO states 0-5 + integer naptypes(0:5,4) ! (nQSOProgress,decoding pass) + integer mcq(29),mrrr(19),m73(19),mrr73(19) + logical badsync,unpk77_success,single_decode + logical first,nohiscall + integer*2 iwave(300*12000) - data rvec/0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,0, & - 1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, & - 0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/ + + data mcq/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0/ + data mrrr/0,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,1/ + data m73/0,1,1,1,1,1,1,0,1,0,0,1,0,1,0,0,0,0,1/ + data mrr73/0,1,1,1,1,1,1,0,0,1,1,1,0,1,0,1,0,0,1/ + data rvec/0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,0, & + 1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, & + 0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/ + data first/.true./ + save first,apbits,nappasses,naptypes,mycall0,hiscall0 this%callback => callback + + dxcall13=hiscall ! initialize for use in packjt77 + mycall13=mycall + + if(first) then + mcq=2*mod(mcq+rvec(1:29),2)-1 + mrrr=2*mod(mrrr+rvec(59:77),2)-1 + m73=2*mod(m73+rvec(59:77),2)-1 + mrr73=2*mod(mrr73+rvec(59:77),2)-1 + + nappasses(0)=2 + nappasses(1)=2 + nappasses(2)=2 + nappasses(3)=2 + nappasses(4)=2 + nappasses(5)=3 + +! iaptype +!------------------------ +! 1 CQ ??? ??? (29 ap bits) +! 2 MyCall ??? ??? (29 ap bits) +! 3 MyCall DxCall ??? (58 ap bits) +! 4 MyCall DxCall RRR (77 ap bits) +! 5 MyCall DxCall 73 (77 ap bits) +! 6 MyCall DxCall RR73 (77 ap bits) +!******** + + naptypes(0,1:4)=(/1,2,0,0/) ! Tx6 selected (CQ) + naptypes(1,1:4)=(/2,3,0,0/) ! Tx1 + naptypes(2,1:4)=(/2,3,0,0/) ! Tx2 + naptypes(3,1:4)=(/3,6,0,0/) ! Tx3 + naptypes(4,1:4)=(/3,6,0,0/) ! Tx4 + naptypes(5,1:4)=(/3,1,2,0/) ! Tx5 + + mycall0='' + hiscall0='' + first=.false. + endif + + l1=index(mycall,char(0)) + if(l1.ne.0) mycall(l1:)=" " + l1=index(hiscall,char(0)) + if(l1.ne.0) hiscall(l1:)=" " + if(mycall.ne.mycall0 .or. hiscall.ne.hiscall0) then + apbits=0 + apbits(1)=99 + apbits(30)=99 + + if(len(trim(mycall)) .lt. 3) go to 10 + + nohiscall=.false. + hiscall0=hiscall + if(len(trim(hiscall0)).lt.3) then + hiscall0=mycall ! use mycall for dummy hiscall - mycall won't be hashed. + nohiscall=.true. + endif + msg=trim(mycall)//' '//trim(hiscall0)//' RR73' + i3=-1 + n3=-1 + call pack77(msg,i3,n3,c77) + call unpack77(c77,1,msgsent,unpk77_success) + if(i3.ne.1 .or. (msg.ne.msgsent) .or. .not.unpk77_success) go to 10 + read(c77,'(77i1)') message77 + message77=mod(message77+rvec,2) + call encode174_91(message77,cw) + apbits=2*cw-1 + if(nohiscall) apbits(30)=99 + +10 continue + mycall0=mycall + hiscall0=hiscall + endif +!************************************ + hmod=2**nsubmode if(nfqso+nqsoprogress.eq.-999) return Keff=91 @@ -278,7 +367,7 @@ contains if(is0.lt.0) cycle cframe=c2(is0:is0+160*nss-1) bitmetrics=0 - call get_fst240_bitmetrics(cframe,nss,hmod,ntmax,bitmetrics,s4,badsync) + call get_fst240_bitmetrics(cframe,nss,hmod,4,bitmetrics,s4,badsync) if(badsync) cycle hbits=0 @@ -312,6 +401,11 @@ contains llrd(121:180)=bitmetrics(169:228, 4) llrd(181:240)=bitmetrics(245:304, 4) llrd=scalefac*llrd + + apmag=maxval(abs(llra))*1.1 + ntmax=4+nappasses(nQSOProgress) + if(lapcqonly) ntmax=5 + if(ndepth.eq.1) ntmax=3 apmask=0 do itry=1,ntmax @@ -319,6 +413,47 @@ contains if(itry.eq.2) llr=llrb if(itry.eq.3) llr=llrc if(itry.eq.4) llr=llrd + if(itry.le.4) then + apmask=0 + iaptype=0 + endif + napwid=1.2*(4.0*baud*hmod) + + if(itry.gt.4) then + llr=llra + iaptype=naptypes(nQSOProgress,itry-4) + if(lapcqonly) iaptype=1 + if(iaptype.ge.2 .and. apbits(1).gt.1) cycle ! No, or nonstandard, mycall + if(iaptype.ge.3 .and. apbits(30).gt.1) cycle ! No, or nonstandard, dxcall + + if(iaptype.eq.1) then ! CQ + apmask=0 + apmask(1:29)=1 + llr(1:29)=apmag*mcq(1:29) + endif + + if(iaptype.eq.2) then ! MyCall ??? ??? + apmask=0 + apmask(1:29)=1 + llr(1:29)=apmag*apbits(1:29) + endif + + if(iaptype.eq.3) then ! MyCall DxCall ??? + apmask=0 + apmask(1:58)=1 + llr(1:58)=apmag*apbits(1:58) + endif + + if(iaptype.eq.4 .or. iaptype.eq.5 .or. iaptype .eq.6) then + apmask=0 + apmask(1:77)=1 + llr(1:58)=apmag*apbits(1:58) + if(iaptype.eq.4) llr(59:77)=apmag*mrrr(1:19) + if(iaptype.eq.5) llr(59:77)=apmag*m73(1:19) + if(iaptype.eq.6) llr(59:77)=apmag*mrr73(1:19) + endif + endif + dmin=0.0 nharderrors=-1 unpk77_success=.false. @@ -366,11 +501,10 @@ contains endif endif nsnr=nint(xsnr) - iaptype=0 qual=0. fsig=fc_synced - 1.5*hmod*baud -!write(21,'(i6,7i6,f7.1,f9.2,3f7.1,1x,a37)') & -! nutc,icand,itry,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg +write(21,'(i6,7i6,f7.1,f9.2,3f7.1,1x,a37)') & + nutc,icand,itry,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & iaptype,qual,ntrperiod) goto 2002 From 2a74e5a5de38f95e431cdfbedcea496378df1d76 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 30 Jun 2020 10:35:13 -0400 Subject: [PATCH 183/520] Allow command-line argument for "nQSOProgress" in jt9. --- lib/jt9.f90 | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/jt9.f90 b/lib/jt9.f90 index 1bebf56f9..679c2ef22 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -23,10 +23,10 @@ program jt9 character wisfile*80 !### ndepth was defined as 60001. Why??? integer :: arglen,stat,offset,remain,mode=0,flow=200,fsplit=2700, & - fhigh=4000,nrxfreq=1500,ndepth=1,nexp_decode=0 + fhigh=4000,nrxfreq=1500,ndepth=1,nexp_decode=0,nQSOProg=0 logical :: read_files = .true., tx9 = .false., display_help = .false., & bLowSidelobes = .false. - type (option) :: long_options(27) = [ & + type (option) :: long_options(28) = [ & 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', & @@ -58,9 +58,11 @@ program jt9 option ('ft8', .false., '8', 'FT8 mode', ''), & option ('jt9', .false., '9', 'JT9 mode', ''), & option ('qra64', .false., 'q', 'QRA64 mode', ''), & + option ('QSOprog', .true., 'Q', 'QSO progress (0-5), default PROGRESS=1',& + 'QSOprogress'), & option ('sub-mode', .true., 'b', 'Sub mode, default SUBMODE=A', 'A'), & option ('depth', .true., 'd', & - 'JT9 decoding depth (1-3), default DEPTH=1', 'DEPTH'), & + 'Decoding depth (1-3), default DEPTH=1', 'DEPTH'), & option ('tx-jt9', .false., 'T', 'Tx mode is JT9', ''), & option ('my-call', .true., 'c', 'my callsign', 'CALL'), & option ('my-grid', .true., 'G', 'my grid locator', 'GRID'), & @@ -82,7 +84,7 @@ program jt9 TRperiod=60.d0 do - call getopt('hs:e:a:b:r:m:p:d:f:w:t:987654qTL:S:H:c:G:x:g:X:', & + call getopt('hs:e:a:b:r:m:p:d:f:w:t:987654qTL:S:H:c:G:x:g:X:Q:', & long_options,c,optarg,arglen,stat,offset,remain,.true.) if (stat .ne. 0) then exit @@ -117,6 +119,8 @@ program jt9 read (optarg(:arglen), *) fhigh case ('q') mode = 164 + case ('Q') + read (optarg(:arglen), *) nQSOProg case ('4') mode = 4 case ('5') @@ -260,7 +264,7 @@ program jt9 if(mode.eq.164 .and. nsubmode.lt.100) nsubmode=nsubmode+100 shared_data%params%naggressive=0 shared_data%params%n2pass=2 -! shared_data%params%nranera=8 !### ntrials=10000 + shared_data%params%nQSOprogress=nQSOProg shared_data%params%nranera=6 !### ntrials=3000 shared_data%params%nrobust=.false. shared_data%params%nexp_decode=nexp_decode From 3084fa6dd3149f2319d94ee343b4b9b8def8b243 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 30 Jun 2020 11:05:17 -0400 Subject: [PATCH 184/520] Change all User Guide links to physics.princeton.edu to the secure "https:: protocol. --- doc/common/links.adoc | 50 +++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/doc/common/links.adoc b/doc/common/links.adoc index 5b7296b2c..e3592cfdd 100644 --- a/doc/common/links.adoc +++ b/doc/common/links.adoc @@ -49,43 +49,43 @@ d). Edit lines as needed. Keeping them in alphabetic order help see dupes. :asciidoctor_style: http://asciidoctor.org/docs/asciidoc-writers-guide/#delimited-blocks[AsciiDoctor Styles Guide] :asciidoctor_syntax: http://asciidoctor.org/docs/asciidoc-writers-guide/#delimited-blocks[AsciiDoctor Syntax Guide] :cc_by_sa: http://creativecommons.org/licenses/by-sa/3.0/[Commons Attribution-ShareAlike 3.0 Unported License] -:debian32: http://physics.princeton.edu/pulsar/K1JT/wsjtx_{VERSION}_i386.deb[wsjtx_{VERSION}_i386.deb] -:debian64: http://physics.princeton.edu/pulsar/K1JT/wsjtx_{VERSION}_amd64.deb[wsjtx_{VERSION}_amd64.deb] -:raspbian: http://physics.princeton.edu/pulsar/K1JT/wsjtx_{VERSION}_armhf.deb[wsjtx_{VERSION}_armhf.deb] +:debian32: https://physics.princeton.edu/pulsar/K1JT/wsjtx_{VERSION}_i386.deb[wsjtx_{VERSION}_i386.deb] +:debian64: https://physics.princeton.edu/pulsar/K1JT/wsjtx_{VERSION}_amd64.deb[wsjtx_{VERSION}_amd64.deb] +:raspbian: https://physics.princeton.edu/pulsar/K1JT/wsjtx_{VERSION}_armhf.deb[wsjtx_{VERSION}_armhf.deb] :debian: http://www.debian.org/[Debian] :dev_guide: http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/wsjt-dev-guide.html[Dev-Guide] :devsvn: http://sourceforge.net/p/wsjt/wsjt/HEAD/tree/[Devel-SVN] :devrepo: https://sourceforge.net/p/wsjt/wsjtx/ci/master/tree/[SourceForge] :dimension4: http://www.thinkman.com/dimension4/[Thinking Man Software] -:download: http://physics.princeton.edu/pulsar/K1JT/wsjtx.html[Download Page] +:download: https://physics.princeton.edu/pulsar/K1JT/wsjtx.html[Download Page] :dxatlas: http://www.dxatlas.com/[Afreet Software, Inc.] :dxlcommander: http://www.dxlabsuite.com/commander/[Commander] :dxlsuite: http://www.dxlabsuite.com/[DX Lab Suite] -:fedora32: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-i686.rpm[wsjtx-{VERSION}-i686.rpm] -:fedora64: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-x86_64.rpm[wsjtx-{VERSION}-x86_64.rpm] +:fedora32: https://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-i686.rpm[wsjtx-{VERSION}-i686.rpm] +:fedora64: https://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-x86_64.rpm[wsjtx-{VERSION}-x86_64.rpm] :fmt_arrl: http://www.arrl.org/frequency-measuring-test[ARRL FMT Info] :fmt_group: https://groups.yahoo.com/neo/groups/FMT-nuts/info[FMT Group] :fmt_k5cm: http://www.k5cm.com/[FMT Event Info] :fmt_wspr: http://www.physics.princeton.edu/pulsar/K1JT/FMT_User.pdf[Accurate Frequency Measurements with your WSPR Setup] -:ft4_protocol: http://physics.princeton.edu/pulsar/k1jt/FT4_Protocol.pdf[The FT4 Protocol for Digital Contesting] -:ft4_ft8_protocols: http://physics.princeton.edu/pulsar/k1jt/FT4_FT8_QEX.pdf[The FT4 and FT8 Communication Protocols] +:ft4_protocol: https://physics.princeton.edu/pulsar/k1jt/FT4_Protocol.pdf[The FT4 Protocol for Digital Contesting] +:ft4_ft8_protocols: https://physics.princeton.edu/pulsar/k1jt/FT4_FT8_QEX.pdf[The FT4 and FT8 Communication Protocols] :ft8_tips: http://www.g4ifb.com/FT8_Hinson_tips_for_HF_DXers.pdf[FT8 Operating Guide] -:ft8_DXped: http://physics.princeton.edu/pulsar/k1jt/FT8_DXpedition_Mode.pdf[FT8 DXpedition Mode] +:ft8_DXped: https://physics.princeton.edu/pulsar/k1jt/FT8_DXpedition_Mode.pdf[FT8 DXpedition Mode] :gnu_gpl: http://www.gnu.org/licenses/gpl-3.0.txt[GNU General Public License] -:homepage: http://physics.princeton.edu/pulsar/K1JT/[WSJT Home Page] +:homepage: https://physics.princeton.edu/pulsar/K1JT/[WSJT Home Page] :hrd: http://www.hrdsoftwarellc.com/[Ham Radio Deluxe] -:jt4eme: http://physics.princeton.edu/pulsar/K1JT/WSJT-X_1.6.0_for_JT4_v7.pdf[Using WSJT-X for JT4 EME Operation] -:jt65protocol: http://physics.princeton.edu/pulsar/K1JT/JT65.pdf[QEX] +:jt4eme: https://physics.princeton.edu/pulsar/K1JT/WSJT-X_1.6.0_for_JT4_v7.pdf[Using WSJT-X for JT4 EME Operation] +:jt65protocol: https://physics.princeton.edu/pulsar/K1JT/JT65.pdf[QEX] :jtalert: http://hamapps.com/[JTAlert] :launchpadki7mt: https://launchpad.net/~ki7mt[KI7MT PPA's] :log4om: http://www.log4om.com[Log4OM] -:lunarEchoes: http://physics.princeton.edu/pulsar/K1JT/LunarEchoes_QEX.pdf[QEX] -:msk144: http://physics.princeton.edu/pulsar/k1jt/MSK144_Protocol_QEX.pdf[QEX] +:lunarEchoes: https://physics.princeton.edu/pulsar/K1JT/LunarEchoes_QEX.pdf[QEX] +:msk144: https://physics.princeton.edu/pulsar/k1jt/MSK144_Protocol_QEX.pdf[QEX] :msvcpp_redist: https://www.microsoft.com/en-ph/download/details.aspx?id=40784[Microsoft VC++ 2013 Redistributable] :msys_url: http://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/[MSYS Download] :n1mm_logger: https://n1mm.hamdocs.com/tiki-index.php[N1MM Logger+] :ntpsetup: http://www.satsignal.eu/ntp/setup.html[Network Time Protocol Setup] -:osx_instructions: http://physics.princeton.edu/pulsar/K1JT/OSX_Readme[Mac OS X Install Instructions] +:osx_instructions: https://physics.princeton.edu/pulsar/K1JT/OSX_Readme[Mac OS X Install Instructions] :ppa: http://en.wikipedia.org/wiki/Personal_Package_Archive[PPA] :projsummary: http://sourceforge.net/projects/wsjt/[Project Summary] :pskreporter: http://pskreporter.info/pskmap.html[PSK Reporter] @@ -97,31 +97,31 @@ d). Edit lines as needed. Keeping them in alphabetic order help see dupes. :win64_openssl: https://slproweb.com/download/Win64OpenSSL_Light-1_1_1g.msi[Win64 OpenSSL Light Package] :writelog: https://writelog.com/[Writelog] :wsjtx_group: https://groups.io/g/WSJTX[WSJTX Group] -:wsjtx: http://physics.princeton.edu/pulsar/K1JT/wsjtx.html[WSJT-X] +:wsjtx: https://physics.princeton.edu/pulsar/K1JT/wsjtx.html[WSJT-X] :wspr0_guide: http://www.physics.princeton.edu/pulsar/K1JT/WSPR0_Instructions.TXT[WSPR0 Guide] -:wspr: http://physics.princeton.edu/pulsar/K1JT/wspr.html[WSPR Home Page] +:wspr: https://physics.princeton.edu/pulsar/K1JT/wspr.html[WSPR Home Page] :wsprnet: http://wsprnet.org/drupal/[WSPRnet] :wsprnet_activity: http://wsprnet.org/drupal/wsprnet/activity[WSPRnet Activity page] // Download Links :cty_dat: http://www.country-files.com/cty/[Amateur Radio Country Files] :jtbridge: http://jt-bridge.eller.nu/[JT-Bridge] -:jtsdk_doc: http://physics.princeton.edu/pulsar/K1JT/JTSDK-DOC.exe[Download] +:jtsdk_doc: https://physics.princeton.edu/pulsar/K1JT/JTSDK-DOC.exe[Download] :jtsdk_installer: http://sourceforge.net/projects/jtsdk/files/win32/2.0.0/JTSDK-2.0.0-B2-Win32.exe/download[Download] :jtsdk_omnirig: http://sourceforge.net/projects/jtsdk/files/win32/2.0.0/base/contrib/OmniRig.zip/download[Download] -:jtsdk_py: http://physics.princeton.edu/pulsar/K1JT/JTSDK-PY.exe[Download] -:jtsdk_qt: http://physics.princeton.edu/pulsar/K1JT/JTSDK-QT.exe[Download] +:jtsdk_py: https://physics.princeton.edu/pulsar/K1JT/JTSDK-PY.exe[Download] +:jtsdk_qt: https://physics.princeton.edu/pulsar/K1JT/JTSDK-QT.exe[Download] :jtsdk_vcredist: http://sourceforge.net/projects/jtsdk/files/win32/2.0.0/base/contrib/vcredist_x86.exe/download[Download] :nh6z: http://www.nh6z.net/Amatuer_Radio_Station_NH6Z/Other_Peoples_Software.html[here] :omnirig: http://www.dxatlas.com/OmniRig/Files/OmniRig.zip[Omni-Rig] -:osx: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-Darwin.dmg[wsjtx-{VERSION}-Darwin.dmg] -:QRA64_EME: http://physics.princeton.edu/pulsar/K1JT/QRA64_EME.pdf[QRA64 for microwave EME] +:osx: https://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-Darwin.dmg[wsjtx-{VERSION}-Darwin.dmg] +:QRA64_EME: https://physics.princeton.edu/pulsar/K1JT/QRA64_EME.pdf[QRA64 for microwave EME] :svn: http://subversion.apache.org/packages.html#windows[Subversion] -:win32: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-win32.exe[wsjtx-{VERSION}-win32.exe] -:win64: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-win64.exe[wsjtx-{VERSION}-win64.exe] +:win32: https://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-win32.exe[wsjtx-{VERSION}-win32.exe] +:win64: https://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-win64.exe[wsjtx-{VERSION}-win64.exe] :wsjt-devel: https://lists.sourceforge.net/lists/listinfo/wsjt-devel[here] :wsjt_repo: https://sourceforge.net/p/wsjt/wsjt_orig/ci/master/tree/[WSJT Source Repository] -:wspr_code: http://physics.princeton.edu/pulsar/K1JT/WSPRcode.exe[WSPRcode.exe] +:wspr_code: https://physics.princeton.edu/pulsar/K1JT/WSPRcode.exe[WSPRcode.exe] :wspr_svn: https://sourceforge.net/p/wsjt/wspr/ci/master/tree/[WSPR Source Repository] // MAIL-TO links From d916f315d363146bdb4a83a5eb815bd72012e3e6 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 30 Jun 2020 11:39:51 -0500 Subject: [PATCH 185/520] Make AP decoding baseline llrs depend on hmod. Center the DT search window on emedelay. --- lib/fst240_decode.f90 | 49 ++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 5c5d07838..85038769f 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -223,17 +223,19 @@ contains endif if(ndeep.eq.3) then - ntmax=4 ! number of block sizes to try + nblock=1 + if(hmod.eq.1) nblock=4 ! number of block sizes to try jittermax=2 norder=3 elseif(ndeep.eq.2) then - ntmax=3 - jittermax=2 + nblock=1 + if(hmod.eq.1) nblock=3 + jittermax=0 norder=3 elseif(ndeep.eq.1) then - ntmax=1 - jittermax=2 - norder=2 + nblock=1 + jittermax=0 + norder=3 endif ! The big fft is done once and is used for calculating the smoothed spectrum @@ -269,8 +271,13 @@ contains do isync=0,1 if(isync.eq.0) then fc1=0.0 - is0=1.5*nint(fs2) - ishw=is0 + if(emedelay.lt.0.1) then ! search offsets from 0 s to 2 s + is0=1.5*nspsec + ishw=1.5*nspsec + else ! search plus or minus 1.5 s centered on emedelay + is0=nint(emedelay*nspsec) + ishw=1.5*nspsec + endif isst=4*hmod ifhw=12 df=.1*baud @@ -310,12 +317,10 @@ contains if(smax8/smax1 .lt. 0.65 ) then fc2=fc21 isbest=isbest1 - if(hmod.gt.1) ntmax=1 njitter=2 else fc2=fc28 isbest=isbest8 - if(hmod.gt.1) ntmax=1 njitter=2 endif fc_synced = fc0 + fc2 @@ -367,7 +372,7 @@ contains if(is0.lt.0) cycle cframe=c2(is0:is0+160*nss-1) bitmetrics=0 - call get_fst240_bitmetrics(cframe,nss,hmod,4,bitmetrics,s4,badsync) + call get_fst240_bitmetrics(cframe,nss,hmod,nblock,bitmetrics,s4,badsync) if(badsync) cycle hbits=0 @@ -403,29 +408,29 @@ contains llrd=scalefac*llrd apmag=maxval(abs(llra))*1.1 - ntmax=4+nappasses(nQSOProgress) - if(lapcqonly) ntmax=5 - if(ndepth.eq.1) ntmax=3 + ntmax=nblock+nappasses(nQSOProgress) + if(lapcqonly) ntmax=nblock+1 + if(ndepth.eq.1) ntmax=nblock apmask=0 do itry=1,ntmax if(itry.eq.1) llr=llra - if(itry.eq.2) llr=llrb - if(itry.eq.3) llr=llrc - if(itry.eq.4) llr=llrd - if(itry.le.4) then + if(itry.eq.2.and.itry.le.nblock) llr=llrb + if(itry.eq.3.and.itry.le.nblock) llr=llrc + if(itry.eq.4.and.itry.le.nblock) llr=llrd + if(itry.le.nblock) then apmask=0 iaptype=0 endif napwid=1.2*(4.0*baud*hmod) - if(itry.gt.4) then - llr=llra - iaptype=naptypes(nQSOProgress,itry-4) + if(itry.gt.nblock) then + if(nblock.eq.1) llr=llra + if(nblock.gt.1) llr=llrc + iaptype=naptypes(nQSOProgress,itry-nblock) if(lapcqonly) iaptype=1 if(iaptype.ge.2 .and. apbits(1).gt.1) cycle ! No, or nonstandard, mycall if(iaptype.ge.3 .and. apbits(30).gt.1) cycle ! No, or nonstandard, dxcall - if(iaptype.eq.1) then ! CQ apmask=0 apmask(1:29)=1 From e8bb7e74bc9c2fb4a84c62345ea9e44a7ea6b49c Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 30 Jun 2020 13:29:32 -0500 Subject: [PATCH 186/520] Add routines for a (240,74) code. Hardwire decoder for wspr messages, for the time being. --- CMakeLists.txt | 5 +- lib/.fst240_decode.f90.swp | Bin 0 -> 45056 bytes lib/fst240/decode240_74.f90 | 154 ++++++++++ lib/fst240/encode240_74.f90 | 46 +++ lib/fst240/genfst240.f90 | 6 +- lib/fst240/ldpc_240_74_generator.f90 | 170 +++++++++++ lib/fst240/ldpc_240_74_parity.f90 | 423 +++++++++++++++++++++++++++ lib/fst240/ldpcsim240_74.f90 | 125 ++++++++ lib/fst240/osd240_74.f90 | 403 +++++++++++++++++++++++++ lib/fst240_decode.f90 | 16 +- 10 files changed, 1342 insertions(+), 6 deletions(-) create mode 100644 lib/.fst240_decode.f90.swp create mode 100644 lib/fst240/decode240_74.f90 create mode 100644 lib/fst240/encode240_74.f90 create mode 100644 lib/fst240/ldpc_240_74_generator.f90 create mode 100644 lib/fst240/ldpc_240_74_parity.f90 create mode 100644 lib/fst240/ldpcsim240_74.f90 create mode 100644 lib/fst240/osd240_74.f90 diff --git a/CMakeLists.txt b/CMakeLists.txt index 20eb32034..87b8509ff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -596,15 +596,18 @@ set (wsjt_FSRCS lib/wqencode.f90 lib/wspr_downsample.f90 lib/zplot9.f90 - lib/fst240/bpdecode240_101.f90 lib/fst240/decode240_101.f90 + lib/fst240/decode240_74.f90 lib/fst240/encode240_101.f90 + lib/fst240/encode240_74.f90 lib/fst240/fst240sim.f90 lib/fst240/gen_fst240wave.f90 lib/fst240/genfst240.f90 lib/fst240/get_fst240_bitmetrics.f90 lib/fst240/ldpcsim240_101.f90 + lib/fst240/ldpcsim240_74.f90 lib/fst240/osd240_101.f90 + lib/fst240/osd240_74.f90 lib/fst240/get_crc24.f90 ) diff --git a/lib/.fst240_decode.f90.swp b/lib/.fst240_decode.f90.swp new file mode 100644 index 0000000000000000000000000000000000000000..80719f14301320e718670170abe1f21b1c9edddd GIT binary patch literal 45056 zcmeI5d6X+xedpzbEtu72Si?|l2S2I1T2e{9y(Wb*&v*g+z|TuK;NhW`O5OFIy3|jl zcE9&#SWXfQWLN?O20RQ2F_W1Ph{Itr8Ngvl0^}SB%Rty6oWa9R!WzIPVLrd#y|+}_ z`q`fOCxg`I+p4a~|&;jNW}0-pyI3YR?Z_Gdok9-le)OUDX@wB2hY z$0Lc^_j5&~`S@=4_~KK0-EybfY;>lievTzrdHinNX{D9D^jQC7CG9mUop__tPW!c` z>d{uz?6#tE`(Sknm09qt2WCBRr+Z+x-(Fn1?=|&Wpbysh=goQNo^#EeCNs-0>w#Gh z%z9wf1G65O^}wtLW<4w&My_7OZ9)jHX*U!XN`Q{!`|Ouzq=#x_pgU$@^qTYxL)-Zot25L~}uB>wI;{yz5mVw#Gh%z9wf1G65O^}wtLW<4t*#nJM zp)g0ye<+MF`hUm&fAju@!Z*Ojz^lNEzz(<;Tmv2l{_%c=!bic|!0W*=a49$d?gqYc z-$LR2;MJfHt_D6h3w#$w{yX5S;49z_;5y)g1#oY0+u4P}C&1gmi@?*sW5A=p+2C6U z4L%6o1fCBLfjRIsgbg1C{|&qWycq0(O>hY)gC8QW_&e~|;Mc*W;9=mQ;A;pA{sw#q z{4sb7Xn_j24ME8Jz-dqcw;`Cg75ou+6L<-DF}Mai9$W+};B0U!LW*~TSA$o9=Yiwk zT5u8Y!9&1xGeYHJ7gD*K_G=qv?Xl>4MR8RhKUCYdLx= zUK(|xW@?DpDY9G&bJM{FGG}sQZv*R-0&9~3gGqr^3ADv; z_j;@Kur|NlZ58!;p?7`MEG{2hUtKNvwbG)SQQL!LtM#dgdcEF&SZ`{w<_VXodBP+L z)@ug`<;Cq{JMN|ZlGopg60Pg@DU6;vK|M4VQvKFR8?+Utazzl`o5cON(TPt-Uc1}# zcGHL;Z>P~beyqQ`s-*g)f3#%SAk+&V>$z)4DaA7|fGqUzg{ zt6H5#zhN>~%KhGMRIW&9?!&XlBWU3M^BijkOM;0R%_Ir)ndHvgyKk3bK*|vJE+|lV zOKRoGpjKQq6Ftc8G8#gIR3@GL&ymteqNGeVSN%K@LnzRunDRZQ&sZj#EY}>$&Sj#g z-aeUJMTawa+szYXy7PZpn~F|>IO#{5QE$HH#e2+#V!c|O4{FtFm4%Wn?Q}O|ri`5= zN!Lz-eAGsxm7YqP{%*2!e0B9`y4!3{H=E&M2qiJ!7M4`;Qj2zkj#*7Ln?+Z)Oe zrTXwd(M$V{KDX7y2!LgW?VF~tBvfcnO(K?%8~Rv z)+B5@`;CoGUMOdVrnkIR-@No=g{Mk@FuN;&G7_oozz-n(d-|ZEXh){EUdojZKs<)NTZ}b z7H2G1wa2wnc6!}r)Y|Pu#Uazyqi#hnNjJJ1rPkqr7*55@RAXgg{}oyI9Yo1^mT*^68D#pC)@>p}XY-SCt4hM%On8<36s zq!mRwe$wylM7_A%@{{P~j$L*L?RNa+^j3Om+b6HA?PTlG@;HgiIuI45{l4osUzb5Y z+3h#|p=Bm%pGdowNTJzH`i(eAr4dom(mw6A8_kG&J`$8GXYzQNq}f838yFpxtU)fF zJfowDPV8bGO@Z>U3+8ANI(FsRyQhZA% zvgDptpET+1M?l^sE`Ayb2FE37-pNT$#k`o+C2q!jFJY;4gb3{R`rgo3Wfdip?Hie# zzI6Lw#@U&9#sT-tOw*~QZ_I?Q@LPRf`qWKNud$K#WzosaDXJ(lO15JY>zAzz@-&-z zN~^L-$~8~-nU)XV+v!S&_eRzcEf&HfJyS5x^l)%N`2S1chtGy@7XE+U@{K=&zyCgX zGk6)e0jz@C;p@K#ZUzy!7TgD%4GQ2p@b;evw}5wo9dH>~2WJD}`QHM1;8(z>;NxEk zHb4bD65J2`i2A$@Y=Z{)HE=C>5_mND6`*zAkI$XO&3a(g1G65O^}wtLW<4*aI_6idzZ6{=VpODYcJ~W_7YE7MaZ?fo`mw@CTQvMCf zEhch}FgM(}9x2DrXYNRMcXP{&Qut3~86pX~>hO_5mS&6!66IFAHXrXGsmM~z9deEI zWZ%9UB~6v8m;_pUsQ(w7IGGr&d?BM@Lh>yzQE9DsycBLXP8O?WUvCzx<%9Fml=+jb zjbdDKT(C)x?D%+jGb+aouS~7V-tlsWyA2~tcAaI?9uKu03$=NX7|q8fbm;$_aKeLD zan;@Ss79_(h9C|X>;6K0DCfw{+>vOzi)fk3OD{KM3Pm07(4kAbhT{*ZJEXNvrSfLK z+}}c)w`FUdr#E+bsv-)=>~zyK7J*SVR2LRZQt6^FqnFPY8%JM`oyTyz*g+h(^H_qVpaewQao2gZ#EZHXGqE#xwhK4c6^ydkv;)(`f;(-}W=hY<=IHOU?ve$tJ})rqc;RCFSOA8)7Gmtm3#lr$Ff0jaOY$;P6& zEctRRQGp3r@#|GzO4nh|Kixv26sE=4W%U+3cUSTjxK#4F%lW#SD{)8>Qq-B6q$1B< zmN1!!jA2?Vc|8B#5<{FsD$JvUs^tQNAQx`O2@Tuu%}CaD1<*n%PnR1hH(0O{Q%aw^ zxSJg4d%fL+BHKE_Xt)+8<(N(o{{N$Ap<73{Ed0N-pZ^5BzVQAxf)qRz+!uTt9{=6o zMc^=a5cnB<{ingZ!0SK^t^^CyaK!soB%su3Dm(4(Bpp}h>rii zgXe+EKmZ;B?g2iDZvO+|Ch%Nv1T296EqZ+LGSC4bxDWUq`g+mte-?ZY+ydSLc0mYA z;K%gw2f*)vQ(zNlzyBQUOMc#(m_3vEwZ;S<50B@!8U*fa#kG)EZc#24TJqoT?{#-# zedaS#gaVoskvm@XADE)sorU5$b! zr3qB=F7c9%^s1Marg^3!QdO&pP<5-Hkq=O!qDIN?YkDu~o#s`mEdf>|>75Sz(>4Ee z-9NqLpVqyMi)r@vj@!wQ%P^z_^-Y%{jn8J&ddZE9Q(8_?o{r`VNNdM;IG5LKRcS-A zvl!@nyaS3qc4wl2mFc+e-@=I@FA!Bu+Ahz@+xDufZUI4db!6&jwtE#C)=Nt1U0M2>B**oUfZ0NaE(H zX2-E18Ih=yj)f7q*=74K^(|y6hcB$L)nw(=P*UCU4p{~jjZz9GMpk09QYS?%#R!RZ zI#W$)BFsTxu;YI3l@ru6++N{xq}eBmSRokdidD$d%dV#kyouM$L3N&W zC8!n~z0J~MjknBV5R_MKV3O{n75KKnyC)-UE_fA?QP?|4BRlw{Fp|XFk}6yhLi6-O zys3Paymj4Ma3mAWZgnS9BBf9W<=+A}C&oG@X33QI#pFEtLJlxZnH;V3rqo1dwn(C^ zvQpWhqrysKIf8Y~z&M8)46B5;Ki!!)%EIYNTsb`Z0H1z${r{KX z(S7)M;s0UH_46fo{l5mk2abUAf$09f0sbd=6L=-~w?Oj#5E>r_e+0Hb89W@^3c)`F zUGQ{J2M+^3g3tde@MdrWcotX#=YaRY>;ED6Eg(Ao$AJ5QFT>}*4*WVe3N8jdxHtF? zeEqw@%fSlxdwBSFgPXw1z#iBDPX#OBVc_22@8Rjc4ZaLM1U?8}23`uD0uF;Bcp&&3 zeEv;9?E8D50RnIy_-FWg;r)f@zX3cBTnN4ak1ss`Yb?Ki1>YBfWpDv_2)GycDE9lW z0lx{Z0_TC-k;{An`~`R$upc+1R)Uk=axr5qv)-7omNV8;`OpEcH)Acucz4EHvWuFr zmUf{un+Vj1nbXOPwRG>08EZ*T%veih^Jc82WlLwQrCT2K`~OeYa?ms*p0M2IP|H#L zqlnMP7x5|bpA@y*K61%!iUb(_Pt?OzQ5>QMj#YR?S+Bi3L6bOKD&zyX7J}i*Sny=- zcU&Z3s**XX8sd}W1Y-p82Aj%G(}HOn^+@$cdP&^O?oc<8a6%_duH+qT^(0}0=>N}! zvAh(1Q~3WIER*?Z`29ZtH-p!M7lV_a3lbnQfjW3FkaGaUCg4xNe*$6~@Ir7Mcm_BG zL`EQI0=yNOz<&V$9$X8a2p$U_3BHM3K+XYp4tN@=+c{sNi8TfmLrwcsR>GX<^&E8tvk4)`%Lh7SNaPv9kB4?GL}8jy1ZL z|A36)3*f`xZQzaI1z;Dn!IQwRf_d-=a1MAN_)F%+3qc#m9JvHc_%P|MLtuitU$79Y zn{Vv;tS;6@+lW$VyjR_AVNUH~8lAMOnkZ2};SO_s)Wh*>vyy3}#8OHPpfc4^nXFf1 zJB6d6N73kj&|Tpx){db``6Q$J-o zA-gQq3+A~tniCckV>?A)vVk3$RWr-FA|gHUaI-?;oY4M^q{u3oGn>;Ab|vpu4t8I6 zq#P%|pIDAP>tN1HcDFZB2x6wBEko~j8Yf$nS*Va~FXZczZ!cD6S`SHiEagc$E5BWUj>Yi!V zy{7R$t*!?vRWSoV&1w|?xg?@Qmg!#8NHc|U(as0fBnm1FmNs>eWcb-w&;-(j$yN~R zb5ud;>3JF?kCz74<`a1=Twu+n)Idp{|IBSSj-&0x7nSj8U{WVk zquWWnqA>(%^=nG9o$BlqD-8;0r#Ui1mvdLCR$BG@Jxnqk9jQswG@3wYX%F)qw$n=1 zPwg~RSNZZZ<3>lETB}Nz0oNuDNHDA62MVT2+Kt!%_KU@YC1DY5Z^_AQLI9Rn@v7t1qp|*SG4gVQ{gsh&S>%O6v0Cwd`tC)95uh&#FTi4o-m7_XmqpMX$<)E6I zNpa$SzL4+_M_xVnLdwOO;9$wRNffBJtOp!7!<)r8$L9_^a)%yG`j)Ku*@OH}ID=|v zFC?CiJpsWTOB3j_Ctk*CJX6p#x|q0QLa<8KV`Vs1q!eP+Zc>;qs@dGjj@*&rsDdcb zgVm*@2Lq=PMP1w6b1!(Ou3c5L#q4fGTZ-itc5SNX&2+5x5DsVLM~B9BQD_9la;}K> zS#J4~vlvPyw48MNd|)a3?xUQD46ONcYav8%}#I$&AB~xNQiM1?C8p2 zDRQ2JDa&l4cel4sxpWxW*r+`<3*U&uJ%PQi8l6LrF6NYh;&AOs)_1@?EBSJV=UT3! zZMN}IS$EPSbZtj4T(~57>=v`ZDUg!S^y!DI$JmT?kG3JJ^FdEy!ev9uD{TcO+;!IA zsh8#k62(epV+mL%%@2$@)Wl|zL)7fiZSK{RoyEgWW6}|CORE2e9WC5b z_&WH1cRv0P;OoT(K+gYrJ8-gqS9ASbZ~{CNEP->uJ;Ar(@5MjhFTp#&+rbUsde8>f zfQy010}g@;cr2NF7OZF<3MBr z{}DVFG{Mt>_!T@3tbm7uhk?()_kSAvE_gk7E_fC=3gmo&gWw$Si{LhR{#(IEfXE15 z0h-|H;7QzeHSmw{@E-^N1snyB0c9`;9tMQ3{|#_8xCoTNqrn{b7-RbakbrBzxj@GI z9>9Lgv|?)J?ZWVVQO_8BUwCCX|wT;P&+BOaRY2ZWE@27#y>8TV}Wsk?PyT`s?Pqs;|IVvpvP`nh8B6HyD z44=%pxzpWS#Fechhs?mL7;{)B5GX)Jkbi2$Lq{zR+gt7xAbvR}sN;g#TVCjiBad*s zWz1rmyr`nyf;Q{u#$KgXF41_m32JvFIi7@Y!-Ld|qp4Zu_o4&5d()`V6Gt#aB&Mez zDHY{oOA3qa#sbVX1x?|1<}Pn%dA-MGT?r+>0G%8!E=`U%B#@6ZHf|K;3Ij#k|6~$F zMOWX!LhC{}n+Sdq&XNoyCiloE=Qp_7g-sGOYYYK#{!*vGTtVs|<+^pFw3zEQBSpwc z376)JmgTDmhgedEwm`}F$?1UQM~J>+KypV_Ne$;Ni#NA&PL`c`+nD*`PiH6$2CXrP zfH(JK=56MC>P9Z3!-IjDVa4n(TjIeg&x91c&u30t$kN?y>uR~(NKPRFOHvivAPT$W zlB)}3hgc|FyUYQ(R}NlSV)}yH>7ThLMW;kc<~U($q^z{?83nTCL=*Z_QqKTo15Qh{ zT3(pjAv=GZVk^~hZP~}ifMf8=tGvLN?RsH@YRdz2e(|AQtgo|CnEsi&LVZ=27R5d^ z^Yl!m7U~j!gP*$5?Mox)m$!%OW!^E*5IHjqGt4X`-OjXyL`h|mOLsQggr?0Mf(y|D z+|=@2+5$H(=l*dP5<8&@S+bzHOE_ARCjzNtKA%b+vP2Uuq#so_${MIUA0#V=DbW=z zb9$H{&KjaNcgZfx6I;nm`jKfUGqTs%(A%LNp}dY$(&aAzT9UJY6k>v2F9-Q(k>+p9H-P3S^hyi52S z>g%~?t*LF&(>X;Xiuon-=55XvD+rk&Yz7t0Ew}miDNAKsU5u@TXET676p0~k*zD~o z@$T)R$roaA57(xO)R0WW$rns=XBBK-07^G63^WyE>zXggjH!4^Npym=FWy>=tH#VZ zW`6R>F~@MBI8&t{G|-XTzxD~oT^P+Z7ePbsgULiM&t6E8Hztm)pobVeWw^NFU0A( z{$CLP9V_ylM`&#+ej{Hx+{B0 z%a;GS?4_Zy@g|&F_Gx;`k*X^x`9GD^e$6;d$2w9qB_;o-lG?9UqkYY=ILd)imj6>J z?^j9bYsoB23d>ZEML*4RU7&OM#A%3Ydw@LJj%I;Cw_qSJm)k@H=SW>ip${xm)hg|n znC_~cU5TT*l247JrI3i1Ls>kQ(IFVW(0EA$f~72=E&;16*?mp!>*`yn6yUd~Y*V4n zhy6P4T`2}hy~Zg$$Z=>>Zan|OwrjX?-mHbw`-c=gdWSlAOUbR`mbE2A(7T;Q!t4_kA9I{tZCv|F^*fKzRIn zfFHx7e;s@cd=7jV2+#jNz#D<^{Bky63p@&Z7ry0Zv2M+>g zfgi%he+J0e0nY&IpbF$S1H_l$pWx}g1l|tb2%ZnF13vgR{JfkWAUgf$fdmN8e-(Hl zxE#pu1uTNQgCD@-zaP8yQ{^P+z!EKE5yTD1X2c8b(w-9ywRT#hw zGap%BjJn$@q+^beNFx+<1(!r-X)X<-G?&IbhBEgJk+AA#%5z<2AY!&%>OFc?Ucu&l zKIQG~+y&iBI`g)n5@W)B{2^KR(hUv|g1J}6bI}hfGh9Nw=-BRjI-^3&#~K1=Gc?$( z7L7~g5>D7gIKWrt%ovWPtGkC%_6g(BrWw*tl2bhEzg%MoOR5sk3OWPxN6!eO_)bD&gOR0gL*+?c*LZs1yf<|d35D=e%MxM zBPS3R{%SzFJz?G%!eiq($Ie!d9Ks2aLwDuetwHAxM%lBq8pLH!MQEBkEdgVfJuEg& ztM5F4L(e_5qQmD^h~dLrf)EIyk%yfDa=-uq3focGJ4}V-0Bku1zSn1C(6{^m?#1r$ z&Prl`-fjvnLl@gpMH+2o?+*vLr};^nQK~z+(=ige5ABgNXqk~B}{lgNk1||83pYnt&|&rEQ$*|T>DmP zZF;5FT&0GU^;rqp{Zjkv*n=A9NyrpL#A}2RYgT~31`MbCntIW%x##%K5OR`;JfRT> zPkDf~bUha;pejfa(ycu?9V8>SkPn@1mwO4Kl3|dEXHB4nlXPi9_>ip}ZMDnJ z@QfIQ4^Lkvpa{h5#)i(wKhLIY8<@-ItV7hJ%w`>XuSk=FDJ>3iYm000gr;dfW*xvq zA%DZQj4IpyWp@0ssTq&9f*E&IzfD&fCZx?7p=@q>^BL{JPG=X1GU7xG23UDH7bf+L z8Uve2Wx`z&N6^{_#$>Z)15KTa}0ILgm~;PCMjS5>fBhJQet6t&zbS zny=8!hAp?9A%i|ZJkIP--B?dvVX?Bd?Ywi_)=a9zPOo5$RmG%I{^8WpCBSj+Nj3Me%4r)o+y1~2l#jz>~o zO!cfKuA0*hs_QkplpR9W5T`O5njw&Oz1E84=Sqh6H?mF1_VK)+$72V|L8)PW`y+2) z23f{LUo+;?t^Ue@xc8G;rR-4)AyycY$(^ErtVC}0qkHcOf@%BK{l5@Oi&%QjyENh# z3-s7Tep;*7Jt+s9TKmXs0J8p%BO~T;0%9v?7_}B%ua$foR&!?8gz5Xn%v2-SHfgNH zGw>HVJjwX~pMqa)!0QVCUsoOwz8*gR-QXthY_JLb6}Sz4{wF|q|965D-~jjny!r;630KpaoXIy@1&9zYB=%zMT8N1Re^$0grwQcqtHl{KeqG;A`;e?*K0b zJD>}m2p$3C+`o^2KL@vf-vz$~PJj&{?Rp38`+e{tAm;$c82}dp5BwNj{G&kh@m=s> z@aOR0F9+8HvAHjS2Z8&7Pr`4%6Wj=n1F^Bc8ay2Q4F39y;AY_X@55Zzf!Nc389rNn zw@+;8F8~h&KRb*50G|T4fY$>3xEU$m!zN85_97->?i7hp)<_QW8D0!C+J)?ji}Ba@ zv_QgTJvBc#CNIL3k|#ebWPX_~6n~%1dHpf2Vz6$19x7kbSbnVW#`DWhOWmQ|7!8i+ z*59g{l3h}Be#lzMR@GV^X;5LLqTJdabTX%yxOYT8nMshzT(hX*PFgZnNx5!Y9t!bn zPs*0U8!Snd+QiWz?yj~)T7TEuVh#Oa&PINQk>4LIc!jJ7%*Fn7=cmO+$AO?x8c@o{ zL2}&nx?5>LuI}=qiCS^3?r6z(wD$5dY5G%vqXhonRXy7b(eH<@94#j|-B1bC-O+)W zMW-+}P|!onAaIypM`CZsZ|cB5BrQ(<;@CI+*~0w^*MKrQWYiW2yIT(|GFr+BA~7G1R6; zf%=&bJ>S^BO?d&7Nxfg2#!~Owrt#GKwJD$4JxXD%yap5Fnj;(4!2y>lQe9%dXx@QY zqU>Vs{PWNEu9Y7fU_;<>Gaxjef?_pTNU*#}u*^uX+(?YMhoQnv*yOzbe$oCwXq9J{ zXH6EOqW$$(u`H6Gh&BJ^_h8l5NbI+B?*>Q@QL5E=o~gZ|WOHa?(<(C;^e-hWui@}&H`7SC&6W;ipTOwdqgo=EigopJx{g zv5-@{5m;hbgDFMkZaSz96(vf=Vq-NO2s#(63U)Z(K#|M#*C}c7S`q#KKfwoo0X|vy ze_m1g`6|5rUxAl`r-AdpKf~vL1^f*V-v4)i`1y;T|5t(h7J%68zYRPcoCW?Ce*Ycd zwO|{FU;mZh;oxWR{9gn&gB!tXz%#)ia31(Ry#E)$7r-mP9+2|@4*-z~ya^lw*MLKy z3PdJQ0NNhgmf6>=2WCAm>w#Gh%z9wf13yPSU^e9D|4fFS?+vbHH#v~t&t&L#K_4)a zp(E|R;?yBI3t%QgpUKdjtbHa!FXR_nS!qRYK(|bnp^L1: do bp and then call osd maxosd times with saved bp outputs +! norder : osd decoding depth +! + integer, parameter:: N=240, K=74, M=N-K + integer*1 cw(N),apmask(N) + integer*1 nxor(N),hdec(N) + integer*1 message74(74),m74(74) + integer nrw(M),ncw + integer Nm(5,M) + integer Mn(3,N) ! 3 checks per bit + integer synd(M) + real tov(3,N) + real toc(5,M) + real tanhtoc(5,M) + real zn(N),zsum(N),zsave(N,3) + real llr(N) + real Tmn + + include "ldpc_240_74_parity.f90" + + maxiterations=30 + nosd=0 + if(maxosd.gt.3) maxosd=3 + if(maxosd.eq.0) then ! osd with channel llrs + nosd=1 + zsave(:,1)=llr + elseif(maxosd.gt.0) then ! + nosd=maxosd + elseif(maxosd.lt.0) then ! just bp + nosd=0 + endif + + toc=0 + tov=0 + tanhtoc=0 +! initialize messages to checks + do j=1,M + do i=1,nrw(j) + toc(i,j)=llr((Nm(i,j))) + enddo + enddo + + ncnt=0 + nclast=0 + zsum=0.0 + do iter=0,maxiterations +! Update bit log likelihood ratios (tov=0 in iteration 0). + do i=1,N + if( apmask(i) .ne. 1 ) then + zn(i)=llr(i)+sum(tov(1:ncw,i)) + else + zn(i)=llr(i) + endif + enddo + zsum=zsum+zn + if(iter.gt.0 .and. iter.le.maxosd) then + zsave(:,iter)=zsum + endif + +! Check to see if we have a codeword (check before we do any iteration). + cw=0 + where( zn .gt. 0. ) cw=1 + ncheck=0 + do i=1,M + synd(i)=sum(cw(Nm(1:nrw(i),i))) + if( mod(synd(i),2) .ne. 0 ) ncheck=ncheck+1 + enddo + if( ncheck .eq. 0 ) then ! we have a codeword - if crc is good, return it + m74=0 + m74(1:74)=cw(1:74) + call get_crc24(m74,74,nbadcrc) + if(nbadcrc.eq.0) then + message74=cw(1:74) + hdec=0 + where(llr .ge. 0) hdec=1 + nxor=ieor(hdec,cw) + nharderror=sum(nxor) + dmin=sum(nxor*abs(llr)) + ntype=1 + return + endif + endif + + if( iter.gt.0 ) then ! this code block implements an early stopping criterion +! if( iter.gt.10000 ) then ! this code block implements an early stopping criterion + nd=ncheck-nclast + if( nd .lt. 0 ) then ! # of unsatisfied parity checks decreased + ncnt=0 ! reset counter + else + ncnt=ncnt+1 + endif +! write(*,*) iter,ncheck,nd,ncnt + if( ncnt .ge. 5 .and. iter .ge. 10 .and. ncheck .gt. 15) then + nharderror=-1 + exit + endif + endif + nclast=ncheck + +! Send messages from bits to check nodes + do j=1,M + do i=1,nrw(j) + ibj=Nm(i,j) + toc(i,j)=zn(ibj) + do kk=1,ncw ! subtract off what the bit had received from the check + if( Mn(kk,ibj) .eq. j ) then + toc(i,j)=toc(i,j)-tov(kk,ibj) + endif + enddo + enddo + enddo + +! send messages from check nodes to variable nodes + do i=1,M + tanhtoc(1:5,i)=tanh(-toc(1:5,i)/2) + enddo + + do j=1,N + do i=1,ncw + ichk=Mn(i,j) ! Mn(:,j) are the checks that include bit j + Tmn=product(tanhtoc(1:nrw(ichk),ichk),mask=Nm(1:nrw(ichk),ichk).ne.j) + call platanh(-Tmn,y) +! y=atanh(-Tmn) + tov(i,j)=2*y + enddo + enddo + + enddo ! bp iterations + + do i=1,nosd + zn=zsave(:,i) + call osd240_74(zn,Keff,apmask,norder,message74,cw,nharderror,dminosd) + if(nharderror.gt.0) then + hdec=0 + where(llr .ge. 0) hdec=1 + nxor=ieor(hdec,cw) + dmin=sum(nxor*abs(llr)) + ntype=2 + return + endif + enddo + + ntype=0 + nharderror=-1 + dminosd=0.0 + + return +end subroutine decode240_74 diff --git a/lib/fst240/encode240_74.f90 b/lib/fst240/encode240_74.f90 new file mode 100644 index 000000000..1d555d17f --- /dev/null +++ b/lib/fst240/encode240_74.f90 @@ -0,0 +1,46 @@ +subroutine encode240_74(message,codeword) + use, intrinsic :: iso_c_binding + use iso_c_binding, only: c_loc,c_size_t + use crc + + integer, parameter:: N=240, K=74, M=N-K + character*24 c24 + integer*1 codeword(N) + integer*1 gen(M,K) + integer*1 message(K) + integer*1 pchecks(M) + integer*4 ncrc24 + include "ldpc_240_74_generator.f90" + logical first + data first/.true./ + save first,gen + + if( first ) then ! fill the generator matrix + gen=0 + do i=1,M + do j=1,19 + read(g(i)(j:j),"(Z1)") istr + ibmax=4 + if(j.eq.19) ibmax=2 + do jj=1, ibmax + icol=(j-1)*4+jj + if( btest(istr,4-jj) ) gen(i,icol)=1 + enddo + enddo + enddo + first=.false. + endif + + do i=1,M + nsum=0 + do j=1,K + nsum=nsum+message(j)*gen(i,j) + enddo + pchecks(i)=mod(nsum,2) + enddo + + codeword(1:K)=message + codeword(K+1:N)=pchecks + + return +end subroutine encode240_74 diff --git a/lib/fst240/genfst240.f90 b/lib/fst240/genfst240.f90 index f60dc8446..adb8d20ec 100644 --- a/lib/fst240/genfst240.f90 +++ b/lib/fst240/genfst240.f90 @@ -71,7 +71,11 @@ subroutine genfst240(msg0,ichk,msgsent,msgbits,i4tone,iwspr) entry get_fst240_tones_from_bits(msgbits,i4tone,iwspr) 2 continue - call encode240_101(msgbits,codeword) + if(iwspr.eq.0) then + call encode240_101(msgbits,codeword) + else + call encode240_74(msgbits(1:74),codeword) + endif ! Grayscale mapping: ! bits tone diff --git a/lib/fst240/ldpc_240_74_generator.f90 b/lib/fst240/ldpc_240_74_generator.f90 new file mode 100644 index 000000000..0cd5db01e --- /dev/null +++ b/lib/fst240/ldpc_240_74_generator.f90 @@ -0,0 +1,170 @@ +character*19 g(166) + +data g/ & + "de8b3201e3c59f55a14", & + "2e06d352ebc5b74c4fc", & + "2e16d6cf5a725c3244c", & + "84f5587edca6d777de4", & + "e152b1e2b5965093ecc", & + "244b4828a2ccf2b5f58", & + "5fbbaade810e123c730", & + "6b7e92a99a918df3d44", & + "bbcec6a63ab757a7278", & + "f5f3f0b89a21ceccdb0", & + "a248c5f1ec2bc816290", & + "c84bbad839a5fe76d0c", & + "ad724129bbf4c7f4570", & + "91adb56e7623a2575cc", & + "cbe995bdf156df2c9e4", & + "92ff6ea492c08c150e0", & + "c4ddbe5a02f6a933384", & + "d2e9befc131dc483858", & + "68567543d1eebcb080c", & + "21fa61d559f9baf6abc", & + "911c4fbbafc72e3db28", & + "7c0b534af4b7d583d50", & + "12ce371b90ee9dfe72c", & + "15a604148872e251ec4", & + "3a3c9f3eb0e0f96edc0", & + "705919ffb636f96b390", & + "43daaaa8163d6bc2bd4", & + "96e11ea798b74b10e98", & + "811150609c9dee8230c", & + "be713f85ab34380f4b0", & + "5a02c4abaaccb8f24c4", & + "67bdebb8863d04768cc", & + "5a449cd90c3dbdfe844", & + "9c7a54d1c4ef7418b84", & + "cd82fefaaf9cd28cd8c", & + "ca47e847fabb0054a38", & + "f0b30cef6aab9e37f98", & + "d948d912fbcc1708710", & + "cce1a7b355053d98270", & + "4cf227c225a9063dd48", & + "2db92612e9ba1418e24", & + "3d215c04c762c3d6a28", & + "77de65500b5624ceb0c", & + "fd1a1df99ded2fb9d88", & + "2a19392c71438410fb8", & + "a9b486a9d26ed579754", & + "b698d244ac78d97a498", & + "3d7975b74d727a5e704", & + "38094225a2bce0e1940", & + "3d3e58fae40fac342b0", & + "7732e839a066e337714", & + "69356c082b7753a47b0", & + "3e868a55dc403a802ac", & + "a0157a14a6bf7fdbbcc", & + "1ab628e11a7ab4a7c44", & + "9da3a2247d7449052f4", & + "199a8a7b114816b97f4", & + "b1c5cde2542061704cc", & + "432fa8d3a153eafbdc8", & + "c4ece7e400d8a89c448", & + "316ecf74e4b983f007c", & + "6a14fa8e713bb5e8adc", & + "da4b957ded8374e3640", & + "0a804dba7c7e4533300", & + "52c342ed033f86580e0", & + "1667da8d6fcf4272470", & + "da2f7038d550fa88d8c", & + "685bcbab1d9dd2c2a44", & + "4c93008b3156b3636bc", & + "726998d6327ac797c3c", & + "44ece7e400d8a8dc448", & + "01f9add00dfe823a948", & + "dbb95f5ce9e371ad720", & + "fc746ee5c76827a8728", & + "b25408029506467f4b4", & + "9b5c9219e21126b7cf8", & + "39ae9f48ba9d1a24f04", & + "7de2699623eb507f938", & + "b9c6e903ee91dd32934", & + "397510d2c6cb5e81de8", & + "20157a14aebf7fdbbec", & + "067f76ea5817a465980", & + "9248f3cea0869feb994", & + "23cde2678004ebe5f80", & + "5b81fe6848f58e3cfa8", & + "a9099ace96bff092904", & + "4afa4b0802b33215438", & + "f4f740396b030360858", & + "fc613f77a35ee1163b8", & + "1a4dc27d7e8cc835ff4", & + "e9b056f153b39def7ec", & + "b62eb777a2f953c7efc", & + "388ae4de514b62d238c", & + "891529af40e85317160", & + "474f1afeb724dbd2ba8", & + "11d70880fd88fdd307c", & + "29f26a3acb76e6a517c", & + "df3e902ff9cadcf776c", & + "e3c42da8445965c09f0", & + "ce277a6aeccc316dc58", & + "4d7841fb71543abd9b8", & + "e63230d2d465fb44750", & + "b6e11fa798b74b14e98", & + "05f189d37c5616547b4", & + "ebdb51a81d1e883baa8", & + "bf5bc736663bcd53ae0", & + "2f8d1cc0936142c08fc", & + "436b22fc36d917b6928", & + "044b482822ccf2b5f58", & + "37b2e839a066e3b7714", & + "2a9b4b765c581f0c51c", & + "10a7d44cecf8e6628dc", & + "ad95f02df6d5502dd4c", & + "bbd34f8afd63deaf564", & + "cabddfeb01fce632788", & + "66b57babeedd6124114", & + "7813e0454fbd462be8c", & + "b6105ed6f01ea621d04", & + "9f68bbcec679d1c088c", & + "673da96e414fc7a0f40", & + "5568adb935e11084abc", & + "f6dd308de5e5c4f6fb0", & + "3b49e80d40ae596c7b4", & + "a3cde2478004ebe5f80", & + "dd8e4f309e919d5ed94", & + "5a4020d387757d7bc28", & + "64f9e02ae32362a255c", & + "630d5942d392334b0dc", & + "0bd7e9f4229b2dee210", & + "bca549a9467d3a2550c", & + "2fef7b1f578c5e28d04", & + "f35e0fdda1be4b3b35c", & + "69ed575e7cc537d2394", & + "7dfdcfbfd5ef3093680", & + "b3b2921af97f251d328", & + "5622d0fe90363522364", & + "fcd4fc7fa04a69d2ac4", & + "1119ea451502ed9ab34", & + "970ee777ec969a41754", & + "688d14f8afec76783dc", & + "4d0b8a1028578407420", & + "d3d2138d9fa268da3e8", & + "df1bdbff898e006394c", & + "8ac478a916bb0b77684", & + "93881997428e2c17a94", & + "4aa510e746245e90c08", & + "e00cb8543f85a5d58b8", & + "9100d8eb74031073044", & + "38710e4235bd1e4003c", & + "6aef311cac4c4dccfd4", & + "58430f577f51c36b3e0", & + "12082fa5d4268a95b4c", & + "7a7435a0aca071e64d0", & + "cd8250ebadc95de15b0", & + "debad40c852e99d64dc", & + "4e6caa5e7c86efef748", & + "a5d4cbb97e726e3c580", & + "7e3a0a2c73ef8553640", & + "b60bfc2fd2bd8f530dc", & + "32dbef097a5f84b0318", & + "4cc7c1cf434300be380", & + "896840945be8eabf7f0", & + "36c9b10ec694819a0a0", & + "349f46a799ef95a47c8", & + "9bdcd4ce2563e560b74", & + "b19fcd7111a335c52ec"/ + diff --git a/lib/fst240/ldpc_240_74_parity.f90 b/lib/fst240/ldpc_240_74_parity.f90 new file mode 100644 index 000000000..6d41fde54 --- /dev/null +++ b/lib/fst240/ldpc_240_74_parity.f90 @@ -0,0 +1,423 @@ +data Mn/ & + 84, 101, 144, & + 10, 14, 138, & + 87, 148, 166, & + 1, 50, 67, & + 2, 53, 74, & + 3, 83, 113, & + 4, 90, 121, & + 5, 63, 128, & + 6, 124, 138, & + 8, 22, 108, & + 11, 28, 159, & + 12, 18, 142, & + 13, 24, 145, & + 15, 131, 149, & + 16, 44, 93, & + 17, 41, 47, & + 19, 37, 129, & + 20, 33, 94, & + 21, 100, 154, & + 23, 71, 141, & + 25, 89, 95, & + 26, 105, 153, & + 27, 36, 58, & + 29, 59, 166, & + 30, 52, 126, & + 31, 61, 77, & + 32, 84, 111, & + 34, 97, 155, & + 38, 98, 127, & + 39, 76, 143, & + 40, 55, 92, & + 42, 147, 158, & + 43, 82, 148, & + 45, 49, 109, & + 46, 70, 86, & + 48, 78, 139, & + 51, 101, 104, & + 54, 63, 96, & + 56, 81, 125, & + 57, 117, 164, & + 60, 75, 107, & + 39, 62, 132, & + 64, 110, 118, & + 24, 65, 146, & + 66, 80, 134, & + 68, 91, 114, & + 69, 123, 162, & + 72, 88, 152, & + 79, 99, 130, & + 85, 112, 124, & + 99, 103, 157, & + 106, 115, 133, & + 116, 120, 140, & + 119, 161, 165, & + 64, 122, 137, & + 34, 89, 135, & + 136, 138, 163, & + 93, 144, 159, & + 35, 130, 150, & + 62, 151, 164, & + 104, 153, 160, & + 1, 106, 166, & + 2, 132, 152, & + 3, 11, 105, & + 4, 18, 160, & + 5, 53, 91, & + 6, 109, 141, & + 7, 111, 113, & + 8, 54, 136, & + 9, 61, 92, & + 10, 40, 101, & + 12, 30, 146, & + 13, 37, 82, & + 14, 29, 95, & + 1, 47, 131, & + 2, 8, 139, & + 3, 58, 130, & + 4, 96, 115, & + 5, 119, 129, & + 6, 60, 148, & + 7, 95, 163, & + 2, 35, 56, & + 9, 67, 79, & + 10, 75, 122, & + 11, 17, 121, & + 12, 137, 145, & + 13, 36, 152, & + 14, 15, 155, & + 15, 134, 143, & + 16, 106, 125, & + 11, 106, 157, & + 18, 99, 118, & + 19, 50, 94, & + 20, 126, 158, & + 21, 41, 135, & + 22, 24, 71, & + 23, 42, 136, & + 22, 109, 161, & + 25, 39, 46, & + 26, 45, 55, & + 27, 77, 82, & + 28, 73, 166, & + 29, 69, 76, & + 30, 108, 150, & + 31, 91, 146, & + 14, 32, 147, & + 33, 35, 107, & + 34, 103, 111, & + 8, 94, 122, & + 13, 70, 151, & + 32, 37, 142, & + 3, 38, 87, & + 25, 51, 92, & + 40, 57, 72, & + 21, 108, 153, & + 23, 26, 142, & + 43, 44, 48, & + 30, 43, 62, & + 7, 45, 154, & + 16, 46, 149, & + 1, 53, 75, & + 33, 44, 160, & + 49, 86, 157, & + 19, 80, 159, & + 51, 116, 138, & + 52, 92, 98, & + 6, 12, 47, & + 54, 83, 101, & + 24, 55, 102, & + 56, 63, 120, & + 17, 57, 82, & + 38, 154, 162, & + 59, 74, 151, & + 53, 144, 164, & + 61, 85, 117, & + 62, 66, 90, & + 48, 113, 145, & + 64, 65, 128, & + 27, 29, 65, & + 58, 63, 134, & + 9, 74, 83, & + 68, 109, 113, & + 41, 61, 69, & + 36, 60, 155, & + 42, 64, 144, & + 40, 90, 130, & + 28, 110, 135, & + 20, 59, 112, & + 70, 110, 124, & + 54, 76, 105, & + 4, 77, 111, & + 78, 104, 143, & + 66, 67, 91, & + 80, 81, 88, & + 50, 101, 132, & + 71, 97, 120, & + 72, 131, 158, & + 84, 133, 141, & + 5, 85, 99, & + 49, 89, 133, & + 87, 132, 140, & + 34, 88, 104, & + 89, 105, 147, & + 6, 76, 102, & + 18, 31, 163, & + 52, 96, 140, & + 93, 102, 165, & + 79, 104, 165, & + 81, 100, 126, & + 95, 121, 152, & + 97, 123, 153, & + 37, 98, 114, & + 8, 91, 155, & + 100, 114, 160, & + 2, 26, 28, & + 93, 116, 150, & + 68, 103, 166, & + 78, 117, 125, & + 86, 107, 127, & + 4, 59, 136, & + 9, 37, 97, & + 7, 30, 75, & + 80, 148, 153, & + 73, 138, 164, & + 10, 39, 103, & + 39, 146, 156, & + 48, 129, 136, & + 5, 17, 51, & + 112, 149, 161, & + 11, 24, 126, & + 1, 70, 78, & + 14, 113, 118, & + 10, 119, 141, & + 13, 33, 105, & + 19, 57, 89, & + 12, 25, 56, & + 16, 18, 54, & + 84, 124, 162, & + 20, 41, 134, & + 15, 45, 82, & + 115, 118, 123, & + 128, 139, 149, & + 127, 156, 159, & + 21, 141, 152, & + 23, 130, 156, & + 3, 160, 164, & + 22, 90, 110, & + 35, 61, 109, & + 31, 87, 158, & + 42, 60, 106, & + 137, 140, 157, & + 27, 114, 124, & + 32, 62, 125, & + 34, 38, 128, & + 40, 123, 139, & + 29, 66, 86, & + 36, 52, 161, & + 43, 63, 133, & + 46, 73, 108, & + 44, 135, 146, & + 47, 115, 127, & + 49, 74, 116, & + 58, 102, 122, & + 55, 85, 132, & + 50, 65, 150, & + 67, 145, 162, & + 53, 71, 77, & + 69, 88, 142, & + 68, 72, 93, & + 9, 64, 95, & + 92, 94, 111, & + 81, 83, 119, & + 98, 143, 163, & + 73, 79, 96, & + 35, 129, 131, & + 99, 100, 151, & + 7, 112, 159, & + 117, 137, 156, & + 120, 147, 154, & + 107, 121, 165/ + +data Nm/ & + 4, 62, 75, 121, 191, & + 5, 63, 76, 82, 175, & + 6, 64, 77, 112, 206, & + 7, 65, 78, 151, 180, & + 8, 66, 79, 159, 188, & + 9, 67, 80, 127, 164, & + 68, 81, 119, 182, 237, & + 10, 69, 76, 109, 173, & + 70, 83, 141, 181, 230, & + 2, 71, 84, 185, 193, & + 11, 64, 85, 91, 190, & + 12, 72, 86, 127, 196, & + 13, 73, 87, 110, 194, & + 2, 74, 88, 106, 192, & + 14, 88, 89, 200, 0, & + 15, 90, 120, 197, 0, & + 16, 85, 131, 188, 0, & + 12, 65, 92, 165, 197, & + 17, 93, 124, 195, 0, & + 18, 94, 148, 199, 0, & + 19, 95, 115, 204, 0, & + 10, 96, 98, 207, 0, & + 20, 97, 116, 205, 0, & + 13, 44, 96, 129, 190, & + 21, 99, 113, 196, 0, & + 22, 100, 116, 175, 0, & + 23, 101, 139, 212, 0, & + 11, 102, 147, 175, 0, & + 24, 74, 103, 139, 216, & + 25, 72, 104, 118, 182, & + 26, 105, 165, 209, 0, & + 27, 106, 111, 213, 0, & + 18, 107, 122, 194, 0, & + 28, 56, 108, 162, 214, & + 59, 82, 107, 208, 235, & + 23, 87, 144, 217, 0, & + 17, 73, 111, 172, 181, & + 29, 112, 132, 214, 0, & + 30, 42, 99, 185, 186, & + 31, 71, 114, 146, 215, & + 16, 95, 143, 199, 0, & + 32, 97, 145, 210, 0, & + 33, 117, 118, 218, 0, & + 15, 117, 122, 220, 0, & + 34, 100, 119, 200, 0, & + 35, 99, 120, 219, 0, & + 16, 75, 127, 221, 0, & + 36, 117, 137, 187, 0, & + 34, 123, 160, 222, 0, & + 4, 93, 155, 225, 0, & + 37, 113, 125, 188, 0, & + 25, 126, 166, 217, 0, & + 5, 66, 121, 134, 227, & + 38, 69, 128, 150, 197, & + 31, 100, 129, 224, 0, & + 39, 82, 130, 196, 0, & + 40, 114, 131, 195, 0, & + 23, 77, 140, 223, 0, & + 24, 133, 148, 180, 0, & + 41, 80, 144, 210, 0, & + 26, 70, 135, 143, 208, & + 42, 60, 118, 136, 213, & + 8, 38, 130, 140, 218, & + 43, 55, 138, 145, 230, & + 44, 138, 139, 225, 0, & + 45, 136, 153, 216, 0, & + 4, 83, 153, 226, 0, & + 46, 142, 177, 229, 0, & + 47, 103, 143, 228, 0, & + 35, 110, 149, 191, 0, & + 20, 96, 156, 227, 0, & + 48, 114, 157, 229, 0, & + 102, 184, 219, 234, 0, & + 5, 133, 141, 222, 0, & + 41, 84, 121, 182, 0, & + 30, 103, 150, 164, 0, & + 26, 101, 151, 227, 0, & + 36, 152, 178, 191, 0, & + 49, 83, 168, 234, 0, & + 45, 124, 154, 183, 0, & + 39, 154, 169, 232, 0, & + 33, 73, 101, 131, 200, & + 6, 128, 141, 232, 0, & + 1, 27, 158, 198, 0, & + 50, 135, 159, 224, 0, & + 35, 123, 179, 216, 0, & + 3, 112, 161, 209, 0, & + 48, 154, 162, 228, 0, & + 21, 56, 160, 163, 195, & + 7, 136, 146, 207, 0, & + 46, 66, 105, 153, 173, & + 31, 70, 113, 126, 231, & + 15, 58, 167, 176, 229, & + 18, 93, 109, 231, 0, & + 21, 74, 81, 170, 230, & + 38, 78, 166, 234, 0, & + 28, 156, 171, 181, 0, & + 29, 126, 172, 233, 0, & + 49, 51, 92, 159, 236, & + 19, 169, 174, 236, 0, & + 1, 37, 71, 128, 155, & + 129, 164, 167, 223, 0, & + 51, 108, 177, 185, 0, & + 37, 61, 152, 162, 168, & + 22, 64, 150, 163, 194, & + 52, 62, 90, 91, 210, & + 41, 107, 179, 240, 0, & + 10, 104, 115, 219, 0, & + 34, 67, 98, 142, 208, & + 43, 147, 149, 207, 0, & + 27, 68, 108, 151, 231, & + 50, 148, 189, 237, 0, & + 6, 68, 137, 142, 192, & + 46, 172, 174, 212, 0, & + 52, 78, 201, 221, 0, & + 53, 125, 176, 222, 0, & + 40, 135, 178, 238, 0, & + 43, 92, 192, 201, 0, & + 54, 79, 193, 232, 0, & + 53, 130, 156, 239, 0, & + 7, 85, 170, 240, 0, & + 55, 84, 109, 223, 0, & + 47, 171, 201, 215, 0, & + 9, 50, 149, 198, 212, & + 39, 90, 178, 213, 0, & + 25, 94, 169, 190, 0, & + 29, 179, 203, 221, 0, & + 8, 138, 202, 214, 0, & + 17, 79, 187, 235, 0, & + 49, 59, 77, 146, 205, & + 14, 75, 157, 235, 0, & + 42, 63, 155, 161, 224, & + 52, 158, 160, 218, 0, & + 45, 89, 140, 199, 0, & + 56, 95, 147, 220, 0, & + 57, 69, 97, 180, 187, & + 55, 86, 211, 238, 0, & + 2, 9, 57, 125, 184, & + 36, 76, 202, 215, 0, & + 53, 161, 166, 211, 0, & + 20, 67, 158, 193, 204, & + 12, 111, 116, 228, 0, & + 30, 89, 152, 233, 0, & + 1, 58, 134, 145, 0, & + 13, 86, 137, 226, 0, & + 44, 72, 105, 186, 220, & + 32, 106, 163, 239, 0, & + 3, 33, 80, 183, 0, & + 14, 120, 189, 202, 0, & + 59, 104, 176, 225, 0, & + 60, 110, 133, 236, 0, & + 48, 63, 87, 170, 204, & + 22, 61, 115, 171, 183, & + 19, 119, 132, 239, 0, & + 28, 88, 144, 173, 0, & + 186, 203, 205, 238, 0, & + 51, 91, 123, 211, 0, & + 32, 94, 157, 209, 0, & + 11, 58, 124, 203, 237, & + 61, 65, 122, 174, 206, & + 54, 98, 189, 217, 0, & + 47, 132, 198, 226, 0, & + 57, 81, 165, 233, 0, & + 40, 60, 134, 184, 206, & + 54, 167, 168, 240, 0, & + 3, 24, 62, 102, 177/ + +data nrw/ & +5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,5,4,4, & +4,4,4,5,4,4,4,4,5,5,4,4,4,5,5,4,5,4,5,5, & +4,4,4,4,4,4,4,4,4,4,4,4,5,5,4,4,4,4,4,4, & +5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, & +4,5,4,4,4,4,4,4,5,4,5,5,5,4,5,4,4,4,5,4, & +5,4,4,5,5,5,4,4,5,4,5,4,5,4,4,4,4,4,4,4, & +4,4,4,5,4,4,4,4,4,5,4,5,4,4,4,5,4,5,4,4, & +5,4,4,4,4,5,4,4,4,4,4,5,5,4,4,4,4,4,5,5, & +4,4,4,5,4,5/ + +ncw=3 + diff --git a/lib/fst240/ldpcsim240_74.f90 b/lib/fst240/ldpcsim240_74.f90 new file mode 100644 index 000000000..743dff34b --- /dev/null +++ b/lib/fst240/ldpcsim240_74.f90 @@ -0,0 +1,125 @@ +program ldpcsim240_74 + +! End-to-end test of the (240,74)/crc24 encoder and decoders. + + use packjt77 + + parameter(N=240, K=74, M=N-K) + character*8 arg + character*37 msg0,msg + character*77 c77 + character*24 c24 + integer*1 msgbits(74) + integer*1 apmask(240) + integer*1 cw(240) + integer*1 codeword(N),message74(74) + integer ncrc24 + real rxdata(N),llr(N) + logical first,unpk77_success + data first/.true./ + + nargs=iargc() + if(nargs.ne.5 .and. nargs.ne.6) then + print*,'Usage: ldpcsim niter ndeep #trials s K [msg]' + print*,'e.g. ldpcsim240_74 20 5 1000 0.85 64 "K9AN K1JT FN20"' + print*,'s : if negative, then value is ignored and sigma is calculated from SNR.' + print*,'niter: is the number of BP iterations.' + print*,'ndeep: -1 is BP only, ndeep>=0 is OSD order' + print*,'K :is the number of message+CRC bits and must be in the range [50,74]' + print*,'WSPR-format message is optional' + return + endif + call getarg(1,arg) + read(arg,*) max_iterations + call getarg(2,arg) + read(arg,*) norder + call getarg(3,arg) + read(arg,*) ntrials + call getarg(4,arg) + read(arg,*) s + call getarg(5,arg) + read(arg,*) Keff + msg0='K9AN K1JT FN20 ' + if(nargs.eq.6) call getarg(6,msg0) + call pack77(msg0,i3,n3,c77) + + rate=real(Keff)/real(N) + + write(*,*) "code rate: ",rate + write(*,*) "niter : ",max_iterations + write(*,*) "norder : ",norder + write(*,*) "s : ",s + write(*,*) "K : ",Keff + + msgbits=0 + read(c77,'(77i1)') msgbits(1:77) + write(*,*) 'message' + write(*,'(77i1)') msgbits(1:77) + + call get_crc24(msgbits,74,ncrc24) + write(c24,'(b24.24)') ncrc24 + read(c24,'(24i1)') msgbits(51:74) +write(*,'(24i1)') msgbits(51:74) + write(*,*) 'message with crc24' + write(*,'(74i1)') msgbits(1:74) + call encode240_74(msgbits,codeword) + call init_random_seed() + call sgran() + + write(*,*) 'codeword' + write(*,'(77i1,1x,24i1,1x,73i1)') codeword + + write(*,*) "Eb/N0 Es/N0 ngood nundetected sigma symbol error rate" + do idb = 8,-3,-1 + db=idb/2.0-1.0 + sigma=1/sqrt( 2*rate*(10**(db/10.0)) ) ! to make db represent Eb/No +! sigma=1/sqrt( 2*(10**(db/10.0)) ) ! db represents Es/No + ngood=0 + nue=0 + nberr=0 + do itrial=1, ntrials +! Create a realization of a noisy received word + do i=1,N + rxdata(i) = 2.0*codeword(i)-1.0 + sigma*gran() + enddo + nerr=0 + do i=1,N + if( rxdata(i)*(2*codeword(i)-1.0) .lt. 0 ) nerr=nerr+1 + enddo + nberr=nberr+nerr + + rxav=sum(rxdata)/N + rx2av=sum(rxdata*rxdata)/N + rxsig=sqrt(rx2av-rxav*rxav) + rxdata=rxdata/rxsig + if( s .lt. 0 ) then + ss=sigma + else + ss=s + endif + + llr=2.0*rxdata/(ss*ss) + apmask=0 + dmin=0.0 + maxosd=2 + call decode240_74(llr, Keff, maxosd, norder, apmask, message74, cw, ntype, nharderror, dmin) + if(nharderror.ge.0) then + n2err=0 + do i=1,N + if( cw(i).ne.codeword(i) ) n2err=n2err+1 + enddo + if(n2err.eq.0) then + ngood=ngood+1 + else + nue=nue+1 + endif + endif + enddo +! snr2500=db+10*log10(200.0/116.0/2500.0) + esn0=db+10*log10(rate) + pberr=real(nberr)/(real(ntrials*N)) + write(*,"(f4.1,4x,f5.1,1x,i8,1x,i8,8x,f5.2,8x,e10.3)") db,esn0,ngood,nue,ss,pberr + + enddo + +end program ldpcsim240_74 diff --git a/lib/fst240/osd240_74.f90 b/lib/fst240/osd240_74.f90 new file mode 100644 index 000000000..a44b69867 --- /dev/null +++ b/lib/fst240/osd240_74.f90 @@ -0,0 +1,403 @@ +subroutine osd240_74(llr,k,apmask,ndeep,message74,cw,nhardmin,dmin) +! +! An ordered-statistics decoder for the (240,74) code. +! Message payload is 50 bits. Any or all of a 24-bit CRC can be +! used for detecting incorrect codewords. The remaining CRC bits are +! cascaded with the LDPC code for the purpose of improving the +! distance spectrum of the code. +! +! If p1 (0.le.p1.le.24) is the number of CRC24 bits that are +! to be used for bad codeword detection, then the argument k should +! be set to 77+p1. +! +! Valid values for k are in the range [50,74]. +! + character*24 c24 + integer, parameter:: N=240 + integer*1 apmask(N),apmaskr(N) + integer*1, allocatable, save :: gen(:,:) + integer*1, allocatable :: genmrb(:,:),g2(:,:) + integer*1, allocatable :: temp(:),m0(:),me(:),mi(:),misub(:),e2sub(:),e2(:),ui(:) + integer*1, allocatable :: r2pat(:) + integer indices(N),nxor(N) + integer*1 cw(N),ce(N),c0(N),hdec(N) + integer*1, allocatable :: decoded(:) + integer*1 message74(74) + integer indx(N) + real llr(N),rx(N),absrx(N) + + logical first,reset + data first/.true./ + save first + + allocate( genmrb(k,N), g2(N,k) ) + allocate( temp(k), m0(k), me(k), mi(k), misub(k), e2sub(N-k), e2(N-k), ui(N-k) ) + allocate( r2pat(N-k), decoded(k) ) + + if( first ) then ! fill the generator matrix +! +! Create generator matrix for partial CRC cascaded with LDPC code. +! +! Let p2=74-k and p1+p2=24. +! +! The last p2 bits of the CRC24 are cascaded with the LDPC code. +! +! The first p1=k-50 CRC24 bits will be used for error detection. +! + allocate( gen(k,N) ) + gen=0 + do i=1,k + message74=0 + message74(i)=1 + if(i.le.50) then + call get_crc24(message74,74,ncrc24) + write(c24,'(b24.24)') ncrc24 + read(c24,'(24i1)') message74(51:74) + message74(51:k)=0 + endif + call encode240_74(message74,cw) + gen(i,:)=cw + enddo + + first=.false. + endif + + rx=llr + apmaskr=apmask + +! Hard decisions on the received word. + hdec=0 + where(rx .ge. 0) hdec=1 + +! Use magnitude of received symbols as a measure of reliability. + absrx=abs(rx) + call indexx(absrx,N,indx) + +! Re-order the columns of the generator matrix in order of decreasing reliability. + do i=1,N + genmrb(1:k,i)=gen(1:k,indx(N+1-i)) + indices(i)=indx(N+1-i) + enddo + +! Do gaussian elimination to create a generator matrix with the most reliable +! received bits in positions 1:k in order of decreasing reliability (more or less). + do id=1,k ! diagonal element indices + do icol=id,k+20 ! The 20 is ad hoc - beware + iflag=0 + if( genmrb(id,icol) .eq. 1 ) then + iflag=1 + if( icol .ne. id ) then ! reorder column + temp(1:k)=genmrb(1:k,id) + genmrb(1:k,id)=genmrb(1:k,icol) + genmrb(1:k,icol)=temp(1:k) + itmp=indices(id) + indices(id)=indices(icol) + indices(icol)=itmp + endif + do ii=1,k + if( ii .ne. id .and. genmrb(ii,id) .eq. 1 ) then + genmrb(ii,1:N)=ieor(genmrb(ii,1:N),genmrb(id,1:N)) + endif + enddo + exit + endif + enddo + enddo + + g2=transpose(genmrb) + +! The hard decisions for the k MRB bits define the order 0 message, m0. +! Encode m0 using the modified generator matrix to find the "order 0" codeword. +! Flip various combinations of bits in m0 and re-encode to generate a list of +! codewords. Return the member of the list that has the smallest Euclidean +! distance to the received word. + + hdec=hdec(indices) ! hard decisions from received symbols + m0=hdec(1:k) ! zero'th order message + absrx=absrx(indices) + rx=rx(indices) + apmaskr=apmaskr(indices) + + call mrbencode74(m0,c0,g2,N,k) + nxor=ieor(c0,hdec) + nhardmin=sum(nxor) + dmin=sum(nxor*absrx) + + cw=c0 + ntotal=0 + nrejected=0 + npre1=0 + npre2=0 + + if(ndeep.eq.0) goto 998 ! norder=0 + if(ndeep.gt.6) ndeep=6 + if( ndeep.eq. 1) then + nord=1 + npre1=0 + npre2=0 + nt=40 + ntheta=12 + elseif(ndeep.eq.2) then + nord=1 + npre1=1 + npre2=0 + nt=40 + ntheta=12 + elseif(ndeep.eq.3) then + nord=1 + npre1=1 + npre2=1 + nt=40 + ntheta=12 + ntau=14 + elseif(ndeep.eq.4) then + nord=2 + npre1=1 + npre2=1 + nt=40 + ntheta=12 + ntau=17 + elseif(ndeep.eq.5) then + nord=3 + npre1=1 + npre2=1 + nt=40 + ntheta=12 + ntau=15 + elseif(ndeep.eq.6) then + nord=4 + npre1=1 + npre2=1 + nt=95 + ntheta=12 + ntau=15 + endif + + do iorder=1,nord + misub(1:k-iorder)=0 + misub(k-iorder+1:k)=1 + iflag=k-iorder+1 + do while(iflag .ge.0) + if(iorder.eq.nord .and. npre1.eq.0) then + iend=iflag + else + iend=1 + endif + d1=0. + do n1=iflag,iend,-1 + mi=misub + mi(n1)=1 + if(any(iand(apmaskr(1:k),mi).eq.1)) cycle + ntotal=ntotal+1 + me=ieor(m0,mi) + if(n1.eq.iflag) then + call mrbencode74(me,ce,g2,N,k) + e2sub=ieor(ce(k+1:N),hdec(k+1:N)) + e2=e2sub + nd1kpt=sum(e2sub(1:nt))+1 + d1=sum(ieor(me(1:k),hdec(1:k))*absrx(1:k)) + else + e2=ieor(e2sub,g2(k+1:N,n1)) + nd1kpt=sum(e2(1:nt))+2 + endif + if(nd1kpt .le. ntheta) then + call mrbencode74(me,ce,g2,N,k) + nxor=ieor(ce,hdec) + if(n1.eq.iflag) then + dd=d1+sum(e2sub*absrx(k+1:N)) + else + dd=d1+ieor(ce(n1),hdec(n1))*absrx(n1)+sum(e2*absrx(k+1:N)) + endif + if( dd .lt. dmin ) then + dmin=dd + cw=ce + nhardmin=sum(nxor) + nd1kptbest=nd1kpt + endif + else + nrejected=nrejected+1 + endif + enddo +! Get the next test error pattern, iflag will go negative +! when the last pattern with weight iorder has been generated. + call nextpat74(misub,k,iorder,iflag) + enddo + enddo + + if(npre2.eq.1) then + reset=.true. + ntotal=0 + do i1=k,1,-1 + do i2=i1-1,1,-1 + ntotal=ntotal+1 + mi(1:ntau)=ieor(g2(k+1:k+ntau,i1),g2(k+1:k+ntau,i2)) + call boxit74(reset,mi(1:ntau),ntau,ntotal,i1,i2) + enddo + enddo + + ncount2=0 + ntotal2=0 + reset=.true. +! Now run through again and do the second pre-processing rule + misub(1:k-nord)=0 + misub(k-nord+1:k)=1 + iflag=k-nord+1 + do while(iflag .ge.0) + me=ieor(m0,misub) + call mrbencode74(me,ce,g2,N,k) + e2sub=ieor(ce(k+1:N),hdec(k+1:N)) + do i2=0,ntau + ntotal2=ntotal2+1 + ui=0 + if(i2.gt.0) ui(i2)=1 + r2pat=ieor(e2sub,ui) +778 continue + call fetchit74(reset,r2pat(1:ntau),ntau,in1,in2) + if(in1.gt.0.and.in2.gt.0) then + ncount2=ncount2+1 + mi=misub + mi(in1)=1 + mi(in2)=1 + if(sum(mi).lt.nord+npre1+npre2.or.any(iand(apmaskr(1:k),mi).eq.1)) cycle + me=ieor(m0,mi) + call mrbencode74(me,ce,g2,N,k) + nxor=ieor(ce,hdec) + dd=sum(nxor*absrx) + if( dd .lt. dmin ) then + dmin=dd + cw=ce + nhardmin=sum(nxor) + endif + goto 778 + endif + enddo + call nextpat74(misub,k,nord,iflag) + enddo + endif + +998 continue +! Re-order the codeword to [message bits][parity bits] format. + cw(indices)=cw + hdec(indices)=hdec + message74=cw(1:74) + call get_crc24(message74,74,nbadcrc) + if(nbadcrc.ne.0) nhardmin=-nhardmin + + return +end subroutine osd240_74 + +subroutine mrbencode74(me,codeword,g2,N,K) + integer*1 me(K),codeword(N),g2(N,K) +! fast encoding for low-weight test patterns + codeword=0 + do i=1,K + if( me(i) .eq. 1 ) then + codeword=ieor(codeword,g2(1:N,i)) + endif + enddo + return +end subroutine mrbencode74 + +subroutine nextpat74(mi,k,iorder,iflag) + integer*1 mi(k),ms(k) +! generate the next test error pattern + ind=-1 + do i=1,k-1 + if( mi(i).eq.0 .and. mi(i+1).eq.1) ind=i + enddo + if( ind .lt. 0 ) then ! no more patterns of this order + iflag=ind + return + endif + ms=0 + ms(1:ind-1)=mi(1:ind-1) + ms(ind)=1 + ms(ind+1)=0 + if( ind+1 .lt. k ) then + nz=iorder-sum(ms) + ms(k-nz+1:k)=1 + endif + mi=ms + do i=1,k ! iflag will point to the lowest-index 1 in mi + if(mi(i).eq.1) then + iflag=i + exit + endif + enddo + return +end subroutine nextpat74 + +subroutine boxit74(reset,e2,ntau,npindex,i1,i2) + integer*1 e2(1:ntau) + integer indexes(5000,2),fp(0:525000),np(5000) + logical reset + common/boxes/indexes,fp,np + + if(reset) then + patterns=-1 + fp=-1 + np=-1 + sc=-1 + indexes=-1 + reset=.false. + endif + + indexes(npindex,1)=i1 + indexes(npindex,2)=i2 + ipat=0 + do i=1,ntau + if(e2(i).eq.1) then + ipat=ipat+ishft(1,ntau-i) + endif + enddo + + ip=fp(ipat) ! see what's currently stored in fp(ipat) + if(ip.eq.-1) then + fp(ipat)=npindex + else + do while (np(ip).ne.-1) + ip=np(ip) + enddo + np(ip)=npindex + endif + return +end subroutine boxit74 + +subroutine fetchit74(reset,e2,ntau,i1,i2) + integer indexes(5000,2),fp(0:525000),np(5000) + integer lastpat + integer*1 e2(ntau) + logical reset + common/boxes/indexes,fp,np + save lastpat,inext + + if(reset) then + lastpat=-1 + reset=.false. + endif + + ipat=0 + do i=1,ntau + if(e2(i).eq.1) then + ipat=ipat+ishft(1,ntau-i) + endif + enddo + index=fp(ipat) + + if(lastpat.ne.ipat .and. index.gt.0) then ! return first set of indices + i1=indexes(index,1) + i2=indexes(index,2) + inext=np(index) + elseif(lastpat.eq.ipat .and. inext.gt.0) then + i1=indexes(inext,1) + i2=indexes(inext,2) + inext=np(inext) + else + i1=-1 + i2=-1 + inext=-1 + endif + lastpat=ipat + return +end subroutine fetchit74 + diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 85038769f..745f2c68e 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -154,7 +154,7 @@ contains hmod=2**nsubmode if(nfqso+nqsoprogress.eq.-999) return Keff=91 - iwspr=0 + iwspr=1 nmax=15*12000 single_decode=iand(nexp_decode,32).eq.32 if(ntrperiod.eq.15) then @@ -413,6 +413,11 @@ contains if(ndepth.eq.1) ntmax=nblock apmask=0 + if(iwspr.eq.1) then + nblock=4 + ntmax=nblock + endif + do itry=1,ntmax if(itry.eq.1) llr=llra if(itry.eq.2.and.itry.le.nblock) llr=llrb @@ -471,8 +476,10 @@ contains else maxosd=2 call timer('d240_74 ',0) -! call decode240_74(llr,Keff,maxosd,norder,apmask,message74,cw, & -! ntype,nharderrors,dmin) + Keff=64 + norder=4 + call decode240_74(llr,Keff,maxosd,norder,apmask,message74,cw, & + ntype,nharderrors,dmin) call timer('d240_74 ',1) endif if(nharderrors .ge.0) then @@ -694,7 +701,8 @@ write(21,'(i6,7i6,f7.1,f9.2,3f7.1,1x,a37)') & enddo call pctile(s2(ina+hmod*3:inb-hmod*3),inb-ina+1-hmod*6,30,base) s2=s2/base !Normalize wrt noise level - thresh=1.25 !First candidate threshold +! thresh=1.25 + thresh=1.15 !First candidate threshold ncand=0 candidates=0 From d7448347e5be78710f18e739caaf64ad38df117e Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 30 Jun 2020 15:11:36 -0400 Subject: [PATCH 187/520] Install a basic framework for handling FST240W decodes. --- lib/decoder.f90 | 9 ++++++--- lib/fst240_decode.f90 | 13 +++++++------ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 0266dc2a6..261591f3f 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -194,12 +194,13 @@ subroutine multimode_decoder(ss,id2,params,nfsample) params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & params%nsubmode,params%ndepth,params%ntr,params%nexp_decode, & params%ntol,params%nzhsym,params%emedelay, & - logical(params%lapcqonly),params%napwid,mycall,hiscall) + logical(params%lapcqonly),params%napwid,mycall,hiscall, & + params%nfsplit,iwspr) call timer('dec240 ',1) go to 800 endif - rms=sqrt(dot_product(float(id2(300000:310000)), & + rms=sqrt(dot_product(float(id2(300000:310000)), & float(id2(300000:310000)))/10000.0) if(rms.lt.2.0) go to 800 @@ -681,7 +682,7 @@ contains end subroutine ft4_decoded subroutine fst240_decoded (this,nutc,sync,nsnr,dt,freq,decoded,nap, & - qual,ntrperiod) + qual,ntrperiod,lwspr) use fst240_decode implicit none @@ -696,6 +697,8 @@ contains integer, intent(in) :: nap real, intent(in) :: qual integer, intent(in) :: ntrperiod + logical, intent(in) :: lwspr + character*2 annot character*37 decoded0 diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 5c5d07838..232912ca0 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -8,7 +8,7 @@ module fst240_decode abstract interface subroutine fst240_decode_callback (this,nutc,sync,nsnr,dt,freq, & - decoded,nap,qual,ntrperiod) + decoded,nap,qual,ntrperiod,lwspr) import fst240_decoder implicit none class(fst240_decoder), intent(inout) :: this @@ -21,6 +21,7 @@ module fst240_decode integer, intent(in) :: nap real, intent(in) :: qual integer, intent(in) :: ntrperiod + logical, intent(in) :: lwspr end subroutine fst240_decode_callback end interface @@ -28,7 +29,7 @@ contains subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfqso, & nfa,nfb,nsubmode,ndeep,ntrperiod,nexp_decode,ntol,nzhsym, & - emedelay,lapcqonly,napwid,mycall,hiscall) + emedelay,lapcqonly,napwid,mycall,hiscall,nfsplit,iwspr) use timer_module, only: timer use packjt77 @@ -62,7 +63,7 @@ contains integer mcq(29),mrrr(19),m73(19),mrr73(19) logical badsync,unpk77_success,single_decode - logical first,nohiscall + logical first,nohiscall,lwspr integer*2 iwave(300*12000) @@ -503,10 +504,10 @@ contains nsnr=nint(xsnr) qual=0. fsig=fc_synced - 1.5*hmod*baud -write(21,'(i6,7i6,f7.1,f9.2,3f7.1,1x,a37)') & - nutc,icand,itry,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg +!write(21,'(i6,7i6,f7.1,f9.2,3f7.1,1x,a37)') & +! nutc,icand,itry,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,x!dt,fsig,msg call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & - iaptype,qual,ntrperiod) + iaptype,qual,ntrperiod,lwspr) goto 2002 else cycle From 630ef640ac2bf801fee078b07c476416d6af2d45 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 30 Jun 2020 15:06:18 -0500 Subject: [PATCH 188/520] First cut at joint QSO/WSPR type decoding for FST240. --- lib/fst240_decode.f90 | 1319 +++++++++++++++++++++-------------------- 1 file changed, 671 insertions(+), 648 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index f899f544c..c82c18e14 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -1,99 +1,100 @@ module fst240_decode - type :: fst240_decoder - procedure(fst240_decode_callback), pointer :: callback + type :: fst240_decoder + procedure(fst240_decode_callback), pointer :: callback contains - procedure :: decode - end type fst240_decoder + procedure :: decode + end type fst240_decoder - abstract interface - subroutine fst240_decode_callback (this,nutc,sync,nsnr,dt,freq, & - decoded,nap,qual,ntrperiod,lwspr) - import fst240_decoder - implicit none - class(fst240_decoder), intent(inout) :: this - integer, intent(in) :: nutc - real, intent(in) :: sync - integer, intent(in) :: nsnr - real, intent(in) :: dt - real, intent(in) :: freq - character(len=37), intent(in) :: decoded - integer, intent(in) :: nap - real, intent(in) :: qual - integer, intent(in) :: ntrperiod - logical, intent(in) :: lwspr - end subroutine fst240_decode_callback - end interface + abstract interface + subroutine fst240_decode_callback (this,nutc,sync,nsnr,dt,freq, & + decoded,nap,qual,ntrperiod,lwspr) + import fst240_decoder + implicit none + class(fst240_decoder), intent(inout) :: this + integer, intent(in) :: nutc + real, intent(in) :: sync + integer, intent(in) :: nsnr + real, intent(in) :: dt + real, intent(in) :: freq + character(len=37), intent(in) :: decoded + integer, intent(in) :: nap + real, intent(in) :: qual + integer, intent(in) :: ntrperiod + logical, intent(in) :: lwspr + end subroutine fst240_decode_callback + end interface contains - subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfqso, & + subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfqso, & nfa,nfb,nsubmode,ndeep,ntrperiod,nexp_decode,ntol,nzhsym, & emedelay,lapcqonly,napwid,mycall,hiscall,nfsplit,iwspr) - use timer_module, only: timer - use packjt77 - include 'fst240/fst240_params.f90' - parameter (MAXCAND=100) - class(fst240_decoder), intent(inout) :: this - procedure(fst240_decode_callback) :: callback - character*37 decodes(100) - character*37 msg,msgsent - character*77 c77 - character*12 mycall,hiscall - character*12 mycall0,hiscall0 - complex, allocatable :: c2(:) - complex, allocatable :: cframe(:) - complex, allocatable :: c_bigfft(:) !Complex waveform - real, allocatable :: r_data(:) - real llr(240),llra(240),llrb(240),llrc(240),llrd(240) - real candidates(100,4) - real bitmetrics(320,4) - real s4(0:3,NN) - logical lapcqonly - integer itone(NN) - integer hmod - integer*1 apmask(240),cw(240) - integer*1 hbits(320) - integer*1 message101(101),message74(74),message77(77) - integer*1 rvec(77) - integer apbits(240) - integer nappasses(0:5) ! # of decoding passes for QSO states 0-5 - integer naptypes(0:5,4) ! (nQSOProgress,decoding pass) - integer mcq(29),mrrr(19),m73(19),mrr73(19) + use timer_module, only: timer + use packjt77 + include 'fst240/fst240_params.f90' + parameter (MAXCAND=100) + class(fst240_decoder), intent(inout) :: this + procedure(fst240_decode_callback) :: callback + character*37 decodes(100) + character*37 msg,msgsent + character*77 c77 + character*12 mycall,hiscall + character*12 mycall0,hiscall0 + complex, allocatable :: c2(:) + complex, allocatable :: cframe(:) + complex, allocatable :: c_bigfft(:) !Complex waveform + real, allocatable :: r_data(:) + real llr(240),llra(240),llrb(240),llrc(240),llrd(240) + real candidates(100,4) + real bitmetrics(320,4) + real s4(0:3,NN) + real minsync + logical lapcqonly + integer itone(NN) + integer hmod + integer*1 apmask(240),cw(240) + integer*1 hbits(320) + integer*1 message101(101),message74(74),message77(77) + integer*1 rvec(77) + integer apbits(240) + integer nappasses(0:5) ! # of decoding passes for QSO states 0-5 + integer naptypes(0:5,4) ! (nQSOProgress,decoding pass) + integer mcq(29),mrrr(19),m73(19),mrr73(19) - logical badsync,unpk77_success,single_decode - logical first,nohiscall,lwspr + logical badsync,unpk77_success,single_decode + logical first,nohiscall,lwspr - integer*2 iwave(300*12000) + integer*2 iwave(300*12000) - data mcq/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0/ - data mrrr/0,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,1/ - data m73/0,1,1,1,1,1,1,0,1,0,0,1,0,1,0,0,0,0,1/ - data mrr73/0,1,1,1,1,1,1,0,0,1,1,1,0,1,0,1,0,0,1/ - data rvec/0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,0, & - 1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, & - 0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/ - data first/.true./ - save first,apbits,nappasses,naptypes,mycall0,hiscall0 + data mcq/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0/ + data mrrr/0,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,1/ + data m73/0,1,1,1,1,1,1,0,1,0,0,1,0,1,0,0,0,0,1/ + data mrr73/0,1,1,1,1,1,1,0,0,1,1,1,0,1,0,1,0,0,1/ + data rvec/0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,0, & + 1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, & + 0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/ + data first/.true./ + save first,apbits,nappasses,naptypes,mycall0,hiscall0 - this%callback => callback + this%callback => callback - dxcall13=hiscall ! initialize for use in packjt77 - mycall13=mycall + dxcall13=hiscall ! initialize for use in packjt77 + mycall13=mycall - if(first) then - mcq=2*mod(mcq+rvec(1:29),2)-1 - mrrr=2*mod(mrrr+rvec(59:77),2)-1 - m73=2*mod(m73+rvec(59:77),2)-1 - mrr73=2*mod(mrr73+rvec(59:77),2)-1 + if(first) then + mcq=2*mod(mcq+rvec(1:29),2)-1 + mrrr=2*mod(mrrr+rvec(59:77),2)-1 + m73=2*mod(m73+rvec(59:77),2)-1 + mrr73=2*mod(mrr73+rvec(59:77),2)-1 - nappasses(0)=2 - nappasses(1)=2 - nappasses(2)=2 - nappasses(3)=2 - nappasses(4)=2 - nappasses(5)=3 + nappasses(0)=2 + nappasses(1)=2 + nappasses(2)=2 + nappasses(3)=2 + nappasses(4)=2 + nappasses(5)=3 ! iaptype !------------------------ @@ -105,632 +106,654 @@ contains ! 6 MyCall DxCall RR73 (77 ap bits) !******** - naptypes(0,1:4)=(/1,2,0,0/) ! Tx6 selected (CQ) - naptypes(1,1:4)=(/2,3,0,0/) ! Tx1 - naptypes(2,1:4)=(/2,3,0,0/) ! Tx2 - naptypes(3,1:4)=(/3,6,0,0/) ! Tx3 - naptypes(4,1:4)=(/3,6,0,0/) ! Tx4 - naptypes(5,1:4)=(/3,1,2,0/) ! Tx5 + naptypes(0,1:4)=(/1,2,0,0/) ! Tx6 selected (CQ) + naptypes(1,1:4)=(/2,3,0,0/) ! Tx1 + naptypes(2,1:4)=(/2,3,0,0/) ! Tx2 + naptypes(3,1:4)=(/3,6,0,0/) ! Tx3 + naptypes(4,1:4)=(/3,6,0,0/) ! Tx4 + naptypes(5,1:4)=(/3,1,2,0/) ! Tx5 - mycall0='' - hiscall0='' - first=.false. - endif - - l1=index(mycall,char(0)) - if(l1.ne.0) mycall(l1:)=" " - l1=index(hiscall,char(0)) - if(l1.ne.0) hiscall(l1:)=" " - if(mycall.ne.mycall0 .or. hiscall.ne.hiscall0) then - apbits=0 - apbits(1)=99 - apbits(30)=99 - - if(len(trim(mycall)) .lt. 3) go to 10 - - nohiscall=.false. - hiscall0=hiscall - if(len(trim(hiscall0)).lt.3) then - hiscall0=mycall ! use mycall for dummy hiscall - mycall won't be hashed. - nohiscall=.true. + mycall0='' + hiscall0='' + first=.false. endif - msg=trim(mycall)//' '//trim(hiscall0)//' RR73' - i3=-1 - n3=-1 - call pack77(msg,i3,n3,c77) - call unpack77(c77,1,msgsent,unpk77_success) - if(i3.ne.1 .or. (msg.ne.msgsent) .or. .not.unpk77_success) go to 10 - read(c77,'(77i1)') message77 - message77=mod(message77+rvec,2) - call encode174_91(message77,cw) - apbits=2*cw-1 - if(nohiscall) apbits(30)=99 -10 continue - mycall0=mycall - hiscall0=hiscall - endif + l1=index(mycall,char(0)) + if(l1.ne.0) mycall(l1:)=" " + l1=index(hiscall,char(0)) + if(l1.ne.0) hiscall(l1:)=" " + if(mycall.ne.mycall0 .or. hiscall.ne.hiscall0) then + apbits=0 + apbits(1)=99 + apbits(30)=99 + + if(len(trim(mycall)) .lt. 3) go to 10 + + nohiscall=.false. + hiscall0=hiscall + if(len(trim(hiscall0)).lt.3) then + hiscall0=mycall ! use mycall for dummy hiscall - mycall won't be hashed. + nohiscall=.true. + endif + msg=trim(mycall)//' '//trim(hiscall0)//' RR73' + i3=-1 + n3=-1 + call pack77(msg,i3,n3,c77) + call unpack77(c77,1,msgsent,unpk77_success) + if(i3.ne.1 .or. (msg.ne.msgsent) .or. .not.unpk77_success) go to 10 + read(c77,'(77i1)') message77 + message77=mod(message77+rvec,2) + call encode174_91(message77,cw) + apbits=2*cw-1 + if(nohiscall) apbits(30)=99 + +10 continue + mycall0=mycall + hiscall0=hiscall + endif !************************************ - hmod=2**nsubmode - if(nfqso+nqsoprogress.eq.-999) return - Keff=91 - iwspr=1 - nmax=15*12000 - single_decode=iand(nexp_decode,32).eq.32 - if(ntrperiod.eq.15) then - nsps=720 + hmod=2**nsubmode + if(nfqso+nqsoprogress.eq.-999) return + Keff=91 + iwspr=1 nmax=15*12000 - ndown=18/hmod !nss=40,80,160,400 - if(hmod.eq.4) ndown=4 - if(hmod.eq.8) ndown=2 - nfft1=int(nmax/ndown)*ndown - else if(ntrperiod.eq.30) then - nsps=1680 - nmax=30*12000 - ndown=42/hmod !nss=40,80,168,336 - nfft1=359856 - if(hmod.eq.4) then - ndown=10 - nfft1=nmax + single_decode=iand(nexp_decode,32).eq.32 + if(ntrperiod.eq.15) then + nsps=720 + nmax=15*12000 + ndown=18/hmod !nss=40,80,160,400 + if(hmod.eq.4) ndown=4 + if(hmod.eq.8) ndown=2 + nfft1=int(nmax/ndown)*ndown + else if(ntrperiod.eq.30) then + nsps=1680 + nmax=30*12000 + ndown=42/hmod !nss=40,80,168,336 + nfft1=359856 + if(hmod.eq.4) then + ndown=10 + nfft1=nmax + endif + if(hmod.eq.8) then + ndown=5 + nfft1=nmax + endif + else if(ntrperiod.eq.60) then + nsps=3888 + nmax=60*12000 + ndown=96/hmod !nss=36,81,162,324 + if(hmod.eq.1) ndown=108 + nfft1=int(719808/ndown)*ndown + else if(ntrperiod.eq.120) then + nsps=8200 + nmax=120*12000 + ndown=200/hmod !nss=40,82,164,328 + if(hmod.eq.1) ndown=205 + nfft1=int(nmax/ndown)*ndown + else if(ntrperiod.eq.300) then + nsps=21504 + nmax=300*12000 + ndown=512/hmod !nss=42,84,168,336 + nfft1=int((nmax-200)/ndown)*ndown + end if + nss=nsps/ndown + fs=12000.0 !Sample rate + fs2=fs/ndown + nspsec=nint(fs2) + dt=1.0/fs !Sample interval (s) + dt2=1.0/fs2 + tt=nsps*dt !Duration of "itone" symbols (s) + baud=1.0/tt + sigbw=4.0*hmod*baud + nfft2=nfft1/ndown !make sure that nfft1 is exactly nfft2*ndown + nfft1=nfft2*ndown + nh1=nfft1/2 + + allocate( r_data(1:nfft1+2) ) + allocate( c_bigfft(0:nfft1/2) ) + + allocate( c2(0:nfft2-1) ) + allocate( cframe(0:160*nss-1) ) + + + if(ndeep.eq.3) then + nblock=1 + if(hmod.eq.1) nblock=4 ! number of block sizes to try + jittermax=2 + norder=3 + elseif(ndeep.eq.2) then + nblock=1 + if(hmod.eq.1) nblock=3 + jittermax=0 + norder=3 + elseif(ndeep.eq.1) then + nblock=1 + jittermax=0 + norder=3 endif - if(hmod.eq.8) then - ndown=5 - nfft1=nmax - endif - else if(ntrperiod.eq.60) then - nsps=3888 - nmax=60*12000 - ndown=96/hmod !nss=36,81,162,324 - if(hmod.eq.1) ndown=108 - nfft1=int(719808/ndown)*ndown - else if(ntrperiod.eq.120) then - nsps=8200 - nmax=120*12000 - ndown=200/hmod !nss=40,82,164,328 - if(hmod.eq.1) ndown=205 - nfft1=int(nmax/ndown)*ndown - else if(ntrperiod.eq.300) then - nsps=21504 - nmax=300*12000 - ndown=512/hmod !nss=42,84,168,336 - nfft1=int((nmax-200)/ndown)*ndown - end if - nss=nsps/ndown - fs=12000.0 !Sample rate - fs2=fs/ndown - nspsec=nint(fs2) - dt=1.0/fs !Sample interval (s) - dt2=1.0/fs2 - tt=nsps*dt !Duration of "itone" symbols (s) - baud=1.0/tt - sigbw=4.0*hmod*baud - nfft2=nfft1/ndown !make sure that nfft1 is exactly nfft2*ndown - nfft1=nfft2*ndown - nh1=nfft1/2 - allocate( r_data(1:nfft1+2) ) - allocate( c_bigfft(0:nfft1/2) ) - - allocate( c2(0:nfft2-1) ) - allocate( cframe(0:160*nss-1) ) - - if(single_decode) then - fa=max(100,nint(nfqso+1.5*hmod*baud-ntol)) - fb=min(4800,nint(nfqso+1.5*hmod*baud+ntol)) - else - fa=max(100,nfa) - fb=min(4800,nfb) - endif - - if(ndeep.eq.3) then - nblock=1 - if(hmod.eq.1) nblock=4 ! number of block sizes to try - jittermax=2 - norder=3 - elseif(ndeep.eq.2) then - nblock=1 - if(hmod.eq.1) nblock=3 - jittermax=0 - norder=3 - elseif(ndeep.eq.1) then - nblock=1 - jittermax=0 - norder=3 - endif - -! The big fft is done once and is used for calculating the smoothed spectrum +! The big fft is done once and is used for calculating the smoothed spectrum ! and also for downconverting/downsampling each candidate. - r_data(1:nfft1)=iwave(1:nfft1) - r_data(nfft1+1:nfft1+2)=0.0 - call four2a(r_data,nfft1,1,-1,0) - c_bigfft=cmplx(r_data(1:nfft1+2:2),r_data(2:nfft1+2:2)) + r_data(1:nfft1)=iwave(1:nfft1) + r_data(nfft1+1:nfft1+2)=0.0 + call four2a(r_data,nfft1,1,-1,0) + c_bigfft=cmplx(r_data(1:nfft1+2:2),r_data(2:nfft1+2:2)) + + if(iwspr.eq.0) then + itype1=1 + itype2=1 + elseif( iwspr.eq.1 ) then + itype1=2 + itype2=2 + elseif( iwspr.eq.2 ) then + itype1=1 + itype2=2 + endif + + do iqorw=itype1,itype2 ! iqorw=1 for QSO mode and iqorw=2 for wspr-type messages + if( iwspr.lt.2 ) then + if( single_decode ) then + fa=max(100,nint(nfqso+1.5*hmod*baud-ntol)) + fb=min(4800,nint(nfqso+1.5*hmod*baud+ntol)) + else + fa=max(100,nfa) + fb=min(4800,nfb) + endif + elseif( iwspr.eq.2 .and. iqorw.eq.1 ) then + fa=max(100,nfa) + fb=nfsplit + elseif( iwspr.eq.2 .and. iqorw.eq.2 ) then + fa=nfsplit + fb=min(4800,nfb) + endif + + minsync=1.25 + if(iqorw.eq.2) then + minsync=1.2 + endif ! Get first approximation of candidate frequencies - call get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & - ncand,candidates,base) + call get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & + minsync,ncand,candidates,base) - ndecodes=0 - decodes=' ' + ndecodes=0 + decodes=' ' - isbest1=0 - isbest8=0 - fc21=0. - fc28=0. - do icand=1,ncand - fc0=candidates(icand,1) - detmet=candidates(icand,2) + isbest1=0 + isbest8=0 + fc21=0. + fc28=0. + do icand=1,ncand + fc0=candidates(icand,1) + detmet=candidates(icand,2) ! Downconvert and downsample a slice of the spectrum centered on the ! rough estimate of the candidates frequency. ! Output array c2 is complex baseband sampled at 12000/ndown Sa/sec. ! The size of the downsampled c2 array is nfft2=nfft1/ndown - call fst240_downsample(c_bigfft,nfft1,ndown,fc0,sigbw,c2) + call fst240_downsample(c_bigfft,nfft1,ndown,fc0,sigbw,c2) - call timer('sync240 ',0) - do isync=0,1 - if(isync.eq.0) then - fc1=0.0 - if(emedelay.lt.0.1) then ! search offsets from 0 s to 2 s - is0=1.5*nspsec - ishw=1.5*nspsec - else ! search plus or minus 1.5 s centered on emedelay - is0=nint(emedelay*nspsec) - ishw=1.5*nspsec - endif - isst=4*hmod - ifhw=12 - df=.1*baud - else if(isync.eq.1) then - fc1=fc21 - if(hmod.eq.1) fc1=fc28 - is0=isbest1 - if(hmod.eq.1) is0=isbest8 - ishw=4*hmod - isst=1*hmod - ifhw=7 - df=.02*baud - endif - - smax1=0.0 - smax8=0.0 - do if=-ifhw,ifhw - fc=fc1+df*if - do istart=max(1,is0-ishw),is0+ishw,isst - call sync_fst240(c2,istart,fc,hmod,1,nfft2,nss,fs2,sync1) - call sync_fst240(c2,istart,fc,hmod,8,nfft2,nss,fs2,sync8) - if(sync8.gt.smax8) then - fc28=fc - isbest8=istart - smax8=sync8 + call timer('sync240 ',0) + do isync=0,1 + if(isync.eq.0) then + fc1=0.0 + if(emedelay.lt.0.1) then ! search offsets from 0 s to 2 s + is0=1.5*nspsec + ishw=1.5*nspsec + else ! search plus or minus 1.5 s centered on emedelay + is0=nint(emedelay*nspsec) + ishw=1.5*nspsec + endif + isst=4*hmod + ifhw=12 + df=.1*baud + else if(isync.eq.1) then + fc1=fc21 + if(hmod.eq.1) fc1=fc28 + is0=isbest1 + if(hmod.eq.1) is0=isbest8 + ishw=4*hmod + isst=1*hmod + ifhw=7 + df=.02*baud endif - if(sync1.gt.smax1) then - fc21=fc - isbest1=istart - smax1=sync1 + + smax1=0.0 + smax8=0.0 + do if=-ifhw,ifhw + fc=fc1+df*if + do istart=max(1,is0-ishw),is0+ishw,isst + call sync_fst240(c2,istart,fc,hmod,1,nfft2,nss,fs2,sync1) + call sync_fst240(c2,istart,fc,hmod,8,nfft2,nss,fs2,sync8) + if(sync8.gt.smax8) then + fc28=fc + isbest8=istart + smax8=sync8 + endif + if(sync1.gt.smax1) then + fc21=fc + isbest1=istart + smax1=sync1 + endif + enddo + enddo + enddo + call timer('sync240 ',1) + + if(smax8/smax1 .lt. 0.65 ) then + fc2=fc21 + isbest=isbest1 + njitter=2 + else + fc2=fc28 + isbest=isbest8 + njitter=2 + endif + fc_synced = fc0 + fc2 + dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 + candidates(icand,3)=fc_synced + candidates(icand,4)=isbest + enddo + +! remove duplicate candidates + do icand=1,ncand + fc=candidates(icand,3) + isbest=nint(candidates(icand,4)) + do ic2=1,ncand + fc2=candidates(ic2,3) + isbest2=nint(candidates(ic2,4)) + if(ic2.ne.icand .and. fc2.gt.0.0) then + if(abs(fc2-fc).lt.0.10*baud) then ! same frequency + if(abs(isbest2-isbest).le.2) then + candidates(ic2,3)=-1 + endif + endif endif enddo enddo - enddo - call timer('sync240 ',1) - if(smax8/smax1 .lt. 0.65 ) then - fc2=fc21 - isbest=isbest1 - njitter=2 - else - fc2=fc28 - isbest=isbest8 - njitter=2 - endif - fc_synced = fc0 + fc2 - dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 - candidates(icand,3)=fc_synced - candidates(icand,4)=isbest - enddo - -! remove duplicate candidates - do icand=1,ncand - fc=candidates(icand,3) - isbest=nint(candidates(icand,4)) - do ic2=1,ncand - fc2=candidates(ic2,3) - isbest2=nint(candidates(ic2,4)) - if(ic2.ne.icand .and. fc2.gt.0.0) then - if(abs(fc2-fc).lt.0.10*baud) then ! same frequency - if(abs(isbest2-isbest).le.2) then - candidates(ic2,3)=-1 - endif + ic=0 + do icand=1,ncand + if(candidates(icand,3).gt.0) then + ic=ic+1 + candidates(ic,:)=candidates(icand,:) endif - endif - enddo - enddo + enddo + ncand=ic + xsnr=0. - ic=0 - do icand=1,ncand - if(candidates(icand,3).gt.0) then - ic=ic+1 - candidates(ic,:)=candidates(icand,:) - endif - enddo - ncand=ic - xsnr=0. + do icand=1,ncand + sync=candidates(icand,2) + fc_synced=candidates(icand,3) + isbest=nint(candidates(icand,4)) + xdt=(isbest-nspsec)/fs2 + if(ntrperiod.eq.15) xdt=(isbest-real(nspsec)/2.0)/fs2 + call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) - do icand=1,ncand - sync=candidates(icand,2) - fc_synced=candidates(icand,3) - isbest=nint(candidates(icand,4)) - xdt=(isbest-nspsec)/fs2 - if(ntrperiod.eq.15) xdt=(isbest-real(nspsec)/2.0)/fs2 - call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) + do ijitter=0,jittermax + if(ijitter.eq.0) ioffset=0 + if(ijitter.eq.1) ioffset=1 + if(ijitter.eq.2) ioffset=-1 + is0=isbest+ioffset + if(is0.lt.0) cycle + cframe=c2(is0:is0+160*nss-1) + bitmetrics=0 + call get_fst240_bitmetrics(cframe,nss,hmod,nblock,bitmetrics,s4,badsync) + if(badsync) cycle - do ijitter=0,jittermax - if(ijitter.eq.0) ioffset=0 - if(ijitter.eq.1) ioffset=1 - if(ijitter.eq.2) ioffset=-1 - is0=isbest+ioffset - if(is0.lt.0) cycle - cframe=c2(is0:is0+160*nss-1) - bitmetrics=0 - call get_fst240_bitmetrics(cframe,nss,hmod,nblock,bitmetrics,s4,badsync) - if(badsync) cycle + hbits=0 + where(bitmetrics(:,1).ge.0) hbits=1 + ns1=count(hbits( 1: 16).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + ns2=count(hbits( 77: 92).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) + ns3=count(hbits(153:168).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + ns4=count(hbits(229:244).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) + ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + nsync_qual=ns1+ns2+ns3+ns4+ns5 + if(nsync_qual.lt. 44) cycle !### Value ?? ### - hbits=0 - where(bitmetrics(:,1).ge.0) hbits=1 - ns1=count(hbits( 1: 16).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) - ns2=count(hbits( 77: 92).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) - ns3=count(hbits(153:168).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) - ns4=count(hbits(229:244).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) - ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) - nsync_qual=ns1+ns2+ns3+ns4+ns5 - if(nsync_qual.lt. 44) cycle !### Value ?? ### + scalefac=2.83 + llra( 1: 60)=bitmetrics( 17: 76, 1) + llra( 61:120)=bitmetrics( 93:152, 1) + llra(121:180)=bitmetrics(169:228, 1) + llra(181:240)=bitmetrics(245:304, 1) + llra=scalefac*llra + llrb( 1: 60)=bitmetrics( 17: 76, 2) + llrb( 61:120)=bitmetrics( 93:152, 2) + llrb(121:180)=bitmetrics(169:228, 2) + llrb(181:240)=bitmetrics(245:304, 2) + llrb=scalefac*llrb + llrc( 1: 60)=bitmetrics( 17: 76, 3) + llrc( 61:120)=bitmetrics( 93:152, 3) + llrc(121:180)=bitmetrics(169:228, 3) + llrc(181:240)=bitmetrics(245:304, 3) + llrc=scalefac*llrc + llrd( 1: 60)=bitmetrics( 17: 76, 4) + llrd( 61:120)=bitmetrics( 93:152, 4) + llrd(121:180)=bitmetrics(169:228, 4) + llrd(181:240)=bitmetrics(245:304, 4) + llrd=scalefac*llrd - scalefac=2.83 - llra( 1: 60)=bitmetrics( 17: 76, 1) - llra( 61:120)=bitmetrics( 93:152, 1) - llra(121:180)=bitmetrics(169:228, 1) - llra(181:240)=bitmetrics(245:304, 1) - llra=scalefac*llra - llrb( 1: 60)=bitmetrics( 17: 76, 2) - llrb( 61:120)=bitmetrics( 93:152, 2) - llrb(121:180)=bitmetrics(169:228, 2) - llrb(181:240)=bitmetrics(245:304, 2) - llrb=scalefac*llrb - llrc( 1: 60)=bitmetrics( 17: 76, 3) - llrc( 61:120)=bitmetrics( 93:152, 3) - llrc(121:180)=bitmetrics(169:228, 3) - llrc(181:240)=bitmetrics(245:304, 3) - llrc=scalefac*llrc - llrd( 1: 60)=bitmetrics( 17: 76, 4) - llrd( 61:120)=bitmetrics( 93:152, 4) - llrd(121:180)=bitmetrics(169:228, 4) - llrd(181:240)=bitmetrics(245:304, 4) - llrd=scalefac*llrd - - apmag=maxval(abs(llra))*1.1 - ntmax=nblock+nappasses(nQSOProgress) - if(lapcqonly) ntmax=nblock+1 - if(ndepth.eq.1) ntmax=nblock - apmask=0 - - if(iwspr.eq.1) then - nblock=4 - ntmax=nblock - endif - - do itry=1,ntmax - if(itry.eq.1) llr=llra - if(itry.eq.2.and.itry.le.nblock) llr=llrb - if(itry.eq.3.and.itry.le.nblock) llr=llrc - if(itry.eq.4.and.itry.le.nblock) llr=llrd - if(itry.le.nblock) then + apmag=maxval(abs(llra))*1.1 + ntmax=nblock+nappasses(nQSOProgress) + if(lapcqonly) ntmax=nblock+1 + if(ndepth.eq.1) ntmax=nblock apmask=0 - iaptype=0 - endif - napwid=1.2*(4.0*baud*hmod) - - if(itry.gt.nblock) then - if(nblock.eq.1) llr=llra - if(nblock.gt.1) llr=llrc - iaptype=naptypes(nQSOProgress,itry-nblock) - if(lapcqonly) iaptype=1 - if(iaptype.ge.2 .and. apbits(1).gt.1) cycle ! No, or nonstandard, mycall - if(iaptype.ge.3 .and. apbits(30).gt.1) cycle ! No, or nonstandard, dxcall - if(iaptype.eq.1) then ! CQ - apmask=0 - apmask(1:29)=1 - llr(1:29)=apmag*mcq(1:29) - endif - - if(iaptype.eq.2) then ! MyCall ??? ??? - apmask=0 - apmask(1:29)=1 - llr(1:29)=apmag*apbits(1:29) - endif - - if(iaptype.eq.3) then ! MyCall DxCall ??? - apmask=0 - apmask(1:58)=1 - llr(1:58)=apmag*apbits(1:58) + + if(iqorw.eq.2) then ! 50-bit msgs, no ap decoding + nblock=4 + ntmax=nblock endif - if(iaptype.eq.4 .or. iaptype.eq.5 .or. iaptype .eq.6) then - apmask=0 - apmask(1:77)=1 - llr(1:58)=apmag*apbits(1:58) - if(iaptype.eq.4) llr(59:77)=apmag*mrrr(1:19) - if(iaptype.eq.5) llr(59:77)=apmag*m73(1:19) - if(iaptype.eq.6) llr(59:77)=apmag*mrr73(1:19) - endif - endif - - dmin=0.0 - nharderrors=-1 - unpk77_success=.false. - if(iwspr.eq.0) then - maxosd=2 - call timer('d240_101',0) - call decode240_101(llr,Keff,maxosd,norder,apmask,message101, & - cw,ntype,nharderrors,dmin) - call timer('d240_101',1) - else - maxosd=2 - call timer('d240_74 ',0) - Keff=64 - norder=4 - call decode240_74(llr,Keff,maxosd,norder,apmask,message74,cw, & - ntype,nharderrors,dmin) - call timer('d240_74 ',1) - endif - if(nharderrors .ge.0) then - if(iwspr.eq.0) then - write(c77,'(77i1)') mod(message101(1:77)+rvec,2) - call unpack77(c77,0,msg,unpk77_success) - else - write(c77,'(50i1)') message74(1:50) - c77(51:77)='000000000000000000000110000' - call unpack77(c77,0,msg,unpk77_success) - endif - if(unpk77_success) then - idupe=0 - do i=1,ndecodes - if(decodes(i).eq.msg) idupe=1 - enddo - if(idupe.eq.1) exit - ndecodes=ndecodes+1 - decodes(ndecodes)=msg - if(iwspr.eq.0) then - call get_fst240_tones_from_bits(message101,itone,iwspr) - xsig=0 - do i=1,NN - xsig=xsig+s4(itone(i),i)**2 - enddo - arg=400.0*(xsig/base)-1.0 - if(arg.gt.0.0) then - xsnr=10*log10(arg)-21.0-11.7*log10(nsps/800.0) - else - xsnr=-99.9 + do itry=1,ntmax + if(itry.eq.1) llr=llra + if(itry.eq.2.and.itry.le.nblock) llr=llrb + if(itry.eq.3.and.itry.le.nblock) llr=llrc + if(itry.eq.4.and.itry.le.nblock) llr=llrd + if(itry.le.nblock) then + apmask=0 + iaptype=0 + endif + napwid=1.2*(4.0*baud*hmod) + + if(itry.gt.nblock) then + if(nblock.eq.1) llr=llra + if(nblock.gt.1) llr=llrc + iaptype=naptypes(nQSOProgress,itry-nblock) + if(lapcqonly) iaptype=1 + if(iaptype.ge.2 .and. apbits(1).gt.1) cycle ! No, or nonstandard, mycall + if(iaptype.ge.3 .and. apbits(30).gt.1) cycle ! No, or nonstandard, dxcall + if(iaptype.eq.1) then ! CQ + apmask=0 + apmask(1:29)=1 + llr(1:29)=apmag*mcq(1:29) + endif + + if(iaptype.eq.2) then ! MyCall ??? ??? + apmask=0 + apmask(1:29)=1 + llr(1:29)=apmag*apbits(1:29) + endif + + if(iaptype.eq.3) then ! MyCall DxCall ??? + apmask=0 + apmask(1:58)=1 + llr(1:58)=apmag*apbits(1:58) + endif + + if(iaptype.eq.4 .or. iaptype.eq.5 .or. iaptype .eq.6) then + apmask=0 + apmask(1:77)=1 + llr(1:58)=apmag*apbits(1:58) + if(iaptype.eq.4) llr(59:77)=apmag*mrrr(1:19) + if(iaptype.eq.5) llr(59:77)=apmag*m73(1:19) + if(iaptype.eq.6) llr(59:77)=apmag*mrr73(1:19) endif endif - nsnr=nint(xsnr) - qual=0. - fsig=fc_synced - 1.5*hmod*baud + + dmin=0.0 + nharderrors=-1 + unpk77_success=.false. + if(iqorw.eq.1) then + maxosd=2 + norder=3 + call timer('d240_101',0) + call decode240_101(llr,Keff,maxosd,norder,apmask,message101, & + cw,ntype,nharderrors,dmin) + call timer('d240_101',1) + elseif(iqorw.eq.2) then + maxosd=2 + call timer('d240_74 ',0) + Keff=64 + norder=4 + call decode240_74(llr,Keff,maxosd,norder,apmask,message74,cw, & + ntype,nharderrors,dmin) + call timer('d240_74 ',1) + endif + if(nharderrors .ge.0) then + if(iqor2.eq.1) then + write(c77,'(77i1)') mod(message101(1:77)+rvec,2) + call unpack77(c77,0,msg,unpk77_success) + else + write(c77,'(50i1)') message74(1:50) + c77(51:77)='000000000000000000000110000' + call unpack77(c77,0,msg,unpk77_success) + endif + if(unpk77_success) then + idupe=0 + do i=1,ndecodes + if(decodes(i).eq.msg) idupe=1 + enddo + if(idupe.eq.1) exit + ndecodes=ndecodes+1 + decodes(ndecodes)=msg + + call get_fst240_tones_from_bits(message101,itone,iwspr) + xsig=0 + do i=1,NN + xsig=xsig+s4(itone(i),i)**2 + enddo + arg=400.0*(xsig/base)-1.0 + if(arg.gt.0.0) then + xsnr=10*log10(arg)-21.0-11.7*log10(nsps/800.0) + else + xsnr=-99.9 + endif + endif + nsnr=nint(xsnr) + qual=0. + fsig=fc_synced - 1.5*hmod*baud !write(21,'(i6,7i6,f7.1,f9.2,3f7.1,1x,a37)') & ! nutc,icand,itry,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,x!dt,fsig,msg - call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & - iaptype,qual,ntrperiod,lwspr) - goto 2002 - else - cycle - endif - endif - enddo ! metrics - enddo ! istart jitter -2002 continue - enddo !candidate list!ws + call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & + iaptype,qual,ntrperiod,lwspr) + goto 2002 + endif + enddo ! metrics + enddo ! istart jitter +2002 continue + enddo !candidate list + enddo ! iqorw - return - end subroutine decode + return + end subroutine decode - subroutine sync_fst240(cd0,i0,f0,hmod,ncoh,np,nss,fs,sync) + subroutine sync_fst240(cd0,i0,f0,hmod,ncoh,np,nss,fs,sync) ! Compute sync power for a complex, downsampled FST240 signal. - include 'fst240/fst240_params.f90' - complex cd0(0:np-1) - complex, allocatable, save :: csync1(:),csync2(:) - complex, allocatable, save :: csynct1(:),csynct2(:) - complex ctwk(8*nss) - complex z1,z2,z3,z4,z5 - logical first - integer hmod,isyncword1(0:7),isyncword2(0:7) - real f0save - data isyncword1/0,1,3,2,1,0,2,3/ - data isyncword2/2,3,1,0,3,2,0,1/ - data first/.true./,f0save/-99.9/,nss0/-1/ - save first,twopi,dt,fac,f0save,nss0 - p(z1)=(real(z1*fac)**2 + aimag(z1*fac)**2)**0.5 !Compute power + include 'fst240/fst240_params.f90' + complex cd0(0:np-1) + complex, allocatable, save :: csync1(:),csync2(:) + complex, allocatable, save :: csynct1(:),csynct2(:) + complex ctwk(8*nss) + complex z1,z2,z3,z4,z5 + logical first + integer hmod,isyncword1(0:7),isyncword2(0:7) + real f0save + data isyncword1/0,1,3,2,1,0,2,3/ + data isyncword2/2,3,1,0,3,2,0,1/ + data first/.true./,f0save/-99.9/,nss0/-1/ + save first,twopi,dt,fac,f0save,nss0 + p(z1)=(real(z1*fac)**2 + aimag(z1*fac)**2)**0.5 !Compute power - if(nss.ne.nss0 .and. allocated(csync1)) deallocate(csync1,csync2,csynct1,csynct2) - if(first .or. nss.ne.nss0) then - allocate( csync1(8*nss), csync2(8*nss) ) - allocate( csynct1(8*nss), csynct2(8*nss) ) - twopi=8.0*atan(1.0) - dt=1/fs - k=1 - phi1=0.0 - phi2=0.0 - do i=0,7 - dphi1=twopi*hmod*(isyncword1(i)-1.5)/real(nss) - dphi2=twopi*hmod*(isyncword2(i)-1.5)/real(nss) - do j=1,nss - csync1(k)=cmplx(cos(phi1),sin(phi1)) - csync2(k)=cmplx(cos(phi2),sin(phi2)) - phi1=mod(phi1+dphi1,twopi) - phi2=mod(phi2+dphi2,twopi) - k=k+1 + if(nss.ne.nss0 .and. allocated(csync1)) deallocate(csync1,csync2,csynct1,csynct2) + if(first .or. nss.ne.nss0) then + allocate( csync1(8*nss), csync2(8*nss) ) + allocate( csynct1(8*nss), csynct2(8*nss) ) + twopi=8.0*atan(1.0) + dt=1/fs + k=1 + phi1=0.0 + phi2=0.0 + do i=0,7 + dphi1=twopi*hmod*(isyncword1(i)-1.5)/real(nss) + dphi2=twopi*hmod*(isyncword2(i)-1.5)/real(nss) + do j=1,nss + csync1(k)=cmplx(cos(phi1),sin(phi1)) + csync2(k)=cmplx(cos(phi2),sin(phi2)) + phi1=mod(phi1+dphi1,twopi) + phi2=mod(phi2+dphi2,twopi) + k=k+1 + enddo enddo - enddo - first=.false. - nss0=nss - fac=1.0/(8.0*nss) - endif - - if(f0.ne.f0save) then - dphi=twopi*f0*dt - phi=0.0 - do i=1,8*nss - ctwk(i)=cmplx(cos(phi),sin(phi)) - phi=mod(phi+dphi,twopi) - enddo - csynct1=ctwk*csync1 - csynct2=ctwk*csync2 - f0save=f0 - endif - - i1=i0 !Costas arrays - i2=i0+38*nss - i3=i0+76*nss - i4=i0+114*nss - i5=i0+152*nss - - s1=0.0 - s2=0.0 - s3=0.0 - s4=0.0 - s5=0.0 - - nsec=8/ncoh - do i=1,nsec - is=(i-1)*ncoh*nss - z1=0 - if(i1+is.ge.1) then - z1=sum(cd0(i1+is:i1+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) + first=.false. + nss0=nss + fac=1.0/(8.0*nss) endif - z2=sum(cd0(i2+is:i2+is+ncoh*nss-1)*conjg(csynct2(is+1:is+ncoh*nss))) - z3=sum(cd0(i3+is:i3+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) - z4=sum(cd0(i4+is:i4+is+ncoh*nss-1)*conjg(csynct2(is+1:is+ncoh*nss))) - z5=0 - if(i5+is+ncoh*nss-1.le.np) then - z5=sum(cd0(i5+is:i5+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) + + if(f0.ne.f0save) then + dphi=twopi*f0*dt + phi=0.0 + do i=1,8*nss + ctwk(i)=cmplx(cos(phi),sin(phi)) + phi=mod(phi+dphi,twopi) + enddo + csynct1=ctwk*csync1 + csynct2=ctwk*csync2 + f0save=f0 endif - s1=s1+abs(z1)/(8*nss) - s2=s2+abs(z2)/(8*nss) - s3=s3+abs(z3)/(8*nss) - s4=s4+abs(z4)/(8*nss) - s5=s5+abs(z5)/(8*nss) - enddo - sync = s1+s2+s3+s4+s5 - return - end subroutine sync_fst240 + i1=i0 !Costas arrays + i2=i0+38*nss + i3=i0+76*nss + i4=i0+114*nss + i5=i0+152*nss - subroutine fst240_downsample(c_bigfft,nfft1,ndown,f0,sigbw,c1) + s1=0.0 + s2=0.0 + s3=0.0 + s4=0.0 + s5=0.0 + + nsec=8/ncoh + do i=1,nsec + is=(i-1)*ncoh*nss + z1=0 + if(i1+is.ge.1) then + z1=sum(cd0(i1+is:i1+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) + endif + z2=sum(cd0(i2+is:i2+is+ncoh*nss-1)*conjg(csynct2(is+1:is+ncoh*nss))) + z3=sum(cd0(i3+is:i3+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) + z4=sum(cd0(i4+is:i4+is+ncoh*nss-1)*conjg(csynct2(is+1:is+ncoh*nss))) + z5=0 + if(i5+is+ncoh*nss-1.le.np) then + z5=sum(cd0(i5+is:i5+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) + endif + s1=s1+abs(z1)/(8*nss) + s2=s2+abs(z2)/(8*nss) + s3=s3+abs(z3)/(8*nss) + s4=s4+abs(z4)/(8*nss) + s5=s5+abs(z5)/(8*nss) + enddo + sync = s1+s2+s3+s4+s5 + + return + end subroutine sync_fst240 + + subroutine fst240_downsample(c_bigfft,nfft1,ndown,f0,sigbw,c1) ! Output: Complex data in c(), sampled at 12000/ndown Hz - complex c_bigfft(0:nfft1/2) - complex c1(0:nfft1/ndown-1) + complex c_bigfft(0:nfft1/2) + complex c1(0:nfft1/ndown-1) - df=12000.0/nfft1 - i0=nint(f0/df) - ih=nint( ( f0 + 1.3*sigbw/2.0 )/df) - nbw=ih-i0+1 - c1=0. - c1(0)=c_bigfft(i0) - nfft2=nfft1/ndown - do i=1,nbw - if(i0+i.le.nfft1/2) c1(i)=c_bigfft(i0+i) - if(i0-i.ge.0) c1(nfft2-i)=c_bigfft(i0-i) - enddo - c1=c1/nfft2 - call four2a(c1,nfft2,1,1,1) !c2c FFT back to time domain - return - - end subroutine fst240_downsample - - subroutine get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & - ncand,candidates,base) - - complex c_bigfft(0:nfft1/2) !Full length FFT of raw data - integer hmod !Modulation index (submode) - integer im(1) !For maxloc - real candidates(100,4) !Candidate list - real s(18000) !Low resolution power spectrum - real s2(18000) !CCF of s() with 4 tones - real xdb(-3:3) !Model 4-tone CCF peaks - data xdb/0.25,0.50,0.75,1.0,0.75,0.50,0.25/ - data nfft1z/-1/ - save nfft1z - - nh1=nfft1/2 - df1=fs/nfft1 - baud=fs/nsps !Keying rate - df2=baud/2.0 - nd=df2/df1 !s() sums this many bins of big FFT - ndh=nd/2 - ia=nint(max(100.0,fa)/df2) !Low frequency search limit - ib=nint(min(4800.0,fb)/df2) !High frequency limit - signal_bw=4*(12000.0/nsps)*hmod - analysis_bw=min(4800.0,fb)-max(100.0,fa) - noise_bw=10.0*signal_bw !Is this a good compromise? - if(analysis_bw.gt.noise_bw) then - ina=ia - inb=ib - else - fcenter=(fa+fb)/2.0 !If noise_bw > analysis_bw, - fl = max(100.0,fcenter-noise_bw/2.)/df2 !we'll search over noise_bw - fh = min(4800.0,fcenter+noise_bw/2.)/df2 - ina=nint(fl) - inb=nint(fh) - endif - - s=0. !Compute low-resloution power spectrum - do i=ina,inb ! noise analysis window includes signal analysis window - j0=nint(i*df2/df1) - do j=j0-ndh,j0+ndh - s(i)=s(i) + real(c_bigfft(j))**2 + aimag(c_bigfft(j))**2 + df=12000.0/nfft1 + i0=nint(f0/df) + ih=nint( ( f0 + 1.3*sigbw/2.0 )/df) + nbw=ih-i0+1 + c1=0. + c1(0)=c_bigfft(i0) + nfft2=nfft1/ndown + do i=1,nbw + if(i0+i.le.nfft1/2) c1(i)=c_bigfft(i0+i) + if(i0-i.ge.0) c1(nfft2-i)=c_bigfft(i0-i) enddo - enddo - - ina=max(ina,1+3*hmod) !Don't run off the ends - inb=min(inb,18000-3*hmod) - s2=0. - do i=ina,inb !Compute CCF of s() and 4 tones - s2(i)=s(i-hmod*3) + s(i-hmod) +s(i+hmod) +s(i+hmod*3) - enddo - call pctile(s2(ina+hmod*3:inb-hmod*3),inb-ina+1-hmod*6,30,base) - s2=s2/base !Normalize wrt noise level -! thresh=1.25 - thresh=1.15 !First candidate threshold + c1=c1/nfft2 + call four2a(c1,nfft2,1,1,1) !c2c FFT back to time domain + return - ncand=0 - candidates=0 - if(ia.lt.3) ia=3 - if(ib.gt.18000-2) ib=18000-2 + end subroutine fst240_downsample + + subroutine get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & + minsync,ncand,candidates,base) + + complex c_bigfft(0:nfft1/2) !Full length FFT of raw data + integer hmod !Modulation index (submode) + integer im(1) !For maxloc + real candidates(100,4) !Candidate list + real s(18000) !Low resolution power spectrum + real s2(18000) !CCF of s() with 4 tones + real xdb(-3:3) !Model 4-tone CCF peaks + real minsync + data xdb/0.25,0.50,0.75,1.0,0.75,0.50,0.25/ + + nh1=nfft1/2 + df1=fs/nfft1 + baud=fs/nsps !Keying rate + df2=baud/2.0 + nd=df2/df1 !s() sums this many bins of big FFT + ndh=nd/2 + ia=nint(max(100.0,fa)/df2) !Low frequency search limit + ib=nint(min(4800.0,fb)/df2) !High frequency limit + signal_bw=4*(12000.0/nsps)*hmod + analysis_bw=min(4800.0,fb)-max(100.0,fa) + noise_bw=10.0*signal_bw !Is this a good compromise? + if(analysis_bw.gt.noise_bw) then + ina=ia + inb=ib + else + fcenter=(fa+fb)/2.0 !If noise_bw > analysis_bw, + fl = max(100.0,fcenter-noise_bw/2.)/df2 !we'll search over noise_bw + fh = min(4800.0,fcenter+noise_bw/2.)/df2 + ina=nint(fl) + inb=nint(fh) + endif + + s=0. !Compute low-resloution power spectrum + do i=ina,inb ! noise analysis window includes signal analysis window + j0=nint(i*df2/df1) + do j=j0-ndh,j0+ndh + s(i)=s(i) + real(c_bigfft(j))**2 + aimag(c_bigfft(j))**2 + enddo + enddo + + ina=max(ina,1+3*hmod) !Don't run off the ends + inb=min(inb,18000-3*hmod) + s2=0. + do i=ina,inb !Compute CCF of s() and 4 tones + s2(i)=s(i-hmod*3) + s(i-hmod) +s(i+hmod) +s(i+hmod*3) + enddo + call pctile(s2(ina+hmod*3:inb-hmod*3),inb-ina+1-hmod*6,30,base) + s2=s2/base !Normalize wrt noise level + + ncand=0 + candidates=0 + if(ia.lt.3) ia=3 + if(ib.gt.18000-2) ib=18000-2 ! Find candidates, using the CLEAN algorithm to remove a model of each one -! from s2() after it has been found. - pval=99.99 - do while(ncand.lt.100 .and. pval.gt.thresh) - im=maxloc(s2(ia:ib)) - iploc=ia+im(1)-1 !Index of CCF peak - pval=s2(iploc) !Peak value - if(s2(iploc).gt.thresh) then !Is this a possible candidate? - do i=-3,+3 !Remove 0.9 of a model CCF at - k=iploc+2*hmod*i !this frequency from s2() - if(k.ge.ia .and. k.le.ib) then - s2(k)=max(0.,s2(k)-0.9*pval*xdb(i)) - endif - enddo - ncand=ncand+1 - candidates(ncand,1)=df2*iploc !Candidate frequency - candidates(ncand,2)=pval !Rough estimate of SNR - endif - enddo +! from s2() after it has been found. + pval=99.99 + do while(ncand.lt.100 .and. pval.gt.minsync) + im=maxloc(s2(ia:ib)) + iploc=ia+im(1)-1 !Index of CCF peak + pval=s2(iploc) !Peak value + if(s2(iploc).gt.thresh) then !Is this a possible candidate? + do i=-3,+3 !Remove 0.9 of a model CCF at + k=iploc+2*hmod*i !this frequency from s2() + if(k.ge.ia .and. k.le.ib) then + s2(k)=max(0.,s2(k)-0.9*pval*xdb(i)) + endif + enddo + ncand=ncand+1 + candidates(ncand,1)=df2*iploc !Candidate frequency + candidates(ncand,2)=pval !Rough estimate of SNR + endif + enddo - return - end subroutine get_candidates_fst240 + return + end subroutine get_candidates_fst240 end module fst240_decode From f6a7d8c4bda66e51e8e48c250693a442236a6b7a Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 30 Jun 2020 21:50:17 +0100 Subject: [PATCH 189/520] Fix an off by one error in 10 and 12 bit hash code handling Revealed by trying to hash M0RNR which has zero as a 10 and 12 bit hash code. --- lib/77bit/packjt77.f90 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/77bit/packjt77.f90 b/lib/77bit/packjt77.f90 index 2464ea80e..0fc17e190 100644 --- a/lib/77bit/packjt77.f90 +++ b/lib/77bit/packjt77.f90 @@ -2,8 +2,8 @@ module packjt77 ! These variables are accessible from outside via "use packjt77": parameter (MAXHASH=1000,MAXRECENT=10) - character (len=13), dimension(1:1024) :: calls10='' - character (len=13), dimension(1:4096) :: calls12='' + character (len=13), dimension(0:1023) :: calls10='' + character (len=13), dimension(0:4095) :: calls12='' character (len=13), dimension(1:MAXHASH) :: calls22='' character (len=13), dimension(1:MAXRECENT) :: recent_calls='' character (len=13) :: mycall13='' @@ -19,7 +19,7 @@ subroutine hash10(n10,c13) character*13 c13 c13='<...>' - if(n10.lt.1 .or. n10.gt.1024) return + if(n10.lt.0 .or. n10.gt.1023) return if(len(trim(calls10(n10))).gt.0) then c13=calls10(n10) c13='<'//trim(c13)//'>' @@ -33,7 +33,7 @@ subroutine hash12(n12,c13) character*13 c13 c13='<...>' - if(n12.lt.1 .or. n12.gt.4096) return + if(n12.lt.0 .or. n12.gt.4095) return if(len(trim(calls12(n12))).gt.0) then c13=calls12(n12) c13='<'//trim(c13)//'>' @@ -90,10 +90,10 @@ subroutine save_hash_call(c13,n10,n12,n22) if(len(trim(cw)) .lt. 3) return n10=ihashcall(cw,10) - if(n10.ge.1 .and. n10 .le. 1024 .and. cw.ne.mycall13) calls10(n10)=cw + if(n10.ge.0 .and. n10 .le. 1023 .and. cw.ne.mycall13) calls10(n10)=cw n12=ihashcall(cw,12) - if(n12.ge.1 .and. n12 .le. 4096 .and. cw.ne.mycall13) calls12(n12)=cw + if(n12.ge.0 .and. n12 .le. 4095 .and. cw.ne.mycall13) calls12(n12)=cw n22=ihashcall(cw,22) if(any(ihash22.eq.n22)) then ! If entry exists, make sure callsign is the most recently received one From 7345e1366154bb25b6bfe41c0ff79bd48b62c8c5 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 30 Jun 2020 15:50:50 -0500 Subject: [PATCH 190/520] Fix a bug --- lib/fst240_decode.f90 | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index c82c18e14..257f517aa 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -155,8 +155,6 @@ contains hmod=2**nsubmode if(nfqso+nqsoprogress.eq.-999) return - Keff=91 - iwspr=1 nmax=15*12000 single_decode=iand(nexp_decode,32).eq.32 if(ntrperiod.eq.15) then @@ -240,6 +238,8 @@ contains call four2a(r_data,nfft1,1,-1,0) c_bigfft=cmplx(r_data(1:nfft1+2:2),r_data(2:nfft1+2:2)) +if(iwspr.ne.0.and.iwspr.ne.1.and.iwspr.ne.2) iwspr=1 ! TEMPORARY + if(iwspr.eq.0) then itype1=1 itype2=1 @@ -497,6 +497,7 @@ contains unpk77_success=.false. if(iqorw.eq.1) then maxosd=2 + Keff=91 norder=3 call timer('d240_101',0) call decode240_101(llr,Keff,maxosd,norder,apmask,message101, & @@ -511,8 +512,9 @@ contains ntype,nharderrors,dmin) call timer('d240_74 ',1) endif + if(nharderrors .ge.0) then - if(iqor2.eq.1) then + if(iqorw.eq.1) then write(c77,'(77i1)') mod(message101(1:77)+rvec,2) call unpack77(c77,0,msg,unpk77_success) else @@ -552,8 +554,7 @@ contains endif enddo ! metrics enddo ! istart jitter -2002 continue - enddo !candidate list +2002 enddo !candidate list enddo ! iqorw return From a8b87f1f3a98badfc4dba8e5ad55a39046c91580 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 30 Jun 2020 16:05:52 -0500 Subject: [PATCH 191/520] Fix wspr-mode SNR. --- lib/.fst240_decode.f90.swp | Bin 45056 -> 0 bytes lib/fst240_decode.f90 | 8 ++++++-- 2 files changed, 6 insertions(+), 2 deletions(-) delete mode 100644 lib/.fst240_decode.f90.swp diff --git a/lib/.fst240_decode.f90.swp b/lib/.fst240_decode.f90.swp deleted file mode 100644 index 80719f14301320e718670170abe1f21b1c9edddd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45056 zcmeI5d6X+xedpzbEtu72Si?|l2S2I1T2e{9y(Wb*&v*g+z|TuK;NhW`O5OFIy3|jl zcE9&#SWXfQWLN?O20RQ2F_W1Ph{Itr8Ngvl0^}SB%Rty6oWa9R!WzIPVLrd#y|+}_ z`q`fOCxg`I+p4a~|&;jNW}0-pyI3YR?Z_Gdok9-le)OUDX@wB2hY z$0Lc^_j5&~`S@=4_~KK0-EybfY;>lievTzrdHinNX{D9D^jQC7CG9mUop__tPW!c` z>d{uz?6#tE`(Sknm09qt2WCBRr+Z+x-(Fn1?=|&Wpbysh=goQNo^#EeCNs-0>w#Gh z%z9wf1G65O^}wtLW<4w&My_7OZ9)jHX*U!XN`Q{!`|Ouzq=#x_pgU$@^qTYxL)-Zot25L~}uB>wI;{yz5mVw#Gh%z9wf1G65O^}wtLW<4t*#nJM zp)g0ye<+MF`hUm&fAju@!Z*Ojz^lNEzz(<;Tmv2l{_%c=!bic|!0W*=a49$d?gqYc z-$LR2;MJfHt_D6h3w#$w{yX5S;49z_;5y)g1#oY0+u4P}C&1gmi@?*sW5A=p+2C6U z4L%6o1fCBLfjRIsgbg1C{|&qWycq0(O>hY)gC8QW_&e~|;Mc*W;9=mQ;A;pA{sw#q z{4sb7Xn_j24ME8Jz-dqcw;`Cg75ou+6L<-DF}Mai9$W+};B0U!LW*~TSA$o9=Yiwk zT5u8Y!9&1xGeYHJ7gD*K_G=qv?Xl>4MR8RhKUCYdLx= zUK(|xW@?DpDY9G&bJM{FGG}sQZv*R-0&9~3gGqr^3ADv; z_j;@Kur|NlZ58!;p?7`MEG{2hUtKNvwbG)SQQL!LtM#dgdcEF&SZ`{w<_VXodBP+L z)@ug`<;Cq{JMN|ZlGopg60Pg@DU6;vK|M4VQvKFR8?+Utazzl`o5cON(TPt-Uc1}# zcGHL;Z>P~beyqQ`s-*g)f3#%SAk+&V>$z)4DaA7|fGqUzg{ zt6H5#zhN>~%KhGMRIW&9?!&XlBWU3M^BijkOM;0R%_Ir)ndHvgyKk3bK*|vJE+|lV zOKRoGpjKQq6Ftc8G8#gIR3@GL&ymteqNGeVSN%K@LnzRunDRZQ&sZj#EY}>$&Sj#g z-aeUJMTawa+szYXy7PZpn~F|>IO#{5QE$HH#e2+#V!c|O4{FtFm4%Wn?Q}O|ri`5= zN!Lz-eAGsxm7YqP{%*2!e0B9`y4!3{H=E&M2qiJ!7M4`;Qj2zkj#*7Ln?+Z)Oe zrTXwd(M$V{KDX7y2!LgW?VF~tBvfcnO(K?%8~Rv z)+B5@`;CoGUMOdVrnkIR-@No=g{Mk@FuN;&G7_oozz-n(d-|ZEXh){EUdojZKs<)NTZ}b z7H2G1wa2wnc6!}r)Y|Pu#Uazyqi#hnNjJJ1rPkqr7*55@RAXgg{}oyI9Yo1^mT*^68D#pC)@>p}XY-SCt4hM%On8<36s zq!mRwe$wylM7_A%@{{P~j$L*L?RNa+^j3Om+b6HA?PTlG@;HgiIuI45{l4osUzb5Y z+3h#|p=Bm%pGdowNTJzH`i(eAr4dom(mw6A8_kG&J`$8GXYzQNq}f838yFpxtU)fF zJfowDPV8bGO@Z>U3+8ANI(FsRyQhZA% zvgDptpET+1M?l^sE`Ayb2FE37-pNT$#k`o+C2q!jFJY;4gb3{R`rgo3Wfdip?Hie# zzI6Lw#@U&9#sT-tOw*~QZ_I?Q@LPRf`qWKNud$K#WzosaDXJ(lO15JY>zAzz@-&-z zN~^L-$~8~-nU)XV+v!S&_eRzcEf&HfJyS5x^l)%N`2S1chtGy@7XE+U@{K=&zyCgX zGk6)e0jz@C;p@K#ZUzy!7TgD%4GQ2p@b;evw}5wo9dH>~2WJD}`QHM1;8(z>;NxEk zHb4bD65J2`i2A$@Y=Z{)HE=C>5_mND6`*zAkI$XO&3a(g1G65O^}wtLW<4*aI_6idzZ6{=VpODYcJ~W_7YE7MaZ?fo`mw@CTQvMCf zEhch}FgM(}9x2DrXYNRMcXP{&Qut3~86pX~>hO_5mS&6!66IFAHXrXGsmM~z9deEI zWZ%9UB~6v8m;_pUsQ(w7IGGr&d?BM@Lh>yzQE9DsycBLXP8O?WUvCzx<%9Fml=+jb zjbdDKT(C)x?D%+jGb+aouS~7V-tlsWyA2~tcAaI?9uKu03$=NX7|q8fbm;$_aKeLD zan;@Ss79_(h9C|X>;6K0DCfw{+>vOzi)fk3OD{KM3Pm07(4kAbhT{*ZJEXNvrSfLK z+}}c)w`FUdr#E+bsv-)=>~zyK7J*SVR2LRZQt6^FqnFPY8%JM`oyTyz*g+h(^H_qVpaewQao2gZ#EZHXGqE#xwhK4c6^ydkv;)(`f;(-}W=hY<=IHOU?ve$tJ})rqc;RCFSOA8)7Gmtm3#lr$Ff0jaOY$;P6& zEctRRQGp3r@#|GzO4nh|Kixv26sE=4W%U+3cUSTjxK#4F%lW#SD{)8>Qq-B6q$1B< zmN1!!jA2?Vc|8B#5<{FsD$JvUs^tQNAQx`O2@Tuu%}CaD1<*n%PnR1hH(0O{Q%aw^ zxSJg4d%fL+BHKE_Xt)+8<(N(o{{N$Ap<73{Ed0N-pZ^5BzVQAxf)qRz+!uTt9{=6o zMc^=a5cnB<{ingZ!0SK^t^^CyaK!soB%su3Dm(4(Bpp}h>rii zgXe+EKmZ;B?g2iDZvO+|Ch%Nv1T296EqZ+LGSC4bxDWUq`g+mte-?ZY+ydSLc0mYA z;K%gw2f*)vQ(zNlzyBQUOMc#(m_3vEwZ;S<50B@!8U*fa#kG)EZc#24TJqoT?{#-# zedaS#gaVoskvm@XADE)sorU5$b! zr3qB=F7c9%^s1Marg^3!QdO&pP<5-Hkq=O!qDIN?YkDu~o#s`mEdf>|>75Sz(>4Ee z-9NqLpVqyMi)r@vj@!wQ%P^z_^-Y%{jn8J&ddZE9Q(8_?o{r`VNNdM;IG5LKRcS-A zvl!@nyaS3qc4wl2mFc+e-@=I@FA!Bu+Ahz@+xDufZUI4db!6&jwtE#C)=Nt1U0M2>B**oUfZ0NaE(H zX2-E18Ih=yj)f7q*=74K^(|y6hcB$L)nw(=P*UCU4p{~jjZz9GMpk09QYS?%#R!RZ zI#W$)BFsTxu;YI3l@ru6++N{xq}eBmSRokdidD$d%dV#kyouM$L3N&W zC8!n~z0J~MjknBV5R_MKV3O{n75KKnyC)-UE_fA?QP?|4BRlw{Fp|XFk}6yhLi6-O zys3Paymj4Ma3mAWZgnS9BBf9W<=+A}C&oG@X33QI#pFEtLJlxZnH;V3rqo1dwn(C^ zvQpWhqrysKIf8Y~z&M8)46B5;Ki!!)%EIYNTsb`Z0H1z${r{KX z(S7)M;s0UH_46fo{l5mk2abUAf$09f0sbd=6L=-~w?Oj#5E>r_e+0Hb89W@^3c)`F zUGQ{J2M+^3g3tde@MdrWcotX#=YaRY>;ED6Eg(Ao$AJ5QFT>}*4*WVe3N8jdxHtF? zeEqw@%fSlxdwBSFgPXw1z#iBDPX#OBVc_22@8Rjc4ZaLM1U?8}23`uD0uF;Bcp&&3 zeEv;9?E8D50RnIy_-FWg;r)f@zX3cBTnN4ak1ss`Yb?Ki1>YBfWpDv_2)GycDE9lW z0lx{Z0_TC-k;{An`~`R$upc+1R)Uk=axr5qv)-7omNV8;`OpEcH)Acucz4EHvWuFr zmUf{un+Vj1nbXOPwRG>08EZ*T%veih^Jc82WlLwQrCT2K`~OeYa?ms*p0M2IP|H#L zqlnMP7x5|bpA@y*K61%!iUb(_Pt?OzQ5>QMj#YR?S+Bi3L6bOKD&zyX7J}i*Sny=- zcU&Z3s**XX8sd}W1Y-p82Aj%G(}HOn^+@$cdP&^O?oc<8a6%_duH+qT^(0}0=>N}! zvAh(1Q~3WIER*?Z`29ZtH-p!M7lV_a3lbnQfjW3FkaGaUCg4xNe*$6~@Ir7Mcm_BG zL`EQI0=yNOz<&V$9$X8a2p$U_3BHM3K+XYp4tN@=+c{sNi8TfmLrwcsR>GX<^&E8tvk4)`%Lh7SNaPv9kB4?GL}8jy1ZL z|A36)3*f`xZQzaI1z;Dn!IQwRf_d-=a1MAN_)F%+3qc#m9JvHc_%P|MLtuitU$79Y zn{Vv;tS;6@+lW$VyjR_AVNUH~8lAMOnkZ2};SO_s)Wh*>vyy3}#8OHPpfc4^nXFf1 zJB6d6N73kj&|Tpx){db``6Q$J-o zA-gQq3+A~tniCckV>?A)vVk3$RWr-FA|gHUaI-?;oY4M^q{u3oGn>;Ab|vpu4t8I6 zq#P%|pIDAP>tN1HcDFZB2x6wBEko~j8Yf$nS*Va~FXZczZ!cD6S`SHiEagc$E5BWUj>Yi!V zy{7R$t*!?vRWSoV&1w|?xg?@Qmg!#8NHc|U(as0fBnm1FmNs>eWcb-w&;-(j$yN~R zb5ud;>3JF?kCz74<`a1=Twu+n)Idp{|IBSSj-&0x7nSj8U{WVk zquWWnqA>(%^=nG9o$BlqD-8;0r#Ui1mvdLCR$BG@Jxnqk9jQswG@3wYX%F)qw$n=1 zPwg~RSNZZZ<3>lETB}Nz0oNuDNHDA62MVT2+Kt!%_KU@YC1DY5Z^_AQLI9Rn@v7t1qp|*SG4gVQ{gsh&S>%O6v0Cwd`tC)95uh&#FTi4o-m7_XmqpMX$<)E6I zNpa$SzL4+_M_xVnLdwOO;9$wRNffBJtOp!7!<)r8$L9_^a)%yG`j)Ku*@OH}ID=|v zFC?CiJpsWTOB3j_Ctk*CJX6p#x|q0QLa<8KV`Vs1q!eP+Zc>;qs@dGjj@*&rsDdcb zgVm*@2Lq=PMP1w6b1!(Ou3c5L#q4fGTZ-itc5SNX&2+5x5DsVLM~B9BQD_9la;}K> zS#J4~vlvPyw48MNd|)a3?xUQD46ONcYav8%}#I$&AB~xNQiM1?C8p2 zDRQ2JDa&l4cel4sxpWxW*r+`<3*U&uJ%PQi8l6LrF6NYh;&AOs)_1@?EBSJV=UT3! zZMN}IS$EPSbZtj4T(~57>=v`ZDUg!S^y!DI$JmT?kG3JJ^FdEy!ev9uD{TcO+;!IA zsh8#k62(epV+mL%%@2$@)Wl|zL)7fiZSK{RoyEgWW6}|CORE2e9WC5b z_&WH1cRv0P;OoT(K+gYrJ8-gqS9ASbZ~{CNEP->uJ;Ar(@5MjhFTp#&+rbUsde8>f zfQy010}g@;cr2NF7OZF<3MBr z{}DVFG{Mt>_!T@3tbm7uhk?()_kSAvE_gk7E_fC=3gmo&gWw$Si{LhR{#(IEfXE15 z0h-|H;7QzeHSmw{@E-^N1snyB0c9`;9tMQ3{|#_8xCoTNqrn{b7-RbakbrBzxj@GI z9>9Lgv|?)J?ZWVVQO_8BUwCCX|wT;P&+BOaRY2ZWE@27#y>8TV}Wsk?PyT`s?Pqs;|IVvpvP`nh8B6HyD z44=%pxzpWS#Fechhs?mL7;{)B5GX)Jkbi2$Lq{zR+gt7xAbvR}sN;g#TVCjiBad*s zWz1rmyr`nyf;Q{u#$KgXF41_m32JvFIi7@Y!-Ld|qp4Zu_o4&5d()`V6Gt#aB&Mez zDHY{oOA3qa#sbVX1x?|1<}Pn%dA-MGT?r+>0G%8!E=`U%B#@6ZHf|K;3Ij#k|6~$F zMOWX!LhC{}n+Sdq&XNoyCiloE=Qp_7g-sGOYYYK#{!*vGTtVs|<+^pFw3zEQBSpwc z376)JmgTDmhgedEwm`}F$?1UQM~J>+KypV_Ne$;Ni#NA&PL`c`+nD*`PiH6$2CXrP zfH(JK=56MC>P9Z3!-IjDVa4n(TjIeg&x91c&u30t$kN?y>uR~(NKPRFOHvivAPT$W zlB)}3hgc|FyUYQ(R}NlSV)}yH>7ThLMW;kc<~U($q^z{?83nTCL=*Z_QqKTo15Qh{ zT3(pjAv=GZVk^~hZP~}ifMf8=tGvLN?RsH@YRdz2e(|AQtgo|CnEsi&LVZ=27R5d^ z^Yl!m7U~j!gP*$5?Mox)m$!%OW!^E*5IHjqGt4X`-OjXyL`h|mOLsQggr?0Mf(y|D z+|=@2+5$H(=l*dP5<8&@S+bzHOE_ARCjzNtKA%b+vP2Uuq#so_${MIUA0#V=DbW=z zb9$H{&KjaNcgZfx6I;nm`jKfUGqTs%(A%LNp}dY$(&aAzT9UJY6k>v2F9-Q(k>+p9H-P3S^hyi52S z>g%~?t*LF&(>X;Xiuon-=55XvD+rk&Yz7t0Ew}miDNAKsU5u@TXET676p0~k*zD~o z@$T)R$roaA57(xO)R0WW$rns=XBBK-07^G63^WyE>zXggjH!4^Npym=FWy>=tH#VZ zW`6R>F~@MBI8&t{G|-XTzxD~oT^P+Z7ePbsgULiM&t6E8Hztm)pobVeWw^NFU0A( z{$CLP9V_ylM`&#+ej{Hx+{B0 z%a;GS?4_Zy@g|&F_Gx;`k*X^x`9GD^e$6;d$2w9qB_;o-lG?9UqkYY=ILd)imj6>J z?^j9bYsoB23d>ZEML*4RU7&OM#A%3Ydw@LJj%I;Cw_qSJm)k@H=SW>ip${xm)hg|n znC_~cU5TT*l247JrI3i1Ls>kQ(IFVW(0EA$f~72=E&;16*?mp!>*`yn6yUd~Y*V4n zhy6P4T`2}hy~Zg$$Z=>>Zan|OwrjX?-mHbw`-c=gdWSlAOUbR`mbE2A(7T;Q!t4_kA9I{tZCv|F^*fKzRIn zfFHx7e;s@cd=7jV2+#jNz#D<^{Bky63p@&Z7ry0Zv2M+>g zfgi%he+J0e0nY&IpbF$S1H_l$pWx}g1l|tb2%ZnF13vgR{JfkWAUgf$fdmN8e-(Hl zxE#pu1uTNQgCD@-zaP8yQ{^P+z!EKE5yTD1X2c8b(w-9ywRT#hw zGap%BjJn$@q+^beNFx+<1(!r-X)X<-G?&IbhBEgJk+AA#%5z<2AY!&%>OFc?Ucu&l zKIQG~+y&iBI`g)n5@W)B{2^KR(hUv|g1J}6bI}hfGh9Nw=-BRjI-^3&#~K1=Gc?$( z7L7~g5>D7gIKWrt%ovWPtGkC%_6g(BrWw*tl2bhEzg%MoOR5sk3OWPxN6!eO_)bD&gOR0gL*+?c*LZs1yf<|d35D=e%MxM zBPS3R{%SzFJz?G%!eiq($Ie!d9Ks2aLwDuetwHAxM%lBq8pLH!MQEBkEdgVfJuEg& ztM5F4L(e_5qQmD^h~dLrf)EIyk%yfDa=-uq3focGJ4}V-0Bku1zSn1C(6{^m?#1r$ z&Prl`-fjvnLl@gpMH+2o?+*vLr};^nQK~z+(=ige5ABgNXqk~B}{lgNk1||83pYnt&|&rEQ$*|T>DmP zZF;5FT&0GU^;rqp{Zjkv*n=A9NyrpL#A}2RYgT~31`MbCntIW%x##%K5OR`;JfRT> zPkDf~bUha;pejfa(ycu?9V8>SkPn@1mwO4Kl3|dEXHB4nlXPi9_>ip}ZMDnJ z@QfIQ4^Lkvpa{h5#)i(wKhLIY8<@-ItV7hJ%w`>XuSk=FDJ>3iYm000gr;dfW*xvq zA%DZQj4IpyWp@0ssTq&9f*E&IzfD&fCZx?7p=@q>^BL{JPG=X1GU7xG23UDH7bf+L z8Uve2Wx`z&N6^{_#$>Z)15KTa}0ILgm~;PCMjS5>fBhJQet6t&zbS zny=8!hAp?9A%i|ZJkIP--B?dvVX?Bd?Ywi_)=a9zPOo5$RmG%I{^8WpCBSj+Nj3Me%4r)o+y1~2l#jz>~o zO!cfKuA0*hs_QkplpR9W5T`O5njw&Oz1E84=Sqh6H?mF1_VK)+$72V|L8)PW`y+2) z23f{LUo+;?t^Ue@xc8G;rR-4)AyycY$(^ErtVC}0qkHcOf@%BK{l5@Oi&%QjyENh# z3-s7Tep;*7Jt+s9TKmXs0J8p%BO~T;0%9v?7_}B%ua$foR&!?8gz5Xn%v2-SHfgNH zGw>HVJjwX~pMqa)!0QVCUsoOwz8*gR-QXthY_JLb6}Sz4{wF|q|965D-~jjny!r;630KpaoXIy@1&9zYB=%zMT8N1Re^$0grwQcqtHl{KeqG;A`;e?*K0b zJD>}m2p$3C+`o^2KL@vf-vz$~PJj&{?Rp38`+e{tAm;$c82}dp5BwNj{G&kh@m=s> z@aOR0F9+8HvAHjS2Z8&7Pr`4%6Wj=n1F^Bc8ay2Q4F39y;AY_X@55Zzf!Nc389rNn zw@+;8F8~h&KRb*50G|T4fY$>3xEU$m!zN85_97->?i7hp)<_QW8D0!C+J)?ji}Ba@ zv_QgTJvBc#CNIL3k|#ebWPX_~6n~%1dHpf2Vz6$19x7kbSbnVW#`DWhOWmQ|7!8i+ z*59g{l3h}Be#lzMR@GV^X;5LLqTJdabTX%yxOYT8nMshzT(hX*PFgZnNx5!Y9t!bn zPs*0U8!Snd+QiWz?yj~)T7TEuVh#Oa&PINQk>4LIc!jJ7%*Fn7=cmO+$AO?x8c@o{ zL2}&nx?5>LuI}=qiCS^3?r6z(wD$5dY5G%vqXhonRXy7b(eH<@94#j|-B1bC-O+)W zMW-+}P|!onAaIypM`CZsZ|cB5BrQ(<;@CI+*~0w^*MKrQWYiW2yIT(|GFr+BA~7G1R6; zf%=&bJ>S^BO?d&7Nxfg2#!~Owrt#GKwJD$4JxXD%yap5Fnj;(4!2y>lQe9%dXx@QY zqU>Vs{PWNEu9Y7fU_;<>Gaxjef?_pTNU*#}u*^uX+(?YMhoQnv*yOzbe$oCwXq9J{ zXH6EOqW$$(u`H6Gh&BJ^_h8l5NbI+B?*>Q@QL5E=o~gZ|WOHa?(<(C;^e-hWui@}&H`7SC&6W;ipTOwdqgo=EigopJx{g zv5-@{5m;hbgDFMkZaSz96(vf=Vq-NO2s#(63U)Z(K#|M#*C}c7S`q#KKfwoo0X|vy ze_m1g`6|5rUxAl`r-AdpKf~vL1^f*V-v4)i`1y;T|5t(h7J%68zYRPcoCW?Ce*Ycd zwO|{FU;mZh;oxWR{9gn&gB!tXz%#)ia31(Ry#E)$7r-mP9+2|@4*-z~ya^lw*MLKy z3PdJQ0NNhgmf6>=2WCAm>w#Gh%z9wf13yPSU^e9D|4fFS?+vbHH#v~t&t&L#K_4)a zp(E|R;?yBI3t%QgpUKdjtbHa!FXR_nS!qRYK(|bnp^L Date: Tue, 30 Jun 2020 16:06:53 -0500 Subject: [PATCH 192/520] Remove temporary stuff. --- lib/fst240_decode.f90 | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 7099ebc5a..6dfa3643d 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -238,8 +238,6 @@ contains call four2a(r_data,nfft1,1,-1,0) c_bigfft=cmplx(r_data(1:nfft1+2:2),r_data(2:nfft1+2:2)) -if(iwspr.ne.0.and.iwspr.ne.1.and.iwspr.ne.2) iwspr=1 ! TEMPORARY -iwspr=1 if(iwspr.eq.0) then itype1=1 itype2=1 From ae54c80a545c7da8dab2e634820fd635f79aba11 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 30 Jun 2020 17:14:58 -0400 Subject: [PATCH 193/520] Here's a start on GUI changes to support FST240W as well as FST240. --- lib/decoder.f90 | 3 +++ lib/fst240_decode.f90 | 1 - widgets/mainwindow.cpp | 11 +++++++++++ widgets/mainwindow.h | 1 + widgets/mainwindow.ui | 12 ++++++++++++ widgets/widegraph.cpp | 4 ++-- widgets/widegraph.ui | 4 ++-- 7 files changed, 31 insertions(+), 5 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 261591f3f..c6282c484 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -189,6 +189,9 @@ subroutine multimode_decoder(ss,id2,params,nfsample) if(params%nmode.eq.240) then ! We're in FST240/FST240W mode + ndepth=iand(params%ndepth,3) + iwspr=0 + if(iand(params%ndepth,128).ne.0) iwspr=2 call timer('dec240 ',0) call my_fst240%decode(fst240_decoded,id2,params%nutc, & params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index f899f544c..f177dc76d 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -155,7 +155,6 @@ contains hmod=2**nsubmode if(nfqso+nqsoprogress.eq.-999) return Keff=91 - iwspr=1 nmax=15*12000 single_decode=iand(nexp_decode,32).eq.32 if(ntrperiod.eq.15) then diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 1ff8edaac..eabece958 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -953,6 +953,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->actionInclude_averaging->setChecked(m_ndepth&16); ui->actionInclude_correlation->setChecked(m_ndepth&32); ui->actionEnable_AP_DXcall->setChecked(m_ndepth&64); + ui->actionAlso_FST240W->setChecked(m_ndepth&128); m_UTCdisk=-1; m_fCPUmskrtd=0.0; @@ -2927,6 +2928,7 @@ void MainWindow::decode() //decode() if (!ui->actionInclude_averaging->isVisible ()) depth &= ~16; if (!ui->actionInclude_correlation->isVisible ()) depth &= ~32; if (!ui->actionEnable_AP_DXcall->isVisible ()) depth &= ~64; + if (!ui->actionAlso_FST240W->isVisible ()) depth &= ~128; dec_data.params.ndepth=depth; dec_data.params.n2pass=1; if(m_config.twoPass()) dec_data.params.n2pass=2; @@ -5833,6 +5835,7 @@ void MainWindow::on_actionFST240_triggered() m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); switch_mode (Modes::FST240); + m_wideGraph->setMode(m_mode); statusChanged(); } @@ -6443,6 +6446,7 @@ void MainWindow::switch_mode (Mode mode) ui->label_6->setVisible(false); ui->label_7->setVisible(false); } + ui->actionAlso_FST240W->setVisible(m_mode.startsWith("FST240")); } void MainWindow::WSPR_config(bool b) @@ -6527,6 +6531,8 @@ void MainWindow::on_actionInclude_averaging_toggled (bool checked) m_ndepth ^= (-checked ^ m_ndepth) & 0x00000010; } + + void MainWindow::on_actionInclude_correlation_toggled (bool checked) { m_ndepth ^= (-checked ^ m_ndepth) & 0x00000020; @@ -6537,6 +6543,11 @@ void MainWindow::on_actionEnable_AP_DXcall_toggled (bool checked) m_ndepth ^= (-checked ^ m_ndepth) & 0x00000040; } +void MainWindow::on_actionAlso_FST240W_toggled (bool checked) +{ + m_ndepth ^= (-checked ^ m_ndepth) & 0x00000080; +} + void MainWindow::on_actionErase_ALL_TXT_triggered() //Erase ALL.TXT { int ret = MessageBox::query_message (this, tr ("Confirm Erase"), diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 001742f7f..b3b297c85 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -265,6 +265,7 @@ private slots: void on_fox_log_action_triggered (); void on_actionColors_triggered(); void on_actionInclude_averaging_toggled (bool); + void on_actionAlso_FST240W_toggled (bool); void on_actionInclude_correlation_toggled (bool); void on_actionEnable_AP_DXcall_toggled (bool); void VHF_features_enabled(bool b); diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index b45784cf0..2f2704c65 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -2829,6 +2829,7 @@ list. The list can be maintained in Settings (F2). + @@ -3523,6 +3524,17 @@ list. The list can be maintained in Settings (F2). FST240W + + + true + + + true + + + Also FST240W + + diff --git a/widgets/widegraph.cpp b/widgets/widegraph.cpp index a78874c79..9e7f6667d 100644 --- a/widgets/widegraph.cpp +++ b/widgets/widegraph.cpp @@ -294,7 +294,7 @@ void WideGraph::setTxFreq(int n) //setTxFreq void WideGraph::setMode(QString mode) //setMode { m_mode=mode; - ui->fSplitSpinBox->setEnabled(m_mode=="JT9+JT65"); + ui->fSplitSpinBox->setEnabled(m_mode=="JT9+JT65" or m_mode.startsWith("FST240")); ui->widePlot->setMode(mode); ui->widePlot->DrawOverlay(); ui->widePlot->update(); @@ -368,7 +368,7 @@ void WideGraph::setRxBand (QString const& band) else { ui->fSplitSpinBox->setValue (m_fMinPerBand.value (band, 2500).toUInt ()); - ui->fSplitSpinBox->setEnabled (m_mode=="JT9+JT65"); + ui->fSplitSpinBox->setEnabled (m_mode=="JT9+JT65" or m_mode.startsWith("FST240")); } ui->widePlot->setRxBand(band); setRxRange (); diff --git a/widgets/widegraph.ui b/widgets/widegraph.ui index fce5f1072..7deea52c8 100644 --- a/widgets/widegraph.ui +++ b/widgets/widegraph.ui @@ -362,10 +362,10 @@ <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> - JT9 + Hz - JT65 + Split 0 From f6a8a179dc627fd283c9404a33c651c53578200c Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 30 Jun 2020 18:15:35 -0500 Subject: [PATCH 194/520] Hardwire for 50-bit messages. --- lib/fst240_decode.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index ab2013e5c..720d5ec8b 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -238,7 +238,7 @@ contains r_data(nfft1+1:nfft1+2)=0.0 call four2a(r_data,nfft1,1,-1,0) c_bigfft=cmplx(r_data(1:nfft1+2:2),r_data(2:nfft1+2:2)) - +iwspr=1 if(iwspr.eq.0) then itype1=1 itype2=1 @@ -437,7 +437,7 @@ contains apmag=maxval(abs(llra))*1.1 ntmax=nblock+nappasses(nQSOProgress) if(lapcqonly) ntmax=nblock+1 - if(ndepth.eq.1) ntmax=nblock + if(ndeep.eq.1) ntmax=nblock apmask=0 if(iqorw.eq.2) then ! 50-bit msgs, no ap decoding From 22b782a4aee8ea40c1d688bea0de8cc01886b5aa Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 30 Jun 2020 20:04:44 -0400 Subject: [PATCH 195/520] Can now decode FST240W signals from WSJT-X, using FST240 and the option "Decode -> Also FST240W". --- lib/decoder.f90 | 3 ++- lib/fst240_decode.f90 | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index c6282c484..710c4844e 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -192,10 +192,11 @@ subroutine multimode_decoder(ss,id2,params,nfsample) ndepth=iand(params%ndepth,3) iwspr=0 if(iand(params%ndepth,128).ne.0) iwspr=2 +! if(iand(params%ndepth,128).ne.0) iwspr=1 call timer('dec240 ',0) call my_fst240%decode(fst240_decoded,id2,params%nutc, & params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & - params%nsubmode,params%ndepth,params%ntr,params%nexp_decode, & + params%nsubmode,ndepth,params%ntr,params%nexp_decode, & params%ntol,params%nzhsym,params%emedelay, & logical(params%lapcqonly),params%napwid,mycall,hiscall, & params%nfsplit,iwspr) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 720d5ec8b..f340e8d29 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -238,7 +238,9 @@ contains r_data(nfft1+1:nfft1+2)=0.0 call four2a(r_data,nfft1,1,-1,0) c_bigfft=cmplx(r_data(1:nfft1+2:2),r_data(2:nfft1+2:2)) -iwspr=1 +! write(*,3001) iwspr,nfa,nfb,nfsplit,ndeep +!3001 format('a',5i5) +! iwspr=1 !### For hardwired tests ### if(iwspr.eq.0) then itype1=1 itype2=1 From 0f04f3285aec7183170f82a9c06c2412e923f5a7 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Wed, 1 Jul 2020 08:20:38 -0500 Subject: [PATCH 196/520] Prevent decodes that fail to unpack from being printed. --- lib/fst240_decode.f90 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index f340e8d29..09b16c2ef 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -547,12 +547,14 @@ contains else xsnr=-99.9 endif + else + cycle endif nsnr=nint(xsnr) qual=0. fsig=fc_synced - 1.5*hmod*baud !write(21,'(i6,7i6,f7.1,f9.2,3f7.1,1x,a37)') & -! nutc,icand,itry,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,x!dt,fsig,msg +! nutc,icand,itry,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & iaptype,qual,ntrperiod,lwspr) goto 2002 From f2c3cbf9ac1178ac07aad9897a9c74dae904e7a6 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 1 Jul 2020 12:01:47 -0400 Subject: [PATCH 197/520] Implement basic functiionality of FST240W in the GUI. --- lib/decoder.f90 | 24 ++++++++++++---- lib/jt9.f90 | 11 ++++++-- widgets/mainwindow.cpp | 62 +++++++++++++++++++++++++++--------------- widgets/mainwindow.h | 2 ++ widgets/plotter.cpp | 16 ++++------- 5 files changed, 75 insertions(+), 40 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 710c4844e..fa50decdb 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -188,11 +188,10 @@ subroutine multimode_decoder(ss,id2,params,nfsample) endif if(params%nmode.eq.240) then -! We're in FST240/FST240W mode +! We're in FST240 mode ndepth=iand(params%ndepth,3) iwspr=0 - if(iand(params%ndepth,128).ne.0) iwspr=2 -! if(iand(params%ndepth,128).ne.0) iwspr=1 + if(iand(params%ndepth,128).ne.0) iwspr=1 call timer('dec240 ',0) call my_fst240%decode(fst240_decoded,id2,params%nutc, & params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & @@ -204,8 +203,23 @@ subroutine multimode_decoder(ss,id2,params,nfsample) go to 800 endif - rms=sqrt(dot_product(float(id2(300000:310000)), & - float(id2(300000:310000)))/10000.0) + if(params%nmode.eq.241) then +! We're in FST240W mode + ndepth=iand(params%ndepth,3) + iwspr=1 + call timer('dec240 ',0) + call my_fst240%decode(fst240_decoded,id2,params%nutc, & + params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & + params%nsubmode,ndepth,params%ntr,params%nexp_decode, & + params%ntol,params%nzhsym,params%emedelay, & + logical(params%lapcqonly),params%napwid,mycall,hiscall, & + params%nfsplit,iwspr) + call timer('dec240 ',1) + go to 800 + endif + + rms=sqrt(dot_product(float(id2(60001:61000)), & + float(id2(60001:61000)))/1000.0) if(rms.lt.2.0) go to 800 ! Zap data at start that might come from T/R switching transient? diff --git a/lib/jt9.f90 b/lib/jt9.f90 index 679c2ef22..dcfbb07b6 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -26,7 +26,7 @@ program jt9 fhigh=4000,nrxfreq=1500,ndepth=1,nexp_decode=0,nQSOProg=0 logical :: read_files = .true., tx9 = .false., display_help = .false., & bLowSidelobes = .false. - type (option) :: long_options(28) = [ & + type (option) :: long_options(29) = [ & 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', & @@ -55,6 +55,7 @@ program jt9 option ('ft4', .false., '5', 'FT4 mode', ''), & option ('jt65', .false.,'6', 'JT65 mode', ''), & option ('fst240', .false., '7', 'FST240 mode', ''), & + option ('fst240w', .false., 'W', 'FST240W mode', ''), & option ('ft8', .false., '8', 'FT8 mode', ''), & option ('jt9', .false., '9', 'JT9 mode', ''), & option ('qra64', .false., 'q', 'QRA64 mode', ''), & @@ -80,11 +81,12 @@ program jt9 common/decstats/ntry65a,ntry65b,n65a,n65b,num9,numfano data npatience/1/,nthreads/1/ + iwspr=0 nsubmode = 0 TRperiod=60.d0 do - call getopt('hs:e:a:b:r:m:p:d:f:w:t:987654qTL:S:H:c:G:x:g:X:Q:', & + call getopt('hs:e:a:b:r:m:p:d:f:w:t:987654WqTL:S:H:c:G:x:g:X:Q:', & long_options,c,optarg,arglen,stat,offset,remain,.true.) if (stat .ne. 0) then exit @@ -129,6 +131,7 @@ program jt9 if (mode.lt.65) mode = mode + 65 case ('7') mode = 240 + iwspr=0 case ('8') mode = 8 case ('9') @@ -137,6 +140,9 @@ program jt9 tx9 = .true. case ('w') read (optarg(:arglen), *) npatience + case ('W') + mode = 241 + iwspr=1 case ('c') read (optarg(:arglen), *) mycall case ('G') @@ -256,6 +262,7 @@ 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/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index eabece958..6b25770b8 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -429,7 +429,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->dxGridEntry->setValidator (new MaidenheadLocatorValidator {this}); ui->dxCallEntry->setValidator (new CallsignValidator {this}); ui->sbTR->values ({5, 10, 15, 30, 60, 120, 300}); - ui->sbTR_FST240W->values ({120, 300}); + ui->sbTR_FST240W->values ({15, 30, 60, 120, 300}); ui->decodedTextBrowser->set_configuration (&m_config, true); ui->decodedTextBrowser2->set_configuration (&m_config); @@ -1128,6 +1128,7 @@ void MainWindow::writeSettings() m_settings->setValue("NoOwnCall",ui->cbNoOwnCall->isChecked()); m_settings->setValue ("BandHopping", ui->band_hopping_group_box->isChecked ()); m_settings->setValue ("TRPeriod", ui->sbTR->value ()); + m_settings->setValue ("TRPeriod_FST240W", ui->sbTR_FST240W->value ()); m_settings->setValue("FastMode",m_bFastMode); m_settings->setValue("Fast9",m_bFast9); m_settings->setValue ("CQTxfreq", ui->sbCQTxFreq->value ()); @@ -1200,6 +1201,7 @@ void MainWindow::readSettings() m_bFast9=m_settings->value("Fast9",false).toBool(); m_bFastMode=m_settings->value("FastMode",false).toBool(); ui->sbTR->setValue (m_settings->value ("TRPeriod", 15).toInt()); + ui->sbTR_FST240W->setValue (m_settings->value ("TRPeriod_FST240W", 15).toInt()); m_lastMonitoredFrequency = m_settings->value ("DialFreq", QVariant::fromValue (default_frequency)).value (); ui->WSPRfreqSpinBox->setValue(0); // ensure a change is signaled @@ -2971,6 +2973,7 @@ void MainWindow::decode() //decode() m_BestCQpriority=""; } if(m_mode=="FST240") dec_data.params.nmode=240; + if(m_mode=="FST240W") dec_data.params.nmode=241; dec_data.params.ntrperiod=m_TRperiod; dec_data.params.nsubmode=m_nSubMode; if(m_mode=="QRA64") dec_data.params.nsubmode=100 + m_nSubMode; @@ -3749,25 +3752,7 @@ void MainWindow::guiUpdate() QByteArray ba0; if(m_mode.startsWith ("WSPR")) { - QString sdBm,msg0,msg1,msg2; - sdBm = sdBm.asprintf(" %d",m_dBm); - m_tx=1-m_tx; - int i2=m_config.my_callsign().indexOf("/"); - if(i2>0 - || (6 == m_config.my_grid ().size () - && !ui->WSPR_prefer_type_1_check_box->isChecked ())) { - if(i2<0) { // "Type 2" WSPR message - msg1=m_config.my_callsign() + " " + m_config.my_grid().mid(0,4) + sdBm; - } else { - msg1=m_config.my_callsign() + sdBm; - } - msg0="<" + m_config.my_callsign() + "> " + m_config.my_grid()+ sdBm; - if(m_tx==0) msg2=msg0; - if(m_tx==1) msg2=msg1; - } else { - msg2=m_config.my_callsign() + " " + m_config.my_grid().mid(0,4) + sdBm; // Normal WSPR message - } - ba=msg2.toLatin1(); + ba=WSPR_message().toLatin1(); } else { if(SpecOp::HOUND == m_config.special_op_id() and m_ntx!=3) { //Hound transmits only Tx1 or Tx3 m_ntx=1; @@ -3881,6 +3866,10 @@ void MainWindow::guiUpdate() int ichk=0; int iwspr=0; char fst240msgbits[101]; + if(m_mode=="FST240W") { + ba=WSPR_message().toLatin1(); + ba2msg(ba,message); + } genfst240_(message,&ichk,msgsent,const_cast (fst240msgbits), const_cast(itone), &iwspr, 37, 37); int hmod=int(pow(2.0,double(m_nSubMode))); @@ -5841,6 +5830,7 @@ void MainWindow::on_actionFST240_triggered() void MainWindow::on_actionFST240W_triggered() { + on_actionFST240_triggered(); m_mode="FST240W"; m_modeTx="FST240W"; WSPR_config(true); @@ -5851,8 +5841,8 @@ void MainWindow::on_actionFST240W_triggered() setup_status_bar (bVHF); m_TRperiod = ui->sbTR->value (); ui->band_hopping_group_box->setVisible(false); - ui->sbTR->setMinimum(120); - ui->sbTR->setMaximum(300); + ui->sbTR_FST240W->setMinimum(15); //### 120 ?? ### + ui->sbTR_FST240W->setMaximum(300); ui->sbSubmode->setMaximum(3); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); @@ -7450,6 +7440,11 @@ void MainWindow::on_sbTR_valueChanged(int value) statusUpdate (); } +void MainWindow::on_sbTR_FST240W_valueChanged(int value) +{ + on_sbTR_valueChanged(value); +} + QChar MainWindow::current_submode () const { QChar submode {0}; @@ -9106,3 +9101,26 @@ void MainWindow::remote_configure (QString const& mode, quint32 frequency_tolera tx_watchdog (false); QApplication::alert (this); } + +QString MainWindow::WSPR_message() +{ + QString sdBm,msg0,msg1,msg2; + sdBm = sdBm.asprintf(" %d",m_dBm); + m_tx=1-m_tx; + int i2=m_config.my_callsign().indexOf("/"); + if(i2>0 + || (6 == m_config.my_grid ().size () + && !ui->WSPR_prefer_type_1_check_box->isChecked ())) { + if(i2<0) { // "Type 2" WSPR message + msg1=m_config.my_callsign() + " " + m_config.my_grid().mid(0,4) + sdBm; + } else { + msg1=m_config.my_callsign() + sdBm; + } + msg0="<" + m_config.my_callsign() + "> " + m_config.my_grid()+ sdBm; + if(m_tx==0) msg2=msg0; + if(m_tx==1) msg2=msg1; + } else { + msg2=m_config.my_callsign() + " " + m_config.my_grid().mid(0,4) + sdBm; // Normal WSPR message + } + return msg2; +} diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index b3b297c85..3e5d80747 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -299,6 +299,7 @@ private slots: void on_actionErase_reference_spectrum_triggered(); void on_actionMeasure_phase_response_triggered(); void on_sbTR_valueChanged (int); + void on_sbTR_FST240W_valueChanged (int); void on_sbFtol_valueChanged (int); void on_cbFast9_clicked(bool b); void on_sbCQTxFreq_valueChanged(int n); @@ -729,6 +730,7 @@ private: void setRig (Frequency = 0); // zero frequency means no change void WSPR_history(Frequency dialFreq, int ndecodes); QString WSPR_hhmm(int n); + QString WSPR_message(); void fast_config(bool b); void CQTxFreq(); void useNextCall(); diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index 5ac16038c..26f412448 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -184,7 +184,6 @@ void CPlotter::draw(float swide[], bool bScroll, bool bRed) if (swide[i]<1.e29) painter1.setPen(g_ColorTbl[y1]); painter1.drawPoint(i,m_j); } - m_line++; float y2min=1.e30; @@ -414,7 +413,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() float bw=9.0*12000.0/m_nsps; //JT9 if(m_mode=="FT4") bw=3*12000.0/576.0; //FT4 ### (3x, or 4x???) ### if(m_mode=="FT8") bw=7*12000.0/1920.0; //FT8 - if(m_mode=="FST240") { + if(m_mode.startsWith("FST240")) { int h=int(pow(2.0,m_nSubMode)); int nsps=800; if(m_TRperiod==30) nsps=1680; @@ -500,7 +499,8 @@ void CPlotter::DrawOverlay() //DrawOverlay() int yTxTop=12; int yRxBottom=yTxTop + 2*yh + 4; if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65" - or m_mode=="QRA64" or m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST240") { + or m_mode=="QRA64" or m_mode=="FT8" or m_mode=="FT4" + or m_mode.startsWith("FST240")) { if(m_mode=="QRA64" or (m_mode=="JT65" and m_bVHF)) { painter0.setPen(penGreen); @@ -531,18 +531,17 @@ void CPlotter::DrawOverlay() //DrawOverlay() painter0.drawLine(x1,yRxBottom-yh,x1,yRxBottom); painter0.drawLine(x1,yRxBottom,x2,yRxBottom); painter0.drawLine(x2,yRxBottom-yh,x2,yRxBottom); - if(m_mode=="FST240") { + if(m_mode.startsWith("FST240")) { x1=XfromFreq(m_rxFreq-m_tol); x2=XfromFreq(m_rxFreq+m_tol); painter0.drawLine(x1,26,x2,26); // Mark the Tol range } - } } if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65" or m_mode.mid(0,4)=="WSPR" or m_mode=="QRA64" or m_mode=="FT8" - or m_mode=="FT4" or m_mode=="FST240") { + or m_mode=="FT4" or m_mode.startsWith("FST240")) { painter0.setPen(penRed); x1=XfromFreq(m_txFreq); x2=XfromFreq(m_txFreq+bw); @@ -551,11 +550,6 @@ void CPlotter::DrawOverlay() //DrawOverlay() x1=XfromFreq(m_txFreq-0.5*bw); x2=XfromFreq(m_txFreq+0.5*bw); } - if(m_mode=="WSPR-LF") { - bw=3*12000.0/8640.0; //WSPR-LF - x1=XfromFreq(m_txFreq-0.5*bw); - x2=XfromFreq(m_txFreq+0.5*bw); - } // Draw the red "goal post" painter0.drawLine(x1,yTxTop,x1,yTxTop+yh); painter0.drawLine(x1,yTxTop,x2,yTxTop); From 8903041aa97ab61e2ccc034e91de3700465d395a Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 1 Jul 2020 12:10:42 -0400 Subject: [PATCH 198/520] Fix the startup value of TRperiod for FST240W mode. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 6b25770b8..ef5da51f2 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5839,7 +5839,7 @@ void MainWindow::on_actionFST240W_triggered() displayWidgets(nWidgets("000001000000000001010000000000000")); bool bVHF=m_config.enable_VHF_features(); setup_status_bar (bVHF); - m_TRperiod = ui->sbTR->value (); + m_TRperiod = ui->sbTR_FST240W->value (); ui->band_hopping_group_box->setVisible(false); ui->sbTR_FST240W->setMinimum(15); //### 120 ?? ### ui->sbTR_FST240W->setMaximum(300); From eb1c60e4544fede13ec165c248b84ed4cc3e4aee Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 1 Jul 2020 13:17:07 -0400 Subject: [PATCH 199/520] Remove several more vestiges of WSPR-LF mode. --- widgets/mainwindow.cpp | 3 +-- widgets/mainwindow.ui | 17 ----------------- widgets/plotter.cpp | 8 ++++---- 3 files changed, 5 insertions(+), 23 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index ef5da51f2..d6d191f08 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1564,7 +1564,6 @@ void MainWindow::dataSink(qint64 frames) void MainWindow::startP1() { - // if(WSPR-LF) ... was here p1.start (QDir::toNativeSeparators (QDir {QApplication::applicationDirPath ()}.absoluteFilePath ("wsprd")), m_cmndP1); } @@ -7959,7 +7958,7 @@ void MainWindow::WSPR_scheduling () band_hopping_label.setText (hop_data.period_name_); } else { - m_WSPR_tx_next = m_WSPR_band_hopping.next_is_tx ("WSPR-LF" == m_mode); + m_WSPR_tx_next = m_WSPR_band_hopping.next_is_tx(m_mode=="FST240W"); } } diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 2f2704c65..6bc4ad595 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -3385,23 +3385,6 @@ list. The list can be maintained in Settings (F2). Equalization tools ... - - - true - - - false - - - WSPR-LF - - - Experimental LF/MF mode - - - false - - true diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index 26f412448..41bf173fe 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -481,10 +481,10 @@ void CPlotter::DrawOverlay() //DrawOverlay() painter0.drawLine(x1,29,x2,29); } - if(m_mode=="WSPR-LF") { - x1=XfromFreq(1600); - x2=XfromFreq(1700); - painter0.drawLine(x1,29,x2,29); + if(m_mode=="FST240W") { + x1=XfromFreq(2600); + x2=XfromFreq(2700); + painter0.drawLine(x1,26,x2,26); } if(m_mode=="FreqCal") { //FreqCal From 94f5e2925c9faddb2b8601c3109c9c64c0d2b176 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 1 Jul 2020 15:04:15 -0400 Subject: [PATCH 200/520] Correct the length of id2 sent to decoder for FST240W mode. --- lib/jt9.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/jt9.f90 b/lib/jt9.f90 index dcfbb07b6..43af4673b 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -245,7 +245,7 @@ program jt9 call timer('symspec ',1) endif nhsym0=nhsym - if(nhsym.ge.181 .and. mode.ne.240) exit + if(nhsym.ge.181 .and. mode.ne.240 .and. mode.ne.241) exit endif enddo close(unit=wav%lun) From 0608521751cf2784d61c2f24e141c105fd85f1dc Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 1 Jul 2020 15:12:14 -0400 Subject: [PATCH 201/520] Remove unused references to WSPR_LF. --- widgets/mainwindow.cpp | 1 - widgets/mainwindow.h | 1 - 2 files changed, 2 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index d6d191f08..f5f8a1139 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -589,7 +589,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->actionJT9_JT65->setActionGroup(modeGroup); ui->actionJT4->setActionGroup(modeGroup); ui->actionWSPR->setActionGroup(modeGroup); - ui->actionWSPR_LF->setActionGroup(modeGroup); ui->actionEcho->setActionGroup(modeGroup); ui->actionISCAT->setActionGroup(modeGroup); ui->actionMSK144->setActionGroup(modeGroup); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 3e5d80747..646486fb5 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -43,7 +43,6 @@ #define NUM_JT65_SYMBOLS 126 //63 data + 63 sync #define NUM_JT9_SYMBOLS 85 //69 data + 16 sync #define NUM_WSPR_SYMBOLS 162 //(50+31)*2, embedded sync -#define NUM_WSPR_LF_SYMBOLS 412 //300 data + 109 sync + 3 ramp #define NUM_ISCAT_SYMBOLS 1291 //30*11025/256 #define NUM_MSK144_SYMBOLS 144 //s8 + d48 + s8 + d80 #define NUM_QRA64_SYMBOLS 84 //63 data + 21 sync From 6ebb487cd55fd8368449e52953eed903f5acc1ad Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Wed, 1 Jul 2020 14:40:37 -0500 Subject: [PATCH 202/520] Remove residual WSPR_LF that was causing build errors. Build ldpcsim240_74. --- CMakeLists.txt | 3 +++ lib/fst240/fst240sim.f90 | 5 ++--- lib/fst240/ldpcsim240_74.f90 | 6 +++--- lib/fst240_decode.f90 | 2 +- widgets/mainwindow.cpp | 2 +- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 87b8509ff..99e160a4e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1371,6 +1371,9 @@ target_link_libraries (fst240sim wsjt_fort wsjt_cxx) add_executable (ldpcsim240_101 lib/fst240/ldpcsim240_101.f90 wsjtx.rc) target_link_libraries (ldpcsim240_101 wsjt_fort wsjt_cxx) +add_executable (ldpcsim240_74 lib/fst240/ldpcsim240_74.f90 wsjtx.rc) +target_link_libraries (ldpcsim240_74 wsjt_fort wsjt_cxx) + endif(WSJT_BUILD_UTILS) # build the main application diff --git a/lib/fst240/fst240sim.f90 b/lib/fst240/fst240sim.f90 index ceefa00e8..b0790a768 100644 --- a/lib/fst240/fst240sim.f90 +++ b/lib/fst240/fst240sim.f90 @@ -75,9 +75,8 @@ program fst240sim n3=-1 call pack77(msg37,i3,n3,c77) call genfst240(msg37,0,msgsent37,msgbits,itone,iwspr) - write(*,*) - write(*,'(a9,a37)') 'Message: ',msgsent37 + write(*,'(a9,a37,a7,i2)') 'Message: ',msgsent37,' iwspr:',iwspr write(*,1000) f00,xdt,hmod,txt,snrdb 1000 format('f0:',f9.3,' DT:',f6.2,' hmod:',i6,' TxT:',f6.1,' SNR:',f6.1) write(*,*) @@ -86,7 +85,7 @@ program fst240sim write(*,'(28i1,1x,i1,1x,28i1,1x,i1,1x,i1,1x,15i1,1x,3i1)') msgbits(1:77) else write(*,'(a14)') 'Message bits: ' - write(*,'(50i1,1x,24i1)') msgbits + write(*,'(77i1,1x,24i1)') msgbits endif write(*,*) write(*,'(a17)') 'Channel symbols: ' diff --git a/lib/fst240/ldpcsim240_74.f90 b/lib/fst240/ldpcsim240_74.f90 index 743dff34b..78e8e6b5f 100644 --- a/lib/fst240/ldpcsim240_74.f90 +++ b/lib/fst240/ldpcsim240_74.f90 @@ -52,9 +52,9 @@ program ldpcsim240_74 write(*,*) "K : ",Keff msgbits=0 - read(c77,'(77i1)') msgbits(1:77) + read(c77,'(50i1)') msgbits(1:50) write(*,*) 'message' - write(*,'(77i1)') msgbits(1:77) + write(*,'(50i1)') msgbits(1:50) call get_crc24(msgbits,74,ncrc24) write(c24,'(b24.24)') ncrc24 @@ -118,7 +118,7 @@ write(*,'(24i1)') msgbits(51:74) ! snr2500=db+10*log10(200.0/116.0/2500.0) esn0=db+10*log10(rate) pberr=real(nberr)/(real(ntrials*N)) - write(*,"(f4.1,4x,f5.1,1x,i8,1x,i8,8x,f5.2,8x,e10.3)") db,esn0,ngood,nue,ss,pberr + write(*,"(f4.1,4x,f5.1,1x,i8,1x,i8,8x,e10.3)") db,esn0,ngood,nue,pberr enddo diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 09b16c2ef..2cb182b38 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -553,7 +553,7 @@ contains nsnr=nint(xsnr) qual=0. fsig=fc_synced - 1.5*hmod*baud -!write(21,'(i6,7i6,f7.1,f9.2,3f7.1,1x,a37)') & +!write(21,'(i6,7i6,f7.1,f9.2,f7.1,1x,f7.2,1x,f7.1,1x,a37)') & ! nutc,icand,itry,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & iaptype,qual,ntrperiod,lwspr) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index d6d191f08..54a16d735 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -589,7 +589,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->actionJT9_JT65->setActionGroup(modeGroup); ui->actionJT4->setActionGroup(modeGroup); ui->actionWSPR->setActionGroup(modeGroup); - ui->actionWSPR_LF->setActionGroup(modeGroup); + ui->actionWSPR->setActionGroup(modeGroup); ui->actionEcho->setActionGroup(modeGroup); ui->actionISCAT->setActionGroup(modeGroup); ui->actionMSK144->setActionGroup(modeGroup); From e63b04bb44ee147b360d458f396380ba1c9e3272 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 1 Jul 2020 15:46:17 -0400 Subject: [PATCH 203/520] Post FSt240W decodes to PSK Reporter. --- widgets/mainwindow.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index f5f8a1139..90dba7a9d 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3196,7 +3196,6 @@ void MainWindow::readFromStdout() //readFromStdout } m_tBlankLine = line_read.left(ntime); } - DecodedText decodedtext0 {QString::fromUtf8(line_read.constData())}; DecodedText decodedtext {QString::fromUtf8(line_read.constData()).remove("TU; ")}; @@ -3355,8 +3354,15 @@ void MainWindow::readFromStdout() //readFromStdout // extract details and send to PSKreporter int nsec=QDateTime::currentMSecsSinceEpoch()/1000-m_secBandChanged; bool okToPost=(nsec > int(4*m_TRperiod)/5); - if (stdMsg && okToPost) pskPost(decodedtext); - + if(m_mode=="FST240W" and okToPost) { + line_read=line_read.left(22) + " CQ " + line_read.trimmed().mid(22); + int n=line_read.trimmed().size(); + line_read=line_read.trimmed().left(n-3); + DecodedText FST240W_post {QString::fromUtf8(line_read.constData())}; + pskPost(FST240W_post); + } else { + if (stdMsg && okToPost) pskPost(decodedtext); + } if((m_mode=="JT4" or m_mode=="JT65" or m_mode=="QRA64") and m_msgAvgWidget!=NULL) { if(m_msgAvgWidget->isVisible()) { QFile f(m_config.temp_dir ().absoluteFilePath ("avemsg.txt")); @@ -3446,7 +3452,7 @@ void MainWindow::auto_sequence (DecodedText const& message, unsigned start_toler void MainWindow::pskPost (DecodedText const& decodedtext) { - if (m_diskData || !m_config.spot_to_psk_reporter() || decodedtext.isLowConfidence ()) return; +//### if (m_diskData || !m_config.spot_to_psk_reporter() || decodedtext.isLowConfidence ()) return; QString msgmode=m_mode; if(m_mode=="JT9+JT65") { @@ -3463,6 +3469,7 @@ void MainWindow::pskPost (DecodedText const& decodedtext) int snr = decodedtext.snr(); Frequency frequency = m_freqNominal + audioFrequency; pskSetLocal (); +// qDebug() << "bb" << deCall << grid << frequency << msgmode << snr; if(grid.contains (grid_regexp)) { // qDebug() << "To PSKreporter:" << deCall << grid << frequency << msgmode << snr; psk_Reporter->addRemoteStation(deCall,grid,QString::number(frequency),msgmode, From e74595fdd5a03544d53b8737b0046d243cd51466 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Wed, 1 Jul 2020 16:42:22 -0500 Subject: [PATCH 204/520] Discard the all-zero codeword. --- lib/fst240_decode.f90 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 2cb182b38..6d44f0cb7 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -515,6 +515,10 @@ contains endif if(nharderrors .ge.0) then + if(count(cw.eq.1).eq.0) then + nharderrors=-nharderrors + cycle + endif if(iqorw.eq.1) then write(c77,'(77i1)') mod(message101(1:77)+rvec,2) call unpack77(c77,0,msg,unpk77_success) From 860224e89006a86611cbaee7d0771ace2e71048f Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 2 Jul 2020 09:39:11 -0400 Subject: [PATCH 205/520] Many changes to make FST240W behave in most ways like WSPR. Needs testing! --- widgets/mainwindow.cpp | 130 +++++++++++++++-------------------------- 1 file changed, 48 insertions(+), 82 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 90dba7a9d..42d839c14 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -134,8 +134,6 @@ extern "C" { void genwspr_(char* msg, char* msgsent, int itone[], fortran_charlen_t, fortran_charlen_t); -// void genwspr_fsk8_(char* msg, char* msgsent, int itone[], fortran_charlen_t, fortran_charlen_t); - void geniscat_(char* msg, char* msgsent, int itone[], fortran_charlen_t, fortran_charlen_t); void azdist_(char* MyGrid, char* HisGrid, double* utch, int* nAz, int* nEl, @@ -968,7 +966,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_max_dB=70; m_CQtype="CQ"; - if(m_mode.startsWith ("WSPR") and m_pctx>0) { + if(m_mode=="WSPR" and m_pctx>0) { QPalette palette {ui->sbTxPercent->palette ()}; palette.setColor(QPalette::Base,Qt::yellow); ui->sbTxPercent->setPalette(palette); @@ -1047,15 +1045,12 @@ void MainWindow::on_the_minute () } } - if (m_config.watchdog () && !m_mode.startsWith ("WSPR")) - { - if (m_idleMinutes < m_config.watchdog ()) ++m_idleMinutes; - update_watchdog_label (); - } - else - { - tx_watchdog (false); - } + if (m_config.watchdog () && m_mode!="WSPR" && m_mode!="FST240W") { + if (m_idleMinutes < m_config.watchdog ()) ++m_idleMinutes; + update_watchdog_label (); + } else { + tx_watchdog (false); + } } //--------------------------------------------------- MainWindow destructor @@ -1395,14 +1390,12 @@ void MainWindow::dataSink(qint64 frames) bool bLowSidelobes=m_config.lowSidelobes(); symspec_(&dec_data,&k,&m_TRperiod,&nsps,&m_inGain,&bLowSidelobes,&nsmo,&m_px,s, &m_df3,&m_ihsym,&m_npts8,&m_pxmax); - if(m_mode=="WSPR") wspr_downsample_(dec_data.d2,&k); + if(m_mode=="WSPR" or m_mode=="FST240W") wspr_downsample_(dec_data.d2,&k); if(m_ihsym <=0) return; if(ui) ui->signal_meter_widget->setValue(m_px,m_pxmax); // Update thermometer if(m_monitoring || m_diskData) { m_wideGraph->dataSink2(s,m_df3,m_ihsym,m_diskData); } -// if(m_mode=="FT4") ft4_rx(k); -// if(m_mode=="MSK144" or m_mode=="FT4") return; if(m_mode=="MSK144") return; fixStop(); @@ -1501,10 +1494,11 @@ void MainWindow::dataSink(qint64 frames) if(m_mode=="FT8" and m_ihsym==m_earlyDecode2 and !m_diskData) dec_data.params.nzhsym=m_earlyDecode2; QDateTime now {QDateTime::currentDateTimeUtc ()}; m_dateTime = now.toString ("yyyy-MMM-dd hh:mm"); - if(!m_mode.startsWith ("WSPR")) decode(); //Start decoder + if(m_mode!="WSPR") decode(); //Start decoder + if(m_mode=="FT8" and !m_diskData and (m_ihsym==m_earlyDecode or m_ihsym==m_earlyDecode2)) return; - if(!m_diskData and (m_saveAll or m_saveDecoded or m_mode=="WSPR")) { //Always save unless "Save None"; may delete later -// if(m_mode=="FT8" or m_mode=="FT4") { + if(!m_diskData and (m_saveAll or m_saveDecoded or m_mode=="WSPR" or m_mode=="FST240W")) { + //Always save unless "Save None"; may delete later if(m_TRperiod < 60) { int n=fmod(double(now.time().second()),m_TRperiod); if(n<(m_TRperiod/2)) n=n+m_TRperiod; @@ -1522,7 +1516,7 @@ void MainWindow::dataSink(qint64 frames) m_saveWAVWatcher.setFuture (QtConcurrent::run (std::bind (&MainWindow::save_wave_file, this, m_fnameWE, &dec_data.d2[0], samples, m_config.my_callsign(), m_config.my_grid(), m_mode, m_nSubMode, m_freqNominal, m_hisCall, m_hisGrid))); - if (m_mode=="WSPR") { + if (m_mode=="WSPR" or m_mode=="FST240W") { QString c2name_string {m_fnameWE + ".c2"}; int len1=c2name_string.length(); char c2name[80]; @@ -1534,7 +1528,7 @@ void MainWindow::dataSink(qint64 frames) if (err!=0) MessageBox::warning_message (this, tr ("Error saving c2 file"), c2name); } } - if(m_mode.startsWith ("WSPR")) { + if(m_mode=="WSPR") { QStringList t2; QStringList depth_args; t2 << "-f" << QString {"%1"}.arg (m_dialFreqRxWSPR / 1000000.0, 0, 'f', 6); @@ -1588,7 +1582,7 @@ QString MainWindow::save_wave_file (QString const& name, short const * data, int ? QString {", Sub Mode="} + QChar {'A' + sub_mode} : QString {}}) .arg (Radio::frequency_MHz_string (frequency)) - .arg (QString {!mode.startsWith ("WSPR") ? QString {", DXCall=%1, DXGrid=%2"} + .arg (QString {mode!="WSPR" ? QString {", DXCall=%1, DXGrid=%2"} .arg (his_call) .arg (his_grid).toLocal8Bit () : ""}); BWFFile::InfoDictionary list_info { @@ -1876,7 +1870,7 @@ void MainWindow::on_autoButton_clicked (bool checked) m_nclearave=1; echocom_.nsum=0; } - if(m_mode.startsWith ("WSPR")) { + if(m_mode=="WSPR" or m_mode=="FST240W") { QPalette palette {ui->sbTxPercent->palette ()}; if(m_auto or m_pctx==0) { palette.setColor(QPalette::Base,Qt::white); @@ -2139,7 +2133,7 @@ void MainWindow::bumpFqso(int n) //bumpFqso() if (ui->RxFreqSpinBox->isEnabled ()) { ui->RxFreqSpinBox->setValue (i); } - if(ctrl and m_mode.startsWith ("WSPR")) { + if(ctrl and m_mode=="WSPR") { ui->WSPRfreqSpinBox->setValue(i); } else { if(ctrl and bTrackTx) { @@ -2324,7 +2318,7 @@ void MainWindow::setup_status_bar (bool vhf) last_tx_label.setText (QString {}); if (m_mode.contains (QRegularExpression {R"(^(Echo|ISCAT))"})) { if (band_hopping_label.isVisible ()) statusBar ()->removeWidget (&band_hopping_label); - } else if (m_mode.startsWith ("WSPR")) { + } else if (m_mode=="WSPR") { mode_label.setStyleSheet ("QLabel{background-color: #ff66ff}"); if (!band_hopping_label.isVisible ()) { statusBar ()->addWidget (&band_hopping_label); @@ -2534,7 +2528,7 @@ void MainWindow::hideMenus(bool checked) minimumSize().setWidth(770); } ui->menuBar->setVisible(!checked); - if(m_mode!="FreqCal" and m_mode!="WSPR") { + if(m_mode!="FreqCal" and m_mode!="WSPR" and m_mode!="FSt240W") { ui->label_6->setVisible(!checked); ui->label_7->setVisible(!checked); ui->decodedTextLabel2->setVisible(!checked); @@ -2844,7 +2838,7 @@ void MainWindow::on_DecodeButton_clicked (bool /* checked */) //Decode request if(m_mode=="MSK144") { ui->DecodeButton->setChecked(false); } else { - if(!m_mode.startsWith ("WSPR") && !m_decoderBusy) { + if(m_mode!="WSPR" && !m_decoderBusy) { dec_data.params.newdat=0; dec_data.params.nagain=1; decode(); @@ -3482,7 +3476,7 @@ void MainWindow::killFile () if (m_fnameWE.size () && !(m_saveAll || (m_saveDecoded && m_bDecoded))) { QFile f1 {m_fnameWE + ".wav"}; if(f1.exists()) f1.remove(); - if(m_mode.startsWith ("WSPR")) { + if(m_mode=="WSPR" or m_mode=="FST240W") { QFile f2 {m_fnameWE + ".c2"}; if(f2.exists()) f2.remove(); } @@ -3493,7 +3487,7 @@ void MainWindow::on_EraseButton_clicked () { qint64 ms=QDateTime::currentMSecsSinceEpoch(); ui->decodedTextBrowser2->erase (); - if(m_mode.startsWith ("WSPR") or m_mode=="Echo" or m_mode=="ISCAT") { + if(m_mode=="WSPR" or m_mode=="Echo" or m_mode=="ISCAT" or m_mode=="FST240W") { ui->decodedTextBrowser->erase (); } else { if((ms-m_msErase)<500) { @@ -3564,7 +3558,7 @@ void MainWindow::guiUpdate() if((icw[0]>0) and (!m_bFast9)) tx2 += icw[0]*2560.0/48000.0; //Full length including CW ID if(tx2>m_TRperiod) tx2=m_TRperiod; - if(!m_txFirst and !m_mode.startsWith ("WSPR")) { + if(!m_txFirst and m_mode!="WSPR" and m_mode!="FST240W") { tx1 += m_TRperiod; tx2 += m_TRperiod; } @@ -3585,7 +3579,7 @@ void MainWindow::guiUpdate() if(m_transmitting) m_bEchoTxed=true; } - if(m_mode.startsWith ("WSPR")) { + if(m_mode=="WSPR" or m_mode=="FST240W") { if(m_nseq==0 and m_ntr==0) { //Decide whether to Tx or Rx m_tuneup=false; //This is not an ATU tuneup if(m_pctx==0) m_WSPR_tx_next = false; //Don't transmit if m_pctx=0 @@ -3598,16 +3592,16 @@ void MainWindow::guiUpdate() m_ntr=-1; //This says we will have transmitted m_txNext=false; ui->pbTxNext->setChecked(false); - m_bTxTime=true; //Start a WSPR Tx sequence + m_bTxTime=true; //Start a WSPR or FST240W Tx sequence } else { -// This will be a WSPR Rx sequence. +// This will be a WSPR or FST240W Rx sequence. m_ntr=1; //This says we will have received - m_bTxTime=false; //Start a WSPR Rx sequence + m_bTxTime=false; //Start a WSPR or FST240W Rx sequence } } } else { -// For all modes other than WSPR +// For all modes other than WSPR and FSt240W m_bTxTime = (t2p >= tx1) and (t2p < tx2); if(m_mode=="Echo") m_bTxTime = m_bTxTime and m_bEchoTxOK; if(m_mode=="FT8" and ui->tx5->currentText().contains("/B ")) { @@ -3627,8 +3621,7 @@ void MainWindow::guiUpdate() // Don't transmit another mode in the 30 m WSPR sub-band Frequency onAirFreq = m_freqNominal + ui->TxFreqSpinBox->value(); - if ((onAirFreq > 10139900 and onAirFreq < 10140320) and - !m_mode.startsWith ("WSPR")) { + if ((onAirFreq > 10139900 and onAirFreq < 10140320) and m_mode!="WSPR") { m_bTxTime=false; if (m_auto) auto_tx_mode (false); if(onAirFreq!=m_onAirFreq0) { @@ -3661,7 +3654,7 @@ void MainWindow::guiUpdate() } } - if (m_config.watchdog() && !m_mode.startsWith ("WSPR") + if (m_config.watchdog() && m_mode!="WSPR" && m_mode!="FST240W" && m_idleMinutes >= m_config.watchdog ()) { tx_watchdog (true); // disable transmit } @@ -3733,19 +3726,19 @@ void MainWindow::guiUpdate() if(!m_bTxTime and !m_tune) m_btxok=false; //Time to stop transmitting } - if(m_mode.startsWith ("WSPR") and + if((m_mode=="WSPR" or m_mode=="FST240W") and ((m_ntr==1 and m_rxDone) or (m_ntr==-1 and m_nseq>tx2))) { if(m_monitoring) { m_rxDone=false; } if(m_transmitting) { WSPR_history(m_freqNominal,-1); - m_bTxTime=false; //Time to stop a WSPR transmission + m_bTxTime=false; //Time to stop a WSPR or FST240W transmission m_btxok=false; } else if (m_ntr != -1) { WSPR_scheduling (); - m_ntr=0; //This WSPR Rx sequence is complete + m_ntr=0; //This WSPR or FST240W Rx sequence is complete } } @@ -3756,7 +3749,7 @@ void MainWindow::guiUpdate() QByteArray ba; QByteArray ba0; - if(m_mode.startsWith ("WSPR")) { + if(m_mode=="WSPR") { ba=WSPR_message().toLatin1(); } else { if(SpecOp::HOUND == m_config.special_op_id() and m_ntx!=3) { //Hound transmits only Tx1 or Tx3 @@ -4022,7 +4015,7 @@ void MainWindow::guiUpdate() } if (g_iptt == 1 && m_iptt0 == 0) { auto const& current_message = QString::fromLatin1 (msgsent); - if(m_config.watchdog () && !m_mode.startsWith ("WSPR") + if(m_config.watchdog () && m_mode!="WSPR" && m_mode!="FST240W" && current_message != m_msgSent0) { tx_watchdog (false); // in case we are auto sequencing m_msgSent0 = current_message; @@ -4211,7 +4204,7 @@ void MainWindow::startTx2() ui->signal_meter_widget->setValue(0,0); if(m_mode=="Echo" and !m_tune) m_bTransmittedEcho=true; - if(m_mode.startsWith ("WSPR") and !m_tune) { + if((m_mode=="WSPR" or m_mode=="FST240W") and !m_tune) { if (m_config.TX_messages ()) { t = " Transmitting " + m_mode + " ----------------------- " + m_config.bands ()->find (m_freqNominal); @@ -4247,7 +4240,7 @@ void MainWindow::stopTx2() on_stopTxButton_clicked (); m_nTx73 = 0; } - if((m_mode.startsWith("WSPR") and m_ntr==-1) and !m_tuneup) { + if(((m_mode=="WSPR" or m_mode=="FST240W") and m_ntr==-1) and !m_tuneup) { m_wideGraph->setWSPRtransmitted(); WSPR_scheduling (); m_ntr=0; @@ -6140,8 +6133,8 @@ void MainWindow::on_actionJT9_JT65_triggered() void MainWindow::on_actionJT65_triggered() { - if(m_mode=="JT4" or m_mode.startsWith ("WSPR")) { -// If coming from JT4 or WSPR mode, pretend temporarily that we're coming + if(m_mode=="JT4" or m_mode=="WSPR" or m_mode=="FST240W") { +// If coming from JT4, WSPR, or FST240W mode, pretend temporarily that we're coming // from JT9 and click the pbTxMode button m_modeTx="JT9"; on_pbTxMode_clicked(); @@ -6269,7 +6262,9 @@ void MainWindow::on_actionMSK144_triggered() if("QRA64"==m_mode) ui->actionQRA64->setChecked(true); if("WSPR"==m_mode) ui->actionWSPR->setChecked(true); if("Echo"==m_mode) ui->actionEcho->setChecked(true); - if("FreqCal"==m_mode) ui->actionFreqCal->setChecked(true); + if("FreqCal"==m_mode) ui->actionFreqCal->setChecked(true); + if("FST240"==m_mode) ui->actionFST240->setChecked(true); + if("FST240W"==m_mode) ui->actionFST240W->setChecked(true); // Make sure that MSK144 is not checked. ui->actionMSK144->setChecked(false); MessageBox::warning_message (this, tr ("Improper mode"), @@ -6655,7 +6650,7 @@ void MainWindow::band_changed (Frequency f) } if (m_bandEdited) { - if (!m_mode.startsWith ("WSPR")) { // band hopping preserves auto Tx + if (m_mode!="WSPR") { // band hopping preserves auto Tx if (f + m_wideGraph->nStartFreq () > m_freqNominal + ui->TxFreqSpinBox->value () || f + m_wideGraph->nStartFreq () + m_wideGraph->fSpan () <= m_freqNominal + ui->TxFreqSpinBox->value ()) { @@ -6681,7 +6676,7 @@ void MainWindow::band_changed (Frequency f) void MainWindow::enable_DXCC_entity (bool on) { - if (on and !m_mode.startsWith ("WSPR") and m_mode!="Echo") { + if (on and m_mode!="WSPR" and m_mode!="FST240W" and m_mode!="Echo") { //m_logBook.init(); // re-read the log and cty.dat files // ui->gridLayout->setColumnStretch(0,55); // adjust proportions of text displays // ui->gridLayout->setColumnStretch(1,45); @@ -6965,7 +6960,7 @@ void MainWindow::setXIT(int n, Frequency base) void MainWindow::setFreq4(int rxFreq, int txFreq) { if (ui->RxFreqSpinBox->isEnabled ()) ui->RxFreqSpinBox->setValue(rxFreq); - if(m_mode.startsWith ("WSPR")) { + if(m_mode=="WSPR" or m_mode=="FST240W") { ui->WSPRfreqSpinBox->setValue(txFreq); } else { if (ui->TxFreqSpinBox->isEnabled ()) { @@ -7036,30 +7031,6 @@ void MainWindow::handle_transceiver_update (Transceiver::TransceiverState const& || !(ui->cbCQTx->isEnabled () && ui->cbCQTx->isVisible () && ui->cbCQTx->isChecked()))) { m_lastDialFreq = m_freqNominal; m_secBandChanged=QDateTime::currentMSecsSinceEpoch()/1000; - /* - if(s.frequency () < 30000000u && !m_mode.startsWith ("WSPR")) { - // Write freq changes to ALL.TXT only below 30 MHz. - QFile f2 {m_config.writeable_data_dir ().absoluteFilePath ("ALL.TXT")}; - if (f2.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { - QTextStream out(&f2); - out << QDateTime::currentDateTimeUtc().toString("yyyy-MM-dd hh:mm") - << " " << qSetRealNumberPrecision (12) << (m_freqNominal / 1.e6) << " MHz " - << m_mode -#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) - << Qt::endl -#else - << endl -#endif - ; - f2.close(); - } else { - MessageBox::warning_message (this, tr ("File Error") - ,tr ("Cannot open \"%1\" for append: %2") - .arg (f2.fileName ()).arg (f2.errorString ())); - } - } - */ - if (m_config.spot_to_psk_reporter ()) { pskSetLocal (); } @@ -7369,14 +7340,9 @@ void MainWindow::transmitDisplay (bool transmitting) ui->pbT2R->setEnabled (QSY_allowed); } - if (!m_mode.startsWith ("WSPR")) { + if (m_mode!="WSPR" and m_mode!="FST240W") { if(m_config.enable_VHF_features ()) { -//### During tests, at least, allow use of Tx Freq spinner with VHF features enabled. - // used fixed 1000Hz Tx DF for VHF & up QSO modes -// ui->TxFreqSpinBox->setValue(1000); -// ui->TxFreqSpinBox->setEnabled (false); ui->TxFreqSpinBox->setEnabled (true); -//### } else { ui->TxFreqSpinBox->setEnabled (QSY_allowed and !m_bFastMode); ui->pbR2T->setEnabled (QSY_allowed); @@ -7644,7 +7610,7 @@ void MainWindow::replayDecodes () if (message.size() >= 4 && message.left (4) != "----") { auto const& parts = message.split (' ', SkipEmptyParts); - if (parts.size () >= 5 && parts[3].contains ('.')) // WSPR + if (parts.size () >= 5 && parts[3].contains ('.')) // { postWSPRDecode (false, parts); } @@ -8219,7 +8185,7 @@ void MainWindow::tx_watchdog (bool triggered) void MainWindow::update_watchdog_label () { - if (m_config.watchdog () && !m_mode.startsWith ("WSPR")) + if (m_config.watchdog () && m_mode!="WSPR" && m_mode!="FST240W") { watchdog_label.setText (tr ("WD:%1m").arg (m_config.watchdog () - m_idleMinutes)); watchdog_label.setVisible (true); From 6d0d21670eea798ea7dbfc6979e8b247807526ac Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 2 Jul 2020 08:45:37 -0500 Subject: [PATCH 206/520] Change noise_bw to xnoise_bw so that it is real. --- lib/fst240_decode.f90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 6d44f0cb7..d715188c5 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -711,14 +711,14 @@ contains ib=nint(min(4800.0,fb)/df2) !High frequency limit signal_bw=4*(12000.0/nsps)*hmod analysis_bw=min(4800.0,fb)-max(100.0,fa) - noise_bw=10.0*signal_bw !Is this a good compromise? - if(analysis_bw.gt.noise_bw) then + xnoise_bw=10.0*signal_bw !Is this a good compromise? + if(analysis_bw.gt.xnoise_bw) then ina=ia inb=ib else fcenter=(fa+fb)/2.0 !If noise_bw > analysis_bw, - fl = max(100.0,fcenter-noise_bw/2.)/df2 !we'll search over noise_bw - fh = min(4800.0,fcenter+noise_bw/2.)/df2 + fl = max(100.0,fcenter-xnoise_bw/2.)/df2 !we'll search over noise_bw + fh = min(4800.0,fcenter+xnoise_bw/2.)/df2 ina=nint(fl) inb=nint(fh) endif From 3f1fd6e2c1073efa6e46a3b41052fdc8cb34bd77 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 2 Jul 2020 11:54:10 -0500 Subject: [PATCH 207/520] Tweaks to decrease the number of garbage candidates slightly. --- lib/fst240_decode.f90 | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index d715188c5..e3d74f3ce 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -270,9 +270,6 @@ contains endif minsync=1.25 - if(iqorw.eq.2) then - minsync=1.2 - endif ! Get first approximation of candidate frequencies call get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & @@ -412,7 +409,7 @@ contains ns4=count(hbits(229:244).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) nsync_qual=ns1+ns2+ns3+ns4+ns5 - if(nsync_qual.lt. 44) cycle !### Value ?? ### + if(nsync_qual.lt. 46) cycle !### Value ?? ### scalefac=2.83 llra( 1: 60)=bitmetrics( 17: 76, 1) @@ -559,6 +556,7 @@ contains fsig=fc_synced - 1.5*hmod*baud !write(21,'(i6,7i6,f7.1,f9.2,f7.1,1x,f7.2,1x,f7.1,1x,a37)') & ! nutc,icand,itry,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg +!flush(21) call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & iaptype,qual,ntrperiod,lwspr) goto 2002 @@ -748,10 +746,11 @@ contains ! Find candidates, using the CLEAN algorithm to remove a model of each one ! from s2() after it has been found. pval=99.99 - do while(ncand.lt.100 .and. pval.gt.minsync) + do while(ncand.lt.100) im=maxloc(s2(ia:ib)) iploc=ia+im(1)-1 !Index of CCF peak pval=s2(iploc) !Peak value + if(pval.lt.minsync) exit if(s2(iploc).gt.thresh) then !Is this a possible candidate? do i=-3,+3 !Remove 0.9 of a model CCF at k=iploc+2*hmod*i !this frequency from s2() From ee013f8687d572438975188bf9fa2de12307ca59 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 2 Jul 2020 13:29:43 -0400 Subject: [PATCH 208/520] Remove an unused action. --- widgets/mainwindow.ui | 5 ----- 1 file changed, 5 deletions(-) diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 6bc4ad595..7e0fc103a 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -3489,11 +3489,6 @@ list. The list can be maintained in Settings (F2). FST240 - - - FST240-W - - FT240W From 185cf3eb4874511fe1330c5688592cb3d7131e97 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 2 Jul 2020 13:30:18 -0400 Subject: [PATCH 209/520] "Also FST240W" should set iwspr=2, not 1. Change ndeep to ndepth, for consistency. --- lib/decoder.f90 | 2 +- lib/fst240_decode.f90 | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index fa50decdb..1e9245553 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -191,7 +191,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) ! We're in FST240 mode ndepth=iand(params%ndepth,3) iwspr=0 - if(iand(params%ndepth,128).ne.0) iwspr=1 + if(iand(params%ndepth,128).ne.0) iwspr=2 call timer('dec240 ',0) call my_fst240%decode(fst240_decoded,id2,params%nutc, & params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index e3d74f3ce..6820e8a16 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -28,7 +28,7 @@ module fst240_decode contains subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfqso, & - nfa,nfb,nsubmode,ndeep,ntrperiod,nexp_decode,ntol,nzhsym, & + nfa,nfb,nsubmode,ndepth,ntrperiod,nexp_decode,ntol,nzhsym, & emedelay,lapcqonly,napwid,mycall,hiscall,nfsplit,iwspr) use timer_module, only: timer @@ -80,6 +80,7 @@ contains this%callback => callback + print*,'AAA',iwspr,ndepth dxcall13=hiscall ! initialize for use in packjt77 mycall13=mycall @@ -216,17 +217,17 @@ contains allocate( cframe(0:160*nss-1) ) - if(ndeep.eq.3) then + if(ndepth.eq.3) then nblock=1 if(hmod.eq.1) nblock=4 ! number of block sizes to try jittermax=2 norder=3 - elseif(ndeep.eq.2) then + elseif(ndepth.eq.2) then nblock=1 if(hmod.eq.1) nblock=3 jittermax=0 norder=3 - elseif(ndeep.eq.1) then + elseif(ndepth.eq.1) then nblock=1 jittermax=0 norder=3 @@ -238,7 +239,7 @@ contains r_data(nfft1+1:nfft1+2)=0.0 call four2a(r_data,nfft1,1,-1,0) c_bigfft=cmplx(r_data(1:nfft1+2:2),r_data(2:nfft1+2:2)) -! write(*,3001) iwspr,nfa,nfb,nfsplit,ndeep +! write(*,3001) iwspr,nfa,nfb,nfsplit,ndepth !3001 format('a',5i5) ! iwspr=1 !### For hardwired tests ### if(iwspr.eq.0) then @@ -436,7 +437,7 @@ contains apmag=maxval(abs(llra))*1.1 ntmax=nblock+nappasses(nQSOProgress) if(lapcqonly) ntmax=nblock+1 - if(ndeep.eq.1) ntmax=nblock + if(ndepth.eq.1) ntmax=nblock apmask=0 if(iqorw.eq.2) then ! 50-bit msgs, no ap decoding From 352b4973996864d634d5be950f4856f44039323b Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 2 Jul 2020 13:43:50 -0400 Subject: [PATCH 210/520] Remove a diagnostic print. --- lib/fst240_decode.f90 | 1 - widgets/mainwindow.cpp | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 6820e8a16..8fca098e6 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -80,7 +80,6 @@ contains this%callback => callback - print*,'AAA',iwspr,ndepth dxcall13=hiscall ! initialize for use in packjt77 mycall13=mycall diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 42d839c14..398ae24fc 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5821,6 +5821,7 @@ void MainWindow::on_actionFST240_triggered() ui->cbAutoSeq->setChecked(true); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); + m_wideGraph->setPeriod(m_TRperiod,6912); switch_mode (Modes::FST240); m_wideGraph->setMode(m_mode); statusChanged(); From 34055d331a2e109d2b1f224b27408f53eff31cd3 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 2 Jul 2020 13:48:35 -0400 Subject: [PATCH 211/520] Send TRperiod to WideGraph when entering FST240 and FST240W modes. --- widgets/mainwindow.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 398ae24fc..6041ca0db 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5845,6 +5845,7 @@ void MainWindow::on_actionFST240W_triggered() ui->sbSubmode->setMaximum(3); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); + m_wideGraph->setPeriod(m_TRperiod,6912); switch_mode (Modes::FST240W); statusChanged(); } From 8b2b1eb3783765e244c06316802dd38a2780171f Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 2 Jul 2020 14:03:00 -0400 Subject: [PATCH 212/520] FST240W should always set RxFreq=1500 and FTol=100. --- widgets/mainwindow.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 6041ca0db..ef865efc8 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5846,6 +5846,8 @@ void MainWindow::on_actionFST240W_triggered() m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); m_wideGraph->setPeriod(m_TRperiod,6912); + ui->sbFtol->setValue(100); + ui->RxFreqSpinBox->setValue(1500); switch_mode (Modes::FST240W); statusChanged(); } From 1a82b9b24d7a129cd36d99929424af6ee700cabb Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 2 Jul 2020 14:11:35 -0400 Subject: [PATCH 213/520] Change the label for decoded text panel in FST240W mode. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index ef865efc8..cc9805227 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -6456,7 +6456,7 @@ void MainWindow::WSPR_config(bool b) ui->logQSOButton->setVisible(!b); ui->DecodeButton->setEnabled(!b); ui->band_hopping_group_box->setVisible(true); - if(b and (m_mode!="Echo")) { + if(b and m_mode!="Echo" and m_mode!="FST240W") { QString t="UTC dB DT Freq Drift Call Grid dBm "; if(m_config.miles()) t += " mi"; if(!m_config.miles()) t += " km"; From ab2371a96b6984755c3d55199f019d8c4e1343ea Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 2 Jul 2020 14:57:46 -0400 Subject: [PATCH 214/520] Correct the logic for generating "Type 2: messages in FST240W. --- widgets/mainwindow.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index cc9805227..eee58ed23 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3864,8 +3864,10 @@ void MainWindow::guiUpdate() int ichk=0; int iwspr=0; char fst240msgbits[101]; + QString wmsg; if(m_mode=="FST240W") { - ba=WSPR_message().toLatin1(); + wmsg=WSPR_message(); + ba=wmsg.toLatin1(); ba2msg(ba,message); } genfst240_(message,&ichk,msgsent,const_cast (fst240msgbits), @@ -9091,7 +9093,8 @@ QString MainWindow::WSPR_message() } else { msg1=m_config.my_callsign() + sdBm; } - msg0="<" + m_config.my_callsign() + "> " + m_config.my_grid()+ sdBm; + msg0="<" + m_config.my_callsign() + "> " + m_config.my_grid(); + if(m_mode=="WSPR") msg0 += sdBm; if(m_tx==0) msg2=msg0; if(m_tx==1) msg2=msg1; } else { From 7fb7e512834e0637202aeda2981a0043ac0f99a1 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 2 Jul 2020 14:48:11 -0500 Subject: [PATCH 215/520] Use N=1,2,3,4 for now. --- lib/fst240/get_fst240_bitmetrics.f90 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/fst240/get_fst240_bitmetrics.f90 b/lib/fst240/get_fst240_bitmetrics.f90 index 60804cba7..49f46f411 100644 --- a/lib/fst240/get_fst240_bitmetrics.f90 +++ b/lib/fst240/get_fst240_bitmetrics.f90 @@ -87,8 +87,10 @@ subroutine get_fst240_bitmetrics(cd,nss,hmod,nmax,bitmetrics,s4,badsync) do nseq=1,nmax !Try coherent sequences of 1, 2, and 4 symbols if(nseq.eq.1) nsym=1 if(nseq.eq.2) nsym=2 - if(nseq.eq.3) nsym=4 - if(nseq.eq.4) nsym=8 + if(nseq.eq.3) nsym=3 + if(nseq.eq.4) nsym=4 +! if(nseq.eq.3) nsym=4 +! if(nseq.eq.4) nsym=8 nt=4**nsym do ks=1,NN-nsym+1,nsym s2=0 @@ -105,6 +107,7 @@ subroutine get_fst240_bitmetrics(cd,nss,hmod,nmax,bitmetrics,s4,badsync) ipt=1+(ks-1)*2 if(nsym.eq.1) ibmax=1 if(nsym.eq.2) ibmax=3 + if(nsym.eq.3) ibmax=5 if(nsym.eq.4) ibmax=7 if(nsym.eq.8) ibmax=15 do ib=0,ibmax From 9f3bb0fbb78b480be0a0c73192e779326fc40aaa Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 2 Jul 2020 16:20:18 -0400 Subject: [PATCH 216/520] Show option "Also FST240W" only in FST240 mode. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index eee58ed23..3c720f875 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -6442,7 +6442,7 @@ void MainWindow::switch_mode (Mode mode) ui->label_6->setVisible(false); ui->label_7->setVisible(false); } - ui->actionAlso_FST240W->setVisible(m_mode.startsWith("FST240")); + ui->actionAlso_FST240W->setVisible(m_mode=="FST240"); } void MainWindow::WSPR_config(bool b) From 5637b229a08cbac10f8f3f980466d299819484b7 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 2 Jul 2020 16:54:16 -0400 Subject: [PATCH 217/520] Correct the logic for initializing TRperiod everywhere in FST240W mode. --- widgets/mainwindow.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 3c720f875..8e80c3e92 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5816,9 +5816,10 @@ void MainWindow::on_actionFST240_triggered() // 012345678901234567890123456789012 displayWidgets(nWidgets("111111000100111100010000000100000")); setup_status_bar (bVHF); - m_TRperiod = ui->sbTR->value (); + m_TRperiod = ui->sbTR->value(); ui->sbTR->setMinimum(15); ui->sbTR->setMaximum(300); + m_TRperiod = ui->sbTR->value(); on_sbTR_valueChanged(ui->sbTR->value()); ui->cbAutoSeq->setChecked(true); m_wideGraph->setMode(m_mode); @@ -5842,8 +5843,13 @@ void MainWindow::on_actionFST240W_triggered() setup_status_bar (bVHF); m_TRperiod = ui->sbTR_FST240W->value (); ui->band_hopping_group_box->setVisible(false); + int ntr=m_TRperiod; ui->sbTR_FST240W->setMinimum(15); //### 120 ?? ### ui->sbTR_FST240W->setMaximum(300); + ui->sbTR_FST240W->setValue(120); //### Why is all this necessary? ### + ui->sbTR_FST240W->setValue(300); + ui->sbTR_FST240W->setValue(ntr); + m_TRperiod = ui->sbTR_FST240W->value(); ui->sbSubmode->setMaximum(3); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); From b9e92c416f2bcb39148a65439bc217419ef44920 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 3 Jul 2020 09:48:01 -0400 Subject: [PATCH 218/520] Implement round-robin scheduling for FST240W mode. --- widgets/mainwindow.cpp | 16 ++++++++++++++-- widgets/mainwindow.ui | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 51 insertions(+), 3 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 8e80c3e92..7abe31420 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4078,7 +4078,7 @@ void MainWindow::guiUpdate() //Once per second: if(nsec != m_sec0) { -// qDebug() << "onesec" << m_mode; +// qDebug() << "onesec" << ui->RoundRobin->currentText(); m_currentBand=m_config.bands()->find(m_freqNominal); if( SpecOp::HOUND == m_config.special_op_id() ) { qint32 tHound=QDateTime::currentMSecsSinceEpoch()/1000 - m_tAutoOn; @@ -5844,7 +5844,7 @@ void MainWindow::on_actionFST240W_triggered() m_TRperiod = ui->sbTR_FST240W->value (); ui->band_hopping_group_box->setVisible(false); int ntr=m_TRperiod; - ui->sbTR_FST240W->setMinimum(15); //### 120 ?? ### + ui->sbTR_FST240W->setMinimum(15); ui->sbTR_FST240W->setMaximum(300); ui->sbTR_FST240W->setValue(120); //### Why is all this necessary? ### ui->sbTR_FST240W->setValue(300); @@ -7899,6 +7899,18 @@ void MainWindow::on_pbTxNext_clicked(bool b) void MainWindow::WSPR_scheduling () { + QString t=ui->RoundRobin->currentText(); + if(m_mode=="FST240W" and t!="Random") { + int i=t.left(1).toInt(); + int n=t.right(1).toInt(); + + qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; + int nsec=ms/1000; + int ntr=m_TRperiod; + int j=(nsec % (n*ntr))/ntr + 1; + m_WSPR_tx_next=(i==j); + return; + } m_WSPR_tx_next = false; if (m_config.is_transceiver_online () // need working rig control for hopping && !m_config.is_dummy_rig () diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 7e0fc103a..31bdefcc4 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -2631,6 +2631,43 @@ list. The list can be maintained in Settings (F2). + + + + 0 + + + + Random + + + + + 1/2 + + + + + 2/2 + + + + + 1/3 + + + + + 2/3 + + + + + 3/3 + + + + @@ -2876,7 +2913,6 @@ list. The list can be maintained in Settings (F2). - From f9e9a4e1ec4e86caf1638e53c4c33270cff412dd Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 3 Jul 2020 09:58:52 -0400 Subject: [PATCH 219/520] Don't let mouse-click on WindGraph move frequencies in FST240W mode. --- widgets/plotter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index 41bf173fe..160f55b10 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -697,7 +697,7 @@ int CPlotter::rxFreq() {return m_rxFreq;} //rxFreq void CPlotter::mouseReleaseEvent (QMouseEvent * event) { - if (Qt::LeftButton == event->button ()) { + if (Qt::LeftButton == event->button () and m_mode!="FST240W") { int x=event->x(); if(x<0) x=0; if(x>m_Size.width()) x=m_Size.width(); From 15014685acbca0652001dd731c485e58d275216b Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 3 Jul 2020 10:05:16 -0400 Subject: [PATCH 220/520] Round-robin control should be visible only in FST240W mode. --- widgets/mainwindow.cpp | 1 + widgets/mainwindow.ui | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 7abe31420..b321cf268 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -6464,6 +6464,7 @@ void MainWindow::WSPR_config(bool b) ui->logQSOButton->setVisible(!b); ui->DecodeButton->setEnabled(!b); ui->band_hopping_group_box->setVisible(true); + ui->RoundRobin->setVisible(b and (m_mode=="FST240W")); if(b and m_mode!="Echo" and m_mode!="FST240W") { QString t="UTC dB DT Freq Drift Call Grid dBm "; if(m_config.miles()) t += " mi"; diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 31bdefcc4..c66488293 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -2697,7 +2697,7 @@ list. The list can be maintained in Settings (F2). 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. - Prefer type 1 messages + Prefer Type 1 messages true From cbca2f2d8099fd2ccbc9e1a41898c38a2d4eeb04 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 3 Jul 2020 10:06:52 -0400 Subject: [PATCH 221/520] No band-hopping in FST240W mode. --- widgets/mainwindow.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index b321cf268..d7201d286 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5842,6 +5842,7 @@ void MainWindow::on_actionFST240W_triggered() bool bVHF=m_config.enable_VHF_features(); setup_status_bar (bVHF); m_TRperiod = ui->sbTR_FST240W->value (); + ui->band_hopping_group_box->setChecked(false); ui->band_hopping_group_box->setVisible(false); int ntr=m_TRperiod; ui->sbTR_FST240W->setMinimum(15); From 4a0b7b3a1d4769ea3eb601feb864a860f15beb60 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 3 Jul 2020 12:01:26 -0400 Subject: [PATCH 222/520] Fix the "FST240W Type 2" and "FST240W Type 3" messages. --- lib/77bit/packjt77.f90 | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/lib/77bit/packjt77.f90 b/lib/77bit/packjt77.f90 index c064f7cea..b3b1a83ea 100644 --- a/lib/77bit/packjt77.f90 +++ b/lib/77bit/packjt77.f90 @@ -203,7 +203,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) integer ntel(3) character*77 c77 character*37 msg - character*13 call_1,call_2,call_3 + character*13 call_1,call_2,call_3,call_1a character*13 mycall13_0,dxcall13_0 character*11 c11 character*3 crpt,cntx,cpfx @@ -350,11 +350,11 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) msg=adjustl(msg) else if(i3.eq.0 .and. n3.eq.6) then - read(c77(50:50),'(b1)') j2a - j2b=0 - if(j2a.eq.0) read(c77(49:49),'(b1)') j2b - j2=2*j2a+j2b - if(j2.eq.0) then + read(c77(49:50),'(2b1)') j2a,j2b + itype=2 + if(j2b.eq.0 .and. j2a.eq.0) itype=1 + if(j2b.eq.0 .and. j2a.eq.1) itype=3 + if(itype.eq.1) then ! WSPR Type 1 read(c77,2010) n28,igrid4,idbm 2010 format(b28.28,b15.15,b5.5) @@ -364,18 +364,10 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) call to_grid4(igrid4,grid4) write(crpt,'(i3)') idbm msg=trim(call_1)//' '//grid4//' '//trim(adjustl(crpt)) + call save_hash_call(call_1,n10,n12,n22) !### Is this OK here? ### - else if(j2.eq.1) then + else if(itype.eq.2) then ! WSPR Type 2 - read(c77,2030) n28,igrid6 -2030 format(b22.22,b25.25) - call unpack28(n28,call_1,unpk28_success) - if(.not.unpk28_success) unpk77_success=.false. - call to_grid6(igrid6,grid6) - msg=trim(call_1)//' '//grid6 - - else if(j2.eq.2) then -! WSPR Type 3 read(c77,2020) n28,npfx,idbm 2020 format(b28.28,b16.16,b5.5) idbm=nint(idbm*10.0/3.0) @@ -391,6 +383,8 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) if(npfx.eq.0) exit enddo msg=trim(adjustl(cpfx))//'/'//trim(call_1)//' '//trim(adjustl(crpt)) + call_1a=trim(adjustl(cpfx))//'/'//trim(call_1) + call save_hash_call(call_1a,n10,n12,n22) !### Is this OK here? ### else ! Suffix npfx=npfx-nzzz @@ -409,7 +403,20 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) return endif msg=trim(call_1)//'/'//trim(adjustl(cpfx))//' '//trim(adjustl(crpt)) + call_1a=trim(call_1)//'/'//trim(adjustl(cpfx)) + call save_hash_call(call_1a,n10,n12,n22) !### Is this OK here? ### endif + + else if(itype.eq.3) then +! WSPR Type 3 + read(c77,2030) n22,igrid6 +2030 format(b22.22,b25.25) + n28=n22+2063592 + call unpack28(n28,call_1,unpk28_success) + if(.not.unpk28_success) unpk77_success=.false. + call to_grid6(igrid6,grid6) + msg=trim(call_1)//' '//grid6 + endif @@ -1032,6 +1039,7 @@ subroutine pack77_06(nwords,w,i3,n3,c77) i3=0 n3=6 call pack28(w(1),n28) + n22=n28-2063592 k1=(ichar(grid6(1:1))-ichar('A'))*18*10*10*24*24 k2=(ichar(grid6(2:2))-ichar('A'))*10*10*24*24 k3=(ichar(grid6(3:3))-ichar('0'))*10*24*24 @@ -1039,7 +1047,7 @@ subroutine pack77_06(nwords,w,i3,n3,c77) k5=(ichar(grid6(5:5))-ichar('A'))*24 k6=(ichar(grid6(6:6))-ichar('A')) igrid6=k1+k2+k3+k4+k5+k6 - write(c77,1030) n28,igrid6,2,0,n3,i3 + write(c77,1030) n22,igrid6,2,0,n3,i3 1030 format(b22.22,b25.25,b3.3,b21.21,2b3.3) endif From d4bf73df84c890a11715b2d7d8683acfbbb6941c Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 3 Jul 2020 14:17:13 -0400 Subject: [PATCH 223/520] Minor cleanup of RoundRobin control. --- widgets/mainwindow.cpp | 9 ++++++++- widgets/mainwindow.h | 1 + widgets/mainwindow.ui | 3 +++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index d7201d286..48767a8f4 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5574,6 +5574,12 @@ void MainWindow::on_tx6_editingFinished() //tx6 edited msgtype(t, ui->tx6); } +void MainWindow::on_RoundRobin_currentTextChanged(QString text) +{ + ui->sbTxPercent->setEnabled(text=="Random"); +} + + void MainWindow::on_dxCallEntry_textChanged (QString const& call) { m_hisCall = call; @@ -6465,7 +6471,8 @@ void MainWindow::WSPR_config(bool b) ui->logQSOButton->setVisible(!b); ui->DecodeButton->setEnabled(!b); ui->band_hopping_group_box->setVisible(true); - ui->RoundRobin->setVisible(b and (m_mode=="FST240W")); + ui->RoundRobin->setVisible(m_mode=="FST240W"); + ui->RoundRobin->lineEdit()->setAlignment(Qt::AlignCenter); if(b and m_mode!="Echo" and m_mode!="FST240W") { QString t="UTC dB DT Freq Drift Call Grid dBm "; if(m_config.miles()) t += " mi"; diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 646486fb5..c2b73bf23 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -316,6 +316,7 @@ private slots: void not_GA_warning_message (); void checkMSK144ContestType(); void on_pbBestSP_clicked(); + void on_RoundRobin_currentTextChanged(QString text); int setTxMsg(int n); bool stdCall(QString const& w); void remote_configure (QString const& mode, quint32 frequency_tolerance, QString const& submode diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index c66488293..91d8e95ba 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -2633,6 +2633,9 @@ list. The list can be maintained in Settings (F2). + + true + 0 From bdfca55d1653c3b7aa537a8161397b277f5b09df Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 3 Jul 2020 18:46:58 -0400 Subject: [PATCH 224/520] Fix two remaining references to FST280. Should be FST240. --- models/Modes.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/Modes.cpp b/models/Modes.cpp index 1b1febfa8..d337fafd5 100644 --- a/models/Modes.cpp +++ b/models/Modes.cpp @@ -25,8 +25,8 @@ namespace "FreqCal", "FT8", "FT4", - "FST280", - "FST280W" + "FST240", + "FST240W" }; std::size_t constexpr mode_names_size = sizeof (mode_names) / sizeof (mode_names[0]); } From 5e4f77c6a921a18243eb8317043ebe9bb2cd601c Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 3 Jul 2020 18:55:29 -0400 Subject: [PATCH 225/520] Set initial default frequencies for FST240W to WSPR freq +200 Hz. --- models/FrequencyList.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/models/FrequencyList.cpp b/models/FrequencyList.cpp index 056950611..d91fbab27 100644 --- a/models/FrequencyList.cpp +++ b/models/FrequencyList.cpp @@ -46,7 +46,7 @@ namespace {20000000, Modes::FreqCal, IARURegions::ALL}, {136000, Modes::WSPR, IARURegions::ALL}, - {136000, Modes::FST240W, IARURegions::ALL}, + {136200, Modes::FST240W, IARURegions::ALL}, {136130, Modes::JT65, IARURegions::ALL}, {136130, Modes::JT9, IARURegions::ALL}, {136130, Modes::FST240, IARURegions::ALL}, @@ -55,7 +55,7 @@ namespace {474200, Modes::JT9, IARURegions::ALL}, {474200, Modes::FST240, IARURegions::ALL}, {474200, Modes::WSPR, IARURegions::ALL}, - {474200, Modes::FST240W, IARURegions::ALL}, + {474400, Modes::FST240W, IARURegions::ALL}, {1836600, Modes::WSPR, IARURegions::ALL}, {1838000, Modes::JT65, IARURegions::ALL}, // squeezed allocations @@ -95,6 +95,7 @@ namespace {3572000, Modes::FST240, IARURegions::ALL}, {3573000, Modes::FT8, IARURegions::ALL}, // above as below JT65 is out of DM allocation {3568600, Modes::WSPR, IARURegions::ALL}, // needs guard marker and lock out + {3568800, Modes::FST240W, IARURegions::ALL}, {3575000, Modes::FT4, IARURegions::ALL}, // provisional {3568000, Modes::FT4, IARURegions::R3}, // provisional @@ -130,6 +131,7 @@ namespace // 7110 LSB EMCOMM // {7038600, Modes::WSPR, IARURegions::ALL}, + {7038800, Modes::FST240W, IARURegions::ALL}, {7074000, Modes::FT8, IARURegions::ALL}, {7076000, Modes::JT65, IARURegions::ALL}, {7078000, Modes::JT9, IARURegions::ALL}, @@ -167,6 +169,7 @@ namespace {10136000, Modes::FT8, IARURegions::ALL}, {10138000, Modes::JT65, IARURegions::ALL}, {10138700, Modes::WSPR, IARURegions::ALL}, + {10138900, Modes::FST240W, IARURegions::ALL}, {10140000, Modes::JT9, IARURegions::ALL}, {10140000, Modes::FST240, IARURegions::ALL}, {10140000, Modes::FT4, IARURegions::ALL}, // provisional @@ -209,6 +212,7 @@ namespace // 14106.5 OLIVIA 1000 (main QRG) // {14095600, Modes::WSPR, IARURegions::ALL}, + {14095800, Modes::FST240W, IARURegions::ALL}, {14074000, Modes::FT8, IARURegions::ALL}, {14076000, Modes::JT65, IARURegions::ALL}, {14078000, Modes::JT9, IARURegions::ALL}, @@ -248,12 +252,14 @@ namespace {18104000, Modes::FST240, IARURegions::ALL}, {18104000, Modes::FT4, IARURegions::ALL}, // provisional {18104600, Modes::WSPR, IARURegions::ALL}, - + {18104800, Modes::FST240W, IARURegions::ALL}, + {21074000, Modes::FT8, IARURegions::ALL}, {21076000, Modes::JT65, IARURegions::ALL}, {21078000, Modes::JT9, IARURegions::ALL}, {21078000, Modes::FST240, IARURegions::ALL}, {21094600, Modes::WSPR, IARURegions::ALL}, + {21094800, Modes::FST240W, IARURegions::ALL}, {21140000, Modes::FT4, IARURegions::ALL}, {24915000, Modes::FT8, IARURegions::ALL}, @@ -262,12 +268,14 @@ namespace {24919000, Modes::FST240, IARURegions::ALL}, {24919000, Modes::FT4, IARURegions::ALL}, // provisional {24924600, Modes::WSPR, IARURegions::ALL}, - + {24924800, Modes::FST240W, IARURegions::ALL}, + {28074000, Modes::FT8, IARURegions::ALL}, {28076000, Modes::JT65, IARURegions::ALL}, {28078000, Modes::JT9, IARURegions::ALL}, {28078000, Modes::FST240, IARURegions::ALL}, {28124600, Modes::WSPR, IARURegions::ALL}, + {28124800, Modes::FST240W, IARURegions::ALL}, {28180000, Modes::FT4, IARURegions::ALL}, {50200000, Modes::Echo, IARURegions::ALL}, @@ -278,6 +286,8 @@ namespace {50260000, Modes::MSK144, IARURegions::R3}, {50293000, Modes::WSPR, IARURegions::R2}, {50293000, Modes::WSPR, IARURegions::R3}, + {50293200, Modes::FST240W, IARURegions::R2}, + {50293200, Modes::FST240W, IARURegions::R3}, {50310000, Modes::JT65, IARURegions::ALL}, {50312000, Modes::JT9, IARURegions::ALL}, {50312000, Modes::FST240, IARURegions::ALL}, @@ -289,6 +299,7 @@ namespace {70102000, Modes::JT65, IARURegions::R1}, {70104000, Modes::JT9, IARURegions::R1}, {70091000, Modes::WSPR, IARURegions::R1}, + {70091200, Modes::FST240W, IARURegions::R2}, {70230000, Modes::MSK144, IARURegions::R1}, {144120000, Modes::JT65, IARURegions::ALL}, @@ -298,6 +309,7 @@ namespace {144360000, Modes::MSK144, IARURegions::R1}, {144150000, Modes::MSK144, IARURegions::R2}, {144489000, Modes::WSPR, IARURegions::ALL}, + {144489200, Modes::FST240W, IARURegions::R2}, {144120000, Modes::QRA64, IARURegions::ALL}, {222065000, Modes::Echo, IARURegions::R2}, From 24113a5c05d6dfd1d8a61d17ac1cac2849c7924d Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 3 Jul 2020 18:59:00 -0400 Subject: [PATCH 226/520] One more frequency for FST240W. --- models/FrequencyList.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/models/FrequencyList.cpp b/models/FrequencyList.cpp index d91fbab27..74bc0ef64 100644 --- a/models/FrequencyList.cpp +++ b/models/FrequencyList.cpp @@ -58,6 +58,7 @@ namespace {474400, Modes::FST240W, IARURegions::ALL}, {1836600, Modes::WSPR, IARURegions::ALL}, + {1836800, Modes::FST240W, IARURegions::ALL}, {1838000, Modes::JT65, IARURegions::ALL}, // squeezed allocations {1839000, Modes::JT9, IARURegions::ALL}, {1839000, Modes::FST240, IARURegions::ALL}, From c176572ec00d19c487813035d8a38cb4c621beaa Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sat, 4 Jul 2020 09:15:57 -0500 Subject: [PATCH 227/520] Add options for sub-symbol integration for sync and symbol estimation. --- CMakeLists.txt | 1 + lib/fst240/get_fst240_bitmetrics.f90 | 13 ++- lib/fst240/get_fst240_bitmetrics2.f90 | 131 +++++++++++++++++++++++++ lib/fst240_decode.f90 | 136 +++++++++++++++----------- 4 files changed, 218 insertions(+), 63 deletions(-) create mode 100644 lib/fst240/get_fst240_bitmetrics2.f90 diff --git a/CMakeLists.txt b/CMakeLists.txt index 99e160a4e..911425a5e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -604,6 +604,7 @@ set (wsjt_FSRCS lib/fst240/gen_fst240wave.f90 lib/fst240/genfst240.f90 lib/fst240/get_fst240_bitmetrics.f90 + lib/fst240/get_fst240_bitmetrics2.f90 lib/fst240/ldpcsim240_101.f90 lib/fst240/ldpcsim240_74.f90 lib/fst240/osd240_101.f90 diff --git a/lib/fst240/get_fst240_bitmetrics.f90 b/lib/fst240/get_fst240_bitmetrics.f90 index 49f46f411..e82d73c99 100644 --- a/lib/fst240/get_fst240_bitmetrics.f90 +++ b/lib/fst240/get_fst240_bitmetrics.f90 @@ -1,4 +1,4 @@ -subroutine get_fst240_bitmetrics(cd,nss,hmod,nmax,bitmetrics,s4,badsync) +subroutine get_fst240_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,badsync) include 'fst240_params.f90' complex cd(0:NN*nss-1) @@ -87,10 +87,13 @@ subroutine get_fst240_bitmetrics(cd,nss,hmod,nmax,bitmetrics,s4,badsync) do nseq=1,nmax !Try coherent sequences of 1, 2, and 4 symbols if(nseq.eq.1) nsym=1 if(nseq.eq.2) nsym=2 - if(nseq.eq.3) nsym=3 - if(nseq.eq.4) nsym=4 -! if(nseq.eq.3) nsym=4 -! if(nseq.eq.4) nsym=8 + if(nhicoh.eq.0) then + if(nseq.eq.3) nsym=3 + if(nseq.eq.4) nsym=4 + else + if(nseq.eq.3) nsym=4 + if(nseq.eq.4) nsym=8 + endif nt=4**nsym do ks=1,NN-nsym+1,nsym s2=0 diff --git a/lib/fst240/get_fst240_bitmetrics2.f90 b/lib/fst240/get_fst240_bitmetrics2.f90 new file mode 100644 index 000000000..7b86841ba --- /dev/null +++ b/lib/fst240/get_fst240_bitmetrics2.f90 @@ -0,0 +1,131 @@ +subroutine get_fst240_bitmetrics2(cd,nss,hmod,nsizes,bitmetrics,s4hmod,badsync) + + include 'fst240_params.f90' + complex cd(0:NN*nss-1) + complex csymb(nss) + complex, allocatable, save :: c1(:,:) ! ideal waveforms, 4 tones + complex cp(0:3) ! accumulated phase shift over symbol types 0:3 + complex csum,cterm + integer isyncword1(0:7),isyncword2(0:7) + integer graymap(0:3) + integer ip(1) + integer hmod + logical one(0:65535,0:15) ! 65536 8-symbol sequences, 16 bits + logical first + logical badsync + real bitmetrics(2*NN,4) + real s2(0:65535) + real s4(0:3,NN,4),s4hmod(0:3,NN) + data isyncword1/0,1,3,2,1,0,2,3/ + data isyncword2/2,3,1,0,3,2,0,1/ + data graymap/0,1,3,2/ + data first/.true./,nss0/-1/ + save first,one,cp,nss0 + + if(nss.ne.nss0 .and. allocated(c1)) deallocate(c1) + if(first .or. nss.ne.nss0) then + allocate(c1(nss,0:3)) + one=.false. + do i=0,65535 + do j=0,15 + if(iand(i,2**j).ne.0) one(i,j)=.true. + enddo + enddo + twopi=8.0*atan(1.0) + dphi=twopi*hmod/nss + do itone=0,3 + dp=(itone-1.5)*dphi + phi=0.0 + do j=1,nss + c1(j,itone)=cmplx(cos(phi),sin(phi)) + phi=mod(phi+dp,twopi) + enddo + cp(itone)=cmplx(cos(phi),sin(phi)) + enddo + first=.false. + endif + + do k=1,NN + i1=(k-1)*NSS + csymb=cd(i1:i1+NSS-1) + do itone=0,3 + s4(itone,k,1)=abs(sum(csymb*conjg(c1(:,itone)))) + s4(itone,k,2)=abs(sum(csymb( 1:nss/2)*conjg(c1( 1:nss/2,itone)))) + & + abs(sum(csymb(nss/2+1: nss)*conjg(c1(nss/2+1: nss,itone)))) + s4(itone,k,3)=abs(sum(csymb( 1: nss/4)*conjg(c1( 1: nss/4,itone)))) + & + abs(sum(csymb( nss/4+1: nss/2)*conjg(c1( nss/4+1: nss/2,itone)))) + & + abs(sum(csymb( nss/2+1:3*nss/4)*conjg(c1( nss/2+1:3*nss/4,itone)))) + & + abs(sum(csymb(3*nss/4+1: nss)*conjg(c1(3*nss/4+1: nss,itone)))) + s4(itone,k,4)=abs(sum(csymb( 1: nss/8)*conjg(c1( 1: nss/8,itone)))) + & + abs(sum(csymb( nss/8+1: nss/4)*conjg(c1( nss/8+1: nss/4,itone)))) + & + abs(sum(csymb( nss/4+1:3*nss/8)*conjg(c1( nss/4+1:3*nss/8,itone)))) + & + abs(sum(csymb(3*nss/8+1: nss/2)*conjg(c1(3*nss/8+1: nss/2,itone)))) + & + abs(sum(csymb( nss/2+1:5*nss/8)*conjg(c1( nss/2+1:5*nss/8,itone)))) + & + abs(sum(csymb(5*nss/8+1:3*nss/4)*conjg(c1(5*nss/8+1:3*nss/4,itone)))) + & + abs(sum(csymb(3*nss/4+1:7*nss/8)*conjg(c1(3*nss/4+1:7*nss/8,itone)))) + & + abs(sum(csymb(7*nss/8+1: nss)*conjg(c1(7*nss/8+1: nss,itone)))) + + enddo + enddo + +! Sync quality check + is1=0 + is2=0 + is3=0 + is4=0 + is5=0 + badsync=.false. + ibmax=0 + + is1=0; is2=0; is3=0; is4=0; is5=0 + do k=1,8 + ip=maxloc(s4(:,k,1)) + if(isyncword1(k-1).eq.(ip(1)-1)) is1=is1+1 + ip=maxloc(s4(:,k+38,1)) + if(isyncword2(k-1).eq.(ip(1)-1)) is2=is2+1 + ip=maxloc(s4(:,k+76,1)) + if(isyncword1(k-1).eq.(ip(1)-1)) is3=is3+1 + ip=maxloc(s4(:,k+114,1)) + if(isyncword2(k-1).eq.(ip(1)-1)) is4=is4+1 + ip=maxloc(s4(:,k+152,1)) + if(isyncword1(k-1).eq.(ip(1)-1)) is5=is5+1 + enddo + nsync=is1+is2+is3+is4+is5 !Number of correct hard sync symbols, 0-40 + badsync=.false. + + if(nsync .lt. 16) then + badsync=.true. + return + endif + + bitmetrics=0.0 + do nsub=1,nsizes + do ks=1,NN + s2=0 + do i=0,3 + s2(i)=s4(graymap(i),ks,nsub) + enddo + ipt=1+(ks-1)*2 + ibmax=1 + do ib=0,ibmax + bm=maxval(s2(0:3),one(0:3,ibmax-ib)) - & + maxval(s2(0:3),.not.one(0:3,ibmax-ib)) + if(ipt+ib.gt.2*NN) cycle + bitmetrics(ipt+ib,nsub)=bm + enddo + enddo + enddo + + call normalizebmet(bitmetrics(:,1),2*NN) + call normalizebmet(bitmetrics(:,2),2*NN) + call normalizebmet(bitmetrics(:,3),2*NN) + call normalizebmet(bitmetrics(:,4),2*NN) + +! Return the s4 array corresponding to N=1/hmod. Will be used for SNR calculation + if(hmod.eq.1) s4hmod(:,:)=s4(:,:,1) + if(hmod.eq.2) s4hmod(:,:)=s4(:,:,2) + if(hmod.eq.4) s4hmod(:,:)=s4(:,:,3) + if(hmod.eq.8) s4hmod(:,:)=s4(:,:,4) + return + +end subroutine get_fst240_bitmetrics2 diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 8fca098e6..00dda3882 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -83,6 +83,8 @@ contains dxcall13=hiscall ! initialize for use in packjt77 mycall13=mycall + fMHz=10.0 + if(first) then mcq=2*mod(mcq+rvec(1:29),2)-1 mrrr=2*mod(mrrr+rvec(59:77),2)-1 @@ -217,7 +219,7 @@ contains if(ndepth.eq.3) then - nblock=1 + nblock=4 if(hmod.eq.1) nblock=4 ! number of block sizes to try jittermax=2 norder=3 @@ -252,6 +254,20 @@ contains itype2=2 endif + if(hmod.eq.1) then + if(fMHz.lt.2.0) then + nsyncoh=8 ! Use N=8 for sync + nhicoh=1 ! Use N=1,2,4,8 for symbol estimation + else + nsyncoh=4 ! Use N=4 for sync + nhicoh=0 ! Use N=1,2,3,4 for symbol estimation + endif + else + if(hmod.eq.2) nsyncoh=1 + if(hmod.eq.4) nsyncoh=1 + if(hmod.eq.8) nsyncoh=1 + endif + do iqorw=itype1,itype2 ! iqorw=1 for QSO mode and iqorw=2 for wspr-type messages if( iwspr.lt.2 ) then if( single_decode ) then @@ -278,10 +294,8 @@ contains ndecodes=0 decodes=' ' - isbest1=0 - isbest8=0 - fc21=0. - fc28=0. + isbest=0 + fc2=0. do icand=1,ncand fc0=candidates(icand,1) detmet=candidates(icand,2) @@ -308,47 +322,29 @@ contains ifhw=12 df=.1*baud else if(isync.eq.1) then - fc1=fc21 - if(hmod.eq.1) fc1=fc28 - is0=isbest1 - if(hmod.eq.1) is0=isbest8 + fc1=fc2 + is0=isbest ishw=4*hmod isst=1*hmod ifhw=7 df=.02*baud endif - smax1=0.0 - smax8=0.0 + smax=0.0 do if=-ifhw,ifhw fc=fc1+df*if do istart=max(1,is0-ishw),is0+ishw,isst - call sync_fst240(c2,istart,fc,hmod,1,nfft2,nss,fs2,sync1) - call sync_fst240(c2,istart,fc,hmod,8,nfft2,nss,fs2,sync8) - if(sync8.gt.smax8) then - fc28=fc - isbest8=istart - smax8=sync8 - endif - if(sync1.gt.smax1) then - fc21=fc - isbest1=istart - smax1=sync1 + call sync_fst240(c2,istart,fc,hmod,nsyncoh,nfft2,nss,fs2,sync) + if(sync.gt.smax) then + fc2=fc + isbest=istart + smax=sync endif enddo enddo enddo call timer('sync240 ',1) - if(smax8/smax1 .lt. 0.65 ) then - fc2=fc21 - isbest=isbest1 - njitter=2 - else - fc2=fc28 - isbest=isbest8 - njitter=2 - endif fc_synced = fc0 + fc2 dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 candidates(icand,3)=fc_synced @@ -387,6 +383,7 @@ contains fc_synced=candidates(icand,3) isbest=nint(candidates(icand,4)) xdt=(isbest-nspsec)/fs2 + if(ntrperiod.eq.15) xdt=(isbest-real(nspsec)/2.0)/fs2 call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) @@ -398,7 +395,11 @@ contains if(is0.lt.0) cycle cframe=c2(is0:is0+160*nss-1) bitmetrics=0 - call get_fst240_bitmetrics(cframe,nss,hmod,nblock,bitmetrics,s4,badsync) + if(hmod.eq.1) then + call get_fst240_bitmetrics(cframe,nss,hmod,nblock,nhicoh,bitmetrics,s4,badsync) + else + call get_fst240_bitmetrics2(cframe,nss,hmod,nblock,bitmetrics,s4,badsync) + endif if(badsync) cycle hbits=0 @@ -409,7 +410,7 @@ contains ns4=count(hbits(229:244).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) nsync_qual=ns1+ns2+ns3+ns4+ns5 - if(nsync_qual.lt. 46) cycle !### Value ?? ### +! if(nsync_qual.lt. 46) cycle !### Value ?? ### scalefac=2.83 llra( 1: 60)=bitmetrics( 17: 76, 1) @@ -529,7 +530,7 @@ contains do i=1,ndecodes if(decodes(i).eq.msg) idupe=1 enddo - if(idupe.eq.1) exit + if(idupe.eq.1) goto 2002 ndecodes=ndecodes+1 decodes(ndecodes)=msg @@ -554,9 +555,9 @@ contains nsnr=nint(xsnr) qual=0. fsig=fc_synced - 1.5*hmod*baud -!write(21,'(i6,7i6,f7.1,f9.2,f7.1,1x,f7.2,1x,f7.1,1x,a37)') & -! nutc,icand,itry,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg -!flush(21) + write(21,'(i6,8i6,f7.1,f9.2,f7.1,1x,f7.2,1x,f7.1,1x,a37)') & + nutc,icand,itry,nsyncoh,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg + flush(21) call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & iaptype,qual,ntrperiod,lwspr) goto 2002 @@ -637,28 +638,47 @@ contains s4=0.0 s5=0.0 - nsec=8/ncoh - do i=1,nsec - is=(i-1)*ncoh*nss - z1=0 - if(i1+is.ge.1) then - z1=sum(cd0(i1+is:i1+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) - endif - z2=sum(cd0(i2+is:i2+is+ncoh*nss-1)*conjg(csynct2(is+1:is+ncoh*nss))) - z3=sum(cd0(i3+is:i3+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) - z4=sum(cd0(i4+is:i4+is+ncoh*nss-1)*conjg(csynct2(is+1:is+ncoh*nss))) - z5=0 - if(i5+is+ncoh*nss-1.le.np) then - z5=sum(cd0(i5+is:i5+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) - endif - s1=s1+abs(z1)/(8*nss) - s2=s2+abs(z2)/(8*nss) - s3=s3+abs(z3)/(8*nss) - s4=s4+abs(z4)/(8*nss) - s5=s5+abs(z5)/(8*nss) - enddo + if(ncoh.gt.0) then + nsec=8/ncoh + do i=1,nsec + is=(i-1)*ncoh*nss + z1=0 + if(i1+is.ge.1) then + z1=sum(cd0(i1+is:i1+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) + endif + z2=sum(cd0(i2+is:i2+is+ncoh*nss-1)*conjg(csynct2(is+1:is+ncoh*nss))) + z3=sum(cd0(i3+is:i3+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) + z4=sum(cd0(i4+is:i4+is+ncoh*nss-1)*conjg(csynct2(is+1:is+ncoh*nss))) + z5=0 + if(i5+is+ncoh*nss-1.le.np) then + z5=sum(cd0(i5+is:i5+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) + endif + s1=s1+abs(z1)/(8*nss) + s2=s2+abs(z2)/(8*nss) + s3=s3+abs(z3)/(8*nss) + s4=s4+abs(z4)/(8*nss) + s5=s5+abs(z5)/(8*nss) + enddo + else + nsub=-ncoh + nps=nss/nsub + do i=1,8 + do isub=1,nsub + is=(i-1)*nss+(isub-1)*nps + if(i1+is.ge.1) then + s1=s1+abs(sum(cd0(i1+is:i1+is+nps-1)*conjg(csynct1(is+1:is+nps)))) + endif + s2=s2+abs(sum(cd0(i2+is:i2+is+nps-1)*conjg(csynct1(is+1:is+nps)))) + s3=s3+abs(sum(cd0(i3+is:i3+is+nps-1)*conjg(csynct1(is+1:is+nps)))) + s4=s4+abs(sum(cd0(i4+is:i4+is+nps-1)*conjg(csynct1(is+1:is+nps)))) + s5=0 + if(i5+is+ncoh*nss-1.le.np) then + s5=s5+abs(sum(cd0(i5+is:i5+is+nps-1)*conjg(csynct1(is+1:is+nps)))) + endif + enddo + enddo + endif sync = s1+s2+s3+s4+s5 - return end subroutine sync_fst240 From 3fe6fa3d7228deeed114e938f81025dc2943b5da Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sat, 4 Jul 2020 12:57:51 -0500 Subject: [PATCH 228/520] Rough first attempt at setting minsync according to setup. --- lib/fst240_decode.f90 | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 00dda3882..a0eb5ad64 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -83,7 +83,7 @@ contains dxcall13=hiscall ! initialize for use in packjt77 mycall13=mycall - fMHz=10.0 + fMHz=1.0 if(first) then mcq=2*mod(mcq+rvec(1:29),2)-1 @@ -285,7 +285,13 @@ contains fb=min(4800,nfb) endif - minsync=1.25 + if(hmod.eq.1) then + if(ntrperiod.eq.15) minsync=1.15 + if(ntrperiod.gt.15) minsync=1.20 + elseif(hmod.gt.1) then + minsync=1.5 + endif + ! Get first approximation of candidate frequencies call get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & From d17bc2f97fd4af6946001e49b5ae535f8e45c390 Mon Sep 17 00:00:00 2001 From: K9AN Date: Sat, 4 Jul 2020 13:06:50 -0500 Subject: [PATCH 229/520] Comment out debug prints. --- lib/fst240_decode.f90 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index a0eb5ad64..a0d3e4845 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -561,9 +561,9 @@ contains nsnr=nint(xsnr) qual=0. fsig=fc_synced - 1.5*hmod*baud - write(21,'(i6,8i6,f7.1,f9.2,f7.1,1x,f7.2,1x,f7.1,1x,a37)') & - nutc,icand,itry,nsyncoh,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg - flush(21) +! write(21,'(i6,8i6,f7.1,f9.2,f7.1,1x,f7.2,1x,f7.1,1x,a37)') & +! nutc,icand,itry,nsyncoh,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg +! flush(21) call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & iaptype,qual,ntrperiod,lwspr) goto 2002 From 74c7fade32550f9fda3620a45d2792d84d1286c0 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 4 Jul 2020 22:19:59 +0100 Subject: [PATCH 230/520] Disable Hamlib caching while determining rig VFO resolution --- CMakeLists.txt | 6 ++++++ Transceiver/HamlibTransceiver.cpp | 12 ++++++++++++ wsjtx_config.h.in | 2 ++ 3 files changed, 20 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index ca25c3a08..c3edc5b52 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -846,6 +846,8 @@ endif (APPLE) # # find some useful tools # +include (CheckSymbolExists) + find_program(CTAGS ctags) find_program(ETAGS etags) @@ -881,6 +883,10 @@ message (STATUS "hamlib_INCLUDE_DIRS: ${hamlib_INCLUDE_DIRS}") message (STATUS "hamlib_LIBRARIES: ${hamlib_LIBRARIES}") message (STATUS "hamlib_LIBRARY_DIRS: ${hamlib_LIBRARY_DIRS}") +set (CMAKE_REQUIRED_INCLUDES "${hamlib_INCLUDE_DIRS}") +set (CMAKE_REQUIRED_LIBRARIES "${hamlib_LIBRARIES}") +check_symbol_exists (rig_set_cache_timeout_ms "hamlib/rig.h" HAVE_HAMLIB_CACHING) + # # Qt5 setup diff --git a/Transceiver/HamlibTransceiver.cpp b/Transceiver/HamlibTransceiver.cpp index ea30a5b17..8919c06bb 100644 --- a/Transceiver/HamlibTransceiver.cpp +++ b/Transceiver/HamlibTransceiver.cpp @@ -606,6 +606,13 @@ int HamlibTransceiver::do_start () } } +#if HAVE_HAMLIB_CACHING + // we must disable Hamlib caching because it lies about frequency + // for less than 1 Hz resolution rigs + auto orig_cache_timeout = rig_get_cache_timeout_ms (rig_.data (), HAMLIB_CACHE_ALL); + rig_set_cache_timeout_ms (rig_.data (), CACHE_ALL, 0); +#endif + int resolution {0}; if (freq_query_works_) { @@ -646,6 +653,11 @@ int HamlibTransceiver::do_start () resolution = -1; // best guess } +#if HAVE_HAMLIB_CACHING + // revert Hamlib cache timeout + rig_set_cache_timeout_ms (rig_.data (), HAMLIB_CACHE_ALL, orig_cache_timeout); +#endif + do_poll (); TRACE_CAT ("HamlibTransceiver", "exit" << state () << "reversed =" << reversed_ << "resolution = " << resolution); diff --git a/wsjtx_config.h.in b/wsjtx_config.h.in index 22ff0f438..0866cf061 100644 --- a/wsjtx_config.h.in +++ b/wsjtx_config.h.in @@ -19,6 +19,8 @@ extern "C" { #cmakedefine PROJECT_SAMPLES_URL "@PROJECT_SAMPLES_URL@" #cmakedefine PROJECT_SUMMARY_DESCRIPTION "@PROJECT_SUMMARY_DESCRIPTION@" +#cmakedefine01 HAVE_HAMLIB_CACHING + #cmakedefine01 WSJT_SHARED_RUNTIME #cmakedefine01 WSJT_QDEBUG_TO_FILE #cmakedefine01 WSJT_QDEBUG_IN_RELEASE From 8147c84260bdf257d13c5d2f2d0d177e1ed1ede5 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 4 Jul 2020 23:39:00 +0100 Subject: [PATCH 231/520] Fix compile error using latest Hamlib headers --- Transceiver/HamlibTransceiver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Transceiver/HamlibTransceiver.cpp b/Transceiver/HamlibTransceiver.cpp index 8919c06bb..ef591dd8e 100644 --- a/Transceiver/HamlibTransceiver.cpp +++ b/Transceiver/HamlibTransceiver.cpp @@ -610,7 +610,7 @@ int HamlibTransceiver::do_start () // we must disable Hamlib caching because it lies about frequency // for less than 1 Hz resolution rigs auto orig_cache_timeout = rig_get_cache_timeout_ms (rig_.data (), HAMLIB_CACHE_ALL); - rig_set_cache_timeout_ms (rig_.data (), CACHE_ALL, 0); + rig_set_cache_timeout_ms (rig_.data (), HAMLIB_CACHE_ALL, 0); #endif int resolution {0}; From 90e18e50dea145d4c9f4bee4099fe0ebd43b5fbc Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 5 Jul 2020 12:42:08 +0100 Subject: [PATCH 232/520] Danish UI translation, thanks to Michael, 5P1KZX --- CMakeLists.txt | 2 +- translations/wsjtx_da.ts | 6303 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 6304 insertions(+), 1 deletion(-) create mode 100644 translations/wsjtx_da.ts diff --git a/CMakeLists.txt b/CMakeLists.txt index c3edc5b52..b7b1c82f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1104,7 +1104,7 @@ add_custom_target (etags COMMAND ${ETAGS} -o ${CMAKE_SOURCE_DIR}/TAGS -R ${sourc # Qt i18n - always include the country generic if any regional variant is included set (LANGUAGES ca # Catalan - #da # Danish + da # Danish en # English (we need this to stop # translation loaders loading the # second preference UI languge, it diff --git a/translations/wsjtx_da.ts b/translations/wsjtx_da.ts new file mode 100644 index 000000000..3b49b96ca --- /dev/null +++ b/translations/wsjtx_da.ts @@ -0,0 +1,6303 @@ + + + + + AbstractLogWindow + + + &Delete ... + &Slet ... + + + + AbstractLogWindow::impl + + + Confirm Delete + Bekræft Slet + + + + Are you sure you want to delete the %n selected QSO(s) from the log? + + Er du sikker på at du vil slette de %n valgte QSO(er) fra loggen? + + + + + + Astro + + + + Doppler tracking + Doppler-tracking + + + + <html><head/><body><p>One station does all Doppler shift correction, their QSO partner receives and transmits on the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + <html><head/><body> <p> En station udfører alle Doppler-skift-korrektioner. QSO-partner modtager og sender på sked-frekvensen. </p> <p> Hvis radioen ikke accepterer CAT QSY-kommandoer, mens der sendes anvendes en enkelt korrektion for hele sendeperioden. </p> </body> </html> + + + + Full Doppler to DX Grid + Fuld Doppler til DX Grid lokator + + + + <html><head/><body><p>Transmit takes place on sked frequency and receive frequency is corrected for own echoes. </p><p>This mode can be used for calling CQ, or when using Echo mode.</p></body></html> + <html><head/><body> <p> Transmission finder sted på sked-frekvens og modtagefrekvens korrigeres for egne ekko. </p> <p> Denne tilstand kan bruges til at kalde til CQ, eller når du bruger Echo-tilstand. </p> </body> </html> + + + + Own Echo + Eget Ekko + + + + <html><head/><body><p>Both stations correct for Doppler shift such that they would be heard on the moon at the sked frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p><p>Use this option also for Echo mode.</p></body></html> + <html><head/><body> <p> Begge stationer korrigerer for Doppler-skift, så de ville blive via månen på sked-frekvensen. </p> <p> Hvis radioen ikke accepterer CAT QSY-kommandoer, mens der sendes. Anvendes en enkelt korrektion for hele sendeperioden. </p> <p> Brug denne indstilling også til Echo-tilstand. </p> </body> </html> + + + + Constant frequency on Moon + Konstant frevens på månen + + + + <html><head/><body><p>DX station announces their TX Freq, which is entered as the Sked Freq. Correction applied to RX and TX so you appear on the DX's station's own echo Freq.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + <html><head/><body> <p> DX-station annoncerer deres TX Freq, der indtastes som Sked Freq. Korrektion anvendt på RX og TX, så du vises på DX's stations eget ekko Freq. </p> <p> Hvis radioen ikke accepterer CAT QSY-kommandoer, mens der sendes, anvendes en enkelt korrektion for hele sendeperioden. </p> </ body> </ html> + + + + On DX Echo + On DX Ekko + + + + <html><head/><body><p>Tune radio manually and select this mode to put your echo on the same frequency.</p><p>If the rig does not accept CAT QSY commands while transmitting a single correction is applied for the whole transmit period.</p></body></html> + <html><head/><body> <p> Indstil radio manuelt og vælg denne tilstand for at sætte dit ekko på den samme frekvens. </p> <p> Hvis radioen ikke accepterer CAT QSY-kommandoer, mens der sendes, anvendes en enkelt korrektion for hele sendeperioden. </p> </body> </html> + + + + Call DX + Call DX + + + + <html><head/><body><p>No Doppler shift correction is applied. This may be used when the QSO partner does full Doppler correction to your grid square.</p></body></html> + <html><head/><body> <p> Ingen Doppler-skiftkorrektion anvendes. Dette kan bruges, når QSO-partneren udfører fuld Doppler-korrektion til dit Locatorfelt. </p> </body> </html> + + + + None + Ingen + + + + Sked frequency + Sked Frekvens + + + + + 0 + 0 + + + + Rx: + Rx: + + + + Tx: + Tx: + + + + <html><head/><body><p>Press and hold the CTRL key to adjust the sked frequency manually with the rig's VFO dial or enter frequency directly into the band entry field on the main window.</p></body></html> + <html><head/><body> <p> Tryk på CTRL-tasten og hold den nede for at justere sked-frekvensen manuelt med riggens VFO-skive eller indtast frekvens direkte i båndindtastningsfeltet i hovedvinduet. </p> </ krop> </ html> + + + + Astro Data + Astro Data + + + + Astronomical Data + Astronomiske Data + + + + Doppler Tracking Error + Doppler Tracking Error + + + + Split operating is required for Doppler tracking + For Doppler tracking kræves Split Mode + + + + Go to "Menu->File->Settings->Radio" to enable split operation + Gå til "Menu->Fil->Indstillinger->Radio for at aktivere Split Mode + + + + Bands + + + Band name + Bånd + + + + Lower frequency limit + Nedre frekvens grænse + + + + Upper frequency limit + Øvre frekvens grænse + + + + Band + Bånd + + + + Lower Limit + Nedre Grænse + + + + Upper Limit + Øvre Grænse + + + + CAboutDlg + + + About WSJT-X + Om WSJT-X + + + + OK + OK + + + + CPlotter + + + &Set Rx && Tx Offset + &Sæt Rx && Tx Offset + + + + CabrilloLog + + + Freq(MHz) + Frekvens(Mhz) + + + + Mode + Mode + + + + Date & Time(UTC) + Dato & Tid(UTC) + + + + Call + Kaldesignal + + + + Sent + Sendt + + + + Rcvd + Modtaget + + + + Band + Bånd + + + + CabrilloLogWindow + + + Contest Log + Contest Log + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + <html><head/><body> <p> Højreklik her for tilgængelige muligheder. </p> </body> </html> + + + + Right-click here for available actions. + Højreklik her for muligheder. + + + + CallsignDialog + + + Callsign + Kaldesignal + + + + ColorHighlighting + + + + + + + + + + + + + + + + + + K1ABC + K1ABC + + + + CQ in message + CQ i meddelse + + + + My Call in message + Mit kaldesignal i meddelse + + + + Transmitted message + Afsendt meddelse + + + + New DXCC + Nyt DXCC + + + + New Grid + Ny Grid Lokator + + + + New DXCC on Band + Nyt DXCC på bånd + + + + New Call + Ny kaldesignal + + + + New Grid on Band + Ny Grid lokator på bånd + + + + New Call on Band + Nyt kaldesignal på bånd + + + + Uploads to LotW + Uploader til LoTW + + + + New Continent + Nyt kontinent + + + + New Continent on Band + Nyt kontinent på bånd + + + + New CQ Zone + Ny CQ Zone + + + + New CQ Zone on Band + Ny CQ Zone på bånd + + + + New ITU Zone + Ny ITU Zone + + + + New ITU Zone on Band + Ny ITU Zone på bånd + + + + Configuration::impl + + + + + &Delete + &Slet + + + + + &Insert ... + &indsæt ... + + + + Failed to create save directory + Fejl ved oprettelse af mappe til at gemme i + + + + path: "%1% + sti: "%1% + + + + Failed to create samples directory + Fejl i oprettelsen af mappe til eksempler + + + + path: "%1" + sti: "%1" + + + + &Load ... + &Hent ... + + + + &Save as ... + &Gem som ... + + + + &Merge ... + &Indflette ... + + + + &Reset + &Reset + + + + Serial Port: + Seriel Port: + + + + Serial port used for CAT control + Seriel port til CAT kontrol + + + + Network Server: + Netværk Server: + + + + Optional hostname and port of network service. +Leave blank for a sensible default on this machine. +Formats: + hostname:port + IPv4-address:port + [IPv6-address]:port + Valgfrit værtsnavn og port på netværkstjeneste. +Lad denvære tom for standard på denne maskine. +Formater: + hostname:port + IPv4-address:port + [IPv6-address]:port + + + + USB Device: + USB Enhed: + + + + Optional device identification. +Leave blank for a sensible default for the rig. +Format: + [VID[:PID[:VENDOR[:PRODUCT]]]] + Valgfri enhedsidentifikation. +Lad den være tom for standard for radioen. +Format: + [VID[:PID[:VENDOR[:PRODUCT]]]] + + + + Invalid audio input device + Foekert audio input enhed + + + + Invalid audio out device + Forkert audio output enhed + + + + Invalid PTT method + Forkert PTT metode + + + + Invalid PTT port + Forkert PTT port + + + + + Invalid Contest Exchange + Forkert Contest Udveksling + + + + You must input a valid ARRL Field Day exchange + Indsæt et valid ARRL Field Day exchange + + + + You must input a valid ARRL RTTY Roundup exchange + Indsæt et valid ARRL RTTY Roundup exchange + + + + Reset Decode Highlighting + Nulstil dekode markering + + + + Reset all decode highlighting and priorities to default values + Indstil alle dekode markeringer og prioriteringer til default + + + + WSJT-X Decoded Text Font Chooser + WSJT-X Dekodet tekst Font vælger + + + + Load Working Frequencies + Hent Frekvens liste + + + + + + Frequency files (*.qrg);;All files (*.*) + Frekvens fil *.qrg);;All files (*.*) + + + + Replace Working Frequencies + Erstat frekvensliste + + + + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? + Er du sikker på du vil kassere dine nuværende frekvensliste og erstatte den med denne frekvensliste? + + + + Merge Working Frequencies + Indflet Frevens liste + + + + + + Not a valid frequencies file + Ikke en gyldig Frekvens liste fil + + + + Incorrect file magic + Forkert fil Magic + + + + Version is too new + Version for ny + + + + Contents corrupt + Inhold ugyldigt + + + + Save Working Frequencies + Gem frekvens liste + + + + Only Save Selected Working Frequencies + Gemmer kun de valgte frekvenser til listen + + + + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. + Er du sikker på du kun vil gemme de valgte frekvenser i Frekvenslisten. Klik nej for gemme alle. + + + + Reset Working Frequencies + Reset frekvens liste + + + + Are you sure you want to discard your current working frequencies and replace them with default ones? + Er du sikker på du vil kassere dine nuværende frekvensliste og erstatte dem med standard frekvenser? + + + + Save Directory + Gemme Mappe + + + + AzEl Directory + AzEL Mappe + + + + Rig control error + Radio kontrol fejl + + + + Failed to open connection to rig + Fejl i etablering af forbindelse til radio + + + + Rig failure + Radio fejl + + + + DXLabSuiteCommanderTransceiver + + + Failed to connect to DX Lab Suite Commander + + Fejl i forbindelse til DX Lab Suite Commander + + + + + DX Lab Suite Commander didn't respond correctly reading frequency: + DX Lab Suite Commande svarede ikke korret ved læsning af frekvens: + + + + DX Lab Suite Commander sent an unrecognised TX state: + DX Lab Suite Commande sendte en ukendt TX status: + + + + DX Lab Suite Commander didn't respond correctly polling TX status: + DX Lab Suite Commande reagerede ikke korrekt på polling af TX status: + + + + DX Lab Suite Commander rig did not respond to PTT: + DX Lab Suite Commande Radio svarede ikke på PTT: + + + + DX Lab Suite Commander didn't respond correctly polling frequency: + DX Lab Suite Commander svarede ikke korrekt ved polling af frekvens: + + + + DX Lab Suite Commander didn't respond correctly polling TX frequency: + DX Lab Suite Commander svarede ikke korrekt ved polling af TX frekvens: + + + + DX Lab Suite Commander sent an unrecognised split state: + DX Lab Suite Commander sendte en ukendt Split status: + + + + DX Lab Suite Commander didn't respond correctly polling split status: + DX Lab Suite Commander svarede ikke korrekt ved polling af Split status: + + + + DX Lab Suite Commander sent an unrecognised mode: " + DX Lab Suite Commande sendte en ukendt mode: " + + + + DX Lab Suite Commander didn't respond correctly polling mode: + DX Lab Suite Commande svarede ikke korrekt ved polling af mode: + + + + DX Lab Suite Commander send command failed + + DX Lab Suite Commande fejlede ved afsendelse af kommando + + + + + DX Lab Suite Commander failed to send command "%1": %2 + + DX Lab Suite Commander fejlede ved afsendelse af kommando "%1": %2 + + + + + DX Lab Suite Commander send command "%1" read reply failed: %2 + + DX Lab Suite Commander sendte kommandoen "%1" fejl i læsning af svar: %2 + + + + + DX Lab Suite Commander retries exhausted sending command "%1" + DX Lab Suite Commander gør ikke flere forsøg på at sende kommando "%1" + + + + DX Lab Suite Commander sent an unrecognized frequency + DX Lab Suite Commander sendte en ukendt frekvens + + + + DecodeHighlightingListView + + + &Foreground color ... + &Forgrunds farve ... + + + + Choose %1 Foreground Color + Vælg %1 Forgrunds farve + + + + &Unset foreground color + &Fjern forgrundsfarve + + + + &Background color ... + &Baggrunds farve ... + + + + Choose %1 Background Color + Vælg %1 Baggrunds farve + + + + U&nset background color + F&jern baggrundsfarve + + + + &Reset this item to defaults + &Reset til default + + + + DecodeHighlightingModel + + + CQ in message + CQ i meddelse + + + + My Call in message + Mit kaldesignal i meddelse + + + + Transmitted message + Afsendt meddelse + + + + New DXCC + Nyt DXCC + + + + New DXCC on Band + Nyt DXCC på bånd + + + + New Grid + Ny Grid + + + + New Grid on Band + Ny Grid på bånd + + + + New Call + Nyt Call + + + + New Call on Band + Nyt Call på bånd + + + + New Continent + Nyt Kontinent + + + + New Continent on Band + Nyt kontinent på bånd + + + + New CQ Zone + Ny CQ Zone + + + + New CQ Zone on Band + Ny CQ Zone på bånd + + + + New ITU Zone + Ny ITU Zone + + + + New ITU Zone on Band + Ny ITU Zone på bånd + + + + LoTW User + LoTW Bruger + + + + f/g unset + f/g fjernet + + + + b/g unset + b/g fjernet + + + + Highlight Type + Fremhæv skrift + + + + Designer + + + &Delete + &Slet + + + + &Insert ... + &Indsæt... + + + + Insert &after ... + Indsæt &Efter... + + + + Import Palette + Importer Palette + + + + + Palettes (*.pal) + Paletter (*.pal) + + + + Export Palette + Eksporter Palette + + + + Dialog + + + Gray time: + Gray time: + + + + Directory + + + File + Fil + + + + Progress + Fremskridt + + + + + URL Error + URL Fejl + + + + + Invalid URL: +"%1" + Invalid URL: +"%1" + + + + + + + + + + JSON Error + JSON Fejl + + + + Contents file syntax error %1 at character offset %2 + Indholds fil syntax error %1 ved karakter offset %2 + + + + Contents file top level must be a JSON array + Indholdet i filen skal være et JSON array + + + + File System Error + Fil system fejl + + + + Failed to open "%1" +Error: %2 - %3 + Fejl ved åbning af"%1" +Error: %2 - %3 + + + + Contents entries must be a JSON array + Indholdet af det skrevne skal være et JSON array + + + + Contents entries must have a valid type + Det skrevne indhold skal være gyldig + + + + Contents entries must have a valid name + Det skrevne skal have et gyldigt navn + + + + Contents entries must be JSON objects + Det skrevne skal være et JSON objekt + + + + Contents directories must be relative and within "%1" + Indholdet i mapper skal være relativ og inden for "%1" + + + + Network Error + Netværks Fejl + + + + Authentication required + Godkendelse påkrævet + + + + DisplayText + + + &Erase + &Slet + + + + EchoGraph + + + + Echo Graph + Ekko Graf + + + + <html><head/><body><p>Compression factor for frequency scale</p></body></html> + <html><head/><body><p>Kompressions faktor for frekvens skala</p></body></html> + + + + Bins/Pixel + Bins/Pixel + + + + Gain + Gain + + + + <html><head/><body><p>Echo spectrum gain</p></body></html> + <html><head/><body><p>Ekko spektrum forstærkning</p></body></html> + + + + Zero + Nul + + + + <html><head/><body><p>Echo spectrum zero</p></body></html> + <html><head/><body><p>Ekko spektrum nul</p></body></html> + + + + <html><head/><body><p>Smoothing of echo spectrum</p></body></html> + <html><head/><body> <p> Udglatning af ekko spektrum </p> </body> </html> + + + + Smooth + Udglatning + + + + <html><head/><body><p>Number of echo transmissions averaged</p></body></html> + <html><head/><body><p>Antal af Ekko afsendelser som er udglattet</p></body></html> + + + + N: 0 + N: 0 + + + + <html><head/><body><p>Click to cycle through a sequence of colors and line widths.</p></body></html> + <html><head/><body> <p> Klik for at gennemgå en sekvens farver og linjebredder. </p> </body> </html> + + + + Colors + Farver + + + + EmulateSplitTransceiver + + + Emulated split mode requires rig to be in simplex mode + Emuleret spit mode kræver at radioen er i simplex mode + + + + EqualizationToolsDialog::impl + + + Phase + Fase + + + + + Freq (Hz) + Frekv (Hz) + + + + Phase (Π) + Fase (Π) + + + + Delay (ms) + Delay (ms) + + + + Measured + Målt + + + + Proposed + Forslag + + + + Current + Nuværende + + + + Group Delay + Gruppe forsinkelse + + + + Amplitude + Amplitude + + + + Relative Power (dB) + Relativ Effekt (dB) + + + + Reference + Reference + + + + Phase ... + Fase ... + + + + Refresh + Genindlæs + + + + Discard Measured + Kasser målinger + + + + ExistingNameDialog + + + Configuration to Clone From + Konfiguration der klones fra + + + + &Source Configuration Name: + &Kildekonfigurations navn: + + + + ExportCabrillo + + + Dialog + Dialog + + + + Location: + Location: + + + + SNJ + SNJ + + + + Contest: + Contest: + + + + ARRL-RTTY + ARRL-RTTY + + + + Callsign: + Callsign: + + + + Category-Operator: + Category-Operator: + + + + SINGLE-OP + Single-OP + + + + Category-Transmitter: + Category-Transmitter: + + + + ONE + ONE + + + + Category-Power: + Category-Power: + + + + LOW + LOW + + + + Category-Assisted: + Category-Assisted: + + + + NON-ASSISTED + NON-ASSISTED + + + + Category-Band: + Category-Band: + + + + ALL + ALL + + + + Claimed-Score: + Claimed-Score: + + + + Operators: + Operators: + + + + Club: + Club: + + + + Name: + Name: + + + + + Address: + Address: + + + + Save Log File + Gem Log Fil + + + + Cabrillo Log (*.cbr) + Cabrillo Log (*.cbr) + + + + Cannot open "%1" for writing: %2 + Kan ikke åbne "%1" for for at skrive til: %2 + + + + Export Cabrillo File Error + Eksport Cabrillo Fil Fejl + + + + FastGraph + + + + Fast Graph + Fast Graf + + + + Waterfall gain + Vandfald forstærkning + + + + Waterfall zero + Vandfald Nul + + + + Spectrum zero + Spektrum Nul + + + + <html><head/><body><p>Set reasonable levels for gain and zero sliders.</p></body></html> + <html><head/><body> <p> Indstil rimelige niveauer for forstærkning og nul Glidere. </p> </body> </html> + + + + Auto Level + Auto Niveau + + + + FoxLog::impl + + + Date & Time(UTC) + Dato & Tid (UTC) + + + + Call + Kaldesignal + + + + Grid + Grid + + + + Sent + + + + + Rcvd + Modtaget + + + + Band + Bånd + + + + FoxLogWindow + + + Fox Log + Fox Log + + + + <html><head/><body><p>Right-click here for available actions.</p></body></html> + <html><head/><body> <p> Højreklik her for mulige handlinger. </p> </body> </html> + + + + Callers: + Callers: + + + + + + N + N + + + + In progress: + I gang: + + + + Rate: + Rate: + + + + &Export ADIF ... + &Export ADIF ... + + + + Export ADIF Log File + Eksport ADIF Log Fil + + + + ADIF Log (*.adi) + ADIF Log (*.adi) + + + + Export ADIF File Error + Fejl ved Eksport af ADIF Fil + + + + Cannot open "%1" for writing: %2 + Kan ikke åbne "%1" for at skrive: %2 + + + + &Reset ... + &Reset ... + + + + Confirm Reset + Bekræft Reset + + + + Are you sure you want to erase file FoxQSO.txt and start a new Fox log? + Er du sikker på du vil slette filen FoxQSO.txt og starte en ny Fox Log? + + + + FrequencyDialog + + + Add Frequency + Tilføj Frekvens + + + + IARU &Region: + IARU &Region: + + + + &Mode: + &Mode: + + + + &Frequency (MHz): + &Frekvens (Mhz): + + + + FrequencyList_v2 + + + + IARU Region + IRAU Region + + + + + Mode + Mode + + + + + Frequency + Frekvens + + + + + Frequency (MHz) + Frekvens (Mhz) + + + + HRDTransceiver + + + + Failed to connect to Ham Radio Deluxe + + Fejl i kommunikation med HRD + + + + + Failed to open file "%1": %2. + Kan ikke åbne fil "%1": %2. + + + + + Ham Radio Deluxe: no rig found + Ham Radio Deluxe: Ingen radio fundet + + + + Ham Radio Deluxe: rig doesn't support mode + Ham Radio Deluxe: Radioen understøtter ikke denne mode + + + + Ham Radio Deluxe: sent an unrecognised mode + Ham Radio Deluxe: Har sendt en ikke genkendt mode + + + + Ham Radio Deluxe: item not found in %1 dropdown list + Ham Radio Deluxe: Enheden ikke fundet i %1 på listen + + + + Ham Radio Deluxe: button not available + Ham Radio Deluxe: Knap ikke tilgængelig + + + + Ham Radio Deluxe didn't respond as expected + Ham Radio Deluxe svarede ikke som forventet + + + + Ham Radio Deluxe: rig has disappeared or changed + Ham Radio Deluxe: Radio er forsvundet eller er ændret + + + + Ham Radio Deluxe send command "%1" failed %2 + + Ham Radio Deluxe sendte kommando "%1" fejl %2 + + + + + + Ham Radio Deluxe: failed to write command "%1" + Ham Radio Deluxe: Fejl ved skrivning af kommando "%1" + + + + Ham Radio Deluxe sent an invalid reply to our command "%1" + Ham Radio Deluxe sendte en forkert svar på kommando "%1" + + + + Ham Radio Deluxe failed to reply to command "%1" %2 + + Ham Radio Deluxe fejl ved svar på kommando "%1" %2 + + + + + Ham Radio Deluxe retries exhausted sending command "%1" + Ham Radio Deluxe ikke flere forsøg for afsendelse af kommando "%1" + + + + Ham Radio Deluxe didn't respond to command "%1" as expected + Ham Radio Deluxe svarede ikke på kommando "%1" som forventet + + + + HamlibTransceiver + + + + Hamlib initialisation error + Hamlib initialiseringsfejl + + + + Hamlib settings file error: %1 at character offset %2 + Hamlib fejl i ved indstillings fil : %1 ved karakter offset %2 + + + + Hamlib settings file error: top level must be a JSON object + Hamlib indstillings fil fejl: Top niveau skal være et JSON objekt + + + + Hamlib settings file error: config must be a JSON object + Hamlib indstillings fil fejl: konfiguration skal være et JSON objekt + + + + Unsupported CAT type + Ikke under støttet CAT type + + + + Hamlib error: %1 while %2 + Hamlib fejl: %1 med %2 + + + + opening connection to rig + Åbner forbindelse til radio + + + + getting current frequency + Henter nuværende frekvens + + + + getting current mode + Henter nuværende mode + + + + + exchanging VFOs + Skifter VFOer + + + + + getting other VFO frequency + Henter anden VFO + + + + getting other VFO mode + Henter anden VFO Mode + + + + setting current VFO + Inderstiller nuværende VFO + + + + getting frequency + Henter frekvens + + + + getting mode + Henter mode + + + + + getting current VFO + Henter nuværende VFO + + + + + + + getting current VFO frequency + Henter nuværende VFO frekvens + + + + + + + + + setting frequency + Indstiller frekvens + + + + + + + getting current VFO mode + Henter nuværende VFO mode + + + + + + + + setting current VFO mode + Indstiller nuværende VFO mode + + + + + setting/unsetting split mode + Indstiller/Fjerner spilt mode + + + + + setting split mode + Indstiller split mode + + + + setting split TX frequency and mode + Indstiller split TX frekvens og mode + + + + setting split TX frequency + Indstiller split frekvens + + + + getting split TX VFO mode + Henter split TX VFO mode + + + + setting split TX VFO mode + Indstiller split TX VFO mode + + + + getting PTT state + Henter PTT status + + + + setting PTT on + Sætter PTT on + + + + setting PTT off + Sætter PTT off + + + + setting a configuration item + Indstilling af konfigurations element + + + + getting a configuration item + Henter konfigirations element + + + + HelpTextWindow + + + Help file error + Hjælpe Fil fejl + + + + Cannot open "%1" for reading + Kan ikke åbne "%1" for at læse + + + + Error: %1 + Fejl: %1 + + + + IARURegions + + + + IARU Region + IARU Region + + + + LogQSO + + + Click OK to confirm the following QSO: + Klik OK for at bekræfte følgende QSO: + + + + Call + Kaldesignal + + + + Start + Start + + + + + dd/MM/yyyy HH:mm:ss + dd/MM/yyyy HH:mm:ss + + + + End + Slut + + + + Mode + Mode + + + + Band + Bånd + + + + Rpt Sent + Rpt sendt + + + + Rpt Rcvd + RPT modtaget + + + + Grid + Grid + + + + Name + Navn + + + + Tx power + TX power + + + + + Retain + Behold + + + + Comments + Kommentar + + + + Operator + Operatør + + + + Exch sent + Exch sendt + + + + Rcvd + Modtaget + + + + + Invalid QSO Data + Forkerte QSO Data + + + + Check exchange sent and received + Kontroller Exch sendt og modtager + + + + Check all fields + Kontroller alle felter + + + + Log file error + Log fil fejl + + + + Cannot open "%1" for append + Kan ikke åbne "%1" for tilføjelse + + + + Error: %1 + Fejl: %1 + + + + LotWUsers::impl + + + Network Error - SSL/TLS support not installed, cannot fetch: +'%1' + Netværksfejl - SSL / TLS-support ikke installeret, kan ikke hente: +'% 1' + + + Netværksfejl - SSL / TLS-support ikke installeret. Kan ikke hente +'%1' + + + + Network Error - Too many redirects: +'%1' + Netværksfejl - For mange omdirigeringer: +'% 1' + + + Netværksfejl - For mange omdirigeringer: +'%1' + + + + Network Error: +%1 + Netværks Fejl: +%1 + + + + File System Error - Cannot commit changes to: +"%1" + Fil system Fejl kan ikke tilføje ændinger til: +"%1" + + + + File System Error - Cannot open file: +"%1" +Error(%2): %3 + Fil system Fejl - Kan ikke åbne filen: +"%1" +Fejl(%2): %3 + + + + File System Error - Cannot write to file: +"%1" +Error(%2): %3 + Fil system Fejl - Kan ikke skrive til: +"%1" +Fejl(%2): %3 + + + + MainWindow + + + WSJT-X by K1JT + WSJT-X by K1JT + + + + + + + + + + Band Activity + Bånd Aktivitet + + + + + UTC dB DT Freq Dr + UTC dB DT Frekv Dr + + + + + + + + + Rx Frequency + Rx frekvens + + + + CQ only + Kun CQ + + + + Enter this QSO in log + Indsæt denne QSO i Log + + + + Log &QSO + Log &QSO + + + + Stop monitoring + Stop monitorering + + + + &Stop + &Stop + + + + Toggle monitoring On/Off + Skift monitorering On/Off + + + + &Monitor + &Monitor + + + + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> + <html><head/><body><p>Slet hjre vindue. Dobbelt-klik for at slette begge vinduer.</p></body></html> + + + + Erase right window. Double-click to erase both windows. + Slet højre vindue. Dobbelt klik for at slette begge vinduer. + + + + &Erase + &Slet + + + + <html><head/><body><p>Clear the accumulating message average.</p></body></html> + <html><head/><body> <p> Slet det samlede meddelelsesgennemsnit. </p> </body> </html> + + + + Clear the accumulating message average. + Slet det samlede meddelses gennemsnit. + + + + Clear Avg + Slet AVG + + + + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> + <html><head/><body> <p> Dekod den seneste Rx-periode på QSO-frekvens </p> </body> </html> + + + + Decode most recent Rx period at QSO Frequency + Dekod den seneste Rx-periode på QSO-frekvens + + + + &Decode + &Dekod + + + + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> + <html><head/><body><p>Skift af Auto-Tx On/Off</p></body></html> + + + + Toggle Auto-Tx On/Off + Skift Auto Tx On/Off + + + + E&nable Tx + A&ktiver Tx + + + + Stop transmitting immediately + Stop TX med det samme + + + + &Halt Tx + &Stop Tx + + + + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> + <html><head/><body><p>Skift mellem On/Off af TX Tone</p></body></html> + + + + Toggle a pure Tx tone On/Off + Skift mellem On/Off af TX Tone + + + + &Tune + &Tune + + + + Menus + Menu + + + + USB dial frequency + USB dial frekvens + + + + 14.078 000 + 14.078 000 + + + + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> + <html><head/><body> <p> 30dB anbefales, når der kun er støj til stede <br/> Grønt er godt <br/> Rødt ved klipning kan forekomme <br/> Gul, når den er for lav </p> </ body > </ html> + + + + Rx Signal + Rx Signal + + + + 30dB recommended when only noise present +Green when good +Red when clipping may occur +Yellow when too low + 30dB anbefales når der kun er støj til stede +Grønt er godt +Rød ved klipping kan forekomme +Gul er for lavt + + + + DX Call + DX kaldesignal + + + + DX Grid + DX Grid + + + + Callsign of station to be worked + Kaldesignal på den der køres + + + + Search for callsign in database + Kig efter kaldesignalet i databasen + + + + &Lookup + &Slå op + + + + Locator of station to be worked + Lokator på den der køres + + + + Az: 251 16553 km + Az: 251 16553 km + + + + Add callsign and locator to database + Tilføj kaldesignal og locator til Log databasen + + + + Add + Tilføj + + + + Pwr + Pwr + + + + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> + <html><head/><body> <p> Er den orange eller rød er der sket en Radiokontrol fejl og så skal du klikke for at nulstille og læse frekvensen. S betyder split mode. </p> </body> </html> + + + + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. + Hvis den er orange eller rød har der været en Radiokontrol fejl. Så skal der klikkes for nulstille og læse frekvensen. S betyder split mode. + + + + ? + ? + + + + Adjust Tx audio level + Juster Tx audio niveau + + + + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> + <html><head/><body> <p> Vælg bånd eller indtast frekvens i MHz eller indtast kHz forøgelse efterfulgt af k. </p> </body> </html> + + + + Frequency entry + Indsæt Frekvens + + + + Select operating band or enter frequency in MHz or enter kHz increment followed by k. + Vælg bånd du vil operere på eller indtast frekvens i Mhz eller indtast Khz efterfulgt af k. + + + + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + + + + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> + <html><head/><body> <p> Marker for at holde Tx-frekvensen, når du dobbeltklikker på dekodet tekst. </p> </body> </html> + + + + Check to keep Tx frequency fixed when double-clicking on decoded text. + Marker for at låse Tx frekvens når der dobbeltklikkes på en dekodet tekst. + + + + Hold Tx Freq + Hold Tx Frekv + + + + Audio Rx frequency + Audio Rx frekvens + + + + + + Hz + Hz + + + + Rx + Rx + + + + Set Tx frequency to Rx Frequency + Sæt Tx frekvens til Rx frekvens + + + + ▲ + + + + + Frequency tolerance (Hz) + Frekvens tolerance (Hz) + + + + F Tol + F Tol + + + + Set Rx frequency to Tx Frequency + Sæt Rx frekevens til Tx Frekvens + + + + ▼ + + + + + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> + <html><head/><body> <p> Synkroniseringsgrænse. Lavere tal accepterer svagere synkroniseringssignaler. </p> </body> </html> + + + + Synchronizing threshold. Lower numbers accept weaker sync signals. + Synkroniseringsgrænse. Lavere tal accepterer svagere synkroniseringssignaler. + + + + Sync + Synk + + + + <html><head/><body><p>Check to use short-format messages.</p></body></html> + <html><head/><body><p>Marker for at bruge kort msg format.</p></body></html> + + + + Check to use short-format messages. + Marker for at bruge kort msg format. + + + + Sh + Sh + + + + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> + <html><head/><body><p>Marker for at aktivere JT9 Fast Mode</p></body></html> + + + + Check to enable JT9 fast modes + Marker for aktivering af JT9 Fast Mode + + + + + Fast + Fast + + + + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> + <html><head/><body> <p> Marker for at aktivere automatisk sekventering af Tx-meddelelser baseret på modtagne meddelelser. </p> </body> </html> + + + + Check to enable automatic sequencing of Tx messages based on received messages. + Marker for at aktivere automatisk sekventering af Tx-meddelelser baseret på modtagne meddelelser. + + + + Auto Seq + Auto Sekv + + + + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> + <html><head/><body> <p> Marker for at kalde den første dekodede som svarer på min CQ. </p> </body> </html> + + + + Check to call the first decoded responder to my CQ. + Marker for at kalde den første som svarer på min CQ. + + + + Call 1st + Kald 1st + + + + Check to generate "@1250 (SEND MSGS)" in Tx6. + Marker for at generere "@1250 (SEND MSGS)" in Tx6. + + + + Tx6 + Tx6 + + + + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> + <html><head/><body> <p> Marker for Tx på lige sekunder i minuttet eller sekvenser, der starter ved 0; fjern markeringen for ulige sekvenser. </p> </body> </html> + + + + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. + Marker til Tx på lige sekunder i minuttet eller sekvenser, der starter ved 0; fjern markeringen for ulige sekvenser. + + + + Tx even/1st + Tx Lige/1st + + + + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> + <html><head/><body><p>Frekvens hvor der kaldes CQ på i kHz over de nuværende Mhz</p></body></html> + + + + Frequency to call CQ on in kHz above the current MHz + Frekvens hvor der kaldes CQ i Khz over de nuværende Mhz + + + + Tx CQ + Tx CQ + + + + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> + <html><head/><body> <p> Marker for at kalde CQ på &quot; Tx CQ &quot; frekvens. Rx vil være på den aktuelle frekvens, og CQ-meddelelsen vil indeholde den aktuelle Rx-frekvens, så modparten ved, hvilken frekvens der skal svares på. </p> <p> Ikke tilgængelig for ikke-standard kaldesignaler. </p> </body> </ html> + + + + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. +Not available to nonstandard callsign holders. + Marker for at kalde CQ på "TX CQ" frekvens. Rx vil være på den aktuelle frekvens, og CQ-meddelelsen vil indeholde den aktuelle Rx-frekvens, så modparten ved, hvilken frekvens der skal svares på. Ikke tilgængelig for ikke-standard kaldesignaler. + + + + Rx All Freqs + Rx Alle Frekv + + + + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> + <html><head/><body> <p> Submode bestemmer toneafstanden; A er det smalleste. </p> </body> </html> + + + + Submode determines tone spacing; A is narrowest. + Submode bestemmer toneafstanden; A er det smalleste. + + + + Submode + Submode + + + + + Fox + Fox + + + + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> + <html><head/><body><p>Marker for at monitere Sh meddelser.</p></body></html> + + + + Check to monitor Sh messages. + Marker for monitering af Sh meddelser. + + + + SWL + SWL + + + + Best S+P + Best S+P + + + + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> + <html><head/><body> <p> Marker dennee for at starte opsamling af kalibreringsdata. <br/> Mens måling af kalibreringskorrektion er visning deaktiveret. <br/> Når denne ikke er markeret, kan du se kalibreringsresultaterne. </p> </ body> </ html> + + + + Check this to start recording calibration data. +While measuring calibration correction is disabled. +When not checked you can view the calibration results. + Marker denne for at starte registrering af kalibreringsdata. +Mens foregår måling af kalibreringskorrektion er visning deaktiveret. +Når den ikke er markeret, kan du se kalibreringsresultaterne. + + + + Measure + Mål kalibrering + + + + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> + <html><head/><body> <p> Signalrapport: Signal-til-støj-forhold i 2500 Hz referencebåndbredde (dB). </p> </body> </html> + + + + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). + Signalrapport: Signal-til-støj-forhold i 2500 Hz referencebåndbredde (dB). + + + + Report + Rapport + + + + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> + <html><head/><body><p>Tx/Rx eller Frekvens kalibrerings sekvenslængde</p></body></html> + + + + Tx/Rx or Frequency calibration sequence length + Tx/Rx eller Frekvens kalibrerings sekvenslængde</p></body></html> + + + + s + s + + + + T/R + T/R + + + + Toggle Tx mode + Skift TX mode + + + + Tx JT9 @ + Tx JT9@ + + + + Audio Tx frequency + Audio Tx frekvens + + + + + Tx + TX + + + + Tx# + TX# + + + + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> + <html><head/><body> <p> Dobbeltklik på et CQ opkald for at den pågældende kommer i kø til næste QSO. </p> </body> </html> + + + + Double-click on another caller to queue that call for your next QSO. + Dobbeltklik på et andet CQ opkald for at den pågældende kommer i kø til næste QSO. + + + + Next Call + Næste Kaldesignal + + + + 1 + 1 + + + + + + Send this message in next Tx interval + Send denne meddelse i næste Tx periode + + + + Ctrl+2 + Ctrl+2 + + + + <html><head/><body><p>Send this message in next Tx interval</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> Send denne meddelelse i næste Tx-interval </p> <p> Dobbeltklik for at skifte brug af Tx1-meddelelsen til at starte en QSO med en station (ikke tilladt for type 1 sammensatte opkald) </p> </body> </html> + + + + Send this message in next Tx interval +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) + Send denne meddelelse i næste Tx-periode. +Dobbeltklik for at skifte brug af Tx1-meddelelsen til at starte en QSO med en station (ikke tilladt for type 1 indehavere af sammensatte opkald) + + + + Ctrl+1 + CTRL+1 + + + + + + + Switch to this Tx message NOW + Skift til denne Tx meddelse nu + + + + Tx &2 + TX &2 + + + + Alt+2 + Alt+2 + + + + <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> Skift til denne Tx-meddelelse NU </p> <p> Dobbeltklik for at skifte brug af Tx1-meddelelsen til at starte en QSO med en station (ikke tilladt for type 1 sammensatte kaldesignaler) </p> </body> </html> + + + + Switch to this Tx message NOW +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) + Skift til denne Tx meddelse NU +Dobbelt klik for at skifte brug af Tx1 meddelse for at starte QSO med en station (ikke tilladt for type 1 sammensatte kaldesignaler) + + + + Tx &1 + Tx &1 + + + + Alt+1 + Alt+1 + + + + Ctrl+6 + CTRL+6 + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> + <html><head/><body><p>Send denne meddelse i næste Tx periode</p><p>Dobbelt klik for at resette til standard 73 message</p></body></html> + + + + Send this message in next Tx interval +Double-click to reset to the standard 73 message + Send denne meddelse i næste Tx periode +Dobbelt klik for at resette til standard 73 message + + + + Ctrl+5 + Ctrl+5 + + + + Ctrl+3 + CTRL+3 + + + + Tx &3 + Tx &3 + + + + Alt+3 + Alt+3 + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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> Send denne meddelelse i næste Tx periode </p> <p> Dobbeltklik for at skifte mellem RRR og RR73-meddelelser i Tx4 (ikke tilladt for type 2 sammensatte kaldesignaler)</p><p> RR73 meddelelser skal kun bruges, når du med rimelig sikkerhed er overbevist om, at der ikke kræves gentagne meddelelser</p></body></html> + + + + Send this message in next Tx interval +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + Send denne meddelelse i næste Tx-intervall +Dobbeltklik for at skifte mellem RRR og RR73-meddelelser i Tx4 (ikke tilladt for type 2 sammensatte kaldesignaler) +RR73-meddelelser skal kun bruges, når du med rimelig sikkerhed er overbevist om, at der ikke kræves gentagne meddelelser + + + + Ctrl+4 + Ctrl+4 + + + + <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> Skift til denne Tx-meddelelse NU</p><p>Dobbeltklik for at skifte mellem RRR og RR73-meddelelser i Tx4 (ikke tilladt for type2 sammensatte kaldesignaler)</p><p>RR73-meddelelser skal kun bruges, når du med rimelighed er overbevist om, at der ikke kræves gentagne meddelelser </p></body></html> + + + + Switch to this Tx message NOW +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + Skift til denne Tx-meddelelse NU +Dobbeltklik for at skifte mellem RRR og RR73-meddelelser i Tx4 (ikke tilladt for type2 sammensatte kaldesignaler) +RR73-meddelelser skal kun bruges, når du med rimelig sikkerhed er overbevist om, at der ikke kræves gentagne meddelelser + + + + Tx &4 + TX &4 + + + + Alt+4 + Alt+4 + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> + <html><head/><body><p>Skift til denne Tx meddelse NU</p><p>Dobbelt klik for at vende tilbage til standard 73 message</p></body></html> + + + + Switch to this Tx message NOW +Double-click to reset to the standard 73 message + Skift til denne Tx meddelse NU +Dobbelt klik for at vende tilbage til standard 73 meddelse + + + + Tx &5 + Tx&5 + + + + Alt+5 + Alt+5 + + + + Now + Nu + + + + Generate standard messages for minimal QSO + Generer standard meddelse til minimal QSO + + + + Generate Std Msgs + Generate Std Medd + + + + Tx &6 + Tx&6 + + + + Alt+6 + Alt+6 + + + + + Enter a free text message (maximum 13 characters) +or select a predefined macro from the dropdown list. +Press ENTER to add the current text to the predefined +list. The list can be maintained in Settings (F2). + Indsæt en Fri-tekst meddelse (maksimum 13 karakterer mellemrum) +eller vælg en foruddefineret fra makro listen +Tryk på på Enter for indsætte teksten til makro +listen. Makro listen kan også ændfres i Inderstillinger (F2). + + + + Queue up the next Tx message + Sat i kø til næste Tx meddelse + + + + Next + Næste + + + + 2 + ? + 2 + + + + Calling CQ + Kalder CQ + + + + Generate a CQ message + Generer CQ meddelse + + + + + + CQ + CQ + + + + Generate message with RRR + Generer meddelse med RRR + + + + RRR + RRR + + + + Generate message with report + Generer meddelse med rapport + + + + dB + dB + + + + Answering CQ + Svar på CQ + + + + Generate message for replying to a CQ + Generer meddelse som svar på et CQ + + + + + Grid + Grid + + + + Generate message with R+report + Generer meddelse med R+report + + + + R+dB + R+dB + + + + Generate message with 73 + Generer meddelse med 73 + + + + 73 + 73 + + + + Send this standard (generated) message + Send denne standard (genereret) meddelse + + + + Gen msg + Gen medd + + + + Send this free-text message (max 13 characters) + Send denne fri-tekst meddelse (maks 13 karakterer) + + + + Free msg + Fri medd + + + + 3 + 3 + + + + Max dB + Maks dB + + + + CQ AF + CQ AF + + + + CQ AN + CQ AN + + + + CQ AS + CQ AS + + + + CQ EU + CQ EU + + + + CQ NA + CQ NA + + + + CQ OC + CQ OC + + + + CQ SA + CQ SA + + + + CQ 0 + CQ 0 + + + + CQ 1 + CQ 1 + + + + CQ 2 + CQ 2 + + + + CQ 3 + CQ 3 + + + + CQ 4 + CQ 4 + + + + CQ 5 + CQ 5 + + + + CQ 6 + CQ 6 + + + + CQ 7 + CQ 7 + + + + CQ 8 + CQ 8 + + + + CQ 9 + CQ 9 + + + + Reset + Reset + + + + N List + N Liste + + + + N Slots + N slots + + + + + Random + Tilfældig + + + + Call + Kaldesignal + + + + S/N (dB) + S/N (dB) + + + + Distance + Distance + + + + More CQs + Flere CQ + + + + Percentage of 2-minute sequences devoted to transmitting. + Procen af en 2 minutters sekvens dedikeret til sending. + + + + % + % + + + + Tx Pct + Tx Pct + + + + Band Hopping + Bånd hopping + + + + Choose bands and times of day for band-hopping. + Vælg bånd og tid på dagen for Bånd-Hopping. + + + + Schedule ... + Tidskema ... + + + + Upload decoded messages to WSPRnet.org. + Uoload dekodet meddelser til WSPRnet.org. + + + + Upload spots + Upload spots + + + + <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>6-cifrede locatorer kræver 2 forskellige meddelelser for at blive sendt, den anden indeholder den fulde locator, men kun et hashet kaldesignal. Andre stationer skal have dekodet den første gang, før de kan dekode dit kaldesignal i den anden meddelse. Marker denne indstilling for kun at sende 4-cifrede locatorer, hvis den vil undgå to meddelelsesprotokollen.</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. + 6 cifrede locatorer kræver 2 forskellige meddelelser for at blive sendt, den anden indeholder den fulde locator, men kun et hashet kaldesignal. Andre stationer skal have dekodet den første gang, før de kan dekode dit kaldesignal i den anden meddelse. Marker denne indstilling for kun at sende 4-cifrede locatorer, hvis du vil undgå to meddelelses protokollen. + + + + Prefer type 1 messages + Fortrækker type 1 meddelse + + + + No own call decodes + Ingen dekodning af eget kaldesignal + + + + Transmit during the next 2-minute sequence. + Tx i den næste 2 minutters sekvens. + + + + Tx Next + Tx Næste + + + + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. + Indsæt Tx power i dBm (dB over 1mW) som en del af WSPR meddelse. + + + + File + Fil + + + + View + Vis/Se + + + + Decode + Dekod + + + + Save + Gem + + + + Help + Hjælp + + + + Mode + Mode + + + + Configurations + Konfiguration + + + + Tools + Værktøjer + + + + Exit + Afslut + + + + Configuration + Konfiguiration + + + + F2 + F2 + + + + About WSJT-X + Om WSJT-X + + + + Waterfall + Vandfald + + + + Open + Åbne + + + + Ctrl+O + Ctrl+o + + + + Open next in directory + Åben den næste i mappe + + + + Decode remaining files in directory + Dekod resterende filer i mappen + + + + Shift+F6 + Shift+F6 + + + + Delete all *.wav && *.c2 files in SaveDir + Slet alle *.wav && *.c2 filer i mappen Gemt + + + + None + Ingen + + + + Save all + Gem alt + + + + Online User Guide + Online Bruger Manual + + + + Keyboard shortcuts + Tastetur genveje + + + + Special mouse commands + Specielle muse kommandoer + + + + JT9 + JT9 + + + + Save decoded + Gem dekodet + + + + Normal + Normal + + + + Deep + Dybt + + + + Monitor OFF at startup + Monitor OFF ved start + + + + Erase ALL.TXT + Slet ALL.TXT + + + + Erase wsjtx_log.adi + Slet wsjtx_log.adi + + + + Convert mode to RTTY for logging + Koverter mode til RTTY ved logning + + + + Log dB reports to Comments + Log dB rapporter til kommentar feltet + + + + Prompt me to log QSO + Gør mig opmærksom på at logge QSO + + + + Blank line between decoding periods + Stiplede linjer mellem dekodnings perioder + + + + Clear DX Call and Grid after logging + Slet DX Call og Grid efter logging + + + + Display distance in miles + Vis afstand i miles + + + + Double-click on call sets Tx Enable + Dobbelt-klik på et kaldesignal for at sætte TX ON + + + + + F7 + F7 + + + + Tx disabled after sending 73 + + + + + + Runaway Tx watchdog + Runaway Tx vagthund + + + + Allow multiple instances + Tillad flere forekomster af program + + + + Tx freq locked to Rx freq + Tx frekv låst til Rx frekv + + + + JT65 + JT65 + + + + JT9+JT65 + JT+JT65 + + + + Tx messages to Rx Frequency window + Tx meddelse til Rx Frekvens vindue + + + + Gray1 + Gray1 + + + + Show DXCC entity and worked B4 status + Vis DXCC og Worked B4 status + + + + Astronomical data + Astronomi data + + + + List of Type 1 prefixes and suffixes + Liste over Type 1 prefix og suffix + + + + Settings... + Indstillinger... + + + + Local User Guide + Lokal User Manual + + + + Open log directory + Åben Logfil mappe + + + + JT4 + JT4 + + + + Message averaging + Meddelse gennemsnit + + + + Enable averaging + Aktiver gennemsnit + + + + Enable deep search + Aktiver Dyb dekodning + + + + WSPR + WSPR + + + + Echo Graph + Ekko graf + + + + F8 + F8 + + + + Echo + Ekko + + + + EME Echo mode + EME Ekko mode + + + + ISCAT + ISCAT + + + + Fast Graph + + + + + F9 + F9 + + + + &Download Samples ... + &Download eksempler ... + + + + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> + <html><head/><body><p>Download audio filer eksempler som demonstrerer de forskellige modes.</p></body></html> + + + + MSK144 + MSK144 + + + + QRA64 + QRA64 + + + + Release Notes + Release Notes + + + + Enable AP for DX Call + Aktiver AP for DX kaldesignal + + + + FreqCal + FrekvCal + + + + Measure reference spectrum + Måler reference spectrum + + + + Measure phase response + Måler fase response + + + + Erase reference spectrum + Slet reference spektrum + + + + Execute frequency calibration cycle + Kør en frekvens kalibrerings sekvens + + + + Equalization tools ... + Equalization værktøjer ... + + + + WSPR-LF + WSPR-LF + + + + Experimental LF/MF mode + Eksperimental LF/MF mode + + + + FT8 + FT8 + + + + + Enable AP + Aktiver AP + + + + Solve for calibration parameters + Løs for kalibrerings parametre + + + + Copyright notice + Copyright notits + + + + Shift+F1 + Shift+F1 + + + + Fox log + Fox Log + + + + FT8 DXpedition Mode User Guide + FT8 DXpedition Mode bruger guide + + + + Reset Cabrillo log ... + Reset Cabrillo log ... + + + + Color highlighting scheme + Farve skema + + + + Contest Log + Contest Log + + + + Export Cabrillo log ... + Eksporter Cabrillo log ... + + + + Quick-Start Guide to WSJT-X 2.0 + Quick-Start Guide til WSJT-X 2.0 + + + + Contest log + Contest log + + + + Erase WSPR hashtable + Slet WSPR Hash tabel + + + + FT4 + FT4 + + + + Rig Control Error + Radio kontrol fejl + + + + + + Receiving + Modtager + + + + Do you want to reconfigure the radio interface? + Vil du rekonfigurere radio interface? + + + + Error Scanning ADIF Log + Fejl ved scanning af Adif Log + + + + Scanned ADIF log, %1 worked before records created + Scannet ADIF log, %1 worked B4 oprettede poster + + + + Error Loading LotW Users Data + Fejl ved indlæsning af LotW bruger Data + + + + Error Writing WAV File + Fejl ved skrivning af WAV Fil + + + + Configurations... + Konfigurationer... + + + + + + + + + + + + + + + + + + + Message + Meddelse + + + + Error Killing jt9.exe Process + Fejl ved lukning af jt9.exe processen + + + + KillByName return code: %1 + KillByName return code: %1 + + + + Error removing "%1" + Fejl ved fjernelse af "%1" + + + + Click OK to retry + Klik OK for at prøve igen + + + + + Improper mode + Forkert mode + + + + + File Open Error + Fejl ved åbning af fil + + + + + + + + Cannot open "%1" for append: %2 + Kan ikke åbne "%1" for at tilføje: %2 + + + + Error saving c2 file + Fejl da c2 fil skulle gemmes + + + + Error in Sound Input + Fejl i Audio input + + + + Error in Sound Output + Fejl i Audio output + + + + + + Single-Period Decodes + Enkel-Periode Dekodning + + + + + + Average Decodes + Gennemsnitlig dekodning + + + + Change Operator + Skift Operatør + + + + New operator: + Ny Operatør: + + + + Status File Error + Fejl i status Fil + + + + + Cannot open "%1" for writing: %2 + Kan ikke åbne "%1" for at skrive: %2 + + + + Subprocess Error + Underprocess fejl + + + + Subprocess failed with exit code %1 + Underprocess fejlede med fejlkode %1 + + + + + Running: %1 +%2 + Kører: %1 +%2 + + + + Subprocess error + Underprocess fejl + + + + Reference spectrum saved + Reference spectrum gemt + + + + Invalid data in fmt.all at line %1 + Forkert data i fmt.all ved linje %1 + + + + Good Calibration Solution + God Kalibrerings løsning + + + + <pre>%1%L2 ±%L3 ppm +%4%L5 ±%L6 Hz + +%7%L8 +%9%L10 Hz</pre> + <pre>%1%L2 ±%L3 ppm +%4%L5 ±%L6 Hz + +%7%L8 +%9%L10 Hz</pre> + + + + Delete Calibration Measurements + Slet Kalibrerings måling + + + + The "fmt.all" file will be renamed as "fmt.bak" + Filen fmt.all vil blive omdøbt til "fmt.bak" + + + + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: + +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." + Hvis du gør brug af nogen del af WSJT-X under betingelserne i GNU General Public License, skal du vise følgende copyright-meddelelse fremtrædende i din egen udgave: +"Algoritmerne, kildekoden, udseendet og funktionen af ​​WSJT-X og relaterede programmer og protokolspecifikationer for Mode FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 er Copyright (C) 2001-2020 af en eller flere af følgende forfattere: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; og andre medlemmer af WSJT Development Group. " + + + + No data read from disk. Wrong file format? + Ingen data indlæst. Forkert fil format? + + + + Confirm Delete + Bekræft sletning + + + + Are you sure you want to delete all *.wav and *.c2 files in "%1"? + Er du sikker på du vil slette alle *.wav og *.c2 filer i "%1"? + + + + Keyboard Shortcuts + Tastetur Genveje + + + + Special Mouse Commands + Specielle muse kommandoer + + + + No more files to open. + Ikke flere filer at åbne. + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. + Venligst vælg en ande Tx frekvens. WSJT-X vil ikke sende med en anden Mode i WSPR området på 30m. + + + + WSPR Guard Band + WSPR Guard bånd + + + + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. + Vælg venligst en anden VFO frekvens. WSJT-x vil ikke operere med Fox mode i standard FT8 områder + + + + Fox Mode warning + Fox Mode advarsel + + + + Last Tx: %1 + Senest Tx: %1 + + + + Should you switch to EU VHF Contest mode? + +To do so, check 'Special operating activity' and +'EU VHF Contest' on the Settings | Advanced tab. + Bør du skifte til EU VHF-Contest ? + +For at gøre dette skal du markere 'Speciel aktivitet' og +'EU VHF-Contest' på indstillingerne | Avanceret fane. + + + + Should you switch to ARRL Field Day mode? + Bør du skifte til ARRL Field Day mode? + + + + Should you switch to RTTY contest mode? + Bør du skifte til RTTY Contest mode? + + + + + + + Add to CALL3.TXT + Tilføj til CALL3.TXT + + + + Please enter a valid grid locator + Indsæt en gyldig Grid lokator + + + + Cannot open "%1" for read/write: %2 + Kan ikke åbne "%1" for Læse/Skrive: %2 + + + + %1 +is already in CALL3.TXT, do you wish to replace it? + %1 +er allerede i CALL3.TXT. Vil du erstatte den? + + + + Warning: DX Call field is empty. + Advarsel: DX Call feltet er tomt. + + + + Log file error + Log fil fejl + + + + Cannot open "%1" + Kan ikke åbne "%1" + + + + Error sending log to N1MM + Fejl ved afsendelse af log til N1MM + + + + Write returned "%1" + Skrivning vendte tilbage med "%1" + + + + Stations calling DXpedition %1 + Stationer som kalder DXpedition %1 + + + + Hound + Hound + + + + Tx Messages + Tx meddelse + + + + + + Confirm Erase + Bekræft Slet + + + + Are you sure you want to erase file ALL.TXT? + Er du sikker på du vil slette filen ALL.TXT? + + + + + Confirm Reset + Bekræft Reset + + + + Are you sure you want to erase your contest log? + Er du sikker på du vil slette din contest log? + + + + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. + Gør du dette vil alle QSOer for pågældende contest blive slettet. De bliver dog gemt i en ADIF fik, men det vil ikke være muligt at eksportere dem som Cabrillo log. + + + + Cabrillo Log saved + Cabrillo Log gemt + + + + Are you sure you want to erase file wsjtx_log.adi? + Er du sikker på du vil slette filen wsjtx_log.adi? + + + + Are you sure you want to erase the WSPR hashtable? + Er du sikker på du vil slette WSPR Hash tabellen? + + + + VHF features warning + VHF feature advarsel + + + + Tune digital gain + Tune digital gain + + + + Transmit digital gain + Transmit digital gain + + + + Prefixes + Prefixer + + + + Network Error + Netværks Fejl + + + + Error: %1 +UDP server %2:%3 + Error: %1 +UDP server %2:%3 + + + + File Error + Fil fejl + + + + Phase Training Disabled + Phase Training Deaktiveret + + + + Phase Training Enabled + Phase Training Aktiveret + + + + WD:%1m + WD:%1m + + + + + Log File Error + Log Fil Fejl + + + + Are you sure you want to clear the QSO queues? + Er du sikker du vil slette QSO køen? + + + + MessageAveraging + + + + Message Averaging + Gennemsnitlig Meddelse + + + + UTC Sync DT Freq + UTC Sync DT Frek + + + + Modes + + + + Mode + Mode + + + + MultiSettings + + + Default + Standard + + + + MultiSettings::impl + + + &Switch To + &Skift til + + + + &Clone + &Klone + + + + Clone &Into ... + Klone &Til... + + + + R&eset + R&eset + + + + &Rename ... + &Omdøb ... + + + + &Delete + &Slet + + + + Clone Into Configuration + Klone til konfiguration + + + + Confirm overwrite of all values for configuration "%1" with values from "%2"? + Bekræft overskrivning af alle indstillinger for konfiguration "%1" med indstillinger fra "%2"? + + + + Reset Configuration + Reset Konfiguration + + + + Confirm reset to default values for configuration "%1"? + Bekræft reset til default indstillinger for konfiguration "%1"? + + + + Delete Configuration + Slet Konfiguration + + + + Confirm deletion of configuration "%1"? + Bekræft sletning af konfiguration "%1"? + + + + NameDialog + + + New Configuration Name + Ny Konfigurations navn + + + + Old name: + Gammelt navn: + + + + &New name: + &Nyt navn: + + + + OmniRigTransceiver + + + OmniRig: unrecognized mode + OmniRig: Ukendt mode + + + + Failed to start OmniRig COM server + Fejl ved start af OmniRig Com server + + + + + OmniRig: don't know how to set rig frequency + OmniRig: Ved ikke hvordan frekvensen på radioen skal indstilles + + + + + OmniRig: timeout waiting for update from rig + OmniRig: Timeout for opdatering fra radioe + + + + OmniRig COM/OLE error: %1 at %2: %3 (%4) + OmniRig Com/OLE fejl: %1 ved %2: %3 (%4) + + + + PollingTransceiver + + + Unexpected rig error + Uventet radio fejl + + + + QObject + + + User Defined + Bruger Defineret + + + + Failed to open LotW users CSV file: '%1' + Fejl ved åbning af LoTW bruger CSV file:'%1' + + + + OOB + OOB + + + + Too many colours in palette. + For mange farver i Paletten. + + + + Error reading waterfall palette file "%1:%2" too many colors. + Fejl ved læsning af Vandfald palette fil "%1:%2" for mange farver. + + + + Error reading waterfall palette file "%1:%2" invalid triplet. + Fejl ved læsning af Vandfald palette fil "%1:%2" forkert triplet. + + + + Error reading waterfall palette file "%1:%2" invalid color. + Fejl ved læsning af Vandfald palette fil "%1:%2" forkert farve. + + + + Error opening waterfall palette file "%1": %2. + Fejl ved åbning af Vandfald palette fil "%1": %2. + + + + Error writing waterfall palette file "%1": %2. + Fejl ved skrivning til Vandfald palette fil "%1":%2. + + + + RemoteFile + + + + + + + + File System Error + Fil system Fejl + + + + Cannot rename file: +"%1" +to: "%2" +Error(%3): %4 + Kan ikke omdøbe fil: +"%1" +til: "%2" +Fejl(%3):%4 + + + + Cannot delete file: +"%1" + Kan ikke slette filen: +"%1" + + + + + + Network Error + Netværks Fejl + + + + Too many redirects: %1 + For mange omdirigeringer: %1 + + + + Redirect not followed: %1 + Omdirigering ikke fulgt: %1 + + + + Cannot commit changes to: +"%1" + Kan ikke tilføje ændringer til: +"%1" + + + + Cannot open file: +"%1" +Error(%2): %3 + Kan ikke åbne filen: +"%1" +Fejl(%2):%3 + + + + Cannot make path: +"%1" + Kan ikke lave sti: +"%1" + + + + Cannot write to file: +"%1" +Error(%2): %3 + Kan ikke skrive til filen: +"%1" +Fejl(%2): %3 + + + + SampleDownloader::impl + + + Download Samples + Downlad eksempler + + + + &Abort + &Afbryd + + + + &Refresh + &Genopfrisk + + + + &Details + &Detaljer + + + + Base URL for samples: + Basis URL til eksempler: + + + + Only use HTTP: + Brug kun HTTP: + + + + Check this is you get SSL/TLS errors + Marker denne hvis du får SSL/TLS fejl + + + + Input Error + Input Fejl + + + + Invalid URL format + Forkert URL format + + + + SoundInput + + + An error opening the audio input device has occurred. + En fejl er opstået ved åbning af Audio indgangsenheden. + + + + An error occurred during read from the audio input device. + En fejl er opstået ved læsning fra Audio enheden. + + + + Audio data not being fed to the audio input device fast enough. + Audio bliverr ikke overført hurtigt nok til Audio enheden. + + + + Non-recoverable error, audio input device not usable at this time. + Fejl, der ikke kan gendannes, lydindgangs enhed kan ikke bruges på dette tidspunkt. + + + + Requested input audio format is not valid. + Det ønskede Audio ingangs format er ikke gyldigt. + + + + Requested input audio format is not supported on device. + Det ønskede Audio indgangs format understøttes ikke af enheden. + + + + Failed to initialize audio sink device + Kunne ikke initialisere lydenheden + + + + Idle + Venter + + + + Receiving + Modtager + + + + Suspended + Suspenderet + + + + Interrupted + Afbrudt + + + + Error + Fejl + + + + Stopped + Stoppet + + + + SoundOutput + + + An error opening the audio output device has occurred. + Fejl ved åbning af Audio udgangs enheden. + + + + An error occurred during write to the audio output device. + Fejl ved skrivning til Audio udgangs enheden. + + + + Audio data not being fed to the audio output device fast enough. + Audio data bliver ikke sendt hurtigt nok Audio udgangs enheden. + + + + Non-recoverable error, audio output device not usable at this time. + Fejl, der ikke kan gendannes, lydudgangs enhed kan ikke bruges på dette tidspunkt. + + + + Requested output audio format is not valid. + Det ønskede udgangs Audio format er ikke gyldig. + + + + Requested output audio format is not supported on device. + Det ønskede Audio udgangs format understøttes ikke af enheden. + + + + Idle + Venter + + + + Sending + Sender + + + + Suspended + Suspenderet + + + + Interrupted + Afbrudt + + + + Error + Fejl + + + + Stopped + Stoppet + + + + StationDialog + + + Add Station + Tilføj Station + + + + &Band: + &Bånd: + + + + &Offset (MHz): + &Offset (Mhz): + + + + &Antenna: + &Antenne: + + + + StationList::impl + + + Band name + Bånd + + + + Frequency offset + Frekvens Offset + + + + Antenna description + Antenne beskrivelse + + + + Band + Bånd + + + + Offset + Offset + + + + Antenna Description + Antenne Beskrivelse + + + + TransceiverBase + + + Unexpected rig error + Uventet radio fejl + + + + WideGraph + + + Dialog + Dialog + + + + Controls + Indstillinger + + + + Spectrum gain + Spectrum forstærkning + + + + Palette + Palette + + + + <html><head/><body><p>Enter definition for a new color palette.</p></body></html> + <html><head/><body> <p> Indtast definition for en ny farvepalet. </p> </body> </html> + + + + Adjust... + Juster... + + + + Waterfall gain + Vandfald forstærkning + + + + <html><head/><body><p>Set fractional size of spectrum in this window.</p></body></html> + <html><head/><body> <p> Indstil procent størrelse af spektret i dette vindue. </p> </body> </html> + + + + % + % + + + + Spec + Spec + + + + <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> + <html><head/><body> <p> Kompensering af forstærkning over den fulde viste båndbredde. </p> </body> </html> + + + + Flatten + Midling + + + + <html><head/><body><p>Compute and save a reference spectrum. (Not yet fully implemented.)</p></body></html> + <html><head/><body> <p> Beregn og gem et referencespektrum. (Ikke endnu fuldt implementeret.) </p> </body> </html> + + + + Ref Spec + Ref Spec + + + + Smoothing of Linear Average spectrum + Udjævning af lineært gennemsnitspektrum + + + + Smooth + Smooth + + + + Compression factor for frequency scale + Kompressions faktor for frekvens skala + + + + Bins/Pixel + Bins/Pixel + + + + Select waterfall palette + Vælg Palette for vandfald + + + + <html><head/><body><p>Select data for spectral display</p></body></html> + <html><head/><body> <p> Vælg data til spektral visning </p> </body> </html> + + + + Current + Current + + + + Cumulative + Cumulative + + + + Linear Avg + Liniær Avg + + + + Reference + Reference + + + + <html><head/><body><p>Frequency at left edge of waterfall</p></body></html> + <html><head/><body><p>Frekvens ved venstre side af Vandfaldet</p></body></html> + + + + Hz + Hz + + + + Start + Start + + + + <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> + <html><head/><body><p>Dekod kun JT9 over denne frekvens</p></body></html> + + + + JT9 + JT69 + + + + JT65 + JY65 + + + + Number of FFTs averaged (controls waterfall scrolling rate) + Antal af FFT Avg (bestemmer vandfaldets hastighed over skærmen) + + + + N Avg + N Avg + + + + Waterfall zero + Vandfald Nul + + + + Spectrum zero + Spectrum Nul + + + + Wide Graph + Wide Graf + + + + + Read Palette + Læs Palette + + + + configuration_dialog + + + Settings + Indstillinger + + + + Genera&l + Genere&l + + + + General station details and settings. + Generelle stations detaljer og indstillinger. + + + + Station Details + Stations detaljer + + + + My C&all: + Mit C&all: + + + + Station callsign. + Stations kaldesignal. + + + + M&y Grid: + M&in Grid: + + + + <html><head/><body><p>Maidenhead locator, preferably 6 characters.</p></body></html> + <html><head/><body><p>Maidenhead locator, fortrinvis 6 karakterer.</p></body></html> + + + + Check to allow grid changes from external programs + Marker for at tillade ekstern software ændrer grid + + + + AutoGrid + AutoGrid + + + + IARU Region: + IARU Region: + + + + <html><head/><body><p>Select your IARU region.</p></body></html> + <html><head/><body><p>Vælg din IARU region.</p></body></html> + + + + Message generation for type 2 compound callsign holders: + Generering af meddelelser for type 2 sammensatte kaldesignaler: + + + + <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> Type 2 sammensatte kaldesignaler er dem med præfikser eller suffikser, der ikke er inkluderet i den tilladte shortlist (Se Hjælp &gt; tilføjelsespræfikser og suffikser). </p> <p> Denne mulighed bestemmer, hvilke genererede meddelelser der skal indeholde dit fulde type 2 sammensatte opkaldstegn snarere end dit basis kaldsignalsignal. Det gælder kun, hvis du har et sammensat kaldesignal af type 2.</p><p> Denne indstilling styrer, hvordan de meddelelser, der bruges til at besvare CQ-opkald, genereres. Genererede meddelelser 6 (CQ) og 5 (73) vil altid indeholde dit fulde kaldesignal. Protokollerne JT65 og JT9 giver mulighed for nogle standardmeddelelser med dit fulde kaldesignal på bekostning af et andet stykke information, såsom DX-kaldesignal eller din lokator.</p><p> Valg af meddelelse 1 udelader DX-kaldesignalet, som kan være et problem når du besvarer CQ-kald. Valg af meddelelse 3 udelader også DX-kaldesignalet, og mange versioner af denne og anden software viser ikke rapporten. At vælge ingen betyder, at dit fulde kaldesignal kun indgår i din meddelelse 5 (73), så din QSO-partner muligvis logger det forkerte kaldesignal.</p><p> Ingen af ​​disse indstillinger er perfekte, meddelse 3 er normalt bedst, men vær opmærksom på din QSO partner muligvis ikke logger den rapport, du sender dem.</p></body></html> + + + + Full call in Tx1 + Fuldt kaldesignal i Tx1 + + + + Full call in Tx3 + Fuldt kaldesignal i Tx3 + + + + Full call in Tx5 only + Fuldt kaldessignal kun i Tx5 + + + + Display + Dsiplay + + + + Show outgoing transmitted messages in the Rx frequency window. + Vis sendte Tx meddelser i Rx frekvens vinduet. + + + + &Tx messages to Rx frequency window + &Tx meddelser til Rx frekvens vindue + + + + Show if decoded stations are new DXCC entities or worked before. + Vis hvis dekodede stationer er nyt DXCC eller Worked B4. + + + + Show &DXCC, grid, and worked-before status + Vis &DXCC, gird og Worked B4 status + + + + <html><head/><body><p>Check to have decodes for a new period start at the top of the Band Activity window and not scroll off the top when the window is full.</p><p>This is to aid selecting decodes to double-click while decoding is still in progress. Use the Band Activity vertical scroll bar to reveal decodes past the bottom of the window.</p></body></html> + <html><head/><body><p> Marker her for at dekodede meddelser vises øverst i Båndaktivitets vinduet, og ruller ikke fra toppen, når vinduet er fuldt.</p><p> Dette er med til at hjælpe med at udvælge dekodet signal til dobbeltklik, mens afkodning stadig er i gang. Brug den lodrette rullebjælke i båndaktivitet vinduet til at vise dekodede signaler i bunden af ​​vinduet.</p> </body></html> + + + + Start new period decodes at top + Start ny dekode periode fra toppen + + + + Show principal prefix instead of country name + Vis prefix for land i stedet for landets fulde navn + + + + Set the font characteristics for the application. + Vælg font for appplikationen. + + + + Font... + Font... + + + + Set the font characteristics for the Band Activity and Rx Frequency areas. + Vælg font for Bånd Activitet og RX-Frekvens vinduerne. + + + + Decoded Text Font... + Dekodet Tekst Font... + + + + Include a separator line between periods in the band activity window. + Indsæt en stiplet linje i Bånd Aktivitets Vinduet imellem hver periode. + + + + &Blank line between decoding periods + &Stiplet linje mellem dekodnings perioder + + + + Show distance to DX station in miles rather than kilometers. + Vis distance til DX station i miles i stedet for kilometer. + + + + Display dista&nce in miles + Vis dista&nce i miles + + + + Behavior + Opførsel + + + + Decode after EME delay + Dekod efter EME forsinkelse + + + + Tx watchdog: + Tx vagthund: + + + + <html><head/><body><p>Number of minutes before unattended transmissions are aborted</p></body></html> + <html><head/><body><p>Antal minutter før uovervåget sending stoppes</p></body></html> + + + + Disabled + Deaktiveret + + + + minutes + minutter + + + + Enable VHF/UHF/Microwave features + Aktiver VHF/UHF/Mikrobølge funktioner + + + + Single decode + Enkelt dekodning + + + + <html><head/><body><p>Some rigs are not able to process CAT commands while transmitting. This means that if you are operating in split mode you may have to uncheck this option.</p></body></html> + <html><head/><body><p> Nogle radioer kan ikke håndtere CAT-kommandoer, mens de sender. Dette betyder, at hvis du opererer i Split Mode skal du muligvis fjerne markeringen af ​​denne indstilling.</p></body></html> + + + + Allow Tx frequency changes while transmitting + Tillad ændring af Tx frekvens mens der sendes + + + + Don't start decoding until the monitor button is clicked. + Start ikke dekodning før der trykke på monitor knappen. + + + + Mon&itor off at startup + Mon&itor OFF ved start + + + + <html><head/><body><p>Check this if you wish to automatically return to the last monitored frequency when monitor is enabled, leave it unchecked if you wish to have the current rig frequency maintained.</p></body></html> + <html><head/><body><p>Marker her hvis du have at programmet skal vende tilbage til seneste frekvens da det blev stoppet. Lad den være umarkeret, hvis du vil programmet skal blive på den frekvens radioen er indstillet til når det startes.</p></body></html> + + + + Monitor returns to last used frequency + Montor til seneste brugte frekvens + + + + Alternate F1-F6 bindings + Alternative F1-F6 bindinger + + + + Turns off automatic transmissions after sending a 73 or any other free +text message. + Stopper Tx automatisk efter der er sendt en 73 eller Fri meddelse +tekst meddelse. + + + + Di&sable Tx after sending 73 + De&aktiver Tx efter der er sendt 73 + + + + Send a CW ID after every 73 or free text message. + Send CW ID efter hver 73 eller fri tekst meddelse. + + + + CW ID a&fter 73 + CW ID e&fter 73 + + + + Periodic CW ID Inter&val: + Periodisk CW ID Inter&val: + + + + Send a CW ID periodically every few minutes. +This might be required under your countries licence regulations. +It will not interfere with other users as it is always sent in the +quiet period when decoding is done. + Send et CW-ID med jævne mellemrum hvert adskilt af nogle minutter. +Dette kan være påkrævet i henhold til dit lands licensregler. +Det vil ikke forstyrre andre brugere, da det altid sendes i +den stille periode, når dekodningen er udført. + + + + Automatic transmission mode. + Automatisk Tx Mode. + + + + Doubl&e-click on call sets Tx enable + Dobb&elt-klik på et kaldesignal Aktivere Tx + + + + Calling CQ forces Call 1st + CQ kald fremtvinger Besvar 1st + + + + &Radio + &Radio + + + + Radio interface configuration settings. + Radio interface konfigurations indstillinger. + + + + Settings that control your CAT interface. + Indstillinger der kontrollerer CAT Interface. + + + + CAT Control + Cat Kontrol + + + + + Port: + Port: + + + + Serial port used for CAT control. + Seriel port til CAT kontrol. + + + + Serial Port Parameters + Seriek Port Parametre + + + + Baud Rate: + Baud Rate: + + + + Serial port data rate which must match the setting of your radio. + Seriel data hastighed som skal være den samme som på din radio. + + + + 1200 + 1200 + + + + 2400 + 2400 + + + + 4800 + 4800 + + + + 9600 + 9600 + + + + 19200 + 19200 + + + + 38400 + 38400 + + + + 57600 + 57600 + + + + 115200 + 115200 + + + + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> + <html><head/><body><p>Antallet af data bits der skal bruges for at kommunikerer med din radio via CAT interface (normalt otte).</p></body></html> + + + + Data Bits + Data Bits + + + + D&efault + D&efault + + + + Se&ven + Sy&v + + + + E&ight + O&tte + + + + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> + <html><head/><body><p>Antallet af stop bits der bruges til kommunikation via din radio CAT interface</p><p>(Se i din radio manual for detaljer).</p></body></html> + + + + Stop Bits + Stop Bit + + + + + Default + Deafult + + + + On&e + E&n + + + + T&wo + T&o + + + + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> + <html><head/><body><p>Flow kontrol protokol der bruges mellem computer og radioens CAT interface (Normal &quot;None&quot; men nogle radioer kræver &quot;Hardware&quot;).</p></body></html> + + + + Handshake + Handshake + + + + &None + &ingen + + + + Software flow control (very rare on CAT interfaces). + Software flow kontrol (sjælden på CAT interface). + + + + XON/XOFF + XON/XOFF + + + + Flow control using the RTS and CTS RS-232 control lines +not often used but some radios have it as an option and +a few, particularly some Kenwood rigs, require it). + Flow kontrol ved hjælp af RTS og CTS RS-232 kontrol linjer +ikke ofte brugt, men nogle radioer har det som en mulighed og +et par, især nogle Kenwood radioer, kræver det). + + + + &Hardware + &Hardware + + + + Special control of CAT port control lines. + Special kontrol af CAT port kontrol linjer. + + + + Force Control Lines + Tving Kontrol Linjer + + + + + High + Høj + + + + + Low + Lav + + + + DTR: + DTR: + + + + RTS: + RTS: + + + + How this program activates the PTT on your radio? + Hvorledes dette program skal aktivere PTT på din radio? + + + + PTT Method + PTT metode + + + + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> + <html><head/><body><p>Ingen PTT aktivering. I stedet bruges radioens automatis VOX til at nøgle senderen.</p><p>Bruge denne hvis du ingen hardware interface har.</p></body></html> + + + + VO&X + VO&X + + + + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> + <html><head/><body><p> Brug RS-232 DTR-kontrollinjen til at skifte radioens PTT, kræver hardware for at interface. </p><p> Nogle kommercielle interface-enheder bruger også denne metode. </p> <p> DTR-kontrollinjen i CAT-seriel port kan bruges til dette, eller en DTR-kontrollinje på en anden seriel port kan bruges.</p></body></html> + + + + &DTR + &DTR + + + + Some radios support PTT via CAT commands, +use this option if your radio supports it and you have no +other hardware interface for PTT. + Nogle Radioer understøtter PTT via CAT kommando. +Brug denne option if din radio understøtter det, og hvis du ikke har +andre muligheder eller andet hardware interface til PTT. + + + + C&AT + C&AT + + + + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> + <html><head/><body><p> Brug RS-232 RTS kontrollinjen til at skifte radioens PTT, kræver hardware for at interface grænsen.</p><p> Nogle kommercielle interfaceenheder bruger også denne metode.</p><p> RTS-kontrollinjen i CAT-seriel port kan bruges til dette, eller en RTS-kontrollinje på en anden seriel port kan bruges. Bemærk, at denne indstilling ikke er tilgængelig på den serielle CAT-port, når hardwarestrømstyring bruges. </p></body></html> + + + + R&TS + R&TS + + + + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> + <html><head/><body><p> Vælg den serielle RS-232-port, der bruges til PTT-kontrol, denne indstilling er tilgængelig, når DTR eller RTS vælges ovenfor som en sendemetode.</p><p>Denne port kan være den samme som den, der bruges til CAT-kontrol.</p><p> For nogle grænsefladetyper kan den særlige værdi CAT vælges, dette bruges til ikke-serielle CAT-grænseflader, der kan kontrollere serielle portkontrollinier eksternt (OmniRig for eksempel).</p></body></html> + + + + Modulation mode selected on radio. + Modulation type valgt på Radio. + + + + Mode + Mode + + + + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> + <html><head/><body><p>USB er normalt den korrekte modulations mode,</p><p>med mindre radioenunless the radio har en speciel data eller packet mode indstilling så som USB-D</p><p>til AFSK operation.</p></body></html> + + + + US&B + US&B + + + + Don't allow the program to set the radio mode +(not recommended but use if the wrong mode +or bandwidth is selected). + Tillad ikke programmet og skifte mode på radioen +(kan ikke anbefales med mindre programmet vælger en +forkert mode eller båndbredde). + + + + + None + Ingen + + + + If this is available then it is usually the correct mode for this program. + Hvis denne mulighed er til stede er det sædvanligvis den korrekte mode for dette program. + + + + Data/P&kt + Data/P&kt + + + + Some radios can select the audio input using a CAT command, +this setting allows you to select which audio input will be used +(if it is available then generally the Rear/Data option is best). + Nogle radioer kan vælge audio ingang med en CAT kommando. +Denne indstilling tillader dig og vælge hvilken audio indgang der bruges +(Hvis Bag/Data er muligt er det generelt den bedste). + + + + Transmit Audio Source + Tx audio kilde + + + + Rear&/Data + Bag&/Data + + + + &Front/Mic + &Front/Mic + + + + Rig: + Rig: + + + + Poll Interval: + Poll Interval: + + + + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> + <html><head/><body><p> Interval mellem poll radio for status. Længere intervaller betyder, at det vil tage længere tid at opdage ændringer i radioen.</p></body></html> + + + + s + s + + + + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> + <html><head/><body><p>Forsøger og kontakte radioen med disse indstillinger.</p><p>Knappen vil blive grøn hvis kontakten lykkedes og rød hvis der er et problem.</p></body></html> + + + + Test CAT + Test CAT + + + + Attempt to activate the transmitter. +Click again to deactivate. Normally no power should be +output since there is no audio being generated at this time. +Check that any Tx indication on your radio and/or your +radio interface behave as expected. + Forsøger at aktivere senderen. +Klik igen for at deaktivere. Normalt skal der ikke være power +output, da der ikke genereres nogen audio på dette tidspunkt. +Kontroller, at Tx-indikation på din radio og / eller dit +radio interface opfører sig som forventet. + + + + Test PTT + Test PTT + + + + Split Operation + Split Operation + + + + Fake It + Fake It + + + + Rig + Rig + + + + A&udio + A&udio + + + + Audio interface settings + Audio interface indstillinger + + + + Souncard + Lydkort + + + + Soundcard + Lydkort + + + + Select the audio CODEC to use for transmitting. +If this is your default device for system sounds then +ensure that all system sounds are disabled otherwise +you will broadcast any systems sounds generated during +transmitting periods. + Vælg Audio CODEC, der skal bruges til transmission. +Hvis dette er din standardenhed for systemlyde så +Sørg for, at alle systemlyde er deaktivere ellers +vil du sende alle systemlyde der genereres i løbet af +transmissionsperioder. + + + + Select the audio CODEC to use for receiving. + Vælg Audio CODEC for modtagelse. + + + + &Input: + &Input: + + + + Select the channel to use for receiving. + Vælg kanal til modtagelse. + + + + + Mono + Mono + + + + + Left + Venstre + + + + + Right + Højre + + + + + Both + Begge + + + + Select the audio channel used for transmission. +Unless you have multiple radios connected on different +channels; then you will usually want to select mono or +both here. + Vælg audio kannel til transmission. +Med mindre du har flere radioer tilsluttet på forskellige +kanaler skal du normalt vælge mono her +eller begge. + + + + Ou&tput: + Ou&tput: + + + + + Save Directory + Gemme Mappe + + + + Loc&ation: + Lok&ation: + + + + Path to which .WAV files are saved. + Sti hvor .WAV filerne er gemt. + + + + + TextLabel + Tekst Felt + + + + Click to select a different save directory for .WAV files. + Klik for at vælge et andet sted og gemme .WAV filerne. + + + + S&elect + Væ&lg + + + + + AzEl Directory + AzEl Mappe + + + + Location: + Lokation: + + + + Select + Vælg + + + + Power Memory By Band + Power hukommelse per bånd + + + + Remember power settings by band + Husk power indstilling per Bånd + + + + Enable power memory during transmit + Husk power instillinger ved sending + + + + Transmit + Transmit + + + + Enable power memory during tuning + Husk power ved Tuning + + + + Tune + Tune + + + + Tx &Macros + TX &Makroer + + + + Canned free text messages setup + Gemte Fri tekst meddelser indstilling + + + + &Add + &Tilføj + + + + &Delete + &Slet + + + + Drag and drop items to rearrange order +Right click for item specific actions +Click, SHIFT+Click and, CRTL+Click to select items + Træk og slip emne for at omarrangere rækkefølge +Højreklik for emne specifikke handlinger +Klik, SHIFT + Klik og, CRTL + Klik for at vælge emner + + + + Reportin&g + Rapporterin&g + + + + Reporting and logging settings + Rapportering og Logging indstillinger + + + + Logging + Logging + + + + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. + Programmet vil poppe op med en delvis udfyldt QSO Log når du sender 73 eller en Fri tekst meddelse. + + + + Promp&t me to log QSO + Promp&t mig for at logge QSO + + + + Op Call: + Op kaldesignal: + + + + Some logging programs will not accept the type of reports +saved by this program. +Check this option to save the sent and received reports in the +comments field. + Nogle logprogrammer vil ikke acceptere denne type rapporter +som dette program gemmer +Marker denne option for at gemme rapporterne +i kommentar feltet. + + + + d&B reports to comments + c&B rapporter til kommentar felt + + + + Check this option to force the clearing of the DX Call +and DX Grid fields when a 73 or free text message is sent. + Marker denne mulighed for at tvinge sletning af DX-kaldesignalt +og DX Grid-felter, når der sendes en 73 eller fri tekstbesked. + + + + Clear &DX call and grid after logging + Slet &DX kaldesignal og Grid efter logging + + + + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> + <html><head/><body><p>Nogle logging programmer vil ikke acceptere mode navne.</p></body></html> + + + + Con&vert mode to RTTY + Kon&verter mode til RTTY + + + + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> + <html><head/><body><p>Kaldesignal på Operatør, hvis det er forskelligt fra stations kaldesignal.</p></body></html> + + + + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> + <html><head/><body><p>Marker hvis du vil have at QSO'er logges automatisk når de er slut.</p></body></html> + + + + Log automatically (contesting only) + Log automatisk (kun Contest) + + + + Network Services + Netværks Service + + + + The program can send your station details and all +decoded signals as spots to the http://pskreporter.info web site. +This is used for reverse beacon analysis which is very useful +for assessing propagation and system performance. + Programmet kan sende dine stationsoplysninger og alle +dekodede signaler som spots til webstedet http://pskreporter.info. +Dette bruges til analyse af reverse beacon, hvilket er meget nyttigt +til vurdering af udbrednings forhold og systemydelse. + + + + Enable &PSK Reporter Spotting + Aktiver &PSK Reporter Spotting + + + + UDP Server + UDP Server + + + + UDP Server: + UDP Server: + + + + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> + <html><head/><body><p>Alternativ værtsnavn på netværks service som skal modtage det dekodede.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Værtsnavn</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 adresse</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 adresse</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast gruppe adresse</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast gruppe adresse</li></ul><p>Slettes dette felt vil der ikke blive udsendt UDP status opdateringer.</p></body></html> + + + + UDP Server port number: + UDP Server port nummer: + + + + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> + <html><head/><body><p> Indtast serviceportnummeret på den UDP-server, som WSJT-X skal sende opdateringer til. Hvis dette er nul, udsendes ingen opdateringer.</p></body></html> + + + + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> + <html><head/><body><p> Med denne aktiveret vil WSJT-X acceptere visse anmodninger tilbage fra en UDP-server, som modtager dekodede meddelelser.</p></body></html> + + + + Accept UDP requests + Accepter UDP anmodninger + + + + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> + <html><head/><body><p> Angiv accept af en indgående UDP-anmodning. Effekten af ​​denne indstilling varierer afhængigt af operativsystemet og window manager, dens formål er at underrette accept af en indgående UDP-anmodning, selvom denne applikation er minimeret eller skjult.</p></body></html> + + + + Notify on accepted UDP request + Meddelse om accepteret UDP anmodning + + + + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> + <html><head/><body><p> Gendan vinduet fra minimeret, hvis en UDP-anmodning accepteres.</p></body></html> + + + + Accepted UDP request restores window + Gendan vindue fra minimeret, hvis en UDP anmodning accepteres + + + + Secondary UDP Server (deprecated) + Sekundær UDP-server (udskrevet) + + + + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> + <html><head/><body><p> Når denne er markeret, vil WSJT-X sende en logget kontakt i ADIF-format til det konfigurerede værtsnavn og port.</P></body></html> + + + + Enable logged contact ADIF broadcast + Aktiver Logged kontankt ADIF afsendelse + + + + Server name or IP address: + Server navn eller IP adresse: + + + + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> + <html><head/><body><p>Alternativ host navn i N1MM Logger+ program der skal modtage ADIF UDP broadcasts. Det e rnormalt 'localhost' eller ip adresse 127.0.0.1</p><p>Format:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostnavn</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 adresse</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast gruppe adresse</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Slettes dette felt vil der ikke blive udsendt broadcasting af ADIF information via UDP.</p></body></html> + + + + Server port number: + Server port nummer: + + + + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> + <html><head/><body><p>Indsæt portnummer som WSJT-X skal bruge til UDP broadcasts af ADIF log information. For N1MM Logger+, skal det være 2333. Hvis det er NUL vil der ikke blive udsendt broadcast.</p></body></html> + + + + Frequencies + Frekvneser + + + + Default frequencies and band specific station details setup + Default frekvenser og bånd specifikke stations deltalje indstillinger + + + + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> + <html><head/><body><p>Se &quot;Frekvens Kalibrering&quot; i WSJT-X User Guide for detaljer om hvorledes disse parametre indstilles for din radio.</p></body></html> + + + + Frequency Calibration + Frekvens Kalibrering + + + + Slope: + Stigning: + + + + ppm + ppm + + + + Intercept: + Intercept: + + + + Hz + Hz + + + + Working Frequencies + Arbejds Frekvenser + + + + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> + <html><head/><body><p>Højre klik for at ændre i frekvenslisten.</p></body></html> + + + + Station Information + Stations Information + + + + Items may be edited. +Right click for insert and delete options. + Listen kan editeres +Højre klik for at indsætte eller slette elementer. + + + + Colors + Farver + + + + Decode Highlightling + Dekode Farvelade + + + + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> + <html><head/><body><p>Klik for at scanne wsjtx_log.adi ADIF filen igen for worked before information</p></body></html> + + + + Rescan ADIF Log + Rescan Adif Log + + + + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> + <html><head/><body><p>Tryk for at resette alle Highligt oven over til default værdier og prioriteter.</p></body></html> + + + + Reset Highlighting + Reset Higlighting + + + + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> + <html><head/><body> <p> Aktivér eller deaktiver ved hjælp af afkrydsningsfelterne og højreklik på et element for at ændre eller deaktivere forgrundsfarve, baggrundsfarve eller nulstille elementet til standardværdier. Træk og slip emnerne for at ændre deres prioritet, højere på listen har højere prioritet. </p> <p> Bemærk, at hver forgrunds- eller baggrundsfarve enten er indstillet eller frakoblet, ikke indstillet betyder, at den ikke er tildelt til det pågældende element type og lavere prioriterede poster kan muligvis anvendes. </p> </body> </html> + + + + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> + <html><head/><body><p>Marker for at indikere nye DXCC Lande, Grid og Kaldesignaler pr Mode.</p></body></html> + + + + Highlight by Mode + Highlight by Mode + + + + Include extra WAE entities + Inkluder ekstra WAE lande + + + + Check to for grid highlighting to only apply to unworked grid fields + Marker for Grid Highlighting for kun at tilføje ikke kørte Lokator felter + + + + Only grid Fields sought + Kun søgte GRID felter + + + + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> + <html><head/><body><p>Kontrol for Logbook of the World bruger lookup.</p></body></html> + + + + Logbook of the World User Validation + Logbook of the World Bruger Validering + + + + Users CSV file URL: + Sti til Bruger CSV fil: + + + + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> + <html><head/><body> <p> URL til ARRL LotW-brugerens sidste uploaddatoer og -tidsdatafil, som bruges til at fremhæve dekodninger fra stationer, der vides at uploade deres logfil til LotW. </p> < / body> </ html> + + + + https://lotw.arrl.org/lotw-user-activity.csv + https://lotw.arrl.org/lotw-user-activity.csv + + + + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> + <html><head/><body><p>Tryk på denne knap for at hente seneste LotW bruger upload dato og tids data file.</p></body></html> + + + + Fetch Now + Hent Nu + + + + Age of last upload less than: + Alder på seneste upload mindre end: + + + + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> + <html><head/><body><p> Juster dette spin-felt for at indstille grænsen for alderen på LotW-brugers sidste upload-dato, der accepteres som en nuværende LotW-bruger.</p></body></html> + + + + days + dage + + + + Advanced + Avanceret + + + + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> + <html><head/><body><p>Bruger valgte parametre for JT65 VHF/UHF/Microwave dekoning.</p></body></html> + + + + JT65 VHF/UHF/Microwave decoding parameters + JT65/VHF/UHF/Microwave parametre + + + + Random erasure patterns: + Tilfældige sletningsmønstre: + + + + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> + <html><head/><body><p> Maksimum antal sletningsmønstre til stokastisk soft-beslutning Reed Solomon-dekoder er 10^(n/2).</p></body></html> + + + + Aggressive decoding level: + Aggressiv dekoder niveau: + + + + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> + <html><head/><body><p>Højere niveau vil øge dekodningen, men vil også øge chanchen for falske dekodninger.</p></body></html> + + + + Two-pass decoding + To-pass dekodning + + + + Special operating activity: Generation of FT4, FT8, and MSK144 messages + Special operations aktivitet: Generering af FT4, FT8 og MSK 144 meddelser + + + + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> + <html><head/><body><p>FT8 DXpedition mode: Hound operatører der kalder på DX.</p></body></html> + + + + Hound + Hound + + + + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> + <html><head/><body><p>Nord Amerikansk VHF/UHF/Microwave contests og andre hvor 4 karakter Grid lokator er påkrævet for Contest rpt udveksling.</p></body></html> + + + + NA VHF Contest + NA VHF Contest + + + + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operatør.</p></body></html> + + + + Fox + Fox + + + + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> + <html><head/><body><p>European VHF+ contests kræver en siganl rapport, serie nummer og 6 karakters lokator.</p></body></html> + + + + EU VHF Contest + EU VHF Contest + + + + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> + <html><head/><body><p>ARRL RTTY Roundup og ligende contests. Exchange er US state, Canadian province, eller &quot;DX&quot;.</p></body></html> + + + + RTTY Roundup messages + RTTY Roundup meddelser + + + + RTTY RU Exch: + RTTU RU Exch: + + + + NJ + NJ + + + + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> + <html><head/><body><p>ARRL Field Day exchange: antal transmittere, Class, og ARRL/RAC sektion eller &quot;DX&quot;.</p></body></html> + + + + ARRL Field Day + ARRL Field Day + + + + FD Exch: + FD Exch: + + + + 6A SNJ + 6A SNJ + + + + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> + + + + WW Digi Contest + WW Digi Contest + + + + Miscellaneous + Diverse + + + + Degrade S/N of .wav file: + Degrade S/N .wav.fil: + + + + + For offline sensitivity tests + Til offline følsomheds test + + + + dB + dB + + + + Receiver bandwidth: + Modtager båndbredde: + + + + Hz + Hz + + + + Tx delay: + Tx delay: + + + + Minimum delay between assertion of PTT and start of Tx audio. + Minimum forsinkelse mellen aktivering af PTT og start af Tx audio. + + + + s + s + + + + Tone spacing + Tone afstand + + + + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> + <html><head/><body><p>Generer Tx audio med dobbelt af den normale tone afstand. Beregnet til special LF/MF transmittere som bruger divideret med-2 før generering af RF.</p></body></html> + + + + x 2 + x2 + + + + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> + <html><head/><body><p>Generer Tx audio med 4 gange den normale tone afstand. Beregnet til special LF/MF transmittere som bruger divideret med-4 før generering af RF.</p></body></html> + + + + x 4 + x4 + + + + Waterfall spectra + Vandfald Spektrum + + + + Low sidelobes + Lave sidelobes + + + + Most sensitive + Mest følsom + + + + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> + <html><head/><body><p> Forkast (Annuller) eller anvend (OK) konfigurationsændringer inklusive</p><p>nulstilling af radiog interface og anvendelse af lydkortændringer</p></body></html> + + + + main + + + + Fatal error + Fatal fejl + + + + + Unexpected fatal error + Uventet fatal fejl + + + + Another instance may be running + En anden udgave af programmet kører måske + + + + try to remove stale lock file? + forsøg at fjerne uaktuelle låste filer? + + + + Failed to create a temporary directory + Fejl ved forsøg på at oprette midlertidig mappe + + + + + Path: "%1" + Sti: "%1" + + + + Failed to create a usable temporary directory + Fejl i forsøg på at oprette brugbar midlertidig mappe + + + + Another application may be locking the directory + En anden applikation spærrer måske mappen + + + + Failed to create data directory + Kan ikke oprette Data mappe + + + + path: "%1" + Sti: "%1" + + + + Shared memory error + Delt hukommelse fejl + + + + Unable to create shared memory segment + Kan ikke oprette delt hukommelse segment + + + + wf_palette_design_dialog + + + Palette Designer + Palette Designer + + + + <html><head/><body><p>Double click a color to edit it.</p><p>Right click to insert or delete colors.</p><p>Colors at the top represent weak signals</p><p>and colors at the bottom represent strong</p><p>signals. You can have up to 256 colors.</p></body></html> + <html><head/><body> <p> Dobbeltklik på en farve for at redigere den. </p> <p> Højreklik for at indsætte eller slette farver. </p> <p> Farver øverst repræsenterer svage signaler </p> <p> og farver i bunden repræsenterer stærke </p> <p> signaler. Du kan have op til 256 farver. </p> </body> </html> + + + From 4de41162a34e07d9b8376a56dc160a03e6c967b3 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 6 Jul 2020 15:36:01 -0400 Subject: [PATCH 233/520] Make sure FST240W uses submode A. --- widgets/mainwindow.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 48767a8f4..ecb0ad970 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5847,6 +5847,8 @@ void MainWindow::on_actionFST240W_triggered() displayWidgets(nWidgets("000001000000000001010000000000000")); bool bVHF=m_config.enable_VHF_features(); setup_status_bar (bVHF); + m_nSubMode=0; + ui->sbSubmode->setValue(m_nSubMode); m_TRperiod = ui->sbTR_FST240W->value (); ui->band_hopping_group_box->setChecked(false); ui->band_hopping_group_box->setVisible(false); From 8c7e4ba42fa6918429d030abfa1a4fa89edeb1c0 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 7 Jul 2020 14:17:26 +0100 Subject: [PATCH 234/520] =?UTF-8?q?Spanish=20UI=20translation=20updates,?= =?UTF-8?q?=20tnx=20C=C3=A9dric,=20EA4AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/wsjtx_es.ts | 565 ++++++++++++++++++--------------------- 1 file changed, 263 insertions(+), 302 deletions(-) diff --git a/translations/wsjtx_es.ts b/translations/wsjtx_es.ts index f1e068573..f4f709f52 100644 --- a/translations/wsjtx_es.ts +++ b/translations/wsjtx_es.ts @@ -7,7 +7,7 @@ &Delete ... &Borrar ... - &Borrar + &Borrar...
@@ -415,7 +415,7 @@ &Insert ... &Introducir ... - &Agregar + &Agregar... @@ -443,19 +443,19 @@ &Load ... &Carga ... - &Cargar + &Cargar ... &Save as ... &Guardar como ... - &Guardar como + &Guardar como ... &Merge ... &Fusionar ... - &Fusionar + &Fusionar ... @@ -576,7 +576,7 @@ Formato: WSJT-X Decoded Text Font Chooser Tipo de texto de pantalla de descodificación WSJT-X - Seleccionar un tipo de letra + Seleccionar un tipo de letra @@ -981,21 +981,11 @@ Formato: Gray time: Tiempo Gris: - Línea de sombra + Penumbra: Directory - - - File - Fichero - - - - Progress - - @@ -1028,13 +1018,13 @@ Formato: Contents file syntax error %1 at character offset %2 Error de sintaxis %1 en el desplazamiento de caracteres %2 - Error de sintaxis %1 en el desplazamiento de caracteres %2 + Error de sintaxis %1 en el desplazamiento de caracteres %2 Contents file top level must be a JSON array El nivel superior del archivo de contenido debe ser una matriz JSON - El nivel superior del archivo de contenido debe ser una matriz JSON + El nivel superior del archivo debe ser una matriz JSON @@ -1055,31 +1045,31 @@ Error: %2 - %3 Contents entries must be a JSON array Las entradas de contenido deben ser una matriz JSON - Las entradas deben ser una matriz JSON + Las entradas deben ser una matriz JSON Contents entries must have a valid type Las entradas de contenido deben tener un tipo válido - Las entradas deben tener un tipo válido + Las entradas deben tener un tipo válido Contents entries must have a valid name Las entradas de contenido deben tener un nombre válido - Las entradas deben tener un nombre válido + Las entradas deben tener un nombre válido Contents entries must be JSON objects Las entradas de contenido deben ser objetos JSON - Las entradas deben ser objetos JSON + Las entradas deben ser objetos JSON Contents directories must be relative and within "%1" Los directorios de contenido deben ser relativos y dentro de "%1" - Los directorios deben ser relativos y dentro de "%1" + Los directorios deben ser relativos y dentro de "%1" @@ -1596,26 +1586,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region Región IARU - - + + Mode Modo - - + + Frequency Frecuencia - - + + Frequency (MHz) Frecuencia en MHz Frecuencia (MHz) @@ -1629,7 +1619,7 @@ Error: %2 - %3 Failed to connect to Ham Radio Deluxe No se pudo conectar a Ham Radio Deluxe - Fallo al conectar con el Ham Radio Deluxe + Fallo al conectar con el Ham Radio Deluxe @@ -1748,170 +1738,170 @@ Error: %2 - %3 Tipo CAT no admitido - + Hamlib error: %1 while %2 Error Hamlib: %1 mientras %2 - + opening connection to rig conexión de apertura al equipo abriendo conexión al equipo - + getting current frequency obteniendo frecuencia actual - + getting current mode obteniendo el modo actual obteniendo modo actual - - + + exchanging VFOs intercambiando VFO's - - + + getting other VFO frequency obteniendo otra frecuencia de VFO obteniendo la frecuencia del otro VFO - + getting other VFO mode obteniendo otro modo VFO obteniendo modo del otro VFO - + setting current VFO ajuste al VFO actual ajustando VFO actual - + getting frequency obteniendo frecuencia - + getting mode obteniendo modo - - + + getting current VFO obteniendo el VFO actual obteniendo VFO actual - - - - + + + + getting current VFO frequency obteniendo la frecuencia actual de VFO obteniendo frecuencia del VFO actual - - - - - - + + + + + + setting frequency ajuste de frecuencia ajustando frecuencia - - - - + + + + getting current VFO mode obteniendo modo del VFO actual - - - - - + + + + + setting current VFO mode ajuste del modo VFO actual ajustando modo del VFO actual - - + + setting/unsetting split mode activación/desactivación del modo dividido (split) activar/desactivar modo "Split" - - + + setting split mode activar modo dividido (split) ajustando modo "Split" - + setting split TX frequency and mode Ajuste de frecuencia y modo de transmisión dividida (split) ajustando la frecuencia de TX y modo del "Split" - + setting split TX frequency ajuste de frecuencia dividida en TX ajustando frecuencia de TX del "Split" - + getting split TX VFO mode obteniendo el modo dividido de TX en el VFO obteniendo modo del VFO de TX en "Split" - + setting split TX VFO mode ajuste del modo dividido (split) en TX del VFO ajustando modo del VFO de TX en "Split" - + getting PTT state obteniendo el estado del PTT - + setting PTT on activar el PTT activando PTT - + setting PTT off desactivar el PTT desactivando PTT - + setting a configuration item activar un elemento de configuración ajustando un elemento de configuración - + getting a configuration item obteniendo un elemento de configuración @@ -1951,7 +1941,7 @@ Error: %2 - %3 Click OK to confirm the following QSO: Haz clic en Aceptar para confirmar el siguiente QSO: - Clic en "Aceptar" para confirmar el siguiente QSO: + Clic en "Aceptar" para guardar el siguiente QSO: @@ -2148,12 +2138,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity Actividad en la banda @@ -2165,11 +2155,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency Frecuencia de RX @@ -2326,7 +2316,7 @@ Error(%2): %3 <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> <html><head/><body><p>30dB recomendado cuando solo hay ruido presente,<br/>Verde cuando el nivel es bueno,<br/>Rojo cuando puede ocurrir recortes y<br/>Amarillo cuando esta muy bajo.</p></body></html> - <html><head/><body><p>30 dB recomendado cuando solo hay ruido presente.<br/>Verde: Nivel de audio aceptable.<br/>Rojo: Pueden ocurrir fallos de audio.<br/>Amarillo: Nivel de audio muy bajo.</p></body></html> + <html><head/><body><p>30 dB recomendado cuando solo hay ruido presente.<br>Verde: Nivel de audio aceptable.<br>Rojo: Pueden ocurrir fallos de audio.<br>Amarillo: Nivel de audio muy bajo.</p></body></html> @@ -2429,7 +2419,7 @@ Amarillo cuando esta muy bajo. <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> <html><head/><body><p>Selecciona la banda operativa, introduce la frecuencia en MHz o introduce el incremento de kHz seguido de k.</p></body></html> - <html><head/><body><p>Selecciona la banda, o escribe la frecuencia en MHz o escriba el incremento en kHz seguido de k.</p></body></html> + <html><head/><body><p>Selecciona la banda, o escriba la frecuencia en MHz o escriba el incremento en kHz seguido de k.</p></body></html> @@ -2561,7 +2551,7 @@ Amarillo cuando esta muy bajo. - + Fast Rápido @@ -2682,7 +2672,7 @@ No está disponible para los titulares de indicativo no estándar. - + Fox Fox "Fox" @@ -3271,7 +3261,7 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). N Slots - N Slots + N Slots @@ -3313,7 +3303,7 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). Tx Pct TX Pct - Pct TX + Pct TX @@ -3407,7 +3397,7 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). Help - Ayuda + Ayuda @@ -3446,441 +3436,442 @@ predefinida. La lista se puede modificar en "Ajustes" (F2).Acerca de WSJT-X - + Waterfall Cascada Cascada (Waterfall) - + Open Abrir - + Ctrl+O Ctrl+O - + Open next in directory Abrir siguiente en el directorio - + Decode remaining files in directory Decodifica los archivos restantes en el directorio - + Shift+F6 Mayúsculas+F6 Mayúsculas+F6 - + Delete all *.wav && *.c2 files in SaveDir Borrar todos los archivos *.wav y *.c2 - + None - Ninguno + Ninguno + Nada - + Save all Guardar todo - + Online User Guide Guía de usuario en línea - + Keyboard shortcuts Atajos de teclado - + Special mouse commands Comandos especiales del ratón - + JT9 JT9 - + Save decoded Guarda el decodificado Guardar lo decodificado - + Normal Normal - + Deep Profundo - + Monitor OFF at startup Monitor apagado al inicio "Monitor" apagado al inicio - + Erase ALL.TXT Borrar ALL.TXT - + Erase wsjtx_log.adi Borrar el archivo wsjtx_log.adi Borrar archivo wsjtx_log.adi - + Convert mode to RTTY for logging Convierte el modo a RTTY después de registrar el QSO Convierte el modo a RTTY para guardar el QSO - + Log dB reports to Comments Pon los informes de recepción en dB en Comentarios Guardar reportes dB en los Comentarios - + Prompt me to log QSO Pedirme que registre QSO Preguntarme antes de guardar el QSO - + Blank line between decoding periods Línea en blanco entre períodos de decodificación - + Clear DX Call and Grid after logging Borrar Indicativo DX y Locator/Grid DX después de registrar un QSO Borrar Indicativo y Locator del DX después de guardar QSO - + Display distance in miles Mostrar distancia en millas - + Double-click on call sets Tx Enable Haz doble clic en los conjuntos de indicativos de activar TX Doble clic en el indicativo activa la TX - - + + F7 F7 - + Tx disabled after sending 73 Tx deshabilitado después de enviar 73 Dehabilita TX después de enviar 73 - - + + Runaway Tx watchdog Control de TX - + Allow multiple instances Permitir múltiples instancias - + Tx freq locked to Rx freq TX frec bloqueado a RX frec Freq. de TX bloqueda a freq. de RX - + JT65 JT65 - + JT9+JT65 JT9+JT65 - + Tx messages to Rx Frequency window Mensajes de texto a la ventana de frecuencia de RX Mensajes de TX a la ventana de "Frecuencia de RX" - + Gray1 Gris1 - + Show DXCC entity and worked B4 status Mostrar entidad DXCC y estado B4 trabajado Mostrar DXCC y estado B4 trabajado - + Astronomical data Datos astronómicos - + List of Type 1 prefixes and suffixes Lista de prefijos y sufijos de tipo 1 Lista de prefijos y sufijos tipo 1 - + Settings... Configuración - Ajustes + Ajustes... - + Local User Guide Guía de usuario local - + Open log directory Abrir directorio de log - + JT4 JT4 - + Message averaging Promedio de mensajes - + Enable averaging Habilitar el promedio - + Enable deep search Habilitar búsqueda profunda - + WSPR WSPR - + Echo Graph Gráfico de eco - + F8 F8 - + Echo Echo Eco - + EME Echo mode Modo EME Eco - + ISCAT ISCAT - + Fast Graph Gráfico rápido "Fast Graph" - + F9 F9 - + &Download Samples ... &Descargar muestras ... &Descargar muestras de audio ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>Descarga archivos de audio de muestra que demuestren los distintos modos.</p></body></html> <html><head/><body><p>Descargar archivos de audio de los distintos modos.</p></body></html> - + MSK144 MSK144 - + QRA64 QRA64 - + Release Notes Cambios en la nueva versión - + Enable AP for DX Call Habilitar AP para llamada DX Habilitar AP para indicativo DX - + FreqCal FreqCal - + Measure reference spectrum Medir espectro de referencia - + Measure phase response Medir la respuesta de fase - + Erase reference spectrum Borrar espectro de referencia - + Execute frequency calibration cycle Ejecutar ciclo de calibración de frecuencia - + Equalization tools ... Herramientas de ecualización ... - + WSPR-LF WSPR-LF - + Experimental LF/MF mode Modo experimental LF/MF - + FT8 FT8 - - + + Enable AP Habilitar AP - + Solve for calibration parameters Resolver para parámetros de calibración Resolver parámetros de calibración - + Copyright notice Derechos de Autor - + Shift+F1 Mayúsculas+F1 - + Fox log Log Fox Log "Fox" - + FT8 DXpedition Mode User Guide Guía de usuario del modo FT8 DXpedition (inglés) - + Reset Cabrillo log ... Restablecer log de Cabrillo ... - Borrar log Cabrillo + Borrar log Cabrillo ... - + Color highlighting scheme Esquema de resaltado de color Esquema de resaltado de colores - + Contest Log Log de Concurso - + Export Cabrillo log ... Exportar log de Cabrillo ... - Exportar log Cabrillo + Exportar log Cabrillo ... - + Quick-Start Guide to WSJT-X 2.0 Guía de inicio rápido para WSJT-X 2.0 (inglés) - + Contest log Log de Concurso - + Erase WSPR hashtable Borrar la tabla de WSPR - + FT4 FT4 @@ -3891,8 +3882,8 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). - - + + Receiving Recibiendo @@ -3932,21 +3923,21 @@ Error al cargar datos de usuarios de LotW - - - - + + + + + - + - + - + - + - - + Message Mensaje @@ -3974,23 +3965,23 @@ Error al cargar datos de usuarios de LotW - + Improper mode Modo incorrecto - + File Open Error Error de apertura del archivo Error al abrir archivo - - - - + + + + Cannot open "%1" for append: %2 No puedo abrir "%1" para anexar: %2 No se puedo abrir "%1" para anexar: %2 @@ -4014,15 +4005,15 @@ Error al cargar datos de usuarios de LotW - - + + Single-Period Decodes Decodificaciones de un solo período - - + + Average Decodes Promedio de decodificaciones @@ -4044,7 +4035,7 @@ Error al cargar datos de usuarios de LotW - + Cannot open "%1" for writing: %2 No se puede abrir "%1" para la escritura: %2 No se puede abrir "%1" para escritura: %2 @@ -4161,36 +4152,36 @@ Error al cargar datos de usuarios de LotW No hay más archivos para abrir. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Por favor, elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30m. Elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30M. - + WSPR Guard Band Banda de Guardia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Elige otra frecuencia de dial. WSJT-X no funcionará en modo Fox en las sub-bandas FT8 estándar. Por favor elija otra frecuencia. WSJT-X no operá en modo "Fox" en las sub-bandas de FT8 estándar. - + Fox Mode warning Advertencia del modo Fox Advertencia de modo "Fox" - + Last Tx: %1 Última TX: %1 Últ TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4205,37 +4196,37 @@ Para hacerlo, marca "Actividad operativa especial" y luego "Concurso VHF EU" en "Archivo" - "Ajustes" - "Avanzado". - + Should you switch to ARRL Field Day mode? ¿Cambiar al modo ARRL Field Day? - + Should you switch to RTTY contest mode? ¿Cambiar al modo de concurso RTTY? - - - - + + + + Add to CALL3.TXT Añadir a CALL3.TXT - + Please enter a valid grid locator Por favor, introduce un locator/Grid válido Por favor escriba un locator válido - + Cannot open "%1" for read/write: %2 No se puede abrir "%1" para leer/escribir: %2 No se puede abrir "%1" para lectura/escritura: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 @@ -4244,167 +4235,167 @@ ya está en CALL3.TXT, ¿deseas reemplazarlo? ya está en CALL3.TXT, ¿desea reemplazarlo? - + Warning: DX Call field is empty. Advertencia: el campo de Indicativo DX está vacío. Advertencia: el campo Indicativo DX está vacío. - + Log file error Error de archivo de log Error en el archivo de log - + Cannot open "%1" No puedo abrir "%1" No se puede abrir "%1" - + Error sending log to N1MM Error al enviar el log a N1MM - + Write returned "%1" Escritura devuelta "%1" Escritura devuelve "%1" - + Stations calling DXpedition %1 Estaciones que llaman a DXpedition %1 Estaciones llamando a DXpedition %1 - + Hound Hound "Hound" - + Tx Messages Mensajes de TX Mensajes TX - - - + + + Confirm Erase Confirmar borrado - + Are you sure you want to erase file ALL.TXT? ¿Estás seguro de que quiere borrar el archivo ALL.TXT? - - + + Confirm Reset Confirmar reinicio Confirmar restablecer - + Are you sure you want to erase your contest log? ¿Estás seguro de que quieres borrar el log de tú concurso? ¿Está seguro que quiere borrar el log de concurso? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Hacer esto eliminará todos los registros de QSO para el concurso actual. Se guardarán en el archivo log de ADIF, pero no estarán disponibles para la exportación en tú log de Cabrillo. Hacer esto eliminará todos los QSOs del concurso actual. Se mantendrán en el log ADIF, pero no estarán disponibles para la exportación como log de Cabrillo. - + Cabrillo Log saved Cabrillo Log guardado Log Cabrillo guardado - + Are you sure you want to erase file wsjtx_log.adi? ¿Estás seguro de que quieres borrar el archivo wsjtx_log.adi? ¿Está seguro que quiere borrar el archivo wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? ¿Estás seguro de que quieres borrar la tabla WSPR? ¿Está seguro de que quiere borrar la tabla hash WSPR? - + VHF features warning Advertencia de características VHF - + Tune digital gain Ganancia de sintonización digital Ajustar ganancia digital - + Transmit digital gain Ganancia de transmisión digital Transmitir ganancia digital - + Prefixes Prefijos Prefijos y sufijos tipo 1 - + Network Error Error de red - + Error: %1 UDP server %2:%3 Error: %1 Servidor UDP %2:%3 - + File Error Error en el archivo - + Phase Training Disabled Fase de entrenamiento deshabilitado Entrenamieno de Fase deshabilitado - + Phase Training Enabled Fase de entrenamiento habilitado Entrenamiento de Fase habilitado - + WD:%1m WD:%1m - - + + Log File Error Error de archivo log Error en archivo log - + Are you sure you want to clear the QSO queues? ¿Estás seguro de que quieres borrar las colas QSO? ¿Está seguro que quiere borrar las colas de QSOs? @@ -4549,20 +4540,20 @@ Servidor UDP %2:%3 Error al iniciar servidor COM de OmniRig - - + + OmniRig: don't know how to set rig frequency OmniRig: no sé cómo configurar la frecuencia del equipo - - + + OmniRig: timeout waiting for update from rig OmniRig: el tiempo de espera finalizó en la actualización del equipo OmniRig: el tiempo de espera agotado esperando la actualización del equipo - + OmniRig COM/OLE error: %1 at %2: %3 (%4) Error de OmniRig COM/OLE: %1 a %2: %3 (%4 @@ -4727,36 +4718,6 @@ Error(%2): %3 Download Samples Descargar muestras de audio - - - &Abort - - - - - &Refresh - - - - - &Details - - - - - Base URL for samples: - - - - - Only use HTTP: - - - - - Check this is you get SSL/TLS errors - - Input Error @@ -4919,7 +4880,7 @@ Error(%2): %3 &Offset (MHz): &Desplazamiento en MHz: - Desplazamient&o (MHz): + Desplazamient&o (MHz): @@ -5033,7 +4994,7 @@ Error(%2): %3 Flatten - Flatten + Flatten @@ -5139,7 +5100,7 @@ Error(%2): %3 N Avg Promedio N - N Avg + N Avg @@ -5192,7 +5153,7 @@ Error(%2): %3 My C&all: - Mi Indic&ativo: + Mi Indic&ativo: @@ -5204,7 +5165,7 @@ Error(%2): %3 M&y Grid: M&i Locator/Grid: - Mi L&ocator: + Mi L&ocator: @@ -5239,7 +5200,7 @@ Error(%2): %3 Message generation for type 2 compound callsign holders: Generación de mensajes para titulares de indicativos compuestos de tipo 2: - Generación mensajes indicativos compuestos tipo 2: + Generación mensajes indicativos compuestos tipo 2: @@ -5320,7 +5281,7 @@ Error(%2): %3 Font... Letra... - Tipo de letra para la aplicación + Tipo de letra para la aplicación @@ -5492,7 +5453,7 @@ período de silencio cuando se ha realizado la decodificación. Automatic transmission mode. Modo de transmisión automática. - Activa TX cuando se hace doble clic sobre indicativo + Activa TX cuando se hace doble clic sobre indicativo. @@ -5536,7 +5497,7 @@ período de silencio cuando se ha realizado la decodificación. Serial port used for CAT control. - Puerto serie usado para el control CAT + Puerto serie usado para el control CAT. @@ -6846,7 +6807,7 @@ Clic derecho para insertar y eliminar opciones. Where <rig-name> is for multi-instance support. Dónde <rig-name> es para soporte de múltiples instancias. - Dónde <rig-name> es para soporte múlti instancias. + Dónde <rig-name> es para soporte múlti instancias. From adafb89769a5e515ff785340a522c56851c00a58 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 8 Jul 2020 00:10:48 +0100 Subject: [PATCH 235/520] Install FST240 simulator --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 969e17e74..15cf9aed0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1520,7 +1520,7 @@ install (TARGETS jt9 wsprd fmtave fcal fmeasure if(WSJT_BUILD_UTILS) install (TARGETS ft8code jt65code qra64code qra64sim jt9code jt4code - msk144code + msk144code fst240sim RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime ) From aa557820d464f9536d6937284afae6af814cf448 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 8 Jul 2020 02:25:25 +0100 Subject: [PATCH 236/520] Work around gfortran v10 error message --- lib/fst240_decode.f90 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index a0d3e4845..d669ca939 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -33,6 +33,7 @@ contains use timer_module, only: timer use packjt77 + use, intrinsic :: iso_c_binding include 'fst240/fst240_params.f90' parameter (MAXCAND=100) class(fst240_decoder), intent(inout) :: this @@ -45,7 +46,8 @@ contains complex, allocatable :: c2(:) complex, allocatable :: cframe(:) complex, allocatable :: c_bigfft(:) !Complex waveform - real, allocatable :: r_data(:) + real, allocatable, target :: r_data(:) + complex, pointer, dimension(:) :: c_data_ptr real llr(240),llra(240),llrb(240),llrc(240),llrd(240) real candidates(100,4) real bitmetrics(320,4) @@ -212,6 +214,7 @@ contains nh1=nfft1/2 allocate( r_data(1:nfft1+2) ) + call c_f_pointer (c_loc (r_data), c_data_ptr, [(nfft1+2)/2]) ! c_data_ptr shares memory with r_data allocate( c_bigfft(0:nfft1/2) ) allocate( c2(0:nfft2-1) ) @@ -238,7 +241,7 @@ contains ! and also for downconverting/downsampling each candidate. r_data(1:nfft1)=iwave(1:nfft1) r_data(nfft1+1:nfft1+2)=0.0 - call four2a(r_data,nfft1,1,-1,0) + call four2a(c_data_ptr,nfft1,1,-1,0) c_bigfft=cmplx(r_data(1:nfft1+2:2),r_data(2:nfft1+2:2)) ! write(*,3001) iwspr,nfa,nfb,nfsplit,ndepth !3001 format('a',5i5) From 114cd83376c953397fd82ecf68c858c29c9ba258 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 8 Jul 2020 11:25:07 -0400 Subject: [PATCH 237/520] Signal report range has been [-30,+99]. Not it is [-50,+50], in a backward-compatible way. --- lib/77bit/packjt77.f90 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/77bit/packjt77.f90 b/lib/77bit/packjt77.f90 index 295b70568..dc6fb0f17 100644 --- a/lib/77bit/packjt77.f90 +++ b/lib/77bit/packjt77.f90 @@ -457,7 +457,9 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) if(irpt.eq.3) msg=trim(call_1)//' '//trim(call_2)//' RR73' if(irpt.eq.4) msg=trim(call_1)//' '//trim(call_2)//' 73' if(irpt.ge.5) then - write(crpt,'(i3.2)') irpt-35 + isnr=irpt-35 + if(isnr.gt.50) isnr=isnr-101 + write(crpt,'(i3.2)') isnr if(crpt(1:1).eq.' ') crpt(1:1)='+' if(ir.eq.0) msg=trim(call_1)//' '//trim(call_2)//' '//crpt if(ir.eq.1) msg=trim(call_1)//' '//trim(call_2)//' R'//crpt @@ -1095,10 +1097,12 @@ subroutine pack77_1(nwords,w,i3,n3,c77) if(c1.eq.'+' .or. c1.eq.'-') then ir=0 read(w(nwords),*,err=900) irpt + if(irpt.ge.-50 .and. irpt.le.-31) irpt=irpt+101 irpt=irpt+35 else if(c2.eq.'R+' .or. c2.eq.'R-') then ir=1 read(w(nwords)(2:),*) irpt + if(irpt.ge.-50 .and. irpt.le.-31) irpt=irpt+101 irpt=irpt+35 else if(trim(w(nwords)).eq.'RRR') then ir=0 From 5bc2417a7ed55b584f272179713040380f98522a Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 8 Jul 2020 11:34:32 -0400 Subject: [PATCH 238/520] Update User Guide to mention the new range for acceptable signal reports. --- doc/user_guide/en/protocols.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/user_guide/en/protocols.adoc b/doc/user_guide/en/protocols.adoc index 625f63511..d9a7d8ada 100644 --- a/doc/user_guide/en/protocols.adoc +++ b/doc/user_guide/en/protocols.adoc @@ -38,8 +38,8 @@ FN42`, it means that s/he will listen on 50.290 and respond there to any replies.) A numerical signal report of the form `–nn` or `R–nn` can be sent in place of a grid locator. (As originally defined, numerical signal reports `nn` were required to fall between -01 -and -30 dB. Recent program versions accommodate reports between --50 and +49 dB.) A country prefix or portable suffix may be +and -30 dB. Program versions 2.3 and later accommodate reports between +-50 and +50 dB.) A country prefix or portable suffix may be attached to one of the callsigns. When this feature is used the additional information is sent in place of the grid locator or by encoding additional information into some of the 6 million available From f77b6bf71ab907730f7d98c71775e9651305d20e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 8 Jul 2020 19:37:31 +0100 Subject: [PATCH 239/520] Only show FST240W T/R period spin box in FST240W mode --- displayWidgets.txt | 38 +++++++++++++++++++----------------- widgets/mainwindow.cpp | 44 ++++++++++++++++++++++-------------------- widgets/mainwindow.h | 1 - 3 files changed, 43 insertions(+), 40 deletions(-) diff --git a/displayWidgets.txt b/displayWidgets.txt index ae813ad48..34750cf98 100644 --- a/displayWidgets.txt +++ b/displayWidgets.txt @@ -1,25 +1,26 @@ Here are the "displayWidgets()" strings for WSJT-X modes 1 2 3 - 012345678901234567890123456789012 + 0123456789012345678901234567890123 ---------------------------------------------- -JT4 111010000000110000110000000000000 -JT4/VHF 111110010010110110111100000000000 -JT9 111010000000111000010000000000001 -JT9/VHF 111110101000111110010000000000000 -JT9+JT65 111010000001111000010000000000001 -JT65 111010000000111000010000000000001 -JT65/VHF 111110010000110110101100010000000 -QRA64 111110010110110110000000001000000 -ISCAT 100111000000000110000000000000000 -MSK144 101111110100000000010001000000000 -WSPR 000000000000000001010000000000000 -Echo 000000000000000000000010000000000 -FCal 001101000000000000000000000001000 -FT8 111010000100111000010000100110001 -FT8/VHF 111010000100111000010000100110001 -FT8/Fox 111010000100111000010000000000100 -FT8/Hound 111010000100111000010000000000110 +JT4 1110100000001100001100000000000000 +JT4/VHF 1111100100101101101111000000000000 +JT9 1110100000001110000100000000000010 +JT9/VHF 1111101010001111100100000000000000 +JT9+JT65 1110100000011110000100000000000010 +JT65 1110100000001110000100000000000010 +JT65/VHF 1111100100001101101011000100000000 +QRA64 1111100101101101100000000010000000 +ISCAT 1001110000000001100000000000000000 +MSK144 1011111101000000000100010000000000 +WSPR 0000000000000000010100000000000000 +FST240W 0000000000000000010100000000000001 +Echo 0000000000000000000000100000000000 +FCal 0011010000000000000000000000010000 +FT8 1110100001001110000100001001100010 +FT8/VHF 1110100001001110000100001001100010 +FT8/Fox 1110100001001110000100000000001000 +FT8/Hound 1110100001001110000100000000001100 ---------------------------------------------- 1 2 3 012345678901234567890123456789012 @@ -60,3 +61,4 @@ Mapping of column numbers to widgets 30. labDXped 31. cbRxAll 32. cbCQonly +33. sbTR_FST240W diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index ecb0ad970..9c5e9c6bb 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -208,6 +208,7 @@ namespace // 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"}; auto quint32_max = std::numeric_limits::max (); + constexpr int N_WIDGETS {34}; bool message_is_73 (int type, QStringList const& msg_parts) { @@ -5792,6 +5793,7 @@ void MainWindow::displayWidgets(qint64 n) if(i==30) ui->labDXped->setVisible(b); if(i==31) ui->cbRxAll->setVisible(b); if(i==32) ui->cbCQonly->setVisible(b); + if(i==33) ui->sbTR_FST240W->setVisible(b); j=j>>1; } ui->pbBestSP->setVisible(m_mode=="FT4"); @@ -5819,8 +5821,8 @@ void MainWindow::on_actionFST240_triggered() ui->actionFST240->setChecked(true); WSPR_config(false); bool bVHF=m_config.enable_VHF_features(); -// 012345678901234567890123456789012 - displayWidgets(nWidgets("111111000100111100010000000100000")); +// 0123456789012345678901234567890123 + displayWidgets(nWidgets("1111110001001111000100000001000000")); setup_status_bar (bVHF); m_TRperiod = ui->sbTR->value(); ui->sbTR->setMinimum(15); @@ -5843,8 +5845,8 @@ void MainWindow::on_actionFST240W_triggered() m_modeTx="FST240W"; WSPR_config(true); ui->actionFST240W->setChecked(true); -// 012345678901234567890123456789012 - displayWidgets(nWidgets("000001000000000001010000000000000")); +// 0123456789012345678901234567890123 + displayWidgets(nWidgets("0000000000000000010100000000000001")); bool bVHF=m_config.enable_VHF_features(); setup_status_bar (bVHF); m_nSubMode=0; @@ -5899,7 +5901,7 @@ void MainWindow::on_actionFT4_triggered() ui->label_7->setText(tr ("Rx Frequency")); ui->label_6->setText(tr ("Band Activity")); ui->decodedTextLabel->setText( " UTC dB DT Freq " + tr ("Message")); - displayWidgets(nWidgets("111010000100111000010000000110001")); + displayWidgets(nWidgets("1110100001001110000100000001100010")); ui->txrb2->setEnabled(true); ui->txrb4->setEnabled(true); ui->txrb5->setEnabled(true); @@ -5948,7 +5950,7 @@ void MainWindow::on_actionFT8_triggered() ui->label_6->setText(tr ("Band Activity")); ui->decodedTextLabel->setText( " UTC dB DT Freq " + tr ("Message")); } - displayWidgets(nWidgets("111010000100111000010000100110001")); + displayWidgets(nWidgets("1110100001001110000100001001100010")); ui->txrb2->setEnabled(true); ui->txrb4->setEnabled(true); ui->txrb5->setEnabled(true); @@ -5966,7 +5968,7 @@ void MainWindow::on_actionFT8_triggered() ui->cbAutoSeq->setEnabled(false); ui->tabWidget->setCurrentIndex(2); ui->TxFreqSpinBox->setValue(300); - displayWidgets(nWidgets("111010000100111000010000000000100")); + displayWidgets(nWidgets("1110100001001110000100000000001000")); ui->labDXped->setText(tr ("Fox")); on_fox_log_action_triggered(); } @@ -5976,7 +5978,7 @@ void MainWindow::on_actionFT8_triggered() ui->cbAutoSeq->setEnabled(false); ui->tabWidget->setCurrentIndex(0); ui->cbHoldTxFreq->setChecked(true); - displayWidgets(nWidgets("111010000100110000010000000000110")); + displayWidgets(nWidgets("11101000010011000001000000000011000")); ui->labDXped->setText(tr ("Hound")); ui->txrb1->setChecked(true); ui->txrb2->setEnabled(false); @@ -6051,9 +6053,9 @@ void MainWindow::on_actionJT4_triggered() ui->sbSubmode->setValue(0); } if(bVHF) { - displayWidgets(nWidgets("111110010010110110111100000000000")); + displayWidgets(nWidgets("1111100100101101101111000000000000")); } else { - displayWidgets(nWidgets("111010000000110000110000000000000")); + displayWidgets(nWidgets("1110100000001100001100000000000000")); } fast_config(false); statusChanged(); @@ -6106,9 +6108,9 @@ void MainWindow::on_actionJT9_triggered() ui->label_6->setText(tr ("Band Activity")); ui->label_7->setText(tr ("Rx Frequency")); if(bVHF) { - displayWidgets(nWidgets("111110101000111110010000000000000")); + displayWidgets(nWidgets("1111101010001111100100000000000000")); } else { - displayWidgets(nWidgets("111010000000111000010000000000001")); + displayWidgets(nWidgets("1110100000001110000100000000000010")); } fast_config(m_bFastMode); ui->cbAutoSeq->setVisible(m_bFast9); @@ -6147,7 +6149,7 @@ void MainWindow::on_actionJT9_JT65_triggered() ui->label_7->setText(tr ("Rx Frequency")); ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message")); ui->decodedTextLabel2->setText("UTC dB DT Freq " + tr ("Message")); - displayWidgets(nWidgets("111010000001111000010000000000001")); + displayWidgets(nWidgets("1110100000011110000100000000000010")); fast_config(false); statusChanged(); } @@ -6195,9 +6197,9 @@ void MainWindow::on_actionJT65_triggered() ui->label_7->setText(tr ("Rx Frequency")); } if(bVHF) { - displayWidgets(nWidgets("111110010000110110101100010000000")); + displayWidgets(nWidgets("1111100100001101101011000100000000")); } else { - displayWidgets(nWidgets("111010000000111000010000000000001")); + displayWidgets(nWidgets("1110100000001110000100000000000010")); } fast_config(false); if(ui->cbShMsgs->isChecked()) { @@ -6229,7 +6231,7 @@ void MainWindow::on_actionQRA64_triggered() ui->TxFreqSpinBox->setValue(1000); QString fname {QDir::toNativeSeparators(m_config.temp_dir ().absoluteFilePath ("red.dat"))}; m_wideGraph->setRedFile(fname); - displayWidgets(nWidgets("111110010010110110000000001000000")); + displayWidgets(nWidgets("1111100100101101100000000010000000")); statusChanged(); } @@ -6265,7 +6267,7 @@ void MainWindow::on_actionISCAT_triggered() ui->sbSubmode->setMaximum(1); if(m_nSubMode==0) ui->TxFreqSpinBox->setValue(1012); if(m_nSubMode==1) ui->TxFreqSpinBox->setValue(560); - displayWidgets(nWidgets("100111000000000110000000000000000")); + displayWidgets(nWidgets("1001110000000001100000000000000000")); fast_config(true); statusChanged (); } @@ -6326,7 +6328,7 @@ void MainWindow::on_actionMSK144_triggered() ui->rptSpinBox->setValue(0); ui->rptSpinBox->setSingleStep(1); ui->sbFtol->values ({20, 50, 100, 200}); - displayWidgets(nWidgets("101111110100000000010001000010000")); + displayWidgets(nWidgets("1011111101000000000100010000100000")); fast_config(m_bFastMode); statusChanged(); @@ -6364,7 +6366,7 @@ void MainWindow::on_actionWSPR_triggered() m_bFastMode=false; m_bFast9=false; ui->TxFreqSpinBox->setValue(ui->WSPRfreqSpinBox->value()); - displayWidgets(nWidgets("000000000000000001010000000000000")); + displayWidgets(nWidgets("0000000000000000010100000000000000")); fast_config(false); statusChanged(); } @@ -6397,7 +6399,7 @@ void MainWindow::on_actionEcho_triggered() m_bFast9=false; WSPR_config(true); ui->decodedTextLabel->setText(" UTC N Level Sig DF Width Q"); - displayWidgets(nWidgets("000000000000000000000010000000000")); + displayWidgets(nWidgets("0000000000000000000000100000000000")); fast_config(false); statusChanged(); } @@ -6422,7 +6424,7 @@ void MainWindow::on_actionFreqCal_triggered() // 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"); ui->measure_check_box->setChecked (false); - displayWidgets(nWidgets("001101000000000000000000000001000")); + displayWidgets(nWidgets("0011010000000000000000000000010000")); statusChanged(); } diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index c2b73bf23..070fbbae5 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -51,7 +51,6 @@ #define NUM_FST240_SYMBOLS 160 //240/2 data + 5*8 sync #define NUM_CW_SYMBOLS 250 #define TX_SAMPLE_RATE 48000 -#define N_WIDGETS 33 #define NRING 3456000 extern int volatile itone[NUM_ISCAT_SYMBOLS]; //Audio tones for all Tx symbols From 8941b70a2a8baccc97cf715b2172782b2f6b4c10 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 9 Jul 2020 14:13:23 -0500 Subject: [PATCH 240/520] Changes to improve sensitivity on overspread channels. --- lib/fst240/ldpcsim240_74.f90 | 2 +- lib/fst240_decode.f90 | 37 +++++++++++++++++++++++------------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/lib/fst240/ldpcsim240_74.f90 b/lib/fst240/ldpcsim240_74.f90 index 78e8e6b5f..b488aa6b6 100644 --- a/lib/fst240/ldpcsim240_74.f90 +++ b/lib/fst240/ldpcsim240_74.f90 @@ -101,7 +101,7 @@ write(*,'(24i1)') msgbits(51:74) llr=2.0*rxdata/(ss*ss) apmask=0 dmin=0.0 - maxosd=2 + maxosd=0 call decode240_74(llr, Keff, maxosd, norder, apmask, message74, cw, ntype, nharderror, dmin) if(nharderror.ge.0) then n2err=0 diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index a0d3e4845..73384d29e 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -220,7 +220,6 @@ contains if(ndepth.eq.3) then nblock=4 - if(hmod.eq.1) nblock=4 ! number of block sizes to try jittermax=2 norder=3 elseif(ndepth.eq.2) then @@ -264,8 +263,8 @@ contains endif else if(hmod.eq.2) nsyncoh=1 - if(hmod.eq.4) nsyncoh=1 - if(hmod.eq.8) nsyncoh=1 + if(hmod.eq.4) nsyncoh=-2 + if(hmod.eq.8) nsyncoh=-4 endif do iqorw=itype1,itype2 ! iqorw=1 for QSO mode and iqorw=2 for wspr-type messages @@ -289,7 +288,7 @@ contains if(ntrperiod.eq.15) minsync=1.15 if(ntrperiod.gt.15) minsync=1.20 elseif(hmod.gt.1) then - minsync=1.5 + minsync=1.2 endif @@ -463,8 +462,13 @@ contains napwid=1.2*(4.0*baud*hmod) if(itry.gt.nblock) then - if(nblock.eq.1) llr=llra - if(nblock.gt.1) llr=llrc + llr=llra + if(nblock.gt.1) then + if(hmod.eq.1) llr=llrd + if(hmod.eq.2) llr=llrb + if(hmod.eq.4) llr=llrc + if(hmod.eq.8) llr=llrd + endif iaptype=naptypes(nQSOProgress,itry-nblock) if(lapcqonly) iaptype=1 if(iaptype.ge.2 .and. apbits(1).gt.1) cycle ! No, or nonstandard, mycall @@ -531,6 +535,7 @@ contains c77(51:77)='000000000000000000000110000' call unpack77(c77,0,msg,unpk77_success) endif +! if(unpk77_success.and.index(msg,"K9AN").ne.0) then if(unpk77_success) then idupe=0 do i=1,ndecodes @@ -561,7 +566,7 @@ contains nsnr=nint(xsnr) qual=0. fsig=fc_synced - 1.5*hmod*baud -! write(21,'(i6,8i6,f7.1,f9.2,f7.1,1x,f7.2,1x,f7.1,1x,a37)') & +! write(21,'(i6.6,8i6,f7.1,f10.2,f7.1,1x,f7.2,1x,f7.1,1x,a37)') & ! nutc,icand,itry,nsyncoh,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg ! flush(21) call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & @@ -671,16 +676,22 @@ contains do i=1,8 do isub=1,nsub is=(i-1)*nss+(isub-1)*nps + z1=0.0 if(i1+is.ge.1) then - s1=s1+abs(sum(cd0(i1+is:i1+is+nps-1)*conjg(csynct1(is+1:is+nps)))) + z1=sum(cd0(i1+is:i1+is+nps-1)*conjg(csynct1(is+1:is+nps))) endif - s2=s2+abs(sum(cd0(i2+is:i2+is+nps-1)*conjg(csynct1(is+1:is+nps)))) - s3=s3+abs(sum(cd0(i3+is:i3+is+nps-1)*conjg(csynct1(is+1:is+nps)))) - s4=s4+abs(sum(cd0(i4+is:i4+is+nps-1)*conjg(csynct1(is+1:is+nps)))) - s5=0 + z2=sum(cd0(i2+is:i2+is+nps-1)*conjg(csynct2(is+1:is+nps))) + z3=sum(cd0(i3+is:i3+is+nps-1)*conjg(csynct1(is+1:is+nps))) + z4=sum(cd0(i4+is:i4+is+nps-1)*conjg(csynct2(is+1:is+nps))) + z5=0.0 if(i5+is+ncoh*nss-1.le.np) then - s5=s5+abs(sum(cd0(i5+is:i5+is+nps-1)*conjg(csynct1(is+1:is+nps)))) + z5=sum(cd0(i5+is:i5+is+nps-1)*conjg(csynct1(is+1:is+nps))) endif + s1=s1+abs(z1)/(8*nss) + s2=s2+abs(z2)/(8*nss) + s3=s3+abs(z3)/(8*nss) + s4=s4+abs(z4)/(8*nss) + s5=s5+abs(z5)/(8*nss) enddo enddo endif From 89985376222aa8a2d11fe1482d265557828cb6b5 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 9 Jul 2020 15:30:46 -0500 Subject: [PATCH 241/520] Clean up a couple of loose ends. --- lib/fst240_decode.f90 | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 53c29633b..981b6b60c 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -391,7 +391,6 @@ contains fc_synced=candidates(icand,3) isbest=nint(candidates(icand,4)) xdt=(isbest-nspsec)/fs2 - if(ntrperiod.eq.15) xdt=(isbest-real(nspsec)/2.0)/fs2 call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) @@ -419,7 +418,6 @@ contains ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) nsync_qual=ns1+ns2+ns3+ns4+ns5 ! if(nsync_qual.lt. 46) cycle !### Value ?? ### - scalefac=2.83 llra( 1: 60)=bitmetrics( 17: 76, 1) llra( 61:120)=bitmetrics( 93:152, 1) @@ -462,7 +460,6 @@ contains apmask=0 iaptype=0 endif - napwid=1.2*(4.0*baud*hmod) if(itry.gt.nblock) then llr=llra @@ -538,7 +535,6 @@ contains c77(51:77)='000000000000000000000110000' call unpack77(c77,0,msg,unpk77_success) endif -! if(unpk77_success.and.index(msg,"K9AN").ne.0) then if(unpk77_success) then idupe=0 do i=1,ndecodes From 3e61688229c6194f88e47e8ea103ef7e081453e9 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 11 Jul 2020 15:24:21 -0400 Subject: [PATCH 242/520] Fix the nagging 'KA1R' problem with decoding after change in TRperiod. --- lib/fst240_decode.f90 | 146 +++++++++++++++++++++--------------------- 1 file changed, 74 insertions(+), 72 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index d669ca939..7fa770b3e 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -46,8 +46,6 @@ contains complex, allocatable :: c2(:) complex, allocatable :: cframe(:) complex, allocatable :: c_bigfft(:) !Complex waveform - real, allocatable, target :: r_data(:) - complex, pointer, dimension(:) :: c_data_ptr real llr(240),llra(240),llrb(240),llrc(240),llrd(240) real candidates(100,4) real bitmetrics(320,4) @@ -121,7 +119,7 @@ contains hiscall0='' first=.false. endif - + l1=index(mycall,char(0)) if(l1.ne.0) mycall(l1:)=" " l1=index(hiscall,char(0)) @@ -213,14 +211,10 @@ contains nfft1=nfft2*ndown nh1=nfft1/2 - allocate( r_data(1:nfft1+2) ) - call c_f_pointer (c_loc (r_data), c_data_ptr, [(nfft1+2)/2]) ! c_data_ptr shares memory with r_data - allocate( c_bigfft(0:nfft1/2) ) - + allocate( c_bigfft(0:nfft1/2+1) ) allocate( c2(0:nfft2-1) ) allocate( cframe(0:160*nss-1) ) - - + if(ndepth.eq.3) then nblock=4 if(hmod.eq.1) nblock=4 ! number of block sizes to try @@ -239,13 +233,11 @@ contains ! The big fft is done once and is used for calculating the smoothed spectrum ! and also for downconverting/downsampling each candidate. - r_data(1:nfft1)=iwave(1:nfft1) - r_data(nfft1+1:nfft1+2)=0.0 - call four2a(c_data_ptr,nfft1,1,-1,0) - c_bigfft=cmplx(r_data(1:nfft1+2:2),r_data(2:nfft1+2:2)) -! write(*,3001) iwspr,nfa,nfb,nfsplit,ndepth -!3001 format('a',5i5) -! iwspr=1 !### For hardwired tests ### + do i=1,nfft1/2 + c_bigfft(i)=cmplx(float(iwave(2*i-1)),float(iwave(2*i))) + enddo + c_bigfft(nfft1/2+1)=0. + call four2a(c_bigfft,nfft1,1,-1,0) if(iwspr.eq.0) then itype1=1 itype2=1 @@ -295,10 +287,9 @@ contains minsync=1.5 endif - ! Get first approximation of candidate frequencies call get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & - minsync,ncand,candidates,base) + minsync,ncand,candidates,base) ndecodes=0 decodes=' ' @@ -317,41 +308,49 @@ contains call fst240_downsample(c_bigfft,nfft1,ndown,fc0,sigbw,c2) call timer('sync240 ',0) - do isync=0,1 - if(isync.eq.0) then - fc1=0.0 - if(emedelay.lt.0.1) then ! search offsets from 0 s to 2 s - is0=1.5*nspsec - ishw=1.5*nspsec - else ! search plus or minus 1.5 s centered on emedelay - is0=nint(emedelay*nspsec) - ishw=1.5*nspsec - endif - isst=4*hmod - ifhw=12 - df=.1*baud - else if(isync.eq.1) then - fc1=fc2 - is0=isbest - ishw=4*hmod - isst=1*hmod - ifhw=7 - df=.02*baud - endif - smax=0.0 - do if=-ifhw,ifhw - fc=fc1+df*if - do istart=max(1,is0-ishw),is0+ishw,isst - call sync_fst240(c2,istart,fc,hmod,nsyncoh,nfft2,nss,fs2,sync) - if(sync.gt.smax) then - fc2=fc - isbest=istart - smax=sync - endif - enddo + fc1=0.0 + if(emedelay.lt.0.1) then ! search offsets from 0 s to 2 s + is0=1.5*nspsec + ishw=1.5*nspsec + else ! search plus or minus 1.5 s centered on emedelay + is0=nint(emedelay*nspsec) + ishw=1.5*nspsec + endif + + smax=-1.e30 + do if=-12,12 + fc=fc1 + 0.1*baud*if + do istart=max(1,is0-ishw),is0+ishw,4*hmod + call sync_fst240(c2,istart,fc,hmod,nsyncoh,nfft2,nss, & + ntrperiod,fs2,sync) + if(sync.gt.smax) then + fc2=fc + isbest=istart + smax=sync + endif enddo enddo + + fc1=fc2 + is0=isbest + ishw=4*hmod + isst=1*hmod + + smax=0.0 + do if=-7,7 + fc=fc1 + 0.02*baud*if + do istart=max(1,is0-ishw),is0+ishw,isst + call sync_fst240(c2,istart,fc,hmod,nsyncoh,nfft2,nss, & + ntrperiod,fs2,sync) + if(sync.gt.smax) then + fc2=fc + isbest=istart + smax=sync + endif + enddo + enddo + call timer('sync240 ',1) fc_synced = fc0 + fc2 @@ -579,29 +578,29 @@ contains return end subroutine decode - subroutine sync_fst240(cd0,i0,f0,hmod,ncoh,np,nss,fs,sync) + subroutine sync_fst240(cd0,i0,f0,hmod,ncoh,np,nss,ntr,fs,sync) ! Compute sync power for a complex, downsampled FST240 signal. + use timer_module, only: timer include 'fst240/fst240_params.f90' complex cd0(0:np-1) - complex, allocatable, save :: csync1(:),csync2(:) - complex, allocatable, save :: csynct1(:),csynct2(:) - complex ctwk(8*nss) + complex csync1,csync2,csynct1,csynct2 + complex ctwk(3200) complex z1,z2,z3,z4,z5 - logical first integer hmod,isyncword1(0:7),isyncword2(0:7) real f0save + common/sync240com/csync1(3200),csync2(3200),csynct1(3200),csynct2(3200) data isyncword1/0,1,3,2,1,0,2,3/ data isyncword2/2,3,1,0,3,2,0,1/ - data first/.true./,f0save/-99.9/,nss0/-1/ - save first,twopi,dt,fac,f0save,nss0 + data f0save/-99.9/,nss0/-1/,ntr0/-1/ + save twopi,dt,fac,f0save,nss0,ntr0 + p(z1)=(real(z1*fac)**2 + aimag(z1*fac)**2)**0.5 !Compute power - if(nss.ne.nss0 .and. allocated(csync1)) deallocate(csync1,csync2,csynct1,csynct2) - if(first .or. nss.ne.nss0) then - allocate( csync1(8*nss), csync2(8*nss) ) - allocate( csynct1(8*nss), csynct2(8*nss) ) + nz=8*nss + call timer('sync240a',0) + if(nss.ne.nss0 .or. ntr.ne.ntr0) then twopi=8.0*atan(1.0) dt=1/fs k=1 @@ -618,22 +617,25 @@ contains k=k+1 enddo enddo - first=.false. - nss0=nss fac=1.0/(8.0*nss) + nss0=nss + ntr0=ntr + f0save=-1.e30 endif if(f0.ne.f0save) then dphi=twopi*f0*dt phi=0.0 - do i=1,8*nss + do i=1,nz ctwk(i)=cmplx(cos(phi),sin(phi)) phi=mod(phi+dphi,twopi) enddo - csynct1=ctwk*csync1 - csynct2=ctwk*csync2 + csynct1(1:nz)=ctwk(1:nz)*csync1(1:nz) + csynct2(1:nz)=ctwk(1:nz)*csync2(1:nz) f0save=f0 + nss0=nss endif + call timer('sync240a',1) i1=i0 !Costas arrays i2=i0+38*nss @@ -662,11 +664,11 @@ contains if(i5+is+ncoh*nss-1.le.np) then z5=sum(cd0(i5+is:i5+is+ncoh*nss-1)*conjg(csynct1(is+1:is+ncoh*nss))) endif - s1=s1+abs(z1)/(8*nss) - s2=s2+abs(z2)/(8*nss) - s3=s3+abs(z3)/(8*nss) - s4=s4+abs(z4)/(8*nss) - s5=s5+abs(z5)/(8*nss) + s1=s1+abs(z1)/nz + s2=s2+abs(z2)/nz + s3=s3+abs(z3)/nz + s4=s4+abs(z4)/nz + s5=s5+abs(z5)/nz enddo else nsub=-ncoh @@ -718,7 +720,7 @@ contains subroutine get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & minsync,ncand,candidates,base) - complex c_bigfft(0:nfft1/2) !Full length FFT of raw data + complex c_bigfft(0:nfft1/2+1) !Full length FFT of raw data integer hmod !Modulation index (submode) integer im(1) !For maxloc real candidates(100,4) !Candidate list From 4cb902a4cc26b5557a092464f716a20c0676d969 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sat, 11 Jul 2020 16:39:31 -0500 Subject: [PATCH 243/520] Try to get c_bigfft sorted out. --- lib/fst240_decode.f90 | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index ef0d6f40c..b57cc401d 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -211,7 +211,7 @@ contains nfft1=nfft2*ndown nh1=nfft1/2 - allocate( c_bigfft(0:nfft1/2+1) ) + allocate( c_bigfft(0:nfft1/2) ) allocate( c2(0:nfft2-1) ) allocate( cframe(0:160*nss-1) ) @@ -232,10 +232,9 @@ contains ! The big fft is done once and is used for calculating the smoothed spectrum ! and also for downconverting/downsampling each candidate. - do i=1,nfft1/2 - c_bigfft(i)=cmplx(float(iwave(2*i-1)),float(iwave(2*i))) + do i=0,nfft1/2 + c_bigfft(i)=cmplx(float(iwave(2*i+1)),float(iwave(2*i+2))) enddo - c_bigfft(nfft1/2+1)=0. call four2a(c_bigfft,nfft1,1,-1,0) if(iwspr.eq.0) then itype1=1 @@ -727,7 +726,7 @@ contains subroutine get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & minsync,ncand,candidates,base) - complex c_bigfft(0:nfft1/2+1) !Full length FFT of raw data + complex c_bigfft(0:nfft1/2) !Full length FFT of raw data integer hmod !Modulation index (submode) integer im(1) !For maxloc real candidates(100,4) !Candidate list From 7118f1ad148d605d976a16c86f08e3f8c3079f75 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 12 Jul 2020 01:38:36 +0100 Subject: [PATCH 244/520] Correct T/R period options for older modes, and correct start times Fix up decode window headings. --- widgets/mainwindow.cpp | 93 +++++++++++++++++++++++++----------------- widgets/mainwindow.h | 2 +- 2 files changed, 57 insertions(+), 38 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 9c5e9c6bb..65ec87d75 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4211,7 +4211,7 @@ void MainWindow::startTx2() if (m_config.TX_messages ()) { t = " Transmitting " + m_mode + " ----------------------- " + m_config.bands ()->find (m_freqNominal); - t=WSPR_hhmm(0) + ' ' + t.rightJustified (66, '-'); + t=beacon_start_time () + ' ' + t.rightJustified (66, '-'); ui->decodedTextBrowser->appendText(t); } write_all("Tx",m_currentMessage); @@ -5824,11 +5824,8 @@ void MainWindow::on_actionFST240_triggered() // 0123456789012345678901234567890123 displayWidgets(nWidgets("1111110001001111000100000001000000")); setup_status_bar (bVHF); - m_TRperiod = ui->sbTR->value(); - ui->sbTR->setMinimum(15); - ui->sbTR->setMaximum(300); - m_TRperiod = ui->sbTR->value(); - on_sbTR_valueChanged(ui->sbTR->value()); + ui->sbTR->values ({15, 30, 60, 120, 300}); + on_sbTR_valueChanged (ui->sbTR->value()); ui->cbAutoSeq->setChecked(true); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); @@ -5851,16 +5848,9 @@ void MainWindow::on_actionFST240W_triggered() setup_status_bar (bVHF); m_nSubMode=0; ui->sbSubmode->setValue(m_nSubMode); - m_TRperiod = ui->sbTR_FST240W->value (); ui->band_hopping_group_box->setChecked(false); ui->band_hopping_group_box->setVisible(false); - int ntr=m_TRperiod; - ui->sbTR_FST240W->setMinimum(15); - ui->sbTR_FST240W->setMaximum(300); - ui->sbTR_FST240W->setValue(120); //### Why is all this necessary? ### - ui->sbTR_FST240W->setValue(300); - ui->sbTR_FST240W->setValue(ntr); - m_TRperiod = ui->sbTR_FST240W->value(); + on_sbTR_FST240W_valueChanged (ui->sbTR_FST240W->value ()); ui->sbSubmode->setMaximum(3); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); @@ -6089,18 +6079,22 @@ void MainWindow::on_actionJT9_triggered() } ui->sbSubmode->setMaximum(7); if(m_bFast9) { - m_TRperiod = ui->sbTR->value (); + ui->sbTR->values ({5, 10, 15, 30}); + on_sbTR_valueChanged (ui->sbTR->value()); m_wideGraph->hide(); m_fastGraph->showNormal(); ui->TxFreqSpinBox->setValue(700); ui->RxFreqSpinBox->setValue(700); - ui->decodedTextLabel->setText("UTC dB T Freq " + tr ("Message")); - ui->decodedTextLabel2->setText("UTC dB T Freq " + tr ("Message")); + ui->decodedTextLabel->setText(" UTC dB T Freq " + tr ("Message")); + ui->decodedTextLabel2->setText(" UTC dB T Freq " + tr ("Message")); } else { ui->cbAutoSeq->setChecked(false); - m_TRperiod=60.0; - ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message")); - ui->decodedTextLabel2->setText("UTC dB DT Freq " + tr ("Message")); + if (m_mode != "FST240") + { + m_TRperiod=60.0; + ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message")); + ui->decodedTextLabel2->setText("UTC dB DT Freq " + tr ("Message")); + } } m_wideGraph->setPeriod(m_TRperiod,m_nsps); m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe @@ -6240,7 +6234,8 @@ void MainWindow::on_actionISCAT_triggered() m_mode="ISCAT"; m_modeTx="ISCAT"; ui->actionISCAT->setChecked(true); - m_TRperiod = ui->sbTR->value (); + ui->sbTR->values ({5, 10, 15, 30}); + on_sbTR_valueChanged (ui->sbTR->value ()); m_modulator->setTRPeriod(m_TRperiod); m_detector->setTRPeriod(m_TRperiod); m_wideGraph->setPeriod(m_TRperiod,m_nsps); @@ -6307,7 +6302,8 @@ void MainWindow::on_actionMSK144_triggered() VHF_features_enabled(true); m_bFastMode=true; m_bFast9=false; - m_TRperiod = ui->sbTR->value (); + ui->sbTR->values ({5, 10, 15, 30}); + on_sbTR_valueChanged (ui->sbTR->value()); m_wideGraph->hide(); m_fastGraph->showNormal(); ui->TxFreqSpinBox->setValue(1500); @@ -6315,8 +6311,8 @@ void MainWindow::on_actionMSK144_triggered() ui->RxFreqSpinBox->setMinimum(1400); ui->RxFreqSpinBox->setMaximum(1600); ui->RxFreqSpinBox->setSingleStep(10); - ui->decodedTextLabel->setText("UTC dB T Freq " + tr ("Message")); - ui->decodedTextLabel2->setText("UTC dB T Freq " + tr ("Message")); + ui->decodedTextLabel->setText(" UTC dB T Freq " + tr ("Message")); + ui->decodedTextLabel2->setText(" UTC dB T Freq " + tr ("Message")); m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe m_fastGraph->setTRPeriod(m_TRperiod); @@ -6411,7 +6407,8 @@ void MainWindow::on_actionFreqCal_triggered() ui->actionFreqCal->setChecked(true); switch_mode(Modes::FreqCal); m_wideGraph->setMode(m_mode); - m_TRperiod = ui->sbTR->value (); + ui->sbTR->values ({5, 10, 15, 30}); + on_sbTR_valueChanged (ui->sbTR->value()); m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe m_nsps=6912; //For symspec only @@ -6486,10 +6483,10 @@ void MainWindow::WSPR_config(bool b) Q_EMIT m_config.transceiver_tx_frequency (0); // turn off split } m_bSimplex = true; - } else { - ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message")); - m_bSimplex = false; - } + } else + { + m_bSimplex = false; + } enable_DXCC_entity (m_config.DXCC ()); // sets text window proportions and (re)inits the logbook } @@ -7420,6 +7417,25 @@ void MainWindow::on_sbTR_valueChanged(int value) // if(!m_bFastMode and n>m_nSubMode) m_MinW=m_nSubMode; if(m_bFastMode or m_mode=="FreqCal" or m_mode=="FST240" or m_mode=="FST240W") { m_TRperiod = value; + if (m_mode == "FST240" || m_mode == "FST240W") + { + if (m_TRperiod < 60) + { + ui->decodedTextLabel->setText(" UTC dB DT Freq " + tr ("Message")); + if (m_mode != "FST240W") + { + ui->decodedTextLabel2->setText(" UTC dB DT Freq " + tr ("Message")); + } + } + else + { + ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message")); + if (m_mode != "FST240W") + { + ui->decodedTextLabel2->setText("UTC dB DT Freq " + tr ("Message")); + } + } + } m_fastGraph->setTRPeriod (value); m_modulator->setTRPeriod (value); // TODO - not thread safe m_detector->setTRPeriod (value); // TODO - not thread safe @@ -7716,7 +7732,7 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout if(m_nWSPRdecodes==0 and ui->band_hopping_group_box->isChecked()) { t = " " + tr ("Receiving") + " " + m_mode + " ----------------------- " + m_config.bands ()->find (m_dialFreqRxWSPR); - t=WSPR_hhmm(-60) + ' ' + t.rightJustified (66, '-'); + t=beacon_start_time (-m_TRperiod / 2) + ' ' + t.rightJustified (66, '-'); ui->decodedTextBrowser->appendText(t); } killFileTimer.start (45*1000); //Kill in 45s (for slow modes) @@ -7803,20 +7819,23 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout } } -QString MainWindow::WSPR_hhmm(int n) +QString MainWindow::beacon_start_time (int n) { - QDateTime t=QDateTime::currentDateTimeUtc().addSecs(n); - int m=t.toString("hhmm").toInt()/2; - QString t1; - t1 = t1.asprintf("%04d",2*m); - return t1; + auto time = QDateTime::currentDateTimeUtc ().addSecs (n).time (); + auto rounded_time = (int ((time.hour () * 10000 + time.minute () * 100 + time.second ()) * 60 / m_TRperiod) * int (m_TRperiod)) / 60; + auto result = QString::number (rounded_time).rightJustified (6, QLatin1Char {'0'}); + if (m_TRperiod < 60) + { + return result; + } + return result.left (4); } void MainWindow::WSPR_history(Frequency dialFreq, int ndecodes) { QDateTime t=QDateTime::currentDateTimeUtc().addSecs(-60); QString t1=t.toString("yyMMdd"); - QString t2=WSPR_hhmm(-60); + QString t2=beacon_start_time (-m_TRperiod / 2); QString t3; t3 = t3.asprintf("%13.6f",0.000001*dialFreq); if(ndecodes<0) { diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 070fbbae5..3653cfd5c 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -728,7 +728,7 @@ private: void freqCalStep(); void setRig (Frequency = 0); // zero frequency means no change void WSPR_history(Frequency dialFreq, int ndecodes); - QString WSPR_hhmm(int n); + QString beacon_start_time (int n = 0); QString WSPR_message(); void fast_config(bool b); void CQTxFreq(); From bcff9490259cc4b0bdaf2d61da6116b498958fa5 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 13 Jul 2020 00:55:42 +0100 Subject: [PATCH 245/520] Update some missing i18n strings --- CMakeLists.txt | 2 + EqualizationToolsDialog.cpp | 2 +- Network/NetworkAccessManager.hpp | 56 +- SampleDownloader.cpp | 4 +- Transceiver/HamlibTransceiver.cpp | 2 +- models/IARURegions.cpp | 10 +- translations/wsjtx_ca.ts | 703 +++++++++++++--------- translations/wsjtx_da.ts | 674 ++++++++++++--------- translations/wsjtx_en.ts | 670 ++++++++++++--------- translations/wsjtx_en_GB.ts | 670 ++++++++++++--------- translations/wsjtx_es.ts | 939 +++++++++++++++++------------- translations/wsjtx_it.ts | 674 ++++++++++++--------- translations/wsjtx_ja.ts | 891 ++++++++++++++++------------ translations/wsjtx_zh.ts | 679 ++++++++++++--------- translations/wsjtx_zh_HK.ts | 681 +++++++++++++--------- 15 files changed, 3921 insertions(+), 2736 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b7b1c82f5..0a03bc409 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -289,6 +289,7 @@ set (wsjt_qt_CXXSRCS logbook/AD1CCty.cpp logbook/WorkedBefore.cpp logbook/Multiplier.cpp + Network/NetworkAccessManager.cpp ) set (wsjt_qtmm_CXXSRCS @@ -1138,6 +1139,7 @@ if (UPDATE_TRANSLATIONS) qt5_create_translation ( QM_FILES ${wsjt_qt_UISRCS} ${wsjtx_UISRCS} ${wsjt_qt_CXXSRCS} ${wsjtx_CXXSRCS} ${TS_FILES} + OPTIONS -I${CMAKE_CURRENT_SOURCE_DIR} ) else () qt5_add_translation (QM_FILES ${TS_FILES}) diff --git a/EqualizationToolsDialog.cpp b/EqualizationToolsDialog.cpp index 2d96fce56..4f5196200 100644 --- a/EqualizationToolsDialog.cpp +++ b/EqualizationToolsDialog.cpp @@ -292,7 +292,7 @@ EqualizationToolsDialog::impl::impl (EqualizationToolsDialog * self | QDialogButtonBox::RestoreDefaults | QDialogButtonBox::Close , Qt::Vertical} { - setWindowTitle (windowTitle () + ' ' + tr (title)); + setWindowTitle (windowTitle () + ' ' + tr ("Equalization Tools")); resize (500, 600); { SettingsGroup g {settings_, title}; diff --git a/Network/NetworkAccessManager.hpp b/Network/NetworkAccessManager.hpp index 1d1b79bce..d68ad2153 100644 --- a/Network/NetworkAccessManager.hpp +++ b/Network/NetworkAccessManager.hpp @@ -4,8 +4,6 @@ #include #include #include -#include -#include #include "widgets/MessageBox.hpp" @@ -18,58 +16,18 @@ class QWidget; class NetworkAccessManager : public QNetworkAccessManager { + Q_OBJECT + public: - NetworkAccessManager (QWidget * parent) - : QNetworkAccessManager (parent) - { - // handle SSL errors that have not been cached as allowed - // exceptions and offer them to the user to add to the ignored - // exception cache - connect (this, &QNetworkAccessManager::sslErrors, [this, &parent] (QNetworkReply * reply, QList const& errors) { - QString message; - QList new_errors; - for (auto const& error: errors) - { - if (!allowed_ssl_errors_.contains (error)) - { - new_errors << error; - message += '\n' + reply->request ().url ().toDisplayString () + ": " - + error.errorString (); - } - } - if (new_errors.size ()) - { - QString certs; - for (auto const& cert : reply->sslConfiguration ().peerCertificateChain ()) - { - certs += cert.toText () + '\n'; - } - if (MessageBox::Ignore == MessageBox::query_message (parent, tr ("Network SSL Errors"), message, certs, MessageBox::Abort | MessageBox::Ignore)) - { - // accumulate new SSL error exceptions that have been allowed - allowed_ssl_errors_.append (new_errors); - reply->ignoreSslErrors (allowed_ssl_errors_); - } - } - else - { - // no new exceptions so silently ignore the ones already allowed - reply->ignoreSslErrors (allowed_ssl_errors_); - } - }); - } + explicit NetworkAccessManager (QWidget * parent); protected: - QNetworkReply * createRequest (Operation operation, QNetworkRequest const& request, QIODevice * outgoing_data = nullptr) override - { - auto reply = QNetworkAccessManager::createRequest (operation, request, outgoing_data); - // errors are usually certificate specific so passing all cached - // exceptions here is ok - reply->ignoreSslErrors (allowed_ssl_errors_); - return reply; - } + QNetworkReply * createRequest (Operation, QNetworkRequest const&, QIODevice * = nullptr) override; private: + void filter_SSL_errors (QNetworkReply * reply, QList const& errors); + + QWidget * parent_widget_; QList allowed_ssl_errors_; }; diff --git a/SampleDownloader.cpp b/SampleDownloader.cpp index 5902e7dcd..a6f5174f6 100644 --- a/SampleDownloader.cpp +++ b/SampleDownloader.cpp @@ -88,7 +88,7 @@ SampleDownloader::impl::impl (QSettings * settings , directory_ {configuration, network_manager} , button_box_ {QDialogButtonBox::Close, Qt::Vertical} { - setWindowTitle (windowTitle () + ' ' + tr (title)); + setWindowTitle (windowTitle () + ' ' + tr ("Download Samples")); resize (500, 600); { SettingsGroup g {settings_, title}; @@ -111,7 +111,7 @@ SampleDownloader::impl::impl (QSettings * settings details_layout_.setMargin (0); details_layout_.addRow (tr ("Base URL for samples:"), &url_line_edit_); details_layout_.addRow (tr ("Only use HTTP:"), &http_only_check_box_); - http_only_check_box_.setToolTip (tr ("Check this is you get SSL/TLS errors")); + http_only_check_box_.setToolTip (tr ("Check this if you get SSL/TLS errors")); details_widget_.setLayout (&details_layout_); main_layout_.addLayout (&left_layout_, 0, 0); diff --git a/Transceiver/HamlibTransceiver.cpp b/Transceiver/HamlibTransceiver.cpp index ef591dd8e..3923f4c5d 100644 --- a/Transceiver/HamlibTransceiver.cpp +++ b/Transceiver/HamlibTransceiver.cpp @@ -684,7 +684,7 @@ void HamlibTransceiver::do_stop () TRACE_CAT ("HamlibTransceiver", "state:" << state () << "reversed =" << reversed_); } -auto HamlibTransceiver::get_vfos (bool for_split) const -> std::tuple +std::tuple HamlibTransceiver::get_vfos (bool for_split) const { if (get_vfo_works_ && rig_->caps->get_vfo) { diff --git a/models/IARURegions.cpp b/models/IARURegions.cpp index dcdc94d43..0d3e42a1a 100644 --- a/models/IARURegions.cpp +++ b/models/IARURegions.cpp @@ -12,10 +12,10 @@ namespace // human readable strings for each Region enumeration value char const * const region_names[] = { - "All", - "Region 1", - "Region 2", - "Region 3", + QT_TRANSLATE_NOOP ("IARURegions", "All"), + QT_TRANSLATE_NOOP ("IARURegions", "Region 1"), + QT_TRANSLATE_NOOP ("IARURegions", "Region 2"), + QT_TRANSLATE_NOOP ("IARURegions", "Region 3"), }; std::size_t constexpr region_names_size = sizeof (region_names) / sizeof (region_names[0]); } @@ -34,7 +34,7 @@ char const * IARURegions::name (Region r) return region_names[static_cast (r)]; } -auto IARURegions::value (QString const& s) -> Region +IARURegions::Region IARURegions::value (QString const& s) { auto end = region_names + region_names_size; auto p = std::find_if (region_names, end diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index 4eeac9ee7..59ba4e7e0 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -139,17 +139,17 @@ Dades astronòmiques - + Doppler Tracking Error Error de Seguiment de Doppler - + Split operating is required for Doppler tracking L’Split és necessàri per al seguiment de Doppler - + Go to "Menu->File->Settings->Radio" to enable split operation Vés a "Menú-> Arxiu-> Configuració-> Ràdio" per habilitar l'operació dividida @@ -994,7 +994,7 @@ Error: %2 - %3 DisplayText - + &Erase &Esborrar @@ -1078,6 +1078,11 @@ Error: %2 - %3 EqualizationToolsDialog::impl + + + Equalization Tools + + Phase @@ -1282,12 +1287,12 @@ Error: %2 - %3 Log Cabrillo (*.cbr) - + Cannot open "%1" for writing: %2 No es pot obrir "%1" per escriure: %2 - + Export Cabrillo File Error Error al exportar l'arxiu Cabrillo @@ -1487,86 +1492,86 @@ Error: %2 - %3 HRDTransceiver - - + + Failed to connect to Ham Radio Deluxe No s'ha pogut connectar amb el Ham Radio Deluxe - + Failed to open file "%1": %2. Error a l'obrir l'arxiu "%1": %2. - - + + Ham Radio Deluxe: no rig found Ham Radio Deluxe: no s'ha trobat cap equip - + Ham Radio Deluxe: rig doesn't support mode Ham Radio Deluxe: l'equip no admet el mode - + Ham Radio Deluxe: sent an unrecognised mode Ham Radio Deluxe: ha enviat un mode desconegut - + Ham Radio Deluxe: item not found in %1 dropdown list Ham Radio Deluxe: element no trobat %1 a la llista desplegable - + Ham Radio Deluxe: button not available Ham Radio Deluxe: botó no disponible - + Ham Radio Deluxe didn't respond as expected La resposta del Ham Radio Deluxe no és l'esperada - + Ham Radio Deluxe: rig has disappeared or changed Ham Radio Deluxe: l'equip ha desaparegut o s'ha modificat - + Ham Radio Deluxe send command "%1" failed %2 La instrucció %1 del Ham Radio Deluxe ha fallat %2 - - + + Ham Radio Deluxe: failed to write command "%1" Ham Radio Deluxe: error a l'escriure la instrucció "%1" - + Ham Radio Deluxe sent an invalid reply to our command "%1" La resposta del Ham Radio Deluxe no és vàlida per a la instrucció "%1" - + Ham Radio Deluxe failed to reply to command "%1" %2 Fallada a la resposta del Ham Radio Deluxe a la instrucció "%1" %2 - + Ham Radio Deluxe retries exhausted sending command "%1" El Ham Radio Deluxe ha esgotat els reintents de la instrucció "%1" - + Ham Radio Deluxe didn't respond to command "%1" as expected La resposta del Ham Radio Deluxe a la instrucció "%1" no és l'esperada @@ -1574,178 +1579,180 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error Error d'inicialització de Hamlib - + Hamlib settings file error: %1 at character offset %2 Error de l'arxiu de configuració de Hamlib: %1 en el desplaçament de caràcters %2 - + Hamlib settings file error: top level must be a JSON object Error de l'arxiu de configuració de Hamlib: el nivell superior ha de ser un objecte JSON - + Hamlib settings file error: config must be a JSON object Error de l'arxiu de configuració de Hamlib: config ha de ser un objecte JSON - + Unsupported CAT type Tipus CAT no admès - + Hamlib error: %1 while %2 Error de Hamlib: %1 mentre %2 - + opening connection to rig connexió d'obertura a l'equip - + getting current frequency obtenir la freqüència actual - + getting current mode obtenir el mode actual - - + + exchanging VFOs intercanviant VFOs - - + + getting other VFO frequency obtenint una altra freqüència de VFO - + getting other VFO mode obtenint un altre mode VFO - + + setting current VFO ajustar el VFO actual - + getting frequency obtenint la freqüència - + getting mode obtenint el mode - - + + + getting current VFO obtenir VFO actual - - - - + + + + getting current VFO frequency obtenir la freqüència actual del VFO - - - - - - + + + + + + setting frequency ajust de freqüència - - - - + + + + getting current VFO mode obtenir el mode VFO actual - - - - - + + + + + setting current VFO mode ajust del mode VFO actual - - + + setting/unsetting split mode ajustar/desajustar mode dividid (split) - - + + setting split mode ajustar mode dividid (Split) - + setting split TX frequency and mode ajust de freqüència i mode de transmissió dividida (Split) - + setting split TX frequency ajust de freqüència dividida (Split) en TX - + getting split TX VFO mode obtenir el mode dividit (Split) en TX del VFO - + setting split TX VFO mode ajustar del mode dividid (Split) en TX del VFO - + getting PTT state obtenir l'estat del PTT - + setting PTT on activant el PTT - + setting PTT off desactivant el PTT - + setting a configuration item establir un element de configuració - + getting a configuration item obtenir un element de configuració @@ -1770,6 +1777,26 @@ Error: %2 - %3 IARURegions + + + All + + + + + Region 1 + + + + + Region 2 + + + + + Region 3 + + @@ -1790,110 +1817,206 @@ Error: %2 - %3 Indicatiu - + Start Inici - - + + dd/MM/yyyy HH:mm:ss dd/MM/yyyy HH:mm:ss - + End Final - + Mode Mode - + Band Banda - + Rpt Sent Senyal Env - + Rpt Rcvd Senyal Rev - + Grid Locator - + Name Nom - + Tx power Potència de TX - - + + + Retain Mantenir - + Comments Comentaris - + Operator Operador - + Exch sent Intercanvi enviat - + Rcvd Rebut - - + + Prop Mode + + + + + Aircraft scatter + + + + + Aurora-E + + + + + Aurora + + + + + Back scatter + + + + + Echolink + + + + + Earth-moon-earth + + + + + Sporadic E + + + + + F2 Reflection + + + + + Field aligned irregularities + + + + + Internet-assisted + + + + + Ionoscatter + + + + + IRLP + + + + + Meteor scatter + + + + + Non-satellite repeater or transponder + + + + + Rain scatter + + + + + Satellite + + + + + Trans-equatorial + + + + + Troposheric ducting + + + + + Invalid QSO Data Les dades de QSO no són vàlides - + Check exchange sent and received Comprovació de l’intercanvi enviat i rebut - + Check all fields Comprova tots els camps - + Log file error Error a l'arxiu de log - + Cannot open "%1" for append No es pot obrir "%1" per afegir - + Error: %1 Error: %1 @@ -1901,35 +2024,35 @@ Error: %2 - %3 LotWUsers::impl - + Network Error - SSL/TLS support not installed, cannot fetch: '%1' Error de xarxa - no s’instal·la el suport SSL/TLS, no es pot obtenir: '%1' - + Network Error - Too many redirects: '%1' Error de xarxa - hi ha massa redireccions: '%1' - + Network Error: %1 Error de xarxa: %1 - + File System Error - Cannot commit changes to: "%1" Error de sistema d'arxius: no es poden confirmar els canvis a: "%1" - + File System Error - Cannot open file: "%1" Error(%2): %3 @@ -1938,7 +2061,7 @@ Error(%2): %3 Error(%2): %3 - + File System Error - Cannot write to file: "%1" Error(%2): %3 @@ -1956,12 +2079,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity Activitat a la banda @@ -1973,11 +2096,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency Freqüència de RX @@ -2439,7 +2562,7 @@ No està disponible per als titulars de indicatiu no estàndard. - + Fox Fox @@ -3293,7 +3416,7 @@ La llista es pot mantenir a la configuració (F2). - + Runaway Tx watchdog Seguretat de TX @@ -3564,198 +3687,198 @@ La llista es pot mantenir a la configuració (F2). FT4 - + Rig Control Error Error del control del equip - - - + + + Receiving Rebent - + Do you want to reconfigure the radio interface? Vols reconfigurar la interfície de la ràdio ? - + Error Scanning ADIF Log Error d'escaneig del log ADIF - + Scanned ADIF log, %1 worked before records created Log ADIF escanejat, %1 funcionava abans de la creació de registres - + Error Loading LotW Users Data S'ha produït un error al carregar les dades dels usuaris de LotW - + Error Writing WAV File S'ha produït un error al escriure l'arxiu WAV - + Configurations... Configuracions... - - - - - - - - + + + + + - - - - - - - + + + + + + + + + + Message Missatge - + Error Killing jt9.exe Process Error en matar el procés jt9.exe - + KillByName return code: %1 Codi de retorn de KillByName: %1 - + Error removing "%1" Error en eliminar "%1" - + Click OK to retry Fes clic a D'acord per tornar-ho a provar - - + + Improper mode Mode inadequat - - + + File Open Error Error al obrir l'arxiu - - - - - + + + + + Cannot open "%1" for append: %2 No es pot obrir "%1" per annexar: %2 - + Error saving c2 file Error en desar l'arxiu c2 - + Error in Sound Input Error a la entrada de so - + Error in Sound Output Error en la sortida de so - - - + + + Single-Period Decodes Descodificacions d'un sol període - - - + + + Average Decodes Mitjans descodificats - + Change Operator Canvi d'Operador - + New operator: Operador Nou: - + Status File Error Error d'estat de l'arxiu - - + + Cannot open "%1" for writing: %2 No es pot obrir "%1" per escriure: %2 - + Subprocess Error Error de subprocés - + Subprocess failed with exit code %1 Ha fallat el subprocés amb el codi de sortida %1 - - + + Running: %1 %2 Corrent: %1 %2 - + Subprocess error Error de subprocés - + Reference spectrum saved Guarda l'espectre de referència - + Invalid data in fmt.all at line %1 Les dades no són vàlides a fmt.all a la línia %1 - + Good Calibration Solution Solució de bona calibració - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3768,17 +3891,17 @@ La llista es pot mantenir a la configuració (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Suprimeix les mesures de calibració - + The "fmt.all" file will be renamed as "fmt.bak" L'arxiu "fmt.all" serà renombrat com a "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3786,62 +3909,62 @@ La llista es pot mantenir a la configuració (F2). "Els algoritmes, codi font, aspecte de WSJT-X i programes relacionats i les especificacions de protocol per als modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 són Copyright (C) 2001-2020 per un o més dels següents autors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q i altres membres del grup de desenvolupament de WSJT. " - + No data read from disk. Wrong file format? No es llegeixen dades del disc. Format de l'arxiu incorrecte ? - + Confirm Delete Confirma Esborrar - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Estàs segur que vols esborrar tots els arxius *.wav i *.c2"%1" ? - + Keyboard Shortcuts Dreceres de teclat - + Special Mouse Commands Ordres especials del ratolí - + No more files to open. No s’obriran més arxius. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Tria una altra freqüència de TX. El WSJT-X no transmetrà de manera conscient un altre mode a la sub-banda WSPR a 30 m. - + WSPR Guard Band Banda de Guàrdia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Tria una altra freqüència de treball. WSJT-X no funcionarà en mode Fox a les sub-bandes FT8 estàndard. - + Fox Mode warning Avís de mode Fox - + Last Tx: %1 Últim TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3852,183 +3975,183 @@ Per fer-ho, comprova "Activitat operativa especial" i Concurs EU VHF a la Configuració | Pestanya avançada. - + Should you switch to ARRL Field Day mode? Has de canviar al mode de Field Day de l'ARRL ? - + Should you switch to RTTY contest mode? Has de canviar al mode de concurs RTTY? - - - - + + + + Add to CALL3.TXT Afegeix a CALL3.TXT - + Please enter a valid grid locator Introduïu un locator vàlid - + Cannot open "%1" for read/write: %2 No es pot obrir "%1" per llegir o escriure: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 ja és a CALL3.TXT, vols substituir-lo ? - + Warning: DX Call field is empty. Avís: el camp de indicatiu DX està buit. - + Log file error Error a l'arxiu de log - + Cannot open "%1" No es pot obrir "%1" - + Error sending log to N1MM Error al enviar el log a N1MM - + Write returned "%1" Escriptura retornada "%1" - + Stations calling DXpedition %1 Estacions que criden a DXpedition %1 - + Hound Hound - + Tx Messages Missatges de TX - - - + + + Confirm Erase Confirma Esborrar - + Are you sure you want to erase file ALL.TXT? Estàs segur que vols esborrar l'arxiu ALL.TXT ? - - + + Confirm Reset Confirma que vols Restablir - + Are you sure you want to erase your contest log? Estàs segur que vols esborrar el log del concurs ? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Si fas això, suprimiràs tots els registres de QSO del concurs actual. Es conservaran a l'arxiu de log ADIF, però no es podran exportar al log de Cabrillo. - + Cabrillo Log saved Log Cabrillo desat - + Are you sure you want to erase file wsjtx_log.adi? Estàs segur que vols esborrar l'arxiu wsjtx_log.adi ? - + Are you sure you want to erase the WSPR hashtable? Estàs segur que vols esborrar la taula del WSPR ? - + VHF features warning Les característiques de VHF tenen un avís - + Tune digital gain Guany de sintonització digital - + Transmit digital gain Guany digital de transmissió - + Prefixes Prefixos - + Network Error Error de xarxa - + Error: %1 UDP server %2:%3 Error: %1 UDP server %2:%3 - + File Error Error a l'arxiu - + Phase Training Disabled Entrenament de fase Desactivat - + Phase Training Enabled Entrenament de fase activat - + WD:%1m WD:%1m - - + + Log File Error Error a l'arxiu de log - + Are you sure you want to clear the QSO queues? Estàs segur que vols esborrar les cues de QSO ? @@ -4145,6 +4268,14 @@ UDP server %2:%3 &Nou nom: + + NetworkAccessManager + + + Network SSL/TLS Errors + + + OmniRigTransceiver @@ -4186,9 +4317,8 @@ UDP server %2:%3 QObject - Invalid rig name - \ & / not allowed - Nom d'equip no vàlid: \ & / no permès + Nom d'equip no vàlid: \ & / no permès @@ -4196,7 +4326,7 @@ UDP server %2:%3 Definit per l'usuari - + Failed to open LotW users CSV file: '%1' No s'ha pogut obrir l'arxiu CSV dels usuaris de LotW: '%1' @@ -4231,7 +4361,7 @@ UDP server %2:%3 Error obrint l'arxiu de paleta de la cascada "%1": %2. - + Error writing waterfall palette file "%1": %2. Error d'escriptura de l'arxiu de paleta de la cascada "%1": %2. @@ -4241,10 +4371,10 @@ UDP server %2:%3 - - - - + + + + File System Error Error d'arxiu de sistema @@ -4267,31 +4397,31 @@ Error (%3): %4 "%1" - - - + + + Network Error Error de xarxa - + Too many redirects: %1 Massa redireccionaments: %1 - + Redirect not followed: %1 No s'ha seguit la redirecció: %1 - + Cannot commit changes to: "%1" No es poden fer canvis a: "%1" - + Cannot open file: "%1" Error(%2): %3 @@ -4300,14 +4430,14 @@ Error(%2): %3 Error (%2): %3 - + Cannot make path: "%1" No es pot crear el directori: "%1" - + Cannot write to file: "%1" Error(%2): %3 @@ -4319,6 +4449,7 @@ Error(%2): %3 SampleDownloader::impl + Download Samples Descarrega mostres @@ -4350,7 +4481,7 @@ Error(%2): %3 - Check this is you get SSL/TLS errors + Check this if you get SSL/TLS errors @@ -4737,8 +4868,8 @@ Error(%2): %3 Gràfic Ampli - - + + Read Palette Llegiu Paleta @@ -6235,115 +6366,105 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. main - - + + Fatal error Error fatal - - + + Unexpected fatal error Error fatal inesperat - Where <rig-name> is for multi-instance support. - On <rig-name> és per a suport de múltiples instàncies. + On <rig-name> és per a suport de múltiples instàncies. - rig-name - nom de l'equip + nom de l'equip - Where <configuration> is an existing one. - On <configuration> és ja existent. + On <configuration> és ja existent. - configuration - configuració + configuració - Where <language> is <lang-code>[-<country-code>]. - On <language> és <lang-code>[-<country-code>]. + On <language> és <lang-code>[-<country-code>]. - language - Idioma + Idioma - Writable files in test location. Use with caution, for testing only. - Arxius amb permis d'escriptura a la ubicació de proves. Utilitzar amb precaució, només per a proves. + Arxius amb permis d'escriptura a la ubicació de proves. Utilitzar amb precaució, només per a proves. - Command line error - Error de línia de comandament + Error de línia de comandament - Command line help - Ajuda de la línia de comandaments + Ajuda de la línia de comandaments - Application version - Versió d’aplicació + Versió d’aplicació - + Another instance may be running Una altra instància pot ser que s'estigui executant - + try to remove stale lock file? intenteu eliminar l'arxiu de bloqueig no realitzat? - + Failed to create a temporary directory No s'ha pogut crear el directori temporal - - + + Path: "%1" Ruta: "%1" - + Failed to create a usable temporary directory No s'ha pogut crear un directori temporal utilitzable - + Another application may be locking the directory Una altra aplicació pot ser que bloquegi del directori - + Failed to create data directory No s'ha pogut crear el directori de dades - + path: "%1" Ruta: "%1" - + Shared memory error Error de memòria compartida - + Unable to create shared memory segment No es pot crear el segment de memòria compartida diff --git a/translations/wsjtx_da.ts b/translations/wsjtx_da.ts index 3b49b96ca..008f96223 100644 --- a/translations/wsjtx_da.ts +++ b/translations/wsjtx_da.ts @@ -130,17 +130,17 @@ Astronomiske Data - + Doppler Tracking Error Doppler Tracking Error - + Split operating is required for Doppler tracking For Doppler tracking kræves Split Mode - + Go to "Menu->File->Settings->Radio" to enable split operation Gå til "Menu->Fil->Indstillinger->Radio for at aktivere Split Mode @@ -985,7 +985,7 @@ Error: %2 - %3 DisplayText - + &Erase &Slet @@ -1069,6 +1069,11 @@ Error: %2 - %3 EqualizationToolsDialog::impl + + + Equalization Tools + + Phase @@ -1273,12 +1278,12 @@ Error: %2 - %3 Cabrillo Log (*.cbr) - + Cannot open "%1" for writing: %2 Kan ikke åbne "%1" for for at skrive til: %2 - + Export Cabrillo File Error Eksport Cabrillo Fil Fejl @@ -1478,86 +1483,86 @@ Error: %2 - %3 HRDTransceiver - - + + Failed to connect to Ham Radio Deluxe Fejl i kommunikation med HRD - + Failed to open file "%1": %2. Kan ikke åbne fil "%1": %2. - - + + Ham Radio Deluxe: no rig found Ham Radio Deluxe: Ingen radio fundet - + Ham Radio Deluxe: rig doesn't support mode Ham Radio Deluxe: Radioen understøtter ikke denne mode - + Ham Radio Deluxe: sent an unrecognised mode Ham Radio Deluxe: Har sendt en ikke genkendt mode - + Ham Radio Deluxe: item not found in %1 dropdown list Ham Radio Deluxe: Enheden ikke fundet i %1 på listen - + Ham Radio Deluxe: button not available Ham Radio Deluxe: Knap ikke tilgængelig - + Ham Radio Deluxe didn't respond as expected Ham Radio Deluxe svarede ikke som forventet - + Ham Radio Deluxe: rig has disappeared or changed Ham Radio Deluxe: Radio er forsvundet eller er ændret - + Ham Radio Deluxe send command "%1" failed %2 Ham Radio Deluxe sendte kommando "%1" fejl %2 - - + + Ham Radio Deluxe: failed to write command "%1" Ham Radio Deluxe: Fejl ved skrivning af kommando "%1" - + Ham Radio Deluxe sent an invalid reply to our command "%1" Ham Radio Deluxe sendte en forkert svar på kommando "%1" - + Ham Radio Deluxe failed to reply to command "%1" %2 Ham Radio Deluxe fejl ved svar på kommando "%1" %2 - + Ham Radio Deluxe retries exhausted sending command "%1" Ham Radio Deluxe ikke flere forsøg for afsendelse af kommando "%1" - + Ham Radio Deluxe didn't respond to command "%1" as expected Ham Radio Deluxe svarede ikke på kommando "%1" som forventet @@ -1565,178 +1570,180 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error Hamlib initialiseringsfejl - + Hamlib settings file error: %1 at character offset %2 Hamlib fejl i ved indstillings fil : %1 ved karakter offset %2 - + Hamlib settings file error: top level must be a JSON object Hamlib indstillings fil fejl: Top niveau skal være et JSON objekt - + Hamlib settings file error: config must be a JSON object Hamlib indstillings fil fejl: konfiguration skal være et JSON objekt - + Unsupported CAT type Ikke under støttet CAT type - + Hamlib error: %1 while %2 Hamlib fejl: %1 med %2 - + opening connection to rig Åbner forbindelse til radio - + getting current frequency Henter nuværende frekvens - + getting current mode Henter nuværende mode - - + + exchanging VFOs Skifter VFOer - - + + getting other VFO frequency Henter anden VFO - + getting other VFO mode Henter anden VFO Mode - + + setting current VFO Inderstiller nuværende VFO - + getting frequency Henter frekvens - + getting mode Henter mode - - + + + getting current VFO Henter nuværende VFO - - - - + + + + getting current VFO frequency Henter nuværende VFO frekvens - - - - - - + + + + + + setting frequency Indstiller frekvens - - - - + + + + getting current VFO mode Henter nuværende VFO mode - - - - - + + + + + setting current VFO mode Indstiller nuværende VFO mode - - + + setting/unsetting split mode Indstiller/Fjerner spilt mode - - + + setting split mode Indstiller split mode - + setting split TX frequency and mode Indstiller split TX frekvens og mode - + setting split TX frequency Indstiller split frekvens - + getting split TX VFO mode Henter split TX VFO mode - + setting split TX VFO mode Indstiller split TX VFO mode - + getting PTT state Henter PTT status - + setting PTT on Sætter PTT on - + setting PTT off Sætter PTT off - + setting a configuration item Indstilling af konfigurations element - + getting a configuration item Henter konfigirations element @@ -1761,6 +1768,26 @@ Error: %2 - %3 IARURegions + + + All + + + + + Region 1 + + + + + Region 2 + + + + + Region 3 + + @@ -1781,110 +1808,206 @@ Error: %2 - %3 Kaldesignal - + Start Start - - + + dd/MM/yyyy HH:mm:ss dd/MM/yyyy HH:mm:ss - + End Slut - + Mode Mode - + Band Bånd - + Rpt Sent Rpt sendt - + Rpt Rcvd RPT modtaget - + Grid Grid - + Name Navn - + Tx power TX power - - + + + Retain Behold - + Comments Kommentar - + Operator Operatør - + Exch sent Exch sendt - + Rcvd Modtaget - - + + Prop Mode + + + + + Aircraft scatter + + + + + Aurora-E + + + + + Aurora + + + + + Back scatter + + + + + Echolink + + + + + Earth-moon-earth + + + + + Sporadic E + + + + + F2 Reflection + + + + + Field aligned irregularities + + + + + Internet-assisted + + + + + Ionoscatter + + + + + IRLP + + + + + Meteor scatter + + + + + Non-satellite repeater or transponder + + + + + Rain scatter + + + + + Satellite + + + + + Trans-equatorial + + + + + Troposheric ducting + + + + + Invalid QSO Data Forkerte QSO Data - + Check exchange sent and received Kontroller Exch sendt og modtager - + Check all fields Kontroller alle felter - + Log file error Log fil fejl - + Cannot open "%1" for append Kan ikke åbne "%1" for tilføjelse - + Error: %1 Fejl: %1 @@ -1892,7 +2015,7 @@ Error: %2 - %3 LotWUsers::impl - + Network Error - SSL/TLS support not installed, cannot fetch: '%1' Netværksfejl - SSL / TLS-support ikke installeret, kan ikke hente: @@ -1903,7 +2026,7 @@ Error: %2 - %3 '%1' - + Network Error - Too many redirects: '%1' Netværksfejl - For mange omdirigeringer: @@ -1914,21 +2037,21 @@ Error: %2 - %3 '%1' - + Network Error: %1 Netværks Fejl: %1 - + File System Error - Cannot commit changes to: "%1" Fil system Fejl kan ikke tilføje ændinger til: "%1" - + File System Error - Cannot open file: "%1" Error(%2): %3 @@ -1937,7 +2060,7 @@ Error(%2): %3 Fejl(%2): %3 - + File System Error - Cannot write to file: "%1" Error(%2): %3 @@ -1955,12 +2078,12 @@ Fejl(%2): %3 - - - - - - + + + + + + Band Activity Bånd Aktivitet @@ -1972,11 +2095,11 @@ Fejl(%2): %3 - - - - - + + + + + Rx Frequency Rx frekvens @@ -2437,7 +2560,7 @@ Not available to nonstandard callsign holders. - + Fox Fox @@ -3292,7 +3415,7 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). - + Runaway Tx watchdog Runaway Tx vagthund @@ -3563,198 +3686,198 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). FT4 - + Rig Control Error Radio kontrol fejl - - - + + + Receiving Modtager - + Do you want to reconfigure the radio interface? Vil du rekonfigurere radio interface? - + Error Scanning ADIF Log Fejl ved scanning af Adif Log - + Scanned ADIF log, %1 worked before records created Scannet ADIF log, %1 worked B4 oprettede poster - + Error Loading LotW Users Data Fejl ved indlæsning af LotW bruger Data - + Error Writing WAV File Fejl ved skrivning af WAV Fil - + Configurations... Konfigurationer... - - - - - - - - + + + + + - - - - - - - + + + + + + + + + + Message Meddelse - + Error Killing jt9.exe Process Fejl ved lukning af jt9.exe processen - + KillByName return code: %1 KillByName return code: %1 - + Error removing "%1" Fejl ved fjernelse af "%1" - + Click OK to retry Klik OK for at prøve igen - - + + Improper mode Forkert mode - - + + File Open Error Fejl ved åbning af fil - - - - - + + + + + Cannot open "%1" for append: %2 Kan ikke åbne "%1" for at tilføje: %2 - + Error saving c2 file Fejl da c2 fil skulle gemmes - + Error in Sound Input Fejl i Audio input - + Error in Sound Output Fejl i Audio output - - - + + + Single-Period Decodes Enkel-Periode Dekodning - - - + + + Average Decodes Gennemsnitlig dekodning - + Change Operator Skift Operatør - + New operator: Ny Operatør: - + Status File Error Fejl i status Fil - - + + Cannot open "%1" for writing: %2 Kan ikke åbne "%1" for at skrive: %2 - + Subprocess Error Underprocess fejl - + Subprocess failed with exit code %1 Underprocess fejlede med fejlkode %1 - - + + Running: %1 %2 Kører: %1 %2 - + Subprocess error Underprocess fejl - + Reference spectrum saved Reference spectrum gemt - + Invalid data in fmt.all at line %1 Forkert data i fmt.all ved linje %1 - + Good Calibration Solution God Kalibrerings løsning - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3767,17 +3890,17 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Slet Kalibrerings måling - + The "fmt.all" file will be renamed as "fmt.bak" Filen fmt.all vil blive omdøbt til "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3785,62 +3908,62 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). "Algoritmerne, kildekoden, udseendet og funktionen af ​​WSJT-X og relaterede programmer og protokolspecifikationer for Mode FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 er Copyright (C) 2001-2020 af en eller flere af følgende forfattere: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; og andre medlemmer af WSJT Development Group. " - + No data read from disk. Wrong file format? Ingen data indlæst. Forkert fil format? - + Confirm Delete Bekræft sletning - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Er du sikker på du vil slette alle *.wav og *.c2 filer i "%1"? - + Keyboard Shortcuts Tastetur Genveje - + Special Mouse Commands Specielle muse kommandoer - + No more files to open. Ikke flere filer at åbne. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Venligst vælg en ande Tx frekvens. WSJT-X vil ikke sende med en anden Mode i WSPR området på 30m. - + WSPR Guard Band WSPR Guard bånd - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Vælg venligst en anden VFO frekvens. WSJT-x vil ikke operere med Fox mode i standard FT8 områder - + Fox Mode warning Fox Mode advarsel - + Last Tx: %1 Senest Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3851,183 +3974,183 @@ For at gøre dette skal du markere 'Speciel aktivitet' og 'EU VHF-Contest' på indstillingerne | Avanceret fane. - + Should you switch to ARRL Field Day mode? Bør du skifte til ARRL Field Day mode? - + Should you switch to RTTY contest mode? Bør du skifte til RTTY Contest mode? - - - - + + + + Add to CALL3.TXT Tilføj til CALL3.TXT - + Please enter a valid grid locator Indsæt en gyldig Grid lokator - + Cannot open "%1" for read/write: %2 Kan ikke åbne "%1" for Læse/Skrive: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 er allerede i CALL3.TXT. Vil du erstatte den? - + Warning: DX Call field is empty. Advarsel: DX Call feltet er tomt. - + Log file error Log fil fejl - + Cannot open "%1" Kan ikke åbne "%1" - + Error sending log to N1MM Fejl ved afsendelse af log til N1MM - + Write returned "%1" Skrivning vendte tilbage med "%1" - + Stations calling DXpedition %1 Stationer som kalder DXpedition %1 - + Hound Hound - + Tx Messages Tx meddelse - - - + + + Confirm Erase Bekræft Slet - + Are you sure you want to erase file ALL.TXT? Er du sikker på du vil slette filen ALL.TXT? - - + + Confirm Reset Bekræft Reset - + Are you sure you want to erase your contest log? Er du sikker på du vil slette din contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Gør du dette vil alle QSOer for pågældende contest blive slettet. De bliver dog gemt i en ADIF fik, men det vil ikke være muligt at eksportere dem som Cabrillo log. - + Cabrillo Log saved Cabrillo Log gemt - + Are you sure you want to erase file wsjtx_log.adi? Er du sikker på du vil slette filen wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? Er du sikker på du vil slette WSPR Hash tabellen? - + VHF features warning VHF feature advarsel - + Tune digital gain Tune digital gain - + Transmit digital gain Transmit digital gain - + Prefixes Prefixer - + Network Error Netværks Fejl - + Error: %1 UDP server %2:%3 Error: %1 UDP server %2:%3 - + File Error Fil fejl - + Phase Training Disabled Phase Training Deaktiveret - + Phase Training Enabled Phase Training Aktiveret - + WD:%1m WD:%1m - - + + Log File Error Log Fil Fejl - + Are you sure you want to clear the QSO queues? Er du sikker du vil slette QSO køen? @@ -4144,6 +4267,14 @@ UDP server %2:%3 &Nyt navn: + + NetworkAccessManager + + + Network SSL/TLS Errors + + + OmniRigTransceiver @@ -4190,7 +4321,7 @@ UDP server %2:%3 Bruger Defineret - + Failed to open LotW users CSV file: '%1' Fejl ved åbning af LoTW bruger CSV file:'%1' @@ -4225,7 +4356,7 @@ UDP server %2:%3 Fejl ved åbning af Vandfald palette fil "%1": %2. - + Error writing waterfall palette file "%1": %2. Fejl ved skrivning til Vandfald palette fil "%1":%2. @@ -4235,10 +4366,10 @@ UDP server %2:%3 - - - - + + + + File System Error Fil system Fejl @@ -4261,31 +4392,31 @@ Fejl(%3):%4 "%1" - - - + + + Network Error Netværks Fejl - + Too many redirects: %1 For mange omdirigeringer: %1 - + Redirect not followed: %1 Omdirigering ikke fulgt: %1 - + Cannot commit changes to: "%1" Kan ikke tilføje ændringer til: "%1" - + Cannot open file: "%1" Error(%2): %3 @@ -4294,14 +4425,14 @@ Error(%2): %3 Fejl(%2):%3 - + Cannot make path: "%1" Kan ikke lave sti: "%1" - + Cannot write to file: "%1" Error(%2): %3 @@ -4313,6 +4444,7 @@ Fejl(%2): %3 SampleDownloader::impl + Download Samples Downlad eksempler @@ -4344,8 +4476,12 @@ Fejl(%2): %3 + Check this if you get SSL/TLS errors + + + Check this is you get SSL/TLS errors - Marker denne hvis du får SSL/TLS fejl + Marker denne hvis du får SSL/TLS fejl @@ -4731,8 +4867,8 @@ Fejl(%2): %3 Wide Graf - - + + Read Palette Læs Palette @@ -6224,65 +6360,65 @@ Højre klik for at indsætte eller slette elementer. main - - + + Fatal error Fatal fejl - - + + Unexpected fatal error Uventet fatal fejl - + Another instance may be running En anden udgave af programmet kører måske - + try to remove stale lock file? forsøg at fjerne uaktuelle låste filer? - + Failed to create a temporary directory Fejl ved forsøg på at oprette midlertidig mappe - - + + Path: "%1" Sti: "%1" - + Failed to create a usable temporary directory Fejl i forsøg på at oprette brugbar midlertidig mappe - + Another application may be locking the directory En anden applikation spærrer måske mappen - + Failed to create data directory Kan ikke oprette Data mappe - + path: "%1" Sti: "%1" - + Shared memory error Delt hukommelse fejl - + Unable to create shared memory segment Kan ikke oprette delt hukommelse segment diff --git a/translations/wsjtx_en.ts b/translations/wsjtx_en.ts index 485801d1f..d0e3510b8 100644 --- a/translations/wsjtx_en.ts +++ b/translations/wsjtx_en.ts @@ -130,17 +130,17 @@ - + Doppler Tracking Error - + Split operating is required for Doppler tracking - + Go to "Menu->File->Settings->Radio" to enable split operation @@ -971,7 +971,7 @@ Error: %2 - %3 DisplayText - + &Erase @@ -1055,6 +1055,11 @@ Error: %2 - %3 EqualizationToolsDialog::impl + + + Equalization Tools + + Phase @@ -1259,12 +1264,12 @@ Error: %2 - %3 - + Cannot open "%1" for writing: %2 - + Export Cabrillo File Error @@ -1464,83 +1469,83 @@ Error: %2 - %3 HRDTransceiver - - + + Failed to connect to Ham Radio Deluxe - + Failed to open file "%1": %2. - - + + Ham Radio Deluxe: no rig found - + Ham Radio Deluxe: rig doesn't support mode - + Ham Radio Deluxe: sent an unrecognised mode - + Ham Radio Deluxe: item not found in %1 dropdown list - + Ham Radio Deluxe: button not available - + Ham Radio Deluxe didn't respond as expected - + Ham Radio Deluxe: rig has disappeared or changed - + Ham Radio Deluxe send command "%1" failed %2 - - + + Ham Radio Deluxe: failed to write command "%1" - + Ham Radio Deluxe sent an invalid reply to our command "%1" - + Ham Radio Deluxe failed to reply to command "%1" %2 - + Ham Radio Deluxe retries exhausted sending command "%1" - + Ham Radio Deluxe didn't respond to command "%1" as expected @@ -1548,178 +1553,180 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error - + Hamlib settings file error: %1 at character offset %2 - + Hamlib settings file error: top level must be a JSON object - + Hamlib settings file error: config must be a JSON object - + Unsupported CAT type - + Hamlib error: %1 while %2 - + opening connection to rig - + getting current frequency - + getting current mode - - + + exchanging VFOs - - + + getting other VFO frequency - + getting other VFO mode - + + setting current VFO - + getting frequency - + getting mode - - + + + getting current VFO - - - - + + + + getting current VFO frequency - - - - - - + + + + + + setting frequency - - - - + + + + getting current VFO mode - - - - - + + + + + setting current VFO mode - - + + setting/unsetting split mode - - + + setting split mode - + setting split TX frequency and mode - + setting split TX frequency - + getting split TX VFO mode - + setting split TX VFO mode - + getting PTT state - + setting PTT on - + setting PTT off - + setting a configuration item - + getting a configuration item @@ -1744,6 +1751,26 @@ Error: %2 - %3 IARURegions + + + All + + + + + Region 1 + + + + + Region 2 + + + + + Region 3 + + @@ -1764,110 +1791,206 @@ Error: %2 - %3 - + Start - - + + dd/MM/yyyy HH:mm:ss - + End - + Mode - + Band - + Rpt Sent - + Rpt Rcvd - + Grid - + Name - + Tx power - - + + + Retain - + Comments - + Operator - + Exch sent - + Rcvd - - + + Prop Mode + + + + + Aircraft scatter + + + + + Aurora-E + + + + + Aurora + + + + + Back scatter + + + + + Echolink + + + + + Earth-moon-earth + + + + + Sporadic E + + + + + F2 Reflection + + + + + Field aligned irregularities + + + + + Internet-assisted + + + + + Ionoscatter + + + + + IRLP + + + + + Meteor scatter + + + + + Non-satellite repeater or transponder + + + + + Rain scatter + + + + + Satellite + + + + + Trans-equatorial + + + + + Troposheric ducting + + + + + Invalid QSO Data - + Check exchange sent and received - + Check all fields - + Log file error - + Cannot open "%1" for append - + Error: %1 @@ -1875,38 +1998,38 @@ Error: %2 - %3 LotWUsers::impl - + Network Error - SSL/TLS support not installed, cannot fetch: '%1' - + Network Error - Too many redirects: '%1' - + Network Error: %1 - + File System Error - Cannot commit changes to: "%1" - + File System Error - Cannot open file: "%1" Error(%2): %3 - + File System Error - Cannot write to file: "%1" Error(%2): %3 @@ -1922,12 +2045,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity @@ -1939,11 +2062,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency @@ -2401,7 +2524,7 @@ Not available to nonstandard callsign holders. - + Fox @@ -3242,7 +3365,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog @@ -3513,197 +3636,197 @@ list. The list can be maintained in Settings (F2). - + Rig Control Error - - - + + + Receiving - + Do you want to reconfigure the radio interface? - + Error Scanning ADIF Log - + Scanned ADIF log, %1 worked before records created - + Error Loading LotW Users Data - + Error Writing WAV File - + Configurations... - - - - - - - - + + + + + - - - - - - - + + + + + + + + + + Message - + Error Killing jt9.exe Process - + KillByName return code: %1 - + Error removing "%1" - + Click OK to retry - - + + Improper mode - - + + File Open Error - - - - - + + + + + Cannot open "%1" for append: %2 - + Error saving c2 file - + Error in Sound Input - + Error in Sound Output - - - + + + Single-Period Decodes - - - + + + Average Decodes - + Change Operator - + New operator: - + Status File Error - - + + Cannot open "%1" for writing: %2 - + Subprocess Error - + Subprocess failed with exit code %1 - - + + Running: %1 %2 - + Subprocess error - + Reference spectrum saved - + Invalid data in fmt.all at line %1 - + Good Calibration Solution - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3712,79 +3835,79 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements - + The "fmt.all" file will be renamed as "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? - + Confirm Delete - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + Keyboard Shortcuts - + Special Mouse Commands - + No more files to open. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + Last Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3792,181 +3915,181 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - + Stations calling DXpedition %1 - + Hound - + Tx Messages - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + VHF features warning - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - + WD:%1m - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -4083,6 +4206,14 @@ UDP server %2:%3 + + NetworkAccessManager + + + Network SSL/TLS Errors + + + OmniRigTransceiver @@ -4129,7 +4260,7 @@ UDP server %2:%3 - + Failed to open LotW users CSV file: '%1' @@ -4164,7 +4295,7 @@ UDP server %2:%3 - + Error writing waterfall palette file "%1": %2. @@ -4174,10 +4305,10 @@ UDP server %2:%3 - - - - + + + + File System Error @@ -4196,43 +4327,43 @@ Error(%3): %4 - - - + + + Network Error - + Too many redirects: %1 - + Redirect not followed: %1 - + Cannot commit changes to: "%1" - + Cannot open file: "%1" Error(%2): %3 - + Cannot make path: "%1" - + Cannot write to file: "%1" Error(%2): %3 @@ -4242,6 +4373,7 @@ Error(%2): %3 SampleDownloader::impl + Download Samples @@ -4273,7 +4405,7 @@ Error(%2): %3 - Check this is you get SSL/TLS errors + Check this if you get SSL/TLS errors @@ -4660,8 +4792,8 @@ Error(%2): %3 - - + + Read Palette @@ -6120,65 +6252,65 @@ Right click for insert and delete options. main - - + + Fatal error - - + + Unexpected fatal error - + Another instance may be running - + try to remove stale lock file? - + Failed to create a temporary directory - - + + Path: "%1" - + Failed to create a usable temporary directory - + Another application may be locking the directory - + Failed to create data directory - + path: "%1" - + Shared memory error - + Unable to create shared memory segment diff --git a/translations/wsjtx_en_GB.ts b/translations/wsjtx_en_GB.ts index 7bf890562..2db4e54ce 100644 --- a/translations/wsjtx_en_GB.ts +++ b/translations/wsjtx_en_GB.ts @@ -130,17 +130,17 @@ - + Doppler Tracking Error - + Split operating is required for Doppler tracking - + Go to "Menu->File->Settings->Radio" to enable split operation @@ -971,7 +971,7 @@ Error: %2 - %3 DisplayText - + &Erase @@ -1055,6 +1055,11 @@ Error: %2 - %3 EqualizationToolsDialog::impl + + + Equalization Tools + + Phase @@ -1259,12 +1264,12 @@ Error: %2 - %3 - + Cannot open "%1" for writing: %2 - + Export Cabrillo File Error @@ -1464,83 +1469,83 @@ Error: %2 - %3 HRDTransceiver - - + + Failed to connect to Ham Radio Deluxe - + Failed to open file "%1": %2. - - + + Ham Radio Deluxe: no rig found - + Ham Radio Deluxe: rig doesn't support mode - + Ham Radio Deluxe: sent an unrecognised mode - + Ham Radio Deluxe: item not found in %1 dropdown list - + Ham Radio Deluxe: button not available - + Ham Radio Deluxe didn't respond as expected - + Ham Radio Deluxe: rig has disappeared or changed - + Ham Radio Deluxe send command "%1" failed %2 - - + + Ham Radio Deluxe: failed to write command "%1" - + Ham Radio Deluxe sent an invalid reply to our command "%1" - + Ham Radio Deluxe failed to reply to command "%1" %2 - + Ham Radio Deluxe retries exhausted sending command "%1" - + Ham Radio Deluxe didn't respond to command "%1" as expected @@ -1548,178 +1553,180 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error - + Hamlib settings file error: %1 at character offset %2 - + Hamlib settings file error: top level must be a JSON object - + Hamlib settings file error: config must be a JSON object - + Unsupported CAT type - + Hamlib error: %1 while %2 - + opening connection to rig - + getting current frequency - + getting current mode - - + + exchanging VFOs - - + + getting other VFO frequency - + getting other VFO mode - + + setting current VFO - + getting frequency - + getting mode - - + + + getting current VFO - - - - + + + + getting current VFO frequency - - - - - - + + + + + + setting frequency - - - - + + + + getting current VFO mode - - - - - + + + + + setting current VFO mode - - + + setting/unsetting split mode - - + + setting split mode - + setting split TX frequency and mode - + setting split TX frequency - + getting split TX VFO mode - + setting split TX VFO mode - + getting PTT state - + setting PTT on - + setting PTT off - + setting a configuration item - + getting a configuration item @@ -1744,6 +1751,26 @@ Error: %2 - %3 IARURegions + + + All + + + + + Region 1 + + + + + Region 2 + + + + + Region 3 + + @@ -1764,110 +1791,206 @@ Error: %2 - %3 - + Start - - + + dd/MM/yyyy HH:mm:ss - + End - + Mode - + Band - + Rpt Sent - + Rpt Rcvd - + Grid - + Name - + Tx power - - + + + Retain - + Comments - + Operator - + Exch sent - + Rcvd - - + + Prop Mode + + + + + Aircraft scatter + + + + + Aurora-E + + + + + Aurora + + + + + Back scatter + + + + + Echolink + + + + + Earth-moon-earth + + + + + Sporadic E + + + + + F2 Reflection + + + + + Field aligned irregularities + + + + + Internet-assisted + + + + + Ionoscatter + + + + + IRLP + + + + + Meteor scatter + + + + + Non-satellite repeater or transponder + + + + + Rain scatter + + + + + Satellite + + + + + Trans-equatorial + + + + + Troposheric ducting + + + + + Invalid QSO Data - + Check exchange sent and received - + Check all fields - + Log file error - + Cannot open "%1" for append - + Error: %1 @@ -1875,38 +1998,38 @@ Error: %2 - %3 LotWUsers::impl - + Network Error - SSL/TLS support not installed, cannot fetch: '%1' - + Network Error - Too many redirects: '%1' - + Network Error: %1 - + File System Error - Cannot commit changes to: "%1" - + File System Error - Cannot open file: "%1" Error(%2): %3 - + File System Error - Cannot write to file: "%1" Error(%2): %3 @@ -1922,12 +2045,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity @@ -1939,11 +2062,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency @@ -2401,7 +2524,7 @@ Not available to nonstandard callsign holders. - + Fox @@ -3242,7 +3365,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog @@ -3513,197 +3636,197 @@ list. The list can be maintained in Settings (F2). - + Rig Control Error - - - + + + Receiving - + Do you want to reconfigure the radio interface? - + Error Scanning ADIF Log - + Scanned ADIF log, %1 worked before records created - + Error Loading LotW Users Data - + Error Writing WAV File - + Configurations... - - - - - - - - + + + + + - - - - - - - + + + + + + + + + + Message - + Error Killing jt9.exe Process - + KillByName return code: %1 - + Error removing "%1" - + Click OK to retry - - + + Improper mode - - + + File Open Error - - - - - + + + + + Cannot open "%1" for append: %2 - + Error saving c2 file - + Error in Sound Input - + Error in Sound Output - - - + + + Single-Period Decodes - - - + + + Average Decodes - + Change Operator - + New operator: - + Status File Error - - + + Cannot open "%1" for writing: %2 - + Subprocess Error - + Subprocess failed with exit code %1 - - + + Running: %1 %2 - + Subprocess error - + Reference spectrum saved - + Invalid data in fmt.all at line %1 - + Good Calibration Solution - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3712,79 +3835,79 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements - + The "fmt.all" file will be renamed as "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? - + Confirm Delete - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + Keyboard Shortcuts - + Special Mouse Commands - + No more files to open. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + Last Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3792,181 +3915,181 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - + Stations calling DXpedition %1 - + Hound - + Tx Messages - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + VHF features warning - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - + WD:%1m - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -4083,6 +4206,14 @@ UDP server %2:%3 + + NetworkAccessManager + + + Network SSL/TLS Errors + + + OmniRigTransceiver @@ -4129,7 +4260,7 @@ UDP server %2:%3 - + Failed to open LotW users CSV file: '%1' @@ -4164,7 +4295,7 @@ UDP server %2:%3 - + Error writing waterfall palette file "%1": %2. @@ -4174,10 +4305,10 @@ UDP server %2:%3 - - - - + + + + File System Error @@ -4196,43 +4327,43 @@ Error(%3): %4 - - - + + + Network Error - + Too many redirects: %1 - + Redirect not followed: %1 - + Cannot commit changes to: "%1" - + Cannot open file: "%1" Error(%2): %3 - + Cannot make path: "%1" - + Cannot write to file: "%1" Error(%2): %3 @@ -4242,6 +4373,7 @@ Error(%2): %3 SampleDownloader::impl + Download Samples @@ -4273,7 +4405,7 @@ Error(%2): %3 - Check this is you get SSL/TLS errors + Check this if you get SSL/TLS errors @@ -4660,8 +4792,8 @@ Error(%2): %3 - - + + Read Palette @@ -6120,65 +6252,65 @@ Right click for insert and delete options. main - - + + Fatal error - - + + Unexpected fatal error - + Another instance may be running - + try to remove stale lock file? - + Failed to create a temporary directory - - + + Path: "%1" - + Failed to create a usable temporary directory - + Another application may be locking the directory - + Failed to create data directory - + path: "%1" - + Shared memory error - + Unable to create shared memory segment diff --git a/translations/wsjtx_es.ts b/translations/wsjtx_es.ts index f4f709f52..6a77e9294 100644 --- a/translations/wsjtx_es.ts +++ b/translations/wsjtx_es.ts @@ -150,19 +150,19 @@ Datos Astronómicos - + Doppler Tracking Error Error de seguimiento de Doppler Seguimiento de error Doppler - + Split operating is required for Doppler tracking Se requiere un funcionamiento dividido para el seguimiento Doppler Operación en "Split" es requerida para seguimiento Doppler - + Go to "Menu->File->Settings->Radio" to enable split operation Ves a "Menú-> Archivo-> Configuración-> Radio" para habilitar la operación dividida Ir a "Menú - Archivo - Ajustes - Radio" para habilitar la operación en "Split" @@ -986,6 +986,16 @@ Formato: Directory + + + File + Archivo + + + + Progress + + @@ -1085,7 +1095,7 @@ Error: %2 - %3 DisplayText - + &Erase &Borrar @@ -1176,6 +1186,11 @@ Error: %2 - %3 EqualizationToolsDialog::impl + + + Equalization Tools + + Phase @@ -1395,13 +1410,13 @@ Error: %2 - %3 Log Cabrillo (*.cbr) - + Cannot open "%1" for writing: %2 No se puede abrir "%1" para la escritura: %2 No se puede abrir "%1" para escritura: %2 - + Export Cabrillo File Error Error al exportar el archivo Cabrillo Error al exportar log Cabrillo @@ -1586,26 +1601,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region Región IARU - - + + Mode Modo - - + + Frequency Frecuencia - - + + Frequency (MHz) Frecuencia en MHz Frecuencia (MHz) @@ -1614,8 +1629,8 @@ Error: %2 - %3 HRDTransceiver - - + + Failed to connect to Ham Radio Deluxe No se pudo conectar a Ham Radio Deluxe @@ -1624,50 +1639,50 @@ Error: %2 - %3 - + Failed to open file "%1": %2. Fallo al abrir el archivo "%1": %2. - - + + Ham Radio Deluxe: no rig found Ham Radio Deluxe: no se encontró ningún equipo - + Ham Radio Deluxe: rig doesn't support mode Ham Radio Deluxe: el equipo no admite el modo - + Ham Radio Deluxe: sent an unrecognised mode Ham Radio Deluxe: envió un modo no desconocido Ham Radio Deluxe: envió un modo desconocido - + Ham Radio Deluxe: item not found in %1 dropdown list Ham Radio Deluxe: artículo no encontrado en %1 la lista desplegable Ham Radio Deluxe: elemento no encontrado en %1 la lista desplegable - + Ham Radio Deluxe: button not available Ham Radio Deluxe: botón no disponible - + Ham Radio Deluxe didn't respond as expected Ham Radio Deluxe no respondió como se esperaba - + Ham Radio Deluxe: rig has disappeared or changed Ham Radio Deluxe: equipo ha desaparecido o cambiado - + Ham Radio Deluxe send command "%1" failed %2 Comando de envío Ham Radio Deluxe "%1" ha fallado %2 @@ -1675,18 +1690,18 @@ Error: %2 - %3 - - + + Ham Radio Deluxe: failed to write command "%1" Ham Radio Deluxe: error al escribir el comando "%1" - + Ham Radio Deluxe sent an invalid reply to our command "%1" Ham Radio Deluxe envió una respuesta no válida a nuestro comando "%1" - + Ham Radio Deluxe failed to reply to command "%1" %2 Ham Radio Deluxe no respondió al comando "%1" %2 @@ -1695,13 +1710,13 @@ Error: %2 - %3 - + Ham Radio Deluxe retries exhausted sending command "%1" Ham Radio Deluxe reintenta agotado enviando comando "%1" Ham Radio Deluxe ha excedido los intentos enviando comando "%1" - + Ham Radio Deluxe didn't respond to command "%1" as expected Ham Radio Deluxe no respondió al comando "%1" como se esperaba @@ -1709,199 +1724,201 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error Error de inicialización de Hamlib - + Hamlib settings file error: %1 at character offset %2 Error de archivo de configuración de Hamlib:%1 en el desplazamiento de caracteres %2 Error en archivo de configuración de Hamlib:%1 en el desplazamiento de caracteres %2 - + Hamlib settings file error: top level must be a JSON object Error en archivo de configuración de Hamlib: el nivel superior debe ser un objeto JSON Error de archivo de configuración de Hamlib: el nivel superior debe ser un objeto JSON - + Hamlib settings file error: config must be a JSON object Error de archivo de configuración de Hamlib: config debe ser un objeto JSON Error en archivo de configuración de Hamlib: config debe ser un objeto JSON - + Unsupported CAT type Tipo CAT no admitido - + Hamlib error: %1 while %2 Error Hamlib: %1 mientras %2 - + opening connection to rig conexión de apertura al equipo abriendo conexión al equipo - + getting current frequency obteniendo frecuencia actual - + getting current mode obteniendo el modo actual obteniendo modo actual - - + + exchanging VFOs intercambiando VFO's - - + + getting other VFO frequency obteniendo otra frecuencia de VFO obteniendo la frecuencia del otro VFO - + getting other VFO mode obteniendo otro modo VFO obteniendo modo del otro VFO - + + setting current VFO ajuste al VFO actual ajustando VFO actual - + getting frequency obteniendo frecuencia - + getting mode obteniendo modo - - + + + getting current VFO obteniendo el VFO actual obteniendo VFO actual - - - - + + + + getting current VFO frequency obteniendo la frecuencia actual de VFO obteniendo frecuencia del VFO actual - - - - - - + + + + + + setting frequency ajuste de frecuencia ajustando frecuencia - - - - + + + + getting current VFO mode obteniendo modo del VFO actual - - - - - + + + + + setting current VFO mode ajuste del modo VFO actual ajustando modo del VFO actual - - + + setting/unsetting split mode activación/desactivación del modo dividido (split) activar/desactivar modo "Split" - - + + setting split mode activar modo dividido (split) ajustando modo "Split" - + setting split TX frequency and mode Ajuste de frecuencia y modo de transmisión dividida (split) ajustando la frecuencia de TX y modo del "Split" - + setting split TX frequency ajuste de frecuencia dividida en TX ajustando frecuencia de TX del "Split" - + getting split TX VFO mode obteniendo el modo dividido de TX en el VFO obteniendo modo del VFO de TX en "Split" - + setting split TX VFO mode ajuste del modo dividido (split) en TX del VFO ajustando modo del VFO de TX en "Split" - + getting PTT state obteniendo el estado del PTT - + setting PTT on activar el PTT activando PTT - + setting PTT off desactivar el PTT desactivando PTT - + setting a configuration item activar un elemento de configuración ajustando un elemento de configuración - + getting a configuration item obteniendo un elemento de configuración @@ -1928,6 +1945,26 @@ Error: %2 - %3 IARURegions + + + All + + + + + Region 1 + + + + + Region 2 + + + + + Region 3 + + @@ -1949,121 +1986,217 @@ Error: %2 - %3 Indicativo - + Start Comienzo Inicio - - + + dd/MM/yyyy HH:mm:ss dd/MM/yyyy HH:mm:ss - + End Final Fin - + Mode Modo - + Band Banda - + Rpt Sent Reporte Enviado Rpt. Enviado - + Rpt Rcvd Reporte Recibido Rpt. Recibido - + Grid Locator/Grid Locator - + Name Nombre - + Tx power Poténcia de TX Potencia TX - - + + + Retain Conservar - + Comments Comentarios - + Operator Operador - + Exch sent Intercambio enviado - + Rcvd Recibido - - + + Prop Mode + + + + + Aircraft scatter + + + + + Aurora-E + + + + + Aurora + + + + + Back scatter + + + + + Echolink + + + + + Earth-moon-earth + + + + + Sporadic E + + + + + F2 Reflection + + + + + Field aligned irregularities + + + + + Internet-assisted + + + + + Ionoscatter + + + + + IRLP + + + + + Meteor scatter + + + + + Non-satellite repeater or transponder + + + + + Rain scatter + + + + + Satellite + + + + + Trans-equatorial + + + + + Troposheric ducting + + + + + Invalid QSO Data Datos de QSO no válidos Datos del QSO no válidos - + Check exchange sent and received Comprobación del intercambio enviado y recibido Verificar intercambio enviado y recibido - + Check all fields Verifica todos los campos Verificar todos los campos - + Log file error Error de archivo log Error en log - + Cannot open "%1" for append No puedo abrir "%1" para anexar No se puede abrir "%1" para anexar - + Error: %1 Error: %1 @@ -2071,7 +2204,7 @@ Error: %2 - %3 LotWUsers::impl - + Network Error - SSL/TLS support not installed, cannot fetch: '%1' Error de red: el soporte SSL/TLS no está instalado, no se puede recuperar: @@ -2080,7 +2213,7 @@ Error: %2 - %3 '%1' - + Network Error - Too many redirects: '%1' Error de red: demasiados redireccionamientos: @@ -2089,14 +2222,14 @@ Error: %2 - %3 '%1' - + Network Error: %1 Error de red: %1 - + File System Error - Cannot commit changes to: "%1" Error del sistema de archivos: no se pueden confirmar los cambios en: @@ -2105,7 +2238,7 @@ Error: %2 - %3 "%1" - + File System Error - Cannot open file: "%1" Error(%2): %3 @@ -2117,7 +2250,7 @@ Error(%2): %3 Error(%2): %3 - + File System Error - Cannot write to file: "%1" Error(%2): %3 @@ -2138,12 +2271,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity Actividad en la banda @@ -2155,11 +2288,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency Frecuencia de RX @@ -2551,7 +2684,7 @@ Amarillo cuando esta muy bajo. - + Fast Rápido @@ -2672,7 +2805,7 @@ No está disponible para los titulares de indicativo no estándar. - + Fox Fox "Fox" @@ -3436,623 +3569,623 @@ predefinida. La lista se puede modificar en "Ajustes" (F2).Acerca de WSJT-X - + Waterfall Cascada Cascada (Waterfall) - + Open Abrir - + Ctrl+O Ctrl+O - + Open next in directory Abrir siguiente en el directorio - + Decode remaining files in directory Decodifica los archivos restantes en el directorio - + Shift+F6 Mayúsculas+F6 Mayúsculas+F6 - + Delete all *.wav && *.c2 files in SaveDir Borrar todos los archivos *.wav y *.c2 - + None Ninguno Nada - + Save all Guardar todo - + Online User Guide Guía de usuario en línea - + Keyboard shortcuts Atajos de teclado - + Special mouse commands Comandos especiales del ratón - + JT9 JT9 - + Save decoded Guarda el decodificado Guardar lo decodificado - + Normal Normal - + Deep Profundo - + Monitor OFF at startup Monitor apagado al inicio "Monitor" apagado al inicio - + Erase ALL.TXT Borrar ALL.TXT - + Erase wsjtx_log.adi Borrar el archivo wsjtx_log.adi Borrar archivo wsjtx_log.adi - + Convert mode to RTTY for logging Convierte el modo a RTTY después de registrar el QSO Convierte el modo a RTTY para guardar el QSO - + Log dB reports to Comments Pon los informes de recepción en dB en Comentarios Guardar reportes dB en los Comentarios - + Prompt me to log QSO Pedirme que registre QSO Preguntarme antes de guardar el QSO - + Blank line between decoding periods Línea en blanco entre períodos de decodificación - + Clear DX Call and Grid after logging Borrar Indicativo DX y Locator/Grid DX después de registrar un QSO Borrar Indicativo y Locator del DX después de guardar QSO - + Display distance in miles Mostrar distancia en millas - + Double-click on call sets Tx Enable Haz doble clic en los conjuntos de indicativos de activar TX Doble clic en el indicativo activa la TX - - + + F7 F7 - + Tx disabled after sending 73 Tx deshabilitado después de enviar 73 Dehabilita TX después de enviar 73 - - + + Runaway Tx watchdog Control de TX - + Allow multiple instances Permitir múltiples instancias - + Tx freq locked to Rx freq TX frec bloqueado a RX frec Freq. de TX bloqueda a freq. de RX - + JT65 JT65 - + JT9+JT65 JT9+JT65 - + Tx messages to Rx Frequency window Mensajes de texto a la ventana de frecuencia de RX Mensajes de TX a la ventana de "Frecuencia de RX" - + Gray1 Gris1 - + Show DXCC entity and worked B4 status Mostrar entidad DXCC y estado B4 trabajado Mostrar DXCC y estado B4 trabajado - + Astronomical data Datos astronómicos - + List of Type 1 prefixes and suffixes Lista de prefijos y sufijos de tipo 1 Lista de prefijos y sufijos tipo 1 - + Settings... Configuración Ajustes... - + Local User Guide Guía de usuario local - + Open log directory Abrir directorio de log - + JT4 JT4 - + Message averaging Promedio de mensajes - + Enable averaging Habilitar el promedio - + Enable deep search Habilitar búsqueda profunda - + WSPR WSPR - + Echo Graph Gráfico de eco - + F8 F8 - + Echo Echo Eco - + EME Echo mode Modo EME Eco - + ISCAT ISCAT - + Fast Graph Gráfico rápido "Fast Graph" - + F9 F9 - + &Download Samples ... &Descargar muestras ... &Descargar muestras de audio ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>Descarga archivos de audio de muestra que demuestren los distintos modos.</p></body></html> <html><head/><body><p>Descargar archivos de audio de los distintos modos.</p></body></html> - + MSK144 MSK144 - + QRA64 QRA64 - + Release Notes Cambios en la nueva versión - + Enable AP for DX Call Habilitar AP para llamada DX Habilitar AP para indicativo DX - + FreqCal FreqCal - + Measure reference spectrum Medir espectro de referencia - + Measure phase response Medir la respuesta de fase - + Erase reference spectrum Borrar espectro de referencia - + Execute frequency calibration cycle Ejecutar ciclo de calibración de frecuencia - + Equalization tools ... Herramientas de ecualización ... - + WSPR-LF WSPR-LF - + Experimental LF/MF mode Modo experimental LF/MF - + FT8 FT8 - - + + Enable AP Habilitar AP - + Solve for calibration parameters Resolver para parámetros de calibración Resolver parámetros de calibración - + Copyright notice Derechos de Autor - + Shift+F1 Mayúsculas+F1 - + Fox log Log Fox Log "Fox" - + FT8 DXpedition Mode User Guide Guía de usuario del modo FT8 DXpedition (inglés) - + Reset Cabrillo log ... Restablecer log de Cabrillo ... Borrar log Cabrillo ... - + Color highlighting scheme Esquema de resaltado de color Esquema de resaltado de colores - + Contest Log Log de Concurso - + Export Cabrillo log ... Exportar log de Cabrillo ... Exportar log Cabrillo ... - + Quick-Start Guide to WSJT-X 2.0 Guía de inicio rápido para WSJT-X 2.0 (inglés) - + Contest log Log de Concurso - + Erase WSPR hashtable Borrar la tabla de WSPR - + FT4 FT4 - + Rig Control Error Error de control del equipo - - - + + + Receiving Recibiendo - + Do you want to reconfigure the radio interface? ¿Desea reconfigurar la interfaz de radio? - + Error Scanning ADIF Log Error al escanear el log ADIF - + Scanned ADIF log, %1 worked before records created Log ADIF escaneado, %1 funcionaba antes de la creación de registros Log ADIF escaneado, %1 registros trabajados B4 creados - + Error Loading LotW Users Data Error al cargar datos de usuarios de LotW Error al cargar datos de usuarios de LoTW - + Error Writing WAV File Error al escribir el archivo WAV - + Configurations... Conmfiguraciones... Configuraciones... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + Message Mensaje - + Error Killing jt9.exe Process Error al matar el proceso jt9.exe - + KillByName return code: %1 Código de retorno de KillByName: %1 KillByName regresa código: %1 - + Error removing "%1" Error al eliminar "%1" - + Click OK to retry Haga clic en Aceptar para volver a intentar Clic en "Aceptar" para reintentar - - + + Improper mode Modo incorrecto - - + + File Open Error Error de apertura del archivo Error al abrir archivo - - - - - + + + + + Cannot open "%1" for append: %2 No puedo abrir "%1" para anexar: %2 No se puedo abrir "%1" para anexar: %2 - + Error saving c2 file Error al guardar el archivo c2 Error al guardar archivo c2 - + Error in Sound Input Error en entrada de sonido - + Error in Sound Output Error en la salida de sonido Error en salida de audio - - - + + + Single-Period Decodes Decodificaciones de un solo período - - - + + + Average Decodes Promedio de decodificaciones - + Change Operator Cambiar operador - + New operator: Operador nuevo: - + Status File Error Error de estado del archivo Error en el archivo de estado - - + + Cannot open "%1" for writing: %2 No se puede abrir "%1" para la escritura: %2 No se puede abrir "%1" para escritura: %2 - + Subprocess Error Error de subproceso - + Subprocess failed with exit code %1 El subproceso falló con el código de salida %1 - - + + Running: %1 %2 Corriendo: %1 @@ -4061,27 +4194,27 @@ Error al cargar datos de usuarios de LotW %2 - + Subprocess error Error de subproceso - + Reference spectrum saved Espectro de referencia guardado - + Invalid data in fmt.all at line %1 Datos no válidos en fmt.all en la línea %1 - + Good Calibration Solution Buena solución de calibración - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -4094,18 +4227,18 @@ Error al cargar datos de usuarios de LotW %9%L10 Hz</pre> - + Delete Calibration Measurements Eliminar mediciones de calibración Borrar mediciones de calibración - + The "fmt.all" file will be renamed as "fmt.bak" El archivo "fmt.all" será renombrado como "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -4117,71 +4250,71 @@ Error al cargar datos de usuarios de LotW "Los algoritmos, el código fuente, la apariencia y comportamiento del WSJT-X y los programas relacionados, y las especificaciones del protocolo para los modos FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 son Copyright (C) 2001-2020 por uno o más de los siguientes autores: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q y otros miembros del Grupo de Desarrollo WSJT ". - + No data read from disk. Wrong file format? No se leen datos del disco. Formato de archivo incorrecto? No se han leido datos del disco. Formato de archivo incorrecto? - + Confirm Delete Confirmar eliminación Confirmar borrado - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? ¿Estas seguro de que deseas eliminar todos los archivos *.wav y *.c2 en "%1"? ¿Esta seguro de que desea borrar todos los archivos *.wav y *.c2 en "%1"? - + Keyboard Shortcuts Atajo de teclado Atajos de teclado - + Special Mouse Commands Comandos especiales del ratón Comandos especiales de ratón - + No more files to open. No hay más archivos para abrir. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Por favor, elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30m. Elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30M. - + WSPR Guard Band Banda de Guardia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Elige otra frecuencia de dial. WSJT-X no funcionará en modo Fox en las sub-bandas FT8 estándar. Por favor elija otra frecuencia. WSJT-X no operá en modo "Fox" en las sub-bandas de FT8 estándar. - + Fox Mode warning Advertencia del modo Fox Advertencia de modo "Fox" - + Last Tx: %1 Última TX: %1 Últ TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4196,37 +4329,37 @@ Para hacerlo, marca "Actividad operativa especial" y luego "Concurso VHF EU" en "Archivo" - "Ajustes" - "Avanzado". - + Should you switch to ARRL Field Day mode? ¿Cambiar al modo ARRL Field Day? - + Should you switch to RTTY contest mode? ¿Cambiar al modo de concurso RTTY? - - - - + + + + Add to CALL3.TXT Añadir a CALL3.TXT - + Please enter a valid grid locator Por favor, introduce un locator/Grid válido Por favor escriba un locator válido - + Cannot open "%1" for read/write: %2 No se puede abrir "%1" para leer/escribir: %2 No se puede abrir "%1" para lectura/escritura: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 @@ -4235,167 +4368,167 @@ ya está en CALL3.TXT, ¿deseas reemplazarlo? ya está en CALL3.TXT, ¿desea reemplazarlo? - + Warning: DX Call field is empty. Advertencia: el campo de Indicativo DX está vacío. Advertencia: el campo Indicativo DX está vacío. - + Log file error Error de archivo de log Error en el archivo de log - + Cannot open "%1" No puedo abrir "%1" No se puede abrir "%1" - + Error sending log to N1MM Error al enviar el log a N1MM - + Write returned "%1" Escritura devuelta "%1" Escritura devuelve "%1" - + Stations calling DXpedition %1 Estaciones que llaman a DXpedition %1 Estaciones llamando a DXpedition %1 - + Hound Hound "Hound" - + Tx Messages Mensajes de TX Mensajes TX - - - + + + Confirm Erase Confirmar borrado - + Are you sure you want to erase file ALL.TXT? ¿Estás seguro de que quiere borrar el archivo ALL.TXT? - - + + Confirm Reset Confirmar reinicio Confirmar restablecer - + Are you sure you want to erase your contest log? ¿Estás seguro de que quieres borrar el log de tú concurso? ¿Está seguro que quiere borrar el log de concurso? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Hacer esto eliminará todos los registros de QSO para el concurso actual. Se guardarán en el archivo log de ADIF, pero no estarán disponibles para la exportación en tú log de Cabrillo. Hacer esto eliminará todos los QSOs del concurso actual. Se mantendrán en el log ADIF, pero no estarán disponibles para la exportación como log de Cabrillo. - + Cabrillo Log saved Cabrillo Log guardado Log Cabrillo guardado - + Are you sure you want to erase file wsjtx_log.adi? ¿Estás seguro de que quieres borrar el archivo wsjtx_log.adi? ¿Está seguro que quiere borrar el archivo wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? ¿Estás seguro de que quieres borrar la tabla WSPR? ¿Está seguro de que quiere borrar la tabla hash WSPR? - + VHF features warning Advertencia de características VHF - + Tune digital gain Ganancia de sintonización digital Ajustar ganancia digital - + Transmit digital gain Ganancia de transmisión digital Transmitir ganancia digital - + Prefixes Prefijos Prefijos y sufijos tipo 1 - + Network Error Error de red - + Error: %1 UDP server %2:%3 Error: %1 Servidor UDP %2:%3 - + File Error Error en el archivo - + Phase Training Disabled Fase de entrenamiento deshabilitado Entrenamieno de Fase deshabilitado - + Phase Training Enabled Fase de entrenamiento habilitado Entrenamiento de Fase habilitado - + WD:%1m WD:%1m - - + + Log File Error Error de archivo log Error en archivo log - + Are you sure you want to clear the QSO queues? ¿Estás seguro de que quieres borrar las colas QSO? ¿Está seguro que quiere borrar las colas de QSOs? @@ -4526,6 +4659,14 @@ Servidor UDP %2:%3 &Nuevo nombre: + + NetworkAccessManager + + + Network SSL/TLS Errors + + + OmniRigTransceiver @@ -4540,20 +4681,20 @@ Servidor UDP %2:%3 Error al iniciar servidor COM de OmniRig - - + + OmniRig: don't know how to set rig frequency OmniRig: no sé cómo configurar la frecuencia del equipo - - + + OmniRig: timeout waiting for update from rig OmniRig: el tiempo de espera finalizó en la actualización del equipo OmniRig: el tiempo de espera agotado esperando la actualización del equipo - + OmniRig COM/OLE error: %1 at %2: %3 (%4) Error de OmniRig COM/OLE: %1 a %2: %3 (%4 @@ -4569,10 +4710,9 @@ Servidor UDP %2:%3 QObject - Invalid rig name - \ & / not allowed Nombre del equipo inválido - \ & / No permitido - Nombre del equipo no válido - \ y / no permitidos + Nombre del equipo no válido - \ y / no permitidos @@ -4580,7 +4720,7 @@ Servidor UDP %2:%3 Definido por el usuario - + Failed to open LotW users CSV file: '%1' Error al abrir el archivo CSV de los usuarios de LotW: '%1' Error al abrir archivo CSV de usuarios del LoTW: '%1' @@ -4620,7 +4760,7 @@ Servidor UDP %2:%3 Error al abrir el archivo de paleta de la cascada (waterfall) "%1": %2. - + Error writing waterfall palette file "%1": %2. Error al escribir el archivo de paleta en cascada "%1": %2. Error al escribir el archivo de paleta de la cascada (waterfall) "%1": %2. @@ -4631,10 +4771,10 @@ Servidor UDP %2:%3 - - - - + + + + File System Error Error del sistema de archivos @@ -4657,31 +4797,31 @@ Error(%3): %4 "%1" - - - + + + Network Error Error de red - + Too many redirects: %1 Demasiados redireccionamientos: %1 - + Redirect not followed: %1 Redireccionamiento no seguido: %1 - + Cannot commit changes to: "%1" No se pueden enviar cambios a: "%1" - + Cannot open file: "%1" Error(%2): %3 @@ -4690,7 +4830,7 @@ Error(%2): %3 Error(%2): %3 - + Cannot make path: "%1" No se puede hacer camino: @@ -4699,7 +4839,7 @@ Error(%2): %3 "%1" - + Cannot write to file: "%1" Error(%2): %3 @@ -4714,10 +4854,41 @@ Error(%2): %3 SampleDownloader::impl + Download Samples Descargar muestras de audio + + + &Abort + + + + + &Refresh + + + + + &Details + + + + + Base URL for samples: + + + + + Only use HTTP: + + + + + Check this if you get SSL/TLS errors + + Input Error @@ -5120,8 +5291,8 @@ Error(%2): %3 Cascada - Waterfall - - + + Read Palette Leer Paleta @@ -6792,123 +6963,113 @@ Clic derecho para insertar y eliminar opciones. main - - + + Fatal error Error fatal - - + + Unexpected fatal error Error fatal inesperado - Where <rig-name> is for multi-instance support. Dónde <rig-name> es para soporte de múltiples instancias. - Dónde <rig-name> es para soporte múlti instancias. + Dónde <rig-name> es para soporte múlti instancias. - rig-name No se puede traducir esta parte, es parte del código - rig-name + rig-name - Where <configuration> is an existing one. Dónde <configuration> es ya existente. - Dónde <configuration> es una ya existente. + Dónde <configuration> es una ya existente. - configuration Ajustes - configuración + configuración - Where <language> is <lang-code>[-<country-code>]. - Dónde <language> es <lang-code>[-<country-code>]. + Dónde <language> es <lang-code>[-<country-code>]. - language Idioma - idioma + idioma - Writable files in test location. Use with caution, for testing only. Archivos grabables en la ubicación de prueba. Usa con precaución, solo para pruebas. - Archivos escribibles en la ubicación de prueba. Usa con precaución, solo para pruebas. + Archivos escribibles en la ubicación de prueba. Usa con precaución, solo para pruebas. - Command line error - Error de línea de comando + Error de línea de comando - Command line help - Ayuda de la línea de comandos + Ayuda de la línea de comandos - Application version - Versión de la aplicación + Versión de la aplicación - + Another instance may be running Otra instancia puede estar ejecutándose - + try to remove stale lock file? ¿intentas eliminar el archivo de bloqueo obsoleto? ¿intentar eliminar el archivo de bloqueo? - + Failed to create a temporary directory Error al crear un directorio temporal - - + + Path: "%1" Ruta: "%1" - + Failed to create a usable temporary directory Error al crear un directorio temporal utilizable Error al crear un directorio temporal - + Another application may be locking the directory Otra aplicación puede estar bloqueando el directorio - + Failed to create data directory Error al crear el directorio de datos - + path: "%1" ruta: "%1" - + Shared memory error Error de memoria compartida - + Unable to create shared memory segment No se puede crear un segmento de memoria compartida diff --git a/translations/wsjtx_it.ts b/translations/wsjtx_it.ts index 925c411ee..9a203ce1c 100644 --- a/translations/wsjtx_it.ts +++ b/translations/wsjtx_it.ts @@ -130,17 +130,17 @@ Dati Astronomici - + Doppler Tracking Error Errore Tracciamento Doppler - + Split operating is required for Doppler tracking Operazione Split richiesta per il tracciamento Doppler - + Go to "Menu->File->Settings->Radio" to enable split operation Vai a "Menu->File->Configurazione->Radio" per abilitare l'operazione split @@ -987,7 +987,7 @@ Errore: %2 - %3 DisplayText - + &Erase &Cancellare @@ -1072,6 +1072,11 @@ Errore: %2 - %3 EqualizationToolsDialog::impl + + + Equalization Tools + + Phase @@ -1276,12 +1281,12 @@ Errore: %2 - %3 Log Cabrillo (*.cbr) - + Cannot open "%1" for writing: %2 Impossibile aprire "%1" in scrittura: %2 - + Export Cabrillo File Error Esporta Errore File Cabrillo @@ -1482,85 +1487,85 @@ Errore: %2 - %3 HRDTransceiver - - + + Failed to connect to Ham Radio Deluxe Impossibile connettersi a Ham Radio Deluxe - + Failed to open file "%1": %2. Impossibile aprire il file "%1":%2. - - + + Ham Radio Deluxe: no rig found Ham Radio Deluxe: nessun rig trovato - + Ham Radio Deluxe: rig doesn't support mode Ham Radio Deluxe: il rig non supporta la modalità - + Ham Radio Deluxe: sent an unrecognised mode Ham Radio Deluxe: ha inviato una modalità non riconosciuta - + Ham Radio Deluxe: item not found in %1 dropdown list Ham Radio Deluxe: elemento non trovato nell'elenco a discesa%1 - + Ham Radio Deluxe: button not available Ham Radio Deluxe: pulsante non disponibile - + Ham Radio Deluxe didn't respond as expected Ham Radio Deluxe non ha risposto come previsto - + Ham Radio Deluxe: rig has disappeared or changed Ham Radio Deluxe: il rig è scomparso o cambiato - + Ham Radio Deluxe send command "%1" failed %2 Ham Radio Deluxe comando di invio "%1" non riuscito%2 - - + + Ham Radio Deluxe: failed to write command "%1" Ham Radio Deluxe: impossibile scrivere il comando "%1" - + Ham Radio Deluxe sent an invalid reply to our command "%1" Ham Radio Deluxe ha inviato una risposta non valida al nostro comando "%1" - + Ham Radio Deluxe failed to reply to command "%1" %2 Ham Radio Deluxe non ha risposto al comando "%1"%2 - + Ham Radio Deluxe retries exhausted sending command "%1" Ham Radio Deluxe ritenta esaurito il comando di invio "%1" - + Ham Radio Deluxe didn't respond to command "%1" as expected Ham Radio Deluxe non ha risposto al comando "%1" come previsto @@ -1568,178 +1573,180 @@ Errore: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error Errore di inizializzazione di Hamlib - + Hamlib settings file error: %1 at character offset %2 Errore del file delle impostazioni di Hamlib:%1 all'offset del carattere %2 - + Hamlib settings file error: top level must be a JSON object Errore del file delle impostazioni di Hamlib: il livello principale deve essere un oggetto JSON - + Hamlib settings file error: config must be a JSON object Errore del file delle impostazioni di Hamlib: config deve essere un oggetto JSON - + Unsupported CAT type Tipo CAT non supportato - + Hamlib error: %1 while %2 Errore Hamlib: %1 mentre %2 - + opening connection to rig apertura connessione al rig - + getting current frequency ottenere la frequenza corrente - + getting current mode ottenere la modalità corrente - - + + exchanging VFOs scambio di VFO - - + + getting other VFO frequency ottenere altra frequenza VFO - + getting other VFO mode ottenere altra modalità VFO - + + setting current VFO impostazione del VFO corrente - + getting frequency ottenere la frequenza - + getting mode ottenere il modo - - + + + getting current VFO ottenere il VFO corrente - - - - + + + + getting current VFO frequency ottenere la frequenza del VFO corrente - - - - - - + + + + + + setting frequency impostazione della frequenza - - - - + + + + getting current VFO mode ottenere il modo del VFO corrente - - - - - + + + + + setting current VFO mode impostare il modo del VFO corrente - - + + setting/unsetting split mode impostazione / disinserimento della modalità split - - + + setting split mode - + setting split TX frequency and mode impostazione della frequenza e della modalità TX divise - + setting split TX frequency impostazione della frequenza Split TX - + getting split TX VFO mode ottenere la modalità split VFO TX - + setting split TX VFO mode impostazione della modalità VFO split TX - + getting PTT state ottenere lo stato PTT - + setting PTT on attivare PTT - + setting PTT off disattivare PTT - + setting a configuration item impostazione di un elemento di configurazione - + getting a configuration item ottenere un elemento di configurazione @@ -1764,6 +1771,26 @@ Errore: %2 - %3 IARURegions + + + All + + + + + Region 1 + + + + + Region 2 + + + + + Region 3 + + @@ -1784,110 +1811,206 @@ Errore: %2 - %3 Nominativo - + Start Inizio - - + + dd/MM/yyyy HH:mm:ss dd/MM/yyyy HH:mm:ss - + End Fine - + Mode Modo - + Band Banda - + Rpt Sent Rpt Inviato - + Rpt Rcvd Rpt Rcvt - + Grid Griglia - + Name Nome - + Tx power Potenza Tx - - + + + Retain Mantieni - + Comments Commenti - + Operator Operatore - + Exch sent Exch inviato - + Rcvd Rcvt - - + + Prop Mode + + + + + Aircraft scatter + + + + + Aurora-E + + + + + Aurora + + + + + Back scatter + + + + + Echolink + + + + + Earth-moon-earth + + + + + Sporadic E + + + + + F2 Reflection + + + + + Field aligned irregularities + + + + + Internet-assisted + + + + + Ionoscatter + + + + + IRLP + + + + + Meteor scatter + + + + + Non-satellite repeater or transponder + + + + + Rain scatter + + + + + Satellite + + + + + Trans-equatorial + + + + + Troposheric ducting + + + + + Invalid QSO Data Dati QSO non validi - + Check exchange sent and received Controlla lo scambio inviato e ricevuto - + Check all fields Controlla tutti i campi - + Log file error Errore file di Log - + Cannot open "%1" for append Impossibile aprire "%1" per aggiungere - + Error: %1 Errore: %1 @@ -1895,35 +2018,35 @@ Errore: %2 - %3 LotWUsers::impl - + Network Error - SSL/TLS support not installed, cannot fetch: '%1' Errore di rete - Supporto SSL / TLS non installato, impossibile recuperare: '%1' - + Network Error - Too many redirects: '%1' Errore di rete - Troppi reindirizzamenti: '%1' - + Network Error: %1 Errore di rete: %1 - + File System Error - Cannot commit changes to: "%1" Errore del file system - Impossibile eseguire il commit delle modifiche a: "%1" - + File System Error - Cannot open file: "%1" Error(%2): %3 @@ -1932,7 +2055,7 @@ Error(%2): %3 Errore (%2):%3 - + File System Error - Cannot write to file: "%1" Error(%2): %3 @@ -1950,12 +2073,12 @@ Errore (%2):%3 - - - - - - + + + + + + Band Activity Attività di Banda @@ -1967,11 +2090,11 @@ Errore (%2):%3 - - - - - + + + + + Rx Frequency Frequenza Rx @@ -2433,7 +2556,7 @@ Non disponibile per i possessori di nominativi non standard. - + Fox Fox @@ -3287,7 +3410,7 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). - + Runaway Tx watchdog Watchdog Tx sfuggito @@ -3558,198 +3681,198 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). FT4 - + Rig Control Error Errore di controllo rig - - - + + + Receiving Ricevente - + Do you want to reconfigure the radio interface? Vuoi riconfigurare l'interfaccia radio? - + Error Scanning ADIF Log Errore durante la scansione del registro ADIF - + Scanned ADIF log, %1 worked before records created Log ADIF scansionato,%1 ha funzionato prima della creazione dei record - + Error Loading LotW Users Data Errore durante il caricamento dei dati degli utenti di LotW - + Error Writing WAV File Errore durante la scrittura del file WAV - + Configurations... Configurazioni... - - - - - - - - + + + + + - - - - - - - + + + + + + + + + + Message Messaggio - + Error Killing jt9.exe Process Errore durante l'uccisione del processo jt9.exe - + KillByName return code: %1 Codice di ritorno KillByName:%1 - + Error removing "%1" Errore durante la rimozione di "%1" - + Click OK to retry Fai clic su OK per riprovare - - + + Improper mode Modalità impropria - - + + File Open Error Errore apertura file - - - - - + + + + + Cannot open "%1" for append: %2 Impossibile aprire "%1" per aggiungere:%2 - + Error saving c2 file Errore salvataggio file c2 - + Error in Sound Input Errore nell'ingresso audio - + Error in Sound Output Errore nell'uscita audio - - - + + + Single-Period Decodes Decodifiche a periodo singolo - - - + + + Average Decodes Media Decodifiche - + Change Operator Cambio Operatore - + New operator: Nuovo operatore: - + Status File Error Errore del file di stato - - + + Cannot open "%1" for writing: %2 Impossibile aprire "%1" per la scrittura:%2 - + Subprocess Error Errore sottoprocesso - + Subprocess failed with exit code %1 Il sottoprocesso non è riuscito con il codice di uscita%1 - - + + Running: %1 %2 In esecuzione: %1 %2 - + Subprocess error Errore sottoprocesso - + Reference spectrum saved Spettro di riferimento salvato - + Invalid data in fmt.all at line %1 Dati non validi in fmt.all alla riga%1 - + Good Calibration Solution Buona soluzione di calibrazione - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3762,17 +3885,17 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Elimina misure di calibrazione - + The "fmt.all" file will be renamed as "fmt.bak" Il file "fmt.all" verrà rinominato come "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3781,62 +3904,62 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). "Gli algoritmi, il codice sorgente, l'aspetto di WSJT-X e dei relativi programmi e le specifiche del protocollo per le modalità FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 sono Copyright (C) 2001-2020 di uno o più dei seguenti autori: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q e altri membri del WSJT Development Group. " - + No data read from disk. Wrong file format? Nessun dato letto dal disco. Formato file errato? - + Confirm Delete Conferma Eliminazione - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Sei sicuro di voler eliminare tutti i file * .wav e * .c2 in "%1"? - + Keyboard Shortcuts Scorciatoie da tastiera - + Special Mouse Commands Comandi speciali mouse - + No more files to open. Niente più file da aprire. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Scegli un'altra frequenza Tx. WSJT-X non trasmetterà consapevolmente un'altra modalità nella sottobanda WSPR a 30 m. - + WSPR Guard Band Banda di guardia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Scegli un'altra frequenza di composizione. WSJT-X non funzionerà in modalità Fox nelle sottobande FT8 standard. - + Fox Mode warning Avviso modalità Fox - + Last Tx: %1 Ultimo Tx:%1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3847,184 +3970,184 @@ Per fare ciò, selezionare "Attività operativa speciale" e "Contest VHF EU" sulle impostazioni | Scheda Avanzate. - + Should you switch to ARRL Field Day mode? Dovresti passare alla modalità Field Day di ARRL? - + Should you switch to RTTY contest mode? Dovresti passare alla modalità contest RTTY? - - - - + + + + Add to CALL3.TXT Aggiungi a CALL3.TXT - + Please enter a valid grid locator Inserisci un localizzatore di griglia valido - + Cannot open "%1" for read/write: %2 Impossibile aprire "%1" per lettura / scrittura:%2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 è già in CALL3.TXT, desideri sostituirlo? - + Warning: DX Call field is empty. Avviso: il campo Chiamata DX è vuoto. - + Log file error Errore nel file di registro - + Cannot open "%1" Impossibile aprire "%1" - + Error sending log to N1MM Errore durante l'invio del Log a N1MM - + Write returned "%1" Scrivi ha restituito "%1" - + Stations calling DXpedition %1 Stazioni che chiamano la DXpedition %1 - + Hound (Hound=Cane da caccia) Hound - + Tx Messages Messaggi Tx - - - + + + Confirm Erase Conferma Cancella - + Are you sure you want to erase file ALL.TXT? Sei sicuro di voler cancellare il file ALL.TXT? - - + + Confirm Reset Conferma Ripristina - + Are you sure you want to erase your contest log? Sei sicuro di voler cancellare il tuo Log del contest? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. In questo modo verranno rimossi tutti i record QSO per il contest corrente. Saranno conservati nel file di registro ADIF ma non saranno disponibili per l'esportazione nel registro Cabrillo. - + Cabrillo Log saved Log Cabrillo salvato - + Are you sure you want to erase file wsjtx_log.adi? Sei sicuro di voler cancellare il file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? Sei sicuro di voler cancellare la tabella hash WSPR? - + VHF features warning VHF presenta un avviso - + Tune digital gain Ottimizza il guadagno digitale - + Transmit digital gain Trasmetti Guadagno digitale - + Prefixes Prefissi - + Network Error Errore di Rete - + Error: %1 UDP server %2:%3 Errore:%1 Server UDP%2:%3 - + File Error Errore File - + Phase Training Disabled Fase di Allenamento Disabilitato - + Phase Training Enabled Fase di allenamento abilitato - + WD:%1m WD:%1m - - + + Log File Error Errore file di Log - + Are you sure you want to clear the QSO queues? Sei sicuro di voler cancellare le code QSO? @@ -4141,6 +4264,14 @@ Server UDP%2:%3 &Nuovo nome: + + NetworkAccessManager + + + Network SSL/TLS Errors + + + OmniRigTransceiver @@ -4187,7 +4318,7 @@ Server UDP%2:%3 Definito dall'utente - + Failed to open LotW users CSV file: '%1' Impossibile aprire ilf file CSV LotW degli utenti: '%1' @@ -4222,7 +4353,7 @@ Server UDP%2:%3 Errore lettura del file della tavolozza del display a cascata "%1: %2. - + Error writing waterfall palette file "%1": %2. Errore lettura del file della tavolozza del display a cascata "%1: %2. @@ -4232,10 +4363,10 @@ Server UDP%2:%3 - - - - + + + + File System Error Errore File System @@ -4258,31 +4389,31 @@ Errore(%3): %4 "%1" - - - + + + Network Error Errore di Rete - + Too many redirects: %1 Troppi reindirizzamenti: %1 - + Redirect not followed: %1 Reindirizzamento non seguito: %1 - + Cannot commit changes to: "%1" Impossibile eseguire il commit delle modifiche a: "%1" - + Cannot open file: "%1" Error(%2): %3 @@ -4291,14 +4422,14 @@ Error(%2): %3 Errore(%2): %3 - + Cannot make path: "%1" Impossibile creare il percorso: "%1" - + Cannot write to file: "%1" Error(%2): %3 @@ -4310,6 +4441,7 @@ Errore (%2):%3 SampleDownloader::impl + Download Samples Scarica campioni @@ -4341,8 +4473,12 @@ Errore (%2):%3 + Check this if you get SSL/TLS errors + + + Check this is you get SSL/TLS errors - Verifica che si ottengano errori SSL / TLS + Verifica che si ottengano errori SSL / TLS @@ -4728,8 +4864,8 @@ Errore (%2):%3 Grafico Ampio - - + + Read Palette Leggi Tavolozza @@ -6227,65 +6363,65 @@ Fare clic con il tasto destro per inserire ed eliminare le opzioni. main - - + + Fatal error Errore fatale - - + + Unexpected fatal error Errore fatale inatteso - + Another instance may be running Un'altra istanza potrebbe essere in esecuzione - + try to remove stale lock file? Provo a rimuovere il file di blocco non aggiornato? - + Failed to create a temporary directory Impossibile creare una directory temporanea - - + + Path: "%1" Percorso: "%1" - + Failed to create a usable temporary directory Impossibile creare una directory temporanea utilizzabile - + Another application may be locking the directory Un'altra applicazione potrebbe bloccare la directory - + Failed to create data directory Impossibile creare la directory dei dati - + path: "%1" percorso: "%1" - + Shared memory error Errore di memoria condivisa - + Unable to create shared memory segment Impossibile creare il segmento di memoria condivisa diff --git a/translations/wsjtx_ja.ts b/translations/wsjtx_ja.ts index b674e7ebb..1456488dc 100644 --- a/translations/wsjtx_ja.ts +++ b/translations/wsjtx_ja.ts @@ -129,17 +129,17 @@ 天文データ - + Doppler Tracking Error ドップラー追跡エラー - + Split operating is required for Doppler tracking ドップラー追跡にはスプリットオペレーションが必要です - + Go to "Menu->File->Settings->Radio" to enable split operation "メニュー->ファイル->設定->トランシーバー"と進んでスプリットをオンにします @@ -984,7 +984,7 @@ Error: %2 - %3 DisplayText - + &Erase 消去(&E) @@ -1068,6 +1068,11 @@ Error: %2 - %3 EqualizationToolsDialog::impl + + + Equalization Tools + + Phase @@ -1272,12 +1277,12 @@ Error: %2 - %3 Cabrilloログ(*.cbf) - + Cannot open "%1" for writing: %2 %2を書き込むための"%1"が開けません - + Export Cabrillo File Error Cabrilloファイルのエクスポートエラー @@ -1450,26 +1455,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region IARU地域 - - + + Mode モード - - + + Frequency 周波数 - - + + Frequency (MHz) 周波数(MHz) @@ -1477,86 +1482,86 @@ Error: %2 - %3 HRDTransceiver - - + + Failed to connect to Ham Radio Deluxe HamRadioDeluxeに接続できません - + Failed to open file "%1": %2. ファイルが開けません "%1": %2. - - + + Ham Radio Deluxe: no rig found HamRadioDeluxe: 無線機が見つかりません - + Ham Radio Deluxe: rig doesn't support mode HamRadioDeluxe: 無線機がそのモードに対応していません - + Ham Radio Deluxe: sent an unrecognised mode HamRadioDeluxe: 無効なモードです - + Ham Radio Deluxe: item not found in %1 dropdown list HamRadioDeluxe: %1ドロップダウンリストに項目がありません - + Ham Radio Deluxe: button not available HamRadioDeluxe: ボタンがありません - + Ham Radio Deluxe didn't respond as expected HamRadioDeluxe: 意図しないレスポンスが返ってきました - + Ham Radio Deluxe: rig has disappeared or changed HamRadioDeluxe: 無線機との接続が切れたか変更されました - + Ham Radio Deluxe send command "%1" failed %2 HamRadioDeluxe: コマンド"%1"が失敗しました%2 - - + + Ham Radio Deluxe: failed to write command "%1" HamRadioDeluxe: コマンド"%1"がエラーしました - + Ham Radio Deluxe sent an invalid reply to our command "%1" HamRadioDeluxe: コマンド"%1"に対し無効な返答が返ってきました - + Ham Radio Deluxe failed to reply to command "%1" %2 HamRadioDeluxe: コマンド"%1"に反応エラー%2 - + Ham Radio Deluxe retries exhausted sending command "%1" HamRadioDeluxe: コマンド"%1"が何度も失敗しました - + Ham Radio Deluxe didn't respond to command "%1" as expected HamRadioDeluxe: コマンド"%1"に対する返答が正しくありません @@ -1564,178 +1569,180 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error Hamlib初期化エラー - + Hamlib settings file error: %1 at character offset %2 Hamlib設定ファイルエラー: %2にて%1 - + Hamlib settings file error: top level must be a JSON object ファイルのトップレベルはJSONオブジェクトでなければいけません - + Hamlib settings file error: config must be a JSON object Hamlib設定エラー: JSONオブジェクトでなければなりません - + Unsupported CAT type サポートしていないCATタイプ - + Hamlib error: %1 while %2 Hamlibエラー: %1 %2 - + opening connection to rig 無線機への接続 - + getting current frequency 現周波数を取得 - + getting current mode 現モードを取得 - - + + exchanging VFOs VFO入れ替え - - + + getting other VFO frequency もう一方のVFOの周波数を取得 - + getting other VFO mode もう一方のVFOのモードを取得 - + + setting current VFO 現VFOを設定 - + getting frequency 周波数を取得 - + getting mode モードを取得 - - + + + getting current VFO 現VFOを取得 - - - - + + + + getting current VFO frequency 現VFOの周波数を取得 - - - - - - + + + + + + setting frequency 周波数を設定 - - - - + + + + getting current VFO mode 現VFOのモードを取得 - - - - - + + + + + setting current VFO mode 現VFOモードを設定 - - + + setting/unsetting split mode スプリットのオン/オフ - - + + setting split mode スプリットモードオン - + setting split TX frequency and mode スプリット送信周波数とモードをセット - + setting split TX frequency スプリット送信周波数をセット - + getting split TX VFO mode スプリットモードを取得 - + setting split TX VFO mode スプリット送信VFOのモードをセット - + getting PTT state PTT状態を取得 - + setting PTT on PTTオン - + setting PTT off PTTオフ - + setting a configuration item コンフィグレーション項目をセット - + getting a configuration item コンフィグレーション項目を取得 @@ -1760,6 +1767,26 @@ Error: %2 - %3 IARURegions + + + All + + + + + Region 1 + + + + + Region 2 + + + + + Region 3 + + @@ -1780,110 +1807,206 @@ Error: %2 - %3 コールサイン - + Start 開始 - - + + dd/MM/yyyy HH:mm:ss dd/MM/yyyy HH:mm:ss - + End 終了 - + Mode モード - + Band バンド - + Rpt Sent 送信レポート - + Rpt Rcvd 受信レポート - + Grid グリッド - + Name 名前 - + Tx power 送信電力 - - + + + Retain 残す - + Comments コメント - + Operator オペレータ - + Exch sent 送信 - + Rcvd 受信 - - + + Prop Mode + + + + + Aircraft scatter + + + + + Aurora-E + + + + + Aurora + + + + + Back scatter + + + + + Echolink + + + + + Earth-moon-earth + + + + + Sporadic E + + + + + F2 Reflection + + + + + Field aligned irregularities + + + + + Internet-assisted + + + + + Ionoscatter + + + + + IRLP + + + + + Meteor scatter + + + + + Non-satellite repeater or transponder + + + + + Rain scatter + + + + + Satellite + + + + + Trans-equatorial + + + + + Troposheric ducting + + + + + Invalid QSO Data 無効なQSOデータ - + Check exchange sent and received 送受信したナンバーをチェック - + Check all fields すべての項目をチェック - + Log file error ログファイルエラー - + Cannot open "%1" for append "%1"に追加できません - + Error: %1 エラー: %1 @@ -1891,35 +2014,35 @@ Error: %2 - %3 LotWUsers::impl - + Network Error - SSL/TLS support not installed, cannot fetch: '%1' ネットワークエラー SSL/TLSがインストールされていません: '%1' - + Network Error - Too many redirects: '%1' ネットワークエラー リダイレクト過多 '%1' - + Network Error: %1 ネットワークエラー: %1 - + File System Error - Cannot commit changes to: "%1" ファイルシステムエラー - 変更を反映できません: "%1" - + File System Error - Cannot open file: "%1" Error(%2): %3 @@ -1928,7 +2051,7 @@ Error(%2): %3 エラー(%2): %3 - + File System Error - Cannot write to file: "%1" Error(%2): %3 @@ -1946,12 +2069,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity バンド状況 @@ -1963,11 +2086,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency 受信周波数 @@ -2321,7 +2444,7 @@ Yellow when too low - + Fast 高速 @@ -2429,7 +2552,7 @@ Not available to nonstandard callsign holders. - + Fox Fox @@ -3139,611 +3262,611 @@ ENTERを押してテキストを登録リストに追加. WSJT-Xについて - + Waterfall ウォーターフォール - + Open 開く - + Ctrl+O - + Open next in directory ディレクトリ中の次のファイルを開く - + Decode remaining files in directory ディレクトリ中の残りのファイルをデコード - + Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir SaveDirのすべての*.wavと*.c2ファイルを削除 - + None 無し - + Save all すべて保存 - + Online User Guide オンラインユーザーガイド - + Keyboard shortcuts キーボードショートカット - + Special mouse commands 特別なマウス操作 - + JT9 - + Save decoded デコードしたメッセージを保存 - + Normal 標準 - + Deep ディープ - + Monitor OFF at startup 起動時モニターオフ - + Erase ALL.TXT ALL.TXTを消去 - + Erase wsjtx_log.adi wsjtx_log.adiを消去 - + Convert mode to RTTY for logging ログのためモードをRTTYに変換 - + Log dB reports to Comments dBレポートをコメントに記録 - + Prompt me to log QSO QSOをログするとき知らせる - + Blank line between decoding periods デコードタイミング間に空白行を入れる - + Clear DX Call and Grid after logging ログした後、DXコールサインとグリッドをクリア - + Display distance in miles 距離をマイルで表示 - + Double-click on call sets Tx Enable コールサインをダブルクリックして送信オン - - + + F7 - + Tx disabled after sending 73 73を送った後送信禁止 - - + + Runaway Tx watchdog Txウオッチドッグ発令 - + Allow multiple instances 複数のインスタンス起動許可 - + Tx freq locked to Rx freq 送信周波数を受信周波数にロック - + JT65 - + JT9+JT65 - + Tx messages to Rx Frequency window 送信メッセージを受信周波数ウィンドウへ - + Gray1 - + Show DXCC entity and worked B4 status DXCCエンティティと交信済みステータスを表示 - + Astronomical data 天文データ - + List of Type 1 prefixes and suffixes タイプ1プリフィックス、サフィックスのリスト - + Settings... 設定... - + Local User Guide 各国版ユーザーガイド - + Open log directory ログディレクトリを開く - + JT4 - + Message averaging メッセージ平均化 - + Enable averaging 平均化オン - + Enable deep search ディープサーチをオン - + WSPR WSPR - + Echo Graph エコーグラフ - + F8 - + Echo Echo - + EME Echo mode EMEエコーモード - + ISCAT - + Fast Graph 高速グラフ - + F9 - + &Download Samples ... サンプルをダウンロード(&D)... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>いろいろなモードのオーディオファイルをダウンロード.</p></body></html> - + MSK144 - + QRA64 - + Release Notes リリースノート - + Enable AP for DX Call DXコールのAPをオン - + FreqCal - + Measure reference spectrum 参照スペクトラムを測定 - + Measure phase response 位相応答を測定 - + Erase reference spectrum 参照スペクトラムを消去 - + Execute frequency calibration cycle 周波数較正実行 - + Equalization tools ... イコライザー... - + WSPR-LF WSPR-LF - + Experimental LF/MF mode 実験的LF/MFモード - + FT8 - - + + Enable AP AP使用 - + Solve for calibration parameters 較正パラメータ計算 - + Copyright notice 著作権表示 - + Shift+F1 - + Fox log Foxログ - + FT8 DXpedition Mode User Guide FT8 DXペディションモードユーザーガイド - + Reset Cabrillo log ... Cabrilloログをリセット... - + Color highlighting scheme ハイライト設定 - + Contest Log コンテストログ - + Export Cabrillo log ... Cabrilloログをエクスポート... - + Quick-Start Guide to WSJT-X 2.0 WSJT-X 2.0クイックスタートガイド - + Contest log コンテストログ - + Erase WSPR hashtable WSPRハッシュテーブルを消去 - + FT4 - + Rig Control Error 無線機制御エラー - - - + + + Receiving 受信中 - + Do you want to reconfigure the radio interface? 無線機インターフェイスを再構成しますか? - + Error Scanning ADIF Log ADIFログスキャンエラー - + Scanned ADIF log, %1 worked before records created ADIFログ検索. %1交信済み記録作成しました - + Error Loading LotW Users Data LotWユーザデータをロードできません - + Error Writing WAV File WAVファイルを書き込みできません - + Configurations... コンフィグレーション... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + Message メッセージ - + Error Killing jt9.exe Process jt9.exeプロセスを終了できません - + KillByName return code: %1 KillByNameリターンコード: %1 - + Error removing "%1" "%1"を削除できません - + Click OK to retry OKを押して再試行 - - + + Improper mode 不適切なモード - - + + File Open Error ファイルオープンエラー - - - - - + + + + + Cannot open "%1" for append: %2 "%2"を追加する"%1"が開けません - + Error saving c2 file c2ファイルを保存できません - + Error in Sound Input サウンド入力にエラー発生 - + Error in Sound Output サウンド出力にエラー発生 - - - + + + Single-Period Decodes シングルパスデコード - - - + + + Average Decodes 平均デコード - + Change Operator オペレータ交代 - + New operator: 新オペレータ: - + Status File Error ステータスファイルエラー - - + + Cannot open "%1" for writing: %2 %2を書き込むための"%1"が開けません - + Subprocess Error サブプロセスエラー - + Subprocess failed with exit code %1 サブプロセスエラー 終了コード %1 - - + + Running: %1 %2 実行中: %1 %2 - + Subprocess error サブプロセスエラー - + Reference spectrum saved 参照用スペクトラムを保存しました - + Invalid data in fmt.all at line %1 fmt.allの%1行目に無効なデータ - + Good Calibration Solution 較正良好 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3752,79 +3875,79 @@ ENTERを押してテキストを登録リストに追加. - + Delete Calibration Measurements 較正の測定結果を削除 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all"は"fmt.bak"に名前が変わります - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? ディスクからデータが読めません.フォーマットが合っていますか? - + Confirm Delete 削除確認 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? "%1"のすべての*.wavと*.c2ファイルを削除していいですか? - + Keyboard Shortcuts キーボードショートカット - + Special Mouse Commands 特別なマウス操作 - + No more files to open. これ以上開くファイルがありません. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 他の送信周波数を使ってください. WSJT-Xは30mバンドのWSPRサブバンド中の他のモードを受信せずに送信してしまいます. - + WSPR Guard Band WSPRガードバンド - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 他のダイヤル周波数を使ってください. WSJT-XはFT8の標準サブバンドでFoxモードを使えません。 - + Fox Mode warning Foxモード警告 - + Last Tx: %1 最終送信: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3834,183 +3957,183 @@ To do so, check 'Special operating activity' and 設定|詳細タブで設定変更してください. - + Should you switch to ARRL Field Day mode? ARRLフィールドデーモードに切り替えますか? - + Should you switch to RTTY contest mode? RTTYコンテストモードに切り替えますか? - - - - + + + + Add to CALL3.TXT CALL3.TXTへ追加 - + Please enter a valid grid locator 有効なグリッドロケータを入力してください - + Cannot open "%1" for read/write: %2 %2を読み書きするための"%1"が開けません - + %1 is already in CALL3.TXT, do you wish to replace it? %1 がすでにCALL3.TXTにセットされています。置き換えますか? - + Warning: DX Call field is empty. 警告 DXコールが空白です. - + Log file error ログファイルエラー - + Cannot open "%1" "%1"を開けません - + Error sending log to N1MM N1MMへログを送れません - + Write returned "%1" 応答"%1"を書き込み - + Stations calling DXpedition %1 DXペディション %1を呼ぶ局 - + Hound Hound - + Tx Messages 送信メッセージ - - - + + + Confirm Erase 消去確認 - + Are you sure you want to erase file ALL.TXT? ALL.TXTファイルを消去してよいですか? - - + + Confirm Reset リセット確認 - + Are you sure you want to erase your contest log? コンテストログを消去していいですか? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 現在のコンテストのQSO記録をすべて消去します。ADIFログには記録されますがCabrilloログにエクスポートすることはできません. - + Cabrillo Log saved Cabrilloログ保存しました - + Are you sure you want to erase file wsjtx_log.adi? wsjtx_log.adiを消してもよいですか? - + Are you sure you want to erase the WSPR hashtable? WSPRのハッシュテーブルを消してもよいですか? - + VHF features warning VHF機能警告 - + Tune digital gain チューンのデジタルゲイン - + Transmit digital gain 送信デジタルゲイン - + Prefixes プリフィックス - + Network Error ネットワークエラー - + Error: %1 UDP server %2:%3 エラー %1 UDPサーバー %2:%3 - + File Error ファイルエラー - + Phase Training Disabled 位相調整オフ - + Phase Training Enabled 位相調整オン - + WD:%1m WD:%1m - - + + Log File Error ログファイルエラー - + Are you sure you want to clear the QSO queues? QSO待ち行列をクリアしてもいいですか? @@ -4127,6 +4250,14 @@ UDPサーバー %2:%3 新しい名前(&N): + + NetworkAccessManager + + + Network SSL/TLS Errors + + + OmniRigTransceiver @@ -4140,19 +4271,19 @@ UDPサーバー %2:%3 OmniRig COMサーバーが開始できません - - + + OmniRig: don't know how to set rig frequency OmniRigが無線機周波数をセットできません - - + + OmniRig: timeout waiting for update from rig OmniRig: 無線機からの応答タイムアウト - + OmniRig COM/OLE error: %1 at %2: %3 (%4) OmniRig COM/OLEエラー: %1 at %2 %3 (%4) @@ -4168,7 +4299,6 @@ UDPサーバー %2:%3 QObject - Invalid rig name - \ & / not allowed 無効な名前 - \ & / は使えません @@ -4178,7 +4308,7 @@ UDPサーバー %2:%3 ユーサー定義 - + Failed to open LotW users CSV file: '%1' LotW CSVファイル '%1'が開けません @@ -4213,7 +4343,7 @@ UDPサーバー %2:%3 ウォーターフォールパレットファイル "%1": %2 が開けません. - + Error writing waterfall palette file "%1": %2. ウォーターフォールパレットファイル "%1": %2 に書き込めません. @@ -4223,10 +4353,10 @@ UDPサーバー %2:%3 - - - - + + + + File System Error ファイルシステムエラー @@ -4249,31 +4379,31 @@ Error(%3): %4 "%1" - - - + + + Network Error ネットワークエラー - + Too many redirects: %1 リダイレクト %1が多すぎます - + Redirect not followed: %1 リダイレクトができません %1 - + Cannot commit changes to: "%1" 変更を反映できません: "%1" - + Cannot open file: "%1" Error(%2): %3 @@ -4282,14 +4412,14 @@ Error(%2): %3 エラー(%2): %3 - + Cannot make path: "%1" パスを作成できません: "%1" - + Cannot write to file: "%1" Error(%2): %3 @@ -4301,6 +4431,7 @@ Error(%2): %3 SampleDownloader::impl + Download Samples サンプルをダウンロード @@ -4332,8 +4463,12 @@ Error(%2): %3 + Check this if you get SSL/TLS errors + + + Check this is you get SSL/TLS errors - チェックするとSSL/TLSエラーを表示 + チェックするとSSL/TLSエラーを表示 @@ -4720,8 +4855,8 @@ Error(%2): %3 ワイドグラフ - - + + Read Palette パレット読み込み @@ -6210,115 +6345,105 @@ Right click for insert and delete options. main - - + + Fatal error 致命的エラー - - + + Unexpected fatal error 予期せぬ致命的エラー - Where <rig-name> is for multi-instance support. ここで<rig-name>は複数インスタンスのサポート. - rig-name - 無線機名 + 無線機名 - Where <configuration> is an existing one. ここで<configuration>はすでに設定済みのもの. - configuration - コンフィグレーション + コンフィグレーション - Where <language> is <lang-code>[-<country-code>]. - ここで <language> は <lang-code>[-<country-code>]. + ここで <language> は <lang-code>[-<country-code>]. - language - 言語 + 言語 - Writable files in test location. Use with caution, for testing only. テスト用書き込み可能ファイル. 注意してテストだけに使うこと. - Command line error コマンドラインエラー - Command line help コマンドラインヘルプ - Application version アプリのバージョン - + Another instance may be running おそらく他のインスタンスが動作中 - + try to remove stale lock file? 古いロックファイルの削除を試みますか? - + Failed to create a temporary directory 一時的作業ディレクトリーが作成できません - - + + Path: "%1" パス:"%1" - + Failed to create a usable temporary directory 一時的作業ディレクトリが作成できません - + Another application may be locking the directory おそらく他のアプリがディレクトリをロックしています - + Failed to create data directory データ用ディレクトリの作成ができません - + path: "%1" パス: "%1" - + Shared memory error 共有メモリエラー - + Unable to create shared memory segment 共有メモリセグメントが作成できません diff --git a/translations/wsjtx_zh.ts b/translations/wsjtx_zh.ts index 21dbcd8d3..b0e394d0c 100644 --- a/translations/wsjtx_zh.ts +++ b/translations/wsjtx_zh.ts @@ -129,17 +129,17 @@ 天文数据 - + Doppler Tracking Error 多普勒跟踪错误 - + Split operating is required for Doppler tracking 多普勒跟踪需要异频操作 - + Go to "Menu->File->Settings->Radio" to enable split operation 转到 "菜单->档案->设置->无线电设备" 启用异频操作 @@ -984,7 +984,7 @@ Error: %2 - %3 DisplayText - + &Erase 擦除(&E) @@ -1068,6 +1068,11 @@ Error: %2 - %3 EqualizationToolsDialog::impl + + + Equalization Tools + + Phase @@ -1272,12 +1277,12 @@ Error: %2 - %3 卡布里略日志 (*.cbr) - + Cannot open "%1" for writing: %2 无法打开 "%1" 进行写入: %2 - + Export Cabrillo File Error 导出卡布里略文件错误 @@ -1477,86 +1482,86 @@ Error: %2 - %3 HRDTransceiver - - + + Failed to connect to Ham Radio Deluxe 无法连接到 Ham Radio Deluxe - + Failed to open file "%1": %2. 无法打开文件 "%1": %2. - - + + Ham Radio Deluxe: no rig found Ham Radio Deluxe: 未找到无线电设备 - + Ham Radio Deluxe: rig doesn't support mode Ham Radio Deluxe: 无线电设备不支持模式 - + Ham Radio Deluxe: sent an unrecognised mode Ham Radio Deluxe: 发送了一个无法识别的模式 - + Ham Radio Deluxe: item not found in %1 dropdown list Ham Radio Deluxe: 在 %1 下拉列表中找不到项目 - + Ham Radio Deluxe: button not available Ham Radio Deluxe: 按钮不可用 - + Ham Radio Deluxe didn't respond as expected Ham Radio Deluxe 没有如预期的那样响应 - + Ham Radio Deluxe: rig has disappeared or changed Ham Radio Deluxe: 无线电设备已经消失或改变 - + Ham Radio Deluxe send command "%1" failed %2 Ham Radio Deluxe 发送命令 "%1" 失败 %2 - - + + Ham Radio Deluxe: failed to write command "%1" Ham Radio Deluxe: 无法写入命令 "%1" - + Ham Radio Deluxe sent an invalid reply to our command "%1" Ham Radio Deluxe 对我们的命令发出了无效的回复 "%1" - + Ham Radio Deluxe failed to reply to command "%1" %2 Ham Radio Deluxe 无法回复命令 "%1" %2 - + Ham Radio Deluxe retries exhausted sending command "%1" Ham Radio Deluxe 发送命令重试失败 "%1" - + Ham Radio Deluxe didn't respond to command "%1" as expected Ham Radio Deluxe 没有回应预期的命令 "%1" @@ -1564,178 +1569,180 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error Hamlib 初始化出错误 - + Hamlib settings file error: %1 at character offset %2 Hamlib 设置文件出错误: %1 字符偏移量 %2 - + Hamlib settings file error: top level must be a JSON object Hamlib 设置文件出错误: 顶层必须是 JSON 对象 - + Hamlib settings file error: config must be a JSON object Hamlib 设置文件出错误: 配置必须是JSON对象 - + Unsupported CAT type 不支持 CAT 类型 - + Hamlib error: %1 while %2 Hamlib 出错误: %1 当 %2 - + opening connection to rig 打开连接无线电设备 - + getting current frequency 获取当前频率 - + getting current mode 获取当前模式 - - + + exchanging VFOs 在 VFOs 之间切换 - - + + getting other VFO frequency 获取其他 VFO 频率 - + getting other VFO mode 获取其他 VFO 模式 - + + setting current VFO 设置当前 VFO - + getting frequency 获取频率 - + getting mode 获取模式 - - + + + getting current VFO 获取当前 VFO - - - - + + + + getting current VFO frequency 获取当前 VFO 频率 - - - - - - + + + + + + setting frequency 设置频率 - - - - + + + + getting current VFO mode 获取当前 VFO 模式 - - - - - + + + + + setting current VFO mode 设置当前 VFO 模式 - - + + setting/unsetting split mode 设置/取消 设置异频模式 - - + + setting split mode 设置异频模式 - + setting split TX frequency and mode 设置异频发射频率和模式 - + setting split TX frequency 设置异频发射频率 - + getting split TX VFO mode 获得异频发射 VFO 模式 - + setting split TX VFO mode 设置异频发射 VFO 模式 - + getting PTT state 获取PTT 状态 - + setting PTT on 设置PTT 开启 - + setting PTT off 设置PTT 关闭 - + setting a configuration item 设置配置项目 - + getting a configuration item 获取配置项目 @@ -1760,6 +1767,26 @@ Error: %2 - %3 IARURegions + + + All + + + + + Region 1 + + + + + Region 2 + + + + + Region 3 + + @@ -1780,110 +1807,206 @@ Error: %2 - %3 呼号 - + Start 开始 - - + + dd/MM/yyyy HH:mm:ss - + End 结束 - + Mode 模式 - + Band 波段 - + Rpt Sent 发送报告 - + Rpt Rcvd 接收报告 - + Grid 网格 - + Name 姓名 - + Tx power 发射功率 - - + + + Retain 保留 - + Comments 注释 - + Operator 操作员 - + Exch sent 交换发送 - + Rcvd 接收 - - + + Prop Mode + + + + + Aircraft scatter + + + + + Aurora-E + + + + + Aurora + + + + + Back scatter + + + + + Echolink + + + + + Earth-moon-earth + + + + + Sporadic E + + + + + F2 Reflection + + + + + Field aligned irregularities + + + + + Internet-assisted + + + + + Ionoscatter + + + + + IRLP + + + + + Meteor scatter + + + + + Non-satellite repeater or transponder + + + + + Rain scatter + + + + + Satellite + + + + + Trans-equatorial + + + + + Troposheric ducting + + + + + Invalid QSO Data 无效的通联数据 - + Check exchange sent and received 选择已交换的发送和接收 - + Check all fields 检查所有字段 - + Log file error 日志文件错误 - + Cannot open "%1" for append 无法打开 "%1" 的追加 - + Error: %1 错误: %1 @@ -1891,35 +2014,35 @@ Error: %2 - %3 LotWUsers::impl - + Network Error - SSL/TLS support not installed, cannot fetch: '%1' 网络错误 - SSL/TLS 支持未安装, 无法提取: '%1' - + Network Error - Too many redirects: '%1' 网络错误 - 重定向太多: '%1' - + Network Error: %1 网络错误: %1 - + File System Error - Cannot commit changes to: "%1" 文件系统错误 - 无法将更改提交到: "%1" - + File System Error - Cannot open file: "%1" Error(%2): %3 @@ -1928,7 +2051,7 @@ Error(%2): %3 错误(%2): %3 - + File System Error - Cannot write to file: "%1" Error(%2): %3 @@ -1946,12 +2069,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity 波段活动 @@ -1963,11 +2086,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency 接收信息 @@ -2429,7 +2552,7 @@ Not available to nonstandard callsign holders. - + Fox 狐狸 @@ -3283,7 +3406,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog 运行发射监管计时器 @@ -3554,198 +3677,198 @@ list. The list can be maintained in Settings (F2). - + Rig Control Error 无线电设备控制错误 - - - + + + Receiving 接收 - + Do you want to reconfigure the radio interface? 是否要重新配置无线电设备接口? - + Error Scanning ADIF Log 扫描 ADIF 日志错误 - + Scanned ADIF log, %1 worked before records created 扫描 ADIF 日志, %1 创建曾经通联记录 - + Error Loading LotW Users Data 加载 LotW 用户数据错误 - + Error Writing WAV File 写入 WAV 文件时错误 - + Configurations... 配置文件... - - - - - - - - + + + + + - - - - - - - + + + + + + + + + + Message 信息 - + Error Killing jt9.exe Process 错误终止 jt9.exe 进程 - + KillByName return code: %1 按名称终止返回代码: %1 - + Error removing "%1" 删除时出错误 "%1" - + Click OK to retry 单击 确定 重试 - - + + Improper mode 模式不正确 - - + + File Open Error 文件打开出错误 - - - - - + + + + + Cannot open "%1" for append: %2 无法打开 "%1" 用于附加: %2 - + Error saving c2 file 保存 c2 文件出错误 - + Error in Sound Input 声音输入出错误 - + Error in Sound Output 声音输出错误 - - - + + + Single-Period Decodes 单周期解码 - - - + + + Average Decodes 平均解码 - + Change Operator 改变操作员 - + New operator: 新操作员: - + Status File Error 状态文件错误 - - + + Cannot open "%1" for writing: %2 无法打开 "%1" 用于写入: %2 - + Subprocess Error 子流程出错误 - + Subprocess failed with exit code %1 子流程失败, 退出代码为 %1 - - + + Running: %1 %2 运行: %1 %2 - + Subprocess error 子进程错误 - + Reference spectrum saved 保存参考频谱 - + Invalid data in fmt.all at line %1 在 %1 行中 fmt.all 的无效数据 - + Good Calibration Solution 良好的校准解决方案 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3754,67 +3877,67 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements 删除校准测量值 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all" 文件将重命名为 "fmt.bak" - + No data read from disk. Wrong file format? 没有从磁盘读取数据. 文件格式出错误? - + Confirm Delete 确认删除 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? 是否确实要删除所有 *.wav 和 *.c2 文件在 "%1"? - + Keyboard Shortcuts 键盘快捷键 - + Special Mouse Commands 滑鼠特殊组合 - + No more files to open. 没有要打开的文件. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 请选择其他发射频率. WSJT-X 不会故意传输另一个模式在 WSPR 30米子波段上. - + WSPR Guard Band WSPR保护波段 - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 请选择其它频率. WSJT-X 不会运行狐狸模式在标准 FT8 波段. - + Fox Mode warning 狐狸模式警告 - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3823,12 +3946,12 @@ list. The list can be maintained in Settings (F2). "WSJT-X 的算法, 源代码, 外观和感觉及相关程序,和协议规格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版权 (C) 2001-2019 由以下一个或多个作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 开发组的其他成员." - + Last Tx: %1 最后发射: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3839,183 +3962,183 @@ To do so, check 'Special operating activity' and 设置高级选项卡上的 '欧洲 VHF 竞赛'. - + Should you switch to ARRL Field Day mode? 是否应切换到 ARRL Field Day 模式? - + Should you switch to RTTY contest mode? 是否应切换到 RTTY 竞赛模式? - - - - + + + + Add to CALL3.TXT 添加到 CALL3.TXT - + Please enter a valid grid locator 请输入有效的网格定位 - + Cannot open "%1" for read/write: %2 无法打开 "%1" 用于读/写: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 已经在 CALL3.TXT, 你想替换它吗? - + Warning: DX Call field is empty. 警告: DX 呼号字段为空. - + Log file error 日志文件错误 - + Cannot open "%1" 无法打开 "%1" - + Error sending log to N1MM 将日志发送到 N1MM 时发生错误 - + Write returned "%1" 写入返回 "%1" - + Stations calling DXpedition %1 呼叫远征电台 %1 - + Hound 猎犬 - + Tx Messages 发射信息 - - - + + + Confirm Erase 确认擦除 - + Are you sure you want to erase file ALL.TXT? 是否确实要擦除 ALL.TXT 文件? - - + + Confirm Reset 确认重置 - + Are you sure you want to erase your contest log? 是否确实要擦除竞赛日志? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 执行此操作将删除当前竞赛的所有通联记录. 它们将保留在 ADIF 日志文件中, 但无法导出到您的卡布里略日志中. - + Cabrillo Log saved 卡布里略日志已保存 - + Are you sure you want to erase file wsjtx_log.adi? 是否确实要擦除 wsjtx_log.adi 文件? - + Are you sure you want to erase the WSPR hashtable? 是否确实要擦除 WSPR 哈希表? - + VHF features warning VHF 功能警告 - + Tune digital gain 调谐数码增益 - + Transmit digital gain 传输数码增益 - + Prefixes 前缀 - + Network Error 网络错误 - + Error: %1 UDP server %2:%3 错误: %1 UDP 服务器 %2:%3 - + File Error 文件错误 - + Phase Training Disabled 已禁用阶段训练 - + Phase Training Enabled 已启用阶段训练 - + WD:%1m - - + + Log File Error 日志文件错误 - + Are you sure you want to clear the QSO queues? 是否确实要清除通联队列? @@ -4132,6 +4255,14 @@ UDP 服务器 %2:%3 新名称(&N): + + NetworkAccessManager + + + Network SSL/TLS Errors + + + OmniRigTransceiver @@ -4182,7 +4313,7 @@ UDP 服务器 %2:%3 用户定义 - + Failed to open LotW users CSV file: '%1' 无法打开 LotW 用户 CSV 文件: '%1' @@ -4217,7 +4348,7 @@ UDP 服务器 %2:%3 读取瀑布调色板文件时出错误 "%1": %2. - + Error writing waterfall palette file "%1": %2. 读取瀑布调色板文件时出错误 "%1": %2. @@ -4227,10 +4358,10 @@ UDP 服务器 %2:%3 - - - - + + + + File System Error 文件系统出错误 @@ -4253,31 +4384,31 @@ Error(%3): %4 "%1" - - - + + + Network Error 网络出错误 - + Too many redirects: %1 太多重定向: %1 - + Redirect not followed: %1 未遵循重定向:%1 - + Cannot commit changes to: "%1" 无法将更改提交给: "%1" - + Cannot open file: "%1" Error(%2): %3 @@ -4286,14 +4417,14 @@ Error(%2): %3 出错误(%2): %3 - + Cannot make path: "%1" 无法创建路径: "%1" - + Cannot write to file: "%1" Error(%2): %3 @@ -4305,6 +4436,7 @@ Error(%2): %3 SampleDownloader::impl + Download Samples 下载样本 @@ -4336,8 +4468,12 @@ Error(%2): %3 + Check this if you get SSL/TLS errors + + + Check this is you get SSL/TLS errors - 选择, 当你得到SSL/TLS错误 + 选择, 当你得到SSL/TLS错误 @@ -4723,8 +4859,8 @@ Error(%2): %3 宽图 - - + + Read Palette 读取调色板 @@ -5884,6 +6020,11 @@ Right click for insert and delete options. Decode Highlightling 解码突出显示 + + + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> + + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> @@ -6211,65 +6352,65 @@ Right click for insert and delete options. main - - + + Fatal error 严重出错误 - - + + Unexpected fatal error 意外的严重出错误 - + Another instance may be running 另一个应用程序可能正在运行 - + try to remove stale lock file? 尝试删除陈旧的锁文件? - + Failed to create a temporary directory 无法创建临时目录 - - + + Path: "%1" 目录: "%1" - + Failed to create a usable temporary directory 无法创建可用的临时目录 - + Another application may be locking the directory 另一个应用程序可能正在锁定目录 - + Failed to create data directory 无法创建数据目录 - + path: "%1" 目录: "%1" - + Shared memory error 共享内存错误 - + Unable to create shared memory segment 无法创建共享内存段 diff --git a/translations/wsjtx_zh_HK.ts b/translations/wsjtx_zh_HK.ts index df6c510b8..4da1d6333 100644 --- a/translations/wsjtx_zh_HK.ts +++ b/translations/wsjtx_zh_HK.ts @@ -129,17 +129,17 @@ 天文資料 - + Doppler Tracking Error 多普勒跟蹤錯誤 - + Split operating is required for Doppler tracking 多普勒跟蹤需要異頻操作 - + Go to "Menu->File->Settings->Radio" to enable split operation 轉到 "菜單->檔案->設置->無線電設備" 啟用異頻操作 @@ -984,7 +984,7 @@ Error: %2 - %3 DisplayText - + &Erase 擦除(&E) @@ -1068,6 +1068,11 @@ Error: %2 - %3 EqualizationToolsDialog::impl + + + Equalization Tools + + Phase @@ -1272,12 +1277,12 @@ Error: %2 - %3 卡布里略日誌 (*.cbr) - + Cannot open "%1" for writing: %2 無法開啟 "%1" 用於寫入: %2 - + Export Cabrillo File Error 匯出卡布裡略檔案錯誤 @@ -1477,86 +1482,86 @@ Error: %2 - %3 HRDTransceiver - - + + Failed to connect to Ham Radio Deluxe 無法連接到 Ham Radio Deluxe - + Failed to open file "%1": %2. 無法開啟檔案 "%1": %2. - - + + Ham Radio Deluxe: no rig found Ham Radio Deluxe: 未找到無線電設備 - + Ham Radio Deluxe: rig doesn't support mode Ham Radio Deluxe: 無線電設備不支持模式 - + Ham Radio Deluxe: sent an unrecognised mode Ham Radio Deluxe: 發送了一個無法識別的模式 - + Ham Radio Deluxe: item not found in %1 dropdown list Ham Radio Deluxe: 在 %1 下拉清單中找不到項目 - + Ham Radio Deluxe: button not available Ham Radio Deluxe: 按鈕不可用 - + Ham Radio Deluxe didn't respond as expected Ham Radio Deluxe 沒有如預期的那樣響應 - + Ham Radio Deluxe: rig has disappeared or changed Ham Radio Deluxe: 無線電設備已經消失或改變 - + Ham Radio Deluxe send command "%1" failed %2 Ham Radio Deluxe 發送命令 "%1" 失敗 %2 - - + + Ham Radio Deluxe: failed to write command "%1" Ham Radio Deluxe: 無法寫入命令 "%1" - + Ham Radio Deluxe sent an invalid reply to our command "%1" Ham Radio Deluxe 對我們的命令發出了無效的回復 "%1" - + Ham Radio Deluxe failed to reply to command "%1" %2 Ham Radio Deluxe 無法回復命令 "%1" %2 - + Ham Radio Deluxe retries exhausted sending command "%1" Ham Radio Deluxe 發送命令重試失敗 "%1" - + Ham Radio Deluxe didn't respond to command "%1" as expected Ham Radio Deluxe 沒有回應預期的命令 "%1" @@ -1564,178 +1569,180 @@ Error: %2 - %3 HamlibTransceiver - - + + Hamlib initialisation error Hamlib 初始化出錯誤 - + Hamlib settings file error: %1 at character offset %2 Hamlib 設置檔案出錯誤: %1 字符偏移量 %2 - + Hamlib settings file error: top level must be a JSON object Hamlib 設置檔案出錯誤: 頂層必須是 JSON 對象 - + Hamlib settings file error: config must be a JSON object Hamlib 設置檔案出錯誤: 配置必須是JSON對象 - + Unsupported CAT type 不支持 CAT 類型 - + Hamlib error: %1 while %2 Hamlib 出錯誤: %1 當 %2 - + opening connection to rig 開啟連接無線電設備 - + getting current frequency 獲取當前頻率 - + getting current mode 獲取當前模式 - - + + exchanging VFOs 在 VFOs 之間切換 - - + + getting other VFO frequency 獲取其他 VFO 頻率 - + getting other VFO mode 獲取其他 VFO 模式 - + + setting current VFO 設置當前 VFO - + getting frequency 獲取頻率 - + getting mode 獲取模式 - - + + + getting current VFO 獲取當前 VFO - - - - + + + + getting current VFO frequency 獲取當前 VFO 頻率 - - - - - - + + + + + + setting frequency 設置頻率 - - - - + + + + getting current VFO mode 獲取當前 VFO 模式 - - - - - + + + + + setting current VFO mode 設置當前 VFO 模式 - - + + setting/unsetting split mode 設置/取消 設置異頻模式 - - + + setting split mode 設置異頻模式 - + setting split TX frequency and mode 設置異頻發射頻率和模式 - + setting split TX frequency 設置異頻發射頻率 - + getting split TX VFO mode 獲得異頻發射 VFO 模式 - + setting split TX VFO mode 設置異頻發射 VFO 模式 - + getting PTT state 獲取PTT 狀態 - + setting PTT on 設置PTT 開啟 - + setting PTT off 設置PTT 關閉 - + setting a configuration item 設置配置項目 - + getting a configuration item 獲取配置項目 @@ -1760,6 +1767,26 @@ Error: %2 - %3 IARURegions + + + All + + + + + Region 1 + + + + + Region 2 + + + + + Region 3 + + @@ -1780,110 +1807,206 @@ Error: %2 - %3 呼號 - + Start 開始 - - + + dd/MM/yyyy HH:mm:ss - + End 結束 - + Mode 模式 - + Band 波段 - + Rpt Sent 發出報告 - + Rpt Rcvd 接收報告 - + Grid 網格 - + Name 姓名 - + Tx power 發射功率 - - + + + Retain 保留 - + Comments 注釋 - + Operator 操作員 - + Exch sent 交換發送 - + Rcvd 接收 - - + + Prop Mode + + + + + Aircraft scatter + + + + + Aurora-E + + + + + Aurora + + + + + Back scatter + + + + + Echolink + + + + + Earth-moon-earth + + + + + Sporadic E + + + + + F2 Reflection + + + + + Field aligned irregularities + + + + + Internet-assisted + + + + + Ionoscatter + + + + + IRLP + + + + + Meteor scatter + + + + + Non-satellite repeater or transponder + + + + + Rain scatter + + + + + Satellite + + + + + Trans-equatorial + + + + + Troposheric ducting + + + + + Invalid QSO Data 無效的通聯資料 - + Check exchange sent and received 選擇已交換的發出及接收 - + Check all fields 檢查所有欄位 - + Log file error 日誌檔案錯誤 - + Cannot open "%1" for append 無法開啟 "%1" 的附加 - + Error: %1 錯誤: %1 @@ -1891,35 +2014,35 @@ Error: %2 - %3 LotWUsers::impl - + Network Error - SSL/TLS support not installed, cannot fetch: '%1' 網路錯誤 - SSL/TLS 支援未安裝, 無法提取: '%1' - + Network Error - Too many redirects: '%1' 網路錯誤 - 重定向太多: '%1' - + Network Error: %1 網路錯誤: %1 - + File System Error - Cannot commit changes to: "%1" 檔案系統錯誤 - 無法將變更提交到: "%1" - + File System Error - Cannot open file: "%1" Error(%2): %3 @@ -1928,7 +2051,7 @@ Error(%2): %3 錯誤(%2): %3 - + File System Error - Cannot write to file: "%1" Error(%2): %3 @@ -1946,12 +2069,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity 波段活動 @@ -1963,11 +2086,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency 接收信息 @@ -2429,7 +2552,7 @@ Not available to nonstandard callsign holders. - + Fox 狐狸 @@ -3283,7 +3406,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog 運行發射監管計時器 @@ -3554,198 +3677,198 @@ list. The list can be maintained in Settings (F2). - + Rig Control Error 無線電設備控制錯誤 - - - + + + Receiving 接收 - + Do you want to reconfigure the radio interface? 是否要重新配置無線電設備接口? - + Error Scanning ADIF Log 掃描 ADIF 紀錄錯誤 - + Scanned ADIF log, %1 worked before records created 掃描 ADIF 紀錄紀錄, %1 建立曾經通聯紀錄 - + Error Loading LotW Users Data 載入 LotW 使用者資料錯誤 - + Error Writing WAV File 寫入 WAV 檔案時錯誤 - + Configurations... 設定檔案... - - - - - - - - + + + + + - - - - - - - + + + + + + + + + + Message 信息 - + Error Killing jt9.exe Process 錯誤終止 jt9.exe 程序 - + KillByName return code: %1 按結束名稱返回代碼: %1 - + Error removing "%1" 刪除時出錯誤 "%1" - + Click OK to retry 單擊 確定 重試 - - + + Improper mode 模式不正確 - - + + File Open Error 檔案開啟出錯誤 - - - - - + + + + + Cannot open "%1" for append: %2 無法開啟 "%1" 用於附加: %2 - + Error saving c2 file 保存c2檔案出錯誤 - + Error in Sound Input 聲音輸入出錯誤 - + Error in Sound Output 聲音輸出錯誤 - - - + + + Single-Period Decodes 單週期解碼 - - - + + + Average Decodes 平均解碼 - + Change Operator 變更操作員 - + New operator: 新操作員: - + Status File Error 狀態檔案錯誤 - - + + Cannot open "%1" for writing: %2 無法開啟 "%1" 用於寫入: %2 - + Subprocess Error 子流程出錯誤 - + Subprocess failed with exit code %1 子流程失敗, 退出代碼為 %1 - - + + Running: %1 %2 運行: %1 %2 - + Subprocess error 子進程出錯誤 - + Reference spectrum saved 儲存參考頻譜 - + Invalid data in fmt.all at line %1 在 %1 行中 fmt.all 的不合法資料 - + Good Calibration Solution 良好的校準解決方案 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3754,67 +3877,67 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements 刪除校準測量值 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all" 檔案將重新命名為 "fmt.bak" - + No data read from disk. Wrong file format? 沒有從磁盤讀取數據. 檔案格式出錯誤? - + Confirm Delete 確認刪除 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? 是否確實要刪除所有 *.wav 和 *.c2 檔案在 "%1"? - + Keyboard Shortcuts 鍵盤快捷鍵 - + Special Mouse Commands 滑鼠特殊組合 - + No more files to open. 沒有要打開的檔. - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 請選擇其他發射頻率. WSJT-X 不會故意傳輸另一個模式在 WSPR 30米子波段上. - + WSPR Guard Band WSPR保護波段 - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 請選擇其他頻率. WSJT-X 不會運行狐狸模式在標準 FT8 波段. - + Fox Mode warning 狐狸模式警告 - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3823,12 +3946,12 @@ list. The list can be maintained in Settings (F2). "WSJT-X 的演演演算法, 原始碼, 外觀和感覺及相關程式, 和協定規格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版權 (C) 2001-2019 由以下一個或多個作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 開發組的其他成員." - + Last Tx: %1 最後發射: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3839,183 +3962,183 @@ To do so, check 'Special operating activity' and 設置高級選項卡上的 '歐洲 VHF 競賽'. - + Should you switch to ARRL Field Day mode? 是否應切換到 ARRL Field Day 模式? - + Should you switch to RTTY contest mode? 是否應切換到 RTTY 競賽模式? - - - - + + + + Add to CALL3.TXT 添加到 CALL3.TXT - + Please enter a valid grid locator 請輸入有效的網格定位 - + Cannot open "%1" for read/write: %2 無法開啟 "%1" 用於讀/寫: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 已經在 CALL3.TXT, 你想替換它嗎? - + Warning: DX Call field is empty. 警告: DX 呼號欄位為空. - + Log file error 日誌檔案錯誤 - + Cannot open "%1" 無法開啟 "%1" - + Error sending log to N1MM 將日誌傳送到 N1MM 時發生錯誤 - + Write returned "%1" 寫入返回 "%1" - + Stations calling DXpedition %1 呼叫遠征電臺 %1 - + Hound 獵犬 - + Tx Messages 發射信息 - - - + + + Confirm Erase 確認擦除 - + Are you sure you want to erase file ALL.TXT? 是否確實要擦除 ALL.Txt 檔案? - - + + Confirm Reset 確認重置 - + Are you sure you want to erase your contest log? 是否確實要擦除競賽日誌? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 執行此動作將移除目前競賽的所有通聯記錄. 它們將保留在 ADIF 日誌檔案中, 但無法匯出到您的卡布里略日誌中. - + Cabrillo Log saved 卡布里略日誌已儲存 - + Are you sure you want to erase file wsjtx_log.adi? 是否確實要擦除 wsjtx_log.adi 檔案? - + Are you sure you want to erase the WSPR hashtable? 是否確定要擦除 WSPR 哈希表? - + VHF features warning VHF 功能警告 - + Tune digital gain 調諧數碼增益 - + Transmit digital gain 傳輸數碼增益 - + Prefixes 前綴 - + Network Error 網路錯誤 - + Error: %1 UDP server %2:%3 錯誤: %1 UDP 服務器 %2:%3 - + File Error 檔案錯誤 - + Phase Training Disabled 關閉階段訓練 - + Phase Training Enabled 開啟階段訓練 - + WD:%1m - - + + Log File Error 日誌檔案錯誤 - + Are you sure you want to clear the QSO queues? 是否要清除通聯佇列? @@ -4132,6 +4255,14 @@ UDP 服務器 %2:%3 新名稱(&N): + + NetworkAccessManager + + + Network SSL/TLS Errors + + + OmniRigTransceiver @@ -4174,7 +4305,7 @@ UDP 服務器 %2:%3 QObject Invalid rig name - \ & / not allowed - 無效的無線電裝置名稱 - \ & / 不允許 + 無效的無線電裝置名稱 - \ & / 不允許 @@ -4182,7 +4313,7 @@ UDP 服務器 %2:%3 用戶定義 - + Failed to open LotW users CSV file: '%1' 無法開啟 LotW 使用者 CSV 檔案: '%1' @@ -4217,7 +4348,7 @@ UDP 服務器 %2:%3 讀取瀑布調色板檔案時出錯誤 "%1": %2. - + Error writing waterfall palette file "%1": %2. 讀取瀑布調色板檔案時出錯誤 "%1": %2. @@ -4227,10 +4358,10 @@ UDP 服務器 %2:%3 - - - - + + + + File System Error 檔案系統出錯誤 @@ -4253,31 +4384,31 @@ Error(%3): %4 "%1" - - - + + + Network Error 網絡錯誤 - + Too many redirects: %1 太多重定向: %1 - + Redirect not followed: %1 未遵循重定向:%1 - + Cannot commit changes to: "%1" 無法將更改提交給: "%1" - + Cannot open file: "%1" Error(%2): %3 @@ -4286,14 +4417,14 @@ Error(%2): %3 出錯誤(%2): %3 - + Cannot make path: "%1" 無法建立路徑: "%1" - + Cannot write to file: "%1" Error(%2): %3 @@ -4305,6 +4436,7 @@ Error(%2): %3 SampleDownloader::impl + Download Samples 下載樣本 @@ -4336,8 +4468,12 @@ Error(%2): %3 + Check this if you get SSL/TLS errors + + + Check this is you get SSL/TLS errors - 選擇, 當你得到SSL/TLS錯誤 + 選擇, 當你得到SSL/TLS錯誤 @@ -4723,8 +4859,8 @@ Error(%2): %3 寬圖 - - + + Read Palette 讀取調色盤 @@ -5884,6 +6020,11 @@ Right click for insert and delete options. Decode Highlightling 解碼突出顯示 + + + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> + + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> @@ -6211,65 +6352,65 @@ Right click for insert and delete options. main - - + + Fatal error 嚴重出錯誤 - - + + Unexpected fatal error 意外的嚴重出錯誤 - + Another instance may be running 另一個應用程式可能正在執行 - + try to remove stale lock file? 嘗試刪除陳舊的鎖檔? - + Failed to create a temporary directory 無法建立暫存目錄 - - + + Path: "%1" 目錄: "%1" - + Failed to create a usable temporary directory 無法建立可用的暫存目錄 - + Another application may be locking the directory 另一個應用程式可能正在鎖定目錄 - + Failed to create data directory 無法建立資料目錄 - + path: "%1" 目錄: "%1" - + Shared memory error 共用記憶體錯誤 - + Unable to create shared memory segment 無法建立共用記憶體段 From 5df7c6d906cdb0b9eb08bca593b53e3d7c0684e8 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 13 Jul 2020 09:48:39 +0100 Subject: [PATCH 246/520] UI translations updates, tnx Xavi, EA3W, and Oba-san, JA7UDE --- translations/wsjtx_ca.ts | 85 ++++++++++++++++++++-------------------- translations/wsjtx_ja.ts | 66 +++++++++++++++---------------- 2 files changed, 73 insertions(+), 78 deletions(-) diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index 59ba4e7e0..da2b7dbf7 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -19,10 +19,9 @@ Are you sure you want to delete the %n selected QSO(s) from the log? - sorry i don't understand how to fix this Segur que vols esborrar els %n QSO's seleccionats del log ? - + Segur que vols esborrar els %n QSO's seleccionats del log ? @@ -901,12 +900,12 @@ Format: File - Fitxer + Arxiu Progress - + Progrés @@ -1081,7 +1080,7 @@ Error: %2 - %3 Equalization Tools - + Eines d'equalització @@ -1780,22 +1779,22 @@ Error: %2 - %3 All - + Tot Region 1 - + Regió 1 Region 2 - + Regió 2 Region 3 - + Regió 3 @@ -1897,97 +1896,97 @@ Error: %2 - %3 Prop Mode - + Mode de Propagació Aircraft scatter - + Aircraft scatter Aurora-E - + Aurora-E Aurora - + Aurora Back scatter - + Back scatter Echolink - + Echolink Earth-moon-earth - + Terra-Lluna-Terra Sporadic E - + Sporadic E F2 Reflection - + Reflexió F2 Field aligned irregularities - + Irregularitats alineades al camp Internet-assisted - + Assistit per Internet Ionoscatter - + Ionoscatter IRLP - + IRLP Meteor scatter - + Meteor scatter Non-satellite repeater or transponder - + Repetidor o transpondedor no satèl·lit Rain scatter - + Rain scatter Satellite - + Satèl·lit Trans-equatorial - + Trans-equatorial Troposheric ducting - + Tropo @@ -2708,7 +2707,7 @@ Si no està marcat, pots veure els resultats de la calibració. Send this message in next Tx interval 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) Envia aquest missatge al següent interval de TX. -Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1). +Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1) @@ -2743,7 +2742,7 @@ Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una e Switch to this Tx message NOW 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) Canvia a aquest missatge de TX ARA. -Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1). +Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1) @@ -2770,7 +2769,7 @@ Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una e Send this message in next Tx interval Double-click to reset to the standard 73 message Envia aquest missatge al següent interval de TX. -Fes doble clic per restablir el missatge estàndard 73. +Fes doble clic per restablir el missatge estàndard 73 @@ -2804,7 +2803,7 @@ Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for typ RR73 messages should only be used when you are reasonably confident that no message repetitions will be required Envia aquest missatge al següent interval de TX. Fes doble clic per alternar entre els missatges RRR i RR73 a TX4 (no està permès per a titulars d'indicatius compostos del tipus 2) -Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge. +Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge @@ -2823,7 +2822,7 @@ Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for typ RR73 messages should only be used when you are reasonably confident that no message repetitions will be required Canvia a aquest missatge de TX ARA. Fes doble clic per alternar entre els missatges RRR i RR73 a TX4 (no està permès per a titulars d'indicatius compostos del tipus 2) -Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge. +Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge @@ -2845,7 +2844,7 @@ Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonab Switch to this Tx message NOW Double-click to reset to the standard 73 message Canvia a aquest missatge de TX ARA. -Fes doble clic per restablir el missatge estàndard 73. +Fes doble clic per restablir el missatge estàndard 73 @@ -4273,7 +4272,7 @@ UDP server %2:%3 Network SSL/TLS Errors - + Errors SSL/TLS de xarxa @@ -4457,32 +4456,32 @@ Error(%2): %3 &Abort - + &Anul·lar &Refresh - + A&ctualitza &Details - + &Detalls Base URL for samples: - + URL de base per a mostres: Only use HTTP: - + Úsa només HTTP: Check this if you get SSL/TLS errors - + Comprova si hi ha errors SSL/TLS @@ -5766,7 +5765,7 @@ Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items Arrossega i deixa anar els elements per reorganitzar l'ordre. Fes clic amb el botó dret per a les accions específiques de l’element. -Fes clic, MAJ. + clic i, CTRL+clic per seleccionar els elements. +Fes clic, MAJ. + clic i, CTRL+clic per seleccionar els elements @@ -6360,7 +6359,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> - <html><head/><body><p>Eliminar (Cancel·lar) o aplicar (OK) canvis de configuració inclosos</p><p>restablint la interfície de ràdio i aplicant els canvis a la targeta de so</p></body></html> + <html><head/><body><p>Eliminar (Cancel·la) o aplicar (D'acord) canvis de configuració inclosos.</p><p>Restablint la interfície de ràdio i aplicant els canvis a la targeta de so</p></body></html> diff --git a/translations/wsjtx_ja.ts b/translations/wsjtx_ja.ts index 1456488dc..33b1fde39 100644 --- a/translations/wsjtx_ja.ts +++ b/translations/wsjtx_ja.ts @@ -101,7 +101,7 @@ 0 - + 0 @@ -891,12 +891,12 @@ Format: File - ファイル + ファイル Progress - + 進捗 @@ -1071,7 +1071,7 @@ Error: %2 - %3 Equalization Tools - + 較正ツール @@ -1770,22 +1770,22 @@ Error: %2 - %3 All - + すべての地域 Region 1 - + 第一地域 Region 2 - + 第二地域 Region 3 - + 第三地域 @@ -1887,97 +1887,97 @@ Error: %2 - %3 Prop Mode - + 伝搬モード Aircraft scatter - + 飛行機スキャッター Aurora-E - + オーロラE Aurora - + オーロラ Back scatter - + 後方スキャッター Echolink - + Echolink Earth-moon-earth - + EME Sporadic E - + Eスポ F2 Reflection - + F2層反射 Field aligned irregularities - + 沿磁力線不規則性 Internet-assisted - + インターネット経由 Ionoscatter - + イオン散乱 IRLP - + IRLP Meteor scatter - + 流星散乱 Non-satellite repeater or transponder - + 非衛星リピーター Rain scatter - + 雨散乱 Satellite - + 衛星 Trans-equatorial - + 赤道伝搬 Troposheric ducting - + ダクト @@ -2649,7 +2649,7 @@ When not checked you can view the calibration results. Tx - + Tx @@ -2674,7 +2674,7 @@ When not checked you can view the calibration results. 1 - + 1 @@ -4255,7 +4255,7 @@ UDPサーバー %2:%3 Network SSL/TLS Errors - + ネットワークSSL/TLSエラー @@ -4464,11 +4464,7 @@ Error(%2): %3 Check this if you get SSL/TLS errors - - - - Check this is you get SSL/TLS errors - チェックするとSSL/TLSエラーを表示 + SSL/TLSエラーの場合これをチェック From 479dc1113f015f9c0b3596ba878fdb43f9e45113 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 13 Jul 2020 13:27:12 +0100 Subject: [PATCH 247/520] Use non-averaging decodes window headings for FST240 --- widgets/mainwindow.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 65ec87d75..a7748d824 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5813,6 +5813,8 @@ void MainWindow::on_actionFST240_triggered() { int nsub=m_nSubMode; on_actionJT65_triggered(); + ui->label_6->setText(tr ("Band Activity")); + ui->label_7->setText(tr ("Rx Frequency")); ui->sbSubmode->setMaximum(3); m_nSubMode=nsub; ui->sbSubmode->setValue(m_nSubMode); From bac3cc747153ec5758a40851cb53c58d216b6c6f Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 13 Jul 2020 08:53:11 -0500 Subject: [PATCH 248/520] Remove spurious invocation of thresh variable. --- lib/fst240_decode.f90 | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index b57cc401d..93a454b63 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -788,17 +788,15 @@ contains iploc=ia+im(1)-1 !Index of CCF peak pval=s2(iploc) !Peak value if(pval.lt.minsync) exit - if(s2(iploc).gt.thresh) then !Is this a possible candidate? - do i=-3,+3 !Remove 0.9 of a model CCF at - k=iploc+2*hmod*i !this frequency from s2() - if(k.ge.ia .and. k.le.ib) then - s2(k)=max(0.,s2(k)-0.9*pval*xdb(i)) - endif - enddo - ncand=ncand+1 - candidates(ncand,1)=df2*iploc !Candidate frequency - candidates(ncand,2)=pval !Rough estimate of SNR - endif + do i=-3,+3 !Remove 0.9 of a model CCF at + k=iploc+2*hmod*i !this frequency from s2() + if(k.ge.ia .and. k.le.ib) then + s2(k)=max(0.,s2(k)-0.9*pval*xdb(i)) + endif + enddo + ncand=ncand+1 + candidates(ncand,1)=df2*iploc !Candidate frequency + candidates(ncand,2)=pval !Rough estimate of SNR enddo return From db3e0d80226e8ac221e201a6bb8ec4d54e01dc70 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 13 Jul 2020 14:58:50 -0500 Subject: [PATCH 249/520] Add a disabled option to print the reference waveform to fort.51. --- lib/fst240/gen_fst240wave.f90 | 6 ------ lib/fst240_decode.f90 | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/lib/fst240/gen_fst240wave.f90 b/lib/fst240/gen_fst240wave.f90 index 3ba1c2d82..49fc55ab7 100644 --- a/lib/fst240/gen_fst240wave.f90 +++ b/lib/fst240/gen_fst240wave.f90 @@ -87,11 +87,5 @@ subroutine gen_fst240wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & cwave=cshift(cwave,kshift) endif -! do i=1,nwave -! write(71,3071) i,i/48000.0,wave(i) -!3071 format(i10,2f15.9) -! enddo - wave(nsps*nsym:)=0. !Kill a stray spike ?? - return end subroutine gen_fst240wave diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 93a454b63..5c3414244 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -547,6 +547,10 @@ contains else call get_fst240_tones_from_bits(message74,itone,1) endif + if(.false.) then + call write_ref(itone,iwave,nsps,nmax,ndown,hmod, & + isbest,fc_synced) + endif xsig=0 do i=1,NN xsig=xsig+s4(itone(i),i)**2 @@ -802,4 +806,21 @@ contains return end subroutine get_candidates_fst240 + subroutine write_ref(itone,iwave,nsps,nmax,ndown,hmod,i0,fc) + complex cwave(nmax) + integer itone(160) + integer*2 iwave(nmax) + integer hmod + + wave=0 + fsample=12000.0 + nsym=160 + call gen_fst240wave(itone,nsym,nsps,nmax,fsample,hmod,fc, & + 1,cwave,wave) + cwave=cshift(cwave,-i0*ndown) + do i=1,nmax + write(51,*) i,iwave(i),real(cwave(i)),imag(cwave(i)) + enddo + end subroutine subtract240 + end module fst240_decode From a19d5d15568c3f7db93ceb6d31fece61c36794ed Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 13 Jul 2020 15:10:01 -0500 Subject: [PATCH 250/520] Fix end subroutine line for new write_ref subroutine. --- lib/fst240_decode.f90 | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 5c3414244..0b8dd15dd 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -306,7 +306,6 @@ contains call fst240_downsample(c_bigfft,nfft1,ndown,fc0,sigbw,c2) call timer('sync240 ',0) - fc1=0.0 if(emedelay.lt.0.1) then ! search offsets from 0 s to 2 s is0=1.5*nspsec @@ -391,7 +390,6 @@ contains xdt=(isbest-nspsec)/fs2 if(ntrperiod.eq.15) xdt=(isbest-real(nspsec)/2.0)/fs2 call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) - do ijitter=0,jittermax if(ijitter.eq.0) ioffset=0 if(ijitter.eq.1) ioffset=1 @@ -821,6 +819,6 @@ contains do i=1,nmax write(51,*) i,iwave(i),real(cwave(i)),imag(cwave(i)) enddo - end subroutine subtract240 + end subroutine write_ref end module fst240_decode From c5f01870362107b5dbecc665d280ef5b808b94c4 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 13 Jul 2020 19:59:14 -0500 Subject: [PATCH 251/520] Eliminate an unnecessary variable (NN2) in fst240sim.f90. --- lib/fst240/fst240sim.f90 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/fst240/fst240sim.f90 b/lib/fst240/fst240sim.f90 index b0790a768..fc09a9f73 100644 --- a/lib/fst240/fst240sim.f90 +++ b/lib/fst240/fst240sim.f90 @@ -59,8 +59,7 @@ program fst240sim baud=12000.0/nsps !Keying rate (baud) nmax=nsec*12000 nz=nsps*NN - nz2=nsps*NN2 - txt=nz2*dt !Transmission length (s) + txt=nz*dt !Transmission length (s) tt=nsps*dt !Duration of symbols (s) allocate( c0(0:nmax-1) ) allocate( c(0:nmax-1) ) From cbeb81b49955500c1a4160ad1c351fe08c90376f Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 14 Jul 2020 11:27:41 -0400 Subject: [PATCH 252/520] Add LF/MF noise blanker capability for FST240 and FST240W. --- CMakeLists.txt | 1 + lib/blanker.f90 | 52 +++ lib/fst240_decode.f90 | 6 +- lib/symspec.f90 | 12 +- widgets/mainwindow.cpp | 17 +- widgets/mainwindow.ui | 1002 +++++++++++++++++++++------------------- 6 files changed, 599 insertions(+), 491 deletions(-) create mode 100644 lib/blanker.f90 diff --git a/CMakeLists.txt b/CMakeLists.txt index 15cf9aed0..80199358d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -396,6 +396,7 @@ set (wsjt_FSRCS lib/badmsg.f90 lib/ft8/baseline.f90 lib/ft4/ft4_baseline.f90 + lib/blanker.f90 lib/bpdecode40.f90 lib/bpdecode128_90.f90 lib/ft8/bpdecode174_91.f90 diff --git a/lib/blanker.f90 b/lib/blanker.f90 new file mode 100644 index 000000000..a5c334e3f --- /dev/null +++ b/lib/blanker.f90 @@ -0,0 +1,52 @@ +subroutine blanker(iwave,nz,dwell_time,fblank,npct) + + integer*2 iwave(nz) + integer hist(0:32768) + real dwell_time !Blanking dwell time (s) + real fblank !Fraction of points to be blanked + data ncall/0/,thresh/0.0/,fblanked/0.0/ + save ncall,thresh,fblanked + + ncall=ncall+1 + ndropmax=nint(1.0 + dwell_time*12000.0) + hist=0 + do i=1,nz + n=abs(iwave(i)) + hist(n)=hist(n)+1 + enddo + n=0 + do i=32768,0,-1 + n=n+hist(i) + if(n.ge.nint(nz*fblank/ndropmax)) exit + enddo + thresh=thresh + 0.01*(i-thresh) + if(ncall.eq.1) thresh=i + nthresh=nint(thresh) + ndrop=0 + ndropped=0 + + do i=1,nz + i0=iwave(i) + if(ndrop.gt.0) then + iwave(i)=0 + ndropped=ndropped+1 + ndrop=ndrop-1 + cycle + endif + +! Start to apply blanking + if(abs(iwave(i)).gt.nthresh) then + iwave(i)=0 + ndropped=ndropped+1 + ndrop=ndropmax + endif + enddo + + fblanked=fblanked + 0.1*(float(ndropped)/nz - fblanked) + if(ncall.eq.1) fblanked=float(ndropped)/nz + npct=nint(100.0*fblanked) +! if(mod(ncall,4).eq.0) write(*,3001) thresh,dwell_time,fblank,fblanked,npct +!3001 format(f8.1,f8.4,f6.2,f7.3,i6) + + return +end subroutine blanker diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index b57cc401d..0fffd9f74 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -78,6 +78,8 @@ contains data first/.true./ save first,apbits,nappasses,naptypes,mycall0,hiscall0 +! call blanker(iwave,ntrperiod*12000,0.0,0.2) + this%callback => callback dxcall13=hiscall ! initialize for use in packjt77 @@ -788,7 +790,7 @@ contains iploc=ia+im(1)-1 !Index of CCF peak pval=s2(iploc) !Peak value if(pval.lt.minsync) exit - if(s2(iploc).gt.thresh) then !Is this a possible candidate? + if(s2(iploc).gt.minsync) then !Is this a possible candidate? do i=-3,+3 !Remove 0.9 of a model CCF at k=iploc+2*hmod*i !this frequency from s2() if(k.ge.ia .and. k.le.ib) then @@ -803,5 +805,5 @@ contains return end subroutine get_candidates_fst240 - + end module fst240_decode diff --git a/lib/symspec.f90 b/lib/symspec.f90 index f97757778..5bd0fd902 100644 --- a/lib/symspec.f90 +++ b/lib/symspec.f90 @@ -1,5 +1,5 @@ subroutine symspec(shared_data,k,TRperiod,nsps,ingain,bLowSidelobes, & - nminw,pxdb,s,df3,ihsym,npts8,pxdbmax) + nminw,pxdb,s,df3,ihsym,npts8,pxdbmax,bblank,npct) ! Input: ! k pointer to the most recent new data @@ -7,8 +7,6 @@ subroutine symspec(shared_data,k,TRperiod,nsps,ingain,bLowSidelobes, & ! nsps samples per symbol, at 12000 Hz ! bLowSidelobes true to use windowed FFTs ! ndiskdat 0/1 to indicate if data from disk -! nb 0/1 status of noise blanker (off/on) -! nbslider NB setting, 0-100 ! Output: ! pxdb raw power (0-90 dB) @@ -31,7 +29,7 @@ subroutine symspec(shared_data,k,TRperiod,nsps,ingain,bLowSidelobes, & real*4 tmp(NSMAX) complex cx(0:MAXFFT3/2) integer nch(7) - logical*1 bLowSidelobes + logical*1 bLowSidelobes,bblank common/spectra/syellow(NSMAX),ref(0:3456),filter(0:3456) data k0/99999999/,nfft3z/0/ @@ -65,6 +63,12 @@ subroutine symspec(shared_data,k,TRperiod,nsps,ingain,bLowSidelobes, & gain=10.0**(0.1*ingain) sq=0. pxmax=0.; + + dwell_time=0.0001 + fblank=0.15 + if(k.gt.k0 .and. bblank) call blanker(shared_data%id2(k0+1:k), & + k-k0,dwell_time,fblank,npct) + do i=k0+1,k x1=shared_data%id2(i) if (abs(x1).gt.pxmax) pxmax = abs(x1); diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 9c5e9c6bb..7f6948ea3 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -91,7 +91,7 @@ extern "C" { //----------------------------------------------------- C and Fortran routines void symspec_(struct dec_data *, int* k, double* trperiod, int* nsps, int* ingain, bool* bLowSidelobes, int* minw, float* px, float s[], float* df3, - int* nhsym, int* npts8, float *m_pxmax); + int* nhsym, int* npts8, float *m_pxmax, bool *bblank, int* npct); void hspec_(short int d2[], int* k, int* nutc0, int* ntrperiod, int* nrxfreq, int* ntol, bool* bmsk144, bool* btrain, double const pcoeffs[], int* ingain, @@ -1132,6 +1132,8 @@ void MainWindow::writeSettings() m_settings->setValue ("FT8AP", ui->actionEnable_AP_FT8->isChecked ()); m_settings->setValue ("JT65AP", ui->actionEnable_AP_JT65->isChecked ()); m_settings->setValue("SplitterState",ui->splitter->saveState()); + m_settings->setValue("Blanker",ui->cbNB->isChecked()); + { QList coeffs; // suitable for QSettings for (auto const& coeff : m_phaseEqCoefficients) @@ -1231,6 +1233,7 @@ void MainWindow::readSettings() ui->actionEnable_AP_FT8->setChecked (m_settings->value ("FT8AP", false).toBool()); ui->actionEnable_AP_JT65->setChecked (m_settings->value ("JT65AP", false).toBool()); ui->splitter->restoreState(m_settings->value("SplitterState").toByteArray()); + ui->cbNB->setChecked(m_settings->value("Blanker",false).toBool()); { auto const& coeffs = m_settings->value ("PhaseEqualizationCoefficients" , QList {0., 0., 0., 0., 0.}).toList (); @@ -1389,8 +1392,13 @@ void MainWindow::dataSink(qint64 frames) if(m_bFastMode) nsps=6912; int nsmo=m_wideGraph->smoothYellow()-1; bool bLowSidelobes=m_config.lowSidelobes(); + bool bblank=ui->cbNB->isChecked() and m_mode.startsWith("FST240"); + int npct=0; symspec_(&dec_data,&k,&m_TRperiod,&nsps,&m_inGain,&bLowSidelobes,&nsmo,&m_px,s, - &m_df3,&m_ihsym,&m_npts8,&m_pxmax); + &m_df3,&m_ihsym,&m_npts8,&m_pxmax,&bblank,&npct); + QString t=" "; + if(bblank) t=QString::number(npct); + ui->labNpct->setText(t); if(m_mode=="WSPR" or m_mode=="FST240W") wspr_downsample_(dec_data.d2,&k); if(m_ihsym <=0) return; if(ui) ui->signal_meter_widget->setValue(m_px,m_pxmax); // Update thermometer @@ -4079,7 +4087,6 @@ void MainWindow::guiUpdate() //Once per second: if(nsec != m_sec0) { -// qDebug() << "onesec" << ui->RoundRobin->currentText(); m_currentBand=m_config.bands()->find(m_freqNominal); if( SpecOp::HOUND == m_config.special_op_id() ) { qint32 tHound=QDateTime::currentMSecsSinceEpoch()/1000 - m_tAutoOn; @@ -5806,6 +5813,10 @@ void MainWindow::displayWidgets(qint64 n) if(m_mode=="MSK144") b=SpecOp::EU_VHF==m_config.special_op_id(); ui->sbSerialNumber->setVisible(b); m_lastCallsign.clear (); // ensures Tx5 is updated for new modes + b=m_mode.startsWith("FST240"); + ui->labNpct->setVisible(b); + ui->labNB->setVisible(b); + ui->cbNB->setVisible(b); genStdMsgs (m_rpt, true); } diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 91d8e95ba..ef5a882b1 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -554,488 +554,6 @@ - - - - - 0 - 0 - - - - USB dial frequency - - - QLabel { - font-family: MS Shell Dlg 2; - font-size: 16pt; - color : yellow; - background-color : black; -} -QLabel[oob="true"] { - background-color: red; -} - - - - 14.078 000 - - - Qt::AlignCenter - - - 5 - - - - - - - - 0 - 0 - - - - - 100 - 16777215 - - - - <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> - - - Rx Signal - - - 30dB recommended when only noise present -Green when good -Red when clipping may occur -Yellow when too low - - - QFrame::Panel - - - QFrame::Sunken - - - - - - - - 0 - 0 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - 0 - - - - - - - - - 252 - 252 - 252 - - - - - - - 159 - 175 - 213 - - - - - - - - - 252 - 252 - 252 - - - - - - - 159 - 175 - 213 - - - - - - - - - 159 - 175 - 213 - - - - - - - 159 - 175 - 213 - - - - - - - - true - - - DX Call - - - Qt::AlignCenter - - - 5 - - - 2 - - - dxCallEntry - - - - - - - - 0 - 0 - - - - - - - - - 252 - 252 - 252 - - - - - - - 159 - 175 - 213 - - - - - - - - - 252 - 252 - 252 - - - - - - - 159 - 175 - 213 - - - - - - - - - 159 - 175 - 213 - - - - - - - 159 - 175 - 213 - - - - - - - - true - - - DX Grid - - - Qt::AlignCenter - - - 5 - - - 2 - - - dxGridEntry - - - - - - - Callsign of station to be worked - - - - - - Qt::AlignCenter - - - - - - - Search for callsign in database - - - &Lookup - - - - - - - Locator of station to be worked - - - - - - Qt::AlignCenter - - - - - - - - 0 - 0 - - - - true - - - Az: 251 16553 km - - - Qt::AlignCenter - - - 4 - - - - - - - Add callsign and locator to database - - - Add - - - - - - - - - - Pwr - - - - - - - false - - - <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> - - - If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. - - - QPushButton { - font-family: helvetica; - font-size: 9pt; - font-weight: bold; - background-color: white; - color: black; - border-style: solid; - border-width:1px; - border-radius:10px; - border-color: gray; - max-width:20px; - max-height:20px; - min-width:20px; - min-height:20px; -} -QPushButton[state="error"] { - background-color: red; -} -QPushButton[state="warning"] { - background-color: orange; -} -QPushButton[state="ok"] { - background-color: #00ff00; -} - - - ? - - - - - - - Adjust Tx audio level - - - 450 - - - 0 - - - Qt::Vertical - - - true - - - true - - - QSlider::TicksBelow - - - 50 - - - - - - - <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> - - - Frequency entry - - - Select operating band or enter frequency in MHz or enter kHz increment followed by k. - - - true - - - QComboBox::NoInsert - - - QComboBox::AdjustToMinimumContentsLength - - - - - - - - 0 - 0 - - - - QLabel { - font-family: MS Shell Dlg 2; - font-size: 16pt; - background-color : black; - color : yellow; -} - - - QFrame::StyledPanel - - - QFrame::Sunken - - - 2 - - - 0 - - - <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> - - - Qt::AlignCenter - - - 5 - - - @@ -2808,6 +2326,526 @@ list. The list can be maintained in Settings (F2). + + + + + 0 + 0 + + + + QLabel { + font-family: MS Shell Dlg 2; + font-size: 16pt; + background-color : black; + color : yellow; +} + + + QFrame::StyledPanel + + + QFrame::Sunken + + + 2 + + + 0 + + + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + + + Qt::AlignCenter + + + 5 + + + + + + + Pwr + + + + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + + + + + 252 + 252 + 252 + + + + + + + 159 + 175 + 213 + + + + + + + + + 252 + 252 + 252 + + + + + + + 159 + 175 + 213 + + + + + + + + + 159 + 175 + 213 + + + + + + + 159 + 175 + 213 + + + + + + + + true + + + DX Call + + + Qt::AlignCenter + + + 5 + + + 2 + + + dxCallEntry + + + + + + + + 0 + 0 + + + + + + + + + 252 + 252 + 252 + + + + + + + 159 + 175 + 213 + + + + + + + + + 252 + 252 + 252 + + + + + + + 159 + 175 + 213 + + + + + + + + + 159 + 175 + 213 + + + + + + + 159 + 175 + 213 + + + + + + + + true + + + DX Grid + + + Qt::AlignCenter + + + 5 + + + 2 + + + dxGridEntry + + + + + + + Callsign of station to be worked + + + + + + Qt::AlignCenter + + + + + + + Search for callsign in database + + + &Lookup + + + + + + + Locator of station to be worked + + + + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + true + + + Az: 251 16553 km + + + Qt::AlignCenter + + + 4 + + + + + + + Add callsign and locator to database + + + Add + + + + + + + + + + false + + + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> + + + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. + + + QPushButton { + font-family: helvetica; + font-size: 9pt; + font-weight: bold; + background-color: white; + color: black; + border-style: solid; + border-width:1px; + border-radius:10px; + border-color: gray; + max-width:20px; + max-height:20px; + min-width:20px; + min-height:20px; +} +QPushButton[state="error"] { + background-color: red; +} +QPushButton[state="warning"] { + background-color: orange; +} +QPushButton[state="ok"] { + background-color: #00ff00; +} + + + ? + + + + + + + Adjust Tx audio level + + + 450 + + + 0 + + + Qt::Vertical + + + true + + + true + + + QSlider::TicksBelow + + + 50 + + + + + + + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> + + + Frequency entry + + + Select operating band or enter frequency in MHz or enter kHz increment followed by k. + + + true + + + QComboBox::NoInsert + + + QComboBox::AdjustToMinimumContentsLength + + + + + + + + 0 + 0 + + + + USB dial frequency + + + QLabel { + font-family: MS Shell Dlg 2; + font-size: 16pt; + color : yellow; + background-color : black; +} +QLabel[oob="true"] { + background-color: red; +} + + + + 14.078 000 + + + Qt::AlignCenter + + + 5 + + + + + + + + 0 + 0 + + + + + 100 + 16777215 + + + + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> + + + Rx Signal + + + 30dB recommended when only noise present +Green when good +Red when clipping may occur +Yellow when too low + + + QFrame::Panel + + + QFrame::Sunken + + + + + + + + + NB + + + + + + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + From e740019940ec6e0c02f76624c843d9d0d6436355 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 14 Jul 2020 13:18:54 -0400 Subject: [PATCH 253/520] Editorial work by Dave, KC3GPM. --- doc/user_guide/en/controls-functions-status-bar.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/user_guide/en/controls-functions-status-bar.adoc b/doc/user_guide/en/controls-functions-status-bar.adoc index cf6c2a4ab..df82de65e 100644 --- a/doc/user_guide/en/controls-functions-status-bar.adoc +++ b/doc/user_guide/en/controls-functions-status-bar.adoc @@ -1,4 +1,4 @@ -// Status=review +// Status=edited A *Status Bar* at the bottom edge of the main window provides useful information about operating conditions. @@ -9,15 +9,15 @@ image::status-bar-a.png[align="left",alt="Status Bar"] Labels on the *Status Bar* display such information as the program's current operating state, configuration name, operating mode, and the content of your most recent transmitted message. The first label -(operating state) can be Receiving, Tx (for Transmitting), Tune, or -the name of file opened from the *File* menu; this label is +(operating state) can be Receiving, Tx (for Transmitting), Tx: Tune, or +the name of the file opened from the *File* menu. This label is highlighted in green for Receiving, yellow for Tx, red for Tune, and light blue for a file name. When transmitting, the Tx message is displayed exactly as it will be decoded by receiving stations. The second label (as shown above) will be absent if you are using the *Default* setting on the *Configurations* menu. A progress bar shows the elapsed fraction of a Tx or Rx sequence. Finally, if the Watchdog -(WD) timer was enabled on the *Settings | General* tab, a label in the +(WD) timer was enabled on the *Files | Settings | General* tab, a label in the lower right-hand corner displays the number of minutes remaining before timeout. From 4d7f1684ef48d41a4909bcdf1d796a648738c870 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 14 Jul 2020 13:28:50 -0400 Subject: [PATCH 254/520] Editorial work by Dave, KC3GPM. --- doc/user_guide/en/controls-functions-wide-graph.adoc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/user_guide/en/controls-functions-wide-graph.adoc b/doc/user_guide/en/controls-functions-wide-graph.adoc index e269df826..1c11721e9 100644 --- a/doc/user_guide/en/controls-functions-wide-graph.adoc +++ b/doc/user_guide/en/controls-functions-wide-graph.adoc @@ -1,4 +1,4 @@ -// Status=review +// Status=edited The following controls appear at the bottom of the Wide Graph window. Decoding occurs only in the displayed frequency range; otherwise, with @@ -29,7 +29,7 @@ slower, as desired. - A dropdown list below the *Palette* label lets you select from a wide range of waterfall color palettes. -- Click *Adjust* to activate a window that allows you to create a +- Click *Adjust* to activate a window that allows you to import or export a user-defined palette. - Check *Flatten* if you want _WSJT-X_ to compensate for a sloping or @@ -50,10 +50,10 @@ about right, depending on the input signal level, the chosen palette, and your own preferences. Hover the mouse over a control to display a tip reminding you of its function. -- The *Spec nn%* control may be used to set the fractional height of +- The *Spec nn%* control is used to set the fractional height of the spectrum plotted below the waterfall. -- *Smooth* is active only when *Linear Average* has been selected. +- *Smooth* is active only when *Linear Average* is selected. Smoothing the displayed spectrum over more than one bin can enhance your ability to detect weak EME signals with Doppler spread more than a few Hz. @@ -66,7 +66,7 @@ selected on the Wide Graph. Three sliders at the bottom of the Fast Graph window can be used to optimize gain and zero-offset for the displayed information. Hover the mouse over a control to display a tip reminding you of its function. Clicking the *Auto Level* button -will produce reasonable settings as a starting point. +produces reasonable settings as a starting point. image::fast-graph-controls.png[align="center",alt="Fast Graph Controls"] @@ -89,7 +89,7 @@ spectra, thereby smoothing the curves over multiple bins. - Label *N* shows the number of echo pulses averaged. -- Click the *Colors* button to cycle through 6 possible choices of +- Click the *Colors* button to cycle through six possible choices of color and line width for the plots. [[CONTROLS_MISCELLANEOUS]] From bdc3ebddcc5e2ff770c4c72a0fcc622f93b006d5 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 14 Jul 2020 13:30:31 -0400 Subject: [PATCH 255/520] Editorial work by Dave, KC3GPM. --- doc/user_guide/en/cooperating-programs.adoc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/user_guide/en/cooperating-programs.adoc b/doc/user_guide/en/cooperating-programs.adoc index 99e49e1e3..fae3c8429 100644 --- a/doc/user_guide/en/cooperating-programs.adoc +++ b/doc/user_guide/en/cooperating-programs.adoc @@ -1,3 +1,5 @@ +// Status: edited + _WSJT-X_ is programmed to cooperate closely with several other useful programs. @@ -38,10 +40,10 @@ logging applications Aether, MacLoggerDX, RUMlog or RUMlogNG. It checks QSO and QSL status of the call and DXCC entity, as well as many other features. -* {n1mm_logger} is a free full feature contest logging application. It +* {n1mm_logger} is a free, full-feature contest logging application. It is only available for Windows. _WSJT-X_ can send logged QSO information to it via a network connection. -* {writelog} is a non-free full feature contest logging +* {writelog} is a non-free, full-feature contest logging application. It is only available for Windows. _WSJT-X_ can send logged QSO information to it via a network connection. \ No newline at end of file From 4213e029054f79785792360fd69570dd59d68bea Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 14 Jul 2020 13:45:32 -0400 Subject: [PATCH 256/520] Editorial work by Dave, KC3GPM. --- doc/user_guide/en/decoder_notes.adoc | 45 ++++++++++++++-------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/doc/user_guide/en/decoder_notes.adoc b/doc/user_guide/en/decoder_notes.adoc index 4227b408c..afa46e820 100644 --- a/doc/user_guide/en/decoder_notes.adoc +++ b/doc/user_guide/en/decoder_notes.adoc @@ -1,19 +1,21 @@ -[[AP_Decoding]] +// Status: edited + === AP Decoding -The _WSJT-X_ decoders for FT4, FT8, JT65, and QRA64 include optional -procedures that take advantage of naturally accumulating information -during a minimal QSO. This _a priori_ (AP) information increases -sensitivity of the decoder by up to 4 dB, at the cost of a slightly -higher rate of false decodes. +The _WSJT-X_ decoders for FT4, FT8, JT65, QRA64, include +procedures that use naturally accumulating information during a +minimal QSO. This _a priori_ (AP) information increases sensitivity +of the decoder by up to 4 dB, at the cost of a slightly higher rate of +false decodes. AP is optional in FT8, JT65, and QRA64, but is always +enabled for FT4. For example: when you decide to answer a CQ, you already know your own callsign and that of your potential QSO partner. The software therefore "`knows`" what might be expected for at least 57 message -bits (28 for each of two callsigns, 1 or more for message type) in the -next received message. The decoder's task can thus be reduced to +bits (28 for each of two callsigns, one or more for message type) in the +next received message. The decoder's task is thus reduced to determining the remaining 15 bits of the message and ensuring that the -resulting solution is consistent with the message's parity symbols. +resulting solution is reliable. AP decoding starts by setting AP bits to the hypothesized values, as if they had been received correctly. We then determine whether the @@ -21,12 +23,12 @@ remaining message and parity bits are consistent with the hypothesized AP bits, with a specified level of confidence. Successful AP decodes are labeled with an end-of-line indicator of the form `aP`, where `P` is one of the single-digit AP decoding types listed in Table 1. For -example, `a2` indicates that the successful decode used *MyCall* as +example, `a2` indicates that the successful decode used MyCall as hypothetically known information. [[FT8_AP_INFO_TABLE]] .FT4 and FT8 AP information types -[width="50%",cols="h10, Date: Tue, 14 Jul 2020 13:47:52 -0400 Subject: [PATCH 257/520] Editorial work by Dave, KC3GPM. --- doc/user_guide/en/faq.adoc | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/doc/user_guide/en/faq.adoc b/doc/user_guide/en/faq.adoc index 2152c3c74..c4f20a04a 100644 --- a/doc/user_guide/en/faq.adoc +++ b/doc/user_guide/en/faq.adoc @@ -1,10 +1,12 @@ +// Status: edited + //// Questions: - Should be short one liners (in the .adoc file) ending with ?:: - If your question is too long for one line, consider multiple questions or rephrase + Should be short one-liners (in the .adoc file) ending with ?:: + If your question is too long for one line, consider multiple questions or rephrase. Answers: - Can be bullet or paragraphs. Bullets make for easier reading. + Can be bullets or paragraphs. Bullets make for easier reading. Bullet Usage: * = a circle bullet single intent @@ -53,19 +55,18 @@ You need to install suitable _OpenSSL_ libraries - see <Configuratio The KDE development team have added code to Qt that tries to automatically add shortcut accelerator keys to all buttons including -pop up menu buttons, this interferes with operation of the application +pop up menu buttons. This interferes with operation of the application (many other Qt applications have similar issues with KDE). Until this -is fixed by the KDE team you must disable this misfeature. Edit the -file ~/.config/kdeglobals and add a section containing the following: +is fixed by the KDE team you must disable this feature. Edit the +file `~/.config/kdeglobals` and add a section containing the following: [Development] AutoCheckAccelerators=false From 85986447509e24eb0e0a58458b8284c50ddf0507 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 14 Jul 2020 14:09:23 -0400 Subject: [PATCH 258/520] No need for E or H end-of-line info. --- doc/user_guide/en/decoder_notes.adoc | 2 -- 1 file changed, 2 deletions(-) diff --git a/doc/user_guide/en/decoder_notes.adoc b/doc/user_guide/en/decoder_notes.adoc index afa46e820..fafbdcd4e 100644 --- a/doc/user_guide/en/decoder_notes.adoc +++ b/doc/user_guide/en/decoder_notes.adoc @@ -128,9 +128,7 @@ End of line information:: `a` - Decoded with aid of some _a priori_ (AP) information + `C` - Confidence indicator [ISCAT and Deep Search; (0-9,*)] + `d` - Deep Search algorithm + - `E` - Size of MSK eye diagram opening - if negative, the eye is closed + `f` - Franke-Taylor or Fano algorithm + - `H` - Number of bit errors corrected + `M` - Message length (characters) + `N` - Number of Rx intervals or frames averaged + `P` - Number indicating type of AP information (Table 1, above) + From 8ff7da38845db2421bcd8b12d0a6739a870a204d Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 14 Jul 2020 14:51:40 -0400 Subject: [PATCH 259/520] FST240W should Tx at audio freq in WSPRfreqSpinBox, not TxFreqSpinBox. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 47a51ebb5..69044e2cc 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -7182,7 +7182,7 @@ void MainWindow::transmit (double snr) if(m_TRperiod==300) nsps=21504; int hmod=int(pow(2.0,double(m_nSubMode))); double dfreq=hmod*12000.0/nsps; - double f0=ui->TxFreqSpinBox->value() - m_XIT + 1.5*dfreq; + double f0=ui->WSPRFreqSpinBox->value() - m_XIT + 1.5*dfreq; Q_EMIT sendMessage (m_mode, NUM_FST240_SYMBOLS,double(nsps),f0,toneSpacing, m_soundOutput,m_config.audio_output_channel(), true, false, snr, m_TRperiod); From 79dbdcca9c9a59e316a843e2d456b94e8f916813 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 14 Jul 2020 14:54:40 -0400 Subject: [PATCH 260/520] Correct a typo. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 69044e2cc..898de1c6f 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -7182,7 +7182,7 @@ void MainWindow::transmit (double snr) if(m_TRperiod==300) nsps=21504; int hmod=int(pow(2.0,double(m_nSubMode))); double dfreq=hmod*12000.0/nsps; - double f0=ui->WSPRFreqSpinBox->value() - m_XIT + 1.5*dfreq; + double f0=ui->WSPRfreqSpinBox->value() - m_XIT + 1.5*dfreq; Q_EMIT sendMessage (m_mode, NUM_FST240_SYMBOLS,double(nsps),f0,toneSpacing, m_soundOutput,m_config.audio_output_channel(), true, false, snr, m_TRperiod); From ab3630b2e7d156fa1e92d26de3ecd254cc13722c Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 14 Jul 2020 16:46:28 -0400 Subject: [PATCH 261/520] Compute spectrum for measuring fspread of a decoded FST240/FST240W signal. --- lib/fst240_decode.f90 | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 2af2b94c5..f566553eb 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -64,7 +64,7 @@ contains integer mcq(29),mrrr(19),m73(19),mrr73(19) logical badsync,unpk77_success,single_decode - logical first,nohiscall,lwspr + logical first,nohiscall,lwspr,ex integer*2 iwave(300*12000) @@ -547,7 +547,8 @@ contains else call get_fst240_tones_from_bits(message74,itone,1) endif - if(.false.) then + inquire(file='plotspec',exist=ex) + if(ex) then call write_ref(itone,iwave,nsps,nmax,ndown,hmod, & isbest,fc_synced) endif @@ -808,6 +809,7 @@ contains subroutine write_ref(itone,iwave,nsps,nmax,ndown,hmod,i0,fc) complex cwave(nmax) + complex c(0:1440000-1) integer itone(160) integer*2 iwave(nmax) integer hmod @@ -817,10 +819,28 @@ contains nsym=160 call gen_fst240wave(itone,nsym,nsps,nmax,fsample,hmod,fc, & 1,cwave,wave) - cwave=cshift(cwave,-i0*ndown) - do i=1,nmax - write(51,*) i,iwave(i),real(cwave(i)),imag(cwave(i)) + cwave=cshift(cwave,-i0*ndown) +! do i=1,nmax +! write(51,1000) i,iwave(i),cwave(i) +!1000 format(2i10,f12.6) +! enddo + + fac=1.0/32768 + c=fac*float(iwave)*conjg(cwave) + call four2a(c,nmax,1,-1,1) !Forward c2c FFT + df=12000.0/nmax + ia=-10.0/df + ib=10.0/df + do i=ia,ib + j=i + if(j.lt.0) j=i+nmax + s=real(c(j))**2 + aimag(c(j))**2 + f=i*df + write(52,1010) f,s,db(s) +1010 format(f10.3,e12.3,f10.3) enddo + + return end subroutine write_ref end module fst240_decode From 99f419f63cecfc14f38d8e93d31885b222bd5700 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 15 Jul 2020 01:46:52 +0100 Subject: [PATCH 262/520] Initialize prefix store for type 2 50-bit messages --- lib/77bit/packjt77.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/77bit/packjt77.f90 b/lib/77bit/packjt77.f90 index dc6fb0f17..5fc335393 100644 --- a/lib/77bit/packjt77.f90 +++ b/lib/77bit/packjt77.f90 @@ -374,6 +374,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) call unpack28(n28,call_1,unpk28_success) if(.not.unpk28_success) unpk77_success=.false. write(crpt,'(i3)') idbm + cpfx=' ' if(npfx.lt.nzzz) then ! Prefix do i=3,1,-1 @@ -388,7 +389,6 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) else ! Suffix npfx=npfx-nzzz - cpfx=' ' if(npfx.le.35) then cpfx(1:1)=a2(npfx+1:npfx+1) else if(npfx.gt.35 .and. npfx.le.1295) then From 785e9e7924ebae1ea5e68f4613e90ea1930ad35e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 15 Jul 2020 14:45:08 +0100 Subject: [PATCH 263/520] Undo a change only intended to testing --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 898de1c6f..bd130db0b 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3455,7 +3455,7 @@ void MainWindow::auto_sequence (DecodedText const& message, unsigned start_toler void MainWindow::pskPost (DecodedText const& decodedtext) { -//### if (m_diskData || !m_config.spot_to_psk_reporter() || decodedtext.isLowConfidence ()) return; + if (m_diskData || !m_config.spot_to_psk_reporter() || decodedtext.isLowConfidence ()) return; QString msgmode=m_mode; if(m_mode=="JT9+JT65") { From fe86a6562cd84ea4933a636d7022a6d66d85c77a Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 15 Jul 2020 13:09:34 -0400 Subject: [PATCH 264/520] Change band name 2190m to 2200m. --- models/Bands.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/Bands.cpp b/models/Bands.cpp index 832c36185..aa21eae9e 100644 --- a/models/Bands.cpp +++ b/models/Bands.cpp @@ -15,7 +15,7 @@ namespace Radio::Frequency lower_bound_; Radio::Frequency upper_bound_; } constexpr ADIF_bands[] = { - {"2190m", 136000u, 137000u}, + {"2200m", 136000u, 137000u}, {"630m", 472000u, 479000u}, {"560m", 501000u, 504000u}, {"160m", 1800000u, 2000000u}, From ff0d31986f7b8fd52df59143331c016bae3f416c Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 15 Jul 2020 13:15:38 -0400 Subject: [PATCH 265/520] File 'plotspec' in execution directory ==> save channel-gain spectrum to fort.52. --- lib/fst240_decode.f90 | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index f566553eb..9d37f5eb7 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -809,11 +809,15 @@ contains subroutine write_ref(itone,iwave,nsps,nmax,ndown,hmod,i0,fc) complex cwave(nmax) - complex c(0:1440000-1) + complex, allocatable :: c(:) integer itone(160) integer*2 iwave(nmax) integer hmod + data ncall/0/ + save ncall + ncall=ncall+1 + allocate( c(0:nmax-1) ) wave=0 fsample=12000.0 nsym=160 @@ -829,17 +833,26 @@ contains c=fac*float(iwave)*conjg(cwave) call four2a(c,nmax,1,-1,1) !Forward c2c FFT df=12000.0/nmax - ia=-10.0/df - ib=10.0/df + ia=-10.1/df + ib=10.1/df + smax=0. do i=ia,ib j=i if(j.lt.0) j=i+nmax s=real(c(j))**2 + aimag(c(j))**2 + smax=max(s,smax) + enddo + do i=ia,ib + j=i + if(j.lt.0) j=i+nmax + s=(real(c(j))**2 + aimag(c(j))**2)/smax + s=s + ncall-1 f=i*df write(52,1010) f,s,db(s) -1010 format(f10.3,e12.3,f10.3) +1010 format(f12.6,f12.6,f10.3) enddo - +! close(52) + return end subroutine write_ref From b3882a93c0760c4e3ae28d775a6590ac58bdb8ee Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 15 Jul 2020 15:50:17 -0400 Subject: [PATCH 266/520] Extend write_ref() to compute freq offset and Doppler spread. Also some minor code cleanup. --- lib/decoder.f90 | 19 ++++++------ lib/fst240_decode.f90 | 71 +++++++++++++++++++++++++++++++++---------- 2 files changed, 65 insertions(+), 25 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 1e9245553..a4359a696 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -196,9 +196,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) call my_fst240%decode(fst240_decoded,id2,params%nutc, & params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & params%nsubmode,ndepth,params%ntr,params%nexp_decode, & - params%ntol,params%nzhsym,params%emedelay, & - logical(params%lapcqonly),params%napwid,mycall,hiscall, & - params%nfsplit,iwspr) + params%ntol,params%emedelay, & + logical(params%lapcqonly),mycall,hiscall,params%nfsplit,iwspr) call timer('dec240 ',1) go to 800 endif @@ -211,9 +210,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) call my_fst240%decode(fst240_decoded,id2,params%nutc, & params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & params%nsubmode,ndepth,params%ntr,params%nexp_decode, & - params%ntol,params%nzhsym,params%emedelay, & - logical(params%lapcqonly),params%napwid,mycall,hiscall, & - params%nfsplit,iwspr) + params%ntol,params%emedelay, & + logical(params%lapcqonly),mycall,hiscall,params%nfsplit,iwspr) call timer('dec240 ',1) go to 800 endif @@ -700,7 +698,7 @@ contains end subroutine ft4_decoded subroutine fst240_decoded (this,nutc,sync,nsnr,dt,freq,decoded,nap, & - qual,ntrperiod,lwspr) + qual,ntrperiod,lwspr,fmid,w50) use fst240_decode implicit none @@ -716,6 +714,8 @@ contains real, intent(in) :: qual integer, intent(in) :: ntrperiod logical, intent(in) :: lwspr + real, intent(in) :: fmid + real, intent(in) :: w50 character*2 annot character*37 decoded0 @@ -733,8 +733,9 @@ contains write(13,1002) nutc,nint(sync),nsnr,dt,freq,0,decoded0 1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FST240') else - write(*,1003) nutc,nsnr,dt,nint(freq),decoded0,annot -1003 format(i4.4,i4,f5.1,i5,' ` ',1x,a37,1x,a2) + if(fmid.ne.-999.0) write(decoded0(16:21),'(f6.3)') w50 + write(*,1003) nutc,nsnr,dt,nint(freq),decoded0,annot +1003 format(i4.4,i4,f5.1,i5,' ` ',1x,a37,1x,a2,2f7.3) write(13,1004) nutc,nint(sync),nsnr,dt,freq,0,decoded0 1004 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a37,' FST240') endif diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 9d37f5eb7..697b3df5b 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -8,7 +8,7 @@ module fst240_decode abstract interface subroutine fst240_decode_callback (this,nutc,sync,nsnr,dt,freq, & - decoded,nap,qual,ntrperiod,lwspr) + decoded,nap,qual,ntrperiod,lwspr,fmid,w50) import fst240_decoder implicit none class(fst240_decoder), intent(inout) :: this @@ -22,14 +22,16 @@ module fst240_decode real, intent(in) :: qual integer, intent(in) :: ntrperiod logical, intent(in) :: lwspr + real, intent(in) :: fmid + real, intent(in) :: w50 end subroutine fst240_decode_callback end interface contains subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfqso, & - nfa,nfb,nsubmode,ndepth,ntrperiod,nexp_decode,ntol,nzhsym, & - emedelay,lapcqonly,napwid,mycall,hiscall,nfsplit,iwspr) + nfa,nfb,nsubmode,ndepth,ntrperiod,nexp_decode,ntol, & + emedelay,lapcqonly,mycall,hiscall,nfsplit,iwspr) use timer_module, only: timer use packjt77 @@ -548,9 +550,10 @@ contains call get_fst240_tones_from_bits(message74,itone,1) endif inquire(file='plotspec',exist=ex) + fmid=-999.0 if(ex) then call write_ref(itone,iwave,nsps,nmax,ndown,hmod, & - isbest,fc_synced) + isbest,fc_synced,fmid,w50) endif xsig=0 do i=1,NN @@ -572,7 +575,7 @@ contains ! nutc,icand,itry,nsyncoh,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg ! flush(21) call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & - iaptype,qual,ntrperiod,lwspr) + iaptype,qual,ntrperiod,lwspr,fmid,w50) goto 2002 endif enddo ! metrics @@ -807,9 +810,10 @@ contains return end subroutine get_candidates_fst240 - subroutine write_ref(itone,iwave,nsps,nmax,ndown,hmod,i0,fc) + subroutine write_ref(itone,iwave,nsps,nmax,ndown,hmod,i0,fc,fmid,w50) complex cwave(nmax) complex, allocatable :: c(:) + real,allocatable :: ss(:) integer itone(160) integer*2 iwave(nmax) integer hmod @@ -817,10 +821,11 @@ contains save ncall ncall=ncall+1 - allocate( c(0:nmax-1) ) + allocate(c(0:nmax-1)) wave=0 fsample=12000.0 nsym=160 + call gen_fst240wave(itone,nsym,nsps,nmax,fsample,hmod,fc, & 1,cwave,wave) cwave=cshift(cwave,-i0*ndown) @@ -832,26 +837,60 @@ contains fac=1.0/32768 c=fac*float(iwave)*conjg(cwave) call four2a(c,nmax,1,-1,1) !Forward c2c FFT + df=12000.0/nmax - ia=-10.1/df - ib=10.1/df + ia=1.0/df smax=0. - do i=ia,ib + do i=-ia,ia j=i if(j.lt.0) j=i+nmax s=real(c(j))**2 + aimag(c(j))**2 smax=max(s,smax) enddo - do i=ia,ib + ia=10.1/df + allocate(ss(-ia:ia)) + sum1=0. + sum2=0. + ns=0 + do i=-ia,ia j=i if(j.lt.0) j=i+nmax - s=(real(c(j))**2 + aimag(c(j))**2)/smax - s=s + ncall-1 + ss(i)=(real(c(j))**2 + aimag(c(j))**2)/smax f=i*df - write(52,1010) f,s,db(s) -1010 format(f12.6,f12.6,f10.3) + if(f.ge.-4.0 .and. f.le.-2.0) then + sum1=sum1 + ss(i) + ns=ns+1 + else if(f.ge.2.0 .and. f.le.4.0) then + sum2=sum2 + ss(i) + endif enddo -! close(52) + avg=min(sum1/ns,sum2/ns) + + sum1=0. + do i=-ia,ia + f=i*df + if(abs(f).le.1.0) sum1=sum1 + ss(i)-avg + y=0.99*ss(i) + ncall-1 + write(52,1010) f,y +1010 format(f12.6,f12.6) + enddo + + ia=nint(1.0/df) + sum2=0.0 + i1=-999 + i2=-999 + i3=-999 + do i=-ia,ia + sum2=sum2 + ss(i)-avg + if(sum2.ge.0.25*sum1 .and. i1.eq.-999) i1=i + if(sum2.ge.0.50*sum1 .and. i2.eq.-999) i2=i + if(sum2.ge.0.75*sum1) then + i3=i + exit + endif + enddo + fmid=i2*df + w50=(i3-i1+1)*df return end subroutine write_ref From f61cb1dcbd181dd1e6bf441811933542958ede6a Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 15 Jul 2020 16:03:36 -0400 Subject: [PATCH 267/520] Better display format for w50 with plotspec. --- lib/decoder.f90 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index a4359a696..27c49a82c 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -733,7 +733,11 @@ contains write(13,1002) nutc,nint(sync),nsnr,dt,freq,0,decoded0 1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FST240') else - if(fmid.ne.-999.0) write(decoded0(16:21),'(f6.3)') w50 + if(fmid.ne.-999.0) then + if(w50.lt.0.95) write(decoded0(18:22),'(f5.3)') w50 + if(w50.ge.0.95) write(decoded0(18:22),'(f5.2)') w50 + if(decoded0(18:18).eq.'0') decoded0(18:18)=' ' + endif write(*,1003) nutc,nsnr,dt,nint(freq),decoded0,annot 1003 format(i4.4,i4,f5.1,i5,' ` ',1x,a37,1x,a2,2f7.3) write(13,1004) nutc,nint(sync),nsnr,dt,freq,0,decoded0 From 68989b3aa8c8f17a9a940fbb5514edaa6cd2fec9 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 16 Jul 2020 12:50:30 +0100 Subject: [PATCH 268/520] Update User Guide FAQ on multiple instances --- doc/user_guide/en/faq.adoc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/doc/user_guide/en/faq.adoc b/doc/user_guide/en/faq.adoc index 2152c3c74..578a82d0a 100644 --- a/doc/user_guide/en/faq.adoc +++ b/doc/user_guide/en/faq.adoc @@ -39,14 +39,18 @@ passband, if such control is available. How should I configure _WSJT-X_ to run multiple instances?:: -Start _WSJT-X_ from a command-prompt window, assigning each instance a -unique identifier as in the following two-instance example. This -procedure will isolate the *Settings* file and the writable file -location for each instance of _WSJT-X_. +Start _WSJT-X_ from a command-prompt window, assigning each but the +first instance a unique identifier as in the following two-instance +example. This procedure will isolate the *Settings* file and the +writable file location for each instance of _WSJT-X_. - wsjtx --rig-name=TS2000 + wsjtx wsjtx --rig-name=FT847 +When restarting any instance after an unlikely crash you *must* close +all of them then restart each one again starting with the first +default instance. + I am getting a "Network Error - SSL/TLS support not installed" message. What should I do?:: You need to install suitable _OpenSSL_ libraries - see <>. From 74970acdb72e9151966e7c0ef546b2125e64fed1 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 16 Jul 2020 14:09:24 +0100 Subject: [PATCH 269/520] Align FST240W round-robin scheduling with hours --- widgets/mainwindow.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index bd130db0b..3f08eefda 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3591,11 +3591,11 @@ void MainWindow::guiUpdate() if(m_mode=="WSPR" or m_mode=="FST240W") { if(m_nseq==0 and m_ntr==0) { //Decide whether to Tx or Rx m_tuneup=false; //This is not an ATU tuneup - if(m_pctx==0) m_WSPR_tx_next = false; //Don't transmit if m_pctx=0 + if(ui->sbTxPercent->isEnabled () && m_pctx==0) m_WSPR_tx_next = false; //Don't transmit if m_pctx=0 bool btx = m_auto && m_WSPR_tx_next; // To Tx, we need m_auto and // scheduled transmit if(m_auto and m_txNext) btx=true; //TxNext button overrides - if(m_auto and m_pctx==100) btx=true; //Always transmit + if(m_auto && ui->sbTxPercent->isEnabled () && m_pctx==100) btx=true; //Always transmit if(btx) { m_ntr=-1; //This says we will have transmitted @@ -7946,13 +7946,13 @@ void MainWindow::WSPR_scheduling () { QString t=ui->RoundRobin->currentText(); if(m_mode=="FST240W" and t!="Random") { - int i=t.left(1).toInt(); + int i=t.left (1).toInt () - 1; int n=t.right(1).toInt(); qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; int nsec=ms/1000; int ntr=m_TRperiod; - int j=(nsec % (n*ntr))/ntr + 1; + int j=((nsec+ntr) % (n*ntr))/ntr; m_WSPR_tx_next=(i==j); return; } From 7bd797c0e9a9b1d88bf0eb56843637de8d972dd8 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 16 Jul 2020 11:47:07 -0400 Subject: [PATCH 270/520] Improved estimates of Doppler spread. Comment the code in write_ref(). --- lib/fst240_decode.f90 | 165 ++++++++++++++++++++++-------------------- 1 file changed, 88 insertions(+), 77 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 697b3df5b..ca2975145 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -811,88 +811,99 @@ contains end subroutine get_candidates_fst240 subroutine write_ref(itone,iwave,nsps,nmax,ndown,hmod,i0,fc,fmid,w50) - complex cwave(nmax) - complex, allocatable :: c(:) - real,allocatable :: ss(:) - integer itone(160) - integer*2 iwave(nmax) - integer hmod - data ncall/0/ - save ncall - ncall=ncall+1 - allocate(c(0:nmax-1)) - wave=0 - fsample=12000.0 - nsym=160 +! On "plotspec" special request, compute Doppler spread for a decoded signal - call gen_fst240wave(itone,nsym,nsps,nmax,fsample,hmod,fc, & - 1,cwave,wave) - cwave=cshift(cwave,-i0*ndown) -! do i=1,nmax -! write(51,1000) i,iwave(i),cwave(i) -!1000 format(2i10,f12.6) -! enddo + complex, allocatable :: cwave(:) !Reconstructed complex signal + complex, allocatable :: g(:) !Channel gain, g(t) in QEX paper + real,allocatable :: ss(:) !Computed power spectrum of g(t) + integer itone(160) !Tones for this message + integer*2 iwave(nmax) !Raw Rx data + integer hmod !Modulation index + data ncall/0/ + save ncall - fac=1.0/32768 - c=fac*float(iwave)*conjg(cwave) - call four2a(c,nmax,1,-1,1) !Forward c2c FFT + ncall=ncall+1 + nfft=2*nmax + allocate(cwave(0:nmax-1)) + allocate(g(0:nfft-1)) + wave=0 + fsample=12000.0 + nsym=160 + call gen_fst240wave(itone,nsym,nsps,nmax,fsample,hmod,fc,1,cwave,wave) + cwave=cshift(cwave,-i0*ndown) + fac=1.0/32768 + g(0:nmax-1)=fac*float(iwave)*conjg(cwave) + g(nmax:)=0. + call four2a(g,nfft,1,-1,1) !Forward c2c FFT - df=12000.0/nmax - ia=1.0/df - smax=0. - do i=-ia,ia - j=i - if(j.lt.0) j=i+nmax - s=real(c(j))**2 + aimag(c(j))**2 - smax=max(s,smax) - enddo - ia=10.1/df - allocate(ss(-ia:ia)) - sum1=0. - sum2=0. - ns=0 - do i=-ia,ia - j=i - if(j.lt.0) j=i+nmax - ss(i)=(real(c(j))**2 + aimag(c(j))**2)/smax - f=i*df - if(f.ge.-4.0 .and. f.le.-2.0) then - sum1=sum1 + ss(i) - ns=ns+1 - else if(f.ge.2.0 .and. f.le.4.0) then - sum2=sum2 + ss(i) - endif - enddo - avg=min(sum1/ns,sum2/ns) + df=12000.0/nfft + ia=1.0/df + smax=0. + do i=-ia,ia !Find smax in +/- 1 Hz around 0. + j=i + if(j.lt.0) j=i+nfft + s=real(g(j))**2 + aimag(g(j))**2 + smax=max(s,smax) + enddo + + ia=10.1/df + allocate(ss(-ia:ia)) !Allocate space for +/- 10 Hz + sum1=0. + sum2=0. + ns=0 + do i=-ia,ia + j=i + if(j.lt.0) j=i+nfft + ss(i)=(real(g(j))**2 + aimag(g(j))**2)/smax + f=i*df + if(f.ge.-4.0 .and. f.le.-2.0) then + sum1=sum1 + ss(i) !Power between -2 and -4 Hz + ns=ns+1 + else if(f.ge.2.0 .and. f.le.4.0) then + sum2=sum2 + ss(i) !Power between +2 and +4 Hz + endif + enddo + avg=min(sum1/ns,sum2/ns) !Compute avg from smaller sum - sum1=0. - do i=-ia,ia - f=i*df - if(abs(f).le.1.0) sum1=sum1 + ss(i)-avg - y=0.99*ss(i) + ncall-1 - write(52,1010) f,y -1010 format(f12.6,f12.6) - enddo + sum1=0. + do i=-ia,ia + f=i*df + if(abs(f).le.1.0) sum1=sum1 + ss(i)-avg !Power in abs(f) < 1 Hz + enddo - ia=nint(1.0/df) - sum2=0.0 - i1=-999 - i2=-999 - i3=-999 - do i=-ia,ia - sum2=sum2 + ss(i)-avg - if(sum2.ge.0.25*sum1 .and. i1.eq.-999) i1=i - if(sum2.ge.0.50*sum1 .and. i2.eq.-999) i2=i - if(sum2.ge.0.75*sum1) then - i3=i - exit - endif - enddo - fmid=i2*df - w50=(i3-i1+1)*df - - return - end subroutine write_ref + ia=nint(1.0/df) + 1 + sum2=0.0 + xi1=-999 + xi2=-999 + xi3=-999 + sum2z=0. + do i=-ia,ia !Find freq range that has 50% of signal power + sum2=sum2 + ss(i)-avg + if(sum2.ge.0.25*sum1 .and. xi1.eq.-999.0) then + xi1=i - 1 + (sum2-0.25*sum1)/(sum2-sum2z) + endif + if(sum2.ge.0.50*sum1 .and. xi2.eq.-999.0) then + xi2=i - 1 + (sum2-0.50*sum1)/(sum2-sum2z) + endif + if(sum2.ge.0.75*sum1) then + xi3=i - 1 + (sum2-0.75*sum1)/(sum2-sum2z) + exit + endif + sum2z=sum2 + enddo + xdiff=sqrt(1.0+(xi3-xi1)**2) !Keep small values from fluctuating too widely + w50=xdiff*df !Compute Doppler spread + fmid=xi2*df !Frequency midpoint of signal powere + + do i=-ia,ia !Save the spectrum for plotting + f=i*df + y=0.99*ss(i+nint(xi2)) + ncall-1 + write(52,1010) f,y +1010 format(f12.6,f12.6) + enddo + + return + end subroutine write_ref end module fst240_decode From 02b66241d29bcd31d69209d596bbd41645fb7abb Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Fri, 17 Jul 2020 10:52:27 -0500 Subject: [PATCH 271/520] Add 15 minute and 30 minute TRperiod option for FST240. --- lib/fst240/fst240sim.f90 | 2 ++ lib/fst240_decode.f90 | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/lib/fst240/fst240sim.f90 b/lib/fst240/fst240sim.f90 index fc09a9f73..edf4fb44c 100644 --- a/lib/fst240/fst240sim.f90 +++ b/lib/fst240/fst240sim.f90 @@ -52,6 +52,8 @@ program fst240sim if(nsec.eq.60) nsps=3888 if(nsec.eq.120) nsps=8200 if(nsec.eq.300) nsps=21504 + if(nsec.eq.900) nsps=65536 + if(nsec.eq.1800) nsps=131072 if(nsps.eq.0) then print*,'Invalid TR sequence length.' go to 999 diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index ca2975145..cce63ab02 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -201,6 +201,16 @@ contains nmax=300*12000 ndown=512/hmod !nss=42,84,168,336 nfft1=int((nmax-200)/ndown)*ndown + else if(ntrperiod.eq.900) then + nsps=65536 + nmax=900*12000 + ndown=1024/hmod !nss=64,128,256,512 + nfft1=int((nmax-200)/ndown)*ndown + else if(ntrperiod.eq.1800) then + nsps=131072 + nmax=1800*12000 + ndown=2048/hmod !nss=64,128,256,512 + nfft1=int((nmax-200)/ndown)*ndown end if nss=nsps/ndown fs=12000.0 !Sample rate From 64dc6c6a6eef531e4213758edfe562da2ac9d703 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 17 Jul 2020 12:00:15 -0400 Subject: [PATCH 272/520] Move the red goal post appropriately when FST240 or FSt240W mode is selected. --- widgets/mainwindow.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 3f08eefda..2faf2c0f3 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5843,6 +5843,7 @@ void MainWindow::on_actionFST240_triggered() m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); m_wideGraph->setPeriod(m_TRperiod,6912); + m_wideGraph->setTxFreq(ui->TxFreqSpinBox->value()); switch_mode (Modes::FST240); m_wideGraph->setMode(m_mode); statusChanged(); @@ -5868,6 +5869,7 @@ void MainWindow::on_actionFST240W_triggered() m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); m_wideGraph->setPeriod(m_TRperiod,6912); + m_wideGraph->setTxFreq(ui->WSPRfreqSpinBox->value()); ui->sbFtol->setValue(100); ui->RxFreqSpinBox->setValue(1500); switch_mode (Modes::FST240W); From 322fd14a6a11cdd595f3c657e9bceba2d2a933a1 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Fri, 17 Jul 2020 11:29:21 -0500 Subject: [PATCH 273/520] Use Joe's values for NSPS. --- lib/fst240/fst240sim.f90 | 4 ++-- lib/fst240_decode.f90 | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/fst240/fst240sim.f90 b/lib/fst240/fst240sim.f90 index edf4fb44c..cdfc4e561 100644 --- a/lib/fst240/fst240sim.f90 +++ b/lib/fst240/fst240sim.f90 @@ -52,8 +52,8 @@ program fst240sim if(nsec.eq.60) nsps=3888 if(nsec.eq.120) nsps=8200 if(nsec.eq.300) nsps=21504 - if(nsec.eq.900) nsps=65536 - if(nsec.eq.1800) nsps=131072 + if(nsec.eq.900) nsps=66560 + if(nsec.eq.1800) nsps=134400 if(nsps.eq.0) then print*,'Invalid TR sequence length.' go to 999 diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index cce63ab02..5976f63ad 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -202,14 +202,14 @@ contains ndown=512/hmod !nss=42,84,168,336 nfft1=int((nmax-200)/ndown)*ndown else if(ntrperiod.eq.900) then - nsps=65536 + nsps=66560 nmax=900*12000 - ndown=1024/hmod !nss=64,128,256,512 + ndown=1664/hmod !nss=40,80,160,320 nfft1=int((nmax-200)/ndown)*ndown else if(ntrperiod.eq.1800) then - nsps=131072 + nsps=134400 nmax=1800*12000 - ndown=2048/hmod !nss=64,128,256,512 + ndown=3360/hmod !nss=40,80,160,320 nfft1=int((nmax-200)/ndown)*ndown end if nss=nsps/ndown From 81da36d68158ec33ae3667cffe4f633cdd45f837 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 17 Jul 2020 17:58:23 +0100 Subject: [PATCH 274/520] Improved exception message wording --- Transceiver/DXLabSuiteCommanderTransceiver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Transceiver/DXLabSuiteCommanderTransceiver.cpp b/Transceiver/DXLabSuiteCommanderTransceiver.cpp index 333f488ce..b9171d367 100644 --- a/Transceiver/DXLabSuiteCommanderTransceiver.cpp +++ b/Transceiver/DXLabSuiteCommanderTransceiver.cpp @@ -409,7 +409,7 @@ QString DXLabSuiteCommanderTransceiver::command_with_reply (QString const& cmd, { TRACE_CAT ("DXLabSuiteCommanderTransceiver", "failed to send command:" << commander_->errorString ()); throw error { - tr ("DX Lab Suite Commander failed to send command \"%1\": %2\n") + tr ("DX Lab Suite Commander send command failed \"%1\": %2\n") .arg (cmd) .arg (commander_->errorString ()) }; From c21a60144a64a3c58340532d2e0cecac79bd2f99 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 17 Jul 2020 19:08:21 +0100 Subject: [PATCH 275/520] Larger 12kHz sample buffer --- commons.h | 2 +- lib/constants.f90 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/commons.h b/commons.h index f53bfff99..140c69c6d 100644 --- a/commons.h +++ b/commons.h @@ -2,7 +2,7 @@ #define COMMONS_H #define NSMAX 6827 -#define NTMAX 300 +#define NTMAX 30*60 #define RX_SAMPLE_RATE 12000 #ifdef __cplusplus diff --git a/lib/constants.f90 b/lib/constants.f90 index ea872e8ad..36e81c77b 100644 --- a/lib/constants.f90 +++ b/lib/constants.f90 @@ -1,4 +1,4 @@ - integer, parameter :: NTMAX=300 + integer, parameter :: NTMAX=30*60 integer, parameter :: NMAX=NTMAX*12000 !Total sample intervals (one minute) integer, parameter :: NDMAX=NTMAX*1500 !Sample intervals at 1500 Hz rate integer, parameter :: NSMAX=6827 !Max length of saved spectra From cccb38dbefd2dd1317759442a59ca3e18dd974c0 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 17 Jul 2020 19:09:21 +0100 Subject: [PATCH 276/520] Pass hints to fst240sim, genfst240, and packjt77::pack77 on WSPR msgs Due to an ambiguity with message encodings between 77-bit QSO modes and 50-bit beacon modes with message types 13.n3 4.0 and 0.6 a hint needs to be passed to ensure the right encoding is emitted. The hint only effects ambiguous messages, others will be encoded strictly according to the message content. --- lib/77bit/packjt77.f90 | 73 ++++++++++++++++++++++++++++++---------- lib/fst240/fst240sim.f90 | 24 +++++++++---- lib/fst240/genfst240.f90 | 7 +++- widgets/mainwindow.cpp | 1 + 4 files changed, 80 insertions(+), 25 deletions(-) diff --git a/lib/77bit/packjt77.f90 b/lib/77bit/packjt77.f90 index 5fc335393..a2499625c 100644 --- a/lib/77bit/packjt77.f90 +++ b/lib/77bit/packjt77.f90 @@ -124,12 +124,14 @@ subroutine pack77(msg0,i3,n3,c77) integer ntel(3) msg=msg0 - if(i3.eq.0 .and. n3.eq.5) go to 5 + i3_hint=i3 + n3_hint=n3 + i3=-1 + n3=-1 + if(i3_hint.eq.0 .and. n3_hint.eq.5) go to 5 ! Convert msg to upper case; collapse multiple blanks; parse into words. call split77(msg,nwords,nw,w) - i3=-1 - n3=-1 if(msg(1:3).eq.'CQ ' .or. msg(1:3).eq.'DE ' .or. msg(1:4).eq.'QRZ ') go to 100 ! Check 0.1 (DXpedition mode) @@ -160,7 +162,7 @@ subroutine pack77(msg0,i3,n3,c77) go to 900 endif -100 call pack77_06(nwords,w,i3,n3,c77) +100 call pack77_06(nwords,w,i3,n3,c77,i3_hint,n3_hint) if(i3.ge.0) go to 900 ! Check Type 1 (Standard 77-bit message) or Type 2, with optional "/P" @@ -414,7 +416,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) n28=n22+2063592 call unpack28(n28,call_1,unpk28_success) if(.not.unpk28_success) unpk77_success=.false. - call to_grid6(igrid6,grid6) + call to_grid(igrid6,grid6) msg=trim(call_1)//' '//grid6 @@ -938,7 +940,7 @@ subroutine pack77_03(nwords,w,i3,n3,c77) end subroutine pack77_03 -subroutine pack77_06(nwords,w,i3,n3,c77) +subroutine pack77_06(nwords,w,i3,n3,c77,i3_hint,n3_hint) character*13 w(19) character*77 c77 @@ -955,13 +957,14 @@ subroutine pack77_06(nwords,w,i3,n3,c77) grid4(3:3).ge.'0' .and. grid4(3:3).le.'9' .and. & grid4(4:4).ge.'0' .and. grid4(4:4).le.'9' - is_grid6(grid6)=len(trim(grid6)).eq.6 .and. & + is_grid6(grid6)=(len(trim(grid6)).eq.6.or.len(trim(grid6)).eq.4).and. & grid6(1:1).ge.'A' .and. grid6(1:1).le.'R' .and. & grid6(2:2).ge.'A' .and. grid6(2:2).le.'R' .and. & grid6(3:3).ge.'0' .and. grid6(3:3).le.'9' .and. & grid6(4:4).ge.'0' .and. grid6(4:4).le.'9' .and. & - grid6(5:5).ge.'A' .and. grid6(5:5).le.'X' .and. & - grid6(6:6).ge.'A' .and. grid6(6:6).le.'X' + (len(trim(grid6)).eq.4.or. & + (grid6(5:5).ge.'A' .and. grid6(5:5).le.'X' .and. & + grid6(6:6).ge.'A' .and. grid6(6:6).le.'X')) is_digit(c)=c.ge.'0' .and. c.le.'9' @@ -1033,8 +1036,13 @@ subroutine pack77_06(nwords,w,i3,n3,c77) go to 900 endif - if(nwords.eq.2 .and. m1.ge.5 .and. m1.le.12 .and. m2.le.6) then + if(i3_hint.eq.0.and.n3_hint.eq.6.and.nwords.eq.2 .and. m1.ge.5 & + .and. m1.le.12 .and. m2.le.6) then ! WSPR Type 3 + + !n3_hint=6 and i3_hint=0 is a hint that the caller wanted a + !50-bit encoding rather than the possible alternative n3=4 77-bit + !encoding if(index(w(1),'<').lt.1 .or. index(w(1),'>').lt.1) go to 900 grid6=w(2)(1:6) if(.not.is_grid6(grid6)) go to 900 @@ -1042,13 +1050,17 @@ subroutine pack77_06(nwords,w,i3,n3,c77) n3=6 call pack28(w(1),n28) n22=n28-2063592 - k1=(ichar(grid6(1:1))-ichar('A'))*18*10*10*24*24 - k2=(ichar(grid6(2:2))-ichar('A'))*10*10*24*24 - k3=(ichar(grid6(3:3))-ichar('0'))*10*24*24 - k4=(ichar(grid6(4:4))-ichar('0'))*24*24 - k5=(ichar(grid6(5:5))-ichar('A'))*24 - k6=(ichar(grid6(6:6))-ichar('A')) - igrid6=k1+k2+k3+k4+k5+k6 + k1=(ichar(grid6(1:1))-ichar('A'))*18*10*10*25*25 + k2=(ichar(grid6(2:2))-ichar('A'))*10*10*25*25 + k3=(ichar(grid6(3:3))-ichar('0'))*10*25*25 + k4=(ichar(grid6(4:4))-ichar('0'))*25*25 + if (grid6(5:6).eq.' ') then + igrid6=k1+k2+k3+k4+24*25+24 + else + k5=(ichar(grid6(5:5))-ichar('A'))*25 + k6=(ichar(grid6(6:6))-ichar('A')) + igrid6=k1+k2+k3+k4+k5+k6 + endif write(c77,1030) n22,igrid6,2,0,n3,i3 1030 format(b22.22,b25.25,b3.3,b21.21,2b3.3) endif @@ -1523,4 +1535,31 @@ subroutine to_grid6(n,grid6) return end subroutine to_grid6 +subroutine to_grid(n,grid6) + ! 4-, or 6-character grid + character*6 grid6 + + j1=n/(18*10*10*25*25) + n=n-j1*18*10*10*25*25 + j2=n/(10*10*25*25) + n=n-j2*10*10*25*25 + j3=n/(10*25*25) + n=n-j3*10*25*25 + j4=n/(25*25) + n=n-j4*25*25 + j5=n/25 + j6=n-j5*25 + grid6='' + grid6(1:1)=char(j1+ichar('A')) + grid6(2:2)=char(j2+ichar('A')) + grid6(3:3)=char(j3+ichar('0')) + grid6(4:4)=char(j4+ichar('0')) + if (j5.ne.24.or.j6.ne.24) then + grid6(5:5)=char(j5+ichar('A')) + grid6(6:6)=char(j6+ichar('A')) + endif + + return +end subroutine to_grid + end module packjt77 diff --git a/lib/fst240/fst240sim.f90 b/lib/fst240/fst240sim.f90 index cdfc4e561..338c7c6ba 100644 --- a/lib/fst240/fst240sim.f90 +++ b/lib/fst240/fst240sim.f90 @@ -6,6 +6,7 @@ program fst240sim use packjt77 include 'fst240_params.f90' !Set various constants type(hdr) h !Header for .wav file + logical*1 wspr_hint character arg*12,fname*17 character msg37*37,msgsent37*37,c77*77 complex, allocatable :: c0(:) @@ -18,10 +19,11 @@ program fst240sim ! Get command-line argument(s) nargs=iargc() - if(nargs.ne.9) then - print*,'Need 9 arguments, got ',nargs - print*,'Usage: fst240sim "message" TRsec f0 DT h fdop del nfiles snr' - print*,'Examples: fst240sim "K1JT K9AN EN50" 60 1500 0.0 1 0.1 1.0 10 -15' + if(nargs.ne.10) then + print*,'Need 10 arguments, got ',nargs + print*,'Usage: fst240sim "message" TRsec f0 DT h fdop del nfiles snr W' + print*,'Examples: fst240sim "K1JT K9AN EN50" 60 1500 0.0 1 0.1 1.0 10 -15 F' + print*,'W (T or F) argument is hint to encoder to use WSPR message when there is abiguity' go to 999 endif call getarg(1,msg37) !Message to be transmitted @@ -41,6 +43,8 @@ program fst240sim read(arg,*) nfiles !Number of files call getarg(9,arg) read(arg,*) snrdb !SNR_2500 + call getarg(10,arg) + read(arg,*) wspr_hint !0:break ties as 77-bit 1:break ties as 50-bit nfiles=abs(nfiles) twopi=8.0*atan(1.0) @@ -72,12 +76,18 @@ program fst240sim sig=sqrt(2*bandwidth_ratio) * 10.0**(0.05*snrdb) if(snrdb.gt.90.0) sig=1.0 - i3=-1 - n3=-1 + if(wspr_hint) then + i3=0 + n3=6 + else + i3=-1 + n3=-1 + endif call pack77(msg37,i3,n3,c77) + if(i3.eq.0.and.n3.eq.6) iwspr=1 call genfst240(msg37,0,msgsent37,msgbits,itone,iwspr) write(*,*) - write(*,'(a9,a37,a7,i2)') 'Message: ',msgsent37,' iwspr:',iwspr + write(*,'(a9,a37,a3,L2,a7,i2)') 'Message: ',msgsent37,'W:',wspr_hint,' iwspr:',iwspr write(*,1000) f00,xdt,hmod,txt,snrdb 1000 format('f0:',f9.3,' DT:',f6.2,' hmod:',i6,' TxT:',f6.1,' SNR:',f6.1) write(*,*) diff --git a/lib/fst240/genfst240.f90 b/lib/fst240/genfst240.f90 index adb8d20ec..2d4a055ae 100644 --- a/lib/fst240/genfst240.f90 +++ b/lib/fst240/genfst240.f90 @@ -5,7 +5,8 @@ subroutine genfst240(msg0,ichk,msgsent,msgbits,i4tone,iwspr) ! - ichk if ichk=1, return only msgsent ! - msgsent message as it will be decoded ! - i4tone array of audio tone values, {0,1,2,3} -! - iwspr 0: (240,101)/crc24, 1: (240,74)/crc24 +! - iwspr in: 0: FST240 1: FST240W +! out 0: (240,101)/crc24, 1: (240,74)/crc24 ! ! Frame structure: ! s8 d30 s8 d30 s8 d30 s8 d30 s8 @@ -43,6 +44,10 @@ subroutine genfst240(msg0,ichk,msgsent,msgbits,i4tone,iwspr) i3=-1 n3=-1 + if(iwspr.eq.1) then + i3=0 + n3=6 + endif call pack77(message,i3,n3,c77) call unpack77(c77,0,msgsent,unpk77_success) !Unpack to get msgsent msgbits=0 diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 2faf2c0f3..2487e7a46 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3875,6 +3875,7 @@ void MainWindow::guiUpdate() char fst240msgbits[101]; QString wmsg; if(m_mode=="FST240W") { + iwspr = 1; wmsg=WSPR_message(); ba=wmsg.toLatin1(); ba2msg(ba,message); From 4e0f1103b60a06ecfb306d30a715b69e0e43d460 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 17 Jul 2020 23:44:14 +0100 Subject: [PATCH 277/520] 15 and 30 minute T/R periods for FST240 & FST240W --- lib/fst240/fst240sim.f90 | 13 +++++++------ lib/fst240_decode.f90 | 28 ++++++++++++++++------------ lib/ft8/foxgen.f90 | 3 ++- lib/ft8/foxgen_wrap.f90 | 2 +- widgets/mainwindow.cpp | 10 ++++++++-- 5 files changed, 34 insertions(+), 22 deletions(-) diff --git a/lib/fst240/fst240sim.f90 b/lib/fst240/fst240sim.f90 index 338c7c6ba..f687036b0 100644 --- a/lib/fst240/fst240sim.f90 +++ b/lib/fst240/fst240sim.f90 @@ -67,9 +67,10 @@ program fst240sim nz=nsps*NN txt=nz*dt !Transmission length (s) tt=nsps*dt !Duration of symbols (s) - allocate( c0(0:nmax-1) ) - allocate( c(0:nmax-1) ) - allocate( wave(nmax) ) + nwave=max(nmax,(NN+2)*nsps) + allocate( c0(0:nwave-1) ) + allocate( c(0:nwave-1) ) + allocate( wave(nwave) ) allocate( iwave(nmax) ) bandwidth_ratio=2500.0/(fs/2.0) @@ -108,7 +109,7 @@ program fst240sim fsample=12000.0 icmplx=1 f0=f00+1.5*hmod*baud - call gen_fst240wave(itone,NN,nsps,nmax,fsample,hmod,f0,icmplx,c0,wave) + call gen_fst240wave(itone,NN,nsps,nwave,fsample,hmod,f0,icmplx,c0,wave) k=nint((xdt+1.0)/dt) if(nsec.eq.15) k=nint((xdt+0.5)/dt) c0=cshift(c0,-k) @@ -117,7 +118,7 @@ program fst240sim do ifile=1,nfiles c=c0 - if(fspread.ne.0.0 .or. delay.ne.0.0) call watterson(c,nmax,NZ,fs,delay,fspread) + if(fspread.ne.0.0 .or. delay.ne.0.0) call watterson(c,nwave,NZ,fs,delay,fspread) c=sig*c wave=real(c) if(snrdb.lt.90) then @@ -135,7 +136,7 @@ program fst240sim wave=fac*wave endif if(any(abs(wave).gt.32767.0)) print*,"Warning - data will be clipped." - iwave=nint(wave) + iwave=nint(wave(:size(iwave))) h=default_header(12000,nmax) if(nmax/12000.le.30) then write(fname,1102) ifile diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 5976f63ad..f6f8824e2 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -68,7 +68,7 @@ contains logical badsync,unpk77_success,single_decode logical first,nohiscall,lwspr,ex - integer*2 iwave(300*12000) + integer*2 iwave(30*60*12000) data mcq/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0/ data mrrr/0,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,1/ @@ -748,8 +748,8 @@ contains integer hmod !Modulation index (submode) integer im(1) !For maxloc real candidates(100,4) !Candidate list - real s(18000) !Low resolution power spectrum - real s2(18000) !CCF of s() with 4 tones + real, allocatable :: s(:) !Low resolution power spectrum + real, allocatable :: s2(:) !CCF of s() with 4 tones real xdb(-3:3) !Model 4-tone CCF peaks real minsync data xdb/0.25,0.50,0.75,1.0,0.75,0.50,0.25/ @@ -776,6 +776,8 @@ contains inb=nint(fh) endif + nnw=nint(48000.*nsps*2./fs) + allocate (s(nnw)) s=0. !Compute low-resloution power spectrum do i=ina,inb ! noise analysis window includes signal analysis window j0=nint(i*df2/df1) @@ -785,7 +787,8 @@ contains enddo ina=max(ina,1+3*hmod) !Don't run off the ends - inb=min(inb,18000-3*hmod) + inb=min(inb,nnw-3*hmod) + allocate (s2(nnw)) s2=0. do i=ina,inb !Compute CCF of s() and 4 tones s2(i)=s(i-hmod*3) + s(i-hmod) +s(i+hmod) +s(i+hmod*3) @@ -796,7 +799,7 @@ contains ncand=0 candidates=0 if(ia.lt.3) ia=3 - if(ib.gt.18000-2) ib=18000-2 + if(ib.gt.nnw-2) ib=nnw-2 ! Find candidates, using the CLEAN algorithm to remove a model of each one ! from s2() after it has been found. @@ -824,6 +827,7 @@ contains ! On "plotspec" special request, compute Doppler spread for a decoded signal + include 'fst240/fst240_params.f90' complex, allocatable :: cwave(:) !Reconstructed complex signal complex, allocatable :: g(:) !Channel gain, g(t) in QEX paper real,allocatable :: ss(:) !Computed power spectrum of g(t) @@ -835,15 +839,15 @@ contains ncall=ncall+1 nfft=2*nmax - allocate(cwave(0:nmax-1)) + nwave=max(nmax,(NN+2)*nsps) + allocate(cwave(0:nwave-1)) allocate(g(0:nfft-1)) wave=0 fsample=12000.0 - nsym=160 - call gen_fst240wave(itone,nsym,nsps,nmax,fsample,hmod,fc,1,cwave,wave) + call gen_fst240wave(itone,NN,nsps,nwave,fsample,hmod,fc,1,cwave,wave) cwave=cshift(cwave,-i0*ndown) fac=1.0/32768 - g(0:nmax-1)=fac*float(iwave)*conjg(cwave) + g(0:nmax-1)=fac*float(iwave)*conjg(cwave(:nmax-1)) g(nmax:)=0. call four2a(g,nfft,1,-1,1) !Forward c2c FFT @@ -861,7 +865,7 @@ contains allocate(ss(-ia:ia)) !Allocate space for +/- 10 Hz sum1=0. sum2=0. - ns=0 + nns=0 do i=-ia,ia j=i if(j.lt.0) j=i+nfft @@ -869,12 +873,12 @@ contains f=i*df if(f.ge.-4.0 .and. f.le.-2.0) then sum1=sum1 + ss(i) !Power between -2 and -4 Hz - ns=ns+1 + nns=nns+1 else if(f.ge.2.0 .and. f.le.4.0) then sum2=sum2 + ss(i) !Power between +2 and +4 Hz endif enddo - avg=min(sum1/ns,sum2/ns) !Compute avg from smaller sum + avg=min(sum1/nns,sum2/nns) !Compute avg from smaller sum sum1=0. do i=-ia,ia diff --git a/lib/ft8/foxgen.f90 b/lib/ft8/foxgen.f90 index 703da0ef9..5aa114ac4 100644 --- a/lib/ft8/foxgen.f90 +++ b/lib/ft8/foxgen.f90 @@ -15,7 +15,8 @@ subroutine foxgen() ! common block. parameter (NN=79,ND=58,NSPS=4*1920) - parameter (NWAVE=14278656,NFFT=614400,NH=NFFT/2) + parameter (NWAVE=(160+2)*134400) !the biggest waveform we generate (FST240-1800) + parameter (NFFT=614400,NH=NFFT/2) character*40 cmsg character*37 msg,msgsent integer itone(79) diff --git a/lib/ft8/foxgen_wrap.f90 b/lib/ft8/foxgen_wrap.f90 index bc8c430f7..eb489cccc 100644 --- a/lib/ft8/foxgen_wrap.f90 +++ b/lib/ft8/foxgen_wrap.f90 @@ -1,7 +1,7 @@ subroutine foxgen_wrap(msg40,msgbits,itone) parameter (NN=79,ND=58,KK=77,NSPS=4*1920) - parameter (NWAVE=NN*NSPS) + parameter (NWAVE=(160+2)*134400) !the biggest waveform we generate (FST240-1800) character*40 msg40,cmsg character*12 mycall12 diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 2487e7a46..b315c013b 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -428,7 +428,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->dxGridEntry->setValidator (new MaidenheadLocatorValidator {this}); ui->dxCallEntry->setValidator (new CallsignValidator {this}); ui->sbTR->values ({5, 10, 15, 30, 60, 120, 300}); - ui->sbTR_FST240W->values ({15, 30, 60, 120, 300}); + ui->sbTR_FST240W->values ({15, 30, 60, 120, 300, 900, 1800}); ui->decodedTextBrowser->set_configuration (&m_config, true); ui->decodedTextBrowser2->set_configuration (&m_config); @@ -3556,6 +3556,8 @@ void MainWindow::guiUpdate() if(m_TRperiod==60) txDuration=1.0 + 160*3888/12000.0; if(m_TRperiod==120) txDuration=1.0 + 160*8200/12000.0; if(m_TRperiod==300) txDuration=1.0 + 160*21504/12000.0; + if(m_TRperiod==900) txDuration=1.0 + 160*66560/12000.0; + if(m_TRperiod==1800) txDuration=1.0 + 160*134400/12000.0; } if(m_modeTx=="ISCAT" or m_mode=="MSK144" or m_bFast9) { txDuration=m_TRperiod-0.25; // ISCAT, JT9-fast, MSK144 @@ -3888,6 +3890,8 @@ void MainWindow::guiUpdate() if(m_TRperiod==60) nsps=3888; if(m_TRperiod==120) nsps=8200; if(m_TRperiod==300) nsps=21504; + if(m_TRperiod==900) nsps=66560; + if(m_TRperiod==1800) nsps=134400; nsps=4*nsps; //48000 Hz sampling int nsym=160; float fsample=48000.0; @@ -5838,7 +5842,7 @@ void MainWindow::on_actionFST240_triggered() // 0123456789012345678901234567890123 displayWidgets(nWidgets("1111110001001111000100000001000000")); setup_status_bar (bVHF); - ui->sbTR->values ({15, 30, 60, 120, 300}); + ui->sbTR->values ({15, 30, 60, 120, 300, 900, 1800}); on_sbTR_valueChanged (ui->sbTR->value()); ui->cbAutoSeq->setChecked(true); m_wideGraph->setMode(m_mode); @@ -7183,6 +7187,8 @@ void MainWindow::transmit (double snr) if(m_TRperiod==60) nsps=3888; if(m_TRperiod==120) nsps=8200; if(m_TRperiod==300) nsps=21504; + if(m_TRperiod==900) nsps=66560; + if(m_TRperiod==1800) nsps=134400; int hmod=int(pow(2.0,double(m_nSubMode))); double dfreq=hmod*12000.0/nsps; double f0=ui->WSPRfreqSpinBox->value() - m_XIT + 1.5*dfreq; From 8b35e744d0e98160856cb8f221ad959cb921b4ac Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 18 Jul 2020 10:35:26 +0100 Subject: [PATCH 278/520] Increase Tx waveform storage & update wide graph nsps for FST240 --- commons.h | 2 +- lib/ft8/foxgen.f90 | 2 +- widgets/plotter.cpp | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/commons.h b/commons.h index 140c69c6d..0a3872048 100644 --- a/commons.h +++ b/commons.h @@ -85,7 +85,7 @@ extern struct { } echocom_; extern struct { - float wave[14278656]; + float wave[(160+2)*134400*4]; /* (nsym+2)*nsps scaled up to 48kHz */ int nslots; int nfreq; int i3bit[5]; diff --git a/lib/ft8/foxgen.f90 b/lib/ft8/foxgen.f90 index 5aa114ac4..13299da89 100644 --- a/lib/ft8/foxgen.f90 +++ b/lib/ft8/foxgen.f90 @@ -15,7 +15,7 @@ subroutine foxgen() ! common block. parameter (NN=79,ND=58,NSPS=4*1920) - parameter (NWAVE=(160+2)*134400) !the biggest waveform we generate (FST240-1800) + parameter (NWAVE=(160+2)*134400*4) !the biggest waveform we generate (FST240-1800 at 48kHz) parameter (NFFT=614400,NH=NFFT/2) character*40 cmsg character*37 msg,msgsent diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index 160f55b10..5853e07f6 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -420,6 +420,8 @@ void CPlotter::DrawOverlay() //DrawOverlay() if(m_TRperiod==60) nsps=4000; if(m_TRperiod==120) nsps=8400; if(m_TRperiod==300) nsps=21504; + if(m_TRperiod==900) nsps=66560; + if(m_TRperiod==1800) nsps=134400; float baud=12000.0/nsps; bw=3.0*h*baud; } From fe28f48cceb9193f101752a052772d2906aa8d9a Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 18 Jul 2020 12:17:21 +0100 Subject: [PATCH 279/520] Close orphaned jt9 sub-process before restarting --- main.cpp | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/main.cpp b/main.cpp index 040225352..b3de449f6 100644 --- a/main.cpp +++ b/main.cpp @@ -353,14 +353,41 @@ int main(int argc, char *argv[]) // Multiple instances: use rig_name as shared memory key mem_jt9.setKey(a.applicationName ()); - if(!mem_jt9.attach()) { - if (!mem_jt9.create(sizeof(struct dec_data))) { - splash.hide (); - MessageBox::critical_message (nullptr, a.translate ("main", "Shared memory error"), - a.translate ("main", "Unable to create shared memory segment")); - throw std::runtime_error {"Shared memory error"}; + // try and shut down any orphaned jt9 process + for (int i = 3; i; --i) // three tries to close old jt9 + { + if (mem_jt9.attach ()) // shared memory presence implies + // orphaned jt9 sub-process + { + dec_data_t * dd = reinterpret_cast (mem_jt9.data()); + mem_jt9.lock (); + dd->ipc[1] = 999; // tell jt9 to shut down + mem_jt9.unlock (); + mem_jt9.detach (); // start again + } + else + { + break; // good to go + } + QThread::sleep (1); // wait for jt9 to end + } + if (!mem_jt9.attach ()) + { + if (!mem_jt9.create (sizeof (struct dec_data))) + { + splash.hide (); + MessageBox::critical_message (nullptr, a.translate ("main", "Shared memory error"), + a.translate ("main", "Unable to create shared memory segment")); + throw std::runtime_error {"Shared memory error"}; + } + } + else + { + splash.hide (); + MessageBox::critical_message (nullptr, a.translate ("main", "Sub-process error"), + a.translate ("main", "Failed to close orphaned jt9 process")); + throw std::runtime_error {"Sub-process error"}; } - } mem_jt9.lock (); memset(mem_jt9.data(),0,sizeof(struct dec_data)); //Zero all decoding params in shared memory mem_jt9.unlock (); From 46162fe94c3df01a940382e021e80f9509b543e8 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 18 Jul 2020 12:20:44 +0100 Subject: [PATCH 280/520] Rescind multi-instance start-up sequence requirement WSJT-X now closes any orphaned jt9 sub-process for the same --rig-name= command line option it can detect before starting a new one. --- doc/user_guide/en/faq.adoc | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/doc/user_guide/en/faq.adoc b/doc/user_guide/en/faq.adoc index 578a82d0a..b985ff5a2 100644 --- a/doc/user_guide/en/faq.adoc +++ b/doc/user_guide/en/faq.adoc @@ -39,18 +39,14 @@ passband, if such control is available. How should I configure _WSJT-X_ to run multiple instances?:: -Start _WSJT-X_ from a command-prompt window, assigning each but the -first instance a unique identifier as in the following two-instance -example. This procedure will isolate the *Settings* file and the -writable file location for each instance of _WSJT-X_. +Start _WSJT-X_ from a command-prompt window, assigning each a unique +identifier as in the following two-instance example. This procedure +will isolate the *Settings* file and the writable file location for +each instance of _WSJT-X_. - wsjtx + wsjtx --rig-name=TS590 wsjtx --rig-name=FT847 -When restarting any instance after an unlikely crash you *must* close -all of them then restart each one again starting with the first -default instance. - I am getting a "Network Error - SSL/TLS support not installed" message. What should I do?:: You need to install suitable _OpenSSL_ libraries - see <>. From 0de538c7237551340d0a54d0be4bb4f4407e8e11 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 18 Jul 2020 12:17:21 +0100 Subject: [PATCH 281/520] Close orphaned jt9 sub-process before restarting --- main.cpp | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/main.cpp b/main.cpp index 040225352..b3de449f6 100644 --- a/main.cpp +++ b/main.cpp @@ -353,14 +353,41 @@ int main(int argc, char *argv[]) // Multiple instances: use rig_name as shared memory key mem_jt9.setKey(a.applicationName ()); - if(!mem_jt9.attach()) { - if (!mem_jt9.create(sizeof(struct dec_data))) { - splash.hide (); - MessageBox::critical_message (nullptr, a.translate ("main", "Shared memory error"), - a.translate ("main", "Unable to create shared memory segment")); - throw std::runtime_error {"Shared memory error"}; + // try and shut down any orphaned jt9 process + for (int i = 3; i; --i) // three tries to close old jt9 + { + if (mem_jt9.attach ()) // shared memory presence implies + // orphaned jt9 sub-process + { + dec_data_t * dd = reinterpret_cast (mem_jt9.data()); + mem_jt9.lock (); + dd->ipc[1] = 999; // tell jt9 to shut down + mem_jt9.unlock (); + mem_jt9.detach (); // start again + } + else + { + break; // good to go + } + QThread::sleep (1); // wait for jt9 to end + } + if (!mem_jt9.attach ()) + { + if (!mem_jt9.create (sizeof (struct dec_data))) + { + splash.hide (); + MessageBox::critical_message (nullptr, a.translate ("main", "Shared memory error"), + a.translate ("main", "Unable to create shared memory segment")); + throw std::runtime_error {"Shared memory error"}; + } + } + else + { + splash.hide (); + MessageBox::critical_message (nullptr, a.translate ("main", "Sub-process error"), + a.translate ("main", "Failed to close orphaned jt9 process")); + throw std::runtime_error {"Sub-process error"}; } - } mem_jt9.lock (); memset(mem_jt9.data(),0,sizeof(struct dec_data)); //Zero all decoding params in shared memory mem_jt9.unlock (); From 28c5bfc1bd3220a13d50125ae7c22dfa7aa2d1a8 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 18 Jul 2020 14:47:20 +0100 Subject: [PATCH 282/520] Process double-clicks of Fox multi-caller replies correctly This change also ignores attempts to double-click other Hound calls. --- Decoder/decodedtext.cpp | 8 +++++++- widgets/mainwindow.cpp | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Decoder/decodedtext.cpp b/Decoder/decodedtext.cpp index e476ecb9b..04a5cc87e 100644 --- a/Decoder/decodedtext.cpp +++ b/Decoder/decodedtext.cpp @@ -165,7 +165,13 @@ QString DecodedText::call() const // get the second word, most likely the de call and the third word, most likely grid void DecodedText::deCallAndGrid(/*out*/QString& call, QString& grid) const { - auto const& match = words_re.match (message_); + auto msg = message_; + auto p = msg.indexOf ("; "); + if (p >= 0) + { + msg = msg.mid (p + 2); + } + auto const& match = words_re.match (msg); call = match.captured ("word2"); grid = match.captured ("word3"); if ("R" == grid) grid = match.captured ("word4"); diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index f54355842..d48266e57 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4607,6 +4607,13 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie return; } + // ignore calls by other hounds + if (SpecOp::HOUND == m_config.special_op_id() + && message.messageWords ().indexOf (QRegularExpression {R"(R\+-[0-9]+)"}) >= 0) + { + return; + } + QString firstcall = message.call(); if(firstcall.length()==5 and firstcall.mid(0,3)=="CQ ") firstcall="CQ"; if(!m_bFastMode and (!m_config.enable_VHF_features() or m_mode=="FT8")) { From 98596a4be7ab8ab8d7f1f9131f7dba610a878476 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sat, 18 Jul 2020 09:02:11 -0500 Subject: [PATCH 283/520] Choose nfft1 and ndown so that both nfft1 and nfft2 have small prime factors. --- lib/fst240_decode.f90 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 5976f63ad..9d3441e1d 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -175,7 +175,7 @@ contains nsps=1680 nmax=30*12000 ndown=42/hmod !nss=40,80,168,336 - nfft1=359856 + nfft1=359856 !nfft2=8568=2^3*3^2*7*17 if(hmod.eq.4) then ndown=10 nfft1=nmax @@ -189,28 +189,28 @@ contains nmax=60*12000 ndown=96/hmod !nss=36,81,162,324 if(hmod.eq.1) ndown=108 - nfft1=int(719808/ndown)*ndown + nfft1=7500*96 ! nfft2=7500=2^2*3*5^4 else if(ntrperiod.eq.120) then nsps=8200 nmax=120*12000 ndown=200/hmod !nss=40,82,164,328 if(hmod.eq.1) ndown=205 - nfft1=int(nmax/ndown)*ndown + nfft1=7200*200 ! nfft2=7200=2^5*3^2*5^2 else if(ntrperiod.eq.300) then nsps=21504 nmax=300*12000 ndown=512/hmod !nss=42,84,168,336 - nfft1=int((nmax-200)/ndown)*ndown + nfft1=7020*512 ! nfft2=7020=2^2*3^3*5*13 else if(ntrperiod.eq.900) then nsps=66560 nmax=900*12000 ndown=1664/hmod !nss=40,80,160,320 - nfft1=int((nmax-200)/ndown)*ndown + nfft1=6480*1664 ! nfft2=6480=2^4*3^4*5 else if(ntrperiod.eq.1800) then nsps=134400 nmax=1800*12000 ndown=3360/hmod !nss=40,80,160,320 - nfft1=int((nmax-200)/ndown)*ndown + nfft1=6426*3360 ! nfft2=6426=2*3^3*7*17 end if nss=nsps/ndown fs=12000.0 !Sample rate From 9e6d31dff313e66a46f0ae8c87f2d31c7257945c Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 18 Jul 2020 18:49:20 +0100 Subject: [PATCH 284/520] Debug print of shared memory size --- main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/main.cpp b/main.cpp index b3de449f6..43543ce59 100644 --- a/main.cpp +++ b/main.cpp @@ -373,13 +373,14 @@ int main(int argc, char *argv[]) } if (!mem_jt9.attach ()) { - if (!mem_jt9.create (sizeof (struct dec_data))) + if (!mem_jt9.create (sizeof (dec_data))) { splash.hide (); MessageBox::critical_message (nullptr, a.translate ("main", "Shared memory error"), a.translate ("main", "Unable to create shared memory segment")); throw std::runtime_error {"Shared memory error"}; } + qDebug () << "shmem size:" << mem_jt9.size (); } else { From 60ddd400496c3a7775a1f21e88ecb7e42da5678b Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 18 Jul 2020 18:50:08 +0100 Subject: [PATCH 285/520] More 15 & 30 minute T.R period updates --- widgets/mainwindow.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index b315c013b..93f273f18 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1343,13 +1343,15 @@ void MainWindow::fixStop() } else if (m_mode=="FT4") { m_hsymStop=21; } else if(m_mode=="FST240" or m_mode=="FST240W") { - int stop[] = {39,85,187,387,1003}; - int stop_EME[] = {48,95,197,396,1012}; + int stop[] = {39,85,187,387,1003,3092,6233}; + int stop_EME[] = {48,95,197,396,1012,3102,6243}; int i=0; if(m_TRperiod==30) i=1; if(m_TRperiod==60) i=2; if(m_TRperiod==120) i=3; if(m_TRperiod==300) i=4; + if(m_TRperiod==900) i=5; + if(m_TRperiod==1800) i=5; if(m_config.decode_at_52s()) { m_hsymStop=stop_EME[i]; } else { From 43d6eacc4bb4039e9be37ca8da90d370f5812c06 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 18 Jul 2020 18:52:09 +0100 Subject: [PATCH 286/520] Refined stop times --- widgets/mainwindow.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 93f273f18..c28870d0a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1343,8 +1343,8 @@ void MainWindow::fixStop() } else if (m_mode=="FT4") { m_hsymStop=21; } else if(m_mode=="FST240" or m_mode=="FST240W") { - int stop[] = {39,85,187,387,1003,3092,6233}; - int stop_EME[] = {48,95,197,396,1012,3102,6243}; + int stop[] = {39,85,187,387,1003,3107,6232}; + int stop_EME[] = {48,95,197,396,1012,3107,6232}; int i=0; if(m_TRperiod==30) i=1; if(m_TRperiod==60) i=2; From e73f27954dbf63b4c851254210d073ab6f0bc2b3 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 18 Jul 2020 13:55:33 -0400 Subject: [PATCH 287/520] Increase valid range of TRperiod controls. --- widgets/mainwindow.ui | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index ef5a882b1..a3b9fe7cf 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -1013,7 +1013,7 @@ When not checked you can view the calibration results. 5 - 30 + 1800 30 @@ -2120,10 +2120,10 @@ list. The list can be maintained in Settings (F2). T/R - 120 + 15 - 300 + 1800 From 4fa9557272b41dc5a2ad30780408c1755d1e5298 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 18 Jul 2020 13:56:19 -0400 Subject: [PATCH 288/520] Add end-of-Rx-sequence number of buffers for 900 and 1800 s sequences. --- widgets/mainwindow.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index b315c013b..f18b9fd73 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -427,7 +427,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, add_child_to_event_filter (this); ui->dxGridEntry->setValidator (new MaidenheadLocatorValidator {this}); ui->dxCallEntry->setValidator (new CallsignValidator {this}); - ui->sbTR->values ({5, 10, 15, 30, 60, 120, 300}); + ui->sbTR->values ({5, 10, 15, 30, 60, 120, 300, 900, 1800}); ui->sbTR_FST240W->values ({15, 30, 60, 120, 300, 900, 1800}); ui->decodedTextBrowser->set_configuration (&m_config, true); ui->decodedTextBrowser2->set_configuration (&m_config); @@ -1573,6 +1573,7 @@ QString MainWindow::save_wave_file (QString const& name, short const * data, int QString const& my_callsign, QString const& my_grid, QString const& mode, qint32 sub_mode, Frequency frequency, QString const& his_call, QString const& his_grid) const { + qDebug() << "aa" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz"); // // This member function runs in a thread and should not access // members that may be changed in the GUI thread or any other thread @@ -1609,6 +1610,7 @@ QString MainWindow::save_wave_file (QString const& name, short const * data, int { return file_name + ": " + wav.errorString (); } + qDebug() << "bb" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz"); return QString {}; } From 58fc82e178d2d45585850a0f2e015e32c9cb2dd7 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 19 Jul 2020 12:31:10 +0100 Subject: [PATCH 289/520] Correct standard message generation for FST240 --- widgets/mainwindow.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 3a3bbd1ea..ea11d94d8 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5147,7 +5147,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) int n=rpt.toInt(); rpt = rpt.asprintf("%+2.2d",n); - if(m_mode=="MSK144" or m_mode=="FT8" or m_mode=="FT4") { + if(m_mode=="MSK144" or m_mode=="FT8" or m_mode=="FT4" || m_mode=="FST240") { QString t2,t3; QString sent=rpt; QString rs,rst; @@ -5227,7 +5227,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) } t=t0 + (m_send_RR73 ? "RR73" : "RRR"); - if((m_mode=="MSK144" and !m_bShMsgs) or m_mode=="FT8" or m_mode=="FT4") { + if((m_mode=="MSK144" and !m_bShMsgs) or m_mode=="FT8" or m_mode=="FT4" || m_mode == "FST240") { if(!bHisCall and bMyCall) t=hisCall + " <" + my_callsign + "> " + (m_send_RR73 ? "RR73" : "RRR"); if(bHisCall and !bMyCall) t="<" + hisCall + "> " + my_callsign + " " + (m_send_RR73 ? "RR73" : "RRR"); } @@ -5235,7 +5235,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) msgtype(t, ui->tx4); t=t0 + "73"; - if((m_mode=="MSK144" and !m_bShMsgs) or m_mode=="FT8" or m_mode=="FT4") { + if((m_mode=="MSK144" and !m_bShMsgs) or m_mode=="FT8" or m_mode=="FT4" || m_mode == "FST240") { if(!bHisCall and bMyCall) t=hisCall + " <" + my_callsign + "> 73"; if(bHisCall and !bMyCall) t="<" + hisCall + "> " + my_callsign + " 73"; } @@ -5251,7 +5251,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) } } - if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="MSK144") return; + if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="MSK144" || m_mode == "FST240") return; if (is_compound) { if (is_type_one) { @@ -5266,7 +5266,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) if (!eme_short_codes) { if((m_mode=="MSK144" || m_mode=="FT8" || m_mode=="FT4") && SpecOp::NA_VHF == m_config.special_op_id()) { - msgtype(t + "R " + my_grid, ui->tx3); + msgtype(t + "R " + my_grid, ui->tx3); // #### Unreachable code } else { msgtype(t + "R" + rpt, ui->tx3); } @@ -5295,7 +5295,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) if (!eme_short_codes) { if ((m_mode=="MSK144" || m_mode=="FT8" || m_mode=="FT4") && SpecOp::NA_VHF == m_config.special_op_id()) { - msgtype(t + "R " + my_grid, ui->tx3); + msgtype(t + "R " + my_grid, ui->tx3); // #### Unreachable code msgtype(t + "RRR", ui->tx4); } else { msgtype(t0 + "R" + rpt, ui->tx3); From 159b8a97f74b50673f3589081d0254410f39ac5c Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 19 Jul 2020 13:20:41 -0400 Subject: [PATCH 290/520] Better handling of fSpread in mainwindow.cpp. Makes auto-seq work when plotspec is used. --- lib/decoder.f90 | 18 +++++++++++------- widgets/mainwindow.cpp | 21 ++++++++++++++++----- widgets/mainwindow.h | 3 ++- 3 files changed, 29 insertions(+), 13 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 27c49a82c..bb7aaaa8e 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -719,6 +719,7 @@ contains character*2 annot character*37 decoded0 + character*70 line decoded0=decoded annot=' ' @@ -728,22 +729,25 @@ contains endif if(ntrperiod.lt.60) then - write(*,1001) nutc,nsnr,dt,nint(freq),decoded0,annot + write(line,1001) nutc,nsnr,dt,nint(freq),decoded0,annot 1001 format(i6.6,i4,f5.1,i5,' ` ',1x,a37,1x,a2) write(13,1002) nutc,nint(sync),nsnr,dt,freq,0,decoded0 1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FST240') else - if(fmid.ne.-999.0) then - if(w50.lt.0.95) write(decoded0(18:22),'(f5.3)') w50 - if(w50.ge.0.95) write(decoded0(18:22),'(f5.2)') w50 - if(decoded0(18:18).eq.'0') decoded0(18:18)=' ' - endif - write(*,1003) nutc,nsnr,dt,nint(freq),decoded0,annot + write(line,1003) nutc,nsnr,dt,nint(freq),decoded0,annot 1003 format(i4.4,i4,f5.1,i5,' ` ',1x,a37,1x,a2,2f7.3) write(13,1004) nutc,nint(sync),nsnr,dt,freq,0,decoded0 1004 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a37,' FST240') endif + if(fmid.ne.-999.0) then + if(w50.lt.0.95) write(line(65:70),'(f6.3)') w50 + if(w50.ge.0.95) write(line(65:70),'(f6.2)') w50 + endif + + write(*,1005) line +1005 format(a70) + call flush(6) call flush(13) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 3a3bbd1ea..e45a8a90f 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1575,7 +1575,6 @@ QString MainWindow::save_wave_file (QString const& name, short const * data, int QString const& my_callsign, QString const& my_grid, QString const& mode, qint32 sub_mode, Frequency frequency, QString const& his_call, QString const& his_grid) const { - qDebug() << "aa" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz"); // // This member function runs in a thread and should not access // members that may be changed in the GUI thread or any other thread @@ -1612,7 +1611,6 @@ QString MainWindow::save_wave_file (QString const& name, short const * data, int { return file_name + ": " + wav.errorString (); } - qDebug() << "bb" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz"); return QString {}; } @@ -3147,6 +3145,8 @@ void MainWindow::readFromStdout() //readFromStdout { while(proc_jt9.canReadLine()) { auto line_read = proc_jt9.readLine (); + m_fSpread=line_read.mid(64,6).toFloat(); + line_read=line_read.left(64); if (auto p = std::strpbrk (line_read.constData (), "\n\r")) { // truncate before line ending chars line_read = line_read.left (p - line_read.constData ()); @@ -3231,7 +3231,18 @@ void MainWindow::readFromStdout() //readFromStdout m_bDisplayedOnce=true; } } else { - ui->decodedTextBrowser->displayDecodedText(decodedtext0,m_baseCall,m_mode,m_config.DXCC(), + DecodedText decodedtext1=decodedtext0; + if(m_mode.startsWith("FST240") and m_fSpread>0.0) { + QString t=decodedtext0.string(); + QString t2; + if(m_fSpread<0.95) t2.sprintf("%5.3f",m_fSpread); + if(m_fSpread>=0.95) t2.sprintf("%5.2f",m_fSpread); + t=t.left(46)+t2+t.mid(50); + t=t.trimmed(); + DecodedText dt2{t}; + decodedtext1=dt2; + } + ui->decodedTextBrowser->displayDecodedText(decodedtext1,m_baseCall,m_mode,m_config.DXCC(), m_logBook,m_currentBand,m_config.ppfx(), (ui->cbCQonly->isVisible() and ui->cbCQonly->isChecked())); @@ -3476,7 +3487,6 @@ void MainWindow::pskPost (DecodedText const& decodedtext) int snr = decodedtext.snr(); Frequency frequency = m_freqNominal + audioFrequency; pskSetLocal (); -// qDebug() << "bb" << deCall << grid << frequency << msgmode << snr; if(grid.contains (grid_regexp)) { // qDebug() << "To PSKreporter:" << deCall << grid << frequency << msgmode << snr; psk_Reporter->addRemoteStation(deCall,grid,QString::number(frequency),msgmode, @@ -4529,7 +4539,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie || ("JT9" == m_mode && mode != "@") || ("MSK144" == m_mode && !("&" == mode || "^" == mode)) || ("QRA64" == m_mode && mode.left (1) != ":")) { - return; //Currently we do auto-sequencing only in FT4, FT8, and MSK144 + return; //Currently we do auto-sequencing only in FT4, FT8, MSK144, and FST240 } //Skip the rest if no decoded text extracted @@ -4570,6 +4580,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie QString hiscall; QString hisgrid; message.deCallAndGrid(/*out*/hiscall,hisgrid); + if(message.string().contains(hiscall+"/R")) { hiscall+="/R"; ui->dxCallEntry->setText(hiscall); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 3653cfd5c..630935ac8 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -419,6 +419,7 @@ private: float m_t0Pick; float m_t1Pick; float m_fCPUmskrtd; + float m_fSpread; qint32 m_waterfallAvg; qint32 m_ntx; @@ -716,7 +717,7 @@ private: void pskPost(DecodedText const& decodedtext); void displayDialFrequency (); void transmitDisplay (bool); - void processMessage(DecodedText const&, Qt::KeyboardModifiers = Qt::NoModifier); + void processMessage(DecodedText const& message, Qt::KeyboardModifiers = Qt::NoModifier); void replyToCQ (QTime, qint32 snr, float delta_time, quint32 delta_frequency, QString const& mode, QString const& message_text, bool low_confidence, quint8 modifiers); void locationChange(QString const& location); void replayDecodes (); From 731dfc5c6f5d793827ec1153d1da16df4cc89a2b Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 19 Jul 2020 21:09:52 +0100 Subject: [PATCH 291/520] Qt 5.15 compatibility --- widgets/mainwindow.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 2e8b8aa9e..9c1825f27 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3234,12 +3234,7 @@ void MainWindow::readFromStdout() //readFromStdout DecodedText decodedtext1=decodedtext0; if(m_mode.startsWith("FST240") and m_fSpread>0.0) { QString t=decodedtext0.string(); - QString t2; - if(m_fSpread<0.95) t2.sprintf("%5.3f",m_fSpread); - if(m_fSpread>=0.95) t2.sprintf("%5.2f",m_fSpread); - t=t.left(46)+t2+t.mid(50); - t=t.trimmed(); - DecodedText dt2{t}; + DecodedText dt2 {QString {"%1%2%3"}.arg (t.left (46)).arg (m_fSpread, 5, 'f', m_fSpread < 0.95 ? 2 : 3).arg (t.mid(50)).trimmed ()}; decodedtext1=dt2; } ui->decodedTextBrowser->displayDecodedText(decodedtext1,m_baseCall,m_mode,m_config.DXCC(), From 22f66795a1b32a07849479dced12e9847c2d5b1c Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 20 Jul 2020 15:15:55 +0100 Subject: [PATCH 292/520] Improved C/Fortran string interoperation, and fix azel.dat updates The azel.dat file is no longer written with future Doppler correction information designed for rigs that can't do CAT QSY commands while transmitting. --- CMakeLists.txt | 2 + lib/astrosub.f90 | 48 ++-- lib/c_interface_module.f90 | 441 +++++++++++++++++++++++++++++++++++++ lib/types.f90 | 10 + widgets/astro.cpp | 24 +- 5 files changed, 482 insertions(+), 43 deletions(-) create mode 100644 lib/c_interface_module.f90 create mode 100644 lib/types.f90 diff --git a/CMakeLists.txt b/CMakeLists.txt index 80199358d..d2ed2459b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -358,6 +358,8 @@ endif (WIN32) set (wsjt_FSRCS # put module sources first in the hope that they get rebuilt before use + lib/types.f90 + lib/C_interface_module.f90 lib/shmem.f90 lib/crc.f90 lib/fftw3mod.f90 diff --git a/lib/astrosub.f90 b/lib/astrosub.f90 index 0670d66dc..5e7f473f0 100644 --- a/lib/astrosub.f90 +++ b/lib/astrosub.f90 @@ -1,5 +1,4 @@ module astro_module - use, intrinsic :: iso_c_binding, only : c_int, c_double, c_bool, c_char, c_ptr, c_size_t, c_f_pointer implicit none private @@ -7,50 +6,37 @@ module astro_module contains - subroutine astrosub(nyear,month,nday,uth8,freq8,mygrid_cp,mygrid_len, & - hisgrid_cp,hisgrid_len,AzSun8,ElSun8,AzMoon8,ElMoon8,AzMoonB8,ElMoonB8, & + subroutine astrosub(nyear,month,nday,uth8,freq8,mygrid_cp, & + hisgrid_cp,AzSun8,ElSun8,AzMoon8,ElMoon8,AzMoonB8,ElMoonB8, & ntsky,ndop,ndop00,RAMoon8,DecMoon8,Dgrd8,poloffset8,xnr8,techo8,width1, & - width2,bTx,AzElFileName_cp,AzElFileName_len,jpleph_cp,jpleph_len) & + width2,bTx,AzElFileName_cp,jpleph_file_name_cp) & bind (C, name="astrosub") - integer, parameter :: dp = selected_real_kind(15, 50) + use :: types, only: dp + use :: C_interface_module, only: C_int, C_double, C_bool, C_ptr, C_string_value, assignment(=) - integer(c_int), intent(in), value :: nyear, month, nday - real(c_double), intent(in), value :: uth8, freq8 - real(c_double), intent(out) :: AzSun8, ElSun8, AzMoon8, ElMoon8, AzMoonB8, & + integer(C_int), intent(in), value :: nyear, month, nday + real(C_double), intent(in), value :: uth8, freq8 + real(C_double), intent(out) :: AzSun8, ElSun8, AzMoon8, ElMoon8, AzMoonB8, & ElMoonB8, Ramoon8, DecMoon8, Dgrd8, poloffset8, xnr8, techo8, width1, & width2 - integer(c_int), intent(out) :: ntsky, ndop, ndop00 - logical(c_bool), intent(in), value :: bTx - type(c_ptr), intent(in), value :: mygrid_cp, hisgrid_cp, AzElFileName_cp, jpleph_cp - integer(c_size_t), intent(in), value :: mygrid_len, hisgrid_len, AzElFileName_len, jpleph_len + integer(C_int), intent(out) :: ntsky, ndop, ndop00 + logical(C_bool), intent(in), value :: bTx + type(C_ptr), value, intent(in) :: mygrid_cp, hisgrid_cp, AzElFileName_cp, & + jpleph_file_name_cp character(len=6) :: mygrid, hisgrid - character(kind=c_char, len=:), allocatable :: AzElFileName + character(len=:), allocatable :: AzElFileName character(len=1) :: c1 integer :: ih, im, imin, is, isec, nfreq, nRx real(dp) :: AzAux, ElAux, dbMoon8, dfdt, dfdt0, doppler, doppler00, HA8, sd8, xlst8 character*256 jpleph_file_name common/jplcom/jpleph_file_name - block - character(kind=c_char, len=mygrid_len), pointer :: mygrid_fp - character(kind=c_char, len=hisgrid_len), pointer :: hisgrid_fp - character(kind=c_char, len=AzElFileName_len), pointer :: AzElFileName_fp - character(kind=c_char, len=jpleph_len), pointer :: jpleph_fp - call c_f_pointer(cptr=mygrid_cp, fptr=mygrid_fp) - mygrid = mygrid_fp - mygrid_fp => null() - call c_f_pointer(cptr=hisgrid_cp, fptr=hisgrid_fp) - hisgrid = hisgrid_fp - hisgrid_fp => null() - call c_f_pointer(cptr=AzElFileName_cp, fptr=AzElFileName_fp) - AzElFileName = AzElFileName_fp - AzElFileName_fp => null() - call c_f_pointer(cptr=jpleph_cp, fptr=jpleph_fp) - jpleph_file_name = jpleph_fp - jpleph_fp => null() - end block + mygrid = mygrid_cp + hisgrid = hisgrid_cp + AzElFileName = C_string_value (AzElFileName_cp) + jpleph_file_name = jpleph_file_name_cp call astro0(nyear,month,nday,uth8,freq8,mygrid,hisgrid, & AzSun8,ElSun8,AzMoon8,ElMoon8,AzMoonB8,ElMoonB8,ntsky,ndop,ndop00, & diff --git a/lib/c_interface_module.f90 b/lib/c_interface_module.f90 new file mode 100644 index 000000000..47fee9de4 --- /dev/null +++ b/lib/c_interface_module.f90 @@ -0,0 +1,441 @@ +! FILE: c_interface_module.f90 +! PURPOSE: Supplement ISO-C-Binding to provide type aliases and interfaces +! to common ISO-C string functions to aid working with strings. +! AUTHOR: Joseph M. Krahn +! STATUS: Still in development. Reasonably complete, but somewhat limited testing. +! +! The idea is to provide type aliases for all ISO-C types, so that the +! Fortran interface code more explicitly defines the actual C interface. +! This should be updated to support F2008 variable-length allocatable +! strings. +! +! Entity names all have the "C_" prefix, as with ISO-C-Binding, with a +! few exceptions. +! +! Sourced from: http://fortranwiki.org/fortran/show/c_interface_module +! +! One FORALL statement reverted to a DO loop to avoid a gfortran 4.9.2 ICE +! +module C_interface_module + use, intrinsic :: ISO_C_Binding, & + ! C type aliases for pointer derived types: + C_ptr => C_ptr , & + C_char_ptr => C_ptr, & + C_const_char_ptr => C_ptr, & + C_void_ptr => C_ptr, & + C_const_void_ptr => C_ptr + + implicit none + public + + !---------------------------------------------------------------------------- + ! C type aliases for intrinsic type KIND parameters: + + ! NOTE: a C enum may not always be a standard C int + integer, parameter :: C_enum = C_int + + ! Defining off_t is difficult, because it may depend on "LARGEFILE" selection. + ! integer, parameter :: C_off_t = ?? + + ! C string terminator alais using the 3-letter ASCII name. + ! The C_ prefix is not used because it is just an ASCII character. + character(len=1,kind=C_char), parameter :: NUL = C_NULL_char + + ! NOTE: In C, "char" is distinct from "signed char", unlike integers. + ! The plain "char" type is specific for text/string values, whereas + ! "signed char" should indicate 1-byte integer data. + ! + ! Most ISO-C systems have wide chars "wchar_t", but Fortran compilers + ! have limited support for different character kinds. UTF encoding + ! adds more complexity. This should be updated as Fortran compilers + ! include support for more character types. + ! + + ! Fortran does not (yet) support unsigned types. + integer, parameter :: & + C_unsigned = C_int, & + C_unsigned_short = C_short, & + C_unsigned_long = C_long, & + C_unsigned_long_long = C_long_long, & + C_unsigned_char = C_signed_char, & + C_ssize_t = C_size_t, & + C_uint8_t = C_int8_t, & + C_uint16_t = C_int16_t, & + C_uint32_t = C_int32_t, & + C_uint64_t = C_int64_t, & + C_uint_least8_t = C_int_least8_t, & + C_uint_least16_t = C_int_least16_t, & + C_uint_least32_t = C_int_least32_t, & + C_uint_least64_t = C_int_least64_t, & + C_uint_fast8_t = C_int_fast8_t, & + C_uint_fast16_t = C_int_fast16_t, & + C_uint_fast32_t = C_int_fast32_t, & + C_uint_fast64_t = C_int_fast64_t, & + C_uintmax_t = C_intmax_t + ! Note: ptrdiff_t cannot be reliably defined from other types. + ! When practical, it is larger than a pointer because it benefits + ! from the full unsigned range in both positive and negative directions. + + ! Integer versions including 'int', where the 'int' is optional: + integer, parameter :: & + C_short_int = C_short, & + C_long_int = C_long, & + C_long_long_int = C_long_long, & + C_unsigned_int = C_unsigned, & + C_unsigned_short_int = C_short, & + C_unsigned_long_int = C_long, & + C_unsigned_long_long_int = C_long_long + + interface C_F_string + module procedure C_F_string_ptr + module procedure C_F_string_chars + end interface C_F_string + + interface F_C_string + module procedure F_C_string_ptr + module procedure F_C_string_chars + end interface F_C_string + + !======================================================================= + ! Some useful ISO C library string functions from + ! These are based on GCC header sections marked as NAMESPACE_STD + interface + + ! Copy N bytes of SRC to DEST, no aliasing or overlapping allowed. + ! extern void *memcpy (void *dest, const void *src, size_t n); + function C_memcpy(dest, src, n) result(result) bind(C,name="memcpy") + import C_void_ptr, C_size_t + type(C_void_ptr) :: result + type(C_void_ptr), value, intent(in) :: dest ! target=intent(out) + type(C_void_ptr), value, intent(in) :: src ! target=intent(in) + integer(C_size_t), value, intent(in) :: n + end function C_memcpy + + ! Copy N bytes of SRC to DEST, guaranteeing correct behavior for overlapping strings. + !extern void *memmove (void *dest, const void *src, size_t n) + function C_memmove(dest, src, n) result(result) bind(C,name="memmove") + import C_void_ptr, C_size_t + type(C_void_ptr) :: result + type(C_void_ptr), value, intent(in) :: dest ! target=intent(out) + type(C_void_ptr), value, intent(in) :: src + integer(C_size_t), value, intent(in) :: n + end function C_memmove + + ! Set N bytes of S to C. + !extern void *memset (void *s, int c, size_t n) + function C_memset(s, c, n) result(result) bind(C,name="memset") + import C_void_ptr, C_int, C_size_t + type(C_void_ptr) :: result + type(C_void_ptr), value, intent(in) :: s ! target=intent(out) + integer(C_int), value, intent(in) :: c + integer(C_size_t), value, intent(in) :: n + end function C_memset + + ! Compare N bytes of S1 and S2. + !extern int memcmp (const void *s1, const void *s2, size_t n) + pure function C_memcmp(s1, s2, n) result(result) bind(C,name="memcmp") + import C_int, C_void_ptr, C_size_t + integer(C_int) :: result + type(C_void_ptr), value, intent(in) :: s1 + type(C_void_ptr), value, intent(in) :: s2 + integer(C_size_t), value, intent(in) :: n + end function C_memcmp + + ! Search N bytes of S for C. + !extern void *memchr (const void *s, int c, size_t n) + pure function C_memchr(s, c, n) result(result) bind(C,name="memchr") + import C_void_ptr, C_int, C_size_t + type(C_void_ptr) :: result + type(C_void_ptr), value, intent(in) :: s + integer(C_int), value, intent(in) :: c + integer(C_size_t), value, intent(in) :: n + end function C_memchr + + ! Copy SRC to DEST. + !extern char *strcpy (char *dest, const char *src) + function C_strcpy(dest, src) result(result) bind(C,name="strcpy") + import C_char_ptr, C_size_t + type(C_char_ptr) :: result + type(C_char_ptr), value, intent(in) :: dest ! target=intent(out) + type(C_char_ptr), value, intent(in) :: src + end function C_strcpy + + ! Copy no more than N characters of SRC to DEST. + !extern char *strncpy (char *dest, const char *src, size_t n) + function C_strncpy(dest, src, n) result(result) bind(C,name="strncpy") + import C_char_ptr, C_size_t + type(C_char_ptr) :: result + type(C_char_ptr), value, intent(in) :: dest ! target=intent(out) + type(C_char_ptr), value, intent(in) :: src + integer(C_size_t), value, intent(in) :: n + end function C_strncpy + + ! Append SRC onto DEST. + !extern char *strcat (char *dest, const char *src) + function C_strcat(dest, src) result(result) bind(C,name="strcat") + import C_char_ptr, C_size_t + type(C_char_ptr) :: result + type(C_char_ptr), value, intent(in) :: dest ! target=intent(out) + type(C_char_ptr), value, intent(in) :: src + end function C_strcat + + ! Append no more than N characters from SRC onto DEST. + !extern char *strncat (char *dest, const char *src, size_t n) + function C_strncat(dest, src, n) result(result) bind(C,name="strncat") + import C_char_ptr, C_size_t + type(C_char_ptr) :: result + type(C_char_ptr), value, intent(in) :: dest ! target=intent(out) + type(C_char_ptr), value, intent(in) :: src + integer(C_size_t), value, intent(in) :: n + end function C_strncat + + ! Compare S1 and S2. + !extern int strcmp (const char *s1, const char *s2) + pure function C_strcmp(s1, s2) result(result) bind(C,name="strcmp") + import C_int, C_char_ptr, C_size_t + integer(C_int) :: result + type(C_char_ptr), value, intent(in) :: s1 + type(C_char_ptr), value, intent(in) :: s2 + end function C_strcmp + + ! Compare N characters of S1 and S2. + !extern int strncmp (const char *s1, const char *s2, size_t n) + pure function C_strncmp(s1, s2, n) result(result) bind(C,name="strncmp") + import C_int, C_char_ptr, C_size_t + integer(C_int) :: result + type(C_char_ptr), value, intent(in) :: s1 + type(C_char_ptr), value, intent(in) :: s2 + integer(C_size_t), value, intent(in) :: n + end function C_strncmp + + ! Return the length of S. + !extern size_t strlen (const char *s) + pure function C_strlen(s) result(result) bind(C,name="strlen") + import C_char_ptr, C_size_t + integer(C_size_t) :: result + type(C_char_ptr), value, intent(in) :: s !character(len=*), intent(in) + end function C_strlen + + end interface + + ! End of + !========================================================================= + ! Standard ISO-C malloc routines: + interface + + ! void *calloc(size_t nmemb, size_t size); + type(C_void_ptr) function C_calloc(nmemb, size) bind(C,name="calloc") + import C_void_ptr, C_size_t + integer(C_size_t), value, intent(in) :: nmemb, size + end function C_calloc + + ! void *malloc(size_t size); + type(C_void_ptr) function C_malloc(size) bind(C,name="malloc") + import C_void_ptr, C_size_t + integer(C_size_t), value, intent(in) :: size + end function C_malloc + + ! void free(void *ptr); + subroutine C_free(ptr) bind(C,name="free") + import C_void_ptr + type(C_void_ptr), value, intent(in) :: ptr + end subroutine C_free + + ! void *realloc(void *ptr, size_t size); + type(C_void_ptr) function C_realloc(ptr,size) bind(C,name="realloc") + import C_void_ptr, C_size_t + type(C_void_ptr), value, intent(in) :: ptr + integer(C_size_t), value, intent(in) :: size + end function C_realloc + + end interface + + interface assignment(=) + module procedure F_string_assign_C_string + end interface assignment(=) + + !========================================================================== + +contains + + ! HACK: For some reason, C_associated was not defined as pure. + pure logical function C_associated_pure(ptr) result(associated) + type(C_ptr), intent(in) :: ptr + integer(C_intptr_t) :: iptr + iptr = transfer(ptr,iptr) + associated = (iptr /= 0) + end function C_associated_pure + + ! Set a fixed-length Fortran string to the value of a C string. + subroutine F_string_assign_C_string(F_string, C_string) + character(len=*), intent(out) :: F_string + type(C_ptr), intent(in) :: C_string + character(len=1,kind=C_char), pointer :: p_chars(:) + integer :: i + if (.not. C_associated(C_string) ) then + F_string = ' ' + else + call C_F_pointer(C_string,p_chars,[huge(0)]) + i=1 + do while(p_chars(i)/=NUL .and. i<=len(F_string)) + F_string(i:i) = p_chars(i) + i=i+1 + end do + if (idata_dir ().absoluteFilePath ("JPLEPH"); astrosub(nyear, month, nday, uth, static_cast (freq_moon), - mygrid.toLatin1 ().constData (), mygrid.size (), - hisgrid.toLatin1().constData(), hisgrid.size (), + mygrid.toLatin1 ().data (), + hisgrid.toLatin1().data(), &azsun, &elsun, &azmoon, &elmoon, &azmoondx, &elmoondx, &ntsky, &m_dop, &m_dop00, &ramoon, &decmoon, &dgrd, &poloffset, &xnr, &techo, &width1, &width2, bTx, - AzElFileName.toLatin1().constData(), AzElFileName.size (), - jpleph.toLatin1().constData(), jpleph.size ()); + AzElFileName.toLatin1().data(), + jpleph.toLatin1().data()); if(!hisgrid.size ()) { azmoondx=0.0; @@ -224,14 +224,14 @@ auto Astro::astroUpdate(QDateTime const& t, QString const& mygrid, QString const double sec {target_date_time.time().second() + 0.001*target_date_time.time().msec()}; double uth {nhr + nmin/60.0 + sec/3600.0}; astrosub(nyear, month, nday, uth, static_cast (freq_moon), - mygrid.toLatin1 ().constData (), mygrid.size (), - hisgrid.toLatin1().constData(), hisgrid.size (), + mygrid.toLatin1 ().data (), + hisgrid.toLatin1().data(), &azsun, &elsun, &azmoon, &elmoon, &azmoondx, &elmoondx, &ntsky, &m_dop, &m_dop00, &ramoon, &decmoon, &dgrd, &poloffset, &xnr, &techo, &width1, &width2, bTx, - AzElFileName.toLatin1().constData(), AzElFileName.size (), - jpleph.toLatin1().constData(), jpleph.size ()); + nullptr, // don't overwrite azel.dat + jpleph.toLatin1().data()); FrequencyDelta offset {0}; switch (m_DopplerMethod) { From b427a921374af4089762483955e5a59f1c91dc4b Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 20 Jul 2020 11:16:37 -0400 Subject: [PATCH 293/520] Increase max value of Navg spinner on WideGraph. --- widgets/widegraph.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/widegraph.ui b/widgets/widegraph.ui index 7deea52c8..b0165e040 100644 --- a/widgets/widegraph.ui +++ b/widgets/widegraph.ui @@ -393,7 +393,7 @@ 1 - 50 + 500 From 07e06de8f331191ecca2c1cbaf08ecddcb3c19fe Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 20 Jul 2020 11:23:30 -0400 Subject: [PATCH 294/520] Increase gain of the yellow "Linear average" plot. --- widgets/plotter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index 5853e07f6..f5cf5c463 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -210,7 +210,7 @@ void CPlotter::draw(float swide[], bool bScroll, bool bRed) for(int k=0; k Date: Mon, 20 Jul 2020 11:29:58 -0400 Subject: [PATCH 295/520] Add Round-Robin options for cycles of 4, 5, and 6 sequences. --- widgets/mainwindow.ui | 75 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index a3b9fe7cf..d43aa62f7 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -2187,6 +2187,81 @@ list. The list can be maintained in Settings (F2). 3/3 + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 1/5 + + + + + 2/5 + + + + + 3/5 + + + + + 4/5 + + + + + 5/5 + + + + + 1/6 + + + + + 2/6 + + + + + 3/6 + + + + + 4/6 + + + + + 5/6 + + + + + 6/6 + + From d9c2a1182111d20f8084def9816055267d8ccdc0 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 20 Jul 2020 11:48:09 -0400 Subject: [PATCH 296/520] Fix double-clicking on a decode line containing fSpread. --- widgets/mainwindow.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 9c1825f27..4a7ef6f42 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4514,7 +4514,9 @@ void MainWindow::doubleClickOnCall(Qt::KeyboardModifiers modifiers) } return; } - DecodedText message {cursor.block().text().trimmed().left(61).remove("TU; ")}; + QString t{cursor.block().text().trimmed().left(61).remove("TU; ")}; + t=t.left(46)+" "+t.mid(51); + DecodedText message{t.trimmed()}; m_bDoubleClicked = true; processMessage (message, modifiers); } From 06b97466198c07ceb3ee6a340a2a467f7e2a34f7 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 20 Jul 2020 18:27:29 +0100 Subject: [PATCH 297/520] Make fSpread printing compatible with QSOs --- widgets/displaytext.cpp | 8 +++++++- widgets/displaytext.h | 3 ++- widgets/mainwindow.cpp | 23 ++++++++++++++--------- widgets/mainwindow.h | 1 - 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/widgets/displaytext.cpp b/widgets/displaytext.cpp index 5d8136a01..75807c959 100644 --- a/widgets/displaytext.cpp +++ b/widgets/displaytext.cpp @@ -387,7 +387,8 @@ QString DisplayText::appendWorkedB4 (QString message, QString call, QString cons void DisplayText::displayDecodedText(DecodedText const& decodedText, QString const& myCall, QString const& mode, bool displayDXCCEntity, LogBook const& logBook, - QString const& currentBand, bool ppfx, bool bCQonly) + QString const& currentBand, bool ppfx, bool bCQonly, + bool haveFSpread, float fSpread) { m_bPrincipalPrefix=ppfx; QColor bg; @@ -421,6 +422,11 @@ void DisplayText::displayDecodedText(DecodedText const& decodedText, QString con QRegularExpression grid_regexp {"\\A(?![Rr]{2}73)[A-Ra-r]{2}[0-9]{2}([A-Xa-x]{2}){0,1}\\z"}; if(!dxGrid.contains(grid_regexp)) dxGrid=""; message = message.left (message.indexOf (QChar::Nbsp)); // strip appended info + if (haveFSpread) + { + message += QString {37 - message.size (), QChar {' '}}; + message += QChar::Nbsp + QString {"%1"}.arg (fSpread, 5, 'f', fSpread < 0.95 ? 3 : 2); + } m_CQPriority=""; if (CQcall) { diff --git a/widgets/displaytext.h b/widgets/displaytext.h index d4adc3d2c..fbbfa5656 100644 --- a/widgets/displaytext.h +++ b/widgets/displaytext.h @@ -30,7 +30,8 @@ public: void insertLineSpacer(QString const&); void displayDecodedText(DecodedText const& decodedText, QString const& myCall, QString const& mode, bool displayDXCCEntity, LogBook const& logBook, - QString const& currentBand=QString {}, bool ppfx=false, bool bCQonly=false); + QString const& currentBand=QString {}, bool ppfx=false, bool bCQonly=false, + bool haveFSpread = false, float fSpread = 0.); void displayTransmittedText(QString text, QString modeTx, qint32 txFreq, bool bFastMode, double TRperiod); void displayQSY(QString text); void displayFoxToBeCalled(QString t, QColor bg = QColor {}, QColor fg = QColor {}); diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 9c1825f27..35869b2c5 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3145,12 +3145,21 @@ void MainWindow::readFromStdout() //readFromStdout { while(proc_jt9.canReadLine()) { auto line_read = proc_jt9.readLine (); - m_fSpread=line_read.mid(64,6).toFloat(); - line_read=line_read.left(64); if (auto p = std::strpbrk (line_read.constData (), "\n\r")) { // truncate before line ending chars line_read = line_read.left (p - line_read.constData ()); } + bool haveFSpread {false}; + float fSpread {0.}; + if (m_mode.startsWith ("FST240")) + { + auto text = line_read.mid (64, 6).trimmed (); + if (text.size ()) + { + fSpread = text.toFloat (&haveFSpread); + line_read = line_read.left (64); + } + } if(m_mode!="FT8" and m_mode!="FT4") { //Pad 22-char msg to at least 37 chars line_read = line_read.left(44) + " " + line_read.mid(44); @@ -3232,14 +3241,10 @@ void MainWindow::readFromStdout() //readFromStdout } } else { DecodedText decodedtext1=decodedtext0; - if(m_mode.startsWith("FST240") and m_fSpread>0.0) { - QString t=decodedtext0.string(); - DecodedText dt2 {QString {"%1%2%3"}.arg (t.left (46)).arg (m_fSpread, 5, 'f', m_fSpread < 0.95 ? 2 : 3).arg (t.mid(50)).trimmed ()}; - decodedtext1=dt2; - } ui->decodedTextBrowser->displayDecodedText(decodedtext1,m_baseCall,m_mode,m_config.DXCC(), - m_logBook,m_currentBand,m_config.ppfx(), - (ui->cbCQonly->isVisible() and ui->cbCQonly->isChecked())); + m_logBook,m_currentBand,m_config.ppfx(), + ui->cbCQonly->isVisible() && ui->cbCQonly->isChecked(), + haveFSpread, fSpread); if(m_bBestSPArmed and m_mode=="FT4") { QString messagePriority=ui->decodedTextBrowser->CQPriority(); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 630935ac8..8170de842 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -419,7 +419,6 @@ private: float m_t0Pick; float m_t1Pick; float m_fCPUmskrtd; - float m_fSpread; qint32 m_waterfallAvg; qint32 m_ntx; From 09996d4d64663691a1071a674fc5f5a9252695c9 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 20 Jul 2020 19:33:46 +0100 Subject: [PATCH 298/520] Leave decodes titles intact when changing settings in FST240* modes --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 31b85eb05..77f944309 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1796,7 +1796,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog m_config.transceiver_online (); if(!m_bFastMode) setXIT (ui->TxFreqSpinBox->value ()); - if(m_config.single_decode() or m_mode=="JT4") { + if ((m_config.single_decode () && !m_mode.startsWith ("FST240")) || m_mode=="JT4") { ui->label_6->setText(tr ("Single-Period Decodes")); ui->label_7->setText(tr ("Average Decodes")); } From 7d07423a503da5de7df3cb6f4d2dce8cf47123e4 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 20 Jul 2020 21:24:45 +0100 Subject: [PATCH 299/520] Repair own call hash decoding in received messages --- lib/fst240_decode.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 223dc9f36..63570657e 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -539,11 +539,11 @@ contains endif if(iqorw.eq.1) then write(c77,'(77i1)') mod(message101(1:77)+rvec,2) - call unpack77(c77,0,msg,unpk77_success) + call unpack77(c77,1,msg,unpk77_success) else write(c77,'(50i1)') message74(1:50) c77(51:77)='000000000000000000000110000' - call unpack77(c77,0,msg,unpk77_success) + call unpack77(c77,1,msg,unpk77_success) endif if(unpk77_success) then idupe=0 From a773a7ad1f97be298781d6909661c24a997fb504 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 20 Jul 2020 16:09:22 -0500 Subject: [PATCH 300/520] Center the DT search window properly. Write fort.21 when plotspec exists. --- lib/fst240_decode.f90 | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 223dc9f36..a7ff2c7fb 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -87,7 +87,7 @@ contains dxcall13=hiscall ! initialize for use in packjt77 mycall13=mycall - fMHz=1.0 + fMHz=1.0e9 if(first) then mcq=2*mod(mcq+rvec(1:29),2)-1 @@ -325,7 +325,7 @@ contains is0=1.5*nspsec ishw=1.5*nspsec else ! search plus or minus 1.5 s centered on emedelay - is0=nint(emedelay*nspsec) + is0=nint((emedelay+1.0)*nspsec) ishw=1.5*nspsec endif @@ -581,9 +581,11 @@ contains nsnr=nint(xsnr) qual=0. fsig=fc_synced - 1.5*hmod*baud -! write(21,'(i6.6,8i6,f7.1,f10.2,f7.1,1x,f7.2,1x,f7.1,1x,a37)') & -! nutc,icand,itry,nsyncoh,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg -! flush(21) + if(ex) then + write(21,'(i6.6,8i6,f7.1,f10.2,f7.1,1x,f7.2,1x,f7.1,1x,a37)') & + nutc,icand,itry,nsyncoh,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg + flush(21) + endif call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & iaptype,qual,ntrperiod,lwspr,fmid,w50) goto 2002 From 2da65408a86c2fbc8ba508b654dedc90105cc309 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 20 Jul 2020 23:53:29 +0100 Subject: [PATCH 301/520] Fix filename case issue --- lib/{c_interface_module.f90 => C_interface_module.f90} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename lib/{c_interface_module.f90 => C_interface_module.f90} (100%) diff --git a/lib/c_interface_module.f90 b/lib/C_interface_module.f90 similarity index 100% rename from lib/c_interface_module.f90 rename to lib/C_interface_module.f90 From 0f6d0542767e1fcaae9ee31e476d12104ca1302b Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 21 Jul 2020 00:29:22 +0100 Subject: [PATCH 302/520] Narrow decode prints in the Band Activity window --- widgets/displaytext.cpp | 56 +++++++++++++++++++++++++---------------- widgets/displaytext.h | 3 ++- 2 files changed, 37 insertions(+), 22 deletions(-) diff --git a/widgets/displaytext.cpp b/widgets/displaytext.cpp index 75807c959..6d807c353 100644 --- a/widgets/displaytext.cpp +++ b/widgets/displaytext.cpp @@ -241,10 +241,9 @@ void DisplayText::new_period () QString DisplayText::appendWorkedB4 (QString message, QString call, QString const& grid, QColor * bg, QColor * fg, LogBook const& logBook, - QString const& currentBand, QString const& currentMode) + QString const& currentBand, QString const& currentMode, + QString extra) { - // allow for seconds - int padding {message.indexOf (" ") > 4 ? 2 : 0}; QString countryName; bool callB4; bool callB4onBand; @@ -278,7 +277,6 @@ QString DisplayText::appendWorkedB4 (QString message, QString call, QString cons } message = message.trimmed (); - QString appendage; highlight_types types; // no shortcuts here as some types may be disabled @@ -329,20 +327,20 @@ QString DisplayText::appendWorkedB4 (QString message, QString call, QString cons { case Highlight::Continent: case Highlight::ContinentBand: - appendage = AD1CCty::continent (looked_up.continent); + extra += AD1CCty::continent (looked_up.continent); break; case Highlight::CQZone: case Highlight::CQZoneBand: - appendage = QString {"CQ Zone %1"}.arg (looked_up.CQ_zone); + extra += QString {"CQ Zone %1"}.arg (looked_up.CQ_zone); break; case Highlight::ITUZone: case Highlight::ITUZoneBand: - appendage = QString {"ITU Zone %1"}.arg (looked_up.ITU_zone); + extra += QString {"ITU Zone %1"}.arg (looked_up.ITU_zone); break; default: if (m_bPrincipalPrefix) { - appendage = looked_up.primary_prefix; + extra += looked_up.primary_prefix; } else { @@ -368,19 +366,30 @@ QString DisplayText::appendWorkedB4 (QString message, QString call, QString cons countryName.replace ("European", "EU"); countryName.replace ("African", "AF"); - appendage += countryName; + extra += countryName; } } m_CQPriority=DecodeHighlightingModel::highlight_name(top_highlight); - // use a nbsp to save the start of appended text so we can find - // it again later, align appended data at a fixed column if - // there is space otherwise let it float to the right - int space_count {40 + padding - message.size ()}; - if (space_count > 0) { - message += QString {space_count, QChar {' '}}; - } - message += QChar::Nbsp + appendage; + return leftJustifyAppendage (message, extra); +} + +QString DisplayText::leftJustifyAppendage (QString message, QString const& appendage) const +{ + if (appendage.size ()) + { + // allow for seconds + int padding {message.indexOf (" ") > 4 ? 2 : 0}; + + // use a nbsp to save the start of appended text so we can find + // it again later, align appended data at a fixed column if + // there is space otherwise let it float to the right + int space_count {40 + padding - message.size ()}; + if (space_count > 0) { + message += QString {space_count, QChar {' '}}; + } + message += QChar::Nbsp + appendage; + } return message; } @@ -421,11 +430,11 @@ void DisplayText::displayDecodedText(DecodedText const& decodedText, QString con decodedText.deCallAndGrid (/*out*/ dxCall, dxGrid); QRegularExpression grid_regexp {"\\A(?![Rr]{2}73)[A-Ra-r]{2}[0-9]{2}([A-Xa-x]{2}){0,1}\\z"}; if(!dxGrid.contains(grid_regexp)) dxGrid=""; - message = message.left (message.indexOf (QChar::Nbsp)); // strip appended info + message = message.left (message.indexOf (QChar::Nbsp)).trimmed (); // strip appended info + QString extra; if (haveFSpread) { - message += QString {37 - message.size (), QChar {' '}}; - message += QChar::Nbsp + QString {"%1"}.arg (fSpread, 5, 'f', fSpread < 0.95 ? 3 : 2); + extra = QString {"%1"}.arg (fSpread, 5, 'f', fSpread < 0.95 ? 3 : 2) + QChar {' '}; } m_CQPriority=""; if (CQcall) @@ -440,10 +449,11 @@ void DisplayText::displayDecodedText(DecodedText const& decodedText, QString con currentMode = decodedText.isJT65 () ? "JT65" : "JT9"; } message = appendWorkedB4 (message, decodedText.CQersCall(), dxGrid, &bg, &fg - , logBook, currentBand, currentMode); + , logBook, currentBand, currentMode, extra); } else { + message = leftJustifyAppendage (message, extra); highlight_types types {Highlight::CQ}; if (m_config && m_config->lotw_users ().user (decodedText.CQersCall())) { @@ -452,6 +462,10 @@ void DisplayText::displayDecodedText(DecodedText const& decodedText, QString con set_colours (m_config, &bg, &fg, types); } } + else + { + message = leftJustifyAppendage (message, extra); + } appendText (message.trimmed (), bg, fg, decodedText.call (), dxCall); } diff --git a/widgets/displaytext.h b/widgets/displaytext.h index fbbfa5656..3b577e619 100644 --- a/widgets/displaytext.h +++ b/widgets/displaytext.h @@ -47,6 +47,7 @@ public: Q_SLOT void highlight_callsign (QString const& callsign, QColor const& bg, QColor const& fg, bool last_period_only); private: + QString leftJustifyAppendage (QString message, QString const& appendage) const; void mouseDoubleClickEvent (QMouseEvent *) override; void extend_vertical_scrollbar (int min, int max); @@ -57,7 +58,7 @@ private: QString appendWorkedB4(QString message, QString callsign , QString const& grid, QColor * bg, QColor * fg , LogBook const& logBook, QString const& currentBand - , QString const& currentMode); + , QString const& currentMode, QString extra); QFont char_font_; QAction * erase_action_; QHash> highlighted_calls_; From 5111dcdfa87ee25822e54cf97c30744e1247577d Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 21 Jul 2020 14:57:44 +0100 Subject: [PATCH 303/520] Include sub-mode in .WAV file meta-data for FST240 modes --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 77f944309..600d75217 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1589,7 +1589,7 @@ QString MainWindow::save_wave_file (QString const& name, short const * data, int auto source = QString {"%1, %2"}.arg (my_callsign).arg (my_grid); auto comment = QString {"Mode=%1%2, Freq=%3%4"} .arg (mode) - .arg (QString {mode.contains ('J') && !mode.contains ('+') + .arg (QString {(mode.contains ('J') && !mode.contains ('+')) || mode.startsWith ("FST240") ? QString {", Sub Mode="} + QChar {'A' + sub_mode} : QString {}}) .arg (Radio::frequency_MHz_string (frequency)) From bb9e1b1b90a0e7ce2936b647f23bded35f5e855a Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 21 Jul 2020 12:37:26 -0500 Subject: [PATCH 304/520] Remove 'Also FST240W' capability from fst240_decode. --- lib/fst240_decode.f90 | 739 +++++++++++++++++++++--------------------- 1 file changed, 361 insertions(+), 378 deletions(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index f415822da..73e33f08e 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -81,13 +81,15 @@ contains save first,apbits,nappasses,naptypes,mycall0,hiscall0 ! call blanker(iwave,ntrperiod*12000,0.0,0.2) - + this%callback => callback dxcall13=hiscall ! initialize for use in packjt77 mycall13=mycall - fMHz=1.0e9 + fMHz=1.0 + + if(iwspr.ne.0.and.iwspr.ne.1) return if(first) then mcq=2*mod(mcq+rvec(1:29),2)-1 @@ -123,7 +125,7 @@ contains hiscall0='' first=.false. endif - + l1=index(mycall,char(0)) if(l1.ne.0) mycall(l1:)=" " l1=index(hiscall,char(0)) @@ -228,7 +230,7 @@ contains allocate( c_bigfft(0:nfft1/2) ) allocate( c2(0:nfft2-1) ) allocate( cframe(0:160*nss-1) ) - + if(ndepth.eq.3) then nblock=4 jittermax=2 @@ -250,16 +252,6 @@ contains c_bigfft(i)=cmplx(float(iwave(2*i+1)),float(iwave(2*i+2))) enddo call four2a(c_bigfft,nfft1,1,-1,0) - if(iwspr.eq.0) then - itype1=1 - itype2=1 - elseif( iwspr.eq.1 ) then - itype1=2 - itype2=2 - elseif( iwspr.eq.2 ) then - itype1=1 - itype2=2 - endif if(hmod.eq.1) then if(fMHz.lt.2.0) then @@ -275,325 +267,316 @@ contains if(hmod.eq.8) nsyncoh=-4 endif - do iqorw=itype1,itype2 ! iqorw=1 for QSO mode and iqorw=2 for wspr-type messages - if( iwspr.lt.2 ) then - if( single_decode ) then - fa=max(100,nint(nfqso+1.5*hmod*baud-ntol)) - fb=min(4800,nint(nfqso+1.5*hmod*baud+ntol)) - else - fa=max(100,nfa) - fb=min(4800,nfb) - endif - elseif( iwspr.eq.2 .and. iqorw.eq.1 ) then - fa=max(100,nfa) - fb=nfsplit - elseif( iwspr.eq.2 .and. iqorw.eq.2 ) then - fa=nfsplit - fb=min(4800,nfb) - endif + if( single_decode ) then + fa=max(100,nint(nfqso+1.5*hmod*baud-ntol)) + fb=min(4800,nint(nfqso+1.5*hmod*baud+ntol)) + else + fa=max(100,nfa) + fb=min(4800,nfb) + endif - if(hmod.eq.1) then - if(ntrperiod.eq.15) minsync=1.15 - if(ntrperiod.gt.15) minsync=1.20 - elseif(hmod.gt.1) then - minsync=1.2 - endif + if(hmod.eq.1) then + if(ntrperiod.eq.15) minsync=1.15 + if(ntrperiod.gt.15) minsync=1.20 + elseif(hmod.gt.1) then + minsync=1.2 + endif ! Get first approximation of candidate frequencies - call get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & - minsync,ncand,candidates,base) + call get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & + minsync,ncand,candidates,base) - ndecodes=0 - decodes=' ' + ndecodes=0 + decodes=' ' - isbest=0 - fc2=0. - do icand=1,ncand - fc0=candidates(icand,1) - detmet=candidates(icand,2) + isbest=0 + fc2=0. + do icand=1,ncand + fc0=candidates(icand,1) + detmet=candidates(icand,2) ! Downconvert and downsample a slice of the spectrum centered on the ! rough estimate of the candidates frequency. ! Output array c2 is complex baseband sampled at 12000/ndown Sa/sec. ! The size of the downsampled c2 array is nfft2=nfft1/ndown - call fst240_downsample(c_bigfft,nfft1,ndown,fc0,sigbw,c2) + call fst240_downsample(c_bigfft,nfft1,ndown,fc0,sigbw,c2) - call timer('sync240 ',0) - fc1=0.0 - if(emedelay.lt.0.1) then ! search offsets from 0 s to 2 s - is0=1.5*nspsec - ishw=1.5*nspsec - else ! search plus or minus 1.5 s centered on emedelay - is0=nint((emedelay+1.0)*nspsec) - ishw=1.5*nspsec - endif - - smax=-1.e30 - do if=-12,12 - fc=fc1 + 0.1*baud*if - do istart=max(1,is0-ishw),is0+ishw,4*hmod - call sync_fst240(c2,istart,fc,hmod,nsyncoh,nfft2,nss, & + call timer('sync240 ',0) + fc1=0.0 + if(emedelay.lt.0.1) then ! search offsets from 0 s to 2 s + is0=1.5*nspsec + ishw=1.5*nspsec + else ! search plus or minus 1.5 s centered on emedelay + is0=nint((emedelay+1.0)*nspsec) + ishw=1.5*nspsec + endif + + smax=-1.e30 + do if=-12,12 + fc=fc1 + 0.1*baud*if + do istart=max(1,is0-ishw),is0+ishw,4*hmod + call sync_fst240(c2,istart,fc,hmod,nsyncoh,nfft2,nss, & ntrperiod,fs2,sync) - if(sync.gt.smax) then - fc2=fc - isbest=istart - smax=sync - endif - enddo + if(sync.gt.smax) then + fc2=fc + isbest=istart + smax=sync + endif enddo - - fc1=fc2 - is0=isbest - ishw=4*hmod - isst=1*hmod - - smax=0.0 - do if=-7,7 - fc=fc1 + 0.02*baud*if - do istart=max(1,is0-ishw),is0+ishw,isst - call sync_fst240(c2,istart,fc,hmod,nsyncoh,nfft2,nss, & - ntrperiod,fs2,sync) - if(sync.gt.smax) then - fc2=fc - isbest=istart - smax=sync - endif - enddo - enddo - - call timer('sync240 ',1) - - fc_synced = fc0 + fc2 - dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 - candidates(icand,3)=fc_synced - candidates(icand,4)=isbest enddo + fc1=fc2 + is0=isbest + ishw=4*hmod + isst=1*hmod + + smax=0.0 + do if=-7,7 + fc=fc1 + 0.02*baud*if + do istart=max(1,is0-ishw),is0+ishw,isst + call sync_fst240(c2,istart,fc,hmod,nsyncoh,nfft2,nss, & + ntrperiod,fs2,sync) + if(sync.gt.smax) then + fc2=fc + isbest=istart + smax=sync + endif + enddo + enddo + + call timer('sync240 ',1) + + fc_synced = fc0 + fc2 + dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 + candidates(icand,3)=fc_synced + candidates(icand,4)=isbest + enddo + ! remove duplicate candidates - do icand=1,ncand - fc=candidates(icand,3) - isbest=nint(candidates(icand,4)) - do ic2=1,ncand - fc2=candidates(ic2,3) - isbest2=nint(candidates(ic2,4)) - if(ic2.ne.icand .and. fc2.gt.0.0) then - if(abs(fc2-fc).lt.0.10*baud) then ! same frequency - if(abs(isbest2-isbest).le.2) then - candidates(ic2,3)=-1 - endif + do icand=1,ncand + fc=candidates(icand,3) + isbest=nint(candidates(icand,4)) + do ic2=1,ncand + fc2=candidates(ic2,3) + isbest2=nint(candidates(ic2,4)) + if(ic2.ne.icand .and. fc2.gt.0.0) then + if(abs(fc2-fc).lt.0.10*baud) then ! same frequency + if(abs(isbest2-isbest).le.2) then + candidates(ic2,3)=-1 endif endif - enddo - enddo - - ic=0 - do icand=1,ncand - if(candidates(icand,3).gt.0) then - ic=ic+1 - candidates(ic,:)=candidates(icand,:) endif enddo - ncand=ic - xsnr=0. + enddo - do icand=1,ncand - sync=candidates(icand,2) - fc_synced=candidates(icand,3) - isbest=nint(candidates(icand,4)) - xdt=(isbest-nspsec)/fs2 - if(ntrperiod.eq.15) xdt=(isbest-real(nspsec)/2.0)/fs2 - call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) - do ijitter=0,jittermax - if(ijitter.eq.0) ioffset=0 - if(ijitter.eq.1) ioffset=1 - if(ijitter.eq.2) ioffset=-1 - is0=isbest+ioffset - if(is0.lt.0) cycle - cframe=c2(is0:is0+160*nss-1) - bitmetrics=0 - if(hmod.eq.1) then - call get_fst240_bitmetrics(cframe,nss,hmod,nblock,nhicoh,bitmetrics,s4,badsync) - else - call get_fst240_bitmetrics2(cframe,nss,hmod,nblock,bitmetrics,s4,badsync) - endif - if(badsync) cycle + ic=0 + do icand=1,ncand + if(candidates(icand,3).gt.0) then + ic=ic+1 + candidates(ic,:)=candidates(icand,:) + endif + enddo + ncand=ic + xsnr=0. - hbits=0 - where(bitmetrics(:,1).ge.0) hbits=1 - ns1=count(hbits( 1: 16).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) - ns2=count(hbits( 77: 92).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) - ns3=count(hbits(153:168).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) - ns4=count(hbits(229:244).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) - ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) - nsync_qual=ns1+ns2+ns3+ns4+ns5 + do icand=1,ncand + sync=candidates(icand,2) + fc_synced=candidates(icand,3) + isbest=nint(candidates(icand,4)) + xdt=(isbest-nspsec)/fs2 + if(ntrperiod.eq.15) xdt=(isbest-real(nspsec)/2.0)/fs2 + call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) + do ijitter=0,jittermax + if(ijitter.eq.0) ioffset=0 + if(ijitter.eq.1) ioffset=1 + if(ijitter.eq.2) ioffset=-1 + is0=isbest+ioffset + if(is0.lt.0) cycle + cframe=c2(is0:is0+160*nss-1) + bitmetrics=0 + if(hmod.eq.1) then + call get_fst240_bitmetrics(cframe,nss,hmod,nblock,nhicoh,bitmetrics,s4,badsync) + else + call get_fst240_bitmetrics2(cframe,nss,hmod,nblock,bitmetrics,s4,badsync) + endif + if(badsync) cycle + + hbits=0 + where(bitmetrics(:,1).ge.0) hbits=1 + ns1=count(hbits( 1: 16).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + ns2=count(hbits( 77: 92).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) + ns3=count(hbits(153:168).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + ns4=count(hbits(229:244).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) + ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + nsync_qual=ns1+ns2+ns3+ns4+ns5 ! if(nsync_qual.lt. 46) cycle !### Value ?? ### - scalefac=2.83 - llra( 1: 60)=bitmetrics( 17: 76, 1) - llra( 61:120)=bitmetrics( 93:152, 1) - llra(121:180)=bitmetrics(169:228, 1) - llra(181:240)=bitmetrics(245:304, 1) - llra=scalefac*llra - llrb( 1: 60)=bitmetrics( 17: 76, 2) - llrb( 61:120)=bitmetrics( 93:152, 2) - llrb(121:180)=bitmetrics(169:228, 2) - llrb(181:240)=bitmetrics(245:304, 2) - llrb=scalefac*llrb - llrc( 1: 60)=bitmetrics( 17: 76, 3) - llrc( 61:120)=bitmetrics( 93:152, 3) - llrc(121:180)=bitmetrics(169:228, 3) - llrc(181:240)=bitmetrics(245:304, 3) - llrc=scalefac*llrc - llrd( 1: 60)=bitmetrics( 17: 76, 4) - llrd( 61:120)=bitmetrics( 93:152, 4) - llrd(121:180)=bitmetrics(169:228, 4) - llrd(181:240)=bitmetrics(245:304, 4) - llrd=scalefac*llrd + scalefac=2.83 + llra( 1: 60)=bitmetrics( 17: 76, 1) + llra( 61:120)=bitmetrics( 93:152, 1) + llra(121:180)=bitmetrics(169:228, 1) + llra(181:240)=bitmetrics(245:304, 1) + llra=scalefac*llra + llrb( 1: 60)=bitmetrics( 17: 76, 2) + llrb( 61:120)=bitmetrics( 93:152, 2) + llrb(121:180)=bitmetrics(169:228, 2) + llrb(181:240)=bitmetrics(245:304, 2) + llrb=scalefac*llrb + llrc( 1: 60)=bitmetrics( 17: 76, 3) + llrc( 61:120)=bitmetrics( 93:152, 3) + llrc(121:180)=bitmetrics(169:228, 3) + llrc(181:240)=bitmetrics(245:304, 3) + llrc=scalefac*llrc + llrd( 1: 60)=bitmetrics( 17: 76, 4) + llrd( 61:120)=bitmetrics( 93:152, 4) + llrd(121:180)=bitmetrics(169:228, 4) + llrd(181:240)=bitmetrics(245:304, 4) + llrd=scalefac*llrd - apmag=maxval(abs(llra))*1.1 - ntmax=nblock+nappasses(nQSOProgress) - if(lapcqonly) ntmax=nblock+1 - if(ndepth.eq.1) ntmax=nblock - apmask=0 + apmag=maxval(abs(llra))*1.1 + ntmax=nblock+nappasses(nQSOProgress) + if(lapcqonly) ntmax=nblock+1 + if(ndepth.eq.1) ntmax=nblock + apmask=0 - if(iqorw.eq.2) then ! 50-bit msgs, no ap decoding - nblock=4 - ntmax=nblock + if(iwspr.eq.1) then ! 50-bit msgs, no ap decoding + nblock=4 + ntmax=nblock + endif + + do itry=1,ntmax + if(itry.eq.1) llr=llra + if(itry.eq.2.and.itry.le.nblock) llr=llrb + if(itry.eq.3.and.itry.le.nblock) llr=llrc + if(itry.eq.4.and.itry.le.nblock) llr=llrd + if(itry.le.nblock) then + apmask=0 + iaptype=0 endif - do itry=1,ntmax - if(itry.eq.1) llr=llra - if(itry.eq.2.and.itry.le.nblock) llr=llrb - if(itry.eq.3.and.itry.le.nblock) llr=llrc - if(itry.eq.4.and.itry.le.nblock) llr=llrd - if(itry.le.nblock) then + if(itry.gt.nblock) then + llr=llra + if(nblock.gt.1) then + if(hmod.eq.1) llr=llrd + if(hmod.eq.2) llr=llrb + if(hmod.eq.4) llr=llrc + if(hmod.eq.8) llr=llrd + endif + iaptype=naptypes(nQSOProgress,itry-nblock) + if(lapcqonly) iaptype=1 + if(iaptype.ge.2 .and. apbits(1).gt.1) cycle ! No, or nonstandard, mycall + if(iaptype.ge.3 .and. apbits(30).gt.1) cycle ! No, or nonstandard, dxcall + if(iaptype.eq.1) then ! CQ apmask=0 - iaptype=0 + apmask(1:29)=1 + llr(1:29)=apmag*mcq(1:29) endif - if(itry.gt.nblock) then - llr=llra - if(nblock.gt.1) then - if(hmod.eq.1) llr=llrd - if(hmod.eq.2) llr=llrb - if(hmod.eq.4) llr=llrc - if(hmod.eq.8) llr=llrd - endif - iaptype=naptypes(nQSOProgress,itry-nblock) - if(lapcqonly) iaptype=1 - if(iaptype.ge.2 .and. apbits(1).gt.1) cycle ! No, or nonstandard, mycall - if(iaptype.ge.3 .and. apbits(30).gt.1) cycle ! No, or nonstandard, dxcall - if(iaptype.eq.1) then ! CQ - apmask=0 - apmask(1:29)=1 - llr(1:29)=apmag*mcq(1:29) - endif - - if(iaptype.eq.2) then ! MyCall ??? ??? - apmask=0 - apmask(1:29)=1 - llr(1:29)=apmag*apbits(1:29) - endif - - if(iaptype.eq.3) then ! MyCall DxCall ??? - apmask=0 - apmask(1:58)=1 - llr(1:58)=apmag*apbits(1:58) - endif - - if(iaptype.eq.4 .or. iaptype.eq.5 .or. iaptype .eq.6) then - apmask=0 - apmask(1:77)=1 - llr(1:58)=apmag*apbits(1:58) - if(iaptype.eq.4) llr(59:77)=apmag*mrrr(1:19) - if(iaptype.eq.5) llr(59:77)=apmag*m73(1:19) - if(iaptype.eq.6) llr(59:77)=apmag*mrr73(1:19) - endif + if(iaptype.eq.2) then ! MyCall ??? ??? + apmask=0 + apmask(1:29)=1 + llr(1:29)=apmag*apbits(1:29) endif - dmin=0.0 - nharderrors=-1 - unpk77_success=.false. - if(iqorw.eq.1) then - maxosd=2 - Keff=91 - norder=3 - call timer('d240_101',0) - call decode240_101(llr,Keff,maxosd,norder,apmask,message101, & - cw,ntype,nharderrors,dmin) - call timer('d240_101',1) - elseif(iqorw.eq.2) then - maxosd=2 - call timer('d240_74 ',0) - Keff=64 - norder=4 - call decode240_74(llr,Keff,maxosd,norder,apmask,message74,cw, & - ntype,nharderrors,dmin) - call timer('d240_74 ',1) + if(iaptype.eq.3) then ! MyCall DxCall ??? + apmask=0 + apmask(1:58)=1 + llr(1:58)=apmag*apbits(1:58) endif - if(nharderrors .ge.0) then - if(count(cw.eq.1).eq.0) then - nharderrors=-nharderrors - cycle - endif - if(iqorw.eq.1) then - write(c77,'(77i1)') mod(message101(1:77)+rvec,2) - call unpack77(c77,1,msg,unpk77_success) + if(iaptype.eq.4 .or. iaptype.eq.5 .or. iaptype .eq.6) then + apmask=0 + apmask(1:77)=1 + llr(1:58)=apmag*apbits(1:58) + if(iaptype.eq.4) llr(59:77)=apmag*mrrr(1:19) + if(iaptype.eq.5) llr(59:77)=apmag*m73(1:19) + if(iaptype.eq.6) llr(59:77)=apmag*mrr73(1:19) + endif + endif + + dmin=0.0 + nharderrors=-1 + unpk77_success=.false. + if(iwspr.eq.0) then + maxosd=2 + Keff=91 + norder=3 + call timer('d240_101',0) + call decode240_101(llr,Keff,maxosd,norder,apmask,message101, & + cw,ntype,nharderrors,dmin) + call timer('d240_101',1) + elseif(iwspr.eq.1) then + maxosd=2 + call timer('d240_74 ',0) + Keff=64 + norder=4 + call decode240_74(llr,Keff,maxosd,norder,apmask,message74,cw, & + ntype,nharderrors,dmin) + call timer('d240_74 ',1) + endif + + if(nharderrors .ge.0) then + if(count(cw.eq.1).eq.0) then + nharderrors=-nharderrors + cycle + endif + if(iwspr.eq.0) then + write(c77,'(77i1)') mod(message101(1:77)+rvec,2) + call unpack77(c77,1,msg,unpk77_success) + else + write(c77,'(50i1)') message74(1:50) + c77(51:77)='000000000000000000000110000' + call unpack77(c77,1,msg,unpk77_success) + endif + if(unpk77_success) then + idupe=0 + do i=1,ndecodes + if(decodes(i).eq.msg) idupe=1 + enddo + if(idupe.eq.1) goto 2002 + ndecodes=ndecodes+1 + decodes(ndecodes)=msg + + if(iwspr.eq.0) then + call get_fst240_tones_from_bits(message101,itone,0) else - write(c77,'(50i1)') message74(1:50) - c77(51:77)='000000000000000000000110000' - call unpack77(c77,1,msg,unpk77_success) + call get_fst240_tones_from_bits(message74,itone,1) endif - if(unpk77_success) then - idupe=0 - do i=1,ndecodes - if(decodes(i).eq.msg) idupe=1 - enddo - if(idupe.eq.1) goto 2002 - ndecodes=ndecodes+1 - decodes(ndecodes)=msg - - if(iqorw.eq.1) then - call get_fst240_tones_from_bits(message101,itone,0) - else - call get_fst240_tones_from_bits(message74,itone,1) - endif - inquire(file='plotspec',exist=ex) - fmid=-999.0 - if(ex) then - call write_ref(itone,iwave,nsps,nmax,ndown,hmod, & - isbest,fc_synced,fmid,w50) - endif - xsig=0 - do i=1,NN - xsig=xsig+s4(itone(i),i)**2 - enddo - arg=400.0*(xsig/base)-1.0 - if(arg.gt.0.0) then - xsnr=10*log10(arg)-21.0-11.7*log10(nsps/800.0) - else - xsnr=-99.9 - endif - else - cycle - endif - nsnr=nint(xsnr) - qual=0. - fsig=fc_synced - 1.5*hmod*baud + inquire(file='plotspec',exist=ex) + fmid=-999.0 if(ex) then - write(21,'(i6.6,8i6,f7.1,f10.2,f7.1,1x,f7.2,1x,f7.1,1x,a37)') & - nutc,icand,itry,nsyncoh,iaptype,ijitter,ntype,nsync_qual,nharderrors,dmin,sync,xsnr,xdt,fsig,msg - flush(21) + call write_ref(itone,iwave,nsps,nmax,ndown,hmod, & + isbest,fc_synced,fmid,w50) endif - call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & - iaptype,qual,ntrperiod,lwspr,fmid,w50) - goto 2002 + xsig=0 + do i=1,NN + xsig=xsig+s4(itone(i),i)**2 + enddo + arg=400.0*(xsig/base)-1.0 + if(arg.gt.0.0) then + xsnr=10*log10(arg)-21.0-11.7*log10(nsps/800.0) + else + xsnr=-99.9 + endif + else + cycle endif - enddo ! metrics - enddo ! istart jitter -2002 enddo !candidate list - enddo ! iqorw + nsnr=nint(xsnr) + qual=0. + fsig=fc_synced - 1.5*hmod*baud + if(ex) then + write(21,'(i6.6,8i6,f7.1,f10.2,f7.1,1x,f7.2,1x,f7.1,1x,a37,f5.1)') & + nutc,icand,itry,nsyncoh,iaptype,ijitter,ntype,nsync_qual, & + nharderrors,dmin,sync,xsnr,xdt,fsig,msg,w50 + flush(21) + endif + call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & + iaptype,qual,ntrperiod,lwspr,fmid,w50) + goto 2002 + endif + enddo ! metrics + enddo ! istart jitter +2002 enddo !candidate list return end subroutine decode @@ -829,97 +812,97 @@ contains ! On "plotspec" special request, compute Doppler spread for a decoded signal - include 'fst240/fst240_params.f90' - complex, allocatable :: cwave(:) !Reconstructed complex signal - complex, allocatable :: g(:) !Channel gain, g(t) in QEX paper - real,allocatable :: ss(:) !Computed power spectrum of g(t) - integer itone(160) !Tones for this message - integer*2 iwave(nmax) !Raw Rx data - integer hmod !Modulation index - data ncall/0/ - save ncall + include 'fst240/fst240_params.f90' + complex, allocatable :: cwave(:) !Reconstructed complex signal + complex, allocatable :: g(:) !Channel gain, g(t) in QEX paper + real,allocatable :: ss(:) !Computed power spectrum of g(t) + integer itone(160) !Tones for this message + integer*2 iwave(nmax) !Raw Rx data + integer hmod !Modulation index + data ncall/0/ + save ncall - ncall=ncall+1 - nfft=2*nmax - nwave=max(nmax,(NN+2)*nsps) - allocate(cwave(0:nwave-1)) - allocate(g(0:nfft-1)) - wave=0 - fsample=12000.0 - call gen_fst240wave(itone,NN,nsps,nwave,fsample,hmod,fc,1,cwave,wave) - cwave=cshift(cwave,-i0*ndown) - fac=1.0/32768 - g(0:nmax-1)=fac*float(iwave)*conjg(cwave(:nmax-1)) - g(nmax:)=0. - call four2a(g,nfft,1,-1,1) !Forward c2c FFT + ncall=ncall+1 + nfft=2*nmax + nwave=max(nmax,(NN+2)*nsps) + allocate(cwave(0:nwave-1)) + allocate(g(0:nfft-1)) + wave=0 + fsample=12000.0 + call gen_fst240wave(itone,NN,nsps,nwave,fsample,hmod,fc,1,cwave,wave) + cwave=cshift(cwave,-i0*ndown) + fac=1.0/32768 + g(0:nmax-1)=fac*float(iwave)*conjg(cwave(:nmax-1)) + g(nmax:)=0. + call four2a(g,nfft,1,-1,1) !Forward c2c FFT - df=12000.0/nfft - ia=1.0/df - smax=0. - do i=-ia,ia !Find smax in +/- 1 Hz around 0. - j=i - if(j.lt.0) j=i+nfft - s=real(g(j))**2 + aimag(g(j))**2 - smax=max(s,smax) - enddo - - ia=10.1/df - allocate(ss(-ia:ia)) !Allocate space for +/- 10 Hz - sum1=0. - sum2=0. - nns=0 - do i=-ia,ia - j=i - if(j.lt.0) j=i+nfft - ss(i)=(real(g(j))**2 + aimag(g(j))**2)/smax - f=i*df - if(f.ge.-4.0 .and. f.le.-2.0) then - sum1=sum1 + ss(i) !Power between -2 and -4 Hz - nns=nns+1 - else if(f.ge.2.0 .and. f.le.4.0) then - sum2=sum2 + ss(i) !Power between +2 and +4 Hz - endif - enddo - avg=min(sum1/nns,sum2/nns) !Compute avg from smaller sum + df=12000.0/nfft + ia=1.0/df + smax=0. + do i=-ia,ia !Find smax in +/- 1 Hz around 0. + j=i + if(j.lt.0) j=i+nfft + s=real(g(j))**2 + aimag(g(j))**2 + smax=max(s,smax) + enddo - sum1=0. - do i=-ia,ia - f=i*df - if(abs(f).le.1.0) sum1=sum1 + ss(i)-avg !Power in abs(f) < 1 Hz - enddo + ia=10.1/df + allocate(ss(-ia:ia)) !Allocate space for +/- 10 Hz + sum1=0. + sum2=0. + nns=0 + do i=-ia,ia + j=i + if(j.lt.0) j=i+nfft + ss(i)=(real(g(j))**2 + aimag(g(j))**2)/smax + f=i*df + if(f.ge.-4.0 .and. f.le.-2.0) then + sum1=sum1 + ss(i) !Power between -2 and -4 Hz + nns=nns+1 + else if(f.ge.2.0 .and. f.le.4.0) then + sum2=sum2 + ss(i) !Power between +2 and +4 Hz + endif + enddo + avg=min(sum1/nns,sum2/nns) !Compute avg from smaller sum - ia=nint(1.0/df) + 1 - sum2=0.0 - xi1=-999 - xi2=-999 - xi3=-999 - sum2z=0. - do i=-ia,ia !Find freq range that has 50% of signal power - sum2=sum2 + ss(i)-avg - if(sum2.ge.0.25*sum1 .and. xi1.eq.-999.0) then - xi1=i - 1 + (sum2-0.25*sum1)/(sum2-sum2z) - endif - if(sum2.ge.0.50*sum1 .and. xi2.eq.-999.0) then - xi2=i - 1 + (sum2-0.50*sum1)/(sum2-sum2z) - endif - if(sum2.ge.0.75*sum1) then - xi3=i - 1 + (sum2-0.75*sum1)/(sum2-sum2z) - exit - endif - sum2z=sum2 - enddo - xdiff=sqrt(1.0+(xi3-xi1)**2) !Keep small values from fluctuating too widely - w50=xdiff*df !Compute Doppler spread - fmid=xi2*df !Frequency midpoint of signal powere + sum1=0. + do i=-ia,ia + f=i*df + if(abs(f).le.1.0) sum1=sum1 + ss(i)-avg !Power in abs(f) < 1 Hz + enddo - do i=-ia,ia !Save the spectrum for plotting - f=i*df - y=0.99*ss(i+nint(xi2)) + ncall-1 - write(52,1010) f,y -1010 format(f12.6,f12.6) - enddo + ia=nint(1.0/df) + 1 + sum2=0.0 + xi1=-999 + xi2=-999 + xi3=-999 + sum2z=0. + do i=-ia,ia !Find freq range that has 50% of signal power + sum2=sum2 + ss(i)-avg + if(sum2.ge.0.25*sum1 .and. xi1.eq.-999.0) then + xi1=i - 1 + (sum2-0.25*sum1)/(sum2-sum2z) + endif + if(sum2.ge.0.50*sum1 .and. xi2.eq.-999.0) then + xi2=i - 1 + (sum2-0.50*sum1)/(sum2-sum2z) + endif + if(sum2.ge.0.75*sum1) then + xi3=i - 1 + (sum2-0.75*sum1)/(sum2-sum2z) + exit + endif + sum2z=sum2 + enddo + xdiff=sqrt(1.0+(xi3-xi1)**2) !Keep small values from fluctuating too widely + w50=xdiff*df !Compute Doppler spread + fmid=xi2*df !Frequency midpoint of signal powere - return + do i=-ia,ia !Save the spectrum for plotting + f=i*df + y=0.99*ss(i+nint(xi2)) + ncall-1 + write(52,1010) f,y +1010 format(f12.6,f12.6) + enddo + + return end subroutine write_ref end module fst240_decode From 231b518a2250ca1a5073f9b908932c7eda96929e Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 21 Jul 2020 12:42:50 -0500 Subject: [PATCH 305/520] Fix print format for w50 in fort.21 --- lib/fst240_decode.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 73e33f08e..779c3da73 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -565,7 +565,7 @@ contains qual=0. fsig=fc_synced - 1.5*hmod*baud if(ex) then - write(21,'(i6.6,8i6,f7.1,f10.2,f7.1,1x,f7.2,1x,f7.1,1x,a37,f5.1)') & + write(21,'(i6.6,8i6,f7.1,f10.2,f7.1,1x,f7.2,1x,f7.1,1x,a37,f5.3)') & nutc,icand,itry,nsyncoh,iaptype,ijitter,ntype,nsync_qual, & nharderrors,dmin,sync,xsnr,xdt,fsig,msg,w50 flush(21) From 52984a507a5052e65a590356f0acabef77774966 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 21 Jul 2020 14:11:11 -0400 Subject: [PATCH 306/520] Move the WSPR frequency range indicator (green line) up 3 pixels. --- widgets/plotter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index f5cf5c463..56ed25daf 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -480,7 +480,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() if(m_mode=="WSPR") { x1=XfromFreq(1400); x2=XfromFreq(1600); - painter0.drawLine(x1,29,x2,29); + painter0.drawLine(x1,26,x2,26); } if(m_mode=="FST240W") { From 05a1b3bae833aed28dc97fc6f30bb578c6b1e14e Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 21 Jul 2020 14:18:55 -0400 Subject: [PATCH 307/520] Remove "Also FST240W" from the Decode menu and elswhere in the GUI. --- widgets/mainwindow.cpp | 8 -------- widgets/mainwindow.h | 1 - widgets/mainwindow.ui | 3 +-- 3 files changed, 1 insertion(+), 11 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 600d75217..0d36b9a99 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -951,7 +951,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->actionInclude_averaging->setChecked(m_ndepth&16); ui->actionInclude_correlation->setChecked(m_ndepth&32); ui->actionEnable_AP_DXcall->setChecked(m_ndepth&64); - ui->actionAlso_FST240W->setChecked(m_ndepth&128); m_UTCdisk=-1; m_fCPUmskrtd=0.0; @@ -2933,7 +2932,6 @@ void MainWindow::decode() //decode() if (!ui->actionInclude_averaging->isVisible ()) depth &= ~16; if (!ui->actionInclude_correlation->isVisible ()) depth &= ~32; if (!ui->actionEnable_AP_DXcall->isVisible ()) depth &= ~64; - if (!ui->actionAlso_FST240W->isVisible ()) depth &= ~128; dec_data.params.ndepth=depth; dec_data.params.n2pass=1; if(m_config.twoPass()) dec_data.params.n2pass=2; @@ -6493,7 +6491,6 @@ void MainWindow::switch_mode (Mode mode) ui->label_6->setVisible(false); ui->label_7->setVisible(false); } - ui->actionAlso_FST240W->setVisible(m_mode=="FST240"); } void MainWindow::WSPR_config(bool b) @@ -6592,11 +6589,6 @@ void MainWindow::on_actionEnable_AP_DXcall_toggled (bool checked) m_ndepth ^= (-checked ^ m_ndepth) & 0x00000040; } -void MainWindow::on_actionAlso_FST240W_toggled (bool checked) -{ - m_ndepth ^= (-checked ^ m_ndepth) & 0x00000080; -} - void MainWindow::on_actionErase_ALL_TXT_triggered() //Erase ALL.TXT { int ret = MessageBox::query_message (this, tr ("Confirm Erase"), diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 8170de842..687020a9c 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -263,7 +263,6 @@ private slots: void on_fox_log_action_triggered (); void on_actionColors_triggered(); void on_actionInclude_averaging_toggled (bool); - void on_actionAlso_FST240W_toggled (bool); void on_actionInclude_correlation_toggled (bool); void on_actionEnable_AP_DXcall_toggled (bool); void VHF_features_enabled(bool b); diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index d43aa62f7..823ece909 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -2931,7 +2931,7 @@ Yellow when too low 0 0 805 - 21 + 22 @@ -2982,7 +2982,6 @@ Yellow when too low - From 52643b01e2183fd7c6f415af2cea1cd1078839f5 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 21 Jul 2020 14:56:20 -0400 Subject: [PATCH 308/520] Correct the "time to decode" and the "Tune" frequency for FST240 modes. --- widgets/mainwindow.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 0d36b9a99..615fb1dfa 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1350,7 +1350,7 @@ void MainWindow::fixStop() if(m_TRperiod==120) i=3; if(m_TRperiod==300) i=4; if(m_TRperiod==900) i=5; - if(m_TRperiod==1800) i=5; + if(m_TRperiod==1800) i=6; if(m_config.decode_at_52s()) { m_hsymStop=stop_EME[i]; } else { @@ -4104,6 +4104,7 @@ void MainWindow::guiUpdate() //Once per second: if(nsec != m_sec0) { +// qDebug() << "AAA" << nsec; m_currentBand=m_config.bands()->find(m_freqNominal); if( SpecOp::HOUND == m_config.special_op_id() ) { qint32 tHound=QDateTime::currentMSecsSinceEpoch()/1000 - m_tAutoOn; @@ -7200,7 +7201,8 @@ void MainWindow::transmit (double snr) if(m_TRperiod==1800) nsps=134400; int hmod=int(pow(2.0,double(m_nSubMode))); double dfreq=hmod*12000.0/nsps; - double f0=ui->WSPRfreqSpinBox->value() - m_XIT + 1.5*dfreq; + double f0=ui->WSPRfreqSpinBox->value() - m_XIT; + if(!m_tune) f0 += + 1.5*dfreq; Q_EMIT sendMessage (m_mode, NUM_FST240_SYMBOLS,double(nsps),f0,toneSpacing, m_soundOutput,m_config.audio_output_channel(), true, false, snr, m_TRperiod); From ffd2ad4dc01031176a49234bd0b66b754810f2d1 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 22 Jul 2020 01:05:14 +0100 Subject: [PATCH 309/520] Narrower decodes display and move AP info into extra appended info --- widgets/displaytext.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/widgets/displaytext.cpp b/widgets/displaytext.cpp index 6d807c353..2f19774de 100644 --- a/widgets/displaytext.cpp +++ b/widgets/displaytext.cpp @@ -434,7 +434,13 @@ void DisplayText::displayDecodedText(DecodedText const& decodedText, QString con QString extra; if (haveFSpread) { - extra = QString {"%1"}.arg (fSpread, 5, 'f', fSpread < 0.95 ? 3 : 2) + QChar {' '}; + extra += QString {"%1"}.arg (fSpread, 5, 'f', fSpread < 0.95 ? 3 : 2) + QChar {' '}; + } + auto ap_pos = message.lastIndexOf (QRegularExpression {R"((?:\?\s)?a[0-9]$)"}); + if (ap_pos >= 0) + { + extra += message.mid (ap_pos) + QChar {' '}; + message = message.left (ap_pos).trimmed (); } m_CQPriority=""; if (CQcall) From 372651ae55d43ba2cbd36eaedca49388cdea128c Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 22 Jul 2020 10:43:33 -0400 Subject: [PATCH 310/520] Add a simple execution timer for small blocks of code. --- CMakeLists.txt | 1 + lib/sec0.f90 | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 lib/sec0.f90 diff --git a/CMakeLists.txt b/CMakeLists.txt index d2ed2459b..6f524a6f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -548,6 +548,7 @@ set (wsjt_FSRCS lib/qra64a.f90 lib/refspectrum.f90 lib/savec2.f90 + lib/sec0.f90 lib/sec_midn.f90 lib/setup65.f90 lib/sh65.f90 diff --git a/lib/sec0.f90 b/lib/sec0.f90 new file mode 100644 index 000000000..1ced602ed --- /dev/null +++ b/lib/sec0.f90 @@ -0,0 +1,21 @@ +subroutine sec0(n,t) + + ! Simple execution timer. + ! call sec0(0,t) + ! ... statements to be timed ... + ! call sec0(1,t) + ! print*,'Execution time:',t + + integer*8 count0,count1,clkfreq + save count0 + + call system_clock(count1,clkfreq) + if(n.eq.0) then + count0=count1 + return + else + t=float(count1-count0)/float(clkfreq) + endif + + return +end subroutine sec0 From 51f692d8d4b71c22a73dc12024a58fc7544c94d0 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 22 Jul 2020 18:01:06 +0100 Subject: [PATCH 311/520] Avoid double Tx periods in WSPR modes when changing scheduling basis --- widgets/mainwindow.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 615fb1dfa..fcad7d1f3 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5606,6 +5606,8 @@ void MainWindow::on_tx6_editingFinished() //tx6 edited void MainWindow::on_RoundRobin_currentTextChanged(QString text) { ui->sbTxPercent->setEnabled(text=="Random"); + m_WSPR_tx_next = false; // cancel any pending Tx to avoid + // undesirable consecutive Tx periods } From 77a6f8f51431fc0e0041c9ed355a3a1c1c024381 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 23 Jul 2020 10:58:10 -0400 Subject: [PATCH 312/520] Move blanking from symspec() to fst240_decode(). Do not apply RefSpec corrections to data read from disk. --- lib/blanker.f90 | 39 +++--- lib/fst240_decode.f90 | 12 +- lib/symspec.f90 | 11 +- widgets/mainwindow.cpp | 24 ++-- widgets/mainwindow.ui | 300 +++++++++++++++++++---------------------- 5 files changed, 182 insertions(+), 204 deletions(-) diff --git a/lib/blanker.f90 b/lib/blanker.f90 index a5c334e3f..6dd496f81 100644 --- a/lib/blanker.f90 +++ b/lib/blanker.f90 @@ -1,14 +1,11 @@ -subroutine blanker(iwave,nz,dwell_time,fblank,npct) +subroutine blanker(iwave,nz,ndropmax,npct,c_bigfft) integer*2 iwave(nz) + complex c_bigfft(0:nz/2) integer hist(0:32768) - real dwell_time !Blanking dwell time (s) real fblank !Fraction of points to be blanked - data ncall/0/,thresh/0.0/,fblanked/0.0/ - save ncall,thresh,fblanked - ncall=ncall+1 - ndropmax=nint(1.0 + dwell_time*12000.0) + fblank=0.01*npct hist=0 do i=1,nz n=abs(iwave(i)) @@ -19,34 +16,40 @@ subroutine blanker(iwave,nz,dwell_time,fblank,npct) n=n+hist(i) if(n.ge.nint(nz*fblank/ndropmax)) exit enddo - thresh=thresh + 0.01*(i-thresh) - if(ncall.eq.1) thresh=i - nthresh=nint(thresh) + nthresh=i ndrop=0 ndropped=0 - + + xx=0. do i=1,nz i0=iwave(i) if(ndrop.gt.0) then - iwave(i)=0 + i0=0 ndropped=ndropped+1 ndrop=ndrop-1 - cycle endif ! Start to apply blanking - if(abs(iwave(i)).gt.nthresh) then - iwave(i)=0 + if(abs(i0).gt.nthresh) then + i0=0 ndropped=ndropped+1 ndrop=ndropmax endif + +! Now copy the data into c_bigfft + if(iand(i,1).eq.1) then + xx=i0 + else + yy=i0 + j=i/2 - 1 + c_bigfft(j)=cmplx(xx,yy) + endif enddo fblanked=fblanked + 0.1*(float(ndropped)/nz - fblanked) - if(ncall.eq.1) fblanked=float(ndropped)/nz - npct=nint(100.0*fblanked) -! if(mod(ncall,4).eq.0) write(*,3001) thresh,dwell_time,fblank,fblanked,npct -!3001 format(f8.1,f8.4,f6.2,f7.3,i6) + fblanked=float(ndropped)/nz +! write(*,3001) npct,nthresh,fblanked +!3001 format(2i5,f7.3) return end subroutine blanker diff --git a/lib/fst240_decode.f90 b/lib/fst240_decode.f90 index 779c3da73..9b52f285e 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst240_decode.f90 @@ -80,8 +80,6 @@ contains data first/.true./ save first,apbits,nappasses,naptypes,mycall0,hiscall0 -! call blanker(iwave,ntrperiod*12000,0.0,0.2) - this%callback => callback dxcall13=hiscall ! initialize for use in packjt77 @@ -246,12 +244,14 @@ contains norder=3 endif + ndropmax=1 + npct=nexp_decode/256 + call blanker(iwave,nfft1,ndropmax,npct,c_bigfft) + ! The big fft is done once and is used for calculating the smoothed spectrum ! and also for downconverting/downsampling each candidate. - do i=0,nfft1/2 - c_bigfft(i)=cmplx(float(iwave(2*i+1)),float(iwave(2*i+2))) - enddo - call four2a(c_bigfft,nfft1,1,-1,0) + call four2a(c_bigfft,nfft1,1,-1,0) !r2c +! call blank2(nfa,nfb,nfft1,c_bigfft,iwave) if(hmod.eq.1) then if(fMHz.lt.2.0) then diff --git a/lib/symspec.f90 b/lib/symspec.f90 index 5bd0fd902..a3bed192f 100644 --- a/lib/symspec.f90 +++ b/lib/symspec.f90 @@ -1,5 +1,5 @@ subroutine symspec(shared_data,k,TRperiod,nsps,ingain,bLowSidelobes, & - nminw,pxdb,s,df3,ihsym,npts8,pxdbmax,bblank,npct) + nminw,pxdb,s,df3,ihsym,npts8,pxdbmax,npct) ! Input: ! k pointer to the most recent new data @@ -29,7 +29,7 @@ subroutine symspec(shared_data,k,TRperiod,nsps,ingain,bLowSidelobes, & real*4 tmp(NSMAX) complex cx(0:MAXFFT3/2) integer nch(7) - logical*1 bLowSidelobes,bblank + logical*1 bLowSidelobes common/spectra/syellow(NSMAX),ref(0:3456),filter(0:3456) data k0/99999999/,nfft3z/0/ @@ -64,10 +64,9 @@ subroutine symspec(shared_data,k,TRperiod,nsps,ingain,bLowSidelobes, & sq=0. pxmax=0.; - dwell_time=0.0001 - fblank=0.15 - if(k.gt.k0 .and. bblank) call blanker(shared_data%id2(k0+1:k), & - k-k0,dwell_time,fblank,npct) +! dwell_time=0.0001 +! if(k.gt.k0 .and. npct.gt.0) call blanker(shared_data%id2(k0+1:k), & +! k-k0,dwell_time,npct) do i=k0+1,k x1=shared_data%id2(i) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index fcad7d1f3..43b6dbabd 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -91,7 +91,7 @@ extern "C" { //----------------------------------------------------- C and Fortran routines void symspec_(struct dec_data *, int* k, double* trperiod, int* nsps, int* ingain, bool* bLowSidelobes, int* minw, float* px, float s[], float* df3, - int* nhsym, int* npts8, float *m_pxmax, bool *bblank, int* npct); + int* nhsym, int* npts8, float *m_pxmax, int* npct); void hspec_(short int d2[], int* k, int* nutc0, int* ntrperiod, int* nrxfreq, int* ntol, bool* bmsk144, bool* btrain, double const pcoeffs[], int* ingain, @@ -1131,7 +1131,7 @@ void MainWindow::writeSettings() m_settings->setValue ("FT8AP", ui->actionEnable_AP_FT8->isChecked ()); m_settings->setValue ("JT65AP", ui->actionEnable_AP_JT65->isChecked ()); m_settings->setValue("SplitterState",ui->splitter->saveState()); - m_settings->setValue("Blanker",ui->cbNB->isChecked()); + m_settings->setValue("Blanker",ui->sbNB->value()); { QList coeffs; // suitable for QSettings @@ -1232,7 +1232,7 @@ void MainWindow::readSettings() ui->actionEnable_AP_FT8->setChecked (m_settings->value ("FT8AP", false).toBool()); ui->actionEnable_AP_JT65->setChecked (m_settings->value ("JT65AP", false).toBool()); ui->splitter->restoreState(m_settings->value("SplitterState").toByteArray()); - ui->cbNB->setChecked(m_settings->value("Blanker",false).toBool()); + ui->sbNB->setValue(m_settings->value("Blanker",0).toInt()); { auto const& coeffs = m_settings->value ("PhaseEqualizationCoefficients" , QList {0., 0., 0., 0., 0.}).toList (); @@ -1377,8 +1377,10 @@ void MainWindow::dataSink(qint64 frames) } m_bUseRef=m_wideGraph->useRef(); - refspectrum_(&dec_data.d2[k-m_nsps/2],&m_bClearRefSpec,&m_bRefSpec, - &m_bUseRef,c_fname,len); + if(!m_diskData) { + refspectrum_(&dec_data.d2[k-m_nsps/2],&m_bClearRefSpec,&m_bRefSpec, + &m_bUseRef,c_fname,len); + } m_bClearRefSpec=false; if(m_mode=="ISCAT" or m_mode=="MSK144" or m_bFast9) { @@ -1393,13 +1395,10 @@ void MainWindow::dataSink(qint64 frames) if(m_bFastMode) nsps=6912; int nsmo=m_wideGraph->smoothYellow()-1; bool bLowSidelobes=m_config.lowSidelobes(); - bool bblank=ui->cbNB->isChecked() and m_mode.startsWith("FST240"); int npct=0; + if(m_mode.startsWith("FST240")) npct=ui->sbNB->value(); symspec_(&dec_data,&k,&m_TRperiod,&nsps,&m_inGain,&bLowSidelobes,&nsmo,&m_px,s, - &m_df3,&m_ihsym,&m_npts8,&m_pxmax,&bblank,&npct); - QString t=" "; - if(bblank) t=QString::number(npct); - ui->labNpct->setText(t); + &m_df3,&m_ihsym,&m_npts8,&m_pxmax,&npct); if(m_mode=="WSPR" or m_mode=="FST240W") wspr_downsample_(dec_data.d2,&k); if(m_ihsym <=0) return; if(ui) ui->signal_meter_widget->setValue(m_px,m_pxmax); // Update thermometer @@ -2991,6 +2990,7 @@ void MainWindow::decode() //decode() dec_data.params.nexp_decode = static_cast (m_config.special_op_id()); if(m_config.single_decode()) dec_data.params.nexp_decode += 32; if(m_config.enable_VHF_features()) dec_data.params.nexp_decode += 64; + if(m_mode.startsWith("FST240")) dec_data.params.nexp_decode += 256*ui->sbNB->value(); ::memcpy(dec_data.params.datetime, m_dateTime.toLatin1()+" ", sizeof dec_data.params.datetime); ::memcpy(dec_data.params.mycall, (m_config.my_callsign()+" ").toLatin1(), sizeof dec_data.params.mycall); @@ -5837,9 +5837,7 @@ void MainWindow::displayWidgets(qint64 n) ui->sbSerialNumber->setVisible(b); m_lastCallsign.clear (); // ensures Tx5 is updated for new modes b=m_mode.startsWith("FST240"); - ui->labNpct->setVisible(b); - ui->labNB->setVisible(b); - ui->cbNB->setVisible(b); + ui->sbNB->setVisible(b); genStdMsgs (m_rpt, true); } diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 823ece909..cfff2fad3 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -554,7 +554,46 @@ - + + + + + 0 + 0 + + + + QLabel { + font-family: MS Shell Dlg 2; + font-size: 16pt; + background-color : black; + color : yellow; +} + + + QFrame::StyledPanel + + + QFrame::Sunken + + + 2 + + + 0 + + + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + + + Qt::AlignCenter + + + 5 + + + + 0 @@ -2401,45 +2440,6 @@ list. The list can be maintained in Settings (F2). - - - - - 0 - 0 - - - - QLabel { - font-family: MS Shell Dlg 2; - font-size: 16pt; - background-color : black; - color : yellow; -} - - - QFrame::StyledPanel - - - QFrame::Sunken - - - 2 - - - 0 - - - <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> - - - Qt::AlignCenter - - - 5 - - - @@ -2447,7 +2447,7 @@ list. The list can be maintained in Settings (F2). - + @@ -2468,7 +2468,7 @@ list. The list can be maintained in Settings (F2). 0 - + @@ -2560,7 +2560,42 @@ list. The list can be maintained in Settings (F2). - + + + + + 0 + 0 + + + + true + + + Az: 251 16553 km + + + Qt::AlignCenter + + + 4 + + + + + + + Callsign of station to be worked + + + + + + Qt::AlignCenter + + + + @@ -2652,20 +2687,7 @@ list. The list can be maintained in Settings (F2). - - - - Callsign of station to be worked - - - - - - Qt::AlignCenter - - - - + Search for callsign in database @@ -2675,7 +2697,7 @@ list. The list can be maintained in Settings (F2). - + Locator of station to be worked @@ -2688,29 +2710,7 @@ list. The list can be maintained in Settings (F2). - - - - - 0 - 0 - - - - true - - - Az: 251 16553 km - - - Qt::AlignCenter - - - 4 - - - - + Add callsign and locator to database @@ -2723,6 +2723,28 @@ list. The list can be maintained in Settings (F2). + + + + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> + + + Frequency entry + + + Select operating band or enter frequency in MHz or enter kHz increment followed by k. + + + true + + + QComboBox::NoInsert + + + QComboBox::AdjustToMinimumContentsLength + + + @@ -2765,7 +2787,7 @@ QPushButton[state="ok"] { - + Adjust Tx audio level @@ -2793,25 +2815,37 @@ QPushButton[state="ok"] { - - + + + + + 0 + 0 + + + + + 100 + 16777215 + + - <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> - Frequency entry + Rx Signal - Select operating band or enter frequency in MHz or enter kHz increment followed by k. + 30dB recommended when only noise present +Green when good +Red when clipping may occur +Yellow when too low - - true + + QFrame::Panel - - QComboBox::NoInsert - - - QComboBox::AdjustToMinimumContentsLength + + QFrame::Sunken @@ -2849,78 +2883,22 @@ QLabel[oob="true"] { - - - - - 0 - 0 - + + + + Qt::AlignCenter - - - 100 - 16777215 - + + % - - <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> + + NB - - Rx Signal - - - 30dB recommended when only noise present -Green when good -Red when clipping may occur -Yellow when too low - - - QFrame::Panel - - - QFrame::Sunken + + 25 - - - - - - NB - - - - - - - - - - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - @@ -2931,7 +2909,7 @@ Yellow when too low 0 0 805 - 22 + 21 From 085e63e05d41fb71abd7cb32daa21ec00d94b870 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 23 Jul 2020 12:48:50 -0500 Subject: [PATCH 313/520] Rename fst240 to fst4 in Fortran routines. --- CMakeLists.txt | 40 +++---- lib/decoder.f90 | 26 ++--- lib/{fst240 => fst4}/bpdecode240_101.f90 | 0 lib/{fst240 => fst4}/decode240_101.f90 | 0 lib/{fst240 => fst4}/decode240_74.f90 | 0 lib/{fst240 => fst4}/encode240_101.f90 | 0 lib/{fst240 => fst4}/encode240_74.f90 | 0 .../fst4_params.f90} | 2 +- .../fst240sim.f90 => fst4/fst4sim.f90} | 14 +-- .../gen_fst4wave.f90} | 4 +- lib/fst4/genfst240_64.f90 | 108 ++++++++++++++++++ .../genfst240.f90 => fst4/genfst4.f90} | 8 +- lib/{fst240 => fst4}/get_crc24.f90 | 0 .../get_fst4_bitmetrics.f90} | 6 +- .../get_fst4_bitmetrics2.f90} | 6 +- .../ldpc_240_101_generator.f90 | 0 lib/{fst240 => fst4}/ldpc_240_101_parity.f90 | 0 .../ldpc_240_74_generator.f90 | 0 lib/{fst240 => fst4}/ldpc_240_74_parity.f90 | 0 lib/{fst240 => fst4}/ldpcsim240_101.f90 | 0 lib/{fst240 => fst4}/ldpcsim240_74.f90 | 0 lib/{fst240 => fst4}/osd240_101.f90 | 0 lib/{fst240 => fst4}/osd240_74.f90 | 0 lib/{fst240_decode.f90 => fst4_decode.f90} | 60 +++++----- 24 files changed, 191 insertions(+), 83 deletions(-) rename lib/{fst240 => fst4}/bpdecode240_101.f90 (100%) rename lib/{fst240 => fst4}/decode240_101.f90 (100%) rename lib/{fst240 => fst4}/decode240_74.f90 (100%) rename lib/{fst240 => fst4}/encode240_101.f90 (100%) rename lib/{fst240 => fst4}/encode240_74.f90 (100%) rename lib/{fst240/fst240_params.f90 => fst4/fst4_params.f90} (94%) rename lib/{fst240/fst240sim.f90 => fst4/fst4sim.f90} (91%) rename lib/{fst240/gen_fst240wave.f90 => fst4/gen_fst4wave.f90} (96%) create mode 100644 lib/fst4/genfst240_64.f90 rename lib/{fst240/genfst240.f90 => fst4/genfst4.f90} (94%) rename lib/{fst240 => fst4}/get_crc24.f90 (100%) rename lib/{fst240/get_fst240_bitmetrics.f90 => fst4/get_fst4_bitmetrics.f90} (95%) rename lib/{fst240/get_fst240_bitmetrics2.f90 => fst4/get_fst4_bitmetrics2.f90} (96%) rename lib/{fst240 => fst4}/ldpc_240_101_generator.f90 (100%) rename lib/{fst240 => fst4}/ldpc_240_101_parity.f90 (100%) rename lib/{fst240 => fst4}/ldpc_240_74_generator.f90 (100%) rename lib/{fst240 => fst4}/ldpc_240_74_parity.f90 (100%) rename lib/{fst240 => fst4}/ldpcsim240_101.f90 (100%) rename lib/{fst240 => fst4}/ldpcsim240_74.f90 (100%) rename lib/{fst240 => fst4}/osd240_101.f90 (100%) rename lib/{fst240 => fst4}/osd240_74.f90 (100%) rename lib/{fst240_decode.f90 => fst4_decode.f90} (94%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f524a6f5..f09a6f1df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -371,7 +371,7 @@ set (wsjt_FSRCS lib/jt65_mod.f90 lib/ft8_decode.f90 lib/ft4_decode.f90 - lib/fst240_decode.f90 + lib/fst4_decode.f90 lib/jt9_decode.f90 lib/options.f90 lib/packjt.f90 @@ -600,20 +600,20 @@ set (wsjt_FSRCS lib/wqencode.f90 lib/wspr_downsample.f90 lib/zplot9.f90 - lib/fst240/decode240_101.f90 - lib/fst240/decode240_74.f90 - lib/fst240/encode240_101.f90 - lib/fst240/encode240_74.f90 - lib/fst240/fst240sim.f90 - lib/fst240/gen_fst240wave.f90 - lib/fst240/genfst240.f90 - lib/fst240/get_fst240_bitmetrics.f90 - lib/fst240/get_fst240_bitmetrics2.f90 - lib/fst240/ldpcsim240_101.f90 - lib/fst240/ldpcsim240_74.f90 - lib/fst240/osd240_101.f90 - lib/fst240/osd240_74.f90 - lib/fst240/get_crc24.f90 + lib/fst4/decode240_101.f90 + lib/fst4/decode240_74.f90 + lib/fst4/encode240_101.f90 + lib/fst4/encode240_74.f90 + lib/fst4/fst4sim.f90 + lib/fst4/gen_fst4wave.f90 + lib/fst4/genfst4.f90 + lib/fst4/get_fst4_bitmetrics.f90 + lib/fst4/get_fst4_bitmetrics2.f90 + lib/fst4/ldpcsim240_101.f90 + lib/fst4/ldpcsim240_74.f90 + lib/fst4/osd240_101.f90 + lib/fst4/osd240_74.f90 + lib/fst4/get_crc24.f90 ) # temporary workaround for a gfortran v7.3 ICE on Fedora 27 64-bit @@ -1376,13 +1376,13 @@ target_link_libraries (ft4sim_mult wsjt_fort wsjt_cxx) add_executable (record_time_signal Audio/tools/record_time_signal.cpp) target_link_libraries (record_time_signal wsjt_cxx wsjt_qtmm wsjt_qt) -add_executable (fst240sim lib/fst240/fst240sim.f90 wsjtx.rc) -target_link_libraries (fst240sim wsjt_fort wsjt_cxx) +add_executable (fst4sim lib/fst4/fst4sim.f90 wsjtx.rc) +target_link_libraries (fst4sim wsjt_fort wsjt_cxx) -add_executable (ldpcsim240_101 lib/fst240/ldpcsim240_101.f90 wsjtx.rc) +add_executable (ldpcsim240_101 lib/fst4/ldpcsim240_101.f90 wsjtx.rc) target_link_libraries (ldpcsim240_101 wsjt_fort wsjt_cxx) -add_executable (ldpcsim240_74 lib/fst240/ldpcsim240_74.f90 wsjtx.rc) +add_executable (ldpcsim240_74 lib/fst4/ldpcsim240_74.f90 wsjtx.rc) target_link_libraries (ldpcsim240_74 wsjt_fort wsjt_cxx) endif(WSJT_BUILD_UTILS) @@ -1524,7 +1524,7 @@ install (TARGETS jt9 wsprd fmtave fcal fmeasure if(WSJT_BUILD_UTILS) install (TARGETS ft8code jt65code qra64code qra64sim jt9code jt4code - msk144code fst240sim + msk144code fst4sim RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime ) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index bb7aaaa8e..49e8681f3 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -8,7 +8,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) use jt9_decode use ft8_decode use ft4_decode - use fst240_decode + use fst4_decode include 'jt9com.f90' include 'timer_common.inc' @@ -33,9 +33,9 @@ subroutine multimode_decoder(ss,id2,params,nfsample) integer :: decoded end type counting_ft4_decoder - type, extends(fst240_decoder) :: counting_fst240_decoder + type, extends(fst4_decoder) :: counting_fst4_decoder integer :: decoded - end type counting_fst240_decoder + end type counting_fst4_decoder real ss(184,NSMAX) logical baddata,newdat65,newdat9,single_decode,bVHF,bad0,newdat,ex @@ -53,7 +53,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) type(counting_jt9_decoder) :: my_jt9 type(counting_ft8_decoder) :: my_ft8 type(counting_ft4_decoder) :: my_ft4 - type(counting_fst240_decoder) :: my_fst240 + type(counting_fst4_decoder) :: my_fst4 !cast C character arrays to Fortran character strings datetime=transfer(params%datetime, datetime) @@ -68,7 +68,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) my_jt9%decoded = 0 my_ft8%decoded = 0 my_ft4%decoded = 0 - my_fst240%decoded = 0 + my_fst4%decoded = 0 ! For testing only: return Rx messages stored in a file as decodes inquire(file='rx_messages.txt',exist=ex) @@ -193,7 +193,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) iwspr=0 if(iand(params%ndepth,128).ne.0) iwspr=2 call timer('dec240 ',0) - call my_fst240%decode(fst240_decoded,id2,params%nutc, & + call my_fst4%decode(fst4_decoded,id2,params%nutc, & params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & params%nsubmode,ndepth,params%ntr,params%nexp_decode, & params%ntol,params%emedelay, & @@ -207,7 +207,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) ndepth=iand(params%ndepth,3) iwspr=1 call timer('dec240 ',0) - call my_fst240%decode(fst240_decoded,id2,params%nutc, & + call my_fst4%decode(fst4_decoded,id2,params%nutc, & params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & params%nsubmode,ndepth,params%ntr,params%nexp_decode, & params%ntol,params%emedelay, & @@ -335,7 +335,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) ! JT65 is not yet producing info for nsynced, ndecoded. 800 ndecoded = my_jt4%decoded + my_jt65%decoded + my_jt9%decoded + & - my_ft8%decoded + my_ft4%decoded + my_fst240%decoded + my_ft8%decoded + my_ft4%decoded + my_fst4%decoded if(params%nmode.eq.8 .and. params%nzhsym.eq.41) ndec41=ndecoded if(params%nmode.eq.8 .and. params%nzhsym.eq.47) ndec47=ndecoded if(params%nmode.eq.8 .and. params%nzhsym.eq.50) then @@ -697,13 +697,13 @@ contains return end subroutine ft4_decoded - subroutine fst240_decoded (this,nutc,sync,nsnr,dt,freq,decoded,nap, & + subroutine fst4_decoded (this,nutc,sync,nsnr,dt,freq,decoded,nap, & qual,ntrperiod,lwspr,fmid,w50) - use fst240_decode + use fst4_decode implicit none - class(fst240_decoder), intent(inout) :: this + class(fst4_decoder), intent(inout) :: this integer, intent(in) :: nutc real, intent(in) :: sync integer, intent(in) :: nsnr @@ -752,11 +752,11 @@ contains call flush(13) select type(this) - type is (counting_fst240_decoder) + type is (counting_fst4_decoder) this%decoded = this%decoded + 1 end select return - end subroutine fst240_decoded + end subroutine fst4_decoded end subroutine multimode_decoder diff --git a/lib/fst240/bpdecode240_101.f90 b/lib/fst4/bpdecode240_101.f90 similarity index 100% rename from lib/fst240/bpdecode240_101.f90 rename to lib/fst4/bpdecode240_101.f90 diff --git a/lib/fst240/decode240_101.f90 b/lib/fst4/decode240_101.f90 similarity index 100% rename from lib/fst240/decode240_101.f90 rename to lib/fst4/decode240_101.f90 diff --git a/lib/fst240/decode240_74.f90 b/lib/fst4/decode240_74.f90 similarity index 100% rename from lib/fst240/decode240_74.f90 rename to lib/fst4/decode240_74.f90 diff --git a/lib/fst240/encode240_101.f90 b/lib/fst4/encode240_101.f90 similarity index 100% rename from lib/fst240/encode240_101.f90 rename to lib/fst4/encode240_101.f90 diff --git a/lib/fst240/encode240_74.f90 b/lib/fst4/encode240_74.f90 similarity index 100% rename from lib/fst240/encode240_74.f90 rename to lib/fst4/encode240_74.f90 diff --git a/lib/fst240/fst240_params.f90 b/lib/fst4/fst4_params.f90 similarity index 94% rename from lib/fst240/fst240_params.f90 rename to lib/fst4/fst4_params.f90 index f6204915d..6f6878300 100644 --- a/lib/fst240/fst240_params.f90 +++ b/lib/fst4/fst4_params.f90 @@ -1,4 +1,4 @@ -! FST240 +! FST4 ! LDPC(240,101)/CRC24 code, five 8x4 sync parameter (KK=77) !Information bits (77 + CRC24) diff --git a/lib/fst240/fst240sim.f90 b/lib/fst4/fst4sim.f90 similarity index 91% rename from lib/fst240/fst240sim.f90 rename to lib/fst4/fst4sim.f90 index f687036b0..5b8f33bc3 100644 --- a/lib/fst240/fst240sim.f90 +++ b/lib/fst4/fst4sim.f90 @@ -1,10 +1,10 @@ -program fst240sim +program fst4sim ! Generate simulated signals for experimental slow FT4 mode use wavhdr use packjt77 - include 'fst240_params.f90' !Set various constants + include 'fst4_params.f90' !Set various constants type(hdr) h !Header for .wav file logical*1 wspr_hint character arg*12,fname*17 @@ -21,8 +21,8 @@ program fst240sim nargs=iargc() if(nargs.ne.10) then print*,'Need 10 arguments, got ',nargs - print*,'Usage: fst240sim "message" TRsec f0 DT h fdop del nfiles snr W' - print*,'Examples: fst240sim "K1JT K9AN EN50" 60 1500 0.0 1 0.1 1.0 10 -15 F' + print*,'Usage: fst4sim "message" TRsec f0 DT h fdop del nfiles snr W' + print*,'Examples: fst4sim "K1JT K9AN EN50" 60 1500 0.0 1 0.1 1.0 10 -15 F' print*,'W (T or F) argument is hint to encoder to use WSPR message when there is abiguity' go to 999 endif @@ -86,7 +86,7 @@ program fst240sim endif call pack77(msg37,i3,n3,c77) if(i3.eq.0.and.n3.eq.6) iwspr=1 - call genfst240(msg37,0,msgsent37,msgbits,itone,iwspr) + call genfst4(msg37,0,msgsent37,msgbits,itone,iwspr) write(*,*) write(*,'(a9,a37,a3,L2,a7,i2)') 'Message: ',msgsent37,'W:',wspr_hint,' iwspr:',iwspr write(*,1000) f00,xdt,hmod,txt,snrdb @@ -109,7 +109,7 @@ program fst240sim fsample=12000.0 icmplx=1 f0=f00+1.5*hmod*baud - call gen_fst240wave(itone,NN,nsps,nwave,fsample,hmod,f0,icmplx,c0,wave) + call gen_fst4wave(itone,NN,nsps,nwave,fsample,hmod,f0,icmplx,c0,wave) k=nint((xdt+1.0)/dt) if(nsec.eq.15) k=nint((xdt+0.5)/dt) c0=cshift(c0,-k) @@ -152,4 +152,4 @@ program fst240sim 1110 format(i4,f7.2,f8.2,f7.1,2x,a17) enddo -999 end program fst240sim +999 end program fst4sim diff --git a/lib/fst240/gen_fst240wave.f90 b/lib/fst4/gen_fst4wave.f90 similarity index 96% rename from lib/fst240/gen_fst240wave.f90 rename to lib/fst4/gen_fst4wave.f90 index 49fc55ab7..ead00709b 100644 --- a/lib/fst240/gen_fst240wave.f90 +++ b/lib/fst4/gen_fst4wave.f90 @@ -1,4 +1,4 @@ -subroutine gen_fst240wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & +subroutine gen_fst4wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & icmplx,cwave,wave) parameter(NTAB=65536) @@ -88,4 +88,4 @@ subroutine gen_fst240wave(itone,nsym,nsps,nwave,fsample,hmod,f0, & endif return -end subroutine gen_fst240wave +end subroutine gen_fst4wave diff --git a/lib/fst4/genfst240_64.f90 b/lib/fst4/genfst240_64.f90 new file mode 100644 index 000000000..378f8a035 --- /dev/null +++ b/lib/fst4/genfst240_64.f90 @@ -0,0 +1,108 @@ +subroutine genfst240_64(msg0,ichk,msgsent,msgbits,i4tone,iwspr) + +! Input: +! - msg0 requested message to be transmitted +! - ichk if ichk=1, return only msgsent +! - msgsent message as it will be decoded +! - i4tone array of audio tone values, {0,1,2,3} +! - iwspr 0: (240,101)/crc24, 1: (240,74)/crc24 +! +! Frame structure: +! s8 d30 s8 d30 s8 d30 s8 d30 s8 + + use packjt77 + include 'fst240_params.f90' + character*37 msg0 + character*37 message !Message to be generated + character*37 msgsent !Message as it will be received + character*77 c77 + character*24 c24 + integer*4 i4tone(NN),itmp(ND) + integer*1 codeword(2*ND) + integer*1 msgbits(101),rvec(77) + integer isyncword1(8),isyncword2(8) + integer ncrc24 + integer graymap64(64) + logical unpk77_success + data isyncword1/3,1,4,0,6,5,2/ + data rvec/0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,0, & + 1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, & + 0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/ + data graymap64/ 0, 1, 3, 2, 6, 7, 5, 4,12,13,15,14,10,11, 9, 8, & + 24,25,27,26,30,31,29,28,20,21,23,22,18,19,17,16, & + 48,49,51,50,54,55,53,52,60,61,63,62,58,59,57,56, & + 40,41,43,42,46,47,45,44,36,37,39,38,34,35,33,32/ + message=msg0 + + do i=1, 37 + if(ichar(message(i:i)).eq.0) then + message(i:37)=' ' + exit + endif + enddo + do i=1,37 !Strip leading blanks + if(message(1:1).ne.' ') exit + message=message(i+1:) + enddo + + i3=-1 + n3=-1 + call pack77(message,i3,n3,c77) + call unpack77(c77,0,msgsent,unpk77_success) !Unpack to get msgsent + msgbits=0 + iwspr=0 + if(i3.eq.0.and.n3.eq.6) then + iwspr=1 + read(c77,'(50i1)') msgbits(1:50) + call get_crc24(msgbits,74,ncrc24) + write(c24,'(b24.24)') ncrc24 + read(c24,'(24i1)') msgbits(51:74) + else + read(c77,'(77i1)') msgbits(1:77) + msgbits(1:77)=mod(msgbits(1:77)+rvec,2) + call get_crc24(msgbits,101,ncrc24) + write(c24,'(b24.24)') ncrc24 + read(c24,'(24i1)') msgbits(78:101) + endif + + if(ichk.eq.1) go to 999 + if(unpk77_success) go to 2 +1 msgbits=0 + itone=0 + msgsent='*** bad message *** ' + go to 999 + + entry get_fst240_tones_from_bits(msgbits,i4tone,iwspr) + +2 continue + if(iwspr.eq.0) then + call encode240_101(msgbits,codeword) + else + call encode240_74(msgbits(1:74),codeword) + endif + +! Grayscale mapping: +! bits tone + + do i=1,40 + is=codeword(2*i)+2*codeword(2*i-1) + if(is.le.1) itmp(i)=is + if(is.eq.2) itmp(i)=3 + if(is.eq.3) itmp(i)=2 + enddo + + i4tone( 1: 8)=isyncword1 + i4tone( 9: 38)=itmp( 1: 30) + i4tone( 39: 46)=isyncword2 + i4tone( 47: 76)=itmp( 31: 60) + i4tone( 77: 84)=isyncword1 + i4tone( 85:114)=itmp( 61: 90) + i4tone(115:122)=isyncword2 + i4tone(123:152)=itmp( 91:120) + i4tone(153:160)=isyncword1 + +999 return + +end subroutine genfst240_64 + +subroutine graycode(in diff --git a/lib/fst240/genfst240.f90 b/lib/fst4/genfst4.f90 similarity index 94% rename from lib/fst240/genfst240.f90 rename to lib/fst4/genfst4.f90 index 2d4a055ae..818feee43 100644 --- a/lib/fst240/genfst240.f90 +++ b/lib/fst4/genfst4.f90 @@ -1,4 +1,4 @@ -subroutine genfst240(msg0,ichk,msgsent,msgbits,i4tone,iwspr) +subroutine genfst4(msg0,ichk,msgsent,msgbits,i4tone,iwspr) ! Input: ! - msg0 requested message to be transmitted @@ -12,7 +12,7 @@ subroutine genfst240(msg0,ichk,msgsent,msgbits,i4tone,iwspr) ! s8 d30 s8 d30 s8 d30 s8 d30 s8 use packjt77 - include 'fst240_params.f90' + include 'fst4_params.f90' character*37 msg0 character*37 message !Message to be generated character*37 msgsent !Message as it will be received @@ -73,7 +73,7 @@ subroutine genfst240(msg0,ichk,msgsent,msgbits,i4tone,iwspr) msgsent='*** bad message *** ' go to 999 - entry get_fst240_tones_from_bits(msgbits,i4tone,iwspr) + entry get_fst4_tones_from_bits(msgbits,i4tone,iwspr) 2 continue if(iwspr.eq.0) then @@ -108,4 +108,4 @@ subroutine genfst240(msg0,ichk,msgsent,msgbits,i4tone,iwspr) 999 return -end subroutine genfst240 +end subroutine genfst4 diff --git a/lib/fst240/get_crc24.f90 b/lib/fst4/get_crc24.f90 similarity index 100% rename from lib/fst240/get_crc24.f90 rename to lib/fst4/get_crc24.f90 diff --git a/lib/fst240/get_fst240_bitmetrics.f90 b/lib/fst4/get_fst4_bitmetrics.f90 similarity index 95% rename from lib/fst240/get_fst240_bitmetrics.f90 rename to lib/fst4/get_fst4_bitmetrics.f90 index e82d73c99..76a00dc2e 100644 --- a/lib/fst240/get_fst240_bitmetrics.f90 +++ b/lib/fst4/get_fst4_bitmetrics.f90 @@ -1,6 +1,6 @@ -subroutine get_fst240_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,badsync) +subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,badsync) - include 'fst240_params.f90' + include 'fst4_params.f90' complex cd(0:NN*nss-1) complex cs(0:3,NN) complex csymb(nss) @@ -128,4 +128,4 @@ subroutine get_fst240_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,badsync) call normalizebmet(bitmetrics(:,4),2*NN) return -end subroutine get_fst240_bitmetrics +end subroutine get_fst4_bitmetrics diff --git a/lib/fst240/get_fst240_bitmetrics2.f90 b/lib/fst4/get_fst4_bitmetrics2.f90 similarity index 96% rename from lib/fst240/get_fst240_bitmetrics2.f90 rename to lib/fst4/get_fst4_bitmetrics2.f90 index 7b86841ba..da0a6a230 100644 --- a/lib/fst240/get_fst240_bitmetrics2.f90 +++ b/lib/fst4/get_fst4_bitmetrics2.f90 @@ -1,6 +1,6 @@ -subroutine get_fst240_bitmetrics2(cd,nss,hmod,nsizes,bitmetrics,s4hmod,badsync) +subroutine get_fst4_bitmetrics2(cd,nss,hmod,nsizes,bitmetrics,s4hmod,badsync) - include 'fst240_params.f90' + include 'fst4_params.f90' complex cd(0:NN*nss-1) complex csymb(nss) complex, allocatable, save :: c1(:,:) ! ideal waveforms, 4 tones @@ -128,4 +128,4 @@ subroutine get_fst240_bitmetrics2(cd,nss,hmod,nsizes,bitmetrics,s4hmod,badsync) if(hmod.eq.8) s4hmod(:,:)=s4(:,:,4) return -end subroutine get_fst240_bitmetrics2 +end subroutine get_fst4_bitmetrics2 diff --git a/lib/fst240/ldpc_240_101_generator.f90 b/lib/fst4/ldpc_240_101_generator.f90 similarity index 100% rename from lib/fst240/ldpc_240_101_generator.f90 rename to lib/fst4/ldpc_240_101_generator.f90 diff --git a/lib/fst240/ldpc_240_101_parity.f90 b/lib/fst4/ldpc_240_101_parity.f90 similarity index 100% rename from lib/fst240/ldpc_240_101_parity.f90 rename to lib/fst4/ldpc_240_101_parity.f90 diff --git a/lib/fst240/ldpc_240_74_generator.f90 b/lib/fst4/ldpc_240_74_generator.f90 similarity index 100% rename from lib/fst240/ldpc_240_74_generator.f90 rename to lib/fst4/ldpc_240_74_generator.f90 diff --git a/lib/fst240/ldpc_240_74_parity.f90 b/lib/fst4/ldpc_240_74_parity.f90 similarity index 100% rename from lib/fst240/ldpc_240_74_parity.f90 rename to lib/fst4/ldpc_240_74_parity.f90 diff --git a/lib/fst240/ldpcsim240_101.f90 b/lib/fst4/ldpcsim240_101.f90 similarity index 100% rename from lib/fst240/ldpcsim240_101.f90 rename to lib/fst4/ldpcsim240_101.f90 diff --git a/lib/fst240/ldpcsim240_74.f90 b/lib/fst4/ldpcsim240_74.f90 similarity index 100% rename from lib/fst240/ldpcsim240_74.f90 rename to lib/fst4/ldpcsim240_74.f90 diff --git a/lib/fst240/osd240_101.f90 b/lib/fst4/osd240_101.f90 similarity index 100% rename from lib/fst240/osd240_101.f90 rename to lib/fst4/osd240_101.f90 diff --git a/lib/fst240/osd240_74.f90 b/lib/fst4/osd240_74.f90 similarity index 100% rename from lib/fst240/osd240_74.f90 rename to lib/fst4/osd240_74.f90 diff --git a/lib/fst240_decode.f90 b/lib/fst4_decode.f90 similarity index 94% rename from lib/fst240_decode.f90 rename to lib/fst4_decode.f90 index 9b52f285e..37ab333a1 100644 --- a/lib/fst240_decode.f90 +++ b/lib/fst4_decode.f90 @@ -1,17 +1,17 @@ -module fst240_decode +module fst4_decode - type :: fst240_decoder - procedure(fst240_decode_callback), pointer :: callback + type :: fst4_decoder + procedure(fst4_decode_callback), pointer :: callback contains procedure :: decode - end type fst240_decoder + end type fst4_decoder abstract interface - subroutine fst240_decode_callback (this,nutc,sync,nsnr,dt,freq, & + subroutine fst4_decode_callback (this,nutc,sync,nsnr,dt,freq, & decoded,nap,qual,ntrperiod,lwspr,fmid,w50) - import fst240_decoder + import fst4_decoder implicit none - class(fst240_decoder), intent(inout) :: this + class(fst4_decoder), intent(inout) :: this integer, intent(in) :: nutc real, intent(in) :: sync integer, intent(in) :: nsnr @@ -24,7 +24,7 @@ module fst240_decode logical, intent(in) :: lwspr real, intent(in) :: fmid real, intent(in) :: w50 - end subroutine fst240_decode_callback + end subroutine fst4_decode_callback end interface contains @@ -36,10 +36,10 @@ contains use timer_module, only: timer use packjt77 use, intrinsic :: iso_c_binding - include 'fst240/fst240_params.f90' + include 'fst4/fst4_params.f90' parameter (MAXCAND=100) - class(fst240_decoder), intent(inout) :: this - procedure(fst240_decode_callback) :: callback + class(fst4_decoder), intent(inout) :: this + procedure(fst4_decode_callback) :: callback character*37 decodes(100) character*37 msg,msgsent character*77 c77 @@ -283,7 +283,7 @@ contains endif ! Get first approximation of candidate frequencies - call get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & + call get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & minsync,ncand,candidates,base) ndecodes=0 @@ -300,7 +300,7 @@ contains ! Output array c2 is complex baseband sampled at 12000/ndown Sa/sec. ! The size of the downsampled c2 array is nfft2=nfft1/ndown - call fst240_downsample(c_bigfft,nfft1,ndown,fc0,sigbw,c2) + call fst4_downsample(c_bigfft,nfft1,ndown,fc0,sigbw,c2) call timer('sync240 ',0) fc1=0.0 @@ -316,7 +316,7 @@ contains do if=-12,12 fc=fc1 + 0.1*baud*if do istart=max(1,is0-ishw),is0+ishw,4*hmod - call sync_fst240(c2,istart,fc,hmod,nsyncoh,nfft2,nss, & + call sync_fst4(c2,istart,fc,hmod,nsyncoh,nfft2,nss, & ntrperiod,fs2,sync) if(sync.gt.smax) then fc2=fc @@ -335,7 +335,7 @@ contains do if=-7,7 fc=fc1 + 0.02*baud*if do istart=max(1,is0-ishw),is0+ishw,isst - call sync_fst240(c2,istart,fc,hmod,nsyncoh,nfft2,nss, & + call sync_fst4(c2,istart,fc,hmod,nsyncoh,nfft2,nss, & ntrperiod,fs2,sync) if(sync.gt.smax) then fc2=fc @@ -386,7 +386,7 @@ contains isbest=nint(candidates(icand,4)) xdt=(isbest-nspsec)/fs2 if(ntrperiod.eq.15) xdt=(isbest-real(nspsec)/2.0)/fs2 - call fst240_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) + call fst4_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) do ijitter=0,jittermax if(ijitter.eq.0) ioffset=0 if(ijitter.eq.1) ioffset=1 @@ -396,9 +396,9 @@ contains cframe=c2(is0:is0+160*nss-1) bitmetrics=0 if(hmod.eq.1) then - call get_fst240_bitmetrics(cframe,nss,hmod,nblock,nhicoh,bitmetrics,s4,badsync) + call get_fst4_bitmetrics(cframe,nss,hmod,nblock,nhicoh,bitmetrics,s4,badsync) else - call get_fst240_bitmetrics2(cframe,nss,hmod,nblock,bitmetrics,s4,badsync) + call get_fst4_bitmetrics2(cframe,nss,hmod,nblock,bitmetrics,s4,badsync) endif if(badsync) cycle @@ -538,9 +538,9 @@ contains decodes(ndecodes)=msg if(iwspr.eq.0) then - call get_fst240_tones_from_bits(message101,itone,0) + call get_fst4_tones_from_bits(message101,itone,0) else - call get_fst240_tones_from_bits(message74,itone,1) + call get_fst4_tones_from_bits(message74,itone,1) endif inquire(file='plotspec',exist=ex) fmid=-999.0 @@ -581,12 +581,12 @@ contains return end subroutine decode - subroutine sync_fst240(cd0,i0,f0,hmod,ncoh,np,nss,ntr,fs,sync) + subroutine sync_fst4(cd0,i0,f0,hmod,ncoh,np,nss,ntr,fs,sync) ! Compute sync power for a complex, downsampled FST240 signal. use timer_module, only: timer - include 'fst240/fst240_params.f90' + include 'fst4/fst4_params.f90' complex cd0(0:np-1) complex csync1,csync2,csynct1,csynct2 complex ctwk(3200) @@ -700,9 +700,9 @@ contains endif sync = s1+s2+s3+s4+s5 return - end subroutine sync_fst240 + end subroutine sync_fst4 - subroutine fst240_downsample(c_bigfft,nfft1,ndown,f0,sigbw,c1) + subroutine fst4_downsample(c_bigfft,nfft1,ndown,f0,sigbw,c1) ! Output: Complex data in c(), sampled at 12000/ndown Hz @@ -724,9 +724,9 @@ contains call four2a(c1,nfft2,1,1,1) !c2c FFT back to time domain return - end subroutine fst240_downsample + end subroutine fst4_downsample - subroutine get_candidates_fst240(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & + subroutine get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & minsync,ncand,candidates,base) complex c_bigfft(0:nfft1/2) !Full length FFT of raw data @@ -806,13 +806,13 @@ contains enddo return - end subroutine get_candidates_fst240 + end subroutine get_candidates_fst4 subroutine write_ref(itone,iwave,nsps,nmax,ndown,hmod,i0,fc,fmid,w50) ! On "plotspec" special request, compute Doppler spread for a decoded signal - include 'fst240/fst240_params.f90' + include 'fst4/fst4_params.f90' complex, allocatable :: cwave(:) !Reconstructed complex signal complex, allocatable :: g(:) !Channel gain, g(t) in QEX paper real,allocatable :: ss(:) !Computed power spectrum of g(t) @@ -829,7 +829,7 @@ contains allocate(g(0:nfft-1)) wave=0 fsample=12000.0 - call gen_fst240wave(itone,NN,nsps,nwave,fsample,hmod,fc,1,cwave,wave) + call gen_fst4wave(itone,NN,nsps,nwave,fsample,hmod,fc,1,cwave,wave) cwave=cshift(cwave,-i0*ndown) fac=1.0/32768 g(0:nmax-1)=fac*float(iwave)*conjg(cwave(:nmax-1)) @@ -905,4 +905,4 @@ contains return end subroutine write_ref -end module fst240_decode +end module fst4_decode From 580dd85a18040797b97bcb1d8b27d0cec72202cc Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 23 Jul 2020 18:51:05 +0100 Subject: [PATCH 314/520] Remainder of renames to FST4 --- Modulator/Modulator.cpp | 4 +- displayWidgets.txt | 4 +- models/FrequencyList.cpp | 54 ++++++------ models/Modes.cpp | 4 +- models/Modes.hpp | 4 +- widgets/displaytext.cpp | 2 +- widgets/mainwindow.cpp | 186 +++++++++++++++++++-------------------- widgets/mainwindow.h | 8 +- widgets/mainwindow.ui | 18 ++-- widgets/plotter.cpp | 12 +-- widgets/widegraph.cpp | 4 +- 11 files changed, 150 insertions(+), 150 deletions(-) diff --git a/Modulator/Modulator.cpp b/Modulator/Modulator.cpp index 8308a44cb..dbb084ffb 100644 --- a/Modulator/Modulator.cpp +++ b/Modulator/Modulator.cpp @@ -69,8 +69,8 @@ void Modulator::start (QString mode, unsigned symbolsLength, double framesPerSym m_bFastMode=fastMode; m_TRperiod=TRperiod; unsigned delay_ms=1000; - if(mode=="FT8" or (mode=="FST240" and m_nsps==720)) delay_ms=500; //FT8, FST240-15 - if(mode=="FT4") delay_ms=300; //FT4 + if(mode=="FT8" or (mode=="FST4" and m_nsps==720)) delay_ms=500; //FT8, FST4-15 + if(mode=="FT4") delay_ms=300; //FT4 // noise generator parameters if (m_addNoise) { diff --git a/displayWidgets.txt b/displayWidgets.txt index 34750cf98..2f6c382e2 100644 --- a/displayWidgets.txt +++ b/displayWidgets.txt @@ -14,7 +14,7 @@ QRA64 1111100101101101100000000010000000 ISCAT 1001110000000001100000000000000000 MSK144 1011111101000000000100010000000000 WSPR 0000000000000000010100000000000000 -FST240W 0000000000000000010100000000000001 +FST4W 0000000000000000010100000000000001 Echo 0000000000000000000000100000000000 FCal 0011010000000000000000000000010000 FT8 1110100001001110000100001001100010 @@ -61,4 +61,4 @@ Mapping of column numbers to widgets 30. labDXped 31. cbRxAll 32. cbCQonly -33. sbTR_FST240W +33. sbTR_FST4W diff --git a/models/FrequencyList.cpp b/models/FrequencyList.cpp index 74bc0ef64..9b63daaa9 100644 --- a/models/FrequencyList.cpp +++ b/models/FrequencyList.cpp @@ -46,22 +46,22 @@ namespace {20000000, Modes::FreqCal, IARURegions::ALL}, {136000, Modes::WSPR, IARURegions::ALL}, - {136200, Modes::FST240W, IARURegions::ALL}, + {136200, Modes::FST4W, IARURegions::ALL}, {136130, Modes::JT65, IARURegions::ALL}, {136130, Modes::JT9, IARURegions::ALL}, - {136130, Modes::FST240, IARURegions::ALL}, + {136130, Modes::FST4, IARURegions::ALL}, {474200, Modes::JT65, IARURegions::ALL}, {474200, Modes::JT9, IARURegions::ALL}, - {474200, Modes::FST240, IARURegions::ALL}, + {474200, Modes::FST4, IARURegions::ALL}, {474200, Modes::WSPR, IARURegions::ALL}, - {474400, Modes::FST240W, IARURegions::ALL}, + {474400, Modes::FST4W, IARURegions::ALL}, {1836600, Modes::WSPR, IARURegions::ALL}, - {1836800, Modes::FST240W, IARURegions::ALL}, + {1836800, Modes::FST4W, IARURegions::ALL}, {1838000, Modes::JT65, IARURegions::ALL}, // squeezed allocations {1839000, Modes::JT9, IARURegions::ALL}, - {1839000, Modes::FST240, IARURegions::ALL}, + {1839000, Modes::FST4, IARURegions::ALL}, {1840000, Modes::FT8, IARURegions::ALL}, // Band plans (all USB dial unless stated otherwise) @@ -93,10 +93,10 @@ namespace // {3570000, Modes::JT65, IARURegions::ALL}, // JA compatible {3572000, Modes::JT9, IARURegions::ALL}, - {3572000, Modes::FST240, IARURegions::ALL}, + {3572000, Modes::FST4, IARURegions::ALL}, {3573000, Modes::FT8, IARURegions::ALL}, // above as below JT65 is out of DM allocation {3568600, Modes::WSPR, IARURegions::ALL}, // needs guard marker and lock out - {3568800, Modes::FST240W, IARURegions::ALL}, + {3568800, Modes::FST4W, IARURegions::ALL}, {3575000, Modes::FT4, IARURegions::ALL}, // provisional {3568000, Modes::FT4, IARURegions::R3}, // provisional @@ -132,11 +132,11 @@ namespace // 7110 LSB EMCOMM // {7038600, Modes::WSPR, IARURegions::ALL}, - {7038800, Modes::FST240W, IARURegions::ALL}, + {7038800, Modes::FST4W, IARURegions::ALL}, {7074000, Modes::FT8, IARURegions::ALL}, {7076000, Modes::JT65, IARURegions::ALL}, {7078000, Modes::JT9, IARURegions::ALL}, - {7078000, Modes::FST240, IARURegions::ALL}, + {7078000, Modes::FST4, IARURegions::ALL}, {7047500, Modes::FT4, IARURegions::ALL}, // provisional - moved // up 500Hz to clear // W1AW code practice QRG @@ -170,9 +170,9 @@ namespace {10136000, Modes::FT8, IARURegions::ALL}, {10138000, Modes::JT65, IARURegions::ALL}, {10138700, Modes::WSPR, IARURegions::ALL}, - {10138900, Modes::FST240W, IARURegions::ALL}, + {10138900, Modes::FST4W, IARURegions::ALL}, {10140000, Modes::JT9, IARURegions::ALL}, - {10140000, Modes::FST240, IARURegions::ALL}, + {10140000, Modes::FST4, IARURegions::ALL}, {10140000, Modes::FT4, IARURegions::ALL}, // provisional // Band plans (all USB dial unless stated otherwise) @@ -213,11 +213,11 @@ namespace // 14106.5 OLIVIA 1000 (main QRG) // {14095600, Modes::WSPR, IARURegions::ALL}, - {14095800, Modes::FST240W, IARURegions::ALL}, + {14095800, Modes::FST4W, IARURegions::ALL}, {14074000, Modes::FT8, IARURegions::ALL}, {14076000, Modes::JT65, IARURegions::ALL}, {14078000, Modes::JT9, IARURegions::ALL}, - {14078000, Modes::FST240, IARURegions::ALL}, + {14078000, Modes::FST4, IARURegions::ALL}, {14080000, Modes::FT4, IARURegions::ALL}, // provisional // Band plans (all USB dial unless stated otherwise) @@ -250,33 +250,33 @@ namespace {18100000, Modes::FT8, IARURegions::ALL}, {18102000, Modes::JT65, IARURegions::ALL}, {18104000, Modes::JT9, IARURegions::ALL}, - {18104000, Modes::FST240, IARURegions::ALL}, + {18104000, Modes::FST4, IARURegions::ALL}, {18104000, Modes::FT4, IARURegions::ALL}, // provisional {18104600, Modes::WSPR, IARURegions::ALL}, - {18104800, Modes::FST240W, IARURegions::ALL}, + {18104800, Modes::FST4W, IARURegions::ALL}, {21074000, Modes::FT8, IARURegions::ALL}, {21076000, Modes::JT65, IARURegions::ALL}, {21078000, Modes::JT9, IARURegions::ALL}, - {21078000, Modes::FST240, IARURegions::ALL}, + {21078000, Modes::FST4, IARURegions::ALL}, {21094600, Modes::WSPR, IARURegions::ALL}, - {21094800, Modes::FST240W, IARURegions::ALL}, + {21094800, Modes::FST4W, IARURegions::ALL}, {21140000, Modes::FT4, IARURegions::ALL}, {24915000, Modes::FT8, IARURegions::ALL}, {24917000, Modes::JT65, IARURegions::ALL}, {24919000, Modes::JT9, IARURegions::ALL}, - {24919000, Modes::FST240, IARURegions::ALL}, + {24919000, Modes::FST4, IARURegions::ALL}, {24919000, Modes::FT4, IARURegions::ALL}, // provisional {24924600, Modes::WSPR, IARURegions::ALL}, - {24924800, Modes::FST240W, IARURegions::ALL}, + {24924800, Modes::FST4W, IARURegions::ALL}, {28074000, Modes::FT8, IARURegions::ALL}, {28076000, Modes::JT65, IARURegions::ALL}, {28078000, Modes::JT9, IARURegions::ALL}, - {28078000, Modes::FST240, IARURegions::ALL}, + {28078000, Modes::FST4, IARURegions::ALL}, {28124600, Modes::WSPR, IARURegions::ALL}, - {28124800, Modes::FST240W, IARURegions::ALL}, + {28124800, Modes::FST4W, IARURegions::ALL}, {28180000, Modes::FT4, IARURegions::ALL}, {50200000, Modes::Echo, IARURegions::ALL}, @@ -287,11 +287,11 @@ namespace {50260000, Modes::MSK144, IARURegions::R3}, {50293000, Modes::WSPR, IARURegions::R2}, {50293000, Modes::WSPR, IARURegions::R3}, - {50293200, Modes::FST240W, IARURegions::R2}, - {50293200, Modes::FST240W, IARURegions::R3}, + {50293200, Modes::FST4W, IARURegions::R2}, + {50293200, Modes::FST4W, IARURegions::R3}, {50310000, Modes::JT65, IARURegions::ALL}, {50312000, Modes::JT9, IARURegions::ALL}, - {50312000, Modes::FST240, IARURegions::ALL}, + {50312000, Modes::FST4, IARURegions::ALL}, {50313000, Modes::FT8, IARURegions::ALL}, {50318000, Modes::FT4, IARURegions::ALL}, // provisional {50323000, Modes::FT8, IARURegions::ALL}, @@ -300,7 +300,7 @@ namespace {70102000, Modes::JT65, IARURegions::R1}, {70104000, Modes::JT9, IARURegions::R1}, {70091000, Modes::WSPR, IARURegions::R1}, - {70091200, Modes::FST240W, IARURegions::R2}, + {70091200, Modes::FST4W, IARURegions::R2}, {70230000, Modes::MSK144, IARURegions::R1}, {144120000, Modes::JT65, IARURegions::ALL}, @@ -310,7 +310,7 @@ namespace {144360000, Modes::MSK144, IARURegions::R1}, {144150000, Modes::MSK144, IARURegions::R2}, {144489000, Modes::WSPR, IARURegions::ALL}, - {144489200, Modes::FST240W, IARURegions::R2}, + {144489200, Modes::FST4W, IARURegions::R2}, {144120000, Modes::QRA64, IARURegions::ALL}, {222065000, Modes::Echo, IARURegions::R2}, diff --git a/models/Modes.cpp b/models/Modes.cpp index d337fafd5..2de1f7c90 100644 --- a/models/Modes.cpp +++ b/models/Modes.cpp @@ -25,8 +25,8 @@ namespace "FreqCal", "FT8", "FT4", - "FST240", - "FST240W" + "FST4", + "FST4W" }; std::size_t constexpr mode_names_size = sizeof (mode_names) / sizeof (mode_names[0]); } diff --git a/models/Modes.hpp b/models/Modes.hpp index deb22865f..ac57ba4ad 100644 --- a/models/Modes.hpp +++ b/models/Modes.hpp @@ -50,8 +50,8 @@ public: FreqCal, FT8, FT4, - FST240, - FST240W, + FST4, + FST4W, MODES_END_SENTINAL_AND_COUNT // this must be last }; Q_ENUM (Mode) diff --git a/widgets/displaytext.cpp b/widgets/displaytext.cpp index 2f19774de..d498f180e 100644 --- a/widgets/displaytext.cpp +++ b/widgets/displaytext.cpp @@ -486,7 +486,7 @@ void DisplayText::displayTransmittedText(QString text, QString modeTx, qint32 tx if(modeTx=="JT4") t1=" $ "; if(modeTx=="JT65") t1=" # "; if(modeTx=="MSK144") t1=" & "; - if(modeTx=="FST240") t1=" ` "; + if(modeTx=="FST4") t1=" ` "; QString t2; t2 = t2.asprintf("%4d",txFreq); QString t; diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 43b6dbabd..64a80259e 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -105,7 +105,7 @@ extern "C" { void genft4_(char* msg, int* ichk, char* msgsent, char ft4msgbits[], int itone[], fortran_charlen_t, fortran_charlen_t); - void genfst240_(char* msg, int* ichk, char* msgsent, char fst240msgbits[], + void genfst4_(char* msg, int* ichk, char* msgsent, char fst4msgbits[], int itone[], int* iwspr, fortran_charlen_t, fortran_charlen_t); void gen_ft8wave_(int itone[], int* nsym, int* nsps, float* bt, float* fsample, float* f0, @@ -114,7 +114,7 @@ extern "C" { void gen_ft4wave_(int itone[], int* nsym, int* nsps, float* fsample, float* f0, float xjunk[], float wave[], int* icmplx, int* nwave); - void gen_fst240wave_(int itone[], int* nsym, int* nsps, int* nwave, float* fsample, + void gen_fst4wave_(int itone[], int* nsym, int* nsps, int* nwave, float* fsample, int* hmod, float* f0, int* icmplx, float xjunk[], float wave[]); void gen4_(char* msg, int* ichk, char* msgsent, int itone[], @@ -428,7 +428,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->dxGridEntry->setValidator (new MaidenheadLocatorValidator {this}); ui->dxCallEntry->setValidator (new CallsignValidator {this}); ui->sbTR->values ({5, 10, 15, 30, 60, 120, 300, 900, 1800}); - ui->sbTR_FST240W->values ({15, 30, 60, 120, 300, 900, 1800}); + ui->sbTR_FST4W->values ({15, 30, 60, 120, 300, 900, 1800}); ui->decodedTextBrowser->set_configuration (&m_config, true); ui->decodedTextBrowser2->set_configuration (&m_config); @@ -579,8 +579,8 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, on_EraseButton_clicked (); QActionGroup* modeGroup = new QActionGroup(this); - ui->actionFST240->setActionGroup(modeGroup); - ui->actionFST240W->setActionGroup(modeGroup); + ui->actionFST4->setActionGroup(modeGroup); + ui->actionFST4W->setActionGroup(modeGroup); ui->actionFT4->setActionGroup(modeGroup); ui->actionFT8->setActionGroup(modeGroup); ui->actionJT9->setActionGroup(modeGroup); @@ -1045,7 +1045,7 @@ void MainWindow::on_the_minute () } } - if (m_config.watchdog () && m_mode!="WSPR" && m_mode!="FST240W") { + if (m_config.watchdog () && m_mode!="WSPR" && m_mode!="FST4W") { if (m_idleMinutes < m_config.watchdog ()) ++m_idleMinutes; update_watchdog_label (); } else { @@ -1122,7 +1122,7 @@ void MainWindow::writeSettings() m_settings->setValue("NoOwnCall",ui->cbNoOwnCall->isChecked()); m_settings->setValue ("BandHopping", ui->band_hopping_group_box->isChecked ()); m_settings->setValue ("TRPeriod", ui->sbTR->value ()); - m_settings->setValue ("TRPeriod_FST240W", ui->sbTR_FST240W->value ()); + m_settings->setValue ("TRPeriod_FST4W", ui->sbTR_FST4W->value ()); m_settings->setValue("FastMode",m_bFastMode); m_settings->setValue("Fast9",m_bFast9); m_settings->setValue ("CQTxfreq", ui->sbCQTxFreq->value ()); @@ -1197,7 +1197,7 @@ void MainWindow::readSettings() m_bFast9=m_settings->value("Fast9",false).toBool(); m_bFastMode=m_settings->value("FastMode",false).toBool(); ui->sbTR->setValue (m_settings->value ("TRPeriod", 15).toInt()); - ui->sbTR_FST240W->setValue (m_settings->value ("TRPeriod_FST240W", 15).toInt()); + ui->sbTR_FST4W->setValue (m_settings->value ("TRPeriod_FST4W", 15).toInt()); m_lastMonitoredFrequency = m_settings->value ("DialFreq", QVariant::fromValue (default_frequency)).value (); ui->WSPRfreqSpinBox->setValue(0); // ensure a change is signaled @@ -1341,7 +1341,7 @@ void MainWindow::fixStop() m_hsymStop=50; } else if (m_mode=="FT4") { m_hsymStop=21; - } else if(m_mode=="FST240" or m_mode=="FST240W") { + } else if(m_mode=="FST4" or m_mode=="FST4W") { int stop[] = {39,85,187,387,1003,3107,6232}; int stop_EME[] = {48,95,197,396,1012,3107,6232}; int i=0; @@ -1396,10 +1396,10 @@ void MainWindow::dataSink(qint64 frames) int nsmo=m_wideGraph->smoothYellow()-1; bool bLowSidelobes=m_config.lowSidelobes(); int npct=0; - if(m_mode.startsWith("FST240")) npct=ui->sbNB->value(); + if(m_mode.startsWith("FST4")) npct=ui->sbNB->value(); symspec_(&dec_data,&k,&m_TRperiod,&nsps,&m_inGain,&bLowSidelobes,&nsmo,&m_px,s, &m_df3,&m_ihsym,&m_npts8,&m_pxmax,&npct); - if(m_mode=="WSPR" or m_mode=="FST240W") wspr_downsample_(dec_data.d2,&k); + if(m_mode=="WSPR" or m_mode=="FST4W") wspr_downsample_(dec_data.d2,&k); if(m_ihsym <=0) return; if(ui) ui->signal_meter_widget->setValue(m_px,m_pxmax); // Update thermometer if(m_monitoring || m_diskData) { @@ -1506,7 +1506,7 @@ void MainWindow::dataSink(qint64 frames) if(m_mode!="WSPR") decode(); //Start decoder if(m_mode=="FT8" and !m_diskData and (m_ihsym==m_earlyDecode or m_ihsym==m_earlyDecode2)) return; - if(!m_diskData and (m_saveAll or m_saveDecoded or m_mode=="WSPR" or m_mode=="FST240W")) { + if(!m_diskData and (m_saveAll or m_saveDecoded or m_mode=="WSPR" or m_mode=="FST4W")) { //Always save unless "Save None"; may delete later if(m_TRperiod < 60) { int n=fmod(double(now.time().second()),m_TRperiod); @@ -1525,7 +1525,7 @@ void MainWindow::dataSink(qint64 frames) m_saveWAVWatcher.setFuture (QtConcurrent::run (std::bind (&MainWindow::save_wave_file, this, m_fnameWE, &dec_data.d2[0], samples, m_config.my_callsign(), m_config.my_grid(), m_mode, m_nSubMode, m_freqNominal, m_hisCall, m_hisGrid))); - if (m_mode=="WSPR" or m_mode=="FST240W") { + if (m_mode=="WSPR" or m_mode=="FST4W") { QString c2name_string {m_fnameWE + ".c2"}; int len1=c2name_string.length(); char c2name[80]; @@ -1587,7 +1587,7 @@ QString MainWindow::save_wave_file (QString const& name, short const * data, int auto source = QString {"%1, %2"}.arg (my_callsign).arg (my_grid); auto comment = QString {"Mode=%1%2, Freq=%3%4"} .arg (mode) - .arg (QString {(mode.contains ('J') && !mode.contains ('+')) || mode.startsWith ("FST240") + .arg (QString {(mode.contains ('J') && !mode.contains ('+')) || mode.startsWith ("FST4") ? QString {", Sub Mode="} + QChar {'A' + sub_mode} : QString {}}) .arg (Radio::frequency_MHz_string (frequency)) @@ -1794,7 +1794,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog m_config.transceiver_online (); if(!m_bFastMode) setXIT (ui->TxFreqSpinBox->value ()); - if ((m_config.single_decode () && !m_mode.startsWith ("FST240")) || m_mode=="JT4") { + if ((m_config.single_decode () && !m_mode.startsWith ("FST4")) || m_mode=="JT4") { ui->label_6->setText(tr ("Single-Period Decodes")); ui->label_7->setText(tr ("Average Decodes")); } @@ -1879,7 +1879,7 @@ void MainWindow::on_autoButton_clicked (bool checked) m_nclearave=1; echocom_.nsum=0; } - if(m_mode=="WSPR" or m_mode=="FST240W") { + if(m_mode=="WSPR" or m_mode=="FST4W") { QPalette palette {ui->sbTxPercent->palette ()}; if(m_auto or m_pctx==0) { palette.setColor(QPalette::Base,Qt::white); @@ -2317,9 +2317,9 @@ void MainWindow::setup_status_bar (bool vhf) mode_label.setStyleSheet ("QLabel{background-color: #ff0099}"); } else if ("FT8" == m_mode) { mode_label.setStyleSheet ("QLabel{background-color: #ff6699}"); - } else if ("FST240" == m_mode) { + } else if ("FST4" == m_mode) { mode_label.setStyleSheet ("QLabel{background-color: #99ff66}"); - } else if ("FST240W" == m_mode) { + } else if ("FST4W" == m_mode) { mode_label.setStyleSheet ("QLabel{background-color: #6699ff}"); } else if ("FreqCal" == m_mode) { mode_label.setStyleSheet ("QLabel{background-color: #ff9933}"); @@ -2537,7 +2537,7 @@ void MainWindow::hideMenus(bool checked) minimumSize().setWidth(770); } ui->menuBar->setVisible(!checked); - if(m_mode!="FreqCal" and m_mode!="WSPR" and m_mode!="FSt240W") { + if(m_mode!="FreqCal" and m_mode!="WSPR" and m_mode!="Fst4W") { ui->label_6->setVisible(!checked); ui->label_7->setVisible(!checked); ui->decodedTextLabel2->setVisible(!checked); @@ -2902,7 +2902,7 @@ void MainWindow::decode() //decode() dec_data.params.nutc=100*ihr + imin; if(m_TRperiod < 60) { qint64 ms=1000.0*(2.0-m_TRperiod); - if(m_mode=="FST240") ms=1000.0*(6.0-m_TRperiod); + if(m_mode=="FST4") ms=1000.0*(6.0-m_TRperiod); //Adjust for FT8 early decode: if(m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) ms+=(m_hsymStop-m_earlyDecode)*288; if(m_mode=="FT8" and m_ihsym==m_earlyDecode2 and !m_diskData) ms+=(m_hsymStop-m_earlyDecode2)*288; @@ -2972,8 +2972,8 @@ void MainWindow::decode() //decode() dec_data.params.nmode=5; m_BestCQpriority=""; } - if(m_mode=="FST240") dec_data.params.nmode=240; - if(m_mode=="FST240W") dec_data.params.nmode=241; + if(m_mode=="FST4") dec_data.params.nmode=240; + if(m_mode=="FST4W") dec_data.params.nmode=241; dec_data.params.ntrperiod=m_TRperiod; dec_data.params.nsubmode=m_nSubMode; if(m_mode=="QRA64") dec_data.params.nsubmode=100 + m_nSubMode; @@ -2990,7 +2990,7 @@ void MainWindow::decode() //decode() dec_data.params.nexp_decode = static_cast (m_config.special_op_id()); if(m_config.single_decode()) dec_data.params.nexp_decode += 32; if(m_config.enable_VHF_features()) dec_data.params.nexp_decode += 64; - if(m_mode.startsWith("FST240")) dec_data.params.nexp_decode += 256*ui->sbNB->value(); + if(m_mode.startsWith("FST4")) dec_data.params.nexp_decode += 256*ui->sbNB->value(); ::memcpy(dec_data.params.datetime, m_dateTime.toLatin1()+" ", sizeof dec_data.params.datetime); ::memcpy(dec_data.params.mycall, (m_config.my_callsign()+" ").toLatin1(), sizeof dec_data.params.mycall); @@ -3149,7 +3149,7 @@ void MainWindow::readFromStdout() //readFromStdout } bool haveFSpread {false}; float fSpread {0.}; - if (m_mode.startsWith ("FST240")) + if (m_mode.startsWith ("FST4")) { auto text = line_read.mid (64, 6).trimmed (); if (text.size ()) @@ -3268,7 +3268,7 @@ void MainWindow::readFromStdout() //readFromStdout //Right (Rx Frequency) window bool bDisplayRight=bAvgMsg; int audioFreq=decodedtext.frequencyOffset(); - if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST240") { + if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST4") { auto const& parts = decodedtext.string().remove("<").remove(">") .split (' ', SkipEmptyParts); if (parts.size() > 6) { @@ -3352,7 +3352,7 @@ void MainWindow::readFromStdout() //readFromStdout //### I think this is where we are preventing Hounds from spotting Fox ### if(m_mode!="FT8" or (SpecOp::HOUND != m_config.special_op_id())) { if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="QRA64" or m_mode=="JT4" - or m_mode=="JT65" or m_mode=="JT9" or m_mode=="FST240") { + or m_mode=="JT65" or m_mode=="JT9" or m_mode=="FST4") { auto_sequence (decodedtext, 25, 50); } @@ -3370,12 +3370,12 @@ void MainWindow::readFromStdout() //readFromStdout // extract details and send to PSKreporter int nsec=QDateTime::currentMSecsSinceEpoch()/1000-m_secBandChanged; bool okToPost=(nsec > int(4*m_TRperiod)/5); - if(m_mode=="FST240W" and okToPost) { + if(m_mode=="FST4W" and okToPost) { line_read=line_read.left(22) + " CQ " + line_read.trimmed().mid(22); int n=line_read.trimmed().size(); line_read=line_read.trimmed().left(n-3); - DecodedText FST240W_post {QString::fromUtf8(line_read.constData())}; - pskPost(FST240W_post); + DecodedText FST4W_post {QString::fromUtf8(line_read.constData())}; + pskPost(FST4W_post); } else { if (stdMsg && okToPost) pskPost(decodedtext); } @@ -3497,7 +3497,7 @@ void MainWindow::killFile () if (m_fnameWE.size () && !(m_saveAll || (m_saveDecoded && m_bDecoded))) { QFile f1 {m_fnameWE + ".wav"}; if(f1.exists()) f1.remove(); - if(m_mode=="WSPR" or m_mode=="FST240W") { + if(m_mode=="WSPR" or m_mode=="FST4W") { QFile f2 {m_fnameWE + ".c2"}; if(f2.exists()) f2.remove(); } @@ -3508,7 +3508,7 @@ void MainWindow::on_EraseButton_clicked () { qint64 ms=QDateTime::currentMSecsSinceEpoch(); ui->decodedTextBrowser2->erase (); - if(m_mode=="WSPR" or m_mode=="Echo" or m_mode=="ISCAT" or m_mode=="FST240W") { + if(m_mode=="WSPR" or m_mode=="Echo" or m_mode=="ISCAT" or m_mode=="FST4W") { ui->decodedTextBrowser->erase (); } else { if((ms-m_msErase)<500) { @@ -3562,7 +3562,7 @@ void MainWindow::guiUpdate() if(m_modeTx=="JT65") txDuration=1.0 + 126*4096/11025.0; // JT65 if(m_modeTx=="QRA64") txDuration=1.0 + 84*6912/12000.0; // QRA64 if(m_modeTx=="WSPR") txDuration=2.0 + 162*8192/12000.0; // WSPR - if(m_modeTx=="FST240" or m_mode=="FST240W") { //FST240, FST240W + if(m_modeTx=="FST4" or m_mode=="FST4W") { //FST4, FST4W if(m_TRperiod==15) txDuration=1.0 + 160*720/12000.0; if(m_TRperiod==30) txDuration=1.0 + 160*1680/12000.0; if(m_TRperiod==60) txDuration=1.0 + 160*3888/12000.0; @@ -3581,7 +3581,7 @@ void MainWindow::guiUpdate() if((icw[0]>0) and (!m_bFast9)) tx2 += icw[0]*2560.0/48000.0; //Full length including CW ID if(tx2>m_TRperiod) tx2=m_TRperiod; - if(!m_txFirst and m_mode!="WSPR" and m_mode!="FST240W") { + if(!m_txFirst and m_mode!="WSPR" and m_mode!="FST4W") { tx1 += m_TRperiod; tx2 += m_TRperiod; } @@ -3602,7 +3602,7 @@ void MainWindow::guiUpdate() if(m_transmitting) m_bEchoTxed=true; } - if(m_mode=="WSPR" or m_mode=="FST240W") { + if(m_mode=="WSPR" or m_mode=="FST4W") { if(m_nseq==0 and m_ntr==0) { //Decide whether to Tx or Rx m_tuneup=false; //This is not an ATU tuneup if(ui->sbTxPercent->isEnabled () && m_pctx==0) m_WSPR_tx_next = false; //Don't transmit if m_pctx=0 @@ -3615,16 +3615,16 @@ void MainWindow::guiUpdate() m_ntr=-1; //This says we will have transmitted m_txNext=false; ui->pbTxNext->setChecked(false); - m_bTxTime=true; //Start a WSPR or FST240W Tx sequence + m_bTxTime=true; //Start a WSPR or FST4W Tx sequence } else { -// This will be a WSPR or FST240W Rx sequence. +// This will be a WSPR or FST4W Rx sequence. m_ntr=1; //This says we will have received - m_bTxTime=false; //Start a WSPR or FST240W Rx sequence + m_bTxTime=false; //Start a WSPR or FST4W Rx sequence } } } else { -// For all modes other than WSPR and FSt240W +// For all modes other than WSPR and Fst4W m_bTxTime = (t2p >= tx1) and (t2p < tx2); if(m_mode=="Echo") m_bTxTime = m_bTxTime and m_bEchoTxOK; if(m_mode=="FT8" and ui->tx5->currentText().contains("/B ")) { @@ -3677,7 +3677,7 @@ void MainWindow::guiUpdate() } } - if (m_config.watchdog() && m_mode!="WSPR" && m_mode!="FST240W" + if (m_config.watchdog() && m_mode!="WSPR" && m_mode!="FST4W" && m_idleMinutes >= m_config.watchdog ()) { tx_watchdog (true); // disable transmit } @@ -3749,19 +3749,19 @@ void MainWindow::guiUpdate() if(!m_bTxTime and !m_tune) m_btxok=false; //Time to stop transmitting } - if((m_mode=="WSPR" or m_mode=="FST240W") and + if((m_mode=="WSPR" or m_mode=="FST4W") and ((m_ntr==1 and m_rxDone) or (m_ntr==-1 and m_nseq>tx2))) { if(m_monitoring) { m_rxDone=false; } if(m_transmitting) { WSPR_history(m_freqNominal,-1); - m_bTxTime=false; //Time to stop a WSPR or FST240W transmission + m_bTxTime=false; //Time to stop a WSPR or FST4W transmission m_btxok=false; } else if (m_ntr != -1) { WSPR_scheduling (); - m_ntr=0; //This WSPR or FST240W Rx sequence is complete + m_ntr=0; //This WSPR or FST4W Rx sequence is complete } } @@ -3823,7 +3823,7 @@ void MainWindow::guiUpdate() if(m_modeTx=="WSPR") genwspr_(message, msgsent, const_cast (itone), 22, 22); if(m_modeTx=="MSK144" or m_modeTx=="FT8" or m_modeTx=="FT4" - or m_modeTx=="FST240" or m_modeTx=="FST240W") { + or m_modeTx=="FST4" or m_modeTx=="FST4W") { char MyCall[6]; char MyGrid[6]; ::memcpy(MyCall, (m_config.my_callsign()+" ").toLatin1(), sizeof MyCall); @@ -3883,18 +3883,18 @@ void MainWindow::guiUpdate() gen_ft4wave_(const_cast(itone),&nsym,&nsps,&fsample,&f0,foxcom_.wave, foxcom_.wave,&icmplx,&nwave); } - if(m_modeTx=="FST240" or m_modeTx=="FST240W") { + if(m_modeTx=="FST4" or m_modeTx=="FST4W") { int ichk=0; int iwspr=0; - char fst240msgbits[101]; + char fst4msgbits[101]; QString wmsg; - if(m_mode=="FST240W") { + if(m_mode=="FST4W") { iwspr = 1; wmsg=WSPR_message(); ba=wmsg.toLatin1(); ba2msg(ba,message); } - genfst240_(message,&ichk,msgsent,const_cast (fst240msgbits), + genfst4_(message,&ichk,msgsent,const_cast (fst4msgbits), const_cast(itone), &iwspr, 37, 37); int hmod=int(pow(2.0,double(m_nSubMode))); int nsps=720; @@ -3911,7 +3911,7 @@ void MainWindow::guiUpdate() float f0=ui->TxFreqSpinBox->value() - m_XIT + 1.5*dfreq; int nwave=(nsym+2)*nsps; int icmplx=0; - gen_fst240wave_(const_cast(itone),&nsym,&nsps,&nwave, + gen_fst4wave_(const_cast(itone),&nsym,&nsps,&nwave, &fsample,&hmod,&f0,&icmplx,foxcom_.wave,foxcom_.wave); } @@ -4043,7 +4043,7 @@ void MainWindow::guiUpdate() } if (g_iptt == 1 && m_iptt0 == 0) { auto const& current_message = QString::fromLatin1 (msgsent); - if(m_config.watchdog () && m_mode!="WSPR" && m_mode!="FST240W" + if(m_config.watchdog () && m_mode!="WSPR" && m_mode!="FST4W" && current_message != m_msgSent0) { tx_watchdog (false); // in case we are auto sequencing m_msgSent0 = current_message; @@ -4232,7 +4232,7 @@ void MainWindow::startTx2() ui->signal_meter_widget->setValue(0,0); if(m_mode=="Echo" and !m_tune) m_bTransmittedEcho=true; - if((m_mode=="WSPR" or m_mode=="FST240W") and !m_tune) { + if((m_mode=="WSPR" or m_mode=="FST4W") and !m_tune) { if (m_config.TX_messages ()) { t = " Transmitting " + m_mode + " ----------------------- " + m_config.bands ()->find (m_freqNominal); @@ -4268,7 +4268,7 @@ void MainWindow::stopTx2() on_stopTxButton_clicked (); m_nTx73 = 0; } - if(((m_mode=="WSPR" or m_mode=="FST240W") and m_ntr==-1) and !m_tuneup) { + if(((m_mode=="WSPR" or m_mode=="FST4W") and m_ntr==-1) and !m_tuneup) { m_wideGraph->setWSPRtransmitted(); WSPR_scheduling (); m_ntr=0; @@ -4540,7 +4540,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie || ("JT9" == m_mode && mode != "@") || ("MSK144" == m_mode && !("&" == mode || "^" == mode)) || ("QRA64" == m_mode && mode.left (1) != ":")) { - return; //Currently we do auto-sequencing only in FT4, FT8, MSK144, and FST240 + return; //Currently we do auto-sequencing only in FT4, FT8, MSK144, and FST4 } //Skip the rest if no decoded text extracted @@ -5159,7 +5159,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) int n=rpt.toInt(); rpt = rpt.asprintf("%+2.2d",n); - if(m_mode=="MSK144" or m_mode=="FT8" or m_mode=="FT4" || m_mode=="FST240") { + if(m_mode=="MSK144" or m_mode=="FT8" or m_mode=="FT4" || m_mode=="FST4") { QString t2,t3; QString sent=rpt; QString rs,rst; @@ -5239,7 +5239,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) } t=t0 + (m_send_RR73 ? "RR73" : "RRR"); - if((m_mode=="MSK144" and !m_bShMsgs) or m_mode=="FT8" or m_mode=="FT4" || m_mode == "FST240") { + if((m_mode=="MSK144" and !m_bShMsgs) or m_mode=="FT8" or m_mode=="FT4" || m_mode == "FST4") { if(!bHisCall and bMyCall) t=hisCall + " <" + my_callsign + "> " + (m_send_RR73 ? "RR73" : "RRR"); if(bHisCall and !bMyCall) t="<" + hisCall + "> " + my_callsign + " " + (m_send_RR73 ? "RR73" : "RRR"); } @@ -5247,7 +5247,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) msgtype(t, ui->tx4); t=t0 + "73"; - if((m_mode=="MSK144" and !m_bShMsgs) or m_mode=="FT8" or m_mode=="FT4" || m_mode == "FST240") { + if((m_mode=="MSK144" and !m_bShMsgs) or m_mode=="FT8" or m_mode=="FT4" || m_mode == "FST4") { if(!bHisCall and bMyCall) t=hisCall + " <" + my_callsign + "> 73"; if(bHisCall and !bMyCall) t="<" + hisCall + "> " + my_callsign + " 73"; } @@ -5263,7 +5263,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) } } - if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="MSK144" || m_mode == "FST240") return; + if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="MSK144" || m_mode == "FST4") return; if (is_compound) { if (is_type_one) { @@ -5823,7 +5823,7 @@ void MainWindow::displayWidgets(qint64 n) if(i==30) ui->labDXped->setVisible(b); if(i==31) ui->cbRxAll->setVisible(b); if(i==32) ui->cbCQonly->setVisible(b); - if(i==33) ui->sbTR_FST240W->setVisible(b); + if(i==33) ui->sbTR_FST4W->setVisible(b); j=j>>1; } ui->pbBestSP->setVisible(m_mode=="FT4"); @@ -5836,12 +5836,12 @@ void MainWindow::displayWidgets(qint64 n) if(m_mode=="MSK144") b=SpecOp::EU_VHF==m_config.special_op_id(); ui->sbSerialNumber->setVisible(b); m_lastCallsign.clear (); // ensures Tx5 is updated for new modes - b=m_mode.startsWith("FST240"); + b=m_mode.startsWith("FST4"); ui->sbNB->setVisible(b); genStdMsgs (m_rpt, true); } -void MainWindow::on_actionFST240_triggered() +void MainWindow::on_actionFST4_triggered() { int nsub=m_nSubMode; on_actionJT65_triggered(); @@ -5850,9 +5850,9 @@ void MainWindow::on_actionFST240_triggered() ui->sbSubmode->setMaximum(3); m_nSubMode=nsub; ui->sbSubmode->setValue(m_nSubMode); - m_mode="FST240"; - m_modeTx="FST240"; - ui->actionFST240->setChecked(true); + m_mode="FST4"; + m_modeTx="FST4"; + ui->actionFST4->setChecked(true); WSPR_config(false); bool bVHF=m_config.enable_VHF_features(); // 0123456789012345678901234567890123 @@ -5865,18 +5865,18 @@ void MainWindow::on_actionFST240_triggered() m_wideGraph->setModeTx(m_modeTx); m_wideGraph->setPeriod(m_TRperiod,6912); m_wideGraph->setTxFreq(ui->TxFreqSpinBox->value()); - switch_mode (Modes::FST240); + switch_mode (Modes::FST4); m_wideGraph->setMode(m_mode); statusChanged(); } -void MainWindow::on_actionFST240W_triggered() +void MainWindow::on_actionFST4W_triggered() { - on_actionFST240_triggered(); - m_mode="FST240W"; - m_modeTx="FST240W"; + on_actionFST4_triggered(); + m_mode="FST4W"; + m_modeTx="FST4W"; WSPR_config(true); - ui->actionFST240W->setChecked(true); + ui->actionFST4W->setChecked(true); // 0123456789012345678901234567890123 displayWidgets(nWidgets("0000000000000000010100000000000001")); bool bVHF=m_config.enable_VHF_features(); @@ -5885,7 +5885,7 @@ void MainWindow::on_actionFST240W_triggered() ui->sbSubmode->setValue(m_nSubMode); ui->band_hopping_group_box->setChecked(false); ui->band_hopping_group_box->setVisible(false); - on_sbTR_FST240W_valueChanged (ui->sbTR_FST240W->value ()); + on_sbTR_FST4W_valueChanged (ui->sbTR_FST4W->value ()); ui->sbSubmode->setMaximum(3); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); @@ -5893,7 +5893,7 @@ void MainWindow::on_actionFST240W_triggered() m_wideGraph->setTxFreq(ui->WSPRfreqSpinBox->value()); ui->sbFtol->setValue(100); ui->RxFreqSpinBox->setValue(1500); - switch_mode (Modes::FST240W); + switch_mode (Modes::FST4W); statusChanged(); } @@ -6125,7 +6125,7 @@ void MainWindow::on_actionJT9_triggered() ui->decodedTextLabel2->setText(" UTC dB T Freq " + tr ("Message")); } else { ui->cbAutoSeq->setChecked(false); - if (m_mode != "FST240") + if (m_mode != "FST4") { m_TRperiod=60.0; ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message")); @@ -6186,8 +6186,8 @@ void MainWindow::on_actionJT9_JT65_triggered() void MainWindow::on_actionJT65_triggered() { - if(m_mode=="JT4" or m_mode=="WSPR" or m_mode=="FST240W") { -// If coming from JT4, WSPR, or FST240W mode, pretend temporarily that we're coming + if(m_mode=="JT4" or m_mode=="WSPR" or m_mode=="FST4W") { +// If coming from JT4, WSPR, or FST4W mode, pretend temporarily that we're coming // from JT9 and click the pbTxMode button m_modeTx="JT9"; on_pbTxMode_clicked(); @@ -6317,8 +6317,8 @@ void MainWindow::on_actionMSK144_triggered() if("WSPR"==m_mode) ui->actionWSPR->setChecked(true); if("Echo"==m_mode) ui->actionEcho->setChecked(true); if("FreqCal"==m_mode) ui->actionFreqCal->setChecked(true); - if("FST240"==m_mode) ui->actionFST240->setChecked(true); - if("FST240W"==m_mode) ui->actionFST240W->setChecked(true); + if("FST4"==m_mode) ui->actionFST4->setChecked(true); + if("FST4W"==m_mode) ui->actionFST4W->setChecked(true); // Make sure that MSK144 is not checked. ui->actionMSK144->setChecked(false); MessageBox::warning_message (this, tr ("Improper mode"), @@ -6507,9 +6507,9 @@ void MainWindow::WSPR_config(bool b) ui->logQSOButton->setVisible(!b); ui->DecodeButton->setEnabled(!b); ui->band_hopping_group_box->setVisible(true); - ui->RoundRobin->setVisible(m_mode=="FST240W"); + ui->RoundRobin->setVisible(m_mode=="FST4W"); ui->RoundRobin->lineEdit()->setAlignment(Qt::AlignCenter); - if(b and m_mode!="Echo" and m_mode!="FST240W") { + if(b and m_mode!="Echo" and m_mode!="FST4W") { QString t="UTC dB DT Freq Drift Call Grid dBm "; if(m_config.miles()) t += " mi"; if(!m_config.miles()) t += " km"; @@ -6728,7 +6728,7 @@ void MainWindow::band_changed (Frequency f) void MainWindow::enable_DXCC_entity (bool on) { - if (on and m_mode!="WSPR" and m_mode!="FST240W" and m_mode!="Echo") { + if (on and m_mode!="WSPR" and m_mode!="FST4W" and m_mode!="Echo") { //m_logBook.init(); // re-read the log and cty.dat files // ui->gridLayout->setColumnStretch(0,55); // adjust proportions of text displays // ui->gridLayout->setColumnStretch(1,45); @@ -7012,7 +7012,7 @@ void MainWindow::setXIT(int n, Frequency base) void MainWindow::setFreq4(int rxFreq, int txFreq) { if (ui->RxFreqSpinBox->isEnabled ()) ui->RxFreqSpinBox->setValue(rxFreq); - if(m_mode=="WSPR" or m_mode=="FST240W") { + if(m_mode=="WSPR" or m_mode=="FST4W") { ui->WSPRfreqSpinBox->setValue(txFreq); } else { if (ui->TxFreqSpinBox->isEnabled ()) { @@ -7189,7 +7189,7 @@ void MainWindow::transmit (double snr) true, false, snr, m_TRperiod); } - if (m_modeTx == "FST240" or m_modeTx == "FST240W") { + if (m_modeTx == "FST4" or m_modeTx == "FST4W") { m_dateTimeSentTx3=QDateTime::currentDateTimeUtc(); toneSpacing=-2.0; //Transmit a pre-computed, filtered waveform. int nsps=720; @@ -7203,7 +7203,7 @@ void MainWindow::transmit (double snr) double dfreq=hmod*12000.0/nsps; double f0=ui->WSPRfreqSpinBox->value() - m_XIT; if(!m_tune) f0 += + 1.5*dfreq; - Q_EMIT sendMessage (m_mode, NUM_FST240_SYMBOLS,double(nsps),f0,toneSpacing, + Q_EMIT sendMessage (m_mode, NUM_FST4_SYMBOLS,double(nsps),f0,toneSpacing, m_soundOutput,m_config.audio_output_channel(), true, false, snr, m_TRperiod); } @@ -7395,7 +7395,7 @@ void MainWindow::transmitDisplay (bool transmitting) ui->pbT2R->setEnabled (QSY_allowed); } - if (m_mode!="WSPR" and m_mode!="FST240W") { + if (m_mode!="WSPR" and m_mode!="FST4W") { if(m_config.enable_VHF_features ()) { ui->TxFreqSpinBox->setEnabled (true); } else { @@ -7448,14 +7448,14 @@ void::MainWindow::VHF_features_enabled(bool b) void MainWindow::on_sbTR_valueChanged(int value) { // if(!m_bFastMode and n>m_nSubMode) m_MinW=m_nSubMode; - if(m_bFastMode or m_mode=="FreqCal" or m_mode=="FST240" or m_mode=="FST240W") { + if(m_bFastMode or m_mode=="FreqCal" or m_mode=="FST4" or m_mode=="FST4W") { m_TRperiod = value; - if (m_mode == "FST240" || m_mode == "FST240W") + if (m_mode == "FST4" || m_mode == "FST4W") { if (m_TRperiod < 60) { ui->decodedTextLabel->setText(" UTC dB DT Freq " + tr ("Message")); - if (m_mode != "FST240W") + if (m_mode != "FST4W") { ui->decodedTextLabel2->setText(" UTC dB DT Freq " + tr ("Message")); } @@ -7463,7 +7463,7 @@ void MainWindow::on_sbTR_valueChanged(int value) else { ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message")); - if (m_mode != "FST240W") + if (m_mode != "FST4W") { ui->decodedTextLabel2->setText("UTC dB DT Freq " + tr ("Message")); } @@ -7485,7 +7485,7 @@ void MainWindow::on_sbTR_valueChanged(int value) statusUpdate (); } -void MainWindow::on_sbTR_FST240W_valueChanged(int value) +void MainWindow::on_sbTR_FST4W_valueChanged(int value) { on_sbTR_valueChanged(value); } @@ -7965,7 +7965,7 @@ void MainWindow::on_pbTxNext_clicked(bool b) void MainWindow::WSPR_scheduling () { QString t=ui->RoundRobin->currentText(); - if(m_mode=="FST240W" and t!="Random") { + if(m_mode=="FST4W" and t!="Random") { int i=t.left (1).toInt () - 1; int n=t.right(1).toInt(); @@ -8019,7 +8019,7 @@ void MainWindow::WSPR_scheduling () band_hopping_label.setText (hop_data.period_name_); } else { - m_WSPR_tx_next = m_WSPR_band_hopping.next_is_tx(m_mode=="FST240W"); + m_WSPR_tx_next = m_WSPR_band_hopping.next_is_tx(m_mode=="FST4W"); } } @@ -8274,7 +8274,7 @@ void MainWindow::tx_watchdog (bool triggered) void MainWindow::update_watchdog_label () { - if (m_config.watchdog () && m_mode!="WSPR" && m_mode!="FST240W") + if (m_config.watchdog () && m_mode!="WSPR" && m_mode!="FST4W") { watchdog_label.setText (tr ("WD:%1m").arg (m_config.watchdog () - m_idleMinutes)); watchdog_label.setVisible (true); @@ -8311,7 +8311,7 @@ void MainWindow::on_cbFirst_toggled(bool b) void MainWindow::on_cbAutoSeq_toggled(bool b) { if(!b) ui->cbFirst->setChecked(false); - ui->cbFirst->setVisible((m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST240") and b); + ui->cbFirst->setVisible((m_mode=="FT8" or m_mode=="FT4" or m_mode=="FST4") and b); } void MainWindow::on_measure_check_box_stateChanged (int state) @@ -9088,8 +9088,8 @@ void MainWindow::on_pbBestSP_clicked() void MainWindow::set_mode (QString const& mode) { if ("FT4" == mode) on_actionFT4_triggered (); - else if ("FST240" == mode) on_actionFST240_triggered (); - else if ("FST240W" == mode) on_actionFST240W_triggered (); + else if ("FST4" == mode) on_actionFST4_triggered (); + else if ("FST4W" == mode) on_actionFST4W_triggered (); else if ("FT8" == mode) on_actionFT8_triggered (); else if ("JT4" == mode) on_actionJT4_triggered (); else if ("JT9" == mode) on_actionJT9_triggered (); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 687020a9c..e84d3ca1b 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -48,7 +48,7 @@ #define NUM_QRA64_SYMBOLS 84 //63 data + 21 sync #define NUM_FT8_SYMBOLS 79 #define NUM_FT4_SYMBOLS 105 -#define NUM_FST240_SYMBOLS 160 //240/2 data + 5*8 sync +#define NUM_FST4_SYMBOLS 160 //240/2 data + 5*8 sync #define NUM_CW_SYMBOLS 250 #define TX_SAMPLE_RATE 48000 #define NRING 3456000 @@ -203,8 +203,8 @@ private slots: void on_actionJT4_triggered(); void on_actionFT4_triggered(); void on_actionFT8_triggered(); - void on_actionFST240_triggered(); - void on_actionFST240W_triggered(); + void on_actionFST4_triggered(); + void on_actionFST4W_triggered(); void on_TxFreqSpinBox_valueChanged(int arg1); void on_actionSave_decoded_triggered(); void on_actionQuickDecode_toggled (bool); @@ -296,7 +296,7 @@ private slots: void on_actionErase_reference_spectrum_triggered(); void on_actionMeasure_phase_response_triggered(); void on_sbTR_valueChanged (int); - void on_sbTR_FST240W_valueChanged (int); + void on_sbTR_FST4W_valueChanged (int); void on_sbFtol_valueChanged (int); void on_cbFast9_clicked(bool b); void on_sbCQTxFreq_valueChanged(int n); diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index cfff2fad3..7dd9f4ab2 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -2148,7 +2148,7 @@ list. The list can be maintained in Settings (F2). - + Qt::AlignCenter @@ -2992,8 +2992,8 @@ QLabel[oob="true"] { Mode - - + + @@ -3610,12 +3610,12 @@ QLabel[oob="true"] { FT4 - + true - FST240 + FST4 @@ -3623,15 +3623,15 @@ QLabel[oob="true"] { FT240W - + true - FST240W + FST4W - + true @@ -3639,7 +3639,7 @@ QLabel[oob="true"] { true - Also FST240W + Also FST4W diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index 56ed25daf..fb65bd775 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -413,7 +413,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() float bw=9.0*12000.0/m_nsps; //JT9 if(m_mode=="FT4") bw=3*12000.0/576.0; //FT4 ### (3x, or 4x???) ### if(m_mode=="FT8") bw=7*12000.0/1920.0; //FT8 - if(m_mode.startsWith("FST240")) { + if(m_mode.startsWith("FST4")) { int h=int(pow(2.0,m_nSubMode)); int nsps=800; if(m_TRperiod==30) nsps=1680; @@ -483,7 +483,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() painter0.drawLine(x1,26,x2,26); } - if(m_mode=="FST240W") { + if(m_mode=="FST4W") { x1=XfromFreq(2600); x2=XfromFreq(2700); painter0.drawLine(x1,26,x2,26); @@ -502,7 +502,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() int yRxBottom=yTxTop + 2*yh + 4; if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65" or m_mode=="QRA64" or m_mode=="FT8" or m_mode=="FT4" - or m_mode.startsWith("FST240")) { + or m_mode.startsWith("FST4")) { if(m_mode=="QRA64" or (m_mode=="JT65" and m_bVHF)) { painter0.setPen(penGreen); @@ -533,7 +533,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() painter0.drawLine(x1,yRxBottom-yh,x1,yRxBottom); painter0.drawLine(x1,yRxBottom,x2,yRxBottom); painter0.drawLine(x2,yRxBottom-yh,x2,yRxBottom); - if(m_mode.startsWith("FST240")) { + if(m_mode.startsWith("FST4")) { x1=XfromFreq(m_rxFreq-m_tol); x2=XfromFreq(m_rxFreq+m_tol); painter0.drawLine(x1,26,x2,26); // Mark the Tol range @@ -543,7 +543,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65" or m_mode.mid(0,4)=="WSPR" or m_mode=="QRA64" or m_mode=="FT8" - or m_mode=="FT4" or m_mode.startsWith("FST240")) { + or m_mode=="FT4" or m_mode.startsWith("FST4")) { painter0.setPen(penRed); x1=XfromFreq(m_txFreq); x2=XfromFreq(m_txFreq+bw); @@ -699,7 +699,7 @@ int CPlotter::rxFreq() {return m_rxFreq;} //rxFreq void CPlotter::mouseReleaseEvent (QMouseEvent * event) { - if (Qt::LeftButton == event->button () and m_mode!="FST240W") { + if (Qt::LeftButton == event->button () and m_mode!="FST4W") { int x=event->x(); if(x<0) x=0; if(x>m_Size.width()) x=m_Size.width(); diff --git a/widgets/widegraph.cpp b/widgets/widegraph.cpp index 9e7f6667d..c29d84989 100644 --- a/widgets/widegraph.cpp +++ b/widgets/widegraph.cpp @@ -294,7 +294,7 @@ void WideGraph::setTxFreq(int n) //setTxFreq void WideGraph::setMode(QString mode) //setMode { m_mode=mode; - ui->fSplitSpinBox->setEnabled(m_mode=="JT9+JT65" or m_mode.startsWith("FST240")); + ui->fSplitSpinBox->setEnabled(m_mode=="JT9+JT65" or m_mode.startsWith("FST4")); ui->widePlot->setMode(mode); ui->widePlot->DrawOverlay(); ui->widePlot->update(); @@ -368,7 +368,7 @@ void WideGraph::setRxBand (QString const& band) else { ui->fSplitSpinBox->setValue (m_fMinPerBand.value (band, 2500).toUInt ()); - ui->fSplitSpinBox->setEnabled (m_mode=="JT9+JT65" or m_mode.startsWith("FST240")); + ui->fSplitSpinBox->setEnabled (m_mode=="JT9+JT65" or m_mode.startsWith("FST4")); } ui->widePlot->setRxBand(band); setRxRange (); From c88445ee7b39a213c176da1ad0729040eb8927ff Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 23 Jul 2020 12:53:49 -0500 Subject: [PATCH 315/520] One more 240->4 change in jt9,f90. --- lib/jt9.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/jt9.f90 b/lib/jt9.f90 index 43af4673b..9cfaa9dc7 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -54,8 +54,8 @@ program jt9 option ('jt4', .false., '4', 'JT4 mode', ''), & option ('ft4', .false., '5', 'FT4 mode', ''), & option ('jt65', .false.,'6', 'JT65 mode', ''), & - option ('fst240', .false., '7', 'FST240 mode', ''), & - option ('fst240w', .false., 'W', 'FST240W mode', ''), & + option ('fst4', .false., '7', 'FST4 mode', ''), & + option ('fst4w', .false., 'W', 'FST4W mode', ''), & option ('ft8', .false., '8', 'FT8 mode', ''), & option ('jt9', .false., '9', 'JT9 mode', ''), & option ('qra64', .false., 'q', 'QRA64 mode', ''), & From a7223a5efa3b5253e1664a76950f2f6407e31f07 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 23 Jul 2020 19:13:05 +0100 Subject: [PATCH 316/520] A few more cosmetic 240 -> 4 changes --- lib/decoder.f90 | 8 ++++---- lib/fst4/genfst4.f90 | 2 +- lib/fst4_decode.f90 | 2 +- lib/ft8/foxgen.f90 | 2 +- lib/ft8/foxgen_wrap.f90 | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 49e8681f3..a3269aef9 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -188,7 +188,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) endif if(params%nmode.eq.240) then -! We're in FST240 mode +! We're in FST4 mode ndepth=iand(params%ndepth,3) iwspr=0 if(iand(params%ndepth,128).ne.0) iwspr=2 @@ -203,7 +203,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) endif if(params%nmode.eq.241) then -! We're in FST240W mode +! We're in FST4W mode ndepth=iand(params%ndepth,3) iwspr=1 call timer('dec240 ',0) @@ -732,12 +732,12 @@ contains write(line,1001) nutc,nsnr,dt,nint(freq),decoded0,annot 1001 format(i6.6,i4,f5.1,i5,' ` ',1x,a37,1x,a2) write(13,1002) nutc,nint(sync),nsnr,dt,freq,0,decoded0 -1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FST240') +1002 format(i6.6,i4,i5,f6.1,f8.0,i4,3x,a37,' FST4') else write(line,1003) nutc,nsnr,dt,nint(freq),decoded0,annot 1003 format(i4.4,i4,f5.1,i5,' ` ',1x,a37,1x,a2,2f7.3) write(13,1004) nutc,nint(sync),nsnr,dt,freq,0,decoded0 -1004 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a37,' FST240') +1004 format(i4.4,i4,i5,f6.1,f8.0,i4,3x,a37,' FST4') endif if(fmid.ne.-999.0) then diff --git a/lib/fst4/genfst4.f90 b/lib/fst4/genfst4.f90 index 818feee43..650062a03 100644 --- a/lib/fst4/genfst4.f90 +++ b/lib/fst4/genfst4.f90 @@ -5,7 +5,7 @@ subroutine genfst4(msg0,ichk,msgsent,msgbits,i4tone,iwspr) ! - ichk if ichk=1, return only msgsent ! - msgsent message as it will be decoded ! - i4tone array of audio tone values, {0,1,2,3} -! - iwspr in: 0: FST240 1: FST240W +! - iwspr in: 0: FST4 1: FST4W ! out 0: (240,101)/crc24, 1: (240,74)/crc24 ! ! Frame structure: diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 37ab333a1..9626c7114 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -583,7 +583,7 @@ contains subroutine sync_fst4(cd0,i0,f0,hmod,ncoh,np,nss,ntr,fs,sync) -! Compute sync power for a complex, downsampled FST240 signal. +! Compute sync power for a complex, downsampled FST4 signal. use timer_module, only: timer include 'fst4/fst4_params.f90' diff --git a/lib/ft8/foxgen.f90 b/lib/ft8/foxgen.f90 index 13299da89..a2899e526 100644 --- a/lib/ft8/foxgen.f90 +++ b/lib/ft8/foxgen.f90 @@ -15,7 +15,7 @@ subroutine foxgen() ! common block. parameter (NN=79,ND=58,NSPS=4*1920) - parameter (NWAVE=(160+2)*134400*4) !the biggest waveform we generate (FST240-1800 at 48kHz) + parameter (NWAVE=(160+2)*134400*4) !the biggest waveform we generate (FST4-1800 at 48kHz) parameter (NFFT=614400,NH=NFFT/2) character*40 cmsg character*37 msg,msgsent diff --git a/lib/ft8/foxgen_wrap.f90 b/lib/ft8/foxgen_wrap.f90 index eb489cccc..fec9f37c6 100644 --- a/lib/ft8/foxgen_wrap.f90 +++ b/lib/ft8/foxgen_wrap.f90 @@ -1,7 +1,7 @@ subroutine foxgen_wrap(msg40,msgbits,itone) parameter (NN=79,ND=58,KK=77,NSPS=4*1920) - parameter (NWAVE=(160+2)*134400) !the biggest waveform we generate (FST240-1800) + parameter (NWAVE=(160+2)*134400) !the biggest waveform we generate (FST4-1800) character*40 msg40,cmsg character*12 mycall12 From 5eec869b2c869df02e0a723d725b2dc4aa3c3673 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 23 Jul 2020 13:22:12 -0500 Subject: [PATCH 317/520] Remove an unused file. --- lib/fst4/genfst240_64.f90 | 108 -------------------------------------- 1 file changed, 108 deletions(-) delete mode 100644 lib/fst4/genfst240_64.f90 diff --git a/lib/fst4/genfst240_64.f90 b/lib/fst4/genfst240_64.f90 deleted file mode 100644 index 378f8a035..000000000 --- a/lib/fst4/genfst240_64.f90 +++ /dev/null @@ -1,108 +0,0 @@ -subroutine genfst240_64(msg0,ichk,msgsent,msgbits,i4tone,iwspr) - -! Input: -! - msg0 requested message to be transmitted -! - ichk if ichk=1, return only msgsent -! - msgsent message as it will be decoded -! - i4tone array of audio tone values, {0,1,2,3} -! - iwspr 0: (240,101)/crc24, 1: (240,74)/crc24 -! -! Frame structure: -! s8 d30 s8 d30 s8 d30 s8 d30 s8 - - use packjt77 - include 'fst240_params.f90' - character*37 msg0 - character*37 message !Message to be generated - character*37 msgsent !Message as it will be received - character*77 c77 - character*24 c24 - integer*4 i4tone(NN),itmp(ND) - integer*1 codeword(2*ND) - integer*1 msgbits(101),rvec(77) - integer isyncword1(8),isyncword2(8) - integer ncrc24 - integer graymap64(64) - logical unpk77_success - data isyncword1/3,1,4,0,6,5,2/ - data rvec/0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,0, & - 1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, & - 0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/ - data graymap64/ 0, 1, 3, 2, 6, 7, 5, 4,12,13,15,14,10,11, 9, 8, & - 24,25,27,26,30,31,29,28,20,21,23,22,18,19,17,16, & - 48,49,51,50,54,55,53,52,60,61,63,62,58,59,57,56, & - 40,41,43,42,46,47,45,44,36,37,39,38,34,35,33,32/ - message=msg0 - - do i=1, 37 - if(ichar(message(i:i)).eq.0) then - message(i:37)=' ' - exit - endif - enddo - do i=1,37 !Strip leading blanks - if(message(1:1).ne.' ') exit - message=message(i+1:) - enddo - - i3=-1 - n3=-1 - call pack77(message,i3,n3,c77) - call unpack77(c77,0,msgsent,unpk77_success) !Unpack to get msgsent - msgbits=0 - iwspr=0 - if(i3.eq.0.and.n3.eq.6) then - iwspr=1 - read(c77,'(50i1)') msgbits(1:50) - call get_crc24(msgbits,74,ncrc24) - write(c24,'(b24.24)') ncrc24 - read(c24,'(24i1)') msgbits(51:74) - else - read(c77,'(77i1)') msgbits(1:77) - msgbits(1:77)=mod(msgbits(1:77)+rvec,2) - call get_crc24(msgbits,101,ncrc24) - write(c24,'(b24.24)') ncrc24 - read(c24,'(24i1)') msgbits(78:101) - endif - - if(ichk.eq.1) go to 999 - if(unpk77_success) go to 2 -1 msgbits=0 - itone=0 - msgsent='*** bad message *** ' - go to 999 - - entry get_fst240_tones_from_bits(msgbits,i4tone,iwspr) - -2 continue - if(iwspr.eq.0) then - call encode240_101(msgbits,codeword) - else - call encode240_74(msgbits(1:74),codeword) - endif - -! Grayscale mapping: -! bits tone - - do i=1,40 - is=codeword(2*i)+2*codeword(2*i-1) - if(is.le.1) itmp(i)=is - if(is.eq.2) itmp(i)=3 - if(is.eq.3) itmp(i)=2 - enddo - - i4tone( 1: 8)=isyncword1 - i4tone( 9: 38)=itmp( 1: 30) - i4tone( 39: 46)=isyncword2 - i4tone( 47: 76)=itmp( 31: 60) - i4tone( 77: 84)=isyncword1 - i4tone( 85:114)=itmp( 61: 90) - i4tone(115:122)=isyncword2 - i4tone(123:152)=itmp( 91:120) - i4tone(153:160)=isyncword1 - -999 return - -end subroutine genfst240_64 - -subroutine graycode(in From 19d24789aae4c6eaa5d3f0f61f5dea98888e2c06 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 24 Jul 2020 12:43:35 +0100 Subject: [PATCH 318/520] Revert "Change band name 2190m to 2200m." This reverts commit fe86a6562cd84ea4933a636d7022a6d66d85c77a. --- models/Bands.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/Bands.cpp b/models/Bands.cpp index aa21eae9e..832c36185 100644 --- a/models/Bands.cpp +++ b/models/Bands.cpp @@ -15,7 +15,7 @@ namespace Radio::Frequency lower_bound_; Radio::Frequency upper_bound_; } constexpr ADIF_bands[] = { - {"2200m", 136000u, 137000u}, + {"2190m", 136000u, 137000u}, {"630m", 472000u, 479000u}, {"560m", 501000u, 504000u}, {"160m", 1800000u, 2000000u}, From 29fc0ced19226667fdff4d7782468824dfa58c87 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 24 Jul 2020 12:46:43 +0100 Subject: [PATCH 319/520] Revert "Fix double-clicking on a decode line containing fSpread." Change superseded. This reverts commit d9c2a1182111d20f8084def9816055267d8ccdc0. --- widgets/mainwindow.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 64a80259e..074576648 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4518,9 +4518,7 @@ void MainWindow::doubleClickOnCall(Qt::KeyboardModifiers modifiers) } return; } - QString t{cursor.block().text().trimmed().left(61).remove("TU; ")}; - t=t.left(46)+" "+t.mid(51); - DecodedText message{t.trimmed()}; + DecodedText message {cursor.block().text().trimmed().left(61).remove("TU; ")}; m_bDoubleClicked = true; processMessage (message, modifiers); } From ea775c8b9aedf68840920d6ea8143678a2a05bf8 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 24 Jul 2020 12:51:20 +0100 Subject: [PATCH 320/520] Work around clang not having a consexpr strlen implementation --- Network/PSKReporter.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Network/PSKReporter.cpp b/Network/PSKReporter.cpp index 06d5d27e5..5a367e58f 100644 --- a/Network/PSKReporter.cpp +++ b/Network/PSKReporter.cpp @@ -31,15 +31,15 @@ namespace { - constexpr QLatin1String HOST {"report.pskreporter.info"}; - // constexpr QLatin1String HOST {"127.0.0.1"}; - constexpr quint16 SERVICE_PORT {4739}; - // constexpr quint16 SERVICE_PORT {14739}; - constexpr int MIN_SEND_INTERVAL {15}; // in seconds - constexpr int FLUSH_INTERVAL {4 * 5}; // in send intervals - constexpr bool ALIGNMENT_PADDING {true}; - constexpr int MIN_PAYLOAD_LENGTH {508}; - constexpr int MAX_PAYLOAD_LENGTH {1400}; + QLatin1String HOST {"report.pskreporter.info"}; + // QLatin1String HOST {"127.0.0.1"}; + quint16 SERVICE_PORT {4739}; + // quint16 SERVICE_PORT {14739}; + int MIN_SEND_INTERVAL {15}; // in seconds + int FLUSH_INTERVAL {4 * 5}; // in send intervals + bool ALIGNMENT_PADDING {true}; + int MIN_PAYLOAD_LENGTH {508}; + int MAX_PAYLOAD_LENGTH {1400}; } class PSKReporter::impl final @@ -223,7 +223,6 @@ namespace out.writeRawData (utf, utf.size ()); } - constexpr int num_pad_bytes (int len) { return ALIGNMENT_PADDING ? (4 - len % 4) % 4 : 0; From c802c60afa49f4a23a43745c365762b557a7aa88 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 24 Jul 2020 10:58:10 -0400 Subject: [PATCH 321/520] Allow FST4 to use Split (Rig or Fake it). Set Tx upper freq limit for FST4W to 1600 Hz. --- widgets/mainwindow.cpp | 3 ++- widgets/mainwindow.ui | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 64a80259e..ade829eff 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -6989,7 +6989,8 @@ void MainWindow::setXIT(int n, Frequency base) m_XIT = 0; if (!m_bSimplex) { // m_bSimplex is false, so we can use split mode if requested - if (m_config.split_mode () && (!m_config.enable_VHF_features () || m_mode == "FT8")) { + if (m_config.split_mode () && (!m_config.enable_VHF_features () || m_mode == "FT8" || + m_mode=="FST4")) { // Don't use XIT for VHF & up m_XIT=(n/500)*500 - 1500; } diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 7dd9f4ab2..c777609b0 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -2121,7 +2121,7 @@ list. The list can be maintained in Settings (F2). 1400 - 1700 + 1600 1500 From dbaffea0cdbabdf7eb0a902dc0189f3656378155 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 24 Jul 2020 11:13:48 -0400 Subject: [PATCH 322/520] Allow only TR periods >= 120 s for FST4W. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index ade829eff..d7be5cc6c 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -428,7 +428,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->dxGridEntry->setValidator (new MaidenheadLocatorValidator {this}); ui->dxCallEntry->setValidator (new CallsignValidator {this}); ui->sbTR->values ({5, 10, 15, 30, 60, 120, 300, 900, 1800}); - ui->sbTR_FST4W->values ({15, 30, 60, 120, 300, 900, 1800}); + ui->sbTR_FST4W->values ({120, 300, 900, 1800}); ui->decodedTextBrowser->set_configuration (&m_config, true); ui->decodedTextBrowser2->set_configuration (&m_config); From 5c4878a00a4f544cbc33cc09d97d9964d9ba750e Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 24 Jul 2020 13:35:04 -0400 Subject: [PATCH 323/520] Display cursor position on Wide graph as a ToolTip. --- widgets/plotter.cpp | 8 ++++++++ widgets/plotter.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index fb65bd775..c21d7e5f0 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -56,6 +56,7 @@ CPlotter::CPlotter(QWidget *parent) : //CPlotter Constructor setAutoFillBackground(false); setAttribute(Qt::WA_OpaquePaintEvent, false); setAttribute(Qt::WA_NoSystemBackground, true); + setMouseTracking(true); m_bReplot=false; // contextual pop up menu @@ -697,6 +698,13 @@ void CPlotter::setRxFreq (int x) //setRxFreq int CPlotter::rxFreq() {return m_rxFreq;} //rxFreq +void CPlotter::mouseMoveEvent (QMouseEvent * event) +{ + int x=event->x(); + QToolTip::showText(event->globalPos(),QString::number(int(FreqfromX(x)))); + QWidget::mouseMoveEvent(event); +} + void CPlotter::mouseReleaseEvent (QMouseEvent * event) { if (Qt::LeftButton == event->button () and m_mode!="FST4W") { diff --git a/widgets/plotter.h b/widgets/plotter.h index b3eb85855..b4b4cf42b 100644 --- a/widgets/plotter.h +++ b/widgets/plotter.h @@ -13,6 +13,7 @@ #include #include #include +#include #define VERT_DIVS 7 //specify grid screen divisions #define HORZ_DIVS 20 @@ -91,6 +92,7 @@ protected: //re-implemented widget event handlers void paintEvent(QPaintEvent *event) override; void resizeEvent(QResizeEvent* event) override; + void mouseMoveEvent(QMouseEvent * event) override; void mouseReleaseEvent (QMouseEvent * event) override; void mouseDoubleClickEvent (QMouseEvent * event) override; From ceeafa5bedf3746e3db4440da1b2bb1347a8ce37 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 25 Jul 2020 16:02:42 -0400 Subject: [PATCH 324/520] *** TEMPORARY *** Add a feature to transmit FT8 and FST4 at the same time. --- widgets/mainwindow.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index d7be5cc6c..a2dc97dcc 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3837,7 +3837,11 @@ void MainWindow::guiUpdate() m_modulator->set_nsym(nsym); } } - if(m_modeTx=="FT8") { + + QString t = QString::fromStdString(message).trimmed(); + bool both=(t=="CQ BOTH K1JT FN20" or t=="CQ BOTH K9AN EN50"); + + if(m_modeTx=="FT8" or both) { if(SpecOp::FOX==m_config.special_op_id() and ui->tabWidget->currentIndex()==2) { foxTxSequencer(); } else { @@ -3855,7 +3859,6 @@ void MainWindow::guiUpdate() int nwave=nsym*nsps; gen_ft8wave_(const_cast(itone),&nsym,&nsps,&bt,&fsample,&f0,foxcom_.wave, foxcom_.wave,&icmplx,&nwave); - if(SpecOp::FOX == m_config.special_op_id()) { //Fox must generate the full Tx waveform, not just an itone[] array. QString fm = QString::fromStdString(message).trimmed(); @@ -3911,8 +3914,20 @@ void MainWindow::guiUpdate() float f0=ui->TxFreqSpinBox->value() - m_XIT + 1.5*dfreq; int nwave=(nsym+2)*nsps; int icmplx=0; + + float wave_both[15*48000]; + if(both) { + memcpy(wave_both,foxcom_.wave,4*15*48000); //Copy the FT8 wave[] into wave_both[] + f0 += 200; + } gen_fst4wave_(const_cast(itone),&nsym,&nsps,&nwave, &fsample,&hmod,&f0,&icmplx,foxcom_.wave,foxcom_.wave); + if(both) { + for(int i=0; i<15*48000; i++) { + foxcom_.wave[i]=0.5*(wave_both[i] + foxcom_.wave[i]); + } + } + } if(SpecOp::EU_VHF==m_config.special_op_id()) { From 7566f3548df8fcd647196c5247f11b372e9c2163 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 26 Jul 2020 02:58:04 +0100 Subject: [PATCH 325/520] Post FST4W spots to WSPRNet.org Includes a re-factoring of the WSPRNet class, particularly to handle direct spot posts as well as via a file from wsprd. Switched from GET http request method to POST method. FST4W spots post the same information a WSPR spots except the drift field is always zero (FST4W has no drift compensation, so no drift figure is calculated by the decoder), and the mode field reflects the T/R period in minutes. This means FST4W-120A will be similar to WSPR-2, an FST4W-900 will be similar to WSPR-15. I don't see any way to view the mode field on either the new or old database format queries on WSPRnet, so it is hard to tell if that field is actually stored. --- Network/wsprnet.cpp | 445 +++++++++++++++++++++++++---------------- Network/wsprnet.h | 57 ++++-- widgets/mainwindow.cpp | 68 ++++--- widgets/mainwindow.h | 4 +- 4 files changed, 354 insertions(+), 220 deletions(-) diff --git a/Network/wsprnet.cpp b/Network/wsprnet.cpp index cdfed7683..669ab1554 100644 --- a/Network/wsprnet.cpp +++ b/Network/wsprnet.cpp @@ -8,6 +8,8 @@ #include #include +#include +#include #include #include #include @@ -18,215 +20,314 @@ namespace { - char const * const wsprNetUrl = "http://wsprnet.org/post?"; - // char const * const wsprNetUrl = "http://127.0.0.1/post?"; + char const * const wsprNetUrl = "http://wsprnet.org/post/"; + //char const * const wsprNetUrl = "http://127.0.0.1:5000/post/"; + + // + // tested with this python REST mock of WSPRNet.org + // + /* +# Mock WSPRNet.org RESTful API +from flask import Flask, request, url_for +from flask_restful import Resource, Api + +app = Flask(__name__) + +@app.route ('/post/', methods=['GET', 'POST']) +def spot (): + if request.method == 'POST': + print (request.form) + return "1 spot(s) added" + +with app.test_request_context (): + print (url_for ('spot')) + */ + + // regexp to parse FST4W decodes + QRegularExpression fst4_re {R"( + (?
[-+]?\d+\.\d+) + \s+(?\d+) + \s+` + \s+[A-Z0-9/]+)>?(?:\s(?[A-R]{2}[0-9]{2}(?:[A-X]{2})?))?(?:\s+(?\d+))? +)", QRegularExpression::ExtendedPatternSyntaxOption}; + + // regexp to parse wspr_spots.txt from wsprd + // + // 130223 2256 7 -21 -0.3 14.097090 DU1MGA PK04 37 0 40 0 + // Date Time Sync dBm DT Freq Msg + // 1 2 3 4 5 6 -------7------ 8 9 10 + QRegularExpression wspr_re(R"(^(\d+)\s+(\d+)\s+(\d+)\s+([+-]?\d+)\s+([+-]?\d+\.\d+)\s+(\d+\.\d+)\s+([^ ].*[^ ])\s+([+-]?\d+)\s+([+-]?\d+)\s+([+-]?\d+))"); }; -WSPRNet::WSPRNet(QNetworkAccessManager * manager, QObject *parent) - : QObject{parent} - , networkManager {manager} - , uploadTimer {new QTimer {this}} - , m_urlQueueSize {0} +WSPRNet::WSPRNet (QNetworkAccessManager * manager, QObject *parent) + : QObject {parent} + , network_manager_ {manager} + , spots_to_send_ {0} { - connect(networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkReply(QNetworkReply*))); - connect( uploadTimer, SIGNAL(timeout()), this, SLOT(work())); + connect (network_manager_, &QNetworkAccessManager::finished, this, &WSPRNet::networkReply); + connect (&upload_timer_, &QTimer::timeout, this, &WSPRNet::work); } -void WSPRNet::upload(QString const& call, QString const& grid, QString const& rfreq, QString const& tfreq, - QString const& mode, QString const& tpct, QString const& dbm, QString const& version, - QString const& fileName) +void WSPRNet::upload (QString const& call, QString const& grid, QString const& rfreq, QString const& tfreq, + QString const& mode, float TR_period, QString const& tpct, QString const& dbm, + QString const& version, QString const& fileName) { - m_call = call; - m_grid = grid; - m_rfreq = rfreq; - m_tfreq = tfreq; - m_mode = mode; - m_tpct = tpct; - m_dbm = dbm; - m_vers = version; - m_file = fileName; + m_call = call; + m_grid = grid; + m_rfreq = rfreq; + m_tfreq = tfreq; + m_mode = mode; + TR_period_ = TR_period; + m_tpct = tpct; + m_dbm = dbm; + m_vers = version; + m_file = fileName; - // Open the wsprd.out file - QFile wsprdOutFile(fileName); - if (!wsprdOutFile.open(QIODevice::ReadOnly | QIODevice::Text) || - wsprdOutFile.size() == 0) { - urlQueue.enqueue( wsprNetUrl + urlEncodeNoSpot()); - m_uploadType = 1; - uploadTimer->start(200); - return; + // Open the wsprd.out file + QFile wsprdOutFile (fileName); + if (!wsprdOutFile.open (QIODevice::ReadOnly | QIODevice::Text) || !wsprdOutFile.size ()) + { + spot_queue_.enqueue (urlEncodeNoSpot ()); + m_uploadType = 1; } - - // Read the contents - while (!wsprdOutFile.atEnd()) { - QHash query; - if ( decodeLine(wsprdOutFile.readLine(), query) ) { - // Prevent reporting data ouside of the current frequency band - float f = fabs(m_rfreq.toFloat() - query["tqrg"].toFloat()); - if (f < 0.0002) { - urlQueue.enqueue( wsprNetUrl + urlEncodeSpot(query)); - m_uploadType = 2; + else + { + // Read the contents + while (!wsprdOutFile.atEnd()) + { + SpotQueue::value_type query; + if (decodeLine (wsprdOutFile.readLine(), query)) + { + // Prevent reporting data ouside of the current frequency band + float f = fabs (m_rfreq.toFloat() - query.queryItemValue ("tqrg", QUrl::FullyDecoded).toFloat()); + if (f < 0.0002) + { + spot_queue_.enqueue(urlEncodeSpot (query)); + m_uploadType = 2; + } + } } - } } - m_urlQueueSize = urlQueue.size(); - uploadTimer->start(200); + spots_to_send_ = spot_queue_.size (); + upload_timer_.start (200); } -void WSPRNet::networkReply(QNetworkReply *reply) +void WSPRNet::post (QString const& call, QString const& grid, QString const& rfreq, QString const& tfreq, + QString const& mode, float TR_period, QString const& tpct, QString const& dbm, + QString const& version, QString const& decode_text) +{ + m_call = call; + m_grid = grid; + m_rfreq = rfreq; + m_tfreq = tfreq; + m_mode = mode; + TR_period_ = TR_period; + m_tpct = tpct; + m_dbm = dbm; + m_vers = version; + + if (!decode_text.size ()) + { + if (!spot_queue_.size ()) + { + spot_queue_.enqueue (urlEncodeNoSpot ()); + m_uploadType = 1; + } + spots_to_send_ = spot_queue_.size (); + upload_timer_.start (200); + } + else + { + auto const& match = fst4_re.match (decode_text); + if (match.hasMatch ()) + { + SpotQueue::value_type query; + // Prevent reporting data ouside of the current frequency band + auto tqrg = match.captured ("freq").toInt (); + if (tqrg >= 1400 && tqrg <= 1600) + { + query.addQueryItem ("function", "wspr"); + // use time as at 3/4 of T/R period before current to + // ensure date is in Rx period + auto const& date = QDateTime::currentDateTimeUtc ().addSecs (-TR_period * 3. / 4.).date (); + query.addQueryItem ("date", date.toString ("yyMMdd")); + query.addQueryItem ("time", match.captured ("time")); + query.addQueryItem ("sig", match.captured ("db")); + query.addQueryItem ("dt", match.captured ("dt")); + query.addQueryItem ("tqrg", QString::number (rfreq.toDouble () + (tqrg - 1500) / 1e6, 'f', 6)); + query.addQueryItem ("tcall", match.captured ("call")); + query.addQueryItem ("drift", "0"); + query.addQueryItem ("tgrid", match.captured ("grid")); + query.addQueryItem ("dbm", match.captured ("dBm")); + spot_queue_.enqueue (urlEncodeSpot (query)); + m_uploadType = 2; + } + } + } +} + +void WSPRNet::networkReply (QNetworkReply * reply) { // check if request was ours - if (m_outstandingRequests.removeOne (reply)) { - if (QNetworkReply::NoError != reply->error ()) { - Q_EMIT uploadStatus (QString {"Error: %1"}.arg (reply->error ())); - // not clearing queue or halting queuing as it may be a transient - // one off request error - } - else { - QString serverResponse = reply->readAll(); - if( m_uploadType == 2) { - if (!serverResponse.contains(QRegExp("spot\\(s\\) added"))) { - emit uploadStatus(QString {"Upload Failed: %1"}.arg (serverResponse)); - urlQueue.clear(); - uploadTimer->stop(); + if (m_outstandingRequests.removeOne (reply)) + { + if (QNetworkReply::NoError != reply->error ()) + { + Q_EMIT uploadStatus (QString {"Error: %1"}.arg (reply->error ())); + // not clearing queue or halting queuing as it may be a + // transient one off request error } - } + else + { + QString serverResponse = reply->readAll (); + if (m_uploadType == 2) + { + if (!serverResponse.contains(QRegExp("spot\\(s\\) added"))) + { + Q_EMIT uploadStatus (QString {"Upload Failed: %1"}.arg (serverResponse)); + spot_queue_.clear (); + upload_timer_.stop (); + } + } - if (urlQueue.isEmpty()) { - emit uploadStatus("done"); - QFile::remove(m_file); - uploadTimer->stop(); - } + if (!spot_queue_.size ()) + { + Q_EMIT uploadStatus("done"); + QFile f {m_file}; + if (f.exists ()) f.remove (); + upload_timer_.stop (); + } + } + + qDebug () << QString {"WSPRnet.org %1 outstanding requests"}.arg (m_outstandingRequests.size ()); + + // delete request object instance on return to the event loop otherwise it is leaked + reply->deleteLater (); + } +} + +bool WSPRNet::decodeLine (QString const& line, SpotQueue::value_type& query) +{ + auto const& rx_match = wspr_re.match (line); + if (rx_match.hasMatch ()) { + int msgType = 0; + QString msg = rx_match.captured (7); + QString call, grid, dbm; + QRegularExpression msgRx; + + // Check for Message Type 1 + msgRx.setPattern(R"(^([A-Z0-9]{3,6})\s+([A-R]{2}\d{2})\s+(\d+))"); + auto match = msgRx.match (msg); + if (match.hasMatch ()) { + msgType = 1; + call = match.captured (1); + grid = match.captured (2); + dbm = match.captured (3); } - qDebug () << QString {"WSPRnet.org %1 outstanding requests"}.arg (m_outstandingRequests.size ()); + // Check for Message Type 2 + msgRx.setPattern(R"(^([A-Z0-9/]+)\s+(\d+))"); + match = msgRx.match (msg); + if (match.hasMatch ()) { + msgType = 2; + call = match.captured (1); + grid = ""; + dbm = match.captured (2); + } - // delete request object instance on return to the event loop otherwise it is leaked - reply->deleteLater (); + // Check for Message Type 3 + msgRx.setPattern(R"(^<([A-Z0-9/]+)>\s+([A-R]{2}\d{2}[A-X]{2})\s+(\d+))"); + match = msgRx.match (msg); + if (match.hasMatch ()) { + msgType = 3; + call = match.captured (1); + grid = match.captured (2); + dbm = match.captured (3); + } + + // Unknown message format + if (!msgType) { + return false; + } + + query.addQueryItem ("function", "wspr"); + query.addQueryItem ("date", rx_match.captured (1)); + query.addQueryItem ("time", rx_match.captured (2)); + query.addQueryItem ("sig", rx_match.captured (4)); + query.addQueryItem ("dt", rx_match.captured(5)); + query.addQueryItem ("drift", rx_match.captured(8)); + query.addQueryItem ("tqrg", rx_match.captured(6)); + query.addQueryItem ("tcall", call); + query.addQueryItem ("tgrid", grid); + query.addQueryItem ("dbm", dbm); + } else { + return false; } + return true; } -bool WSPRNet::decodeLine(QString const& line, QHash &query) +auto WSPRNet::urlEncodeNoSpot () -> SpotQueue::value_type { - // 130223 2256 7 -21 -0.3 14.097090 DU1MGA PK04 37 0 40 0 - // Date Time Sync dBm DT Freq Msg - // 1 2 3 4 5 6 -------7------ 8 9 10 - QRegExp rx("^(\\d+)\\s+(\\d+)\\s+(\\d+)\\s+([+-]?\\d+)\\s+([+-]?\\d+\\.\\d+)\\s+(\\d+\\.\\d+)\\s+(.*)\\s+([+-]?\\d+)\\s+([+-]?\\d+)\\s+([+-]?\\d+)"); - if (rx.indexIn(line) != -1) { - int msgType = 0; - QString msg = rx.cap(7); - msg.remove(QRegExp("\\s+$")); - msg.remove(QRegExp("^\\s+")); - QString call, grid, dbm; - QRegExp msgRx; - - // Check for Message Type 1 - msgRx.setPattern("^([A-Z0-9]{3,6})\\s+([A-Z]{2}\\d{2})\\s+(\\d+)"); - if (msgRx.indexIn(msg) != -1) { - msgType = 1; - call = msgRx.cap(1); - grid = msgRx.cap(2); - dbm = msgRx.cap(3); - } - - // Check for Message Type 2 - msgRx.setPattern("^([A-Z0-9/]+)\\s+(\\d+)"); - if (msgRx.indexIn(msg) != -1) { - msgType = 2; - call = msgRx.cap(1); - grid = ""; - dbm = msgRx.cap(2); - } - - // Check for Message Type 3 - msgRx.setPattern("^<([A-Z0-9/]+)>\\s+([A-Z]{2}\\d{2}[A-Z]{2})\\s+(\\d+)"); - if (msgRx.indexIn(msg) != -1) { - msgType = 3; - call = msgRx.cap(1); - grid = msgRx.cap(2); - dbm = msgRx.cap(3); - } - - // Unknown message format - if (!msgType) { - return false; - } - - query["function"] = "wspr"; - query["date"] = rx.cap(1); - query["time"] = rx.cap(2); - query["sig"] = rx.cap(4); - query["dt"] = rx.cap(5); - query["drift"] = rx.cap(8); - query["tqrg"] = rx.cap(6); - query["tcall"] = call; - query["tgrid"] = grid; - query["dbm"] = dbm; - } else { - return false; + SpotQueue::value_type query; + query.addQueryItem ("function", "wsprstat"); + query.addQueryItem ("rcall", m_call); + query.addQueryItem ("rgrid", m_grid); + query.addQueryItem ("rqrg", m_rfreq); + query.addQueryItem ("tpct", m_tpct); + query.addQueryItem ("tqrg", m_tfreq); + query.addQueryItem ("dbm", m_dbm); + query.addQueryItem ("version", m_vers); + if (m_mode == "WSPR") query.addQueryItem ("mode", "2"); + if (m_mode == "WSPR-15") query.addQueryItem ("mode", "15"); + if (m_mode == "FST4W") + { + query.addQueryItem ("mode", QString::number (static_cast ((TR_period_ / 60.)+.5))); } - return true; + return query;; } -QString WSPRNet::urlEncodeNoSpot() +auto WSPRNet::urlEncodeSpot (SpotQueue::value_type& query) -> SpotQueue::value_type { - QString queryString; - queryString += "function=wsprstat&"; - queryString += "rcall=" + m_call + "&"; - queryString += "rgrid=" + m_grid + "&"; - queryString += "rqrg=" + m_rfreq + "&"; - queryString += "tpct=" + m_tpct + "&"; - queryString += "tqrg=" + m_tfreq + "&"; - queryString += "dbm=" + m_dbm + "&"; - queryString += "version=" + m_vers; - if(m_mode=="WSPR") queryString += "&mode=2"; - if(m_mode=="WSPR-15") queryString += "&mode=15"; - return queryString;; -} - -QString WSPRNet::urlEncodeSpot(QHash const& query) -{ - QString queryString; - queryString += "function=" + query["function"] + "&"; - queryString += "rcall=" + m_call + "&"; - queryString += "rgrid=" + m_grid + "&"; - queryString += "rqrg=" + m_rfreq + "&"; - queryString += "date=" + query["date"] + "&"; - queryString += "time=" + query["time"] + "&"; - queryString += "sig=" + query["sig"] + "&"; - queryString += "dt=" + query["dt"] + "&"; - queryString += "drift=" + query["drift"] + "&"; - queryString += "tqrg=" + query["tqrg"] + "&"; - queryString += "tcall=" + query["tcall"] + "&"; - queryString += "tgrid=" + query["tgrid"] + "&"; - queryString += "dbm=" + query["dbm"] + "&"; - queryString += "version=" + m_vers; - if(m_mode=="WSPR") queryString += "&mode=2"; - if(m_mode=="WSPR-15") queryString += "&mode=15"; - return queryString; + query.addQueryItem ("version", m_vers); + query.addQueryItem ("rcall", m_call); + query.addQueryItem ("rgrid", m_grid); + query.addQueryItem ("rqrg", m_rfreq); + if (m_mode == "WSPR") query.addQueryItem ("mode", "2"); + if (m_mode == "WSPR-15") query.addQueryItem ("mode", "15"); + if (m_mode == "FST4W") + { + query.addQueryItem ("mode", QString::number (static_cast ((TR_period_ / 60.)+.5))); + } + return query; } void WSPRNet::work() { - if (!urlQueue.isEmpty()) { + if (spots_to_send_ && spot_queue_.size ()) + { #if QT_VERSION < QT_VERSION_CHECK (5, 15, 0) - if (QNetworkAccessManager::Accessible != networkManager->networkAccessible ()) { - // try and recover network access for QNAM - networkManager->setNetworkAccessible (QNetworkAccessManager::Accessible); - } + if (QNetworkAccessManager::Accessible != network_manager_->networkAccessible ()) { + // try and recover network access for QNAM + network_manager_->setNetworkAccessible (QNetworkAccessManager::Accessible); + } #endif - QUrl url(urlQueue.dequeue()); - QNetworkRequest request(url); - m_outstandingRequests << networkManager->get(request); - emit uploadStatus(QString {"Uploading Spot %1/%2"}.arg (m_urlQueueSize - urlQueue.size()).arg (m_urlQueueSize)); - } else { - uploadTimer->stop(); - } + QNetworkRequest request (QUrl {wsprNetUrl}); + request.setHeader (QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); + auto const& spot = spot_queue_.dequeue (); + m_outstandingRequests << network_manager_->post (request, spot.query (QUrl::FullyEncoded).toUtf8 ()); + Q_EMIT uploadStatus(QString {"Uploading Spot %1/%2"}.arg (spots_to_send_ - spot_queue_.size()).arg (spots_to_send_)); + } + else + { + upload_timer_.stop (); + } } void WSPRNet::abortOutstandingRequests () { - urlQueue.clear (); + spot_queue_.clear (); for (auto& request : m_outstandingRequests) { request->abort (); } - m_urlQueueSize = 0; } diff --git a/Network/wsprnet.h b/Network/wsprnet.h index d712d5273..29e5e58f8 100644 --- a/Network/wsprnet.h +++ b/Network/wsprnet.h @@ -2,45 +2,58 @@ #define WSPRNET_H #include +#include #include #include -#include +#include #include class QNetworkAccessManager; -class QTimer; class QNetworkReply; class WSPRNet : public QObject { - Q_OBJECT; + Q_OBJECT + + using SpotQueue = QQueue; public: - explicit WSPRNet(QNetworkAccessManager *, QObject *parent = nullptr); - void upload(QString const& call, QString const& grid, QString const& rfreq, QString const& tfreq, - QString const& mode, QString const& tpct, QString const& dbm, QString const& version, - QString const& fileName); - static bool decodeLine(QString const& line, QHash &query); - + explicit WSPRNet (QNetworkAccessManager *, QObject *parent = nullptr); + void upload (QString const& call, QString const& grid, QString const& rfreq, QString const& tfreq, + QString const& mode, float TR_peirod, QString const& tpct, QString const& dbm, + QString const& version, QString const& fileName); + void post (QString const& call, QString const& grid, QString const& rfreq, QString const& tfreq, + QString const& mode, float TR_period, QString const& tpct, QString const& dbm, + QString const& version, QString const& decode_text = QString {}); signals: - void uploadStatus(QString); + void uploadStatus (QString); public slots: - void networkReply(QNetworkReply *); - void work(); - void abortOutstandingRequests (); + void networkReply (QNetworkReply *); + void work (); + void abortOutstandingRequests (); private: - QNetworkAccessManager *networkManager; - QList m_outstandingRequests; - QString m_call, m_grid, m_rfreq, m_tfreq, m_mode, m_tpct, m_dbm, m_vers, m_file; - QQueue urlQueue; - QTimer *uploadTimer; - int m_urlQueueSize; - int m_uploadType; + bool decodeLine (QString const& line, SpotQueue::value_type& query); + SpotQueue::value_type urlEncodeNoSpot (); + SpotQueue::value_type urlEncodeSpot (SpotQueue::value_type& spot); - QString urlEncodeNoSpot(); - QString urlEncodeSpot(QHash const& spot); + QNetworkAccessManager * network_manager_; + QList m_outstandingRequests; + QString m_call; + QString m_grid;; + QString m_rfreq; + QString m_tfreq; + QString m_mode; + QString m_tpct; + QString m_dbm; + QString m_vers; + QString m_file; + float TR_period_; + int spots_to_send_; + SpotQueue spot_queue_; + QTimer upload_timer_; + int m_uploadType; }; #endif // WSPRNET_H diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index ebe312526..db87b2000 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -803,7 +803,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect(&killFileTimer, &QTimer::timeout, this, &MainWindow::killFile); uploadTimer.setSingleShot(true); - connect(&uploadTimer, SIGNAL(timeout()), this, SLOT(uploadSpots())); + connect(&uploadTimer, &QTimer::timeout, [this] () {uploadWSPRSpots ();}); TxAgainTimer.setSingleShot(true); connect(&TxAgainTimer, SIGNAL(timeout()), this, SLOT(TxAgain())); @@ -944,7 +944,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_saveAll=ui->actionSave_all->isChecked(); ui->sbTxPercent->setValue(m_pctx); ui->TxPowerComboBox->setCurrentIndex(int(.3 * m_dBm + .2)); - ui->cbUploadWSPR_Spots->setChecked(m_uploadSpots); + ui->cbUploadWSPR_Spots->setChecked(m_uploadWSPRSpots); if((m_ndepth&7)==1) ui->actionQuickDecode->setChecked(true); if((m_ndepth&7)==2) ui->actionMediumDecode->setChecked(true); if((m_ndepth&7)==3) ui->actionDeepestDecode->setChecked(true); @@ -1118,7 +1118,7 @@ void MainWindow::writeSettings() m_settings->setValue("dBm",m_dBm); m_settings->setValue("RR73",m_send_RR73); m_settings->setValue ("WSPRPreferType1", ui->WSPR_prefer_type_1_check_box->isChecked ()); - m_settings->setValue("UploadSpots",m_uploadSpots); + m_settings->setValue("UploadSpots",m_uploadWSPRSpots); m_settings->setValue("NoOwnCall",ui->cbNoOwnCall->isChecked()); m_settings->setValue ("BandHopping", ui->band_hopping_group_box->isChecked ()); m_settings->setValue ("TRPeriod", ui->sbTR->value ()); @@ -1213,8 +1213,8 @@ void MainWindow::readSettings() on_txrb4_doubleClicked(); } ui->WSPR_prefer_type_1_check_box->setChecked (m_settings->value ("WSPRPreferType1", true).toBool ()); - m_uploadSpots=m_settings->value("UploadSpots",false).toBool(); - if(!m_uploadSpots) ui->cbUploadWSPR_Spots->setStyleSheet("QCheckBox{background-color: yellow}"); + m_uploadWSPRSpots=m_settings->value("UploadSpots",false).toBool(); + if(!m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet("QCheckBox{background-color: yellow}"); ui->cbNoOwnCall->setChecked(m_settings->value("NoOwnCall",false).toBool()); ui->band_hopping_group_box->setChecked (m_settings->value ("BandHopping", false).toBool()); // setup initial value of tx attenuator @@ -1540,7 +1540,7 @@ void MainWindow::dataSink(qint64 frames) if(m_mode=="WSPR") { QStringList t2; QStringList depth_args; - t2 << "-f" << QString {"%1"}.arg (m_dialFreqRxWSPR / 1000000.0, 0, 'f', 6); + t2 << "-f" << QString {"%1"}.arg (m_dialFreqRxWSPR / 1e6, 0, 'f', 6); if((m_ndepth&7)==1) depth_args << "-qB"; //2 pass w subtract, no Block detection, no shift jittering if((m_ndepth&7)==2) depth_args << "-C" << "500" << "-o" << "4"; //3 pass, subtract, Block detection, OSD if((m_ndepth&7)==3) depth_args << "-C" << "500" << "-o" << "4" << "-d"; //3 pass, subtract, Block detect, OSD, more candidates @@ -3112,6 +3112,10 @@ void MainWindow::decodeDone () { if(m_mode!="FT8" or dec_data.params.nzhsym==50) m_nDecodes=0; if(m_mode=="QRA64") m_wideGraph->drawRed(0,0); + if ("FST4W" == m_mode) + { + uploadWSPRSpots (true); // DE station info and trigger posts + } auto tnow = QDateTime::currentDateTimeUtc (); double tdone = fmod(double(tnow.time().second()),m_TRperiod); int mswait; @@ -3210,6 +3214,10 @@ void MainWindow::readFromStdout() //readFromStdout } m_tBlankLine = line_read.left(ntime); } + if ("FST4W" == m_mode) + { + uploadWSPRSpots (true, line_read); + } DecodedText decodedtext0 {QString::fromUtf8(line_read.constData())}; DecodedText decodedtext {QString::fromUtf8(line_read.constData()).remove("TU; ")}; @@ -7786,16 +7794,16 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout } m_nWSPRdecodes=0; ui->DecodeButton->setChecked (false); - if(m_uploadSpots - && m_config.is_transceiver_online ()) { // need working rig control + if (m_uploadWSPRSpots + && m_config.is_transceiver_online ()) { // need working rig control #if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) uploadTimer.start(QRandomGenerator::global ()->bounded (0, 20000)); // Upload delay #else uploadTimer.start(20000 * qrand()/((double)RAND_MAX + 1.0)); // Upload delay #endif } else { - QFile f(QDir::toNativeSeparators(m_config.writeable_data_dir ().absolutePath()) + "/wspr_spots.txt"); - if(f.exists()) f.remove(); + QFile f {QDir::toNativeSeparators (m_config.writeable_data_dir ().absoluteFilePath ("wspr_spots.txt"))}; + if (f.exists ()) f.remove (); } m_RxLog=0; m_startAnother=m_loopall; @@ -7910,23 +7918,35 @@ void MainWindow::WSPR_history(Frequency dialFreq, int ndecodes) } } -void MainWindow::uploadSpots() +void MainWindow::uploadWSPRSpots (bool direct_post, QString const& decode_text) { - // do not spot replays or if rig control not working - if(m_diskData || !m_config.is_transceiver_online ()) return; + // do not spot if disabled, replays, or if rig control not working + if(!m_uploadWSPRSpots || m_diskData || !m_config.is_transceiver_online ()) return; if(m_uploading) { qDebug() << "Previous upload has not completed, spots were lost"; wsprNet->abortOutstandingRequests (); m_uploading = false; } - QString rfreq = QString("%1").arg(0.000001*(m_dialFreqRxWSPR + 1500), 0, 'f', 6); - QString tfreq = QString("%1").arg(0.000001*(m_dialFreqRxWSPR + - ui->TxFreqSpinBox->value()), 0, 'f', 6); - wsprNet->upload(m_config.my_callsign(), m_config.my_grid(), rfreq, tfreq, - m_mode, QString::number(ui->autoButton->isChecked() ? m_pctx : 0), - QString::number(m_dBm), version(), - QDir::toNativeSeparators(m_config.writeable_data_dir ().absolutePath()) + "/wspr_spots.txt"); - m_uploading = true; + QString rfreq = QString("%1").arg((m_dialFreqRxWSPR + 1500) / 1e6, 0, 'f', 6); + QString tfreq = QString("%1").arg((m_dialFreqRxWSPR + + ui->TxFreqSpinBox->value()) / 1e6, 0, 'f', 6); + if (!direct_post) + { + wsprNet->upload (m_config.my_callsign (), m_config.my_grid (), rfreq, tfreq, + m_mode, m_TRperiod, QString::number (ui->autoButton->isChecked () ? m_pctx : 0), + QString::number (m_dBm), version (), + m_config.writeable_data_dir ().absoluteFilePath ("wspr_spots.txt")); + } + else + { + wsprNet->post (m_config.my_callsign (), m_config.my_grid (), rfreq, tfreq, + m_mode, m_TRperiod, QString::number (ui->autoButton->isChecked () ? m_pctx : 0), + QString::number (m_dBm), version (), decode_text); + } + if (!decode_text.size ()) + { + m_uploading = true; + } } void MainWindow::uploadResponse(QString response) @@ -7960,9 +7980,9 @@ void MainWindow::on_sbTxPercent_valueChanged(int n) void MainWindow::on_cbUploadWSPR_Spots_toggled(bool b) { - m_uploadSpots=b; - if(m_uploadSpots) ui->cbUploadWSPR_Spots->setStyleSheet(""); - if(!m_uploadSpots) ui->cbUploadWSPR_Spots->setStyleSheet( + m_uploadWSPRSpots=b; + if(m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet(""); + if(!m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet( "QCheckBox{background-color: yellow}"); } diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index e84d3ca1b..897e963db 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -282,7 +282,7 @@ private slots: void on_sbTxPercent_valueChanged(int n); void on_cbUploadWSPR_Spots_toggled(bool b); void WSPR_config(bool b); - void uploadSpots(); + void uploadWSPRSpots (bool direct_post = false, QString const& decode_text = QString {}); void TxAgain(); void uploadResponse(QString response); void on_WSPRfreqSpinBox_valueChanged(int n); @@ -500,7 +500,7 @@ private: QString m_tBlankLine; bool m_bShMsgs; bool m_bSWL; - bool m_uploadSpots; + bool m_uploadWSPRSpots; bool m_uploading; bool m_txNext; bool m_grid6; From 7e24f9be206ea55641080680e02d4f3f16a4bd92 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 26 Jul 2020 10:50:05 -0400 Subject: [PATCH 326/520] Do not write an FFTW wisdom file if usage message has been issued. --- lib/jt9.f90 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/jt9.f90 b/lib/jt9.f90 index 9cfaa9dc7..a08a20cb2 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -79,7 +79,7 @@ program jt9 character(len=6) :: mygrid='', hisgrid='EN37' common/patience/npatience,nthreads common/decstats/ntry65a,ntry65b,n65a,n65b,num9,numfano - data npatience/1/,nthreads/1/ + data npatience/1/,nthreads/1/,wisfile/' '/ iwspr=0 nsubmode = 0 @@ -325,8 +325,8 @@ program jt9 999 continue ! Output decoder statistics call fini_timer () -! Save wisdom and free memory - iret=fftwf_export_wisdom_to_filename(wisfile) +! Save FFTW wisdom and free memory + if(len(trim(wisfile)).gt.0) iret=fftwf_export_wisdom_to_filename(wisfile) call four2a(a,-1,1,1,1) call filbig(a,-1,1,0.0,0,0,0,0,0) !used for FFT plans call fftwf_cleanup_threads() From 843d491fdbb58bd9812e6e87393bec083e5a2aa8 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 26 Jul 2020 12:31:33 +0100 Subject: [PATCH 327/520] Mock PSKReporter.info Python script --- Network/tests/PSKReporter/PSKReporter.IESpec | 12 +++ Network/tests/PSKReporter/listener.py | 94 ++++++++++++++++++++ Network/tests/PSKReporter/python-ipfix.patch | 64 +++++++++++++ 3 files changed, 170 insertions(+) create mode 100644 Network/tests/PSKReporter/PSKReporter.IESpec create mode 100644 Network/tests/PSKReporter/listener.py create mode 100644 Network/tests/PSKReporter/python-ipfix.patch diff --git a/Network/tests/PSKReporter/PSKReporter.IESpec b/Network/tests/PSKReporter/PSKReporter.IESpec new file mode 100644 index 000000000..8e95ffd08 --- /dev/null +++ b/Network/tests/PSKReporter/PSKReporter.IESpec @@ -0,0 +1,12 @@ +senderCallsign(30351/1)[65535] +receiverCallsign(30351/2)[65535] +senderLocator(30351/3)[65535] +receiverLocator(30351/4)[65535] +frequency(30351/5)[4] +sNR(30351/6)[1] +iMD(30351/7)[1] +decoderSoftware(30351/8)[65535] +antennaInformation(30351/9)[65535] +mode(30351/10)[65535] +informationSource(30351/11)[1] +persistentIdentifier(30351/12)[65535] diff --git a/Network/tests/PSKReporter/listener.py b/Network/tests/PSKReporter/listener.py new file mode 100644 index 000000000..b2e830e34 --- /dev/null +++ b/Network/tests/PSKReporter/listener.py @@ -0,0 +1,94 @@ +from __future__ import unicode_literals +import sys +import argparse +import logging +import time +import threading +import ipfix.ie +import ipfix.reader +import ipfix.message +import socketserver +import socket + +class IPFixDatagramHandler (socketserver.DatagramRequestHandler): + + def handle (self): + logging.info (f'Connection from {self.client_address}') + try: + self.server.msg_buffer.from_bytes (self.packet) + for rec in self.server.msg_buffer.namedict_iterator (): + logging.info (f't: {self.server.msg_buffer.get_export_time()}: {rec}') + except: + logging.error ('Unexpected exception:', sys.exc_info ()[0]) + + +class IPFixUdpServer (socketserver.UDPServer): + + def __init__ (self, *args, **kwargs): + + self.msg_buffer = ipfix.message.MessageBuffer () + super ().__init__ (*args, **kwargs) + +class IPFixStreamHandler (socketserver.StreamRequestHandler): + + def handle (self): + logging.info (f'Connection from {self.client_address}') + try: + msg_reader = ipfix.reader.from_stream (self.rfile) + for rec in msg_reader.namedict_iterator (): + logging.info (f't: {msg_reader.msg.get_export_time()}: {rec}') + logging.info (f'{self.client_address} closed their connection') + except ConnectionResetError: + logging.info (f'{self.client_address} connection reset') + except TimeoutError: + logging.info (f'{self.client_address} connection timed out') + except: + logging.error ('Unexpected exception:', sys.exc_info ()[0]) + + +if __name__ == "__main__": + INTERFACE, PORT = '', 4739 + + ap = argparse.ArgumentParser (description='Dump IPFIX data collectedover UDP') + ap.add_argument ('-l', '--log', metavar='loglevel', default='WARNING', help='logging level') + ap.add_argument ('-s', '--spec', metavar='specfile', help='iespec file to read') + args = ap.parse_args () + + log_level = getattr (logging, args.log.upper (), None) + if not isinstance (log_level, int): + raise ValueError (f'Invalif log level: {log_level}') + logging.basicConfig ( + level=log_level + , format='[%(levelname)s] (%(threadName)-10s) %(message)s' + , + ) + + logging.info (f'Starting IPFix servers on service port: {PORT}') + + ipfix.ie.use_iana_default () + ipfix.ie.use_5103_default () + if args.spec: + ipfix.ie.use_specfile (args.spec) + + udp_server = IPFixUdpServer ((INTERFACE, PORT), IPFixDatagramHandler) + udp_thread = threading.Thread (name='UDP Server', target=udp_server.serve_forever) + + tcp_server = socketserver.TCPServer ((INTERFACE, PORT), IPFixStreamHandler) + tcp_server.allow_reuse_address = True + tcp_server.socket.setsockopt (socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) + tcp_thread = threading.Thread (name='TCP/IP Server', target=tcp_server.serve_forever) + + udp_thread.start () + tcp_thread.start () + + try: + while True: + time.sleep (1000) + except KeyboardInterrupt: + logging.warning ('Closing down servers') + udp_server.shutdown () + tcp_server.shutdown () + + udp_thread.join () + tcp_thread.join () + logging.info ('Servers closed') diff --git a/Network/tests/PSKReporter/python-ipfix.patch b/Network/tests/PSKReporter/python-ipfix.patch new file mode 100644 index 000000000..cb6797094 --- /dev/null +++ b/Network/tests/PSKReporter/python-ipfix.patch @@ -0,0 +1,64 @@ +The following changes since commit e487dfbead9965c1a251d110dc55039a7ba4afef: + + sphinx doc update (2017-09-20 16:07:22 +0200) + +are available in the Git repository at: + + git@github.com:g4wjs/python-ipfix.git varlen-and-padding + +for you to fetch changes up to 6dcc106f22d25ac21b27f8ccb9b82be12e7eb18e: + + Parse and emit data elements correctly when variable length items included (2020-06-19 19:53:33 +0100) + +---------------------------------------------------------------- +Bill Somerville (2): + Allow for alignment padding when parsing sets + Parse and emit data elements correctly when variable length items included + + ipfix/message.py | 3 ++- + ipfix/template.py | 4 ++-- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/ipfix/message.py b/ipfix/message.py +index 0af2fad..71c1328 100644 +--- a/ipfix/message.py ++++ b/ipfix/message.py +@@ -398,7 +398,7 @@ class MessageBuffer(object): + offset += _sethdr_st.size # skip set header in decode + if setid == template.TEMPLATE_SET_ID or\ + setid == template.OPTIONS_SET_ID: +- while offset < setend: ++ while offset + 4 < setend: # allow for padding up to 4 byte alignment + (tmpl, offset) = template.decode_template_from( + self.mbuf, offset, setid) + # FIXME handle withdrawal +@@ -431,6 +431,7 @@ class MessageBuffer(object): + # KeyError on template lookup - unknown data set + self.unknown_data_set_hook(self, + self.mbuf[offset-_sethdr_st.size:setend]) ++ offset = setend # real end may be greater that accumulated offset + + def namedict_iterator(self): + """ +diff --git a/ipfix/template.py b/ipfix/template.py +index 1203e55..26cd8c1 100644 +--- a/ipfix/template.py ++++ b/ipfix/template.py +@@ -187,7 +187,7 @@ class Template(object): + offset += packplan.st.size + + # short circuit on no varlen +- if not self.varlenslice: ++ if self.varlenslice is None: + return (vals, offset) + + # direct iteration over remaining IEs +@@ -239,7 +239,7 @@ class Template(object): + offset += packplan.st.size + + # shortcircuit no varlen +- if not self.varlenslice: ++ if self.varlenslice is None: + return offset + + # direct iteration over remaining IEs From 1f524026f912a9ded4ca3aa5291348313fa7dd12 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 26 Jul 2020 15:55:17 +0100 Subject: [PATCH 328/520] Fix merging issue --- Network/MessageClient.cpp | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/Network/MessageClient.cpp b/Network/MessageClient.cpp index 54abd9252..b545dd44e 100644 --- a/Network/MessageClient.cpp +++ b/Network/MessageClient.cpp @@ -428,24 +428,22 @@ MessageClient::MessageClient (QString const& id, QString const& version, QString { connect (&*m_ #if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) - connect (&*m_, static_cast (&impl::error) - , [this] (impl::SocketError e) { + , static_cast (&impl::error), [this] (impl::SocketError e) #else - connect (&*m_, &impl::errorOccurred, [this] (impl::SocketError e) { + , &impl::errorOccurred, [this] (impl::SocketError e) #endif + { #if defined (Q_OS_WIN) - // take this out when Qt 5.5 stops doing this spuriously - if (e != impl::NetworkError - // not interested in this with UDP socket - && e != impl::ConnectionRefusedError) + if (e != impl::NetworkError // take this out when Qt 5.5 stops doing this spuriously + && e != impl::ConnectionRefusedError) // not interested in this with UDP socket + { #else - Q_UNUSED (e); + { + Q_UNUSED (e); #endif - { - Q_EMIT error (m_->errorString ()); - } - }); - + Q_EMIT error (m_->errorString ()); + } + }); set_server (server); } From 8b0b2c15b23af322998ed4c66edac817f6a69039 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 26 Jul 2020 15:55:54 +0100 Subject: [PATCH 329/520] Final adjustments for moving from test to live PSKReporter spotting --- Network/PSKReporter.cpp | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/Network/PSKReporter.cpp b/Network/PSKReporter.cpp index 5ffd87113..56f773896 100644 --- a/Network/PSKReporter.cpp +++ b/Network/PSKReporter.cpp @@ -32,9 +32,8 @@ namespace { - // constexpr QLatin1String HOST {"report.pskreporter.info"}; + constexpr QLatin1String HOST {"report.pskreporter.info"}; // constexpr QLatin1String HOST {"127.0.0.1"}; - constexpr QLatin1String HOST {"192.168.1.195"}; constexpr quint16 SERVICE_PORT {4739}; // constexpr quint16 SERVICE_PORT {14739}; constexpr int MIN_SEND_INTERVAL {15}; // in seconds @@ -254,7 +253,7 @@ void PSKReporter::impl::build_preamble (QDataStream& message) << ++sequence_number_ // Sequence Number << observation_id_; // Observation Domain ID - qDebug () << "PSKReporter::impl::build_preamble: send_descriptors_:" << send_descriptors_; + // qDebug () << "PSKReporter::impl::build_preamble: send_descriptors_:" << send_descriptors_; if (send_descriptors_) { --send_descriptors_; @@ -319,7 +318,7 @@ void PSKReporter::impl::build_preamble (QDataStream& message) } } - qDebug () << "PSKReporter::impl::build_preamble: send_receiver_data_:" << send_receiver_data_; + // qDebug () << "PSKReporter::impl::build_preamble: send_receiver_data_:" << send_receiver_data_; // if (send_receiver_data_) { // --send_receiver_data_; @@ -348,7 +347,7 @@ void PSKReporter::impl::build_preamble (QDataStream& message) void PSKReporter::impl::send_report (bool send_residue) { check_connection (); - qDebug () << "PSKReporter::impl::send_report: send_residue:" << send_residue; + // qDebug () << "PSKReporter::impl::send_report: send_residue:" << send_residue; if (QAbstractSocket::ConnectedState != socket_->state ()) return; QDataStream message {&payload_, QIODevice::WriteOnly | QIODevice::Append}; @@ -356,13 +355,13 @@ void PSKReporter::impl::send_report (bool send_residue) if (!payload_.size ()) { - qDebug () << "PSKReporter::impl::send_report: building header"; + // qDebug () << "PSKReporter::impl::send_report: building header"; // Build header, optional descriptors, and receiver information build_preamble (message); } auto flush = flushing () || send_residue; - qDebug () << "PSKReporter::impl::send_report: flush:" << flush; + // qDebug () << "PSKReporter::impl::send_report: flush:" << flush; while (spots_.size () || flush) { if (!payload_.size ()) @@ -377,7 +376,7 @@ void PSKReporter::impl::send_report (bool send_residue) tx_out << quint16 (0x50e3) // Template ID << quint16 (0u); // Length (place-holder) - qDebug () << "PSKReporter::impl::send_report: set data set header"; + // qDebug () << "PSKReporter::impl::send_report: set data set header"; } // insert any residue @@ -385,7 +384,7 @@ void PSKReporter::impl::send_report (bool send_residue) { tx_out.writeRawData (tx_residue_.constData (), tx_residue_.size ()); tx_residue_.clear (); - qDebug () << "PSKReporter::impl::send_report: inserted data residue"; + // qDebug () << "PSKReporter::impl::send_report: inserted data residue"; } while (spots_.size () || flush) @@ -394,7 +393,7 @@ void PSKReporter::impl::send_report (bool send_residue) if (spots_.size ()) { auto const& spot = spots_.dequeue (); - qDebug () << "PSKReporter::impl::send_report: processing spotted call:" << spot.call_; + // qDebug () << "PSKReporter::impl::send_report: processing spotted call:" << spot.call_; // Sender information writeUtfString (tx_out, spot.call_); @@ -420,7 +419,7 @@ void PSKReporter::impl::send_report (bool send_residue) if (len <= MAX_PAYLOAD_LENGTH) { tx_data_size = tx_data_.size (); - qDebug () << "PSKReporter::impl::send_report: sending short payload:" << tx_data_size; + // qDebug () << "PSKReporter::impl::send_report: sending short payload:" << tx_data_size; } QByteArray tx {tx_data_.left (tx_data_size)}; QDataStream out {&tx, QIODevice::WriteOnly | QIODevice::Append}; @@ -436,7 +435,7 @@ void PSKReporter::impl::send_report (bool send_residue) // Send data to PSK Reporter site socket_->write (payload_); // TODO: handle errors - qDebug () << "PSKReporter::impl::send_report: sent payload:" << payload_.size () << "observation id:" << observation_id_; + // qDebug () << "PSKReporter::impl::send_report: sent payload:" << payload_.size () << "observation id:" << observation_id_; flush = false; // break loop message.device ()->seek (0u); payload_.clear (); // Fresh message @@ -444,7 +443,7 @@ void PSKReporter::impl::send_report (bool send_residue) tx_residue_ = tx_data_.right (tx_data_.size () - tx_data_size); tx_out.device ()->seek (0u); tx_data_.clear (); - qDebug () << "PSKReporter::impl::send_report: payload sent residue length:" << tx_residue_.size (); + // qDebug () << "PSKReporter::impl::send_report: payload sent residue length:" << tx_residue_.size (); break; } } From 5994dd8a0dbbe834ba390386ffe3b876896ff8a1 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 26 Jul 2020 21:56:10 +0100 Subject: [PATCH 330/520] Add a missing file --- Network/NetworkAccessManager.cpp | 62 ++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 Network/NetworkAccessManager.cpp diff --git a/Network/NetworkAccessManager.cpp b/Network/NetworkAccessManager.cpp new file mode 100644 index 000000000..e0b06be71 --- /dev/null +++ b/Network/NetworkAccessManager.cpp @@ -0,0 +1,62 @@ +#include "Network/NetworkAccessManager.hpp" + +#include +#include + +#include "moc_NetworkAccessManager.cpp" + +NetworkAccessManager::NetworkAccessManager (QWidget * parent) + : QNetworkAccessManager (parent) + , parent_widget_ {parent} +{ + // handle SSL errors that have not been cached as allowed + // exceptions and offer them to the user to add to the ignored + // exception cache + connect (this, &QNetworkAccessManager::sslErrors, this, &NetworkAccessManager::filter_SSL_errors); +} + +void NetworkAccessManager::filter_SSL_errors (QNetworkReply * reply, QList const& errors) +{ + QString message; + QList new_errors; + for (auto const& error: errors) + { + if (!allowed_ssl_errors_.contains (error)) + { + new_errors << error; + message += '\n' + reply->request ().url ().toDisplayString () + ": " + error.errorString (); + } + } + if (new_errors.size ()) + { + QString certs; + for (auto const& cert : reply->sslConfiguration ().peerCertificateChain ()) + { + certs += cert.toText () + '\n'; + } + if (MessageBox::Ignore == MessageBox::query_message (parent_widget_ + , tr ("Network SSL/TLS Errors") + , message, certs + , MessageBox::Abort | MessageBox::Ignore)) + { + // accumulate new SSL error exceptions that have been allowed + allowed_ssl_errors_.append (new_errors); + reply->ignoreSslErrors (allowed_ssl_errors_); + } + } + else + { + // no new exceptions so silently ignore the ones already allowed + reply->ignoreSslErrors (allowed_ssl_errors_); + } +} + +QNetworkReply * NetworkAccessManager::createRequest (Operation operation, QNetworkRequest const& request + , QIODevice * outgoing_data) +{ + auto reply = QNetworkAccessManager::createRequest (operation, request, outgoing_data); + // errors are usually certificate specific so passing all cached + // exceptions here is ok + reply->ignoreSslErrors (allowed_ssl_errors_); + return reply; +} From f6d16ea70c6cb2fd3c122a64b528bdc21579cccb Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 26 Jul 2020 22:42:14 +0100 Subject: [PATCH 331/520] Remove extraneous include --- Network/PSKReporter.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Network/PSKReporter.cpp b/Network/PSKReporter.cpp index 56f773896..f0f9bd976 100644 --- a/Network/PSKReporter.cpp +++ b/Network/PSKReporter.cpp @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include From b0f76b2fe71fcc3abd5a87b83c52b58c66048e6e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 26 Jul 2020 22:58:17 +0100 Subject: [PATCH 332/520] Backwards compatibility with Qt <5.11 --- Network/PSKReporter.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Network/PSKReporter.cpp b/Network/PSKReporter.cpp index f0f9bd976..06d5d27e5 100644 --- a/Network/PSKReporter.cpp +++ b/Network/PSKReporter.cpp @@ -96,7 +96,7 @@ public: { // handle re-opening asynchronously auto connection = QSharedPointer::create (); - *connection = connect (socket_.get (), &QAbstractSocket::disconnected, [this, connection] () { + *connection = connect (socket_.data (), &QAbstractSocket::disconnected, [this, connection] () { qDebug () << "PSKReporter::impl::check_connection: disconnected, socket state:" << socket_->state (); disconnect (*connection); check_connection (); @@ -150,7 +150,7 @@ public: #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) connect (socket_.get (), &QAbstractSocket::errorOccurred, this, &PSKReporter::impl::handle_socket_error); #else - connect (socket_.get (), QOverload::of (&QAbstractSocket::error), this, &PSKReporter::impl::handle_socket_error); + connect (socket_.data (), QOverload::of (&QAbstractSocket::error), this, &PSKReporter::impl::handle_socket_error); #endif // use this for pseudo connection with UDP, allows us to use From b4bbc44d5b04615d29e024c223cb962a5242263c Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 27 Jul 2020 00:51:12 +0100 Subject: [PATCH 333/520] Invoke user_hardware correctly --- widgets/mainwindow.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index c0c2be4a4..323305287 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -670,7 +670,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, } }); connect(&p1, &QProcess::started, [this] () { - showStatusMessage (QString {"Started: %1 \"%2\""}.arg (p1.program ()).arg (p1.arguments ().join (QLatin1String {"\" \""}))); + showStatusMessage (QString {"Started: %1 \"%2\""}.arg (p1.program ()).arg (p1.arguments ().join ("\" \""))); }); connect(&p1, &QProcess::readyReadStandardOutput, this, &MainWindow::p1ReadFromStdout); #if QT_VERSION < QT_VERSION_CHECK (5, 6, 0) @@ -699,15 +699,17 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, #else connect(&p3, &QProcess::errorOccurred, [this] (QProcess::ProcessError error) { #endif -#if not defined(Q_OS_WIN) +#if !defined(Q_OS_WIN) if (QProcess::FailedToStart != error) +#else + if (QProcess::Crashed != error) #endif { subProcessError (&p3, error); } }); connect(&p3, &QProcess::started, [this] () { - showStatusMessage (QString {"Started: %1 \"%2\""}.arg (p3.program ()).arg (p3.arguments ().join (QLatin1String {"\" \""}))); + showStatusMessage (QString {"Started: %1 \"%2\""}.arg (p3.program ()).arg (p3.arguments ().join ("\" \""))); }); connect(&p3, static_cast (&QProcess::finished), [this] (int exitCode, QProcess::ExitStatus status) { @@ -7913,7 +7915,7 @@ void MainWindow::WSPR_scheduling () { m_WSPR_tx_next = false; if (m_config.is_transceiver_online () // need working rig control for hopping - && !m_config.is_dummy_rig () + // && !m_config.is_dummy_rig () && ui->band_hopping_group_box->isChecked ()) { auto hop_data = m_WSPR_band_hopping.next_hop (m_auto); qDebug () << "hop data: period:" << hop_data.period_name_ @@ -7925,7 +7927,7 @@ void MainWindow::WSPR_scheduling () ui->bandComboBox->setCurrentIndex (hop_data.frequencies_index_); on_bandComboBox_activated (hop_data.frequencies_index_); // Execute user's hardware controller - auto const& band = m_config.bands ()->find (m_freqNominal).remove ('m'); + auto band = m_config.bands ()->find (m_freqNominal).remove ('m'); #if defined(Q_OS_WIN) // On windows we use CMD.EXE to find and execute the // user_hardware executable. This means that the first matching @@ -7935,13 +7937,13 @@ void MainWindow::WSPR_scheduling () // language of choice, and place the file anywhere on the PATH // environment variable. Equivalent to typing user_hardware // without any path or extension at the CMD.EXE prompt. - p3.start("CMD", QStringList {QLatin1String {"/C"}, QLatin1String {"user_hardware"}, band}); + p3.start("CMD", QStringList {"/C", "user_hardware", band}); #else // On non-Windows systems we expect the user_hardware executable // to be anywhere in the paths specified in the PATH environment // variable path list, and executable. Equivalent to typing // user_hardware without any path at the shell prompt. - p3.start(QLatin1String {"user_hardware"}, QStringList {band}); + p3.start("user_hardware", QStringList {band}); #endif // Produce a short tuneup signal From 3de14a5436210a1b4a3b31fbe0c324591c8adda1 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sun, 26 Jul 2020 19:31:20 -0500 Subject: [PATCH 334/520] Tweak SNR calibration. --- lib/fst4_decode.f90 | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 9626c7114..c3e163434 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -552,9 +552,13 @@ contains do i=1,NN xsig=xsig+s4(itone(i),i)**2 enddo - arg=400.0*(xsig/base)-1.0 + arg=600.0*(xsig/base)-1.0 if(arg.gt.0.0) then - xsnr=10*log10(arg)-21.0-11.7*log10(nsps/800.0) + xsnr=10*log10(arg)-35.5-12.5*log10(nsps/8200.0) + if(ntrperiod.eq. 15) xsnr=xsnr+2 + if(ntrperiod.eq. 30) xsnr=xsnr+1 + if(ntrperiod.eq. 900) xsnr=xsnr+1 + if(ntrperiod.eq.1800) xsnr=xsnr+2 else xsnr=-99.9 endif From a2ad0be85b57ef6b7c6ce67d661cabe6eb59d4fb Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 27 Jul 2020 12:19:47 +0100 Subject: [PATCH 335/520] Use shell to execute user_hardware via PATH --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 323305287..487f2cbf8 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -7943,7 +7943,7 @@ void MainWindow::WSPR_scheduling () // to be anywhere in the paths specified in the PATH environment // variable path list, and executable. Equivalent to typing // user_hardware without any path at the shell prompt. - p3.start("user_hardware", QStringList {band}); + p3.start("/bin/sh", QStringList {"-c", "user_hardware " + band}); #endif // Produce a short tuneup signal From bb927a611510f0f7e8fff95d0757a046bd1a8fde Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 27 Jul 2020 13:13:04 +0100 Subject: [PATCH 336/520] Handle missing user_hardware on non-Windows systems --- widgets/mainwindow.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 487f2cbf8..dc3002462 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -719,6 +719,12 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, // run the executable. CMD.EXE returns exit code 1 when it // can't find the target executable. if (exitCode != 1) // CMD.EXE couldn't find file to execute +#else + // We forgo detecting user_hardware failures with exit + // code 127 non-Windows. This is because we use /bin/sh to + // run the executable. /bin/sh returns exit code 127 when it + // can't find the target executable. + if (exitCode != 127) // /bin/sh couldn't find file to execute #endif { subProcessFailed (&p3, exitCode, status); From 79be2a7790364139f6d90a150745164e9c380fa8 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 27 Jul 2020 08:27:16 -0400 Subject: [PATCH 337/520] Reformat the fort.21 output. --- lib/fst4_decode.f90 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 9626c7114..dfa9c912a 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -565,9 +565,10 @@ contains qual=0. fsig=fc_synced - 1.5*hmod*baud if(ex) then - write(21,'(i6.6,8i6,f7.1,f10.2,f7.1,1x,f7.2,1x,f7.1,1x,a37,f5.3)') & - nutc,icand,itry,nsyncoh,iaptype,ijitter,ntype,nsync_qual, & - nharderrors,dmin,sync,xsnr,xdt,fsig,msg,w50 + write(21,3021) nutc,icand,itry,nsyncoh,iaptype, & + ijitter,ntype,nsync_qual,nharderrors,dmin, & + sync,xsnr,xdt,fsig,w50,trim(msg) +3021 format(i6.6,6i3,2i4,f6.1,f7.2,f6.1,f6.2,f7.1,f7.3,1x,a) flush(21) endif call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & From 236e334e71dccb2d3afb7140be44016c0a10645a Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 27 Jul 2020 09:55:49 -0400 Subject: [PATCH 338/520] *** TEMPORARY *** Allow transmitting FST4-15A and FST4-15B simultaneously. --- widgets/mainwindow.cpp | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 93c012bb7..97ab225ab 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3848,10 +3848,7 @@ void MainWindow::guiUpdate() } } - QString t = QString::fromStdString(message).trimmed(); - bool both=(t=="CQ BOTH K1JT FN20" or t=="CQ BOTH K9AN EN50"); - - if(m_modeTx=="FT8" or both) { + if(m_modeTx=="FT8") { if(SpecOp::FOX==m_config.special_op_id() and ui->tabWidget->currentIndex()==2) { foxTxSequencer(); } else { @@ -3924,20 +3921,22 @@ void MainWindow::guiUpdate() float f0=ui->TxFreqSpinBox->value() - m_XIT + 1.5*dfreq; int nwave=(nsym+2)*nsps; int icmplx=0; - - float wave_both[15*48000]; - if(both) { - memcpy(wave_both,foxcom_.wave,4*15*48000); //Copy the FT8 wave[] into wave_both[] - f0 += 200; - } gen_fst4wave_(const_cast(itone),&nsym,&nsps,&nwave, &fsample,&hmod,&f0,&icmplx,foxcom_.wave,foxcom_.wave); + + QString t = QString::fromStdString(message).trimmed(); + bool both=(t=="CQ BOTH K1JT FN20" or t=="CQ BOTH K9AN EN50"); if(both) { + float wave_both[15*48000]; + memcpy(wave_both,foxcom_.wave,4*15*48000); //Copy wave[] into wave_both[] + f0=f0 + 200 + 25; + hmod=2; + gen_fst4wave_(const_cast(itone),&nsym,&nsps,&nwave, + &fsample,&hmod,&f0,&icmplx,foxcom_.wave,foxcom_.wave); for(int i=0; i<15*48000; i++) { foxcom_.wave[i]=0.5*(wave_both[i] + foxcom_.wave[i]); } } - } if(SpecOp::EU_VHF==m_config.special_op_id()) { From 080e21f6fc09965470a479177e86e9251630ee6a Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 27 Jul 2020 15:01:09 +0100 Subject: [PATCH 339/520] Remove testing code --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index dc3002462..1e5b911fb 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -7921,7 +7921,7 @@ void MainWindow::WSPR_scheduling () { m_WSPR_tx_next = false; if (m_config.is_transceiver_online () // need working rig control for hopping - // && !m_config.is_dummy_rig () + && !m_config.is_dummy_rig () && ui->band_hopping_group_box->isChecked ()) { auto hop_data = m_WSPR_band_hopping.next_hop (m_auto); qDebug () << "hop data: period:" << hop_data.period_name_ From 884854223c3df5b3855870d0bf1afb9ceb880418 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 27 Jul 2020 14:02:33 -0400 Subject: [PATCH 340/520] Add computation of an average spectrum of unmodulated FST4 signals after decoding. --- lib/fst4_decode.f90 | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 54761b38b..83a6f8295 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -821,6 +821,7 @@ contains complex, allocatable :: cwave(:) !Reconstructed complex signal complex, allocatable :: g(:) !Channel gain, g(t) in QEX paper real,allocatable :: ss(:) !Computed power spectrum of g(t) + real,allocatable,save :: ssavg(:) !Computed power spectrum of g(t) integer itone(160) !Tones for this message integer*2 iwave(nmax) !Raw Rx data integer hmod !Modulation index @@ -907,6 +908,22 @@ contains 1010 format(f12.6,f12.6) enddo + if(nsps.eq.720) then + ia=101.0/df + if(ncall.eq.1) then + allocate(ssavg(-ia:ia)) + ssavg=0. + endif + rewind 53 + do i=-ia,ia !Find smax in +/- 1 Hz around 0. + j=i + if(j.lt.0) j=i+nfft + ssavg(i)=ssavg(i) + real(g(j))**2 + aimag(g(j))**2 + write(53,1020) i*df,ssavg(i) +1020 format(f12.6,e12.3) + enddo + endif + return end subroutine write_ref From 3bf070938b5f461e7156b7a048ed4f6cbb197455 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 27 Jul 2020 19:48:13 +0100 Subject: [PATCH 341/520] Enable Tx percentage spin box in WSPR and random FST4W modes --- widgets/mainwindow.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index aa3a931f8..9a894774b 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -6565,6 +6565,7 @@ void MainWindow::WSPR_config(bool b) ui->label_7->setVisible(!b and ui->cbMenus->isChecked()); ui->logQSOButton->setVisible(!b); ui->DecodeButton->setEnabled(!b); + ui->sbTxPercent->setEnabled (m_mode != "FST4W" || "Random" == ui->RoundRobin->currentText ()); ui->band_hopping_group_box->setVisible(true); ui->RoundRobin->setVisible(m_mode=="FST4W"); ui->RoundRobin->lineEdit()->setAlignment(Qt::AlignCenter); From 6cb72a5f3ec8eab90313d5341de3bab0a33fee9e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 27 Jul 2020 19:49:39 +0100 Subject: [PATCH 342/520] Remove duplicate ALL.TXT Tx report in beacon modes --- widgets/mainwindow.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 9a894774b..bd19a21d7 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4103,14 +4103,15 @@ void MainWindow::guiUpdate() m_msgSent0 = current_message; } -// if(m_mode!="FT4") { - if(!m_tune) write_all("Tx",m_currentMessage); - - if (m_config.TX_messages () && !m_tune && SpecOp::FOX!=m_config.special_op_id()) { - ui->decodedTextBrowser2->displayTransmittedText(current_message, m_modeTx, - ui->TxFreqSpinBox->value(),m_bFastMode,m_TRperiod); + if (m_mode != "FST4W" && m_mode != "WSPR") + { + if(!m_tune) write_all("Tx",m_currentMessage); + if (m_config.TX_messages () && !m_tune && SpecOp::FOX!=m_config.special_op_id()) + { + ui->decodedTextBrowser2->displayTransmittedText(current_message, m_modeTx, + ui->TxFreqSpinBox->value(),m_bFastMode,m_TRperiod); + } } -// } switch (m_ntx) { From 08d20e4366ce73baaaacd5fa66cbae9aa625edf6 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 27 Jul 2020 19:50:34 +0100 Subject: [PATCH 343/520] Add some basic QDateTime rounding/truncation functions --- qt_helpers.cpp | 13 +++++++++++++ qt_helpers.hpp | 6 ++++++ 2 files changed, 19 insertions(+) diff --git a/qt_helpers.cpp b/qt_helpers.cpp index 62def121b..3f41d0f87 100644 --- a/qt_helpers.cpp +++ b/qt_helpers.cpp @@ -5,6 +5,7 @@ #include #include #include +#include QString font_as_stylesheet (QFont const& font) { @@ -35,3 +36,15 @@ void update_dynamic_property (QWidget * widget, char const * property, QVariant widget->style ()->polish (widget); widget->update (); } + +QDateTime qt_round_date_time_to (QDateTime dt, int seconds) +{ + dt.setSecsSinceEpoch (dt.addSecs (seconds - 1).toSecsSinceEpoch () / seconds * seconds); + return dt; +} + +QDateTime qt_truncate_date_time_to (QDateTime dt, int seconds) +{ + dt.setSecsSinceEpoch (dt.toSecsSinceEpoch () / seconds * seconds); + return dt; +} diff --git a/qt_helpers.hpp b/qt_helpers.hpp index 33f501437..638c50e2a 100644 --- a/qt_helpers.hpp +++ b/qt_helpers.hpp @@ -69,6 +69,12 @@ QString font_as_stylesheet (QFont const&); // conditional style sheet updates void update_dynamic_property (QWidget *, char const * property, QVariant const& value); +// round a QDateTime instance to an interval +QDateTime qt_round_date_time_to (QDateTime dt, int seconds); + +// truncate a QDateTime to an interval +QDateTime qt_truncate_date_time_to (QDateTime dt, int seconds); + template class VPtr { From 0f3fc3d15c9031953015ead469c0df541c265ae7 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 27 Jul 2020 19:51:56 +0100 Subject: [PATCH 344/520] Correct time on beacon mode Tx prints in decodes window --- widgets/mainwindow.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index bd19a21d7..bcf4361e6 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4291,7 +4291,7 @@ void MainWindow::startTx2() if (m_config.TX_messages ()) { t = " Transmitting " + m_mode + " ----------------------- " + m_config.bands ()->find (m_freqNominal); - t=beacon_start_time () + ' ' + t.rightJustified (66, '-'); + t=beacon_start_time (m_TRperiod / 2) + ' ' + t.rightJustified (66, '-'); ui->decodedTextBrowser->appendText(t); } write_all("Tx",m_currentMessage); @@ -7914,14 +7914,15 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout QString MainWindow::beacon_start_time (int n) { - auto time = QDateTime::currentDateTimeUtc ().addSecs (n).time (); - auto rounded_time = (int ((time.hour () * 10000 + time.minute () * 100 + time.second ()) * 60 / m_TRperiod) * int (m_TRperiod)) / 60; - auto result = QString::number (rounded_time).rightJustified (6, QLatin1Char {'0'}); + auto bt = qt_truncate_date_time_to (QDateTime::currentDateTimeUtc ().addSecs (n), m_TRperiod); if (m_TRperiod < 60) { - return result; + return bt.toString ("HHmmss"); + } + else + { + return bt.toString ("HHmm"); } - return result.left (4); } void MainWindow::WSPR_history(Frequency dialFreq, int ndecodes) From 2ed0dafd0d9f88a6134734b4312b5211eb959161 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 28 Jul 2020 00:09:49 +0100 Subject: [PATCH 345/520] User guide update --- doc/user_guide/en/wspr.adoc | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/doc/user_guide/en/wspr.adoc b/doc/user_guide/en/wspr.adoc index d54a97544..5f96e335d 100644 --- a/doc/user_guide/en/wspr.adoc +++ b/doc/user_guide/en/wspr.adoc @@ -65,12 +65,18 @@ starts. This feature can be used to activate an automatic antenna tuner (ATU) to tune a multi-band antenna to the newly selected band. - Depending on your station and antenna setup, band changes might -require other switching besides retuning your radio. To make this +require other switching besides retuning your radio. To make this possible in an automated way, whenever _WSJT-X_ executes a successful -band-change command to a CAT-controlled radio, it looks for a file -named `user_hardware.bat`, `user_hardware.cmd`, `user_hardware.exe`, -or `user_hardware` in the working directory. If one of these is found, -_WSJT-X_ tries to execute the command +band-change command to a CAT-controlled radio, it looks for an +executable file or script named `user_hardware`. This is done using +`CMD /C user_hardware ` on Windows, or `/bin/sh -c user_hardware +` on other platforms, where band is described below. On Windows +the first file with any extension listed on the PATHEXT environment +variable added to the file name root `user_hardware`, and found in the +directories listed on the PATH environment variable will be executed. +On other platforms, the first executable script, or program, named +`user_hardware` found in a directory listed on the PATH environment +variable will be executed. user_hardware nnn @@ -78,6 +84,11 @@ _WSJT-X_ tries to execute the command meters. You must write your own program, script, or batch file to do the necessary switching at your station. +IMPORTANT: The use of the PATH (and PATHEXT on Windows) environment +variables is a new feature. To emulate previous behavior make sure +that the location of your user_hardware script or program is on the +PATH environment variable used by _WSJT-X_. + The following screen shot is an example of WSPR operation with band hopping enabled: From afceaa09f09c2611fd3d68115b1a9defea07d95d Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 29 Jul 2020 02:01:23 +0100 Subject: [PATCH 346/520] Update packge dependencies for RPM style packages --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 559f3ef75..0bf0a5e60 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1822,7 +1822,7 @@ set (CPACK_DEBIAN_PACKAGE_DEPENDS "libgfortran3 (>=4.8.2), libqt5serialport5 (>= set (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) set (CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) -set (CPACK_RPM_PACKAGE_REQUIRES "qt5-qtserialport >= 5.5, qt5-qtmultimedia >= 5.5, qt5-qtsvg, libusb, systemd-udev, glibc >= 2, libgfortran >= 4.8.2") +set (CPACK_RPM_PACKAGE_REQUIRES "qt5-qtbase >= 5.6, qt5-qtserialport >= 5.6, qt5-qtmultimedia >= 5.6, qt5-qtsvg >= 5.6, libusbx >= 1.0.23, libgfortran >= 4.7, fftw-libs-double > 3.3.8, fftw-libs-single > 3.3.8") set (CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION /usr/share/pixmaps /usr/share/applications /usr/share/man /usr/share/man1) configure_file ("${PROJECT_SOURCE_DIR}/CMakeCPackOptions.cmake.in" From 790fde2123f014044474a759119456824f98708c Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 29 Jul 2020 11:00:42 +0100 Subject: [PATCH 347/520] Update package dependdencies for Debian style packages --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0bf0a5e60..f5f7c3d5b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1818,7 +1818,7 @@ endif () set (CPACK_DEBIAN_PACKAGE_DESCRIPTION "${PROJECT_DESCRIPTION}") set (CPACK_DEBIAN_PACKAGE_HOMEPAGE "${PROJECT_HOMEPAGE}") -set (CPACK_DEBIAN_PACKAGE_DEPENDS "libgfortran3 (>=4.8.2), libqt5serialport5 (>=5.5), libqt5multimedia5-plugins (>=5.5), libqt5widgets5 (>=5.5), libqt5sql5-sqlite (>=5.5), libusb-1.0-0, libudev1, libc6 (>=2.19)") +set (CPACK_DEBIAN_PACKAGE_DEPENDS "libgfortran4 (>=7.3.0), libfftw3-single3 (>=3.3.7), libgomp1 (>8), libqt5serialport5 (>=5.9.5), libqt5multimedia5-plugins (>=5.9.5), libqt5widgets5 (>=5.9.5), libqt5network5 (>=5.9.5), libqt5printsupport5 (>=5.9.5), libqt5sql5-sqlite (>=5.9.5), libusb-1.0-0 (>=1.0.21)") set (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) set (CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) From 902c0b7a59b90d6067a9d2df2d021e8e06d04ee2 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 29 Jul 2020 09:48:19 -0400 Subject: [PATCH 348/520] Protect against bounds error in dopspread.f90. Remove the temporary ssavg code. --- lib/fst4_decode.f90 | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 83a6f8295..caf9a4b4f 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -545,7 +545,7 @@ contains inquire(file='plotspec',exist=ex) fmid=-999.0 if(ex) then - call write_ref(itone,iwave,nsps,nmax,ndown,hmod, & + call dopspread(itone,iwave,nsps,nmax,ndown,hmod, & isbest,fc_synced,fmid,w50) endif xsig=0 @@ -813,7 +813,7 @@ contains return end subroutine get_candidates_fst4 - subroutine write_ref(itone,iwave,nsps,nmax,ndown,hmod,i0,fc,fmid,w50) + subroutine dopspread(itone,iwave,nsps,nmax,ndown,hmod,i0,fc,fmid,w50) ! On "plotspec" special request, compute Doppler spread for a decoded signal @@ -902,29 +902,14 @@ contains fmid=xi2*df !Frequency midpoint of signal powere do i=-ia,ia !Save the spectrum for plotting - f=i*df - y=0.99*ss(i+nint(xi2)) + ncall-1 - write(52,1010) f,y + y=ncall-1 + j=i+nint(xi2) + if(abs(j*df).lt.10.0) y=0.99*ss(i+nint(xi2)) + ncall-1 + write(52,1010) i*df,y 1010 format(f12.6,f12.6) enddo - if(nsps.eq.720) then - ia=101.0/df - if(ncall.eq.1) then - allocate(ssavg(-ia:ia)) - ssavg=0. - endif - rewind 53 - do i=-ia,ia !Find smax in +/- 1 Hz around 0. - j=i - if(j.lt.0) j=i+nfft - ssavg(i)=ssavg(i) + real(g(j))**2 + aimag(g(j))**2 - write(53,1020) i*df,ssavg(i) -1020 format(f12.6,e12.3) - enddo - endif - return - end subroutine write_ref + end subroutine dopspread end module fst4_decode From 846b0b6ed8bac29c39607483eec17fbed65f954f Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 29 Jul 2020 11:58:28 -0400 Subject: [PATCH 349/520] Fix the problem "Tx did not start in the first Round-Robin sequence when it should have started". --- widgets/mainwindow.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index bcf4361e6..8536773ff 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -313,7 +313,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_grid6 {false}, m_tuneup {false}, m_bTxTime {false}, - m_rxDone {false}, + m_rxDone {true}, m_bSimplex {false}, m_bEchoTxOK {false}, m_bTransmittedEcho {false}, @@ -8045,7 +8045,7 @@ void MainWindow::WSPR_scheduling () qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; int nsec=ms/1000; int ntr=m_TRperiod; - int j=((nsec+ntr) % (n*ntr))/ntr; + int j=((nsec+ntr-1) % (n*ntr))/ntr; m_WSPR_tx_next=(i==j); return; } From c2b835c42bec743a995658231a525ceb25fe940e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 29 Jul 2020 18:44:34 +0100 Subject: [PATCH 350/520] Translatable help windows --- CMakeLists.txt | 3 - mouse_commands.txt | 31 -- prefixes.txt | 27 -- shortcuts.txt | 45 -- translations/wsjtx_ca.ts | 793 ++++++++++++++++++++++-------------- translations/wsjtx_da.ts | 791 +++++++++++++++++++++-------------- translations/wsjtx_en.ts | 720 +++++++++++++++++--------------- translations/wsjtx_en_GB.ts | 728 ++++++++++++++++++--------------- translations/wsjtx_es.ts | 793 ++++++++++++++++++++++-------------- translations/wsjtx_it.ts | 791 +++++++++++++++++++++-------------- translations/wsjtx_ja.ts | 787 +++++++++++++++++++++-------------- translations/wsjtx_zh.ts | 715 ++++++++++++++++++-------------- translations/wsjtx_zh_HK.ts | 715 ++++++++++++++++++-------------- widgets/HelpTextWindow.cpp | 15 +- widgets/HelpTextWindow.hpp | 2 +- widgets/mainwindow.cpp | 113 ++++- 16 files changed, 4223 insertions(+), 2846 deletions(-) delete mode 100644 mouse_commands.txt delete mode 100644 prefixes.txt delete mode 100644 shortcuts.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index f5f7c3d5b..d6446faee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -725,9 +725,6 @@ set (all_C_and_CXXSRCS ) set (TOP_LEVEL_RESOURCES - shortcuts.txt - mouse_commands.txt - prefixes.txt cty.dat icons/Darwin/wsjtx.iconset/icon_128x128.png contrib/gpl-v3-logo.svg diff --git a/mouse_commands.txt b/mouse_commands.txt deleted file mode 100644 index 57dd5bdb3..000000000 --- a/mouse_commands.txt +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - -
Click onAction
Waterfall:Click to set Rx frequency.
- Shift-click to set Tx frequency.
- Ctrl-click or Right-click to set Rx and Tx frequencies.
- Double-click to also decode at Rx frequency.
-
Decoded text:Double-click to copy second callsign to Dx Call,
- locator to Dx Grid, change Rx and Tx frequency to
- decoded signal's frequency, and generate standard
- messages.
- If Hold Tx Freq is checked or first callsign in message
- is your own call, Tx frequency is not changed unless
- Ctrl is held down.
-
Erase button:Click to erase QSO window.
- Double-click to erase QSO and Band Activity windows. -
diff --git a/prefixes.txt b/prefixes.txt deleted file mode 100644 index 7ac0d6730..000000000 --- a/prefixes.txt +++ /dev/null @@ -1,27 +0,0 @@ -Type 1 Prefixes: - - 1A 1S 3A 3B6 3B8 3B9 3C 3C0 3D2 3D2C 3D2R 3DA 3V 3W 3X - 3Y 3YB 3YP 4J 4L 4S 4U1I 4U1U 4W 4X 5A 5B 5H 5N 5R - 5T 5U 5V 5W 5X 5Z 6W 6Y 7O 7P 7Q 7X 8P 8Q 8R - 9A 9G 9H 9J 9K 9L 9M2 9M6 9N 9Q 9U 9V 9X 9Y A2 - A3 A4 A5 A6 A7 A9 AP BS7 BV BV9 BY C2 C3 C5 C6 - C9 CE CE0X CE0Y CE0Z CE9 CM CN CP CT CT3 CU CX CY0 CY9 - D2 D4 D6 DL DU E3 E4 EA EA6 EA8 EA9 EI EK EL EP - ER ES ET EU EX EY EZ F FG FH FJ FK FKC FM FO - FOA FOC FOM FP FR FRG FRJ FRT FT5W FT5X FT5Z FW FY M MD - MI MJ MM MU MW H4 H40 HA HB HB0 HC HC8 HH HI HK - HK0A HK0M HL HM HP HR HS HV HZ I IS IS0 J2 J3 J5 - J6 J7 J8 JA JDM JDO JT JW JX JY K KG4 KH0 KH1 KH2 - KH3 KH4 KH5 KH5K KH6 KH7 KH8 KH9 KL KP1 KP2 KP4 KP5 LA LU - LX LY LZ OA OD OE OH OH0 OJ0 OK OM ON OX OY OZ - P2 P4 PA PJ2 PJ7 PY PY0F PT0S PY0T PZ R1F R1M S0 S2 S5 - S7 S9 SM SP ST SU SV SVA SV5 SV9 T2 T30 T31 T32 T33 - T5 T7 T8 T9 TA TF TG TI TI9 TJ TK TL TN TR TT - TU TY TZ UA UA2 UA9 UK UN UR V2 V3 V4 V5 V6 V7 - V8 VE VK VK0H VK0M VK9C VK9L VK9M VK9N VK9W VK9X VP2E VP2M VP2V VP5 - VP6 VP6D VP8 VP8G VP8H VP8O VP8S VP9 VQ9 VR VU VU4 VU7 XE XF4 - XT XU XW XX9 XZ YA YB YI YJ YK YL YN YO YS YU - YV YV0 Z2 Z3 ZA ZB ZC4 ZD7 ZD8 ZD9 ZF ZK1N ZK1S ZK2 ZK3 - ZL ZL7 ZL8 ZL9 ZP ZS ZS8 KC4 E5 - -Type 1 Suffixes: /0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /A /P diff --git a/shortcuts.txt b/shortcuts.txt deleted file mode 100644 index d74f860fd..000000000 --- a/shortcuts.txt +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Esc Stop Tx, abort QSO, clear next-call queue
F1 Online User's Guide (Alt: transmit Tx6)
Shift+F1 Copyright Notice
Ctrl+F1 About WSJT-X
F2 Open settings window (Alt: transmit Tx2)
F3 Display keyboard shortcuts (Alt: transmit Tx3)
F4 Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)
Alt+F4 Exit program
F5 Display special mouse commands (Alt: transmit Tx5)
F6 Open next file in directory (Alt: toggle "Call 1st")
Shift+F6 Decode all remaining files in directrory
F7 Display Message Averaging window
F11 Move Rx frequency down 1 Hz
Ctrl+F11 Move identical Rx and Tx frequencies down 1 Hz
Shift+F11 Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)
Ctrl+Shift+F11 Move dial frequency down 2000 Hz
F12 Move Rx frequency up 1 Hz
Ctrl+F12 Move identical Rx and Tx frequencies up 1 Hz
Shift+F12 Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)
Ctrl+Shift+F12 Move dial frequency up 2000 Hz
Alt+1-6 Set now transmission to this number on Tab 1
Ctl+1-6 Set next transmission to this number on Tab 1
Alt+B Toggle "Best S+P" status
Alt+C Toggle "Call 1st" checkbox
Alt+D Decode again at QSO frequency
Shift+D Full decode (both windows)
Ctrl+E Turn on TX even/1st
Shift+E Turn off TX even/1st
Alt+E Erase
Ctrl+F Edit the free text message box
Alt+G Generate standard messages
Alt+H Halt Tx
Ctrl+L Lookup callsign in database, generate standard messages
Alt+M Monitor
Alt+N Enable Tx
Ctrl+O Open a .wav file
Alt+O Change operator
Alt+Q Log QSO
Ctrl+R Set Tx4 message to RRR (not in FT4)
Alt+R Set Tx4 message to RR73
Alt+S Stop monitoring
Alt+T Toggle Tune status
Alt+Z Clear hung decoder status
diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index da2b7dbf7..f604eb877 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -377,75 +377,75 @@ Configuration::impl - - - + + + &Delete &Esborrar - - + + &Insert ... &Insereix ... - + Failed to create save directory No s'ha pogut crear el directori per desar - + path: "%1% ruta: "%1% - + Failed to create samples directory No s'ha pogut crear el directori d'exemples - + path: "%1" ruta: "%1" - + &Load ... &Carrega ... - + &Save as ... &Guardar com ... - + &Merge ... &Combinar ... - + &Reset &Restablir - + Serial Port: Port sèrie: - + Serial port used for CAT control Port sèrie utilitzat per al control CAT - + Network Server: Servidor de xarxa: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -460,12 +460,12 @@ Formats: [adreça IPv6]:port - + USB Device: Dispositiu USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -476,152 +476,152 @@ Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - + Invalid audio input device El dispositiu d'entrada d'àudio no és vàlid - + Invalid audio out device El dispositiu de sortida d'àudio no és vàlid - + Invalid PTT method El mètode de PTT no és vàlid - + Invalid PTT port El port del PTT no és vàlid - - + + Invalid Contest Exchange Intercanvi de concurs no vàlid - + You must input a valid ARRL Field Day exchange Has d’introduir un intercanvi de Field Day de l'ARRL vàlid - + You must input a valid ARRL RTTY Roundup exchange Has d’introduir un intercanvi vàlid de l'ARRL RTTY Roundup - + Reset Decode Highlighting Restableix Ressaltat de Descodificació - + Reset all decode highlighting and priorities to default values Restableix tot el ressaltat i les prioritats de descodificació als valors predeterminats - + WSJT-X Decoded Text Font Chooser Tipus de text de pantalla de descodificació WSJT-X - + Load Working Frequencies Càrrega les freqüències de treball - - - + + + Frequency files (*.qrg);;All files (*.*) Arxius de freqüència (*.qrg);;Tots els arxius (*.*) - + Replace Working Frequencies Substitueix les freqüències de treball - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? Segur que vols descartar les teves freqüències actuals de treball i reemplaçar-les per les carregades ? - + Merge Working Frequencies Combina les freqüències de treball - - - + + + Not a valid frequencies file L'arxiu de freqüències no és vàlid - + Incorrect file magic L'arxiu màgic es incorrecte - + Version is too new La versió és massa nova - + Contents corrupt Continguts corruptes - + Save Working Frequencies Desa les freqüències de treball - + Only Save Selected Working Frequencies Desa només les freqüències de treball seleccionades - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. Estàs segur que vols desar només les freqüències de treball seleccionades actualment? Fes clic a No per desar-ho tot. - + Reset Working Frequencies Restablir les freqüències de treball - + Are you sure you want to discard your current working frequencies and replace them with default ones? Segur que vols descartar les teves freqüències actuals de treball i reemplaçar-les per altres? - + Save Directory Directori de Guardar - + AzEl Directory Directori AzEl - + Rig control error Error de control de l'equip - + Failed to open connection to rig No s'ha pogut obrir la connexió al equip - + Rig failure Fallada en l'equip @@ -694,9 +694,14 @@ Format: + DX Lab Suite Commander send command failed "%1": %2 + + + + DX Lab Suite Commander failed to send command "%1": %2 - El DX Lab Suite Commander no ha pogut enviar la comanda "%1": %2 + El DX Lab Suite Commander no ha pogut enviar la comanda "%1": %2 @@ -1759,19 +1764,16 @@ Error: %2 - %3 HelpTextWindow - Help file error - Error de l'arxiu d'ajuda + Error de l'arxiu d'ajuda - Cannot open "%1" for reading - No es pot obrir "%1" per llegir + No es pot obrir "%1" per llegir - Error: %1 - Error: %1 + Error: %1 @@ -2078,12 +2080,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity Activitat a la banda @@ -2095,11 +2097,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency Freqüència de RX @@ -2561,7 +2563,7 @@ No està disponible per als titulars de indicatiu no estàndard. - + Fox Fox @@ -3167,6 +3169,86 @@ La llista es pot mantenir a la configuració (F2). Schedule ... Programació ... + + 1/2 + 1/2 + + + 2/2 + 2/2 + + + 1/3 + 1/3 + + + 2/3 + 2/3 + + + 3/3 + 3/3 + + + 1/4 + 1/4 + + + 2/4 + 2/4 + + + 3/4 + 3/4 + + + 4/4 + 4/4 + + + 1/5 + 1/5 + + + 2/5 + 2/5 + + + 3/5 + 3/5 + + + 4/5 + 4/5 + + + 5/5 + 5/5 + + + 1/6 + 1/6 + + + 2/6 + 2/6 + + + 3/6 + 3/6 + + + 4/6 + 4/6 + + + 5/6 + 5/6 + + + 6/6 + 6/6 + Upload decoded messages to WSPRnet.org. @@ -3187,6 +3269,10 @@ La llista es pot mantenir a la configuració (F2). 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. Els locator de 6 dígits fan que s’enviïn 2 missatges diferents, el segon conté el locator complet, però només un indicatiu trossejat, les altres estacions han d’haver descodificat el primer una vegada abans de poder descodificar el segon. Marca aquesta opció per enviar només locators de 4 dígits i s’evitarà el protocol de dos missatges. + + FT240W + FT240W + Prefer type 1 messages @@ -3415,7 +3501,7 @@ La llista es pot mantenir a la configuració (F2). - + Runaway Tx watchdog Seguretat de TX @@ -3692,8 +3778,8 @@ La llista es pot mantenir a la configuració (F2). - - + + Receiving Rebent @@ -3718,166 +3804,166 @@ La llista es pot mantenir a la configuració (F2). S'ha produït un error al carregar les dades dels usuaris de LotW - + Error Writing WAV File S'ha produït un error al escriure l'arxiu WAV - + Configurations... Configuracions... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + Message Missatge - + Error Killing jt9.exe Process Error en matar el procés jt9.exe - + KillByName return code: %1 Codi de retorn de KillByName: %1 - + Error removing "%1" Error en eliminar "%1" - + Click OK to retry Fes clic a D'acord per tornar-ho a provar - - + + Improper mode Mode inadequat - - + + File Open Error Error al obrir l'arxiu - - - - - + + + + + Cannot open "%1" for append: %2 No es pot obrir "%1" per annexar: %2 - + Error saving c2 file Error en desar l'arxiu c2 - + Error in Sound Input Error a la entrada de so - + Error in Sound Output Error en la sortida de so - - - + + + Single-Period Decodes Descodificacions d'un sol període - - - + + + Average Decodes Mitjans descodificats - + Change Operator Canvi d'Operador - + New operator: Operador Nou: - + Status File Error Error d'estat de l'arxiu - - + + Cannot open "%1" for writing: %2 No es pot obrir "%1" per escriure: %2 - + Subprocess Error Error de subprocés - + Subprocess failed with exit code %1 Ha fallat el subprocés amb el codi de sortida %1 - - + + Running: %1 %2 Corrent: %1 %2 - + Subprocess error Error de subprocés - + Reference spectrum saved Guarda l'espectre de referència - + Invalid data in fmt.all at line %1 Les dades no són vàlides a fmt.all a la línia %1 - + Good Calibration Solution Solució de bona calibració - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3890,17 +3976,17 @@ La llista es pot mantenir a la configuració (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Suprimeix les mesures de calibració - + The "fmt.all" file will be renamed as "fmt.bak" L'arxiu "fmt.all" serà renombrat com a "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3908,62 +3994,153 @@ La llista es pot mantenir a la configuració (F2). "Els algoritmes, codi font, aspecte de WSJT-X i programes relacionats i les especificacions de protocol per als modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 són Copyright (C) 2001-2020 per un o més dels següents autors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q i altres membres del grup de desenvolupament de WSJT. " - + No data read from disk. Wrong file format? No es llegeixen dades del disc. Format de l'arxiu incorrecte ? - + Confirm Delete Confirma Esborrar - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Estàs segur que vols esborrar tots els arxius *.wav i *.c2"%1" ? - + Keyboard Shortcuts Dreceres de teclat - + + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> + Keyboard shortcuts help window contents + + + + Special Mouse Commands Ordres especials del ratolí - + + <table cellpadding=5> + <tr> + <th align="right">Click on</th> + <th align="left">Action</th> + </tr> + <tr> + <td align="right">Waterfall:</td> + <td><b>Click</b> to set Rx frequency.<br/> + <b>Shift-click</b> to set Tx frequency.<br/> + <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> + </td> + </tr> + <tr> + <td align="right">Decoded text:</td> + <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> + locator to Dx Grid, change Rx and Tx frequency to<br/> + decoded signal's frequency, and generate standard<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> + </td> + </tr> + <tr> + <td align="right">Erase button:</td> + <td><b>Click</b> to erase QSO window.<br/> + <b>Double-click</b> to erase QSO and Band Activity windows. + </td> + </tr> +</table> + Mouse commands help window contents + + + + No more files to open. No s’obriran més arxius. - + + Spotting to PSK Reporter unavailable + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Tria una altra freqüència de TX. El WSJT-X no transmetrà de manera conscient un altre mode a la sub-banda WSPR a 30 m. - + WSPR Guard Band Banda de Guàrdia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Tria una altra freqüència de treball. WSJT-X no funcionarà en mode Fox a les sub-bandes FT8 estàndard. - + Fox Mode warning Avís de mode Fox - + Last Tx: %1 Últim TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3974,183 +4151,183 @@ Per fer-ho, comprova "Activitat operativa especial" i Concurs EU VHF a la Configuració | Pestanya avançada. - + Should you switch to ARRL Field Day mode? Has de canviar al mode de Field Day de l'ARRL ? - + Should you switch to RTTY contest mode? Has de canviar al mode de concurs RTTY? - - - - + + + + Add to CALL3.TXT Afegeix a CALL3.TXT - + Please enter a valid grid locator Introduïu un locator vàlid - + Cannot open "%1" for read/write: %2 No es pot obrir "%1" per llegir o escriure: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 ja és a CALL3.TXT, vols substituir-lo ? - + Warning: DX Call field is empty. Avís: el camp de indicatiu DX està buit. - + Log file error Error a l'arxiu de log - + Cannot open "%1" No es pot obrir "%1" - + Error sending log to N1MM Error al enviar el log a N1MM - + Write returned "%1" Escriptura retornada "%1" - + Stations calling DXpedition %1 Estacions que criden a DXpedition %1 - + Hound Hound - + Tx Messages Missatges de TX - - - + + + Confirm Erase Confirma Esborrar - + Are you sure you want to erase file ALL.TXT? Estàs segur que vols esborrar l'arxiu ALL.TXT ? - - + + Confirm Reset Confirma que vols Restablir - + Are you sure you want to erase your contest log? Estàs segur que vols esborrar el log del concurs ? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Si fas això, suprimiràs tots els registres de QSO del concurs actual. Es conservaran a l'arxiu de log ADIF, però no es podran exportar al log de Cabrillo. - + Cabrillo Log saved Log Cabrillo desat - + Are you sure you want to erase file wsjtx_log.adi? Estàs segur que vols esborrar l'arxiu wsjtx_log.adi ? - + Are you sure you want to erase the WSPR hashtable? Estàs segur que vols esborrar la taula del WSPR ? - + VHF features warning Les característiques de VHF tenen un avís - + Tune digital gain Guany de sintonització digital - + Transmit digital gain Guany digital de transmissió - + Prefixes Prefixos - + Network Error Error de xarxa - + Error: %1 UDP server %2:%3 Error: %1 UDP server %2:%3 - + File Error Error a l'arxiu - + Phase Training Disabled Entrenament de fase Desactivat - + Phase Training Enabled Entrenament de fase activat - + WD:%1m WD:%1m - - + + Log File Error Error a l'arxiu de log - + Are you sure you want to clear the QSO queues? Estàs segur que vols esborrar les cues de QSO ? @@ -4831,6 +5008,10 @@ Error(%2): %3 <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> <html><head/><body><p>Descodificar JT9 només per sobre d’aquesta freqüència</p></body></html> + + Hz + Hz + JT9 @@ -5856,508 +6037,522 @@ Indicatiu DX i Locator DX quan s’envia un missatge de text 73 o lliure.Serveis de xarxa - The program can send your station details and all decoded signals as spots to the http://pskreporter.info web site. This is used for reverse beacon analysis which is very useful for assessing propagation and system performance. - El programa pot enviar totes les dades de l'estació i tots + El programa pot enviar totes les dades de l'estació i tots els senyals descodificats com a punts del lloc web http://pskreporter.info. S'utilitza per a l'anàlisi de balises inverses, que és molt útil per avaluar la propagació i el rendiment del sistema. - + + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> + + + + Enable &PSK Reporter Spotting Activa &PSK Reporter - + + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> + + + + + Use TCP/IP connection + + + + UDP Server Servidor UDP - + UDP Server: Servidor UDP: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>Nom de l'amfitrió opcional del servei de xarxa per rebre descodificacions.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Nom d'amfitrió</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">adreça IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">adreça IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Adreça de grup multicast IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Adreça de grup multicast IPv6</li></ul><p>Si esborreu aquest camp, es desactivarà la difusió de les actualitzacions d’estat d’UDP.</p></body></html> - + UDP Server port number: Número de port del servidor UDP: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p>Introdueix el número de port del servei del servidor UDP al qual WSJT-X hauria d'enviar les actualitzacions. Si és zero, no s’emetran actualitzacions.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p>Amb aquesta habilitat, WSJT-X acceptarà de nou algunes sol·licituds d’un servidor UDP que rep missatges de descodificació.</p></body></html> - + Accept UDP requests Accepta sol·licituds UDP - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p>Indica l'acceptació d'una sol·licitud UDP entrant. L’efecte d’aquesta opció varia en funció del sistema operatiu i del gestor de finestres, la seva intenció és notificar l’acceptació d’una sol·licitud UDP entrant encara que aquesta aplicació estigui minimitzada o oculta.</p></body></html> - + Notify on accepted UDP request Notifica-la sobre la sol·licitud acceptada d’UDP - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p>Restaura la finestra al mínim si s’accepta una sol·licitud UDP.</p></body></html> - + Accepted UDP request restores window La finestra de restauració de la sol·licitud UDP es acceptada - + Secondary UDP Server (deprecated) Servidor UDP secundari (obsolet) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p>Quan es marca, WSJT-X transmetrà un contacte registrat en format ADIF al nom d'amfitrió i port configurats. </p></body></html> - + Enable logged contact ADIF broadcast Habilita la transmissió ADIF de contacte registrad - + Server name or IP address: Nom del servidor o adreça IP: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>Nom d'amfitrió opcional del programa N1MM Logger+ per rebre transmissions ADIF UDP. Generalment és "localhost" o adreça IP 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Nom d'amfitrió</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">adreça IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">adreça IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Adreça de grup multicast IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Adreça de grup multicast IPv6</li></ul><p>Si esborres aquest camp, es desactivarà la transmissió d’informació ADIF a través d’UDP.</p></body></html> - + Server port number: Número de port del servidor: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>Introdueix el número de port que hauria d’utilitzar WSJT-X per a les emissions d'UDP d’informació de registre ADIF. Per N1MM Logger+, aquest valor hauria de ser 2333. Si aquest és zero, no es transmetran actualitzacions.</p></body></html> - + Frequencies Freqüències - + Default frequencies and band specific station details setup Configuració predeterminada de les freqüències i bandes amb detalls específics de l'estació - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>Veure &quot;Freqüència de Calibració&quot; a la Guia de l'usuari de WSJT-X per obtenir més informació sobre com determinar aquests paràmetres per al teu equip.</p></body></html> - + Frequency Calibration Freqüència de Calibració - + Slope: Pendent: - + ppm ppm - + Intercept: Intercepte: - + Hz Hz - + Working Frequencies Freqüències de treball - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>Fes clic amb el botó dret per mantenir la llista de freqüències de treball.</p></body></html> - + Station Information Informació de l'estació - + Items may be edited. Right click for insert and delete options. Es poden editar ítems. Fes clic amb el botó dret per a les opcions d'inserció i eliminació. - + Colors Colors - + Decode Highlightling Ressaltar Descodificar - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> <html><head/><body><p>Fes clic per analitzar l'arxiu ADIF wsjtx_log.adi de nou per obtenir la informació abans treballada</p></body></html> - + Rescan ADIF Log Escaneig de nou el log ADIF - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>Prem per restablir tots els elements destacats anteriors als valors i prioritats predeterminats.</p></body></html> - + Reset Highlighting Restableix Ressaltat - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body><p>Activar o desactivar l'ús de les caselles de verificació fes clic amb el botó dret en un element per canviar o desactivar el color del primer pla, el color de fons o restablir l'element als valors predeterminats. Arrossega i deixa anar els elements per canviar la seva prioritat, major a la llista és major en prioritat.</p><p>Recorda que cada color de primer pla o de fons pot estar configurat o no, el que vol dir que no està assignat per al tipus d'element i poden aplicar-se elements de menor prioritat.</p></body></html> - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>Marca per indicar noves entitats DXCC, Locators i indicatius per modes.</p></body></html> - + Highlight by Mode Ressaltar per mode - + Include extra WAE entities Incloure entitats WAE addicionals - + Check to for grid highlighting to only apply to unworked grid fields Marca perquè el ressaltat de Locator només s'aplica als camps de Locator no treballats - + Only grid Fields sought Només camps de Locator buscats - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>Controls per a la recerca d'usuaris de Logbook of the World (LoTW).</p></body></html> - + Logbook of the World User Validation Validació de l’usuari a Logbook of the World (LoTW) - + Users CSV file URL: URL de l'arxiu CSV dels usuaris: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body><p>URL de l'últim arxiu de dades de dates i hores de càrrega de ARRL LotW que s'utilitza per ressaltar descodificacions d'estacions que se sap que carreguen el seu arxiu de log a LotW.</p></body></html> - + https://lotw.arrl.org/lotw-user-activity.csv https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>Fes clic sobre aquest botó per obtenir l'últim arxiu de dades de data i hora de càrrega dels usuaris de LotW.</p></body></html> - + Fetch Now Obtenir ara - + Age of last upload less than: Edat de la darrera càrrega inferior a: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p>Ajusta aquest quadre de selecció per establir el llindar d'edat de l'última data de càrrega dels usuaris de LotW que s'accepta com a usuari actual de LotW.</p></body></html> - + days dies - + Advanced Avançat - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>Paràmetres seleccionables per l'usuari per descodificació JT65 VHF/UHF/Microones.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters Paràmetres de descodificació JT65 VHF/UHF/Microones - + Random erasure patterns: Patrons d'esborrament aleatoris: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p>El nombre màxim de patrons d'esborrat per al descodificador estoic de decisió suau Reed Solomon és 10^(n/2).</p></body></html> - + Aggressive decoding level: Nivell de descodificació agressiu: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>A nivells més elevats augmentarà la probabilitat de descodificació, però també augmentarà la probabilitat de fals descodificació.</p></body></html> - + Two-pass decoding Descodificació a dos passos - + Special operating activity: Generation of FT4, FT8, and MSK144 messages Activitat operativa especial: Generació de missatges FT4, FT8 i MSK144 - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> <html><head/><body><p>Mode FT8 DXpedition: operador Hound que truca al DX.</p></body></html> - + Hound Hound - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>Concursos de VHF/UHF/Microones nord-americans i altres en què es necessita un intercanvi de locators de quatre caràcters.</p></body></html> - + NA VHF Contest Concurs NA VHF - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>Mode FT8 DXpedition: operador Fox (DXpedition).</p></body></html> - + Fox Fox - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>Concursos europeus de VHF i superiors que requereixen el informe de senyal, número de sèrie i locator de 6 caràcters.</p></body></html> - + EU VHF Contest Concurs EU VHF - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY Roundup i concursos similars. L’intercanvi és estat nord-americà, província canadenca o &quot;DX&quot;.</p></body></html> - + RTTY Roundup messages Missatges de Rencontre RTTY - + RTTY RU Exch: Intercanvi RTTY RU: - + NJ NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL Field Day exchange: nombre de transmissors, classe i secció ARRL / RAC o &quot;DX&quot;.</p></body></html> - + ARRL Field Day ARRL Field Day - + FD Exch: Intercanvi FD: - + 6A SNJ 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>Concurs World-Wide Digi-mode</p><p><br/></p></body></html> - + WW Digi Contest Concurs WW Digi - + Miscellaneous Divers - + Degrade S/N of .wav file: Grau S/N de l'arxiu .wav: - - + + For offline sensitivity tests Per a proves de sensibilitat fora de línia - + dB dB - + Receiver bandwidth: Amplada de banda del receptor: - + Hz Hz - + Tx delay: Retard de TX: - + Minimum delay between assertion of PTT and start of Tx audio. Retard mínim entre el PTT i l'inici de l'àudio TX. - + s s - + Tone spacing Espaiat de to - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>Genera l’àudio de TX amb el doble de l'espaiament normal. Destinat a transmissors especials de LF/MF que utilitzen un dividit per 2 abans de generar la RF.</p></body></html> - + x 2 x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>Genera l'àudio de TX amb quatre vegades l'espaiat del to normal. Destinat a transmissors especials de LF/MF que usen una divisió per 4 abans de generar la RF.</p></body></html> - + x 4 x 4 - + Waterfall spectra Espectres de cascades - + Low sidelobes Lòbuls laterals baixos - + Most sensitive El més sensible - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p>Eliminar (Cancel·la) o aplicar (D'acord) canvis de configuració inclosos.</p><p>Restablint la interfície de ràdio i aplicant els canvis a la targeta de so</p></body></html> @@ -6365,16 +6560,12 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. main - - Fatal error - Error fatal + Error fatal - - Unexpected fatal error - Error fatal inesperat + Error fatal inesperat Where <rig-name> is for multi-instance support. @@ -6458,15 +6649,25 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació.Ruta: "%1" - + Shared memory error Error de memòria compartida - + Unable to create shared memory segment No es pot crear el segment de memòria compartida + + + Sub-process error + + + + + Failed to close orphaned jt9 process + + wf_palette_design_dialog diff --git a/translations/wsjtx_da.ts b/translations/wsjtx_da.ts index 008f96223..a0e37dc59 100644 --- a/translations/wsjtx_da.ts +++ b/translations/wsjtx_da.ts @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete &Slet - - + + &Insert ... &indsæt ... - + Failed to create save directory Fejl ved oprettelse af mappe til at gemme i - + path: "%1% sti: "%1% - + Failed to create samples directory Fejl i oprettelsen af mappe til eksempler - + path: "%1" sti: "%1" - + &Load ... &Hent ... - + &Save as ... &Gem som ... - + &Merge ... &Indflette ... - + &Reset &Reset - + Serial Port: Seriel Port: - + Serial port used for CAT control Seriel port til CAT kontrol - + Network Server: Netværk Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -452,12 +452,12 @@ Formater: [IPv6-address]:port - + USB Device: USB Enhed: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -468,152 +468,152 @@ Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - + Invalid audio input device Foekert audio input enhed - + Invalid audio out device Forkert audio output enhed - + Invalid PTT method Forkert PTT metode - + Invalid PTT port Forkert PTT port - - + + Invalid Contest Exchange Forkert Contest Udveksling - + You must input a valid ARRL Field Day exchange Indsæt et valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange Indsæt et valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting Nulstil dekode markering - + Reset all decode highlighting and priorities to default values Indstil alle dekode markeringer og prioriteringer til default - + WSJT-X Decoded Text Font Chooser WSJT-X Dekodet tekst Font vælger - + Load Working Frequencies Hent Frekvens liste - - - + + + Frequency files (*.qrg);;All files (*.*) Frekvens fil *.qrg);;All files (*.*) - + Replace Working Frequencies Erstat frekvensliste - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? Er du sikker på du vil kassere dine nuværende frekvensliste og erstatte den med denne frekvensliste? - + Merge Working Frequencies Indflet Frevens liste - - - + + + Not a valid frequencies file Ikke en gyldig Frekvens liste fil - + Incorrect file magic Forkert fil Magic - + Version is too new Version for ny - + Contents corrupt Inhold ugyldigt - + Save Working Frequencies Gem frekvens liste - + Only Save Selected Working Frequencies Gemmer kun de valgte frekvenser til listen - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. Er du sikker på du kun vil gemme de valgte frekvenser i Frekvenslisten. Klik nej for gemme alle. - + Reset Working Frequencies Reset frekvens liste - + Are you sure you want to discard your current working frequencies and replace them with default ones? Er du sikker på du vil kassere dine nuværende frekvensliste og erstatte dem med standard frekvenser? - + Save Directory Gemme Mappe - + AzEl Directory AzEL Mappe - + Rig control error Radio kontrol fejl - + Failed to open connection to rig Fejl i etablering af forbindelse til radio - + Rig failure Radio fejl @@ -686,9 +686,14 @@ Format: + DX Lab Suite Commander send command failed "%1": %2 + + + + DX Lab Suite Commander failed to send command "%1": %2 - DX Lab Suite Commander fejlede ved afsendelse af kommando "%1": %2 + DX Lab Suite Commander fejlede ved afsendelse af kommando "%1": %2 @@ -1751,19 +1756,16 @@ Error: %2 - %3 HelpTextWindow - Help file error - Hjælpe Fil fejl + Hjælpe Fil fejl - Cannot open "%1" for reading - Kan ikke åbne "%1" for at læse + Kan ikke åbne "%1" for at læse - Error: %1 - Fejl: %1 + Fejl: %1 @@ -2078,12 +2080,12 @@ Fejl(%2): %3 - - - - - - + + + + + + Band Activity Bånd Aktivitet @@ -2095,11 +2097,11 @@ Fejl(%2): %3 - - - - - + + + + + Rx Frequency Rx frekvens @@ -2560,7 +2562,7 @@ Not available to nonstandard callsign holders. - + Fox Fox @@ -3167,6 +3169,86 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). Schedule ... Tidskema ... + + 1/2 + 1/2 + + + 2/2 + 2/2 + + + 1/3 + 1/3 + + + 2/3 + 2/3 + + + 3/3 + 3/3 + + + 1/4 + 1/4 + + + 2/4 + 2/4 + + + 3/4 + 3/4 + + + 4/4 + 4/4 + + + 1/5 + 1/5 + + + 2/5 + 2/5 + + + 3/5 + 3/5 + + + 4/5 + 4/5 + + + 5/5 + 5/5 + + + 1/6 + 1/6 + + + 2/6 + 2/6 + + + 3/6 + 3/6 + + + 4/6 + 4/6 + + + 5/6 + 5/6 + + + 6/6 + 6/6 + Upload decoded messages to WSPRnet.org. @@ -3187,6 +3269,10 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). 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. 6 cifrede locatorer kræver 2 forskellige meddelelser for at blive sendt, den anden indeholder den fulde locator, men kun et hashet kaldesignal. Andre stationer skal have dekodet den første gang, før de kan dekode dit kaldesignal i den anden meddelse. Marker denne indstilling for kun at sende 4-cifrede locatorer, hvis du vil undgå to meddelelses protokollen. + + FT240W + FT240W + Prefer type 1 messages @@ -3415,7 +3501,7 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). - + Runaway Tx watchdog Runaway Tx vagthund @@ -3692,8 +3778,8 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). - - + + Receiving Modtager @@ -3718,166 +3804,166 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). Fejl ved indlæsning af LotW bruger Data - + Error Writing WAV File Fejl ved skrivning af WAV Fil - + Configurations... Konfigurationer... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + Message Meddelse - + Error Killing jt9.exe Process Fejl ved lukning af jt9.exe processen - + KillByName return code: %1 KillByName return code: %1 - + Error removing "%1" Fejl ved fjernelse af "%1" - + Click OK to retry Klik OK for at prøve igen - - + + Improper mode Forkert mode - - + + File Open Error Fejl ved åbning af fil - - - - - + + + + + Cannot open "%1" for append: %2 Kan ikke åbne "%1" for at tilføje: %2 - + Error saving c2 file Fejl da c2 fil skulle gemmes - + Error in Sound Input Fejl i Audio input - + Error in Sound Output Fejl i Audio output - - - + + + Single-Period Decodes Enkel-Periode Dekodning - - - + + + Average Decodes Gennemsnitlig dekodning - + Change Operator Skift Operatør - + New operator: Ny Operatør: - + Status File Error Fejl i status Fil - - + + Cannot open "%1" for writing: %2 Kan ikke åbne "%1" for at skrive: %2 - + Subprocess Error Underprocess fejl - + Subprocess failed with exit code %1 Underprocess fejlede med fejlkode %1 - - + + Running: %1 %2 Kører: %1 %2 - + Subprocess error Underprocess fejl - + Reference spectrum saved Reference spectrum gemt - + Invalid data in fmt.all at line %1 Forkert data i fmt.all ved linje %1 - + Good Calibration Solution God Kalibrerings løsning - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3890,17 +3976,17 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Slet Kalibrerings måling - + The "fmt.all" file will be renamed as "fmt.bak" Filen fmt.all vil blive omdøbt til "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3908,62 +3994,153 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). "Algoritmerne, kildekoden, udseendet og funktionen af ​​WSJT-X og relaterede programmer og protokolspecifikationer for Mode FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 er Copyright (C) 2001-2020 af en eller flere af følgende forfattere: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; og andre medlemmer af WSJT Development Group. " - + No data read from disk. Wrong file format? Ingen data indlæst. Forkert fil format? - + Confirm Delete Bekræft sletning - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Er du sikker på du vil slette alle *.wav og *.c2 filer i "%1"? - + Keyboard Shortcuts Tastetur Genveje - + + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> + Keyboard shortcuts help window contents + + + + Special Mouse Commands Specielle muse kommandoer - + + <table cellpadding=5> + <tr> + <th align="right">Click on</th> + <th align="left">Action</th> + </tr> + <tr> + <td align="right">Waterfall:</td> + <td><b>Click</b> to set Rx frequency.<br/> + <b>Shift-click</b> to set Tx frequency.<br/> + <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> + </td> + </tr> + <tr> + <td align="right">Decoded text:</td> + <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> + locator to Dx Grid, change Rx and Tx frequency to<br/> + decoded signal's frequency, and generate standard<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> + </td> + </tr> + <tr> + <td align="right">Erase button:</td> + <td><b>Click</b> to erase QSO window.<br/> + <b>Double-click</b> to erase QSO and Band Activity windows. + </td> + </tr> +</table> + Mouse commands help window contents + + + + No more files to open. Ikke flere filer at åbne. - + + Spotting to PSK Reporter unavailable + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Venligst vælg en ande Tx frekvens. WSJT-X vil ikke sende med en anden Mode i WSPR området på 30m. - + WSPR Guard Band WSPR Guard bånd - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Vælg venligst en anden VFO frekvens. WSJT-x vil ikke operere med Fox mode i standard FT8 områder - + Fox Mode warning Fox Mode advarsel - + Last Tx: %1 Senest Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3974,183 +4151,183 @@ For at gøre dette skal du markere 'Speciel aktivitet' og 'EU VHF-Contest' på indstillingerne | Avanceret fane. - + Should you switch to ARRL Field Day mode? Bør du skifte til ARRL Field Day mode? - + Should you switch to RTTY contest mode? Bør du skifte til RTTY Contest mode? - - - - + + + + Add to CALL3.TXT Tilføj til CALL3.TXT - + Please enter a valid grid locator Indsæt en gyldig Grid lokator - + Cannot open "%1" for read/write: %2 Kan ikke åbne "%1" for Læse/Skrive: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 er allerede i CALL3.TXT. Vil du erstatte den? - + Warning: DX Call field is empty. Advarsel: DX Call feltet er tomt. - + Log file error Log fil fejl - + Cannot open "%1" Kan ikke åbne "%1" - + Error sending log to N1MM Fejl ved afsendelse af log til N1MM - + Write returned "%1" Skrivning vendte tilbage med "%1" - + Stations calling DXpedition %1 Stationer som kalder DXpedition %1 - + Hound Hound - + Tx Messages Tx meddelse - - - + + + Confirm Erase Bekræft Slet - + Are you sure you want to erase file ALL.TXT? Er du sikker på du vil slette filen ALL.TXT? - - + + Confirm Reset Bekræft Reset - + Are you sure you want to erase your contest log? Er du sikker på du vil slette din contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Gør du dette vil alle QSOer for pågældende contest blive slettet. De bliver dog gemt i en ADIF fik, men det vil ikke være muligt at eksportere dem som Cabrillo log. - + Cabrillo Log saved Cabrillo Log gemt - + Are you sure you want to erase file wsjtx_log.adi? Er du sikker på du vil slette filen wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? Er du sikker på du vil slette WSPR Hash tabellen? - + VHF features warning VHF feature advarsel - + Tune digital gain Tune digital gain - + Transmit digital gain Transmit digital gain - + Prefixes Prefixer - + Network Error Netværks Fejl - + Error: %1 UDP server %2:%3 Error: %1 UDP server %2:%3 - + File Error Fil fejl - + Phase Training Disabled Phase Training Deaktiveret - + Phase Training Enabled Phase Training Aktiveret - + WD:%1m WD:%1m - - + + Log File Error Log Fil Fejl - + Are you sure you want to clear the QSO queues? Er du sikker du vil slette QSO køen? @@ -4831,6 +5008,10 @@ Fejl(%2): %3 <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> <html><head/><body><p>Dekod kun JT9 over denne frekvens</p></body></html> + + Hz + Hz + JT9 @@ -5852,507 +6033,521 @@ og DX Grid-felter, når der sendes en 73 eller fri tekstbesked. + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> + + + The program can send your station details and all decoded signals as spots to the http://pskreporter.info web site. This is used for reverse beacon analysis which is very useful for assessing propagation and system performance. - Programmet kan sende dine stationsoplysninger og alle + Programmet kan sende dine stationsoplysninger og alle dekodede signaler som spots til webstedet http://pskreporter.info. Dette bruges til analyse af reverse beacon, hvilket er meget nyttigt til vurdering af udbrednings forhold og systemydelse. - + Enable &PSK Reporter Spotting Aktiver &PSK Reporter Spotting - + + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> + + + + + Use TCP/IP connection + + + + UDP Server UDP Server - + UDP Server: UDP Server: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>Alternativ værtsnavn på netværks service som skal modtage det dekodede.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Værtsnavn</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 adresse</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 adresse</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast gruppe adresse</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast gruppe adresse</li></ul><p>Slettes dette felt vil der ikke blive udsendt UDP status opdateringer.</p></body></html> - + UDP Server port number: UDP Server port nummer: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p> Indtast serviceportnummeret på den UDP-server, som WSJT-X skal sende opdateringer til. Hvis dette er nul, udsendes ingen opdateringer.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p> Med denne aktiveret vil WSJT-X acceptere visse anmodninger tilbage fra en UDP-server, som modtager dekodede meddelelser.</p></body></html> - + Accept UDP requests Accepter UDP anmodninger - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p> Angiv accept af en indgående UDP-anmodning. Effekten af ​​denne indstilling varierer afhængigt af operativsystemet og window manager, dens formål er at underrette accept af en indgående UDP-anmodning, selvom denne applikation er minimeret eller skjult.</p></body></html> - + Notify on accepted UDP request Meddelse om accepteret UDP anmodning - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p> Gendan vinduet fra minimeret, hvis en UDP-anmodning accepteres.</p></body></html> - + Accepted UDP request restores window Gendan vindue fra minimeret, hvis en UDP anmodning accepteres - + Secondary UDP Server (deprecated) Sekundær UDP-server (udskrevet) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p> Når denne er markeret, vil WSJT-X sende en logget kontakt i ADIF-format til det konfigurerede værtsnavn og port.</P></body></html> - + Enable logged contact ADIF broadcast Aktiver Logged kontankt ADIF afsendelse - + Server name or IP address: Server navn eller IP adresse: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>Alternativ host navn i N1MM Logger+ program der skal modtage ADIF UDP broadcasts. Det e rnormalt 'localhost' eller ip adresse 127.0.0.1</p><p>Format:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostnavn</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 adresse</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast gruppe adresse</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Slettes dette felt vil der ikke blive udsendt broadcasting af ADIF information via UDP.</p></body></html> - + Server port number: Server port nummer: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>Indsæt portnummer som WSJT-X skal bruge til UDP broadcasts af ADIF log information. For N1MM Logger+, skal det være 2333. Hvis det er NUL vil der ikke blive udsendt broadcast.</p></body></html> - + Frequencies Frekvneser - + Default frequencies and band specific station details setup Default frekvenser og bånd specifikke stations deltalje indstillinger - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>Se &quot;Frekvens Kalibrering&quot; i WSJT-X User Guide for detaljer om hvorledes disse parametre indstilles for din radio.</p></body></html> - + Frequency Calibration Frekvens Kalibrering - + Slope: Stigning: - + ppm ppm - + Intercept: Intercept: - + Hz Hz - + Working Frequencies Arbejds Frekvenser - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>Højre klik for at ændre i frekvenslisten.</p></body></html> - + Station Information Stations Information - + Items may be edited. Right click for insert and delete options. Listen kan editeres Højre klik for at indsætte eller slette elementer. - + Colors Farver - + Decode Highlightling Dekode Farvelade - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> <html><head/><body><p>Klik for at scanne wsjtx_log.adi ADIF filen igen for worked before information</p></body></html> - + Rescan ADIF Log Rescan Adif Log - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>Tryk for at resette alle Highligt oven over til default værdier og prioriteter.</p></body></html> - + Reset Highlighting Reset Higlighting - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body> <p> Aktivér eller deaktiver ved hjælp af afkrydsningsfelterne og højreklik på et element for at ændre eller deaktivere forgrundsfarve, baggrundsfarve eller nulstille elementet til standardværdier. Træk og slip emnerne for at ændre deres prioritet, højere på listen har højere prioritet. </p> <p> Bemærk, at hver forgrunds- eller baggrundsfarve enten er indstillet eller frakoblet, ikke indstillet betyder, at den ikke er tildelt til det pågældende element type og lavere prioriterede poster kan muligvis anvendes. </p> </body> </html> - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>Marker for at indikere nye DXCC Lande, Grid og Kaldesignaler pr Mode.</p></body></html> - + Highlight by Mode Highlight by Mode - + Include extra WAE entities Inkluder ekstra WAE lande - + Check to for grid highlighting to only apply to unworked grid fields Marker for Grid Highlighting for kun at tilføje ikke kørte Lokator felter - + Only grid Fields sought Kun søgte GRID felter - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>Kontrol for Logbook of the World bruger lookup.</p></body></html> - + Logbook of the World User Validation Logbook of the World Bruger Validering - + Users CSV file URL: Sti til Bruger CSV fil: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body> <p> URL til ARRL LotW-brugerens sidste uploaddatoer og -tidsdatafil, som bruges til at fremhæve dekodninger fra stationer, der vides at uploade deres logfil til LotW. </p> < / body> </ html> - + https://lotw.arrl.org/lotw-user-activity.csv https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>Tryk på denne knap for at hente seneste LotW bruger upload dato og tids data file.</p></body></html> - + Fetch Now Hent Nu - + Age of last upload less than: Alder på seneste upload mindre end: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p> Juster dette spin-felt for at indstille grænsen for alderen på LotW-brugers sidste upload-dato, der accepteres som en nuværende LotW-bruger.</p></body></html> - + days dage - + Advanced Avanceret - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>Bruger valgte parametre for JT65 VHF/UHF/Microwave dekoning.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters JT65/VHF/UHF/Microwave parametre - + Random erasure patterns: Tilfældige sletningsmønstre: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p> Maksimum antal sletningsmønstre til stokastisk soft-beslutning Reed Solomon-dekoder er 10^(n/2).</p></body></html> - + Aggressive decoding level: Aggressiv dekoder niveau: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>Højere niveau vil øge dekodningen, men vil også øge chanchen for falske dekodninger.</p></body></html> - + Two-pass decoding To-pass dekodning - + Special operating activity: Generation of FT4, FT8, and MSK144 messages Special operations aktivitet: Generering af FT4, FT8 og MSK 144 meddelser - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> <html><head/><body><p>FT8 DXpedition mode: Hound operatører der kalder på DX.</p></body></html> - + Hound Hound - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>Nord Amerikansk VHF/UHF/Microwave contests og andre hvor 4 karakter Grid lokator er påkrævet for Contest rpt udveksling.</p></body></html> - + NA VHF Contest NA VHF Contest - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operatør.</p></body></html> - + Fox Fox - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>European VHF+ contests kræver en siganl rapport, serie nummer og 6 karakters lokator.</p></body></html> - + EU VHF Contest EU VHF Contest - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY Roundup og ligende contests. Exchange er US state, Canadian province, eller &quot;DX&quot;.</p></body></html> - + RTTY Roundup messages RTTY Roundup meddelser - + RTTY RU Exch: RTTU RU Exch: - + NJ NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL Field Day exchange: antal transmittere, Class, og ARRL/RAC sektion eller &quot;DX&quot;.</p></body></html> - + ARRL Field Day ARRL Field Day - + FD Exch: FD Exch: - + 6A SNJ 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> - + WW Digi Contest WW Digi Contest - + Miscellaneous Diverse - + Degrade S/N of .wav file: Degrade S/N .wav.fil: - - + + For offline sensitivity tests Til offline følsomheds test - + dB dB - + Receiver bandwidth: Modtager båndbredde: - + Hz Hz - + Tx delay: Tx delay: - + Minimum delay between assertion of PTT and start of Tx audio. Minimum forsinkelse mellen aktivering af PTT og start af Tx audio. - + s s - + Tone spacing Tone afstand - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>Generer Tx audio med dobbelt af den normale tone afstand. Beregnet til special LF/MF transmittere som bruger divideret med-2 før generering af RF.</p></body></html> - + x 2 x2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>Generer Tx audio med 4 gange den normale tone afstand. Beregnet til special LF/MF transmittere som bruger divideret med-4 før generering af RF.</p></body></html> - + x 4 x4 - + Waterfall spectra Vandfald Spektrum - + Low sidelobes Lave sidelobes - + Most sensitive Mest følsom - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p> Forkast (Annuller) eller anvend (OK) konfigurationsændringer inklusive</p><p>nulstilling af radiog interface og anvendelse af lydkortændringer</p></body></html> @@ -6360,16 +6555,12 @@ Højre klik for at indsætte eller slette elementer. main - - Fatal error - Fatal fejl + Fatal fejl - - Unexpected fatal error - Uventet fatal fejl + Uventet fatal fejl @@ -6413,15 +6604,25 @@ Højre klik for at indsætte eller slette elementer. Sti: "%1" - + Shared memory error Delt hukommelse fejl - + Unable to create shared memory segment Kan ikke oprette delt hukommelse segment + + + Sub-process error + + + + + Failed to close orphaned jt9 process + + wf_palette_design_dialog diff --git a/translations/wsjtx_en.ts b/translations/wsjtx_en.ts index d0e3510b8..5993e0fec 100644 --- a/translations/wsjtx_en.ts +++ b/translations/wsjtx_en.ts @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete - - + + &Insert ... - + Failed to create save directory - + path: "%1% - + Failed to create samples directory - + path: "%1" - + &Load ... - + &Save as ... - + &Merge ... - + &Reset - + Serial Port: - + Serial port used for CAT control - + Network Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -447,12 +447,12 @@ Formats: - + USB Device: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -460,152 +460,152 @@ Format: - + Invalid audio input device - + Invalid audio out device - + Invalid PTT method - + Invalid PTT port - - + + Invalid Contest Exchange - + You must input a valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting - + Reset all decode highlighting and priorities to default values - + WSJT-X Decoded Text Font Chooser - + Load Working Frequencies - - - + + + Frequency files (*.qrg);;All files (*.*) - + Replace Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - + Merge Working Frequencies - - - + + + Not a valid frequencies file - + Incorrect file magic - + Version is too new - + Contents corrupt - + Save Working Frequencies - + Only Save Selected Working Frequencies - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. - + Reset Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with default ones? - + Save Directory - + AzEl Directory - + Rig control error - + Failed to open connection to rig - + Rig failure @@ -676,7 +676,7 @@ Format: - DX Lab Suite Commander failed to send command "%1": %2 + DX Lab Suite Commander send command failed "%1": %2 @@ -1731,24 +1731,6 @@ Error: %2 - %3 - - HelpTextWindow - - - Help file error - - - - - Cannot open "%1" for reading - - - - - Error: %1 - - - IARURegions @@ -2045,12 +2027,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity @@ -2062,11 +2044,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency @@ -2524,7 +2506,7 @@ Not available to nonstandard callsign holders. - + Fox @@ -3117,6 +3099,11 @@ list. The list can be maintained in Settings (F2). Schedule ... + + + Prefer type 1 messages + + Upload decoded messages to WSPRnet.org. @@ -3137,11 +3124,6 @@ list. The list can be maintained in Settings (F2). 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. - - - Prefer type 1 messages - - No own call decodes @@ -3365,7 +3347,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog @@ -3642,8 +3624,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving @@ -3668,165 +3650,165 @@ list. The list can be maintained in Settings (F2). - + Error Writing WAV File - + Configurations... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + Message - + Error Killing jt9.exe Process - + KillByName return code: %1 - + Error removing "%1" - + Click OK to retry - - + + Improper mode - - + + File Open Error - - - - - + + + + + Cannot open "%1" for append: %2 - + Error saving c2 file - + Error in Sound Input - + Error in Sound Output - - - + + + Single-Period Decodes - - - + + + Average Decodes - + Change Operator - + New operator: - + Status File Error - - + + Cannot open "%1" for writing: %2 - + Subprocess Error - + Subprocess failed with exit code %1 - - + + Running: %1 %2 - + Subprocess error - + Reference spectrum saved - + Invalid data in fmt.all at line %1 - + Good Calibration Solution - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3835,79 +3817,170 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements - + The "fmt.all" file will be renamed as "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? - + Confirm Delete - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + Keyboard Shortcuts - + + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> + Keyboard shortcuts help window contents + + + + Special Mouse Commands - + + <table cellpadding=5> + <tr> + <th align="right">Click on</th> + <th align="left">Action</th> + </tr> + <tr> + <td align="right">Waterfall:</td> + <td><b>Click</b> to set Rx frequency.<br/> + <b>Shift-click</b> to set Tx frequency.<br/> + <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> + </td> + </tr> + <tr> + <td align="right">Decoded text:</td> + <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> + locator to Dx Grid, change Rx and Tx frequency to<br/> + decoded signal's frequency, and generate standard<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> + </td> + </tr> + <tr> + <td align="right">Erase button:</td> + <td><b>Click</b> to erase QSO window.<br/> + <b>Double-click</b> to erase QSO and Band Activity windows. + </td> + </tr> +</table> + Mouse commands help window contents + + + + No more files to open. - + + Spotting to PSK Reporter unavailable + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + Last Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3915,181 +3988,181 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - + Stations calling DXpedition %1 - + Hound - + Tx Messages - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + VHF features warning - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - + WD:%1m - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -5748,521 +5821,516 @@ and DX Grid fields when a 73 or free text message is sent. - The program can send your station details and all -decoded signals as spots to the http://pskreporter.info web site. -This is used for reverse beacon analysis which is very useful -for assessing propagation and system performance. + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> - + Enable &PSK Reporter Spotting - + + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> + + + + + Use TCP/IP connection + + + + UDP Server - + UDP Server: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> - + UDP Server port number: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> - + Accept UDP requests - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> - + Notify on accepted UDP request - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> - + Accepted UDP request restores window - + Secondary UDP Server (deprecated) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> - + Enable logged contact ADIF broadcast - + Server name or IP address: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> - + Server port number: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> - + Frequencies - + Default frequencies and band specific station details setup - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> - + Frequency Calibration - + Slope: - + ppm - + Intercept: - + Hz - + Working Frequencies - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> - + Station Information - + Items may be edited. Right click for insert and delete options. - + Colors - + Decode Highlightling - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - + Rescan ADIF Log - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> - + Reset Highlighting - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> - + Highlight by Mode - + Include extra WAE entities - + Check to for grid highlighting to only apply to unworked grid fields - + Only grid Fields sought - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> - + Logbook of the World User Validation - + Users CSV file URL: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> - + https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> - + Fetch Now - + Age of last upload less than: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> - + days - + Advanced - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters - + Random erasure patterns: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> - + Aggressive decoding level: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> - + Two-pass decoding - + Special operating activity: Generation of FT4, FT8, and MSK144 messages - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> - + Hound - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> - + NA VHF Contest - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> - + Fox - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> - + EU VHF Contest - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> - + RTTY Roundup messages - + RTTY RU Exch: - + NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> - + ARRL Field Day - + FD Exch: - + 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> - + WW Digi Contest - + Miscellaneous - + Degrade S/N of .wav file: - - + + For offline sensitivity tests - + dB - + Receiver bandwidth: - + Hz - + Tx delay: - + Minimum delay between assertion of PTT and start of Tx audio. - + s - + Tone spacing - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> - + x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> - + x 4 - + Waterfall spectra - + Low sidelobes - + Most sensitive - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> main - - - - Fatal error - - - - - - Unexpected fatal error - - Another instance may be running @@ -6305,15 +6373,25 @@ Right click for insert and delete options. - + Shared memory error - + Unable to create shared memory segment + + + Sub-process error + + + + + Failed to close orphaned jt9 process + + wf_palette_design_dialog diff --git a/translations/wsjtx_en_GB.ts b/translations/wsjtx_en_GB.ts index 2db4e54ce..071d11b48 100644 --- a/translations/wsjtx_en_GB.ts +++ b/translations/wsjtx_en_GB.ts @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete - - + + &Insert ... - + Failed to create save directory - + path: "%1% - + Failed to create samples directory - + path: "%1" - + &Load ... - + &Save as ... - + &Merge ... - + &Reset - + Serial Port: - + Serial port used for CAT control - + Network Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -447,12 +447,12 @@ Formats: - + USB Device: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -460,152 +460,152 @@ Format: - + Invalid audio input device - + Invalid audio out device - + Invalid PTT method - + Invalid PTT port - - + + Invalid Contest Exchange - + You must input a valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting - + Reset all decode highlighting and priorities to default values - + WSJT-X Decoded Text Font Chooser - + Load Working Frequencies - - - + + + Frequency files (*.qrg);;All files (*.*) - + Replace Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - + Merge Working Frequencies - - - + + + Not a valid frequencies file - + Incorrect file magic - + Version is too new - + Contents corrupt - + Save Working Frequencies - + Only Save Selected Working Frequencies - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. - + Reset Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with default ones? - + Save Directory - + AzEl Directory - + Rig control error - + Failed to open connection to rig - + Rig failure @@ -676,7 +676,7 @@ Format: - DX Lab Suite Commander failed to send command "%1": %2 + DX Lab Suite Commander send command failed "%1": %2 @@ -1731,24 +1731,6 @@ Error: %2 - %3 - - HelpTextWindow - - - Help file error - - - - - Cannot open "%1" for reading - - - - - Error: %1 - - - IARURegions @@ -2045,12 +2027,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity @@ -2062,11 +2044,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency @@ -2524,7 +2506,7 @@ Not available to nonstandard callsign holders. - + Fox @@ -3117,6 +3099,11 @@ list. The list can be maintained in Settings (F2). Schedule ... + + + Prefer type 1 messages + + Upload decoded messages to WSPRnet.org. @@ -3137,11 +3124,6 @@ list. The list can be maintained in Settings (F2). 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. - - - Prefer type 1 messages - - No own call decodes @@ -3365,7 +3347,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog @@ -3642,8 +3624,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving @@ -3668,165 +3650,165 @@ list. The list can be maintained in Settings (F2). - + Error Writing WAV File - + Configurations... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + Message - + Error Killing jt9.exe Process - + KillByName return code: %1 - + Error removing "%1" - + Click OK to retry - - + + Improper mode - - + + File Open Error - - - - - + + + + + Cannot open "%1" for append: %2 - + Error saving c2 file - + Error in Sound Input - + Error in Sound Output - - - + + + Single-Period Decodes - - - + + + Average Decodes - + Change Operator - + New operator: - + Status File Error - - + + Cannot open "%1" for writing: %2 - + Subprocess Error - + Subprocess failed with exit code %1 - - + + Running: %1 %2 - + Subprocess error - + Reference spectrum saved - + Invalid data in fmt.all at line %1 - + Good Calibration Solution - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3835,79 +3817,170 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements - + The "fmt.all" file will be renamed as "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? - + Confirm Delete - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + Keyboard Shortcuts - + + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> + Keyboard shortcuts help window contents + + + + Special Mouse Commands - + + <table cellpadding=5> + <tr> + <th align="right">Click on</th> + <th align="left">Action</th> + </tr> + <tr> + <td align="right">Waterfall:</td> + <td><b>Click</b> to set Rx frequency.<br/> + <b>Shift-click</b> to set Tx frequency.<br/> + <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> + </td> + </tr> + <tr> + <td align="right">Decoded text:</td> + <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> + locator to Dx Grid, change Rx and Tx frequency to<br/> + decoded signal's frequency, and generate standard<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> + </td> + </tr> + <tr> + <td align="right">Erase button:</td> + <td><b>Click</b> to erase QSO window.<br/> + <b>Double-click</b> to erase QSO and Band Activity windows. + </td> + </tr> +</table> + Mouse commands help window contents + + + + No more files to open. - + + Spotting to PSK Reporter unavailable + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + Last Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3915,181 +3988,181 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - + Stations calling DXpedition %1 - + Hound - + Tx Messages - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + VHF features warning - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - + WD:%1m - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -5727,206 +5800,198 @@ and DX Grid fields when a 73 or free text message is sent. - - The program can send your station details and all -decoded signals as spots to the http://pskreporter.info web site. -This is used for reverse beacon analysis which is very useful -for assessing propagation and system performance. - - - - + Enable &PSK Reporter Spotting - + UDP Server - + UDP Server: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> - + UDP Server port number: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> - + Accept UDP requests - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> - + Notify on accepted UDP request - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> - + Accepted UDP request restores window - + Secondary UDP Server (deprecated) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> - + Enable logged contact ADIF broadcast - + Server name or IP address: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> - + Server port number: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> - + Frequencies - + Default frequencies and band specific station details setup - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> - + Frequency Calibration - + Slope: - + ppm - + Intercept: - + Hz - + Working Frequencies - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> - + Station Information - + Items may be edited. Right click for insert and delete options. - + Colors Colours - + Decode Highlightling - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> - + Reset Highlighting - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> - + Highlight by Mode - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> @@ -5951,318 +6016,321 @@ Right click for insert and delete options. - + + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> + + + + + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> + + + + + Use TCP/IP connection + + + + Rescan ADIF Log - + Include extra WAE entities - + Check to for grid highlighting to only apply to unworked grid fields - + Only grid Fields sought - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> - + Logbook of the World User Validation - + Users CSV file URL: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> - + https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> - + Fetch Now - + Age of last upload less than: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> - + days - + Advanced - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters - + Random erasure patterns: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> - + Aggressive decoding level: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> - + Two-pass decoding - + Special operating activity: Generation of FT4, FT8, and MSK144 messages - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> - + Hound - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> - + NA VHF Contest - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> - + Fox - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> - + EU VHF Contest - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> - + RTTY Roundup messages - + RTTY RU Exch: - + NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> - + ARRL Field Day - + FD Exch: - + 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> - + WW Digi Contest - + Miscellaneous - + Degrade S/N of .wav file: - - + + For offline sensitivity tests - + dB - + Receiver bandwidth: - + Hz - + Tx delay: - + Minimum delay between assertion of PTT and start of Tx audio. - + s - + Tone spacing - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> - + x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> - + x 4 - + Waterfall spectra - + Low sidelobes - + Most sensitive - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> main - - - - Fatal error - - - - - - Unexpected fatal error - - Another instance may be running @@ -6305,15 +6373,25 @@ Right click for insert and delete options. - + Shared memory error - + Unable to create shared memory segment + + + Sub-process error + + + + + Failed to close orphaned jt9 process + + wf_palette_design_dialog diff --git a/translations/wsjtx_es.ts b/translations/wsjtx_es.ts index 6a77e9294..96c2945f0 100644 --- a/translations/wsjtx_es.ts +++ b/translations/wsjtx_es.ts @@ -404,81 +404,81 @@ Configuration::impl - - - + + + &Delete &Borrar - - + + &Insert ... &Introducir ... &Agregar... - + Failed to create save directory No se pudo crear el directorio para guardar No se pudo crear el directorio "Save" - + path: "%1% ruta: "%1% - + Failed to create samples directory No se pudo crear el directorio de ejemplos No se pudo crear el directorio "Samples" - + path: "%1" ruta: "%1" - + &Load ... &Carga ... &Cargar ... - + &Save as ... &Guardar como ... &Guardar como ... - + &Merge ... &Fusionar ... &Fusionar ... - + &Reset &Reiniciar - + Serial Port: Puerto Serie: - + Serial port used for CAT control Puerto serie utilizado para el control CAT - + Network Server: Servidor de red: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -499,12 +499,12 @@ Formatos: [dirección IPv6]:port - + USB Device: Dispositivo USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -519,172 +519,172 @@ Formato: [VID[:PID[:VENDOR[:PRODUCT]]]] - + Invalid audio input device El dispositivo de entrada de audio no es válido Dispositivo de entrada de audio no válido - + Invalid audio out device El dispositivo de salida de audio no es válido Dispositivo de salida de audio no válido - + Invalid PTT method El método de PTT no es válido Método PTT no válido - + Invalid PTT port El puerto del PTT no es válido Puerto PTT no válido - - + + Invalid Contest Exchange Intercambio de concurso no válido - + You must input a valid ARRL Field Day exchange Debes introducir un intercambio de Field Day del ARRL válido Debe introducir un intercambio válido para el ARRL Field Day - + You must input a valid ARRL RTTY Roundup exchange Debes introducir un intercambio válido de la ARRL RTTY Roundup Debe introducir un intercambio válido para el ARRL RTTY Roundup - + Reset Decode Highlighting Restablecer Resaltado de Decodificación Restablecer resaltado de colores de decodificados - + Reset all decode highlighting and priorities to default values Restablecer todo el resaltado y las prioridades de decodificación a los valores predeterminados Restablecer todo el resaltado de colores y prioridades a los valores predeterminados - + WSJT-X Decoded Text Font Chooser Tipo de texto de pantalla de descodificación WSJT-X Seleccionar un tipo de letra - + Load Working Frequencies Carga las frecuencias de trabajo Cargar las frecuencias de trabajo - - - + + + Frequency files (*.qrg);;All files (*.*) Archivos de frecuencia (*.qrg);;Todos los archivos (*.*) - + Replace Working Frequencies Sustituye las frecuencias de trabajo Sustituir las frecuencias de trabajo - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por las cargadas? ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las cargadas? - + Merge Working Frequencies Combinar las frecuencias de trabajo Combina las frecuencias de trabajo - - - + + + Not a valid frequencies file El archivo de frecuencias no es válido Archivo de frecuencias no válido - + Incorrect file magic Archivo mágico incorrecto - + Version is too new La versión es demasiado nueva - + Contents corrupt contenidos corruptos Contenido corrupto - + Save Working Frequencies Guardar las frecuencias de trabajo - + Only Save Selected Working Frequencies Guarda sólo las frecuencias de trabajo seleccionadas Sólo guarda las frecuencias de trabajo seleccionadas - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. ¿Seguro que quieres guardar sólo las frecuencias de trabajo seleccionadas actualmente? Haz clic en No para guardar todo. ¿Seguro que quiere guardar sólo las frecuencias de trabajo seleccionadas actualmente? Clic en No para guardar todo. - + Reset Working Frequencies Reiniciar las frecuencias de trabajo - + Are you sure you want to discard your current working frequencies and replace them with default ones? ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por otras? ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las de defecto? - + Save Directory Guardar directorio Directorio "Save" - + AzEl Directory Directorio AzEl - + Rig control error Error de control del equipo - + Failed to open connection to rig No se pudo abrir la conexión al equipo Fallo al abrir la conexión al equipo - + Rig failure Fallo en el equipo @@ -764,9 +764,14 @@ Formato: + DX Lab Suite Commander send command failed "%1": %2 + + + + DX Lab Suite Commander failed to send command "%1": %2 - DX Lab Suite Commander ha fallado al enviar el comando "%1": %2 + DX Lab Suite Commander ha fallado al enviar el comando "%1": %2 @@ -1926,21 +1931,18 @@ Error: %2 - %3 HelpTextWindow - Help file error Error del archivo de ayuda - Error en el archivo de ayuda + Error en el archivo de ayuda - Cannot open "%1" for reading No se puede abrir "%1" para leer - No se puede abrir "%1" para lectura + No se puede abrir "%1" para lectura - Error: %1 - Error: %1 + Error: %1 @@ -2271,12 +2273,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity Actividad en la banda @@ -2288,11 +2290,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency Frecuencia de RX @@ -2805,7 +2807,7 @@ No está disponible para los titulares de indicativo no estándar. - + Fox Fox "Fox" @@ -3455,6 +3457,86 @@ predefinida. La lista se puede modificar en "Ajustes" (F2).Calendario ... Programar ... + + 1/2 + 1/2 + + + 2/2 + 2/2 + + + 1/3 + 1/3 + + + 2/3 + 2/3 + + + 3/3 + 3/3 + + + 1/4 + 1/4 + + + 2/4 + 2/4 + + + 3/4 + 3/4 + + + 4/4 + 4/4 + + + 1/5 + 1/5 + + + 2/5 + 2/5 + + + 3/5 + 3/5 + + + 4/5 + 4/5 + + + 5/5 + 5/5 + + + 1/6 + 1/6 + + + 2/6 + 2/6 + + + 3/6 + 3/6 + + + 4/6 + 4/6 + + + 5/6 + 5/6 + + + 6/6 + 6/6 + Upload decoded messages to WSPRnet.org. @@ -3478,6 +3560,10 @@ predefinida. La lista se puede modificar en "Ajustes" (F2).Los Locator/Grid de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes. Los locator de 6 dígitos hace que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo, otras estaciones deben haber decodificado el primero antes de poder descodificar el segundo. Marcar esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes. + + FT240W + FT240W + Prefer type 1 messages @@ -3723,7 +3809,7 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). - + Runaway Tx watchdog Control de TX @@ -4015,8 +4101,8 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). - - + + Receiving Recibiendo @@ -4044,148 +4130,148 @@ Error al cargar datos de usuarios de LotW Error al cargar datos de usuarios de LoTW - + Error Writing WAV File Error al escribir el archivo WAV - + Configurations... Conmfiguraciones... Configuraciones... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + Message Mensaje - + Error Killing jt9.exe Process Error al matar el proceso jt9.exe - + KillByName return code: %1 Código de retorno de KillByName: %1 KillByName regresa código: %1 - + Error removing "%1" Error al eliminar "%1" - + Click OK to retry Haga clic en Aceptar para volver a intentar Clic en "Aceptar" para reintentar - - + + Improper mode Modo incorrecto - - + + File Open Error Error de apertura del archivo Error al abrir archivo - - - - - + + + + + Cannot open "%1" for append: %2 No puedo abrir "%1" para anexar: %2 No se puedo abrir "%1" para anexar: %2 - + Error saving c2 file Error al guardar el archivo c2 Error al guardar archivo c2 - + Error in Sound Input Error en entrada de sonido - + Error in Sound Output Error en la salida de sonido Error en salida de audio - - - + + + Single-Period Decodes Decodificaciones de un solo período - - - + + + Average Decodes Promedio de decodificaciones - + Change Operator Cambiar operador - + New operator: Operador nuevo: - + Status File Error Error de estado del archivo Error en el archivo de estado - - + + Cannot open "%1" for writing: %2 No se puede abrir "%1" para la escritura: %2 No se puede abrir "%1" para escritura: %2 - + Subprocess Error Error de subproceso - + Subprocess failed with exit code %1 El subproceso falló con el código de salida %1 - - + + Running: %1 %2 Corriendo: %1 @@ -4194,27 +4280,27 @@ Error al cargar datos de usuarios de LotW %2 - + Subprocess error Error de subproceso - + Reference spectrum saved Espectro de referencia guardado - + Invalid data in fmt.all at line %1 Datos no válidos en fmt.all en la línea %1 - + Good Calibration Solution Buena solución de calibración - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -4227,18 +4313,18 @@ Error al cargar datos de usuarios de LotW %9%L10 Hz</pre> - + Delete Calibration Measurements Eliminar mediciones de calibración Borrar mediciones de calibración - + The "fmt.all" file will be renamed as "fmt.bak" El archivo "fmt.all" será renombrado como "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -4250,71 +4336,162 @@ Error al cargar datos de usuarios de LotW "Los algoritmos, el código fuente, la apariencia y comportamiento del WSJT-X y los programas relacionados, y las especificaciones del protocolo para los modos FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 son Copyright (C) 2001-2020 por uno o más de los siguientes autores: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q y otros miembros del Grupo de Desarrollo WSJT ". - + No data read from disk. Wrong file format? No se leen datos del disco. Formato de archivo incorrecto? No se han leido datos del disco. Formato de archivo incorrecto? - + Confirm Delete Confirmar eliminación Confirmar borrado - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? ¿Estas seguro de que deseas eliminar todos los archivos *.wav y *.c2 en "%1"? ¿Esta seguro de que desea borrar todos los archivos *.wav y *.c2 en "%1"? - + Keyboard Shortcuts Atajo de teclado Atajos de teclado - + + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> + Keyboard shortcuts help window contents + + + + Special Mouse Commands Comandos especiales del ratón Comandos especiales de ratón - + + <table cellpadding=5> + <tr> + <th align="right">Click on</th> + <th align="left">Action</th> + </tr> + <tr> + <td align="right">Waterfall:</td> + <td><b>Click</b> to set Rx frequency.<br/> + <b>Shift-click</b> to set Tx frequency.<br/> + <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> + </td> + </tr> + <tr> + <td align="right">Decoded text:</td> + <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> + locator to Dx Grid, change Rx and Tx frequency to<br/> + decoded signal's frequency, and generate standard<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> + </td> + </tr> + <tr> + <td align="right">Erase button:</td> + <td><b>Click</b> to erase QSO window.<br/> + <b>Double-click</b> to erase QSO and Band Activity windows. + </td> + </tr> +</table> + Mouse commands help window contents + + + + No more files to open. No hay más archivos para abrir. - + + Spotting to PSK Reporter unavailable + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Por favor, elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30m. Elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30M. - + WSPR Guard Band Banda de Guardia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Elige otra frecuencia de dial. WSJT-X no funcionará en modo Fox en las sub-bandas FT8 estándar. Por favor elija otra frecuencia. WSJT-X no operá en modo "Fox" en las sub-bandas de FT8 estándar. - + Fox Mode warning Advertencia del modo Fox Advertencia de modo "Fox" - + Last Tx: %1 Última TX: %1 Últ TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4329,37 +4506,37 @@ Para hacerlo, marca "Actividad operativa especial" y luego "Concurso VHF EU" en "Archivo" - "Ajustes" - "Avanzado". - + Should you switch to ARRL Field Day mode? ¿Cambiar al modo ARRL Field Day? - + Should you switch to RTTY contest mode? ¿Cambiar al modo de concurso RTTY? - - - - + + + + Add to CALL3.TXT Añadir a CALL3.TXT - + Please enter a valid grid locator Por favor, introduce un locator/Grid válido Por favor escriba un locator válido - + Cannot open "%1" for read/write: %2 No se puede abrir "%1" para leer/escribir: %2 No se puede abrir "%1" para lectura/escritura: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 @@ -4368,167 +4545,167 @@ ya está en CALL3.TXT, ¿deseas reemplazarlo? ya está en CALL3.TXT, ¿desea reemplazarlo? - + Warning: DX Call field is empty. Advertencia: el campo de Indicativo DX está vacío. Advertencia: el campo Indicativo DX está vacío. - + Log file error Error de archivo de log Error en el archivo de log - + Cannot open "%1" No puedo abrir "%1" No se puede abrir "%1" - + Error sending log to N1MM Error al enviar el log a N1MM - + Write returned "%1" Escritura devuelta "%1" Escritura devuelve "%1" - + Stations calling DXpedition %1 Estaciones que llaman a DXpedition %1 Estaciones llamando a DXpedition %1 - + Hound Hound "Hound" - + Tx Messages Mensajes de TX Mensajes TX - - - + + + Confirm Erase Confirmar borrado - + Are you sure you want to erase file ALL.TXT? ¿Estás seguro de que quiere borrar el archivo ALL.TXT? - - + + Confirm Reset Confirmar reinicio Confirmar restablecer - + Are you sure you want to erase your contest log? ¿Estás seguro de que quieres borrar el log de tú concurso? ¿Está seguro que quiere borrar el log de concurso? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Hacer esto eliminará todos los registros de QSO para el concurso actual. Se guardarán en el archivo log de ADIF, pero no estarán disponibles para la exportación en tú log de Cabrillo. Hacer esto eliminará todos los QSOs del concurso actual. Se mantendrán en el log ADIF, pero no estarán disponibles para la exportación como log de Cabrillo. - + Cabrillo Log saved Cabrillo Log guardado Log Cabrillo guardado - + Are you sure you want to erase file wsjtx_log.adi? ¿Estás seguro de que quieres borrar el archivo wsjtx_log.adi? ¿Está seguro que quiere borrar el archivo wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? ¿Estás seguro de que quieres borrar la tabla WSPR? ¿Está seguro de que quiere borrar la tabla hash WSPR? - + VHF features warning Advertencia de características VHF - + Tune digital gain Ganancia de sintonización digital Ajustar ganancia digital - + Transmit digital gain Ganancia de transmisión digital Transmitir ganancia digital - + Prefixes Prefijos Prefijos y sufijos tipo 1 - + Network Error Error de red - + Error: %1 UDP server %2:%3 Error: %1 Servidor UDP %2:%3 - + File Error Error en el archivo - + Phase Training Disabled Fase de entrenamiento deshabilitado Entrenamieno de Fase deshabilitado - + Phase Training Enabled Fase de entrenamiento habilitado Entrenamiento de Fase habilitado - + WD:%1m WD:%1m - - + + Log File Error Error de archivo log Error en archivo log - + Are you sure you want to clear the QSO queues? ¿Estás seguro de que quieres borrar las colas QSO? ¿Está seguro que quiere borrar las colas de QSOs? @@ -5251,6 +5428,10 @@ Error(%2): %3 <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> <html><head/><body><p>Decodifica JT9 solo por encima de esta frecuencia</p></body></html> + + Hz + Hz + JT9 @@ -6400,7 +6581,6 @@ Locator DX cuando se envíe un 73 o un mensaje de texto libre. Servicios de red - The program can send your station details and all decoded signals as spots to the http://pskreporter.info web site. This is used for reverse beacon analysis which is very useful @@ -6409,177 +6589,192 @@ for assessing propagation and system performance. señales decodificadas como puntos en el sitio web http://pskreporter.info. Esto se utiliza para el análisis de baliza inversa que es muy útil para evaluar la propagación y el rendimiento del sistema. - Este programa puede enviar los detalles de su estación y todas las + Este programa puede enviar los detalles de su estación y todas las señales decodificadas como "spots" a la página web http://pskreporter.info. Esto se utiliza para el análisis de "reverse beacon", lo cual es muy útil para evaluar la propagación y el rendimiento del sistema. - + + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> + + + + Enable &PSK Reporter Spotting Activa &PSK Reporter Activar "spotting" en &PSK Reporter - + + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> + + + + + Use TCP/IP connection + + + + UDP Server Servidor UDP - + UDP Server: Servidor UDP: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>"Hostname" del servicio de red para recibir decodificaciones.</p><p>Formatos:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4 multicast</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6 multicast</li></ul><p>Borrar este campo deshabilitará la transmisión de actualizaciones de estado UDP.</p></body></html> - + UDP Server port number: Número de puerto del servidor UDP: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p>Introduce el número de puerto del servicio del servidor UDP al que WSJT-X debe enviar actualizaciones. Si esto es cero, no se transmitirán actualizaciones.</p></body></html> <html><head/><body><p>Escriba el número del puerto del servidor UDP al que WSJT-X debe enviar actualizaciones. Si este es cero, no se transmitirán actualizaciones.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p>Con esto habilitado, WSJT-X aceptará ciertas solicitudes de un servidor UDP que recibe mensajes de decodificación.</p></body></html> <html><head/><body><p>Si se habilita, WSJT-X aceptará ciertas solicitudes de un servidor UDP que recibe mensajes decodificados.</p></body></html> - + Accept UDP requests Aceptar solicitudes UDP - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p>Indica la aceptación de una solicitud UDP entrante. El efecto de esta opción varía según el sistema operativo y el administrador de ventanas, su intención es notificar la aceptación de una solicitud UDP entrante, incluso si esta aplicación está minimizada u oculta.</p></body></html> <html><head/><body><p>Indica la aceptación de una solicitud UDP entrante. El efecto de esta opción varía según el sistema operativo y el "Window Manager", su intención es notificar la aceptación de una solicitud UDP entrante, incluso si esta aplicación está minimizada u oculta.</p></body></html> - + Notify on accepted UDP request Notificar sobre una solicitud UDP aceptada - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p>Restaura la ventana minimizada si se acepta una solicitud UDP.</p></body></html> - + Accepted UDP request restores window La solicitud UDP aceptada restaura la ventana Una solicitud UDP aceptada restaura la ventana - + Secondary UDP Server (deprecated) Servidor UDP secundario (en desuso) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p>Cuando se marca, WSJT-X transmitirá un contacto registrado en formato ADIF al nombre de host y puerto configurados. </p></body></html> <html><head/><body><p>Si se marca , WSJT-X difundirá el contacto guardado, en formato ADIF, al servidor y puerto configurados. </p></body></html> - + Enable logged contact ADIF broadcast Habilita la transmisión ADIF de contacto registrado Habilita transmisión ADIF de contacto guardado - + Server name or IP address: Nombre del servidor o dirección IP: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>"Hostname" del programa N1MM Logger + donde se recibirán las transmisiones ADIF UDP. Este suele ser 'localhost' o dirección IP 127.0.0.1</p><p>Formatos:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4 multicast</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6 multicast</li></ul><p>Borrar este campo deshabilitará la transmisión de información ADIF a través de UDP.</p></body></html> - + Server port number: Número de puerto del servidor: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>Introduce el número de puerto que WSJT-X debe usar para las transmisiones UDP de información de registro ADIF. Para N1MM Logger +, este valor debe ser 2333. Si es cero, no se transmitirán actualizaciones.</p></body></html> <html><head/><body><p>Escriba el número de puerto que WSJT-X debe usar para las transmisiones UDP del log ADIF guardado. Para N1MM Logger + este valor debe ser 2333. Si es cero, no se transmitirán actualizaciones.</p></body></html> - + Frequencies Frecuencias - + Default frequencies and band specific station details setup Configuración predeterminada de las frecuencias y banda con detalles específicos de la estación Ajustes de frecuencias predeterminada y detalles de especificos de la banda - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>Ver&quot;Calibración de Frecuencia&quot;en la Guía de usuario de WSJT-X para obtener detalles sobre cómo determinar estos parámetros para tú equipo.</p></body></html> <html><head/><body><p>Ver "Calibración de Frecuencia" en la Guía de usuario de WSJT-X para obtener detalles sobre cómo determinar estos parámetros para el equipo.</p></body></html> - + Frequency Calibration Calibración de frecuencia - + Slope: Pendiente: Cadencia: - + ppm ppm - + Intercept: Interceptar: Intercepción: - + Hz Hz - + Working Frequencies Frecuencias de trabajo - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>Haz clic derecho para mantener la lista de frecuencias de trabajo.</p></body></html> <html><head/><body><p>Clic derecho para mantener la lista de frecuencias de trabajo.</p></body></html> - + Station Information Información de la estación - + Items may be edited. Right click for insert and delete options. Se pueden editar ítems. @@ -6588,373 +6783,373 @@ Haz clic derecho para insertar y eliminar opciones. Clic derecho para insertar y eliminar opciones. - + Colors Colores - + Decode Highlightling Resaltar Decodificado - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> <html><head/><body><p>Haz clic para escanear el archivo ADIF wsjtx_log.adi nuevamente para obtener información trabajada antes</p></body></html> <html><head/><body><p>Clic para procesar nuevamente el archivo ADIF wsjtx_log.adi para obtener información de estaciones trabajadas anteriormente</p></body></html> - + Rescan ADIF Log Escaneo de nuevo el log ADIF Procesar nuevamente log ADIF - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>Presiona para restablecer todos los elementos resaltados arriba a los valores y prioridades predeterminados.</p></body></html> - + Reset Highlighting Restablecer resaltado - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body><p>Activa o desactiva las casillas de verificación y haz clic con el botón derecho en un elemento para cambiar o desactivar el color del primer plano, el color de fondo o restablecer el elemento a los valores predeterminados. Arrastra y suelta los elementos para cambiar su prioridad, mayor en la lista es mayor en prioridad.</p><p>Ten en cuenta que cada color de primer plano o de fondo puede estar configurado o no, lo que significa que no está asignado para ese tipo de elemento y pueden aplicarse elementos de menor prioridad.</p></body></html> <html><head/><body><p>Activar o desactivar usando las casillas de verificación. Clic con el botón derecho en un elemento para cambiar o volver al color predeterminado tanto de las letras como el color de fondo. Arrastrar y soltar los elementos para cambiar su prioridad; los primeros en la lista tienen mayor prioridad.</p><p>Cada color de letras o fondo puede estar configurado o no, no configurado significa que no está asignado para este elemento y pueden aplicarse elementos de menor prioridad.</p></body></html> - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>Marca para indicar nuevas entidades DXCC, Locator y indicativos por modo.</p></body></html> <html><head/><body><p>Marcar para indicar nueva entidad DXCC, locator e indicativos por modo.</p></body></html> - + Highlight by Mode Destacar por modo - + Include extra WAE entities Incluir entidades WAE adicionales - + Check to for grid highlighting to only apply to unworked grid fields Marca para que el resaltado de Locator sólo se aplique a los campos de Locator no trabajados Marcar para que el resaltado de locator sólo se aplique a los no trabajados - + Only grid Fields sought Solo campos de Locator/Grid buscados Solo campos de locator buscados - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>Controles para la búsqueda de usuarios de Logbook of the World (LoTW).</p></body></html> <html><head/><body><p>Búsqueda de usuarios de LoTW.</p></body></html> - + Logbook of the World User Validation Validación de Usuario de Logbook of the World (LoTW) Validación de usuario de LoTW - + Users CSV file URL: URL del archivo CSV de los usuarios: Enlace del archivo CSV de los usuarios: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body><p>URL del último archivo de datos de fechas y horas de carga de ARRL LotW que se utiliza para resaltar decodificaciones de estaciones que se sabe que cargan su archivo de log a LotW.</p></body></html> <html><head/><body><p>Enlace del último archivo con fechas y horas de subidas de usuarios del LoTW, que se utiliza para resaltar decodificaciones de estaciones que suben su log al LoTW.</p></body></html> - + https://lotw.arrl.org/lotw-user-activity.csv https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>Presiona este botón para obtener el último archivo de datos de fecha y hora de carga de los usuarios de LotW.</p></body></html> <html><head/><body><p>Presionar este botón para descargar archivo de LoTW con la última fecha/hora de subida de los usuarios.</p></body></html> - + Fetch Now Buscar ahora - + Age of last upload less than: Edad de la última carga inferior a: Fecha última subida a LoTW inferior a: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p>Ajusta este cuadro de selección para establecer el umbral de edad de la última fecha de carga del usuario de LotW que se acepta como usuario actual de LotW.</p></body></html> <html><head/><body><p>Ajusta este cuadro de selección para establecer la última fecha de subida de logs del usuario de LoTW.</p></body></html> - + days dias - + Advanced Avanzado - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>Parámetros seleccionables por el usuario para decodificación JT65 VHF/UHF/Microondas.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters Parámetros de decodificación JT65 VHF/UHF/Microondas Parámetros decodificación JT65 VHF/UHF/Microondas - + Random erasure patterns: Patrones de borrado aleatorio: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p>El número máximo de patrones de borrado para el decodificador estoico de decisión suave Reed Solomon es 10^(n/2).</p></body></html> <html><head/><body><p>El número máximo de patrones de borrado para el decodificador linear Reed Solomon es 10^(n/2).</p></body></html> - + Aggressive decoding level: Nivel de decodificación agresivo: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>Los niveles más altos aumentarán la probabilidad de decodificación, pero también aumentarán la probabilidad de una decodificación falsa.</p></body></html> <html><head/><body><p>Los niveles más altos aumentarán la probabilidad de decodificación, pero también aumentarán la probabilidad de una falsa decodificación.</p></body></html> - + Two-pass decoding Decodificación de dos pasos Decodificación en dos pasos - + Special operating activity: Generation of FT4, FT8, and MSK144 messages Actividad operativa especial: generación de mensajes FT4, FT8 y MSK144 Actividad operativa especial: Generación de mensajes FT4, FT8 y MSK144 - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: operador Hound llamando al DX.</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: Operador "Hound" llamando al DX.</p></body></html> - + Hound "Hound" - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>Concursos norteamericanos de VHF/UHF/microondas y otros en los que se requiere un locator de 4 caracteres.</p></body></html> <html><head/><body><p>Concursos VHF/UHF/Microondas de norteamérica y otros en los cuales se requiere un intercambio de locator de 4 caracteres.</p></body></html> - + NA VHF Contest Concurso NA VHF - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: operador FOX (DXpedition).</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: Operador "FOX" (DXpedition).</p></body></html> - + Fox Fox "Fox" - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>Concursos europeos de VHF y superiores que requieren un informe de señal, número de serie y locator de 6 caracteres.</p></body></html> <html><head/><body><p>Concursos europeos de VHF y concursos que requieran reporte de señal, número de serie y locator de 6 caracteres.</p></body></html> - + EU VHF Contest Concurso EU de VHF Concurso EU VHF - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>Resumen de ARRL RTTY y concursos similares. El intercambio es el estado de EE.UU., La provincia canadiense o &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY Roundup y concursos similares. Intercambio, estado de EE.UU., provincia de Canadá o "DX".</p></body></html> - + RTTY Roundup messages Mensajes de resumen de RTTY Mesnajes para e lRTTY Roundup - + RTTY RU Exch: Intercambio RTTY RU: - + NJ NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>Intercambio de ARRL Field Day: número de transmisores, clase y sección ARRL/RAC o &quot;DX&quot;.</p></body></html> <html><head/><body><p>Intercambiio para el ARRL Field Day: número de transmisores, "Class" y sección ARRL/RAC o "DX".</p></body></html> - + ARRL Field Day ARRL Field Day - + FD Exch: Intercambio FD: - + 6A SNJ 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>Concurso World-Wide Digi-mode</p><p><br/></p></body></html> <html><head/><body><p>Concurso World-Wide Digi DX</p><p><br/></p></body></html> - + WW Digi Contest Concurso WW Digi Concurso WW Digi DX - + Miscellaneous Diverso Otros - + Degrade S/N of .wav file: Degradar S/N del archivo .wav: - - + + For offline sensitivity tests Para pruebas de sensibilidad fuera de línea - + dB dB - + Receiver bandwidth: Ancho de banda del receptor: - + Hz Hz - + Tx delay: Retardo de TX: - + Minimum delay between assertion of PTT and start of Tx audio. Retraso mínimo entre el PTT y el inicio del audio TX. - + s s - + Tone spacing Espaciado de tono - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>Genera el audio de TX con el doble del espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 2 antes de generar RF.</p></body></html> <html><head/><body><p>Genera audio de TX con el doble del espaciado del tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 2 antes de generar RF.</p></body></html> - + x 2 x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>Genera el audio de TX con cuatro veces el espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 4 antes de generar RF.</p></body></html> <html><head/><body><p>Genera audio de TX con cuatro veces el espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 4 antes de generar RF.</p></body></html> - + x 4 x 4 - + Waterfall spectra Espectros de la cascada Espectro de la cascada (waterfall) - + Low sidelobes Lóbulos laterales bajos - + Most sensitive Más sensible - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p>Descartar (Cancelar) o aplicar (OK) cambios de configuración/ajuste que incluyen</p><p>restablecer la interfaz de radio y aplicar cualquier cambio en la tarjeta de sonido</p></body></html> <html><head/><body><p>"Aceptar" o "Cancelar" cambios de configuración, incluyendo el restablecer la interface de radio y aplicar cualquier cambio en la tarjeta de sonido</p></body></html> @@ -6963,16 +7158,12 @@ Clic derecho para insertar y eliminar opciones. main - - Fatal error - Error fatal + Error fatal - - Unexpected fatal error - Error fatal inesperado + Error fatal inesperado Where <rig-name> is for multi-instance support. @@ -7064,15 +7255,25 @@ Clic derecho para insertar y eliminar opciones. ruta: "%1" - + Shared memory error Error de memoria compartida - + Unable to create shared memory segment No se puede crear un segmento de memoria compartida + + + Sub-process error + + + + + Failed to close orphaned jt9 process + + wf_palette_design_dialog diff --git a/translations/wsjtx_it.ts b/translations/wsjtx_it.ts index 9a203ce1c..6b6c95084 100644 --- a/translations/wsjtx_it.ts +++ b/translations/wsjtx_it.ts @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete &Elimina - - + + &Insert ... &Inserisci ... - + Failed to create save directory Impossibile creare la directory di salvataggio - + path: "%1% Percorso: "%1" - + Failed to create samples directory Impossibile creare la directory dei campioni - + path: "%1" Percorso: "%1" - + &Load ... &Carica ... - + &Save as ... &Salva come ... - + &Merge ... &Unisci ... - + &Reset &Ripristina - + Serial Port: Porta Seriale: - + Serial port used for CAT control Porta Seriale usata per il controllo CAT - + Network Server: Server di rete: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -452,12 +452,12 @@ Formati: [IPv6-address]: porta - + USB Device: Dispositivo USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -468,152 +468,152 @@ Formato: [VID [: PID [: VENDOR [: PRODOTTI]]]] - + Invalid audio input device Dispositivo di input audio non valido - + Invalid audio out device Dispositivo di uscita audio non valido - + Invalid PTT method Metodo PTT non valido - + Invalid PTT port Porta PTT non valida - - + + Invalid Contest Exchange Scambio Contest non valido - + You must input a valid ARRL Field Day exchange È necessario inserire uno scambioField Day ARRL valido - + You must input a valid ARRL RTTY Roundup exchange È necessario inserire uno scambio Roundup RTTY ARRL valido - + Reset Decode Highlighting Ripristina l'evidenziazione della decodifica - + Reset all decode highlighting and priorities to default values Ripristina tutti i valori di evidenziazione e priorità della decodifica sui valori predefiniti - + WSJT-X Decoded Text Font Chooser Selezionatore font testo decodificato WSJT-X - + Load Working Frequencies Carica frequenze di lavoro - - - + + + Frequency files (*.qrg);;All files (*.*) File di frequenza (*.qrg);;Tutti i file (*.*) - + Replace Working Frequencies Sostituisci le frequenze di lavoro - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? Sei sicuro di voler scartare le tue attuali frequenze di lavoro e sostituirle con quelle caricate? - + Merge Working Frequencies Unisci le frequenze di lavoro - - - + + + Not a valid frequencies file Non è un file di frequenze valido - + Incorrect file magic Magic file errato - + Version is too new La versione è troppo nuova - + Contents corrupt Contenuto corrotto - + Save Working Frequencies Salva frequenze di lavoro - + Only Save Selected Working Frequencies Salva solo le frequenze di lavoro selezionate - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. Sei sicuro di voler salvare solo le frequenze di lavoro che sono attualmente selezionate? Fai clic su No per salvare tutto. - + Reset Working Frequencies Ripristina frequenze di lavoro - + Are you sure you want to discard your current working frequencies and replace them with default ones? Sei sicuro di voler scartare le tue attuali frequenze di lavoro e sostituirle con quelle predefinite? - + Save Directory Salva il direttorio - + AzEl Directory AzEl Direttorio - + Rig control error Errore di controllo rig - + Failed to open connection to rig Impossibile aprire la connessione al rig - + Rig failure Rig fallito @@ -686,9 +686,14 @@ Formato: + DX Lab Suite Commander send command failed "%1": %2 + + + + DX Lab Suite Commander failed to send command "%1": %2 - DX Lab Suite Commander non è riuscito a inviare il comando "%1": %2 + DX Lab Suite Commander non è riuscito a inviare il comando "%1": %2 @@ -1754,19 +1759,16 @@ Errore: %2 - %3 HelpTextWindow - Help file error - Aiuto file di errore + Aiuto file di errore - Cannot open "%1" for reading - Impossibile aprire "%1" per la lettura + Impossibile aprire "%1" per la lettura - Error: %1 - Errore: %1 + Errore: %1 @@ -2073,12 +2075,12 @@ Errore (%2):%3 - - - - - - + + + + + + Band Activity Attività di Banda @@ -2090,11 +2092,11 @@ Errore (%2):%3 - - - - - + + + + + Rx Frequency Frequenza Rx @@ -2556,7 +2558,7 @@ Non disponibile per i possessori di nominativi non standard. - + Fox Fox @@ -3162,6 +3164,86 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). Schedule ... Programma ... + + 1/2 + 1/2 + + + 2/2 + 2/2 + + + 1/3 + 1/3 + + + 2/3 + 2/3 + + + 3/3 + 3/3 + + + 1/4 + 1/4 + + + 2/4 + 2/4 + + + 3/4 + 3/4 + + + 4/4 + 4/4 + + + 1/5 + 1/5 + + + 2/5 + 2/5 + + + 3/5 + 3/5 + + + 4/5 + 4/5 + + + 5/5 + 5/5 + + + 1/6 + 1/6 + + + 2/6 + 2/6 + + + 3/6 + 3/6 + + + 4/6 + 4/6 + + + 5/6 + 5/6 + + + 6/6 + 6/6 + Upload decoded messages to WSPRnet.org. @@ -3182,6 +3264,10 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). 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. + + FT240W + FT240W + Prefer type 1 messages @@ -3410,7 +3496,7 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). - + Runaway Tx watchdog Watchdog Tx sfuggito @@ -3687,8 +3773,8 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). - - + + Receiving Ricevente @@ -3713,166 +3799,166 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). Errore durante il caricamento dei dati degli utenti di LotW - + Error Writing WAV File Errore durante la scrittura del file WAV - + Configurations... Configurazioni... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + Message Messaggio - + Error Killing jt9.exe Process Errore durante l'uccisione del processo jt9.exe - + KillByName return code: %1 Codice di ritorno KillByName:%1 - + Error removing "%1" Errore durante la rimozione di "%1" - + Click OK to retry Fai clic su OK per riprovare - - + + Improper mode Modalità impropria - - + + File Open Error Errore apertura file - - - - - + + + + + Cannot open "%1" for append: %2 Impossibile aprire "%1" per aggiungere:%2 - + Error saving c2 file Errore salvataggio file c2 - + Error in Sound Input Errore nell'ingresso audio - + Error in Sound Output Errore nell'uscita audio - - - + + + Single-Period Decodes Decodifiche a periodo singolo - - - + + + Average Decodes Media Decodifiche - + Change Operator Cambio Operatore - + New operator: Nuovo operatore: - + Status File Error Errore del file di stato - - + + Cannot open "%1" for writing: %2 Impossibile aprire "%1" per la scrittura:%2 - + Subprocess Error Errore sottoprocesso - + Subprocess failed with exit code %1 Il sottoprocesso non è riuscito con il codice di uscita%1 - - + + Running: %1 %2 In esecuzione: %1 %2 - + Subprocess error Errore sottoprocesso - + Reference spectrum saved Spettro di riferimento salvato - + Invalid data in fmt.all at line %1 Dati non validi in fmt.all alla riga%1 - + Good Calibration Solution Buona soluzione di calibrazione - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3885,17 +3971,17 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Elimina misure di calibrazione - + The "fmt.all" file will be renamed as "fmt.bak" Il file "fmt.all" verrà rinominato come "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3904,62 +3990,153 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). "Gli algoritmi, il codice sorgente, l'aspetto di WSJT-X e dei relativi programmi e le specifiche del protocollo per le modalità FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 sono Copyright (C) 2001-2020 di uno o più dei seguenti autori: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q e altri membri del WSJT Development Group. " - + No data read from disk. Wrong file format? Nessun dato letto dal disco. Formato file errato? - + Confirm Delete Conferma Eliminazione - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Sei sicuro di voler eliminare tutti i file * .wav e * .c2 in "%1"? - + Keyboard Shortcuts Scorciatoie da tastiera - + + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> + Keyboard shortcuts help window contents + + + + Special Mouse Commands Comandi speciali mouse - + + <table cellpadding=5> + <tr> + <th align="right">Click on</th> + <th align="left">Action</th> + </tr> + <tr> + <td align="right">Waterfall:</td> + <td><b>Click</b> to set Rx frequency.<br/> + <b>Shift-click</b> to set Tx frequency.<br/> + <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> + </td> + </tr> + <tr> + <td align="right">Decoded text:</td> + <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> + locator to Dx Grid, change Rx and Tx frequency to<br/> + decoded signal's frequency, and generate standard<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> + </td> + </tr> + <tr> + <td align="right">Erase button:</td> + <td><b>Click</b> to erase QSO window.<br/> + <b>Double-click</b> to erase QSO and Band Activity windows. + </td> + </tr> +</table> + Mouse commands help window contents + + + + No more files to open. Niente più file da aprire. - + + Spotting to PSK Reporter unavailable + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Scegli un'altra frequenza Tx. WSJT-X non trasmetterà consapevolmente un'altra modalità nella sottobanda WSPR a 30 m. - + WSPR Guard Band Banda di guardia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Scegli un'altra frequenza di composizione. WSJT-X non funzionerà in modalità Fox nelle sottobande FT8 standard. - + Fox Mode warning Avviso modalità Fox - + Last Tx: %1 Ultimo Tx:%1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3970,184 +4147,184 @@ Per fare ciò, selezionare "Attività operativa speciale" e "Contest VHF EU" sulle impostazioni | Scheda Avanzate. - + Should you switch to ARRL Field Day mode? Dovresti passare alla modalità Field Day di ARRL? - + Should you switch to RTTY contest mode? Dovresti passare alla modalità contest RTTY? - - - - + + + + Add to CALL3.TXT Aggiungi a CALL3.TXT - + Please enter a valid grid locator Inserisci un localizzatore di griglia valido - + Cannot open "%1" for read/write: %2 Impossibile aprire "%1" per lettura / scrittura:%2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 è già in CALL3.TXT, desideri sostituirlo? - + Warning: DX Call field is empty. Avviso: il campo Chiamata DX è vuoto. - + Log file error Errore nel file di registro - + Cannot open "%1" Impossibile aprire "%1" - + Error sending log to N1MM Errore durante l'invio del Log a N1MM - + Write returned "%1" Scrivi ha restituito "%1" - + Stations calling DXpedition %1 Stazioni che chiamano la DXpedition %1 - + Hound (Hound=Cane da caccia) Hound - + Tx Messages Messaggi Tx - - - + + + Confirm Erase Conferma Cancella - + Are you sure you want to erase file ALL.TXT? Sei sicuro di voler cancellare il file ALL.TXT? - - + + Confirm Reset Conferma Ripristina - + Are you sure you want to erase your contest log? Sei sicuro di voler cancellare il tuo Log del contest? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. In questo modo verranno rimossi tutti i record QSO per il contest corrente. Saranno conservati nel file di registro ADIF ma non saranno disponibili per l'esportazione nel registro Cabrillo. - + Cabrillo Log saved Log Cabrillo salvato - + Are you sure you want to erase file wsjtx_log.adi? Sei sicuro di voler cancellare il file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? Sei sicuro di voler cancellare la tabella hash WSPR? - + VHF features warning VHF presenta un avviso - + Tune digital gain Ottimizza il guadagno digitale - + Transmit digital gain Trasmetti Guadagno digitale - + Prefixes Prefissi - + Network Error Errore di Rete - + Error: %1 UDP server %2:%3 Errore:%1 Server UDP%2:%3 - + File Error Errore File - + Phase Training Disabled Fase di Allenamento Disabilitato - + Phase Training Enabled Fase di allenamento abilitato - + WD:%1m WD:%1m - - + + Log File Error Errore file di Log - + Are you sure you want to clear the QSO queues? Sei sicuro di voler cancellare le code QSO? @@ -4828,6 +5005,10 @@ Errore (%2):%3 <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> <html><head/><body><p>Decodifica JT9 solo sopra questa frequenza</p></body></html> + + Hz + Hz + JT9 @@ -5853,509 +6034,523 @@ e i campi della Griglia DX quando viene inviato un messaggio di testo libero o 7 + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> + + + The program can send your station details and all decoded signals as spots to the http://pskreporter.info web site. This is used for reverse beacon analysis which is very useful for assessing propagation and system performance. - Il programma può inviare i dettagli della tua stazione e tutto il resto + Il programma può inviare i dettagli della tua stazione e tutto il resto segnali decodificati come spot per il sito Web http://pskreporter.info. Questo è usato per l'analisi del beacon inverso che è molto utile per valutare la propagazione e le prestazioni del sistema. - + Enable &PSK Reporter Spotting Abilita rilevamento &PSK Reporter - + + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> + + + + + Use TCP/IP connection + + + + UDP Server UDP Server - + UDP Server: UDP Server: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>Nome host facoltativo del servizio di rete per ricevere decodifiche.</p><p>Formati:</p><ul style="margin-top: 0px; margin-bottom: 0px; margine-sinistra: 0px; margine-destra: 0px; -qt-list-indent: 1;"><li style="margin-top: 12px; margin-bottom: 0px; margin-left: 0px; margin- right: 0px; -qt-block-indent: 0; text-indent: 0px;">hostname</li><li style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin -right: 0px; -qt-block-indent: 0; text-indent: 0px;">Indirizzo IPv4</li><li style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px ; margin-right: 0px; -qt-block-indent: 0; text-indent: 0px;">Indirizzo IPv6</li><li style="margin-top: 0px; margin-bottom: 0px; margin-left : 0px; margine-destra: 0px; -qt-block-indent: 0; text-indent: 0px;">Indirizzo gruppo multicast IPv4</li><li style="margin-top: 0px; margin-bottom: 0px ; margin-left: 0px; margin-right: 0px; -qt-block-indent: 0; text-indent: 0px;">Indirizzo gruppo multicast IPv6</li></ul><p>Deselezionando questo campo si disabilita la trasmissione di aggiornamenti di stato UDP.</p></Body></html> - + UDP Server port number: Porta del Server UDP: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p>Immettere il numero di porta del servizio del server UDP a cui WSJT-X deve inviare gli aggiornamenti. Se questo è zero, non verranno trasmessi aggiornamenti.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p>Con questo abilitato WSJT-X accetterà alcune richieste di ritorno da un server UDP che riceve messaggi di decodifica.</p></body></html> - + Accept UDP requests Accetta richieste UDP - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p>Indica l'accettazione di una richiesta UDP in arrivo. L'effetto di questa opzione varia a seconda del sistema operativo e del gestore delle finestre, il suo intento è di notificare l'accettazione di una richiesta UDP in arrivo anche se questa applicazione è ridotta a icona o nascosta.</p></body></html> - + Notify on accepted UDP request Notifica su richiesta UDP accettata - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p>Ripristina la finestra da minimizzata se viene accettata una richiesta UDP.</p></body></html> - + Accepted UDP request restores window Finestra di ripristino richieste UDP accettate - + Secondary UDP Server (deprecated) Server UDP Secondario (obsoleto) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p>Se selezionato, WSJT-X trasmetterà un contatto registrato in formato ADIF al nome host e alla porta configurati.</p></body></html> - + Enable logged contact ADIF broadcast Abilita trasmissione ADIF del contatto registrato - + Server name or IP address: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>Nome host facoltativo del programma Logger + N1MM per ricevere trasmissioni UDP ADIF. Di solito si tratta di "localhost" o indirizzo IP 127.0.0.1</p><p>Formati:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indirizzo IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indirizzo IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indirizzo di gruppo multicast IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indirizzo di gruppo multicast IPv6</li></ul><p>La cancellazione di questo campo disabiliterà la trasmissione di informazioni ADIF tramite UDP.</p></body></html> - + Server port number: Numero porta Server: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>Immettere il numero di porta che WSJT-X deve utilizzare per le trasmissioni UDP delle informazioni del registro ADIF. Per N1MM Logger +, questo valore dovrebbe essere 2333. Se questo è zero, non verrà trasmesso alcun aggiornamento.</p></body></html> - + Frequencies Frequenze - + Default frequencies and band specific station details setup Frequenze predefinite e impostazione specifiche dei dettagli della stazione per banda - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>Vedere &quot;Calibrazione di Frequenza&quot;nella Guida dell'utente WSJT-X per i dettagli su come determinare questi parametri per la radio.</p></body></html> - + Frequency Calibration Calibrazione di Frequenza - + Slope: Inclinazione: - + ppm ppm - + Intercept: Intercetta: - + Hz Hz - + Working Frequencies Frequenze di Lavoro - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>Fare clic con il tasto destro per mantenere l'elenco delle frequenze di lavoro.</p></body></html> - + Station Information Informazioni Stazione - + Items may be edited. Right click for insert and delete options. Gli articoli possono essere modificati. Fare clic con il tasto destro per inserire ed eliminare le opzioni. - + Colors Colori - + Decode Highlightling Evidenziazione Decodifica - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> <html><head/><body><p>Fare clic per scansionare nuovamente il file ADIF wsjtx_log.adi alla ricerca di informazioni se collegato prima</p></body></html> - + Rescan ADIF Log Eseguire nuovamente la scansione del registro ADIF - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>Premere per ripristinare tutti gli elementi evidenziati sopra ai valori e alle priorità predefiniti.</p></body></html> - + Reset Highlighting Ripristina l'evidenziazione - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body><p>Abilitare o disabilitare utilizzando le caselle di controllo e fare clic con il pulsante destro del mouse su un elemento per modificare o annullare il colore di primo piano, il colore di sfondo o ripristinare l'elemento sui valori predefiniti. Trascina e rilascia gli elementi per cambiarne la priorità, più in alto nell'elenco ha una priorità più alta.</p><p>Nota che ogni colore di primo piano o di sfondo può essere impostato o non impostato, non impostato significa che non è assegnato per quello di quell'elemento possono essere applicati articoli di tipo e priorità inferiore.</p></body></html> - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>Selezionare per indicare nuove entità DXCC, quadrati della griglia e nominativi per modalità.</p></body></html> - + Highlight by Mode Evidenzia per modalità - + Include extra WAE entities Includi entità WAE extra - + Check to for grid highlighting to only apply to unworked grid fields Verificare che l'evidenziazione della griglia si applichi solo ai campi della griglia non lavorati - + Only grid Fields sought Sono stati cercati solo i campi della griglia - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>Controlli per la ricerca degli utenti di Logbook of the World.</p></body></html> - + Logbook of the World User Validation Convalida dell'utente Logbook of the World - + Users CSV file URL: URL del file CSV degli utenti: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body><p>URL del file di dati e date dell'ultimo caricamento dell'utente ARRL LotW utilizzato per evidenziare i decodificatori dalle stazioni note per caricare il loro file di registro su LotW.</p></body></html> - + https://lotw.arrl.org/lotw-user-activity.csv https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>Premere questo pulsante per recuperare l'ultimo file di dati di data e ora di caricamento dell'utente LotW.</p></body></html> - + Fetch Now Scarica ora - + Age of last upload less than: Periodo dell'ultimo caricamento inferiore a: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p>Regola questa casella di selezione per impostare la soglia del periodo dell'ultima data di caricamento dell'utente di LotW accettata come utente corrente di LotW.</p></body></html> - + days giorni - + Advanced Avanzato - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>Parametri selezionabili dall'utente per la decodifica JT65 VHF/UHF/Microonde.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters JT65 Parametri di decodifica VHF/UHF/Microonde - + Random erasure patterns: Schemi di cancellazione casuali: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p>Il numero massimo di schemi di cancellazione per il decodificatore stocastico Reed Solomon a decisione morbida è 10^(n/2)</p></body></html> - + Aggressive decoding level: Livello di decodifica aggressivo: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>Livelli più alti aumenteranno la probabilità di decodifica, ma aumenteranno anche la probabilità di una decodifica falsa.</p></body></html> - + Two-pass decoding Decodifica a due passaggi - + Special operating activity: Generation of FT4, FT8, and MSK144 messages Attività operativa speciale: Generazione di messaggi FT4, FT8 e MSK144 - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> (Hound=Cane da caccia) <html><head/><body><p>FT8 DXpedition mode: operator Hound chiama il DX.</p></body></html> - + Hound Hound (Cane da caccia) - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>Contests Nordamericani VHF/UHF/Microonde e altri in cui un localizzatore di griglia a 4 caratteri è lo scambio richiesto.</p></body></html> - + NA VHF Contest NA VHF Contest - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>Modalità FT8 DXpedition: operatore Fox (DXpedition).</p></body></html> - + Fox (Fox=Volpe) Fox - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>Contest VHF + Europei che richiedono un rapporto segnale, numero di serie e localizzatore a 6 caratteri.</p></body></html> - + EU VHF Contest EU VHF Contest - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY Roundup e contests simili. Lo scambio è stato USA, provincia Canadese o &quot;DX&quot;</p></body></html> - + RTTY Roundup messages Messaggi Roundup RTTY - + RTTY RU Exch: Scambio RTTY RU: - + NJ NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>Scambio di Field Day ARRL: numero di trasmettitori, classe e sezione ARRL / RAC o&quot;DX&quot;.</p></body></html> - + ARRL Field Day ARRL Field Day - + FD Exch: Scambio FD: - + 6A SNJ 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>Contest Digi-Mode mondiale</p><p><br/></p></body></html> - + WW Digi Contest WW Digi Contest - + Miscellaneous Miscellanea - + Degrade S/N of .wav file: Degrada S/N del file .wav: - - + + For offline sensitivity tests Per test di sensibilità offline - + dB dB - + Receiver bandwidth: Larghezza di banda ricevitore: - + Hz Hz - + Tx delay: Ritardo Tx: - + Minimum delay between assertion of PTT and start of Tx audio. Ritardo minimo tra l'asserzione del PTT e l'avvio dell'audio Tx. - + s ..s - + Tone spacing Spaziatura dei toni - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>Genera audio Tx con una spaziatura del doppio del tono normale. Destinato a trasmettitori speciali LF / MF che utilizzano un divisore per 2 prima di generare RF.</p></body></html> - + x 2 x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>Genera audio Tx con una spaziatura dei toni quattro volte superiore. Destinato a trasmettitori speciali LF / MF che utilizzano un divisore per 4 prima di generare RF.</p></body></html> - + x 4 x 4 - + Waterfall spectra Spettro Display a cascata - + Low sidelobes Lobi laterali bassi - + Most sensitive Più sensibile - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p>Annulla (Annulla) o applica (OK) le modifiche alla configurazione incluso</p><p>ripristinando l'interfaccia radio e applicando eventuali modifiche alla scheda audio</p></body></html> @@ -6363,16 +6558,12 @@ Fare clic con il tasto destro per inserire ed eliminare le opzioni. main - - Fatal error - Errore fatale + Errore fatale - - Unexpected fatal error - Errore fatale inatteso + Errore fatale inatteso @@ -6416,15 +6607,25 @@ Fare clic con il tasto destro per inserire ed eliminare le opzioni.percorso: "%1" - + Shared memory error Errore di memoria condivisa - + Unable to create shared memory segment Impossibile creare il segmento di memoria condivisa + + + Sub-process error + + + + + Failed to close orphaned jt9 process + + wf_palette_design_dialog diff --git a/translations/wsjtx_ja.ts b/translations/wsjtx_ja.ts index 33b1fde39..f92b67d10 100644 --- a/translations/wsjtx_ja.ts +++ b/translations/wsjtx_ja.ts @@ -368,75 +368,75 @@ Configuration::impl - - - + + + &Delete 削除(&D) - - + + &Insert ... 挿入(&I)... - + Failed to create save directory 保存のためのフォルダを作成できません - + path: "%1% パス: "%1% - + Failed to create samples directory サンプルフォルダを作成できません - + path: "%1" パス: "%1" - + &Load ... 読み込み(&L)... - + &Save as ... 名前を付けて保存(&S)... - + &Merge ... 結合(&M)... - + &Reset リセット(&R) - + Serial Port: シリアルポート: - + Serial port used for CAT control CAT制御用シリアルポート - + Network Server: ネットワークサーバ: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -451,12 +451,12 @@ Formats: [IPv6-アドレス]:ポート番号 - + USB Device: USBデバイス: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -467,152 +467,152 @@ Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - + Invalid audio input device 無効なオーディオ入力デバイス - + Invalid audio out device 無効なオーディオ出力デバイス - + Invalid PTT method 無効なPTT方式 - + Invalid PTT port 無効なPTT用ポート - - + + Invalid Contest Exchange 無効なコンテストナンバー - + You must input a valid ARRL Field Day exchange 正しいARRLフィールドデーコンテストナンバーを入力しなければなりません - + You must input a valid ARRL RTTY Roundup exchange 正しいARRL RTTY ラウンドアップのコンテストナンバーを入力しなければなりません - + Reset Decode Highlighting デコードハイライトをリセット - + Reset all decode highlighting and priorities to default values すべてのハイライトと優先順位設定をデフォルトへ戻す - + WSJT-X Decoded Text Font Chooser WSJT-Xのデコード出力用フォント選択 - + Load Working Frequencies 使用周波数を読み込み - - - + + + Frequency files (*.qrg);;All files (*.*) 周波数ファイル (*.qrg);;全ファイル (*.*) - + Replace Working Frequencies 使用周波数を置き換え - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? 本当に現在の周波数を読み込んだ周波数で置き換えてもいいですか? - + Merge Working Frequencies 使用周波数を追加併合 - - - + + + Not a valid frequencies file 正しい周波数ファイルではない - + Incorrect file magic 無効なファイルマジック - + Version is too new バージョンが新しすぎます - + Contents corrupt 中身が壊れています - + Save Working Frequencies 使用周波数を保存 - + Only Save Selected Working Frequencies 選択した使用周波数のみ保存 - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. 選択した使用周波数だけを保存してもいいですか。全部を保存したいときはNoをクリックしてください。 - + Reset Working Frequencies 使用周波数をリセット - + Are you sure you want to discard your current working frequencies and replace them with default ones? 本当に現在の使用周波数を破棄してデフォルト周波数と置き換えてもよいですか? - + Save Directory フォルダーを保存 - + AzEl Directory AzElフォルダー - + Rig control error 無線機コントロールエラー - + Failed to open connection to rig 無線機へ接続できません - + Rig failure 無線機エラー @@ -685,9 +685,14 @@ Format: + DX Lab Suite Commander send command failed "%1": %2 + + + + DX Lab Suite Commander failed to send command "%1": %2 - DX Lab Suite Commanderが "%1": %2コマンドを送れませんでした + DX Lab Suite Commanderが "%1": %2コマンドを送れませんでした @@ -1750,19 +1755,16 @@ Error: %2 - %3 HelpTextWindow - Help file error - ヘルプファイルエラー + ヘルプファイルエラー - Cannot open "%1" for reading - "%1"を開けません + "%1"を開けません - Error: %1 - エラー: %1 + エラー: %1 @@ -2069,12 +2071,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity バンド状況 @@ -2086,11 +2088,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency 受信周波数 @@ -2552,7 +2554,7 @@ Not available to nonstandard callsign holders. - + Fox Fox @@ -3156,6 +3158,86 @@ ENTERを押してテキストを登録リストに追加. Schedule ... スケジュール .... + + 1/2 + 1/2 + + + 2/2 + 2/2 + + + 1/3 + 1/3 + + + 2/3 + 2/3 + + + 3/3 + 3/3 + + + 1/4 + 1/4 + + + 2/4 + 2/4 + + + 3/4 + 3/4 + + + 4/4 + 4/4 + + + 1/5 + 1/5 + + + 2/5 + 2/5 + + + 3/5 + 3/5 + + + 4/5 + 4/5 + + + 5/5 + 5/5 + + + 1/6 + 1/6 + + + 2/6 + 2/6 + + + 3/6 + 3/6 + + + 4/6 + 4/6 + + + 5/6 + 5/6 + + + 6/6 + 6/6 + Upload decoded messages to WSPRnet.org. @@ -3404,7 +3486,7 @@ ENTERを押してテキストを登録リストに追加. - + Runaway Tx watchdog Txウオッチドッグ発令 @@ -3681,8 +3763,8 @@ ENTERを押してテキストを登録リストに追加. - - + + Receiving 受信中 @@ -3707,166 +3789,166 @@ ENTERを押してテキストを登録リストに追加. LotWユーザデータをロードできません - + Error Writing WAV File WAVファイルを書き込みできません - + Configurations... コンフィグレーション... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + Message メッセージ - + Error Killing jt9.exe Process jt9.exeプロセスを終了できません - + KillByName return code: %1 KillByNameリターンコード: %1 - + Error removing "%1" "%1"を削除できません - + Click OK to retry OKを押して再試行 - - + + Improper mode 不適切なモード - - + + File Open Error ファイルオープンエラー - - - - - + + + + + Cannot open "%1" for append: %2 "%2"を追加する"%1"が開けません - + Error saving c2 file c2ファイルを保存できません - + Error in Sound Input サウンド入力にエラー発生 - + Error in Sound Output サウンド出力にエラー発生 - - - + + + Single-Period Decodes シングルパスデコード - - - + + + Average Decodes 平均デコード - + Change Operator オペレータ交代 - + New operator: 新オペレータ: - + Status File Error ステータスファイルエラー - - + + Cannot open "%1" for writing: %2 %2を書き込むための"%1"が開けません - + Subprocess Error サブプロセスエラー - + Subprocess failed with exit code %1 サブプロセスエラー 終了コード %1 - - + + Running: %1 %2 実行中: %1 %2 - + Subprocess error サブプロセスエラー - + Reference spectrum saved 参照用スペクトラムを保存しました - + Invalid data in fmt.all at line %1 fmt.allの%1行目に無効なデータ - + Good Calibration Solution 較正良好 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3875,79 +3957,170 @@ ENTERを押してテキストを登録リストに追加. - + Delete Calibration Measurements 較正の測定結果を削除 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all"は"fmt.bak"に名前が変わります - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? ディスクからデータが読めません.フォーマットが合っていますか? - + Confirm Delete 削除確認 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? "%1"のすべての*.wavと*.c2ファイルを削除していいですか? - + Keyboard Shortcuts キーボードショートカット - + + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> + Keyboard shortcuts help window contents + + + + Special Mouse Commands 特別なマウス操作 - + + <table cellpadding=5> + <tr> + <th align="right">Click on</th> + <th align="left">Action</th> + </tr> + <tr> + <td align="right">Waterfall:</td> + <td><b>Click</b> to set Rx frequency.<br/> + <b>Shift-click</b> to set Tx frequency.<br/> + <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> + </td> + </tr> + <tr> + <td align="right">Decoded text:</td> + <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> + locator to Dx Grid, change Rx and Tx frequency to<br/> + decoded signal's frequency, and generate standard<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> + </td> + </tr> + <tr> + <td align="right">Erase button:</td> + <td><b>Click</b> to erase QSO window.<br/> + <b>Double-click</b> to erase QSO and Band Activity windows. + </td> + </tr> +</table> + Mouse commands help window contents + + + + No more files to open. これ以上開くファイルがありません. - + + Spotting to PSK Reporter unavailable + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 他の送信周波数を使ってください. WSJT-Xは30mバンドのWSPRサブバンド中の他のモードを受信せずに送信してしまいます. - + WSPR Guard Band WSPRガードバンド - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 他のダイヤル周波数を使ってください. WSJT-XはFT8の標準サブバンドでFoxモードを使えません。 - + Fox Mode warning Foxモード警告 - + Last Tx: %1 最終送信: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3957,183 +4130,183 @@ To do so, check 'Special operating activity' and 設定|詳細タブで設定変更してください. - + Should you switch to ARRL Field Day mode? ARRLフィールドデーモードに切り替えますか? - + Should you switch to RTTY contest mode? RTTYコンテストモードに切り替えますか? - - - - + + + + Add to CALL3.TXT CALL3.TXTへ追加 - + Please enter a valid grid locator 有効なグリッドロケータを入力してください - + Cannot open "%1" for read/write: %2 %2を読み書きするための"%1"が開けません - + %1 is already in CALL3.TXT, do you wish to replace it? %1 がすでにCALL3.TXTにセットされています。置き換えますか? - + Warning: DX Call field is empty. 警告 DXコールが空白です. - + Log file error ログファイルエラー - + Cannot open "%1" "%1"を開けません - + Error sending log to N1MM N1MMへログを送れません - + Write returned "%1" 応答"%1"を書き込み - + Stations calling DXpedition %1 DXペディション %1を呼ぶ局 - + Hound Hound - + Tx Messages 送信メッセージ - - - + + + Confirm Erase 消去確認 - + Are you sure you want to erase file ALL.TXT? ALL.TXTファイルを消去してよいですか? - - + + Confirm Reset リセット確認 - + Are you sure you want to erase your contest log? コンテストログを消去していいですか? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 現在のコンテストのQSO記録をすべて消去します。ADIFログには記録されますがCabrilloログにエクスポートすることはできません. - + Cabrillo Log saved Cabrilloログ保存しました - + Are you sure you want to erase file wsjtx_log.adi? wsjtx_log.adiを消してもよいですか? - + Are you sure you want to erase the WSPR hashtable? WSPRのハッシュテーブルを消してもよいですか? - + VHF features warning VHF機能警告 - + Tune digital gain チューンのデジタルゲイン - + Transmit digital gain 送信デジタルゲイン - + Prefixes プリフィックス - + Network Error ネットワークエラー - + Error: %1 UDP server %2:%3 エラー %1 UDPサーバー %2:%3 - + File Error ファイルエラー - + Phase Training Disabled 位相調整オフ - + Phase Training Enabled 位相調整オン - + WD:%1m WD:%1m - - + + Log File Error ログファイルエラー - + Are you sure you want to clear the QSO queues? QSO待ち行列をクリアしてもいいですか? @@ -4815,6 +4988,10 @@ Error(%2): %3 <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> <html><head/><body><p>この周波数より上でのみJT9をデコード</p></body></html> + + Hz + Hz + JT9 @@ -5833,507 +6010,521 @@ and DX Grid fields when a 73 or free text message is sent. + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> + + + The program can send your station details and all decoded signals as spots to the http://pskreporter.info web site. This is used for reverse beacon analysis which is very useful for assessing propagation and system performance. - 貴局の詳細情報とデコードした信号を + 貴局の詳細情報とデコードした信号を http://pskreporter.info webサイトにスポットします. 電波伝搬やシステム性能を評価するのに大変有用な リバースビーコンに使用されます. - + Enable &PSK Reporter Spotting PSK Reporterによるスポットをオン(&P) - + + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> + + + + + Use TCP/IP connection + + + + UDP Server UDPサーバー - + UDP Server: UDPサーバー: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>ネットワークサービスのホスト名指定オプション.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ホスト名</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 アドレス</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 アドレス</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 マルチキャストグループアドレス</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 マルチキャストグループアドレス</li></ul><p>空白の場合は、UDPブロードキャストがオフ.</p></body></html> - + UDP Server port number: UDPサーバーのポート番号: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p>WSJT-Xがデータを送る先のUDPポート番号. ゼロの場合はデータを送りません.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p>オンにすると、WSJT-XはUDPサーバーからのデータを受け付けます.</p></body></html> - + Accept UDP requests UDP要求を受け付ける - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p>UDPリクエストを受け付けたことを表示. OSやウィンドウマネージャによって振る舞いが変わります. アプリウィンドウが最小化されていたり隠れていたりしていてもUDPリクエストが送られてきたことを知るために使うことができます.</p></body></html> - + Notify on accepted UDP request UDPリクエストが来たとき知らせる - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p>UDPリクエストが来たとき、ウィンドウを最小化から元の大きさへ戻します.</p></body></html> - + Accepted UDP request restores window ウィンドウを元に戻すUDPリクエストを受け付ける - + Secondary UDP Server (deprecated) 第二UDPサーバー(使わないことを推奨) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p>ここをチェックすると、WSJT-XはADIFフォーマットのログ情報を指定のホストの指定のポートへブロードキャストします. </p></body></html> - + Enable logged contact ADIF broadcast ADIFログ情報をブロードキャスト - + Server name or IP address: サーバー名またはIPアドレス: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>ADIF UDP ブロードキャストを受けるN1MM Logger+のホスト名. 通常は 'localhost' または ip アドレス 127.0.0.1</p><p>フォーマット:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ホスト名</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 マルチキャストグループアドレス</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 マルチキャストグループアドレス</li></ul><p>空白にすることで、UDP経由のADIF情報ブロードキャストを停止.</p></body></html> - + Server port number: サーバーのポート番号: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>WSJT-XがADIF情報をブロードキャストする先のUDPポート番号. N1MM Logger+のときは2333. ゼロの場合はブロードキャスト停止.</p></body></html> - + Frequencies 周波数 - + Default frequencies and band specific station details setup デフォルト周波数及びバンドごとの局情報設定 - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>あなたの無線機に合わせたパラメータ設定の詳細については、WSJT-Xユーザーガイドの &quot;Frequency Calibration&quot; セクションを参照のこと.</p></body></html> - + Frequency Calibration 周波数較正 - + Slope: スロープ: - + ppm - + Intercept: インターセプト: - + Hz - + Working Frequencies 運用周波数 - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>右クリックで周波数リストの管理.</p></body></html> - + Station Information 局情報 - + Items may be edited. Right click for insert and delete options. 項目は編集できます. 右クリックで挿入や削除が選べます. - + Colors - + Decode Highlightling デコードハイライト - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> クリックすることでADIFファイル(wsjtx_log.adi)を読み直し、交信済みの情報を得る - + Rescan ADIF Log ADIFログを再読み込み - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>ここから上すべてのハイライト項目のデフォルト値と優先度をリセットする.</p></body></html> - + Reset Highlighting ハイライトをリセット - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body><p>チェックボックスでオンオフを切り替え、右クリックで項目を編集、文字色、背景色を指定、あるいはデフォルト値へリセット. ドラッグアンドドロップで項目の優先順位を変更、リストの上にいくほど優先度高.</p><p>文字色と背景色はそれぞれ指定または解除が選択可能. 解除とはその項目では色指定されないが、より低い優先度の項目で指定されるかもしれないという意味.</p></body></html> - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>チェックするとモードごとに新DXCCエンティティ、新グリッドスクエア、新コールサインを表示します.</p></body></html> - + Highlight by Mode モードハイライト - + Include extra WAE entities WAEの特別エンティティを含む - + Check to for grid highlighting to only apply to unworked grid fields チェックするとグリッドハイライトは未交信グリッドのみに適用 - + Only grid Fields sought グリッドのみ検索 - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>LotWユーザー参照設定.</p></body></html> - + Logbook of the World User Validation LotWユーザー確認 - + Users CSV file URL: ユーザーのCSVファイルURL: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body><p>ARRL LotWのURL. QSO相手がLotWを使っているかどうかを判定しハイライトするために、相手がいつログデータをLotWへアップロードしたか調べます.</p></body></html> - + https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>このボタンを押すとQSO相手が最近いつLotWへログをアップロードしたかという情報を取得します.</p></body></html> - + Fetch Now データ取り込み - + Age of last upload less than: 最終アップロード日がこの日数以内: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p>このスピンボックスを使ってLotWユーザが過去何日以内にLotWへログをアップデートしたらLotWを現在も使っていると判断するか指定します.</p></body></html> - + days - + Advanced 詳細 - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>JT65 VHF/UHF/Microwaveデコードのユーザパラメータ設定.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters JT65 VHF/UHF/Microwave デコードパラメータ - + Random erasure patterns: ランダム消去パターン: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p>確率的判定の最大ランダム消去パターン数 Reed Solomon デコーダーは 10^(n/2).</p></body></html> - + Aggressive decoding level: デコードレベル: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>大きな値にするとデコードする確率は高まりますが、同時に誤ったデータを出力する可能性も高まります.</p></body></html> - + Two-pass decoding 2パスデコード - + Special operating activity: Generation of FT4, FT8, and MSK144 messages 特別な運用 FT4, FT8, MSK144用のメッセージ生成 - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> <html><head/><body><p>FT8 DXペディションモード: DXを呼ぶHound オペレータ</p></body></html> - + Hound - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>北アメリカ VHF/UHF/Microwave コンテストなど、コンテストナンバーとして4桁のグリッドロケーター使う場合.</p></body></html> - + NA VHF Contest NA VHFコンテスト - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>FT8 DXペディションモード: Fox (DXペディションのオペレータ).</p></body></html> - + Fox - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>European VHF+ コンテスト, コンテストナンバーとしてシグナルレポート、シリアルナンバー、6桁のロケータを交換する場合.</p></body></html> - + EU VHF Contest EU VHFコンテスト - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY ラウンドアップなどのコンテスト. コンテストナンバーはアメリカ州、カナダ州、または &quot;DX&quot;.</p></body></html> - + RTTY Roundup messages RTTYラウンドアップメッセージ - + RTTY RU Exch: - + NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL フィールドデーのコンテストナンバー、送信機, クラス, ARRL/RAC セクション または &quot;DX&quot;.</p></body></html> - + ARRL Field Day ARRLフィールドデー - + FD Exch: FD ナンバー: - + 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>World-Wide デジモードコンテスト</p><p><br/></p></body></html> - + WW Digi Contest WWデジタルコンテスト - + Miscellaneous その他 - + Degrade S/N of .wav file: wavファイルのSN比を落とす: - - + + For offline sensitivity tests オフライン感度テスト用 - + dB dB - + Receiver bandwidth: 受信バンド幅: - + Hz Hz - + Tx delay: 送信遅延: - + Minimum delay between assertion of PTT and start of Tx audio. PTTをオンにしてからオーディオ信号を発生するまでの最小時間. - + s - + Tone spacing トーン間隔 - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>通常の2倍のトーン間隔を持った信号を送信. 電波を出す際に周波数を2分の1にする特別なLF/MF送信機用.</p></body></html> - + x 2 x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>通常の4倍のトーン間隔を持った信号を送信. 電波を出す際に周波数を4分の1にする特別なLF/MF送信機用.</p></body></html> - + x 4 x 4 - + Waterfall spectra ウォーターフォールスペクトラム - + Low sidelobes サイドローブ表示控え目 - + Most sensitive 最大感度 - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p>コンフィグレーション変更の破棄 (キャンセル) または 適用 (OK)</p><p>無線機インターフェイスのリセットとサウンドカードの変更を含む</p></body></html> @@ -6341,16 +6532,12 @@ Right click for insert and delete options. main - - Fatal error - 致命的エラー + 致命的エラー - - Unexpected fatal error - 予期せぬ致命的エラー + 予期せぬ致命的エラー Where <rig-name> is for multi-instance support. @@ -6434,15 +6621,25 @@ Right click for insert and delete options. パス: "%1" - + Shared memory error 共有メモリエラー - + Unable to create shared memory segment 共有メモリセグメントが作成できません + + + Sub-process error + + + + + Failed to close orphaned jt9 process + + wf_palette_design_dialog diff --git a/translations/wsjtx_zh.ts b/translations/wsjtx_zh.ts index b0e394d0c..1744307d2 100644 --- a/translations/wsjtx_zh.ts +++ b/translations/wsjtx_zh.ts @@ -368,75 +368,75 @@ Configuration::impl - - - + + + &Delete 删除(&D) - - + + &Insert ... 插入(&I) ... - + Failed to create save directory 无法创建保存目录 - + path: "%1% 目錄: "%1% - + Failed to create samples directory 无法创建示例目录 - + path: "%1" 目录: "%1" - + &Load ... 加载(&L) ... - + &Save as ... 另存为(&S) ... - + &Merge ... 合并(&M) ... - + &Reset 重置(&R) - + Serial Port: 串行端口: - + Serial port used for CAT control 用于CAT控制的串行端口 - + Network Server: 网络服务器: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -451,12 +451,12 @@ Formats: [IPv6-地址]:端口 - + USB Device: USB 设备: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -467,152 +467,152 @@ Format: [VID[:PID[:供应商[:产品]]]] - + Invalid audio input device 无效的音频输入设备 - + Invalid audio out device 无效的音频输出设备 - + Invalid PTT method 无效的PTT方法 - + Invalid PTT port 无效的PTT端口 - - + + Invalid Contest Exchange 无效的竞赛交换数据 - + You must input a valid ARRL Field Day exchange 您必须输入有效的 ARRL Field Day交换数据 - + You must input a valid ARRL RTTY Roundup exchange 您必须输入有效的 ARRL RTTY Roundup 交换数据 - + Reset Decode Highlighting 重置解码突出显示 - + Reset all decode highlighting and priorities to default values 将所有解码突出显示和优先级重置为默认值 - + WSJT-X Decoded Text Font Chooser WSJT-X 解码文本字体选择 - + Load Working Frequencies 载入工作频率 - - - + + + Frequency files (*.qrg);;All files (*.*) 频率文件 (*.qrg);;所有文件 (*.*) - + Replace Working Frequencies 替换工作频率 - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? 是否确实要放弃当前工作频率, 并将其替换为加载的频率? - + Merge Working Frequencies 合并工作频率 - - - + + + Not a valid frequencies file 不是有效的频率文件 - + Incorrect file magic 不正确的文件內容 - + Version is too new 版本太新 - + Contents corrupt 内容已损坏 - + Save Working Frequencies 保存工作频率 - + Only Save Selected Working Frequencies 仅保存选定的工作频率 - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. 是否确实要仅保存当前选择的工作频率? 单击 否 可保存所有. - + Reset Working Frequencies 重置工作频率 - + Are you sure you want to discard your current working frequencies and replace them with default ones? 您确定要放弃您当前的工作频率并用默认值频率替换它们吗? - + Save Directory 保存目录 - + AzEl Directory AzEl 目录 - + Rig control error 无线电设备控制错误 - + Failed to open connection to rig 无法打开无线电设备的连接 - + Rig failure 无线电设备故障 @@ -685,9 +685,14 @@ Format: + DX Lab Suite Commander send command failed "%1": %2 + + + + DX Lab Suite Commander failed to send command "%1": %2 - DX Lab Suite Commander 发送命令失败 "%1": %2 + DX Lab Suite Commander 发送命令失败 "%1": %2 @@ -1750,19 +1755,16 @@ Error: %2 - %3 HelpTextWindow - Help file error - 帮助文件错误 + 帮助文件错误 - Cannot open "%1" for reading - 无法打开 "%1" 以进行阅读 + 无法打开 "%1" 以进行阅读 - Error: %1 - 错误: %1 + 错误: %1 @@ -2069,12 +2071,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity 波段活动 @@ -2086,11 +2088,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency 接收信息 @@ -2552,7 +2554,7 @@ Not available to nonstandard callsign holders. - + Fox 狐狸 @@ -3406,7 +3408,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog 运行发射监管计时器 @@ -3593,7 +3595,7 @@ list. The list can be maintained in Settings (F2). WSPR-LF - + @@ -3683,8 +3685,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving 接收 @@ -3709,166 +3711,166 @@ list. The list can be maintained in Settings (F2). 加载 LotW 用户数据错误 - + Error Writing WAV File 写入 WAV 文件时错误 - + Configurations... 配置文件... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + Message 信息 - + Error Killing jt9.exe Process 错误终止 jt9.exe 进程 - + KillByName return code: %1 按名称终止返回代码: %1 - + Error removing "%1" 删除时出错误 "%1" - + Click OK to retry 单击 确定 重试 - - + + Improper mode 模式不正确 - - + + File Open Error 文件打开出错误 - - - - - + + + + + Cannot open "%1" for append: %2 无法打开 "%1" 用于附加: %2 - + Error saving c2 file 保存 c2 文件出错误 - + Error in Sound Input 声音输入出错误 - + Error in Sound Output 声音输出错误 - - - + + + Single-Period Decodes 单周期解码 - - - + + + Average Decodes 平均解码 - + Change Operator 改变操作员 - + New operator: 新操作员: - + Status File Error 状态文件错误 - - + + Cannot open "%1" for writing: %2 无法打开 "%1" 用于写入: %2 - + Subprocess Error 子流程出错误 - + Subprocess failed with exit code %1 子流程失败, 退出代码为 %1 - - + + Running: %1 %2 运行: %1 %2 - + Subprocess error 子进程错误 - + Reference spectrum saved 保存参考频谱 - + Invalid data in fmt.all at line %1 在 %1 行中 fmt.all 的无效数据 - + Good Calibration Solution 良好的校准解决方案 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3877,67 +3879,158 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements 删除校准测量值 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all" 文件将重命名为 "fmt.bak" - + No data read from disk. Wrong file format? 没有从磁盘读取数据. 文件格式出错误? - + Confirm Delete 确认删除 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? 是否确实要删除所有 *.wav 和 *.c2 文件在 "%1"? - + Keyboard Shortcuts 键盘快捷键 - + + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> + Keyboard shortcuts help window contents + + + + Special Mouse Commands 滑鼠特殊组合 - + + <table cellpadding=5> + <tr> + <th align="right">Click on</th> + <th align="left">Action</th> + </tr> + <tr> + <td align="right">Waterfall:</td> + <td><b>Click</b> to set Rx frequency.<br/> + <b>Shift-click</b> to set Tx frequency.<br/> + <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> + </td> + </tr> + <tr> + <td align="right">Decoded text:</td> + <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> + locator to Dx Grid, change Rx and Tx frequency to<br/> + decoded signal's frequency, and generate standard<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> + </td> + </tr> + <tr> + <td align="right">Erase button:</td> + <td><b>Click</b> to erase QSO window.<br/> + <b>Double-click</b> to erase QSO and Band Activity windows. + </td> + </tr> +</table> + Mouse commands help window contents + + + + No more files to open. 没有要打开的文件. - + + Spotting to PSK Reporter unavailable + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 请选择其他发射频率. WSJT-X 不会故意传输另一个模式在 WSPR 30米子波段上. - + WSPR Guard Band WSPR保护波段 - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 请选择其它频率. WSJT-X 不会运行狐狸模式在标准 FT8 波段. - + Fox Mode warning 狐狸模式警告 - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3946,12 +4039,12 @@ list. The list can be maintained in Settings (F2). "WSJT-X 的算法, 源代码, 外观和感觉及相关程序,和协议规格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版权 (C) 2001-2019 由以下一个或多个作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 开发组的其他成员." - + Last Tx: %1 最后发射: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3962,183 +4055,183 @@ To do so, check 'Special operating activity' and 设置高级选项卡上的 '欧洲 VHF 竞赛'. - + Should you switch to ARRL Field Day mode? 是否应切换到 ARRL Field Day 模式? - + Should you switch to RTTY contest mode? 是否应切换到 RTTY 竞赛模式? - - - - + + + + Add to CALL3.TXT 添加到 CALL3.TXT - + Please enter a valid grid locator 请输入有效的网格定位 - + Cannot open "%1" for read/write: %2 无法打开 "%1" 用于读/写: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 已经在 CALL3.TXT, 你想替换它吗? - + Warning: DX Call field is empty. 警告: DX 呼号字段为空. - + Log file error 日志文件错误 - + Cannot open "%1" 无法打开 "%1" - + Error sending log to N1MM 将日志发送到 N1MM 时发生错误 - + Write returned "%1" 写入返回 "%1" - + Stations calling DXpedition %1 呼叫远征电台 %1 - + Hound 猎犬 - + Tx Messages 发射信息 - - - + + + Confirm Erase 确认擦除 - + Are you sure you want to erase file ALL.TXT? 是否确实要擦除 ALL.TXT 文件? - - + + Confirm Reset 确认重置 - + Are you sure you want to erase your contest log? 是否确实要擦除竞赛日志? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 执行此操作将删除当前竞赛的所有通联记录. 它们将保留在 ADIF 日志文件中, 但无法导出到您的卡布里略日志中. - + Cabrillo Log saved 卡布里略日志已保存 - + Are you sure you want to erase file wsjtx_log.adi? 是否确实要擦除 wsjtx_log.adi 文件? - + Are you sure you want to erase the WSPR hashtable? 是否确实要擦除 WSPR 哈希表? - + VHF features warning VHF 功能警告 - + Tune digital gain 调谐数码增益 - + Transmit digital gain 传输数码增益 - + Prefixes 前缀 - + Network Error 网络错误 - + Error: %1 UDP server %2:%3 错误: %1 UDP 服务器 %2:%3 - + File Error 文件错误 - + Phase Training Disabled 已禁用阶段训练 - + Phase Training Enabled 已启用阶段训练 - + WD:%1m - - + + Log File Error 日志文件错误 - + Are you sure you want to clear the QSO queues? 是否确实要清除通联队列? @@ -4826,12 +4919,16 @@ Error(%2): %3 JT9 - + JT65 - + + + + Hz + 赫兹 @@ -5843,508 +5940,522 @@ and DX Grid fields when a 73 or free text message is sent. 网络服务 - The program can send your station details and all decoded signals as spots to the http://pskreporter.info web site. This is used for reverse beacon analysis which is very useful for assessing propagation and system performance. - 该程序可以发送您的站的详细信息和所有 + 该程序可以发送您的站的详细信息和所有 解码信号作为点的 http://pskreporter.info 的网站. 这是用于反向信标分析,这是非常有用的 用于评估传播和系统性能. - + Enable &PSK Reporter Spotting 启用&PSK Reporter Spotting - + UDP Server UDP服务器 - + UDP Server: UDP服务器: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>接收解码的网络服务的可选主机名称.</p><p>格式:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">主机名称</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4多点传送组地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 多点传送组地址</li></ul><p>清除此字段将禁用UDP状态更新的广播.</p></body></html> - + UDP Server port number: UDP服务器端口: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p>输入 WSJT-X 应向其发送更新的 UDP 服务器的服务端口号. 如果为零, 将不会广播任何更新.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p>启用此功能后,WSJT-X 将接受来自接收解码消息的 UDP 服务器的某些请求.</p></body></html> - + Accept UDP requests 接受UDP请求 - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p>指示接受传入的 UDP 请求.此选项的效果因操作系统和窗口管理器而异,其目的是通知接受传入的 UDP 请求,即使此应用程序最小化或隐藏</p></body></html> - + Notify on accepted UDP request 接受UDP的请求时通知 - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p>如果接受 UDP 请求,则从最小化还原窗口.</p></body></html> - + Accepted UDP request restores window 接受UDP请求还原窗口 - + Secondary UDP Server (deprecated) 辅助 UDP 服务器 (已弃用) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p>选中后,WSJT-X 将以 ADIF 格式将记录的联系广播到配置的主机名和端口. </p></body></html> - + Enable logged contact ADIF broadcast 启用记录联系 ADIF 广播 - + Server name or IP address: 服务器名称或 IP 地址: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>N1MM Logger+ 程序的可选电脑主机, 用于接收 ADIF UDP 广播. 这通常是 'localhost' 或 IP地址 127.0.0.1</p><p>格式:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">主机名称</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 多播组地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 多播组地址</li></ul><p>清除此字段将禁用通过 UDP 广播 ADIF 信息.</p></body></html> - + Server port number: 服务器端口号: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>输入 WSJT-X 应用于 ADIF 日志信息的 UDP 广播的端口号. 对于 N1MM Logger+, 此值应为 2333. 如果为零, 将不会广播任何更新.</p></body></html> - + Frequencies 频率 - + Default frequencies and band specific station details setup 设置默认值频率和带宽点特定的无线电设备详细信息 - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>阅读 &quot;频率校准&quot; 在 WSJT-X 用户指南中, 有关如何确定无线电的这些参数的详细信息.</p></body></html> - + Frequency Calibration 频率校准 - + Slope: 倾斜率: - + ppm - + Intercept: 拦截: - + Hz 赫兹 - + Working Frequencies 工作频率 - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>右键单击以保持工作频率列表.</p></body></html> - + Station Information 电台信息 - + Items may be edited. Right click for insert and delete options. 项目可以编辑 右键单击以插入和删除选项. - + Colors 颜色 - + Decode Highlightling 解码突出显示 - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body><p>使用复选框启用或禁用项目,并右键单击项目以更改或取消设置前景颜色, 背景颜色, 或将项目重置为默认值. 拖放项目以更改其优先级, 列表中较高的优先级较高.</p><p>请注意, 每个前景或背景颜色都可以设置或取消设置, 取消设置意味着它未为该项分配, 其类型和低优先级项可能适用.</p></body></html> - + Rescan ADIF Log 重新扫描 ADIF 日志 - + + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> + + + + + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> + + + + + Use TCP/IP connection + + + + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>推送将上述所有突出显示项重置为默认值和优先级.</p></body></html> - + Reset Highlighting 重置高亮显示 - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>选择以指示每个模式新的 DXCC 实体, 网格和呼号.</p></body></html> - + Highlight by Mode 按模式突出显示 - + Include extra WAE entities 包括额外的 WAE 实体 - + Check to for grid highlighting to only apply to unworked grid fields 检查到网格突出显示仅应用于未通联的网格字段 - + Only grid Fields sought 仅寻求网格字段 - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>控制 LoTW 用户查找日志.</p></body></html> - + Logbook of the World User Validation LoTW 用户验证 - + Users CSV file URL: 用户 CSV 文件 URL: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body><p>ARRL LoTW 用户上次上传日期和时间数据文件的网址, 该文件用于突出显示已知将日志文件上载到 LoTW 的电台的解码.</p></body></html> - + https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>按下此按钮即可获取最新的 LoTW 用户的上传日期和时间数据文件.</p></body></html> - + Fetch Now 立即获取 - + Age of last upload less than: 上次上传的日期小于: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p>调整此旋转框以设置 LoTW 用户最后一个上传日期的日期阈值, 该日期被接受为当前 LoTW 用户.</p></body></html> - + days - + Advanced 高级设置 - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>用户可选参数用于 JT65 VHF/UHF/Microwave 的解码.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters JT65 VHF/UHF/Microwave 解码参数 - + Random erasure patterns: 随机擦除模式: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p>随机软判决 Reed Solomon 解码器的最大擦除模式数为 10^(n/2).</p></body></html> - + Aggressive decoding level: 主动解码级别: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>较高的水平会增加解码的概率, 但也会增加错误解码的概率.</p></body></html> - + Two-pass decoding 通过二次解码 - + Special operating activity: Generation of FT4, FT8, and MSK144 messages 特殊操作活动: 产生FT4, FT8 和 MSK144 信息 - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> <html><head/><body><p>FT8 DX远征模式呼叫DX的猎犬操作员.</p></body></html> - + Hound 猎犬 - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>北美 VHF/UHF/Microwave 竞赛和其他需要交换的 4 个字符网格定位器的竞赛.</p></body></html> - + NA VHF Contest NA VHF 竞赛 - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>FT8 DX远征模式: 狐狸 (DX远征) 操作员.</p></body></html> - + Fox 狐狸 - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>欧洲 VHF+ 竞赛需要信号报告, 序列号和 6 个字符定位.</p></body></html> - + EU VHF Contest EU VHF 竞赛 - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY Roundup 和类似的比赛. 交换是美国的州, 加拿大省或 &quot;DX&quot;.</p></body></html> - + RTTY Roundup messages RTTY Roundup 信息 - + RTTY RU Exch: RTTY RU 交换: - + NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL Field Day 交换: 发射机数量, 类別, 和 ARRL/RAC 部分或 &quot;DX&quot;.</p></body></html> - + ARRL Field Day - + FD Exch: FD 交换: - + 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>世界数字模式竞赛</p><p><br/></p></body></html> - + WW Digi Contest 世界数字竞赛 - + Miscellaneous 杂项 - + Degrade S/N of .wav file: 降低信噪比的 .wav文件: - - + + For offline sensitivity tests 用于离线灵敏度测试 - + dB 分贝 - + Receiver bandwidth: 接收器带宽: - + Hz 赫兹 - + Tx delay: 发射延迟: - + Minimum delay between assertion of PTT and start of Tx audio. PTT 验证与发射音频启动之间的最小延迟. - + s - + Tone spacing 音调间距 - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>生成具有正常音调间距两倍的发射音频. 适用于在产生射频之前使用除以 2 的特殊 LF/MF 发射器.</p></body></html> - + x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>具有正常音調間距四倍的發射音頻. 適用於在產生射頻之前使用除以 4 的特殊 LF/MF 發射器.</p></body></html> - + x 4 - + Waterfall spectra 瀑布频谱 - + Low sidelobes 低侧边 - + Most sensitive 最敏感 - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p>放弃 (取消) 或应用 (确定) 配置更改, 包括</p><p>重置无线电接口并应用任何声卡更改</p></body></html> @@ -6352,16 +6463,12 @@ Right click for insert and delete options. main - - Fatal error - 严重出错误 + 严重出错误 - - Unexpected fatal error - 意外的严重出错误 + 意外的严重出错误 @@ -6405,15 +6512,25 @@ Right click for insert and delete options. 目录: "%1" - + Shared memory error 共享内存错误 - + Unable to create shared memory segment 无法创建共享内存段 + + + Sub-process error + + + + + Failed to close orphaned jt9 process + + wf_palette_design_dialog diff --git a/translations/wsjtx_zh_HK.ts b/translations/wsjtx_zh_HK.ts index 4da1d6333..b56039b8a 100644 --- a/translations/wsjtx_zh_HK.ts +++ b/translations/wsjtx_zh_HK.ts @@ -368,75 +368,75 @@ Configuration::impl - - - + + + &Delete 刪除(&D) - - + + &Insert ... 插入(&I) ... - + Failed to create save directory 無法建立儲存目錄 - + path: "%1% 目錄: "%1% - + Failed to create samples directory 無法建立範例目錄 - + path: "%1" 目录: "%1" - + &Load ... 載入(&L)... - + &Save as ... 另存為(&S) ... - + &Merge ... 合併(&M) ... - + &Reset 重置(&R) - + Serial Port: 串行端口: - + Serial port used for CAT control 用於CAT控制的串行端口 - + Network Server: 網絡服務器: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -451,12 +451,12 @@ Formats: [IPv6-地址]:端口 - + USB Device: USB設備: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -467,152 +467,152 @@ Format: [VID[:PID[:供應商[:產品]]]] - + Invalid audio input device 無效的音頻輸入設備 - + Invalid audio out device 無效的音頻輸出設備 - + Invalid PTT method 無效的PTT方法 - + Invalid PTT port 無效的PTT端口 - - + + Invalid Contest Exchange 無效的競賽交換數據 - + You must input a valid ARRL Field Day exchange 您必須輸入有效的 ARRL Field Day交換數據 - + You must input a valid ARRL RTTY Roundup exchange 您必須輸入有效的 ARRL RTTY Roundup 交換數據 - + Reset Decode Highlighting 重置解碼突出顯示 - + Reset all decode highlighting and priorities to default values 將所有解碼突出顯示和優先順序重置為預設值 - + WSJT-X Decoded Text Font Chooser WSJT-X 解碼文本字體選擇 - + Load Working Frequencies 載入工作頻率 - - - + + + Frequency files (*.qrg);;All files (*.*) 頻率檔案 (*.qrg);;所有檔案 (*.*) - + Replace Working Frequencies 替換工作頻率 - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? 是否確實要放棄當前工作頻率, 並將其替換為載入的頻率? - + Merge Working Frequencies 合併工作頻率 - - - + + + Not a valid frequencies file 不是有效的頻率檔案 - + Incorrect file magic 不正確的檔案內容 - + Version is too new 版本太新 - + Contents corrupt 內容已損壞 - + Save Working Frequencies 儲存工作頻率 - + Only Save Selected Working Frequencies 只儲存選取的工作頻率 - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. 是否確定要只儲存目前選擇的工作頻率? 按一下 否 可儲存所有. - + Reset Working Frequencies 重置工作頻率 - + Are you sure you want to discard your current working frequencies and replace them with default ones? 您確定要放棄您當前的工作頻率並用默認值頻率替換它們嗎? - + Save Directory 儲存目錄 - + AzEl Directory AzEl 目錄 - + Rig control error 無線電設備控制錯誤 - + Failed to open connection to rig 無法開啟無線電設備的連接 - + Rig failure 無線電設備故障 @@ -685,9 +685,14 @@ Format: + DX Lab Suite Commander send command failed "%1": %2 + + + + DX Lab Suite Commander failed to send command "%1": %2 - DX Lab Suite Commander 發送命令失敗 "%1": %2 + DX Lab Suite Commander 發送命令失敗 "%1": %2 @@ -1750,19 +1755,16 @@ Error: %2 - %3 HelpTextWindow - Help file error - 說明檔案錯誤 + 說明檔案錯誤 - Cannot open "%1" for reading - 無法開啟 "%1" 以進行閱讀 + 無法開啟 "%1" 以進行閱讀 - Error: %1 - 錯誤: %1 + 錯誤: %1 @@ -2069,12 +2071,12 @@ Error(%2): %3 - - - - - - + + + + + + Band Activity 波段活動 @@ -2086,11 +2088,11 @@ Error(%2): %3 - - - - - + + + + + Rx Frequency 接收信息 @@ -2552,7 +2554,7 @@ Not available to nonstandard callsign holders. - + Fox 狐狸 @@ -3406,7 +3408,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog 運行發射監管計時器 @@ -3593,7 +3595,7 @@ list. The list can be maintained in Settings (F2). WSPR-LF - + @@ -3683,8 +3685,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving 接收 @@ -3709,166 +3711,166 @@ list. The list can be maintained in Settings (F2). 載入 LotW 使用者資料錯誤 - + Error Writing WAV File 寫入 WAV 檔案時錯誤 - + Configurations... 設定檔案... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + Message 信息 - + Error Killing jt9.exe Process 錯誤終止 jt9.exe 程序 - + KillByName return code: %1 按結束名稱返回代碼: %1 - + Error removing "%1" 刪除時出錯誤 "%1" - + Click OK to retry 單擊 確定 重試 - - + + Improper mode 模式不正確 - - + + File Open Error 檔案開啟出錯誤 - - - - - + + + + + Cannot open "%1" for append: %2 無法開啟 "%1" 用於附加: %2 - + Error saving c2 file 保存c2檔案出錯誤 - + Error in Sound Input 聲音輸入出錯誤 - + Error in Sound Output 聲音輸出錯誤 - - - + + + Single-Period Decodes 單週期解碼 - - - + + + Average Decodes 平均解碼 - + Change Operator 變更操作員 - + New operator: 新操作員: - + Status File Error 狀態檔案錯誤 - - + + Cannot open "%1" for writing: %2 無法開啟 "%1" 用於寫入: %2 - + Subprocess Error 子流程出錯誤 - + Subprocess failed with exit code %1 子流程失敗, 退出代碼為 %1 - - + + Running: %1 %2 運行: %1 %2 - + Subprocess error 子進程出錯誤 - + Reference spectrum saved 儲存參考頻譜 - + Invalid data in fmt.all at line %1 在 %1 行中 fmt.all 的不合法資料 - + Good Calibration Solution 良好的校準解決方案 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3877,67 +3879,158 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements 刪除校準測量值 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all" 檔案將重新命名為 "fmt.bak" - + No data read from disk. Wrong file format? 沒有從磁盤讀取數據. 檔案格式出錯誤? - + Confirm Delete 確認刪除 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? 是否確實要刪除所有 *.wav 和 *.c2 檔案在 "%1"? - + Keyboard Shortcuts 鍵盤快捷鍵 - + + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> + Keyboard shortcuts help window contents + + + + Special Mouse Commands 滑鼠特殊組合 - + + <table cellpadding=5> + <tr> + <th align="right">Click on</th> + <th align="left">Action</th> + </tr> + <tr> + <td align="right">Waterfall:</td> + <td><b>Click</b> to set Rx frequency.<br/> + <b>Shift-click</b> to set Tx frequency.<br/> + <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> + </td> + </tr> + <tr> + <td align="right">Decoded text:</td> + <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> + locator to Dx Grid, change Rx and Tx frequency to<br/> + decoded signal's frequency, and generate standard<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> + </td> + </tr> + <tr> + <td align="right">Erase button:</td> + <td><b>Click</b> to erase QSO window.<br/> + <b>Double-click</b> to erase QSO and Band Activity windows. + </td> + </tr> +</table> + Mouse commands help window contents + + + + No more files to open. 沒有要打開的檔. - + + Spotting to PSK Reporter unavailable + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 請選擇其他發射頻率. WSJT-X 不會故意傳輸另一個模式在 WSPR 30米子波段上. - + WSPR Guard Band WSPR保護波段 - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 請選擇其他頻率. WSJT-X 不會運行狐狸模式在標準 FT8 波段. - + Fox Mode warning 狐狸模式警告 - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3946,12 +4039,12 @@ list. The list can be maintained in Settings (F2). "WSJT-X 的演演演算法, 原始碼, 外觀和感覺及相關程式, 和協定規格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版權 (C) 2001-2019 由以下一個或多個作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 開發組的其他成員." - + Last Tx: %1 最後發射: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3962,183 +4055,183 @@ To do so, check 'Special operating activity' and 設置高級選項卡上的 '歐洲 VHF 競賽'. - + Should you switch to ARRL Field Day mode? 是否應切換到 ARRL Field Day 模式? - + Should you switch to RTTY contest mode? 是否應切換到 RTTY 競賽模式? - - - - + + + + Add to CALL3.TXT 添加到 CALL3.TXT - + Please enter a valid grid locator 請輸入有效的網格定位 - + Cannot open "%1" for read/write: %2 無法開啟 "%1" 用於讀/寫: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 已經在 CALL3.TXT, 你想替換它嗎? - + Warning: DX Call field is empty. 警告: DX 呼號欄位為空. - + Log file error 日誌檔案錯誤 - + Cannot open "%1" 無法開啟 "%1" - + Error sending log to N1MM 將日誌傳送到 N1MM 時發生錯誤 - + Write returned "%1" 寫入返回 "%1" - + Stations calling DXpedition %1 呼叫遠征電臺 %1 - + Hound 獵犬 - + Tx Messages 發射信息 - - - + + + Confirm Erase 確認擦除 - + Are you sure you want to erase file ALL.TXT? 是否確實要擦除 ALL.Txt 檔案? - - + + Confirm Reset 確認重置 - + Are you sure you want to erase your contest log? 是否確實要擦除競賽日誌? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 執行此動作將移除目前競賽的所有通聯記錄. 它們將保留在 ADIF 日誌檔案中, 但無法匯出到您的卡布里略日誌中. - + Cabrillo Log saved 卡布里略日誌已儲存 - + Are you sure you want to erase file wsjtx_log.adi? 是否確實要擦除 wsjtx_log.adi 檔案? - + Are you sure you want to erase the WSPR hashtable? 是否確定要擦除 WSPR 哈希表? - + VHF features warning VHF 功能警告 - + Tune digital gain 調諧數碼增益 - + Transmit digital gain 傳輸數碼增益 - + Prefixes 前綴 - + Network Error 網路錯誤 - + Error: %1 UDP server %2:%3 錯誤: %1 UDP 服務器 %2:%3 - + File Error 檔案錯誤 - + Phase Training Disabled 關閉階段訓練 - + Phase Training Enabled 開啟階段訓練 - + WD:%1m - - + + Log File Error 日誌檔案錯誤 - + Are you sure you want to clear the QSO queues? 是否要清除通聯佇列? @@ -4826,12 +4919,16 @@ Error(%2): %3 JT9 - + JT65 - + + + + Hz + 赫茲 @@ -5843,508 +5940,522 @@ and DX Grid fields when a 73 or free text message is sent. 網絡服務 - The program can send your station details and all decoded signals as spots to the http://pskreporter.info web site. This is used for reverse beacon analysis which is very useful for assessing propagation and system performance. - 該程序可以發送您的站的詳細信息和所有 + 該程序可以發送您的站的詳細信息和所有 解碼信號作為點的 http://pskreporter.info 的網站. 這是用於反向信標分析,這是非常有用的 用於評估傳播和系統性能. - + Enable &PSK Reporter Spotting 啟用&PSK Reporter Spotting - + UDP Server UDP服務器 - + UDP Server: UDP服務器: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>接收解碼的網絡服務的可選主機名稱.</p><p>格式:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">主機名稱</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4多點傳送組地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 多點傳送組地址</li></ul><p>清除此字段將禁用UDP狀態更新的廣播.</p></body></html> - + UDP Server port number: 主要UDP服務器端口: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p>輸入 WSJT-X 應向其發送更新的 UDP 伺服器的服務埠號. 如果為零, 將不會廣播任何更新.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p>啟用此功能後,WSJT-X 將接受來自接收解碼消息的 UDP 伺服器的某些請求.</p></body></html> - + Accept UDP requests 接受UDP請求 - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p>指示接受傳入的 UDP 請求.此選項的效果因操作系統和窗口管理器而異,其目的是通知接受傳入的 UDP 請求,即使此應用程序最小化或隱藏</p></body></html> - + Notify on accepted UDP request 在接受UDP的請求時通知 - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p>如果接受 UDP 請求,則從最小化還原窗口.</p></body></html> - + Accepted UDP request restores window 接受UDP請求還原窗口 - + Secondary UDP Server (deprecated) 輔助UDP 伺服器 (已棄用) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p>選擇後, WSJT-X 將以 ADIF 格式將記錄的聯絡廣播到設定的主機名稱和埠. </p></body></html> - + Enable logged contact ADIF broadcast 開啟記錄連絡 ADIF 廣播 - + Server name or IP address: 伺服器名稱或 IP 位址: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>N1MM Logger+ 程式可選電腦主機用於接收 ADIF UDP 廣播. 這通常是 'localhost' 或 IP 地址 127.0.0.1</p><p>格式:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">主機名稱</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 多播組地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 多播組地址</li></ul><p>清除此欄位將停用透過UDP廣播ADIF資訊.</p></body></html> - + Server port number: 伺服器連接埠號: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>輸入 WSJT-X 應用於 ADIF 日誌資訊的 UDP 廣播的埠號. 對於 N1MM Logger+, 此值應為 2333. 如果為零, 將不會廣播任何更新.</p></body></html> - + Frequencies 頻率 - + Default frequencies and band specific station details setup 設置默認值頻率和帶寬點特定的電臺詳細信息 - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>閱讀 &quot;頻率校準&quot; 在 WSJT-X 使用者指南中, 有關如何確定無線電的這些參數的詳細資訊.</p></body></html> - + Frequency Calibration 頻率校准 - + Slope: 傾斜率: - + ppm - + Intercept: 攔截: - + Hz 赫茲 - + Working Frequencies 工作頻率 - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>右鍵按一下以保持工作頻率清單.</p></body></html> - + Station Information 電臺信息 - + Items may be edited. Right click for insert and delete options. 專案可以編輯 右鍵按下以插入與刪除選項. - + Colors 顏色 - + Decode Highlightling 解碼突出顯示 - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body><p>使用複選框啟用或禁用專案, 並右鍵單擊專案以更改或取消設置前景顏色, 背景顏色, 或將專案重置為預設值. 拖放專案以更改其優先順序, 清單中較高的優先順序較高.</p><p> 請注意,每個前景或背景顏色都可以設置或取消設置, 未設置意味著未為該專案分配該類型, 低優先順序項可能適用.</p></body></html> - + Rescan ADIF Log 重新掃描 ADIF 日誌 - + + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> + + + + + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> + + + + + Use TCP/IP connection + + + + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>推送將上述所有突出顯示項重置為預設值和優先順序.</p></body></html> - + Reset Highlighting 重置突顯顯示 - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>選擇以指示每個模式新的 DXCC 實體, 網格和呼號.</p></body></html> - + Highlight by Mode 依模式突顯 - + Include extra WAE entities 包括額外的 WAE 實體 - + Check to for grid highlighting to only apply to unworked grid fields 檢查到格線突出顯示僅套用於未通聯的網格欄位 - + Only grid Fields sought 只尋求格格欄位 - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>控制 LoTW 使用者查找日誌.</p></body></html> - + Logbook of the World User Validation LoTW 使用者驗證 - + Users CSV file URL: 使用者 CSV 檔案網址: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body><p>ARRL LoTW 使用者上次上傳日期和時間資料檔案的網址, 該檔案用於突出顯示已知將紀錄檔上載到 LoTW 的電臺的解碼.</p></body></html> - + https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>按下這個按鈕即可取得最新的 LoRW 使用者的上傳日期和時間資料檔.</p></body></html> - + Fetch Now 立即取得 - + Age of last upload less than: 上次上傳的日期小於: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p>調整此旋轉框以設定 LoTW 使用者最後一個上傳日期的日期閾值,該日期被接受為當前 LoTW 使用者.</p></body></html> - + days - + Advanced 高級設置 - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>用戶可選參數用於JT65 VHF/UHF/Microwave 的解碼.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters JT65 VHF/UHF/Microwave 解碼參數 - + Random erasure patterns: 隨機擦除模式: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p>隨機軟決策 Reed Solomon 解碼器的最大擦除模式數為 10^(n/2).</p></body></html> - + Aggressive decoding level: 主動解碼等級: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>較高的水準會增加解碼的概率,但也會增加錯誤解碼的概率.</p></body></html> - + Two-pass decoding 以二次解碼 - + Special operating activity: Generation of FT4, FT8, and MSK144 messages 特殊操作活動: 產生FT4, FT8 和 MSK144 信息 - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> <html><head/><body><p>FT8 DX遠征模式呼叫DX的獵犬操作員.</p></body></html> - + Hound 獵犬 - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>北美 VHF/UHF/Microwave 競賽和其他需要交換的 4 個字元網格定位的競賽.</p></body></html> - + NA VHF Contest NA VHF 競賽 - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>FT8 DX远征模式: 狐狸 (DX远征) 操作员.</p></body></html> - + Fox 狐狸 - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>歐洲 VHF+ 競賽需要信號報告, 序列號和 6 個字元定位.</p></body></html> - + EU VHF Contest EU VHF 競賽 - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY Roundup 和類似的比賽. 交換是美國的州, 加拿大省或 &quot;DX&quot;.</p></body></html> - + RTTY Roundup messages RTTY Roundup 信息 - + RTTY RU Exch: RTTY RU 交換: - + NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL Field Day 交換: 發射機數量, 類別別, 和 ARRL/RAC 部份或 &quot;DX&quot;.</p></body></html> - + ARRL Field Day - + FD Exch: FD 交換: - + 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>世界數字模式競賽</p><p><br/></p></body></html> - + WW Digi Contest 世界數字競賽 - + Miscellaneous 雜項 - + Degrade S/N of .wav file: 降低信噪比的 .wav文件: - - + + For offline sensitivity tests 用於離線靈敏度測試 - + dB 分貝 - + Receiver bandwidth: 接收器頻寬: - + Hz 赫茲 - + Tx delay: 發射延遲: - + Minimum delay between assertion of PTT and start of Tx audio. PTT 驗證與發射音訊啟動之間的最小延遲. - + s - + Tone spacing 音調間距 - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>產生具有正常音調間距兩倍的發射音頻. 適用於在產生射頻之前使用除以 2 的特殊 LF/MF 發射器.</p></body></html> - + x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>具有正常音調間距四倍的發射音頻. 適用於在產生射頻之前使用除以 4 的特殊 LF/MF 發射器.</p></body></html> - + x 4 - + Waterfall spectra 瀑布頻譜 - + Low sidelobes 低側邊 - + Most sensitive 最敏感 - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p>放棄 (取消) 或應用 (確定) 設定更改, 包括</p><p>重置無線電介面並套用任何音效卡變更</p></body></html> @@ -6352,16 +6463,12 @@ Right click for insert and delete options. main - - Fatal error - 嚴重出錯誤 + 嚴重出錯誤 - - Unexpected fatal error - 意外的嚴重出錯誤 + 意外的嚴重出錯誤 @@ -6405,15 +6512,25 @@ Right click for insert and delete options. 目錄: "%1" - + Shared memory error 共用記憶體錯誤 - + Unable to create shared memory segment 無法建立共用記憶體段 + + + Sub-process error + + + + + Failed to close orphaned jt9 process + + wf_palette_design_dialog diff --git a/widgets/HelpTextWindow.cpp b/widgets/HelpTextWindow.cpp index 51bfc89f9..7ac1367b7 100644 --- a/widgets/HelpTextWindow.cpp +++ b/widgets/HelpTextWindow.cpp @@ -3,30 +3,19 @@ #include #include #include -#include -#include #include "qt_helpers.hpp" -#include "widgets/MessageBox.hpp" #include "moc_HelpTextWindow.cpp" -HelpTextWindow::HelpTextWindow (QString const& title, QString const& file_name, QFont const& font, QWidget * parent) +HelpTextWindow::HelpTextWindow (QString const& title, QString const& text, QFont const& font, QWidget * parent) : QLabel {parent, Qt::WindowCloseButtonHint | Qt::WindowMinimizeButtonHint} { - QFile source {file_name}; - if (!source.open (QIODevice::ReadOnly | QIODevice::Text)) - { - MessageBox::warning_message (this, tr ("Help file error") - , tr ("Cannot open \"%1\" for reading").arg (source.fileName ()) - , tr ("Error: %1").arg (source.errorString ())); - return; - } setWindowTitle(QApplication::applicationName () + " - " + title); setMargin (10); setBackgroundRole (QPalette::Base); setAutoFillBackground (true); setStyleSheet (font_as_stylesheet (font)); - setText (QTextStream {&source}.readAll ()); + setText (text); setMinimumSize (sizeHint ()); } diff --git a/widgets/HelpTextWindow.hpp b/widgets/HelpTextWindow.hpp index 5cc5a6dca..96caaad66 100644 --- a/widgets/HelpTextWindow.hpp +++ b/widgets/HelpTextWindow.hpp @@ -12,7 +12,7 @@ class HelpTextWindow final Q_OBJECT public: - HelpTextWindow (QString const& title, QString const& file_name, QFont const& = QFont {}, QWidget * parent = nullptr); + HelpTextWindow (QString const& title, QString const& text, QFont const& = QFont {}, QWidget * parent = nullptr); }; #endif diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 1e5b911fb..8ba5ffce3 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -2849,8 +2849,53 @@ void MainWindow::on_actionKeyboard_shortcuts_triggered() { QFont font; font.setPointSize (10); - m_shortcuts.reset (new HelpTextWindow {tr ("Keyboard Shortcuts") - , ":/shortcuts.txt", font}); + m_shortcuts.reset (new HelpTextWindow {tr ("Keyboard Shortcuts"), + //: Keyboard shortcuts help window contents + tr (R"( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Esc Stop Tx, abort QSO, clear next-call queue
F1 Online User's Guide (Alt: transmit Tx6)
Shift+F1 Copyright Notice
Ctrl+F1 About WSJT-X
F2 Open settings window (Alt: transmit Tx2)
F3 Display keyboard shortcuts (Alt: transmit Tx3)
F4 Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)
Alt+F4 Exit program
F5 Display special mouse commands (Alt: transmit Tx5)
F6 Open next file in directory (Alt: toggle "Call 1st")
Shift+F6 Decode all remaining files in directrory
F7 Display Message Averaging window
F11 Move Rx frequency down 1 Hz
Ctrl+F11 Move identical Rx and Tx frequencies down 1 Hz
Shift+F11 Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)
Ctrl+Shift+F11 Move dial frequency down 2000 Hz
F12 Move Rx frequency up 1 Hz
Ctrl+F12 Move identical Rx and Tx frequencies up 1 Hz
Shift+F12 Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)
Ctrl+Shift+F12 Move dial frequency up 2000 Hz
Alt+1-6 Set now transmission to this number on Tab 1
Ctl+1-6 Set next transmission to this number on Tab 1
Alt+B Toggle "Best S+P" status
Alt+C Toggle "Call 1st" checkbox
Alt+D Decode again at QSO frequency
Shift+D Full decode (both windows)
Ctrl+E Turn on TX even/1st
Shift+E Turn off TX even/1st
Alt+E Erase
Ctrl+F Edit the free text message box
Alt+G Generate standard messages
Alt+H Halt Tx
Ctrl+L Lookup callsign in database, generate standard messages
Alt+M Monitor
Alt+N Enable Tx
Ctrl+O Open a .wav file
Alt+O Change operator
Alt+Q Log QSO
Ctrl+R Set Tx4 message to RRR (not in FT4)
Alt+R Set Tx4 message to RR73
Alt+S Stop monitoring
Alt+T Toggle Tune status
Alt+Z Clear hung decoder status
)"), font}); } m_shortcuts->showNormal (); m_shortcuts->raise (); @@ -2862,8 +2907,39 @@ void MainWindow::on_actionSpecial_mouse_commands_triggered() { QFont font; font.setPointSize (10); - m_mouseCmnds.reset (new HelpTextWindow {tr ("Special Mouse Commands") - , ":/mouse_commands.txt", font}); + m_mouseCmnds.reset (new HelpTextWindow {tr ("Special Mouse Commands"), + //: Mouse commands help window contents + tr (R"( + + + + + + + + + + + + + + + + +
Click onAction
Waterfall:Click to set Rx frequency.
+ Shift-click to set Tx frequency.
+ Ctrl-click or Right-click to set Rx and Tx frequencies.
+ Double-click to also decode at Rx frequency.
+
Decoded text:Double-click to copy second callsign to Dx Call,
+ locator to Dx Grid, change Rx and Tx frequency to
+ decoded signal's frequency, and generate standard
+ messages.
+ If Hold Tx Freq is checked or first callsign in message
+ is your own call, Tx frequency is not changed unless
+ Ctrl is held down.
+
Erase button:Click to erase QSO window.
+ Double-click to erase QSO and Band Activity windows. +
)"), font}); } m_mouseCmnds->showNormal (); m_mouseCmnds->raise (); @@ -7321,7 +7397,34 @@ void MainWindow::on_outAttenuation_valueChanged (int a) void MainWindow::on_actionShort_list_of_add_on_prefixes_and_suffixes_triggered() { if (!m_prefixes) { - m_prefixes.reset (new HelpTextWindow {tr ("Prefixes"), ":/prefixes.txt", {"Courier", 10}}); + m_prefixes.reset (new HelpTextWindow {tr ("Prefixes") + , R"(Type 1 Prefixes: + + 1A 1S 3A 3B6 3B8 3B9 3C 3C0 3D2 3D2C 3D2R 3DA 3V 3W 3X + 3Y 3YB 3YP 4J 4L 4S 4U1I 4U1U 4W 4X 5A 5B 5H 5N 5R + 5T 5U 5V 5W 5X 5Z 6W 6Y 7O 7P 7Q 7X 8P 8Q 8R + 9A 9G 9H 9J 9K 9L 9M2 9M6 9N 9Q 9U 9V 9X 9Y A2 + A3 A4 A5 A6 A7 A9 AP BS7 BV BV9 BY C2 C3 C5 C6 + C9 CE CE0X CE0Y CE0Z CE9 CM CN CP CT CT3 CU CX CY0 CY9 + D2 D4 D6 DL DU E3 E4 EA EA6 EA8 EA9 EI EK EL EP + ER ES ET EU EX EY EZ F FG FH FJ FK FKC FM FO + FOA FOC FOM FP FR FRG FRJ FRT FT5W FT5X FT5Z FW FY M MD + MI MJ MM MU MW H4 H40 HA HB HB0 HC HC8 HH HI HK + HK0A HK0M HL HM HP HR HS HV HZ I IS IS0 J2 J3 J5 + J6 J7 J8 JA JDM JDO JT JW JX JY K KG4 KH0 KH1 KH2 + KH3 KH4 KH5 KH5K KH6 KH7 KH8 KH9 KL KP1 KP2 KP4 KP5 LA LU + LX LY LZ OA OD OE OH OH0 OJ0 OK OM ON OX OY OZ + P2 P4 PA PJ2 PJ7 PY PY0F PT0S PY0T PZ R1F R1M S0 S2 S5 + S7 S9 SM SP ST SU SV SVA SV5 SV9 T2 T30 T31 T32 T33 + T5 T7 T8 T9 TA TF TG TI TI9 TJ TK TL TN TR TT + TU TY TZ UA UA2 UA9 UK UN UR V2 V3 V4 V5 V6 V7 + V8 VE VK VK0H VK0M VK9C VK9L VK9M VK9N VK9W VK9X VP2E VP2M VP2V VP5 + VP6 VP6D VP8 VP8G VP8H VP8O VP8S VP9 VQ9 VR VU VU4 VU7 XE XF4 + XT XU XW XX9 XZ YA YB YI YJ YK YL YN YO YS YU + YV YV0 Z2 Z3 ZA ZB ZC4 ZD7 ZD8 ZD9 ZF ZK1N ZK1S ZK2 ZK3 + ZL ZL7 ZL8 ZL9 ZP ZS ZS8 KC4 E5 + +Type 1 Suffixes: /0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /A /P)", {"Courier", 10}}); } m_prefixes->showNormal(); m_prefixes->raise (); From b05bfecb5f5a9f90fbca7432699600d6c9f14765 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 31 Jul 2020 12:39:08 +0100 Subject: [PATCH 351/520] Avoid arithmetic errors when parsing the round-robin current text --- widgets/mainwindow.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 8536773ff..7055d3e30 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -8039,8 +8039,11 @@ void MainWindow::WSPR_scheduling () { QString t=ui->RoundRobin->currentText(); if(m_mode=="FST4W" and t!="Random") { - int i=t.left (1).toInt () - 1; - int n=t.right(1).toInt(); + bool ok; + int i=t.left (1).toInt (&ok) - 1; + if (!ok) return; + int n=t.right (1).toInt (&ok); + if (!ok || 0 == n) return; qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; int nsec=ms/1000; From 11b6637d6ade08d4021512f9b538d57a3b7b6d04 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 31 Jul 2020 13:35:57 +0100 Subject: [PATCH 352/520] Fix some long-standing Tx start time issues --- Modulator/Modulator.cpp | 56 +++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/Modulator/Modulator.cpp b/Modulator/Modulator.cpp index dbb084ffb..52319eb2a 100644 --- a/Modulator/Modulator.cpp +++ b/Modulator/Modulator.cpp @@ -50,6 +50,7 @@ void Modulator::start (QString mode, unsigned symbolsLength, double framesPerSym SoundOutput * stream, Channel channel, bool synchronize, bool fastMode, double dBSNR, double TRperiod) { + // qDebug () << "mode:" << mode << "symbolsLength:" << symbolsLength << "framesPerSymbol:" << framesPerSymbol << "frequency:" << frequency << "toneSpacing:" << toneSpacing << "channel:" << channel << "synchronize:" << synchronize << "fastMode:" << fastMode << "dBSNR:" << dBSNR << "TRperiod:" << TRperiod; Q_ASSERT (stream); // Time according to this computer which becomes our base time qint64 ms0 = QDateTime::currentMSecsSinceEpoch() % 86400000; @@ -79,25 +80,30 @@ void Modulator::start (QString mode, unsigned symbolsLength, double framesPerSym if (m_snr > 1.0) m_fac = 3000.0 / m_snr; } - m_ic=0; -// round up to an exact portion of a second that allows for startup delays - if(delay_ms > 0 and !m_bFastMode) { - m_ic = (mstr/delay_ms) * m_frameRate * delay_ms / 1000; - } - m_silentFrames = 0; -// calculate number of silent frames to send, so that audio will start at -// the nominal time "delay_ms" into the Tx sequence. - if (synchronize && !m_tuning && !m_bFastMode) { - if(delay_ms >= mstr) m_silentFrames = m_ic + 0.001*(delay_ms-mstr)*m_frameRate; - } - -// qDebug() << "aa" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz") -// << delay_ms << mstr << m_silentFrames << m_ic << m_symbolsLength; + m_ic=0; + if (!m_tuning && !m_bFastMode) + { + // calculate number of silent frames to send, so that audio will + // start at the nominal time "delay_ms" into the Tx sequence. + if (synchronize) + { + if(delay_ms > mstr) m_silentFrames = (delay_ms - mstr) * m_frameRate / 1000; + } + + // adjust for late starts + if(!m_silentFrames && mstr >= delay_ms) + { + m_ic = (mstr - delay_ms) * m_frameRate / 1000; + } + } initialize (QIODevice::ReadOnly, channel); Q_EMIT stateChanged ((m_state = (synchronize && m_silentFrames) ? Synchronizing : Active)); + + // qDebug() << "delay_ms:" << delay_ms << "mstr:" << mstr << "m_silentFrames:" << m_silentFrames << "m_ic:" << m_ic << "m_state:" << m_state; + m_stream = stream; if (m_stream) m_stream->restart (this); } @@ -136,6 +142,8 @@ void Modulator::close () qint64 Modulator::readData (char * data, qint64 maxSize) { + // qDebug () << "readData: maxSize:" << maxSize; + double toneFrequency=1500.0; if(m_nsps==6) { toneFrequency=1000.0; @@ -158,15 +166,21 @@ qint64 Modulator::readData (char * data, qint64 maxSize) { case Synchronizing: { - if (m_silentFrames) { // send silence up to first second + if (m_silentFrames) { // send silence up to end of start delay framesGenerated = qMin (m_silentFrames, numFrames); - for ( ; samples != end; samples = load (0, samples)) { // silence - } - m_silentFrames -= framesGenerated; - return framesGenerated * bytesPerFrame (); + do + { + samples = load (0, samples); // silence + } while (--m_silentFrames && samples != end); + qDebug () << "played:" << framesGenerated << "silent frames"; + if (!m_silentFrames) + { + Q_EMIT stateChanged ((m_state = Active)); + } } - Q_EMIT stateChanged ((m_state = Active)); + // qDebug() << "m_silentFrames:" << m_silentFrames << "m_ic:" << m_ic << "m_state:" << m_state; + m_cwLevel = false; m_ramp = 0; // prepare for CW wave shaping } @@ -260,7 +274,7 @@ qint64 Modulator::readData (char * data, qint64 maxSize) qint16 sample; - for (unsigned i = 0; i < numFrames && m_ic <= i1; ++i) { + while (samples != end && m_ic <= i1) { isym=0; if(!m_tuning and m_TRperiod!=3.0) isym=m_ic/(4.0*m_nsps); //Actual fsample=48000 if(m_bFastMode) isym=isym%m_symbolsLength; From 87dec9d433ab193743971ca687a2b955a8eee480 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 2 Aug 2020 00:42:09 +0100 Subject: [PATCH 353/520] Remove a remnant of "Also FST4W" mode --- lib/decoder.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index a3269aef9..86725928d 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -191,7 +191,6 @@ subroutine multimode_decoder(ss,id2,params,nfsample) ! We're in FST4 mode ndepth=iand(params%ndepth,3) iwspr=0 - if(iand(params%ndepth,128).ne.0) iwspr=2 call timer('dec240 ',0) call my_fst4%decode(fst4_decoded,id2,params%nutc, & params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & From 0767feb53375a63d5b833352409aa8fec8c39e2b Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 2 Aug 2020 23:04:17 +0100 Subject: [PATCH 354/520] Updated INSTALL file --- INSTALL | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/INSTALL b/INSTALL index 42169fb38..c96e7d3b3 100644 --- a/INSTALL +++ b/INSTALL @@ -28,7 +28,7 @@ For MS Windows see the section "Building from Source on MS Windows" below. For Apple Mac see the section "Building from Source on Apple Mac". -Qt v5, preferably v5.5 or later is required to build WSJT-X. +Qt v5, preferably v5.9 or later is required to build WSJT-X. Qt v5 multimedia support, serial port, and Linguist is necessary as well as the core Qt v5 components, normally installing the Qt @@ -43,8 +43,8 @@ the libfftw library development package. Normally installing the library development package pulls in all the FFTW v3 libraries including the single precision variant. -The Hamlib library optionally requires the libusb-1.0 library, if the -development version (libusb-1.0-dev) is available Hamlib will +The Hamlib library optionally requires the libusb-1.0-1 library, if +the development version (libusb-1.0-0-dev) is available Hamlib will configure its custom USB device back end drivers. Most rigs do not require this so normally you can choose not to install libusb-1.0-dev but if you have a SoftRock USB or similar SDR that uses a custom USB @@ -89,7 +89,8 @@ $ git clone git://git.code.sf.net/p/wsjt/wsjtx src To build WSJT-X you will need CMake and asciidoc installed. $ cd ~/wsjtx-prefix/build -$ cmake -D CMAKE_PREFIX_PATH=~/hamlib-prefix ../src +$ cmake -D CMAKE_PREFIX_PATH=~/hamlib-prefix -DWSJT_SKIP_MANPAGES=ON \ + -DWSJT_GENERATE_DOCS=OFF ../src $ cmake --build . $ cmake --build . --target install @@ -99,7 +100,8 @@ configure step like: $ cd ~/wsjtx-prefix/build $ cmake -D CMAKE_PREFIX_PATH=~/hamlib-prefix \ - -D CMAKE_INSTALL_PREFIX=~/wsjtx-prefix ../src + -DWSJT_SKIP_MANPAGES=ON -DWSJT_GENERATE_DOCS=OFF \ + -D CMAKE_INSTALL_PREFIX=~/wsjtx-prefix ../src $ cmake --build . $ cmake --build . --target install @@ -316,7 +318,7 @@ configure: $ cd ~/wsjtx-prefix/build $ FC=gfortran-mp-5 \ cmake \ - -D CMAKE_PREFIX_PATH="~/Qt/5.7/clang_64;~/hamlib-prefix;/opt/local" \ + -D CMAKE_PREFIX_PATH="~/Qt/5.9/clang_64;~/hamlib-prefix;/opt/local" \ -D CMAKE_INSTALL_PREFIX=~/wsjtx-prefix \ -D CMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk \ ~/wsjtx-prefix/src From 8e95daf963bfc5bc5797634e98b4a80a4ff54738 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 3 Aug 2020 01:39:25 +0100 Subject: [PATCH 355/520] Remove some diagnostic prints --- Modulator/Modulator.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/Modulator/Modulator.cpp b/Modulator/Modulator.cpp index 52319eb2a..d43de8292 100644 --- a/Modulator/Modulator.cpp +++ b/Modulator/Modulator.cpp @@ -172,15 +172,12 @@ qint64 Modulator::readData (char * data, qint64 maxSize) { samples = load (0, samples); // silence } while (--m_silentFrames && samples != end); - qDebug () << "played:" << framesGenerated << "silent frames"; if (!m_silentFrames) { Q_EMIT stateChanged ((m_state = Active)); } } - // qDebug() << "m_silentFrames:" << m_silentFrames << "m_ic:" << m_ic << "m_state:" << m_state; - m_cwLevel = false; m_ramp = 0; // prepare for CW wave shaping } From caba1fbe729e40c034991211b0be4c45d31fe4e5 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 3 Aug 2020 02:11:46 +0100 Subject: [PATCH 356/520] Validate grids in 77-bit and 50-bit message unpacking --- lib/77bit/packjt77.f90 | 58 ++++++++++++++++++++++++++++++------------ 1 file changed, 42 insertions(+), 16 deletions(-) diff --git a/lib/77bit/packjt77.f90 b/lib/77bit/packjt77.f90 index a2499625c..cd17e8b47 100644 --- a/lib/77bit/packjt77.f90 +++ b/lib/77bit/packjt77.f90 @@ -216,7 +216,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) character*38 c character*36 a2 integer hashmy10,hashmy12,hashmy22,hashdx10,hashdx12,hashdx22 - logical unpk28_success,unpk77_success + logical unpk28_success,unpk77_success,unpkg4_success logical dxcall13_set,mycall13_set data a2/'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'/,nzzz/46656/ @@ -363,10 +363,11 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) idbm=nint(idbm*10.0/3.0) call unpack28(n28,call_1,unpk28_success) if(.not.unpk28_success) unpk77_success=.false. - call to_grid4(igrid4,grid4) + call to_grid4(igrid4,grid4,unpkg4_success) + if(.not.unpkg4_success) unpk77_success=.false. write(crpt,'(i3)') idbm msg=trim(call_1)//' '//grid4//' '//trim(adjustl(crpt)) - call save_hash_call(call_1,n10,n12,n22) !### Is this OK here? ### + if (unpk77_success) call save_hash_call(call_1,n10,n12,n22) !### Is this OK here? ### else if(itype.eq.2) then ! WSPR Type 2 @@ -416,10 +417,9 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) n28=n22+2063592 call unpack28(n28,call_1,unpk28_success) if(.not.unpk28_success) unpk77_success=.false. - call to_grid(igrid6,grid6) + call to_grid(igrid6,grid6,unpkg4_success) + if(.not.unpkg4_success) unpk77_success=.false. msg=trim(call_1)//' '//grid6 - - endif else if(i3.eq.1 .or. i3.eq.2) then @@ -448,7 +448,8 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) if(i.ge.4) call add_call_to_recent_calls(call_2) endif if(igrid4.le.MAXGRID4) then - call to_grid4(igrid4,grid4) + call to_grid4(igrid4,grid4,unpkg4_success) + if(.not.unpkg4_success) unpk77_success=.false. if(ir.eq.0) msg=trim(call_1)//' '//trim(call_2)//' '//grid4 if(ir.eq.1) msg=trim(call_1)//' '//trim(call_2)//' R '//grid4 if(msg(1:3).eq.'CQ ' .and. ir.eq.1) unpk77_success=.false. @@ -565,7 +566,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) nrs=52+irpt write(cexch,1022) nrs,iserial 1022 format(i2,i4.4) - call to_grid6(igrid6,grid6) + call to_grid6(igrid6,grid6,unpk77_success) if(ir.eq.0) msg=trim(call_1)//' '//trim(call_2)//' '//cexch//' '//grid6 if(ir.eq.1) msg=trim(call_1)//' '//trim(call_2)//' R '//cexch//' '//grid6 @@ -1495,60 +1496,84 @@ subroutine add_call_to_recent_calls(callsign) return end subroutine add_call_to_recent_calls -subroutine to_grid4(n,grid4) +subroutine to_grid4(n,grid4,ok) character*4 grid4 - + logical ok + + ok=.false. j1=n/(18*10*10) + if (j1.lt.0.or.j1.gt.17) goto 900 n=n-j1*18*10*10 j2=n/(10*10) + if (j2.lt.0.or.j2.gt.17) goto 900 n=n-j2*10*10 j3=n/10 + if (j3.lt.0.or.j3.gt.9) goto 900 j4=n-j3*10 + if (j4.lt.0.or.j4.gt.9) goto 900 grid4(1:1)=char(j1+ichar('A')) grid4(2:2)=char(j2+ichar('A')) grid4(3:3)=char(j3+ichar('0')) grid4(4:4)=char(j4+ichar('0')) - - return + ok=.true. + +900 return end subroutine to_grid4 -subroutine to_grid6(n,grid6) +subroutine to_grid6(n,grid6,ok) character*6 grid6 + logical ok + ok=.false. j1=n/(18*10*10*24*24) + if (j1.lt.0.or.j1.gt.17) goto 900 n=n-j1*18*10*10*24*24 j2=n/(10*10*24*24) + if (j2.lt.0.or.j2.gt.17) goto 900 n=n-j2*10*10*24*24 j3=n/(10*24*24) + if (j3.lt.0.or.j3.gt.9) goto 900 n=n-j3*10*24*24 j4=n/(24*24) + if (j4.lt.0.or.j4.gt.9) goto 900 n=n-j4*24*24 j5=n/24 + if (j5.lt.0.or.j5.gt.23) goto 900 j6=n-j5*24 + if (j6.lt.0.or.j6.gt.23) goto 900 grid6(1:1)=char(j1+ichar('A')) grid6(2:2)=char(j2+ichar('A')) grid6(3:3)=char(j3+ichar('0')) grid6(4:4)=char(j4+ichar('0')) grid6(5:5)=char(j5+ichar('A')) grid6(6:6)=char(j6+ichar('A')) + ok=.true. - return +900 return end subroutine to_grid6 -subroutine to_grid(n,grid6) +subroutine to_grid(n,grid6,ok) ! 4-, or 6-character grid character*6 grid6 + logical ok + ok=.false. j1=n/(18*10*10*25*25) + if (j1.lt.0.or.j1.gt.17) goto 900 n=n-j1*18*10*10*25*25 j2=n/(10*10*25*25) + if (j2.lt.0.or.j2.gt.17) goto 900 n=n-j2*10*10*25*25 j3=n/(10*25*25) + if (j3.lt.0.or.j3.gt.9) goto 900 n=n-j3*10*25*25 j4=n/(25*25) + if (j4.lt.0.or.j4.gt.9) goto 900 n=n-j4*25*25 j5=n/25 + if (j5.lt.0.or.j5.gt.24) goto 900 j6=n-j5*25 + if (j6.lt.0.or.j6.gt.24) goto 900 grid6='' grid6(1:1)=char(j1+ichar('A')) grid6(2:2)=char(j2+ichar('A')) @@ -1558,8 +1583,9 @@ subroutine to_grid(n,grid6) grid6(5:5)=char(j5+ichar('A')) grid6(6:6)=char(j6+ichar('A')) endif + ok=.true. - return +900 return end subroutine to_grid end module packjt77 From fb8b938ac7e39606841f2b14fec9aa4118de733b Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 4 Aug 2020 11:43:19 +0100 Subject: [PATCH 357/520] Make FST4 std message generation consistent with other 77-bit modes --- widgets/mainwindow.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 528184278..6c2a32c25 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5359,7 +5359,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) } } - if((m_mode!="MSK144" and m_mode!="FT8" and m_mode!="FT4")) { + if((m_mode!="MSK144" and m_mode!="FT8" and m_mode!="FT4" && m_mode != "FST4")) { t=t00 + rpt; msgtype(t, ui->tx2); t=t0 + "R" + rpt; @@ -5412,7 +5412,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) case Configuration::type_2_msg_1_full: msgtype(t + my_grid, ui->tx1); if (!eme_short_codes) { - if((m_mode=="MSK144" || m_mode=="FT8" || m_mode=="FT4") && + if((m_mode=="MSK144" || m_mode=="FT8" || m_mode=="FT4" || m_mode == "FST4") && SpecOp::NA_VHF == m_config.special_op_id()) { msgtype(t + "R " + my_grid, ui->tx3); // #### Unreachable code } else { @@ -5425,7 +5425,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) break; case Configuration::type_2_msg_3_full: - if ((m_mode=="MSK144" || m_mode=="FT8" || m_mode=="FT4") && + if ((m_mode=="MSK144" || m_mode=="FT8" || m_mode=="FT4" || m_mode == "FST4") && SpecOp::NA_VHF == m_config.special_op_id()) { msgtype(t + "R " + my_grid, ui->tx3); msgtype(t + "RRR", ui->tx4); @@ -5441,7 +5441,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) case Configuration::type_2_msg_5_only: msgtype(t00 + my_grid, ui->tx1); if (!eme_short_codes) { - if ((m_mode=="MSK144" || m_mode=="FT8" || m_mode=="FT4") && + if ((m_mode=="MSK144" || m_mode=="FT8" || m_mode=="FT4" || m_mode == "FST4") && SpecOp::NA_VHF == m_config.special_op_id()) { msgtype(t + "R " + my_grid, ui->tx3); // #### Unreachable code msgtype(t + "RRR", ui->tx4); From d2525c73a3e3f3032ba87320dddccceac7c23de3 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 4 Aug 2020 11:44:26 +0100 Subject: [PATCH 358/520] Minor cosmetic main layout changes --- widgets/mainwindow.ui | 438 +++++++++++++++++++++--------------------- 1 file changed, 219 insertions(+), 219 deletions(-) diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index c777609b0..5fe6be695 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -553,43 +553,68 @@ - - - - - - 0 - 0 - + + + + + false + + + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> + + + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. - QLabel { - font-family: MS Shell Dlg 2; - font-size: 16pt; - background-color : black; - color : yellow; + QPushButton { + font-family: helvetica; + font-size: 9pt; + font-weight: bold; + background-color: white; + color: black; + border-style: solid; + border-width:1px; + border-radius:10px; + border-color: gray; + max-width:20px; + max-height:20px; + min-width:20px; + min-height:20px; +} +QPushButton[state="error"] { + background-color: red; +} +QPushButton[state="warning"] { + background-color: orange; +} +QPushButton[state="ok"] { + background-color: #00ff00; } - - QFrame::StyledPanel - - - QFrame::Sunken - - - 2 - - - 0 - - <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + ? - - Qt::AlignCenter + + + + + + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> - - 5 + + Frequency entry + + + Select operating band or enter frequency in MHz or enter kHz increment followed by k. + + + true + + + QComboBox::NoInsert + + + QComboBox::AdjustToMinimumContentsLength @@ -1103,19 +1128,6 @@ When not checked you can view the calibration results.
- - - - Qt::Vertical - - - - 20 - 40 - - - - @@ -1148,6 +1160,19 @@ When not checked you can view the calibration results.
+ + + + Qt::Vertical + + + + 20 + 40 + + + + @@ -2440,6 +2465,40 @@ list. The list can be maintained in Settings (F2).
+ + + + + 0 + 0 + + + + USB dial frequency + + + QLabel { + font-family: MS Shell Dlg 2; + font-size: 16pt; + color : yellow; + background-color : black; +} +QLabel[oob="true"] { + background-color: red; +} + + + + 14.078 000 + + + Qt::AlignCenter + + + 5 + + + @@ -2447,6 +2506,123 @@ list. The list can be maintained in Settings (F2).
+ + + + + 0 + 0 + + + + QLabel { + font-family: MS Shell Dlg 2; + font-size: 16pt; + background-color : black; + color : yellow; +} + + + QFrame::StyledPanel + + + QFrame::Sunken + + + 2 + + + 0 + + + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + + + Qt::AlignCenter + + + 5 + + + + + + + + 0 + 0 + + + + + 100 + 16777215 + + + + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> + + + Rx Signal + + + 30dB recommended when only noise present +Green when good +Red when clipping may occur +Yellow when too low + + + QFrame::Panel + + + QFrame::Sunken + + + + + + + Adjust Tx audio level + + + 450 + + + 0 + + + Qt::Vertical + + + true + + + true + + + QSlider::TicksBelow + + + 50 + + + + + + + Qt::AlignCenter + + + % + + + NB + + + 25 + + + @@ -2723,182 +2899,6 @@ list. The list can be maintained in Settings (F2).
- - - - <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> - - - Frequency entry - - - Select operating band or enter frequency in MHz or enter kHz increment followed by k. - - - true - - - QComboBox::NoInsert - - - QComboBox::AdjustToMinimumContentsLength - - - - - - - false - - - <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> - - - If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. - - - QPushButton { - font-family: helvetica; - font-size: 9pt; - font-weight: bold; - background-color: white; - color: black; - border-style: solid; - border-width:1px; - border-radius:10px; - border-color: gray; - max-width:20px; - max-height:20px; - min-width:20px; - min-height:20px; -} -QPushButton[state="error"] { - background-color: red; -} -QPushButton[state="warning"] { - background-color: orange; -} -QPushButton[state="ok"] { - background-color: #00ff00; -} - - - ? - - - - - - - Adjust Tx audio level - - - 450 - - - 0 - - - Qt::Vertical - - - true - - - true - - - QSlider::TicksBelow - - - 50 - - - - - - - - 0 - 0 - - - - - 100 - 16777215 - - - - <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> - - - Rx Signal - - - 30dB recommended when only noise present -Green when good -Red when clipping may occur -Yellow when too low - - - QFrame::Panel - - - QFrame::Sunken - - - - - - - - 0 - 0 - - - - USB dial frequency - - - QLabel { - font-family: MS Shell Dlg 2; - font-size: 16pt; - color : yellow; - background-color : black; -} -QLabel[oob="true"] { - background-color: red; -} - - - - 14.078 000 - - - Qt::AlignCenter - - - 5 - - - - - - - Qt::AlignCenter - - - % - - - NB - - - 25 - - - From 09dc647c125e6f58e86e9d97d701f0372fb07148 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 4 Aug 2020 11:49:33 +0100 Subject: [PATCH 359/520] Make tool-tips more generic on T/R period --- widgets/mainwindow.ui | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 5fe6be695..422227bac 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -2156,7 +2156,7 @@ list. The list can be maintained in Settings (F2).
- Percentage of 2-minute sequences devoted to transmitting. + Percentage of minute sequences devoted to transmitting. Qt::AlignCenter @@ -2376,7 +2376,7 @@ list. The list can be maintained in Settings (F2).
- Transmit during the next 2-minute sequence. + <html><head/><body><p>Transmit during the next sequence.</p></body></html> QPushButton:checked { From 0ba5d7e1bf623c40d8b0f2816a3b4fd53e3f7e6c Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 7 Aug 2020 21:28:52 +0100 Subject: [PATCH 360/520] More flexibility for QDateTime round/truncate routine --- .gitignore | 1 + CMakeLists.txt | 4 +- qt_helpers.cpp | 8 +-- qt_helpers.hpp | 8 +-- tests/CMakeLists.txt | 23 +++++++ tests/test_qt_helpers.cpp | 138 ++++++++++++++++++++++++++++++++++++++ widgets/mainwindow.cpp | 4 +- 7 files changed, 175 insertions(+), 11 deletions(-) create mode 100644 tests/CMakeLists.txt create mode 100644 tests/test_qt_helpers.cpp diff --git a/.gitignore b/.gitignore index 2bd99ec81..9c636d134 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ jnq* *.mod *.pro.user *.txt +!**/CMakeLists.txt cmake-build-debug cmake-build-release CMakeFiles diff --git a/CMakeLists.txt b/CMakeLists.txt index f160d6b82..17f863042 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -926,7 +926,9 @@ endif () if (WSJT_GENERATE_DOCS) add_subdirectory (doc) endif (WSJT_GENERATE_DOCS) - +if (EXISTS ${CMAKE_SOURCE_DIR}/tests AND IS_DIRECTORY ${CMAKE_SOURCE_DIR}/tests) + add_subdirectory (tests) +endif () # # Library building setup diff --git a/qt_helpers.cpp b/qt_helpers.cpp index 3f41d0f87..dd474e191 100644 --- a/qt_helpers.cpp +++ b/qt_helpers.cpp @@ -37,14 +37,14 @@ void update_dynamic_property (QWidget * widget, char const * property, QVariant widget->update (); } -QDateTime qt_round_date_time_to (QDateTime dt, int seconds) +QDateTime qt_round_date_time_to (QDateTime dt, int milliseconds) { - dt.setSecsSinceEpoch (dt.addSecs (seconds - 1).toSecsSinceEpoch () / seconds * seconds); + dt.setMSecsSinceEpoch (dt.addMSecs (milliseconds / 2).toMSecsSinceEpoch () / milliseconds * milliseconds); return dt; } -QDateTime qt_truncate_date_time_to (QDateTime dt, int seconds) +QDateTime qt_truncate_date_time_to (QDateTime dt, int milliseconds) { - dt.setSecsSinceEpoch (dt.toSecsSinceEpoch () / seconds * seconds); + dt.setMSecsSinceEpoch (dt.toMSecsSinceEpoch () / milliseconds * milliseconds); return dt; } diff --git a/qt_helpers.hpp b/qt_helpers.hpp index 638c50e2a..aae8c5f07 100644 --- a/qt_helpers.hpp +++ b/qt_helpers.hpp @@ -69,11 +69,11 @@ QString font_as_stylesheet (QFont const&); // conditional style sheet updates void update_dynamic_property (QWidget *, char const * property, QVariant const& value); -// round a QDateTime instance to an interval -QDateTime qt_round_date_time_to (QDateTime dt, int seconds); +// round a QDateTime instance to an integral interval of milliseconds +QDateTime qt_round_date_time_to (QDateTime dt, int milliseconds); -// truncate a QDateTime to an interval -QDateTime qt_truncate_date_time_to (QDateTime dt, int seconds); +// truncate a QDateTime to an integral interval of milliseconds +QDateTime qt_truncate_date_time_to (QDateTime dt, int milliseconds); template class VPtr diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 000000000..4b3462337 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,23 @@ +find_package (Qt5Test 5 REQUIRED) + +# +# Compiler options +# +set (CMAKE_CXX_STANDARD 11) +add_compile_options ("$<$:-Wall;-Wno-conversion;-fno-second-underscore;-fno-f2c>") +add_compile_options ("$<$,$>:-fbounds-check>") +add_compile_options ("$<$,$>>:-funroll-all-loops>") +add_compile_options ("$<$,$>,$,$,$>>:-Wall;-Wextra>") +add_compile_options ("$<$,$>:-Wno-pragmas>") +add_compile_options ("$<$,$>,$>>:-fdata-sections;-ffunction-sections>") +if (${OPENMP_FOUND} OR APPLE) + add_compile_options ("$<$,$>,$>:${OpenMP_C_FLAGS}>") +endif () + +# Tell CMake to run moc when necessary +set (CMAKE_AUTOMOC ON) +include_directories (${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}) + +add_executable (test_qt_helpers test_qt_helpers.cpp) +target_link_libraries (test_qt_helpers wsjt_qt Qt5::Test) +add_test (test_qt_helpers test_qt_helpers) diff --git a/tests/test_qt_helpers.cpp b/tests/test_qt_helpers.cpp new file mode 100644 index 000000000..cb6744df2 --- /dev/null +++ b/tests/test_qt_helpers.cpp @@ -0,0 +1,138 @@ +#include +#include +#include + +#include "qt_helpers.hpp" + +class TestQtHelpers + : public QObject +{ + Q_OBJECT + +public: + +private: + Q_SLOT void round_15s_date_time_up () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 500}}; + QCOMPARE (qt_round_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 30))); + } + + Q_SLOT void truncate_15s_date_time_up () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 500}}; + QCOMPARE (qt_truncate_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void round_15s_date_time_down () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 499}}; + QCOMPARE (qt_round_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void truncate_15s_date_time_down () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 499}}; + QCOMPARE (qt_truncate_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void round_15s_date_time_on () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 15}}; + QCOMPARE (qt_round_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void truncate_15s_date_time_on () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 15}}; + QCOMPARE (qt_truncate_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void round_15s_date_time_under () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 14, 999}}; + QCOMPARE (qt_round_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void truncate_15s_date_time_under () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 14, 999}}; + QCOMPARE (qt_truncate_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15))); + } + + Q_SLOT void round_15s_date_time_over () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 15, 1}}; + QCOMPARE (qt_round_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void truncate_15s_date_time_over () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 15, 1}}; + QCOMPARE (qt_truncate_date_time_to (dt, 15000), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void round_7p5s_date_time_up () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 26, 250}}; + QCOMPARE (qt_round_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 30))); + } + + Q_SLOT void truncate_7p5s_date_time_up () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 26, 250}}; + QCOMPARE (qt_truncate_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } + + Q_SLOT void round_7p5s_date_time_down () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 26, 249}}; + QCOMPARE (qt_round_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } + + Q_SLOT void truncate_7p5s_date_time_down () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 26, 249}}; + QCOMPARE (qt_truncate_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } + + Q_SLOT void round_7p5s_date_time_on () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 500}}; + QCOMPARE (qt_round_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } + + Q_SLOT void truncate_7p5s_date_time_on () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 500}}; + QCOMPARE (qt_truncate_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } + + Q_SLOT void round_7p5s_date_time_under () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 499}}; + QCOMPARE (qt_round_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } + + Q_SLOT void truncate_7p5s_date_time_under () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 499}}; + QCOMPARE (qt_truncate_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 15))); + } + + Q_SLOT void round_7p5s_date_time_over () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 501}}; + QCOMPARE (qt_round_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } + + Q_SLOT void truncate_7p5s_date_time_over () + { + QDateTime dt {QDate {2020, 8, 6}, QTime {14, 15, 22, 501}}; + QCOMPARE (qt_truncate_date_time_to (dt, 7500), QDateTime (QDate (2020, 8, 6), QTime (14, 15, 22, 500))); + } +}; + +QTEST_MAIN (TestQtHelpers); + +#include "test_qt_helpers.moc" diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 6c2a32c25..b91207089 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -8017,8 +8017,8 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout QString MainWindow::beacon_start_time (int n) { - auto bt = qt_truncate_date_time_to (QDateTime::currentDateTimeUtc ().addSecs (n), m_TRperiod); - if (m_TRperiod < 60) + auto bt = qt_truncate_date_time_to (QDateTime::currentDateTimeUtc ().addSecs (n), m_TRperiod * 1.e3); + if (m_TRperiod < 60.) { return bt.toString ("HHmmss"); } From 7bafb5b71e27b023b9cf33955ae217cad37f26e6 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 7 Aug 2020 22:40:15 +0100 Subject: [PATCH 361/520] Qt5.7 backwards compatibility --- Network/MessageClient.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Network/MessageClient.cpp b/Network/MessageClient.cpp index b545dd44e..1d571a5dd 100644 --- a/Network/MessageClient.cpp +++ b/Network/MessageClient.cpp @@ -465,7 +465,11 @@ void MessageClient::set_server (QString const& server) { // queue a host address lookup TRACE_UDP ("server host DNS lookup:" << server); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) m_->dns_lookup_id_ = QHostInfo::lookupHost (server, &*m_, &MessageClient::impl::host_info_results); +#else + m_->dns_lookup_id_ = QHostInfo::lookupHost (server, &*m_, SLOT (host_info_results (QHostInfo))); +#endif } } From 31742156fd22ff878d765a0c4f9267136610279f Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 7 Aug 2020 22:53:21 +0100 Subject: [PATCH 362/520] Qt v5.8 backwards compatibility --- Network/PSKReporter.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Network/PSKReporter.cpp b/Network/PSKReporter.cpp index 5a367e58f..59408c284 100644 --- a/Network/PSKReporter.cpp +++ b/Network/PSKReporter.cpp @@ -402,7 +402,13 @@ void PSKReporter::impl::send_report (bool send_residue) writeUtfString (tx_out, spot.grid_); tx_out << quint8 (1u) // REPORTER_SOURCE_AUTOMATIC - << static_cast (spot.time_.toSecsSinceEpoch ()); + << static_cast ( +#if QT_VERSION >= QT_VERSION_CHECK(5, 8, 0) + spot.time_.toSecsSinceEpoch () +#else + spot.time_.toMSecsSinceEpoch () / 1000 +#endif + ); } auto len = payload_.size () + tx_data_.size (); @@ -429,7 +435,13 @@ void PSKReporter::impl::send_report (bool send_residue) // insert Length and Export Time set_length (message, payload_); message.device ()->seek (2 * sizeof (quint16)); - message << static_cast (QDateTime::currentDateTime ().toSecsSinceEpoch ()); + message << static_cast ( +#if QT_VERSION >= QT_VERSION_CHECK(5, 8, 0) + QDateTime::currentDateTime ().toSecsSinceEpoch () +#else + QDateTime::currentDateTime ().toMSecsSinceEpoch () / 1000 +#endif + ); // Send data to PSK Reporter site socket_->write (payload_); // TODO: handle errors From bf58cd43aa32aee8ecb3cd4b55116074143e4d45 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 13:20:52 +0100 Subject: [PATCH 363/520] Improve contrast of coloured widgets in dark style --- widgets/mainwindow.cpp | 56 +++++++++++++++++++++--------------------- widgets/mainwindow.ui | 1 + 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index b91207089..e9a533e1d 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -943,8 +943,8 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, enable_DXCC_entity (m_config.DXCC ()); // sets text window proportions and (re)inits the logbook - ui->label_9->setStyleSheet("QLabel{background-color: #aabec8}"); - ui->label_10->setStyleSheet("QLabel{background-color: #aabec8}"); + ui->label_9->setStyleSheet("QLabel{color: #000000; background-color: #aabec8}"); + ui->label_10->setStyleSheet("QLabel{color: #000000; background-color: #aabec8}"); // this must be done before initializing the mode as some modes need // to turn off split on the rig e.g. WSPR @@ -1244,7 +1244,7 @@ void MainWindow::readSettings() } ui->WSPR_prefer_type_1_check_box->setChecked (m_settings->value ("WSPRPreferType1", true).toBool ()); m_uploadWSPRSpots=m_settings->value("UploadSpots",false).toBool(); - if(!m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet("QCheckBox{background-color: yellow}"); + if(!m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet("QCheckBox{color: #000000; background-color: yellow}"); ui->cbNoOwnCall->setChecked(m_settings->value("NoOwnCall",false).toBool()); ui->band_hopping_group_box->setChecked (m_settings->value ("BandHopping", false).toBool()); // setup initial value of tx attenuator @@ -2280,7 +2280,7 @@ void MainWindow::createStatusBar() //createStatusBar { tx_status_label.setAlignment (Qt::AlignHCenter); tx_status_label.setMinimumSize (QSize {150, 18}); - tx_status_label.setStyleSheet ("QLabel{background-color: #00ff00}"); + tx_status_label.setStyleSheet ("QLabel{color: #000000; background-color: #00ff00}"); tx_status_label.setFrameStyle (QFrame::Panel | QFrame::Sunken); statusBar()->addWidget (&tx_status_label); @@ -2328,37 +2328,37 @@ void MainWindow::setup_status_bar (bool vhf) mode_label.setText (m_mode); } if ("ISCAT" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #ff9933}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff9933}"); } else if ("JT9" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #ff6ec7}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff6ec7}"); } else if ("JT4" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #cc99ff}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #cc99ff}"); } else if ("Echo" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #66ffff}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #66ffff}"); } else if ("JT9+JT65" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #ffff66}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ffff66}"); } else if ("JT65" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #66ff66}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #66ff66}"); } else if ("QRA64" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #99ff33}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #99ff33}"); } else if ("MSK144" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #ff6666}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff6666}"); } else if ("FT4" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #ff0099}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff0099}"); } else if ("FT8" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #ff6699}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff6699}"); } else if ("FST4" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #99ff66}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #99ff66}"); } else if ("FST4W" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #6699ff}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #6699ff}"); } else if ("FreqCal" == m_mode) { - mode_label.setStyleSheet ("QLabel{background-color: #ff9933}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff9933}"); } last_tx_label.setText (QString {}); if (m_mode.contains (QRegularExpression {R"(^(Echo|ISCAT))"})) { if (band_hopping_label.isVisible ()) statusBar ()->removeWidget (&band_hopping_label); } else if (m_mode=="WSPR") { - mode_label.setStyleSheet ("QLabel{background-color: #ff66ff}"); + mode_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff66ff}"); if (!band_hopping_label.isVisible ()) { statusBar ()->addWidget (&band_hopping_label); band_hopping_label.show (); @@ -2689,7 +2689,7 @@ void MainWindow::on_actionOpen_triggered() //Open File m_path=fname; int i1=fname.lastIndexOf("/"); QString baseName=fname.mid(i1+1); - tx_status_label.setStyleSheet("QLabel{background-color: #99ffff}"); + tx_status_label.setStyleSheet("QLabel{color: #000000; background-color: #99ffff}"); tx_status_label.setText(" " + baseName + " "); on_stopButton_clicked(); m_diskData=true; @@ -2769,7 +2769,7 @@ void MainWindow::on_actionOpen_next_in_directory_triggered() //Open Next m_path=fname; int i1=fname.lastIndexOf("/"); QString baseName=fname.mid(i1+1); - tx_status_label.setStyleSheet("QLabel{background-color: #99ffff}"); + tx_status_label.setStyleSheet("QLabel{color: #000000; background-color: #99ffff}"); tx_status_label.setText(" " + baseName + " "); m_diskData=true; read_wav_file (fname); @@ -4276,11 +4276,11 @@ void MainWindow::guiUpdate() m_nsendingsh=0; if(s[4]==64) m_nsendingsh=1; if(m_nsendingsh==1 or m_currentMessageType==7) { - tx_status_label.setStyleSheet("QLabel{background-color: #66ffff}"); + tx_status_label.setStyleSheet("QLabel{color: #000000; background-color: #66ffff}"); } else if(m_nsendingsh==-1 or m_currentMessageType==6) { - tx_status_label.setStyleSheet("QLabel{background-color: #ffccff}"); + tx_status_label.setStyleSheet("QLabel{color: #000000; background-color: #ffccff}"); } else { - tx_status_label.setStyleSheet("QLabel{background-color: #ffff33}"); + tx_status_label.setStyleSheet("QLabel{color: #000000; background-color: #ffff33}"); } if(m_tune) { tx_status_label.setText("Tx: TUNE"); @@ -4299,11 +4299,11 @@ void MainWindow::guiUpdate() } } else if(m_monitoring) { if (!m_tx_watchdog) { - tx_status_label.setStyleSheet("QLabel{background-color: #00ff00}"); + tx_status_label.setStyleSheet("QLabel{color: #000000; background-color: #00ff00}"); auto t = tr ("Receiving"); if(m_mode=="MSK144") { int npct=int(100.0*m_fCPUmskrtd/0.298667); - if(npct>90) tx_status_label.setStyleSheet("QLabel{background-color: #ff0000}"); + if(npct>90) tx_status_label.setStyleSheet("QLabel{color: #000000; background-color: #ff0000}"); t += QString {" %1%"}.arg (npct, 2); } tx_status_label.setText (t); @@ -5017,7 +5017,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie // m_nextGrid=message_words.at(3); // m_nextRpt=message.report(); // ui->labNextCall->setText("Next: " + m_nextCall); -// ui->labNextCall->setStyleSheet("QLabel {background-color: #66ff66}"); +// ui->labNextCall->setStyleSheet("QLabel {color: #000000; background-color: #66ff66}"); // } return; } @@ -8125,7 +8125,7 @@ void MainWindow::on_cbUploadWSPR_Spots_toggled(bool b) m_uploadWSPRSpots=b; if(m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet(""); if(!m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet( - "QCheckBox{background-color: yellow}"); + "QCheckBox{color: #000000; background-color: yellow}"); } void MainWindow::on_WSPRfreqSpinBox_valueChanged(int n) @@ -8442,7 +8442,7 @@ void MainWindow::tx_watchdog (bool triggered) m_bTxTime=false; if (m_tune) stop_tuning (); if (m_auto) auto_tx_mode (false); - tx_status_label.setStyleSheet ("QLabel{background-color: #ff0000}"); + tx_status_label.setStyleSheet ("QLabel{color: #000000; background-color: #ff0000}"); tx_status_label.setText (tr ("Runaway Tx watchdog")); QApplication::alert (this); } diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 422227bac..4eed5fecd 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -376,6 +376,7 @@ QPushButton:checked { + color: #000000; background-color: #00ff00; border-style: outset; border-width: 1px; From 9c436686408f16c3b05d2912bf6c16b999c84a98 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 13:43:41 +0100 Subject: [PATCH 364/520] Break unnecessary Qt link dependencies in Fortran utilities --- CMakeLists.txt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 17f863042..7b0931ace 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -222,9 +222,12 @@ set (WSJT_QT_CONF_DESTINATION ${QT_CONF_DESTINATION} CACHE PATH "Path for the qt # # Project sources # +set (fort_qt_CXXSRCS + lib/shmem.cpp + ) + set (wsjt_qt_CXXSRCS qt_helpers.cpp - lib/shmem.cpp widgets/MessageBox.cpp MetaDataRegistry.cpp Network/NetworkServerLookup.cpp @@ -730,6 +733,7 @@ set (qcp_CXXSRCS set (all_CXXSRCS ${wsjt_CXXSRCS} + ${fort_qt_CXXSRCS} ${wsjt_qt_CXXSRCS} ${wsjt_qtmm_CXXSRCS} ${wsjtx_CXXSRCS} @@ -1258,6 +1262,11 @@ if (WIN32) target_link_libraries (wsjt_qt Qt5::AxContainer Qt5::AxBase) endif (WIN32) +# build a library of package Qt functionality used in Fortran utilities +add_library (fort_qt STATIC ${fort_qt_CXXSRCS}) +target_link_libraries (fort_qt Qt5::Core) + +# build a library of WSJT Qt multimedia components add_library (wsjt_qtmm STATIC ${wsjt_qtmm_CXXSRCS} ${wsjt_qtmm_GENUISRCS}) target_link_libraries (wsjt_qtmm Qt5::Multimedia) @@ -1305,9 +1314,9 @@ if (${OPENMP_FOUND} OR APPLE) LINK_FLAGS -Wl,--stack,16777216 ) endif () - target_link_libraries (jt9 wsjt_fort_omp wsjt_cxx wsjt_qt) + target_link_libraries (jt9 wsjt_fort_omp wsjt_cxx fort_qt) else (${OPENMP_FOUND} OR APPLE) - target_link_libraries (jt9 wsjt_fort wsjt_cxx Qt5::Core) + target_link_libraries (jt9 wsjt_fort wsjt_cxx fort_qt) endif (${OPENMP_FOUND} OR APPLE) if(WSJT_BUILD_UTILS) From f975f2c181d8f4fef16a735d242dc2535d97ac0b Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 15:06:31 +0100 Subject: [PATCH 365/520] Further widget contrast improvements for use with dark stylesheets --- Configuration.ui | 6 ++++-- widgets/mainwindow.ui | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Configuration.ui b/Configuration.ui index bc8e7f596..eae6ab94f 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -1493,7 +1493,8 @@ both here. false - background-color: rgb(255, 255, 255); + background-color: rgb(255, 255, 255); +color: rgb(0, 0, 0); TextLabel @@ -1541,7 +1542,8 @@ both here.
- background-color: rgb(255, 255, 255); + background-color: rgb(255, 255, 255); +color: rgb(0, 0, 0); TextLabel diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 4eed5fecd..ece61762c 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -448,6 +448,7 @@ QPushButton:checked { + color: rgb(0, 0, 0); background-color: cyan; border-style: outset; border-width: 1px; @@ -481,6 +482,7 @@ QPushButton:checked { + color: rgb(0, 0, 0); background-color: red; border-style: outset; border-width: 1px; @@ -524,6 +526,7 @@ QPushButton:checked { + color: rgb(0, 0, 0); background-color: red; border-style: outset; border-width: 1px; @@ -998,6 +1001,7 @@ Not available to nonstandard callsign holders. QPushButton:checked { + color: rgb(0, 0, 0); background-color: red; border-style: outset; border-width: 1px; @@ -2381,6 +2385,7 @@ list. The list can be maintained in Settings (F2). QPushButton:checked { + color: rgb(0, 0, 0); background-color: red; border-style: outset; border-width: 1px; From a0ceace5b48ed56bd393ed14b833606f3638483d Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 16:25:14 +0100 Subject: [PATCH 366/520] User configurable audio device buffer sizes Adjusting these may help with audio drop-outs, particularly on slower CPU systems or heavily loaded systems. Smaller buffer sizes leave less margin for process interruptions, larger sizes waste resources that could impact other processes. --- Audio/soundin.cpp | 5 +- Audio/soundout.cpp | 19 ++--- Audio/soundout.h | 6 +- Configuration.cpp | 52 +++++++++--- Configuration.hpp | 2 + Configuration.ui | 185 +++++++++++++++++++++++++++++------------ widgets/mainwindow.cpp | 25 +++--- widgets/mainwindow.h | 2 - 8 files changed, 201 insertions(+), 95 deletions(-) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index e08d45271..3e61b41b1 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -41,7 +41,8 @@ bool SoundInput::audioError () const return result; } -void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, AudioDevice * sink, unsigned downSampleFactor, AudioDevice::Channel channel) +void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, AudioDevice * sink + , unsigned downSampleFactor, AudioDevice::Channel channel) { Q_ASSERT (sink); @@ -79,7 +80,9 @@ void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, Audi connect (m_stream.data(), &QAudioInput::stateChanged, this, &SoundInput::handleStateChanged); + qDebug () << "SoundIn default buffer size (bytes):" << m_stream->bufferSize (); m_stream->setBufferSize (m_stream->format ().bytesForFrames (framesPerBuffer)); + qDebug () << "SoundIn selected buffer size (bytes):" << m_stream->bufferSize (); if (sink->initialize (QIODevice::WriteOnly, channel)) { m_stream->start (sink); diff --git a/Audio/soundout.cpp b/Audio/soundout.cpp index 0264ad91e..48bea9cc6 100644 --- a/Audio/soundout.cpp +++ b/Audio/soundout.cpp @@ -9,15 +9,6 @@ #include "moc_soundout.cpp" -/* -#if defined (WIN32) -# define MS_BUFFERED 1000u -#else -# define MS_BUFFERED 2000u -#endif -*/ -# define MS_BUFFERED 200u - bool SoundOutput::audioError () const { bool result (true); @@ -50,11 +41,11 @@ bool SoundOutput::audioError () const return result; } -void SoundOutput::setFormat (QAudioDeviceInfo const& device, unsigned channels, unsigned msBuffered) +void SoundOutput::setFormat (QAudioDeviceInfo const& device, unsigned channels, int frames_buffered) { Q_ASSERT (0 < channels && channels < 3); - m_msBuffered = msBuffered; + m_framesBuffered = frames_buffered; QAudioFormat format (device.preferredFormat ()); // qDebug () << "Preferred audio output format:" << format; @@ -101,9 +92,9 @@ void SoundOutput::restart (QIODevice * source) // we have to set this before every start on the stream because the // Windows implementation seems to forget the buffer size after a // stop. - m_stream->setBufferSize (m_stream->format().bytesForDuration((m_msBuffered ? m_msBuffered : MS_BUFFERED) * 1000)); - // qDebug() << "B" << m_stream->bufferSize() << - // m_stream->periodSize() << m_stream->notifyInterval(); + qDebug () << "SoundOut default buffer size (bytes):" << m_stream->bufferSize (); + m_stream->setBufferSize (m_stream->format().bytesForFrames (m_framesBuffered)); + qDebug () << "SoundOut selected buffer size (bytes):" << m_stream->bufferSize (); m_stream->setCategory ("production"); m_stream->start (source); } diff --git a/Audio/soundout.h b/Audio/soundout.h index 1e4b3a948..2699176f3 100644 --- a/Audio/soundout.h +++ b/Audio/soundout.h @@ -18,7 +18,7 @@ class SoundOutput public: SoundOutput () - : m_msBuffered {0u} + : m_framesBuffered {0} , m_volume {1.0} { } @@ -26,7 +26,7 @@ public: qreal attenuation () const; public Q_SLOTS: - void setFormat (QAudioDeviceInfo const& device, unsigned channels, unsigned msBuffered = 0u); + void setFormat (QAudioDeviceInfo const& device, unsigned channels, int frames_buffered = 0); void restart (QIODevice *); void suspend (); void resume (); @@ -47,7 +47,7 @@ private Q_SLOTS: private: QScopedPointer m_stream; - unsigned m_msBuffered; + int m_framesBuffered; qreal m_volume; }; diff --git a/Configuration.cpp b/Configuration.cpp index 0cbe744e6..4aeda730d 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -242,6 +242,8 @@ namespace // Magic numbers for file validation constexpr quint32 qrg_magic {0xadbccbdb}; constexpr quint32 qrg_version {100}; // M.mm + + constexpr int default_audio_buffer_size = 10; } @@ -649,9 +651,11 @@ private: QAudioDeviceInfo audio_input_device_; bool default_audio_input_device_selected_; AudioDevice::Channel audio_input_channel_; + int audio_input_buffer_size_; QAudioDeviceInfo audio_output_device_; bool default_audio_output_device_selected_; AudioDevice::Channel audio_output_channel_; + int audio_output_buffer_size_; friend class Configuration; }; @@ -681,8 +685,10 @@ bool Configuration::is_active () const {return m_->isVisible ();} QAudioDeviceInfo const& Configuration::audio_input_device () const {return m_->audio_input_device_;} AudioDevice::Channel Configuration::audio_input_channel () const {return m_->audio_input_channel_;} +int Configuration::audio_input_buffer_size () const {return m_->audio_input_buffer_size_ * 1024;} QAudioDeviceInfo const& Configuration::audio_output_device () const {return m_->audio_output_device_;} AudioDevice::Channel Configuration::audio_output_channel () const {return m_->audio_output_channel_;} +int Configuration::audio_output_buffer_size () const {return m_->audio_output_buffer_size_ * 1024;} bool Configuration::restart_audio_input () const {return m_->restart_sound_input_device_;} bool Configuration::restart_audio_output () const {return m_->restart_sound_output_device_;} auto Configuration::type_2_msg_gen () const -> Type2MsgGen {return m_->type_2_msg_gen_;} @@ -977,7 +983,9 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network , degrade_ {0.} // initialize to zero each run, not // saved in settings , default_audio_input_device_selected_ {false} + , audio_input_buffer_size_ {default_audio_buffer_size} , default_audio_output_device_selected_ {false} + , audio_output_buffer_size_ {default_audio_buffer_size} { ui_->setupUi (this); @@ -1189,18 +1197,6 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network // ui_->highlighting_list_view->setModel (&next_decode_highlighing_model_); - // - // load combo boxes with audio setup choices - // - default_audio_input_device_selected_ = load_audio_devices (QAudio::AudioInput, ui_->sound_input_combo_box, &audio_input_device_); - default_audio_output_device_selected_ = load_audio_devices (QAudio::AudioOutput, ui_->sound_output_combo_box, &audio_output_device_); - - update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); - update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); - - ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); - ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); - enumerate_rigs (); initialize_models (); @@ -1238,6 +1234,21 @@ void Configuration::impl::initialize_models () ui_->sbDegrade->setValue (degrade_); ui_->sbBandwidth->setValue (RxBandwidth_); ui_->PTT_method_button_group->button (rig_params_.ptt_type)->setChecked (true); + + // + // load combo boxes with audio setup choices + // + default_audio_input_device_selected_ = load_audio_devices (QAudio::AudioInput, ui_->sound_input_combo_box, &audio_input_device_); + default_audio_output_device_selected_ = load_audio_devices (QAudio::AudioOutput, ui_->sound_output_combo_box, &audio_output_device_); + + update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); + update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); + + ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); + ui_->audio_ip_buffer_spin_box->setValue (audio_input_buffer_size_); + ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); + ui_->audio_op_buffer_spin_box->setValue (audio_output_buffer_size_); + ui_->save_path_display_label->setText (save_directory_.absolutePath ()); ui_->azel_path_display_label->setText (azel_directory_.absolutePath ()); ui_->CW_id_after_73_check_box->setChecked (id_after_73_); @@ -1446,6 +1457,10 @@ void Configuration::impl::read_settings () audio_input_channel_ = AudioDevice::fromString (settings_->value ("AudioInputChannel", "Mono").toString ()); audio_output_channel_ = AudioDevice::fromString (settings_->value ("AudioOutputChannel", "Mono").toString ()); + // retrieve audio buffer size values + audio_input_buffer_size_ = settings_->value ("AudioInputBufferSize", default_audio_buffer_size).toInt (); + audio_output_buffer_size_ = settings_->value ("AudioOutputBufferSize", default_audio_buffer_size).toInt (); + type_2_msg_gen_ = settings_->value ("Type2MsgGen", QVariant::fromValue (Configuration::type_2_msg_3_full)).value (); monitor_off_at_startup_ = settings_->value ("MonitorOFF", false).toBool (); @@ -1587,6 +1602,8 @@ void Configuration::impl::write_settings () settings_->setValue ("AudioInputChannel", AudioDevice::toString (audio_input_channel_)); settings_->setValue ("AudioOutputChannel", AudioDevice::toString (audio_output_channel_)); + settings_->setValue ("AudioInputBufferSize", audio_input_buffer_size_); + settings_->setValue ("AudioOutputBufferSize", audio_output_buffer_size_); settings_->setValue ("Type2MsgGen", QVariant::fromValue (type_2_msg_gen_)); settings_->setValue ("MonitorOFF", monitor_off_at_startup_); settings_->setValue ("MonitorLastUsed", monitor_last_used_); @@ -2041,6 +2058,17 @@ void Configuration::impl::accept () } Q_ASSERT (audio_output_channel_ <= AudioDevice::Both); + if (audio_input_buffer_size_ != ui_->audio_ip_buffer_spin_box->value ()) + { + audio_input_buffer_size_ = ui_->audio_ip_buffer_spin_box->value (); + restart_sound_input_device_ = true; + } + if (audio_output_buffer_size_ != ui_->audio_op_buffer_spin_box->value ()) + { + audio_output_buffer_size_ = ui_->audio_op_buffer_spin_box->value (); + restart_sound_output_device_ = true; + } + my_callsign_ = ui_->callsign_line_edit->text (); my_grid_ = ui_->grid_line_edit->text (); FD_exchange_= ui_->Field_Day_Exchange->text ().toUpper (); diff --git a/Configuration.hpp b/Configuration.hpp index 882a78629..3087ea855 100644 --- a/Configuration.hpp +++ b/Configuration.hpp @@ -87,8 +87,10 @@ public: QAudioDeviceInfo const& audio_input_device () const; AudioDevice::Channel audio_input_channel () const; + int audio_input_buffer_size () const; QAudioDeviceInfo const& audio_output_device () const; AudioDevice::Channel audio_output_channel () const; + int audio_output_buffer_size () const; // These query methods should be used after a call to exec() to // determine if either the audio input or audio output stream diff --git a/Configuration.ui b/Configuration.ui index eae6ab94f..57dca9b04 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -6,8 +6,8 @@ 0 0 - 559 - 553 + 553 + 563 @@ -1349,46 +1349,6 @@ radio interface behave as expected. Soundcard - - - - - 1 - 0 - - - - Select the audio CODEC to use for transmitting. -If this is your default device for system sounds then -ensure that all system sounds are disabled otherwise -you will broadcast any systems sounds generated during -transmitting periods. - - - - - - - - 1 - 0 - - - - Select the audio CODEC to use for receiving. - - - - - - - &Input: - - - sound_input_combo_box - - - @@ -1416,6 +1376,16 @@ transmitting periods. + + + + &Input: + + + sound_input_combo_box + + + @@ -1446,6 +1416,81 @@ both here. + + + + Audio output buffer size in kilo-frames + +Adjust for minimum dropped samples reported. Too low values are likely to cause dropped samples causing audio drop-outs. + + + k + + + 4 + + + 128 + + + 10 + + + + + + + + 1 + 0 + + + + Select the audio CODEC to use for receiving. + + + + + + + Audio input buffer size in kilo-frames + +Adjust for minimum dropped samples reported. Too low values are likely to cause dropped samples causing audio drop-outs. + + + k + + + + + + 4 + + + 128 + + + 10 + + + + + + + + 1 + 0 + + + + Select the audio CODEC to use for transmitting. +If this is your default device for system sounds then +ensure that all system sounds are disabled otherwise +you will broadcast any systems sounds generated during +transmitting periods. + + + @@ -1456,6 +1501,26 @@ both here. + + + + Buffer: + + + audio_ip_buffer_spin_box + + + + + + + Buffer: + + + audio_op_buffer_spin_box + + + @@ -2951,14 +3016,20 @@ Right click for insert and delete options. use_dynamic_grid region_combo_box type_2_msg_gen_combo_box + decodes_from_top_check_box + insert_blank_check_box + miles_check_box TX_messages_check_box DXCC_check_box + ppfx_check_box font_push_button decoded_text_font_push_button monitor_off_check_box monitor_last_used_check_box quick_call_check_box disable_TX_on_73_check_box + force_call_1st_check_box + alternate_bindings_check_box CW_id_after_73_check_box enable_VHF_features_check_box tx_QSY_check_box @@ -2977,8 +3048,8 @@ Right click for insert and delete options. CAT_one_stop_bit_radio_button CAT_two_stop_bit_radio_button CAT_handshake_default_radio_button - CAT_handshake_none_radio_button CAT_handshake_xon_radio_button + CAT_handshake_none_radio_button CAT_handshake_hardware_radio_button force_DTR_combo_box force_RTS_combo_box @@ -2999,8 +3070,10 @@ Right click for insert and delete options. test_PTT_push_button sound_input_combo_box sound_input_channel_combo_box + audio_ip_buffer_spin_box sound_output_combo_box sound_output_channel_combo_box + audio_op_buffer_spin_box save_path_select_push_button azel_path_select_push_button checkBoxPwrBandTxMemory @@ -3016,6 +3089,7 @@ Right click for insert and delete options. clear_DX_check_box opCallEntry psk_reporter_check_box + psk_reporter_tcpip_check_box udp_server_line_edit udp_server_port_spin_box accept_udp_requests_check_box @@ -3030,9 +3104,13 @@ Right click for insert and delete options. stations_table_view highlighting_list_view reset_highlighting_to_defaults_push_button + highlight_by_mode_check_box + only_fields_check_box + include_WAE_check_box + rescan_log_push_button LotW_CSV_URL_line_edit - LotW_CSV_fetch_push_button LotW_days_since_upload_spin_box + LotW_CSV_fetch_push_button sbNtrials sbAggressive cbTwoPass @@ -3041,13 +3119,18 @@ Right click for insert and delete options. sbTxDelay cbx2ToneSpacing cbx4ToneSpacing + rbLowSidelobes + rbMaxSensitivity + gbSpecialOpActivity rbFox + rbHound rbNA_VHF_Contest - rbEU_VHF_Contest rbField_Day Field_Day_Exchange + rbEU_VHF_Contest rbRTTY_Roundup RTTY_Exchange + rbWW_DIGI @@ -3117,13 +3200,13 @@ Right click for insert and delete options. - - - - - - + + + + + + diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index e9a533e1d..c9ee10b8a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -394,8 +394,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, }, m_sfx {"P", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A"}, mem_jt9 {shdmem}, - m_msAudioOutputBuffered (0u), - m_framesAudioInputBuffered (RX_SAMPLE_RATE / 10), m_downSampleFactor (downSampleFactor), m_audioThreadPriority (QThread::HighPriority), m_bandEdited {false}, @@ -937,8 +935,12 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect (&m_wav_future_watcher, &QFutureWatcher::finished, this, &MainWindow::diskDat); connect(&watcher3, SIGNAL(finished()),this,SLOT(fast_decode_done())); - Q_EMIT startAudioInputStream (m_config.audio_input_device (), m_framesAudioInputBuffered, m_detector, m_downSampleFactor, m_config.audio_input_channel ()); - Q_EMIT initializeAudioOutputStream (m_config.audio_output_device (), AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2, m_msAudioOutputBuffered); + Q_EMIT startAudioInputStream (m_config.audio_input_device () + , m_config.audio_input_buffer_size () + , m_detector, m_downSampleFactor, m_config.audio_input_channel ()); + Q_EMIT initializeAudioOutputStream (m_config.audio_output_device () + , AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2 + , m_config.audio_output_buffer_size ()); Q_EMIT transmitFrequency (ui->TxFreqSpinBox->value () - m_XIT); enable_DXCC_entity (m_config.DXCC ()); // sets text window proportions and (re)inits the logbook @@ -1277,8 +1279,6 @@ void MainWindow::readSettings() // use these initialisation settings to tune the audio o/p buffer // size and audio thread priority m_settings->beginGroup ("Tune"); - m_msAudioOutputBuffered = m_settings->value ("Audio/OutputBufferMs").toInt (); - m_framesAudioInputBuffered = m_settings->value ("Audio/InputBufferFrames", RX_SAMPLE_RATE / 10).toInt (); m_audioThreadPriority = static_cast (m_settings->value ("Audio/ThreadPriority", QThread::HighPriority).toInt () % 8); m_settings->endGroup (); @@ -1799,15 +1799,16 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog if(m_config.spot_to_psk_reporter ()) pskSetLocal (); if(m_config.restart_audio_input ()) { - Q_EMIT startAudioInputStream (m_config.audio_input_device (), - m_framesAudioInputBuffered, m_detector, m_downSampleFactor, - m_config.audio_input_channel ()); + Q_EMIT startAudioInputStream (m_config.audio_input_device () + , m_config.audio_input_buffer_size () + , m_detector, m_downSampleFactor + , m_config.audio_input_channel ()); } if(m_config.restart_audio_output ()) { - Q_EMIT initializeAudioOutputStream (m_config.audio_output_device (), - AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2, - m_msAudioOutputBuffered); + Q_EMIT initializeAudioOutputStream (m_config.audio_output_device () + , AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2 + , m_config.audio_output_buffer_size ()); } displayDialFrequency (); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 79f65d080..2f95ac801 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -666,8 +666,6 @@ private: QSharedMemory *mem_jt9; QString m_QSOText; - unsigned m_msAudioOutputBuffered; - unsigned m_framesAudioInputBuffered; unsigned m_downSampleFactor; QThread::Priority m_audioThreadPriority; bool m_bandEdited; From f32c927306cc701a00288ebc357d291d6b2af1b4 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 16:52:03 +0100 Subject: [PATCH 367/520] Control audio buffer size defaults from Configuration class --- Configuration.ui | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Configuration.ui b/Configuration.ui index 57dca9b04..eaa68bf30 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -1432,9 +1432,6 @@ Adjust for minimum dropped samples reported. Too low values are likely to cause 128 - - 10 - @@ -1469,9 +1466,6 @@ Adjust for minimum dropped samples reported. Too low values are likely to cause 128 - - 10 - From 6ea62d9476cbe2a8c61bb0fe9fc165131bc17049 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 16:53:24 +0100 Subject: [PATCH 368/520] Remove default audio devices from audio configuration This enforces an audio input device in the settings dialog since we can't do anything without an input device. A nil audio output device is allowed with a warning. --- Audio/soundin.cpp | 5 +- Audio/soundout.cpp | 4 +- Configuration.cpp | 175 +++++++-------------------------------------- 3 files changed, 31 insertions(+), 153 deletions(-) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index 3e61b41b1..e6e8ef783 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -63,14 +63,13 @@ void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, Audi Q_EMIT error (tr ("Requested input audio format is not valid.")); return; } - - if (!device.isFormatSupported (format)) + else if (!device.isFormatSupported (format)) { // qDebug () << "Nearest supported audio format:" << device.nearestFormat (format); Q_EMIT error (tr ("Requested input audio format is not supported on device.")); return; } -// qDebug () << "Selected audio input format:" << format; + // qDebug () << "Selected audio input format:" << format; m_stream.reset (new QAudioInput {device, format}); if (audioError ()) diff --git a/Audio/soundout.cpp b/Audio/soundout.cpp index 48bea9cc6..ecd7ce723 100644 --- a/Audio/soundout.cpp +++ b/Audio/soundout.cpp @@ -59,11 +59,11 @@ void SoundOutput::setFormat (QAudioDeviceInfo const& device, unsigned channels, { Q_EMIT error (tr ("Requested output audio format is not valid.")); } - if (!device.isFormatSupported (format)) + else if (!device.isFormatSupported (format)) { Q_EMIT error (tr ("Requested output audio format is not supported on device.")); } -// qDebug () << "Selected audio output format:" << format; + qDebug () << "Selected audio output format:" << format; m_stream.reset (new QAudioOutput (device, format)); audioError (); diff --git a/Configuration.cpp b/Configuration.cpp index 4aeda730d..2a09dad6a 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -431,7 +431,7 @@ private: void read_settings (); void write_settings (); - bool load_audio_devices (QAudio::Mode, QComboBox *, QAudioDeviceInfo *); + void load_audio_devices (QAudio::Mode, QComboBox *, QAudioDeviceInfo *); void update_audio_channels (QComboBox const *, int, QComboBox *, bool); void initialize_models (); @@ -479,8 +479,6 @@ private: Q_SLOT void on_force_DTR_combo_box_currentIndexChanged (int); Q_SLOT void on_force_RTS_combo_box_currentIndexChanged (int); Q_SLOT void on_rig_combo_box_currentIndexChanged (int); - Q_SLOT void on_sound_input_combo_box_currentTextChanged (QString const&); - Q_SLOT void on_sound_output_combo_box_currentTextChanged (QString const&); Q_SLOT void on_add_macro_push_button_clicked (bool = false); Q_SLOT void on_delete_macro_push_button_clicked (bool = false); Q_SLOT void on_PTT_method_button_group_buttonClicked (int); @@ -649,11 +647,9 @@ private: bool pwrBandTuneMemory_; QAudioDeviceInfo audio_input_device_; - bool default_audio_input_device_selected_; AudioDevice::Channel audio_input_channel_; int audio_input_buffer_size_; QAudioDeviceInfo audio_output_device_; - bool default_audio_output_device_selected_; AudioDevice::Channel audio_output_channel_; int audio_output_buffer_size_; @@ -982,9 +978,7 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network , transceiver_command_number_ {0} , degrade_ {0.} // initialize to zero each run, not // saved in settings - , default_audio_input_device_selected_ {false} , audio_input_buffer_size_ {default_audio_buffer_size} - , default_audio_output_device_selected_ {false} , audio_output_buffer_size_ {default_audio_buffer_size} { ui_->setupUi (this); @@ -1238,8 +1232,11 @@ void Configuration::impl::initialize_models () // // load combo boxes with audio setup choices // - default_audio_input_device_selected_ = load_audio_devices (QAudio::AudioInput, ui_->sound_input_combo_box, &audio_input_device_); - default_audio_output_device_selected_ = load_audio_devices (QAudio::AudioOutput, ui_->sound_output_combo_box, &audio_output_device_); + // + // load combo boxes with audio setup choices + // + load_audio_devices (QAudio::AudioInput, ui_->sound_input_combo_box, &audio_input_device_); + load_audio_devices (QAudio::AudioOutput, ui_->sound_output_combo_box, &audio_output_device_); update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); @@ -1406,23 +1403,11 @@ void Configuration::impl::read_settings () // retrieve audio input device // auto saved_name = settings_->value ("SoundInName").toString (); - - // deal with special Windows default audio devices - auto default_device = QAudioDeviceInfo::defaultInputDevice (); - if (saved_name == default_device.deviceName ()) + Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (QAudio::AudioInput)) // available audio input devices { - audio_input_device_ = default_device; - default_audio_input_device_selected_ = true; - } - else - { - default_audio_input_device_selected_ = false; - Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (QAudio::AudioInput)) // available audio input devices + if (p.deviceName () == saved_name) { - if (p.deviceName () == saved_name) - { - audio_input_device_ = p; - } + audio_input_device_ = p; } } } @@ -1432,23 +1417,11 @@ void Configuration::impl::read_settings () // retrieve audio output device // auto saved_name = settings_->value("SoundOutName").toString(); - - // deal with special Windows default audio devices - auto default_device = QAudioDeviceInfo::defaultOutputDevice (); - if (saved_name == default_device.deviceName ()) + Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (QAudio::AudioOutput)) // available audio output devices { - audio_output_device_ = default_device; - default_audio_output_device_selected_ = true; - } - else - { - default_audio_output_device_selected_ = false; - Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (QAudio::AudioOutput)) // available audio output devices + if (p.deviceName () == saved_name) { - if (p.deviceName () == saved_name) - { - audio_output_device_ = p; - } + audio_output_device_ = p; } } } @@ -1581,25 +1554,8 @@ void Configuration::impl::write_settings () settings_->setValue ("PTTport", rig_params_.ptt_port); settings_->setValue ("SaveDir", save_directory_.absolutePath ()); settings_->setValue ("AzElDir", azel_directory_.absolutePath ()); - - if (default_audio_input_device_selected_) - { - settings_->setValue ("SoundInName", QAudioDeviceInfo::defaultInputDevice ().deviceName ()); - } - else - { - settings_->setValue ("SoundInName", audio_input_device_.deviceName ()); - } - - if (default_audio_output_device_selected_) - { - settings_->setValue ("SoundOutName", QAudioDeviceInfo::defaultOutputDevice ().deviceName ()); - } - else - { - settings_->setValue ("SoundOutName", audio_output_device_.deviceName ()); - } - + settings_->setValue ("SoundInName", audio_input_device_.deviceName ()); + settings_->setValue ("SoundOutName", audio_output_device_.deviceName ()); settings_->setValue ("AudioInputChannel", AudioDevice::toString (audio_input_channel_)); settings_->setValue ("AudioOutputChannel", AudioDevice::toString (audio_output_channel_)); settings_->setValue ("AudioInputBufferSize", audio_input_buffer_size_); @@ -1816,8 +1772,8 @@ bool Configuration::impl::validate () if (ui_->sound_output_combo_box->currentIndex () < 0 && !QAudioDeviceInfo::availableDevices (QAudio::AudioOutput).empty ()) { - MessageBox::critical_message (this, tr ("Invalid audio out device")); - return false; + MessageBox::warning_message (this, tr ("Invalid audio output device")); + // don't reject as we can work without an audio output } if (!ui_->PTT_method_button_group->checkedButton ()->isEnabled ()) @@ -1990,25 +1946,12 @@ void Configuration::impl::accept () auto const& device_name = ui_->sound_input_combo_box->currentText (); if (device_name != audio_input_device_.deviceName ()) { - auto const& default_device = QAudioDeviceInfo::defaultInputDevice (); - if (device_name == default_device.deviceName ()) + audio_input_device_ = QAudioDeviceInfo {}; + Q_FOREACH (auto const& d, QAudioDeviceInfo::availableDevices (QAudio::AudioInput)) { - audio_input_device_ = default_device; - } - else - { - bool found {false}; - Q_FOREACH (auto const& d, QAudioDeviceInfo::availableDevices (QAudio::AudioInput)) + if (device_name == d.deviceName ()) { - if (device_name == d.deviceName ()) - { - audio_input_device_ = d; - found = true; - } - } - if (!found) - { - audio_input_device_ = default_device; + audio_input_device_ = d; } } restart_sound_input_device_ = true; @@ -2019,25 +1962,12 @@ void Configuration::impl::accept () auto const& device_name = ui_->sound_output_combo_box->currentText (); if (device_name != audio_output_device_.deviceName ()) { - auto const& default_device = QAudioDeviceInfo::defaultOutputDevice (); - if (device_name == default_device.deviceName ()) + audio_output_device_ = QAudioDeviceInfo {}; + Q_FOREACH (auto const& d, QAudioDeviceInfo::availableDevices (QAudio::AudioOutput)) { - audio_output_device_ = default_device; - } - else - { - bool found {false}; - Q_FOREACH (auto const& d, QAudioDeviceInfo::availableDevices (QAudio::AudioOutput)) + if (device_name == d.deviceName ()) { - if (device_name == d.deviceName ()) - { - audio_output_device_ = d; - found = true; - } - } - if (!found) - { - audio_output_device_ = default_device; + audio_output_device_ = d; } } restart_sound_output_device_ = true; @@ -2334,16 +2264,6 @@ void Configuration::impl::on_PTT_method_button_group_buttonClicked (int /* id */ set_rig_invariants (); } -void Configuration::impl::on_sound_input_combo_box_currentTextChanged (QString const& text) -{ - default_audio_input_device_selected_ = QAudioDeviceInfo::defaultInputDevice ().deviceName () == text; -} - -void Configuration::impl::on_sound_output_combo_box_currentTextChanged (QString const& text) -{ - default_audio_output_device_selected_ = QAudioDeviceInfo::defaultOutputDevice ().deviceName () == text; -} - void Configuration::impl::on_add_macro_line_edit_editingFinished () { ui_->add_macro_line_edit->setText (ui_->add_macro_line_edit->text ().toUpper ()); @@ -2861,47 +2781,18 @@ void Configuration::impl::close_rig () } } -// load the available audio devices into the selection combo box and -// select the default device if the current device isn't set or isn't -// available -bool Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * combo_box, QAudioDeviceInfo * device) +// load the available audio devices into the selection combo box +void Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * combo_box, QAudioDeviceInfo * device) { using std::copy; using std::back_inserter; - bool result {false}; - combo_box->clear (); int current_index = -1; - int default_index = -1; - - int extra_items {0}; - - auto const& default_device = (mode == QAudio::AudioInput ? QAudioDeviceInfo::defaultInputDevice () : QAudioDeviceInfo::defaultOutputDevice ()); - - // deal with special default audio devices on Windows - if ("Default Input Device" == default_device.deviceName () - || "Default Output Device" == default_device.deviceName ()) - { - default_index = 0; - - QList channel_counts; - auto scc = default_device.supportedChannelCounts (); - copy (scc.cbegin (), scc.cend (), back_inserter (channel_counts)); - - combo_box->addItem (default_device.deviceName (), channel_counts); - ++extra_items; - if (default_device == *device) - { - current_index = 0; - result = true; - } - } - Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (mode)) { -// qDebug () << "Audio device: input:" << (QAudio::AudioInput == mode) << "name:" << p.deviceName () << "preferred format:" << p.preferredFormat () << "endians:" << p.supportedByteOrders () << "codecs:" << p.supportedCodecs () << "channels:" << p.supportedChannelCounts () << "rates:" << p.supportedSampleRates () << "sizes:" << p.supportedSampleSizes () << "types:" << p.supportedSampleTypes (); + // qDebug () << "Audio device: input:" << (QAudio::AudioInput == mode) << "name:" << p.deviceName () << "preferred format:" << p.preferredFormat () << "endians:" << p.supportedByteOrders () << "codecs:" << p.supportedCodecs () << "channels:" << p.supportedChannelCounts () << "rates:" << p.supportedSampleRates () << "sizes:" << p.supportedSampleSizes () << "types:" << p.supportedSampleTypes (); // convert supported channel counts into something we can store in the item model QList channel_counts; @@ -2913,20 +2804,8 @@ bool Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * com { current_index = combo_box->count () - 1; } - else if (p == default_device) - { - default_index = combo_box->count () - 1; - } - } - if (current_index < 0) // not found - use default - { - *device = default_device; - result = true; - current_index = default_index; } combo_box->setCurrentIndex (current_index); - - return result; } // enable only the channels that are supported by the selected audio device From 02e19b687f1bad8e6539d95f78241d465ed5e6b0 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 17:12:48 +0100 Subject: [PATCH 369/520] Status message to report approximate # of dropped Rx audio frames This is a first cut at this to evaluate buffer size adjustments on supported platforms. A final version might limit status bar reports to >1000 dropped frames or similar. --- Audio/soundin.cpp | 18 ++++++++++++++++-- Audio/soundin.h | 6 +++++- main.cpp | 2 +- widgets/mainwindow.cpp | 30 ++++++++++++++++++++++-------- widgets/mainwindow.h | 1 + 5 files changed, 45 insertions(+), 12 deletions(-) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index e6e8ef783..5589393b9 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -117,9 +117,9 @@ void SoundInput::resume () } } -void SoundInput::handleStateChanged (QAudio::State newState) const +void SoundInput::handleStateChanged (QAudio::State newState) { - // qDebug () << "SoundInput::handleStateChanged: newState:" << newState; + qDebug () << "SoundInput::handleStateChanged: newState:" << newState; switch (newState) { @@ -128,6 +128,7 @@ void SoundInput::handleStateChanged (QAudio::State newState) const break; case QAudio::ActiveState: + reset (false); Q_EMIT status (tr ("Receiving")); break; @@ -154,6 +155,19 @@ void SoundInput::handleStateChanged (QAudio::State newState) const } } +void SoundInput::reset (bool report_dropped_frames) +{ + if (m_stream) + { + if (report_dropped_frames) + { + auto lost_usec = m_stream->elapsedUSecs () - m_stream->processedUSecs () - cummulative_lost_usec_; + Q_EMIT dropped_frames (m_stream->format ().framesForDuration (lost_usec), lost_usec); + } + cummulative_lost_usec_ = m_stream->elapsedUSecs () - m_stream->processedUSecs (); + } +} + void SoundInput::stop() { if (m_stream) diff --git a/Audio/soundin.h b/Audio/soundin.h index 325d5e89d..7e2c71d39 100644 --- a/Audio/soundin.h +++ b/Audio/soundin.h @@ -24,6 +24,7 @@ public: SoundInput (QObject * parent = nullptr) : QObject {parent} , m_sink {nullptr} + , cummulative_lost_usec_ {0} { } @@ -35,18 +36,21 @@ public: Q_SLOT void suspend (); Q_SLOT void resume (); Q_SLOT void stop (); + Q_SLOT void reset (bool report_dropped_frames); Q_SIGNAL void error (QString message) const; Q_SIGNAL void status (QString message) const; + Q_SIGNAL void dropped_frames (qint32 dropped, qint64 usec); private: // used internally - Q_SLOT void handleStateChanged (QAudio::State) const; + Q_SLOT void handleStateChanged (QAudio::State); bool audioError () const; QScopedPointer m_stream; QPointer m_sink; + qint64 cummulative_lost_usec_; }; #endif diff --git a/main.cpp b/main.cpp index 62e85e90f..c167a0396 100644 --- a/main.cpp +++ b/main.cpp @@ -97,7 +97,7 @@ namespace int main(int argc, char *argv[]) { // ### Add timestamps to all debug messages -// qSetMessagePattern ("[%{time yyyyMMdd HH:mm:ss.zzz t} %{if-debug}D%{endif}%{if-info}I%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}] %{message}"); + qSetMessagePattern ("[%{time yyyyMMdd HH:mm:ss.zzz t} %{if-debug}D%{endif}%{if-info}I%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}] %{message}"); init_random_seed (); diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index c9ee10b8a..6625e8fd9 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -469,9 +469,13 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect (this, &MainWindow::startAudioInputStream, m_soundInput, &SoundInput::start); connect (this, &MainWindow::suspendAudioInputStream, m_soundInput, &SoundInput::suspend); connect (this, &MainWindow::resumeAudioInputStream, m_soundInput, &SoundInput::resume); + connect (this, &MainWindow::reset_audio_input_stream, m_soundInput, &SoundInput::reset); connect (this, &MainWindow::finished, m_soundInput, &SoundInput::stop); connect(m_soundInput, &SoundInput::error, this, &MainWindow::showSoundInError); // connect(m_soundInput, &SoundInput::status, this, &MainWindow::showStatusMessage); + connect (m_soundInput, &SoundInput::dropped_frames, this, [this] (qint32 dropped_frames, qint64 usec) { + showStatusMessage (tr ("%1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6)); + }); connect (&m_audioThread, &QThread::finished, m_soundInput, &QObject::deleteLater); connect (this, &MainWindow::finished, this, &MainWindow::close); @@ -935,12 +939,18 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect (&m_wav_future_watcher, &QFutureWatcher::finished, this, &MainWindow::diskDat); connect(&watcher3, SIGNAL(finished()),this,SLOT(fast_decode_done())); - Q_EMIT startAudioInputStream (m_config.audio_input_device () - , m_config.audio_input_buffer_size () - , m_detector, m_downSampleFactor, m_config.audio_input_channel ()); - Q_EMIT initializeAudioOutputStream (m_config.audio_output_device () - , AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2 - , m_config.audio_output_buffer_size ()); + if (!m_config.audio_input_device ().isNull ()) + { + Q_EMIT startAudioInputStream (m_config.audio_input_device () + , m_config.audio_input_buffer_size () + , m_detector, m_downSampleFactor, m_config.audio_input_channel ()); + } + if (!m_config.audio_output_device ().isNull ()) + { + Q_EMIT initializeAudioOutputStream (m_config.audio_output_device () + , AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2 + , m_config.audio_output_buffer_size ()); + } Q_EMIT transmitFrequency (ui->TxFreqSpinBox->value () - m_XIT); enable_DXCC_entity (m_config.DXCC ()); // sets text window proportions and (re)inits the logbook @@ -1536,6 +1546,10 @@ void MainWindow::dataSink(qint64 frames) if(m_mode!="WSPR") decode(); //Start decoder if(m_mode=="FT8" and !m_diskData and (m_ihsym==m_earlyDecode or m_ihsym==m_earlyDecode2)) return; + if (!m_diskData) + { + Q_EMIT reset_audio_input_stream (true); // signals dropped samples + } if(!m_diskData and (m_saveAll or m_saveDecoded or m_mode=="WSPR" or m_mode=="FST4W")) { //Always save unless "Save None"; may delete later if(m_TRperiod < 60) { @@ -2280,10 +2294,10 @@ bool MainWindow::eventFilter (QObject * object, QEvent * event) void MainWindow::createStatusBar() //createStatusBar { tx_status_label.setAlignment (Qt::AlignHCenter); - tx_status_label.setMinimumSize (QSize {150, 18}); + tx_status_label.setMinimumSize (QSize {100, 18}); tx_status_label.setStyleSheet ("QLabel{color: #000000; background-color: #00ff00}"); tx_status_label.setFrameStyle (QFrame::Panel | QFrame::Sunken); - statusBar()->addWidget (&tx_status_label); + statusBar()->addPermanentWidget (&tx_status_label); config_label.setAlignment (Qt::AlignHCenter); config_label.setMinimumSize (QSize {80, 18}); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 2f95ac801..a1673ec71 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -346,6 +346,7 @@ private: int TRperiod=60) const; Q_SIGNAL void outAttenuationChanged (qreal) const; Q_SIGNAL void toggleShorthand () const; + Q_SIGNAL void reset_audio_input_stream (bool report_dropped_frames) const; private: void set_mode (QString const& mode); From 2e413713a379bf2443c01d5a1264d1bc7e11cce7 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 19:40:42 +0100 Subject: [PATCH 370/520] Tidy dropped frame status bar message --- Audio/soundin.cpp | 1 + widgets/mainwindow.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index 5589393b9..a2856c255 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -163,6 +163,7 @@ void SoundInput::reset (bool report_dropped_frames) { auto lost_usec = m_stream->elapsedUSecs () - m_stream->processedUSecs () - cummulative_lost_usec_; Q_EMIT dropped_frames (m_stream->format ().framesForDuration (lost_usec), lost_usec); + qDebug () << "SoundInput::reset: frames dropped:" << m_stream->format ().framesForDuration (lost_usec) << "sec:" << lost_usec / 1.e6; } cummulative_lost_usec_ = m_stream->elapsedUSecs () - m_stream->processedUSecs (); } diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 6625e8fd9..f6cd97753 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -474,7 +474,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect(m_soundInput, &SoundInput::error, this, &MainWindow::showSoundInError); // connect(m_soundInput, &SoundInput::status, this, &MainWindow::showStatusMessage); connect (m_soundInput, &SoundInput::dropped_frames, this, [this] (qint32 dropped_frames, qint64 usec) { - showStatusMessage (tr ("%1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6)); + showStatusMessage (tr ("%1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6, 5, 'f', 3)); }); connect (&m_audioThread, &QThread::finished, m_soundInput, &QObject::deleteLater); From 94d66bc8481cbe2070ec46558e2fdd8714f197de Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 8 Aug 2020 21:25:32 +0100 Subject: [PATCH 371/520] Make FST4W scheduling l10n agnostic --- widgets/mainwindow.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 6c2a32c25..cceb990c0 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5741,7 +5741,7 @@ void MainWindow::on_tx6_editingFinished() //tx6 edited void MainWindow::on_RoundRobin_currentTextChanged(QString text) { - ui->sbTxPercent->setEnabled(text=="Random"); + ui->sbTxPercent->setEnabled (text == tr ("Random")); m_WSPR_tx_next = false; // cancel any pending Tx to avoid // undesirable consecutive Tx periods } @@ -6642,7 +6642,7 @@ void MainWindow::WSPR_config(bool b) ui->label_7->setVisible(!b and ui->cbMenus->isChecked()); ui->logQSOButton->setVisible(!b); ui->DecodeButton->setEnabled(!b); - ui->sbTxPercent->setEnabled (m_mode != "FST4W" || "Random" == ui->RoundRobin->currentText ()); + ui->sbTxPercent->setEnabled (m_mode != "FST4W" || tr ("Random") == ui->RoundRobin->currentText ()); ui->band_hopping_group_box->setVisible(true); ui->RoundRobin->setVisible(m_mode=="FST4W"); ui->RoundRobin->lineEdit()->setAlignment(Qt::AlignCenter); @@ -8141,7 +8141,7 @@ void MainWindow::on_pbTxNext_clicked(bool b) void MainWindow::WSPR_scheduling () { QString t=ui->RoundRobin->currentText(); - if(m_mode=="FST4W" and t!="Random") { + if(m_mode=="FST4W" and t != tr ("Random")) { bool ok; int i=t.left (1).toInt (&ok) - 1; if (!ok) return; From b5765401dc26acb41dac905c91ae0b2b61f7cf85 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 9 Aug 2020 14:21:25 -0400 Subject: [PATCH 372/520] TEMPORARY: Diagnostic routine for the "Save All" missing files problem. --- lib/symspec.f90 | 32 ++++++++++++++++++++++++++++++++ widgets/mainwindow.cpp | 2 ++ 2 files changed, 34 insertions(+) diff --git a/lib/symspec.f90 b/lib/symspec.f90 index a3bed192f..64c88815e 100644 --- a/lib/symspec.f90 +++ b/lib/symspec.f90 @@ -126,3 +126,35 @@ subroutine symspec(shared_data,k,TRperiod,nsps,ingain,bLowSidelobes, & return end subroutine symspec + +subroutine chk_samples(ihsym,k,nstop) + + integer*8 count0,count1,clkfreq + integer itime(8) + real*8 dtime,fsample + character*12 ctime + data count0/-1/,k0/99999999/,maxhsym/0/ + save count0,k0,maxhsym + + if(k.lt.k0 .or. count0.eq.-1) then + call system_clock(count0,clkfreq) + maxhsym=0 + endif + if((mod(ihsym,100).eq.0 .or. ihsym.ge.nstop-100) .and. & + k0.ne.99999999) then + call system_clock(count1,clkfreq) + dtime=dfloat(count1-count0)/dfloat(clkfreq) + if(dtime.lt.28.0) return + if(dtime.gt.1.d-6) fsample=(k-3456)/dtime + call date_and_time(values=itime) + sec=itime(7)+0.001*itime(8) + write(ctime,3000) itime(5)-itime(4)/60,itime(6),sec +3000 format(i2.2,':',i2.2,':',f6.3) + write(33,3033) ctime,dtime,ihsym,nstop,k,fsample +3033 format(a12,f12.6,2i7,i10,f15.3) + flush(33) + endif + k0=k + + return +end subroutine chk_samples diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 56c99f1a6..2a09e185e 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -178,6 +178,7 @@ extern "C" { void get_ft4msg_(int* idecode, char* line, int len); + void chk_samples_(int* m_ihsym,int* k, int* m_hsymStop); } int volatile itone[NUM_ISCAT_SYMBOLS]; //Audio tones for all Tx symbols @@ -1439,6 +1440,7 @@ void MainWindow::dataSink(qint64 frames) if(m_mode.startsWith("FST4")) npct=ui->sbNB->value(); symspec_(&dec_data,&k,&m_TRperiod,&nsps,&m_inGain,&bLowSidelobes,&nsmo,&m_px,s, &m_df3,&m_ihsym,&m_npts8,&m_pxmax,&npct); + chk_samples_(&m_ihsym,&k,&m_hsymStop); if(m_mode=="WSPR" or m_mode=="FST4W") wspr_downsample_(dec_data.d2,&k); if(m_ihsym <=0) return; if(ui) ui->signal_meter_widget->setValue(m_px,m_pxmax); // Update thermometer From 1892f39df37c7fb52a95792c7328c2e8b87caf75 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 10 Aug 2020 01:42:26 +0100 Subject: [PATCH 373/520] Revert "TEMPORARY: Diagnostic routine for the "Save All" missing files problem." This reverts commit b5765401dc26acb41dac905c91ae0b2b61f7cf85. --- lib/symspec.f90 | 32 -------------------------------- widgets/mainwindow.cpp | 2 -- 2 files changed, 34 deletions(-) diff --git a/lib/symspec.f90 b/lib/symspec.f90 index 64c88815e..a3bed192f 100644 --- a/lib/symspec.f90 +++ b/lib/symspec.f90 @@ -126,35 +126,3 @@ subroutine symspec(shared_data,k,TRperiod,nsps,ingain,bLowSidelobes, & return end subroutine symspec - -subroutine chk_samples(ihsym,k,nstop) - - integer*8 count0,count1,clkfreq - integer itime(8) - real*8 dtime,fsample - character*12 ctime - data count0/-1/,k0/99999999/,maxhsym/0/ - save count0,k0,maxhsym - - if(k.lt.k0 .or. count0.eq.-1) then - call system_clock(count0,clkfreq) - maxhsym=0 - endif - if((mod(ihsym,100).eq.0 .or. ihsym.ge.nstop-100) .and. & - k0.ne.99999999) then - call system_clock(count1,clkfreq) - dtime=dfloat(count1-count0)/dfloat(clkfreq) - if(dtime.lt.28.0) return - if(dtime.gt.1.d-6) fsample=(k-3456)/dtime - call date_and_time(values=itime) - sec=itime(7)+0.001*itime(8) - write(ctime,3000) itime(5)-itime(4)/60,itime(6),sec -3000 format(i2.2,':',i2.2,':',f6.3) - write(33,3033) ctime,dtime,ihsym,nstop,k,fsample -3033 format(a12,f12.6,2i7,i10,f15.3) - flush(33) - endif - k0=k - - return -end subroutine chk_samples diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 2a09e185e..56c99f1a6 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -178,7 +178,6 @@ extern "C" { void get_ft4msg_(int* idecode, char* line, int len); - void chk_samples_(int* m_ihsym,int* k, int* m_hsymStop); } int volatile itone[NUM_ISCAT_SYMBOLS]; //Audio tones for all Tx symbols @@ -1440,7 +1439,6 @@ void MainWindow::dataSink(qint64 frames) if(m_mode.startsWith("FST4")) npct=ui->sbNB->value(); symspec_(&dec_data,&k,&m_TRperiod,&nsps,&m_inGain,&bLowSidelobes,&nsmo,&m_px,s, &m_df3,&m_ihsym,&m_npts8,&m_pxmax,&npct); - chk_samples_(&m_ihsym,&k,&m_hsymStop); if(m_mode=="WSPR" or m_mode=="FST4W") wspr_downsample_(dec_data.d2,&k); if(m_ihsym <=0) return; if(ui) ui->signal_meter_widget->setValue(m_px,m_pxmax); // Update thermometer From ecde374cee29864f56da3942eaeb716a52949bc0 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 10 Aug 2020 11:01:38 +0100 Subject: [PATCH 374/520] Trying a fixed audio input buffer size --- Audio/soundin.cpp | 6 +++++- Detector/Detector.cpp | 8 ++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index a2856c255..8fede3524 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -81,11 +81,13 @@ void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, Audi qDebug () << "SoundIn default buffer size (bytes):" << m_stream->bufferSize (); m_stream->setBufferSize (m_stream->format ().bytesForFrames (framesPerBuffer)); + m_stream->setBufferSize (m_stream->format ().bytesForFrames (3456 * 4 * 5)); qDebug () << "SoundIn selected buffer size (bytes):" << m_stream->bufferSize (); if (sink->initialize (QIODevice::WriteOnly, channel)) { m_stream->start (sink); audioError (); + cummulative_lost_usec_ = -1; } else { @@ -159,7 +161,9 @@ void SoundInput::reset (bool report_dropped_frames) { if (m_stream) { - if (report_dropped_frames) + if (cummulative_lost_usec_ >= 0 // don't report first time as we + // don't yet known latency + && report_dropped_frames) { auto lost_usec = m_stream->elapsedUSecs () - m_stream->processedUSecs () - cummulative_lost_usec_; Q_EMIT dropped_frames (m_stream->format ().framesForDuration (lost_usec), lost_usec); diff --git a/Detector/Detector.cpp b/Detector/Detector.cpp index 06b9c6b2d..7feb5a298 100644 --- a/Detector/Detector.cpp +++ b/Detector/Detector.cpp @@ -56,6 +56,7 @@ void Detector::clear () qint64 Detector::writeData (char const * data, qint64 maxSize) { + qDebug () << "Detector::writeData: size:" << maxSize; static unsigned mstr0=999999; qint64 ms0 = QDateTime::currentMSecsSinceEpoch() % 86400000; unsigned mstr = ms0 % int(1000.0*m_period); // ms into the nominal Tx start time @@ -119,8 +120,7 @@ qint64 Detector::writeData (char const * data, qint64 maxSize) remaining -= numFramesProcessed; } - - - return maxSize; // we drop any data past the end of the buffer on - // the floor until the next period starts + // we drop any data past the end of the buffer on the floor until + // the next period starts + return maxSize; } From 0cf14dfcc9e3f3a6f353bda809c3f4d06ad27c91 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 11 Aug 2020 13:48:01 +0100 Subject: [PATCH 375/520] Remove user adjustable audio buffer sizes from Settings Fixed buffer sizes are used. Rx use s 3456 x 1st downsample rate x 5 audio frames of buffer space. On Windows this means that each chunk (periodSize()) delivered from the audio stream is our initial DSP processing chunk size, thus matching audio buffer latency exactly with WSJT-X's own front end latency. This should result in optimal resilience to high system loads that might starve the soundcard ADC of buffers to fill and case dropped audio frames. For Tx a buffer sufficient for 1 s of audio is used at present, on Windows the period size will be set to 1/40 of that which gives reasonably low latency and plenty of resilience to high system loads that might starve the soundcard DAC of audio frames to render. Note that a 1 s buffer will make the "Pwr" slider slow to respond, we may have to reduce the Tx audio buffer size if this is seen as a problem. --- Audio/soundin.cpp | 13 ++-- Audio/soundout.cpp | 19 ++---- Configuration.cpp | 27 -------- Configuration.hpp | 2 - Configuration.ui | 135 +++++++++++----------------------------- Detector/Detector.cpp | 2 +- Modulator/Modulator.cpp | 2 +- widgets/mainwindow.cpp | 40 ++++++++---- 8 files changed, 79 insertions(+), 161 deletions(-) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index 8fede3524..19c41f61b 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -79,15 +79,16 @@ void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, Audi connect (m_stream.data(), &QAudioInput::stateChanged, this, &SoundInput::handleStateChanged); - qDebug () << "SoundIn default buffer size (bytes):" << m_stream->bufferSize (); - m_stream->setBufferSize (m_stream->format ().bytesForFrames (framesPerBuffer)); - m_stream->setBufferSize (m_stream->format ().bytesForFrames (3456 * 4 * 5)); - qDebug () << "SoundIn selected buffer size (bytes):" << m_stream->bufferSize (); + //qDebug () << "SoundIn default buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); + // the Windows MME version of QAudioInput uses 1/5 of the buffer + // size for period size other platforms seem to optimize themselves + m_stream->setBufferSize (m_stream->format ().bytesForFrames (framesPerBuffer * 5)); if (sink->initialize (QIODevice::WriteOnly, channel)) { m_stream->start (sink); audioError (); cummulative_lost_usec_ = -1; + //qDebug () << "SoundIn selected buffer size (bytes):" << m_stream->bufferSize () << "peirod size:" << m_stream->periodSize (); } else { @@ -121,7 +122,7 @@ void SoundInput::resume () void SoundInput::handleStateChanged (QAudio::State newState) { - qDebug () << "SoundInput::handleStateChanged: newState:" << newState; + //qDebug () << "SoundInput::handleStateChanged: newState:" << newState; switch (newState) { @@ -167,7 +168,7 @@ void SoundInput::reset (bool report_dropped_frames) { auto lost_usec = m_stream->elapsedUSecs () - m_stream->processedUSecs () - cummulative_lost_usec_; Q_EMIT dropped_frames (m_stream->format ().framesForDuration (lost_usec), lost_usec); - qDebug () << "SoundInput::reset: frames dropped:" << m_stream->format ().framesForDuration (lost_usec) << "sec:" << lost_usec / 1.e6; + //qDebug () << "SoundInput::reset: frames dropped:" << m_stream->format ().framesForDuration (lost_usec) << "sec:" << lost_usec / 1.e6; } cummulative_lost_usec_ = m_stream->elapsedUSecs () - m_stream->processedUSecs (); } diff --git a/Audio/soundout.cpp b/Audio/soundout.cpp index ecd7ce723..71625a3f6 100644 --- a/Audio/soundout.cpp +++ b/Audio/soundout.cpp @@ -79,24 +79,17 @@ void SoundOutput::restart (QIODevice * source) { Q_ASSERT (m_stream); - // - // This buffer size is critical since for proper sound streaming. If - // it is too short; high activity levels on the machine can starve - // the audio buffer. On the other hand the Windows implementation - // seems to take the length of the buffer in time to stop the audio - // stream even if reset() is used. - // - // 2 seconds seems a reasonable compromise except for Windows - // where things are probably broken. - // // we have to set this before every start on the stream because the // Windows implementation seems to forget the buffer size after a // stop. - qDebug () << "SoundOut default buffer size (bytes):" << m_stream->bufferSize (); - m_stream->setBufferSize (m_stream->format().bytesForFrames (m_framesBuffered)); - qDebug () << "SoundOut selected buffer size (bytes):" << m_stream->bufferSize (); + //qDebug () << "SoundOut default buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); + if (m_framesBuffered) + { + m_stream->setBufferSize (m_stream->format().bytesForFrames (m_framesBuffered)); + } m_stream->setCategory ("production"); m_stream->start (source); + //qDebug () << "SoundOut selected buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); } void SoundOutput::suspend () diff --git a/Configuration.cpp b/Configuration.cpp index 2a09dad6a..9b7d99eaf 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -242,8 +242,6 @@ namespace // Magic numbers for file validation constexpr quint32 qrg_magic {0xadbccbdb}; constexpr quint32 qrg_version {100}; // M.mm - - constexpr int default_audio_buffer_size = 10; } @@ -648,10 +646,8 @@ private: QAudioDeviceInfo audio_input_device_; AudioDevice::Channel audio_input_channel_; - int audio_input_buffer_size_; QAudioDeviceInfo audio_output_device_; AudioDevice::Channel audio_output_channel_; - int audio_output_buffer_size_; friend class Configuration; }; @@ -681,10 +677,8 @@ bool Configuration::is_active () const {return m_->isVisible ();} QAudioDeviceInfo const& Configuration::audio_input_device () const {return m_->audio_input_device_;} AudioDevice::Channel Configuration::audio_input_channel () const {return m_->audio_input_channel_;} -int Configuration::audio_input_buffer_size () const {return m_->audio_input_buffer_size_ * 1024;} QAudioDeviceInfo const& Configuration::audio_output_device () const {return m_->audio_output_device_;} AudioDevice::Channel Configuration::audio_output_channel () const {return m_->audio_output_channel_;} -int Configuration::audio_output_buffer_size () const {return m_->audio_output_buffer_size_ * 1024;} bool Configuration::restart_audio_input () const {return m_->restart_sound_input_device_;} bool Configuration::restart_audio_output () const {return m_->restart_sound_output_device_;} auto Configuration::type_2_msg_gen () const -> Type2MsgGen {return m_->type_2_msg_gen_;} @@ -978,8 +972,6 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network , transceiver_command_number_ {0} , degrade_ {0.} // initialize to zero each run, not // saved in settings - , audio_input_buffer_size_ {default_audio_buffer_size} - , audio_output_buffer_size_ {default_audio_buffer_size} { ui_->setupUi (this); @@ -1242,9 +1234,7 @@ void Configuration::impl::initialize_models () update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); - ui_->audio_ip_buffer_spin_box->setValue (audio_input_buffer_size_); ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); - ui_->audio_op_buffer_spin_box->setValue (audio_output_buffer_size_); ui_->save_path_display_label->setText (save_directory_.absolutePath ()); ui_->azel_path_display_label->setText (azel_directory_.absolutePath ()); @@ -1430,10 +1420,6 @@ void Configuration::impl::read_settings () audio_input_channel_ = AudioDevice::fromString (settings_->value ("AudioInputChannel", "Mono").toString ()); audio_output_channel_ = AudioDevice::fromString (settings_->value ("AudioOutputChannel", "Mono").toString ()); - // retrieve audio buffer size values - audio_input_buffer_size_ = settings_->value ("AudioInputBufferSize", default_audio_buffer_size).toInt (); - audio_output_buffer_size_ = settings_->value ("AudioOutputBufferSize", default_audio_buffer_size).toInt (); - type_2_msg_gen_ = settings_->value ("Type2MsgGen", QVariant::fromValue (Configuration::type_2_msg_3_full)).value (); monitor_off_at_startup_ = settings_->value ("MonitorOFF", false).toBool (); @@ -1558,8 +1544,6 @@ void Configuration::impl::write_settings () settings_->setValue ("SoundOutName", audio_output_device_.deviceName ()); settings_->setValue ("AudioInputChannel", AudioDevice::toString (audio_input_channel_)); settings_->setValue ("AudioOutputChannel", AudioDevice::toString (audio_output_channel_)); - settings_->setValue ("AudioInputBufferSize", audio_input_buffer_size_); - settings_->setValue ("AudioOutputBufferSize", audio_output_buffer_size_); settings_->setValue ("Type2MsgGen", QVariant::fromValue (type_2_msg_gen_)); settings_->setValue ("MonitorOFF", monitor_off_at_startup_); settings_->setValue ("MonitorLastUsed", monitor_last_used_); @@ -1988,17 +1972,6 @@ void Configuration::impl::accept () } Q_ASSERT (audio_output_channel_ <= AudioDevice::Both); - if (audio_input_buffer_size_ != ui_->audio_ip_buffer_spin_box->value ()) - { - audio_input_buffer_size_ = ui_->audio_ip_buffer_spin_box->value (); - restart_sound_input_device_ = true; - } - if (audio_output_buffer_size_ != ui_->audio_op_buffer_spin_box->value ()) - { - audio_output_buffer_size_ = ui_->audio_op_buffer_spin_box->value (); - restart_sound_output_device_ = true; - } - my_callsign_ = ui_->callsign_line_edit->text (); my_grid_ = ui_->grid_line_edit->text (); FD_exchange_= ui_->Field_Day_Exchange->text ().toUpper (); diff --git a/Configuration.hpp b/Configuration.hpp index 3087ea855..882a78629 100644 --- a/Configuration.hpp +++ b/Configuration.hpp @@ -87,10 +87,8 @@ public: QAudioDeviceInfo const& audio_input_device () const; AudioDevice::Channel audio_input_channel () const; - int audio_input_buffer_size () const; QAudioDeviceInfo const& audio_output_device () const; AudioDevice::Channel audio_output_channel () const; - int audio_output_buffer_size () const; // These query methods should be used after a call to exec() to // determine if either the audio input or audio output stream diff --git a/Configuration.ui b/Configuration.ui index eaa68bf30..610bc85ad 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -6,8 +6,8 @@ 0 0 - 553 - 563 + 554 + 557 @@ -1349,31 +1349,14 @@ radio interface behave as expected. Soundcard - - - - Select the channel to use for receiving. + + + + Ou&tput: + + + sound_output_combo_box - - - Mono - - - - - Left - - - - - Right - - - - - Both - - @@ -1416,24 +1399,6 @@ both here. - - - - Audio output buffer size in kilo-frames - -Adjust for minimum dropped samples reported. Too low values are likely to cause dropped samples causing audio drop-outs. - - - k - - - 4 - - - 128 - - - @@ -1447,27 +1412,6 @@ Adjust for minimum dropped samples reported. Too low values are likely to cause - - - - Audio input buffer size in kilo-frames - -Adjust for minimum dropped samples reported. Too low values are likely to cause dropped samples causing audio drop-outs. - - - k - - - - - - 4 - - - 128 - - - @@ -1485,34 +1429,31 @@ transmitting periods. - - - - Ou&tput: - - - sound_output_combo_box - - - - - - - Buffer: - - - audio_ip_buffer_spin_box - - - - - - - Buffer: - - - audio_op_buffer_spin_box + + + + Select the channel to use for receiving. + + + Mono + + + + + Left + + + + + Right + + + + + Both + + @@ -3064,10 +3005,8 @@ Right click for insert and delete options. test_PTT_push_button sound_input_combo_box sound_input_channel_combo_box - audio_ip_buffer_spin_box sound_output_combo_box sound_output_channel_combo_box - audio_op_buffer_spin_box save_path_select_push_button azel_path_select_push_button checkBoxPwrBandTxMemory @@ -3194,13 +3133,13 @@ Right click for insert and delete options. - - - + - + + + diff --git a/Detector/Detector.cpp b/Detector/Detector.cpp index 7feb5a298..d70dd42ff 100644 --- a/Detector/Detector.cpp +++ b/Detector/Detector.cpp @@ -56,7 +56,7 @@ void Detector::clear () qint64 Detector::writeData (char const * data, qint64 maxSize) { - qDebug () << "Detector::writeData: size:" << maxSize; + //qDebug () << "Detector::writeData: size:" << maxSize; static unsigned mstr0=999999; qint64 ms0 = QDateTime::currentMSecsSinceEpoch() % 86400000; unsigned mstr = ms0 % int(1000.0*m_period); // ms into the nominal Tx start time diff --git a/Modulator/Modulator.cpp b/Modulator/Modulator.cpp index d43de8292..e99b21a46 100644 --- a/Modulator/Modulator.cpp +++ b/Modulator/Modulator.cpp @@ -142,7 +142,7 @@ void Modulator::close () qint64 Modulator::readData (char * data, qint64 maxSize) { - // qDebug () << "readData: maxSize:" << maxSize; + //qDebug () << "readData: maxSize:" << maxSize; double toneFrequency=1500.0; if(m_nsps==6) { diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 56c99f1a6..beadaadc8 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -209,6 +209,8 @@ namespace 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::max (); constexpr int N_WIDGETS {34}; + constexpr int rx_chunk_size {3456}; // audio samples at 12000 Hz + constexpr int tx_audio_buffer_size {48000}; // audio samples at 48000 Hz bool message_is_73 (int type, QStringList const& msg_parts) { @@ -474,7 +476,18 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect(m_soundInput, &SoundInput::error, this, &MainWindow::showSoundInError); // connect(m_soundInput, &SoundInput::status, this, &MainWindow::showStatusMessage); connect (m_soundInput, &SoundInput::dropped_frames, this, [this] (qint32 dropped_frames, qint64 usec) { - showStatusMessage (tr ("%1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6, 5, 'f', 3)); + if (dropped_frames > 4800) // 1/10 second + { + showStatusMessage (tr ("%1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6, 5, 'f', 3)); + } + if (dropped_frames > 24000) // 1/2 + // second + { + MessageBox::warning_message (this + , tr ("Audio Source") + , tr ("Excessive dropped samples") + , tr ("Reduce system load, or increase audio buffer size")); + } }); connect (&m_audioThread, &QThread::finished, m_soundInput, &QObject::deleteLater); @@ -942,14 +955,14 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, if (!m_config.audio_input_device ().isNull ()) { Q_EMIT startAudioInputStream (m_config.audio_input_device () - , m_config.audio_input_buffer_size () + , rx_chunk_size * m_downSampleFactor , m_detector, m_downSampleFactor, m_config.audio_input_channel ()); } if (!m_config.audio_output_device ().isNull ()) { Q_EMIT initializeAudioOutputStream (m_config.audio_output_device () , AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2 - , m_config.audio_output_buffer_size ()); + , tx_audio_buffer_size); } Q_EMIT transmitFrequency (ui->TxFreqSpinBox->value () - m_XIT); @@ -1628,14 +1641,15 @@ QString MainWindow::save_wave_file (QString const& name, short const * data, int format.setChannelCount (1); format.setSampleSize (16); format.setSampleType (QAudioFormat::SignedInt); - auto source = QString {"%1, %2"}.arg (my_callsign).arg (my_grid); - auto comment = QString {"Mode=%1%2, Freq=%3%4"} - .arg (mode) - .arg (QString {(mode.contains ('J') && !mode.contains ('+')) || mode.startsWith ("FST4") - ? QString {", Sub Mode="} + QChar {'A' + sub_mode} - : QString {}}) - .arg (Radio::frequency_MHz_string (frequency)) - .arg (QString {mode!="WSPR" ? QString {", DXCall=%1, DXGrid=%2"} + auto source = QString {"%1; %2"}.arg (my_callsign).arg (my_grid); + auto comment = QString {"Mode=%1%2; Freq=%3%4"} + .arg (mode) + .arg (QString {(mode.contains ('J') && !mode.contains ('+')) + || mode.startsWith ("FST4") || mode.startsWith ("QRA") + ? QString {"; Sub Mode="} + QString::number (int (samples / 12000)) + QChar {'A' + sub_mode} + : QString {}}) + .arg (Radio::frequency_MHz_string (frequency)) + .arg (QString {mode!="WSPR" ? QString {"; DXCall=%1; DXGrid=%2"} .arg (his_call) .arg (his_grid).toLocal8Bit () : ""}); BWFFile::InfoDictionary list_info { @@ -1814,7 +1828,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog if(m_config.restart_audio_input ()) { Q_EMIT startAudioInputStream (m_config.audio_input_device () - , m_config.audio_input_buffer_size () + , rx_chunk_size * m_downSampleFactor , m_detector, m_downSampleFactor , m_config.audio_input_channel ()); } @@ -1822,7 +1836,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog if(m_config.restart_audio_output ()) { Q_EMIT initializeAudioOutputStream (m_config.audio_output_device () , AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2 - , m_config.audio_output_buffer_size ()); + , tx_audio_buffer_size); } displayDialFrequency (); From 4f68dfda402aa6d40fbde3ee18fd4e535779e4d3 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 11 Aug 2020 14:27:46 +0100 Subject: [PATCH 376/520] Only tune audio buffer sizes on Windows --- Audio/soundin.cpp | 4 ++++ Audio/soundout.cpp | 2 ++ 2 files changed, 6 insertions(+) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index 19c41f61b..ad9e43444 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -82,7 +82,11 @@ void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, Audi //qDebug () << "SoundIn default buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); // the Windows MME version of QAudioInput uses 1/5 of the buffer // size for period size other platforms seem to optimize themselves +#if defined (Q_OS_WIN) m_stream->setBufferSize (m_stream->format ().bytesForFrames (framesPerBuffer * 5)); +#else + Q_UNUSED (framesPerBuffer); +#endif if (sink->initialize (QIODevice::WriteOnly, channel)) { m_stream->start (sink); diff --git a/Audio/soundout.cpp b/Audio/soundout.cpp index 71625a3f6..cda5fa333 100644 --- a/Audio/soundout.cpp +++ b/Audio/soundout.cpp @@ -85,7 +85,9 @@ void SoundOutput::restart (QIODevice * source) //qDebug () << "SoundOut default buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); if (m_framesBuffered) { +#if defined (Q_OS_WIN) m_stream->setBufferSize (m_stream->format().bytesForFrames (m_framesBuffered)); +#endif } m_stream->setCategory ("production"); m_stream->start (source); From 8e37dbd8c166878c5047eb24a98d1056474be8ee Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 11 Aug 2020 16:08:21 +0100 Subject: [PATCH 377/520] Increased threshold for status message and warning on dropped frames --- widgets/mainwindow.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index beadaadc8..b9025ad6a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -476,17 +476,16 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect(m_soundInput, &SoundInput::error, this, &MainWindow::showSoundInError); // connect(m_soundInput, &SoundInput::status, this, &MainWindow::showStatusMessage); connect (m_soundInput, &SoundInput::dropped_frames, this, [this] (qint32 dropped_frames, qint64 usec) { - if (dropped_frames > 4800) // 1/10 second + if (dropped_frames > 48000 / 5) // 1/5 second { showStatusMessage (tr ("%1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6, 5, 'f', 3)); } - if (dropped_frames > 24000) // 1/2 - // second + if (dropped_frames > 48000) // 1 second { MessageBox::warning_message (this , tr ("Audio Source") , tr ("Excessive dropped samples") - , tr ("Reduce system load, or increase audio buffer size")); + , tr ("Reduce system load")); } }); connect (&m_audioThread, &QThread::finished, m_soundInput, &QObject::deleteLater); From e27b09b5902ab5b87b1eae2b732d94cf8f72b781 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 11 Aug 2020 16:09:51 +0100 Subject: [PATCH 378/520] Revert Tx status widget on status bar to non-permanent placement --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index b9025ad6a..da27e66b1 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -2310,7 +2310,7 @@ void MainWindow::createStatusBar() //createStatusBar tx_status_label.setMinimumSize (QSize {100, 18}); tx_status_label.setStyleSheet ("QLabel{color: #000000; background-color: #00ff00}"); tx_status_label.setFrameStyle (QFrame::Panel | QFrame::Sunken); - statusBar()->addPermanentWidget (&tx_status_label); + statusBar()->addWidget (&tx_status_label); config_label.setAlignment (Qt::AlignHCenter); config_label.setMinimumSize (QSize {80, 18}); From 185f57013658530f6c39e7dcd891f89bc2c63550 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 11 Aug 2020 20:07:00 +0100 Subject: [PATCH 379/520] Avoid accessing shared memory after it has been deleted --- widgets/mainwindow.cpp | 114 +++++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 55 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index da27e66b1..c9d8d662a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3137,56 +3137,58 @@ void MainWindow::decode() //decode() //newdat=1 ==> this is new data, must do the big FFT //nagain=1 ==> decode only at fQSO +/- Tol - char *to = (char*)mem_jt9->data(); - char *from = (char*) dec_data.ipc; - int size=sizeof(struct dec_data); - if(dec_data.params.newdat==0) { - int noffset {offsetof (struct dec_data, params.nutc)}; - to += noffset; - from += noffset; - size -= noffset; - } - if(m_mode=="ISCAT" or m_mode=="MSK144" or m_bFast9) { - float t0=m_t0; - float t1=m_t1; - qApp->processEvents(); //Update the waterfall - if(m_nPick > 0) { - t0=m_t0Pick; - t1=m_t1Pick; + if (auto * to = reinterpret_cast (mem_jt9->data())) + { + char *from = (char*) dec_data.ipc; + int size=sizeof(struct dec_data); + if(dec_data.params.newdat==0) { + int noffset {offsetof (struct dec_data, params.nutc)}; + to += noffset; + from += noffset; + size -= noffset; + } + if(m_mode=="ISCAT" or m_mode=="MSK144" or m_bFast9) { + float t0=m_t0; + float t1=m_t1; + qApp->processEvents(); //Update the waterfall + if(m_nPick > 0) { + t0=m_t0Pick; + t1=m_t1Pick; + } + static short int d2b[360000]; + narg[0]=dec_data.params.nutc; + if(m_kdone>int(12000.0*m_TRperiod)) { + m_kdone=int(12000.0*m_TRperiod); + } + narg[1]=m_kdone; + narg[2]=m_nSubMode; + narg[3]=dec_data.params.newdat; + narg[4]=dec_data.params.minSync; + narg[5]=m_nPick; + narg[6]=1000.0*t0; + narg[7]=1000.0*t1; + narg[8]=2; //Max decode lines per decode attempt + if(dec_data.params.minSync<0) narg[8]=50; + if(m_mode=="ISCAT") narg[9]=101; //ISCAT + if(m_mode=="JT9") narg[9]=102; //Fast JT9 + if(m_mode=="MSK144") narg[9]=104; //MSK144 + narg[10]=ui->RxFreqSpinBox->value(); + narg[11]=ui->sbFtol->value (); + narg[12]=0; + narg[13]=-1; + narg[14]=m_config.aggressive(); + memcpy(d2b,dec_data.d2,2*360000); + watcher3.setFuture (QtConcurrent::run (std::bind (fast_decode_,&d2b[0], + &narg[0],&m_TRperiod,&m_msg[0][0], + dec_data.params.mycall,dec_data.params.hiscall,8000,12,12))); + } else { + mem_jt9->lock (); + memcpy(to, from, qMin(mem_jt9->size(), size)); + mem_jt9->unlock (); + to_jt9(m_ihsym,1,-1); //Send m_ihsym to jt9[.exe] and start decoding + decodeBusy(true); + } } - static short int d2b[360000]; - narg[0]=dec_data.params.nutc; - if(m_kdone>int(12000.0*m_TRperiod)) { - m_kdone=int(12000.0*m_TRperiod); - } - narg[1]=m_kdone; - narg[2]=m_nSubMode; - narg[3]=dec_data.params.newdat; - narg[4]=dec_data.params.minSync; - narg[5]=m_nPick; - narg[6]=1000.0*t0; - narg[7]=1000.0*t1; - narg[8]=2; //Max decode lines per decode attempt - if(dec_data.params.minSync<0) narg[8]=50; - if(m_mode=="ISCAT") narg[9]=101; //ISCAT - if(m_mode=="JT9") narg[9]=102; //Fast JT9 - if(m_mode=="MSK144") narg[9]=104; //MSK144 - narg[10]=ui->RxFreqSpinBox->value(); - narg[11]=ui->sbFtol->value (); - narg[12]=0; - narg[13]=-1; - narg[14]=m_config.aggressive(); - memcpy(d2b,dec_data.d2,2*360000); - watcher3.setFuture (QtConcurrent::run (std::bind (fast_decode_,&d2b[0], - &narg[0],&m_TRperiod,&m_msg[0][0], - dec_data.params.mycall,dec_data.params.hiscall,8000,12,12))); - } else { - mem_jt9->lock (); - memcpy(to, from, qMin(mem_jt9->size(), size)); - mem_jt9->unlock (); - to_jt9(m_ihsym,1,-1); //Send m_ihsym to jt9[.exe] and start decoding - decodeBusy(true); - } } void::MainWindow::fast_decode_done() @@ -3234,12 +3236,14 @@ void::MainWindow::fast_decode_done() void MainWindow::to_jt9(qint32 n, qint32 istart, qint32 idone) { - dec_data_t * dd = reinterpret_cast (mem_jt9->data()); - mem_jt9->lock (); - dd->ipc[0]=n; - if(istart>=0) dd->ipc[1]=istart; - if(idone>=0) dd->ipc[2]=idone; - mem_jt9->unlock (); + if (auto * dd = reinterpret_cast (mem_jt9->data())) + { + mem_jt9->lock (); + dd->ipc[0]=n; + if(istart>=0) dd->ipc[1]=istart; + if(idone>=0) dd->ipc[2]=idone; + mem_jt9->unlock (); + } } void MainWindow::decodeDone () From c06758007162a5874718249055d86523a0bcc889 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 11 Aug 2020 20:09:42 +0100 Subject: [PATCH 380/520] Performance optimization of frequencies and station info table views --- Configuration.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Configuration.cpp b/Configuration.cpp index 9b7d99eaf..0d45e2a7a 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -1124,7 +1124,9 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network ui_->frequencies_table_view->setModel (&next_frequencies_); ui_->frequencies_table_view->horizontalHeader ()->setSectionResizeMode (QHeaderView::ResizeToContents); + ui_->frequencies_table_view->horizontalHeader ()->setResizeContentsPrecision (0); ui_->frequencies_table_view->verticalHeader ()->setSectionResizeMode (QHeaderView::ResizeToContents); + ui_->frequencies_table_view->verticalHeader ()->setResizeContentsPrecision (0); ui_->frequencies_table_view->sortByColumn (FrequencyList_v2::frequency_column, Qt::AscendingOrder); ui_->frequencies_table_view->setColumnHidden (FrequencyList_v2::frequency_mhz_column, true); @@ -1164,7 +1166,9 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network stations_.sort (StationList::band_column); ui_->stations_table_view->setModel (&next_stations_); ui_->stations_table_view->horizontalHeader ()->setSectionResizeMode (QHeaderView::ResizeToContents); + ui_->stations_table_view->horizontalHeader ()->setResizeContentsPrecision (0); ui_->stations_table_view->verticalHeader ()->setSectionResizeMode (QHeaderView::ResizeToContents); + ui_->stations_table_view->verticalHeader ()->setResizeContentsPrecision (0); ui_->stations_table_view->sortByColumn (StationList::band_column, Qt::AscendingOrder); // stations delegates From e69226b29ac31e3e4d31a2d2a71cd0cf260d5511 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 12 Aug 2020 02:33:15 +0100 Subject: [PATCH 381/520] Avoid enumerating audio devices until absolutely necessary Enumerating audio devices with QAudioDeviceInfo::availableDevices() takes a long time on Linux with pulseaudio. This change only enumerates up to the selected device when configuring and only enumerates the whole list when the Settings->Audio tab is current. This change also warns with a message box when Tx is started with no audio output device configured. --- Audio/soundout.cpp | 6 +++- Configuration.cpp | 82 +++++++++++++++++++++++----------------------- 2 files changed, 46 insertions(+), 42 deletions(-) diff --git a/Audio/soundout.cpp b/Audio/soundout.cpp index cda5fa333..16a515370 100644 --- a/Audio/soundout.cpp +++ b/Audio/soundout.cpp @@ -77,7 +77,11 @@ void SoundOutput::setFormat (QAudioDeviceInfo const& device, unsigned channels, void SoundOutput::restart (QIODevice * source) { - Q_ASSERT (m_stream); + if (!m_stream) + { + Q_EMIT error (tr ("No audio output device configured.")); + return; + } // we have to set this before every start on the stream because the // Windows implementation seems to forget the buffer size after a diff --git a/Configuration.cpp b/Configuration.cpp index 0d45e2a7a..59be7f867 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -137,6 +137,8 @@ #include #include #include +#include +#include #include #include #include @@ -401,6 +403,7 @@ class Configuration::impl final public: using FrequencyDelta = Radio::FrequencyDelta; using port_type = Configuration::port_type; + using audio_info_type = QPair >; explicit impl (Configuration * self , QNetworkAccessManager * network_manager @@ -429,6 +432,7 @@ private: void read_settings (); void write_settings (); + Q_SLOT void lazy_models_load (int); void load_audio_devices (QAudio::Mode, QComboBox *, QAudioDeviceInfo *); void update_audio_channels (QComboBox const *, int, QComboBox *, bool); @@ -1094,6 +1098,7 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network // // setup hooks to keep audio channels aligned with devices // + connect (ui_->configuration_tabs, &QTabWidget::currentChanged, this, &Configuration::impl::lazy_models_load); { using namespace std; using namespace std::placeholders; @@ -1201,6 +1206,29 @@ Configuration::impl::~impl () write_settings (); } +void Configuration::impl::lazy_models_load (int current_tab_index) +{ + switch (current_tab_index) + { + case 2: // Audio + // + // load combo boxes with audio setup choices + // + load_audio_devices (QAudio::AudioInput, ui_->sound_input_combo_box, &audio_input_device_); + load_audio_devices (QAudio::AudioOutput, ui_->sound_output_combo_box, &audio_output_device_); + + update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); + update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); + + ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); + ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); + break; + + default: + break; + } +} + void Configuration::impl::initialize_models () { auto pal = ui_->callsign_line_edit->palette (); @@ -1225,21 +1253,6 @@ void Configuration::impl::initialize_models () ui_->sbBandwidth->setValue (RxBandwidth_); ui_->PTT_method_button_group->button (rig_params_.ptt_type)->setChecked (true); - // - // load combo boxes with audio setup choices - // - // - // load combo boxes with audio setup choices - // - load_audio_devices (QAudio::AudioInput, ui_->sound_input_combo_box, &audio_input_device_); - load_audio_devices (QAudio::AudioOutput, ui_->sound_output_combo_box, &audio_output_device_); - - update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); - update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); - - ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); - ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); - ui_->save_path_display_label->setText (save_directory_.absolutePath ()); ui_->azel_path_display_label->setText (azel_directory_.absolutePath ()); ui_->CW_id_after_73_check_box->setChecked (id_after_73_); @@ -1402,6 +1415,7 @@ void Configuration::impl::read_settings () if (p.deviceName () == saved_name) { audio_input_device_ = p; + break; } } } @@ -1416,6 +1430,7 @@ void Configuration::impl::read_settings () if (p.deviceName () == saved_name) { audio_output_device_ = p; + break; } } } @@ -1750,15 +1765,13 @@ void Configuration::impl::set_rig_invariants () bool Configuration::impl::validate () { - if (ui_->sound_input_combo_box->currentIndex () < 0 - && !QAudioDeviceInfo::availableDevices (QAudio::AudioInput).empty ()) + if (ui_->sound_input_combo_box->currentIndex () < 0) { MessageBox::critical_message (this, tr ("Invalid audio input device")); return false; } - if (ui_->sound_output_combo_box->currentIndex () < 0 - && !QAudioDeviceInfo::availableDevices (QAudio::AudioOutput).empty ()) + if (ui_->sound_output_combo_box->currentIndex () < 0) { MessageBox::warning_message (this, tr ("Invalid audio output device")); // don't reject as we can work without an audio output @@ -1931,33 +1944,19 @@ void Configuration::impl::accept () // Check to see whether SoundInThread must be restarted, // and save user parameters. { - auto const& device_name = ui_->sound_input_combo_box->currentText (); - if (device_name != audio_input_device_.deviceName ()) + auto const& selected_device = ui_->sound_input_combo_box->currentData ().value ().first; + if (selected_device != audio_input_device_) { - audio_input_device_ = QAudioDeviceInfo {}; - Q_FOREACH (auto const& d, QAudioDeviceInfo::availableDevices (QAudio::AudioInput)) - { - if (device_name == d.deviceName ()) - { - audio_input_device_ = d; - } - } + audio_input_device_ = selected_device; restart_sound_input_device_ = true; } } { - auto const& device_name = ui_->sound_output_combo_box->currentText (); - if (device_name != audio_output_device_.deviceName ()) + auto const& selected_device = ui_->sound_output_combo_box->currentData ().value ().first; + if (selected_device != audio_output_device_) { - audio_output_device_ = QAudioDeviceInfo {}; - Q_FOREACH (auto const& d, QAudioDeviceInfo::availableDevices (QAudio::AudioOutput)) - { - if (device_name == d.deviceName ()) - { - audio_output_device_ = d; - } - } + audio_output_device_ = selected_device; restart_sound_output_device_ = true; } } @@ -2776,7 +2775,7 @@ void Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * com auto scc = p.supportedChannelCounts (); copy (scc.cbegin (), scc.cend (), back_inserter (channel_counts)); - combo_box->addItem (p.deviceName (), channel_counts); + combo_box->addItem (p.deviceName (), QVariant::fromValue (audio_info_type {p, channel_counts})); if (p == *device) { current_index = combo_box->count () - 1; @@ -2794,7 +2793,8 @@ void Configuration::impl::update_audio_channels (QComboBox const * source_combo_ combo_box->setItemData (i, combo_box_item_disabled, Qt::UserRole - 1); } - Q_FOREACH (QVariant const& v, source_combo_box->itemData (index).toList ()) + Q_FOREACH (QVariant const& v + , (source_combo_box->itemData (index).value ().second)) { // enable valid options int n {v.toInt ()}; From 11abe7c60f9de3b17f6b8a027baee5fdf20f7f0b Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 13 Aug 2020 10:30:49 +0100 Subject: [PATCH 382/520] Cosmetic reformating --- Audio/AudioDevice.hpp | 52 +++++++++++++++++++++--------------------- widgets/mainwindow.cpp | 20 ++++++++-------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/Audio/AudioDevice.hpp b/Audio/AudioDevice.hpp index c4354687c..3ab19f0f4 100644 --- a/Audio/AudioDevice.hpp +++ b/Audio/AudioDevice.hpp @@ -43,23 +43,23 @@ protected: qint16 const * begin (reinterpret_cast (source)); for ( qint16 const * i = begin; i != begin + numFrames * (bytesPerFrame () / sizeof (qint16)); i += bytesPerFrame () / sizeof (qint16)) { - switch (m_channel) - { - case Mono: - *dest++ = *i; - break; + switch (m_channel) + { + case Mono: + *dest++ = *i; + break; - case Right: - *dest++ = *(i + 1); - break; + case Right: + *dest++ = *(i + 1); + break; - case Both: // should be able to happen but if it - // does we'll take left - Q_ASSERT (Both == m_channel); - case Left: - *dest++ = *i; - break; - } + case Both: // should be able to happen but if it + // does we'll take left + Q_ASSERT (Both == m_channel); + case Left: + *dest++ = *i; + break; + } } } @@ -68,23 +68,23 @@ protected: switch (m_channel) { case Mono: - *dest++ = sample; - break; + *dest++ = sample; + break; case Left: - *dest++ = sample; - *dest++ = 0; - break; + *dest++ = sample; + *dest++ = 0; + break; case Right: - *dest++ = 0; - *dest++ = sample; - break; + *dest++ = 0; + *dest++ = sample; + break; case Both: - *dest++ = sample; - *dest++ = sample; - break; + *dest++ = sample; + *dest++ = sample; + break; } return dest; } diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index c9d8d662a..ed6692fdb 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -484,8 +484,8 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, { MessageBox::warning_message (this , tr ("Audio Source") - , tr ("Excessive dropped samples") - , tr ("Reduce system load")); + , tr ("Reduce system load") + , tr ("Excessive dropped samples - %1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6, 5, 'f', 3)); } }); connect (&m_audioThread, &QThread::finished, m_soundInput, &QObject::deleteLater); @@ -2950,7 +2950,7 @@ void MainWindow::on_actionSpecial_mouse_commands_triggered() Click to set Rx frequency.
Shift-click to set Tx frequency.
Ctrl-click or Right-click to set Rx and Tx frequencies.
- Double-click to also decode at Rx frequency.
+ Double-click to also decode at Rx frequency.
@@ -2958,10 +2958,10 @@ void MainWindow::on_actionSpecial_mouse_commands_triggered() Double-click to copy second callsign to Dx Call,
locator to Dx Grid, change Rx and Tx frequency to
decoded signal's frequency, and generate standard
- messages.
- If Hold Tx Freq is checked or first callsign in message
- is your own call, Tx frequency is not changed unless
- Ctrl is held down.
+ messages.
+ If Hold Tx Freq is checked or first callsign in message
+ is your own call, Tx frequency is not changed unless
+ Ctrl is held down.
@@ -5270,11 +5270,11 @@ bool MainWindow::stdCall(QString const& w) { static QRegularExpression standard_call_re { R"( - ^\s* # optional leading spaces + ^\s* # optional leading spaces ( [A-Z]{0,2} | [A-Z][0-9] | [0-9][A-Z] ) # part 1 ( [0-9][A-Z]{0,3} ) # part 2 - (/R | /P)? # optional suffix - \s*$ # optional trailing spaces + (/R | /P)? # optional suffix + \s*$ # optional trailing spaces )", QRegularExpression::CaseInsensitiveOption | QRegularExpression::ExtendedPatternSyntaxOption}; return standard_call_re.match (w).hasMatch (); } From 7eb229ecdec0fd04e7656a0b25a55c0c86567f6e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 13 Aug 2020 10:31:23 +0100 Subject: [PATCH 383/520] Reduce Tx audio buffer size improve Pwr control granularity --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index ed6692fdb..d66b98788 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -210,7 +210,7 @@ namespace auto quint32_max = std::numeric_limits::max (); constexpr int N_WIDGETS {34}; constexpr int rx_chunk_size {3456}; // audio samples at 12000 Hz - constexpr int tx_audio_buffer_size {48000}; // audio samples at 48000 Hz + constexpr int tx_audio_buffer_size {48000 / 5}; // audio frames at 48000 Hz bool message_is_73 (int type, QStringList const& msg_parts) { From f7377e686f400126bb8e2a366bf8c304002738cf Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 14 Aug 2020 14:47:07 +0100 Subject: [PATCH 384/520] Move bundled cty.dat from resources FS to installation data dir This file is only used at start up so there is little point to keeping it in program memory. --- CMakeLists.txt | 2 +- logbook/AD1CCty.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b0931ace..be835a24d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -748,7 +748,6 @@ set (all_C_and_CXXSRCS ) set (TOP_LEVEL_RESOURCES - cty.dat icons/Darwin/wsjtx.iconset/icon_128x128.png contrib/gpl-v3-logo.svg artwork/splash.png @@ -1574,6 +1573,7 @@ install (FILES ) install (FILES + cty.dat contrib/Ephemeris/JPLEPH DESTINATION ${CMAKE_INSTALL_DATADIR}/${CMAKE_PROJECT_NAME} #COMPONENT runtime diff --git a/logbook/AD1CCty.cpp b/logbook/AD1CCty.cpp index 23d34fb43..4112ddfb3 100644 --- a/logbook/AD1CCty.cpp +++ b/logbook/AD1CCty.cpp @@ -319,12 +319,12 @@ AD1CCty::AD1CCty (Configuration const * configuration) { Q_ASSERT (configuration); // TODO: G4WJS - consider doing the following asynchronously to - // speed up startup. Not urgent as it takes less than 1s on a Core + // speed up startup. Not urgent as it takes less than 0.5s on a Core // i7 reading BIG CTY.DAT. QDir dataPath {QStandardPaths::writableLocation (QStandardPaths::DataLocation)}; m_->path_ = dataPath.exists (file_name) ? dataPath.absoluteFilePath (file_name) // user override - : QString {":/"} + file_name; // or original in the resources FS + : configuration->data_dir ().absoluteFilePath (file_name); // or original QFile file {m_->path_}; if (file.open (QFile::ReadOnly)) { From 7cc7687c90ab126057a323703093f159dab703a3 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 15 Aug 2020 02:45:25 +0100 Subject: [PATCH 385/520] Fix an off-by-one defect in WSPR random scheduling Scheduler now correctly honours 0% and 100% schedules an dno longer need special cases in UI code. --- WSPR/WSPRBandHopping.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WSPR/WSPRBandHopping.cpp b/WSPR/WSPRBandHopping.cpp index 84d09116d..cf7cc2f94 100644 --- a/WSPR/WSPRBandHopping.cpp +++ b/WSPR/WSPRBandHopping.cpp @@ -220,7 +220,7 @@ public: , carry_ {false} , seed_ {{rand (), rand (), rand (), rand (), rand (), rand (), rand (), rand ()}} , gen_ {seed_} - , dist_ {1, 100} + , dist_ {0, 99} { auto num_bands = configuration_->bands ()->rowCount (); for (auto& flags : bands_) From e17ad223ae7008443c6a1a012f77fb723c19074c Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 15 Aug 2020 02:57:23 +0100 Subject: [PATCH 386/520] Tx Next button enables automatic Tx Also a number of WSPR/FST4W code clean-ups including getting the Tx Next button to function as intended. --- widgets/mainwindow.cpp | 79 +++++++++++++++++------------------------- widgets/mainwindow.h | 2 -- widgets/mainwindow.ui | 15 ++++++-- 3 files changed, 44 insertions(+), 52 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index d66b98788..cbca7272b 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -285,7 +285,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_idleMinutes {0}, m_nSubMode {0}, m_nclearave {1}, - m_pctx {0}, m_nseq {0}, m_nWSPRdecodes {0}, m_k0 {9999999}, @@ -311,7 +310,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_bShMsgs {false}, m_bSWL {false}, m_uploading {false}, - m_txNext {false}, m_grid6 {false}, m_tuneup {false}, m_bTxTime {false}, @@ -996,7 +994,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, } m_saveDecoded=ui->actionSave_decoded->isChecked(); m_saveAll=ui->actionSave_all->isChecked(); - ui->sbTxPercent->setValue(m_pctx); ui->TxPowerComboBox->setCurrentIndex(int(.3 * m_dBm + .2)); ui->cbUploadWSPR_Spots->setChecked(m_uploadWSPRSpots); if((m_ndepth&7)==1) ui->actionQuickDecode->setChecked(true); @@ -1019,12 +1016,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_isort=-3; m_max_dB=70; m_CQtype="CQ"; - - if(m_mode=="WSPR" and m_pctx>0) { - QPalette palette {ui->sbTxPercent->palette ()}; - palette.setColor(QPalette::Base,Qt::yellow); - ui->sbTxPercent->setPalette(palette); - } fixStop(); VHF_features_enabled(m_config.enable_VHF_features()); m_wideGraph->setVHF(m_config.enable_VHF_features()); @@ -1168,7 +1159,7 @@ void MainWindow::writeSettings() m_settings->setValue("GUItab",ui->tabWidget->currentIndex()); m_settings->setValue("OutBufSize",outBufSize); m_settings->setValue ("HoldTxFreq", ui->cbHoldTxFreq->isChecked ()); - m_settings->setValue("PctTx",m_pctx); + m_settings->setValue("PctTx", ui->sbTxPercent->value ()); m_settings->setValue("dBm",m_dBm); m_settings->setValue("RR73",m_send_RR73); m_settings->setValue ("WSPRPreferType1", ui->WSPR_prefer_type_1_check_box->isChecked ()); @@ -1259,7 +1250,8 @@ void MainWindow::readSettings() ui->TxFreqSpinBox->setValue(0); // ensure a change is signaled ui->TxFreqSpinBox->setValue(m_settings->value("TxFreq",1500).toInt()); m_ndepth=m_settings->value("NDepth",3).toInt(); - m_pctx=m_settings->value("PctTx",20).toInt(); + ui->sbTxPercent->setValue (m_settings->value ("PctTx", 20).toInt ()); + on_sbTxPercent_valueChanged (ui->sbTxPercent->value ()); m_dBm=m_settings->value("dBm",37).toInt(); m_send_RR73=m_settings->value("RR73",false).toBool(); if(m_send_RR73) { @@ -1268,7 +1260,6 @@ void MainWindow::readSettings() } ui->WSPR_prefer_type_1_check_box->setChecked (m_settings->value ("WSPRPreferType1", true).toBool ()); m_uploadWSPRSpots=m_settings->value("UploadSpots",false).toBool(); - if(!m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet("QCheckBox{color: #000000; background-color: yellow}"); ui->cbNoOwnCall->setChecked(m_settings->value("NoOwnCall",false).toBool()); ui->band_hopping_group_box->setChecked (m_settings->value ("BandHopping", false).toBool()); // setup initial value of tx attenuator @@ -1937,18 +1928,14 @@ void MainWindow::on_autoButton_clicked (bool checked) m_nclearave=1; echocom_.nsum=0; } - if(m_mode=="WSPR" or m_mode=="FST4W") { - QPalette palette {ui->sbTxPercent->palette ()}; - if(m_auto or m_pctx==0) { - palette.setColor(QPalette::Base,Qt::white); - } else { - palette.setColor(QPalette::Base,Qt::yellow); - } - ui->sbTxPercent->setPalette(palette); - } m_tAutoOn=QDateTime::currentMSecsSinceEpoch()/1000; } +void MainWindow::on_sbTxPercent_valueChanged (int n) +{ + update_dynamic_property (ui->sbTxPercent, "notx", !n); +} + void MainWindow::auto_tx_mode (bool state) { ui->autoButton->setChecked (state); @@ -3753,16 +3740,11 @@ void MainWindow::guiUpdate() if(m_mode=="WSPR" or m_mode=="FST4W") { if(m_nseq==0 and m_ntr==0) { //Decide whether to Tx or Rx m_tuneup=false; //This is not an ATU tuneup - if(ui->sbTxPercent->isEnabled () && m_pctx==0) m_WSPR_tx_next = false; //Don't transmit if m_pctx=0 bool btx = m_auto && m_WSPR_tx_next; // To Tx, we need m_auto and // scheduled transmit - if(m_auto and m_txNext) btx=true; //TxNext button overrides - if(m_auto && ui->sbTxPercent->isEnabled () && m_pctx==100) btx=true; //Always transmit - if(btx) { m_ntr=-1; //This says we will have transmitted - m_txNext=false; - ui->pbTxNext->setChecked(false); + ui->pbTxNext->setChecked (false); m_bTxTime=true; //Start a WSPR or FST4W Tx sequence } else { // This will be a WSPR or FST4W Rx sequence. @@ -7210,14 +7192,15 @@ void MainWindow::handle_transceiver_update (Transceiver::TransceiverState const& { Transceiver::TransceiverState old_state {m_rigState}; //transmitDisplay (s.ptt ()); - if (s.ptt () && !m_rigState.ptt ()) { // safe to start audio + if (s.ptt () // && !m_rigState.ptt () + ) { // safe to start audio // (caveat - DX Lab Suite Commander) if (m_tx_when_ready && g_iptt) { // waiting to Tx and still needed int ms_delay=1000*m_config.txDelay(); if(m_mode=="FT4") ms_delay=20; ptt1Timer.start(ms_delay); //Start-of-transmission sequencer delay + m_tx_when_ready = false; } - m_tx_when_ready = false; } m_rigState = s; auto old_freqNominal = m_freqNominal; @@ -8104,17 +8087,18 @@ void MainWindow::uploadWSPRSpots (bool direct_post, QString const& decode_text) QString rfreq = QString("%1").arg((m_dialFreqRxWSPR + 1500) / 1e6, 0, 'f', 6); QString tfreq = QString("%1").arg((m_dialFreqRxWSPR + ui->TxFreqSpinBox->value()) / 1e6, 0, 'f', 6); + auto pct = QString::number (ui->autoButton->isChecked () ? ui->sbTxPercent->value () : 0); if (!direct_post) { wsprNet->upload (m_config.my_callsign (), m_config.my_grid (), rfreq, tfreq, - m_mode, m_TRperiod, QString::number (ui->autoButton->isChecked () ? m_pctx : 0), + m_mode, m_TRperiod, pct, QString::number (m_dBm), version (), m_config.writeable_data_dir ().absoluteFilePath ("wspr_spots.txt")); } else { wsprNet->post (m_config.my_callsign (), m_config.my_grid (), rfreq, tfreq, - m_mode, m_TRperiod, QString::number (ui->autoButton->isChecked () ? m_pctx : 0), + m_mode, m_TRperiod, pct, QString::number (m_dBm), version (), decode_text); } if (!decode_text.size ()) @@ -8140,24 +8124,9 @@ void MainWindow::on_TxPowerComboBox_currentIndexChanged(int index) m_dBm = ui->TxPowerComboBox->itemData (index).toInt (); } -void MainWindow::on_sbTxPercent_valueChanged(int n) -{ - m_pctx=n; - if(m_pctx>0) { - ui->pbTxNext->setEnabled(true); - } else { - m_txNext=false; - ui->pbTxNext->setChecked(false); - ui->pbTxNext->setEnabled(false); - } -} - void MainWindow::on_cbUploadWSPR_Spots_toggled(bool b) { m_uploadWSPRSpots=b; - if(m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet(""); - if(!m_uploadWSPRSpots) ui->cbUploadWSPR_Spots->setStyleSheet( - "QCheckBox{color: #000000; background-color: yellow}"); } void MainWindow::on_WSPRfreqSpinBox_valueChanged(int n) @@ -8167,11 +8136,21 @@ void MainWindow::on_WSPRfreqSpinBox_valueChanged(int n) void MainWindow::on_pbTxNext_clicked(bool b) { - m_txNext=b; + if (b && !ui->autoButton->isChecked ()) + { + m_WSPR_tx_next = false; // cancel any pending start from schedule + ui->autoButton->click (); // make sure Tx is possible + } } void MainWindow::WSPR_scheduling () { + if (ui->pbTxNext->isEnabled () && ui->pbTxNext->isChecked ()) + { + // Tx Next button overrides all scheduling + m_WSPR_tx_next = true; + return; + } QString t=ui->RoundRobin->currentText(); if(m_mode=="FST4W" and t != tr ("Random")) { bool ok; @@ -8184,10 +8163,14 @@ void MainWindow::WSPR_scheduling () int nsec=ms/1000; int ntr=m_TRperiod; int j=((nsec+ntr-1) % (n*ntr))/ntr; - m_WSPR_tx_next=(i==j); + m_WSPR_tx_next = i == j; return; } m_WSPR_tx_next = false; + if (!ui->sbTxPercent->isEnabled () || !ui->sbTxPercent->value ()) + { + return; // don't schedule if %age disabled or zero + } if (m_config.is_transceiver_online () // need working rig control for hopping && !m_config.is_dummy_rig () && ui->band_hopping_group_box->isChecked ()) { diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index a1673ec71..48cdf0c01 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -446,7 +446,6 @@ private: qint32 m_nclearave; qint32 m_minSync; qint32 m_dBm; - qint32 m_pctx; qint32 m_nseq; qint32 m_nWSPRdecodes; qint32 m_k0; @@ -505,7 +504,6 @@ private: bool m_bSWL; bool m_uploadWSPRSpots; bool m_uploading; - bool m_txNext; bool m_grid6; bool m_tuneup; bool m_bTxTime; diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index ece61762c..f16f26c42 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -2163,6 +2163,12 @@ list. The list can be maintained in Settings (F2). Percentage of minute sequences devoted to transmitting. + + QSpinBox:enabled[notx="true"] { + color: rgb(0, 0, 0); + background-color: rgb(255, 255, 0); +} + Qt::AlignCenter @@ -2346,6 +2352,12 @@ list. The list can be maintained in Settings (F2). Upload decoded messages to WSPRnet.org. + + QCheckBox:unchecked { + color: rgb(0, 0, 0); + background-color: rgb(255, 255, 0); +} + Upload spots @@ -2491,8 +2503,7 @@ list. The list can be maintained in Settings (F2). } QLabel[oob="true"] { background-color: red; -} - +} 14.078 000 From 45f28aff45b206811e777126bef6dc3fd1a9c933 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 15 Aug 2020 03:01:54 +0100 Subject: [PATCH 387/520] Updated cty.dat file - 4th Aug 2020 Big CTY --- cty.dat | 1609 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 814 insertions(+), 795 deletions(-) diff --git a/cty.dat b/cty.dat index 991e3c52a..db7d3ba98 100644 --- a/cty.dat +++ b/cty.dat @@ -118,7 +118,7 @@ West Malaysia: 28: 54: AS: 3.95: -102.23: -8.0: 9M2: 9M,9W,=9M0SEA,=9M6/PA0RRS/2,=9M6/ZS6EZ/2,=9M6XX/2,=9M6YBG/2,=9M8DX/2,=9M8SYA/2,=9W6KOM/2, =9W6MAN/2; East Malaysia: 28: 54: OC: 2.68: -113.32: -8.0: 9M6: - =9M4CKT/6,=9M4CRP/6,=9M9/7M2VPR,=9M9/CCL, + =9M4CAK,=9M4CKT/6,=9M4CRP/6,=9M9/7M2VPR,=9M9/CCL, 9M6,9W6,=9M1CSS,=9M2/G3TMA/6,=9M2/PG5M/6,=9M2/R6AF/6,=9M2GCN/6,=9M2MDX/6,=9M4ARD/6,=9M4CBP, =9M4CCB,=9M4CKT,=9M4CMY,=9M4CRB,=9M4CRP,=9M4CWS,=9M4GCW,=9M4LHS,=9M4LTW,=9M4SAB,=9M4SEB,=9M4SHQ, =9M4SJO,=9M4SJS,=9M4SJSA,=9M4SJSB,=9M4SJSD,=9M4SJSL,=9M4SJSM,=9M4SJSP,=9M4SJST,=9M4SJSW,=9M4SJX, @@ -546,7 +546,7 @@ Antarctica: 13: 74: SA: -90.00: 0.00: 0.0: CE9: =R1ANP(39)[69],=RI1ANC/A(39)[69],=RI1ANN(39)[69],=RI1ANP(39)[69],=RI1ANZ(39)[69],=RI63ANT(39)[69], =VU3BPZ/RI1(39)[69], =R1ANH(32)[72], - =RI1ANC(29)[70],=RI1ANC/P(29)[70],=RI1ANM(29)[70],=RI1ANV(29)[70], + =RI1ANC(29)[70],=RI1ANC/P(29)[70],=RI1ANV(29)[70], =SM/OH2FFP(38)[67], =EM1HO[73],=EM1KCC[73],=EM1KGG[73],=EM1KY[73],=EM1U[73],=EM1U/P[73],=EM1UA[73],=EM1UC[73], =KC4/VE0HSS(32),=VE0HSS/KC4(32), @@ -603,7 +603,7 @@ Bolivia: 10: 12: SA: -17.00: 65.00: 4.0: CP: CP7[14]; Portugal: 14: 37: EU: 39.50: 8.00: 0.0: CT: CQ,CR,CS,CT,=CR5FB/LH,=CR6L/LT,=CR6YLH/LT,=CS2HNI/LH,=CS5ARAM/LH,=CS5E/LH,=CT/DJ5AA/LH,=CT1BWW/LH, - =CT1GFK/LH,=CT1GPQ/LGT,=CT7/ON4LO/LH,=CT7/ON7RU/LH; + =CT1GFK/LH,=CT1GPQ/LGT,=CT7/ON4LO/LH,=CT7/ON7RU/LH,=VERSION; Madeira Islands: 33: 36: AF: 32.75: 16.95: 0.0: CT3: CQ2,CQ3,CQ9,CR3,CR9,CS3,CS9,CT3,CT9,=CT9500AEP/J; Azores: 14: 36: EU: 38.70: 27.23: 1.0: CU: @@ -637,20 +637,21 @@ Fed. Rep. of Germany: 14: 28: EU: 51.00: -10.00: -1.0: DL: =DF0VK/LH,=DF0WAT/LH,=DF0WFB/LH,=DF0WH/LGT,=DF0WLG/LH,=DF1AG/LH,=DF1HF/LH,=DF2BR/LH,=DF3LY/L, =DF5A/LH,=DF5FO/LH,=DF8AN/LGT,=DF8AN/LH,=DF8AN/P/LH,=DF9HG/LH,=DG0GF/LH,=DG3XA/LH,=DH0IPA/LH, =DH1DH/LH,=DH1DH/M/LH,=DH6RS/LH,=DH7RK/LH,=DH9JK/LH,=DH9UW/YL,=DJ0PJ/LH,=DJ2OC/LH,=DJ3XG/LH, - =DJ5AA/LH,=DJ7AO/LH,=DJ7MH/LH,=DJ8RH/LH,=DJ9QE/LH,=DK0DAN/LH,=DK0FC/LGT,=DK0FC/LH,=DK0IZ/LH, - =DK0KTL/LH,=DK0LWL/LH,=DK0OC/LH,=DK0PRE/LH,=DK0RA/LH,=DK0RBY/LH,=DK0RU/LH,=DK0RZ/LH,=DK3DUA/LH, - =DK3R/LH,=DK4DS/LH,=DK4MT/LT,=DK5AN/P/LH,=DK5T/LH,=DK5T/LS,=DL/HB9DQJ/LH,=DL0AWG/LH,=DL0BLA/LH, - =DL0BPS/LH,=DL0BUX/LGT,=DL0BUX/LH,=DL0CA/LH,=DL0CUX/LGT,=DL0CUX/LV,=DL0DAB/LH,=DL0EJ/LH,=DL0EL/LH, - =DL0EM/LGT,=DL0EM/LH,=DL0EO/LGT,=DL0EO/LH,=DL0FFF/LGT,=DL0FFF/LH,=DL0FFF/LS,=DL0FHD/LH,=DL0FL/FF, - =DL0HDF/LH,=DL0HGW/LGT,=DL0HGW/LH,=DL0HST/LH,=DL0II/LH,=DL0IOO/LH,=DL0IPA/LH,=DL0LGT/LH, - =DL0LNW/LH,=DL0MCM/LH,=DL0MFH/LGT,=DL0MFH/LH,=DL0MFK/LGT,=DL0MFK/LH,=DL0MFN/LH,=DL0MHR/LH, - =DL0NH/LH,=DL0OF/LH,=DL0PAS/LH,=DL0PBS/LH,=DL0PJ/LH,=DL0RSH/LH,=DL0RUG/LGT,=DL0RUG/LH,=DL0RWE/LH, - =DL0SH/LH,=DL0SY/LH,=DL0TO/LH,=DL0UEM/LH,=DL0VV/LH,=DL0YLM/LH,=DL1BSN/LH,=DL1DUT/LH,=DL1ELU/LH, - =DL1HZM/YL,=DL1SKK/LH,=DL2FCA/YL,=DL2RPS/LH,=DL3ANK/LH,=DL3JJ/LH,=DL3KWR/YL,=DL3KZA/LH,=DL3RNZ/LH, - =DL4ABB/LH,=DL5CX/LH,=DL5KUA/LH,=DL5SE/LH,=DL65DARC/LH,=DL6ABN/LH,=DL6AP/LH,=DL6KWN/LH,=DL7ANC/LH, - =DL7BMG/LH,=DL7MFK/LH,=DL7UVO/LH,=DL7VDX/LH,=DL8HK/YL,=DL8MTG/LH,=DL8TG/LH,=DL8TG/LV,=DL8UAA/FF, - =DL9CU/LH,=DL9NEI/ND2N,=DL9OE/LH,=DL9SEP/P/LH,=DM19ERZ/BB,=DM19ERZ/BEF,=DM19ERZ/BHF,=DM19ERZ/BP, - =DM19ERZ/BRB,=DM19ERZ/BS,=DM19ERZ/HAM,=DM19ERZ/HSD,=DM19ERZ/MAZ,=DM19ERZ/SG,=DM2C/LH,=DM3B/LH, + =DJ5AA/LH,=DJ7AO/LH,=DJ7MH/LH,=DJ8RH/LH,=DJ9QE/LH,=DK0DAN/LH,=DK0FC/LGT,=DK0FC/LH,=DK0GYB/LH, + =DK0IZ/LH,=DK0KTL/LH,=DK0LWL/LH,=DK0OC/LH,=DK0PRE/LH,=DK0RA/LH,=DK0RBY/LH,=DK0RU/LH,=DK0RZ/LH, + =DK3DUA/LH,=DK3R/LH,=DK4DS/LH,=DK4MT/LT,=DK5AN/P/LH,=DK5T/LH,=DK5T/LS,=DL/HB9DQJ/LH,=DL0AWG/LH, + =DL0BLA/LH,=DL0BPS/LH,=DL0BUX/LGT,=DL0BUX/LH,=DL0CA/LH,=DL0CUX/LGT,=DL0CUX/LV,=DL0DAB/LH, + =DL0EJ/LH,=DL0EL/LH,=DL0EM/LGT,=DL0EM/LH,=DL0EO/LGT,=DL0EO/LH,=DL0FFF/LGT,=DL0FFF/LH,=DL0FFF/LS, + =DL0FHD/LH,=DL0FL/FF,=DL0HDF/LH,=DL0HGW/LGT,=DL0HGW/LH,=DL0HST/LH,=DL0II/LH,=DL0IOO/LH,=DL0IPA/LH, + =DL0LGT/LH,=DL0LNW/LH,=DL0MCM/LH,=DL0MFH/LGT,=DL0MFH/LH,=DL0MFK/LGT,=DL0MFK/LH,=DL0MFN/LH, + =DL0MHR/LH,=DL0NH/LH,=DL0OF/LH,=DL0PAS/LH,=DL0PBS/LH,=DL0PJ/LH,=DL0RSH/LH,=DL0RUG/LGT,=DL0RUG/LH, + =DL0RWE/LH,=DL0SH/LH,=DL0SY/LH,=DL0TO/LH,=DL0UEM/LH,=DL0VV/LH,=DL0YLM/LH,=DL1BSN/LH,=DL1DUT/LH, + =DL1ELU/LH,=DL1HZM/YL,=DL1SKK/LH,=DL2FCA/YL,=DL2RPS/LH,=DL3ANK/LH,=DL3JJ/LH,=DL3KWR/YL,=DL3KZA/LH, + =DL3RNZ/LH,=DL4ABB/LH,=DL5CX/LH,=DL5KUA/LH,=DL5SE/LH,=DL65DARC/LH,=DL6ABN/LH,=DL6AP/LH,=DL6KWN/LH, + =DL7ANC/LH,=DL7BMG/LH,=DL7MFK/LH,=DL7UVO/LH,=DL7VDX/LH,=DL8HK/YL,=DL8MTG/LH,=DL8TG/LH,=DL8TG/LV, + =DL8UAA/FF,=DL9CU/LH,=DL9NEI/ND2N,=DL9OE/LH,=DL9SEP/P/LH,=DM19ERZ/BB,=DM19ERZ/BEF,=DM19ERZ/BHF, + =DM19ERZ/BL,=DM19ERZ/BP,=DM19ERZ/BRB,=DM19ERZ/BS,=DM19ERZ/BU,=DM19ERZ/HAM,=DM19ERZ/HSD, + =DM19ERZ/MAF,=DM19ERZ/MAZ,=DM19ERZ/MF,=DM19ERZ/MS,=DM19ERZ/SG,=DM19ERZ/VL,=DM2C/LH,=DM3B/LH, =DM3G/LH,=DM3KF/LH,=DM5C/LH,=DM5JBN/LH,=DN0AWG/LH,=DN4MB/LH,=DN8RLS/YL,=DO1EEW/YL,=DO1OMA/LH, =DO5MCL/LH,=DO5MCL/YL,=DO6KDS/LH,=DO6UVM/LH,=DO7DC/LH,=DO7RKL/LH,=DQ4M/LH,=DQ4M/LT,=DR100MF/LS, =DR3M/LH,=DR4W/FF,=DR4X/LH,=DR9Z/LH; @@ -677,10 +678,10 @@ Spain: 14: 37: EU: 40.37: 4.88: -1.0: EA: AM,AN,AO,EA,EB,EC,ED,EE,EF,EG,EH,=AM95WARD,=AN92EXPO,=EF6,=EG90IARU, =AM1TDH/LH,=EA1APV/LH,=EA1BEY/Y,=EA1EEY/L,=EA1EEY/LGT,=EA1EEY/LH,=EA1EK/ZAP,=EA1FGS/LH,=EA1HLW/YL, =EA1RCG/CPV,=EA1RCG/SEU,=EA1RCG/YOA,=EA1RCI/CA,=EA1RCI/CR,=EA1RCI/CVG,=EA1RCI/DAC,=EA1RCI/ESM, - =EA1RCI/IA,=EA1RCI/ICA,=EA1RCI/JBN,=EA1RCI/KD,=EA1RCI/PAZ,=EA1RCI/PCV,=EA1RCI/RSM,=EA1RCI/YOA, - =EA1URL/CVL,=EA1URO/D,=EA1URO/KD,=EA5AER/P,=EA6QB/1,=EA8BFH/1,=EA8CZT/1,=EA8FC/1,=EA8RV/P, - =EA9CD/1,=EA9CI/1,=EA9CP/1,=EA9PD/1,=EB1DH/LH,=ED1IRM/LH,=EG1ILW/LH,=EG1LWB/LH,=EG1LWC/LH, - =EG1LWI/LH,=EG1LWN/LH,=EG1TDH/LH,=EG90IARU/1, + =EA1RCI/IA,=EA1RCI/ICA,=EA1RCI/JBN,=EA1RCI/KD,=EA1RCI/PAZ,=EA1RCI/PCV,=EA1RCI/RCC,=EA1RCI/RSM, + =EA1RCI/YOA,=EA1RCP/NM,=EA1URL/CVL,=EA1URO/D,=EA1URO/KD,=EA5AER/P,=EA6QB/1,=EA8BFH/1,=EA8CZT/1, + =EA8FC/1,=EA8RV/P,=EA9CD/1,=EA9CI/1,=EA9CP/1,=EA9PD/1,=EB1DH/LH,=ED1IRM/LH,=EG1ILW/LH,=EG1LWB/LH, + =EG1LWC/LH,=EG1LWI/LH,=EG1LWN/LH,=EG1TDH/LH,=EG90IARU/1, =AM08ATU/H,=AM08CAZ/H,=AM08CYQ/H,=AM08EIE/Z,=AM08FAC/H,=AN08ADE/H,=AO08BQH/Z,=AO08BTM/Z, =AO08CIK/H,=AO08CVV/Z,=AO08CXK/H,=AO08CYL/H,=AO08DI/Z,=AO08EIE/Z,=AO08HV/Z,=AO08ICA/Z,=AO08ID/Z, =AO08KJ/Z,=AO08KV/Z,=AO08OK/H,=AO08PB/Z,=AO08RKO/H,=AO08VK/Z,=AO2016DSS/LH,=EA2/ON7RU/LH, @@ -692,8 +693,8 @@ Spain: 14: 37: EU: 40.37: 4.88: -1.0: EA: =EA5/ON4LO/LH,=EA5ADM/P,=EA5CC/P,=EA5EQ/N,=EA5EZ/P,=EA5FL/LH,=EA5GVT/AVW,=EA5HCC/P,=EA5IKT/P, =EA5KB/LH,=EA5ND/D,=EA5RCK/CDI,=EA5RKD/PAZ,=EA5TOM/AVW,=EA5URE/IVA,=EA5URE/P,=EA5URM/C,=EA5URM/F, =EA5URM/G,=EA5URM/H,=EA5URM/I,=EA5URM/L,=EA5URR/PAZ,=EA5URV/CAC,=EA5ZD/URE,=EA6AKN/5,=EA8BFH/5, - =EA8CWF/5,=EA9BLJ/5,=EA9CI/5,=EA9CP/5,=EA9PD/5,=EC5K/VIC,=ED5MFP/C,=ED5MFP/G,=ED5MFP/H,=ED5MFP/I, - =ED5MFP/K,=ED5MFP/Q,=ED5MFP/R,=ED5MFP/S,=ED5URD/LH,=EG5FOM/LH,=EG90IARU/5,=EH5FL/LH, + =EA8CWF/5,=EA9BLJ/5,=EA9CI/5,=EA9CP/5,=EA9PD/5,=EC5EA/VIC,=EC5K/VIC,=ED5MFP/C,=ED5MFP/G,=ED5MFP/H, + =ED5MFP/I,=ED5MFP/K,=ED5MFP/Q,=ED5MFP/R,=ED5MFP/S,=ED5URD/LH,=EG5FOM/LH,=EG90IARU/5,=EH5FL/LH, =AO7WRD/MA,=EA6SK/7,=EA7CFU/U,=EA7FC/FCJ,=EA7HZ/F,=EA7OBH/LH,=EA7URA/GET,=EA7URA/PAZ,=EA7URA/SG, =EA7URA/YOTA,=EA7URE/PAZ,=EA7URF/PAZ,=EA7URI/MDL,=EA7URJ/CPM,=EA7URL/FSV,=EA7URM/PAZ,=EA7URP/LAI, =EA9AA/7,=EA9CP/7,=EA9FN/7,=EA9HU,=EA9HU/7,=EA9JS/7,=EA9LZ/7,=EA9PD/7,=EA9QD/7,=EA9UL/7,=EA9UV/7, @@ -704,7 +705,7 @@ Balearic Islands: 14: 37: EU: 39.60: -2.95: -1.0: EA6: =EA5ADM/6,=EA5BB/6,=EA5BK/6,=EA5BTL/6,=EA5EOR/6,=EA5ER/6,=EA5EZ/6,=EA5FL/P,=EA5HCC/6,=EA5IIG/6, =EA5IKT/6,=EA5RKB/6,=EA6/DJ5AA/LH,=EA6/DJ7AO/LH,=EA6/G0SGB/LH,=EA6HP/J,=EA6LU/P,=EA6URI/PAZ, =EA6URL/IF,=EA7DUT/6,=EA9CI/6,=EA9CP/6,=EB1BRH/6,=EB2GKK/6,=EB3CW/6,=EC5AC/6,=EC5BME/6,=EC5EA/P, - =EC5EC/6,=EC6TV/N,=EC7AT/6,=ED4SHF/6,=ED5ON/6,=EH90IARU/6; + =EC5EC/6,=EC6TV/N,=EC7AT/6,=ED3T/6,=ED4SHF/6,=ED5ON/6,=EH90IARU/6; Canary Islands: 33: 36: AF: 28.32: 15.85: 0.0: EA8: AM8,AN8,AO8,EA8,EB8,EC8,ED8,EE8,EF8,EG8,EH8,=AM70URE/8,=AN400L,=AN400U,=AO150ITU/8,=AO150U, =AO4AAA/8,=AO5DXX/8,=EA1AK/8,=EA1AP/8,=EA1EHW/8,=EA1YO/8,=EA3RKB/8,=EA4BQ/8,=EA4ESI/8,=EA4SV/8, @@ -762,7 +763,7 @@ Guadeloupe: 08: 11: NA: 16.13: 61.67: 4.0: FG: Mayotte: 39: 53: AF: -12.88: -45.15: -3.0: FH: FH,=TO0X,=TO2FH,=TO2TT,=TO4M,=TO6OK,=TO7BC,=TO7RJ,=TO8MZ,=TX0P,=TX5M,=TX5NK,=TX7LX; St. Barthelemy: 08: 11: NA: 17.90: 62.83: 4.0: FJ: - FJ,=TO2D,=TO2EE,=TO2SP,=TO3A,=TO3J,=TO3X,=TO4K,=TO5DX,=TO5E,=TO5FJ,=TO5RZ,=TO7ZG,=TO8YY; + FJ,=TO0Z,=TO2D,=TO2EE,=TO2SP,=TO3A,=TO3J,=TO3X,=TO4K,=TO5DX,=TO5E,=TO5FJ,=TO5RZ,=TO7ZG,=TO8YY; New Caledonia: 32: 56: OC: -21.50: -165.50: -11.0: FK: FK,=FK8VHY/P,=T8HRC,=TX1A,=TX1B,=TX1CW,=TX3SAM,=TX4A,=TX5CW,=TX5FS,=TX8A,=TX8B,=TX8C,=TX8CW,=TX8D, =TX8F,=TX8JOTA,=TX8NC,=TX90IARU; @@ -770,7 +771,7 @@ Chesterfield Islands: 30: 56: OC: -19.87: -158.32: -11.0: FK/c: =FK8C/AA7JV,=FK8IK/C,=TX0AT,=TX0C,=TX0DX,=TX3A,=TX3X,=TX9; Martinique: 08: 11: NA: 14.70: 61.03: 4.0: FM: FM,=TO0O,=TO1BT,=TO1C,=TO1J,=TO1N,=TO1YR,=TO2M,=TO2MB,=TO3FM,=TO3GA,=TO3JA,=TO3M,=TO3T,=TO3W, - =TO40CDXC,=TO4A,=TO4C,=TO4FM,=TO4GU,=TO4IPA,=TO4OC,=TO4YL,=TO5A,=TO5AA,=TO5J,=TO5K,=TO5O,=TO5PX, + =TO40CDXC,=TO4A,=TO4C,=TO4FM,=TO4GU,=TO4IPA,=TO4OC,=TO4YL,=TO5A,=TO5AA,=TO5J,=TO5K,=TO5PX,=TO5T, =TO5U,=TO5W,=TO5X,=TO5Y,=TO6ABM,=TO6M,=TO7A,=TO7BP,=TO7HAM,=TO7X,=TO8A,=TO8M,=TO8T,=TO8Z, =TO90IARU,=TO972A,=TO972M,=TO9A,=TO9R; French Polynesia: 32: 63: OC: -17.65: 149.40: 10.0: FO: @@ -791,7 +792,7 @@ Marquesas Islands: 31: 63: OC: -8.92: 140.07: 9.5: FO/m: =FO/W6TLD,=FO0ELY,=FO0POM,=FO0TOH,=FO5QS/M,=FO8RZ/P,=K7ST/FO,=TX0SIX,=TX4PG,=TX5A,=TX5SPM,=TX5VT, =TX7EU,=TX7G,=TX7M,=TX7MB,=TX7T; St. Pierre & Miquelon: 05: 09: NA: 46.77: 56.20: 3.0: FP: - FP,=TO200SPM,=TO2U,=TO5FP,=TO5M,=TO5T,=TO80SP; + FP,=TO200SPM,=TO2U,=TO5FP,=TO5M,=TO80SP; Reunion Island: 39: 53: AF: -21.12: -55.48: -4.0: FR: FR,=TO019IEEE,=TO0FAR,=TO0MPB,=TO0R,=TO19A,=TO1PF,=TO1PF/P,=TO1TAAF,=TO2R,=TO2R/P,=TO2Z,=TO3R, =TO5R,=TO7CC,=TO7DL,=TO90R; @@ -815,7 +816,7 @@ Wallis & Futuna Islands: 32: 62: OC: -13.30: 176.20: -12.0: FW: French Guiana: 09: 12: SA: 4.00: 53.00: 3.0: FY: FY,=TO1A,=TO2A,=TO2BC,=TO5BR,=TO5G,=TO5NED,=TO7C,=TO7IR,=TO7R; England: 14: 27: EU: 52.77: 1.47: 0.0: G: - 2E,G,M,NHS,=2E0GWD/P/LH,=2MT,=2O0YYY/P,=2Q0XYL/P,=2Q0YYY/P,=2SZ,=G0IBN/LH,=G0IBN/LV,=G0IBN/P/LV, + 2E,G,M,=2E0GWD/P/LH,=2MT,=2O0YYY/P,=2Q0XYL/P,=2Q0YYY/P,=2SZ,=G0IBN/LH,=G0IBN/LV,=G0IBN/P/LV, =G0SGB/LH,=G0VML/LV,=G3PRC/LH,=G6HH/LH,=GB0BLL/LH,=GB0BMB/LH,=GB0HLH/LH,=GB0NCI/LH,=GB0PL/LH, =GB0SLH/LH,=GB0WPS/JOTA,=GB1PBL/LH,=GB2APL/LH,=GB2BML/LGT,=GB2BML/LH,=GB2LZL/LH,=GB2PLH/LH, =GB2SCA/LH,=GB2SJ/LH,=GB2SML/LH,=GB2SNM/MILL,=GB3HQ/YOTA,=GB4CWM/YL,=GB4LL/LH,=GB4WL/LH,=GB5PW/LH, @@ -840,27 +841,27 @@ Northern Ireland: 14: 27: EU: 54.73: 6.68: 0.0: GI: =GB106TBC,=GB150WCB,=GB16SW,=GB1918EKN,=GB19CGI,=GB19CNI,=GB1AFP,=GB1BPM,=GB1DDG,=GB1HSC,=GB1IMD, =GB1RM,=GB1ROC,=GB1SOS,=GB1SPD,=GB1SRI,=GB1UAS,=GB1WWC,=GB2AD,=GB2AD/P,=GB2AS,=GB2BCW,=GB2BDS, =GB2BOA,=GB2CA,=GB2CRU,=GB2DCI,=GB2DMR,=GB2DPC,=GB2IL,=GB2LL,=GB2LOL,=GB2MAC,=GB2MRI,=GB2PDY, - =GB2PP,=GB2PSW,=GB2REL,=GB2SDD,=GB2SPD,=GB2SPR,=GB2STI,=GB2STP,=GB2SW,=GB2UAS,=GB3NGI,=GB4CSC, - =GB4CTL,=GB4NHS,=GB4ONI,=GB4PS,=GB4SOS,=GB4SPD,=GB4UAS,=GB50AAD,=GB50CSC,=GB5BIG,=GB5BL,=GB5BL/LH, - =GB5DPR,=GB5NHS,=GB5OMU,=GB5SPD,=GB6EPC,=GB6SPD,=GB6VCB,=GB75VEC,=GB8BKY,=GB8BRM,=GB8DS,=GB8EGT, - =GB8GLM,=GB8NHS,=GB8ROC,=GB8SJA,=GB8SPD,=GB90RSGB/82,=GB90SOM,=GB9RAF,=GB9SPD,=GN0LIX/LH, - =GN4GTY/LH,=GO0AQD,=GO0BJH,=GO0DUP,=GO3KVD,=GO3MMF,=GO3SG,=GO4DOH,=GO4GID,=GO4GUH,=GO4LKG,=GO4NKB, - =GO4ONL,=GO4OYM,=GO4SRQ,=GO4SZW,=GO6MTL,=GO7AXB,=GO7KMC,=GO8YYM,=GQ0AQD,=GQ0BJG,=GQ0NCA,=GQ0RQK, - =GQ0TJV,=GQ0UVD,=GQ1CET,=GQ3KVD,=GQ3MMF,=GQ3SG,=GQ3UZJ,=GQ3XRQ,=GQ4DOH,=GQ4GID,=GQ4GUH,=GQ4JTF, - =GQ4LKG,=GQ4LXL,=GQ4NKB,=GQ4ONL,=GQ4OYM,=GQ4SZW,=GQ6JPO,=GQ6MTL,=GQ7AXB,=GQ7JYK,=GQ7KMC,=GQ8RQI, - =GQ8YYM,=GR0BJH,=GR0BRO,=GR0DVU,=GR0RQK,=GR0RWO,=GR0UVD,=GR1CET,=GR3GTR,=GR3KDR,=GR3SG,=GR3WEM, - =GR4AAM,=GR4DHW,=GR4DOH,=GR4FUE,=GR4FUM,=GR4GID,=GR4GOS,=GR4GUH,=GR4KQU,=GR4LXL,=GR4NKB,=GR6JPO, - =GR7AXB,=GR7KMC,=GR8RKC,=GR8RQI,=GR8YYM,=GV1BZT,=GV3KVD,=GV3SG,=GV4FUE,=GV4GUH,=GV4JTF,=GV4LXL, - =GV4SRQ,=GV4WVN,=GV7AXB,=GV7THH,=MI5AFK/2K,=MN0NID/LH,=MO0ALS,=MO0BDZ,=MO0CBH,=MO0IOU,=MO0IRZ, - =MO0JFC,=MO0JFC/P,=MO0JML,=MO0JST,=MO0KYE,=MO0LPO,=MO0MOD,=MO0MOD/P,=MO0MSR,=MO0MVP,=MO0RRE, - =MO0RUC,=MO0RYL,=MO0TGO,=MO0VAX,=MO0ZXZ,=MO3RLA,=MO6AOX,=MO6NIR,=MO6TUM,=MO6WAG,=MO6WDB,=MO6YDR, - =MQ0ALS,=MQ0BDZ,=MQ0BPB,=MQ0GGB,=MQ0IRZ,=MQ0JFC,=MQ0JST,=MQ0KAM,=MQ0KYE,=MQ0MOD,=MQ0MSR,=MQ0MVP, - =MQ0RMD,=MQ0RRE,=MQ0RUC,=MQ0RYL,=MQ0TGO,=MQ0VAX,=MQ0ZXZ,=MQ3GHW,=MQ3RLA,=MQ3STV,=MQ5AFK,=MQ6AOX, - =MQ6BJG,=MQ6GDN,=MQ6WAG,=MQ6WDB,=MQ6WGM,=MR0GDO,=MR0GGB,=MR0JFC,=MR0KQU,=MR0LPO,=MR0MOD,=MR0MSR, - =MR0MVP,=MR0RUC,=MR0SAI,=MR0SMK,=MR0TFK,=MR0TLG,=MR0TMW,=MR0VAX,=MR0WWB,=MR1CCU,=MR3RLA,=MR3TFF, - =MR3WHM,=MR5AMO,=MR6CCU,=MR6CWC,=MR6GDN,=MR6MME,=MR6MRJ,=MR6OKS,=MR6OLA,=MR6PUX,=MR6WAG,=MR6XGZ, - =MV0ALS,=MV0GGB,=MV0IOU,=MV0JFC,=MV0JLC,=MV0MOD,=MV0MSR,=MV0MVP,=MV0TGO,=MV0VAX,=MV0WGM,=MV0ZAO, - =MV1VOX,=MV6DTE,=MV6GTY,=MV6NIR,=MV6TLG; + =GB2PP,=GB2PSW,=GB2REL,=GB2SDD,=GB2SPD,=GB2SPR,=GB2STI,=GB2STP,=GB2SW,=GB2UAS,=GB3NGI,=GB4AFD, + =GB4CSC,=GB4CTL,=GB4NHS,=GB4ONI,=GB4PS,=GB4SOS,=GB4SPD,=GB4UAS,=GB50AAD,=GB50CSC,=GB5AFD,=GB5BIG, + =GB5BL,=GB5BL/LH,=GB5DPR,=GB5NHS,=GB5OMU,=GB5SPD,=GB6EPC,=GB6SPD,=GB6VCB,=GB75VEC,=GB8BKY,=GB8BRM, + =GB8DS,=GB8EGT,=GB8GLM,=GB8NHS,=GB8ROC,=GB8SJA,=GB8SPD,=GB90RSGB/82,=GB90SOM,=GB9AFD,=GB9LQV, + =GB9RAF,=GB9SPD,=GN0LIX/LH,=GN4GTY/LH,=GO0AQD,=GO0BJH,=GO0DUP,=GO3KVD,=GO3MMF,=GO3SG,=GO4DOH, + =GO4GID,=GO4GUH,=GO4LKG,=GO4NKB,=GO4ONL,=GO4OYM,=GO4SRQ,=GO4SZW,=GO6MTL,=GO7AXB,=GO7KMC,=GO8YYM, + =GQ0AQD,=GQ0BJG,=GQ0NCA,=GQ0RQK,=GQ0TJV,=GQ0UVD,=GQ1CET,=GQ3KVD,=GQ3MMF,=GQ3SG,=GQ3UZJ,=GQ3XRQ, + =GQ4DOH,=GQ4GID,=GQ4GUH,=GQ4JTF,=GQ4LKG,=GQ4LXL,=GQ4NKB,=GQ4ONL,=GQ4OYM,=GQ4SZW,=GQ6JPO,=GQ6MTL, + =GQ7AXB,=GQ7JYK,=GQ7KMC,=GQ8RQI,=GQ8YYM,=GR0BJH,=GR0BRO,=GR0DVU,=GR0RQK,=GR0RWO,=GR0UVD,=GR1CET, + =GR3GTR,=GR3KDR,=GR3SG,=GR3WEM,=GR4AAM,=GR4DHW,=GR4DOH,=GR4FUE,=GR4FUM,=GR4GID,=GR4GOS,=GR4GUH, + =GR4KQU,=GR4LXL,=GR4NKB,=GR6JPO,=GR7AXB,=GR7KMC,=GR8RKC,=GR8RQI,=GR8YYM,=GV1BZT,=GV3KVD,=GV3SG, + =GV4FUE,=GV4GUH,=GV4JTF,=GV4LXL,=GV4SRQ,=GV4WVN,=GV7AXB,=GV7THH,=MI5AFK/2K,=MN0NID/LH,=MO0ALS, + =MO0BDZ,=MO0CBH,=MO0IOU,=MO0IRZ,=MO0JFC,=MO0JFC/P,=MO0JML,=MO0JST,=MO0KYE,=MO0LPO,=MO0MOD, + =MO0MOD/P,=MO0MSR,=MO0MVP,=MO0RRE,=MO0RUC,=MO0RYL,=MO0TGO,=MO0VAX,=MO0ZXZ,=MO3RLA,=MO6AOX,=MO6NIR, + =MO6TUM,=MO6WAG,=MO6WDB,=MO6YDR,=MQ0ALS,=MQ0BDZ,=MQ0BPB,=MQ0GGB,=MQ0IRZ,=MQ0JFC,=MQ0JST,=MQ0KAM, + =MQ0KYE,=MQ0MOD,=MQ0MSR,=MQ0MVP,=MQ0RMD,=MQ0RRE,=MQ0RUC,=MQ0RYL,=MQ0TGO,=MQ0VAX,=MQ0ZXZ,=MQ3GHW, + =MQ3RLA,=MQ3STV,=MQ5AFK,=MQ6AOX,=MQ6BJG,=MQ6GDN,=MQ6WAG,=MQ6WDB,=MQ6WGM,=MR0GDO,=MR0GGB,=MR0JFC, + =MR0KQU,=MR0LPO,=MR0MOD,=MR0MSR,=MR0MVP,=MR0RUC,=MR0SAI,=MR0SMK,=MR0TFK,=MR0TLG,=MR0TMW,=MR0VAX, + =MR0WWB,=MR1CCU,=MR3RLA,=MR3TFF,=MR3WHM,=MR5AMO,=MR6CCU,=MR6CWC,=MR6GDN,=MR6MME,=MR6MRJ,=MR6OKS, + =MR6OLA,=MR6PUX,=MR6WAG,=MR6XGZ,=MV0ALS,=MV0GGB,=MV0IOU,=MV0JFC,=MV0JLC,=MV0MOD,=MV0MSR,=MV0MVP, + =MV0TGO,=MV0VAX,=MV0WGM,=MV0ZAO,=MV1VOX,=MV6DTE,=MV6GTY,=MV6NIR,=MV6TLG; Jersey: 14: 27: EU: 49.22: 2.18: 0.0: GJ: 2J,GH,GJ,MH,MJ,=2R0ODX,=GB0JSA,=GB19CJ,=GB2BYL,=GB2JSA,=GB50JSA,=GB5OJR,=GB8LMI,=GH5DX/NHS, =GJ3DVC/L,=GJ6WRI/LH,=GJ8PVL/LH,=GO8PVL,=GQ8PVL,=GR6TMM,=MO0ASP,=MQ0ASP,=MR0ASP,=MR0RZD,=MV0ASP; @@ -875,9 +876,9 @@ Shetland Islands: 14: 27: EU: 60.50: 1.50: 0.0: *GM/s: =GM6RQW,=GM6RTO,=GM6VZB,=GM6WVI,=GM6YQA,=GM7AFE,=GM7GWW,=GM7RKD,=GM8LNH,=GM8MMA,=GM8YEC,=GS0AAA, =GS0GRC,=GS3BSQ,=GS3ZET,=GS7V,=GS8YL,=MA0XAU,=MA1FJM,=MA6PTE,=MM/DJ6OZ,=MM/DL5KUA,=MM/OK1HDU, =MM/OK7U,=MM/PA9D,=MM/PF9DC,=MM/W5ZE/P,=MM0/DJ6AU,=MM0/PA8MO,=MM0ECG,=MM0KAL,=MM0LON,=MM0LON/M, - =MM0LSM,=MM0NQY,=MM0SHF/P,=MM0VIK,=MM0XAU,=MM0ZAL,=MM0ZCG,=MM0ZRC,=MM1FJM,=MM3VQO,=MM3ZET,=MM5PSL, - =MM5PSL/P,=MM5YLO,=MM5YLO/P,=MM6ACW,=MM6BDU,=MM6BZQ,=MM6IKB,=MM6IMB,=MM6MFA,=MM6PTE,=MM6SJK, - =MM6YLO,=MM6ZBG,=MM6ZDW,=MM8A,=MO5PSL,=MQ5PSL,=MR5PSL,=MS0OXE,=MS0ZCG,=MS0ZET; + =MM0LSM,=MM0NQY,=MM0SHF/P,=MM0VIK,=MM0XAU,=MM0ZAL,=MM0ZCG,=MM0ZRC,=MM1FEO,=MM1FJM,=MM3VQO,=MM3ZET, + =MM5PSL,=MM5PSL/P,=MM5YLO,=MM5YLO/P,=MM6ACW,=MM6BDU,=MM6BZQ,=MM6IKB,=MM6IMB,=MM6MFA,=MM6PTE, + =MM6SJK,=MM6YLO,=MM6ZBG,=MM6ZDW,=MM8A,=MO5PSL,=MQ5PSL,=MR5PSL,=MS0OXE,=MS0ZCG,=MS0ZET; Scotland: 14: 27: EU: 56.82: 4.18: 0.0: GM: 2A,2M,GM,GS,MA,MM,MS,=2O0BSE,=2O0BZB,=2O0HJS,=2O0IMP,=2O0IOB,=2O0IVG,=2O0LIM,=2O0LJM,=2O0TOK, =2O1MIC,=2O1SJB,=2Q0BSE,=2Q0BZB,=2Q0FYG,=2Q0HJS,=2Q0IMP,=2Q0IOB,=2Q0JOK,=2Q0LDO,=2Q0TAX,=2Q0TOK, @@ -885,74 +886,75 @@ Scotland: 14: 27: EU: 56.82: 4.18: 0.0: GM: =2R0IMP,=2R0IOB,=2R0ISM,=2R0JVR,=2R0KAU,=2R0KAU/P,=2R0NCM,=2R0OXX,=2R0YCG,=2R0ZPS,=2R1MIC,=2R1SJB, =2V0GUL,=2V0IVG,=2V0JCH,=2V0KAU,=2V0TAX,=2V1HFE,=2V1MIC,=2V1SJB,=G0FBJ,=GA6NX/LH,=GB0AYR,=GB0BAJ, =GB0BCG,=GB0BCK,=GB0BD,=GB0BDC,=GB0BL,=GB0BNA,=GB0BNC,=GB0BOC,=GB0BOL,=GB0BSS,=GB0BWT,=GB0CCF, - =GB0CHL,=GB0CLH,=GB0CML,=GB0CNL,=GB0CWF,=GB0CWS,=GB0DAM,=GB0DAW,=GB0DBS,=GB0DHL,=GB0DPK,=GB0EPC, - =GB0FFS,=GB0FSG,=GB0GDS,=GB0GDS/J,=GB0GGR,=GB0GRN,=GB0GTD,=GB0HHW,=GB0HLD,=GB0JOG,=GB0KEY,=GB0KGS, - =GB0KKS,=GB0KLT,=GB0LCS,=GB0LCW,=GB0LTM,=GB0MLH,=GB0MLM,=GB0MOD,=GB0MOG,=GB0MOL,=GB0MSL,=GB0MUL, - =GB0NGG,=GB0NHL,=GB0NHL/LH,=GB0NHS,=GB0NRL,=GB0OYT,=GB0PLS,=GB0POS,=GB0PPE,=GB0PSW,=GB0RGC, - =GB0SAA,=GB0SBC,=GB0SCD,=GB0SFM,=GB0SHP,=GB0SI,=GB0SK,=GB0SKG,=GB0SKY,=GB0SLB,=GB0SRC,=GB0SSB, - =GB0TH,=GB0THL,=GB0TNL,=GB0TTS,=GB0WRH,=GB100MAS,=GB100MUC,=GB100ZET,=GB10SP,=GB150NRL,=GB18FIFA, - =GB19CGM,=GB19CS,=GB1AJ,=GB1ASC,=GB1ASH,=GB1BD,=GB1BOL,=GB1CFL,=GB1COR,=GB1DHL,=GB1FB,=GB1FRS, - =GB1FVS,=GB1FVT,=GB1GEO,=GB1HRS,=GB1KGG,=GB1KLD,=GB1LAY,=GB1LGG,=GB1LL,=GB1MAY,=GB1NHL,=GB1OL, - =GB1OL/LH,=GB1PC,=GB1RB,=GB1RHU,=GB1SLH,=GB1TAY,=GB1WLG,=GB250RB,=GB2AES,=GB2AGG,=GB2AL,=GB2AMS, - =GB2AST,=GB2ATC,=GB2AYR,=GB2BAJ,=GB2BHM,=GB2BHS,=GB2BMJ,=GB2BOL,=GB2CAS,=GB2CHC,=GB2CM,=GB2CMA, - =GB2CVL,=GB2CWR,=GB2DAS,=GB2DAW,=GB2DHS,=GB2DL,=GB2DRC,=GB2DT,=GB2DTM,=GB2ELH,=GB2ELH/LH,=GB2EPC, - =GB2FBM,=GB2FEA,=GB2FSM,=GB2FSW,=GB2GEO,=GB2GKR,=GB2GNL,=GB2GNL/LH,=GB2GTM,=GB2GVC,=GB2HLB, - =GB2HMC,=GB2HRH,=GB2IGB,=GB2IGS,=GB2IMG,=GB2IMM,=GB2INV,=GB2IOT,=GB2JCM,=GB2KDR,=GB2KGB,=GB2KW, - =GB2LBN,=GB2LBN/LH,=GB2LCL,=GB2LCP,=GB2LCT,=GB2LDG,=GB2LG,=GB2LGB,=GB2LHI,=GB2LK,=GB2LK/LH, - =GB2LMG,=GB2LP,=GB2LS,=GB2LS/LH,=GB2LSS,=GB2LT,=GB2LT/LH,=GB2LXX,=GB2M,=GB2MAS,=GB2MBB,=GB2MDG, - =GB2MN,=GB2MOF,=GB2MSL,=GB2MUC,=GB2MUL,=GB2NBC,=GB2NEF,=GB2NL,=GB2NMM,=GB2OL,=GB2OWM,=GB2PBF, - =GB2PG,=GB2QM,=GB2RB,=GB2RDR,=GB2ROC,=GB2RRL,=GB2RWW,=GB2SAA,=GB2SAM,=GB2SAS,=GB2SB,=GB2SBG, - =GB2SHL/LH,=GB2SKG,=GB2SLH,=GB2SMM,=GB2SOH,=GB2SQN,=GB2SR,=GB2SSB,=GB2SUM,=GB2SWF,=GB2TDS,=GB2THL, - =GB2THL/LH,=GB2TNL,=GB2VCB,=GB2VEF,=GB2WAM,=GB2WBF,=GB2WG,=GB2WLS,=GB2YLS,=GB2ZE,=GB3ANG,=GB3GKR, - =GB3LER,=GB3LER/B,=GB3ORK,=GB3ORK/B,=GB3SWF,=GB3WOI,=GB4AAS,=GB4AST,=GB4BBR,=GB4BG,=GB4CGS, - =GB4CMA,=GB4DAS,=GB4DHX,=GB4DTD,=GB4DUK,=GB4EPC,=GB4FFS,=GB4GD,=GB4GDS,=GB4GS,=GB4IE,=GB4JCM, - =GB4JOA,=GB4JPJ,=GB4JYS,=GB4LER,=GB4MSE,=GB4NFE,=GB4PAS,=GB4SK,=GB4SKO,=GB4SLH,=GB4SMM,=GB4SRO, - =GB4SWF,=GB50FVS,=GB50GDS,=GB50GT,=GB50JS,=GB5AG,=GB5AST,=GB5BBS,=GB5BOH,=GB5C,=GB5CCC,=GB5CS, - =GB5CWL,=GB5DHL,=GB5DX,=GB5EMF,=GB5FHC,=GB5FLM,=GB5JS,=GB5LTH,=GB5RO,=GB5RO/LH,=GB5RR,=GB5SI, - =GB5TAM,=GB5TI,=GB60CRB,=GB6BEN,=GB6TAA,=GB6WW,=GB75CC,=GB75GD,=GB7SRW,=GB80GD,=GB8AYR,=GB8CSL, - =GB8FSG,=GB8RU,=GB8RUM,=GB90RSGB/11,=GB90RSGB/12,=GB90RSGB/21,=GB90RSGB/22,=GB90RSGB/23,=GB999SPC, - =GG100AGG,=GG100GA,=GG100GCC,=GG100GGP,=GG100GGR,=GG100GLD,=GG100SBG,=GM/DL5SE/LH,=GM0AZC/2K, - =GM0DHZ/P,=GM0GFL/P,=GM0KTO/2K,=GM0MUN/2K,=GM0SGB/M,=GM0SGB/P,=GM0WED/NHS,=GM0WUX/2K,=GM3JIJ/2K, - =GM3OFT/P,=GM3TKV/LH,=GM3TTC/P,=GM3TXF/P,=GM3USR/P,=GM3VLB/P,=GM3WFK/P,=GM3YDN/NHS,=GM4AFF/P, - =GM4CHX/2K,=GM4CHX/P,=GM4SQM/NHS,=GM4SQN/NHS,=GM4WSB/M,=GM4WSB/P,=GM4ZVD/P,=GM6JNJ/NHS,=GM6WRW/P, - =GO0AEG,=GO0AIR,=GO0BKC,=GO0DBW,=GO0DBW/M,=GO0DEQ,=GO0GMN,=GO0OGN,=GO0SYY,=GO0TUB,=GO0VRP,=GO0WEZ, - =GO1BAN,=GO1BKF,=GO1MQE,=GO1TBW,=GO2MP,=GO3HVK,=GO3JIJ,=GO3NIG,=GO3VTB,=GO4BLO,=GO4CAU,=GO4CFS, - =GO4CHX,=GO4CXM,=GO4DLG,=GO4EMX,=GO4FAM,=GO4FAU,=GO4JOJ,=GO4JPZ,=GO4JR,=GO4MOX,=GO4MSL,=GO4PRB, - =GO4UBJ,=GO4VTB,=GO4WZG,=GO4XQJ,=GO6JEP,=GO6JRX,=GO6KON,=GO6LYJ,=GO6VCV,=GO7GAX,=GO7GDE,=GO7HUD, - =GO7TUD,=GO7WEF,=GO8CBQ,=GO8MHU,=GO8SVB,=GO8TTD,=GQ0AEG,=GQ0AIR,=GQ0BKC,=GQ0BWR,=GQ0DBW,=GQ0DEQ, - =GQ0DUX,=GQ0FNE,=GQ0GMN,=GQ0HUO,=GQ0KWL,=GQ0MUN,=GQ0NTL,=GQ0OGN,=GQ0RNR,=GQ0TKV/P,=GQ0VRP,=GQ0WEZ, - =GQ0WNR,=GQ1BAN,=GQ1BKF,=GQ1MQE,=GQ1TBW,=GQ3JIJ,=GQ3JQJ,=GQ3NIG,=GQ3NTL,=GQ3TKP,=GQ3TKP/P,=GQ3TKV, - =GQ3TKV/P,=GQ3VTB,=GQ3WUX,=GQ3ZBE,=GQ4AGG,=GQ4BAE,=GQ4BLO,=GQ4CAU,=GQ4CFS,=GQ4CHX,=GQ4CHX/P, - =GQ4CXM,=GQ4DLG,=GQ4ELV,=GQ4EMX,=GQ4FAU,=GQ4JOJ,=GQ4JPZ,=GQ4JR,=GQ4MSL,=GQ4OBG,=GQ4PRB,=GQ4UIB, - =GQ4UPL,=GQ4VTB,=GQ4WZG,=GQ4XQJ,=GQ4YMM,=GQ6JEP,=GQ6JRX,=GQ6KON,=GQ6LYJ,=GQ7GAX,=GQ7GDE,=GQ7HUD, - =GQ7TUD,=GQ7UED,=GQ7WEF,=GQ8CBQ,=GQ8MHU,=GQ8PLR,=GQ8SVB,=GQ8TTD,=GR0AXY,=GR0CDV,=GR0DBW,=GR0EKM, - =GR0GMN,=GR0GRD,=GR0HPK,=GR0HPL,=GR0HUO,=GR0OGN,=GR0PNS,=GR0SYV,=GR0TTV,=GR0TUB,=GR0UKZ,=GR0VRP, - =GR0WED,=GR0WNR,=GR150NIB,=GR1BAN,=GR1MWK,=GR1TBW,=GR1ZIV,=GR3JFG,=GR3MZX,=GR3NIG,=GR3OFT,=GR3PPE, - =GR3PYU,=GR3VAL,=GR3VTB,=GR3WFJ,=GR3YXJ,=GR3ZDH,=GR4BDJ,=GR4BLO,=GR4CAU,=GR4CCN,=GR4CFS,=GR4CMI, - =GR4CXM,=GR4DLG,=GR4EMX,=GR4EOU,=GR4FQE,=GR4GIF,=GR4JOJ,=GR4NSZ,=GR4PRB,=GR4SQM,=GR4VTB,=GR4XAW, - =GR4XMD,=GR4XQJ,=GR4YMM,=GR6JEP,=GR6JNJ,=GR7AAJ,=GR7GAX,=GR7GDE,=GR7GMC,=GR7HHB,=GR7HUD,=GR7LNO, - =GR7NZI,=GR7TUD,=GR7USC,=GR7VSB,=GR8CBQ,=GR8KJO,=GR8KPH,=GR8MHU,=GR8OFQ,=GR8SVB,=GS4WAB/P,=GV0DBW, - =GV0GMN,=GV0GRD,=GV0LZE,=GV0OBX,=GV0OGN,=GV0SYV,=GV0VRP,=GV1BAN,=GV3EEW,=GV3JIJ,=GV3NHQ,=GV3NIG, - =GV3NKG,=GV3NNZ,=GV3PIP,=GV3ULP,=GV3VTB,=GV4BLO,=GV4EMX,=GV4HRJ,=GV4ILS,=GV4JOJ,=GV4KLN,=GV4LVW, - =GV4PRB,=GV4VTB,=GV4XQJ,=GV6KON,=GV7DHA,=GV7GDE,=GV7GMC,=GV8AVM,=GV8DPV,=GV8LYS,=MB18FIFA, - =MM/DH5JBR/P,=MM/DJ4OK/M,=MM/DJ8OK/M,=MM/DL5SE/LH,=MM/F5BLC/P,=MM/F5LMJ/P,=MM/HB9IAB/P, - =MM/KE5TF/P,=MM/N5ET/P,=MM/OK1FZM/P,=MM/W5ZE/P,=MM0BNN/LH,=MM0BQI/2K,=MM0BQN/2K,=MM0BYE/2K, - =MM0DFV/P,=MM0DHQ/NHS,=MM0LON/M,=MM0SHF/P,=MM0YHB/P,=MM0ZOL/LH,=MM3AWD/NHS,=MM3DDQ/NHS,=MM5PSL/P, - =MM5YLO/P,=MM7WAB/NHS,=MO0BFF,=MO0CWJ,=MO0CYR,=MO0DBC,=MO0DNX,=MO0FMF,=MO0GXQ,=MO0HZT,=MO0JST/P, - =MO0KJG,=MO0KSS,=MO0NFC,=MO0SGQ,=MO0SJT,=MO0TGB,=MO0TSG,=MO0WKC,=MO0XXW,=MO0ZBH,=MO1AWV,=MO1HMV, - =MO3BCA,=MO3BRR,=MO3GPL,=MO3OQR,=MO3TUP,=MO3UVL,=MO3YHA,=MO3YMU,=MO3ZRF,=MO5PSL,=MO6BJJ,=MO6CCS, - =MO6CHM,=MO6CRQ,=MO6CRQ/M,=MO6DGZ,=MO6HUT,=MO6KAU,=MO6KAU/M,=MO6KSJ,=MO6MCV,=MO6SRL,=MO6TEW, - =MQ0BNN/P,=MQ0BQM,=MQ0BRG,=MQ0CIN,=MQ0CXA,=MQ0CYR,=MQ0DNX,=MQ0DXD,=MQ0EQE,=MQ0FMF,=MQ0GXQ,=MQ0GYX, - =MQ0GYX/P,=MQ0KJG,=MQ0KSS,=MQ0LEN,=MQ0NFC,=MQ0NJC,=MQ0SJT,=MQ0TSG,=MQ0WKC,=MQ0XXW,=MQ0ZBH,=MQ1AWV, - =MQ1HMV,=MQ1JWF,=MQ3BCA,=MQ3BRR,=MQ3ERZ,=MQ3FET,=MQ3OVK,=MQ3SVK,=MQ3UIX,=MQ3UVL,=MQ3YHA,=MQ3YMU, - =MQ3ZRF,=MQ5PSL,=MQ6AQM,=MQ6BJJ,=MQ6CCS,=MQ6CHM,=MQ6CRQ,=MQ6DGZ,=MQ6HUT,=MQ6KAJ,=MQ6KAU,=MQ6KSJ, - =MQ6KUA,=MQ6LMP,=MQ6MCV,=MR0BQN,=MR0CWB,=MR0CXA,=MR0DHQ,=MR0DWF,=MR0DXD,=MR0DXH,=MR0EPC,=MR0EQE, - =MR0FME,=MR0FMF,=MR0GCF,=MR0GGG,=MR0GGI,=MR0GOR,=MR0HAI,=MR0HVU,=MR0OIL,=MR0POD,=MR0PSL,=MR0RDM, - =MR0SGQ,=MR0SJT,=MR0TAI,=MR0TSG,=MR0TSS,=MR0VTV,=MR0WEI,=MR0XAF,=MR0XXP,=MR0XXW,=MR1AWV,=MR1HMV, - =MR1JWF,=MR1VTB,=MR3AWA,=MR3AWD,=MR3BRR,=MR3PTS,=MR3UIX,=MR3UVL,=MR3WJZ,=MR3XGP,=MR3YHA,=MR3YPH, - =MR3ZCS,=MR5PSL,=MR6AHB,=MR6ARN,=MR6ATU,=MR6CHM,=MR6CTH,=MR6CTL,=MR6HFC,=MR6MCV,=MR6RLL,=MR6SSI, - =MR6TMS,=MV0DXH,=MV0FME,=MV0FMF,=MV0GHM,=MV0HAR,=MV0LGS,=MV0NFC,=MV0NJS,=MV0SGQ,=MV0SJT,=MV0XXW, - =MV1VTB,=MV3BRR,=MV3CVB,=MV3YHA,=MV3YMU,=MV5PSL,=MV6BJJ,=MV6KSJ,=MV6NRQ; + =GB0CHL,=GB0CLH,=GB0CML,=GB0CNL,=GB0CSL,=GB0CWF,=GB0CWS,=GB0DAM,=GB0DAW,=GB0DBS,=GB0DHL,=GB0DPK, + =GB0EPC,=GB0FFS,=GB0FSG,=GB0GDS,=GB0GDS/J,=GB0GGR,=GB0GRN,=GB0GTD,=GB0HHW,=GB0HLD,=GB0JOG,=GB0KEY, + =GB0KGS,=GB0KKS,=GB0KLT,=GB0LCS,=GB0LCW,=GB0LTM,=GB0MLH,=GB0MLM,=GB0MOD,=GB0MOG,=GB0MOL,=GB0MSL, + =GB0MUL,=GB0NGG,=GB0NHL,=GB0NHL/LH,=GB0NHS,=GB0NRL,=GB0OYT,=GB0PLS,=GB0POS,=GB0PPE,=GB0PSW, + =GB0RGC,=GB0SAA,=GB0SBC,=GB0SCD,=GB0SFM,=GB0SHP,=GB0SI,=GB0SK,=GB0SKG,=GB0SKY,=GB0SLB,=GB0SRC, + =GB0SSB,=GB0TH,=GB0THL,=GB0TNL,=GB0TTS,=GB0WRH,=GB100MAS,=GB100MUC,=GB100ZET,=GB10SP,=GB150NRL, + =GB18FIFA,=GB19CGM,=GB19CS,=GB1AJ,=GB1ASC,=GB1ASH,=GB1BD,=GB1BOL,=GB1CFL,=GB1COR,=GB1DHL,=GB1FB, + =GB1FRS,=GB1FVS,=GB1FVT,=GB1GEO,=GB1GND,=GB1HRS,=GB1KGG,=GB1KLD,=GB1LAY,=GB1LGG,=GB1LL,=GB1MAY, + =GB1NHL,=GB1OL,=GB1OL/LH,=GB1PC,=GB1RB,=GB1RHU,=GB1RST,=GB1SLH,=GB1TAY,=GB1WLG,=GB250RB,=GB2AES, + =GB2AGG,=GB2AL,=GB2AMS,=GB2AST,=GB2ATC,=GB2AYR,=GB2BAJ,=GB2BHM,=GB2BHS,=GB2BMJ,=GB2BOL,=GB2CAS, + =GB2CHC,=GB2CM,=GB2CMA,=GB2CVL,=GB2CWR,=GB2DAS,=GB2DAW,=GB2DHS,=GB2DL,=GB2DRC,=GB2DT,=GB2DTM, + =GB2ELH,=GB2ELH/LH,=GB2EPC,=GB2FBM,=GB2FEA,=GB2FSM,=GB2FSW,=GB2GEO,=GB2GKR,=GB2GNL,=GB2GNL/LH, + =GB2GTM,=GB2GVC,=GB2HLB,=GB2HMC,=GB2HRH,=GB2IGB,=GB2IGS,=GB2IMG,=GB2IMM,=GB2INV,=GB2IOT,=GB2JCM, + =GB2KDR,=GB2KGB,=GB2KW,=GB2LBN,=GB2LBN/LH,=GB2LCL,=GB2LCP,=GB2LCT,=GB2LDG,=GB2LG,=GB2LGB,=GB2LHI, + =GB2LK,=GB2LK/LH,=GB2LMG,=GB2LP,=GB2LS,=GB2LS/LH,=GB2LSS,=GB2LT,=GB2LT/LH,=GB2LXX,=GB2M,=GB2MAS, + =GB2MBB,=GB2MDG,=GB2MN,=GB2MOF,=GB2MSL,=GB2MUC,=GB2MUL,=GB2NBC,=GB2NEF,=GB2NL,=GB2NMM,=GB2OL, + =GB2OWM,=GB2PBF,=GB2PG,=GB2QM,=GB2RB,=GB2RDR,=GB2ROC,=GB2RRL,=GB2RWW,=GB2SAA,=GB2SAM,=GB2SAS, + =GB2SB,=GB2SBG,=GB2SHL/LH,=GB2SKG,=GB2SLH,=GB2SMM,=GB2SOH,=GB2SQN,=GB2SR,=GB2SSB,=GB2SUM,=GB2SWF, + =GB2TDS,=GB2THL,=GB2THL/LH,=GB2TNL,=GB2VCB,=GB2VEF,=GB2WAM,=GB2WBF,=GB2WG,=GB2WLS,=GB2YLS,=GB2ZE, + =GB3ANG,=GB3GKR,=GB3LER,=GB3LER/B,=GB3ORK,=GB3ORK/B,=GB3SWF,=GB3WOI,=GB4AAS,=GB4AST,=GB4BBR, + =GB4BG,=GB4CGS,=GB4CMA,=GB4DAS,=GB4DHX,=GB4DTD,=GB4DUK,=GB4EPC,=GB4FFS,=GB4GD,=GB4GDS,=GB4GS, + =GB4IE,=GB4JCM,=GB4JOA,=GB4JPJ,=GB4JYS,=GB4LER,=GB4MSE,=GB4NFE,=GB4PAS,=GB4SK,=GB4SKO,=GB4SLH, + =GB4SMM,=GB4SRO,=GB4SWF,=GB50FVS,=GB50GDS,=GB50GT,=GB50JS,=GB5AG,=GB5AST,=GB5BBS,=GB5BOH,=GB5C, + =GB5CCC,=GB5CS,=GB5CWL,=GB5DHL,=GB5DX,=GB5EMF,=GB5FHC,=GB5FLM,=GB5JS,=GB5LTH,=GB5RO,=GB5RO/LH, + =GB5RR,=GB5SI,=GB5TAM,=GB5TI,=GB60CRB,=GB6BEN,=GB6TAA,=GB6WW,=GB75CC,=GB75GD,=GB7SRW,=GB80GD, + =GB8AYR,=GB8CSL,=GB8FSG,=GB8RU,=GB8RUM,=GB90RSGB/11,=GB90RSGB/12,=GB90RSGB/21,=GB90RSGB/22, + =GB90RSGB/23,=GB999SPC,=GB9UL,=GG100AGG,=GG100GA,=GG100GCC,=GG100GGP,=GG100GGR,=GG100GLD, + =GG100SBG,=GM/DL5SE/LH,=GM0AZC/2K,=GM0DHZ/P,=GM0GFL/P,=GM0KTO/2K,=GM0MUN/2K,=GM0SGB/M,=GM0SGB/P, + =GM0WED/NHS,=GM0WUX/2K,=GM3JIJ/2K,=GM3OFT/P,=GM3TKV/LH,=GM3TTC/P,=GM3TXF/P,=GM3USR/P,=GM3VLB/P, + =GM3WFK/P,=GM3YDN/NHS,=GM4AFF/P,=GM4CHX/2K,=GM4CHX/P,=GM4SQM/NHS,=GM4SQN/NHS,=GM4WSB/M,=GM4WSB/P, + =GM4ZVD/P,=GM6JNJ/NHS,=GM6WRW/P,=GO0AEG,=GO0AIR,=GO0BKC,=GO0DBW,=GO0DBW/M,=GO0DEQ,=GO0GMN,=GO0OGN, + =GO0SYY,=GO0TUB,=GO0VRP,=GO0WEZ,=GO1BAN,=GO1BKF,=GO1MQE,=GO1TBW,=GO2MP,=GO3HVK,=GO3JIJ,=GO3NIG, + =GO3VTB,=GO4BLO,=GO4CAU,=GO4CFS,=GO4CHX,=GO4CXM,=GO4DLG,=GO4EMX,=GO4FAM,=GO4FAU,=GO4JOJ,=GO4JPZ, + =GO4JR,=GO4MOX,=GO4MSL,=GO4PRB,=GO4UBJ,=GO4VTB,=GO4WZG,=GO4XQJ,=GO6JEP,=GO6JRX,=GO6KON,=GO6LYJ, + =GO6VCV,=GO7GAX,=GO7GDE,=GO7HUD,=GO7TUD,=GO7WEF,=GO8CBQ,=GO8MHU,=GO8SVB,=GO8TTD,=GQ0AEG,=GQ0AIR, + =GQ0BKC,=GQ0BWR,=GQ0DBW,=GQ0DEQ,=GQ0DUX,=GQ0FNE,=GQ0GMN,=GQ0HUO,=GQ0KWL,=GQ0MUN,=GQ0NTL,=GQ0OGN, + =GQ0RNR,=GQ0TKV/P,=GQ0VRP,=GQ0WEZ,=GQ0WNR,=GQ1BAN,=GQ1BKF,=GQ1MQE,=GQ1TBW,=GQ3JIJ,=GQ3JQJ,=GQ3NIG, + =GQ3NTL,=GQ3TKP,=GQ3TKP/P,=GQ3TKV,=GQ3TKV/P,=GQ3VTB,=GQ3WUX,=GQ3ZBE,=GQ4AGG,=GQ4BAE,=GQ4BLO, + =GQ4CAU,=GQ4CFS,=GQ4CHX,=GQ4CHX/P,=GQ4CXM,=GQ4DLG,=GQ4ELV,=GQ4EMX,=GQ4FAU,=GQ4JOJ,=GQ4JPZ,=GQ4JR, + =GQ4MSL,=GQ4OBG,=GQ4PRB,=GQ4UIB,=GQ4UPL,=GQ4VTB,=GQ4WZG,=GQ4XQJ,=GQ4YMM,=GQ6JEP,=GQ6JRX,=GQ6KON, + =GQ6LYJ,=GQ7GAX,=GQ7GDE,=GQ7HUD,=GQ7TUD,=GQ7UED,=GQ7WEF,=GQ8CBQ,=GQ8MHU,=GQ8PLR,=GQ8SVB,=GQ8TTD, + =GR0AXY,=GR0CDV,=GR0DBW,=GR0EKM,=GR0GMN,=GR0GRD,=GR0HPK,=GR0HPL,=GR0HUO,=GR0OGN,=GR0PNS,=GR0SYV, + =GR0TTV,=GR0TUB,=GR0UKZ,=GR0VRP,=GR0WED,=GR0WNR,=GR150NIB,=GR1BAN,=GR1MWK,=GR1TBW,=GR1ZIV,=GR3JFG, + =GR3MZX,=GR3NIG,=GR3OFT,=GR3PPE,=GR3PYU,=GR3VAL,=GR3VTB,=GR3WFJ,=GR3YXJ,=GR3ZDH,=GR4BDJ,=GR4BLO, + =GR4CAU,=GR4CCN,=GR4CFS,=GR4CMI,=GR4CXM,=GR4DLG,=GR4EMX,=GR4EOU,=GR4FQE,=GR4GIF,=GR4JOJ,=GR4NSZ, + =GR4PRB,=GR4SQM,=GR4VTB,=GR4XAW,=GR4XMD,=GR4XQJ,=GR4YMM,=GR6JEP,=GR6JNJ,=GR7AAJ,=GR7GAX,=GR7GDE, + =GR7GMC,=GR7HHB,=GR7HUD,=GR7LNO,=GR7NZI,=GR7TUD,=GR7USC,=GR7VSB,=GR8CBQ,=GR8KJO,=GR8KPH,=GR8MHU, + =GR8OFQ,=GR8SVB,=GS4WAB/P,=GV0DBW,=GV0GMN,=GV0GRD,=GV0LZE,=GV0OBX,=GV0OGN,=GV0SYV,=GV0VRP,=GV1BAN, + =GV3EEW,=GV3JIJ,=GV3NHQ,=GV3NIG,=GV3NKG,=GV3NNZ,=GV3PIP,=GV3ULP,=GV3VTB,=GV4BLO,=GV4EMX,=GV4HRJ, + =GV4ILS,=GV4JOJ,=GV4KLN,=GV4LVW,=GV4PRB,=GV4VTB,=GV4XQJ,=GV6KON,=GV7DHA,=GV7GDE,=GV7GMC,=GV8AVM, + =GV8DPV,=GV8LYS,=MB18FIFA,=MM/DH5JBR/P,=MM/DJ4OK/M,=MM/DJ8OK/M,=MM/DL5SE/LH,=MM/F5BLC/P, + =MM/F5LMJ/P,=MM/HB9IAB/P,=MM/KE5TF/P,=MM/N5ET/P,=MM/OK1FZM/P,=MM/W5ZE/P,=MM0BNN/LH,=MM0BQI/2K, + =MM0BQN/2K,=MM0BYE/2K,=MM0DFV/P,=MM0DHQ/NHS,=MM0LON/M,=MM0SHF/P,=MM0YHB/P,=MM0ZOL/LH,=MM3AWD/NHS, + =MM3DDQ/NHS,=MM5PSL/P,=MM5YLO/P,=MM7WAB/NHS,=MO0BFF,=MO0CWJ,=MO0CYR,=MO0DBC,=MO0DNX,=MO0FMF, + =MO0GXQ,=MO0HZT,=MO0JST/P,=MO0KJG,=MO0KSS,=MO0NFC,=MO0SGQ,=MO0SJT,=MO0TGB,=MO0TSG,=MO0WKC,=MO0XXW, + =MO0ZBH,=MO1AWV,=MO1HMV,=MO3BCA,=MO3BRR,=MO3GPL,=MO3OQR,=MO3TUP,=MO3UVL,=MO3YHA,=MO3YMU,=MO3ZCB/P, + =MO3ZRF,=MO5PSL,=MO6BJJ,=MO6CCS,=MO6CHM,=MO6CRQ,=MO6CRQ/M,=MO6DGZ,=MO6HUT,=MO6KAU,=MO6KAU/M, + =MO6KSJ,=MO6MCV,=MO6SRL,=MO6TEW,=MQ0BNN/P,=MQ0BQM,=MQ0BRG,=MQ0CIN,=MQ0CXA,=MQ0CYR,=MQ0DNX,=MQ0DXD, + =MQ0EQE,=MQ0FMF,=MQ0GXQ,=MQ0GYX,=MQ0GYX/P,=MQ0KJG,=MQ0KSS,=MQ0LEN,=MQ0NFC,=MQ0NJC,=MQ0SJT,=MQ0TSG, + =MQ0WKC,=MQ0XXW,=MQ0ZBH,=MQ1AWV,=MQ1HMV,=MQ1JWF,=MQ3BCA,=MQ3BRR,=MQ3ERZ,=MQ3FET,=MQ3OVK,=MQ3SVK, + =MQ3UIX,=MQ3UVL,=MQ3YHA,=MQ3YMU,=MQ3ZRF,=MQ5PSL,=MQ6AQM,=MQ6BJJ,=MQ6CCS,=MQ6CHM,=MQ6CRQ,=MQ6DGZ, + =MQ6HUT,=MQ6KAJ,=MQ6KAU,=MQ6KSJ,=MQ6KUA,=MQ6LMP,=MQ6MCV,=MR0BQN,=MR0CWB,=MR0CXA,=MR0DHQ,=MR0DWF, + =MR0DXD,=MR0DXH,=MR0EPC,=MR0EQE,=MR0FME,=MR0FMF,=MR0GCF,=MR0GGG,=MR0GGI,=MR0GOR,=MR0HAI,=MR0HVU, + =MR0OIL,=MR0POD,=MR0PSL,=MR0RDM,=MR0SGQ,=MR0SJT,=MR0TAI,=MR0TSG,=MR0TSS,=MR0VTV,=MR0WEI,=MR0XAF, + =MR0XXP,=MR0XXW,=MR1AWV,=MR1HMV,=MR1JWF,=MR1VTB,=MR3AWA,=MR3AWD,=MR3BRR,=MR3PTS,=MR3UIX,=MR3UVL, + =MR3WJZ,=MR3XGP,=MR3YHA,=MR3YPH,=MR3ZCS,=MR5PSL,=MR6AHB,=MR6ARN,=MR6ATU,=MR6CHM,=MR6CTH,=MR6CTL, + =MR6HFC,=MR6MCV,=MR6RLL,=MR6SSI,=MR6TMS,=MV0DXH,=MV0FME,=MV0FMF,=MV0GHM,=MV0HAR,=MV0LGS,=MV0NFC, + =MV0NJS,=MV0SGQ,=MV0SJT,=MV0XXW,=MV1VTB,=MV3BRR,=MV3CVB,=MV3YHA,=MV3YMU,=MV5PSL,=MV6BJJ,=MV6KSJ, + =MV6NRQ; Guernsey: 14: 27: EU: 49.45: 2.58: 0.0: GU: 2U,GP,GU,MP,MU,=2O0FER,=2Q0ARE,=2Q0FER,=2U0ARE/2K,=GB0HAM,=GB0SRK,=GB0U,=GB19CG,=GB2AFG,=GB2FG, =GB2GU,=GB2JTA,=GB4SGG,=GB50GSY,=GO8FBO,=GQ8FBO,=GU0DXX/2K,=GU4GG/2K,=MO0FAL,=MO0KWD,=MQ0FAL, @@ -967,63 +969,63 @@ Wales: 14: 27: EU: 52.28: 3.73: 0.0: GW: =GB0BRE,=GB0BTB,=GB0BVL,=GB0BYL,=GB0CAC,=GB0CCE,=GB0CEW,=GB0CFD,=GB0CGG,=GB0CLC,=GB0CQD,=GB0CSA, =GB0CSR,=GB0CTK,=GB0CVA,=GB0DFD,=GB0DMT,=GB0DS,=GB0DVP,=GB0EUL,=GB0FHD,=GB0FHI,=GB0GDD,=GB0GIG, =GB0GIW,=GB0GLV,=GB0GMD,=GB0GRM,=GB0HEL,=GB0HGC,=GB0HLT,=GB0HMM,=GB0HMT,=GB0KF,=GB0L,=GB0LBG, - =GB0LM,=GB0LVF,=GB0MFH,=GB0MIW,=GB0ML,=GB0MPA,=GB0MSB,=GB0MUU,=GB0MWL,=GB0NAW,=GB0NEW,=GB0NG, - =GB0NLC,=GB0PBR,=GB0PEM,=GB0PGG,=GB0PLB,=GB0PLL,=GB0PSG,=GB0RME,=GB0ROC,=GB0RPO,=GB0RS,=GB0RSC, - =GB0RSF,=GB0RWM,=GB0SCB,=GB0SDD,=GB0SGC,=GB0SH,=GB0SH/LH,=GB0SOA,=GB0SPE,=GB0SPS,=GB0TD,=GB0TL, - =GB0TPR,=GB0TS,=GB0TTT,=GB0VCA,=GB0VEE,=GB0VK,=GB0WHH,=GB0WHR,=GB0WIW,=GB0WUL,=GB0YG,=GB100AB, - =GB100BP,=GB100CSW,=GB100GGC,=GB100GGM,=GB100HD,=GB100LB,=GB100LSG,=GB100MCV,=GB100TMD,=GB10SOTA, - =GB19CGW,=GB19CW,=GB19SG,=GB1AD,=GB1ATC,=GB1BAF,=GB1BGS,=GB1BPL,=GB1BSW,=GB1BW,=GB1CCC,=GB1CDS, - =GB1CPG,=GB1DS,=GB1FHS,=GB1HAS,=GB1HTW,=GB1JC,=GB1KEY,=GB1LSG,=GB1LW,=GB1OOC,=GB1PCA,=GB1PCS, - =GB1PD,=GB1PGW,=GB1PJ,=GB1PLL,=GB1SDD,=GB1SEA,=GB1SL,=GB1SPN,=GB1SSL,=GB1TDS,=GB1WAA,=GB1WIW, - =GB1WSM,=GB2000SET,=GB2003SET,=GB200HNT,=GB200TT,=GB250TMB,=GB250TT,=GB2ADU,=GB2BEF,=GB2BGG, - =GB2BOM,=GB2BOW,=GB2BPM,=GB2BYF,=GB2CC,=GB2CI,=GB2COB,=GB2CR,=GB2CRS,=GB2DWR,=GB2EI,=GB2FC, - =GB2FLB,=GB2GGM,=GB2GLS,=GB2GOL,=GB2GSG,=GB2GVA,=GB2HDG,=GB2HMM,=GB2IMD,=GB2LBR,=GB2LM,=GB2LNP, - =GB2LSA,=GB2LSA/LH,=GB2LSH,=GB2MD,=GB2MGY,=GB2MIL,=GB2MLM,=GB2MMC,=GB2MOP,=GB2NF,=GB2NPH,=GB2NPL, - =GB2OOA,=GB2ORM,=GB2PRC,=GB2RFS,=GB2RSG,=GB2RTB,=GB2SAC,=GB2SCC,=GB2SCD,=GB2SCP,=GB2SFM,=GB2SIP, - =GB2SLA,=GB2TD,=GB2TD/LH,=GB2TTA,=GB2VK,=GB2WAA,=GB2WHO,=GB2WNA,=GB2WSF,=GB2WT,=GB3HLS,=GB3LMW, - =GB4ADU,=GB4AFS,=GB4AOS,=GB4BB,=GB4BIT,=GB4BOJ,=GB4BPL,=GB4BPL/LH,=GB4BPL/P,=GB4BPR,=GB4BRS/P, - =GB4BSG,=GB4CI,=GB4CTC,=GB4EUL,=GB4FAA,=GB4GM,=GB4GSS,=GB4HFH,=GB4HI,=GB4HLB,=GB4HMD,=GB4HMM, - =GB4LRG,=GB4MBC,=GB4MD,=GB4MDH,=GB4MDI,=GB4MJS,=GB4MPI,=GB4MUU,=GB4NDG,=GB4NPL,=GB4NTB,=GB4ON, - =GB4OST,=GB4PAT,=GB4PCS,=GB4PD,=GB4POW,=GB4RC,=GB4RME,=GB4RSL,=GB4SDD,=GB4SLC,=GB4SSP,=GB4SUB, - =GB4TMS,=GB4UKG,=GB4VJD,=GB4WT,=GB4WWI,=GB4XT,=GB50ABS,=GB50EVS,=GB50RSC,=GB50SGP,=GB5AC,=GB5FI, - =GB5GEO,=GB5MD,=GB5ONG,=GB5PSJ,=GB5SIP,=GB5VEP,=GB5WT,=GB60DITP,=GB60ER,=GB60PW,=GB60SPS,=GB60VLY, - =GB65BTF,=GB6AC,=GB6BLB,=GB6CRI,=GB6GGM,=GB6OQA,=GB6ORA,=GB6PLB,=GB6RNLI,=GB6TS,=GB6TSG,=GB6WT, - =GB6WWT,=GB70BTF,=GB750CC,=GB75ATC,=GB75BB,=GB8CCC,=GB8HI,=GB8MD,=GB8MG,=GB8ND,=GB8OAE,=GB8OQE, - =GB8RAF,=GB8WOW,=GB8WT,=GB90RSGB/62,=GB90RSGB/72,=GB9GGM,=GC4BRS/LH,=GG100ACD,=GG100ANG,=GG100CPG, - =GG100RGG,=GG100SG,=GO0DIV,=GO0EZQ,=GO0EZY,=GO0JEQ,=GO0MNP,=GO0MNP/P,=GO0NPL,=GO0PLB,=GO0PNI, - =GO0PUP,=GO0VKW,=GO0VML,=GO0VSW,=GO1DPL,=GO1IOT,=GO1JFV,=GO1MVL,=GO1PKM,=GO3PLB,=GO3UOF,=GO3UOF/M, - =GO3XJQ,=GO4BKG,=GO4BLE,=GO4CQZ,=GO4DTQ,=GO4GTI,=GO4JKR,=GO4JUN,=GO4JUW,=GO4MVA,=GO4NOO,=GO4OKT, - =GO4SUE,=GO4SUE/P,=GO4TNZ,=GO4WXM,=GO6IMS,=GO6NKG,=GO6UKO,=GO7DWR,=GO7SBO,=GO7VJK,=GO7VQD,=GO8BQK, - =GO8IQC,=GO8JOY,=GO8OKR,=GQ0ANA,=GQ0DIV,=GQ0JEQ,=GQ0JRF,=GQ0MNO,=GQ0MNP,=GQ0NPL,=GQ0PUP,=GQ0RYT, - =GQ0SLM,=GQ0TQM,=GQ0VKW,=GQ0VML,=GQ0VSW,=GQ0WVL,=GQ1FKY,=GQ1FOA/P,=GQ1IOT,=GQ1JFV,=GQ1MVL,=GQ1NRS, - =GQ1WRV,=GQ1ZKN,=GQ3IRK,=GQ3PLB,=GQ3SB,=GQ3UOF,=GQ3VEN,=GQ3VKL,=GQ3WSU,=GQ3XJA,=GQ3XJQ,=GQ4BKG, - =GQ4BLE,=GQ4CQZ,=GQ4EZW,=GQ4GSH,=GQ4GTI,=GQ4IIL,=GQ4JKR,=GQ4JUN,=GQ4JUW,=GQ4LZP,=GQ4MVA,=GQ4NOO, - =GQ4OKT,=GQ4SUE,=GQ4VNS,=GQ4VZJ,=GQ4WXM,=GQ4WXM/P,=GQ6IMS,=GQ6ITJ,=GQ6NKG,=GQ6UKO,=GQ7BQK,=GQ7DWR, - =GQ7FBV,=GQ7SBO,=GQ7UNJ,=GQ7UNV,=GQ7VJK,=GQ7VQD,=GQ8BQK,=GQ8IQC,=GQ8JOY,=GQ8OKR,=GR0ANA,=GR0DIV, - =GR0DSP,=GR0HUS,=GR0JEQ,=GR0MYY,=GR0NPL,=GR0PSV,=GR0RYT,=GR0SYN,=GR0TKX,=GR0VKW,=GR0WGK,=GR1FJI, - =GR1HNG,=GR1LFX,=GR1LHV,=GR1MCD,=GR1SGG,=GR1WVY,=GR1YQM,=GR3SB,=GR3SFC,=GR3TKH,=GR3UOF,=GR3XJQ, - =GR4BKG,=GR4BLE,=GR4CQZ,=GR4GNY,=GR4GTI,=GR4HZA,=GR4JUN,=GR4JUW,=GR4OGO,=GR4SUE,=GR4VSS/P,=GR4XXJ, - =GR4ZOM,=GR5PH,=GR6NKG,=GR6SIX,=GR6STK,=GR6UKO,=GR6ZDH,=GR7AAV,=GR7HOC,=GR7NAU,=GR7TKZ,=GR7UNV, - =GR7VQD,=GR8BQK,=GR8IQC,=GR8OGI,=GR8TRO,=GV0ANA,=GV0DCK,=GV0DIV,=GV0EME,=GV0FRE,=GV0MNP,=GV0NPL, - =GV1FKY,=GV1IOT,=GV1JFV,=GV1NBW,=GV1YQM,=GV3ATZ,=GV3TJE/P,=GV3UOF,=GV3WEZ,=GV3XJQ,=GV4BKG,=GV4BRS, - =GV4CQZ,=GV4JKR,=GV4JQP,=GV4NQJ,=GV4PUC,=GV6BRC,=GV6JPC,=GV6NKG,=GV7UNV,=GV7VJK,=GV8IQC, - =GW0AWT/2K,=GW0GEI/2K,=GW0GIH/2K,=GW0MNO/2K,=GW0VSW/2K,=GW3JXN/2K,=GW3KJN/2K,=GW4IIL/2K, - =GW4VHP/2K,=M2000Y/97A,=MO0AQZ,=MO0ATI,=MO0COE,=MO0CVT,=MO0EQL,=MO0EZQ,=MO0GXE,=MO0HCX,=MO0IBZ, - =MO0IML,=MO0KLW,=MO0LDJ,=MO0LLK,=MO0LUK,=MO0LZZ,=MO0MAU,=MO0MUM,=MO0MWZ,=MO0OWW,=MO0SGD,=MO0SGR, - =MO0TBB,=MO0TMI,=MO0TTU,=MO0UPH,=MO0VVO,=MO1CFA,=MO1CFN,=MO3DAO,=MO3DQB,=MO3GKI,=MO3OJA,=MO3PUU, - =MO3RNI,=MO3UEZ,=MO3WPH,=MO3YVO,=MO3ZCO,=MO6DVP,=MO6GWK,=MO6GWR,=MO6GWR/P,=MO6MAU,=MO6PAM,=MO6PLC, - =MO6PUT,=MO6SEF,=MO6TBD,=MO6TBP,=MO6WLB,=MQ0AQZ,=MQ0ATI,=MQ0AWW,=MQ0CDO,=MQ0CNA,=MQ0CVT,=MQ0DHF, - =MQ0EQL,=MQ0GXE,=MQ0GYV,=MQ0HCX,=MQ0IBZ,=MQ0IML,=MQ0LDJ,=MQ0LLK,=MQ0LUK,=MQ0LZZ,=MQ0MAU,=MQ0MUM, - =MQ0MWA,=MQ0MWZ,=MQ0OWW,=MQ0PAD,=MQ0RHD,=MQ0SGD,=MQ0SGR,=MQ0TBB,=MQ0TMI,=MQ0TTU,=MQ0UPH,=MQ0UPH/P, - =MQ0VVO,=MQ0XMC/P,=MQ1CFA,=MQ1CFN,=MQ1EYO/P,=MQ1LCR,=MQ3DAO,=MQ3EPA,=MQ3GKI,=MQ3JAT,=MQ3NDB, - =MQ3OJA,=MQ3USK,=MQ3WPH,=MQ3ZCB/P,=MQ5AND,=MQ5EPA,=MQ5VZW,=MQ6DVP,=MQ6KLL,=MQ6MAU,=MQ6PAM,=MQ6PLC, - =MQ6RHD,=MQ6SEF,=MQ6TBD,=MQ6TBP,=MR0AQZ,=MR0BXJ,=MR0CVT,=MR0GUK,=MR0GXE,=MR0IDX,=MR0JGE,=MR0LAO, - =MR0LDJ,=MR0MAU,=MR0RLD,=MR0TTR,=MR0TTU,=MR0YAD,=MR0ZAP,=MR1CFN,=MR1EAA,=MR1LCR,=MR1MAJ/P,=MR1MDH, - =MR3AVB,=MR3AVC,=MR3CBF,=MR3NYR,=MR3OBL,=MR3SET/P,=MR3UFN,=MR3XZP,=MR3YKL,=MR3YLO,=MR3YVO, - =MR3ZCB/P,=MR5HOC,=MR6ADZ,=MR6KDA,=MR6VHF,=MR6YDP,=MV0AEL,=MV0BLM,=MV0EDX,=MV0GWT,=MV0GXE, - =MV0HGY/P,=MV0IML,=MV0LLK,=MV0PJJ,=MV0PJJ/P,=MV0RRD,=MV0SGD,=MV0SGR,=MV0TBB,=MV0TDQ,=MV0UAA, - =MV0USK,=MV0VRQ,=MV0WYN,=MV1CFA,=MV1CFN,=MV1EYP/P,=MV3RNI,=MV6CQN,=MV6GWR,=MV6GWR/P,=MV6URC, - =MV6ZOL,=MW0CND/2K,=MW0DHF/LH,=MW5AAM/2K,=MW5GOL/LH; + =GB0LM,=GB0LVF,=GB0MFH,=GB0MIW,=GB0ML,=GB0MPA,=GB0MSB,=GB0MUU,=GB0MWL,=GB0MZX,=GB0NAW,=GB0NEW, + =GB0NG,=GB0NLC,=GB0PBR,=GB0PEM,=GB0PGG,=GB0PLB,=GB0PLL,=GB0PSG,=GB0RME,=GB0ROC,=GB0RPO,=GB0RS, + =GB0RSC,=GB0RSF,=GB0RWM,=GB0SCB,=GB0SDD,=GB0SGC,=GB0SH,=GB0SH/LH,=GB0SOA,=GB0SPE,=GB0SPS,=GB0TD, + =GB0TL,=GB0TPR,=GB0TS,=GB0TTT,=GB0VCA,=GB0VEE,=GB0VK,=GB0WHH,=GB0WHR,=GB0WIW,=GB0WMZ,=GB0WUL, + =GB0YG,=GB100AB,=GB100BP,=GB100CSW,=GB100GGC,=GB100GGM,=GB100HD,=GB100LB,=GB100LSG,=GB100MCV, + =GB100RS,=GB100TMD,=GB10SOTA,=GB19CGW,=GB19CW,=GB19SG,=GB1AD,=GB1ATC,=GB1BAF,=GB1BGS,=GB1BPL, + =GB1BSW,=GB1BW,=GB1CCC,=GB1CDS,=GB1CPG,=GB1DS,=GB1FHS,=GB1HAS,=GB1HTW,=GB1JC,=GB1KEY,=GB1LSG, + =GB1LW,=GB1OOC,=GB1PCA,=GB1PCS,=GB1PD,=GB1PGW,=GB1PJ,=GB1PLL,=GB1SDD,=GB1SEA,=GB1SL,=GB1SPN, + =GB1SSL,=GB1STC,=GB1TDS,=GB1WAA,=GB1WIW,=GB1WSM,=GB2000SET,=GB2003SET,=GB200HNT,=GB200TT, + =GB250TMB,=GB250TT,=GB2ADU,=GB2BEF,=GB2BGG,=GB2BOM,=GB2BOW,=GB2BPM,=GB2BYF,=GB2CC,=GB2CI,=GB2COB, + =GB2CR,=GB2CRS,=GB2DWR,=GB2EI,=GB2FC,=GB2FLB,=GB2GGM,=GB2GLS,=GB2GOL,=GB2GSG,=GB2GVA,=GB2HDG, + =GB2HMM,=GB2IMD,=GB2LBR,=GB2LM,=GB2LNP,=GB2LSA,=GB2LSA/LH,=GB2LSH,=GB2MD,=GB2MGY,=GB2MIL,=GB2MLM, + =GB2MMC,=GB2MOP,=GB2NF,=GB2NPH,=GB2NPL,=GB2OOA,=GB2ORM,=GB2PRC,=GB2RFS,=GB2RSG,=GB2RTB,=GB2SAC, + =GB2SCC,=GB2SCD,=GB2SCP,=GB2SFM,=GB2SIP,=GB2SLA,=GB2TD,=GB2TD/LH,=GB2TTA,=GB2VK,=GB2WAA,=GB2WHO, + =GB2WIW,=GB2WNA,=GB2WSF,=GB2WT,=GB3HLS,=GB3LMW,=GB4ADU,=GB4AFS,=GB4AOS,=GB4BB,=GB4BIT,=GB4BOJ, + =GB4BPL,=GB4BPL/LH,=GB4BPL/P,=GB4BPR,=GB4BRS/P,=GB4BSG,=GB4CI,=GB4CTC,=GB4EUL,=GB4FAA,=GB4GM, + =GB4GSS,=GB4HFH,=GB4HI,=GB4HLB,=GB4HMD,=GB4HMM,=GB4LRG,=GB4MBC,=GB4MD,=GB4MDH,=GB4MDI,=GB4MJS, + =GB4MPI,=GB4MUU,=GB4NDG,=GB4NPL,=GB4NTB,=GB4ON,=GB4OST,=GB4PAT,=GB4PCS,=GB4PD,=GB4POW,=GB4RC, + =GB4RME,=GB4RSL,=GB4SDD,=GB4SLC,=GB4SSP,=GB4SUB,=GB4TMS,=GB4UKG,=GB4VJD,=GB4WT,=GB4WWI,=GB4XT, + =GB50ABS,=GB50EVS,=GB50RSC,=GB50SGP,=GB5AC,=GB5FI,=GB5GEO,=GB5MD,=GB5ONG,=GB5PSJ,=GB5SIP,=GB5VEP, + =GB5WT,=GB60DITP,=GB60ER,=GB60PW,=GB60SPS,=GB60VLY,=GB65BTF,=GB6AC,=GB6BLB,=GB6CRI,=GB6GGM, + =GB6OQA,=GB6ORA,=GB6PLB,=GB6RNLI,=GB6TS,=GB6TSG,=GB6WT,=GB6WWT,=GB70BTF,=GB750CC,=GB75ATC,=GB75BB, + =GB8CCC,=GB8HI,=GB8MD,=GB8MG,=GB8ND,=GB8OAE,=GB8OQE,=GB8RAF,=GB8WOW,=GB8WT,=GB90RSGB/62, + =GB90RSGB/72,=GB9GGM,=GC4BRS/LH,=GG100ACD,=GG100ANG,=GG100CPG,=GG100RGG,=GG100SG,=GO0DIV,=GO0EZQ, + =GO0EZY,=GO0JEQ,=GO0MNP,=GO0MNP/P,=GO0NPL,=GO0PLB,=GO0PNI,=GO0PUP,=GO0VKW,=GO0VML,=GO0VSW,=GO1DPL, + =GO1IOT,=GO1JFV,=GO1MVL,=GO1PKM,=GO3PLB,=GO3UOF,=GO3UOF/M,=GO3XJQ,=GO4BKG,=GO4BLE,=GO4CQZ,=GO4DTQ, + =GO4GTI,=GO4JKR,=GO4JUN,=GO4JUW,=GO4MVA,=GO4NOO,=GO4OKT,=GO4SUE,=GO4SUE/P,=GO4TNZ,=GO4WXM,=GO6IMS, + =GO6NKG,=GO6UKO,=GO7DWR,=GO7SBO,=GO7VJK,=GO7VQD,=GO8BQK,=GO8IQC,=GO8JOY,=GO8OKR,=GQ0ANA,=GQ0DIV, + =GQ0JEQ,=GQ0JRF,=GQ0MNO,=GQ0MNP,=GQ0NPL,=GQ0PUP,=GQ0RYT,=GQ0SLM,=GQ0TQM,=GQ0VKW,=GQ0VML,=GQ0VSW, + =GQ0WVL,=GQ1FKY,=GQ1FOA/P,=GQ1IOT,=GQ1JFV,=GQ1MVL,=GQ1NRS,=GQ1WRV,=GQ1ZKN,=GQ3IRK,=GQ3PLB,=GQ3SB, + =GQ3UOF,=GQ3VEN,=GQ3VKL,=GQ3WSU,=GQ3XJA,=GQ3XJQ,=GQ4BKG,=GQ4BLE,=GQ4CQZ,=GQ4EZW,=GQ4GSH,=GQ4GTI, + =GQ4IIL,=GQ4JKR,=GQ4JUN,=GQ4JUW,=GQ4LZP,=GQ4MVA,=GQ4NOO,=GQ4OKT,=GQ4SUE,=GQ4VNS,=GQ4VZJ,=GQ4WXM, + =GQ4WXM/P,=GQ6IMS,=GQ6ITJ,=GQ6NKG,=GQ6UKO,=GQ7BQK,=GQ7DWR,=GQ7FBV,=GQ7SBO,=GQ7UNJ,=GQ7UNV,=GQ7VJK, + =GQ7VQD,=GQ8BQK,=GQ8IQC,=GQ8JOY,=GQ8OKR,=GR0ANA,=GR0DIV,=GR0DSP,=GR0HUS,=GR0JEQ,=GR0MYY,=GR0NPL, + =GR0PSV,=GR0RYT,=GR0SYN,=GR0TKX,=GR0VKW,=GR0WGK,=GR1FJI,=GR1HNG,=GR1LFX,=GR1LHV,=GR1MCD,=GR1SGG, + =GR1WVY,=GR1YQM,=GR3SB,=GR3SFC,=GR3TKH,=GR3UOF,=GR3XJQ,=GR4BKG,=GR4BLE,=GR4CQZ,=GR4GNY,=GR4GTI, + =GR4HZA,=GR4JUN,=GR4JUW,=GR4OGO,=GR4SUE,=GR4VSS/P,=GR4XXJ,=GR4ZOM,=GR5PH,=GR6NKG,=GR6SIX,=GR6STK, + =GR6UKO,=GR6ZDH,=GR7AAV,=GR7HOC,=GR7NAU,=GR7TKZ,=GR7UNV,=GR7VQD,=GR8BQK,=GR8IQC,=GR8OGI,=GR8TRO, + =GV0ANA,=GV0DCK,=GV0DIV,=GV0EME,=GV0FRE,=GV0MNP,=GV0NPL,=GV1FKY,=GV1IOT,=GV1JFV,=GV1NBW,=GV1YQM, + =GV3ATZ,=GV3TJE/P,=GV3UOF,=GV3WEZ,=GV3XJQ,=GV4BKG,=GV4BRS,=GV4CQZ,=GV4JKR,=GV4JQP,=GV4NQJ,=GV4PUC, + =GV6BRC,=GV6JPC,=GV6NKG,=GV7UNV,=GV7VJK,=GV8IQC,=GW0AWT/2K,=GW0GEI/2K,=GW0GIH/2K,=GW0MNO/2K, + =GW0VSW/2K,=GW3JXN/2K,=GW3KJN/2K,=GW4IIL/2K,=GW4VHP/2K,=M2000Y/97A,=MO0AQZ,=MO0ATI,=MO0COE, + =MO0CVT,=MO0EQL,=MO0EZQ,=MO0GXE,=MO0HCX,=MO0IBZ,=MO0IML,=MO0KLW,=MO0LDJ,=MO0LLK,=MO0LUK,=MO0LZZ, + =MO0MAU,=MO0MUM,=MO0MWZ,=MO0OWW,=MO0SGD,=MO0SGR,=MO0TBB,=MO0TMI,=MO0TTU,=MO0UPH,=MO0VVO,=MO1CFA, + =MO1CFN,=MO3DAO,=MO3DQB,=MO3GKI,=MO3OJA,=MO3PUU,=MO3RNI,=MO3UEZ,=MO3WPH,=MO3YVO,=MO3ZCO,=MO6DVP, + =MO6GWK,=MO6GWR,=MO6GWR/P,=MO6MAU,=MO6PAM,=MO6PLC,=MO6PUT,=MO6SEF,=MO6TBD,=MO6TBP,=MO6WLB,=MQ0AQZ, + =MQ0ATI,=MQ0AWW,=MQ0CDO,=MQ0CNA,=MQ0CVT,=MQ0DHF,=MQ0EQL,=MQ0GXE,=MQ0GYV,=MQ0HCX,=MQ0IBZ,=MQ0IML, + =MQ0LDJ,=MQ0LLK,=MQ0LUK,=MQ0LZZ,=MQ0MAU,=MQ0MUM,=MQ0MWA,=MQ0MWZ,=MQ0OWW,=MQ0PAD,=MQ0RHD,=MQ0SGD, + =MQ0SGR,=MQ0TBB,=MQ0TMI,=MQ0TTU,=MQ0UPH,=MQ0UPH/P,=MQ0VVO,=MQ0XMC/P,=MQ1CFA,=MQ1CFN,=MQ1EYO/P, + =MQ1LCR,=MQ3DAO,=MQ3EPA,=MQ3GKI,=MQ3JAT,=MQ3NDB,=MQ3OJA,=MQ3USK,=MQ3WPH,=MQ3ZCB/P,=MQ5AND,=MQ5EPA, + =MQ5VZW,=MQ6DVP,=MQ6KLL,=MQ6MAU,=MQ6PAM,=MQ6PLC,=MQ6RHD,=MQ6SEF,=MQ6TBD,=MQ6TBP,=MR0AQZ,=MR0BXJ, + =MR0CVT,=MR0GUK,=MR0GXE,=MR0IDX,=MR0JGE,=MR0LAO,=MR0LDJ,=MR0MAU,=MR0RLD,=MR0TTR,=MR0TTU,=MR0YAD, + =MR0ZAP,=MR1CFN,=MR1EAA,=MR1LCR,=MR1MAJ/P,=MR1MDH,=MR3AVB,=MR3AVC,=MR3CBF,=MR3NYR,=MR3OBL, + =MR3SET/P,=MR3UFN,=MR3XZP,=MR3YKL,=MR3YLO,=MR3YVO,=MR3ZCB/P,=MR5HOC,=MR6ADZ,=MR6KDA,=MR6VHF, + =MR6YDP,=MV0AEL,=MV0BLM,=MV0EDX,=MV0GWT,=MV0GXE,=MV0HGY/P,=MV0IML,=MV0LLK,=MV0PJJ,=MV0PJJ/P, + =MV0RRD,=MV0SGD,=MV0SGR,=MV0TBB,=MV0TDQ,=MV0UAA,=MV0USK,=MV0VRQ,=MV0WYN,=MV1CFA,=MV1CFN,=MV1EYP/P, + =MV3RNI,=MV6CQN,=MV6GWR,=MV6GWR/P,=MV6URC,=MV6ZOL,=MW0CND/2K,=MW0DHF/LH,=MW5AAM/2K,=MW5GOL/LH; Solomon Islands: 28: 51: OC: -9.00: -160.00: -11.0: H4: H4,=H40/H44RK; Temotu Province: 32: 51: OC: -10.72: -165.80: -11.0: H40: @@ -1078,8 +1080,8 @@ Italy: 15: 28: EU: 42.82: -12.58: -1.0: I: I,=II0PN/MM(40),=II1RT/N, =4U0WFP,=4U4F,=4U5F,=4U6F,=4U7F,=4U7FOC,=4U80FOC,=4U8F,=4U8FOC,=II0IDR/NAVY,=IK0ATK/N,=IK0CNA/LH, =IK0JFS/N,=IK0XFD/N,=IQ0AP/J,=IQ0CV/LH,=IQ0FM/LH,=IQ0FR/LH,=IQ0GV/AAW,=IR0BP/J,=IU0FSC/LH, - =IW0HP/N,=IW9GSH/0,=IZ0BXZ/N,=IZ0DBA/N,=IZ0EGC/N,=IZ0FVD/N,=IZ0HTW/PS,=IZ0HTW/SP,=IZ0IAT/LH, - =IZ0IJC/FF,=IZ0IJC/N, + =IW0HP/N,=IW9GSH/0,=IZ0BXZ/N,=IZ0DBA/N,=IZ0EGC/N,=IZ0EUX/I/AZ,=IZ0FVD/N,=IZ0HTW/PS,=IZ0HTW/SP, + =IZ0IAT/LH,=IZ0IJC/FF,=IZ0IJC/N,=IZ0XZD/RO, =I1MQ/N,=I1ULJ/N,=I1XSG/N,=I1YRL/GRA,=II1PV/LH,=IK1RED/N,=IK1VDN/N,=IP1T/LH,=IQ1L/LH,=IQ1NM/REX, =IQ1SP/N,=IU1LCI/EMG,=IY1SP/ASB,=IY1SP/MTN,=IZ0IJC/BSM,=IZ1CLA/N,=IZ1ESH/EMG,=IZ1FCF/N, =IZ1GDB/EMG,=IZ1POA/N,=IZ1RGI/ECO,=IZ5GST/1/LH, @@ -1087,10 +1089,10 @@ Italy: 15: 28: EU: 42.82: -12.58: -1.0: I: =IQ2MI/J,=IW2NUY/N,=IZ2MYA/EXPO, =I3GJJ/J,=I3TXQ/N,=IK3TZB/N,=IQ3DD/MCC,=IQ3FL/J,=IQ3TS/LH,=IW3BSQ/LH,=IZ3DBA/N,=IZ3GHP/N, =IZ3QCH/N,=IZ3SZQ/N, - =I4CQO/N,=II4CPG/LH,=II4GOR/LH,=IQ4FA/J,=IQ4FJ/J,=IQ4RA/LH,=IQ4RN/LGT,=IQ4RN/LH,=IT9RGY/4, - =IW4EGX/LH,=IZ4AIH/J, - =I5OYY/N,=II5BP/J,=IK5IWU/N,=IK5TSZ/N,=IP5P/LH,=IQ5AA/J,=IQ5AE/J,=IQ5LI/J,=IQ5LV/J,=IU5JHK/J, - =IW5DAX/J,=IZ5AHB/N, + =I4CQO/N,=II4CPG/LH,=II4GOR/LH,=IK4UXA/4ME,=IQ4FA/J,=IQ4FJ/J,=IQ4RA/LH,=IQ4RN/LGT,=IQ4RN/LH, + =IT9RGY/4,=IW4EGX/LH,=IZ4AIH/J, + =I5OYY/N,=II5BP/J,=IK5IWU/N,=IK5TBI/I/CT,=IK5TBI/NAVY,=IK5TSZ/N,=IP5P/LH,=IQ5AA/J,=IQ5AE/J, + =IQ5LI/J,=IQ5LV/J,=IU5JHK/J,=IW5DAX/J,=IZ5AHB/N, =I6DHY/CASA,=I6FDJ/LH,=I6FDJ/N,=I6HWD/CA,=I6HWD/LH,=I6KIU/6/LH,=IK6FAW/J,=IK6XOU/LH,=IK6XUL/LH, =IK6YXM/N,=IQ6FU/LH,=IQ6PS/LH,=IQ6SB/LGH,=IQ6SB/LGT,=IQ6SB/LH,=IQ6VP/J,=IZ6ASI/LH,=IZ6ASI/N, =IZ6CDI/O,=IZ6RWD/O,=IZ6TGS/LH,=IZ6TGS/N, @@ -1098,13 +1100,13 @@ Italy: 15: 28: EU: 42.82: -12.58: -1.0: I: =I7XUW/MI/224,=II7IAOI/N,=II7PT/C,=II7PT/D,=II7PT/E,=II7PT/F,=II7PT/G,=II7PT/H,=II7PT/L, =II8ICN/NAVY,=IK7JWX/LH,=IK7SHC/MT,=IQ7ML/J,=IQ7ML/LH,=IQ7QK/LH,=IU7SCT/J,=IZ2DPX/7/LH,=IZ7DKA/YL, =IZ7KDX/LH,=IZ7LDC/LH, - =IK2RLS/8/LH,=IK8IJN/I/US,=IK8TEO/N,=IQ8OM/N,=IQ8PC/BWL,=IQ8XS/CEU,=IQ8YZ/SH,=IT9AAK/8, - =IU8CEU/8CZ,=IW8FFG/J,=IZ8AJQ/LGT,=IZ8AJQ/LH,=IZ8DBJ/LGT,=IZ8DBJ/LH,=IZ8FMU/KR,=IZ8IZK/YL, - =IZ8JPV/N,=IZ8QNX/N, + =IK2RLS/8/LH,=IK8IJN/8US,=IK8IJN/I/US,=IK8TEO/N,=IK8VHP/OA,=IQ8OM/N,=IQ8PC/BWL,=IQ8XS/CEU, + =IQ8YZ/SH,=IT9AAK/8,=IU8CEU/8CZ,=IU8FWT/I/CP,=IW8EHK/8BN,=IW8FFG/J,=IZ8AJQ/LGT,=IZ8AJQ/LH, + =IZ8DBJ/LGT,=IZ8DBJ/LH,=IZ8FMU/KR,=IZ8IZK/YL,=IZ8JPV/N,=IZ8QNX/N,=IZ8VNQ/LI, =IA5/IW3ILP/L, =IC8/DJ5AA/LH, =IN3IKF/J,=IN3TJK/YL, - =II3T/LH,=IQ3TS/LGT,=IQ3V/LH,=IV3TRK/N; + =II3T/LH,=IQ3TS/LGT,=IQ3V/LH,=IV3DSB/I/BR,=IV3TRK/N; African Italy: 33: 37: AF: 35.67: -12.67: -1.0: *IG9: IG9,IH9,=IO9Y,=IY9A; Sardinia: 15: 28: EU: 40.15: -9.27: -1.0: IS: @@ -1113,11 +1115,13 @@ Sardinia: 15: 28: EU: 40.15: -9.27: -1.0: IS: =IQ0AH/P,=IQ0AI,=IQ0AI/P,=IQ0AK,=IQ0AK/P,=IQ0AL,=IQ0AL/P,=IQ0AM,=IQ0AM/P,=IQ0EH,=IQ0EH/P,=IQ0HO, =IQ0ID,=IQ0ID/P,=IQ0JY,=IQ0NU,=IQ0NU/P,=IQ0NV,=IQ0NV/P,=IQ0OG,=IQ0OH,=IQ0QP,=IQ0QP/LH,=IQ0QP/P, =IQ0SS,=IQ0SS/P,=IQ0US,=IQ0UT,=IQ0XP,=IR0EO,=IR0FOC,=IR0IDP,=IR0IDP/1,=IR0IDP/2,=IR0IDP/3,=IR0LVC, - =IR0MDC,=IS0/4Z5KJ/LH,=IS0/DL5SE/LH,=IS0ICE/N,=IS0IGV/N,=IS0PGF/N,=IS0SDX/N,=IW0HRI,=IY0GA,=IY0NV; + =IR0MDC,=IS0/4Z5KJ/LH,=IS0/DL5SE/LH,=IS0FAP/I/LR,=IS0ICE/N,=IS0IGV/N,=IS0PGF/N,=IS0SDX/N,=IW0HRI, + =IY0GA,=IY0NV; Sicily: 15: 28: EU: 37.50: -14.00: -1.0: *IT9: IB9,ID9,IE9,IF9,II9,IJ9,IO9,IQ9,IR9,IT9,IU9,IW9,IY9,=II0GDF/9,=IQ1QQ/9,=IT9CHU/J,=IT9CKA/CA, =IT9CLY/JZK,=IT9DSA/CA,=IT9DTU/N,=IT9GDS/WLK,=IT9HBS/LH,=IT9JZK/WLK,=IT9KKE/JZK,=IT9MRM/N, - =IT9MRZ/LH,=IT9NCO/LH,=IT9NCO/N,=IT9OTF/JZK,=IT9RRU/LH,=IT9RYH/J,=IT9RYH/N,=IT9ZSB/LH,=IW0HBY/9; + =IT9MRZ/LH,=IT9NCO/LH,=IT9NCO/N,=IT9OTF/JZK,=IT9RRU/LH,=IT9RYH/J,=IT9RYH/N,=IT9YBL/SG,=IT9ZSB/LH, + =IW0HBY/9; Djibouti: 37: 48: AF: 11.75: -42.35: -3.0: J2: J2; Grenada: 08: 11: NA: 12.13: 61.68: 4.0: J3: @@ -1168,20 +1172,20 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: WE0(4)[7],WF0(4)[7],WG0(4)[7],WI0(4)[7],WJ0(4)[7],WK0(4)[7],WM0(4)[7],WN0(4)[7],WO0(4)[7], WQ0(4)[7],WR0(4)[7],WS0(4)[7],WT0(4)[7],WU0(4)[7],WV0(4)[7],WW0(4)[7],WX0(4)[7],WY0(4)[7], WZ0(4)[7],=AH2BW(4)[7],=AH2BY(4)[7],=AH6ES/0(4)[7],=AH6FY(4)[7],=AH6MD(4)[7],=AH6N(4)[7], - =AH6N/0(4)[7],=AH6O(4)[7],=AH6OS(4)[7],=AH6PC(4)[7],=AH6RS(4)[7],=AL0G(4)[7],=AL1VE/R(4)[7], - =AL3E(4)[7],=AL3V(4)[7],=AL6E(4)[7],=AL7BX(4)[7],=AL7EK(4)[7],=AL7FU(4)[7],=AL7GQ(4)[7], - =AL7NY(4)[7],=AL7O/0(4)[7],=AL7OC(4)[7],=AL7OX(4)[7],=AL7QQ(4)[7],=AL7QQ/P(4)[7],=AL9DB(4)[7], - =KH0EX(4)[7],=KH2CZ(4)[7],=KH2FM(4)[7],=KH2JK(4)[7],=KH2OP(4)[7],=KH2OP/0(4)[7],=KH2SL(4)[7], - =KH6DM(4)[7],=KH6HNL(4)[7],=KH6HTV(4)[7],=KH6HTV/0(4)[7],=KH6JEM(4)[7],=KH6JFH(4)[7],=KH6NM(4)[7], - =KH6NR(4)[7],=KH6OY(4)[7],=KH6RON(4)[7],=KH6SB(4)[7],=KH6TL(4)[7],=KH6UC(4)[7],=KH6VHF(4)[7], - =KH6VO(4)[7],=KH7AL/M(4)[7],=KH7AL/P(4)[7],=KH7BU(4)[7],=KH7GF(4)[7],=KH7HA(4)[7],=KH7HY(4)[7], - =KH7OX(4)[7],=KH7QI(4)[7],=KH7QJ(4)[7],=KH7QT(4)[7],=KH8CW(4)[7],=KL0DW(4)[7],=KL0EQ(4)[7], - =KL0FOX(4)[7],=KL0GP(4)[7],=KL0GQ(4)[7],=KL0MW(4)[7],=KL0N(4)[7],=KL0SV(4)[7],=KL0UP(4)[7], - =KL0VM(4)[7],=KL0WIZ(4)[7],=KL0XN(4)[7],=KL1HT(4)[7],=KL1IF(4)[7],=KL1IF/M(4)[7],=KL1J(4)[7], - =KL1LD(4)[7],=KL1PV(4)[7],=KL1TU(4)[7],=KL1V/M(4)[7],=KL1VN(4)[7],=KL2A/0(4)[7],=KL2FU(4)[7], - =KL2GR(4)[7],=KL2NS(4)[7],=KL2QO(4)[7],=KL2SX(4)[7],=KL2YI(4)[7],=KL3LY(4)[7],=KL3MA(4)[7], - =KL3MB(4)[7],=KL3MC(4)[7],=KL3MW(4)[7],=KL3QS(4)[7],=KL3SM(4)[7],=KL3VN(4)[7],=KL4IY(4)[7], - =KL4JN(4)[7],=KL7DE(4)[7],=KL7DTJ(4)[7],=KL7ED(4)[7],=KL7EP(4)[7],=KL7EP/0(4)[7],=KL7GKY/0(4)[7], + =AH6N/0(4)[7],=AH6O(4)[7],=AH6OS(4)[7],=AH6PC(4)[7],=AH6RS(4)[7],=AL0G(4)[7],=AL3E(4)[7], + =AL3V(4)[7],=AL6E(4)[7],=AL7BX(4)[7],=AL7EK(4)[7],=AL7FU(4)[7],=AL7GQ(4)[7],=AL7NY(4)[7], + =AL7O/0(4)[7],=AL7OX(4)[7],=AL7QQ(4)[7],=AL7QQ/P(4)[7],=AL9DB(4)[7],=KH0EX(4)[7],=KH2CZ(4)[7], + =KH2FM(4)[7],=KH2JK(4)[7],=KH2OP(4)[7],=KH2OP/0(4)[7],=KH2SL(4)[7],=KH6DM(4)[7],=KH6HNL(4)[7], + =KH6HTV(4)[7],=KH6HTV/0(4)[7],=KH6JEM(4)[7],=KH6JFH(4)[7],=KH6NM(4)[7],=KH6NR(4)[7],=KH6OY(4)[7], + =KH6RON(4)[7],=KH6SB(4)[7],=KH6TL(4)[7],=KH6UC(4)[7],=KH6VHF(4)[7],=KH6VO(4)[7],=KH7AL/M(4)[7], + =KH7AL/P(4)[7],=KH7BU(4)[7],=KH7GF(4)[7],=KH7HA(4)[7],=KH7HY(4)[7],=KH7OX(4)[7],=KH7QI(4)[7], + =KH7QJ(4)[7],=KH7QT(4)[7],=KH8CW(4)[7],=KL0DW(4)[7],=KL0EQ(4)[7],=KL0FOX(4)[7],=KL0GP(4)[7], + =KL0GQ(4)[7],=KL0MW(4)[7],=KL0N(4)[7],=KL0SV(4)[7],=KL0UP(4)[7],=KL0VM(4)[7],=KL0WIZ(4)[7], + =KL0XM(4)[7],=KL0XN(4)[7],=KL1HT(4)[7],=KL1IF(4)[7],=KL1IF/M(4)[7],=KL1J(4)[7],=KL1LD(4)[7], + =KL1PV(4)[7],=KL1TU(4)[7],=KL1V/M(4)[7],=KL1VN(4)[7],=KL2A/0(4)[7],=KL2FU(4)[7],=KL2GR(4)[7], + =KL2NS(4)[7],=KL2QO(4)[7],=KL2SX(4)[7],=KL2YI(4)[7],=KL3LY(4)[7],=KL3MA(4)[7],=KL3MB(4)[7], + =KL3MC(4)[7],=KL3MW(4)[7],=KL3QS(4)[7],=KL3SM(4)[7],=KL3VN(4)[7],=KL4IY(4)[7],=KL4JN(4)[7], + =KL7DE(4)[7],=KL7DTJ(4)[7],=KL7DYS(4)[7],=KL7ED(4)[7],=KL7EP(4)[7],=KL7EP/0(4)[7],=KL7GKY/0(4)[7], =KL7GLK(4)[7],=KL7GLK/0(4)[7],=KL7GLK/B(4)[7],=KL7HR(4)[7],=KL7IWT(4)[7],=KL7IXI(4)[7], =KL7JGJ(4)[7],=KL7JIE(4)[7],=KL7JIM(4)[7],=KL7JR/0(4)[7],=KL7MH(4)[7],=KL7MP(4)[7],=KL7MV(4)[7], =KL7NW(4)[7],=KL7PE/M(4)[7],=KL7QW(4)[7],=KL7QW/0(4)[7],=KL7RH(4)[7],=KL7RZ(4)[7],=KL7SB/0(4)[7], @@ -1196,12 +1200,12 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =WH7PV(4)[7],=WH9AAH(4)[7],=WL0JF(4)[7],=WL1ON(4)[7],=WL7AEC(4)[7],=WL7AJA(4)[7],=WL7ANY(4)[7], =WL7ATK(4)[7],=WL7BRV(4)[7],=WL7BT(4)[7],=WL7CEG(4)[7],=WL7CLI(4)[7],=WL7CPW(4)[7],=WL7CQF(4)[7], =WL7CRT(4)[7],=WL7CY(4)[7],=WL7J(4)[7],=WL7JB(4)[7],=WL7LZ(4)[7],=WL7LZ/M(4)[7],=WL7RV(4)[7], - =WL7S(4)[7],=WL7YM(4)[7],=WP2B/0(4)[7],=WP3QH(4)[7],=WP3Y(4)[7],=WP4BTQ(4)[7],=WP4GQR(4)[7], - =WP4LC(4)[7],=WP4NPV(4)[7], - =AH2V(5)[8],=AH2W(5)[8],=AH6BV(5)[8],=AL0A(5)[8],=AL1O(5)[8],=AL4V(5)[8],=AL6L(5)[8],=AL6M(5)[8], - =AL7EL(5)[8],=AL7GD(5)[8],=AL7LV(5)[8],=AL7QS(5)[8],=AL8E(5)[8],=KH2AB(5)[8],=KH2BA(5)[8], - =KH2EH(5)[8],=KH6GR(5)[8],=KH6HZ(5)[8],=KH6IKI(5)[8],=KH6JKQ(5)[8],=KH6JUK(5)[8],=KH6RF(5)[8], - =KH6RF/1(5)[8],=KH6RF/M(5)[8],=KH7CD(5)[8],=KH7CD/1(5)[8],=KH7PL(5)[8],=KH8AC(5)[8], + =WL7S(4)[7],=WL7YM(4)[7],=WP2B/0(4)[7],=WP3QH(4)[7],=WP4BTQ(4)[7],=WP4GQR(4)[7],=WP4LC(4)[7], + =WP4NPV(4)[7], + =AH2V(5)[8],=AH2W(5)[8],=AH6BV(5)[8],=AL0A(5)[8],=AL1K(5)[8],=AL1O(5)[8],=AL4V(5)[8],=AL6L(5)[8], + =AL6M(5)[8],=AL7EL(5)[8],=AL7GD(5)[8],=AL7LV(5)[8],=AL7QS(5)[8],=AL8E(5)[8],=KH2AB(5)[8], + =KH2BA(5)[8],=KH2EH(5)[8],=KH6GR(5)[8],=KH6HZ(5)[8],=KH6IKI(5)[8],=KH6JKQ(5)[8],=KH6JUK(5)[8], + =KH6RF(5)[8],=KH6RF/1(5)[8],=KH6RF/M(5)[8],=KH7CD(5)[8],=KH7CD/1(5)[8],=KH7PL(5)[8],=KH8AC(5)[8], =KH8AC/1(5)[8],=KL1OC(5)[8],=KL1T(5)[8],=KL1WD(5)[8],=KL2A/1(5)[8],=KL2DM(5)[8],=KL2GA(5)[8], =KL2IC(5)[8],=KL2KL(5)[8],=KL2MU(5)[8],=KL3UX(5)[8],=KL3VA(5)[8],=KL4XK(5)[8],=KL7CE/1(5)[8], =KL7IOP(5)[8],=KL7IXX(5)[8],=KL7JHM(5)[8],=KL7JJN(5)[8],=KL7JR/1(5)[8],=KL7JT(5)[8],=KL7LK(5)[8], @@ -1213,11 +1217,12 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =NP2FZ/1(5)[8],=NP2GG(5)[8],=NP2PN(5)[8],=NP3IV(5)[8],=NP3LN(5)[8],=NP3WX(5)[8],=NP4AO(5)[8], =NP4AZ(5)[8],=NP4ER(5)[8],=VE1BES/M(5)[8],=VE3CMB/M(5)[8],=VE4CCN/M(5)[8],=WH0EWX(5)[8], =WH2B(5)[8],=WH6CT(5)[8],=WH6DSN(5)[8],=WH6EI(5)[8],=WH6FBH(5)[8],=WH6MY(5)[8],=WH6SW(5)[8], - =WH6SW/1(5)[8],=WH7TP(5)[8],=WH7YQ(5)[8],=WH7YR(5)[8],=WL1B(5)[8],=WL7B(5)[8],=WL7CC(5)[8], - =WL7CUP(5)[8],=WL7CVD(5)[8],=WL7WO(5)[8],=WL7WO/1(5)[8],=WL7Z/1(5)[8],=WP2MG(5)[8],=WP3GN(5)[8], + =WH6SW/1(5)[8],=WH7TP(5)[8],=WH7YQ(5)[8],=WH7YR(5)[8],=WL7B(5)[8],=WL7CC(5)[8],=WL7CUP(5)[8], + =WL7CVD(5)[8],=WL7WO(5)[8],=WL7WO/1(5)[8],=WL7Z/1(5)[8],=WP2MG(5)[8],=WP3AC(5)[8],=WP3GN(5)[8], =WP3NN(5)[8],=WP3QV(5)[8],=WP3QV/1(5)[8],=WP3WV(5)[8],=WP4AKE(5)[8],=WP4AZJ(5)[8],=WP4BC(5)[8], =WP4BF(5)[8],=WP4CGI(5)[8],=WP4CJH(5)[8],=WP4JF(5)[8],=WP4KQ(5)[8],=WP4MKJ(5)[8],=WP4MMV(5)[8], - =WP4MOC(5)[8],=WP4NKW(5)[8],=WP4NUV(5)[8],=WP4NYY(5)[8],=WP4OFO(5)[8],=WP4OIG(5)[8],=WP4OJK(5)[8], + =WP4MOC(5)[8],=WP4NKW(5)[8],=WP4NUV(5)[8],=WP4NYT(5)[8],=WP4NYY(5)[8],=WP4OFO(5)[8],=WP4OIG(5)[8], + =WP4OJK(5)[8],=WP4RQ(5)[8], =AH0BR(5)[8],=AH2AL(5)[8],=AH2CG(5)[8],=AH2O(5)[8],=AH6K(5)[8],=AL0Q(5)[8],=AL0Y(5)[8], =AL2O(5)[8],=AL7RG(5)[8],=KH2CW(5)[8],=KH2P(5)[8],=KH2R(5)[8],=KH4AG(5)[8],=KH6ALN(5)[8], =KH6HFO(5)[8],=KH6HO(5)[8],=KH7GA(5)[8],=KH7JO(5)[8],=KH7JO/2(5)[8],=KH7MX(5)[8],=KH7NE(5)[8], @@ -1246,110 +1251,112 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =NL7CK(5)[8],=NL7PJ(5)[8],=NL7V/3(5)[8],=NL7WA(5)[8],=NL7XM(5)[8],=NL7XM/B(5)[8],=NP2EP(5)[8], =NP2G(5)[8],=NP2NC(5)[8],=NP3ES(5)[8],=NP3IP(5)[8],=NP3YN(5)[8],=NP4RH(5)[8],=NP4YZ(5)[8], =WH6ADS(5)[8],=WH6AWO(5)[8],=WH6AZN(5)[8],=WH6CE(5)[8],=WH6CTO(5)[8],=WH6DOA(5)[8],=WH6ECO(5)[8], - =WH6EEL(5)[8],=WH6EEN(5)[8],=WH6EIJ(5)[8],=WH6GEU(5)[8],=WH6IO(5)[8],=WH6OB(5)[8],=WH6RN(5)[8], - =WH7F(5)[8],=WH7USA(5)[8],=WL7AF(5)[8],=WL7L(5)[8],=WP2XX(5)[8],=WP3BX(5)[8],=WP3CC(5)[8], - =WP3EC(5)[8],=WP3FK(5)[8],=WP4DA(5)[8],=WP4DCK(5)[8],=WP4EDM(5)[8],=WP4GJL(5)[8],=WP4HRK(5)[8], - =WP4HSZ(5)[8],=WP4KDN(5)[8],=WP4KKX(5)[8],=WP4KTU(5)[8],=WP4LEM(5)[8],=WP4LNP(5)[8],=WP4MNV(5)[8], - =WP4MSX(5)[8],=WP4MYN(5)[8],=WP4NXG(5)[8],=WP4OSQ(5)[8],=WP4PPH(5)[8],=WP4PQN(5)[8],=WP4PUR(5)[8], - =WP4PYL(5)[8],=WP4PYM(5)[8],=WP4PYT(5)[8],=WP4PYU(5)[8],=WP4PYV(5)[8],=WP4PYZ(5)[8],=WP4PZA(5)[8], + =WH6EEL(5)[8],=WH6EEN(5)[8],=WH6EIJ(5)[8],=WH6FPS(5)[8],=WH6GEU(5)[8],=WH6IO(5)[8],=WH6OB(5)[8], + =WH6RN(5)[8],=WH7F(5)[8],=WH7USA(5)[8],=WL7AF(5)[8],=WL7L(5)[8],=WP2XX(5)[8],=WP3BX(5)[8], + =WP3CC(5)[8],=WP3EC(5)[8],=WP3FK(5)[8],=WP4DA(5)[8],=WP4DCK(5)[8],=WP4EDM(5)[8],=WP4GJL(5)[8], + =WP4HRK(5)[8],=WP4HSZ(5)[8],=WP4KDN(5)[8],=WP4KKX(5)[8],=WP4KTU(5)[8],=WP4LEM(5)[8],=WP4LNP(5)[8], + =WP4MNV(5)[8],=WP4MSX(5)[8],=WP4MYN(5)[8],=WP4NXG(5)[8],=WP4OSQ(5)[8],=WP4PPH(5)[8],=WP4PQN(5)[8], + =WP4PUR(5)[8],=WP4PYL(5)[8],=WP4PYM(5)[8],=WP4PYT(5)[8],=WP4PYU(5)[8],=WP4PYV(5)[8],=WP4PYZ(5)[8], + =WP4PZA(5)[8], =AH0BV(5)[8],=AH0BZ(5)[8],=AH0G(5)[8],=AH2AJ(5)[8],=AH2AM(5)[8],=AH2AV/4(5)[8],=AH2DF(5)[8], =AH2EB(5)[8],=AH2X(5)[8],=AH3B(5)[8],=AH6AL(5)[8],=AH6AT(5)[8],=AH6AU(5)[8],=AH6BJ(5)[8], =AH6C(5)[8],=AH6EZ/4(5)[8],=AH6FX(5)[8],=AH6FX/4(5)[8],=AH6IC(5)[8],=AH6IJ(5)[8],=AH6IW(5)[8], - =AH6JH(5)[8],=AH6JN/4(5)[8],=AH6JN/M(5)[8],=AH6KS(5)[8],=AH6KT(5)[8],=AH6KT/4(5)[8],=AH6LS(5)[8], - =AH6OB(5)[8],=AH6TI(5)[8],=AH7DN(5)[8],=AH7I(5)[8],=AH7I/4(5)[8],=AH7MI(5)[8],=AH8B(5)[8], - =AH8M(5)[8],=AH8M/M(5)[8],=AH8T(5)[8],=AL0I(5)[8],=AL1A(5)[8],=AL3G(5)[8],=AL3M(5)[8],=AL4T(5)[8], - =AL4T/4(5)[8],=AL4U(5)[8],=AL4X(5)[8],=AL5A(5)[8],=AL7AL(5)[8],=AL7AM(5)[8],=AL7BA(5)[8], - =AL7FR(5)[8],=AL7GF(5)[8],=AL7GK(5)[8],=AL7HG(5)[8],=AL7HW(5)[8],=AL7HW/4(5)[8],=AL7IS(5)[8], - =AL7KT(5)[8],=AL7LH(5)[8],=AL7NL(5)[8],=AL7NM(5)[8],=AL7NS(5)[8],=AL7NS/140(5)[8],=AL7PL(5)[8], - =AL7QI(5)[8],=AL7RE(5)[8],=AL7RL(5)[8],=G8ERJ(5)[8],=GO4AZM(5)[8],=GQ4AZM(5)[8],=GR4AZM(5)[8], - =KH0CW(5)[8],=KH0HR(5)[8],=KH0NI(5)[8],=KH0ZZ(5)[8],=KH2BX(5)[8],=KH2D(5)[8],=KH2D/4(5)[8], - =KH2GUM/P(5)[8],=KH2HB(5)[8],=KH2KD(5)[8],=KH2N(5)[8],=KH2NC(5)[8],=KH2PM(5)[8],=KH2RL(5)[8], - =KH2TI(5)[8],=KH2UG(5)[8],=KH2UV(5)[8],=KH2UZ(5)[8],=KH2VM(5)[8],=KH3AC(5)[8],=KH3AG(5)[8], - =KH6AE(5)[8],=KH6AME(5)[8],=KH6CG(5)[8],=KH6CG/4(5)[8],=KH6CT(5)[8],=KH6ED(5)[8],=KH6HHS(5)[8], - =KH6HHS/4(5)[8],=KH6HOW(5)[8],=KH6ILR(5)[8],=KH6ILR/4(5)[8],=KH6ITI(5)[8],=KH6JAU(5)[8], - =KH6JIM(5)[8],=KH6JJD(5)[8],=KH6JNW(5)[8],=KH6JUA(5)[8],=KH6KZ(5)[8],=KH6M(5)[8],=KH6M/4(5)[8], - =KH6M/M(5)[8],=KH6MT(5)[8],=KH6MT/4(5)[8],=KH6NC(5)[8],=KH6NI(5)[8],=KH6OU(5)[8],=KH6POI(5)[8], - =KH6PU(5)[8],=KH6RP(5)[8],=KH6TY(5)[8],=KH6TY/R(5)[8],=KH6UN(5)[8],=KH6WE(5)[8],=KH6XH(5)[8], - =KH7DM(5)[8],=KH7DY(5)[8],=KH7FC(5)[8],=KH7FU(5)[8],=KH7GM(5)[8],=KH7GZ(5)[8],=KH7HJ/4(5)[8], - =KH7OC(5)[8],=KH7OV(5)[8],=KH7WK(5)[8],=KH7XS/4(5)[8],=KH7XT(5)[8],=KH7ZC(5)[8],=KH8DO(5)[8], - =KH8U(5)[8],=KL0AG(5)[8],=KL0IP(5)[8],=KL0KC(5)[8],=KL0KE/4(5)[8],=KL0L(5)[8],=KL0MG(5)[8], - =KL0MP(5)[8],=KL0S(5)[8],=KL0SS(5)[8],=KL0ST(5)[8],=KL0TY(5)[8],=KL0UA(5)[8],=KL0UD(5)[8], - =KL0VU(5)[8],=KL0WF(5)[8],=KL1KP(5)[8],=KL1NK(5)[8],=KL1NS(5)[8],=KL1OK(5)[8],=KL1PA(5)[8], - =KL1SS(5)[8],=KL2AK(5)[8],=KL2CX(5)[8],=KL2EY(5)[8],=KL2GG(5)[8],=KL2GP(5)[8],=KL2HV(5)[8], - =KL2MQ(5)[8],=KL2NN(5)[8],=KL2UM(5)[8],=KL2UQ(5)[8],=KL2XI(5)[8],=KL3BG(5)[8],=KL3EV(5)[8], - =KL3HG(5)[8],=KL3IA(5)[8],=KL3KB(5)[8],=KL3KG(5)[8],=KL3NR(5)[8],=KL3WM(5)[8],=KL3X(5)[8], - =KL3XB(5)[8],=KL4CO(5)[8],=KL4DD(5)[8],=KL4H(5)[8],=KL4J(5)[8],=KL5X(5)[8],=KL5YJ(5)[8], - =KL7A(5)[8],=KL7DA(5)[8],=KL7DA/4(5)[8],=KL7FO(5)[8],=KL7GLL(5)[8],=KL7H(5)[8],=KL7HIM(5)[8], - =KL7HNY(5)[8],=KL7HOT(5)[8],=KL7HQW(5)[8],=KL7HV(5)[8],=KL7HX(5)[8],=KL7I(5)[8],=KL7IEK(5)[8], - =KL7IKZ(5)[8],=KL7IV(5)[8],=KL7IVY(5)[8],=KL7IWF(5)[8],=KL7JDS(5)[8],=KL7JR(5)[8],=KL7LS(5)[8], - =KL7MJ(5)[8],=KL7NCO(5)[8],=KL7NL(5)[8],=KL7NL/4(5)[8],=KL7NT(5)[8],=KL7OO(5)[8],=KL7P/4(5)[8], - =KL7PS(5)[8],=KL7QH(5)[8],=KL7QU(5)[8],=KL7SR(5)[8],=KL7TZ(5)[8],=KL7USI/4(5)[8],=KL7XA(5)[8], - =KL9A/1(5)[8],=KP2AF(5)[8],=KP2AV(5)[8],=KP2AV/4(5)[8],=KP2CH(5)[8],=KP2CR(5)[8],=KP2L(5)[8], - =KP2L/4(5)[8],=KP2N(5)[8],=KP2R(5)[8],=KP2U(5)[8],=KP2US(5)[8],=KP2V(5)[8],=KP3AMG(5)[8], - =KP3BL(5)[8],=KP3BP(5)[8],=KP3J(5)[8],=KP3SK(5)[8],=KP3U(5)[8],=KP4AD(5)[8],=KP4AOD(5)[8], - =KP4AOD/4(5)[8],=KP4AYI(5)[8],=KP4BBN(5)[8],=KP4BEC(5)[8],=KP4BM(5)[8],=KP4BOB(5)[8], - =KP4CBP(5)[8],=KP4CEL(5)[8],=KP4CH(5)[8],=KP4CPP(5)[8],=KP4CSJ(5)[8],=KP4CSZ(5)[8],=KP4CW(5)[8], - =KP4CZ(5)[8],=KP4DAC(5)[8],=KP4DDS(5)[8],=KP4DPQ(5)[8],=KP4DQS(5)[8],=KP4EDL(5)[8],=KP4EIA(5)[8], - =KP4EMY(5)[8],=KP4ENK(5)[8],=KP4EOR(5)[8],=KP4EOR/4(5)[8],=KP4ERT(5)[8],=KP4ESC(5)[8], - =KP4FBS(5)[8],=KP4FGI(5)[8],=KP4FIR(5)[8],=KP4FJE(5)[8],=KP4FLP(5)[8],=KP4FOF(5)[8],=KP4HE(5)[8], - =KP4HN(5)[8],=KP4II(5)[8],=KP4IRI(5)[8],=KP4IT(5)[8],=KP4JC(5)[8],=KP4JCC(5)[8],=KP4JOS(5)[8], - =KP4JWR(5)[8],=KP4KA(5)[8],=KP4KD(5)[8],=KP4KD/4(5)[8],=KP4KE/4(5)[8],=KP4KF(5)[8],=KP4LEU(5)[8], - =KP4LF(5)[8],=KP4LQ(5)[8],=KP4LUV(5)[8],=KP4LX(5)[8],=KP4MA(5)[8],=KP4MHC(5)[8],=KP4MPR(5)[8], - =KP4MSP(5)[8],=KP4NI(5)[8],=KP4OO(5)[8],=KP4PC(5)[8],=KP4PEC(5)[8],=KP4PF(5)[8],=KP4PMD(5)[8], + =AH6JH(5)[8],=AH6JN/4(5)[8],=AH6JN/M(5)[8],=AH6KS(5)[8],=AH6KT(5)[8],=AH6KT/4(5)[8],=AH6LQ(5)[8], + =AH6LS(5)[8],=AH6OB(5)[8],=AH6TI(5)[8],=AH7DN(5)[8],=AH7I(5)[8],=AH7I/4(5)[8],=AH7MI(5)[8], + =AH8B(5)[8],=AH8M(5)[8],=AH8M/M(5)[8],=AH8R(5)[8],=AH8T(5)[8],=AL0I(5)[8],=AL1A(5)[8],=AL3G(5)[8], + =AL3M(5)[8],=AL4T(5)[8],=AL4T/4(5)[8],=AL4U(5)[8],=AL4X(5)[8],=AL5A(5)[8],=AL7AL(5)[8], + =AL7AM(5)[8],=AL7BA(5)[8],=AL7FR(5)[8],=AL7GF(5)[8],=AL7GK(5)[8],=AL7HG(5)[8],=AL7HW(5)[8], + =AL7HW/4(5)[8],=AL7IS(5)[8],=AL7KT(5)[8],=AL7LH(5)[8],=AL7NL(5)[8],=AL7NM(5)[8],=AL7NS(5)[8], + =AL7NS/140(5)[8],=AL7PL(5)[8],=AL7QI(5)[8],=AL7RE(5)[8],=AL7RL(5)[8],=G8ERJ(5)[8],=GO4AZM(5)[8], + =GQ4AZM(5)[8],=GR4AZM(5)[8],=KH0CW(5)[8],=KH0HR(5)[8],=KH0NI(5)[8],=KH0ZZ(5)[8],=KH2BX(5)[8], + =KH2D(5)[8],=KH2D/4(5)[8],=KH2GUM/P(5)[8],=KH2HB(5)[8],=KH2KD(5)[8],=KH2N(5)[8],=KH2NC(5)[8], + =KH2PM(5)[8],=KH2RL(5)[8],=KH2TI(5)[8],=KH2UG(5)[8],=KH2UV(5)[8],=KH2UZ(5)[8],=KH2VM(5)[8], + =KH3AC(5)[8],=KH3AG(5)[8],=KH6AE(5)[8],=KH6AME(5)[8],=KH6CG(5)[8],=KH6CG/4(5)[8],=KH6CT(5)[8], + =KH6ED(5)[8],=KH6HHS(5)[8],=KH6HHS/4(5)[8],=KH6HOW(5)[8],=KH6ILR(5)[8],=KH6ILR/4(5)[8], + =KH6ITI(5)[8],=KH6JAU(5)[8],=KH6JIM(5)[8],=KH6JJD(5)[8],=KH6JNW(5)[8],=KH6JUA(5)[8],=KH6KZ(5)[8], + =KH6M(5)[8],=KH6M/4(5)[8],=KH6M/M(5)[8],=KH6MT(5)[8],=KH6MT/4(5)[8],=KH6NC(5)[8],=KH6NI(5)[8], + =KH6OU(5)[8],=KH6POI(5)[8],=KH6PU(5)[8],=KH6RP(5)[8],=KH6TY(5)[8],=KH6TY/R(5)[8],=KH6UN(5)[8], + =KH6WE(5)[8],=KH6XH(5)[8],=KH7DA(5)[8],=KH7DM(5)[8],=KH7DY(5)[8],=KH7FC(5)[8],=KH7FU(5)[8], + =KH7GM(5)[8],=KH7GZ(5)[8],=KH7HJ/4(5)[8],=KH7OC(5)[8],=KH7OV(5)[8],=KH7WK(5)[8],=KH7WU(5)[8], + =KH7XS/4(5)[8],=KH7XT(5)[8],=KH7ZC(5)[8],=KH8DO(5)[8],=KH8U(5)[8],=KL0AG(5)[8],=KL0BG(5)[8], + =KL0IP(5)[8],=KL0KC(5)[8],=KL0KE/4(5)[8],=KL0L(5)[8],=KL0MG(5)[8],=KL0MP(5)[8],=KL0S(5)[8], + =KL0SS(5)[8],=KL0ST(5)[8],=KL0TY(5)[8],=KL0UA(5)[8],=KL0UD(5)[8],=KL0VU(5)[8],=KL0WF(5)[8], + =KL1KP(5)[8],=KL1NK(5)[8],=KL1NS(5)[8],=KL1OK(5)[8],=KL1PA(5)[8],=KL1SS(5)[8],=KL2AK(5)[8], + =KL2CX(5)[8],=KL2EY(5)[8],=KL2GG(5)[8],=KL2GP(5)[8],=KL2HV(5)[8],=KL2MQ(5)[8],=KL2NN(5)[8], + =KL2UM(5)[8],=KL2UQ(5)[8],=KL2XI(5)[8],=KL3BG(5)[8],=KL3EV(5)[8],=KL3HG(5)[8],=KL3IA(5)[8], + =KL3KB(5)[8],=KL3KG(5)[8],=KL3NR(5)[8],=KL3WM(5)[8],=KL3X(5)[8],=KL3XB(5)[8],=KL4CO(5)[8], + =KL4DD(5)[8],=KL4H(5)[8],=KL4J(5)[8],=KL5X(5)[8],=KL5YJ(5)[8],=KL7A(5)[8],=KL7AF(5)[8], + =KL7DA(5)[8],=KL7DA/4(5)[8],=KL7FO(5)[8],=KL7GLL(5)[8],=KL7H(5)[8],=KL7HIM(5)[8],=KL7HNY(5)[8], + =KL7HOT(5)[8],=KL7HQW(5)[8],=KL7HV(5)[8],=KL7HX(5)[8],=KL7I(5)[8],=KL7IEK(5)[8],=KL7IKZ(5)[8], + =KL7IV(5)[8],=KL7IVY(5)[8],=KL7IWF(5)[8],=KL7JDS(5)[8],=KL7JR(5)[8],=KL7LS(5)[8],=KL7MJ(5)[8], + =KL7NCO(5)[8],=KL7NL(5)[8],=KL7NL/4(5)[8],=KL7NT(5)[8],=KL7OO(5)[8],=KL7P/4(5)[8],=KL7PS(5)[8], + =KL7QH(5)[8],=KL7QU(5)[8],=KL7SR(5)[8],=KL7TZ(5)[8],=KL7USI/4(5)[8],=KL7XA(5)[8],=KL9A/1(5)[8], + =KP2AF(5)[8],=KP2AV(5)[8],=KP2AV/4(5)[8],=KP2CH(5)[8],=KP2CR(5)[8],=KP2L(5)[8],=KP2L/4(5)[8], + =KP2N(5)[8],=KP2R(5)[8],=KP2U(5)[8],=KP2US(5)[8],=KP2V(5)[8],=KP3AMG(5)[8],=KP3BL(5)[8], + =KP3BP(5)[8],=KP3SK(5)[8],=KP3U(5)[8],=KP4AD(5)[8],=KP4AOD(5)[8],=KP4AOD/4(5)[8],=KP4AYI(5)[8], + =KP4BBN(5)[8],=KP4BEC(5)[8],=KP4BM(5)[8],=KP4BOB(5)[8],=KP4CBP(5)[8],=KP4CEL(5)[8],=KP4CH(5)[8], + =KP4CPP(5)[8],=KP4CSJ(5)[8],=KP4CSZ(5)[8],=KP4CW(5)[8],=KP4CZ(5)[8],=KP4DAC(5)[8],=KP4DDS(5)[8], + =KP4DPQ(5)[8],=KP4DQS(5)[8],=KP4EDL(5)[8],=KP4EF(5)[8],=KP4EIA(5)[8],=KP4EMY(5)[8],=KP4ENK(5)[8], + =KP4EOR(5)[8],=KP4EOR/4(5)[8],=KP4ERT(5)[8],=KP4ESC(5)[8],=KP4FBS(5)[8],=KP4FGI(5)[8], + =KP4FIR(5)[8],=KP4FJE(5)[8],=KP4FLP(5)[8],=KP4FOF(5)[8],=KP4HE(5)[8],=KP4HN(5)[8],=KP4II(5)[8], + =KP4IRI(5)[8],=KP4IT(5)[8],=KP4JC(5)[8],=KP4JCC(5)[8],=KP4JOS(5)[8],=KP4JWR(5)[8],=KP4KA(5)[8], + =KP4KD(5)[8],=KP4KD/4(5)[8],=KP4KE/4(5)[8],=KP4KF(5)[8],=KP4LEU(5)[8],=KP4LF(5)[8],=KP4LMD(5)[8], + =KP4LQ(5)[8],=KP4LUV(5)[8],=KP4LX(5)[8],=KP4MA(5)[8],=KP4MHC(5)[8],=KP4MPR(5)[8],=KP4MSP(5)[8], + =KP4NI(5)[8],=KP4OO(5)[8],=KP4PC(5)[8],=KP4PEC(5)[8],=KP4PF(5)[8],=KP4PM(5)[8],=KP4PMD(5)[8], =KP4Q(5)[8],=KP4QT(5)[8],=KP4QT/4(5)[8],=KP4REY(5)[8],=KP4RGD(5)[8],=KP4RGT(5)[8],=KP4ROP(5)[8], - =KP4RRC(5)[8],=KP4RT(5)[8],=KP4RZ(5)[8],=KP4SU(5)[8],=KP4TL(5)[8],=KP4TR(5)[8],=KP4UFO(5)[8], - =KP4USA(5)[8],=KP4WK(5)[8],=KP4WW(5)[8],=KP4WY(5)[8],=KP4XP(5)[8],=KP4Y(5)[8],=KP4YLV(5)[8], - =KP4ZV(5)[8],=KP4ZX(5)[8],=NH2A(5)[8],=NH2BQ(5)[8],=NH2DB(5)[8],=NH2F(5)[8],=NH2GY(5)[8], - =NH6AU(5)[8],=NH6AX(5)[8],=NH6BD/4(5)[8],=NH6E(5)[8],=NH6GE(5)[8],=NH6GR(5)[8],=NH6HX(5)[8], - =NH6HX/4(5)[8],=NH6JX(5)[8],=NH6KI(5)[8],=NH6QR(5)[8],=NH6SR(5)[8],=NH6T(5)[8],=NH6TL(5)[8], - =NH7AA(5)[8],=NH7AQ(5)[8],=NH7AR(5)[8],=NH7FG(5)[8],=NH7OI(5)[8],=NH7T/4(5)[8],=NH7UN(5)[8], - =NH7XN(5)[8],=NH7YL(5)[8],=NL5L(5)[8],=NL7AJ(5)[8],=NL7AU(5)[8],=NL7AU/4(5)[8],=NL7BV(5)[8], - =NL7KL(5)[8],=NL7KX(5)[8],=NL7LO(5)[8],=NL7LR(5)[8],=NL7LY(5)[8],=NL7MD(5)[8],=NL7MR(5)[8], - =NL7OB(5)[8],=NL7OS(5)[8],=NL7P(5)[8],=NL7PV(5)[8],=NL7U(5)[8],=NL7VV(5)[8],=NL7VX(5)[8], - =NL7VX/4(5)[8],=NL7VX/M(5)[8],=NL7YZ(5)[8],=NP2B(5)[8],=NP2B/4(5)[8],=NP2BB(5)[8],=NP2BW(5)[8], - =NP2C(5)[8],=NP2C/4(5)[8],=NP2CB(5)[8],=NP2D(5)[8],=NP2DJ(5)[8],=NP2EI(5)[8],=NP2FJ(5)[8], - =NP2FT(5)[8],=NP2GN(5)[8],=NP2GW(5)[8],=NP2HQ(5)[8],=NP2HS(5)[8],=NP2HW(5)[8],=NP2IE(5)[8], - =NP2IF(5)[8],=NP2IJ(5)[8],=NP2IS(5)[8],=NP2IW(5)[8],=NP2IX(5)[8],=NP2JA(5)[8],=NP2JS(5)[8], - =NP2JV(5)[8],=NP2L(5)[8],=NP2LC(5)[8],=NP2MM(5)[8],=NP2MN(5)[8],=NP2MP(5)[8],=NP2MR(5)[8], - =NP2MR/4(5)[8],=NP2O(5)[8],=NP2OL(5)[8],=NP2OO(5)[8],=NP2OR(5)[8],=NP2PA(5)[8],=NP2R(5)[8], - =NP2T(5)[8],=NP2W(5)[8],=NP3AX(5)[8],=NP3BL(5)[8],=NP3CC(5)[8],=NP3CI(5)[8],=NP3CM(5)[8], - =NP3CT(5)[8],=NP3FR(5)[8],=NP3G(5)[8],=NP3HD(5)[8],=NP3HG(5)[8],=NP3HN(5)[8],=NP3HP(5)[8], - =NP3HU(5)[8],=NP3IL(5)[8],=NP3IU(5)[8],=NP3K(5)[8],=NP3KM(5)[8],=NP3MM(5)[8],=NP3MX(5)[8], - =NP3NC(5)[8],=NP3OW(5)[8],=NP3QT(5)[8],=NP3R(5)[8],=NP3ST(5)[8],=NP3TM(5)[8],=NP3UM(5)[8], - =NP3VJ(5)[8],=NP4AS(5)[8],=NP4AV(5)[8],=NP4CC(5)[8],=NP4CK(5)[8],=NP4CV(5)[8],=NP4DM(5)[8], - =NP4EM(5)[8],=NP4GH(5)[8],=NP4GW(5)[8],=NP4J(5)[8],=NP4JL(5)[8],=NP4JU(5)[8],=NP4KV(5)[8], - =NP4M(5)[8],=NP4ND(5)[8],=NP4PF(5)[8],=NP4RJ(5)[8],=NP4SY(5)[8],=NP4TR(5)[8],=NP4WT(5)[8], - =NP4XB(5)[8],=WH2AAT(5)[8],=WH2ABJ(5)[8],=WH2G(5)[8],=WH6A(5)[8],=WH6ACF(5)[8],=WH6AJS(5)[8], - =WH6AQ(5)[8],=WH6AVU(5)[8],=WH6AX(5)[8],=WH6BRQ(5)[8],=WH6CEF(5)[8],=WH6CMT(5)[8],=WH6CNC(5)[8], - =WH6CTC(5)[8],=WH6CXA(5)[8],=WH6CXT(5)[8],=WH6DBX(5)[8],=WH6DMJ(5)[8],=WH6DNF(5)[8],=WH6DOL(5)[8], - =WH6DUJ(5)[8],=WH6DXT(5)[8],=WH6DZ(5)[8],=WH6ECQ(5)[8],=WH6EFI(5)[8],=WH6EIK(5)[8],=WH6EIR(5)[8], - =WH6EKW(5)[8],=WH6ELG(5)[8],=WH6ELM(5)[8],=WH6ETE(5)[8],=WH6ETF(5)[8],=WH6FCP(5)[8],=WH6FGK(5)[8], - =WH6HA(5)[8],=WH6IF(5)[8],=WH6IZ(5)[8],=WH6J(5)[8],=WH6L(5)[8],=WH6LE(5)[8],=WH6LE/4(5)[8], - =WH6LE/M(5)[8],=WH6LE/P(5)[8],=WH6NE(5)[8],=WH6WX(5)[8],=WH6YH(5)[8],=WH6YH/4(5)[8],=WH6YM(5)[8], - =WH6ZF(5)[8],=WH7GD(5)[8],=WH7HX(5)[8],=WH7NI(5)[8],=WH7XK(5)[8],=WH7XU(5)[8],=WH7YL(5)[8], - =WH7YV(5)[8],=WH7ZM(5)[8],=WH9AAF(5)[8],=WL4X(5)[8],=WL7AUL(5)[8],=WL7AX(5)[8],=WL7BAL(5)[8], - =WL7CHA(5)[8],=WL7CIB(5)[8],=WL7CKJ(5)[8],=WL7COL(5)[8],=WL7CPA(5)[8],=WL7CQT(5)[8],=WL7CUY(5)[8], - =WL7E/4(5)[8],=WL7GV(5)[8],=WL7SR(5)[8],=WL7UN(5)[8],=WL7YX(5)[8],=WP2AGD(5)[8],=WP2AGO(5)[8], - =WP2AHC(5)[8],=WP2AIG(5)[8],=WP2BB(5)[8],=WP2C(5)[8],=WP2L(5)[8],=WP2MA(5)[8],=WP2P(5)[8], - =WP3AY(5)[8],=WP3BC(5)[8],=WP3DW(5)[8],=WP3HL(5)[8],=WP3JE(5)[8],=WP3JQ(5)[8],=WP3JU(5)[8], - =WP3K(5)[8],=WP3LE(5)[8],=WP3MB(5)[8],=WP3ME(5)[8],=WP3NIS(5)[8],=WP3O(5)[8],=WP3QE(5)[8], - =WP3ZA(5)[8],=WP4AIE(5)[8],=WP4AIL(5)[8],=WP4AIZ(5)[8],=WP4ALH(5)[8],=WP4AQK(5)[8],=WP4AVW(5)[8], - =WP4B(5)[8],=WP4BFP(5)[8],=WP4BGM(5)[8],=WP4BIN(5)[8],=WP4BJS(5)[8],=WP4BK(5)[8],=WP4BOC(5)[8], - =WP4BQV(5)[8],=WP4BXS(5)[8],=WP4CKW(5)[8],=WP4CLS(5)[8],=WP4CMH(5)[8],=WP4DC(5)[8],=WP4DCB(5)[8], - =WP4DFK(5)[8],=WP4DNE(5)[8],=WP4DPX(5)[8],=WP4ENX(5)[8],=WP4EXH(5)[8],=WP4FEI(5)[8],=WP4FRK(5)[8], - =WP4FS(5)[8],=WP4GAK(5)[8],=WP4GFH(5)[8],=WP4GX(5)[8],=WP4GYA(5)[8],=WP4HFZ(5)[8],=WP4HNN(5)[8], - =WP4HOX(5)[8],=WP4IF(5)[8],=WP4IJ(5)[8],=WP4IK(5)[8],=WP4ILP(5)[8],=WP4JC(5)[8],=WP4JKO(5)[8], - =WP4JQJ(5)[8],=WP4JSR(5)[8],=WP4JT(5)[8],=WP4KCJ(5)[8],=WP4KDH(5)[8],=WP4KFP(5)[8],=WP4KGI(5)[8], - =WP4KI(5)[8],=WP4KJV(5)[8],=WP4KPK(5)[8],=WP4KSK(5)[8],=WP4KTD(5)[8],=WP4LBK(5)[8],=WP4LDG(5)[8], - =WP4LDL(5)[8],=WP4LDP(5)[8],=WP4LE(5)[8],=WP4LEO(5)[8],=WP4LHA(5)[8],=WP4LTA(5)[8],=WP4MAE(5)[8], - =WP4MD(5)[8],=WP4MO(5)[8],=WP4MQF(5)[8],=WP4MWE(5)[8],=WP4MWS(5)[8],=WP4MXE(5)[8],=WP4MYG(5)[8], - =WP4MYK(5)[8],=WP4NAI(5)[8],=WP4NAQ(5)[8],=WP4NBF(5)[8],=WP4NBG(5)[8],=WP4NFU(5)[8],=WP4NKU(5)[8], - =WP4NLQ(5)[8],=WP4NVL(5)[8],=WP4NWV(5)[8],=WP4NWW(5)[8],=WP4O/4(5)[8],=WP4O/M(5)[8],=WP4OAT(5)[8], - =WP4OBD(5)[8],=WP4OBH(5)[8],=WP4ODR(5)[8],=WP4ODT(5)[8],=WP4OEO(5)[8],=WP4OFA(5)[8],=WP4OHJ(5)[8], - =WP4OLM(5)[8],=WP4OMG(5)[8],=WP4OMV(5)[8],=WP4ONR(5)[8],=WP4OOI(5)[8],=WP4OPD(5)[8],=WP4OPF(5)[8], - =WP4OPG(5)[8],=WP4OTP(5)[8],=WP4OXA(5)[8],=WP4P(5)[8],=WP4PR(5)[8],=WP4PUV(5)[8],=WP4PWV(5)[8], - =WP4PXG(5)[8],=WP4QER(5)[8],=WP4QGV(5)[8],=WP4QHU(5)[8],=WP4TD(5)[8],=WP4TX(5)[8],=WP4UC(5)[8], - =WP4UM(5)[8],=WP4VL(5)[8],=WP4VM(5)[8],=WP4YG(5)[8], + =KP4RRC(5)[8],=KP4RT(5)[8],=KP4RZ(5)[8],=KP4SU(5)[8],=KP4SWR(5)[8],=KP4TL(5)[8],=KP4TR(5)[8], + =KP4UFO(5)[8],=KP4USA(5)[8],=KP4WK(5)[8],=KP4WW(5)[8],=KP4WY(5)[8],=KP4XP(5)[8],=KP4Y(5)[8], + =KP4YLV(5)[8],=KP4ZV(5)[8],=KP4ZX(5)[8],=NH2A(5)[8],=NH2BQ(5)[8],=NH2DB(5)[8],=NH2F(5)[8], + =NH2GY(5)[8],=NH6AU(5)[8],=NH6AX(5)[8],=NH6BD/4(5)[8],=NH6E(5)[8],=NH6GE(5)[8],=NH6GR(5)[8], + =NH6HX(5)[8],=NH6HX/4(5)[8],=NH6JX(5)[8],=NH6KI(5)[8],=NH6QR(5)[8],=NH6SR(5)[8],=NH6T(5)[8], + =NH6TL(5)[8],=NH7AA(5)[8],=NH7AQ(5)[8],=NH7AR(5)[8],=NH7FG(5)[8],=NH7FV(5)[8],=NH7OI(5)[8], + =NH7T/4(5)[8],=NH7UN(5)[8],=NH7XN(5)[8],=NH7YL(5)[8],=NL7AJ(5)[8],=NL7AU(5)[8],=NL7AU/4(5)[8], + =NL7BV(5)[8],=NL7KL(5)[8],=NL7KX(5)[8],=NL7LO(5)[8],=NL7LR(5)[8],=NL7LY(5)[8],=NL7MD(5)[8], + =NL7MR(5)[8],=NL7OB(5)[8],=NL7OS(5)[8],=NL7P(5)[8],=NL7PV(5)[8],=NL7U(5)[8],=NL7VV(5)[8], + =NL7VX(5)[8],=NL7VX/4(5)[8],=NL7VX/M(5)[8],=NL7YZ(5)[8],=NP2B(5)[8],=NP2B/4(5)[8],=NP2BB(5)[8], + =NP2BW(5)[8],=NP2C(5)[8],=NP2C/4(5)[8],=NP2CB(5)[8],=NP2D(5)[8],=NP2DB(5)[8],=NP2DJ(5)[8], + =NP2EI(5)[8],=NP2FJ(5)[8],=NP2FT(5)[8],=NP2GN(5)[8],=NP2GW(5)[8],=NP2HQ(5)[8],=NP2HS(5)[8], + =NP2HW(5)[8],=NP2IE(5)[8],=NP2IF(5)[8],=NP2IJ(5)[8],=NP2IS(5)[8],=NP2IW(5)[8],=NP2IX(5)[8], + =NP2JA(5)[8],=NP2JS(5)[8],=NP2JV(5)[8],=NP2L(5)[8],=NP2LC(5)[8],=NP2MM(5)[8],=NP2MN(5)[8], + =NP2MP(5)[8],=NP2MR(5)[8],=NP2MR/4(5)[8],=NP2O(5)[8],=NP2OL(5)[8],=NP2OO(5)[8],=NP2OR(5)[8], + =NP2PA(5)[8],=NP2R(5)[8],=NP2T(5)[8],=NP2W(5)[8],=NP3AX(5)[8],=NP3BL(5)[8],=NP3CC(5)[8], + =NP3CI(5)[8],=NP3CM(5)[8],=NP3CT(5)[8],=NP3FR(5)[8],=NP3G(5)[8],=NP3HD(5)[8],=NP3HG(5)[8], + =NP3HN(5)[8],=NP3HP(5)[8],=NP3HU(5)[8],=NP3IL(5)[8],=NP3IU(5)[8],=NP3K(5)[8],=NP3KM(5)[8], + =NP3MM(5)[8],=NP3MX(5)[8],=NP3NC(5)[8],=NP3OW(5)[8],=NP3QT(5)[8],=NP3R(5)[8],=NP3ST(5)[8], + =NP3TM(5)[8],=NP3UM(5)[8],=NP3VJ(5)[8],=NP4AS(5)[8],=NP4AV(5)[8],=NP4CC(5)[8],=NP4CK(5)[8], + =NP4CV(5)[8],=NP4DM(5)[8],=NP4EM(5)[8],=NP4GH(5)[8],=NP4GW(5)[8],=NP4J(5)[8],=NP4JL(5)[8], + =NP4JU(5)[8],=NP4KV(5)[8],=NP4M(5)[8],=NP4ND(5)[8],=NP4PF(5)[8],=NP4RJ(5)[8],=NP4SY(5)[8], + =NP4TR(5)[8],=NP4WT(5)[8],=NP4XB(5)[8],=WH2AAT(5)[8],=WH2ABJ(5)[8],=WH2G(5)[8],=WH6A(5)[8], + =WH6ACF(5)[8],=WH6AJS(5)[8],=WH6AQ(5)[8],=WH6AVU(5)[8],=WH6AX(5)[8],=WH6BRQ(5)[8],=WH6CEF(5)[8], + =WH6CMT(5)[8],=WH6CNC(5)[8],=WH6CTC(5)[8],=WH6CXA(5)[8],=WH6CXT(5)[8],=WH6DBX(5)[8],=WH6DMJ(5)[8], + =WH6DNF(5)[8],=WH6DOL(5)[8],=WH6DUJ(5)[8],=WH6DXT(5)[8],=WH6DZ(5)[8],=WH6ECQ(5)[8],=WH6EFI(5)[8], + =WH6EIK(5)[8],=WH6EIR(5)[8],=WH6EKW(5)[8],=WH6ELG(5)[8],=WH6ELM(5)[8],=WH6ETE(5)[8],=WH6ETF(5)[8], + =WH6FCP(5)[8],=WH6FGK(5)[8],=WH6HA(5)[8],=WH6IF(5)[8],=WH6IZ(5)[8],=WH6J(5)[8],=WH6L(5)[8], + =WH6LE(5)[8],=WH6LE/4(5)[8],=WH6LE/M(5)[8],=WH6LE/P(5)[8],=WH6NE(5)[8],=WH6WX(5)[8],=WH6YH(5)[8], + =WH6YH/4(5)[8],=WH6YM(5)[8],=WH6ZF(5)[8],=WH7GD(5)[8],=WH7HX(5)[8],=WH7NI(5)[8],=WH7XK(5)[8], + =WH7XU(5)[8],=WH7YL(5)[8],=WH7YV(5)[8],=WH7ZM(5)[8],=WH9AAF(5)[8],=WL4X(5)[8],=WL7AUL(5)[8], + =WL7AX(5)[8],=WL7BAL(5)[8],=WL7CHA(5)[8],=WL7CIB(5)[8],=WL7CKJ(5)[8],=WL7COL(5)[8],=WL7CPA(5)[8], + =WL7CQT(5)[8],=WL7CUY(5)[8],=WL7E/4(5)[8],=WL7GV(5)[8],=WL7SR(5)[8],=WL7UN(5)[8],=WL7YX(5)[8], + =WP2AGD(5)[8],=WP2AGO(5)[8],=WP2AHC(5)[8],=WP2AIG(5)[8],=WP2BB(5)[8],=WP2C(5)[8],=WP2L(5)[8], + =WP2MA(5)[8],=WP2P(5)[8],=WP3AY(5)[8],=WP3BC(5)[8],=WP3DW(5)[8],=WP3HL(5)[8],=WP3JE(5)[8], + =WP3JQ(5)[8],=WP3JU(5)[8],=WP3K(5)[8],=WP3LE(5)[8],=WP3MB(5)[8],=WP3ME(5)[8],=WP3NIS(5)[8], + =WP3O(5)[8],=WP3QE(5)[8],=WP3ZA(5)[8],=WP4AIE(5)[8],=WP4AIL(5)[8],=WP4AIZ(5)[8],=WP4ALH(5)[8], + =WP4AQK(5)[8],=WP4AVW(5)[8],=WP4B(5)[8],=WP4BFP(5)[8],=WP4BGM(5)[8],=WP4BIN(5)[8],=WP4BJS(5)[8], + =WP4BK(5)[8],=WP4BOC(5)[8],=WP4BQV(5)[8],=WP4BXS(5)[8],=WP4CKW(5)[8],=WP4CLS(5)[8],=WP4CMH(5)[8], + =WP4DC(5)[8],=WP4DCB(5)[8],=WP4DFK(5)[8],=WP4DMV(5)[8],=WP4DNE(5)[8],=WP4DPX(5)[8],=WP4ENX(5)[8], + =WP4EXH(5)[8],=WP4FEI(5)[8],=WP4FRK(5)[8],=WP4FS(5)[8],=WP4GAK(5)[8],=WP4GFH(5)[8],=WP4GX(5)[8], + =WP4GYA(5)[8],=WP4HFZ(5)[8],=WP4HNN(5)[8],=WP4HOX(5)[8],=WP4IF(5)[8],=WP4IJ(5)[8],=WP4IK(5)[8], + =WP4ILP(5)[8],=WP4INP(5)[8],=WP4JC(5)[8],=WP4JKO(5)[8],=WP4JQJ(5)[8],=WP4JSR(5)[8],=WP4JT(5)[8], + =WP4KCJ(5)[8],=WP4KDH(5)[8],=WP4KFP(5)[8],=WP4KGI(5)[8],=WP4KI(5)[8],=WP4KJV(5)[8],=WP4KPK(5)[8], + =WP4KSK(5)[8],=WP4KTD(5)[8],=WP4LBK(5)[8],=WP4LDG(5)[8],=WP4LDL(5)[8],=WP4LDP(5)[8],=WP4LE(5)[8], + =WP4LEO(5)[8],=WP4LHA(5)[8],=WP4LTA(5)[8],=WP4MAE(5)[8],=WP4MD(5)[8],=WP4MQF(5)[8],=WP4MWE(5)[8], + =WP4MWS(5)[8],=WP4MXE(5)[8],=WP4MYG(5)[8],=WP4MYK(5)[8],=WP4NAI(5)[8],=WP4NAQ(5)[8],=WP4NBF(5)[8], + =WP4NBG(5)[8],=WP4NFU(5)[8],=WP4NKU(5)[8],=WP4NLQ(5)[8],=WP4NVL(5)[8],=WP4NWV(5)[8],=WP4NWW(5)[8], + =WP4O/4(5)[8],=WP4O/M(5)[8],=WP4OAT(5)[8],=WP4OBD(5)[8],=WP4OBH(5)[8],=WP4ODR(5)[8],=WP4ODT(5)[8], + =WP4OEO(5)[8],=WP4OFA(5)[8],=WP4OFL(5)[8],=WP4OHJ(5)[8],=WP4OLM(5)[8],=WP4OMG(5)[8],=WP4OMV(5)[8], + =WP4ONR(5)[8],=WP4OOI(5)[8],=WP4OPD(5)[8],=WP4OPF(5)[8],=WP4OTP(5)[8],=WP4OXA(5)[8],=WP4P(5)[8], + =WP4PR(5)[8],=WP4PUV(5)[8],=WP4PWV(5)[8],=WP4PXG(5)[8],=WP4QER(5)[8],=WP4QGV(5)[8],=WP4QHU(5)[8], + =WP4TD(5)[8],=WP4TX(5)[8],=WP4UC(5)[8],=WP4UM(5)[8],=WP4VL(5)[8],=WP4VM(5)[8],=WP4YG(5)[8], AA5(4)[7],AB5(4)[7],AC5(4)[7],AD5(4)[7],AE5(4)[7],AF5(4)[7],AG5(4)[7],AI5(4)[7],AJ5(4)[7], AK5(4)[7],K5(4)[7],KA5(4)[7],KB5(4)[7],KC5(4)[7],KD5(4)[7],KE5(4)[7],KF5(4)[7],KG5(4)[7], KI5(4)[7],KJ5(4)[7],KK5(4)[7],KM5(4)[7],KN5(4)[7],KO5(4)[7],KQ5(4)[7],KR5(4)[7],KS5(4)[7], @@ -1368,44 +1375,45 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =AL7V(4)[7],=KH0BZ(4)[7],=KH0CE(4)[7],=KH0CU(4)[7],=KH0DW(4)[7],=KH2AI(4)[7],=KH2BH(4)[7], =KH2DF(4)[7],=KH2DF/5(4)[7],=KH2TB(4)[7],=KH2XD(4)[7],=KH2XO(4)[7],=KH2YO(4)[7],=KH6ABA(4)[7], =KH6CA(4)[7],=KH6DAN(4)[7],=KH6GGC(4)[7],=KH6HPQ(4)[7],=KH6IDF(4)[7],=KH6II(4)[7],=KH6IO(4)[7], - =KH6ITY/M(4)[7],=KH6JCV(4)[7],=KH6JIQ(4)[7],=KH6JTE(4)[7],=KH6JTM(4)[7],=KH6JVL(4)[7], - =KH6KG/5(4)[7],=KH6LL(4)[7],=KH6LX(4)[7],=KH6MB/5(4)[7],=KH6SP/5(4)[7],=KH6SZ(4)[7],=KH6TG(4)[7], - =KH6UW(4)[7],=KH7CF(4)[7],=KH7FB(4)[7],=KH7IC(4)[7],=KH7JE(4)[7],=KH7QL(4)[7],=KH7QO(4)[7], - =KH8CG(4)[7],=KH9AE(4)[7],=KL0EX(4)[7],=KL0HU(4)[7],=KL0PG(4)[7],=KL0XI(4)[7],=KL1DA(4)[7], - =KL1DJ(4)[7],=KL1DY(4)[7],=KL1MM(4)[7],=KL1RX(4)[7],=KL1TS(4)[7],=KL1UR(4)[7],=KL1WG(4)[7], - =KL1WO(4)[7],=KL1XK(4)[7],=KL1Y(4)[7],=KL1ZW(4)[7],=KL2AX(4)[7],=KL2AX/5(4)[7],=KL2CD(4)[7], - =KL2HC(4)[7],=KL2HN(4)[7],=KL2MI(4)[7],=KL2RA(4)[7],=KL2RB(4)[7],=KL2TV(4)[7],=KL2UO(4)[7], - =KL2UP(4)[7],=KL2VA(4)[7],=KL2ZJ(4)[7],=KL2ZK(4)[7],=KL3DB(4)[7],=KL3DP(4)[7],=KL3HK(4)[7], - =KL3HZ(4)[7],=KL3JL(4)[7],=KL3KH(4)[7],=KL3KI(4)[7],=KL3TB(4)[7],=KL4JQ(4)[7],=KL5L(4)[7], - =KL5Z(4)[7],=KL7AH(4)[7],=KL7AU(4)[7],=KL7AX(4)[7],=KL7BCD(4)[7],=KL7BL(4)[7],=KL7BX(4)[7], - =KL7BZ/5(4)[7],=KL7BZL(4)[7],=KL7CD(4)[7],=KL7DB(4)[7],=KL7EBE(4)[7],=KL7EMH(4)[7], - =KL7EMH/M(4)[7],=KL7EQQ(4)[7],=KL7F(4)[7],=KL7FB(4)[7],=KL7FHX(4)[7],=KL7FLY(4)[7],=KL7FQQ(4)[7], - =KL7FQR(4)[7],=KL7GNW(4)[7],=KL7HH(4)[7],=KL7HJZ(4)[7],=KL7IDM(4)[7],=KL7IK(4)[7],=KL7ITF(4)[7], - =KL7IWU(4)[7],=KL7IZW(4)[7],=KL7JAR(4)[7],=KL7JEX(4)[7],=KL7JIU(4)[7],=KL7JR/5(4)[7],=KL7JW(4)[7], - =KL7LJ(4)[7],=KL7LY(4)[7],=KL7MA(4)[7],=KL7ME(4)[7],=KL7ML(4)[7],=KL7NE(4)[7],=KL7NI(4)[7], - =KL7OI(4)[7],=KL7PZ(4)[7],=KL7QC(4)[7],=KL7SG(4)[7],=KL7TN/5(4)[7],=KL7UHF(4)[7],=KL7USI/5(4)[7], - =KL7XP(4)[7],=KL7XS(4)[7],=KL7YY/5(4)[7],=KP2AZ(4)[7],=KP4CV(4)[7],=KP4DJT(4)[7],=KP4FF(4)[7], - =KP4FFW(4)[7],=KP4GMC(4)[7],=KP4JE(4)[7],=KP4JG(4)[7],=KP4JY(4)[7],=KP4YP(4)[7],=KP4YY(4)[7], - =NH0V/5(4)[7],=NH2LP(4)[7],=NH6AZ(4)[7],=NH6CJ(4)[7],=NH6EF(4)[7],=NH6FA(4)[7],=NH6L(4)[7], - =NH6MG(4)[7],=NH6TD(4)[7],=NH6VB(4)[7],=NH6VJ(4)[7],=NH6WL(4)[7],=NH6WL/5(4)[7],=NH7FO(4)[7], - =NH7MV(4)[7],=NH7PZ(4)[7],=NH7R(4)[7],=NH7RO(4)[7],=NH7RO/5(4)[7],=NH7TR(4)[7],=NH7VA(4)[7], - =NH7WB(4)[7],=NL5J(4)[7],=NL7AX(4)[7],=NL7C(4)[7],=NL7CO(4)[7],=NL7CO/5(4)[7],=NL7DC(4)[7], - =NL7HB(4)[7],=NL7IE(4)[7],=NL7JH(4)[7],=NL7JI(4)[7],=NL7JV(4)[7],=NL7K/5(4)[7],=NL7KB(4)[7], - =NL7LE(4)[7],=NL7NP(4)[7],=NL7OM(4)[7],=NL7PD(4)[7],=NL7RQ(4)[7],=NL7RQ/5(4)[7],=NL7SI(4)[7], - =NL7TO(4)[7],=NL7ZL(4)[7],=NP2EE(4)[7],=NP2PR(4)[7],=NP2RA(4)[7],=NP3BA(4)[7],=NP3CV(4)[7], - =NP3NT(4)[7],=NP3PG(4)[7],=NP3RG(4)[7],=NP3SU(4)[7],=NP3TY(4)[7],=NP4EA(4)[7],=NP4NQ(4)[7], - =NP4NQ/5(4)[7],=NP4RW(4)[7],=NP4RZ(4)[7],=WH2ACT(4)[7],=WH2ACT/5(4)[7],=WH6ARN(4)[7], - =WH6BYJ(4)[7],=WH6BYP(4)[7],=WH6CCQ(4)[7],=WH6CDU(4)[7],=WH6CUL(4)[7],=WH6DMP(4)[7],=WH6DZU(4)[7], - =WH6ECJ(4)[7],=WH6EMW(4)[7],=WH6EOF(4)[7],=WH6ERS(4)[7],=WH6EUA(4)[7],=WH6EXQ(4)[7],=WH6FAD(4)[7], - =WH6FGM(4)[7],=WH6FZ/5(4)[7],=WH6FZL(4)[7],=WH6FZN(4)[7],=WH6GBC(4)[7],=WH6GEA(4)[7],=WH6KK(4)[7], - =WH6L/5(4)[7],=WH7DC(4)[7],=WH7DW(4)[7],=WH7OK(4)[7],=WH7R(4)[7],=WH7YM(4)[7],=WH7YN(4)[7], - =WL3WX(4)[7],=WL5H(4)[7],=WL7AIU(4)[7],=WL7AWC(4)[7],=WL7BBV(4)[7],=WL7BKF(4)[7],=WL7BPY(4)[7], - =WL7CA(4)[7],=WL7CJA(4)[7],=WL7CJC(4)[7],=WL7CQE(4)[7],=WL7CTP(4)[7],=WL7CTQ(4)[7],=WL7D(4)[7], - =WL7FC(4)[7],=WL7FE(4)[7],=WL7FT(4)[7],=WL7FT/5(4)[7],=WL7K/5(4)[7],=WL7ME(4)[7],=WL7MQ/5(4)[7], - =WL7OP(4)[7],=WL7OU(4)[7],=WL7SG(4)[7],=WL7W(4)[7],=WL7WN(4)[7],=WL7XI(4)[7],=WL7XR(4)[7], - =WP2AHG(4)[7],=WP2N(4)[7],=WP2U(4)[7],=WP2WP(4)[7],=WP3AL(4)[7],=WP3HG(4)[7],=WP3JM(4)[7], - =WP4A(4)[7],=WP4ADA(4)[7],=WP4APJ(4)[7],=WP4BAB(4)[7],=WP4BAT(4)[7],=WP4CJY(4)[7],=WP4EVA(4)[7], - =WP4EVL(4)[7],=WP4IXT(4)[7],=WP4KSP(4)[7],=WP4KTF(4)[7],=WP4KUW(4)[7],=WP4LKA(4)[7],=WP4MJP(4)[7], + =KH6ITY/M(4)[7],=KH6JCV(4)[7],=KH6JIQ(4)[7],=KH6JTE(4)[7],=KH6JTM(4)[7],=KH6JUM(4)[7], + =KH6JVL(4)[7],=KH6KG/5(4)[7],=KH6LL(4)[7],=KH6LX(4)[7],=KH6MB/5(4)[7],=KH6SP/5(4)[7],=KH6SZ(4)[7], + =KH6TG(4)[7],=KH6UW(4)[7],=KH7CF(4)[7],=KH7FB(4)[7],=KH7IC(4)[7],=KH7JE(4)[7],=KH7QL(4)[7], + =KH7QO(4)[7],=KH8CG(4)[7],=KH9AE(4)[7],=KL0EX(4)[7],=KL0HU(4)[7],=KL0PG(4)[7],=KL0WH(4)[7], + =KL0XI(4)[7],=KL1DA(4)[7],=KL1DJ(4)[7],=KL1DY(4)[7],=KL1MM(4)[7],=KL1RX(4)[7],=KL1TS(4)[7], + =KL1UR(4)[7],=KL1WG(4)[7],=KL1WO(4)[7],=KL1XK(4)[7],=KL1Y(4)[7],=KL1ZW(4)[7],=KL2AX(4)[7], + =KL2AX/5(4)[7],=KL2CD(4)[7],=KL2HC(4)[7],=KL2HN(4)[7],=KL2MI(4)[7],=KL2OY(4)[7],=KL2RA(4)[7], + =KL2RB(4)[7],=KL2TV(4)[7],=KL2UO(4)[7],=KL2UP(4)[7],=KL2VA(4)[7],=KL2ZJ(4)[7],=KL2ZK(4)[7], + =KL3DB(4)[7],=KL3DP(4)[7],=KL3HK(4)[7],=KL3HX(4)[7],=KL3HZ(4)[7],=KL3JL(4)[7],=KL3KH(4)[7], + =KL3KI(4)[7],=KL3TB(4)[7],=KL4JQ(4)[7],=KL5L(4)[7],=KL5Z(4)[7],=KL7AH(4)[7],=KL7AU(4)[7], + =KL7AX(4)[7],=KL7BCD(4)[7],=KL7BL(4)[7],=KL7BX(4)[7],=KL7BZ/5(4)[7],=KL7BZL(4)[7],=KL7CD(4)[7], + =KL7DB(4)[7],=KL7EBE(4)[7],=KL7EMH(4)[7],=KL7EMH/M(4)[7],=KL7EQQ(4)[7],=KL7F(4)[7],=KL7FB(4)[7], + =KL7FHX(4)[7],=KL7FLY(4)[7],=KL7FQR(4)[7],=KL7GNW(4)[7],=KL7HH(4)[7],=KL7HJZ(4)[7],=KL7IDM(4)[7], + =KL7IK(4)[7],=KL7ITF(4)[7],=KL7IWU(4)[7],=KL7IZW(4)[7],=KL7JAR(4)[7],=KL7JEX(4)[7],=KL7JIU(4)[7], + =KL7JR/5(4)[7],=KL7JW(4)[7],=KL7LJ(4)[7],=KL7LY(4)[7],=KL7MA(4)[7],=KL7ME(4)[7],=KL7ML(4)[7], + =KL7NE(4)[7],=KL7NI(4)[7],=KL7OI(4)[7],=KL7PZ(4)[7],=KL7QC(4)[7],=KL7SG(4)[7],=KL7TN/5(4)[7], + =KL7UHF(4)[7],=KL7USI/5(4)[7],=KL7XP(4)[7],=KL7XS(4)[7],=KL7YY/5(4)[7],=KP2AZ(4)[7],=KP4CV(4)[7], + =KP4DJT(4)[7],=KP4FF(4)[7],=KP4FFW(4)[7],=KP4GMC(4)[7],=KP4JE(4)[7],=KP4JG(4)[7],=KP4YP(4)[7], + =KP4YY(4)[7],=NH0V/5(4)[7],=NH2BV(4)[7],=NH2LP(4)[7],=NH6AZ(4)[7],=NH6CJ(4)[7],=NH6EF(4)[7], + =NH6FA(4)[7],=NH6L(4)[7],=NH6MG(4)[7],=NH6TD(4)[7],=NH6VB(4)[7],=NH6VJ(4)[7],=NH6WL(4)[7], + =NH6WL/5(4)[7],=NH7FO(4)[7],=NH7MV(4)[7],=NH7PZ(4)[7],=NH7R(4)[7],=NH7RO(4)[7],=NH7RO/5(4)[7], + =NH7TR(4)[7],=NH7VA(4)[7],=NH7WB(4)[7],=NL5J(4)[7],=NL7AX(4)[7],=NL7C(4)[7],=NL7CO(4)[7], + =NL7CO/5(4)[7],=NL7DC(4)[7],=NL7HB(4)[7],=NL7IE(4)[7],=NL7JH(4)[7],=NL7JI(4)[7],=NL7JV(4)[7], + =NL7JZ(4)[7],=NL7K/5(4)[7],=NL7KB(4)[7],=NL7LE(4)[7],=NL7NP(4)[7],=NL7OM(4)[7],=NL7PD(4)[7], + =NL7RQ(4)[7],=NL7RQ/5(4)[7],=NL7SI(4)[7],=NL7TO(4)[7],=NL7WY(4)[7],=NL7ZL(4)[7],=NP2EE(4)[7], + =NP2PR(4)[7],=NP2RA(4)[7],=NP3BA(4)[7],=NP3CV(4)[7],=NP3NT(4)[7],=NP3PG(4)[7],=NP3RG(4)[7], + =NP3SU(4)[7],=NP3TY(4)[7],=NP4EA(4)[7],=NP4NQ(4)[7],=NP4NQ/5(4)[7],=NP4RW(4)[7],=NP4RZ(4)[7], + =WH2ACT(4)[7],=WH2ACT/5(4)[7],=WH6ARN(4)[7],=WH6BYJ(4)[7],=WH6BYP(4)[7],=WH6CCQ(4)[7], + =WH6CDU(4)[7],=WH6CUL(4)[7],=WH6DMP(4)[7],=WH6DZU(4)[7],=WH6ECJ(4)[7],=WH6EMW(4)[7],=WH6EOF(4)[7], + =WH6ERS(4)[7],=WH6EUA(4)[7],=WH6EXQ(4)[7],=WH6FAD(4)[7],=WH6FGM(4)[7],=WH6FZ/5(4)[7], + =WH6FZL(4)[7],=WH6FZN(4)[7],=WH6GBC(4)[7],=WH6GEA(4)[7],=WH6GL(4)[7],=WH6KK(4)[7],=WH6L/5(4)[7], + =WH7DC(4)[7],=WH7DW(4)[7],=WH7OK(4)[7],=WH7R(4)[7],=WH7YM(4)[7],=WH7YN(4)[7],=WL3WX(4)[7], + =WL5H(4)[7],=WL7AIU(4)[7],=WL7AWC(4)[7],=WL7BBV(4)[7],=WL7BKF(4)[7],=WL7BPY(4)[7],=WL7CA(4)[7], + =WL7CJA(4)[7],=WL7CJC(4)[7],=WL7CQE(4)[7],=WL7CTP(4)[7],=WL7CTQ(4)[7],=WL7D(4)[7],=WL7FC(4)[7], + =WL7FE(4)[7],=WL7FT(4)[7],=WL7FT/5(4)[7],=WL7K/5(4)[7],=WL7ME(4)[7],=WL7MQ/5(4)[7],=WL7OP(4)[7], + =WL7OU(4)[7],=WL7SG(4)[7],=WL7W(4)[7],=WL7WN(4)[7],=WL7XI(4)[7],=WL7XR(4)[7],=WP2AHG(4)[7], + =WP2N(4)[7],=WP2U(4)[7],=WP2WP(4)[7],=WP3AL(4)[7],=WP3HG(4)[7],=WP3JM(4)[7],=WP4A(4)[7], + =WP4ADA(4)[7],=WP4APJ(4)[7],=WP4BAB(4)[7],=WP4BAT(4)[7],=WP4CJY(4)[7],=WP4EVA(4)[7],=WP4EVL(4)[7], + =WP4IXT(4)[7],=WP4IYJ(4)[7],=WP4KSP(4)[7],=WP4KTF(4)[7],=WP4KUW(4)[7],=WP4LKA(4)[7],=WP4MJP(4)[7], =WP4MYI(4)[7],=WP4MZR(4)[7],=WP4NAK(4)[7],=WP4NEP(4)[7],=WP4NQA(4)[7],=WP4NQL(4)[7],=WP4OUE(4)[7], =WP4QLB(4)[7],=WP4RON(4)[7], AA6(3)[6],AB6(3)[6],AC6(3)[6],AD6(3)[6],AE6(3)[6],AF6(3)[6],AG6(3)[6],AI6(3)[6],AJ6(3)[6], @@ -1434,43 +1442,44 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =KH6GKR(3)[6],=KH6HH(3)[6],=KH6HJE(3)[6],=KH6HOU(3)[6],=KH6IKH(3)[6],=KH6IKL(3)[6],=KH6IP(3)[6], =KH6IPJ(3)[6],=KH6JCT(3)[6],=KH6JGD(3)[6],=KH6JJN(3)[6],=KH6JJN/P(3)[6],=KH6JN(3)[6], =KH6JNK(3)[6],=KH6JR(3)[6],=KH6JRB(3)[6],=KH6JRC(3)[6],=KH6JS(3)[6],=KH6JUZ(3)[6],=KH6JVS(3)[6], - =KH6JWG(3)[6],=KH6KT(3)[6],=KH6LO(3)[6],=KH6MV(3)[6],=KH6N(3)[6],=KH6NG(3)[6],=KH6O(3)[6], - =KH6OK(3)[6],=KH6PGA/6(3)[6],=KH6PM(3)[6],=KH6PW(3)[6],=KH6SC(3)[6],=KH6TO(3)[6],=KH6UQ(3)[6], - =KH6USA(3)[6],=KH6VC(3)[6],=KH6VC/6(3)[6],=KH6VZ(3)[6],=KH6WL(3)[6],=KH6WZ(3)[6],=KH7CD/6(3)[6], - =KH7CO(3)[6],=KH7CS(3)[6],=KH7EM(3)[6],=KH7I(3)[6],=KH7IZ(3)[6],=KH7JI(3)[6],=KH7JR(3)[6], - =KH7NS(3)[6],=KH7QS(3)[6],=KH7QU(3)[6],=KH7RB(3)[6],=KH7TJ(3)[6],=KH7TJ/6(3)[6],=KH7TR(3)[6], - =KH7TW(3)[6],=KH7VD(3)[6],=KH7VE(3)[6],=KH7WN(3)[6],=KH7WO(3)[6],=KH7WP(3)[6],=KH7WR(3)[6], - =KH7WS(3)[6],=KH7XX/6(3)[6],=KH7Y(3)[6],=KH7Y/6(3)[6],=KH8A(3)[6],=KH8AF(3)[6],=KH8FL(3)[6], - =KL0AA(3)[6],=KL0AF(3)[6],=KL0AL(3)[6],=KL0HZ(3)[6],=KL0IF(3)[6],=KL1NER(3)[6],=KL1WE/6(3)[6], - =KL2CQ(3)[6],=KL2WL(3)[6],=KL3IM(3)[6],=KL3JY/6(3)[6],=KL3YH(3)[6],=KL4GW(3)[6],=KL4LV(3)[6], - =KL4NZ(3)[6],=KL4QW(3)[6],=KL4UZ(3)[6],=KL7AK(3)[6],=KL7CE/6(3)[6],=KL7CM(3)[6],=KL7CN(3)[6], - =KL7CW/6(3)[6],=KL7CX(3)[6],=KL7DJ(3)[6],=KL7EAE(3)[6],=KL7EAL(3)[6],=KL7GRG(3)[6],=KL7HQR(3)[6], - =KL7HQR/6(3)[6],=KL7HSY(3)[6],=KL7ID(3)[6],=KL7IDY/6(3)[6],=KL7ISB(3)[6],=KL7ISN(3)[6], - =KL7JBE(3)[6],=KL7KNP(3)[6],=KL7KX(3)[6],=KL7MF(3)[6],=KL7MF/6(3)[6],=KL7MF/M(3)[6],=KL7RT(3)[6], - =KL7SL(3)[6],=KL7SY(3)[6],=KL7VU(3)[6],=KL7VU/6(3)[6],=KP2BK(3)[6],=KP3BN(3)[6],=KP3YL(3)[6], - =KP4BR(3)[6],=KP4DSO(3)[6],=KP4DX/6(3)[6],=KP4ENM(3)[6],=KP4ERR(3)[6],=KP4FBT(3)[6],=KP4MD(3)[6], - =KP4UB(3)[6],=KP4ZW(3)[6],=NH0C(3)[6],=NH0X(3)[6],=NH2AR(3)[6],=NH2BD(3)[6],=NH2BV(3)[6], - =NH2CM(3)[6],=NH2FT(3)[6],=NH2FX(3)[6],=NH2R(3)[6],=NH2S(3)[6],=NH6AC(3)[6],=NH6AE(3)[6], - =NH6AF(3)[6],=NH6FV(3)[6],=NH6FX(3)[6],=NH6NG(3)[6],=NH6RG(3)[6],=NH6SF(3)[6],=NH6ST(3)[6], - =NH6WR(3)[6],=NH7AG(3)[6],=NH7EM(3)[6],=NH7FW(3)[6],=NH7G(3)[6],=NH7IG(3)[6],=NH7IH(3)[6], - =NH7PM(3)[6],=NH7QV(3)[6],=NH7RT(3)[6],=NH7ST(3)[6],=NH7SU(3)[6],=NH7WC(3)[6],=NH7WE(3)[6], - =NH7WG(3)[6],=NH7ZE(3)[6],=NL7GE(3)[6],=NL7IB(3)[6],=NL7LC(3)[6],=NL7OP(3)[6],=NL7RO(3)[6], - =NL7TP(3)[6],=NL7YB(3)[6],=NP2KY(3)[6],=NP4AB(3)[6],=NP4AI/6(3)[6],=NP4IW(3)[6],=NP4IW/6(3)[6], - =NP4MV(3)[6],=NP4XE(3)[6],=WH0AAZ(3)[6],=WH0M(3)[6],=WH2ABS(3)[6],=WH2ALN(3)[6],=WH2K(3)[6], - =WH6AAJ(3)[6],=WH6AFM(3)[6],=WH6ANA(3)[6],=WH6ASW/M(3)[6],=WH6BYT(3)[6],=WH6CIL(3)[6], - =WH6CK(3)[6],=WH6CO(3)[6],=WH6CPO(3)[6],=WH6CPT(3)[6],=WH6CRE(3)[6],=WH6CSG(3)[6],=WH6CUF(3)[6], - =WH6CUU(3)[6],=WH6CUX(3)[6],=WH6CVJ(3)[6],=WH6CWS(3)[6],=WH6CZF(3)[6],=WH6CZH(3)[6],=WH6DHN(3)[6], - =WH6DSK(3)[6],=WH6DVM(3)[6],=WH6DVN(3)[6],=WH6DVX(3)[6],=WH6DYA(3)[6],=WH6DZV(3)[6],=WH6DZY(3)[6], - =WH6EAR(3)[6],=WH6EEZ(3)[6],=WH6EHY(3)[6],=WH6EKB(3)[6],=WH6ENG(3)[6],=WH6EUH(3)[6],=WH6EZW(3)[6], - =WH6FTF(3)[6],=WH6FTO(3)[6],=WH6JO(3)[6],=WH6LZ(3)[6],=WH6MC(3)[6],=WH6MK(3)[6],=WH6OI(3)[6], - =WH6PX(3)[6],=WH6QA(3)[6],=WH6RF(3)[6],=WH6TD(3)[6],=WH6TK(3)[6],=WH6TT(3)[6],=WH6USA(3)[6], - =WH6VM(3)[6],=WH6VN(3)[6],=WH6XI(3)[6],=WH6XX(3)[6],=WH6YJ(3)[6],=WH7DG(3)[6],=WH7DH(3)[6], - =WH7HQ(3)[6],=WH7IN(3)[6],=WH7IV(3)[6],=WH7IZ(3)[6],=WH7LP(3)[6],=WH7OO(3)[6],=WH7PM(3)[6], - =WH7QC(3)[6],=WH7RU(3)[6],=WH7TT(3)[6],=WH7UZ(3)[6],=WH7VM(3)[6],=WH7VU(3)[6],=WH7XR(3)[6], - =WL3AF(3)[6],=WL3DZ(3)[6],=WL4JC(3)[6],=WL7ACO(3)[6],=WL7BA(3)[6],=WL7BGF(3)[6],=WL7CPL(3)[6], - =WL7CSD(3)[6],=WL7DN/6(3)[6],=WL7EA(3)[6],=WL7EKK(3)[6],=WL7RA(3)[6],=WL7SE(3)[6],=WL7TG(3)[6], - =WL7WL(3)[6],=WL7YQ(3)[6],=WL7YQ/6(3)[6],=WP3OV(3)[6],=WP4CUJ(3)[6],=WP4CW(3)[6],=WP4KSU(3)[6], - =WP4MVE(3)[6],=WP4OBB(3)[6],=WP4OBC(3)[6],=WP4PWS(3)[6], + =KH6JWG(3)[6],=KH6JWJ(3)[6],=KH6JWJ/6(3)[6],=KH6KT(3)[6],=KH6LO(3)[6],=KH6MV(3)[6],=KH6N(3)[6], + =KH6NG(3)[6],=KH6O(3)[6],=KH6OK(3)[6],=KH6PGA/6(3)[6],=KH6PM(3)[6],=KH6PW(3)[6],=KH6SC(3)[6], + =KH6TO(3)[6],=KH6UQ(3)[6],=KH6USA(3)[6],=KH6VC(3)[6],=KH6VC/6(3)[6],=KH6VZ(3)[6],=KH6WL(3)[6], + =KH6WZ(3)[6],=KH7CD/6(3)[6],=KH7CO(3)[6],=KH7CS(3)[6],=KH7EM(3)[6],=KH7I(3)[6],=KH7IZ(3)[6], + =KH7JI(3)[6],=KH7JR(3)[6],=KH7NS(3)[6],=KH7QS(3)[6],=KH7QU(3)[6],=KH7RB(3)[6],=KH7TJ(3)[6], + =KH7TJ/6(3)[6],=KH7TR(3)[6],=KH7TW(3)[6],=KH7VD(3)[6],=KH7VE(3)[6],=KH7WN(3)[6],=KH7WO(3)[6], + =KH7WP(3)[6],=KH7WR(3)[6],=KH7WS(3)[6],=KH7XX/6(3)[6],=KH7Y(3)[6],=KH7Y/6(3)[6],=KH8A(3)[6], + =KH8AF(3)[6],=KH8FL(3)[6],=KL0AA(3)[6],=KL0AF(3)[6],=KL0AL(3)[6],=KL0HZ(3)[6],=KL0IF(3)[6], + =KL1NER(3)[6],=KL1WE/6(3)[6],=KL2CQ(3)[6],=KL2WL(3)[6],=KL3IM(3)[6],=KL3JY/6(3)[6],=KL3YH(3)[6], + =KL4GW(3)[6],=KL4LV(3)[6],=KL4NZ(3)[6],=KL4QW(3)[6],=KL4UZ(3)[6],=KL7AK(3)[6],=KL7CE/6(3)[6], + =KL7CM(3)[6],=KL7CN(3)[6],=KL7CW/6(3)[6],=KL7CX(3)[6],=KL7DJ(3)[6],=KL7EAE(3)[6],=KL7EAL(3)[6], + =KL7GRG(3)[6],=KL7HQR(3)[6],=KL7HQR/6(3)[6],=KL7HSY(3)[6],=KL7ID(3)[6],=KL7IDY/6(3)[6], + =KL7ISB(3)[6],=KL7ISN(3)[6],=KL7JBE(3)[6],=KL7JG(3)[6],=KL7KNP(3)[6],=KL7KX(3)[6],=KL7MF(3)[6], + =KL7MF/6(3)[6],=KL7MF/M(3)[6],=KL7RT(3)[6],=KL7SL(3)[6],=KL7SY(3)[6],=KL7VU(3)[6],=KL7VU/6(3)[6], + =KP2BK(3)[6],=KP3BN(3)[6],=KP3YL(3)[6],=KP4BR(3)[6],=KP4DSO(3)[6],=KP4DX/6(3)[6],=KP4ENM(3)[6], + =KP4ERR(3)[6],=KP4FBT(3)[6],=KP4MD(3)[6],=KP4UB(3)[6],=KP4ZW(3)[6],=NH0C(3)[6],=NH0X(3)[6], + =NH2AR(3)[6],=NH2BD(3)[6],=NH2CM(3)[6],=NH2FT(3)[6],=NH2FX(3)[6],=NH2R(3)[6],=NH2S(3)[6], + =NH6AC(3)[6],=NH6AE(3)[6],=NH6AF(3)[6],=NH6FV(3)[6],=NH6FX(3)[6],=NH6G(3)[6],=NH6NG(3)[6], + =NH6RG(3)[6],=NH6SF(3)[6],=NH6ST(3)[6],=NH6WR(3)[6],=NH7AG(3)[6],=NH7EM(3)[6],=NH7FW(3)[6], + =NH7G(3)[6],=NH7IG(3)[6],=NH7IH(3)[6],=NH7PM(3)[6],=NH7QV(3)[6],=NH7RT(3)[6],=NH7ST(3)[6], + =NH7SU(3)[6],=NH7WC(3)[6],=NH7WE(3)[6],=NH7WG(3)[6],=NH7ZE(3)[6],=NL7GE(3)[6],=NL7IB(3)[6], + =NL7LC(3)[6],=NL7OP(3)[6],=NL7RO(3)[6],=NL7TP(3)[6],=NL7YB(3)[6],=NP2KY(3)[6],=NP4AB(3)[6], + =NP4AI/6(3)[6],=NP4IW(3)[6],=NP4IW/6(3)[6],=NP4MV(3)[6],=NP4XE(3)[6],=WH0AAZ(3)[6],=WH0M(3)[6], + =WH2ABS(3)[6],=WH2ALN(3)[6],=WH2K(3)[6],=WH6AAJ(3)[6],=WH6AFM(3)[6],=WH6ANA(3)[6],=WH6ASW/M(3)[6], + =WH6BYT(3)[6],=WH6CIL(3)[6],=WH6CK(3)[6],=WH6CO(3)[6],=WH6CPO(3)[6],=WH6CPT(3)[6],=WH6CRE(3)[6], + =WH6CSG(3)[6],=WH6CUF(3)[6],=WH6CUU(3)[6],=WH6CUX(3)[6],=WH6CVJ(3)[6],=WH6CWS(3)[6],=WH6CZF(3)[6], + =WH6CZH(3)[6],=WH6DHN(3)[6],=WH6DPA(3)[6],=WH6DSK(3)[6],=WH6DVM(3)[6],=WH6DVN(3)[6],=WH6DVX(3)[6], + =WH6DYA(3)[6],=WH6DZV(3)[6],=WH6DZY(3)[6],=WH6EEZ(3)[6],=WH6EHY(3)[6],=WH6EKB(3)[6],=WH6ENG(3)[6], + =WH6EUH(3)[6],=WH6EZW(3)[6],=WH6FTF(3)[6],=WH6FTO(3)[6],=WH6JO(3)[6],=WH6LZ(3)[6],=WH6MC(3)[6], + =WH6MK(3)[6],=WH6OI(3)[6],=WH6PX(3)[6],=WH6QA(3)[6],=WH6RF(3)[6],=WH6TD(3)[6],=WH6TK(3)[6], + =WH6TT(3)[6],=WH6USA(3)[6],=WH6VM(3)[6],=WH6VN(3)[6],=WH6XI(3)[6],=WH6XX(3)[6],=WH6YJ(3)[6], + =WH7DG(3)[6],=WH7DH(3)[6],=WH7HQ(3)[6],=WH7IN(3)[6],=WH7IV(3)[6],=WH7IZ(3)[6],=WH7L(3)[6], + =WH7LP(3)[6],=WH7OO(3)[6],=WH7PM(3)[6],=WH7QC(3)[6],=WH7RU(3)[6],=WH7TT(3)[6],=WH7UZ(3)[6], + =WH7VM(3)[6],=WH7VU(3)[6],=WH7XR(3)[6],=WL3AF(3)[6],=WL3DZ(3)[6],=WL4JC(3)[6],=WL7ACO(3)[6], + =WL7BA(3)[6],=WL7BGF(3)[6],=WL7CPL(3)[6],=WL7CSD(3)[6],=WL7DN/6(3)[6],=WL7EA(3)[6],=WL7EKK(3)[6], + =WL7RA(3)[6],=WL7SE(3)[6],=WL7TG(3)[6],=WL7WL(3)[6],=WL7YQ(3)[6],=WL7YQ/6(3)[6],=WP3OV(3)[6], + =WP4CUJ(3)[6],=WP4CW(3)[6],=WP4IER(3)[6],=WP4KSU(3)[6],=WP4MVE(3)[6],=WP4OBB(3)[6],=WP4OBC(3)[6], + =WP4PWS(3)[6], AA7(3)[6],AB7(3)[6],AC7(3)[6],AD7(3)[6],AE7(3)[6],AF7(3)[6],AG7(3)[6],AI7(3)[6],AJ7(3)[6], AK7(3)[6],K7(3)[6],KA7(3)[6],KB7(3)[6],KC7(3)[6],KD7(3)[6],KE7(3)[6],KF7(3)[6],KG7(3)[6], KI7(3)[6],KJ7(3)[6],KK7(3)[6],KM7(3)[6],KN7(3)[6],KO7(3)[6],KQ7(3)[6],KR7(3)[6],KS7(3)[6], @@ -1496,24 +1505,25 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =AL7JS(3)[6],=AL7JU(3)[6],=AL7JV(3)[6],=AL7JW(3)[6],=AL7JY(3)[6],=AL7KE(3)[6],=AL7KF(3)[6], =AL7KG(3)[6],=AL7KK(3)[6],=AL7KL(3)[6],=AL7KV(3)[6],=AL7L/7(3)[6],=AL7LI(3)[6],=AL7LL(3)[6], =AL7MH(3)[6],=AL7MQ(3)[6],=AL7ND(3)[6],=AL7NK(3)[6],=AL7NZ(3)[6],=AL7OK(3)[6],=AL7OW(3)[6], - =AL7PR(3)[6],=AL7PV(3)[6],=AL7QL(3)[6],=AL7R(3)[6],=AL7R/7(3)[6],=AL7RF(3)[6],=AL7RF/7(3)[6], - =AL7RM(3)[6],=AL7RR(3)[6],=AL7W(3)[6],=G4KHG/M(3)[6],=KH0AS(3)[6],=KH0H(3)[6],=KH0K(3)[6], - =KH0SH(3)[6],=KH0TL(3)[6],=KH0X(3)[6],=KH2CH(3)[6],=KH2G(3)[6],=KH2GG(3)[6],=KH2JA(3)[6], - =KH2QH(3)[6],=KH2RK(3)[6],=KH2SK(3)[6],=KH2SR(3)[6],=KH2TJ/7(3)[6],=KH2TJ/P(3)[6],=KH2XP(3)[6], - =KH2YL(3)[6],=KH3AD(3)[6],=KH6AB(3)[6],=KH6AHQ(3)[6],=KH6BXZ(3)[6],=KH6CN(3)[6],=KH6CN/7(3)[6], - =KH6COY(3)[6],=KH6CQG(3)[6],=KH6CQH(3)[6],=KH6CQH/7(3)[6],=KH6DB(3)[6],=KH6DE(3)[6],=KH6DOT(3)[6], - =KH6DUT(3)[6],=KH6EE(3)[6],=KH6EE/7(3)[6],=KH6FKA/7(3)[6],=KH6FU(3)[6],=KH6GB(3)[6],=KH6GDN(3)[6], - =KH6GN(3)[6],=KH6HP(3)[6],=KH6HU(3)[6],=KH6HWK(3)[6],=KH6IA(3)[6],=KH6ICQ(3)[6],=KH6IKC(3)[6], - =KH6IMN(3)[6],=KH6IQX(3)[6],=KH6ITY(3)[6],=KH6JFL(3)[6],=KH6JIM/7(3)[6],=KH6JJS(3)[6], - =KH6JPJ(3)[6],=KH6JPO(3)[6],=KH6JRW(3)[6],=KH6JT(3)[6],=KH6JUC(3)[6],=KH6JUQ(3)[6],=KH6KS(3)[6], - =KH6KW(3)[6],=KH6LEM(3)[6],=KH6ME(3)[6],=KH6MF(3)[6],=KH6NA(3)[6],=KH6NO/7(3)[6],=KH6NO/M(3)[6], - =KH6NU(3)[6],=KH6OV(3)[6],=KH6PG(3)[6],=KH6PR(3)[6],=KH6QAI(3)[6],=KH6QAI/7(3)[6],=KH6QAJ(3)[6], - =KH6RW(3)[6],=KH6RY(3)[6],=KH6SAT(3)[6],=KH6SS(3)[6],=KH6TX(3)[6],=KH6VM(3)[6],=KH6VM/7(3)[6], - =KH6VT(3)[6],=KH6WX(3)[6],=KH6XG(3)[6],=KH6XS(3)[6],=KH6XT(3)[6],=KH6YL(3)[6],=KH7AL(3)[6], - =KH7AR(3)[6],=KH7AX(3)[6],=KH7CB(3)[6],=KH7CM(3)[6],=KH7CZ(3)[6],=KH7FJ(3)[6],=KH7FR(3)[6], - =KH7HH(3)[6],=KH7HWK(3)[6],=KH7IP(3)[6],=KH7LE(3)[6],=KH7ME(3)[6],=KH7MR(3)[6],=KH7NI(3)[6], - =KH7NP(3)[6],=KH7R(3)[6],=KH7RD(3)[6],=KH7RT(3)[6],=KH7SQ(3)[6],=KH7SR(3)[6],=KH7VB(3)[6], - =KH7VC(3)[6],=KH7WW(3)[6],=KH7WW/7(3)[6],=KH7X/7(3)[6],=KH7YD(3)[6],=KH7YD/7(3)[6],=KH8AB(3)[6], + =AL7PR(3)[6],=AL7PV(3)[6],=AL7QL(3)[6],=AL7QZ(3)[6],=AL7R(3)[6],=AL7R/7(3)[6],=AL7RF(3)[6], + =AL7RF/7(3)[6],=AL7RM(3)[6],=AL7RR(3)[6],=AL7W(3)[6],=G4KHG/M(3)[6],=KH0AS(3)[6],=KH0H(3)[6], + =KH0K(3)[6],=KH0SH(3)[6],=KH0TL(3)[6],=KH0X(3)[6],=KH2CH(3)[6],=KH2G(3)[6],=KH2GG(3)[6], + =KH2JA(3)[6],=KH2QH(3)[6],=KH2RK(3)[6],=KH2SK(3)[6],=KH2SR(3)[6],=KH2TJ/7(3)[6],=KH2TJ/P(3)[6], + =KH2XP(3)[6],=KH2YL(3)[6],=KH3AD(3)[6],=KH6AB(3)[6],=KH6AHQ(3)[6],=KH6BXZ(3)[6],=KH6CN(3)[6], + =KH6CN/7(3)[6],=KH6COY(3)[6],=KH6CQG(3)[6],=KH6CQH(3)[6],=KH6CQH/7(3)[6],=KH6CTQ(3)[6], + =KH6DB(3)[6],=KH6DE(3)[6],=KH6DOT(3)[6],=KH6DUT(3)[6],=KH6EE(3)[6],=KH6EE/7(3)[6],=KH6FE(3)[6], + =KH6FKA/7(3)[6],=KH6FU(3)[6],=KH6GB(3)[6],=KH6GDN(3)[6],=KH6GN(3)[6],=KH6HP(3)[6],=KH6HU(3)[6], + =KH6HWK(3)[6],=KH6IA(3)[6],=KH6ICQ(3)[6],=KH6IKC(3)[6],=KH6IMN(3)[6],=KH6IQX(3)[6],=KH6ITY(3)[6], + =KH6JFL(3)[6],=KH6JIM/7(3)[6],=KH6JJS(3)[6],=KH6JMK(3)[6],=KH6JPJ(3)[6],=KH6JPO(3)[6], + =KH6JRW(3)[6],=KH6JT(3)[6],=KH6JUC(3)[6],=KH6JUQ(3)[6],=KH6KS(3)[6],=KH6KW(3)[6],=KH6LEM(3)[6], + =KH6ME(3)[6],=KH6MF(3)[6],=KH6NA(3)[6],=KH6NO/7(3)[6],=KH6NO/M(3)[6],=KH6NU(3)[6],=KH6OV(3)[6], + =KH6PG(3)[6],=KH6PR(3)[6],=KH6QAI(3)[6],=KH6QAI/7(3)[6],=KH6QAJ(3)[6],=KH6RW(3)[6],=KH6RY(3)[6], + =KH6SAT(3)[6],=KH6SS(3)[6],=KH6TX(3)[6],=KH6VM(3)[6],=KH6VM/7(3)[6],=KH6VT(3)[6],=KH6WX(3)[6], + =KH6XG(3)[6],=KH6XJ(3)[6],=KH6XS(3)[6],=KH6XT(3)[6],=KH6YL(3)[6],=KH7AR(3)[6],=KH7AX(3)[6], + =KH7CB(3)[6],=KH7CM(3)[6],=KH7CZ(3)[6],=KH7FJ(3)[6],=KH7FR(3)[6],=KH7HH(3)[6],=KH7HWK(3)[6], + =KH7IP(3)[6],=KH7LE(3)[6],=KH7ME(3)[6],=KH7MR(3)[6],=KH7NI(3)[6],=KH7NP(3)[6],=KH7R(3)[6], + =KH7RD(3)[6],=KH7RT(3)[6],=KH7SB(3)[6],=KH7SQ(3)[6],=KH7SR(3)[6],=KH7VB(3)[6],=KH7VC(3)[6], + =KH7WW(3)[6],=KH7WW/7(3)[6],=KH7WX(3)[6],=KH7X/7(3)[6],=KH7YD(3)[6],=KH7YD/7(3)[6],=KH8AB(3)[6], =KH8AH(3)[6],=KH8AZ(3)[6],=KH8BG(3)[6],=KH8D(3)[6],=KH8E(3)[6],=KH8K(3)[6],=KH9AA(3)[6], =KL0AI(3)[6],=KL0AN(3)[6],=KL0AP(3)[6],=KL0CA(3)[6],=KL0CM(3)[6],=KL0CW(3)[6],=KL0DF(3)[6], =KL0DG(3)[6],=KL0DR(3)[6],=KL0DT(3)[6],=KL0EU(3)[6],=KL0IR(3)[6],=KL0IS(3)[6],=KL0IW(3)[6], @@ -1530,37 +1540,38 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =KL2QE(3)[6],=KL2TR(3)[6],=KL2TZ(3)[6],=KL2VK(3)[6],=KL2WE(3)[6],=KL2XQ(3)[6],=KL2YH(3)[6], =KL3DL(3)[6],=KL3EZ(3)[6],=KL3FE(3)[6],=KL3IC(3)[6],=KL3IO(3)[6],=KL3IW(3)[6],=KL3ML(3)[6], =KL3MZ(3)[6],=KL3NE(3)[6],=KL3NO(3)[6],=KL3OQ(3)[6],=KL3PD(3)[6],=KL3TW(3)[6],=KL3TY(3)[6], - =KL3VJ(3)[6],=KL3XS(3)[6],=KL4BQ(3)[6],=KL4BS(3)[6],=KL4E(3)[6],=KL4NG(3)[6],=KL4QJ(3)[6], - =KL4RKH(3)[6],=KL4YFD(3)[6],=KL7AB(3)[6],=KL7AD(3)[6],=KL7AW(3)[6],=KL7BD(3)[6],=KL7BDC(3)[6], - =KL7BH(3)[6],=KL7BJ(3)[6],=KL7BR(3)[6],=KL7BS(3)[6],=KL7BT(3)[6],=KL7BUR(3)[6],=KL7BXP(3)[6], - =KL7C(3)[6],=KL7CPO(3)[6],=KL7CR(3)[6],=KL7CT(3)[6],=KL7CY(3)[6],=KL7DC(3)[6],=KL7DF(3)[6], - =KL7DI(3)[6],=KL7DK(3)[6],=KL7DLG(3)[6],=KL7DZQ(3)[6],=KL7EBN(3)[6],=KL7EF(3)[6],=KL7EFL(3)[6], - =KL7EH(3)[6],=KL7EIN(3)[6],=KL7EU(3)[6],=KL7FDQ(3)[6],=KL7FDQ/7(3)[6],=KL7FOZ(3)[6],=KL7FRQ(3)[6], - =KL7FS(3)[6],=KL7GA(3)[6],=KL7GCS(3)[6],=KL7GKY(3)[6],=KL7GRF(3)[6],=KL7GT(3)[6],=KL7HB(3)[6], - =KL7HBV(3)[6],=KL7HFI/7(3)[6],=KL7HFV(3)[6],=KL7HI(3)[6],=KL7HJR(3)[6],=KL7HLF(3)[6],=KL7HM(3)[6], - =KL7HMK(3)[6],=KL7HQL(3)[6],=KL7HSR(3)[6],=KL7IAL(3)[6],=KL7IBT(3)[6],=KL7IDY(3)[6],=KL7IEI(3)[6], - =KL7IFK(3)[6],=KL7IGB(3)[6],=KL7IHK(3)[6],=KL7IIK(3)[6],=KL7IKV(3)[6],=KL7IL(3)[6],=KL7IME(3)[6], - =KL7IOW(3)[6],=KL7IPV(3)[6],=KL7ISE(3)[6],=KL7IUX(3)[6],=KL7IWC/7(3)[6],=KL7IZC(3)[6], - =KL7IZH(3)[6],=KL7JBB(3)[6],=KL7JDQ(3)[6],=KL7JEA(3)[6],=KL7JES(3)[6],=KL7JIJ(3)[6],=KL7JJE(3)[6], - =KL7JKV(3)[6],=KL7KA(3)[6],=KL7KG/7(3)[6],=KL7LG(3)[6],=KL7LI(3)[6],=KL7LX(3)[6],=KL7LZ(3)[6], - =KL7M(3)[6],=KL7MY(3)[6],=KL7MZ(3)[6],=KL7NA(3)[6],=KL7NP(3)[6],=KL7NP/7(3)[6],=KL7OA(3)[6], - =KL7OF(3)[6],=KL7OL(3)[6],=KL7OR(3)[6],=KL7OR/7(3)[6],=KL7OS(3)[6],=KL7OY(3)[6],=KL7PC(3)[6], - =KL7PO(3)[6],=KL7QA(3)[6],=KL7QK(3)[6],=KL7QK/140(3)[6],=KL7QK/7(3)[6],=KL7QR(3)[6], - =KL7QR/7(3)[6],=KL7R(3)[6],=KL7RC(3)[6],=KL7RK(3)[6],=KL7RM(3)[6],=KL7RS(3)[6],=KL7S(3)[6], - =KL7SK(3)[6],=KL7SP(3)[6],=KL7T(3)[6],=KL7TU(3)[6],=KL7UP(3)[6],=KL7UT(3)[6],=KL7VK(3)[6], - =KL7VL(3)[6],=KL7VN(3)[6],=KL7VQ(3)[6],=KL7W(3)[6],=KL7WC(3)[6],=KL7WM(3)[6],=KL7WN(3)[6], - =KL7WP(3)[6],=KL7WP/7(3)[6],=KL7WT(3)[6],=KL7XL(3)[6],=KL7YJ(3)[6],=KL7YQ(3)[6],=KL7YY/M(3)[6], - =KL7ZH(3)[6],=KL7ZW(3)[6],=KL8RV(3)[6],=KL8SU(3)[6],=KL9PC(3)[6],=KP2BX(3)[6],=KP2CB(3)[6], - =KP2CT(3)[6],=KP2X(3)[6],=KP2Y(3)[6],=KP4EFZ(3)[6],=KP4ND(3)[6],=KP4UZ(3)[6],=KP4X(3)[6], - =NH0F(3)[6],=NH0K(3)[6],=NH0O(3)[6],=NH2DM(3)[6],=NH2JE(3)[6],=NH2KR(3)[6],=NH6B(3)[6], - =NH6BF(3)[6],=NH6CI(3)[6],=NH6CO(3)[6],=NH6DQ(3)[6],=NH6DX(3)[6],=NH6F(3)[6],=NH6FF(3)[6], - =NH6GZ(3)[6],=NH6HE(3)[6],=NH6HZ(3)[6],=NH6LF(3)[6],=NH6LM(3)[6],=NH6NS(3)[6],=NH6SO(3)[6], - =NH6U(3)[6],=NH6WE(3)[6],=NH6XN(3)[6],=NH6XP(3)[6],=NH6Z(3)[6],=NH6ZA(3)[6],=NH6ZE(3)[6], - =NH7FU(3)[6],=NH7FZ(3)[6],=NH7L(3)[6],=NH7M(3)[6],=NH7MY(3)[6],=NH7N(3)[6],=NH7ND(3)[6], - =NH7NJ/7(3)[6],=NH7OC(3)[6],=NH7PL(3)[6],=NH7RS(3)[6],=NH7S(3)[6],=NH7SH(3)[6],=NH7TG(3)[6], - =NH7VZ(3)[6],=NH7W(3)[6],=NH7WT(3)[6],=NH7WU(3)[6],=NH7YE(3)[6],=NH7YI(3)[6],=NL7AH(3)[6], - =NL7AR(3)[6],=NL7AZ(3)[6],=NL7CH(3)[6],=NL7D(3)[6],=NL7D/7(3)[6],=NL7DH(3)[6],=NL7DY(3)[6], - =NL7EO(3)[6],=NL7FQ(3)[6],=NL7FX(3)[6],=NL7GM(3)[6],=NL7GN(3)[6],=NL7GO(3)[6],=NL7GU(3)[6], + =KL3VJ(3)[6],=KL3XS(3)[6],=KL4BQ(3)[6],=KL4BS(3)[6],=KL4E(3)[6],=KL4FX(3)[6],=KL4NG(3)[6], + =KL4QJ(3)[6],=KL4RKH(3)[6],=KL4RY(3)[6],=KL4YFD(3)[6],=KL7AB(3)[6],=KL7AD(3)[6],=KL7AW(3)[6], + =KL7BD(3)[6],=KL7BDC(3)[6],=KL7BH(3)[6],=KL7BJ(3)[6],=KL7BR(3)[6],=KL7BS(3)[6],=KL7BT(3)[6], + =KL7BUR(3)[6],=KL7BXP(3)[6],=KL7C(3)[6],=KL7CPO(3)[6],=KL7CR(3)[6],=KL7CT(3)[6],=KL7CY(3)[6], + =KL7DC(3)[6],=KL7DF(3)[6],=KL7DI(3)[6],=KL7DK(3)[6],=KL7DLG(3)[6],=KL7DSI(3)[6],=KL7DZQ(3)[6], + =KL7EBN(3)[6],=KL7EF(3)[6],=KL7EFL(3)[6],=KL7EH(3)[6],=KL7EIN(3)[6],=KL7EU(3)[6],=KL7FDQ(3)[6], + =KL7FDQ/7(3)[6],=KL7FIR(3)[6],=KL7FOZ(3)[6],=KL7FRQ(3)[6],=KL7FS(3)[6],=KL7GA(3)[6],=KL7GCS(3)[6], + =KL7GKY(3)[6],=KL7GRF(3)[6],=KL7GT(3)[6],=KL7HB(3)[6],=KL7HBV(3)[6],=KL7HFI/7(3)[6],=KL7HFV(3)[6], + =KL7HI(3)[6],=KL7HJR(3)[6],=KL7HLF(3)[6],=KL7HM(3)[6],=KL7HMK(3)[6],=KL7HQL(3)[6],=KL7HSR(3)[6], + =KL7IAL(3)[6],=KL7IBT(3)[6],=KL7IDY(3)[6],=KL7IEI(3)[6],=KL7IFK(3)[6],=KL7IGB(3)[6],=KL7IHK(3)[6], + =KL7IIK(3)[6],=KL7IKV(3)[6],=KL7IL(3)[6],=KL7IME(3)[6],=KL7IOW(3)[6],=KL7IPV(3)[6],=KL7ISE(3)[6], + =KL7IUX(3)[6],=KL7IWC/7(3)[6],=KL7IZC(3)[6],=KL7IZH(3)[6],=KL7JBB(3)[6],=KL7JDQ(3)[6], + =KL7JEA(3)[6],=KL7JES(3)[6],=KL7JIJ(3)[6],=KL7JJE(3)[6],=KL7JKV(3)[6],=KL7KA(3)[6],=KL7KG/7(3)[6], + =KL7LG(3)[6],=KL7LI(3)[6],=KL7LX(3)[6],=KL7LZ(3)[6],=KL7M(3)[6],=KL7MY(3)[6],=KL7MZ(3)[6], + =KL7NA(3)[6],=KL7NP(3)[6],=KL7NP/7(3)[6],=KL7OA(3)[6],=KL7OF(3)[6],=KL7OL(3)[6],=KL7OR(3)[6], + =KL7OR/7(3)[6],=KL7OS(3)[6],=KL7OY(3)[6],=KL7PC(3)[6],=KL7PO(3)[6],=KL7QA(3)[6],=KL7QK(3)[6], + =KL7QK/140(3)[6],=KL7QK/7(3)[6],=KL7QR(3)[6],=KL7QR/7(3)[6],=KL7R(3)[6],=KL7RC(3)[6],=KL7RK(3)[6], + =KL7RM(3)[6],=KL7RN(3)[6],=KL7RS(3)[6],=KL7S(3)[6],=KL7SK(3)[6],=KL7SP(3)[6],=KL7T(3)[6], + =KL7TU(3)[6],=KL7UP(3)[6],=KL7UT(3)[6],=KL7VK(3)[6],=KL7VL(3)[6],=KL7VN(3)[6],=KL7VQ(3)[6], + =KL7W(3)[6],=KL7WC(3)[6],=KL7WM(3)[6],=KL7WN(3)[6],=KL7WP(3)[6],=KL7WP/7(3)[6],=KL7WT(3)[6], + =KL7XL(3)[6],=KL7YJ(3)[6],=KL7YQ(3)[6],=KL7YY/M(3)[6],=KL7ZH(3)[6],=KL7ZW(3)[6],=KL8RV(3)[6], + =KL8SU(3)[6],=KL9PC(3)[6],=KP2BX(3)[6],=KP2CB(3)[6],=KP2CT(3)[6],=KP2X(3)[6],=KP2Y(3)[6], + =KP4EFZ(3)[6],=KP4ND(3)[6],=KP4UZ(3)[6],=KP4X(3)[6],=NH0F(3)[6],=NH0K(3)[6],=NH0O(3)[6], + =NH2DM(3)[6],=NH2JE(3)[6],=NH2KR(3)[6],=NH6AY(3)[6],=NH6B(3)[6],=NH6BF(3)[6],=NH6CI(3)[6], + =NH6CO(3)[6],=NH6DQ(3)[6],=NH6DX(3)[6],=NH6F(3)[6],=NH6FF(3)[6],=NH6GZ(3)[6],=NH6HE(3)[6], + =NH6HZ(3)[6],=NH6LF(3)[6],=NH6LM(3)[6],=NH6NS(3)[6],=NH6SO(3)[6],=NH6U(3)[6],=NH6WE(3)[6], + =NH6XN(3)[6],=NH6XP(3)[6],=NH6Z(3)[6],=NH6ZA(3)[6],=NH6ZE(3)[6],=NH7FU(3)[6],=NH7FZ(3)[6], + =NH7L(3)[6],=NH7M(3)[6],=NH7MY(3)[6],=NH7N(3)[6],=NH7ND(3)[6],=NH7NJ/7(3)[6],=NH7OC(3)[6], + =NH7PL(3)[6],=NH7RS(3)[6],=NH7S(3)[6],=NH7SH(3)[6],=NH7TG(3)[6],=NH7VZ(3)[6],=NH7W(3)[6], + =NH7WT(3)[6],=NH7WU(3)[6],=NH7YE(3)[6],=NH7YI(3)[6],=NL5L(3)[6],=NL7AH(3)[6],=NL7AR(3)[6], + =NL7AZ(3)[6],=NL7CH(3)[6],=NL7D(3)[6],=NL7D/7(3)[6],=NL7DH(3)[6],=NL7DY(3)[6],=NL7EO(3)[6], + =NL7FQ(3)[6],=NL7FX(3)[6],=NL7FY(3)[6],=NL7GM(3)[6],=NL7GN(3)[6],=NL7GO(3)[6],=NL7GU(3)[6], =NL7GW(3)[6],=NL7HH(3)[6],=NL7HK(3)[6],=NL7HQ(3)[6],=NL7HU(3)[6],=NL7IN(3)[6],=NL7JJ(3)[6], =NL7JN(3)[6],=NL7KV(3)[6],=NL7LI(3)[6],=NL7MS(3)[6],=NL7MT(3)[6],=NL7NL(3)[6],=NL7OF(3)[6], =NL7PN(3)[6],=NL7QI(3)[6],=NL7RL(3)[6],=NL7RN(3)[6],=NL7TK(3)[6],=NL7UE(3)[6],=NL7US(3)[6], @@ -1572,23 +1583,23 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =WH6CXE(3)[6],=WH6CXN(3)[6],=WH6CYB(3)[6],=WH6CZ(3)[6],=WH6DAY(3)[6],=WH6DJO(3)[6],=WH6DKC(3)[6], =WH6DKO(3)[6],=WH6DLQ(3)[6],=WH6DQ(3)[6],=WH6DST(3)[6],=WH6DTH(3)[6],=WH6EEC(3)[6],=WH6EEG(3)[6], =WH6EGM(3)[6],=WH6EHW(3)[6],=WH6EJV(3)[6],=WH6EQB(3)[6],=WH6ESS(3)[6],=WH6ETO(3)[6],=WH6EWE(3)[6], - =WH6FCT(3)[6],=WH6FEU(3)[6],=WH6FJR(3)[6],=WH6FL(3)[6],=WH6FOJ(3)[6],=WH6FPR(3)[6],=WH6FPS(3)[6], - =WH6FQ(3)[6],=WH6GEV(3)[6],=WH6OL(3)[6],=WH6OY(3)[6],=WH6QV(3)[6],=WH6SD(3)[6],=WH6SR(3)[6], - =WH6TI(3)[6],=WH6U(3)[6],=WH6XV(3)[6],=WH6YT(3)[6],=WH6YX(3)[6],=WH6ZR(3)[6],=WH6ZV(3)[6], - =WH7A(3)[6],=WH7CY(3)[6],=WH7DA(3)[6],=WH7DB(3)[6],=WH7DE(3)[6],=WH7G(3)[6],=WH7GC(3)[6], - =WH7GY(3)[6],=WH7HU(3)[6],=WH7LB(3)[6],=WH7NS(3)[6],=WH7P(3)[6],=WH7RG(3)[6],=WH7TC(3)[6], - =WH7U(3)[6],=WH7UP(3)[6],=WH7WP(3)[6],=WH7WT(3)[6],=WH7XP(3)[6],=WH8AAG(3)[6],=WL7AAW(3)[6], - =WL7AL(3)[6],=WL7AP(3)[6],=WL7AQ(3)[6],=WL7AUY(3)[6],=WL7AWD(3)[6],=WL7AZG(3)[6],=WL7AZL(3)[6], - =WL7BCR(3)[6],=WL7BHR(3)[6],=WL7BLM(3)[6],=WL7BM(3)[6],=WL7BNQ(3)[6],=WL7BON(3)[6],=WL7BOO(3)[6], - =WL7BSW(3)[6],=WL7BUI(3)[6],=WL7BVN(3)[6],=WL7BVS(3)[6],=WL7CAZ(3)[6],=WL7CBF(3)[6],=WL7CES(3)[6], - =WL7COQ(3)[6],=WL7CPE(3)[6],=WL7CPI(3)[6],=WL7CQX(3)[6],=WL7CRJ(3)[6],=WL7CSL(3)[6],=WL7CTB(3)[6], - =WL7CTC(3)[6],=WL7CTE(3)[6],=WL7DD(3)[6],=WL7FA(3)[6],=WL7FR(3)[6],=WL7FU(3)[6],=WL7H(3)[6], - =WL7HE(3)[6],=WL7HK(3)[6],=WL7HL(3)[6],=WL7IQ(3)[6],=WL7IS(3)[6],=WL7JM(3)[6],=WL7K(3)[6], - =WL7K/7(3)[6],=WL7K/M(3)[6],=WL7LB(3)[6],=WL7LK(3)[6],=WL7MM(3)[6],=WL7OA(3)[6],=WL7P(3)[6], - =WL7PJ(3)[6],=WL7QC(3)[6],=WL7QX(3)[6],=WL7RV/140(3)[6],=WL7SD(3)[6],=WL7SO(3)[6],=WL7SV(3)[6], - =WL7T(3)[6],=WL7VK(3)[6],=WL7WB(3)[6],=WL7WF(3)[6],=WL7WG(3)[6],=WL7WK(3)[6],=WL7WU(3)[6], - =WL7XE(3)[6],=WL7XJ(3)[6],=WL7XN(3)[6],=WL7XW(3)[6],=WL7Z(3)[6],=WL7ZM(3)[6],=WP2ADG(3)[6], - =WP4BZG(3)[6],=WP4DYP(3)[6],=WP4NBP(3)[6], + =WH6FCT(3)[6],=WH6FEU(3)[6],=WH6FJR(3)[6],=WH6FL(3)[6],=WH6FOJ(3)[6],=WH6FPR(3)[6],=WH6FPV(3)[6], + =WH6FQ(3)[6],=WH6FQK(3)[6],=WH6GEV(3)[6],=WH6OL(3)[6],=WH6OY(3)[6],=WH6QV(3)[6],=WH6SD(3)[6], + =WH6SR(3)[6],=WH6TI(3)[6],=WH6U(3)[6],=WH6XV(3)[6],=WH6YT(3)[6],=WH6YX(3)[6],=WH6ZR(3)[6], + =WH6ZV(3)[6],=WH7A(3)[6],=WH7CY(3)[6],=WH7DA(3)[6],=WH7DB(3)[6],=WH7DE(3)[6],=WH7G(3)[6], + =WH7GC(3)[6],=WH7GY(3)[6],=WH7HU(3)[6],=WH7LB(3)[6],=WH7NS(3)[6],=WH7P(3)[6],=WH7RG(3)[6], + =WH7TC(3)[6],=WH7U(3)[6],=WH7UP(3)[6],=WH7WP(3)[6],=WH7WT(3)[6],=WH7XP(3)[6],=WH8AAG(3)[6], + =WL7AAW(3)[6],=WL7AL(3)[6],=WL7AP(3)[6],=WL7AQ(3)[6],=WL7AUY(3)[6],=WL7AWD(3)[6],=WL7AZG(3)[6], + =WL7AZL(3)[6],=WL7BCR(3)[6],=WL7BHR(3)[6],=WL7BLM(3)[6],=WL7BM(3)[6],=WL7BNQ(3)[6],=WL7BON(3)[6], + =WL7BOO(3)[6],=WL7BSW(3)[6],=WL7BUI(3)[6],=WL7BVN(3)[6],=WL7BVS(3)[6],=WL7CAZ(3)[6],=WL7CBF(3)[6], + =WL7CES(3)[6],=WL7COQ(3)[6],=WL7CPE(3)[6],=WL7CPI(3)[6],=WL7CQX(3)[6],=WL7CRJ(3)[6],=WL7CSL(3)[6], + =WL7CTB(3)[6],=WL7CTC(3)[6],=WL7CTE(3)[6],=WL7DD(3)[6],=WL7FA(3)[6],=WL7FR(3)[6],=WL7FU(3)[6], + =WL7H(3)[6],=WL7HE(3)[6],=WL7HK(3)[6],=WL7HL(3)[6],=WL7IQ(3)[6],=WL7IS(3)[6],=WL7JM(3)[6], + =WL7K(3)[6],=WL7K/7(3)[6],=WL7K/M(3)[6],=WL7LB(3)[6],=WL7LK(3)[6],=WL7MM(3)[6],=WL7OA(3)[6], + =WL7P(3)[6],=WL7PJ(3)[6],=WL7QC(3)[6],=WL7QX(3)[6],=WL7RV/140(3)[6],=WL7SD(3)[6],=WL7SO(3)[6], + =WL7SV(3)[6],=WL7T(3)[6],=WL7VK(3)[6],=WL7WB(3)[6],=WL7WF(3)[6],=WL7WG(3)[6],=WL7WK(3)[6], + =WL7WU(3)[6],=WL7XE(3)[6],=WL7XJ(3)[6],=WL7XN(3)[6],=WL7XW(3)[6],=WL7Z(3)[6],=WL7ZM(3)[6], + =WP2ADG(3)[6],=WP4BZG(3)[6],=WP4DYP(3)[6],=WP4NBP(3)[6], AA8(4)[8],AB8(4)[8],AC8(4)[8],AD8(4)[8],AE8(4)[8],AF8(4)[8],AG8(4)[8],AI8(4)[8],AJ8(4)[8], AK8(4)[8],K8(4)[8],KA8(4)[8],KB8(4)[8],KC8(4)[8],KD8(4)[8],KE8(4)[8],KF8(4)[8],KG8(4)[8], KI8(4)[8],KJ8(4)[8],KK8(4)[8],KM8(4)[8],KN8(4)[8],KO8(4)[8],KQ8(4)[8],KR8(4)[8],KS8(4)[8], @@ -1598,19 +1609,19 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: NW8(4)[8],NX8(4)[8],NY8(4)[8],NZ8(4)[8],W8(4)[8],WA8(4)[8],WB8(4)[8],WC8(4)[8],WD8(4)[8], WE8(4)[8],WF8(4)[8],WG8(4)[8],WI8(4)[8],WJ8(4)[8],WK8(4)[8],WM8(4)[8],WN8(4)[8],WO8(4)[8], WQ8(4)[8],WR8(4)[8],WS8(4)[8],WT8(4)[8],WU8(4)[8],WV8(4)[8],WW8(4)[8],WX8(4)[8],WY8(4)[8], - WZ8(4)[8],=AH2AR(4)[8],=AH2AV(4)[8],=AH2JD(4)[8],=AH6AO(4)[8],=AH6MQ(4)[8],=AL4E(4)[8], - =AL7AH(4)[8],=AL7BA/8(4)[8],=AL7GI(4)[8],=AL7GI/8(4)[8],=AL7J/8(4)[8],=AL7OP(4)[8],=KH2AP(4)[8], - =KH6BZF/8(4)[8],=KH6DHK(4)[8],=KH6IK(4)[8],=KH6ILT(4)[8],=KH6SM(4)[8],=KH7DK(4)[8],=KH7SP(4)[8], - =KL0DN(4)[8],=KL0NR(4)[8],=KL0PD(4)[8],=KL0PE(4)[8],=KL2NI(4)[8],=KL2PS(4)[8],=KL2WF(4)[8], - =KL2YU(4)[8],=KL3DA(4)[8],=KL3HQ(4)[8],=KL4PQ(4)[8],=KL5A(4)[8],=KL7DS(4)[8],=KL7FHI(4)[8], - =KL7FHK(4)[8],=KL7GF(4)[8],=KL7IKR(4)[8],=KL7OG(4)[8],=KL7RF(4)[8],=KL7RF/8(4)[8],=KL7SW(4)[8], - =KL8X(4)[8],=KL9A/8(4)[8],=KP2RF(4)[8],=KP4AKB(4)[8],=KP4AMZ(4)[8],=KP4AQI(4)[8],=KP4E(4)[8], - =KP4MAS(4)[8],=KP4VZ(4)[8],=KP4ZD(4)[8],=NH6CN(4)[8],=NH6CN/8(4)[8],=NL7CF(4)[8],=NL7FK(4)[8], - =NP2AK(4)[8],=NP2F(4)[8],=NP3NA(4)[8],=NP4C/8(4)[8],=VE3ACW/M(4)[8],=WH2U(4)[8],=WH6BCB(4)[8], - =WH6CYR(4)[8],=WH6E(4)[8],=WH6E/8(4)[8],=WH6EBA(4)[8],=WH6EJD(4)[8],=WH6EWB(4)[8],=WH6TB(4)[8], - =WL7AGO(4)[8],=WL7AM(4)[8],=WL7BKR(4)[8],=WL7CMV(4)[8],=WL7GG(4)[8],=WL7HC(4)[8],=WL7OS(4)[8], - =WL7OT(4)[8],=WP3KU(4)[8],=WP3S(4)[8],=WP4HJF(4)[8],=WP4IJK(4)[8],=WP4MWB(4)[8],=WP4NAE(4)[8], - =WP4NYQ(4)[8],=WP4PLR(4)[8], + WZ8(4)[8],=AH2AR(4)[8],=AH2AV(4)[8],=AH2JD(4)[8],=AH6AO(4)[8],=AH6MQ(4)[8],=AH8AH(4)[8], + =AL4E(4)[8],=AL7AH(4)[8],=AL7BA/8(4)[8],=AL7GI(4)[8],=AL7GI/8(4)[8],=AL7J/8(4)[8],=AL7OP(4)[8], + =KH2AP(4)[8],=KH6BZF/8(4)[8],=KH6DHK(4)[8],=KH6IK(4)[8],=KH6ILT(4)[8],=KH6SM(4)[8],=KH7DK(4)[8], + =KH7SP(4)[8],=KL0DN(4)[8],=KL0NR(4)[8],=KL0PD(4)[8],=KL0PE(4)[8],=KL2NI(4)[8],=KL2PS(4)[8], + =KL2WF(4)[8],=KL2YU(4)[8],=KL3DA(4)[8],=KL3HQ(4)[8],=KL4PQ(4)[8],=KL5A(4)[8],=KL7DS(4)[8], + =KL7FHI(4)[8],=KL7FHK(4)[8],=KL7GF(4)[8],=KL7IKR(4)[8],=KL7IYK(4)[8],=KL7IYK/8(4)[8],=KL7OG(4)[8], + =KL7RF(4)[8],=KL7RF/8(4)[8],=KL7SW(4)[8],=KL8X(4)[8],=KL9A/8(4)[8],=KP2RF(4)[8],=KP4AKB(4)[8], + =KP4AMZ(4)[8],=KP4AQI(4)[8],=KP4E(4)[8],=KP4MAS(4)[8],=KP4VZ(4)[8],=KP4ZD(4)[8],=NH6CN(4)[8], + =NH6CN/8(4)[8],=NL7CF(4)[8],=NL7FK(4)[8],=NP2AK(4)[8],=NP2F(4)[8],=NP3NA(4)[8],=NP4C/8(4)[8], + =VE3ACW/M(4)[8],=WH2U(4)[8],=WH6BCB(4)[8],=WH6CYR(4)[8],=WH6E(4)[8],=WH6E/8(4)[8],=WH6EBA(4)[8], + =WH6EJD(4)[8],=WH6EWB(4)[8],=WH6TB(4)[8],=WL7AGO(4)[8],=WL7AM(4)[8],=WL7BKR(4)[8],=WL7CMV(4)[8], + =WL7GG(4)[8],=WL7HC(4)[8],=WL7OS(4)[8],=WL7OT(4)[8],=WP3KU(4)[8],=WP3S(4)[8],=WP4HJF(4)[8], + =WP4IJK(4)[8],=WP4MWB(4)[8],=WP4NAE(4)[8],=WP4NYQ(4)[8],=WP4PLR(4)[8], AA9(4)[8],AB9(4)[8],AC9(4)[8],AD9(4)[8],AE9(4)[8],AF9(4)[8],AG9(4)[8],AI9(4)[8],AJ9(4)[8], AK9(4)[8],K9(4)[8],KA9(4)[8],KB9(4)[8],KC9(4)[8],KD9(4)[8],KE9(4)[8],KF9(4)[8],KG9(4)[8], KI9(4)[8],KJ9(4)[8],KK9(4)[8],KM9(4)[8],KN9(4)[8],KO9(4)[8],KQ9(4)[8],KR9(4)[8],KS9(4)[8], @@ -1623,39 +1634,42 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: WZ9(4)[8],=AH0AJ(4)[8],=AH6DA(4)[8],=AH6EZ/9(4)[8],=AH6OM(4)[8],=AH6YL(4)[8],=AL1CE(4)[8], =AL7AK(4)[8],=AL7AK/9(4)[8],=AL7BT(4)[8],=AL7CV(4)[8],=AL7DS(4)[8],=AL7II/9(4)[8],=AL7OL(4)[8], =AL7PM(4)[8],=AL7RH(4)[8],=KH0BE(4)[8],=KH2RP(4)[8],=KH6JNY(4)[8],=KH6KI(4)[8],=KH6UX(4)[8], - =KH7DR(4)[8],=KH7EI(4)[8],=KH7ZT(4)[8],=KL0LB(4)[8],=KL0NY(4)[8],=KL1NO(4)[8],=KL1NR(4)[8], - =KL1QN(4)[8],=KL1US(4)[8],=KL2A/9(4)[8],=KL2KP(4)[8],=KL2NQ(4)[8],=KL2UY(4)[8],=KL2YD(4)[8], - =KL2ZL(4)[8],=KL4CX(4)[8],=KL7AL(4)[8],=KL7AL/9(4)[8],=KL7BGR(4)[8],=KL7CE(4)[8],=KL7CE/9(4)[8], - =KL7IBV(4)[8],=KL7IKP(4)[8],=KL7IPS(4)[8],=KL7IVK(4)[8],=KL7JAB(4)[8],=KL7MU(4)[8],=KL7TD(4)[8], - =KP2XX(4)[8],=KP3JOS(4)[8],=KP3VA/M(4)[8],=KP4CI(4)[8],=KP4GE/9(4)[8],=KP4NKE(4)[8],=KP4SL(4)[8], - =KP4WG(4)[8],=NH2W(4)[8],=NH2W/9(4)[8],=NH6R(4)[8],=NH7TK(4)[8],=NL7CM(4)[8],=NL7KD(4)[8], - =NL7NK(4)[8],=NL7QC(4)[8],=NL7QC/9(4)[8],=NL7RC(4)[8],=NL7UH(4)[8],=NL7YI(4)[8],=NP2AV(4)[8], - =NP2GM(4)[8],=NP2L/9(4)[8],=NP2MU(4)[8],=NP3QC(4)[8],=NP4ZI(4)[8],=WH0AI(4)[8],=WH2T(4)[8], - =WH6ERQ(4)[8],=WH6FBA(4)[8],=WH6SB(4)[8],=WL7AHP(4)[8],=WL7AIT(4)[8],=WL7BEV(4)[8],=WL7CTA(4)[8], - =WL7FJ(4)[8],=WL7JAN(4)[8],=WL7NP(4)[8],=WL7UU(4)[8],=WP4JSP(4)[8],=WP4LKY(4)[8],=WP4LSQ(4)[8], - =WP4MQX(4)[8],=WP4MSD(4)[8],=WP4MTN(4)[8],=WP4MVQ(4)[8],=WP4MXP(4)[8],=WP4MYL(4)[8],=WP4OCZ(4)[8], + =KH7DR(4)[8],=KH7EI(4)[8],=KH7ZT(4)[8],=KL0LB(4)[8],=KL0NY(4)[8],=KL0XT(4)[8],=KL1NO(4)[8], + =KL1NR(4)[8],=KL1QN(4)[8],=KL1US(4)[8],=KL2A/9(4)[8],=KL2KP(4)[8],=KL2NQ(4)[8],=KL2UY(4)[8], + =KL2YD(4)[8],=KL2ZL(4)[8],=KL4CX(4)[8],=KL7AL(4)[8],=KL7AL/9(4)[8],=KL7BGR(4)[8],=KL7CE(4)[8], + =KL7CE/9(4)[8],=KL7IBV(4)[8],=KL7IKP(4)[8],=KL7IPS(4)[8],=KL7IVK(4)[8],=KL7JAB(4)[8],=KL7MU(4)[8], + =KL7TD(4)[8],=KP2XX(4)[8],=KP3JOS(4)[8],=KP3VA/M(4)[8],=KP4CI(4)[8],=KP4GE/9(4)[8],=KP4NKE(4)[8], + =KP4SL(4)[8],=KP4WG(4)[8],=NH2W(4)[8],=NH2W/9(4)[8],=NH6R(4)[8],=NH7TK(4)[8],=NL7CM(4)[8], + =NL7KD(4)[8],=NL7NK(4)[8],=NL7QC(4)[8],=NL7QC/9(4)[8],=NL7RC(4)[8],=NL7UH(4)[8],=NL7YI(4)[8], + =NP2AV(4)[8],=NP2DK(4)[8],=NP2GM(4)[8],=NP2L/9(4)[8],=NP2MU(4)[8],=NP3QC(4)[8],=NP4ZI(4)[8], + =WH0AI(4)[8],=WH2T(4)[8],=WH6ERQ(4)[8],=WH6FBA(4)[8],=WH6SB(4)[8],=WL7AHP(4)[8],=WL7AIT(4)[8], + =WL7BEV(4)[8],=WL7CTA(4)[8],=WL7FJ(4)[8],=WL7JAN(4)[8],=WL7NP(4)[8],=WL7UU(4)[8],=WP4JSP(4)[8], + =WP4LKY(4)[8],=WP4LSQ(4)[8],=WP4MQX(4)[8],=WP4MSD(4)[8],=WP4MTN(4)[8],=WP4MVQ(4)[8],=WP4MXP(4)[8], + =WP4MYL(4)[8],=WP4OCZ(4)[8], =AH2BG(4)[8],=AH2CF(4)[8],=AH6ES(4)[8],=AH6FF(4)[8],=AH6HR(4)[8],=AH6HR/4(4)[8],=AH6KB(4)[8], =AL0P(4)[8],=AL2C(4)[8],=AL2F(4)[8],=AL2F/4(4)[8],=AL4B(4)[8],=AL7CX(4)[8],=AL7EU(4)[8], =AL7JN(4)[8],=AL7KN(4)[8],=AL7LP(4)[8],=AL7MR(4)[8],=AL7QO(4)[8],=KH0UN(4)[8],=KH2AR(4)[8], - =KH2AR/4(4)[8],=KH2DN(4)[8],=KH4AF(4)[8],=KH6EO(4)[8],=KH6JQW(4)[8],=KH6KM(4)[8],=KH6OE(4)[8], - =KH6RD(4)[8],=KH6RD/4(4)[8],=KH6SKY(4)[8],=KH6SKY/4(4)[8],=KH7JM(4)[8],=KH7UB(4)[8],=KL0AH(4)[8], - =KL0BX(4)[8],=KL0CP(4)[8],=KL0ET(4)[8],=KL0ET/M(4)[8],=KL0EY(4)[8],=KL0FF(4)[8],=KL0GI(4)[8], - =KL0LN(4)[8],=KL0PM(4)[8],=KL0VH(4)[8],=KL1DN(4)[8],=KL1IG(4)[8],=KL1LV(4)[8],=KL1SE(4)[8], - =KL1SE/4(4)[8],=KL1ZA(4)[8],=KL2GB(4)[8],=KL2HK(4)[8],=KL2LK(4)[8],=KL2LU(4)[8],=KL2TD(4)[8], - =KL3PG(4)[8],=KL3PV(4)[8],=KL3RA(4)[8],=KL4KA(4)[8],=KL4WV(4)[8],=KL7DT/4(4)[8],=KL7FO/P(4)[8], - =KL7GN/M(4)[8],=KL7IUQ(4)[8],=KL7JKC(4)[8],=KL7LT(4)[8],=KL7WW(4)[8],=KL7YN(4)[8],=KL7YT(4)[8], - =KL9MEK(4)[8],=KP3RC(4)[8],=KP4TOM(4)[8],=NH2E(4)[8],=NH6T/4(4)[8],=NH7FK(4)[8],=NH7FL(4)[8], - =NH7H(4)[8],=NL7OE(4)[8],=NL7YU(4)[8],=NP3FB(4)[8],=NP4AC(4)[8],=NP4AC/4(4)[8],=WH6AUL(4)[8], - =WH6BPL/4(4)[8],=WH6DM(4)[8],=WH6EOG(4)[8],=WH6EQW(4)[8],=WH6FEJ(4)[8],=WH6LAK(4)[8],=WH6OR(4)[8], - =WH6Q/4(4)[8],=WL4B(4)[8],=WL7BHI(4)[8],=WL7BHJ(4)[8],=WL7CQH(4)[8],=WL7CQK(4)[8],=WL7IP(4)[8], - =WL7PC(4)[8],=WL7SF(4)[8],=WL7TD(4)[8],=WL7XZ(4)[8],=WP4CNA(4)[8],=WP4XF(4)[8], - =AL7AU(4)[7],=AL7NI(4)[7],=AL7RT(4)[7],=AL7RT/7(4)[7],=KH2BR/7(4)[7],=KH6JVF(4)[7],=KH6OZ(4)[7], - =KH7SS(4)[7],=KL0NT(4)[7],=KL0NV(4)[7],=KL0RN(4)[7],=KL0TF(4)[7],=KL1HE(4)[7],=KL1MW(4)[7], - =KL1TV(4)[7],=KL2NZ(4)[7],=KL4CZ(4)[7],=KL7AR(4)[7],=KL7HF(4)[7],=KL7HSG(4)[7],=KL7JGS(4)[7], - =KL7JGS/M(4)[7],=KL7JM(4)[7],=KL7JUL(4)[7],=KL7LH(4)[7],=KL7MVX(4)[7],=KL7YY/7(4)[7],=KL9A(4)[7], - =KL9A/7(4)[7],=NH0E(4)[7],=NH6HW(4)[7],=NL7IH(4)[7],=NL7MW(4)[7],=NL7UI(4)[7],=WH2M(4)[7], - =WH6COM(4)[7],=WH6ETU(4)[7],=WH6EVP(4)[7],=WL7A(4)[7],=WL7DP(4)[7],=WL7HP/7(4)[7],=WL7I(4)[7], - =AL7LU(5)[8],=KL7JFR(5)[8],=WP4GR(5)[8]; + =KH2AR/4(4)[8],=KH2DN(4)[8],=KH2EP(4)[8],=KH4AF(4)[8],=KH6EO(4)[8],=KH6JQW(4)[8],=KH6KM(4)[8], + =KH6OE(4)[8],=KH6RD(4)[8],=KH6RD/4(4)[8],=KH6SKY(4)[8],=KH6SKY/4(4)[8],=KH7JM(4)[8],=KH7UB(4)[8], + =KL0AH(4)[8],=KL0BX(4)[8],=KL0CP(4)[8],=KL0ET(4)[8],=KL0ET/M(4)[8],=KL0EY(4)[8],=KL0FF(4)[8], + =KL0GI(4)[8],=KL0LN(4)[8],=KL0PM(4)[8],=KL0VH(4)[8],=KL1DN(4)[8],=KL1IG(4)[8],=KL1LV(4)[8], + =KL1SE(4)[8],=KL1SE/4(4)[8],=KL1ZA(4)[8],=KL2GB(4)[8],=KL2HK(4)[8],=KL2LK(4)[8],=KL2LU(4)[8], + =KL2TD(4)[8],=KL3PG(4)[8],=KL3PV(4)[8],=KL3RA(4)[8],=KL4KA(4)[8],=KL4WV(4)[8],=KL7DT/4(4)[8], + =KL7FO/P(4)[8],=KL7GN/M(4)[8],=KL7IUQ(4)[8],=KL7JKC(4)[8],=KL7LT(4)[8],=KL7WW(4)[8],=KL7YN(4)[8], + =KL7YT(4)[8],=KL9MEK(4)[8],=KP3RC(4)[8],=KP4TOM(4)[8],=NH2E(4)[8],=NH6T/4(4)[8],=NH7FK(4)[8], + =NH7FL(4)[8],=NH7H(4)[8],=NL7OE(4)[8],=NL7YU(4)[8],=NP2KS(4)[8],=NP3FB(4)[8],=NP4AC(4)[8], + =NP4AC/4(4)[8],=WH6AUL(4)[8],=WH6BPL/4(4)[8],=WH6DM(4)[8],=WH6EOG(4)[8],=WH6EQW(4)[8], + =WH6FEJ(4)[8],=WH6LAK(4)[8],=WH6OR(4)[8],=WH6Q/4(4)[8],=WL4B(4)[8],=WL7BHI(4)[8],=WL7BHJ(4)[8], + =WL7CQH(4)[8],=WL7CQK(4)[8],=WL7IP(4)[8],=WL7PC(4)[8],=WL7SF(4)[8],=WL7TD(4)[8],=WL7XZ(4)[8], + =WP3IK(4)[8],=WP4CNA(4)[8],=WP4XF(4)[8], + =AL1VE/R(4)[7],=AL7AU(4)[7],=AL7NI(4)[7],=AL7RT(4)[7],=AL7RT/7(4)[7],=KH2BR/7(4)[7],=KH6JVF(4)[7], + =KH6OZ(4)[7],=KH7AL(4)[7],=KH7SS(4)[7],=KL0NT(4)[7],=KL0NV(4)[7],=KL0RN(4)[7],=KL0TF(4)[7], + =KL1HE(4)[7],=KL1MW(4)[7],=KL1TV(4)[7],=KL2NZ(4)[7],=KL4CZ(4)[7],=KL7AR(4)[7],=KL7HF(4)[7], + =KL7HSG(4)[7],=KL7JGS(4)[7],=KL7JGS/M(4)[7],=KL7JM(4)[7],=KL7JUL(4)[7],=KL7LH(4)[7],=KL7MVX(4)[7], + =KL7YY/7(4)[7],=KL9A(4)[7],=KL9A/7(4)[7],=NH0E(4)[7],=NH6HW(4)[7],=NL7IH(4)[7],=NL7MW(4)[7], + =NL7UI(4)[7],=WH2M(4)[7],=WH6COM(4)[7],=WH6ETU(4)[7],=WH6EVP(4)[7],=WL7A(4)[7],=WL7DP(4)[7], + =WL7HP/7(4)[7],=WL7I(4)[7], + =AL7LU(5)[8],=KL7JFR(5)[8]; Guantanamo Bay: 08: 11: NA: 20.00: 75.00: 5.0: KG4: KG4,=KG44WW,=KG4AC,=KG4AS,=KG4AW,=KG4AY,=KG4BP,=KG4DY,=KG4EM,=KG4EU,=KG4HF,=KG4HH,=KG4LA,=KG4LB, =KG4MA,=KG4NE,=KG4SC,=KG4SS,=KG4WH,=KG4WV,=KG4XP,=KG4ZK,=W1AW/KG4; @@ -1669,11 +1683,11 @@ Baker & Howland Islands: 31: 61: OC: 0.00: 176.00: 12.0: KH1: AH1,KH1,NH1,WH1; Guam: 27: 64: OC: 13.37: -144.70: -10.0: KH2: AH2,KH2,NH2,WH2,=AB2AB,=AB8EW,=AC0FG,=AC7WL,=AE6QZ,=AE7CA,=AH0AX,=AH0F,=AH0FM,=AH0S,=AI6ID,=AJ6JF, - =K1IWD,=K2QGC,=K4QFS,=K5GUA,=K5GUM,=KA0RU,=KA1I,=KA6BEG,=KB7OVT,=KB7PQU,=KC2OOX,=KD7IRV,=KE4YSP, - =KE7GMC,=KE7IPG,=KF4UFC,=KF5ULC,=KF7BMU,=KG4BKW,=KG6AGT,=KG6ARL,=KG6DX,=KG6FJG,=KG6JDX,=KG6JKR, - =KG6JKT,=KG6TWZ,=KH0DX,=KH0ES,=KH0TF,=KH0UM,=KH6KK,=KI4KKH,=KI4KKI,=KI7SSW,=KJ6AYQ,=KJ6KCJ, - =KK6GVF,=KK7AV,=KM4NVB,=KN4IAS,=KN4LVP,=N0RY,=N2MI,=N5ATC,=NH0A,=NH0B,=NH0Q,=NH7TL,=NP3EZ,=W5LFA, - =W6KV,=W7GVC,=W9MRE,=WA3KNB,=WB7AXZ,=WD6DGS,=WH0AC; + =K1IWD,=K2QGC,=K4QFS,=K5GUA,=K5GUM,=KA0RU,=KA1I,=KA6BEG,=KB7OVT,=KB7PQU,=KC2OOX,=KD0AA,=KD7IRV, + =KE4YSP,=KE7GMC,=KE7IPG,=KF4UFC,=KF5ULC,=KF7BMU,=KG4BKW,=KG6AGT,=KG6ARL,=KG6DX,=KG6FJG,=KG6JDX, + =KG6JKR,=KG6JKT,=KG6TWZ,=KH0DX,=KH0ES,=KH0TF,=KH0UM,=KH6KK,=KI4KKH,=KI4KKI,=KI7SSW,=KJ6AYQ, + =KJ6KCJ,=KK6GVF,=KK7AV,=KM4NVB,=KN4IAS,=KN4LVP,=N0RY,=N2MI,=N5ATC,=NH0A,=NH0B,=NH0Q,=NH7TL,=NP3EZ, + =W5LFA,=W6KV,=W7GVC,=W9MRE,=WA3KNB,=WB7AXZ,=WD6DGS,=WH0AC; Johnston Island: 31: 61: OC: 16.72: 169.53: 10.0: KH3: AH3,KH3,NH3,WH3,=KJ6BZ; Midway Island: 31: 61: OC: 28.20: 177.37: 11.0: KH4: @@ -1681,57 +1695,58 @@ Midway Island: 31: 61: OC: 28.20: 177.37: 11.0: KH4: Palmyra & Jarvis Islands: 31: 61: OC: 5.87: 162.07: 11.0: KH5: AH5,KH5,NH5,WH5; Hawaii: 31: 61: OC: 21.12: 157.48: 10.0: KH6: - AH6,AH7,KH6,KH7,NH6,NH7,WH6,WH7,=AA7LE,=AA8JA,=AB0JM,=AB3WS,=AB4CO,=AB6AP,=AB8VQ,=AC4PJ,=AC4TJ, - =AC9PT,=AE3TT,=AE5AB,=AE5LR,=AG4FH,=AH0A,=AH0AG,=AH2CC,=AH2CN,=AJ0M,=AJ8HT,=AK2J,=AL3U,=AL7RQ, - =K0BAD,=K0LAS,=K0LIH,=K0LUC,=K0OUS,=K1ENT,=K1ER,=K1HZM,=K1OSP,=K1OWL,=K1RJ,=K1VAN,=K2FFT,=K2GT, - =K3NW,=K3UNS,=K4AJQ,=K4EVR,=K4RAC,=K4UAI,=K4UHL,=K4XSS,=K4XV,=K5HQM,=K5ZAI,=K5ZYO,=K6AMA,=K6APP, - =K6BU,=K6CEE,=K6GJS,=K6GUY,=K6HI,=K6HNL,=K6JAE,=K6KKW,=K6LN,=K6NLF,=K6RSB,=K7ALH,=K7ASH,=K7FAR, - =K7FR,=K7NRJ,=K7QAS,=K7ZOX,=K8EUT,=K9AGI,=K9FD,=K9UBS,=KA0FOR,=KA0VHP,=KA1ICJ,=KA1YJ,=KA2IXG, - =KA2WXU,=KA3HIZ,=KA3TUA,=KA4INK,=KA4SBE,=KA6QOD,=KA6SVW,=KA7APU,=KA7BSK,=KA7RKW,=KA8EBL,=KA8KND, - =KA9DMP,=KB0DJR,=KB0PXK,=KB0ZKZ,=KB1EUJ,=KB1GC,=KB1PCX,=KB1UHL,=KB2MRY,=KB3DMT,=KB3FDP,=KB3HXI, - =KB3IOC,=KB3OXU,=KB3PJS,=KB3SEV,=KB4NGN,=KB5HVJ,=KB5NNY,=KB5OWT,=KB5OXR,=KB6CNU,=KB6EGA,=KB6INB, - =KB6PKF,=KB6SWL,=KB7AKH,=KB7AKQ,=KB7DDX,=KB7EA,=KB7G,=KB7JB,=KB7LPW,=KB7MEU,=KB7QKJ,=KB7UQH, - =KB7UVR,=KB7WDC,=KB7WUP,=KB8SKX,=KC0WQU,=KC0YIH,=KC0ZER,=KC1DBY,=KC2CLQ,=KC2GSU,=KC2HL,=KC2MIU, - =KC2PGW,=KC2SRW,=KC2YL,=KC2ZSG,=KC2ZSH,=KC2ZSI,=KC3GZT,=KC4HHS,=KC5GAX,=KC6HOX,=KC6QQI,=KC6RYQ, - =KC6SHT,=KC6SWR,=KC6YIO,=KC7ASJ,=KC7AXX,=KC7DUT,=KC7EJC,=KC7HNC,=KC7KAT,=KC7KAW,=KC7KBA,=KC7KHW, - =KC7KJT,=KC7LFM,=KC7NZ,=KC7PLG,=KC7USA,=KC7VHF,=KC7VWU,=KC7YXO,=KC8EFI,=KC8EJ,=KC9AUA,=KC9EQS, - =KC9KEX,=KC9NJG,=KC9SBG,=KD0JNO,=KD0OXU,=KD0QLQ,=KD0QLR,=KD0RPD,=KD0WVZ,=KD0ZSP,=KD3FZ,=KD4GVR, - =KD4GW,=KD4ML,=KD4NFW,=KD4QWO,=KD5BSK,=KD5HDA,=KD5HX,=KD5TBQ,=KD6CVU,=KD6CWF,=KD6EPD,=KD6IPX, - =KD6LRA,=KD6NVX,=KD6VTU,=KD7GWI,=KD7GWM,=KD7HTG,=KD7KFT,=KD7LMP,=KD7SME,=KD7SMV,=KD7TZ,=KD7UV, - =KD7UZG,=KD7WJM,=KD8GVO,=KD8LYB,=KE0JSB,=KE0KIE,=KE0TU,=KE2CX,=KE4DYE,=KE4RNU,=KE4UXQ,=KE4ZXQ, - =KE5CGA,=KE5FJM,=KE5UZN,=KE5VQB,=KE6AHX,=KE6AXN,=KE6AXP,=KE6AYZ,=KE6CQE,=KE6EDJ,=KE6EVT,=KE6JXO, - =KE6MKW,=KE6RAW,=KE6TFR,=KE6TIS,=KE6TIX,=KE6TKQ,=KE7FJA,=KE7FSK,=KE7HEW,=KE7IZS,=KE7JTX,=KE7KRQ, - =KE7LWN,=KE7MW,=KE7PEQ,=KE7PIZ,=KE7QML,=KE7RCT,=KE7UAJ,=KE7UV,=KE7UW,=KF4DWA,=KF4FQR,=KF4IBW, - =KF4JLZ,=KF4OOB,=KF4SGA,=KF4UJC,=KF4URD,=KF4VHS,=KF5AHW,=KF5MXM,=KF5MXP,=KF6BS,=KF6FDG,=KF6IVV, - =KF6LWN,=KF6LYU,=KF6MQT,=KF6OSA,=KF6PJ,=KF6PQE,=KF6QZD,=KF6RLP,=KF6YZR,=KF6ZAL,=KF6ZVS,=KF7GNP, - =KF7LRS,=KF7OJR,=KF7TUU,=KF7VUK,=KG0XR,=KG4CAN,=KG4FJB,=KG4HZF,=KG4SGC,=KG4SGV,=KG4TZD,=KG5CH, - =KG5CNO,=KG5IVP,=KG6DV,=KG6HRX,=KG6IER,=KG6IGY,=KG6JJP,=KG6LFX,=KG6MZJ,=KG6NNF,=KG6NQI,=KG6OOB, - =KG6RJI,=KG6SDD,=KG6TFI,=KG6WZD,=KG6ZRY,=KG7AYU,=KG7CJI,=KG7EUP,=KG7ZJM,=KG9MDR,=KH0AI,=KH0HL, - =KH0WJ,=KH2DC,=KH2MD,=KH2TD,=KH2TE,=KH2YI,=KH3AE,=KH3AE/M,=KH3AF,=KH8Z,=KI4CAU,=KI4HCZ,=KI4NOH, - =KI4YAF,=KI4YOG,=KI6CRL,=KI6DVJ,=KI6EFY,=KI6FTE,=KI6HBZ,=KI6JEC,=KI6LPT,=KI6NOC,=KI6QDQ,=KI6QQJ, - =KI6SNP,=KI6VYB,=KI6WOJ,=KI6ZRV,=KI7AUZ,=KI7EZG,=KI7FJW,=KI7FJX,=KI7FUT,=KI7OS,=KI7QZQ,=KJ4BHO, - =KJ4EYV,=KJ4KND,=KJ4WOI,=KJ6COM,=KJ6CQT,=KJ6FDF,=KJ6GYD,=KJ6LAW,=KJ6LAX,=KJ6LBI,=KJ6NZH,=KJ6QQT, - =KJ6RGW,=KJ6TJZ,=KK4EEC,=KK4RNF,=KK6BRW,=KK6EJ,=KK6GM,=KK6OMX,=KK6PGA,=KK6QAI,=KK6RM,=KK6VJN, - =KK6ZQ,=KK6ZZE,=KK7WR,=KL0TK,=KL1TP,=KL3FN,=KL3JC,=KL7PN,=KL7UB,=KL7XT,=KM4IP,=KM6IK,=KM6RM, - =KM6RWE,=KM6UVP,=KN6BE,=KN6ZU,=KN8AQR,=KO6KW,=KO6QT,=KQ6CD,=KQ6M,=KR1LLR,=KU4OY,=KW4JC,=KX6RTG, + AH6,AH7,KH6,KH7,NH6,NH7,WH6,WH7,=AA7FL,=AA7LE,=AA8JA,=AB0JM,=AB3WS,=AB4CO,=AB6AP,=AB8VQ,=AC4PJ, + =AC4TJ,=AC9PT,=AE3TT,=AE5AB,=AE5LR,=AG4FH,=AH0A,=AH0AG,=AH2CC,=AH2CN,=AJ0M,=AJ8HT,=AK2J,=AL3U, + =AL6D,=AL7RQ,=K0BAD,=K0LAS,=K0LIH,=K0LUC,=K0OUS,=K1ENT,=K1ER,=K1HZM,=K1OSP,=K1OWL,=K1RJ,=K1VAN, + =K2FFT,=K2GT,=K3NW,=K3UNS,=K4AJQ,=K4EVR,=K4RAC,=K4UAI,=K4UHL,=K4XV,=K5HQM,=K5PKT,=K5ZAI,=K5ZYO, + =K6AMA,=K6APP,=K6BU,=K6CEE,=K6GJS,=K6GUY,=K6HI,=K6HNL,=K6JAE,=K6KKW,=K6LN,=K6RSB,=K7ALH,=K7ASH, + =K7NRJ,=K7QAS,=K7ZOX,=K8EUT,=K9AGI,=K9FD,=K9UBS,=KA0FOR,=KA0VHP,=KA1ICJ,=KA1YJ,=KA2IXG,=KA2WXU, + =KA3HIZ,=KA3TUA,=KA4INK,=KA4SBE,=KA6QOD,=KA6SVW,=KA7APU,=KA7BSK,=KA7RKW,=KA8EBL,=KA8KND,=KA9DMP, + =KB0DJR,=KB0PXK,=KB0ZKZ,=KB1EUJ,=KB1GC,=KB1KAC,=KB1PCX,=KB1UHL,=KB2MRY,=KB3DMT,=KB3FDP,=KB3HXI, + =KB3IOC,=KB3OXU,=KB3PJS,=KB3SEV,=KB4NGN,=KB5HVJ,=KB5MTI,=KB5NNY,=KB5OWT,=KB5OXR,=KB6CNU,=KB6EGA, + =KB6INB,=KB6PKF,=KB6SWL,=KB7AKH,=KB7AKQ,=KB7DDX,=KB7EA,=KB7G,=KB7JB,=KB7LPW,=KB7MEU,=KB7QKJ, + =KB7UQH,=KB7UVR,=KB7WDC,=KB7WUP,=KB8SKX,=KC0HFI,=KC0WQU,=KC0YIH,=KC0ZER,=KC1DBY,=KC2CLQ,=KC2GSU, + =KC2HL,=KC2MIU,=KC2PGW,=KC2SRW,=KC2YL,=KC2ZSG,=KC2ZSH,=KC2ZSI,=KC3GZT,=KC4HHS,=KC5GAX,=KC6HOX, + =KC6MCC,=KC6QQI,=KC6RYQ,=KC6SHT,=KC6SWR,=KC6YIO,=KC7ASJ,=KC7AXX,=KC7DUT,=KC7EJC,=KC7HNC,=KC7KAT, + =KC7KAW,=KC7KBA,=KC7KHW,=KC7KJT,=KC7LFM,=KC7NZ,=KC7PLG,=KC7USA,=KC7VHF,=KC7VWU,=KC7YXO,=KC8EFI, + =KC8EJ,=KC8JNV,=KC9AUA,=KC9EQS,=KC9KEX,=KC9NJG,=KC9SBG,=KD0JNO,=KD0OXU,=KD0QLQ,=KD0QLR,=KD0RPD, + =KD0WVZ,=KD0ZSP,=KD3FZ,=KD4GVR,=KD4GW,=KD4ML,=KD4NFW,=KD4QWO,=KD5BSK,=KD5HDA,=KD5HX,=KD5TBQ, + =KD6CVU,=KD6CWF,=KD6EPD,=KD6IPX,=KD6LRA,=KD6NVX,=KD6VTU,=KD7GWI,=KD7GWM,=KD7HTG,=KD7KFT,=KD7LMP, + =KD7SME,=KD7SMV,=KD7TZ,=KD7UV,=KD7UZG,=KD7WJM,=KD8GVO,=KD8LYB,=KE0JSB,=KE0KIE,=KE0TU,=KE2CX, + =KE4DYE,=KE4RNU,=KE4UXQ,=KE4ZXQ,=KE5CGA,=KE5FJM,=KE5UZN,=KE5VQB,=KE6AHX,=KE6AXN,=KE6AXP,=KE6AYZ, + =KE6CQE,=KE6EDJ,=KE6EVT,=KE6JXO,=KE6MKW,=KE6RAW,=KE6TFR,=KE6TIS,=KE6TIX,=KE6TKQ,=KE7FJA,=KE7FSK, + =KE7HEW,=KE7IZS,=KE7JTX,=KE7KRQ,=KE7LWN,=KE7MW,=KE7PEQ,=KE7PIZ,=KE7QML,=KE7RCT,=KE7UAJ,=KE7UV, + =KE7UW,=KF4DWA,=KF4FQR,=KF4IBW,=KF4JLZ,=KF4OOB,=KF4SGA,=KF4UJC,=KF4URD,=KF4VHS,=KF5AHW,=KF5MXM, + =KF5MXP,=KF6BS,=KF6FDG,=KF6IVV,=KF6LWN,=KF6LYU,=KF6MQT,=KF6OHL,=KF6OSA,=KF6PJ,=KF6PQE,=KF6QZD, + =KF6RLP,=KF6YZR,=KF6ZAL,=KF6ZVS,=KF7GNP,=KF7LRS,=KF7OJR,=KF7TUU,=KF7VUK,=KG0XR,=KG4CAN,=KG4FJB, + =KG4HZF,=KG4JKJ,=KG4SGC,=KG4SGV,=KG4TZD,=KG5CH,=KG5CNO,=KG5IVP,=KG6CJA,=KG6CJK,=KG6DV,=KG6HRX, + =KG6IER,=KG6IGY,=KG6JJP,=KG6LFX,=KG6MZJ,=KG6NNF,=KG6NQI,=KG6OOB,=KG6RJI,=KG6SDD,=KG6TFI,=KG6WZD, + =KG6ZRY,=KG7AYU,=KG7CJI,=KG7EUP,=KG7ZJM,=KG9MDR,=KH0AI,=KH0HL,=KH0WJ,=KH2DC,=KH2MD,=KH2TD,=KH2TE, + =KH2YI,=KH3AE,=KH3AE/M,=KH3AF,=KH8Z,=KI4CAU,=KI4HCZ,=KI4NOH,=KI4YAF,=KI4YOG,=KI6CRL,=KI6DVJ, + =KI6EFY,=KI6FTE,=KI6HBZ,=KI6JEC,=KI6LPT,=KI6NOC,=KI6QDQ,=KI6QQJ,=KI6SNP,=KI6VYB,=KI6WOJ,=KI6ZRV, + =KI7AUZ,=KI7EZG,=KI7FJW,=KI7FJX,=KI7FUT,=KI7OS,=KI7QZQ,=KJ4BHO,=KJ4EYV,=KJ4KND,=KJ4WOI,=KJ6CKZ, + =KJ6COM,=KJ6CPN,=KJ6CQT,=KJ6FDF,=KJ6GYD,=KJ6LAW,=KJ6LAX,=KJ6LBI,=KJ6NZH,=KJ6QQT,=KJ6RGW,=KJ6TJZ, + =KK4EEC,=KK4RNF,=KK6BRW,=KK6DWS,=KK6EJ,=KK6GM,=KK6OMX,=KK6PGA,=KK6QAI,=KK6RM,=KK6VJN,=KK6ZQ, + =KK6ZZE,=KK7WR,=KL0TK,=KL1TP,=KL3FN,=KL3JC,=KL7PN,=KL7UB,=KL7XT,=KM4IP,=KM6IK,=KM6RM,=KM6RWE, + =KM6UVP,=KN6BE,=KN6ZU,=KN8AQR,=KO4BNK,=KO6KW,=KO6QT,=KQ6CD,=KQ6M,=KR1LLR,=KU4OY,=KW4JC,=KX6RTG, =KY1I,=N0CAN,=N0KXY,=N0PJV,=N0RMC,=N0VYO,=N0ZSJ,=N1CBF,=N1CFD,=N1CNQ,=N1IDP,=N1SHV,=N1TEE,=N1TLE, =N1VOP,=N1YLH,=N2AL,=N2KJU,=N2KLQ,=N3BQY,=N3DJT,=N3FUR,=N3GWR,=N3HQW,=N3RWD,=N3VDM,=N3ZFY,=N4BER, - =N4ERA,=N4ZIW,=N5IWF,=N5JKJ,=N6AI,=N6CGA,=N6DXW,=N6GOZ,=N6IKX,=N6KB,=N6NCT,=N6PJQ,=N6QBK,=N6ZAB, - =N7AMY,=N7BLC,=N7BMD,=N7KZB,=N7NYY,=N7ODC,=N7TSV,=N7WBX,=N9GFL,=N9SBL,=NB6R,=ND1A,=NE7SO,=NG1T, - =NH2CC,=NH2CD,=NH2CF,=NH2CQ,=NH2CR,=NH2IB,=NH2IF,=NH2II,=NH2IJ,=NH2IO,=NH2JO,=NH2KF,=NH2KH,=NH2YL, - =NH2Z,=NI1J,=NL7UW,=NM2B,=NO0H,=NT0DA,=NT4AA,=NZ2F,=W0UNX,=W1BMB,=W2UNS,=W3ZRT,=W4PRO,=W4YQS, - =W5FJG,=W6CAG,=W6CWJ,=W6KEV,=W6KIT,=W6KPI,=W6MQB,=W6MRJ,=W6NBK,=W6QPV,=W6ROM,=W6SHH,=W6UNX,=W7EHP, - =W7NVQ,=W7NX,=W7RCR,=W7UEA,=W8AYD,=W8JAY,=W8WH,=WA0FUR,=WA0NHD,=WA0TFB,=WA2AUI,=WA3ZEM,=WA6AW, - =WA6CZL,=WA6ECX,=WA6IIQ,=WA6JDA,=WA6JJQ,=WA6QDQ,=WA6UVF,=WA7ESE,=WA7HEO,=WA7TFE,=WA7ZK,=WA8HEB, - =WA8JQP,=WB0RUA,=WB0TZQ,=WB2AHM,=WB2SQW,=WB4JTT,=WB4MNF,=WB5ZDH,=WB5ZOV,=WB6CVJ,=WB6FOX,=WB6PIO, - =WB6PJT,=WB6SAA,=WB6VBM,=WB8NCD,=WB9SMM,=WC6B,=WD0FTF,=WD0LFN,=WD8LIB,=WD8OBO,=WH2Y,=WH7K,=WU0H, - =WV0Z,=WV6K,=WY6F; + =N4ERA,=N4ZIW,=N5IWF,=N5JKJ,=N6AI,=N6CGA,=N6DXW,=N6EQZ,=N6GOZ,=N6IKX,=N6KB,=N6NCT,=N6PJQ,=N6QBK, + =N6ZAB,=N7AMY,=N7BLC,=N7BMD,=N7KZB,=N7NYY,=N7ODC,=N7TSV,=N7WBX,=N9GFL,=N9SBL,=NB6R,=ND1A,=NE7SO, + =NG1T,=NH2CC,=NH2CD,=NH2CF,=NH2CQ,=NH2CR,=NH2IB,=NH2IF,=NH2II,=NH2IJ,=NH2IO,=NH2JO,=NH2KF,=NH2KH, + =NH2YL,=NH2Z,=NI1J,=NL7UW,=NM2B,=NO0H,=NT0DA,=NT4AA,=NZ2F,=W0UNX,=W1BMB,=W1ETT,=W1JJS,=W2UNS, + =W3ZRT,=W4PRO,=W4YQS,=W5FJG,=W6CAG,=W6CWJ,=W6KEV,=W6KIT,=W6KPI,=W6MQB,=W6MRJ,=W6NBK,=W6QPV,=W6ROM, + =W6SHH,=W6UNX,=W7EHP,=W7NVQ,=W7NX,=W7RCR,=W7UEA,=W8AYD,=W8JAY,=W8WH,=WA0FUR,=WA0NHD,=WA0TFB, + =WA2AUI,=WA3ZEM,=WA6AW,=WA6CZL,=WA6ECX,=WA6IIQ,=WA6JDA,=WA6JJQ,=WA6QDQ,=WA6UVF,=WA7ESE,=WA7HEO, + =WA7TFE,=WA7ZK,=WA8HEB,=WA8JQP,=WB0RUA,=WB0TZQ,=WB2AHM,=WB2SQW,=WB4JTT,=WB4MNF,=WB5ZDH,=WB5ZOV, + =WB6CVJ,=WB6FOX,=WB6PIO,=WB6PJT,=WB6SAA,=WB6VBM,=WB8NCD,=WB9SMM,=WC6B,=WD0FTF,=WD0LFN,=WD4MLF, + =WD8LIB,=WD8OBO,=WH2Y,=WH7K,=WU0H,=WV0Z,=WV6K,=WY6F; Kure Island: 31: 61: OC: 29.00: 178.00: 10.0: KH7K: AH7K,KH7K,NH7K,WH7K; American Samoa: 32: 62: OC: -14.32: 170.78: 11.0: KH8: AH8,KH8,NH8,WH8,=AB9OH,=AF7MN,=KD8TFY,=KH0WF,=KM4YJH,=KS6EL,=KS6FS,=WH6BAR,=WL7BMP; Swains Island: 32: 62: OC: -11.05: 171.25: 11.0: KH8/s: - =KH6BK/KH8,=KH8/WH7S,=KH8S/K3UY,=KH8S/NA6M,=KH8SI,=NH8S,=W8S; + =K9CS/KH8S,=KH6BK/KH8,=KH8/WH7S,=KH8S/K3UY,=KH8S/NA6M,=KH8S/W8TN,=KH8SI,=NH8S,=W8S; Wake Island: 31: 65: OC: 19.28: -166.63: -12.0: KH9: AH9,KH9,NH9,WH9; Alaska: 01: 01: NA: 61.40: 148.87: 8.0: KL: @@ -1741,48 +1756,50 @@ Alaska: 01: 01: NA: 61.40: 148.87: 8.0: KL: =K1BZD,=K1KAO,=K1MAT,=K1TMT,=K2ICW,=K2NPS,=K3JMI,=K4DRC,=K4ETC,=K4HOE,=K4PSG,=K4RND,=K4WPK,=K5DOW, =K5HL,=K5RD,=K5RSO,=K5RZW,=K5TDN,=K6ANE,=K6GKW,=K7BUF,=K7CAP,=K7EJM,=K7GRW,=K7LOP,=K7MVX,=K7OCL, =K7RDR,=K7SGA,=K7UNX,=K7VRK,=K8IEL,=K8OUA,=K9DUG,=KA0SIM,=KA0YPV,=KA1NCN,=KA2TJZ,=KA2ZSD,=KA6DBB, - =KA6UGT,=KA7ETQ,=KA7HOX,=KA7JOR,=KA7PUB,=KA7TMU,=KA7TOM,=KA7UKN,=KA7VCR,=KA7YEY,=KA9GYQ,=KB0APK, - =KB0LOW,=KB0TSU,=KB0UGE,=KB0UVK,=KB1CRT,=KB1FCX,=KB1KLH,=KB1PHP,=KB1QCD,=KB1QCE,=KB1SYV,=KB1WQL, - =KB2FWF,=KB2JWV,=KB2ZME,=KB3CYB,=KB3JFK,=KB3NCR,=KB3VQE,=KB4DX,=KB5DNT,=KB5HEV,=KB5NOW,=KB5UWU, - =KB5YLG,=KB6DKJ,=KB7AMA,=KB7BNG,=KB7BUF,=KB7DEL,=KB7FXJ,=KB7IBI,=KB7JA,=KB7LJZ,=KB7LON,=KB7PHT, - =KB7QLB,=KB7RXZ,=KB7SIQ,=KB7UBH,=KB7VFZ,=KB7YEC,=KB7ZVZ,=KB8QKR,=KB8SBG,=KB8TEW,=KB8VYJ,=KB9MWG, - =KB9RWE,=KB9RWJ,=KB9YGR,=KC0ATI,=KC0CWG,=KC0CYR,=KC0EF,=KC0EFL,=KC0GDH,=KC0GHH,=KC0GLN,=KC0LLL, - =KC0NSV,=KC0OKQ,=KC0PSZ,=KC0TK,=KC0TZL,=KC0UYK,=KC0VDN,=KC0WSG,=KC0YSW,=KC1DL,=KC1KPL,=KC1LVR, - =KC2BYX,=KC2GVS,=KC2HRV,=KC2KMU,=KC2OJP,=KC2PCV,=KC2PIO,=KC3DBK,=KC4MXQ,=KC4MXR,=KC5BNN,=KC5CHO, - =KC5DJA,=KC5IBS,=KC5KIG,=KC5LKF,=KC5LKG,=KC5NHL,=KC5QPJ,=KC5THY,=KC5YIB,=KC5YOX,=KC5ZAA,=KC6RJW, - =KC7BUL,=KC7COW,=KC7ENM,=KC7FWK,=KC7GSO,=KC7HJM,=KC7HPF,=KC7IKE,=KC7IKF,=KC7INC,=KC7MIJ,=KC7MPY, - =KC7MRO,=KC7OQZ,=KC7PLJ,=KC7PLQ,=KC7RCP,=KC7TYT,=KC7UZY,=KC7WOA,=KC7YZR,=KC8GKK,=KC8MVW,=KC8NOY, - =KC8WWS,=KC8YIV,=KC9CMY,=KC9HIK,=KC9IKH,=KC9VLD,=KD0CLU,=KD0CZC,=KD0DHU,=KD0FJG,=KD0IXU,=KD0JJB, - =KD0NSG,=KD0ONB,=KD0VAK,=KD0VAL,=KD0ZOD,=KD2CTE,=KD2GKT,=KD2NPD,=KD2SKJ,=KD4EYW,=KD4MEY,=KD4QJL, - =KD5DNA,=KD5DWV,=KD5GAL,=KD5MQC,=KD5QPD,=KD5RVD,=KD5WCF,=KD5WEV,=KD5WYP,=KD6DLB,=KD6RVY,=KD6YKS, - =KD7APU,=KD7AWK,=KD7BBX,=KD7BGP,=KD7DIG,=KD7DUQ,=KD7FGL,=KD7FUL,=KD7GFG,=KD7HXF,=KD7KRK,=KD7MGO, - =KD7OOS,=KD7QAR,=KD7SIX,=KD7TOJ,=KD7TWB,=KD7UAG,=KD7VOI,=KD7VXE,=KD7ZTJ,=KD8DDY,=KD8GEL,=KD8GMS, - =KD8JOU,=KD8KQL,=KD8LNA,=KD8WMX,=KD9TK,=KE0DYM,=KE0KKI,=KE4DGR,=KE4MQD,=KE4YEI,=KE4YLG,=KE5CVD, - =KE5CVT,=KE5DQV,=KE5FOC,=KE5GEB,=KE5HHR,=KE5JHS,=KE5JTB,=KE5NLG,=KE5QDJ,=KE5QDK,=KE5WGZ,=KE5ZRK, - =KE5ZUM,=KE6DLM,=KE6DUJ,=KE6DXH,=KE6IPM,=KE6SYD,=KE6TCE,=KE6VUB,=KE7DFO,=KE7ELL,=KE7EOP,=KE7EPZ, - =KE7FNC,=KE7FXM,=KE7GOE,=KE7HMJ,=KE7KYU,=KE7PXV,=KE7TRX,=KE8RO,=KF3L,=KF4JET,=KF4PLR,=KF4TBD, - =KF4YFD,=KF5CVM,=KF5ETW,=KF5FJQ,=KF5HFB,=KF5HJC,=KF5NDT,=KF5UBP,=KF5YYK,=KF6AWG,=KF6AXS,=KF6BMF, - =KF6BOV,=KF6EJR,=KF6GNM,=KF6IAO,=KF6ILC,=KF6IOT,=KF6LGK,=KF6MFK,=KF6QOJ,=KF6RMG,=KF6RPC,=KF6SHS, - =KF6TGR,=KF6UWT,=KF7ARC,=KF7CXJ,=KF7FLL,=KF7FLM,=KF7GKY,=KF7ING,=KF7ITN,=KF7KTH,=KF7LEX,=KF7LUA, - =KF7PCJ,=KF7PFT,=KF7PSS,=KF7PUQ,=KF7UFY,=KF7VBO,=KF7WVE,=KF8ZB,=KG2IA,=KG4BBX,=KG4NBL/P,=KG4TJS, - =KG4WNZ,=KG5EQN,=KG5GDF,=KG5GTD,=KG5JQC,=KG5MIB,=KG5MIO,=KG6ALN,=KG6DTI,=KG6MBC,=KG6RJE,=KG6TAL, - =KG7CUR,=KG7DVI,=KG7GJL,=KG7JVJ,=KG7OQC,=KG7OUF,=KG7SEQ,=KG7TGE,=KG7ZEV,=KH0NF,=KH0NG,=KH0RF, - =KH2YN,=KH7BW,=KH7DA,=KI4COG,=KI4ERC,=KI4GAG,=KI4GCF,=KI4GDI,=KI4NGY,=KI4NVI,=KI4SET,=KI4SOM, - =KI6BGR,=KI6DES,=KI6HGW,=KI6YXZ,=KI7COR,=KI7PZ,=KI8JT,=KJ4HEW,=KJ4IAQ,=KJ4PSV,=KJ4WIQ,=KJ4YOY, - =KJ4ZWI,=KJ6DCH,=KJ6KRG,=KJ6RFQ,=KJ6ZSX,=KJ7IR,=KJ7MY,=KK4AMV,=KK4CLS,=KK4LRE,=KK4QXE,=KK4RYG, - =KK4WWH,=KK4WWI,=KK6IUY,=KK6PGV,=KK6SNS,=KK7I,=KK7IV,=KK7STL,=KL7D/M,=KL7NC/IMD,=KM4AGL,=KM4KWS, - =KM4KX,=KM4NIC,=KM4OE,=KM4PJH,=KM4TJI,=KM6NOL,=KM6YOD,=KN4ENR,=KN4HGD,=KN4LJD,=KN4RXC,=KN8IVE, - =KR4WV,=KV3X,=KW1W,=KW4XD,=KY7J,=KZ6HJC,=N0GDT,=N0GDU,=N0GLI,=N0HJT,=N0HYI,=N0HZF,=N0JEN,=N0LHN, - =N0SN,=N0SUB,=N0WXJ,=N0XKY,=N0XS,=N0ZKV,=N1HEN,=N1HUT,=N1KDQ,=N1KTI,=N1NDA,=N1NJS,=N1QFE,=N1TX, - =N2CXH,=N2SHO,=N2TJY,=N2YZW,=N3QEH,=N4AVX,=N4CM,=N4HCJ,=N4HZU,=N4NAV,=N5CSO,=N5UKX,=N5WPR,=N6BSC, - =N6CVV,=N6CZU,=N6JM,=N6QEK,=N6ZZX,=N7BUO,=N7DBN,=N7DKL,=N7DUD,=N7FCT,=N7GLP,=N7HER,=N7HQK,=N7IA, - =N7JUX,=N7MGT,=N7MTG,=N7QAN,=N7TBU,=N7UTV,=N7UWT,=N7XEA,=N7XNM,=N7YKY,=N7YQS,=N8DDY,=N8EX,=N8JKB, - =N8KCJ,=N8SUG,=N9AIG,=N9YD,=NA7WM,=NC4OI,=NE7EK,=NH2GZ,=NH2LS,=NH7UO,=NM0H,=NN4NN,=NP4FU,=NU9Q, - =NW7F,=W0EZM,=W0FJN,=W0RWS,=W0UZJ,=W0ZEE,=W1JM,=W1LYD,=W1RSC,=W1ZKA,=W2DLS,=W2KRZ,=W3ICG,=W3JPN, - =W3MKG,=W4AUL,=W4BMR,=W4RSB,=W5JKT,=W6DDP,=W6GTE,=W6ROW,=W7APM,=W7DDG,=W7EIK,=W7JMR,=W7PWA,=W7RAZ, - =W7ROS,=W7WEZ,=W7ZWT,=W8MDD,=W8PVZ,=W8TCX,=W9ITU,=W9JMC,=WA0JS,=WA1FVJ,=WA2BGL,=WA2BIW,=WA6GFS, - =WA7B,=WA7MDS,=WA7PXH,=WA7USX,=WA7YXF,=WB0CMZ,=WB1BR,=WB1GZL,=WB1ILS,=WB6COP,=WB9JZL,=WD6CET, - =WH6CYY,=WH6DPL,=WH6DX,=WH6GBB,=WH6GCO,=WH7AK,=WJ8M,=WP4IYI,=WT5T,=WX1NCC; + =KA6UGT,=KA7ETQ,=KA7HHF,=KA7HOX,=KA7JOR,=KA7PUB,=KA7TMU,=KA7TOM,=KA7UKN,=KA7VCR,=KA7YEY,=KA9GYQ, + =KB0APK,=KB0LOW,=KB0TSU,=KB0UGE,=KB0UVK,=KB1CRT,=KB1FCX,=KB1KLH,=KB1PHP,=KB1QCD,=KB1QCE,=KB1SYV, + =KB1WQL,=KB2FWF,=KB2JWV,=KB2ZME,=KB3CYB,=KB3JFK,=KB3NCR,=KB3VQE,=KB4DX,=KB5DNT,=KB5HEV,=KB5NOW, + =KB5UWU,=KB5YLG,=KB6DKJ,=KB7AMA,=KB7BNG,=KB7BUF,=KB7DEL,=KB7FXJ,=KB7IBI,=KB7JA,=KB7LJZ,=KB7LON, + =KB7PHT,=KB7QLB,=KB7RWK,=KB7RXZ,=KB7SIQ,=KB7UBH,=KB7VFZ,=KB7YEC,=KB7ZVZ,=KB8QKR,=KB8SBG,=KB8TEW, + =KB8VYJ,=KB9MWG,=KB9RWE,=KB9RWJ,=KB9THD,=KB9YGR,=KC0ATI,=KC0CWG,=KC0CYR,=KC0EF,=KC0EFL,=KC0GDH, + =KC0GHH,=KC0GLN,=KC0LLL,=KC0NSV,=KC0OKQ,=KC0PSZ,=KC0TK,=KC0TZL,=KC0UYK,=KC0VDN,=KC0WSG,=KC0YSW, + =KC1DL,=KC1KPL,=KC1LVR,=KC2BYX,=KC2HRV,=KC2KMU,=KC2OJP,=KC2PCV,=KC2PIO,=KC3BWW,=KC3DBK,=KC4MXQ, + =KC4MXR,=KC5BNN,=KC5CHO,=KC5DJA,=KC5IBS,=KC5KIG,=KC5LKF,=KC5LKG,=KC5NHL,=KC5QPJ,=KC5THY,=KC5YIB, + =KC5YOX,=KC5ZAA,=KC6FRJ,=KC6RJW,=KC7BUL,=KC7COW,=KC7DNT,=KC7ENM,=KC7FWK,=KC7GSO,=KC7HJM,=KC7HPF, + =KC7IKE,=KC7IKF,=KC7INC,=KC7MIJ,=KC7MPY,=KC7MRO,=KC7OQZ,=KC7PLJ,=KC7PLQ,=KC7RCP,=KC7TYT,=KC7UZY, + =KC7WOA,=KC7YZR,=KC8GKK,=KC8MVW,=KC8NOY,=KC8WWS,=KC8YIV,=KC9CMY,=KC9HIK,=KC9IKH,=KC9SXX,=KC9VLD, + =KD0CLU,=KD0CZC,=KD0DHU,=KD0FJG,=KD0IXU,=KD0JJB,=KD0NSG,=KD0ONB,=KD0VAK,=KD0VAL,=KD0ZOD,=KD2CTE, + =KD2GKT,=KD2NPD,=KD2SKJ,=KD4EYW,=KD4MEY,=KD4QJL,=KD5DNA,=KD5DWV,=KD5GAL,=KD5MQC,=KD5QPD,=KD5RVD, + =KD5WCF,=KD5WEV,=KD5WYP,=KD6DLB,=KD6RVY,=KD6YKS,=KD7APU,=KD7AWK,=KD7BBX,=KD7BGP,=KD7DIG,=KD7DUQ, + =KD7FGL,=KD7FUL,=KD7HXF,=KD7KRK,=KD7MGO,=KD7OOS,=KD7QAR,=KD7SIX,=KD7TOJ,=KD7TWB,=KD7UAG,=KD7VOI, + =KD7VXE,=KD7ZTJ,=KD8DDY,=KD8GEL,=KD8GMS,=KD8JOU,=KD8KQL,=KD8LNA,=KD8WMX,=KD9TK,=KE0DYM,=KE0KKI, + =KE4DGR,=KE4MQD,=KE4YEI,=KE4YLG,=KE5CVD,=KE5CVT,=KE5DQV,=KE5FOC,=KE5GEB,=KE5HHR,=KE5JHS,=KE5JTB, + =KE5NLG,=KE5QDJ,=KE5QDK,=KE5WGZ,=KE5ZRK,=KE5ZUM,=KE6DLM,=KE6DUJ,=KE6DXH,=KE6IPM,=KE6SYD,=KE6TCE, + =KE6VUB,=KE7DFO,=KE7ELL,=KE7EOP,=KE7EPZ,=KE7FNC,=KE7FXM,=KE7GOE,=KE7HMJ,=KE7KYU,=KE7PXV,=KE7TRX, + =KE7ZXH,=KE8RO,=KF3L,=KF4JET,=KF4PLR,=KF4TBD,=KF4YFD,=KF5CVM,=KF5ETW,=KF5FJQ,=KF5HFB,=KF5HJC, + =KF5NDT,=KF5UBP,=KF5YYK,=KF6AWG,=KF6AXS,=KF6BMF,=KF6BOV,=KF6EJR,=KF6GNM,=KF6IAO,=KF6ILC,=KF6IOT, + =KF6LGK,=KF6MFK,=KF6QOJ,=KF6RMG,=KF6RPC,=KF6SHS,=KF6TGR,=KF6UWT,=KF7ARC,=KF7CXJ,=KF7FLL,=KF7FLM, + =KF7GKY,=KF7ING,=KF7ITN,=KF7KTH,=KF7LEX,=KF7LUA,=KF7PCJ,=KF7PFT,=KF7PSS,=KF7PUQ,=KF7UFY,=KF7VBO, + =KF7WVE,=KF8ZB,=KG2IA,=KG4BBX,=KG4NBL/P,=KG4TJS,=KG4WNZ,=KG5DBP,=KG5EQN,=KG5GDF,=KG5GTD,=KG5JQC, + =KG5MIB,=KG5MIO,=KG6ALN,=KG6DTI,=KG6MBC,=KG6RJE,=KG6TAL,=KG7CUR,=KG7DVI,=KG7GJL,=KG7JVJ,=KG7OQC, + =KG7OUF,=KG7SEQ,=KG7TGE,=KG7ZEV,=KH0NF,=KH0NG,=KH0RF,=KH2YN,=KH7BW,=KI4COG,=KI4ERC,=KI4FJK, + =KI4GAG,=KI4GCF,=KI4GDI,=KI4NGY,=KI4NVI,=KI4SET,=KI4SOM,=KI6BGR,=KI6DES,=KI6HGW,=KI6YXZ,=KI7COR, + =KI7PZ,=KI8JT,=KJ4HEW,=KJ4IAQ,=KJ4PSV,=KJ4WIQ,=KJ4YOY,=KJ4ZWI,=KJ6DCH,=KJ6KRG,=KJ6RFQ,=KJ6ZSX, + =KJ7IR,=KJ7MY,=KK4AMV,=KK4CLS,=KK4LRE,=KK4QXE,=KK4RYG,=KK4WWH,=KK4WWI,=KK6IUY,=KK6LL,=KK6PGV, + =KK6PLA,=KK6SNS,=KK7I,=KK7IV,=KK7STL,=KL7D/M,=KL7NC/IMD,=KM4AGL,=KM4KWS,=KM4KX,=KM4NIC,=KM4OE, + =KM4PJH,=KM4TJI,=KM6NOL,=KM6YOD,=KN4ENR,=KN4HGD,=KN4LJD,=KN4RXC,=KN8IVE,=KO4DHN,=KR4WV,=KV3X, + =KW1W,=KW4XD,=KY7J,=KZ6HJC,=N0GDT,=N0GDU,=N0GLI,=N0HJT,=N0HYI,=N0HZF,=N0JEN,=N0JOB,=N0LHN,=N0SN, + =N0SUB,=N0WXJ,=N0XKY,=N0XS,=N0ZKV,=N1HEN,=N1HUT,=N1KDQ,=N1KTI,=N1NDA,=N1NJS,=N1QFE,=N1TX,=N2CXH, + =N2SHO,=N2TJY,=N2YZW,=N3QEH,=N4AVX,=N4CM,=N4HCJ,=N4HZU,=N4NAV,=N5AAR,=N5CSO,=N5UKX,=N5WPR,=N6BSC, + =N6CVV,=N6CZU,=N6JM,=N6QEK,=N6ZZX,=N7BUO,=N7CGC,=N7DBN,=N7DKL,=N7DUD,=N7FCT,=N7GLP,=N7HER,=N7HQK, + =N7IA,=N7JUX,=N7MGT,=N7MTG,=N7QAN,=N7TBU,=N7UTV,=N7UWT,=N7XEA,=N7XNM,=N7YKY,=N7YQS,=N8DDY,=N8EX, + =N8JKB,=N8KCJ,=N8KYW,=N8SUG,=N9AIG,=N9YD,=NA7WM,=NC4OI,=NE7EK,=NH2GZ,=NH2LS,=NH7UO,=NM0H,=NN4NN, + =NP4FU,=NU9Q,=NW7F,=W0EZM,=W0FJN,=W0OPT,=W0RWS,=W0UZJ,=W0ZEE,=W1JM,=W1LYD,=W1RSC,=W1ZKA,=W2DLS, + =W2KRZ,=W3ICG,=W3JPN,=W3MKG,=W4AUL,=W4BMR,=W4RSB,=W5JKT,=W6DDP,=W6GTE,=W6ROW,=W7APM,=W7DDG,=W7EIK, + =W7JMR,=W7PWA,=W7RAZ,=W7ROS,=W7WEZ,=W7ZWT,=W8MDD,=W8PVZ,=W8TCX,=W9CG,=W9ITU,=W9JMC,=WA0JS,=WA1FVJ, + =WA2BGL,=WA2BIW,=WA6GFS,=WA7B,=WA7MDS,=WA7PXH,=WA7USX,=WA7YXF,=WB0CMZ,=WB1BR,=WB1GZL,=WB1ILS, + =WB6COP,=WB9JZL,=WD6CET,=WE3B,=WH6CYY,=WH6DPL,=WH6DX,=WH6GBB,=WH6GCO,=WH7AK,=WJ8M,=WP4IYI,=WT5T, + =WW4AL,=WX1NCC; Navassa Island: 08: 11: NA: 18.40: 75.00: 5.0: KP1: KP1,NP1,WP1; US Virgin Islands: 08: 11: NA: 17.73: 64.80: 4.0: KP2: @@ -1793,24 +1810,24 @@ US Virgin Islands: 08: 11: NA: 17.73: 64.80: 4.0: KP2: =W2KW/KV4,=W3K/KD2CLB,=W4LIS,=WA4HLB,=WB2KQW,=WB4WFU,=WD8AHQ; Puerto Rico: 08: 11: NA: 18.18: 66.55: 4.0: KP4: KP3,KP4,NP3,NP4,WP3,WP4,=AA2ZN,=AB2DR,=AF4OU,=AF5IZ,=AG4CD,=AI4EZ,=K1NDN,=K4C/LH,=K4LCR,=K4PFH, - =K5YJR,=K6BOT,=K8ZB,=K9JOS,=KA2GNG,=KA2MBR,=KA2UCX,=KA2YGB,=KA3ZGQ,=KA7URH,=KA9UTY,=KB0AQB, - =KB0JRR,=KB0TEP,=KB1CKX,=KB1IJU,=KB1KDP,=KB1RUQ,=KB1TUA,=KB1UEK,=KB1UZV,=KB1ZKF,=KB2ALR,=KB2BVX, - =KB2CIE,=KB2KWB,=KB2MMX,=KB2NMT,=KB2NYN,=KB2OIF,=KB2OMN,=KB2OPM,=KB2QQK,=KB2RYP,=KB2TID,=KB2VHY, - =KB2WKT,=KB2YKJ,=KB3BPK,=KB3BTN,=KB3LUV,=KB3SBO,=KB3TTV,=KB8ZVP,=KB9OWX,=KB9RZD,=KB9YVE,=KB9YVF, - =KC1CRV,=KC1CUF,=KC1DRV,=KC1IHB,=KC1IHO,=KC1JLY,=KC1KZI,=KC2BZZ,=KC2CJL,=KC2CTM,=KC2DUO,=KC2EMM, - =KC2ERU,=KC2GRZ,=KC2JNE,=KC2LET,=KC2TE,=KC2UXP,=KC2VCR,=KC3GEO,=KC5DKT,=KC5FWS,=KC8BFN,=KC8IRI, - =KD2KPC,=KD2VQ,=KD4TVS,=KD5DVV,=KD5PKH,=KD9GIZ,=KD9MRY,=KE0AYJ,=KE0GFK,=KE0SH,=KE1MA,=KE3WW, - =KE4GGD,=KE4GYA,=KE4SKH,=KE4THL,=KE4WUE,=KE5LNG,=KF4KPO,=KF4VYH,=KF4WTX,=KF4ZDB,=KF5YGN,=KF5YGX, - =KF6OGJ,=KG4EEG,=KG4EEL,=KG4GYO,=KG4IRC,=KG4IVO,=KG4VCC,=KG5AFY,=KG9KG,=KH2RU,=KH4AA,=KI4LRJ, - =KI4RGF,=KI4TSW,=KI4WOA,=KI4WOB,=KJ4KZN,=KJ4LOZ,=KJ4UPN,=KJ4UXJ,=KJ6OV,=KK4AOZ,=KK4DCX,=KK4EBE, - =KK4PHB,=KM4VDZ,=KM4WGI,=KM4YBN,=KM4YSR,=KM4ZJW,=KM6CTO,=KN4AWH,=KN4GNO,=KN4IBD,=KN4IDV,=KN4IGP, - =KN4ILO,=KN4INP,=KN4JCC,=KN4KPX,=KN4KPY,=KN4MNT,=KN4NLZ,=KN4ODN,=KN4QBT,=KN4QZZ,=KN4REC,=KN4SKZ, - =KN4TNC,=KN4UAN,=KP2H,=KP2Z,=KP3CW/SKP,=KP3RE/LGT,=KP3RE/LH,=KP3RE/LT,=KP4ES/L,=KP4ES/LGT, - =KP4ES/LH,=KP4FD/IARU,=KP4FRA/IARU,=KP4FRD/LH,=KP4MD/P,=KP4VP/LH,=KR4SQ,=KU4JI,=N0XAR,=N1CN, - =N1HRV,=N1JFL,=N1QVU,=N1SCD,=N1SZM,=N1VCW,=N1YAY,=N1ZJC,=N2FVA,=N2IBR,=N2KKN,=N2KUE,=N2OUS,=N2PGO, - =N3JAM,=N3VIJ,=N3VVW,=N3YUB,=N3ZII,=N4CIE,=N4JZD,=N4LER,=N4MMT,=N4UK,=N6NVD,=N6RHF,=NB0G,=NP3M/LH, - =NP4VO/LH,=W1AW/PR,=W6WAW,=W9JS,=W9NKE,=WA2RVA,=WB2AC,=WB2HMY,=WB5YOF,=WB7ADC,=WB7VVV,=WD4LOL, - =WP4L/TP,=WQ2N; + =K5YJR,=K6BOT,=K8ZB,=K9JOS,=KA2ABJ,=KA2GNG,=KA2MBR,=KA2UCX,=KA2YGB,=KA3PNP,=KA3ZGQ,=KA7URH, + =KA9UTY,=KB0AQB,=KB0JRR,=KB0TEP,=KB1CKX,=KB1IJU,=KB1KDP,=KB1RUQ,=KB1TUA,=KB1UEK,=KB1UZV,=KB1ZKF, + =KB2ALR,=KB2BVX,=KB2CIE,=KB2KWB,=KB2MMX,=KB2NMT,=KB2NYN,=KB2OIF,=KB2OMN,=KB2OPM,=KB2QQK,=KB2RYP, + =KB2TID,=KB2VHY,=KB2WKT,=KB2YKJ,=KB3BPK,=KB3BTN,=KB3LUV,=KB3SBO,=KB3TTV,=KB8ZVP,=KB9OWX,=KB9RZD, + =KB9YVE,=KB9YVF,=KC1CRV,=KC1CUF,=KC1DRV,=KC1IHB,=KC1IHO,=KC1JLY,=KC1KZI,=KC2BZZ,=KC2CJL,=KC2CTM, + =KC2DUO,=KC2EMM,=KC2ERS,=KC2ERU,=KC2GRZ,=KC2HAS,=KC2JNE,=KC2LET,=KC2TE,=KC2UXP,=KC2VCR,=KC3GEO, + =KC4ADN,=KC5DKT,=KC5FWS,=KC8BFN,=KC8IRI,=KD2KPC,=KD2VQ,=KD4TVS,=KD5DVV,=KD5PKH,=KD9GIZ,=KD9MRY, + =KE0AYJ,=KE0GFK,=KE0SH,=KE1MA,=KE3WW,=KE4GGD,=KE4GYA,=KE4SKH,=KE4THL,=KE4WUE,=KE5LNG,=KF4KPO, + =KF4TZG,=KF4VYH,=KF4WTX,=KF4ZDB,=KF5YGN,=KF5YGX,=KF6OGJ,=KG4EEG,=KG4EEL,=KG4GYO,=KG4IRC,=KG4IVO, + =KG4VCC,=KG5AFY,=KG9KG,=KH2RU,=KH4AA,=KI4LRJ,=KI4RGF,=KI4TSW,=KI4WOA,=KI4WOB,=KJ4KZN,=KJ4LOZ, + =KJ4UPN,=KJ4UXJ,=KJ4VSD,=KJ6OV,=KK4AOZ,=KK4DCX,=KK4EBE,=KK4PHB,=KM4VDZ,=KM4WGI,=KM4YBN,=KM4YSR, + =KM4ZJW,=KM6CTO,=KN4AWH,=KN4GNO,=KN4IBD,=KN4IDV,=KN4IGP,=KN4ILO,=KN4INP,=KN4JCC,=KN4KPX,=KN4KPY, + =KN4MNT,=KN4NLZ,=KN4ODN,=KN4QBT,=KN4QZZ,=KN4REC,=KN4SKZ,=KN4TNC,=KN4UAN,=KP2H,=KP2Z,=KP3CW/SKP, + =KP3RE/LGT,=KP3RE/LH,=KP3RE/LT,=KP4ES/L,=KP4ES/LGT,=KP4ES/LH,=KP4FD/IARU,=KP4FRA/IARU,=KP4FRD/LH, + =KP4MD/P,=KP4VP/LH,=KR4SQ,=KU4JI,=N0XAR,=N1CN,=N1HRV,=N1JFL,=N1QVU,=N1SCD,=N1SZM,=N1VCW,=N1YAY, + =N1ZJC,=N2FVA,=N2IBR,=N2KKN,=N2KUE,=N2OUS,=N2PGO,=N3JAM,=N3VIJ,=N3VVW,=N3YUB,=N3ZII,=N4CIE,=N4JZD, + =N4LER,=N4MMT,=N4NDL,=N4UK,=N6NVD,=N6RHF,=NB0G,=NP3M/LH,=NP4VO/LH,=W1AW/PR,=W6WAW,=W9JS,=W9NKE, + =WA2RVA,=WB2AC,=WB2HMY,=WB5YOF,=WB7ADC,=WB7VVV,=WD4LOL,=WP4L/TP,=WQ2N; Desecheo Island: 08: 11: NA: 18.08: 67.88: 4.0: KP5: KP5,NP5,WP5; Norway: 14: 18: EU: 61.00: -9.00: -1.0: LA: @@ -1831,78 +1848,78 @@ Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU: =LT5D/LH,=LU1AAE/D,=LU1AAS/D,=LU1ACX/D,=LU1AEE/D,=LU1AET/D,=LU1AGP/D,=LU1AIM/D,=LU1ALF/D,=LU1AM/D, =LU1APR/D,=LU1ARG/D,=LU1ASP/D,=LU1AW/E,=LU1BCE/D,=LU1BMD/D,=LU1CHD/D,=LU1CL/D,=LU1COA/D,=LU1DAR/D, =LU1DAS/D,=LU1DBI/D,=LU1DCB/D,=LU1DDK/D,=LU1DDO/D,=LU1DHO/D,=LU1DI/D,=LU1DK/D,=LU1DKD/D,=LU1DLB/D, - =LU1DMA/E,=LU1DMK/D,=LU1DNQ/D,=LU1DP/D,=LU1DQ/D,=LU1DS/D,=LU1DSO/D,=LU1DU/D,=LU1DVE/D,=LU1DYP/D, - =LU1DZ/D,=LU1DZ/E,=LU1DZR/D,=LU1EEE/D,=LU1EEZ/D,=LU1EFF/D,=LU1EJ/LH,=LU1EJ/YL,=LU1ELP/D,=LU1ELY/D, - =LU1EPC/D,=LU1EPF/D,=LU1EQ/D,=LU1EQU/D,=LU1ERA/D,=LU1EST/D,=LU1EUU/D,=LU1EW/D,=LU1EXU/D,=LU1EY/D, - =LU1HBD/D,=LU1HLH/D,=LU1KCQ/D,=LU1UAG/D,=LU1VDF/D,=LU1VOF/D,=LU1VYL/D,=LU1XWC/E,=LU1XZ/D,=LU1YY/D, - =LU2AAS/D,=LU2ABT/D,=LU2AEZ/D,=LU2AFE/D,=LU2AGQ/D,=LU2AHB/D,=LU2ALE/D,=LU2AMM/D,=LU2AOZ/D, - =LU2AVG/D,=LU2AVW/D,=LU2BJA/D,=LU2BN/D,=LU2BOE/D,=LU2BPM/D,=LU2CDE/D,=LU2CDO/D,=LU2CHP/D,=LU2CM/D, - =LU2CRV/D,=LU2DAR/D,=LU2DB/D,=LU2DG/D,=LU2DHM/D,=LU2DJB/D,=LU2DJC/D,=LU2DJL/D,=LU2DKN/D,=LU2DPW/D, - =LU2DRT/D,=LU2DT/D,=LU2DT/D/LH,=LU2DT/LGT,=LU2DT/LH,=LU2DVF/D,=LU2ED/D,=LU2EDC/D,=LU2EE/D, - =LU2EE/E,=LU2EFI/D,=LU2EGA/D,=LU2EGI/D,=LU2EGP/D,=LU2EHA/D,=LU2EIT/D,=LU2EJL/D,=LU2EK/D,=LU2ELT/D, - =LU2EMQ/D,=LU2ENG/D,=LU2ENH/D,=LU2EPL/D,=LU2EPP/D,=LU2ERC/D,=LU2FBX/D,=LU2FGD/D,=LU2FNH/D, - =LU2HOD/D,=LU2JFC/D,=LU2VDV/D,=LU2YF/D,=LU3AAL/D,=LU3ADC/D,=LU3AJL/D,=LU3AOI/D,=LU3ARE/D, - =LU3ARM/D,=LU3AYE/D,=LU3CA/D,=LU3CM/D,=LU3CRA/D,=LU3CT/D,=LU3DAR/D,=LU3DAT/D,=LU3DAT/E,=LU3DC/D, - =LU3DEY/D,=LU3DFD/D,=LU3DH/D,=LU3DHF/D,=LU3DJA/D,=LU3DJI/D,=LU3DJT/D,=LU3DK/D,=LU3DLF/D,=LU3DMZ/D, - =LU3DO/D,=LU3DOC/D,=LU3DP/D,=LU3DPH/D,=LU3DQJ/D,=LU3DR/D,=LU3DRP/D,=LU3DRP/E,=LU3DXG/D,=LU3DXI/D, - =LU3DY/D,=LU3DYN/D,=LU3DZO/D,=LU3EBS/D,=LU3ED/D,=LU3EDU/D,=LU3EFL/D,=LU3EJ/L,=LU3EJD/D,=LU3ELR/D, - =LU3EMB/D,=LU3EOU/D,=LU3EP/D,=LU3ERU/D,=LU3ES/D,=LU3ESY/D,=LU3EZA/D,=LU3FCI/D,=LU3HKA/D,=LU4AA/D, - =LU4AAO/D,=LU4AAO/E,=LU4ACA/D,=LU4ADE/D,=LU4AJC/D,=LU4ARU/D,=LU4BAN/D,=LU4BFP/D,=LU4BMG/D, - =LU4BR/D,=LU4CMF/D,=LU4DBL/D,=LU4DBP/D,=LU4DBT/D,=LU4DBV/D,=LU4DCE/D,=LU4DCY/D,=LU4DGC/D, - =LU4DHA/D,=LU4DHC/D,=LU4DHE/D,=LU4DIS/D,=LU4DJB/D,=LU4DK/D,=LU4DLJ/D,=LU4DLL/D,=LU4DLN/D, - =LU4DMI/D,=LU4DPB/D,=LU4DQ/D,=LU4DRC/D,=LU4DRH/D,=LU4DRH/E,=LU4DVD/D,=LU4EAE/D,=LU4EET/D, - =LU4EGP/D,=LU4EHP/D,=LU4EJ/D,=LU4EL/D,=LU4ELE/D,=LU4EOU/D,=LU4ERS/D,=LU4ESP/D,=LU4ETD/D,=LU4ETN/D, - =LU4EV/D,=LU4HSA/D,=LU4HTD/D,=LU4MA/D,=LU4UWZ/D,=LU4UZW/D,=LU4VEN/D,=LU4VSD/D,=LU4WAP/D,=LU5AHN/D, - =LU5ALE/D,=LU5ALS/D,=LU5AM/D,=LU5ANL/D,=LU5AQV/D,=LU5ARS/D,=LU5ASA/D,=LU5AVD/D,=LU5BDS/D,=LU5BE/D, - =LU5BTL/D,=LU5CBA/D,=LU5CRE/D,=LU5DA/D,=LU5DA/E,=LU5DAS/D,=LU5DCO/D,=LU5DDH/D,=LU5DEM/D,=LU5DF/D, - =LU5DFR/D,=LU5DFT/D,=LU5DGG/D,=LU5DGR/D,=LU5DHE/D,=LU5DIT/D,=LU5DJE/D,=LU5DKE/D,=LU5DLH/D, - =LU5DLT/D,=LU5DLZ/D,=LU5DMI/D,=LU5DMP/D,=LU5DMR/D,=LU5DQ/D,=LU5DRV/D,=LU5DSH/D,=LU5DSM/D,=LU5DT/D, - =LU5DTB/D,=LU5DTF/D,=LU5DUC/D,=LU5DVB/D,=LU5DWS/D,=LU5DYT/D,=LU5EAO/D,=LU5EC/D,=LU5ED/D,=LU5EDS/D, - =LU5EFG/D,=LU5EH/D,=LU5EHC/D,=LU5EJL/D,=LU5EM/D,=LU5EP/D,=LU5EW/D,=LU5FZ/D,=LU5FZ/E,=LU5JAH/D, - =LU5JIB/D,=LU5OD/D,=LU5VAS/D,=LU5VAT/D,=LU5XP/D,=LU5YBR/D,=LU5YF/D,=LU6AER/D,=LU6AMT/D,=LU6CN/D, - =LU6DAX/D,=LU6DBL/D,=LU6DC/D,=LU6DCT/D,=LU6DDC/D,=LU6DG/D,=LU6DIE/D,=LU6DIO/D,=LU6DK/D,=LU6DKT/D, - =LU6DL/D,=LU6DM/D,=LU6DO/D,=LU6DRD/D,=LU6DRD/E,=LU6DRN/D,=LU6DRR/D,=LU6DSA/D,=LU6DTB/D,=LU6EAG/D, - =LU6EC/D,=LU6EDC/D,=LU6EE/D,=LU6EEG/D,=LU6EGO/D,=LU6EI/D,=LU6EJJ/D,=LU6EKL/D,=LU6ELP/D,=LU6EMM/D, - =LU6ENA/D,=LU6EPE/D,=LU6EPR/D,=LU6EPR/E,=LU6EQV/D,=LU6EU/D,=LU6EVD/D,=LU6EWR/D,=LU6EXD/D, - =LU6HBB/D,=LU6JJ/D,=LU6UAL/D,=LU6UO/D,=LU6UVI/D,=LU6XQ/D,=LU7AA/D,=LU7AC/D,=LU7ADC/D,=LU7ADN/D, - =LU7ARI/D,=LU7ART/D,=LU7AVW/D,=LU7BSN/D,=LU7BTO/D,=LU7BTO/E,=LU7CAW/D,=LU7CC/E,=LU7CP/D,=LU7DAC/D, - =LU7DAF/D,=LU7DAJ/D,=LU7DAR/D,=LU7DBA/D,=LU7DBL/D,=LU7DCE/D,=LU7DD/D,=LU7DDC/D,=LU7DDO/D, - =LU7DHE/D,=LU7DHG/D,=LU7DJH/D,=LU7DLN/D,=LU7DNM/D,=LU7DOT/D,=LU7DP/D,=LU7DR/D,=LU7DS/D,=LU7DSC/D, - =LU7DSS/D,=LU7DSU/D,=LU7DSY/D,=LU7DTC/D,=LU7DW/D,=LU7DZL/D,=LU7DZL/E,=LU7DZV/D,=LU7ECZ/D, - =LU7EGY/D,=LU7EHL/D,=LU7EIA/D,=LU7EJC/D,=LU7ELY/D,=LU7EMA/D,=LU7EMM/D,=LU7ENP/D,=LU7EO/D, - =LU7EON/D,=LU7EPC/D,=LU7ETR/D,=LU7EXX/D,=LU7HBL/D,=LU7HW/D,=LU7HZ/D,=LU7VCH/D,=LU8ABR/D,=LU8ACH/D, - =LU8ADX/D,=LU8AE/D,=LU8ARI/D,=LU8ATM/D,=LU8DAF/D,=LU8DCF/D,=LU8DCH/D,=LU8DCK/D,=LU8DCM/D, - =LU8DIP/D,=LU8DIW/D,=LU8DJR/D,=LU8DLD/D,=LU8DLT/D,=LU8DMD/D,=LU8DQ/D,=LU8DR/D,=LU8DRA/D,=LU8DRH/D, - =LU8DRQ/D,=LU8DSJ/D,=LU8DTF/D,=LU8DUJ/D,=LU8DVQ/D,=LU8DW/D,=LU8DWR/D,=LU8DX/D,=LU8DY/D,=LU8DZE/D, - =LU8DZH/D,=LU8EAG/D,=LU8EAJ/D,=LU8EBJ/D,=LU8EBJ/E,=LU8EBK/D,=LU8EBK/E,=LU8EC/D,=LU8ECF/D, - =LU8ECF/E,=LU8EEM/D,=LU8EFF/D,=LU8EGC/D,=LU8EGS/D,=LU8EHQ/D,=LU8EHQ/E,=LU8EHS/D,=LU8EHV/D, - =LU8EKC/D,=LU8EMC/D,=LU8ERH/D,=LU8ETC/D,=LU8EU/D,=LU8EXJ/D,=LU8EXN/D,=LU8FAU/D,=LU8VCC/D, - =LU8VER/D,=LU9ACJ/D,=LU9AEA/D,=LU9AJK/D,=LU9AOS/D,=LU9AUC/D,=LU9BGN/D,=LU9BRC/D,=LU9BSA/D, - =LU9CGN/D,=LU9CLH/D,=LU9DA/D,=LU9DAA/D,=LU9DAD/D,=LU9DB/D,=LU9DE/D,=LU9DEQ/D,=LU9DF/D,=LU9DGE/D, - =LU9DHL/D,=LU9DJS/D,=LU9DKO/D,=LU9DMG/D,=LU9DNV/D,=LU9DO/D,=LU9DPD/D,=LU9DPI/D,=LU9DPZ/E, - =LU9DSD/D,=LU9DVO/D,=LU9DX/D,=LU9EAG/D,=LU9ECE/D,=LU9EI/D,=LU9EIM/D,=LU9EJM/D,=LU9EJS/E,=LU9EJZ/D, - =LU9ENH/D,=LU9EOE/D,=LU9ERA/D,=LU9ESD/D,=LU9ESD/E,=LU9ESD/LH,=LU9EV/D,=LU9EV/E,=LU9EV/LH,=LU9EY/D, - =LU9EYE/D,=LU9EZX/D,=LU9HDR/D,=LU9HJV/D,=LU9HVR/D,=LU9USD/D,=LU9WM/D,=LV7E/D,=LW1DAL/D,=LW1DDX/D, - =LW1DE/D,=LW1DEN/D,=LW1DEW/D,=LW1DG/D,=LW1DJ/D,=LW1DOG/D,=LW1DQQ/D,=LW1DVB/D,=LW1DXH/D,=LW1DXP/D, - =LW1DYN/D,=LW1DYP/D,=LW1EA/D,=LW1ECE/D,=LW1ECO/D,=LW1ELI/D,=LW1EQI/D,=LW1EQZ/D,=LW1EVO/D, - =LW1EXU/D,=LW2DAF/D,=LW2DAW/D,=LW2DET/D,=LW2DJM/D,=LW2DKF/D,=LW2DNC/D,=LW2DOD/D,=LW2DOM/D, - =LW2DSM/D,=LW2DX/E,=LW2DYA/D,=LW2ECC/D,=LW2ECK/D,=LW2ECM/D,=LW2EFS/D,=LW2EHD/D,=LW2ENB/D, - =LW2EQS/D,=LW2EUA/D,=LW3DAB/D,=LW3DAW/D,=LW3DBM/D,=LW3DC/D,=LW3DED/D,=LW3DER/D,=LW3DFP/D,=LW3DG/D, - =LW3DGC/D,=LW3DJC/D,=LW3DKC/D,=LW3DKC/E,=LW3DKO/D,=LW3DKO/E,=LW3DN/D,=LW3DRW/D,=LW3DSM/D, - =LW3DSR/D,=LW3DTD/D,=LW3EB/D,=LW3EIH/D,=LW3EK/D,=LW3EMP/D,=LW4DAF/D,=LW4DBE/D,=LW4DBM/D,=LW4DCV/D, - =LW4DKI/D,=LW4DOR/D,=LW4DRH/D,=LW4DRH/E,=LW4DRV/D,=LW4DTM/D,=LW4DTR/D,=LW4DWV/D,=LW4DXH/D, - =LW4ECV/D,=LW4EIN/D,=LW4EM/D,=LW4EM/E,=LW4EM/LH,=LW4ERO/D,=LW4ESY/D,=LW4ETG/D,=LW4EZT/D,=LW4HCL/D, - =LW5DAD/D,=LW5DD/D,=LW5DFR/D,=LW5DHG/D,=LW5DIE/D,=LW5DLY/D,=LW5DNN/D,=LW5DOG/D,=LW5DQ/D,=LW5DR/D, - =LW5DR/LH,=LW5DTD/D,=LW5DTQ/D,=LW5DUS/D,=LW5DWX/D,=LW5EE/D,=LW5EO/D,=LW5EOL/D,=LW6DCA/D,=LW6DLS/D, - =LW6DTM/D,=LW6DW/D,=LW6DYH/D,=LW6DYZ/D,=LW6EAK/D,=LW6EEA/D,=LW6EFR/D,=LW6EGE/D,=LW6EHD/D, - =LW6EXM/D,=LW7DAF/D,=LW7DAG/D,=LW7DAJ/D,=LW7DAR/D,=LW7DFD/D,=LW7DGT/D,=LW7DJ/D,=LW7DKB/D, - =LW7DKX/D,=LW7DLY/D,=LW7DNS/E,=LW7DPJ/D,=LW7DVC/D,=LW7DWX/D,=LW7ECZ/D,=LW7EDH/D,=LW7EJV/D, - =LW7ELR/D,=LW7EOJ/D,=LW7HA/D,=LW8DAL/D,=LW8DCM/D,=LW8DIP/D,=LW8DMC/D,=LW8DMK/D,=LW8DPZ/E, - =LW8DRU/D,=LW8DYT/D,=LW8EAG/D,=LW8ECQ/D,=LW8EFR/D,=LW8EGA/D,=LW8EJ/D,=LW8ELR/D,=LW8EU/D,=LW8EVB/D, - =LW8EXF/D,=LW9DAD/D,=LW9DAE/D,=LW9DIH/D,=LW9DMM/D,=LW9DRD/D,=LW9DRT/D,=LW9DSP/D,=LW9DTP/D, - =LW9DTQ/D,=LW9DTR/D,=LW9DX/D,=LW9EAG/D,=LW9ECR/D,=LW9EDX/D,=LW9EGQ/D,=LW9ENF/D,=LW9ESY/D, - =LW9EUE/D,=LW9EUU/D,=LW9EVA/D,=LW9EVA/E,=LW9EVE/D,=LW9EYP/D,=LW9EZV/D,=LW9EZW/D,=LW9EZX/D, - =LW9EZY/D, + =LU1DLF/D,=LU1DMA/E,=LU1DMK/D,=LU1DNQ/D,=LU1DP/D,=LU1DQ/D,=LU1DS/D,=LU1DSO/D,=LU1DU/D,=LU1DVE/D, + =LU1DYP/D,=LU1DZ/D,=LU1DZ/E,=LU1DZR/D,=LU1EEE/D,=LU1EEZ/D,=LU1EFF/D,=LU1EJ/LH,=LU1EJ/YL,=LU1ELP/D, + =LU1ELY/D,=LU1EPC/D,=LU1EPF/D,=LU1EQ/D,=LU1EQU/D,=LU1ERA/D,=LU1EST/D,=LU1EUU/D,=LU1EW/D,=LU1EXU/D, + =LU1EY/D,=LU1HBD/D,=LU1HLH/D,=LU1KCQ/D,=LU1UAG/D,=LU1VDF/D,=LU1VOF/D,=LU1VYL/D,=LU1XWC/E,=LU1XZ/D, + =LU1YY/D,=LU2AAS/D,=LU2ABT/D,=LU2AEZ/D,=LU2AFE/D,=LU2AGQ/D,=LU2AHB/D,=LU2ALE/D,=LU2AMM/D, + =LU2AOZ/D,=LU2AVG/D,=LU2AVW/D,=LU2BJA/D,=LU2BN/D,=LU2BOE/D,=LU2BPM/D,=LU2CDE/D,=LU2CDO/D, + =LU2CHP/D,=LU2CM/D,=LU2CRV/D,=LU2DAR/D,=LU2DB/D,=LU2DG/D,=LU2DHM/D,=LU2DJB/D,=LU2DJC/D,=LU2DJL/D, + =LU2DKN/D,=LU2DPW/D,=LU2DRT/D,=LU2DT/D,=LU2DT/D/LH,=LU2DT/LGT,=LU2DT/LH,=LU2DVF/D,=LU2ED/D, + =LU2EDC/D,=LU2EE/D,=LU2EE/E,=LU2EFI/D,=LU2EGA/D,=LU2EGI/D,=LU2EGP/D,=LU2EHA/D,=LU2EIT/D,=LU2EJL/D, + =LU2EK/D,=LU2ELT/D,=LU2EMQ/D,=LU2ENG/D,=LU2ENH/D,=LU2EPL/D,=LU2EPP/D,=LU2ERC/D,=LU2FBX/D, + =LU2FGD/D,=LU2FNH/D,=LU2HOD/D,=LU2JFC/D,=LU2VDV/D,=LU2YF/D,=LU3AAL/D,=LU3ADC/D,=LU3AJL/D, + =LU3AOI/D,=LU3ARE/D,=LU3ARM/D,=LU3AYE/D,=LU3CA/D,=LU3CM/D,=LU3CRA/D,=LU3CT/D,=LU3DAR/D,=LU3DAT/D, + =LU3DAT/E,=LU3DC/D,=LU3DEY/D,=LU3DFD/D,=LU3DH/D,=LU3DHF/D,=LU3DJA/D,=LU3DJI/D,=LU3DJT/D,=LU3DK/D, + =LU3DLF/D,=LU3DMZ/D,=LU3DO/D,=LU3DOC/D,=LU3DP/D,=LU3DPH/D,=LU3DQJ/D,=LU3DR/D,=LU3DRP/D,=LU3DRP/E, + =LU3DXG/D,=LU3DXI/D,=LU3DY/D,=LU3DYN/D,=LU3DZO/D,=LU3EBS/D,=LU3ED/D,=LU3EDU/D,=LU3EFL/D,=LU3EJ/L, + =LU3EJD/D,=LU3ELR/D,=LU3EMB/D,=LU3EOU/D,=LU3EP/D,=LU3ERU/D,=LU3ES/D,=LU3ESY/D,=LU3EZA/D,=LU3FCI/D, + =LU3HKA/D,=LU4AA/D,=LU4AAO/D,=LU4AAO/E,=LU4ACA/D,=LU4ADE/D,=LU4AJC/D,=LU4ARU/D,=LU4BAN/D, + =LU4BFP/D,=LU4BMG/D,=LU4BR/D,=LU4CMF/D,=LU4DBL/D,=LU4DBP/D,=LU4DBT/D,=LU4DBV/D,=LU4DCE/D, + =LU4DCY/D,=LU4DGC/D,=LU4DHA/D,=LU4DHC/D,=LU4DHE/D,=LU4DIS/D,=LU4DJB/D,=LU4DK/D,=LU4DLJ/D, + =LU4DLL/D,=LU4DLN/D,=LU4DMI/D,=LU4DPB/D,=LU4DQ/D,=LU4DRC/D,=LU4DRH/D,=LU4DRH/E,=LU4DVD/D, + =LU4EAE/D,=LU4EET/D,=LU4EGP/D,=LU4EHP/D,=LU4EJ/D,=LU4EL/D,=LU4ELE/D,=LU4EOU/D,=LU4ERS/D,=LU4ESP/D, + =LU4ETD/D,=LU4ETN/D,=LU4EV/D,=LU4HSA/D,=LU4HTD/D,=LU4MA/D,=LU4UWZ/D,=LU4UZW/D,=LU4VEN/D,=LU4VSD/D, + =LU4WAP/D,=LU5AHN/D,=LU5ALE/D,=LU5ALS/D,=LU5AM/D,=LU5ANL/D,=LU5AQV/D,=LU5ARS/D,=LU5ASA/D, + =LU5AVD/D,=LU5BDS/D,=LU5BE/D,=LU5BTL/D,=LU5CBA/D,=LU5CRE/D,=LU5DA/D,=LU5DA/E,=LU5DAS/D,=LU5DCO/D, + =LU5DDH/D,=LU5DEM/D,=LU5DF/D,=LU5DFR/D,=LU5DFT/D,=LU5DGG/D,=LU5DGR/D,=LU5DHE/D,=LU5DIT/D, + =LU5DJE/D,=LU5DKE/D,=LU5DLH/D,=LU5DLT/D,=LU5DLZ/D,=LU5DMI/D,=LU5DMP/D,=LU5DMR/D,=LU5DQ/D, + =LU5DRV/D,=LU5DSH/D,=LU5DSM/D,=LU5DT/D,=LU5DTB/D,=LU5DTF/D,=LU5DUC/D,=LU5DVB/D,=LU5DWS/D, + =LU5DYT/D,=LU5EAO/D,=LU5EC/D,=LU5ED/D,=LU5EDS/D,=LU5EFG/D,=LU5EH/D,=LU5EHC/D,=LU5EJL/D,=LU5EM/D, + =LU5EP/D,=LU5EW/D,=LU5FZ/D,=LU5FZ/E,=LU5JAH/D,=LU5JIB/D,=LU5OD/D,=LU5VAS/D,=LU5VAT/D,=LU5XP/D, + =LU5YBR/D,=LU5YF/D,=LU6AER/D,=LU6AMT/D,=LU6CN/D,=LU6DAX/D,=LU6DBL/D,=LU6DC/D,=LU6DCT/D,=LU6DDC/D, + =LU6DG/D,=LU6DIE/D,=LU6DIO/D,=LU6DK/D,=LU6DKT/D,=LU6DL/D,=LU6DM/D,=LU6DO/D,=LU6DRD/D,=LU6DRD/E, + =LU6DRN/D,=LU6DRR/D,=LU6DSA/D,=LU6DTB/D,=LU6EAG/D,=LU6EC/D,=LU6EDC/D,=LU6EE/D,=LU6EEG/D,=LU6EGO/D, + =LU6EI/D,=LU6EJJ/D,=LU6EKL/D,=LU6ELP/D,=LU6EMM/D,=LU6ENA/D,=LU6EPE/D,=LU6EPR/D,=LU6EPR/E, + =LU6EQV/D,=LU6EU/D,=LU6EVD/D,=LU6EWR/D,=LU6EXD/D,=LU6HBB/D,=LU6JJ/D,=LU6UAL/D,=LU6UO/D,=LU6UVI/D, + =LU6XQ/D,=LU7AA/D,=LU7AC/D,=LU7ADC/D,=LU7ADN/D,=LU7ARI/D,=LU7ART/D,=LU7AVW/D,=LU7BSN/D,=LU7BTO/D, + =LU7BTO/E,=LU7CAW/D,=LU7CC/E,=LU7CP/D,=LU7DAC/D,=LU7DAF/D,=LU7DAJ/D,=LU7DAR/D,=LU7DBA/D,=LU7DBL/D, + =LU7DCE/D,=LU7DD/D,=LU7DDC/D,=LU7DDO/D,=LU7DHE/D,=LU7DHG/D,=LU7DJH/D,=LU7DLN/D,=LU7DNM/D, + =LU7DOT/D,=LU7DP/D,=LU7DR/D,=LU7DS/D,=LU7DSC/D,=LU7DSS/D,=LU7DSU/D,=LU7DSY/D,=LU7DTC/D,=LU7DW/D, + =LU7DZL/D,=LU7DZL/E,=LU7DZV/D,=LU7ECZ/D,=LU7EGY/D,=LU7EHL/D,=LU7EIA/D,=LU7EJC/D,=LU7ELY/D, + =LU7EMA/D,=LU7EMM/D,=LU7ENP/D,=LU7EO/D,=LU7EON/D,=LU7EPC/D,=LU7ETR/D,=LU7EXX/D,=LU7HBL/D,=LU7HW/D, + =LU7HZ/D,=LU7VCH/D,=LU8ABR/D,=LU8ACH/D,=LU8ADX/D,=LU8AE/D,=LU8ARI/D,=LU8ATM/D,=LU8DAF/D,=LU8DCF/D, + =LU8DCH/D,=LU8DCK/D,=LU8DCM/D,=LU8DIP/D,=LU8DIW/D,=LU8DJR/D,=LU8DLD/D,=LU8DLT/D,=LU8DMD/D, + =LU8DQ/D,=LU8DR/D,=LU8DRA/D,=LU8DRH/D,=LU8DRQ/D,=LU8DSJ/D,=LU8DTF/D,=LU8DUJ/D,=LU8DVQ/D,=LU8DW/D, + =LU8DWR/D,=LU8DX/D,=LU8DY/D,=LU8DZE/D,=LU8DZH/D,=LU8EAG/D,=LU8EAJ/D,=LU8EBJ/D,=LU8EBJ/E,=LU8EBK/D, + =LU8EBK/E,=LU8EC/D,=LU8ECF/D,=LU8ECF/E,=LU8EEM/D,=LU8EFF/D,=LU8EGC/D,=LU8EGS/D,=LU8EHQ/D, + =LU8EHQ/E,=LU8EHS/D,=LU8EHV/D,=LU8EKC/D,=LU8EMC/D,=LU8ERH/D,=LU8ETC/D,=LU8EU/D,=LU8EXJ/D, + =LU8EXN/D,=LU8FAU/D,=LU8VCC/D,=LU8VER/D,=LU9ACJ/D,=LU9AEA/D,=LU9AJK/D,=LU9AOS/D,=LU9AUC/D, + =LU9BGN/D,=LU9BRC/D,=LU9BSA/D,=LU9CGN/D,=LU9CLH/D,=LU9DA/D,=LU9DAA/D,=LU9DAD/D,=LU9DB/D,=LU9DE/D, + =LU9DEQ/D,=LU9DF/D,=LU9DGE/D,=LU9DHL/D,=LU9DJS/D,=LU9DKO/D,=LU9DMG/D,=LU9DNV/D,=LU9DO/D,=LU9DPD/D, + =LU9DPI/D,=LU9DPZ/E,=LU9DSD/D,=LU9DVO/D,=LU9DX/D,=LU9EAG/D,=LU9ECE/D,=LU9EI/D,=LU9EIM/D,=LU9EJM/D, + =LU9EJS/E,=LU9EJZ/D,=LU9ENH/D,=LU9EOE/D,=LU9ERA/D,=LU9ESD/D,=LU9ESD/E,=LU9ESD/LH,=LU9EV/D, + =LU9EV/E,=LU9EV/LH,=LU9EY/D,=LU9EYE/D,=LU9EZX/D,=LU9HDR/D,=LU9HJV/D,=LU9HVR/D,=LU9USD/D,=LU9WM/D, + =LV7E/D,=LW1DAL/D,=LW1DDX/D,=LW1DE/D,=LW1DEN/D,=LW1DEW/D,=LW1DG/D,=LW1DJ/D,=LW1DOG/D,=LW1DQQ/D, + =LW1DVB/D,=LW1DXH/D,=LW1DXP/D,=LW1DYN/D,=LW1DYP/D,=LW1EA/D,=LW1ECE/D,=LW1ECO/D,=LW1ELI/D, + =LW1EQI/D,=LW1EQZ/D,=LW1EVO/D,=LW1EXU/D,=LW2DAF/D,=LW2DAW/D,=LW2DET/D,=LW2DJM/D,=LW2DKF/D, + =LW2DNC/D,=LW2DOD/D,=LW2DOM/D,=LW2DSM/D,=LW2DX/E,=LW2DYA/D,=LW2ECC/D,=LW2ECK/D,=LW2ECM/D, + =LW2EFS/D,=LW2EHD/D,=LW2ENB/D,=LW2EQS/D,=LW2EUA/D,=LW3DAB/D,=LW3DAW/D,=LW3DBM/D,=LW3DC/D, + =LW3DED/D,=LW3DER/D,=LW3DFP/D,=LW3DG/D,=LW3DGC/D,=LW3DJC/D,=LW3DKC/D,=LW3DKC/E,=LW3DKO/D, + =LW3DKO/E,=LW3DN/D,=LW3DRW/D,=LW3DSM/D,=LW3DSR/D,=LW3DTD/D,=LW3EB/D,=LW3EIH/D,=LW3EK/D,=LW3EMP/D, + =LW4DAF/D,=LW4DBE/D,=LW4DBM/D,=LW4DCV/D,=LW4DKI/D,=LW4DOR/D,=LW4DRH/D,=LW4DRH/E,=LW4DRV/D, + =LW4DTM/D,=LW4DTR/D,=LW4DWV/D,=LW4DXH/D,=LW4ECV/D,=LW4EIN/D,=LW4EM/D,=LW4EM/E,=LW4EM/LH,=LW4ERO/D, + =LW4ESY/D,=LW4ETG/D,=LW4EZT/D,=LW4HCL/D,=LW5DAD/D,=LW5DD/D,=LW5DFR/D,=LW5DHG/D,=LW5DIE/D, + =LW5DLY/D,=LW5DNN/D,=LW5DOG/D,=LW5DQ/D,=LW5DR/D,=LW5DR/LH,=LW5DTD/D,=LW5DTQ/D,=LW5DUS/D,=LW5DWX/D, + =LW5EE/D,=LW5EO/D,=LW5EOL/D,=LW6DCA/D,=LW6DLS/D,=LW6DTM/D,=LW6DW/D,=LW6DYH/D,=LW6DYZ/D,=LW6EAK/D, + =LW6EEA/D,=LW6EFR/D,=LW6EGE/D,=LW6EHD/D,=LW6EXM/D,=LW7DAF/D,=LW7DAG/D,=LW7DAJ/D,=LW7DAR/D, + =LW7DFD/D,=LW7DGT/D,=LW7DJ/D,=LW7DKB/D,=LW7DKX/D,=LW7DLY/D,=LW7DNS/E,=LW7DPJ/D,=LW7DVC/D, + =LW7DWX/D,=LW7ECZ/D,=LW7EDH/D,=LW7EJV/D,=LW7ELR/D,=LW7EOJ/D,=LW7HA/D,=LW8DAL/D,=LW8DCM/D, + =LW8DIP/D,=LW8DMC/D,=LW8DMK/D,=LW8DPZ/E,=LW8DRU/D,=LW8DYT/D,=LW8EAG/D,=LW8ECQ/D,=LW8EFR/D, + =LW8EGA/D,=LW8EJ/D,=LW8ELR/D,=LW8EU/D,=LW8EVB/D,=LW8EXF/D,=LW9DAD/D,=LW9DAE/D,=LW9DIH/D,=LW9DMM/D, + =LW9DRD/D,=LW9DRT/D,=LW9DSP/D,=LW9DTP/D,=LW9DTQ/D,=LW9DTR/D,=LW9DX/D,=LW9EAG/D,=LW9ECR/D, + =LW9EDX/D,=LW9EGQ/D,=LW9ENF/D,=LW9ESY/D,=LW9EUE/D,=LW9EUU/D,=LW9EVA/D,=LW9EVA/E,=LW9EVE/D, + =LW9EYP/D,=LW9EZV/D,=LW9EZW/D,=LW9EZX/D,=LW9EZY/D, =LS4AA/F,=LT2F/F,=LU1FFF/F,=LU1FHE/F,=LU1FMC/F,=LU1FMS/F,=LU1FSE/F,=LU1FVG/F,=LU2FDA/F,=LU2FGD/F, =LU2FLB/F,=LU2FNA/F,=LU2FP/F,=LU3FCA/F,=LU3FCI/F,=LU3FLG/F,=LU3FMD/F,=LU3FV/F,=LU3FVH/F,=LU4AA/F, =LU4ETN/F,=LU4FKS/F,=LU4FM/F,=LU4FNO/F,=LU4FNP/F,=LU4FOO/F,=LU4HOD/F,=LU5ASA/F,=LU5FB/F,=LU5FBM/F, @@ -1934,8 +1951,8 @@ Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU: =LU5JKI/J,=LU5JLA/J,=LU5JLX/J,=LU5JNC/J,=LU5JOL/J,=LU5JU/J,=LU5JZZ/J,=LU6JAF/J,=LU6JRA/J, =LU7DAC/J,=LU7JI/J,=LU7JLB/J,=LU7JMS/J,=LU7JR/J,=LU7JRM/J,=LU8JOP/J,=LU9CYV/J,=LU9JLV/J,=LU9JMG/J, =LU9JPR/J,=LU9YB/J,=LW2DRJ/J,=LW3EMP/J, - =LU1KAF/K,=LU1KWC/K,=LU2KLC/K,=LU4KC/K,=LU5KAH/K,=LU5OM/K,=LU6KAQ/K,=LU7KHB/K,=LU7KT/K,=LU8KE/K, - =LU9KMB/K,=LW1EVO/K,=LW3DFP/K, + =LU1KAF/K,=LU1KWC/K,=LU2KLC/K,=LU4AA/K,=LU4KC/K,=LU5KAH/K,=LU5OM/K,=LU6KAQ/K,=LU7KHB/K,=LU7KT/K, + =LU8KE/K,=LU9KMB/K,=LW1EVO/K,=LW3DFP/K, =LU1AAS/L,=LU1DZ/L,=LU1LAA/L,=LU1LT/L,=LU1LTL/L,=LU2LDB/L,=LU3AYE/L,=LU4AGC/L,=LU4EFC/L,=LU4LAD/L, =LU4LBU/L,=LU4LMA/L,=LU5FZ/L,=LU5ILA/L,=LU5LAE/L,=LU5LBV/L,=LU6JRA/L,=LU8IEZ/L,=LU8LFV/L, =LU9GOO/L,=LU9GOY/L,=LU9JX/L,=LU9LEW/L,=LU9LOP/L,=LU9LZY/L,=LU9LZZ/L,=LU9XPA/L,=LW3EMP/L, @@ -2048,7 +2065,7 @@ Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU: =LU5XWA/XP[16],=LU6EE/XA[16],=LU6XAH/X[16],=LU7DSY/XA[16],=LU7EUI/XP[16],=LU7XDY/X[16], =LU7XDY/XA[16],=LU7XSC/XP[16],=LU8DLD/XA[16],=LU8DRA/XA[16],=LU8EOT/X[16],=LU8XC/X[16], =LU8XUU/XP[16],=LU8XW/X[16],=LU8XW/XP[16],=LU9DPD/XA[16],=LU9HUP/X[16],=LW3DKO/XA[16], - =LW3ET/XP[16], + =LW3DVN/X[16],=LW3ET/XP[16], AY0Y[16],AY1Y[16],AY2Y[16],AY3Y[16],AY4Y[16],AY5Y[16],AY6Y[16],AY7Y[16],AY8Y[16],AY9Y[16], AZ0Y[16],AZ1Y[16],AZ2Y[16],AZ3Y[16],AZ4Y[16],AZ5Y[16],AZ6Y[16],AZ7Y[16],AZ8Y[16],AZ9Y[16], L20Y[16],L21Y[16],L22Y[16],L23Y[16],L24Y[16],L25Y[16],L26Y[16],L27Y[16],L28Y[16],L29Y[16], @@ -2081,7 +2098,7 @@ Luxembourg: 14: 27: EU: 50.00: -6.00: -1.0: LX: Lithuania: 15: 29: EU: 55.45: -23.63: -2.0: LY: LY,=LY/4X4FC/LH,=LY/4Z5KJ/LH,=LY1CM/A/LH,=LY1CM/LH,=LY1CM/P/LGT,=LY1CM/P/LH,=LY1DF/LH,=LY1DR/LGT, =LY1DS/LH,=LY1FW/LH,=LY2BIG/LH,=LY2DX/LGT,=LY2DX/LH,=LY2FN/LGT,=LY2FN/LH,=LY2UF/LGT,=LY2UF/LH, - =LY3BW/LH,=LY3MU/LH,=LY3TT/LH,=LY4Y/LH,=LY5O/P/LH,=LY5W/P/LH; + =LY3BW/LH,=LY3MU/LH,=LY3TT/LH,=LY4Y/LH,=LY5O/P/LH,=LY5W/P/LH,=YL/LY1CM/LH; Bulgaria: 20: 28: EU: 42.83: -25.08: -2.0: LZ: LZ,=LZ/G0SGB/LH,=LZ2NU/LH,=LZ4HWF/LH; Peru: 10: 12: SA: -10.00: 76.00: 5.0: OA: @@ -2109,11 +2126,11 @@ Finland: 15: 18: EU: 63.78: -27.08: -2.0: OH: =OH2BXT/S,=OH2C/S,=OH2EO/S,=OH2ET/LH,=OH2ET/LS,=OH2ET/S,=OH2FBX/S,=OH2FBX/SA,=OH2HK/S,=OH2HZ/S, =OH2MEE/S,=OH2MEE/SA,=OH2MH/S,=OH2MO/S,=OH2MO/SA,=OH2NAS/S,=OH2NAS/SA,=OH2NM/LH,=OH2PO/S, =OH2PO/SA,=OH2S/S,=OH2S/SA,=OH2XL/S,=OH2XMP/S,=OH2ZL/SA,=OH2ZY/S,=OI2ABG/S, - =OF3HHO/S,=OF3KRB/S,=OG3X/LH,=OH3A/LH,=OH3ABN/S,=OH3ACA/S,=OH3AG/LH,=OH3CT/S,=OH3CT/SA,=OH3FJQ/S, - =OH3FJQ/SA,=OH3GDO/LH,=OH3GQM/S,=OH3HB/S,=OH3HB/SA,=OH3HHO/S,=OH3HHO/SA,=OH3IH/S,=OH3IH/SA, - =OH3IS/S,=OH3KRB/S,=OH3KRB/SA,=OH3LB/S,=OH3LB/SA,=OH3LS/S,=OH3MY/S,=OH3MY/SA,=OH3N/S,=OH3NOB/S, - =OH3NVK/S,=OH3R/SA,=OH3SUF/JOTA,=OH3TAM/LH,=OH3VV/S,=OH3W/S,=OH3WR/SA,=OI3SVM/S,=OI3SVM/SA, - =OI3V/LH,=OI3V/S,=OI3V/SA,=OI3W/LGT,=OI3W/LH, + =OF3HHO/S,=OF3KRB/S,=OG3X/LH,=OH0MZA/3,=OH3A/LH,=OH3ABN/S,=OH3ACA/S,=OH3AG/LH,=OH3CT/S,=OH3CT/SA, + =OH3FJQ/S,=OH3FJQ/SA,=OH3GDO/LH,=OH3GQM/S,=OH3HB/S,=OH3HB/SA,=OH3HHO/S,=OH3HHO/SA,=OH3IH/S, + =OH3IH/SA,=OH3IS/S,=OH3KRB/S,=OH3KRB/SA,=OH3LB/S,=OH3LB/SA,=OH3LS/S,=OH3MY/S,=OH3MY/SA,=OH3N/S, + =OH3NOB/S,=OH3NVK/S,=OH3R/SA,=OH3SUF/JOTA,=OH3TAM/LH,=OH3VV/S,=OH3W/S,=OH3WR/SA,=OI3SVM/S, + =OI3SVM/SA,=OI3V/LH,=OI3V/S,=OI3V/SA,=OI3W/LGT,=OI3W/LH, =OG0V/4,=OH0I/4,=OH0V/4,=OH4FSL/SA,=OH4N/S,=OH4SG/S,=OI4JM/S,=OI4JM/SA,=OI4PM/S, =OF200AD/LS,=OF200AD/S,=OF5AD/S,=OG5A/LS,=OG5A/S,=OH0AW/5,=OH5A/S,=OH5AA/LS,=OH5AD/LS,=OH5AD/S, =OH5B/LH,=OH5EAB/S,=OH5EAB/SA,=OH5GOE/S,=OH5J/S,=OH5J/SA,=OH5JJL/S,=OH5K/S,=OH5LP/S,=OH5LP/SA, @@ -2134,7 +2151,7 @@ Czech Republic: 15: 28: EU: 50.00: -16.00: -1.0: OK: OK,OL,=OK6RA/APF,=OK9BAR/YL,=OL0R/J, =OK1KCR/J,=OK1KI/YL; Slovak Republic: 15: 28: EU: 49.00: -20.00: -1.0: OM: - OM,=VERSION; + OM; Belgium: 14: 27: EU: 50.70: -4.85: -1.0: ON: ON,OO,OP,OQ,OR,OS,OT,=ON3BLB/YL,=ON3TC/YL,=ON4BRC/J,=ON4BRN/LGT,=ON4BRN/LH,=ON4BRN/LS,=ON4BRN/SUB, =ON4CCC/LGT,=ON4CCC/LH,=ON4CEL/LGT,=ON4CEL/LH,=ON4CIS/LGT,=ON4CIS/LH,=ON4CJK/LH,=ON4CKZ/LH, @@ -2314,9 +2331,9 @@ Palau: 27: 64: OC: 7.45: -134.53: -9.0: T8: Asiatic Turkey: 20: 39: AS: 39.18: -35.65: -2.0: TA: TA,TB,TC,YM,=TC50TRAC/01K,=TC50TRAC/17B,=TC50TRAC/18E,=TC50TRAC/28GR,=TC50TRAC/41KF, =TA1AD/0,=TA1E/0,=TA1ED/0,=TA1FL/0,=TA1ZK/0,=TC0SV/LH, - =TA1AJJ/2,=TA1BX/2,=TA1BZ/2,=TA1C/2,=TA1CM/2,=TA1FA/2,=TA1FM/2,=TA1HZ/2,=TA2IJ/YOM,=TC2ELH/LH, - =TC50TRAC/34K,=TC50TRAC/41G,=TC50TRAC/41K,=TC50TRAC/67E,=TC50TRAC/67Z,=YM1SIZ/2, - =TA1BM/3,=TA1BX/3,=TA1BX/3/M,=TA1D/3,=TA3J/LH,=TC50TRAC/10B,=TC50TRAC/16M,=TC50TRAC/35I, + =TA1AJJ/2,=TA1BX/2,=TA1BZ/2,=TA1C/2,=TA1CM/2,=TA1CX/2,=TA1FA/2,=TA1FM/2,=TA1HZ/2,=TA2IJ/YOM, + =TC2ELH/LH,=TC50TRAC/34K,=TC50TRAC/41G,=TC50TRAC/41K,=TC50TRAC/67E,=TC50TRAC/67Z,=YM1SIZ/2, + =TA1BM/3,=TA1BX/3,=TA1BX/3/M,=TA1D/3,=TA1UT/3,=TA3J/LH,=TC50TRAC/10B,=TC50TRAC/16M,=TC50TRAC/35I, =TC50TRAC/35K, =TA1AO/4,=TA1D/4,=TA1HZ/4,=TA3J/4/LGT,=TA4/DJ5AA/LH,=TC50TRAC/03D,=TC50TRAC/15B, =TC50TRAC/01A,=TC50TRAC/80K,=TC50TRAC/80O, @@ -2355,36 +2372,37 @@ Benin: 35: 46: AF: 9.87: -2.25: -1.0: TY: Mali: 35: 46: AF: 18.00: 2.58: 0.0: TZ: TZ; European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: - R,U,=R0AGD/6,=R0CAF/1,=R0XAD/6/P,=R25EMW(17)[19],=R80PSP,=R80UPOL,=R8CT/4/P,=R8FF/3/M,=R90DOSAAF, - =R9AV/6,=R9FCH/6,=R9JBF/1,=R9JI/1,=R9KC/6/M,=R9WR/1,=R9XAU/6,=RA0AM/6,=RA0BM/6,=RA0ZZ/3, - =RA3CQ/9/M(17)[20],=RA80SP,=RA9JR/3,=RA9JX/3,=RA9P/4,=RA9RT/3,=RA9UUY/6,=RA9YA/6,=RC80SP,=RC8C/6, - =RG0F/5,=RG50P(17),=RG50P/9(17)[30],=RJ80SP,=RK80X(17)[19],=RK8O/4,=RL9AA/6,=RM80SP,=RM8A/4/M, - =RM94AE,=RN9M/4,=RN9OI/3,=RO80RO,=RP61XX(17)[19],=RP62X(17)[19],=RP63X(17)[19],=RP63XO(17)[19], - =RP64X(17)[19],=RP65FPP(17)[30],=RP8X(17)[30],=RQ80SP,=RT9T/1,=RT9T/3,=RU0ZW/6,=RU2FB/3, - =RU2FB/3/P,=RU4SS/9(17)[30],=RU4WA/9(17)[30],=RU9MU/3,=RV9LM/3,=RV9XX/3,=RW0IM/1,=RW0QE/6,=RW2F/6, - =RW9FF/3,=RW9W/3,=RW9W/4,=RX2FS/3,=RX9KT/6,=RX9TC/1,=RX9UL/1,=RZ9AWN/6,=UA0AK/3,=UA0FQ/6, - =UA0KBG/3,=UA0KBG/6,=UA0KCX/3/P,=UA0KT/4,=UA0QNE/3,=UA0QNU/3,=UA0QQJ/3,=UA0UV/6,=UA0XAK/3, - =UA0XAK/6,=UA9CCO/6,=UA9CDC/3,=UA9CTT/3,=UA9FFS/1/MM,=UE23DKA,=UE6MAC/9(17),=UE95AE,=UE95E, - =UE95ME,=UE96ME,=UE99PS, + R,U,=R0AGD/6,=R0CAF/1,=R0XAD/6/P,=R25EMW(17)[19],=R7AB/M,=R7AB/P,=R80PSP,=R80UPOL,=R8CT/4/P, + =R8FF/3/M,=R8FF/7,=R90DOSAAF,=R9AV/6,=R9FCH/6,=R9JBF/1,=R9JI/1,=R9KC/6/M,=R9WR/1,=R9XAU/6, + =RA0AM/6,=RA0BM/6,=RA0ZZ/3,=RA3CQ/9/M(17)[20],=RA80SP,=RA9JR/3,=RA9JX/3,=RA9P/4,=RA9RT/3, + =RA9UUY/6,=RA9YA/6,=RC80SP,=RC8C/6,=RG0F/5,=RG50P(17),=RG50P/9(17)[30],=RJ80SP,=RK80X(17)[19], + =RK8O/4,=RL9AA/6,=RM80SP,=RM8A/4/M,=RM94AE,=RN9M/4,=RN9OI/3,=RO80RO,=RP61XX(17)[19], + =RP62X(17)[19],=RP63X(17)[19],=RP63XO(17)[19],=RP64X(17)[19],=RP65FPP(17)[30],=RP8X(17)[30], + =RQ80SP,=RT9T/3,=RU0ZW/6,=RU2FB/3,=RU2FB/3/P,=RU4SS/9(17)[30],=RU4WA/9(17)[30],=RU9MU/3,=RV1CC/M, + =RV9LM/3,=RV9XX/3,=RW0IM/1,=RW0QE/6,=RW2F/6,=RW9FF/3,=RW9W/3,=RW9W/4,=RX2FS/3,=RX9TC/1,=RX9UL/1, + =RZ9AWN/6,=UA0AK/3,=UA0FQ/6,=UA0KBG/3,=UA0KBG/6,=UA0KCX/3/P,=UA0KT/4,=UA0QNE/3,=UA0QNU/3, + =UA0QQJ/3,=UA0UV/6,=UA0XAK/3,=UA0XAK/6,=UA9CCO/6,=UA9CDC/3,=UA9CTT/3,=UA9FFS/1/MM,=UE23DKA, + =UE6MAC/9(17),=UE95AE,=UE95E,=UE95ME,=UE96ME,=UE99PS, =R900BL,=R9J/1,=RA2FN/1,=RA9KU/1,=RA9KU/1/M,=RA9MC/1,=RA9SGI/1,=RK9XWV/1,=RL1O,=RM0L/1,=RM80DZ, - =RN85AM,=RN85KN,=RU2FB/1,=RU9YT/1,=RU9YT/1/P,=RW1AI/ANT,=RW1AI/LH,=RW8W/1,=RW9QA/1,=RX3AMI/1/LH, - =UA1ADQ/ANT,=UA1BJ/ANT,=UA1JJ/ANT,=UA2FFX/1,=UA9B/1,=UA9KG/1,=UA9KGH/1,=UA9KK/1,=UA9UDX/1, - =UB9YUW/1,=UE21A,=UE21B,=UE21M,=UE22A,=UE25AC,=UE25AQ,=UE2AT/1, - =R0XAC/1,=R8XF/1,=R900DM,=R90LPU,=R9JNO/1,=RA0FU/1,=RA9FNV/1,=RN9N/1,=RU9MU/1,=RV0CA/1,=RV1CC/1, - =RV2FW/1,=RV9JD/1,=RX9TN/1,=UA0BDS/1,=UA0SIK/1,=UA1CDA/LH,=UA1CIO/LH,=UA9MA/1,=UA9MQR/1,=UB5O/1, + =RN85AM,=RN85KN,=RT9T/1,=RU2FB/1,=RU9YT/1,=RU9YT/1/P,=RW1AI/ANT,=RW1AI/LH,=RW8W/1,=RW9QA/1, + =RX3AMI/1/LH,=UA1ADQ/ANT,=UA1BJ/ANT,=UA1JJ/ANT,=UA2FFX/1,=UA9B/1,=UA9KG/1,=UA9KGH/1,=UA9KK/1, + =UA9UDX/1,=UB9YUW/1,=UE21A,=UE21B,=UE21M,=UE22A,=UE25AC,=UE25AQ,=UE2AT/1, + =R0XAC/1,=R8XF/1,=R900DM,=R90LPU,=R9JNO/1,=RA0FU/1,=RA9FNV/1,=RN9N/1,=RU9MU/1,=RV0CA/1,=RV2FW/1, + =RV9JD/1,=RX9TN/1,=UA0BDS/1,=UA0SIK/1,=UA1CDA/LH,=UA1CIO/LH,=UA9MA/1,=UA9MQR/1, R1N[19],RA1N[19],RC1N[19],RD1N[19],RE1N[19],RF1N[19],RG1N[19],RJ1N[19],RK1N[19],RL1N[19],RM1N[19], RN1N[19],RO1N[19],RQ1N[19],RT1N[19],RU1N[19],RV1N[19],RW1N[19],RX1N[19],RY1N[19],RZ1N[19],U1N[19], UA1N[19],UB1N[19],UC1N[19],UD1N[19],UE1N[19],UF1N[19],UG1N[19],UH1N[19],UI1N[19],=R01DTV/1[19], - =R85KFF[19],=R90K[19],=RK75OP[19],=RN1NA/ANT[19],=RO25KL[19],=RO75RK[19],=RP72PT[19],=RP72RK[19], - =RP73PT[19],=RP73RK[19],=RP74PT[19],=RP74RK[19],=RP75PT[19],=RP75RK[19],=RV9JD/1/M[19], + =R100RK[19],=R85KFF[19],=R90K[19],=RK75OP[19],=RN1NA/ANT[19],=RO25KL[19],=RO75RK[19],=RP72PT[19], + =RP72RK[19],=RP73PT[19],=RP73RK[19],=RP74PT[19],=RP74RK[19],=RP75PT[19],=RP75RK[19],=RV1CC/1[19], + =RV9JD/1/M[19], R1O[19],RA1O[19],RC1O[19],RD1O[19],RE1O[19],RF1O[19],RG1O[19],RJ1O[19],RK1O[19],RL1O[19],RM1O[19], RN1O[19],RO1O[19],RQ1O[19],RT1O[19],RU1O[19],RV1O[19],RW1O[19],RX1O[19],RY1O[19],RZ1O[19],U1O[19], UA1O[19],UB1O[19],UC1O[19],UD1O[19],UE1O[19],UF1O[19],UG1O[19],UH1O[19],UI1O[19],=R0000O[19], - =R100FA[19],=R100K[19],=R20ARRS[19],=R25ILIM[19],=R8FF/1[19],=R9LI/1[19],=R9MCM/1[19], + =R100FA[19],=R100K[19],=R20ARRS[19],=R25ILIM[19],=R5QA/1[19],=R8FF/1[19],=R9LI/1[19],=R9MCM/1[19], =RA0NN/1[19],=RA9XA/1[19],=RA9XA/1/P[19],=RK0SE/1[19],=RM9X/1[19],=RO80KEDR[19],=RP72A[19], =RP73A[19],=RP73AU[19],=RP74A[19],=RP74AU[19],=RP75A[19],=RP75AOS[19],=RP75AU[19],=RP75NK[19], =RP75OM[19],=UA1PAC/ANT[19],=UA9UAX/1[19],=UA9UAX/1/M[19],=UA9XK/1[19],=UA9XMC/1[19], - =UA9XRK/1[19],=UE25IK[19],=UE80AR[19],=UE80AR/M[19],=UE80AR/P[19],=UE90PR[19], + =UA9XRK/1[19],=UB5O/1[19],=UE25IK[19],=UE80AR[19],=UE80AR/M[19],=UE80AR/P[19],=UE90PR[19], R1P[20],RA1P[20],RC1P[20],RD1P[20],RE1P[20],RF1P[20],RG1P[20],RJ1P[20],RK1P[20],RL1P[20],RM1P[20], RN1P[20],RO1P[20],RQ1P[20],RT1P[20],RU1P[20],RV1P[20],RW1P[20],RX1P[20],RY1P[20],RZ1P[20],U1P[20], UA1P[20],UB1P[20],UC1P[20],UD1P[20],UE1P[20],UF1P[20],UG1P[20],UH1P[20],UI1P[20],=R8XW/1[20], @@ -2400,14 +2418,14 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =RA9CFH/1[19],=RA9CFH/1/P[19],=RK21Z[19],=RK3DZJ/1/LH[19],=RM9WN/1[19],=RP72MU[19],=RP73MU[19], =RP73ZP[19],=RP74ZP[19],=RP75BFS[19],=RP75EP[19],=RP75PL[19],=RU1ZC/ANT[19],=RW1ZQ/LH[19], =RY83HN[19],=UB1ZBD/N[19], - =R01DTV/3,=R85PAR,=R870B,=R870C,=R870K,=R870M,=R870O,=R8FF/3,=R9FM/3,=RA2AT,=RA2FDX/3,=RA9CO/3, - =RA9USU/3,=RC85MP,=RL3AB/FF,=RT2F/3/M,=RT9K/3,=RW0LF/3,=RX9UL/3,=RX9WN/3,=RZ9UA/3,=UA0KCX/3, - =UA3AV/ANT,=UA8AA/3,=UA8AA/5,=UA9KHD/3,=UA9MA/3,=UA9MDU/3,=UA9MRX/3,=UA9QCP/3,=UA9UAX/3,=UE24SU, - =R85AAL,=R85QMR,=R85WDW,=R8B,=R8FF/M,=R90DNF,=R99FSB,=R9YU/3,=RA0BY/3,=RA80KEDR,=RA9KV/3,=RA9SB/3, - =RA9XY/3,=RD0L/3,=RK3DSW/ANT,=RK3DWA/3/N,=RN9MD/3,=RT80KEDR,=RU0LM/3,=RU2FA/3,=RU3HD/ANT,=RV0AO/3, - =RV9LM/3/P,=RW0IM/3,=RW3DU/N,=RW9UEW/3,=RX9SN/3,=RZ9OL/3/M,=RZ9OL/3/P,=RZ9SZ/3,=RZ9W/3,=UA0JAD/3, - =UA0KCL/3,=UA0ZAZ/3,=UA9AJ/3/M,=UA9DD/3,=UA9HSI/3,=UA9ONJ/3,=UA9XGD/3,=UA9XMC/3,=UE23DSA,=UE25FO, - =UE95GA,=UE96WS, + =R01DTV/3,=R85PAR,=R870B,=R870C,=R870K,=R870M,=R870O,=R9FM/3,=RA2AT,=RA2FDX/3,=RA9CO/3,=RA9USU/3, + =RC85MP,=RL3AB/FF,=RT2F/3/M,=RT9K/3,=RW0LF/3,=RX9UL/3,=RX9WN/3,=RZ9UA/3,=UA0KCX/3,=UA3AV/ANT, + =UA8AA/3,=UA8AA/5,=UA9KHD/3,=UA9MA/3,=UA9MDU/3,=UA9MRX/3,=UA9QCP/3,=UA9UAX/3,=UE24SU, + =R85AAL,=R85QMR,=R85WDW,=R8B,=R8FF/3,=R8FF/M,=R8FF/P,=R90DNF,=R90WDW,=R99FSB,=R9YU/3,=RA0BY/3, + =RA80KEDR,=RA9KV/3,=RA9SB/3,=RA9XY/3,=RD0L/3,=RK3DSW/ANT,=RK3DWA/3/N,=RN9MD/3,=RT80KEDR,=RU0LM/3, + =RU2FA/3,=RU3HD/ANT,=RV0AO/3,=RV9LM/3/P,=RW0IM/3,=RW3DU/N,=RW9UEW/3,=RX9SN/3,=RZ9OL/3/M, + =RZ9OL/3/P,=RZ9SZ/3,=RZ9W/3,=UA0JAD/3,=UA0KCL/3,=UA0ZAZ/3,=UA9AJ/3/M,=UA9DD/3,=UA9HSI/3,=UA9ONJ/3, + =UA9XGD/3,=UA9XMC/3,=UE23DSA,=UE25FO,=UE95GA,=UE96WS, =R80ORL,=UA0QGM/3,=UE80O,=UE80OL, =R0CAF/3,=R3GO/FF,=RM0L/3,=RN3GL/FF,=RN3GW/FF,=RT5G/P/FF,=RW0IW/3,=UA3GM/ANT,=UE90FL, =RA9KT/3,=RZ9SZ/3/M,=UA0FHC/3,=UF2F/3/M, @@ -2419,23 +2437,24 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =UA9JLY/3,=UA9XLE/3,=UB0AJJ/3,=UB5O/M,=UC0LAF/3,=UE25AFG,=UE25R,=UE27AFG,=UE28AFG,=UE96SN, =R80RTL,=R90IARU,=R9CZ/3,=RU80TO,=RZ9HK/3/P, =R920RZ,=R95DOD,=RA0QQ/3,=UA0KBA/3,=UE80S,=UE85NKN,=UE85WDW, - =R3TT/FF,=R8FF/P,=R8TA/4/P,=R8TR/3,=R90NOR,=R9KW/3,=R9KW/4,=R9PA/4,=RA95FL,=RA9AP/3,=RA9CKQ/4, - =RA9KW/3,=RA9KW/3/M,=RA9ST/3/P,=RG9A/3/P,=RM9T/4/P,=RN0CT/4,=RT9S/3,=RT9S/3/P,=RT9S/4,=RT9S/P, - =RU95FL,=RU9LA/4,=RV9FQ/3,=RV9FQ/3/M,=RV9WB/4,=RV9WLE/3/P,=RV9WZ/3,=RW9KW/3,=RW9WA/3,=RX9SN/P, - =UA0ADX/3,=UA0DM/4,=UA0S/4,=UA0SC/4,=UA9APA/3/P,=UA9CTT/4,=UA9PM/4,=UA9SSR/3,=UE200TARS,=UE25TF, - =UE9FDA/3,=UE9FDA/3/M,=UE9WDA/3,=UI8W/3/P, + =R3TT/FF,=R8TA/4/P,=R8TR/3,=R90NOR,=R9KW/3,=R9KW/4,=R9PA/4,=RA95FL,=RA9AP/3,=RA9CKQ/4,=RA9KW/3, + =RA9KW/3/M,=RA9ST/3/P,=RG9A/3/P,=RM9T/4/P,=RN0CT/4,=RT9S/3,=RT9S/3/P,=RT9S/4,=RT9S/P,=RU95FL, + =RU9LA/4,=RV9FQ/3,=RV9FQ/3/M,=RV9WB/4,=RV9WLE/3/P,=RV9WZ/3,=RW9KW/3,=RW9WA/3,=RX9SN/P,=UA0ADX/3, + =UA0DM/4,=UA0S/4,=UA0SC/4,=UA9APA/3/P,=UA9CTT/4,=UA9PM/4,=UA9SSR/3,=UE200TARS,=UE25TF,=UE9FDA/3, + =UE9FDA/3/M,=UE9WDA/3,=UI8W/3/P, =R5VAJ/N,=R850G,=R850PN,=RU0BW/3,=RV80KEDR,=RX9TL/3,=UA0FM/3, =R110A/P,=R80PVB, - =RA9XF/3,=RC80KEDR,=RK0BWW/3,=RN80KEDR,=RW9XC/3/M,=RX3XX/N,=UA0KBA/3/P,=UA9SIV/3,=UE0ZOO/3, - =R85WTA,=R8FF/3/P,=R98KPM,=R99KPM,=RA3YV/ANT,=RK0UT/3,=RW0LX/3,=UA3YH/ANT,=UA9KZ/3,=UB8JAF/3, - =UE91L,=UE95K,=UE95RA, + =R8XF/3,=RA9XF/3,=RC80KEDR,=RK0BWW/3,=RN80KEDR,=RW9XC/3/M,=RX3XX/N,=UA0KBA/3/P,=UA9SIV/3, + =UE0ZOO/3, + =R85WTA,=R8FF/3/P,=R90WDWR,=R98KPM,=R99KPM,=RA3YV/ANT,=RK0UT/3,=RW0LX/3,=UA3YH/ANT,=UA9KZ/3, + =UB8JAF/3,=UE91L,=UE95K,=UE95RA, =R3ZK/FF,=RA3ZZ/ANT,=RA9AK/3,=RA9KD/3,=RU3ZK/FF,=RW0BG/3,=UA0QBC/3, =R89DRA,=RA07DR,=RA9DF/4/P,=RA9ODR/4/M,=RC4AF/FF,=RN4ACA/FF,=RV9CX/6/M,=UA4ASE/FF,=UA4ATL/FF, =UA8WAA/6,=UA9FGR/4,=UE00S,=UE00S/P,=UE09VG,=UE80RWW, =R4CDX/FF,=R8FF/4,=R8FR/4/M,=RA9KO/4,=RL96WS,=RL97WS,=RU80KEDR,=RU80KEDR/P,=RU9SO/4/M,=RV4CC/FF, =RW0UZ/4,=RW9AW/4/M,=RZ0SB/4,=UA0KAT/4,=UA8WAA/4,=UA9AGR/4/M,=UA9JPX/4,=UA9OC/4,=UE23DZO,=UE95MS, =UE95WS,=UE98WS,=UE99PW, - =R9CMA/4,=R9JBN/4, + =R8CW/4,=R9CMA/4,=R9JBN/4, R4H[30],R4I[30],RA4H[30],RA4I[30],RC4H[30],RC4I[30],RD4H[30],RD4I[30],RE4H[30],RE4I[30],RF4H[30], RF4I[30],RG4H[30],RG4I[30],RJ4H[30],RJ4I[30],RK4H[30],RK4I[30],RL4H[30],RL4I[30],RM4H[30], RM4I[30],RN4H[30],RN4I[30],RO4H[30],RO4I[30],RQ4H[30],RQ4I[30],RT4H[30],RT4I[30],RU4H[30], @@ -2452,14 +2471,14 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =RW4HTK[29],=RW4HW[29],=RW4HZ[29],=RW9SW/4[30],=RW9TP/4[30],=RW9WJ/4[30],=RW9WJ/4/P[30], =RW9WJ/P[30],=RZ4HWF/LH[30],=RZ4HZW/FF[30],=RZ9WU/4/M[30],=UA0KAO/4[30],=UA0QJA/4[30],=UA4H[29], =UA4HBM[29],=UA4HGL[29],=UA4HIP[29],=UA4HIP/M[30],=UA4HRZ[29],=UA4HY[29],=UA9JGX/4[30], - =UA9LAO/4[30],=UA9SQG/4/P[30],=UA9SY/4[30],=UB5O/4[30],=UC4I[29],=UI4I[29], + =UA9LAO/4[30],=UA9SQG/4/P[30],=UA9SY/4[30],=UC4I[29],=UI4I[29], =R01DTV/4,=R9XC/4,=RA9XAF/4,=UA4HIP/4,=UA9JFE/4, =R8XF/4,=RA4NCC[30],=RA9FR/4/P,=RA9XSM/4,=RD9CX/4,=RD9CX/4/P,=RU0LM/4,=RW9XC/4/M,=UA4NE/M, =UA4NF[30],=UA4NF/M,=UA9APA/4/P,=UA9FIT/4,=UA9XI/4,=UE9FDA/4,=UE9FDA/4/M,=UE9GDA/4, =R95PW,=R9WI/4/P,=RA9CKM/4/M,=RA9FR/4/M,=RJ4P[30],=RK4P[30],=RK4PK[30],=RM4P[30],=RM4R[30], - =RM8W/4/M,=RN9WWW/4,=RN9WWW/4/M,=RT05RO,=RV9FQ/4/M,=RV9WKI/4/M,=RV9WKI/4/P,=RV9WMZ/4/M,=RV9WZ/4, - =RW9TP/4/P,=RW9WA/4,=RW9WA/4/M,=RZ9WM/4,=UA2FM/4,=UA3AKO/4,=UA4PN[30],=UA4RF[30],=UA4RW[30], - =UA9AJ/4/M,=UA9JFN/4/M,=UA9JNQ/4,=UA9SG/4,=UE96MP,=UE9WDA/4,=UE9WDA/4/M, + =RM8W/4/M,=RN9WWW/4,=RN9WWW/4/M,=RT05RO,=RU9SO/M,=RV9FQ/4/M,=RV9WKI/4/M,=RV9WKI/4/P,=RV9WMZ/4/M, + =RV9WZ/4,=RW9TP/4/P,=RW9WA/4,=RW9WA/4/M,=RZ9WM/4,=UA2FM/4,=UA3AKO/4,=UA4PN[30],=UA4RF[30], + =UA4RW[30],=UA9AJ/4/M,=UA9JFN/4/M,=UA9JNQ/4,=UA9SG/4,=UE96MP,=UE9WDA/4,=UE9WDA/4/M, =R8UT/4/P,=RX9WN/4, =RQ0C/4,=RZ5D/4,=UA9XX/4,=UE9WFF/4, R4W[30],RA4W[30],RC4W[30],RD4W[30],RE4W[30],RF4W[30],RG4W[30],RJ4W[30],RK4W[30],RL4W[30],RM4W[30], @@ -2469,8 +2488,8 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =RA9WU/4/P[30],=RP72IZ[30],=RP73IZ[30],=RP74IZ[30],=RP75IZ[30],=RT20NY[30],=RW9FWB/4[30], =RW9FWR/4[30],=RW9FWR/4/M[30],=RX9FW/4[30],=UA9UAX/4/M[30], =RT9T/4,=RV9MD/4,=UA4PCM/M,=UE04YCS,=UE85AGN,=UE90AGN, - =R01DTV,=R01DTV/7,=R0IT/6,=R80TV,=R8XW/6,=R9JO/6,=R9KD/6,=R9OM/6,=R9WGM/6/M,=RA0APW/6,=RA0FW/6, - =RA0LIF/6,=RA0LLW/6,=RA0QR/6,=RA9ODR/6,=RA9ODR/6/M,=RA9SAS/6,=RA9UWD/6,=RA9WW/6,=RD9CX/6, + =R01DTV,=R01DTV/7,=R0IT/6,=R1CF/M,=R80TV,=R8XW/6,=R9JO/6,=R9KD/6,=R9OM/6,=R9WGM/6/M,=RA0APW/6, + =RA0FW/6,=RA0LIF/6,=RA0LLW/6,=RA0QR/6,=RA9ODR/6,=RA9ODR/6/M,=RA9SAS/6,=RA9UWD/6,=RA9WW/6,=RD9CX/6, =RD9CX/6/P,=RK6AH/LH,=RK9JA/6,=RN0CF/6,=RN0JT/6,=RQ0C/6,=RT9K/6,=RT9K/6/P,=RT9K/6/QRP,=RU2FB/6, =RU9MX/6,=RU9QRP/6/M,=RU9QRP/6/P,=RU9SO/6,=RV9FQ/6,=RW0LIF/6,=RW0LIF/6/LH,=RW6AWW/LH,=RW9JZ/6, =RW9WA/6,=RX6AA/ANT,=RX6AAP/ANT,=RX9TX/6,=RZ9HG/6,=RZ9HT/6,=RZ9UF/6,=RZ9UZV/6,=UA0AGE/6,=UA0IT/6, @@ -2480,16 +2499,16 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =RA6EE/FF,=RN7G/FF,=UA0LEC/6,=UA9KAS/6,=UA9KAS/6/P, =R9XV/6,=RA0ZG/6,=RA9CHS/6,=RA9CHS/7,=RK7G/FF,=RM8A/6/M,=RT9K/7,=RU9CK/7,=RU9ZA/7,=RZ7G/FF, =RZ9ON/6,=UA0ZDA/6,=UA0ZS/6,=UA6HBO/N,=UA6HBO/ST30,=UA6IC/6/FF,=UA9CE/6,=UA9UAX/7/M,=UE80HS, - =R7AB/P,=UA6IC/FF, + =UA6IC/FF, =RU2FB/6/P,=UA9UAX/7, - =R6LCA/J,=R7AB/M,=R8WC/6,=R8WC/6/P,=RA20NY,=RU97AE,=RV9CMT/6,=RV9DC/6/P,=RV9LC/6,=RW9XC/6/M, + =R6LCA/J,=R8WC/6,=R8WC/6/P,=RA20NY,=RU97AE,=RV9CMT/6,=RV9DC/6/P,=RV9LC/6,=RW9XC/6/M,=RX9KT/6, =UA0QBR/6,=UA0ZED/6,=UA6LP/P/LH,=UA6LV/ANT,=UA6MM/LH,=UE20DS,=UE28DX,=UE29DX,=UE92L, =RV0ANH/6,=RV0APR/6,=RW0AF/6, =R8FF/6,=R9DA/6,=R9MAV/6,=RA9DF/6/M,=RA9DF/6/P,=RU9CK/6/M,=RU9CK/6/P,=RV9CX/6/P,=UA9CES/6, =UA9FGR/6,=UA9WQK/6, =RU9CK/7/M,=RU9CK/7/P,=RV9CX/7/P,=UA9JFN/6/M, =RT9K/7/P,=RZ7G/6/FF, - =R01DTV/6,=RV1CC/M,=RV9AB/6, + =R01DTV/6,=RV9AB/6, =R9FAZ/6/M,=R9MJ/6,=R9OM/5/P,=R9XT/6,=RA9KD/6,=RA9WU/6,=RN9N/6,=RT9T/6,=RT9T/6/M,=RU2FB/5, =RU9WW/5/M,=RW9AW/5,=UA0LLM/5,=UA8WAA/5,=UA9CDC/6,=UA9UAX/5,=UE2KR,=UE98PW, =R8AEU/6,=R9MJ/6/M,=RN9N/6/M,=UA0ZL/6,=UB8ADI/5,=UB8ADI/6,=UE2SE, @@ -2537,10 +2556,10 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: UF8X(17)[20],UF9X(17)[20],UG1I(17)[20],UG8X(17)[20],UG9X(17)[20],UH1I(17)[20],UH8X(17)[20], UH9X(17)[20],UI1I(17)[20],UI8X(17)[20],UI9X(17)[20],=R100AP(17)[20],=R120RK(17)[20], =R16NOR(17)[20],=R18ISL(17)[20],=R2014I(17)[20],=R20SZO(17)[20],=R240S(17)[20],=R35MWC(17)[20], - =R3RRC/9(17)[20],=R5QA/1(17)[20],=R5QQ/1(17)[20],=R6DGL/9/M(17)[20],=R6DLU/1(17)[20], - =R70SRC(17)[20],=R7BA/1(17)[20],=R7BA/9(17)[20],=R7BA/9/M(17)[20],=R8MB/1(17)[20], - =R8MB/1/P(17)[20],=R9/UR7IMG(17)[20],=R95KOMI(17)[20],=R9KD/9(17)[20],=R9XAK/1/P(17)[20], - =RA/DK5JI(17)[20],=RA/UR5MKH(17)[20],=RA22KO(17)[20],=RA22XA(17)[20],=RA22XF(17)[20], + =R3RRC/9(17)[20],=R5QQ/1(17)[20],=R6DGL/9/M(17)[20],=R6DLU/1(17)[20],=R70SRC(17)[20], + =R7BA/1(17)[20],=R7BA/9(17)[20],=R7BA/9/M(17)[20],=R8MB/1(17)[20],=R8MB/1/P(17)[20], + =R9/UR7IMG(17)[20],=R95KOMI(17)[20],=R9KD/9(17)[20],=R9XAK/1/P(17)[20],=RA/DK5JI(17)[20], + =RA/UR5MKH(17)[20],=RA1WS/1(17)[20],=RA22KO(17)[20],=RA22XA(17)[20],=RA22XF(17)[20], =RA22XU(17)[20],=RA3AMG/9/M(17)[20],=RA3OM/9(17)[20],=RA3X/1(17)[20],=RA4NH/9(17)[20], =RA4NV/9(17)[20],=RA6ACI/9(17)[20],=RD4CBQ/9(17)[20],=RK1OWZ/9(17)[20],=RK1OWZ/9/M(17)[20], =RK30DR(17)[20],=RK6K/9(17)[20],=RK90DR(17)[20],=RN22OG(17)[20],=RN22OV(17)[20],=RN4ACZ/9(17)[20], @@ -2589,16 +2608,16 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: =R01DTV/8,=R100RGA,=R105WWS,=R14CWC/8,=R14CWC/9,=R150DMP,=R155AP,=R15CWC/8,=R15CWC/8/QRP,=R160DMP, =R16SVK,=R170GS/8,=R2015BP,=R2015R,=R2016DR,=R20EKB,=R22SKJ,=R27EKB,=R30ZF,=R35CZF,=R375I, =R44YETI/8,=R4WAB/9/P,=R55EPC,=R55EPC/P,=R6UAE/9,=R70NIK,=R7LZ/8,=R8FF/8,=R9GM/8,=R9GM/8/M, - =RA/DL6XK,=RA/US5ETV,=RA0BA/8,=RA0BA/9,=RA27AA,=RA27EK,=RA36GS,=RA36ZF,=RA4YW/9,=RA4YW/9/M, - =RA9FW/9,=RA9WU/9,=RC18EK,=RD0B/8,=RK9AD/9/M,=RK9DR/N,=RL20NY,=RL4R/8,=RM0B/9,=RM19NY,=RN16CW, - =RN3QBG/9,=RP68DT,=RP68RG,=RP68TG,=RP68TK,=RP69GR,=RP70DT,=RP70G,=RP70GB,=RP70GR,=RP70MA,=RP70SA, - =RP70UH,=RP71DT,=RP71GA,=RP71GA/M,=RP71GB,=RP71GR,=RP71LT,=RP71MO,=RP71SA,=RP72DT,=RP72FI,=RP72GB, - =RP72GR,=RP72IM,=RP72KB,=RP72SA,=RP73DT,=RP73GB,=RP73GR,=RP73IM,=RP73SA,=RP74DT,=RP74GB,=RP74GR, - =RP74IM,=RP75DT,=RP75GB,=RP75IM,=RP75MF,=RP75MLI,=RP75RGA,=RP75TT,=RP75UR,=RT4C/8,=RT4W/9,=RT73BR, - =RT73EB,=RT73FL,=RT73HE,=RT73KB,=RT73SK,=RU22CR,=RU5D/8,=RU5D/9,=RV6LGY/9,=RV6LGY/9/M,=RV6LGY/9/P, - =RV6MD/9,=RV9WB/8,=RW4NX/9,=RW9C[20],=RX0SD/9,=RX3Q/8,=RX3Q/9,=RX9UL/9,=RY9C/P,=RZ1CWC/8,=RZ37ZF, - =RZ38ZF,=RZ39ZF,=UA0BA/8,=UA3FQ/8,=UA3IHJ/8,=UA4WHX/9,=UA8WAA/8,=UA9MW/9,=UA9UAX/8,=UA9UAX/8/M, - =UE16SR,=UE25F,=UE40CZF,=UE4NFF/9,=UE56S,=UE64RWA,=UE70SL,=UE75DT, + =R9WCJ/8,=RA/DL6XK,=RA/US5ETV,=RA0BA/8,=RA0BA/9,=RA27AA,=RA27EK,=RA36GS,=RA36ZF,=RA4YW/9, + =RA4YW/9/M,=RA9FW/9,=RA9WU/9,=RC18EK,=RD0B/8,=RK9AD/9/M,=RK9DR/N,=RL20NY,=RL4R/8,=RM0B/9,=RM19NY, + =RN16CW,=RN3QBG/9,=RP68DT,=RP68RG,=RP68TG,=RP68TK,=RP69GR,=RP70DT,=RP70G,=RP70GB,=RP70GR,=RP70MA, + =RP70SA,=RP70UH,=RP71DT,=RP71GA,=RP71GA/M,=RP71GB,=RP71GR,=RP71LT,=RP71MO,=RP71SA,=RP72DT,=RP72FI, + =RP72GB,=RP72GR,=RP72IM,=RP72KB,=RP72SA,=RP73DT,=RP73GB,=RP73GR,=RP73IM,=RP73SA,=RP74DT,=RP74GB, + =RP74GR,=RP74IM,=RP75DT,=RP75GB,=RP75IM,=RP75MF,=RP75MLI,=RP75RGA,=RP75TT,=RP75UR,=RT4C/8,=RT4W/9, + =RT73BR,=RT73EB,=RT73FL,=RT73HE,=RT73KB,=RT73SK,=RU22CR,=RU5D/8,=RU5D/9,=RV6LGY/9,=RV6LGY/9/M, + =RV6LGY/9/P,=RV6MD/9,=RV9WB/8,=RW4NX/9,=RW9C[20],=RX0SD/9,=RX3Q/8,=RX3Q/9,=RX9UL/9,=RY9C/P, + =RZ1CWC/8,=RZ37ZF,=RZ38ZF,=RZ39ZF,=UA0BA/8,=UA3FQ/8,=UA3IHJ/8,=UA4WHX/9,=UA8WAA/8,=UA9MW/9, + =UA9UAX/8,=UA9UAX/8/M,=UE16SR,=UE25F,=UE40CZF,=UE4NFF/9,=UE56S,=UE64RWA,=UE70SL,=UE75DT, R8H(18)[31],R8I(18)[31],R9H(18)[31],R9I(18)[31],RA8H(18)[31],RA8I(18)[31],RA9H(18)[31], RA9I(18)[31],RC8H(18)[31],RC8I(18)[31],RC9H(18)[31],RC9I(18)[31],RD8H(18)[31],RD8I(18)[31], RD9H(18)[31],RD9I(18)[31],RE8H(18)[31],RE8I(18)[31],RE9H(18)[31],RE9I(18)[31],RF8H(18)[31], @@ -2660,9 +2679,9 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: =RP75YN,=RR110RAEM,=RU22LR,=RW0QJ/9,=RX4W/8,=RX6DL/8,=RX6DL/8/P,=RX6DL/8/P/QRP,=RX6DL/9/P, =RZ9MXM/9/M,=UB5O/8/P,=UE44Y/8,=UE9FDA/9/M,=UE9MDA/9, =R16CAN,=R1716K,=R1716M,=R1716O,=R1716S,=R9MJ/M,=RA/DK2AI/M,=RA22MX,=RA4CQ/9/M,=RA9MR/0,=RA9MX/P, - =RC20MX,=RK6YYA/9,=RN0SZ/9,=RN9N/9,=RN9N/M,=RP65MOH,=RP67MC,=RP67MD,=RP68MC,=RP68MD,=RP69MC, - =RP69MD,=RP70GK,=RP70MC,=RP70MD,=RP70OB,=RP70OF,=RP70OS,=RP71GK,=RP71MJ,=RP71OB,=RP72GK,=RP72MJ, - =RP72OB,=RP72ZW,=RP73GK,=RP73OB,=RP74PO,=RP75GK,=RP8M,=RT22MC,=RT22MD,=RU20NY,=RV0SR/9,=RW22MW, + =RC20MX,=RK6YYA/9,=RN0SZ/9,=RN9N/9,=RP65MOH,=RP67MC,=RP67MD,=RP68MC,=RP68MD,=RP69MC,=RP69MD, + =RP70GK,=RP70MC,=RP70MD,=RP70OB,=RP70OF,=RP70OS,=RP71GK,=RP71MJ,=RP71OB,=RP72GK,=RP72MJ,=RP72OB, + =RP72ZW,=RP73GK,=RP73OB,=RP74PO,=RP75GK,=RP8M,=RT22MC,=RT22MD,=RU20NY,=RU20RU,=RV0SR/9,=RW22MW, =RY22MC,=UA1ZGD/9,=UA3AKO/9,=UE55OM,=UE70KRM/9,=UE70KRM/9/M,=UE9OFF/9, R8O(18)[31],R8P(18)[31],R9O(18)[31],R9P(18)[31],RA8O(18)[31],RA8P(18)[31],RA9O(18)[31], RA9P(18)[31],RC8O(18)[31],RC8P(18)[31],RC9O(18)[31],RC9P(18)[31],RD8O(18)[31],RD8P(18)[31], @@ -2689,12 +2708,12 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: =R9/TA1FL(18)[31],=RA/DF8DX(18)[31],=RA/N3QQ(18)[31],=RA0LMC/9(18)[31],=RA27OA(18)[31], =RA27OM(18)[31],=RA3DH/9(18)[31],=RA3ET/9(18)[31],=RA4FRH/0/P(18)[31],=RA9JJ/9/M(18)[31], =RA9MX/9(18)[31],=RC1M/9(18)[31],=RC1M/9/M(18)[31],=RD0L/9(18)[31],=RG9O(18)[31],=RL3T/9(18)[31], - =RN9N/9/M(18)[31],=RO9O(18)[31],=RP67MP(18)[31],=RP68MP(18)[31],=RP70MP(18)[31],=RP71MP(18)[31], - =RP72MP(18)[31],=RP73MP(18)[31],=RP74MP(18)[31],=RP75MP(18)[31],=RP9OMP(18)[31],=RP9OW(18)[31], - =RQ16CW(18)[31],=RR9O(18)[31],=RS9O(18)[31],=RU0ZM/9(18)[31],=RU27OZ(18)[31],=RU6LA/9(18)[31], - =RV0CJ/9(18)[31],=RW1AC/9(18)[31],=RW9MD/9/M(18)[31],=RZ9MXM/9(18)[31],=UA0KDR/9(18)[31], - =UA0ZAY/9(18)[31],=UA6WFO/9(18)[31],=UA9MA/9(18)[31],=UA9MA/9/M(18)[31],=UA9MRA/9(18)[31], - =UB5O/9(18)[31],=UE80NSO(18)[31], + =RN9N/9/M(18)[31],=RN9N/M(18)[31],=RO9O(18)[31],=RP67MP(18)[31],=RP68MP(18)[31],=RP70MP(18)[31], + =RP71MP(18)[31],=RP72MP(18)[31],=RP73MP(18)[31],=RP74MP(18)[31],=RP75MP(18)[31],=RP9OMP(18)[31], + =RP9OW(18)[31],=RQ16CW(18)[31],=RR9O(18)[31],=RS9O(18)[31],=RU0ZM/9(18)[31],=RU27OZ(18)[31], + =RU6LA/9(18)[31],=RV0CJ/9(18)[31],=RW1AC/9(18)[31],=RW9MD/9/M(18)[31],=RZ9MXM/9(18)[31], + =UA0KDR/9(18)[31],=UA0ZAY/9(18)[31],=UA6WFO/9(18)[31],=UA9MA/9(18)[31],=UA9MA/9/M(18)[31], + =UA9MRA/9(18)[31],=UB5O/9(18)[31],=UE80NSO(18)[31], =R110RP,=R120RDP,=R120RZ,=R120TM,=R150RP,=R155RP,=R160RP,=R18URU,=RA22QF,=RC20QA,=RC20QC,=RC20QF, =RM20CC,=RM20NY,=RM9RZ/A,=RM9RZ/P,=RP65R,=RP67KE,=RP67R,=RP68KE,=RP68R,=RP69KE,=RP69R,=RP70KE, =RP70R,=RP71R,=RP72KE,=RP72R,=RP75KE,=RT73CW,=RT73JH,=RV3MN/9,=RW22QA,=RW22QA/8,=RW22QC,=RW22QC/8, @@ -2717,9 +2736,9 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: =RN3GW/8(16),=RN3GW/8/QRP(16),=RN3GW/9(16),=RN3GW/9/QRP(16),=RN3QOP/9(16),=RN9S(16),=RN9SM/P(16), =RN9WWW/9(16),=RO9S(16),=RP65TT(16),=RP68GR(16),=RP69NB(16),=RP71TK(16),=RP75TS(16),=RP9SBO(16), =RP9SBR(16),=RP9SNK(16),=RT22TK(16),=RT73OA(16),=RT8T(16),=RT9S(16),=RT9T(16),=RU22TU(16), - =RU9SO/M(16),=RV1CC/4/M(16),=RV9WGF/4/M(16),=RV9WMZ/9/M(16),=RW4PJZ/9(16),=RW4PJZ/9/M(16), - =RW4PP/9(16),=RW9WA/9(16),=RW9WA/9/M(16),=RY4W/9(16),=RZ4HZW/9/M(16),=UA0AGA/9/P(16), - =UA0KBA/9(16),=UA3WB/9(16),=UA4LCQ/9(16),=UA9SIV/9(16),=UB9JBN/9/M(16),=UE1RFF/9(16),=UE25ST(16), + =RV1CC/4/M(16),=RV9WGF/4/M(16),=RV9WMZ/9/M(16),=RW4PJZ/9(16),=RW4PJZ/9/M(16),=RW4PP/9(16), + =RW9WA/9(16),=RW9WA/9/M(16),=RY4W/9(16),=RZ4HZW/9/M(16),=UA0AGA/9/P(16),=UA0KBA/9(16), + =UA3WB/9(16),=UA4LCQ/9(16),=UA9SIV/9(16),=UB5O/4(16),=UB9JBN/9/M(16),=UE1RFF/9(16),=UE25ST(16), =UE55OB(16),=UE60TDP(16),=UE60TDP/P(16),=UE9WDA/9/M(16), R8U(18)[31],R8V(18)[31],R9U(18)[31],R9V(18)[31],RA8U(18)[31],RA8V(18)[31],RA9U(18)[31], RA9V(18)[31],RC8U(18)[31],RC8V(18)[31],RC9U(18)[31],RC9V(18)[31],RD8U(18)[31],RD8V(18)[31], @@ -2744,7 +2763,7 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: =RP70KM(18)[31],=RP70NM(18)[31],=RP70UK(18)[31],=RP70ZF(18)[31],=RP71KM(18)[31],=RP72KM(18)[31], =RP72NM(18)[31],=RP73KM(18)[31],=RP73NZ(18)[31],=RP73ZF(18)[31],=RP74KM(18)[31],=RP75KM(18)[31], =RP75YE(18)[31],=RT22UA(18)[31],=RT77VV(18)[31],=RW0CE/9(18)[31],=RW4CG/9(18)[31],=RZ5D/9(18)[31], - =UA9JFE/9/P(18)[31],=UA9MA/M(18)[31],=UA9UAX/M(18)[31],=UE3ATV/9(18)[31], + =UA9JFE/9/P(18)[31],=UA9MA/M(18)[31],=UE3ATV/9(18)[31], R8W(16),R9W(16),RA8W(16),RA9W(16),RC8W(16),RC9W(16),RD8W(16),RD9W(16),RE8W(16),RE9W(16),RF8W(16), RF9W(16),RG8W(16),RG9W(16),RJ8W(16),RJ9W(16),RK8W(16),RK9W(16),RL8W(16),RL9W(16),RM8W(16), RM9W(16),RN8W(16),RN9W(16),RO8W(16),RO9W(16),RQ8W(16),RQ9W(16),RT8W(16),RT9W(16),RU8W(16), @@ -2782,11 +2801,11 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UC9Y(18)[31],UD8Y(18)[31],UD9Y(18)[31],UE8Y(18)[31],UE9Y(18)[31],UF8Y(18)[31],UF9Y(18)[31], UG8Y(18)[31],UG9Y(18)[31],UH8Y(18)[31],UH9Y(18)[31],UI8Y(18)[31],UI9Y(18)[31],=R100KM(18)[31], =R2015RR(18)[31],=R2015SV(18)[31],=R6XBA/9(18)[31],=R9/UN7JHC(18)[31],=R9/UN7JMO(18)[31], - =RA/IK5MIC(18)[31],=RA/IK5MIC/M(18)[31],=RA0CCJ/9(18)[31],=RA50VT(18)[31],=RK1B/9(18)[31], - =RP68BP(18)[31],=RP68TZ(18)[31],=RP70AF(18)[31],=RP70BP(18)[31],=RP70GA(18)[31],=RP71BP(18)[31], - =RP72BP(18)[31],=RP73BP(18)[31],=RP9Y(18)[31],=RP9YAF(18)[31],=RP9YTZ(18)[31],=RT73GM(18)[31], - =RW22WG(18)[31],=RX6AY/9(18)[31],=UA0LLW/9(18)[31],=UA0ZDY/9(18)[31],=UA9UAX/9/P(18)[31], - =UE0ZOO/9(18)[31],=UE44R/9(18)[31],=UE80AL(18)[31], + =R9PS/9(18)[31],=RA/IK5MIC(18)[31],=RA/IK5MIC/M(18)[31],=RA0CCJ/9(18)[31],=RA50VT(18)[31], + =RK1B/9(18)[31],=RP68BP(18)[31],=RP68TZ(18)[31],=RP70AF(18)[31],=RP70BP(18)[31],=RP70GA(18)[31], + =RP71BP(18)[31],=RP72BP(18)[31],=RP73BP(18)[31],=RP9Y(18)[31],=RP9YAF(18)[31],=RP9YTZ(18)[31], + =RT73GM(18)[31],=RW22WG(18)[31],=RX6AY/9(18)[31],=UA0LLW/9(18)[31],=UA0ZDY/9(18)[31], + =UA9UAX/9/P(18)[31],=UA9UAX/M(18)[31],=UE0ZOO/9(18)[31],=UE44R/9(18)[31],=UE80AL(18)[31], R8Z(18)[31],R9Z(18)[31],RA8Z(18)[31],RA9Z(18)[31],RC8Z(18)[31],RC9Z(18)[31],RD8Z(18)[31], RD9Z(18)[31],RE8Z(18)[31],RE9Z(18)[31],RF8Z(18)[31],RF9Z(18)[31],RG8Z(18)[31],RG9Z(18)[31], RJ8Z(18)[31],RJ9Z(18)[31],RK8Z(18)[31],RK9Z(18)[31],RL8Z(18)[31],RL9Z(18)[31],RM8Z(18)[31], @@ -2891,19 +2910,19 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UB0L(19)[34],UB0M(19)[34],UB0N(19)[34],UC0L(19)[34],UC0M(19)[34],UC0N(19)[34],UD0L(19)[34], UD0M(19)[34],UD0N(19)[34],UE0L(19)[34],UE0M(19)[34],UE0N(19)[34],UF0L(19)[34],UF0M(19)[34], UF0N(19)[34],UG0L(19)[34],UG0M(19)[34],UG0N(19)[34],UH0L(19)[34],UH0M(19)[34],UH0N(19)[34], - UI0L(19)[34],UI0M(19)[34],UI0N(19)[34],=R0HQ(19)[34],=R150L(19)[34],=R17CWH(19)[34], - =R20RRC/0(19)[34],=R3BY/0(19)[34],=R3HD/0(19)[34],=R66IOTA(19)[34],=R70LWA(19)[34], - =R8CW/0(19)[34],=R8XW/0(19)[34],=R9MI/0(19)[34],=R9XT/0(19)[34],=RA/IK7YTT(19)[34], - =RA/OK1DWF(19)[34],=RD3BN/0(19)[34],=RL5G/0/P(19)[34],=RM0M(19)[34],=RM0M/LH(19)[34], - =RM5M/0(19)[34],=RN1NS/0(19)[34],=RP0L(19)[34],=RP0LPK(19)[34],=RP60P(19)[34],=RP66V(19)[34], - =RP67SD(19)[34],=RP67V(19)[34],=RP68SD(19)[34],=RP68V(19)[34],=RP69SD(19)[34],=RP69V(19)[34], - =RP70DG(19)[34],=RP70SD(19)[34],=RP70V(19)[34],=RP71DG(19)[34],=RP71SD(19)[34],=RP71V(19)[34], - =RP72DG(19)[34],=RP72SD(19)[34],=RP72V(19)[34],=RP73DG(19)[34],=RP73SD(19)[34],=RP73V(19)[34], - =RP74DG(19)[34],=RP74SD(19)[34],=RP74V(19)[34],=RP75DG(19)[34],=RP75SD(19)[34],=RP75V(19)[34], - =RU3BY/0(19)[34],=RU5D/0(19)[34],=RV1AW/0(19)[34],=RV3DSA/0(19)[34],=RW22GO(19)[34], - =RW3LG/0(19)[34],=RX15RX(19)[34],=RX20NY(19)[34],=UA0SDX/0(19)[34],=UA0SIK/0(19)[34], - =UA3AHA/0(19)[34],=UA4SBZ/0(19)[34],=UA6MF/0(19)[34],=UA7R/0(19)[34],=UB0LAP/P(19)[34], - =UC0LAF/P(19)[34],=UE1RFF/0(19)[34],=UE70MA(19)[34],=UE75L(19)[34], + UI0L(19)[34],UI0M(19)[34],UI0N(19)[34],=R150L(19)[34],=R17CWH(19)[34],=R20RRC/0(19)[34], + =R3BY/0(19)[34],=R3HD/0(19)[34],=R66IOTA(19)[34],=R70LWA(19)[34],=R8CW/0(19)[34],=R8XW/0(19)[34], + =R9MI/0(19)[34],=R9XT/0(19)[34],=RA/IK7YTT(19)[34],=RA/OK1DWF(19)[34],=RD3BN/0(19)[34], + =RL5G/0/P(19)[34],=RM0M(19)[34],=RM0M/LH(19)[34],=RM5M/0(19)[34],=RN1NS/0(19)[34],=RP0L(19)[34], + =RP0LPK(19)[34],=RP60P(19)[34],=RP66V(19)[34],=RP67SD(19)[34],=RP67V(19)[34],=RP68SD(19)[34], + =RP68V(19)[34],=RP69SD(19)[34],=RP69V(19)[34],=RP70DG(19)[34],=RP70SD(19)[34],=RP70V(19)[34], + =RP71DG(19)[34],=RP71SD(19)[34],=RP71V(19)[34],=RP72DG(19)[34],=RP72SD(19)[34],=RP72V(19)[34], + =RP73DG(19)[34],=RP73SD(19)[34],=RP73V(19)[34],=RP74DG(19)[34],=RP74SD(19)[34],=RP74V(19)[34], + =RP75DG(19)[34],=RP75SD(19)[34],=RP75V(19)[34],=RU3BY/0(19)[34],=RU5D/0(19)[34],=RV1AW/0(19)[34], + =RV3DSA/0(19)[34],=RW22GO(19)[34],=RW3LG/0(19)[34],=RX15RX(19)[34],=RX20NY(19)[34], + =UA0SDX/0(19)[34],=UA0SIK/0(19)[34],=UA3AHA/0(19)[34],=UA4SBZ/0(19)[34],=UA6MF/0(19)[34], + =UA7R/0(19)[34],=UB0LAP/P(19)[34],=UC0LAF/P(19)[34],=UE1RFF/0(19)[34],=UE70MA(19)[34], + =UE75L(19)[34], R0O(18)[32],RA0O(18)[32],RC0O(18)[32],RD0O(18)[32],RE0O(18)[32],RF0O(18)[32],RG0O(18)[32], RJ0O(18)[32],RK0O(18)[32],RL0O(18)[32],RM0O(18)[32],RN0O(18)[32],RO0O(18)[32],RQ0O(18)[32], RT0O(18)[32],RU0O(18)[32],RV0O(18)[32],RW0O(18)[32],RX0O(18)[32],RY0O(18)[32],RZ0O(18)[32], @@ -2937,17 +2956,17 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UD0T(18)[32],UE0R(18)[32],UE0S(18)[32],UE0T(18)[32],UF0R(18)[32],UF0S(18)[32],UF0T(18)[32], UG0R(18)[32],UG0S(18)[32],UG0T(18)[32],UH0R(18)[32],UH0S(18)[32],UH0T(18)[32],UI0R(18)[32], UI0S(18)[32],UI0T(18)[32],=R11QRP/9(18)[32],=R150LA(18)[32],=R150LB(18)[32],=R18SWE(18)[32], - =R1BDD/0(18)[32],=R1BDD/0/P(18)[32],=R25ARCK/9(18)[32],=R3RRC/0/MM(18)[32],=R9PS/9(18)[32], - =RA0SP/RP(18)[32],=RA0SR/RP(18)[32],=RA110RAEM(18)[32],=RA3TO/0(18)[32],=RA4CSX/0/P(18)[32], - =RA9JG/0(18)[32],=RA9JG/0/P(18)[32],=RA9OBG/0(18)[32],=RA9USU/8(18)[32],=RD0L/0(18)[32], - =RK17CW(18)[32],=RK9MZZ/0(18)[32],=RN4HIT/0(18)[32],=RP0S(18)[32],=RP0SXR(18)[32],=RP0SZZ(18)[32], - =RP67ST(18)[32],=RP70AB(18)[32],=RP72AB(18)[32],=RP73AB(18)[32],=RP74AB(18)[32],=RP75AB(18)[32], - =RQ0C/9(18)[32],=RV3ACA/0/M(18)[32],=RV6AJ/0(18)[32],=RV7AD/0(18)[32],=RV9JD/0(18)[32], - =RW4YA/0(18)[32],=RW4YA/9(18)[32],=RX3AT/0(18)[32],=RX3DFH/0(18)[32],=RX9WN/0(18)[32], - =RX9WN/0/M(18)[32],=RX9WN/0/P(18)[32],=RZ0SO/P(18)[32],=UA0KBG/0(18)[32],=UA0KBG/9(18)[32], - =UA3EDQ/0(18)[32],=UA3EDQ/0/MM(18)[32],=UA3EDQ/0/P(18)[32],=UA9MBK/0(18)[32],=UA9UAX/0(18)[32], - =UA9WOB/0(18)[32],=UA9WOB/0/P(18)[32],=UE105SBM(18)[32],=UE55IR(18)[32],=UE60SWA(18)[32], - =UE70SVV(18)[32],=UE80IR(18)[32],=UE80SBR(18)[32], + =R1BDD/0(18)[32],=R1BDD/0/P(18)[32],=R25ARCK/9(18)[32],=R3RRC/0/MM(18)[32],=RA0SP/RP(18)[32], + =RA0SR/RP(18)[32],=RA110RAEM(18)[32],=RA3TO/0(18)[32],=RA4CSX/0/P(18)[32],=RA9JG/0(18)[32], + =RA9JG/0/P(18)[32],=RA9OBG/0(18)[32],=RA9USU/8(18)[32],=RD0L/0(18)[32],=RK17CW(18)[32], + =RK9MZZ/0(18)[32],=RN4HIT/0(18)[32],=RP0S(18)[32],=RP0SXR(18)[32],=RP0SZZ(18)[32],=RP67ST(18)[32], + =RP70AB(18)[32],=RP72AB(18)[32],=RP73AB(18)[32],=RP74AB(18)[32],=RP75AB(18)[32],=RQ0C/9(18)[32], + =RV3ACA/0/M(18)[32],=RV6AJ/0(18)[32],=RV7AD/0(18)[32],=RV9JD/0(18)[32],=RW4YA/0(18)[32], + =RW4YA/9(18)[32],=RX3AT/0(18)[32],=RX3DFH/0(18)[32],=RX9WN/0(18)[32],=RX9WN/0/M(18)[32], + =RX9WN/0/P(18)[32],=RZ0SO/P(18)[32],=UA0KBG/0(18)[32],=UA0KBG/9(18)[32],=UA3EDQ/0(18)[32], + =UA3EDQ/0/MM(18)[32],=UA3EDQ/0/P(18)[32],=UA9MBK/0(18)[32],=UA9UAX/0(18)[32],=UA9WOB/0(18)[32], + =UA9WOB/0/P(18)[32],=UE105SBM(18)[32],=UE55IR(18)[32],=UE60SWA(18)[32],=UE70SVV(18)[32], + =UE80IR(18)[32],=UE80SBR(18)[32], R0W(18)[31],RA0W(18)[31],RC0W(18)[31],RD0W(18)[31],RE0W(18)[31],RF0W(18)[31],RG0W(18)[31], RJ0W(18)[31],RK0W(18)[31],RL0W(18)[31],RM0W(18)[31],RN0W(18)[31],RO0W(18)[31],RQ0W(18)[31], RT0W(18)[31],RU0W(18)[31],RV0W(18)[31],RW0W(18)[31],RX0W(18)[31],RY0W(18)[31],RZ0W(18)[31], @@ -3049,7 +3068,7 @@ Marshall Islands: 31: 65: OC: 9.08: -167.33: -12.0: V7: Brunei Darussalam: 28: 54: OC: 4.50: -114.60: -8.0: V8: V8; Canada: 05: 09: NA: 44.35: 78.75: 5.0: VE: - CF,CG,CJ,CK,VA,VB,VC,VE,VG,VX,VY9,XL,XM,=VE2EM/M,=VER20200520, + CF,CG,CJ,CK,VA,VB,VC,VE,VG,VX,VY9,XL,XM,=VE2EM/M,=VER20200803, =CF7AAW/1,=CK7IG/1,=VA3QSL/1,=VA3WR/1,=VE1REC/LH,=VE1REC/M/LH,=VE3RSA/1,=VE7IG/1, CF2[4],CG2[4],CJ2[4],CK2[4],VA2[4],VB2[4],VC2[4],VE2[4],VG2[4],VX2[4],XL2[4],XM2[4],=4Y1CAO[4], =CY2ZT/2[4],=VA3MPM/2[4],=VA7AQ/P[4],=VE2/G3ZAY/P[4],=VE2/M0BLF/P[4],=VE2FK[9],=VE2HAY/P[4], @@ -3244,8 +3263,8 @@ Vanuatu: 32: 56: OC: -17.67: -168.38: -11.0: YJ: Syria: 20: 39: AS: 35.38: -38.20: -2.0: YK: 6C,YK; Latvia: 15: 29: EU: 57.03: -24.65: -2.0: YL: - YL,=YL/LY1CM/LH,=YL0A/LH,=YL0WFF/LH,=YL1A/LH,=YL2AG/ANT,=YL2SW/MM(21),=YL3AD/LGT,=YL3BF/LH, - =YL3BU/LH,=YL3FT/LH,=YL3FT/P/LH,=YL3GED/LH,=YL3JD/LH; + YL,=YL0A/LH,=YL0WFF/LH,=YL1A/LH,=YL2AG/ANT,=YL2SW/MM(21),=YL3AD/LGT,=YL3BF/LH,=YL3BU/LH,=YL3FT/LH, + =YL3FT/P/LH,=YL3GED/LH,=YL3JD/LH; Nicaragua: 07: 11: NA: 12.88: 85.05: 6.0: YN: H6,H7,HT,YN; Romania: 20: 28: EU: 45.78: -24.70: -2.0: YO: From ec623deb9fa5676d3e016fffe20bfb7b58b2a6a7 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 15 Aug 2020 15:57:29 +0100 Subject: [PATCH 388/520] More consistent Tx Next button behaviour --- widgets/mainwindow.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index cbca7272b..4bfe9351a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3742,19 +3742,20 @@ void MainWindow::guiUpdate() m_tuneup=false; //This is not an ATU tuneup bool btx = m_auto && m_WSPR_tx_next; // To Tx, we need m_auto and // scheduled transmit + m_WSPR_tx_next = false; if(btx) { m_ntr=-1; //This says we will have transmitted ui->pbTxNext->setChecked (false); m_bTxTime=true; //Start a WSPR or FST4W Tx sequence } else { -// This will be a WSPR or FST4W Rx sequence. + // This will be a WSPR or FST4W Rx sequence. m_ntr=1; //This says we will have received m_bTxTime=false; //Start a WSPR or FST4W Rx sequence } } } else { -// For all modes other than WSPR and Fst4W + // For all modes other than WSPR and Fst4W m_bTxTime = (t2p >= tx1) and (t2p < tx2); if(m_mode=="Echo") m_bTxTime = m_bTxTime and m_bEchoTxOK; if(m_mode=="FT8" and ui->tx5->currentText().contains("/B ")) { @@ -5756,8 +5757,6 @@ void MainWindow::on_tx6_editingFinished() //tx6 edited void MainWindow::on_RoundRobin_currentTextChanged(QString text) { ui->sbTxPercent->setEnabled (text == tr ("Random")); - m_WSPR_tx_next = false; // cancel any pending Tx to avoid - // undesirable consecutive Tx periods } @@ -8138,7 +8137,6 @@ void MainWindow::on_pbTxNext_clicked(bool b) { if (b && !ui->autoButton->isChecked ()) { - m_WSPR_tx_next = false; // cancel any pending start from schedule ui->autoButton->click (); // make sure Tx is possible } } From dad9199f2411e002dc2acca0a86c68bdc6684594 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 15 Aug 2020 14:31:18 -0400 Subject: [PATCH 389/520] Disable double-clicking on an FST4W decode. It serves no useful purpose. --- widgets/mainwindow.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index cceb990c0..8575f2bd3 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4624,9 +4624,9 @@ void MainWindow::doubleClickOnCall2(Qt::KeyboardModifiers modifiers) void MainWindow::doubleClickOnCall(Qt::KeyboardModifiers modifiers) { QTextCursor cursor; - if(m_mode=="ISCAT") { + if(m_mode=="ISCAT" or m_mode=="FST4W") { MessageBox::information_message (this, - "Double-click not available for ISCAT mode"); + "Double-click not available for ISCAT or FST4W mode"); return; } if(m_decodedText2) { From 6adb7d2249e4703e9b31dcde9e08d93ae629cdb9 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 15 Aug 2020 21:33:16 +0100 Subject: [PATCH 390/520] Non-repo files --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index 9c636d134..80e3c4b27 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ ~* TAGS tags +GPATH +GRTAGS +GTAGS *~ junk* jnq* @@ -9,7 +12,9 @@ jnq* *.mod *.pro.user *.txt +*.bak !**/CMakeLists.txt +__pycache__ cmake-build-debug cmake-build-release CMakeFiles From b9843907116940f658149cdea113155c851dd381 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 15 Aug 2020 23:29:53 +0100 Subject: [PATCH 391/520] Fix PSK Reporter spots of FST4W decodes with power <10 dBm --- widgets/mainwindow.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 059086c67..7040936c1 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3505,9 +3505,8 @@ void MainWindow::readFromStdout() //readFromStdout bool okToPost=(nsec > int(4*m_TRperiod)/5); if(m_mode=="FST4W" and okToPost) { line_read=line_read.left(22) + " CQ " + line_read.trimmed().mid(22); - int n=line_read.trimmed().size(); - line_read=line_read.trimmed().left(n-3); - DecodedText FST4W_post {QString::fromUtf8(line_read.constData())}; + auto p = line_read.lastIndexOf (' '); + DecodedText FST4W_post {QString::fromUtf8 (line_read.left (p).constData ())}; pskPost(FST4W_post); } else { if (stdMsg && okToPost) pskPost(decodedtext); From 491a7b9a05baf7456ec4318170f9fdac6a533427 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 15 Aug 2020 23:32:10 +0100 Subject: [PATCH 392/520] Ensure no connect with, or traffic to, PSK Reporter if not enabled --- Network/PSKReporter.cpp | 12 ++++++++++-- widgets/mainwindow.cpp | 10 ++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Network/PSKReporter.cpp b/Network/PSKReporter.cpp index 59408c284..1776d8143 100644 --- a/Network/PSKReporter.cpp +++ b/Network/PSKReporter.cpp @@ -65,7 +65,6 @@ public: // This timer sets the interval to check for spots to send. connect (&report_timer_, &QTimer::timeout, [this] () {send_report ();}); - report_timer_.start (MIN_SEND_INTERVAL * 1000); // This timer repeats the sending of IPFIX templates and receiver // information if we are using UDP, in case server has been @@ -80,7 +79,6 @@ public: send_receiver_data_ = 3; // three times } }); - descriptor_timer_.start (1 * 60 * 60 * 1000); // hourly } void check_connection () @@ -156,6 +154,15 @@ public: // use this for pseudo connection with UDP, allows us to use // QIODevice::write() instead of QUDPSocket::writeDatagram() socket_->connectToHost (HOST, SERVICE_PORT, QAbstractSocket::WriteOnly); + + if (!report_timer_.isActive ()) + { + report_timer_.start (MIN_SEND_INTERVAL * 1000); + } + if (!descriptor_timer_.isActive ()) + { + descriptor_timer_.start (1 * 60 * 60 * 1000); // hourly + } } void send_report (bool send_residue = false); @@ -490,6 +497,7 @@ void PSKReporter::setLocalStation (QString const& call, QString const& gridSquar bool PSKReporter::addRemoteStation (QString const& call, QString const& grid, Radio::Frequency freq , QString const& mode, int snr) { + m_->check_connection (); if (m_->socket_ && m_->socket_->isValid ()) { if (QAbstractSocket::UnconnectedState == m_->socket_->state ()) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 7040936c1..3f0ded867 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1814,7 +1814,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog on_dxGridEntry_textChanged (m_hisGrid); // recalculate distances in case of units change enable_DXCC_entity (m_config.DXCC ()); // sets text window proportions and (re)inits the logbook - if(m_config.spot_to_psk_reporter ()) pskSetLocal (); + pskSetLocal (); if(m_config.restart_audio_input ()) { Q_EMIT startAudioInputStream (m_config.audio_input_device () @@ -6864,7 +6864,11 @@ void MainWindow::band_changed (Frequency f) } m_lastBand.clear (); m_bandEdited = false; - m_psk_Reporter.sendReport(); // Upload any queued spots before changing band + if (m_config.spot_to_psk_reporter ()) + { + // Upload any queued spots before changing band + m_psk_Reporter.sendReport(); + } if (!m_transmitting) monitor (true); if ("FreqCal" == m_mode) { @@ -7539,6 +7543,8 @@ bool MainWindow::shortList(QString callsign) void MainWindow::pskSetLocal () { + if (!m_config.spot_to_psk_reporter ()) return; + // find the station row, if any, that matches the band we are on auto stations = m_config.stations (); auto matches = stations->match (stations->index (0, StationList::band_column) From 50da40413f29e5122f921f81b4f84c2fa0906db3 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 16 Aug 2020 00:38:19 +0100 Subject: [PATCH 393/520] PSK Reporter connection opened & closed at the correct times --- Network/PSKReporter.cpp | 22 ++++++++++++++++++++-- Network/PSKReporter.hpp | 2 +- widgets/mainwindow.cpp | 11 ++++++++--- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/Network/PSKReporter.cpp b/Network/PSKReporter.cpp index 1776d8143..59c5f2f0a 100644 --- a/Network/PSKReporter.cpp +++ b/Network/PSKReporter.cpp @@ -165,6 +165,16 @@ public: } } + void stop () + { + if (socket_) + { + socket_->disconnectFromHost (); + } + descriptor_timer_.stop (); + report_timer_.stop (); + } + void send_report (bool send_residue = false); void build_preamble (QDataStream&); @@ -484,6 +494,7 @@ void PSKReporter::reconnect () void PSKReporter::setLocalStation (QString const& call, QString const& gridSquare, QString const& antenna) { + m_->check_connection (); if (call != m_->rx_call_ || gridSquare != m_->rx_grid_ || antenna != m_->rx_ant_) { m_->send_receiver_data_ = m_->socket_ @@ -510,7 +521,14 @@ bool PSKReporter::addRemoteStation (QString const& call, QString const& grid, Ra return false; } -void PSKReporter::sendReport () +void PSKReporter::sendReport (bool last) { - m_->send_report (true); + if (m_->socket_ && QAbstractSocket::ConnectedState == m_->socket_->state ()) + { + m_->send_report (true); + } + if (last) + { + m_->stop (); + } } diff --git a/Network/PSKReporter.hpp b/Network/PSKReporter.hpp index 3582b5850..1757e63af 100644 --- a/Network/PSKReporter.hpp +++ b/Network/PSKReporter.hpp @@ -29,7 +29,7 @@ public: // // Flush any pending spots to PSK Reporter // - void sendReport (); + void sendReport (bool last = false); Q_SIGNAL void errorOccurred (QString const& reason); diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 3f0ded867..829fdf1c6 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1801,6 +1801,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog auto callsign = m_config.my_callsign (); auto my_grid = m_config.my_grid (); SpecOp nContest0=m_config.special_op_id(); + auto psk_on = m_config.spot_to_psk_reporter (); if (QDialog::Accepted == m_config.exec ()) { checkMSK144ContestType(); if (m_config.my_callsign () != callsign) { @@ -1815,6 +1816,12 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog enable_DXCC_entity (m_config.DXCC ()); // sets text window proportions and (re)inits the logbook pskSetLocal (); + // this will close the connection to PSKReporter if it has been + // disabled + if (psk_on && !m_config.spot_to_psk_reporter ()) + { + m_psk_Reporter.sendReport (true); + } if(m_config.restart_audio_input ()) { Q_EMIT startAudioInputStream (m_config.audio_input_device () @@ -7238,9 +7245,7 @@ void MainWindow::handle_transceiver_update (Transceiver::TransceiverState const& || !(ui->cbCQTx->isEnabled () && ui->cbCQTx->isVisible () && ui->cbCQTx->isChecked()))) { m_lastDialFreq = m_freqNominal; m_secBandChanged=QDateTime::currentMSecsSinceEpoch()/1000; - if (m_config.spot_to_psk_reporter ()) { - pskSetLocal (); - } + pskSetLocal (); statusChanged(); m_wideGraph->setDialFreq(m_freqNominal / 1.e6); } From 65f994ce90a758906b2a764fb48fb382bb32699d Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 16 Aug 2020 00:55:29 +0100 Subject: [PATCH 394/520] Improved audio stream error handling --- Audio/soundout.cpp | 75 ++++++++++-------- Audio/soundout.h | 2 + Configuration.cpp | 166 +++++++++++++++++++++++++--------------- Modulator/Modulator.cpp | 11 ++- 4 files changed, 162 insertions(+), 92 deletions(-) diff --git a/Audio/soundout.cpp b/Audio/soundout.cpp index 16a515370..40eff6012 100644 --- a/Audio/soundout.cpp +++ b/Audio/soundout.cpp @@ -43,45 +43,60 @@ bool SoundOutput::audioError () const void SoundOutput::setFormat (QAudioDeviceInfo const& device, unsigned channels, int frames_buffered) { - Q_ASSERT (0 < channels && channels < 3); - - m_framesBuffered = frames_buffered; - - QAudioFormat format (device.preferredFormat ()); -// qDebug () << "Preferred audio output format:" << format; - format.setChannelCount (channels); - format.setCodec ("audio/pcm"); - format.setSampleRate (48000); - format.setSampleType (QAudioFormat::SignedInt); - format.setSampleSize (16); - format.setByteOrder (QAudioFormat::Endian (QSysInfo::ByteOrder)); - if (!format.isValid ()) + if (!device.isNull ()) { - Q_EMIT error (tr ("Requested output audio format is not valid.")); + Q_ASSERT (0 < channels && channels < 3); + + m_framesBuffered = frames_buffered; + + QAudioFormat format (device.preferredFormat ()); + // qDebug () << "Preferred audio output format:" << format; + format.setChannelCount (channels); + format.setCodec ("audio/pcm"); + format.setSampleRate (48000); + format.setSampleType (QAudioFormat::SignedInt); + format.setSampleSize (16); + format.setByteOrder (QAudioFormat::Endian (QSysInfo::ByteOrder)); + if (!format.isValid ()) + { + Q_EMIT error (tr ("Requested output audio format is not valid.")); + } + else if (!device.isFormatSupported (format)) + { + Q_EMIT error (tr ("Requested output audio format is not supported on device.")); + } + else + { + // qDebug () << "Selected audio output format:" << format; + + m_stream.reset (new QAudioOutput (device, format)); + audioError (); + m_stream->setVolume (m_volume); + m_stream->setNotifyInterval(100); + error_ = false; + + connect (m_stream.data(), &QAudioOutput::stateChanged, this, &SoundOutput::handleStateChanged); + + // qDebug() << "A" << m_volume << m_stream->notifyInterval(); + } } - else if (!device.isFormatSupported (format)) - { - Q_EMIT error (tr ("Requested output audio format is not supported on device.")); - } - qDebug () << "Selected audio output format:" << format; - - m_stream.reset (new QAudioOutput (device, format)); - audioError (); - m_stream->setVolume (m_volume); - m_stream->setNotifyInterval(100); - - connect (m_stream.data(), &QAudioOutput::stateChanged, this, &SoundOutput::handleStateChanged); - - // qDebug() << "A" << m_volume << m_stream->notifyInterval(); } void SoundOutput::restart (QIODevice * source) { if (!m_stream) { - Q_EMIT error (tr ("No audio output device configured.")); + if (!error_) + { + error_ = true; // only signal error once + Q_EMIT error (tr ("No audio output device configured.")); + } return; } + else + { + error_ = false; + } // we have to set this before every start on the stream because the // Windows implementation seems to forget the buffer size after a @@ -95,7 +110,7 @@ void SoundOutput::restart (QIODevice * source) } m_stream->setCategory ("production"); m_stream->start (source); - //qDebug () << "SoundOut selected buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); + // qDebug () << "SoundOut selected buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); } void SoundOutput::suspend () diff --git a/Audio/soundout.h b/Audio/soundout.h index 2699176f3..c46e1563f 100644 --- a/Audio/soundout.h +++ b/Audio/soundout.h @@ -20,6 +20,7 @@ public: SoundOutput () : m_framesBuffered {0} , m_volume {1.0} + , error_ {false} { } @@ -49,6 +50,7 @@ private: QScopedPointer m_stream; int m_framesBuffered; qreal m_volume; + bool error_; }; #endif diff --git a/Configuration.cpp b/Configuration.cpp index 59be7f867..f72ab5ae9 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -433,9 +433,13 @@ private: void write_settings (); Q_SLOT void lazy_models_load (int); + void find_audio_devices (); + QAudioDeviceInfo find_audio_device (QAudio::Mode, QComboBox *, QString const& device_name); void load_audio_devices (QAudio::Mode, QComboBox *, QAudioDeviceInfo *); void update_audio_channels (QComboBox const *, int, QComboBox *, bool); + void find_tab (QWidget *); + void initialize_models (); bool split_mode () const { @@ -1193,7 +1197,7 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network ui_->highlighting_list_view->setModel (&next_decode_highlighing_model_); enumerate_rigs (); - initialize_models (); + // initialize_models (); transceiver_thread_ = new QThread {this}; transceiver_thread_->start (); @@ -1231,6 +1235,10 @@ void Configuration::impl::lazy_models_load (int current_tab_index) void Configuration::impl::initialize_models () { + { + SettingsGroup g {settings_, "Configuration"}; + find_audio_devices (); + } auto pal = ui_->callsign_line_edit->palette (); if (my_callsign_.isEmpty ()) { @@ -1405,39 +1413,7 @@ void Configuration::impl::read_settings () save_directory_.setPath (settings_->value ("SaveDir", default_save_directory_.absolutePath ()).toString ()); azel_directory_.setPath (settings_->value ("AzElDir", default_azel_directory_.absolutePath ()).toString ()); - { - // - // retrieve audio input device - // - auto saved_name = settings_->value ("SoundInName").toString (); - Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (QAudio::AudioInput)) // available audio input devices - { - if (p.deviceName () == saved_name) - { - audio_input_device_ = p; - break; - } - } - } - - { - // - // retrieve audio output device - // - auto saved_name = settings_->value("SoundOutName").toString(); - Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (QAudio::AudioOutput)) // available audio output devices - { - if (p.deviceName () == saved_name) - { - audio_output_device_ = p; - break; - } - } - } - - // retrieve audio channel info - audio_input_channel_ = AudioDevice::fromString (settings_->value ("AudioInputChannel", "Mono").toString ()); - audio_output_channel_ = AudioDevice::fromString (settings_->value ("AudioOutputChannel", "Mono").toString ()); + find_audio_devices (); type_2_msg_gen_ = settings_->value ("Type2MsgGen", QVariant::fromValue (Configuration::type_2_msg_3_full)).value (); @@ -1540,6 +1516,27 @@ void Configuration::impl::read_settings () pwrBandTuneMemory_ = settings_->value("pwrBandTuneMemory",false).toBool (); } +void Configuration::impl::find_audio_devices () +{ + // + // retrieve audio input device + // + auto saved_name = settings_->value ("SoundInName").toString (); + audio_input_device_ = find_audio_device (QAudio::AudioInput, ui_->sound_input_combo_box, saved_name); + audio_input_channel_ = AudioDevice::fromString (settings_->value ("AudioInputChannel", "Mono").toString ()); + update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); + ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); + + // + // retrieve audio output device + // + saved_name = settings_->value("SoundOutName").toString(); + audio_output_channel_ = AudioDevice::fromString (settings_->value ("AudioOutputChannel", "Mono").toString ()); + audio_output_device_ = find_audio_device (QAudio::AudioOutput, ui_->sound_output_combo_box, saved_name); + update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); + ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); +} + void Configuration::impl::write_settings () { SettingsGroup g {settings_, "Configuration"}; @@ -1634,6 +1631,7 @@ void Configuration::impl::write_settings () settings_->setValue ("pwrBandTuneMemory", pwrBandTuneMemory_); settings_->setValue ("Region", QVariant::fromValue (region_)); settings_->setValue ("AutoGrid", use_dynamic_grid_); + settings_->sync (); } void Configuration::impl::set_rig_invariants () @@ -1765,15 +1763,27 @@ void Configuration::impl::set_rig_invariants () bool Configuration::impl::validate () { - if (ui_->sound_input_combo_box->currentIndex () < 0) + if (ui_->sound_input_combo_box->currentIndex () < 0 + && audio_input_device_.isNull ()) { + find_tab (ui_->sound_input_combo_box); MessageBox::critical_message (this, tr ("Invalid audio input device")); return false; } - if (ui_->sound_output_combo_box->currentIndex () < 0) + if (ui_->sound_input_channel_combo_box->currentIndex () < 0 + && audio_input_device_.isNull ()) { - MessageBox::warning_message (this, tr ("Invalid audio output device")); + find_tab (ui_->sound_input_combo_box); + MessageBox::critical_message (this, tr ("Invalid audio input device")); + return false; + } + + if (ui_->sound_output_combo_box->currentIndex () < 0 + && audio_output_device_.isNull ()) + { + find_tab (ui_->sound_output_combo_box); + MessageBox::information_message (this, tr ("Invalid audio output device")); // don't reject as we can work without an audio output } @@ -1796,16 +1806,7 @@ bool Configuration::impl::validate () if (ui_->rbField_Day->isEnabled () && ui_->rbField_Day->isChecked () && !ui_->Field_Day_Exchange->hasAcceptableInput ()) { - for (auto * parent = ui_->Field_Day_Exchange->parentWidget (); parent; parent = parent->parentWidget ()) - { - auto index = ui_->configuration_tabs->indexOf (parent); - if (index != -1) - { - ui_->configuration_tabs->setCurrentIndex (index); - break; - } - } - ui_->Field_Day_Exchange->setFocus (); + find_tab (ui_->Field_Day_Exchange); MessageBox::critical_message (this, tr ("Invalid Contest Exchange") , tr ("You must input a valid ARRL Field Day exchange")); return false; @@ -1814,16 +1815,7 @@ bool Configuration::impl::validate () if (ui_->rbRTTY_Roundup->isEnabled () && ui_->rbRTTY_Roundup->isChecked () && !ui_->RTTY_Exchange->hasAcceptableInput ()) { - for (auto * parent = ui_->RTTY_Exchange->parentWidget (); parent; parent = parent->parentWidget ()) - { - auto index = ui_->configuration_tabs->indexOf (parent); - if (index != -1) - { - ui_->configuration_tabs->setCurrentIndex (index); - break; - } - } - ui_->RTTY_Exchange->setFocus (); + find_tab (ui_->RTTY_Exchange); MessageBox::critical_message (this, tr ("Invalid Contest Exchange") , tr ("You must input a valid ARRL RTTY Roundup exchange")); return false; @@ -2618,6 +2610,7 @@ void Configuration::impl::transceiver_frequency (Frequency f) current_offset_ = stations_.offset (f); cached_rig_state_.frequency (apply_calibration (f + current_offset_)); + qDebug () << "Configuration::impl::transceiver_frequency: n:" << transceiver_command_number_ + 1 << "f:" << f; Q_EMIT set_transceiver (cached_rig_state_, ++transceiver_command_number_); } @@ -2643,6 +2636,7 @@ void Configuration::impl::transceiver_tx_frequency (Frequency f) cached_rig_state_.tx_frequency (apply_calibration (f + current_tx_offset_)); } + qDebug () << "Configuration::impl::transceiver_tx_frequency: n:" << transceiver_command_number_ + 1 << "f:" << f; Q_EMIT set_transceiver (cached_rig_state_, ++transceiver_command_number_); } } @@ -2651,6 +2645,7 @@ void Configuration::impl::transceiver_mode (MODE m) { cached_rig_state_.online (true); // we want the rig online cached_rig_state_.mode (m); + qDebug () << "Configuration::impl::transceiver_mode: n:" << transceiver_command_number_ + 1 << "m:" << m; Q_EMIT set_transceiver (cached_rig_state_, ++transceiver_command_number_); } @@ -2659,6 +2654,7 @@ void Configuration::impl::transceiver_ptt (bool on) cached_rig_state_.online (true); // we want the rig online set_cached_mode (); cached_rig_state_.ptt (on); + qDebug () << "Configuration::impl::transceiver_ptt: n:" << transceiver_command_number_ + 1 << "on:" << on; Q_EMIT set_transceiver (cached_rig_state_, ++transceiver_command_number_); } @@ -2757,8 +2753,11 @@ void Configuration::impl::close_rig () } } -// load the available audio devices into the selection combo box -void Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * combo_box, QAudioDeviceInfo * device) +// find the audio device that matches the specified name, also +// populate into the selection combo box with any devices we find in +// the search +QAudioDeviceInfo Configuration::impl::find_audio_device (QAudio::Mode mode, QComboBox * combo_box + , QString const& device_name) { using std::copy; using std::back_inserter; @@ -2766,7 +2765,40 @@ void Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * com combo_box->clear (); int current_index = -1; - Q_FOREACH (auto const& p, QAudioDeviceInfo::availableDevices (mode)) + auto const& devices = QAudioDeviceInfo::availableDevices (mode); + Q_FOREACH (auto const& p, devices) + { + // qDebug () << "Audio device: input:" << (QAudio::AudioInput == mode) << "name:" << p.deviceName () << "preferred format:" << p.preferredFormat () << "endians:" << p.supportedByteOrders () << "codecs:" << p.supportedCodecs () << "channels:" << p.supportedChannelCounts () << "rates:" << p.supportedSampleRates () << "sizes:" << p.supportedSampleSizes () << "types:" << p.supportedSampleTypes (); + + // convert supported channel counts into something we can store in the item model + QList channel_counts; + auto scc = p.supportedChannelCounts (); + copy (scc.cbegin (), scc.cend (), back_inserter (channel_counts)); + + combo_box->addItem (p.deviceName (), QVariant::fromValue (audio_info_type {p, channel_counts})); + if (p.deviceName () == device_name) + { + current_index = combo_box->count () - 1; + combo_box->setCurrentIndex (current_index); + return p; + } + } + combo_box->setCurrentIndex (current_index); + return {}; +} + +// load the available audio devices into the selection combo box +void Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * combo_box + , QAudioDeviceInfo * device) +{ + using std::copy; + using std::back_inserter; + + combo_box->clear (); + + int current_index = -1; + auto const& devices = QAudioDeviceInfo::availableDevices (mode); + Q_FOREACH (auto const& p, devices) { // qDebug () << "Audio device: input:" << (QAudio::AudioInput == mode) << "name:" << p.deviceName () << "preferred format:" << p.preferredFormat () << "endians:" << p.supportedByteOrders () << "codecs:" << p.supportedCodecs () << "channels:" << p.supportedChannelCounts () << "rates:" << p.supportedSampleRates () << "sizes:" << p.supportedSampleSizes () << "types:" << p.supportedSampleTypes (); @@ -2814,6 +2846,20 @@ void Configuration::impl::update_audio_channels (QComboBox const * source_combo_ } } +void Configuration::impl::find_tab (QWidget * target) +{ + for (auto * parent = target->parentWidget (); parent; parent = parent->parentWidget ()) + { + auto index = ui_->configuration_tabs->indexOf (parent); + if (index != -1) + { + ui_->configuration_tabs->setCurrentIndex (index); + break; + } + } + target->setFocus (); +} + // load all the supported rig names into the selection combo box void Configuration::impl::enumerate_rigs () { diff --git a/Modulator/Modulator.cpp b/Modulator/Modulator.cpp index e99b21a46..df365c507 100644 --- a/Modulator/Modulator.cpp +++ b/Modulator/Modulator.cpp @@ -105,7 +105,14 @@ void Modulator::start (QString mode, unsigned symbolsLength, double framesPerSym // qDebug() << "delay_ms:" << delay_ms << "mstr:" << mstr << "m_silentFrames:" << m_silentFrames << "m_ic:" << m_ic << "m_state:" << m_state; m_stream = stream; - if (m_stream) m_stream->restart (this); + if (m_stream) + { + m_stream->restart (this); + } + else + { + qDebug () << "Modulator::start: no audio output stream assigned"; + } } void Modulator::tune (bool newState) @@ -142,7 +149,7 @@ void Modulator::close () qint64 Modulator::readData (char * data, qint64 maxSize) { - //qDebug () << "readData: maxSize:" << maxSize; + // qDebug () << "readData: maxSize:" << maxSize; double toneFrequency=1500.0; if(m_nsps==6) { From 536e6568a62d30f761704924c7166ed7d28d128e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 16 Aug 2020 02:34:18 +0100 Subject: [PATCH 395/520] FST4* messages do not need padding out to 37 characters --- widgets/mainwindow.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 829fdf1c6..c50010c66 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3294,7 +3294,8 @@ void MainWindow::readFromStdout() //readFromStdout line_read = line_read.left (64); } } - if(m_mode!="FT8" and m_mode!="FT4") { + if (m_mode!="FT8" and m_mode!="FT4" + && !m_mode.startsWith ("FST4")) { //Pad 22-char msg to at least 37 chars line_read = line_read.left(44) + " " + line_read.mid(44); } From 7bf086dc5369d1d2fe64af8314cefd39ae63c2e4 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 16 Aug 2020 02:56:48 +0100 Subject: [PATCH 396/520] Updated ADIF band bounds --- models/Bands.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/Bands.cpp b/models/Bands.cpp index 832c36185..f8d7872f2 100644 --- a/models/Bands.cpp +++ b/models/Bands.cpp @@ -15,14 +15,14 @@ namespace Radio::Frequency lower_bound_; Radio::Frequency upper_bound_; } constexpr ADIF_bands[] = { - {"2190m", 136000u, 137000u}, + {"2190m", 135700u, 137800u}, {"630m", 472000u, 479000u}, {"560m", 501000u, 504000u}, {"160m", 1800000u, 2000000u}, {"80m", 3500000u, 4000000u}, {"60m", 5060000u, 5450000u}, {"40m", 7000000u, 7300000u}, - {"30m", 10000000u, 10150000u}, + {"30m", 10100000u, 10150000u}, {"20m", 14000000u, 14350000u}, {"17m", 18068000u, 18168000u}, {"15m", 21000000u, 21450000u}, From 1b36183057c0c73084da5f90e886bbc4c5d67fa3 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 16 Aug 2020 03:01:16 +0100 Subject: [PATCH 397/520] Reduce debug message length --- main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.cpp b/main.cpp index c167a0396..a3cb166a4 100644 --- a/main.cpp +++ b/main.cpp @@ -97,7 +97,7 @@ namespace int main(int argc, char *argv[]) { // ### Add timestamps to all debug messages - qSetMessagePattern ("[%{time yyyyMMdd HH:mm:ss.zzz t} %{if-debug}D%{endif}%{if-info}I%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}] %{message}"); + // qSetMessagePattern ("[%{time yyyyMMdd HH:mm:ss.zzz t} %{if-debug}D%{endif}%{if-info}I%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}] %{message}"); init_random_seed (); From 549198566b2b1a7a291de115e5aaeb0b6162af56 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 16 Aug 2020 18:06:26 +0100 Subject: [PATCH 398/520] Linux package dependency updates --- CMakeLists.txt | 4 ++-- doc/user_guide/en/install-linux.adoc | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index be835a24d..d414b0db1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1854,11 +1854,11 @@ endif () set (CPACK_DEBIAN_PACKAGE_DESCRIPTION "${PROJECT_DESCRIPTION}") set (CPACK_DEBIAN_PACKAGE_HOMEPAGE "${PROJECT_HOMEPAGE}") -set (CPACK_DEBIAN_PACKAGE_DEPENDS "libgfortran4 (>=7.3.0), libfftw3-single3 (>=3.3.7), libgomp1 (>8), libqt5serialport5 (>=5.9.5), libqt5multimedia5-plugins (>=5.9.5), libqt5widgets5 (>=5.9.5), libqt5network5 (>=5.9.5), libqt5printsupport5 (>=5.9.5), libqt5sql5-sqlite (>=5.9.5), libusb-1.0-0 (>=1.0.21)") +set (CPACK_DEBIAN_PACKAGE_DEPENDS "libgfortran5 (>=10), libfftw3-single3 (>=3.3.8), libgomp1 (>=10), libqt5serialport5 (>=5.12.8), libqt5multimedia5-plugins (>=5.12.8), libqt5widgets5 (>=5.12.8), libqt5network5 (>=5.12.8), libqt5printsupport5 (>=5.12.8), libqt5sql5-sqlite (>=5.12.8), libusb-1.0-0 (>=1.0.23)") set (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) set (CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) -set (CPACK_RPM_PACKAGE_REQUIRES "qt5-qtbase >= 5.6, qt5-qtserialport >= 5.6, qt5-qtmultimedia >= 5.6, qt5-qtsvg >= 5.6, libusbx >= 1.0.23, libgfortran >= 4.7, fftw-libs-double > 3.3.8, fftw-libs-single > 3.3.8") +set (CPACK_RPM_PACKAGE_REQUIRES "qt5-qtbase >= 5.13.2, qt5-qtserialport >= 5.13.2, qt5-qtmultimedia >= 5.13.2, qt5-qtsvg >= 5.13.2, libusbx >= 1.0.23, libgfortran >= 10.0.1, fftw-libs-double > 3.3.8, fftw-libs-single > 3.3.8") set (CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION /usr/share/pixmaps /usr/share/applications /usr/share/man /usr/share/man1) configure_file ("${PROJECT_SOURCE_DIR}/CMakeCPackOptions.cmake.in" diff --git a/doc/user_guide/en/install-linux.adoc b/doc/user_guide/en/install-linux.adoc index b3075d66a..c4b6ab155 100644 --- a/doc/user_guide/en/install-linux.adoc +++ b/doc/user_guide/en/install-linux.adoc @@ -43,7 +43,9 @@ sudo dpkg -P wsjtx You may also need to execute the following command in a terminal: [example] -sudo apt install libqt5multimedia5-plugins libqt5serialport5 libqt5sql5-sqlite libfftw3-single3 +sudo apt install libgfortran5 libqt5widgets5 libqt5network5 \ + libqt5printsupport5 libqt5multimedia5-plugins libqt5serialport5 \ + libqt5sql5-sqlite libfftw3-single3 libgomp1 libusb-1.0-0 Fedora, CentOS, Red Hat, and other rpm-based systems: @@ -72,4 +74,6 @@ sudo rpm -e wsjtx You may also need to execute the following command in a terminal: [example] -sudo dnf install fftw-libs-single qt5-qtmultimedia qt5-qtserialport +sudo dnf install libgfortran fftw-libs-single qt5-qtbase \ + qt5-qtmultimedia qt5-qtserialport fftw-libs-double \ + qt5-qtsvg qt5-qtserialport libgomp1 libusbx From fb7af6c696a9445f81ea8841ebbdf36ce3d64fc8 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 16 Aug 2020 19:11:51 +0100 Subject: [PATCH 399/520] Further Linux dependency and install documentation updates --- CMakeLists.txt | 2 +- doc/user_guide/en/install-linux.adoc | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d414b0db1..87d0cb227 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1858,7 +1858,7 @@ set (CPACK_DEBIAN_PACKAGE_DEPENDS "libgfortran5 (>=10), libfftw3-single3 (>=3.3. set (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) set (CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) -set (CPACK_RPM_PACKAGE_REQUIRES "qt5-qtbase >= 5.13.2, qt5-qtserialport >= 5.13.2, qt5-qtmultimedia >= 5.13.2, qt5-qtsvg >= 5.13.2, libusbx >= 1.0.23, libgfortran >= 10.0.1, fftw-libs-double > 3.3.8, fftw-libs-single > 3.3.8") +set (CPACK_RPM_PACKAGE_REQUIRES "qt5-qtbase >= 5.13.2, qt5-qtserialport >= 5.13.2, qt5-qtmultimedia >= 5.13.2, qt5-qtsvg >= 5.13.2, libusbx >= 1.0.23, libgfortran >= 10.0.1, libgomp >= 10.0.1, fftw-libs-double > 3.3.8, fftw-libs-single > 3.3.8") set (CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION /usr/share/pixmaps /usr/share/applications /usr/share/man /usr/share/man1) configure_file ("${PROJECT_SOURCE_DIR}/CMakeCPackOptions.cmake.in" diff --git a/doc/user_guide/en/install-linux.adoc b/doc/user_guide/en/install-linux.adoc index c4b6ab155..0df12e5f5 100644 --- a/doc/user_guide/en/install-linux.adoc +++ b/doc/user_guide/en/install-linux.adoc @@ -43,9 +43,11 @@ sudo dpkg -P wsjtx You may also need to execute the following command in a terminal: [example] +.... sudo apt install libgfortran5 libqt5widgets5 libqt5network5 \ libqt5printsupport5 libqt5multimedia5-plugins libqt5serialport5 \ libqt5sql5-sqlite libfftw3-single3 libgomp1 libusb-1.0-0 +.... Fedora, CentOS, Red Hat, and other rpm-based systems: @@ -74,6 +76,8 @@ sudo rpm -e wsjtx You may also need to execute the following command in a terminal: [example] +.... sudo dnf install libgfortran fftw-libs-single qt5-qtbase \ qt5-qtmultimedia qt5-qtserialport fftw-libs-double \ - qt5-qtsvg qt5-qtserialport libgomp1 libusbx + qt5-qtsvg qt5-qtserialport libgomp libusbx +.... From 3d45e1128abbcce8740ba527fbd8a16886fa2b08 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 16 Aug 2020 19:50:34 +0100 Subject: [PATCH 400/520] Further Linux depedency and User Guide updates --- CMakeLists.txt | 4 ++-- doc/user_guide/en/install-linux.adoc | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 87d0cb227..01ec7727e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -888,7 +888,7 @@ find_package (OpenMP) # # fftw3 single precision library # -find_package (FFTW3 COMPONENTS double single threads REQUIRED) +find_package (FFTW3 COMPONENTS single threads REQUIRED) # # libhamlib setup @@ -1858,7 +1858,7 @@ set (CPACK_DEBIAN_PACKAGE_DEPENDS "libgfortran5 (>=10), libfftw3-single3 (>=3.3. set (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) set (CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) -set (CPACK_RPM_PACKAGE_REQUIRES "qt5-qtbase >= 5.13.2, qt5-qtserialport >= 5.13.2, qt5-qtmultimedia >= 5.13.2, qt5-qtsvg >= 5.13.2, libusbx >= 1.0.23, libgfortran >= 10.0.1, libgomp >= 10.0.1, fftw-libs-double > 3.3.8, fftw-libs-single > 3.3.8") +set (CPACK_RPM_PACKAGE_REQUIRES "qt5-qtbase >= 5.13.2, qt5-qtserialport >= 5.13.2, qt5-qtmultimedia >= 5.13.2, qt5-qtsvg >= 5.13.2, libusbx >= 1.0.23, libgfortran >= 10.0.1, libgomp >= 10.0.1, fftw-libs-single >= 3.3.8") set (CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION /usr/share/pixmaps /usr/share/applications /usr/share/man /usr/share/man1) configure_file ("${PROJECT_SOURCE_DIR}/CMakeCPackOptions.cmake.in" diff --git a/doc/user_guide/en/install-linux.adoc b/doc/user_guide/en/install-linux.adoc index 0df12e5f5..ad905f32d 100644 --- a/doc/user_guide/en/install-linux.adoc +++ b/doc/user_guide/en/install-linux.adoc @@ -78,6 +78,6 @@ You may also need to execute the following command in a terminal: [example] .... sudo dnf install libgfortran fftw-libs-single qt5-qtbase \ - qt5-qtmultimedia qt5-qtserialport fftw-libs-double \ - qt5-qtsvg qt5-qtserialport libgomp libusbx + qt5-qtmultimedia qt5-qtserialport qt5-qtsvg \ + qt5-qtserialport libgomp libusbx .... From 2cd679f71cafd3a01849f384109f7b4c6a8f5dd2 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 17 Aug 2020 01:48:26 +0100 Subject: [PATCH 401/520] Fix broken CAT initialization --- Configuration.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Configuration.cpp b/Configuration.cpp index f72ab5ae9..1f94b83e8 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -1197,7 +1197,7 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network ui_->highlighting_list_view->setModel (&next_decode_highlighing_model_); enumerate_rigs (); - // initialize_models (); + initialize_models (); transceiver_thread_ = new QThread {this}; transceiver_thread_->start (); From b1c53bc33274c7ef200256c3d9f66d6f0985186c Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 17 Aug 2020 01:52:47 +0100 Subject: [PATCH 402/520] Fix a cosmetic FT6 DXpedition mode Hound issue that causes an assert --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index c50010c66..712e29d38 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -6160,7 +6160,7 @@ void MainWindow::on_actionFT8_triggered() ui->cbAutoSeq->setEnabled(false); ui->tabWidget->setCurrentIndex(0); ui->cbHoldTxFreq->setChecked(true); - displayWidgets(nWidgets("11101000010011000001000000000011000")); + displayWidgets(nWidgets("1110100001001100000100000000001100")); ui->labDXped->setText(tr ("Hound")); ui->txrb1->setChecked(true); ui->txrb2->setEnabled(false); From d1860df1905ae7ee527a3f843eb52cf9886ba0d8 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 18 Aug 2020 12:47:17 +0100 Subject: [PATCH 403/520] Only send local station info to PSK Reporter when necessary Remove unneeded debug trace messages. --- Network/PSKReporter.cpp | 17 ++--------------- widgets/mainwindow.cpp | 1 - 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/Network/PSKReporter.cpp b/Network/PSKReporter.cpp index 59c5f2f0a..fcdebf2c5 100644 --- a/Network/PSKReporter.cpp +++ b/Network/PSKReporter.cpp @@ -21,7 +21,6 @@ #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) #include #endif -#include #include "Configuration.hpp" #include "pimpl_impl.hpp" @@ -95,11 +94,11 @@ public: // handle re-opening asynchronously auto connection = QSharedPointer::create (); *connection = connect (socket_.data (), &QAbstractSocket::disconnected, [this, connection] () { - qDebug () << "PSKReporter::impl::check_connection: disconnected, socket state:" << socket_->state (); disconnect (*connection); check_connection (); }); // close gracefully + send_report (true); socket_->close (); } else @@ -122,7 +121,6 @@ public: default: spots_.clear (); - qDebug () << "PSKReporter::impl::handle_socket_error:" << socket_->errorString (); Q_EMIT self_->errorOccurred (socket_->errorString ()); break; } @@ -268,7 +266,6 @@ void PSKReporter::impl::build_preamble (QDataStream& message) << ++sequence_number_ // Sequence Number << observation_id_; // Observation Domain ID - // qDebug () << "PSKReporter::impl::build_preamble: send_descriptors_:" << send_descriptors_; if (send_descriptors_) { --send_descriptors_; @@ -333,7 +330,6 @@ void PSKReporter::impl::build_preamble (QDataStream& message) } } - // qDebug () << "PSKReporter::impl::build_preamble: send_receiver_data_:" << send_receiver_data_; // if (send_receiver_data_) { // --send_receiver_data_; @@ -361,8 +357,6 @@ void PSKReporter::impl::build_preamble (QDataStream& message) void PSKReporter::impl::send_report (bool send_residue) { - check_connection (); - // qDebug () << "PSKReporter::impl::send_report: send_residue:" << send_residue; if (QAbstractSocket::ConnectedState != socket_->state ()) return; QDataStream message {&payload_, QIODevice::WriteOnly | QIODevice::Append}; @@ -370,13 +364,11 @@ void PSKReporter::impl::send_report (bool send_residue) if (!payload_.size ()) { - // qDebug () << "PSKReporter::impl::send_report: building header"; // Build header, optional descriptors, and receiver information build_preamble (message); } auto flush = flushing () || send_residue; - // qDebug () << "PSKReporter::impl::send_report: flush:" << flush; while (spots_.size () || flush) { if (!payload_.size ()) @@ -391,7 +383,6 @@ void PSKReporter::impl::send_report (bool send_residue) tx_out << quint16 (0x50e3) // Template ID << quint16 (0u); // Length (place-holder) - // qDebug () << "PSKReporter::impl::send_report: set data set header"; } // insert any residue @@ -399,7 +390,6 @@ void PSKReporter::impl::send_report (bool send_residue) { tx_out.writeRawData (tx_residue_.constData (), tx_residue_.size ()); tx_residue_.clear (); - // qDebug () << "PSKReporter::impl::send_report: inserted data residue"; } while (spots_.size () || flush) @@ -408,7 +398,6 @@ void PSKReporter::impl::send_report (bool send_residue) if (spots_.size ()) { auto const& spot = spots_.dequeue (); - // qDebug () << "PSKReporter::impl::send_report: processing spotted call:" << spot.call_; // Sender information writeUtfString (tx_out, spot.call_); @@ -440,7 +429,6 @@ void PSKReporter::impl::send_report (bool send_residue) if (len <= MAX_PAYLOAD_LENGTH) { tx_data_size = tx_data_.size (); - // qDebug () << "PSKReporter::impl::send_report: sending short payload:" << tx_data_size; } QByteArray tx {tx_data_.left (tx_data_size)}; QDataStream out {&tx, QIODevice::WriteOnly | QIODevice::Append}; @@ -462,7 +450,6 @@ void PSKReporter::impl::send_report (bool send_residue) // Send data to PSK Reporter site socket_->write (payload_); // TODO: handle errors - // qDebug () << "PSKReporter::impl::send_report: sent payload:" << payload_.size () << "observation id:" << observation_id_; flush = false; // break loop message.device ()->seek (0u); payload_.clear (); // Fresh message @@ -470,7 +457,6 @@ void PSKReporter::impl::send_report (bool send_residue) tx_residue_ = tx_data_.right (tx_data_.size () - tx_data_size); tx_out.device ()->seek (0u); tx_data_.clear (); - // qDebug () << "PSKReporter::impl::send_report: payload sent residue length:" << tx_residue_.size (); break; } } @@ -523,6 +509,7 @@ bool PSKReporter::addRemoteStation (QString const& call, QString const& grid, Ra void PSKReporter::sendReport (bool last) { + m_->check_connection (); if (m_->socket_ && QAbstractSocket::ConnectedState == m_->socket_->state ()) { m_->send_report (true); diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 712e29d38..a34d35082 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3624,7 +3624,6 @@ void MainWindow::pskPost (DecodedText const& decodedtext) } int snr = decodedtext.snr(); Frequency frequency = m_freqNominal + audioFrequency; - pskSetLocal (); if(grid.contains (grid_regexp)) { // qDebug() << "To PSKreporter:" << deCall << grid << frequency << msgmode << snr; if (!m_psk_Reporter.addRemoteStation (deCall, grid, frequency, msgmode, snr)) From b37e419fc7c76f3662565b38d3d635f13fddeb73 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 19 Aug 2020 12:32:27 +0100 Subject: [PATCH 404/520] Qt 5.15 compatibility --- Network/MessageClient.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Network/MessageClient.cpp b/Network/MessageClient.cpp index 1d571a5dd..3c208fd3f 100644 --- a/Network/MessageClient.cpp +++ b/Network/MessageClient.cpp @@ -190,7 +190,13 @@ void MessageClient::impl::parse_message (QByteArray const& msg) quint8 modifiers {0}; in >> time >> snr >> delta_time >> delta_frequency >> mode >> message >> low_confidence >> modifiers; - TRACE_UDP ("Reply: time:" << time << "snr:" << snr << "dt:" << delta_time << "df:" << delta_frequency << "mode:" << mode << "message:" << message << "low confidence:" << low_confidence << "modifiers: 0x" << hex << modifiers); + TRACE_UDP ("Reply: time:" << time << "snr:" << snr << "dt:" << delta_time << "df:" << delta_frequency << "mode:" << mode << "message:" << message << "low confidence:" << low_confidence << "modifiers: 0x" +#if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) + << Qt::hex +#else + << hex +#endif + << modifiers); if (check_status (in) != Fail) { Q_EMIT self_->reply (time, snr, delta_time, delta_frequency From 49366d0455a78f8be7b1c16569c04d53e6e264a1 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 22 Aug 2020 02:40:33 +0100 Subject: [PATCH 405/520] CMake 3.17 compatibility --- CMake/Modules/FindFFTW3.cmake | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CMake/Modules/FindFFTW3.cmake b/CMake/Modules/FindFFTW3.cmake index 10349cb69..3bcfd88c3 100644 --- a/CMake/Modules/FindFFTW3.cmake +++ b/CMake/Modules/FindFFTW3.cmake @@ -34,6 +34,12 @@ # # $Id: FindFFTW3.cmake 15918 2010-06-25 11:12:42Z loose $ +# Compatibily with old style MinGW packages with no .dll.a files +# needed since CMake v3.17 because of fix for #20019 +if (MINGW) + set (CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a" ".lib") +endif () + # Use double precision by default. if (FFTW3_FIND_COMPONENTS MATCHES "^$") set (_components double) @@ -75,7 +81,7 @@ set (_check_list) foreach (_lib ${_libraries}) string (TOUPPER ${_lib} _LIB) find_library (${_LIB}_LIBRARY NAMES ${_lib} ${_lib}-3 - HINTS ${FFTW3_ROOT_DIR} PATH_SUFFIXES lib) + PATH_SUFFIXES lib) mark_as_advanced (${_LIB}_LIBRARY) list (APPEND FFTW3_LIBRARIES ${${_LIB}_LIBRARY}) list (APPEND _check_list ${_LIB}_LIBRARY) From f00f9bbeb9be1715f7366b6e1eadac2cce0a44c3 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 22 Aug 2020 11:57:44 +0100 Subject: [PATCH 406/520] Revert "CMake 3.17 compatibility" This reverts commit 49366d0455a78f8be7b1c16569c04d53e6e264a1. --- CMake/Modules/FindFFTW3.cmake | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/CMake/Modules/FindFFTW3.cmake b/CMake/Modules/FindFFTW3.cmake index 3bcfd88c3..10349cb69 100644 --- a/CMake/Modules/FindFFTW3.cmake +++ b/CMake/Modules/FindFFTW3.cmake @@ -34,12 +34,6 @@ # # $Id: FindFFTW3.cmake 15918 2010-06-25 11:12:42Z loose $ -# Compatibily with old style MinGW packages with no .dll.a files -# needed since CMake v3.17 because of fix for #20019 -if (MINGW) - set (CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a" ".lib") -endif () - # Use double precision by default. if (FFTW3_FIND_COMPONENTS MATCHES "^$") set (_components double) @@ -81,7 +75,7 @@ set (_check_list) foreach (_lib ${_libraries}) string (TOUPPER ${_lib} _LIB) find_library (${_LIB}_LIBRARY NAMES ${_lib} ${_lib}-3 - PATH_SUFFIXES lib) + HINTS ${FFTW3_ROOT_DIR} PATH_SUFFIXES lib) mark_as_advanced (${_LIB}_LIBRARY) list (APPEND FFTW3_LIBRARIES ${${_LIB}_LIBRARY}) list (APPEND _check_list ${_LIB}_LIBRARY) From d5222394923912929e7130939e14b67ad66bfc22 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 22 Aug 2020 11:58:39 +0100 Subject: [PATCH 407/520] CMake v3.17 compatability --- CMake/Modules/FindFFTW3.cmake | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CMake/Modules/FindFFTW3.cmake b/CMake/Modules/FindFFTW3.cmake index 10349cb69..999c2ffe3 100644 --- a/CMake/Modules/FindFFTW3.cmake +++ b/CMake/Modules/FindFFTW3.cmake @@ -34,6 +34,12 @@ # # $Id: FindFFTW3.cmake 15918 2010-06-25 11:12:42Z loose $ +# Compatibily with old style MinGW packages with no .dll.a files +# needed since CMake v3.17 because of fix for #20019 +if (MINGW) + set (CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a" ".lib") +endif () + # Use double precision by default. if (FFTW3_FIND_COMPONENTS MATCHES "^$") set (_components double) From d1fa08ab78b07c940ba1afe897b2e2697b802f6a Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 22 Aug 2020 18:09:51 +0100 Subject: [PATCH 408/520] Handle 24hr wrap of QAudioInput::elapsedUSecs() on Linux & Windows --- Audio/soundin.cpp | 18 +++++++++++++----- Audio/soundin.h | 3 ++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index ad9e43444..7dc940406 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -1,5 +1,7 @@ #include "soundin.h" +#include +#include #include #include #include @@ -166,15 +168,21 @@ void SoundInput::reset (bool report_dropped_frames) { if (m_stream) { - if (cummulative_lost_usec_ >= 0 // don't report first time as we - // don't yet known latency - && report_dropped_frames) + auto elapsed_usecs = m_stream->elapsedUSecs (); + while (std::abs (elapsed_usecs - m_stream->processedUSecs ()) + > 24 * 60 * 60 * 500000ll) // half day { - auto lost_usec = m_stream->elapsedUSecs () - m_stream->processedUSecs () - cummulative_lost_usec_; + // QAudioInput::elapsedUSecs() wraps after 24 hours + elapsed_usecs += 24 * 60 * 60 * 1000000ll; + } + // don't report first time as we don't yet known latency + if (cummulative_lost_usec_ != std::numeric_limits::min () && report_dropped_frames) + { + auto lost_usec = elapsed_usecs - m_stream->processedUSecs () - cummulative_lost_usec_; Q_EMIT dropped_frames (m_stream->format ().framesForDuration (lost_usec), lost_usec); //qDebug () << "SoundInput::reset: frames dropped:" << m_stream->format ().framesForDuration (lost_usec) << "sec:" << lost_usec / 1.e6; } - cummulative_lost_usec_ = m_stream->elapsedUSecs () - m_stream->processedUSecs (); + cummulative_lost_usec_ = elapsed_usecs - m_stream->processedUSecs (); } } diff --git a/Audio/soundin.h b/Audio/soundin.h index 7e2c71d39..a126fbbd1 100644 --- a/Audio/soundin.h +++ b/Audio/soundin.h @@ -2,6 +2,7 @@ #ifndef SOUNDIN_H__ #define SOUNDIN_H__ +#include #include #include #include @@ -24,7 +25,7 @@ public: SoundInput (QObject * parent = nullptr) : QObject {parent} , m_sink {nullptr} - , cummulative_lost_usec_ {0} + , cummulative_lost_usec_ {std::numeric_limits::min ()} { } From 3a711840409d7821d12112401474eed69e6083ab Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 22 Aug 2020 18:12:12 +0100 Subject: [PATCH 409/520] Include period start time in dropped samples message box details --- widgets/mainwindow.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index a34d35082..6a9d63fed 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -480,10 +480,14 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, } if (dropped_frames > 48000) // 1 second { + auto period = qt_truncate_date_time_to (QDateTime::currentDateTimeUtc ().addMSecs (-m_TRperiod / 2.), m_TRperiod * 1e3); MessageBox::warning_message (this , tr ("Audio Source") , tr ("Reduce system load") - , tr ("Excessive dropped samples - %1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6, 5, 'f', 3)); + , tr ("Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3") + .arg (dropped_frames) + .arg (usec / 1.e6, 5, 'f', 3) + .arg (period.toString ("hh:mm:ss"))); } }); connect (&m_audioThread, &QThread::finished, m_soundInput, &QObject::deleteLater); From 718d6d172446402768495403529945f2951187b6 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 22 Aug 2020 18:14:14 +0100 Subject: [PATCH 410/520] Lazy enumeration of audio devices to minimize delays on Linux --- Configuration.cpp | 60 +++++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 25 deletions(-) diff --git a/Configuration.cpp b/Configuration.cpp index 1f94b83e8..6633d35fb 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -1522,19 +1522,25 @@ void Configuration::impl::find_audio_devices () // retrieve audio input device // auto saved_name = settings_->value ("SoundInName").toString (); - audio_input_device_ = find_audio_device (QAudio::AudioInput, ui_->sound_input_combo_box, saved_name); - audio_input_channel_ = AudioDevice::fromString (settings_->value ("AudioInputChannel", "Mono").toString ()); - update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); - ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); + if (audio_input_device_.deviceName () != saved_name) + { + audio_input_device_ = find_audio_device (QAudio::AudioInput, ui_->sound_input_combo_box, saved_name); + audio_input_channel_ = AudioDevice::fromString (settings_->value ("AudioInputChannel", "Mono").toString ()); + update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); + ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); + } // // retrieve audio output device // saved_name = settings_->value("SoundOutName").toString(); - audio_output_channel_ = AudioDevice::fromString (settings_->value ("AudioOutputChannel", "Mono").toString ()); - audio_output_device_ = find_audio_device (QAudio::AudioOutput, ui_->sound_output_combo_box, saved_name); - update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); - ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); + if (audio_output_device_.deviceName () != saved_name) + { + audio_output_channel_ = AudioDevice::fromString (settings_->value ("AudioOutputChannel", "Mono").toString ()); + audio_output_device_ = find_audio_device (QAudio::AudioOutput, ui_->sound_output_combo_box, saved_name); + update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); + ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); + } } void Configuration::impl::write_settings () @@ -1836,6 +1842,8 @@ int Configuration::impl::exec () rig_changed_ = false; initialize_models (); + lazy_models_load (ui_->configuration_tabs->currentIndex ()); + return QDialog::exec(); } @@ -2762,28 +2770,30 @@ QAudioDeviceInfo Configuration::impl::find_audio_device (QAudio::Mode mode, QCom using std::copy; using std::back_inserter; - combo_box->clear (); - - int current_index = -1; - auto const& devices = QAudioDeviceInfo::availableDevices (mode); - Q_FOREACH (auto const& p, devices) + if (device_name.size ()) { - // qDebug () << "Audio device: input:" << (QAudio::AudioInput == mode) << "name:" << p.deviceName () << "preferred format:" << p.preferredFormat () << "endians:" << p.supportedByteOrders () << "codecs:" << p.supportedCodecs () << "channels:" << p.supportedChannelCounts () << "rates:" << p.supportedSampleRates () << "sizes:" << p.supportedSampleSizes () << "types:" << p.supportedSampleTypes (); + combo_box->clear (); - // convert supported channel counts into something we can store in the item model - QList channel_counts; - auto scc = p.supportedChannelCounts (); - copy (scc.cbegin (), scc.cend (), back_inserter (channel_counts)); - - combo_box->addItem (p.deviceName (), QVariant::fromValue (audio_info_type {p, channel_counts})); - if (p.deviceName () == device_name) + int current_index = -1; + auto const& devices = QAudioDeviceInfo::availableDevices (mode); + Q_FOREACH (auto const& p, devices) { - current_index = combo_box->count () - 1; - combo_box->setCurrentIndex (current_index); - return p; + + // convert supported channel counts into something we can store in the item model + QList channel_counts; + auto scc = p.supportedChannelCounts (); + copy (scc.cbegin (), scc.cend (), back_inserter (channel_counts)); + + combo_box->addItem (p.deviceName (), QVariant::fromValue (audio_info_type {p, channel_counts})); + if (p.deviceName () == device_name) + { + current_index = combo_box->count () - 1; + combo_box->setCurrentIndex (current_index); + return p; + } } + combo_box->setCurrentIndex (current_index); } - combo_box->setCurrentIndex (current_index); return {}; } From 64f29318aa69decd9906e690fa6f29285972038e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 29 Aug 2020 14:04:29 +0100 Subject: [PATCH 411/520] Repair an auto-sequencing defect with UDP Reply message handling --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index a34d35082..fca346bb5 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5170,7 +5170,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie && !m_bDoubleClicked && m_mode!="FT4") { return; } - if(m_config.quick_call()) auto_tx_mode(true); + if(m_config.quick_call() && m_bDoubleClicked) auto_tx_mode(true); m_bDoubleClicked=false; } From 37e05f6074c99cd8131010af5c3117c8f731392a Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Fri, 31 Jul 2020 14:15:49 -0500 Subject: [PATCH 412/520] Set unpk77_success=.false. for messages with i3=0 and n3>6. --- lib/77bit/packjt77.f90 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/77bit/packjt77.f90 b/lib/77bit/packjt77.f90 index cd17e8b47..83d848f1f 100644 --- a/lib/77bit/packjt77.f90 +++ b/lib/77bit/packjt77.f90 @@ -278,6 +278,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) read(c77(72:77),'(2b3)') n3,i3 msg=repeat(' ',37) + if(i3.eq.0 .and. n3.eq.0) then ! 0.0 Free text call unpacktext77(c77(1:71),msg(1:13)) @@ -421,7 +422,10 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) if(.not.unpkg4_success) unpk77_success=.false. msg=trim(call_1)//' '//grid6 endif - + + else if(i3.eq.0 .and. n3.gt.6) then + unpk77_success=.false. + else if(i3.eq.1 .or. i3.eq.2) then ! Type 1 (standard message) or Type 2 ("/P" form for EU VHF contest) read(c77,1000) n28a,ipa,n28b,ipb,ir,igrid4,i3 From cdbe425e565223b853e962eb518c2387886b661e Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sat, 1 Aug 2020 10:58:21 -0500 Subject: [PATCH 413/520] Use squared metric for fst4 - works better on fading channel. --- lib/fst4/get_fst4_bitmetrics.f90 | 2 +- lib/fst4/get_fst4_bitmetrics2.f90 | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/fst4/get_fst4_bitmetrics.f90 b/lib/fst4/get_fst4_bitmetrics.f90 index 76a00dc2e..125777568 100644 --- a/lib/fst4/get_fst4_bitmetrics.f90 +++ b/lib/fst4/get_fst4_bitmetrics.f90 @@ -105,7 +105,7 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,badsync) csum=csum+cs(graymap(ntone),ks+j)*cterm cterm=cterm*conjg(cp(graymap(ntone))) enddo - s2(i)=abs(csum) + s2(i)=abs(csum)**2 enddo ipt=1+(ks-1)*2 if(nsym.eq.1) ibmax=1 diff --git a/lib/fst4/get_fst4_bitmetrics2.f90 b/lib/fst4/get_fst4_bitmetrics2.f90 index da0a6a230..6a669bd4c 100644 --- a/lib/fst4/get_fst4_bitmetrics2.f90 +++ b/lib/fst4/get_fst4_bitmetrics2.f90 @@ -49,21 +49,21 @@ subroutine get_fst4_bitmetrics2(cd,nss,hmod,nsizes,bitmetrics,s4hmod,badsync) i1=(k-1)*NSS csymb=cd(i1:i1+NSS-1) do itone=0,3 - s4(itone,k,1)=abs(sum(csymb*conjg(c1(:,itone)))) - s4(itone,k,2)=abs(sum(csymb( 1:nss/2)*conjg(c1( 1:nss/2,itone)))) + & - abs(sum(csymb(nss/2+1: nss)*conjg(c1(nss/2+1: nss,itone)))) - s4(itone,k,3)=abs(sum(csymb( 1: nss/4)*conjg(c1( 1: nss/4,itone)))) + & - abs(sum(csymb( nss/4+1: nss/2)*conjg(c1( nss/4+1: nss/2,itone)))) + & - abs(sum(csymb( nss/2+1:3*nss/4)*conjg(c1( nss/2+1:3*nss/4,itone)))) + & - abs(sum(csymb(3*nss/4+1: nss)*conjg(c1(3*nss/4+1: nss,itone)))) - s4(itone,k,4)=abs(sum(csymb( 1: nss/8)*conjg(c1( 1: nss/8,itone)))) + & - abs(sum(csymb( nss/8+1: nss/4)*conjg(c1( nss/8+1: nss/4,itone)))) + & - abs(sum(csymb( nss/4+1:3*nss/8)*conjg(c1( nss/4+1:3*nss/8,itone)))) + & - abs(sum(csymb(3*nss/8+1: nss/2)*conjg(c1(3*nss/8+1: nss/2,itone)))) + & - abs(sum(csymb( nss/2+1:5*nss/8)*conjg(c1( nss/2+1:5*nss/8,itone)))) + & - abs(sum(csymb(5*nss/8+1:3*nss/4)*conjg(c1(5*nss/8+1:3*nss/4,itone)))) + & - abs(sum(csymb(3*nss/4+1:7*nss/8)*conjg(c1(3*nss/4+1:7*nss/8,itone)))) + & - abs(sum(csymb(7*nss/8+1: nss)*conjg(c1(7*nss/8+1: nss,itone)))) + s4(itone,k,1)=abs(sum(csymb*conjg(c1(:,itone))))**2 + s4(itone,k,2)=abs(sum(csymb( 1:nss/2)*conjg(c1( 1:nss/2,itone))))**2 + & + abs(sum(csymb(nss/2+1: nss)*conjg(c1(nss/2+1: nss,itone))))**2 + s4(itone,k,3)=abs(sum(csymb( 1: nss/4)*conjg(c1( 1: nss/4,itone))))**2 + & + abs(sum(csymb( nss/4+1: nss/2)*conjg(c1( nss/4+1: nss/2,itone))))**2 + & + abs(sum(csymb( nss/2+1:3*nss/4)*conjg(c1( nss/2+1:3*nss/4,itone))))**2 + & + abs(sum(csymb(3*nss/4+1: nss)*conjg(c1(3*nss/4+1: nss,itone))))**2 + s4(itone,k,4)=abs(sum(csymb( 1: nss/8)*conjg(c1( 1: nss/8,itone))))**2 + & + abs(sum(csymb( nss/8+1: nss/4)*conjg(c1( nss/8+1: nss/4,itone))))**2 + & + abs(sum(csymb( nss/4+1:3*nss/8)*conjg(c1( nss/4+1:3*nss/8,itone))))**2 + & + abs(sum(csymb(3*nss/8+1: nss/2)*conjg(c1(3*nss/8+1: nss/2,itone))))**2 + & + abs(sum(csymb( nss/2+1:5*nss/8)*conjg(c1( nss/2+1:5*nss/8,itone))))**2 + & + abs(sum(csymb(5*nss/8+1:3*nss/4)*conjg(c1(5*nss/8+1:3*nss/4,itone))))**2 + & + abs(sum(csymb(3*nss/4+1:7*nss/8)*conjg(c1(3*nss/4+1:7*nss/8,itone))))**2 + & + abs(sum(csymb(7*nss/8+1: nss)*conjg(c1(7*nss/8+1: nss,itone))))**2 enddo enddo From 9d2bde71805ecbc2ed006e107e5f8dc8e6647100 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 4 Aug 2020 09:15:44 -0500 Subject: [PATCH 414/520] Fix SNR calculation for B,C,D submodes. --- lib/fst4/get_fst4_bitmetrics.f90 | 2 +- lib/fst4/get_fst4_bitmetrics2.f90 | 11 ++++------- lib/fst4_decode.f90 | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/lib/fst4/get_fst4_bitmetrics.f90 b/lib/fst4/get_fst4_bitmetrics.f90 index 125777568..9cf1e2470 100644 --- a/lib/fst4/get_fst4_bitmetrics.f90 +++ b/lib/fst4/get_fst4_bitmetrics.f90 @@ -52,7 +52,7 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,badsync) do itone=0,3 cs(itone,k)=sum(csymb*conjg(c1(:,itone))) enddo - s4(0:3,k)=abs(cs(0:3,k)) + s4(0:3,k)=abs(cs(0:3,k))**2 enddo ! Sync quality check diff --git a/lib/fst4/get_fst4_bitmetrics2.f90 b/lib/fst4/get_fst4_bitmetrics2.f90 index 6a669bd4c..9badef231 100644 --- a/lib/fst4/get_fst4_bitmetrics2.f90 +++ b/lib/fst4/get_fst4_bitmetrics2.f90 @@ -1,4 +1,4 @@ -subroutine get_fst4_bitmetrics2(cd,nss,hmod,nsizes,bitmetrics,s4hmod,badsync) +subroutine get_fst4_bitmetrics2(cd,nss,hmod,nsizes,bitmetrics,s4snr,badsync) include 'fst4_params.f90' complex cd(0:NN*nss-1) @@ -15,7 +15,7 @@ subroutine get_fst4_bitmetrics2(cd,nss,hmod,nsizes,bitmetrics,s4hmod,badsync) logical badsync real bitmetrics(2*NN,4) real s2(0:65535) - real s4(0:3,NN,4),s4hmod(0:3,NN) + real s4(0:3,NN,4),s4snr(0:3,NN) data isyncword1/0,1,3,2,1,0,2,3/ data isyncword2/2,3,1,0,3,2,0,1/ data graymap/0,1,3,2/ @@ -121,11 +121,8 @@ subroutine get_fst4_bitmetrics2(cd,nss,hmod,nsizes,bitmetrics,s4hmod,badsync) call normalizebmet(bitmetrics(:,3),2*NN) call normalizebmet(bitmetrics(:,4),2*NN) -! Return the s4 array corresponding to N=1/hmod. Will be used for SNR calculation - if(hmod.eq.1) s4hmod(:,:)=s4(:,:,1) - if(hmod.eq.2) s4hmod(:,:)=s4(:,:,2) - if(hmod.eq.4) s4hmod(:,:)=s4(:,:,3) - if(hmod.eq.8) s4hmod(:,:)=s4(:,:,4) +! Return the s4 array corresponding to N=1. Will be used for SNR calculation + s4snr(:,:)=s4(:,:,1) return end subroutine get_fst4_bitmetrics2 diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index caf9a4b4f..72041bc3f 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -550,7 +550,7 @@ contains endif xsig=0 do i=1,NN - xsig=xsig+s4(itone(i),i)**2 + xsig=xsig+s4(itone(i),i) enddo arg=600.0*(xsig/base)-1.0 if(arg.gt.0.0) then From b191e0c5ef3a41b6d36db9728d68b343c8056cf7 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 4 Aug 2020 09:15:44 -0500 Subject: [PATCH 415/520] Fix SNR calculation for B,C,D submodes. --- lib/fst4_decode.f90 | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 72041bc3f..d32873c42 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -49,7 +49,7 @@ contains complex, allocatable :: cframe(:) complex, allocatable :: c_bigfft(:) !Complex waveform real llr(240),llra(240),llrb(240),llrc(240),llrd(240) - real candidates(100,4) + real candidates(200,4) real bitmetrics(320,4) real s4(0:3,NN) real minsync @@ -253,6 +253,7 @@ contains call four2a(c_bigfft,nfft1,1,-1,0) !r2c ! call blank2(nfa,nfb,nfft1,c_bigfft,iwave) + nhicoh=0 if(hmod.eq.1) then if(fMHz.lt.2.0) then nsyncoh=8 ! Use N=8 for sync @@ -277,7 +278,7 @@ contains if(hmod.eq.1) then if(ntrperiod.eq.15) minsync=1.15 - if(ntrperiod.gt.15) minsync=1.20 + if(ntrperiod.gt.15) minsync=1.25 elseif(hmod.gt.1) then minsync=1.2 endif @@ -410,7 +411,7 @@ contains ns4=count(hbits(229:244).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) nsync_qual=ns1+ns2+ns3+ns4+ns5 -! if(nsync_qual.lt. 46) cycle !### Value ?? ### + if(nsync_qual.lt. 46) cycle !### Value ?? ### scalefac=2.83 llra( 1: 60)=bitmetrics( 17: 76, 1) llra( 61:120)=bitmetrics( 93:152, 1) @@ -457,7 +458,7 @@ contains if(itry.gt.nblock) then llr=llra if(nblock.gt.1) then - if(hmod.eq.1) llr=llrd + if(hmod.eq.1) llr=llrc if(hmod.eq.2) llr=llrb if(hmod.eq.4) llr=llrc if(hmod.eq.8) llr=llrd @@ -737,7 +738,7 @@ contains complex c_bigfft(0:nfft1/2) !Full length FFT of raw data integer hmod !Modulation index (submode) integer im(1) !For maxloc - real candidates(100,4) !Candidate list + real candidates(200,4) !Candidate list real, allocatable :: s(:) !Low resolution power spectrum real, allocatable :: s2(:) !CCF of s() with 4 tones real xdb(-3:3) !Model 4-tone CCF peaks @@ -794,17 +795,18 @@ contains ! Find candidates, using the CLEAN algorithm to remove a model of each one ! from s2() after it has been found. pval=99.99 - do while(ncand.lt.100) + do while(ncand.lt.200) im=maxloc(s2(ia:ib)) iploc=ia+im(1)-1 !Index of CCF peak pval=s2(iploc) !Peak value if(pval.lt.minsync) exit - do i=-3,+3 !Remove 0.9 of a model CCF at - k=iploc+2*hmod*i !this frequency from s2() - if(k.ge.ia .and. k.le.ib) then - s2(k)=max(0.,s2(k)-0.9*pval*xdb(i)) - endif - enddo +! do i=-3,+3 !Remove 0.9 of a model CCF at +! k=iploc+2*hmod*i !this frequency from s2() +! if(k.ge.ia .and. k.le.ib) then +! s2(k)=max(0.,s2(k)-0.9*pval*xdb(i)) +! endif +! enddo + s2(max(1,iploc-2*hmod*3):min(nnw,iploc+2*hmod*3))=0.0 ncand=ncand+1 candidates(ncand,1)=df2*iploc !Candidate frequency candidates(ncand,2)=pval !Rough estimate of SNR From 8b7db6556cf8d489ff8efcc913d5f6053dd28ce3 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 4 Aug 2020 10:25:09 -0500 Subject: [PATCH 416/520] Changes to the llrs that are used as the basis for AP decoding. --- lib/fst4_decode.f90 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index d32873c42..88572dfb7 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -459,9 +459,9 @@ contains llr=llra if(nblock.gt.1) then if(hmod.eq.1) llr=llrc - if(hmod.eq.2) llr=llrb - if(hmod.eq.4) llr=llrc - if(hmod.eq.8) llr=llrd + if(hmod.eq.2) llr=llra + if(hmod.eq.4) llr=llrb + if(hmod.eq.8) llr=llrc endif iaptype=naptypes(nQSOProgress,itry-nblock) if(lapcqonly) iaptype=1 From 6838a6b4847f017b3bafe1d9540605cee5012949 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 4 Aug 2020 11:56:32 -0500 Subject: [PATCH 417/520] Remove some unneeded code. --- lib/fst4_decode.f90 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 88572dfb7..e56fa27a8 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -149,8 +149,7 @@ contains if(i3.ne.1 .or. (msg.ne.msgsent) .or. .not.unpk77_success) go to 10 read(c77,'(77i1)') message77 message77=mod(message77+rvec,2) - call encode174_91(message77,cw) - apbits=2*cw-1 + apbits(1:77)=2*message77-1 if(nohiscall) apbits(30)=99 10 continue From ade1eb861d4322419a134f79c0d8800d5d166628 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 10 Aug 2020 09:31:44 -0400 Subject: [PATCH 418/520] User Guide edits from Dave, KC3GPM. --- doc/user_guide/en/install-from-source.adoc | 6 +- doc/user_guide/en/install-linux.adoc | 18 +++--- doc/user_guide/en/install-mac.adoc | 8 +-- doc/user_guide/en/introduction.adoc | 10 ++-- doc/user_guide/en/logging.adoc | 24 ++++---- doc/user_guide/en/make-qso.adoc | 8 +-- doc/user_guide/en/measurement_tools.adoc | 66 +++++++++++----------- doc/user_guide/en/protocols.adoc | 21 ++++--- 8 files changed, 84 insertions(+), 77 deletions(-) diff --git a/doc/user_guide/en/install-from-source.adoc b/doc/user_guide/en/install-from-source.adoc index f106aa59b..b70e89c55 100644 --- a/doc/user_guide/en/install-from-source.adoc +++ b/doc/user_guide/en/install-from-source.adoc @@ -1,7 +1,7 @@ -// Status=review +// Status=edited Source code for _WSJT-X_ is available from a public repository at -{devrepo}. To compile the program you will need to install at least the +{devrepo}. To compile the program, at a minimum you must install the following packages: - Git @@ -19,7 +19,7 @@ cd wsjtx git checkout wsjtx-{VERSION} ===== -and for the current development branch, +and for the current development branch: ===== git clone git://git.code.sf.net/p/wsjt/wsjtx diff --git a/doc/user_guide/en/install-linux.adoc b/doc/user_guide/en/install-linux.adoc index ad905f32d..6461ac77e 100644 --- a/doc/user_guide/en/install-linux.adoc +++ b/doc/user_guide/en/install-linux.adoc @@ -1,16 +1,14 @@ -// Status=review +// Status=edited Debian, Ubuntu, and other Debian-based systems including Raspbian: -NOTE: The project team release binary installer packages for Linux -when a new _WSJT-X_ release is announced. These are built to -target one contemporary version of a Linux distribution. Although -these may work on newer Linux versions or even different -distributions, it is unlikely that they will work on older -versions. Check the notes provided with the release for details of the -targeted Linux distributions and versions. If the binary package is -not compatible with your Linux distribution or version you must build -the application from sources. +NOTE: The project team release binary installer packages targeted for +one contemporary version of a Linux distribution. Although these may +work on newer Linux versions or even different distributions, it is +unlikely that they work on older versions. Check the notes provided +with the release for details of the targeted Linux distributions and +versions. If the binary package is not compatible with your Linux +distribution or version, you must build the application from sources. * 32-bit: {debian32} - To install: diff --git a/doc/user_guide/en/install-mac.adoc b/doc/user_guide/en/install-mac.adoc index 26384805f..6595ba1c9 100644 --- a/doc/user_guide/en/install-mac.adoc +++ b/doc/user_guide/en/install-mac.adoc @@ -1,12 +1,12 @@ // These instructions are up-to-date for WSJT-X v2.2 -*OS X 10.12* and later: Download the file {osx} to your desktop, -double-click on it and consult its `ReadMe` file for important +*macOS10.13* and later: Download the file {osx} to your desktop, +double-click it and consult its `ReadMe` file for important installation notes. If you have already installed a previous version, you can retain it by -changing its name in the *Applications* folder (say, from _WSJT-X_ to -_WSJT-X_2.1_). You can then proceed to the installation phase. +changing its name in the *Applications* folder (such as from _WSJT-X_ to +_WSJT-X_2.2_). You can then proceed to the installation phase. Take note also of the following: diff --git a/doc/user_guide/en/introduction.adoc b/doc/user_guide/en/introduction.adoc index a592e5325..f172b5d35 100644 --- a/doc/user_guide/en/introduction.adoc +++ b/doc/user_guide/en/introduction.adoc @@ -4,7 +4,7 @@ _WSJT-X_ is a computer program designed to facilitate basic amateur radio communication using very weak signals. The first four letters in the program name stand for "`**W**eak **S**ignal communication by K1**JT**,`" while the suffix "`-X`" indicates that _WSJT-X_ started as -an e**Xt**ended and e**X**perimental branch of the program _WSJT_, +an extended and experimental branch of the program _WSJT_, first released in 2001. Bill Somerville, G4WJS, and Steve Franke, K9AN, have been major contributors to program development since 2013 and 2015, respectively. @@ -16,7 +16,7 @@ making reliable QSOs under weak-signal conditions. They use nearly identical message structure and source encoding. JT65 and QRA64 were designed for EME ("`moonbounce`") on the VHF/UHF bands and have also proven very effective for worldwide QRP communication on the HF bands. -QRA64 has a some advantages over JT65, including better performance +QRA64 has some advantages over JT65, including better performance for EME on the higher microwave bands. JT9 was originally designed for the LF, MF, and lower HF bands. Its submode JT9A is 2 dB more sensitive than JT65 while using less than 10% of the bandwidth. JT4 @@ -27,7 +27,7 @@ reception, so a minimal QSO takes four to six minutes — two or three transmissions by each station, one sending in odd UTC minutes and the other even. FT8 is operationally similar but four times faster (15-second T/R sequences) and less sensitive by a few dB. FT4 is -faster still (7.5 s T/R sequences) and especially well suited for +faster still (7.5 s T/R sequences) and especially well-suited for radio contesting. On the HF bands, world-wide QSOs are possible with any of these modes using power levels of a few watts (or even milliwatts) and compromise antennas. On VHF bands and higher, QSOs @@ -45,7 +45,7 @@ protocols designed to take advantage of brief signal enhancements from ionized meteor trails, aircraft scatter, and other types of scatter propagation. These modes use timed sequences of 5, 10, 15, or 30 s duration. User messages are transmitted repeatedly at high rate (up -to 250 characters per second, for MSK144) to make good use of the +to 250 characters per second for MSK144) to make good use of the shortest meteor-trail reflections or "`pings`". ISCAT uses free-form messages up to 28 characters long, while MSK144 uses the same structured messages as the slow modes and optionally an abbreviated @@ -80,4 +80,4 @@ be beta releases leading up to the final release of v2.1.0. Release candidates should be used _only_ during a short testing period. They carry an implied obligation to provide feedback to the program development group. Candidate releases should not be used on -the air after a full release with the same number has been made. +the air after a full release with the same number is made. diff --git a/doc/user_guide/en/logging.adoc b/doc/user_guide/en/logging.adoc index 4176a2a40..a3193ba25 100644 --- a/doc/user_guide/en/logging.adoc +++ b/doc/user_guide/en/logging.adoc @@ -1,7 +1,9 @@ +//status: edited + A basic logging facility in _WSJT-X_ saves QSO information to files named `wsjtx.log` (in comma-separated text format) and `wsjtx_log.adi` (in standard ADIF format). These files can be imported directly into -other programs, for example spreadsheets and popular logging programs. +other programs (such as spreadsheets and popular logging programs). As described in the <> and <> sections, different operating systems may place your local log files in different locations. You can always navigate to @@ -12,30 +14,32 @@ applications like {jtalert}, which can log QSOs automatically to other applications including {hrd}, {dxlsuite}, and {log4om}. The program option *Show DXCC entity and worked before status* -(selectable on the *Settings | General* tab) is intended mostly for +(selectable on the *File | Settings | General* tab) is intended mostly for use on non-Windows platforms, where {jtalert} is not available. When -this option is checked _WSJT-X_ appends some additional information to +this option is checked, _WSJT-X_ appends some additional information to all CQ messages displayed in the _Band Activity_ window. The name of the DXCC entity is shown, abbreviated if necessary. Your "`worked before`" status for this callsign (according to log file `wsjtx_log.adi`) is indicated by highlighting colors, if that option -has been selected. +is selected. _WSJT-X_ includes a built-in `cty.dat` file containing DXCC prefix information. Updated files can be downloaded from the {cty_dat} web -site when required. If an updated `cty.dat` is present in the logs -folder and readable, it will be used in preference to the built-in -one. +site when required. If an updated and readable `cty.dat` file is +present in the logs folder, it is used in preference to the +built-in file. The log file `wsjtx_log.adi` is updated whenever you log a QSO from -_WSJT-X_. (Keep in mind that if you erase this file you will lose all +_WSJT-X_. (Keep in mind that if you erase this file, you lose all "`worked before`" information.) You can append or overwrite the `wsjtx_log.adi` file by exporting your QSO history as an ADIF file from another logging program. Turning *Show DXCC entity and worked -before status* off and then on again will cause _WSJT-X_ to re-read +before status* off and then on again causes _WSJT-X_ to re-read the log file. Very large log files may cause _WSJT-X_ to slow down -when searching for calls. If the ADIF log file has been changed +when searching for calls. If the ADIF log file has been changed outside of _WSJT-X_ you can force _WSJT-X_ to reload the file from the *Settings | Colors* tab using the *Rescan ADIF Log* button, see <>. +Additional features are provided for *Contest* and *Fox* logging. +(more to come, here ...) diff --git a/doc/user_guide/en/make-qso.adoc b/doc/user_guide/en/make-qso.adoc index 03f02fd46..725bafe73 100644 --- a/doc/user_guide/en/make-qso.adoc +++ b/doc/user_guide/en/make-qso.adoc @@ -37,7 +37,7 @@ assigns more reliable numbers to relatively strong signals. NOTE: Signals become visible on the waterfall around S/N = –26 dB and audible (to someone with very good hearing) around –15 dB. Thresholds for decodability are around -20 dB for FT8, -23 dB for JT4, –25 dB for -JT65, –27 dB for JT9. +JT65, and –27 dB for JT9. NOTE: Several options are available for circumstances where fast QSOs are desirable. Double-click the *Tx1* control under _Now_ or _Next_ @@ -75,7 +75,7 @@ When calling CQ you may also choose to check the box *Call 1st*. _WSJT-X_ will then respond automatically to the first decoded responder to your CQ. -NOTE: When *Auto-Seq* is enabled the program de-activates *Enable Tx* +NOTE: When *Auto-Seq* is enabled, the program de-activates *Enable Tx* at the end of each QSO. It is not intended that _WSJT-X_ should make fully automated QSOs. @@ -259,7 +259,7 @@ that a second callsign is never permissible in these messages. NOTE: During a transmission your outgoing message is displayed in the first label on the *Status Bar* and shown exactly as another station -will receive it. You can check to see that you are actually +receives it. You can check to see that you are actually transmitting the message you wish to send. QSOs involving *Type 2* compound callsigns might look like either @@ -287,7 +287,7 @@ standard structured messages without callsign prefix or suffix. TIP: If you are using a compound callsign, you may want to experiment with the option *Message generation for type 2 compound -callsign holders* on the *Settings | General* tab, so that messages +callsign holders* on the *File | Settings | General* tab, so that messages will be generated that best suit your needs. === Pre-QSO Checklist diff --git a/doc/user_guide/en/measurement_tools.adoc b/doc/user_guide/en/measurement_tools.adoc index 766939e7c..fe501d650 100644 --- a/doc/user_guide/en/measurement_tools.adoc +++ b/doc/user_guide/en/measurement_tools.adoc @@ -1,6 +1,8 @@ +//Status: edited + === Frequency Calibration -Many _WSJT-X_ capabilities depend on signal-detection bandwidths no +Many _WSJT-X_ capabilities depend on signal-detection bandwidths of no more than a few Hz. Frequency accuracy and stability are therefore unusually important. We provide tools to enable accurate frequency calibration of your radio, as well as precise frequency measurement of @@ -11,11 +13,11 @@ measuring the error in dial frequency for each signal. You will probably find it convenient to define and use a special <> dedicated to frequency calibration. -Then complete the following steps, as appropriate for your system. +Then complete the following steps, as appropriate, for your system. - Switch to FreqCal mode -- In the _Working Frequencies_ box on the *Settings -> Frequencies* +- In the _Working Frequencies_ box on the *File | Settings | Frequencies* tab, delete any default frequencies for *FreqCal* mode that are not relevant for your location. You may want to replace some of them with reliably known frequencies receivable at your location. @@ -29,14 +31,14 @@ of WWV at 2.500, 5.000, 10.000, 15.000, and 20.000 MHz, and CHU at 3.330, 7.850, and 14.670 MHz. Similar shortwave signals are available in other parts of the world. -- In most cases you will want to start by deleting any existing file -`fmt.all` in the directory where your log files are kept. +- In most cases, start by deleting any existing file `fmt.all` in the +directory where your log files are kept. - To cycle automatically through your chosen list of calibration frequencies, check *Execute frequency calibration cycle* on the *Tools* menu. _WSJT-X_ will spend 30 seconds at each frequency. Initially no measurement data is saved to the `fmt.all` -file although it is displayed on screen, this allows you to check your +file although it is displayed on screen; this allows you to check your current calibration parameters. - During the calibration procedure, the radio's USB dial frequency is @@ -61,7 +63,7 @@ the nominal frequency itself (in MHz). For example, the 20 MHz measurement for WWV shown above produced a measured tone offset of 24.6 Hz, displayed in the _WSJT-X_ decoded text window. The resulting calibration constant is 24.6/20=1.23 parts per million. This number -may be entered as *Slope* on the *settings -> Frequencies* tab. +may be entered as *Slope* on the *File | Settings | Frequencies* tab. A more precise calibration can be effected by fitting the intercept and slope of a straight line to the whole sequence of calibration @@ -81,19 +83,19 @@ After running *Execute frequency calibration cycle* at least once with good results, check and edit the file `fmt.all` in the log directory and delete any spurious or outlier measurements. The line-fitting procedure can then be carried out automatically by clicking *Solve for -calibration parameters* on the *Tools* menu. The results will be +calibration parameters* on the *Tools* menu. The results are displayed as in the following screen shot. Estimated uncertainties are included for slope and intercept; `N` is the number of averaged frequency measurements included in the fit, and `StdDev` is the root mean square deviation of averaged measurements from the fitted -straight line. If the solution seems valid you will be offered an -*Apply* button to push that will automatically set the calibration -parameters in *Settings -> Frequencies -> Frequency Calibration*. +straight line. If the solution seems valid, you are offered an +*Apply* button to push that automatically sets the calibration +parameters in *File | Settings | Frequencies | Frequency Calibration*. image::FreqCal_Results.png[align="center",alt="FreqCal_Results"] For a quick visual check of the resulting calibration, stay in -*FreqCal* mode with the *Measure* option cleared. _WSJT-X_ will show +*FreqCal* mode with the *Measure* option cleared. _WSJT-X_ shows the adjusted results directly on the waterfall and the displayed records. @@ -103,8 +105,8 @@ _WSJT-X_ provides a tool that can be used to determine the detailed shape of your receiver's passband. Disconnect your antenna or tune to a quiet frequency with no signals. With _WSJT-X_ running in one of the slow modes, select *Measure reference spectrum* from the *Tools* -menu. Wait for about a minute and then hit the *Stop* button. A file -named `refspec.dat` will appear in your log directory. When you check +menu. Wait for about a minute and then click *Stop*. A file +named `refspec.dat` appears in your log directory. When you check *Ref Spec* on the *Wide Graph*, the recorded reference spectrum will then be used to flatten your overall effective passband. @@ -122,39 +124,39 @@ response* generates an undistorted audio waveform equal to the one generated by the transmitting station. Its Fourier transform is then used as a frequency-dependent phase reference to compare with the phase of the received frame's Fourier coefficients. Phase differences -between the reference spectrum and received spectrum will include +between the reference spectrum and received spectrum include contributions from the originating station's transmit filter, the propagation channel, and filters in the receiver. If the received frame originates from a station known to transmit signals having -little phase distortion (say, a station known to use a properly -adjusted software-defined-transceiver) and if the received signal is +little phase distortion (such as a station known to use a properly +adjusted software-defined transceiver), and if the received signal is relatively free from multipath distortion so that the channel phase is close to linear, the measured phase differences will be representative of the local receiver's phase response. Complete the following steps to generate a phase equalization curve: -- Record a number of wav files that contain decodable signals from -your chosen reference station. Best results will be obtained when the +- Record a number of `wav` files that contain decodable signals from +your chosen reference station. Best results are obtained when the signal-to-noise ratio of the reference signals is 10 dB or greater. - Enter the callsign of the reference station in the DX Call box. - Select *Measure phase response* from the *Tools* menu, and open each -of the wav files in turn. The mode character on decoded text lines -will change from `&` to `^` while _WSJT-X_ is measuring the phase -response, and it will change back to `&` after the measurement is +of the `wav` files in turn. The mode character on decoded text lines +changes from `&` to `^` while _WSJT-X_ is measuring the phase +response, and it changes back to `&` after the measurement is completed. The program needs to average a number of high-SNR frames to accurately estimate the phase, so it may be necessary to process -several wav files. The measurement can be aborted at any time by +several `wav` files. The measurement can be aborted at any time by selecting *Measure phase response* again to toggle the phase measurement off. + -When the measurement is complete _WSJT-X_ will save the measured +When the measurement is complete, _WSJT-X_ saves the measured phase response in the *Log directory*, in a file with suffix -".pcoeff". The filename will contain the callsign of the reference +".pcoeff". The filename contains the callsign of the reference station and a timestamp, for example `K0TPP_170923_112027.pcoeff`. - Select *Equalization tools ...* under the *Tools* menu and click the @@ -165,23 +167,23 @@ the proposed phase equalization curve. It's a good idea to repeat the phase measurement several times, using different wav files for each measurement, to ensure that your measurements are repeatable. -- Once you are satisfied with a fitted curve, push the *Apply* button -to save the proposed response. The red curve will be replaced with a +- Once you are satisfied with a fitted curve, click the *Apply* button +to save the proposed response. The red curve is replaced with a light green curve labeled "Current" to indicate that the phase equalization curve is now being applied to the received data. Another -curve labeled "Group Delay" will appear. The "Group Delay" curve shows +curve labeled "Group Delay" appears. The "Group Delay" curve shows the group delay variation across the passband, in ms. Click the *Discard Measured* button to remove the captured data from the plot, leaving only the applied phase equalization curve and corresponding group delay curve. -- To revert to no phase equalization, push the *Restore Defaults* +- To revert to no phase equalization, click the *Restore Defaults* button followed by the *Apply* button. The three numbers printed at the end of each MSK144 decode line can be used to assess the improvement provided by equalization. These numbers are: `N` = Number of frames averaged, `H` = Number of hard bit errors -corrected, `E` = Size of MSK eye diagram opening. +corrected, and `E` = Size of MSK eye diagram opening. Here is a decode of K0TPP obtained while *Measure phase response* was measuring the phase response: @@ -196,7 +198,7 @@ scale. Here's how the same decode looks after phase equalization: 103900 17 6.5 1493 & WA8CLT K0TPP +07 1 0 1.6 -In this case, equalization has increased the eye opening from 1.2 to +In this case, equalization has increased the eye-opening from 1.2 to 1.6. Larger positive eye openings are associated with reduced likelihood of bit errors and higher likelihood that a frame will be successfully decoded. In this case, the larger eye-opening tells us @@ -206,7 +208,7 @@ equalization curve is going to improve decoding of signals other than those from the reference station, K0TPP. It's a good idea to carry out before and after comparisons using a -large number of saved wav files with signals from many different +large number of saved `wav` files with signals from many different stations, to help decide whether your equalization curve improves decoding for most signals. When doing such comparisons, keep in mind that equalization may cause _WSJT-X_ to successfully decode a frame diff --git a/doc/user_guide/en/protocols.adoc b/doc/user_guide/en/protocols.adoc index d9a7d8ada..e22911266 100644 --- a/doc/user_guide/en/protocols.adoc +++ b/doc/user_guide/en/protocols.adoc @@ -1,3 +1,5 @@ +//status: edited + [[PROTOCOL_OVERVIEW]] === Overview @@ -30,17 +32,17 @@ of 4-digit Maidenhead grid locators on earth is 180×180 = 32,400, which is less than 2^15^ = 32,768; so a grid locator requires 15 bits. Some 6 million of the possible 28-bit values are not needed for -callsigns. A few of these slots have been assigned to special message +callsigns. A few of these slots are assigned to special message components such as `CQ`, `DE`, and `QRZ`. `CQ` may be followed by three digits to indicate a desired callback frequency. (If K1ABC transmits -on a standard calling frequency, say 50.280, and sends `CQ 290 K1ABC +on a standard calling frequency such as 50.280, and sends `CQ 290 K1ABC FN42`, it means that s/he will listen on 50.290 and respond there to any replies.) A numerical signal report of the form `–nn` or `R–nn` can be sent in place of a grid locator. (As originally defined, numerical signal reports `nn` were required to fall between -01 -and -30 dB. Program versions 2.3 and later accommodate reports between --50 and +50 dB.) A country prefix or portable suffix may be -attached to one of the callsigns. When this feature is used the +and -30 dB. Recent program versions 2.3 and later accommodate reports between +-50 and +49 dB.) A country prefix or portable suffix may be +attached to one of the callsigns. When this feature is used, the additional information is sent in place of the grid locator or by encoding additional information into some of the 6 million available slots mentioned above. @@ -147,7 +149,8 @@ following pseudo-random sequence: The synchronizing tone is normally sent in each interval having a "`1`" in the sequence. Modulation is 65-FSK at 11025/4096 = 2.692 baud. Frequency spacing between tones is equal to the keying rate for -JT65A, and 2 and 4 times larger for JT65B and JT65C. For EME QSOs the +JT65A, and 2 and 4 times larger for JT65B and JT65C, respectively. +For EME QSOs the signal report OOO is sometimes used instead of numerical signal reports. It is conveyed by reversing sync and data positions in the transmitted sequence. Shorthand messages for RO, RRR, and 73 dispense @@ -155,7 +158,7 @@ with the sync vector entirely and use time intervals of 16384/11025 = 1.486 s for pairs of alternating tones. The lower frequency is the same as that of the sync tone used in long messages, and the frequency separation is 110250/4096 = 26.92 Hz multiplied by n for JT65A, with n -= 2, 3, 4 used to convey the messages RO, RRR, and 73. += 2, 3, 4 used to convey the messages RO, RRR, and 73, respectively. [[QRA64_PROTOCOL]] ==== QRA64 @@ -225,7 +228,7 @@ the sync bit. [[SLOW_SUMMARY]] ==== Summary -Table 7 provides a brief summary parameters for the slow modes in +Table 7 provides a brief summary of parameters for the slow modes in _WSJT-X_. Parameters K and r specify the constraint length and rate of the convolutional codes; n and k specify the sizes of the (equivalent) block codes; Q is the alphabet size for the @@ -305,7 +308,7 @@ available character set is: Transmissions consist of sequences of 24 symbols: a synchronizing pattern of four symbols at tone numbers 0, 1, 3, and 2, followed by two symbols with tone number corresponding to (message length) and -(message length + 5), and finally 18 symbols conveying the user's +(message length + 5), and, finally, 18 symbols conveying the user's message, sent repeatedly character by character. The message always starts with `@`, the beginning-of-message symbol, which is not displayed to the user. The sync pattern and message-length indicator From bf06193c108616a3a271bad59b6b2aabb120145c Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 17 Aug 2020 14:12:08 -0500 Subject: [PATCH 419/520] Add timer call for bit metric calculation. Improve some comments. Make fort.21 ntype parameter more informative. --- lib/fst4/decode240_101.f90 | 2 +- lib/fst4/decode240_74.f90 | 2 +- lib/fst4/get_fst4_bitmetrics.f90 | 2 +- lib/fst4_decode.f90 | 8 +++++--- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/fst4/decode240_101.f90 b/lib/fst4/decode240_101.f90 index 80e42eeb0..e924f00ec 100644 --- a/lib/fst4/decode240_101.f90 +++ b/lib/fst4/decode240_101.f90 @@ -141,7 +141,7 @@ subroutine decode240_101(llr,Keff,maxosd,norder,apmask,message101,cw,ntype,nhard where(llr .ge. 0) hdec=1 nxor=ieor(hdec,cw) dmin=sum(nxor*abs(llr)) - ntype=2 + ntype=1+nosd return endif enddo diff --git a/lib/fst4/decode240_74.f90 b/lib/fst4/decode240_74.f90 index 3f8a6a952..224a2860d 100644 --- a/lib/fst4/decode240_74.f90 +++ b/lib/fst4/decode240_74.f90 @@ -141,7 +141,7 @@ subroutine decode240_74(llr,Keff,maxosd,norder,apmask,message74,cw,ntype,nharder where(llr .ge. 0) hdec=1 nxor=ieor(hdec,cw) dmin=sum(nxor*abs(llr)) - ntype=2 + ntype=1+nosd return endif enddo diff --git a/lib/fst4/get_fst4_bitmetrics.f90 b/lib/fst4/get_fst4_bitmetrics.f90 index 9cf1e2470..f248171f0 100644 --- a/lib/fst4/get_fst4_bitmetrics.f90 +++ b/lib/fst4/get_fst4_bitmetrics.f90 @@ -84,7 +84,7 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,badsync) endif bitmetrics=0.0 - do nseq=1,nmax !Try coherent sequences of 1, 2, and 4 symbols + do nseq=1,nmax !Try coherent sequences of 1,2,3,4 or 1,2,4,8 symbols if(nseq.eq.1) nsym=1 if(nseq.eq.2) nsym=2 if(nhicoh.eq.0) then diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index e56fa27a8..9a6683fe4 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -395,11 +395,13 @@ contains if(is0.lt.0) cycle cframe=c2(is0:is0+160*nss-1) bitmetrics=0 + call timer('bitmetrc',0) if(hmod.eq.1) then call get_fst4_bitmetrics(cframe,nss,hmod,nblock,nhicoh,bitmetrics,s4,badsync) else call get_fst4_bitmetrics2(cframe,nss,hmod,nblock,bitmetrics,s4,badsync) endif + call timer('bitmetrc',1) if(badsync) cycle hbits=0 @@ -410,7 +412,8 @@ contains ns4=count(hbits(229:244).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) nsync_qual=ns1+ns2+ns3+ns4+ns5 - if(nsync_qual.lt. 46) cycle !### Value ?? ### + + if(nsync_qual.lt. 46) cycle !### Value ?? ### scalefac=2.83 llra( 1: 60)=bitmetrics( 17: 76, 1) llra( 61:120)=bitmetrics( 93:152, 1) @@ -768,7 +771,7 @@ contains nnw=nint(48000.*nsps*2./fs) allocate (s(nnw)) - s=0. !Compute low-resloution power spectrum + s=0. !Compute low-resolution power spectrum do i=ina,inb ! noise analysis window includes signal analysis window j0=nint(i*df2/df1) do j=j0-ndh,j0+ndh @@ -785,7 +788,6 @@ contains enddo call pctile(s2(ina+hmod*3:inb-hmod*3),inb-ina+1-hmod*6,30,base) s2=s2/base !Normalize wrt noise level - ncand=0 candidates=0 if(ia.lt.3) ia=3 From 7cb5511ed091a26ccdf1a9662f0d3aa0d079b094 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Wed, 19 Aug 2020 09:20:48 -0500 Subject: [PATCH 420/520] Simplify some code in fst4_decode.f90 - no functional change. --- lib/fst4_decode.f90 | 49 +++++++++++++++++---------------------------- 1 file changed, 18 insertions(+), 31 deletions(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 9a6683fe4..6f3e36105 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -48,7 +48,7 @@ contains complex, allocatable :: c2(:) complex, allocatable :: cframe(:) complex, allocatable :: c_bigfft(:) !Complex waveform - real llr(240),llra(240),llrb(240),llrc(240),llrd(240) + real llr(240),llrs(240,4) real candidates(200,4) real bitmetrics(320,4) real s4(0:3,NN) @@ -415,28 +415,15 @@ contains if(nsync_qual.lt. 46) cycle !### Value ?? ### scalefac=2.83 - llra( 1: 60)=bitmetrics( 17: 76, 1) - llra( 61:120)=bitmetrics( 93:152, 1) - llra(121:180)=bitmetrics(169:228, 1) - llra(181:240)=bitmetrics(245:304, 1) - llra=scalefac*llra - llrb( 1: 60)=bitmetrics( 17: 76, 2) - llrb( 61:120)=bitmetrics( 93:152, 2) - llrb(121:180)=bitmetrics(169:228, 2) - llrb(181:240)=bitmetrics(245:304, 2) - llrb=scalefac*llrb - llrc( 1: 60)=bitmetrics( 17: 76, 3) - llrc( 61:120)=bitmetrics( 93:152, 3) - llrc(121:180)=bitmetrics(169:228, 3) - llrc(181:240)=bitmetrics(245:304, 3) - llrc=scalefac*llrc - llrd( 1: 60)=bitmetrics( 17: 76, 4) - llrd( 61:120)=bitmetrics( 93:152, 4) - llrd(121:180)=bitmetrics(169:228, 4) - llrd(181:240)=bitmetrics(245:304, 4) - llrd=scalefac*llrd + do il=1,4 + llrs( 1: 60,il)=bitmetrics( 17: 76, il) + llrs( 61:120,il)=bitmetrics( 93:152, il) + llrs(121:180,il)=bitmetrics(169:228, il) + llrs(181:240,il)=bitmetrics(245:304, il) + enddo + llrs=scalefac*llrs - apmag=maxval(abs(llra))*1.1 + apmag=maxval(abs(llrs(:,1)))*1.1 ntmax=nblock+nappasses(nQSOProgress) if(lapcqonly) ntmax=nblock+1 if(ndepth.eq.1) ntmax=nblock @@ -448,22 +435,22 @@ contains endif do itry=1,ntmax - if(itry.eq.1) llr=llra - if(itry.eq.2.and.itry.le.nblock) llr=llrb - if(itry.eq.3.and.itry.le.nblock) llr=llrc - if(itry.eq.4.and.itry.le.nblock) llr=llrd + if(itry.eq.1) llr=llrs(:,1) + if(itry.eq.2.and.itry.le.nblock) llr=llrs(:,2) + if(itry.eq.3.and.itry.le.nblock) llr=llrs(:,3) + if(itry.eq.4.and.itry.le.nblock) llr=llrs(:,4) if(itry.le.nblock) then apmask=0 iaptype=0 endif if(itry.gt.nblock) then - llr=llra + llr=llrs(:,1) if(nblock.gt.1) then - if(hmod.eq.1) llr=llrc - if(hmod.eq.2) llr=llra - if(hmod.eq.4) llr=llrb - if(hmod.eq.8) llr=llrc + if(hmod.eq.1) llr=llrs(:,3) + if(hmod.eq.2) llr=llrs(:,1) + if(hmod.eq.4) llr=llrs(:,2) + if(hmod.eq.8) llr=llrs(:,4) endif iaptype=naptypes(nQSOProgress,itry-nblock) if(lapcqonly) iaptype=1 From 782c779392bf9751c6b8ed213f5e2c721c0d64e1 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Wed, 19 Aug 2020 14:10:28 -0500 Subject: [PATCH 421/520] Reconfigure to optimize decoder for MF/LF (high coherence) channels. --- lib/fst4/get_fst4_bitmetrics.f90 | 2 +- lib/fst4_decode.f90 | 22 +++++++++------------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/lib/fst4/get_fst4_bitmetrics.f90 b/lib/fst4/get_fst4_bitmetrics.f90 index f248171f0..f224854e2 100644 --- a/lib/fst4/get_fst4_bitmetrics.f90 +++ b/lib/fst4/get_fst4_bitmetrics.f90 @@ -105,7 +105,7 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,badsync) csum=csum+cs(graymap(ntone),ks+j)*cterm cterm=cterm*conjg(cp(graymap(ntone))) enddo - s2(i)=abs(csum)**2 + s2(i)=abs(csum) enddo ipt=1+(ks-1)*2 if(nsym.eq.1) ibmax=1 diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 6f3e36105..448e699c3 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -275,12 +275,8 @@ contains fb=min(4800,nfb) endif - if(hmod.eq.1) then - if(ntrperiod.eq.15) minsync=1.15 - if(ntrperiod.gt.15) minsync=1.25 - elseif(hmod.gt.1) then - minsync=1.2 - endif + minsync=1.2 + if(ntrperiod.eq.15) minsync=1.15 ! Get first approximation of candidate frequencies call get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & @@ -788,13 +784,13 @@ contains iploc=ia+im(1)-1 !Index of CCF peak pval=s2(iploc) !Peak value if(pval.lt.minsync) exit -! do i=-3,+3 !Remove 0.9 of a model CCF at -! k=iploc+2*hmod*i !this frequency from s2() -! if(k.ge.ia .and. k.le.ib) then -! s2(k)=max(0.,s2(k)-0.9*pval*xdb(i)) -! endif -! enddo - s2(max(1,iploc-2*hmod*3):min(nnw,iploc+2*hmod*3))=0.0 + do i=-3,+3 !Remove 0.9 of a model CCF at + k=iploc+2*hmod*i !this frequency from s2() + if(k.ge.ia .and. k.le.ib) then + s2(k)=max(0.,s2(k)-0.9*pval*xdb(i)) + endif + enddo +! s2(max(1,iploc-2*hmod*3):min(nnw,iploc+2*hmod*3))=0.0 ncand=ncand+1 candidates(ncand,1)=df2*iploc !Candidate frequency candidates(ncand,2)=pval !Rough estimate of SNR From e02850ae5a9c1ce7ae394180c3624b2808043c9a Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 20 Aug 2020 09:48:32 -0500 Subject: [PATCH 422/520] Streamline fst4_decode. Add timer for downsampling. --- lib/decoder.f90 | 4 +- lib/fst4/get_fst4_bitmetrics.f90 | 19 ++++ lib/fst4_decode.f90 | 162 +++++++++++++------------------ 3 files changed, 88 insertions(+), 97 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 86725928d..e7b9ebfa2 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -196,7 +196,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & params%nsubmode,ndepth,params%ntr,params%nexp_decode, & params%ntol,params%emedelay, & - logical(params%lapcqonly),mycall,hiscall,params%nfsplit,iwspr) + logical(params%lapcqonly),mycall,hiscall,iwspr) call timer('dec240 ',1) go to 800 endif @@ -210,7 +210,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & params%nsubmode,ndepth,params%ntr,params%nexp_decode, & params%ntol,params%emedelay, & - logical(params%lapcqonly),mycall,hiscall,params%nfsplit,iwspr) + logical(params%lapcqonly),mycall,hiscall,iwspr) call timer('dec240 ',1) go to 800 endif diff --git a/lib/fst4/get_fst4_bitmetrics.f90 b/lib/fst4/get_fst4_bitmetrics.f90 index f224854e2..f34cb9322 100644 --- a/lib/fst4/get_fst4_bitmetrics.f90 +++ b/lib/fst4/get_fst4_bitmetrics.f90 @@ -11,6 +11,7 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,badsync) integer graymap(0:3) integer ip(1) integer hmod + integer hbits(2*NN) logical one(0:65535,0:15) ! 65536 8-symbol sequences, 16 bits logical first logical badsync @@ -122,10 +123,28 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,badsync) enddo enddo + hbits=0 + where(bitmetrics(:,1).ge.0) hbits=1 + ns1=count(hbits( 1: 16).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + ns2=count(hbits( 77: 92).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) + ns3=count(hbits(153:168).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + ns4=count(hbits(229:244).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) + ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) + nsync_qual=ns1+ns2+ns3+ns4+ns5 + + if(nsync_qual.lt. 46) then + badsync=.true. + return + endif + call normalizebmet(bitmetrics(:,1),2*NN) call normalizebmet(bitmetrics(:,2),2*NN) call normalizebmet(bitmetrics(:,3),2*NN) call normalizebmet(bitmetrics(:,4),2*NN) + + scalefac=2.83 + bitmetrics=scalefac*bitmetrics + return end subroutine get_fst4_bitmetrics diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 448e699c3..8a116bbbf 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -31,7 +31,7 @@ contains subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfqso, & nfa,nfb,nsubmode,ndepth,ntrperiod,nexp_decode,ntol, & - emedelay,lapcqonly,mycall,hiscall,nfsplit,iwspr) + emedelay,lapcqonly,mycall,hiscall,iwspr) use timer_module, only: timer use packjt77 @@ -252,29 +252,10 @@ contains call four2a(c_bigfft,nfft1,1,-1,0) !r2c ! call blank2(nfa,nfb,nfft1,c_bigfft,iwave) - nhicoh=0 - if(hmod.eq.1) then - if(fMHz.lt.2.0) then - nsyncoh=8 ! Use N=8 for sync - nhicoh=1 ! Use N=1,2,4,8 for symbol estimation - else - nsyncoh=4 ! Use N=4 for sync - nhicoh=0 ! Use N=1,2,3,4 for symbol estimation - endif - else - if(hmod.eq.2) nsyncoh=1 - if(hmod.eq.4) nsyncoh=-2 - if(hmod.eq.8) nsyncoh=-4 - endif - - if( single_decode ) then - fa=max(100,nint(nfqso+1.5*hmod*baud-ntol)) - fb=min(4800,nint(nfqso+1.5*hmod*baud+ntol)) - else - fa=max(100,nfa) - fb=min(4800,nfb) - endif - + nhicoh=1 + nsyncoh=8 + fa=max(100,nint(nfqso+1.5*hmod*baud-ntol)) + fb=min(4800,nint(nfqso+1.5*hmod*baud+ntol)) minsync=1.2 if(ntrperiod.eq.15) minsync=1.15 @@ -296,54 +277,15 @@ contains ! Output array c2 is complex baseband sampled at 12000/ndown Sa/sec. ! The size of the downsampled c2 array is nfft2=nfft1/ndown + call timer('dwnsmpl ',0) call fst4_downsample(c_bigfft,nfft1,ndown,fc0,sigbw,c2) + call timer('dwnsmpl ',1) call timer('sync240 ',0) - fc1=0.0 - if(emedelay.lt.0.1) then ! search offsets from 0 s to 2 s - is0=1.5*nspsec - ishw=1.5*nspsec - else ! search plus or minus 1.5 s centered on emedelay - is0=nint((emedelay+1.0)*nspsec) - ishw=1.5*nspsec - endif - - smax=-1.e30 - do if=-12,12 - fc=fc1 + 0.1*baud*if - do istart=max(1,is0-ishw),is0+ishw,4*hmod - call sync_fst4(c2,istart,fc,hmod,nsyncoh,nfft2,nss, & - ntrperiod,fs2,sync) - if(sync.gt.smax) then - fc2=fc - isbest=istart - smax=sync - endif - enddo - enddo - - fc1=fc2 - is0=isbest - ishw=4*hmod - isst=1*hmod - - smax=0.0 - do if=-7,7 - fc=fc1 + 0.02*baud*if - do istart=max(1,is0-ishw),is0+ishw,isst - call sync_fst4(c2,istart,fc,hmod,nsyncoh,nfft2,nss, & - ntrperiod,fs2,sync) - if(sync.gt.smax) then - fc2=fc - isbest=istart - smax=sync - endif - enddo - enddo - + call fst4_sync_search(c2,nfft2,hmod,fs2,nss,ntrperiod,nsyncoh,emedelay,sbest,fcbest,isbest) call timer('sync240 ',1) - fc_synced = fc0 + fc2 + fc_synced = fc0 + fcbest dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 candidates(icand,3)=fc_synced candidates(icand,4)=isbest @@ -382,7 +324,11 @@ contains isbest=nint(candidates(icand,4)) xdt=(isbest-nspsec)/fs2 if(ntrperiod.eq.15) xdt=(isbest-real(nspsec)/2.0)/fs2 + + call timer('dwnsmpl ',0) call fst4_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) + call timer('dwnsmpl ',1) + do ijitter=0,jittermax if(ijitter.eq.0) ioffset=0 if(ijitter.eq.1) ioffset=1 @@ -392,32 +338,16 @@ contains cframe=c2(is0:is0+160*nss-1) bitmetrics=0 call timer('bitmetrc',0) - if(hmod.eq.1) then - call get_fst4_bitmetrics(cframe,nss,hmod,nblock,nhicoh,bitmetrics,s4,badsync) - else - call get_fst4_bitmetrics2(cframe,nss,hmod,nblock,bitmetrics,s4,badsync) - endif + call get_fst4_bitmetrics(cframe,nss,hmod,nblock,nhicoh,bitmetrics,s4,badsync) call timer('bitmetrc',1) if(badsync) cycle - hbits=0 - where(bitmetrics(:,1).ge.0) hbits=1 - ns1=count(hbits( 1: 16).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) - ns2=count(hbits( 77: 92).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) - ns3=count(hbits(153:168).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) - ns4=count(hbits(229:244).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) - ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) - nsync_qual=ns1+ns2+ns3+ns4+ns5 - - if(nsync_qual.lt. 46) cycle !### Value ?? ### - scalefac=2.83 do il=1,4 llrs( 1: 60,il)=bitmetrics( 17: 76, il) llrs( 61:120,il)=bitmetrics( 93:152, il) llrs(121:180,il)=bitmetrics(169:228, il) llrs(181:240,il)=bitmetrics(245:304, il) enddo - llrs=scalefac*llrs apmag=maxval(abs(llrs(:,1)))*1.1 ntmax=nblock+nappasses(nQSOProgress) @@ -440,14 +370,8 @@ contains iaptype=0 endif - if(itry.gt.nblock) then - llr=llrs(:,1) - if(nblock.gt.1) then - if(hmod.eq.1) llr=llrs(:,3) - if(hmod.eq.2) llr=llrs(:,1) - if(hmod.eq.4) llr=llrs(:,2) - if(hmod.eq.8) llr=llrs(:,4) - endif + if(itry.gt.nblock) then ! do ap passes + llr=llrs(:,nblock) ! Use largest blocksize as the basis for AP passes iaptype=naptypes(nQSOProgress,itry-nblock) if(lapcqonly) iaptype=1 if(iaptype.ge.2 .and. apbits(1).gt.1) cycle ! No, or nonstandard, mycall @@ -486,7 +410,7 @@ contains if(iwspr.eq.0) then maxosd=2 Keff=91 - norder=3 + norder=4 call timer('d240_101',0) call decode240_101(llr,Keff,maxosd,norder,apmask,message101, & cw,ntype,nharderrors,dmin) @@ -556,8 +480,8 @@ contains fsig=fc_synced - 1.5*hmod*baud if(ex) then write(21,3021) nutc,icand,itry,nsyncoh,iaptype, & - ijitter,ntype,nsync_qual,nharderrors,dmin, & - sync,xsnr,xdt,fsig,w50,trim(msg) + ijitter,ntype,nsync_qual,nharderrors,dmin, & + sync,xsnr,xdt,fsig,w50,trim(msg) 3021 format(i6.6,6i3,2i4,f6.1,f7.2,f6.1,f6.2,f7.1,f7.3,1x,a) flush(21) endif @@ -799,6 +723,54 @@ contains return end subroutine get_candidates_fst4 + subroutine fst4_sync_search(c2,nfft2,hmod,fs2,nss,ntrperiod,nsyncoh,emedelay,sbest,fcbest,isbest) + complex c2(0:nfft2-1) + integer hmod + nspsec=int(fs2) + baud=fs2/real(nss) + fc1=0.0 + if(emedelay.lt.0.1) then ! search offsets from 0 s to 2 s + is0=1.5*nspsec + ishw=1.5*nspsec + else ! search plus or minus 1.5 s centered on emedelay + is0=nint((emedelay+1.0)*nspsec) + ishw=1.5*nspsec + endif + + sbest=-1.e30 + do if=-12,12 + fc=fc1 + 0.1*baud*if + do istart=max(1,is0-ishw),is0+ishw,4*hmod + call sync_fst4(c2,istart,fc,hmod,nsyncoh,nfft2,nss, & + ntrperiod,fs2,sync) + if(sync.gt.sbest) then + fcbest=fc + isbest=istart + sbest=sync + endif + enddo + enddo + + fc1=fcbest + is0=isbest + ishw=4*hmod + isst=1*hmod + + sbest=0.0 + do if=-7,7 + fc=fc1 + 0.02*baud*if + do istart=max(1,is0-ishw),is0+ishw,isst + call sync_fst4(c2,istart,fc,hmod,nsyncoh,nfft2,nss, & + ntrperiod,fs2,sync) + if(sync.gt.sbest) then + fcbest=fc + isbest=istart + sbest=sync + endif + enddo + enddo + end subroutine fst4_sync_search + subroutine dopspread(itone,iwave,nsps,nmax,ndown,hmod,i0,fc,fmid,w50) ! On "plotspec" special request, compute Doppler spread for a decoded signal From b9328b96c93dff44d43a78c89293bcdeba6c6d2b Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Fri, 21 Aug 2020 09:18:59 -0500 Subject: [PATCH 423/520] Tweaks to update the diagnostics that are written to fort.21. --- lib/fst4/decode240_101.f90 | 3 ++- lib/fst4/decode240_74.f90 | 3 ++- lib/fst4/get_fst4_bitmetrics.f90 | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/fst4/decode240_101.f90 b/lib/fst4/decode240_101.f90 index e924f00ec..4271a464c 100644 --- a/lib/fst4/decode240_101.f90 +++ b/lib/fst4/decode240_101.f90 @@ -140,8 +140,9 @@ subroutine decode240_101(llr,Keff,maxosd,norder,apmask,message101,cw,ntype,nhard hdec=0 where(llr .ge. 0) hdec=1 nxor=ieor(hdec,cw) + nharderror=sum(nxor) ! re-calculate nharderror based on input llrs dmin=sum(nxor*abs(llr)) - ntype=1+nosd + ntype=1+i return endif enddo diff --git a/lib/fst4/decode240_74.f90 b/lib/fst4/decode240_74.f90 index 224a2860d..be18f6e09 100644 --- a/lib/fst4/decode240_74.f90 +++ b/lib/fst4/decode240_74.f90 @@ -140,8 +140,9 @@ subroutine decode240_74(llr,Keff,maxosd,norder,apmask,message74,cw,ntype,nharder hdec=0 where(llr .ge. 0) hdec=1 nxor=ieor(hdec,cw) + nharderror=sum(nxor) ! nharderror based on input llrs dmin=sum(nxor*abs(llr)) - ntype=1+nosd + ntype=1+i return endif enddo diff --git a/lib/fst4/get_fst4_bitmetrics.f90 b/lib/fst4/get_fst4_bitmetrics.f90 index f34cb9322..e245db18c 100644 --- a/lib/fst4/get_fst4_bitmetrics.f90 +++ b/lib/fst4/get_fst4_bitmetrics.f90 @@ -1,4 +1,4 @@ -subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,badsync) +subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual,badsync) include 'fst4_params.f90' complex cd(0:NN*nss-1) From ecaca6af9f0f873c87ddd3421457a7ee6691e284 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sat, 22 Aug 2020 09:42:34 -0500 Subject: [PATCH 424/520] Fix argument list in call to fet_fst4_bitmetrics.f90 --- lib/fst4_decode.f90 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 8a116bbbf..444553618 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -338,7 +338,8 @@ contains cframe=c2(is0:is0+160*nss-1) bitmetrics=0 call timer('bitmetrc',0) - call get_fst4_bitmetrics(cframe,nss,hmod,nblock,nhicoh,bitmetrics,s4,badsync) + call get_fst4_bitmetrics(cframe,nss,hmod,nblock,nhicoh,bitmetrics, & + s4,nsync_qual,badsync) call timer('bitmetrc',1) if(badsync) cycle From d82b9f5b0e10e9cef76e3d823cf5b9f1244e52a0 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 24 Aug 2020 10:17:45 -0500 Subject: [PATCH 425/520] Speed up decoder by eliminating some complex multiples in sequence detection loop. Add timer calls for doppler spread calculation and sequence detection loop. --- lib/fst4/get_fst4_bitmetrics.f90 | 13 ++++++++++--- lib/fst4_decode.f90 | 2 ++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/fst4/get_fst4_bitmetrics.f90 b/lib/fst4/get_fst4_bitmetrics.f90 index e245db18c..69a649a04 100644 --- a/lib/fst4/get_fst4_bitmetrics.f90 +++ b/lib/fst4/get_fst4_bitmetrics.f90 @@ -1,5 +1,6 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual,badsync) + use timer_module, only: timer include 'fst4_params.f90' complex cd(0:NN*nss-1) complex cs(0:3,NN) @@ -84,6 +85,8 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual, return endif + + call timer('seqcorrs',0) bitmetrics=0.0 do nseq=1,nmax !Try coherent sequences of 1,2,3,4 or 1,2,4,8 symbols if(nseq.eq.1) nsym=1 @@ -100,11 +103,14 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual, s2=0 do i=0,nt-1 csum=0 - cterm=1 +! cterm=1 ! hmod.ne.1 + term=1 do j=0,nsym-1 ntone=mod(i/4**(nsym-1-j),4) - csum=csum+cs(graymap(ntone),ks+j)*cterm - cterm=cterm*conjg(cp(graymap(ntone))) + csum=csum+cs(graymap(ntone),ks+j)*term + term=-term +! csum=csum+cs(graymap(ntone),ks+j)*cterm ! hmod.ne.1 +! cterm=cterm*conjg(cp(graymap(ntone))) ! hmod.ne.1 enddo s2(i)=abs(csum) enddo @@ -122,6 +128,7 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual, enddo enddo enddo + call timer('seqcorrs',1) hbits=0 where(bitmetrics(:,1).ge.0) hbits=1 diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 444553618..efe6a3798 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -455,10 +455,12 @@ contains endif inquire(file='plotspec',exist=ex) fmid=-999.0 + call timer('dopsprd ',0) if(ex) then call dopspread(itone,iwave,nsps,nmax,ndown,hmod, & isbest,fc_synced,fmid,w50) endif + call timer('dopsprd ',1) xsig=0 do i=1,NN xsig=xsig+s4(itone(i),i) From 5ca81a6507618adab704fbec6c16d406ef4b993f Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Fri, 28 Aug 2020 09:22:22 -0500 Subject: [PATCH 426/520] Use 3rd order polynomial fit to estimate the noise baseline. The polynomial fit is done over 400 Hz bandwidth for T/R periods longer than 15s, and over approx. 600 Hz (10 times the signal bandwidth) for T/R period of 15s. --- CMakeLists.txt | 1 + lib/fst4/fst4_baseline.f90 | 48 ++++++++++++++++++++++++++++++++++++++ lib/fst4_decode.f90 | 48 +++++++++++++++++++++++--------------- 3 files changed, 78 insertions(+), 19 deletions(-) create mode 100644 lib/fst4/fst4_baseline.f90 diff --git a/CMakeLists.txt b/CMakeLists.txt index 01ec7727e..a2a31b388 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -618,6 +618,7 @@ set (wsjt_FSRCS lib/fst4/osd240_101.f90 lib/fst4/osd240_74.f90 lib/fst4/get_crc24.f90 + lib/fst4/fst4_baseline.f90 ) # temporary workaround for a gfortran v7.3 ICE on Fedora 27 64-bit diff --git a/lib/fst4/fst4_baseline.f90 b/lib/fst4/fst4_baseline.f90 new file mode 100644 index 000000000..32776651a --- /dev/null +++ b/lib/fst4/fst4_baseline.f90 @@ -0,0 +1,48 @@ +subroutine fst4_baseline(s,np,ia,ib,npct,sbase) + +! Fit baseline to spectrum (for FST4) +! Input: s(npts) Linear scale in power +! Output: sbase(npts) Baseline + + implicit real*8 (a-h,o-z) + real*4 s(np),sw(np) + real*4 sbase(np) + real*4 base + real*8 x(1000),y(1000),a(5) + data nseg/8/ + + do i=ia,ib + sw(i)=10.0*log10(s(i)) !Convert to dB scale + enddo + + nterms=3 + nlen=(ib-ia+1)/nseg !Length of test segment + i0=(ib-ia+1)/2 !Midpoint + k=0 + do n=1,nseg !Loop over all segments + ja=ia + (n-1)*nlen + jb=ja+nlen-1 + call pctile(sw(ja),nlen,npct,base) !Find lowest npct of points + do i=ja,jb + if(sw(i).le.base) then + if (k.lt.1000) k=k+1 !Save all "lower envelope" points + x(k)=i-i0 + y(k)=sw(i) + endif + enddo + enddo + kz=k + a=0. + call polyfit(x,y,y,kz,nterms,0,a,chisqr) !Fit a low-order polynomial + sbase=0.0 + do i=ia,ib + t=i-i0 + sbase(i)=a(1)+t*(a(2)+t*(a(3))) + 0.2 +! write(51,3051) i,sw(i),sbase(i) +!3051 format(i8,2f12.3) + enddo + + sbase=10**(sbase/10.0) + + return +end subroutine fst4_baseline diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index efe6a3798..d609df115 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -49,7 +49,7 @@ contains complex, allocatable :: cframe(:) complex, allocatable :: c_bigfft(:) !Complex waveform real llr(240),llrs(240,4) - real candidates(200,4) + real candidates(200,5) real bitmetrics(320,4) real s4(0:3,NN) real minsync @@ -254,14 +254,19 @@ contains nhicoh=1 nsyncoh=8 - fa=max(100,nint(nfqso+1.5*hmod*baud-ntol)) - fb=min(4800,nint(nfqso+1.5*hmod*baud+ntol)) - minsync=1.2 + if(iwspr.eq.1) then + fa=1400.0 + fb=1600.0 + else + fa=max(100,nint(nfqso+1.5*hmod*baud-ntol)) + fb=min(4800,nint(nfqso+1.5*hmod*baud+ntol)) + endif + minsync=1.20 if(ntrperiod.eq.15) minsync=1.15 ! Get first approximation of candidate frequencies call get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & - minsync,ncand,candidates,base) + minsync,ncand,candidates) ndecodes=0 decodes=' ' @@ -317,7 +322,7 @@ contains enddo ncand=ic xsnr=0. - +!write(*,*) 'ncand ',ncand do icand=1,ncand sync=candidates(icand,2) fc_synced=candidates(icand,3) @@ -465,6 +470,7 @@ contains do i=1,NN xsig=xsig+s4(itone(i),i) enddo + base=candidates(icand,5) arg=600.0*(xsig/base)-1.0 if(arg.gt.0.0) then xsnr=10*log10(arg)-35.5-12.5*log10(nsps/8200.0) @@ -645,14 +651,15 @@ contains end subroutine fst4_downsample subroutine get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & - minsync,ncand,candidates,base) + minsync,ncand,candidates) complex c_bigfft(0:nfft1/2) !Full length FFT of raw data integer hmod !Modulation index (submode) integer im(1) !For maxloc - real candidates(200,4) !Candidate list + real candidates(200,5) !Candidate list real, allocatable :: s(:) !Low resolution power spectrum real, allocatable :: s2(:) !CCF of s() with 4 tones + real, allocatable :: sbase(:) !noise baseline estimate real xdb(-3:3) !Model 4-tone CCF peaks real minsync data xdb/0.25,0.50,0.75,1.0,0.75,0.50,0.25/ @@ -668,17 +675,17 @@ contains signal_bw=4*(12000.0/nsps)*hmod analysis_bw=min(4800.0,fb)-max(100.0,fa) xnoise_bw=10.0*signal_bw !Is this a good compromise? - if(analysis_bw.gt.xnoise_bw) then - ina=ia - inb=ib - else - fcenter=(fa+fb)/2.0 !If noise_bw > analysis_bw, - fl = max(100.0,fcenter-xnoise_bw/2.)/df2 !we'll search over noise_bw + if(xnoise_bw .lt. 400.0) xnoise_bw=400.0 + if(analysis_bw.gt.xnoise_bw) then !Estimate noise baseline over analysis bw + ina=0.9*ia + inb=min(int(1.1*ib),nfft1/2) + else !Estimate noise baseline over noise bw + fcenter=(fa+fb)/2.0 + fl = max(100.0,fcenter-xnoise_bw/2.)/df2 fh = min(4800.0,fcenter+xnoise_bw/2.)/df2 ina=nint(fl) inb=nint(fh) endif - nnw=nint(48000.*nsps*2./fs) allocate (s(nnw)) s=0. !Compute low-resolution power spectrum @@ -692,12 +699,16 @@ contains ina=max(ina,1+3*hmod) !Don't run off the ends inb=min(inb,nnw-3*hmod) allocate (s2(nnw)) + allocate (sbase(nnw)) s2=0. do i=ina,inb !Compute CCF of s() and 4 tones s2(i)=s(i-hmod*3) + s(i-hmod) +s(i+hmod) +s(i+hmod*3) enddo - call pctile(s2(ina+hmod*3:inb-hmod*3),inb-ina+1-hmod*6,30,base) - s2=s2/base !Normalize wrt noise level + npct=30 + call fst4_baseline(s2,nnw,ina+hmod*3,inb-hmod*3,npct,sbase) + if(any(sbase(ina:inb).le.0.0)) return + s2(ina:inb)=s2(ina:inb)/sbase(ina:inb) !Normalize wrt noise level + ncand=0 candidates=0 if(ia.lt.3) ia=3 @@ -717,12 +728,11 @@ contains s2(k)=max(0.,s2(k)-0.9*pval*xdb(i)) endif enddo -! s2(max(1,iploc-2*hmod*3):min(nnw,iploc+2*hmod*3))=0.0 ncand=ncand+1 candidates(ncand,1)=df2*iploc !Candidate frequency candidates(ncand,2)=pval !Rough estimate of SNR + candidates(ncand,5)=sbase(iploc) enddo - return end subroutine get_candidates_fst4 From f0669360438687f21b20189bc752b7675953d5fb Mon Sep 17 00:00:00 2001 From: K9AN Date: Fri, 28 Aug 2020 12:25:17 -0500 Subject: [PATCH 427/520] Remove an unused variable from fst4_decode --- lib/fst4_decode.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index d609df115..a3c2e2a98 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -57,7 +57,6 @@ contains integer itone(NN) integer hmod integer*1 apmask(240),cw(240) - integer*1 hbits(320) integer*1 message101(101),message74(74),message77(77) integer*1 rvec(77) integer apbits(240) From b5392486248324a2fd5d4691b61a3f7d25ca35a0 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 1 Sep 2020 17:31:44 +0100 Subject: [PATCH 428/520] Remove some diagnostic prints --- Configuration.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Configuration.cpp b/Configuration.cpp index 1f94b83e8..43c0e77de 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -901,7 +901,7 @@ auto Configuration::special_op_id () const -> SpecialOperatingActivity void Configuration::set_location (QString const& grid_descriptor) { // change the dynamic grid - qDebug () << "Configuration::set_location - location:" << grid_descriptor; + // qDebug () << "Configuration::set_location - location:" << grid_descriptor; m_->dynamic_grid_ = grid_descriptor.trimmed (); } @@ -2610,7 +2610,7 @@ void Configuration::impl::transceiver_frequency (Frequency f) current_offset_ = stations_.offset (f); cached_rig_state_.frequency (apply_calibration (f + current_offset_)); - qDebug () << "Configuration::impl::transceiver_frequency: n:" << transceiver_command_number_ + 1 << "f:" << f; + // qDebug () << "Configuration::impl::transceiver_frequency: n:" << transceiver_command_number_ + 1 << "f:" << f; Q_EMIT set_transceiver (cached_rig_state_, ++transceiver_command_number_); } @@ -2636,7 +2636,7 @@ void Configuration::impl::transceiver_tx_frequency (Frequency f) cached_rig_state_.tx_frequency (apply_calibration (f + current_tx_offset_)); } - qDebug () << "Configuration::impl::transceiver_tx_frequency: n:" << transceiver_command_number_ + 1 << "f:" << f; + // qDebug () << "Configuration::impl::transceiver_tx_frequency: n:" << transceiver_command_number_ + 1 << "f:" << f; Q_EMIT set_transceiver (cached_rig_state_, ++transceiver_command_number_); } } @@ -2645,7 +2645,7 @@ void Configuration::impl::transceiver_mode (MODE m) { cached_rig_state_.online (true); // we want the rig online cached_rig_state_.mode (m); - qDebug () << "Configuration::impl::transceiver_mode: n:" << transceiver_command_number_ + 1 << "m:" << m; + // qDebug () << "Configuration::impl::transceiver_mode: n:" << transceiver_command_number_ + 1 << "m:" << m; Q_EMIT set_transceiver (cached_rig_state_, ++transceiver_command_number_); } @@ -2654,7 +2654,7 @@ void Configuration::impl::transceiver_ptt (bool on) cached_rig_state_.online (true); // we want the rig online set_cached_mode (); cached_rig_state_.ptt (on); - qDebug () << "Configuration::impl::transceiver_ptt: n:" << transceiver_command_number_ + 1 << "on:" << on; + // qDebug () << "Configuration::impl::transceiver_ptt: n:" << transceiver_command_number_ + 1 << "on:" << on; Q_EMIT set_transceiver (cached_rig_state_, ++transceiver_command_number_); } From a00473fa9c234bafc0be3bee553ebcd7bbeb9650 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 1 Sep 2020 17:32:22 +0100 Subject: [PATCH 429/520] Select band by wavelength only if a working frequency is available --- validators/LiveFrequencyValidator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validators/LiveFrequencyValidator.cpp b/validators/LiveFrequencyValidator.cpp index 6d2205807..873224920 100644 --- a/validators/LiveFrequencyValidator.cpp +++ b/validators/LiveFrequencyValidator.cpp @@ -54,7 +54,7 @@ void LiveFrequencyValidator::fixup (QString& input) const input = input.toLower (); QVector frequencies; - for (auto const& item : frequencies_->frequency_list ()) + for (auto const& item : *frequencies_) { if (bands_->find (item.frequency_) == input) { From a623ed0baf8db9534414162ae5bc84e1cc7776a0 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 2 Sep 2020 21:08:25 +0100 Subject: [PATCH 430/520] Ensure band/frequency combo box edit shows correct band --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index fca346bb5..00d34a4c2 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -6621,8 +6621,8 @@ void MainWindow::switch_mode (Mode mode) m_fastGraph->setMode(m_mode); m_config.frequencies ()->filter (m_config.region (), mode); auto const& row = m_config.frequencies ()->best_working_frequency (m_freqNominal); + ui->bandComboBox->setCurrentIndex (row); if (row >= 0) { - ui->bandComboBox->setCurrentIndex (row); on_bandComboBox_activated (row); } ui->rptSpinBox->setSingleStep(1); From c5349f8da9f03081e1cd6bdae1ac169b7c80101f Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 2 Sep 2020 21:25:58 +0100 Subject: [PATCH 431/520] Dynamic update of on DX echo Doppler shift correction Tnx Bob, KA1GT, and Charlie, G3WDG. --- widgets/astro.cpp | 83 ++++++++++++++++++++++------------------------- widgets/astro.h | 4 +-- 2 files changed, 41 insertions(+), 46 deletions(-) diff --git a/widgets/astro.cpp b/widgets/astro.cpp index 4a07c4866..cf4a05274 100644 --- a/widgets/astro.cpp +++ b/widgets/astro.cpp @@ -42,7 +42,7 @@ Astro::Astro(QSettings * settings, Configuration const * configuration, QWidget , m_DopplerMethod {0} , m_dop {0} , m_dop00 {0} - , m_dx_two_way_dop {0} + //, m_dx_two_way_dop {0} { ui_->setupUi (this); setWindowTitle (QApplication::applicationName () + " - " + tr ("Astronomical Data")); @@ -77,8 +77,8 @@ void Astro::read_settings () case 1: ui_->rbFullTrack->setChecked (true); break; case 2: ui_->rbConstFreqOnMoon->setChecked (true); break; case 3: ui_->rbOwnEcho->setChecked (true); break; - case 4: ui_->rbOnDxEcho->setChecked (true); break; - case 5: ui_->rbCallDx->setChecked (true); break; + case 4: ui_->rbOnDxEcho->setChecked (true); break; + case 5: ui_->rbCallDx->setChecked (true); break; } move (settings_->value ("window/pos", pos ()).toPoint ()); } @@ -168,38 +168,35 @@ auto Astro::astroUpdate(QDateTime const& t, QString const& mygrid, QString const switch (m_DopplerMethod) { case 1: // All Doppler correction done here; DX station stays at nominal dial frequency. - correction.rx = m_dop; - break; - case 4: // All Doppler correction done here; DX station stays at nominal dial frequency. (Trial for OnDxEcho) - correction.rx = m_dop; - break; - //case 5: // All Doppler correction done here; DX station stays at nominal dial frequency. - + correction.rx = m_dop; + break; + case 4: // All Doppler correction done here; DX station stays at nominal dial frequency. (Trial for OnDxEcho) + correction.rx = m_dop; + break; + //case 5: // All Doppler correction done here; DX station stays at nominal dial frequency. case 3: // Both stations do full correction on Rx and none on Tx //correction.rx = dx_is_self ? m_dop00 : m_dop; - correction.rx = m_dop00; // Now always sets RX to *own* echo freq + correction.rx = m_dop00; // Now always sets RX to *own* echo freq break; - case 2: + case 2: // Doppler correction to constant frequency on Moon correction.rx = m_dop00 / 2; break; - } switch (m_DopplerMethod) { - case 1: correction.tx = -correction.rx; - break; - case 2: correction.tx = -correction.rx; - break; - case 3: correction.tx = 0; - break; - case 4: // correction.tx = m_dop - m_dop00; - - correction.tx = m_dx_two_way_dop - m_dop; - qDebug () << "correction.tx:" << correction.tx; - break; - case 5: correction.tx = - m_dop00; - break; + case 1: correction.tx = -correction.rx; + break; + case 2: correction.tx = -correction.rx; + break; + case 3: correction.tx = 0; + break; + case 4: // correction.tx = m_dop - m_dop00; + correction.tx = (2 * (m_dop - (m_dop00/2))) - m_dop; + //qDebug () << "correction.tx:" << correction.tx; + break; + case 5: correction.tx = - m_dop00; + break; } //if (3 != m_DopplerMethod || 4 != m_DopplerMethod) correction.tx = -correction.rx; @@ -242,22 +239,20 @@ auto Astro::astroUpdate(QDateTime const& t, QString const& mygrid, QString const case 2: // Doppler correction to constant frequency on Moon - offset = m_dop00 / 2; - break; - - case 4: - // Doppler correction for OnDxEcho - offset = m_dop - m_dx_two_way_dop; + offset = m_dop00 / 2; + break; + + case 4: + // Doppler correction for OnDxEcho + offset = m_dop - (2 * (m_dop - (m_dop00/2))); + break; + + //case 5: correction.tx = - m_dop00; + case 5: offset = m_dop00;// version for _7 break; - - //case 5: correction.tx = - m_dop00; - case 5: offset = m_dop00;// version for _7 - break; - - } correction.tx = -offset; - qDebug () << "correction.tx (no tx qsy):" << correction.tx; + //qDebug () << "correction.tx (no tx qsy):" << correction.tx; } } return correction; @@ -281,14 +276,14 @@ void Astro::on_rbFullTrack_clicked() Q_EMIT tracking_update (); } -void Astro::on_rbOnDxEcho_clicked(bool checked) +void Astro::on_rbOnDxEcho_clicked() //on_rbOnDxEcho_clicked(bool checked) { m_DopplerMethod = 4; check_split (); - if (checked) { - m_dx_two_way_dop = 2 * (m_dop - (m_dop00/2)); - qDebug () << "Starting Doppler:" << m_dx_two_way_dop; - } + //if (checked) { + // m_dx_two_way_dop = 2 * (m_dop - (m_dop00/2)); + // qDebug () << "Starting Doppler:" << m_dx_two_way_dop; + //} Q_EMIT tracking_update (); } diff --git a/widgets/astro.h b/widgets/astro.h index 4f7f71d5b..937c11494 100644 --- a/widgets/astro.h +++ b/widgets/astro.h @@ -59,7 +59,7 @@ private slots: void on_rbFullTrack_clicked(); void on_rbOwnEcho_clicked(); void on_rbNoDoppler_clicked(); - void on_rbOnDxEcho_clicked(bool); + void on_rbOnDxEcho_clicked(); void on_rbCallDx_clicked(); void on_cbDopplerTracking_toggled(bool); @@ -75,7 +75,7 @@ private: qint32 m_DopplerMethod; int m_dop; int m_dop00; - int m_dx_two_way_dop; + //int m_dx_two_way_dop; }; inline From dc423ff28b7c6b243069e18f1a4e647a81d862cb Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 3 Sep 2020 19:35:50 +0100 Subject: [PATCH 432/520] Documentation updates for On DX Echo Doppler correction mode Tnx Charlie, G3WDG, and Bob, KA1GT. --- Release_Notes.txt | 13 +++++++++++++ doc/user_guide/en/vhf-features.adoc | 18 ++++++++---------- widgets/about.cpp | 6 +++--- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/Release_Notes.txt b/Release_Notes.txt index 871d893c5..22fca397b 100644 --- a/Release_Notes.txt +++ b/Release_Notes.txt @@ -13,6 +13,19 @@ Copyright 2001 - 2020 by Joe Taylor, K1JT. + Release: WSJT-X 2.3.0-rc1 + Sept DD, 2020 + ------------------------- + +WSJT-X 2.3.0-rc1 is a beta-quality release candidate for a program +upgrade that provides a number of new features and capabilities. +These include: + + - The *On Dx Echo* Doppler compensation method has been modified in + response to feedback from Users. Basic functionality is unchanged. + See the User Guide (Section 8.1) for more information. + + Release: WSJT-X 2.2.2 June 22, 2020 --------------------- diff --git a/doc/user_guide/en/vhf-features.adoc b/doc/user_guide/en/vhf-features.adoc index 96433eef0..6349500bf 100644 --- a/doc/user_guide/en/vhf-features.adoc +++ b/doc/user_guide/en/vhf-features.adoc @@ -92,16 +92,14 @@ thing, both stations will have the required Doppler compensation. Moreover, anyone else using this option will hear both of you without the need for manual frequency changes. -- Select *On Dx Echo* when your QSO partner is not using automated -Doppler tracking, and announces his/her transmit frequency and listening -on their own echo frequency. When clicked, this Doppler method will -set your rig frequency on receive to correct for the mutual Doppler -shift. On transmit, your rig frequency will be set so that your -QSO partner will receive you on the same frequency as their own echo -at the start of the QSO. As the QSO proceeds, your QSO partner will -receive you on this starting frequency so that they do not have to -retune their receiver as the Doppler changes. Sked frequency in this -case is set to that announced by your QSO partner. +- Select *On Dx Echo* when your QSO partner announces his/her transmit +frequency and that they are listening on their own echo +frequency. When clicked, this Doppler method will set your rig +frequency on receive to correct for the mutual Doppler shift. On +transmit, your rig frequency will be set so that your QSO partner will +receive you on the same frequency as they receive their own echo. +Sked frequency in this case is set to that announced by your QSO +partner. - Select *Call DX* after tuning the radio manually to find a station, with the Doppler mode initially set to *None*. You may be tuning the band diff --git a/widgets/about.cpp b/widgets/about.cpp index cc7f8a337..c8b630823 100644 --- a/widgets/about.cpp +++ b/widgets/about.cpp @@ -21,9 +21,9 @@ CAboutDlg::CAboutDlg(QWidget *parent) : "© 2001-2020 by Joe Taylor, K1JT, Bill Somerville, G4WJS,
" "and Steve Franke, K9AN.

" "We gratefully acknowledge contributions from AC6SL, AE4JY,
" - "DF2ET, DJ0OT, G3WDG, G4KLA, IV3NWV, IW3RAB, K3WYC, KA6MAL,
" - "KA9Q, KB1ZMX, KD6EKQ, KI7MT, KK1D, ND0B, PY2SDR, VE1SKY,
" - "VK3ACF, VK4BDJ, VK7MO, W4TI, W4TV, and W9MDB.

" + "DF2ET, DJ0OT, G3WDG, G4KLA, IV3NWV, IW3RAB, KA1GT, K3WYC,
" + "KA6MAL, KA9Q, KB1ZMX, KD6EKQ, KI7MT, KK1D, ND0B, PY2SDR,
" + "VE1SKY, VK3ACF, VK4BDJ, VK7MO, W4TI, W4TV, and W9MDB.

" "WSJT-X is licensed under the terms of Version 3
" "of the GNU General Public License (GPL)

" "
" From a943aa04e26e4d54fdcd2afa159c209a9ece7305 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 4 Sep 2020 14:15:10 -0400 Subject: [PATCH 433/520] Update default FST4/FST4W frequencies for 2190 and 630 m bands. --- models/FrequencyList.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/models/FrequencyList.cpp b/models/FrequencyList.cpp index 9b63daaa9..6829514c7 100644 --- a/models/FrequencyList.cpp +++ b/models/FrequencyList.cpp @@ -46,16 +46,14 @@ namespace {20000000, Modes::FreqCal, IARURegions::ALL}, {136000, Modes::WSPR, IARURegions::ALL}, - {136200, Modes::FST4W, IARURegions::ALL}, - {136130, Modes::JT65, IARURegions::ALL}, + {136000, Modes::FST4, IARURegions::ALL}, + {136000, Modes::FST4W, IARURegions::ALL}, {136130, Modes::JT9, IARURegions::ALL}, - {136130, Modes::FST4, IARURegions::ALL}, - {474200, Modes::JT65, IARURegions::ALL}, {474200, Modes::JT9, IARURegions::ALL}, {474200, Modes::FST4, IARURegions::ALL}, {474200, Modes::WSPR, IARURegions::ALL}, - {474400, Modes::FST4W, IARURegions::ALL}, + {474200, Modes::FST4W, IARURegions::ALL}, {1836600, Modes::WSPR, IARURegions::ALL}, {1836800, Modes::FST4W, IARURegions::ALL}, From f24d15b16e772607f0d70477b842c48b617de2c1 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 4 Sep 2020 15:15:30 -0400 Subject: [PATCH 434/520] Eliminate the FST4/FST4W submodes with hmod > 1. --- lib/decoder.f90 | 1 + widgets/mainwindow.cpp | 25 +++---------------------- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index e7b9ebfa2..455362982 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -191,6 +191,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) ! We're in FST4 mode ndepth=iand(params%ndepth,3) iwspr=0 + params%nsubmode=0 call timer('dec240 ',0) call my_fst4%decode(fst4_decoded,id2,params%nutc, & params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 00d34a4c2..bb094a247 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4033,7 +4033,7 @@ void MainWindow::guiUpdate() } genfst4_(message,&ichk,msgsent,const_cast (fst4msgbits), const_cast(itone), &iwspr, 37, 37); - int hmod=int(pow(2.0,double(m_nSubMode))); + int hmod=1; //No FST4/W submodes int nsps=720; if(m_TRperiod==30) nsps=1680; if(m_TRperiod==60) nsps=3888; @@ -4052,18 +4052,6 @@ void MainWindow::guiUpdate() &fsample,&hmod,&f0,&icmplx,foxcom_.wave,foxcom_.wave); QString t = QString::fromStdString(message).trimmed(); - bool both=(t=="CQ BOTH K1JT FN20" or t=="CQ BOTH K9AN EN50"); - if(both) { - float wave_both[15*48000]; - memcpy(wave_both,foxcom_.wave,4*15*48000); //Copy wave[] into wave_both[] - f0=f0 + 200 + 25; - hmod=2; - gen_fst4wave_(const_cast(itone),&nsym,&nsps,&nwave, - &fsample,&hmod,&f0,&icmplx,foxcom_.wave,foxcom_.wave); - for(int i=0; i<15*48000; i++) { - foxcom_.wave[i]=0.5*(wave_both[i] + foxcom_.wave[i]); - } - } } if(SpecOp::EU_VHF==m_config.special_op_id()) { @@ -5998,20 +5986,16 @@ void MainWindow::displayWidgets(qint64 n) void MainWindow::on_actionFST4_triggered() { - int nsub=m_nSubMode; on_actionJT65_triggered(); ui->label_6->setText(tr ("Band Activity")); ui->label_7->setText(tr ("Rx Frequency")); - ui->sbSubmode->setMaximum(3); - m_nSubMode=nsub; - ui->sbSubmode->setValue(m_nSubMode); m_mode="FST4"; m_modeTx="FST4"; ui->actionFST4->setChecked(true); WSPR_config(false); bool bVHF=m_config.enable_VHF_features(); // 0123456789012345678901234567890123 - displayWidgets(nWidgets("1111110001001111000100000001000000")); + displayWidgets(nWidgets("1111110001001110000100000001000000")); setup_status_bar (bVHF); ui->sbTR->values ({15, 30, 60, 120, 300, 900, 1800}); on_sbTR_valueChanged (ui->sbTR->value()); @@ -6036,12 +6020,9 @@ void MainWindow::on_actionFST4W_triggered() displayWidgets(nWidgets("0000000000000000010100000000000001")); bool bVHF=m_config.enable_VHF_features(); setup_status_bar (bVHF); - m_nSubMode=0; - ui->sbSubmode->setValue(m_nSubMode); ui->band_hopping_group_box->setChecked(false); ui->band_hopping_group_box->setVisible(false); on_sbTR_FST4W_valueChanged (ui->sbTR_FST4W->value ()); - ui->sbSubmode->setMaximum(3); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); m_wideGraph->setPeriod(m_TRperiod,6912); @@ -7359,7 +7340,7 @@ void MainWindow::transmit (double snr) if(m_TRperiod==300) nsps=21504; if(m_TRperiod==900) nsps=66560; if(m_TRperiod==1800) nsps=134400; - int hmod=int(pow(2.0,double(m_nSubMode))); + int hmod=1; //No FST4/W submodes double dfreq=hmod*12000.0/nsps; double f0=ui->WSPRfreqSpinBox->value() - m_XIT; if(!m_tune) f0 += + 1.5*dfreq; From 02928787b14689cbf1070824805593da0beffd77 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 4 Sep 2020 15:38:04 -0400 Subject: [PATCH 435/520] Save and restore the current setting of the FST4W RoundRobin control. --- widgets/mainwindow.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index bb094a247..0704b0b93 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1160,6 +1160,7 @@ void MainWindow::writeSettings() m_settings->setValue("OutBufSize",outBufSize); m_settings->setValue ("HoldTxFreq", ui->cbHoldTxFreq->isChecked ()); m_settings->setValue("PctTx", ui->sbTxPercent->value ()); + m_settings->setValue("RoundRobin",ui->RoundRobin->currentText()); m_settings->setValue("dBm",m_dBm); m_settings->setValue("RR73",m_send_RR73); m_settings->setValue ("WSPRPreferType1", ui->WSPR_prefer_type_1_check_box->isChecked ()); @@ -1252,6 +1253,7 @@ void MainWindow::readSettings() m_ndepth=m_settings->value("NDepth",3).toInt(); ui->sbTxPercent->setValue (m_settings->value ("PctTx", 20).toInt ()); on_sbTxPercent_valueChanged (ui->sbTxPercent->value ()); + ui->RoundRobin->setCurrentText(m_settings->value("RoundRobin",tr("Random")).toString()); m_dBm=m_settings->value("dBm",37).toInt(); m_send_RR73=m_settings->value("RR73",false).toBool(); if(m_send_RR73) { From 1471ac03128944b2c51ed3973a6e60664c2bd380 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 4 Sep 2020 15:41:19 -0400 Subject: [PATCH 436/520] Remove all FST4/FST4W default frequencies for bands 3.5 MHz and higher. --- models/FrequencyList.cpp | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/models/FrequencyList.cpp b/models/FrequencyList.cpp index 6829514c7..ec3c185ff 100644 --- a/models/FrequencyList.cpp +++ b/models/FrequencyList.cpp @@ -91,10 +91,8 @@ namespace // {3570000, Modes::JT65, IARURegions::ALL}, // JA compatible {3572000, Modes::JT9, IARURegions::ALL}, - {3572000, Modes::FST4, IARURegions::ALL}, {3573000, Modes::FT8, IARURegions::ALL}, // above as below JT65 is out of DM allocation {3568600, Modes::WSPR, IARURegions::ALL}, // needs guard marker and lock out - {3568800, Modes::FST4W, IARURegions::ALL}, {3575000, Modes::FT4, IARURegions::ALL}, // provisional {3568000, Modes::FT4, IARURegions::R3}, // provisional @@ -130,11 +128,9 @@ namespace // 7110 LSB EMCOMM // {7038600, Modes::WSPR, IARURegions::ALL}, - {7038800, Modes::FST4W, IARURegions::ALL}, {7074000, Modes::FT8, IARURegions::ALL}, {7076000, Modes::JT65, IARURegions::ALL}, {7078000, Modes::JT9, IARURegions::ALL}, - {7078000, Modes::FST4, IARURegions::ALL}, {7047500, Modes::FT4, IARURegions::ALL}, // provisional - moved // up 500Hz to clear // W1AW code practice QRG @@ -168,9 +164,7 @@ namespace {10136000, Modes::FT8, IARURegions::ALL}, {10138000, Modes::JT65, IARURegions::ALL}, {10138700, Modes::WSPR, IARURegions::ALL}, - {10138900, Modes::FST4W, IARURegions::ALL}, {10140000, Modes::JT9, IARURegions::ALL}, - {10140000, Modes::FST4, IARURegions::ALL}, {10140000, Modes::FT4, IARURegions::ALL}, // provisional // Band plans (all USB dial unless stated otherwise) @@ -211,11 +205,9 @@ namespace // 14106.5 OLIVIA 1000 (main QRG) // {14095600, Modes::WSPR, IARURegions::ALL}, - {14095800, Modes::FST4W, IARURegions::ALL}, {14074000, Modes::FT8, IARURegions::ALL}, {14076000, Modes::JT65, IARURegions::ALL}, {14078000, Modes::JT9, IARURegions::ALL}, - {14078000, Modes::FST4, IARURegions::ALL}, {14080000, Modes::FT4, IARURegions::ALL}, // provisional // Band plans (all USB dial unless stated otherwise) @@ -248,33 +240,25 @@ namespace {18100000, Modes::FT8, IARURegions::ALL}, {18102000, Modes::JT65, IARURegions::ALL}, {18104000, Modes::JT9, IARURegions::ALL}, - {18104000, Modes::FST4, IARURegions::ALL}, {18104000, Modes::FT4, IARURegions::ALL}, // provisional {18104600, Modes::WSPR, IARURegions::ALL}, - {18104800, Modes::FST4W, IARURegions::ALL}, {21074000, Modes::FT8, IARURegions::ALL}, {21076000, Modes::JT65, IARURegions::ALL}, {21078000, Modes::JT9, IARURegions::ALL}, - {21078000, Modes::FST4, IARURegions::ALL}, {21094600, Modes::WSPR, IARURegions::ALL}, - {21094800, Modes::FST4W, IARURegions::ALL}, {21140000, Modes::FT4, IARURegions::ALL}, {24915000, Modes::FT8, IARURegions::ALL}, {24917000, Modes::JT65, IARURegions::ALL}, {24919000, Modes::JT9, IARURegions::ALL}, - {24919000, Modes::FST4, IARURegions::ALL}, {24919000, Modes::FT4, IARURegions::ALL}, // provisional {24924600, Modes::WSPR, IARURegions::ALL}, - {24924800, Modes::FST4W, IARURegions::ALL}, {28074000, Modes::FT8, IARURegions::ALL}, {28076000, Modes::JT65, IARURegions::ALL}, {28078000, Modes::JT9, IARURegions::ALL}, - {28078000, Modes::FST4, IARURegions::ALL}, {28124600, Modes::WSPR, IARURegions::ALL}, - {28124800, Modes::FST4W, IARURegions::ALL}, {28180000, Modes::FT4, IARURegions::ALL}, {50200000, Modes::Echo, IARURegions::ALL}, @@ -285,11 +269,8 @@ namespace {50260000, Modes::MSK144, IARURegions::R3}, {50293000, Modes::WSPR, IARURegions::R2}, {50293000, Modes::WSPR, IARURegions::R3}, - {50293200, Modes::FST4W, IARURegions::R2}, - {50293200, Modes::FST4W, IARURegions::R3}, {50310000, Modes::JT65, IARURegions::ALL}, {50312000, Modes::JT9, IARURegions::ALL}, - {50312000, Modes::FST4, IARURegions::ALL}, {50313000, Modes::FT8, IARURegions::ALL}, {50318000, Modes::FT4, IARURegions::ALL}, // provisional {50323000, Modes::FT8, IARURegions::ALL}, @@ -298,7 +279,6 @@ namespace {70102000, Modes::JT65, IARURegions::R1}, {70104000, Modes::JT9, IARURegions::R1}, {70091000, Modes::WSPR, IARURegions::R1}, - {70091200, Modes::FST4W, IARURegions::R2}, {70230000, Modes::MSK144, IARURegions::R1}, {144120000, Modes::JT65, IARURegions::ALL}, @@ -308,7 +288,6 @@ namespace {144360000, Modes::MSK144, IARURegions::R1}, {144150000, Modes::MSK144, IARURegions::R2}, {144489000, Modes::WSPR, IARURegions::ALL}, - {144489200, Modes::FST4W, IARURegions::R2}, {144120000, Modes::QRA64, IARURegions::ALL}, {222065000, Modes::Echo, IARURegions::R2}, From c1025b7c4c02024d48e4b3aa752553f84f1e63fa Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 5 Sep 2020 10:34:55 -0400 Subject: [PATCH 437/520] Allow user to set center frequency and FTol in FST4W mode. Needs more testing! --- widgets/mainwindow.cpp | 37 +++++++++-- widgets/mainwindow.h | 2 + widgets/mainwindow.ui | 143 +++++++++++++++++++++++++++-------------- widgets/plotter.cpp | 7 +- 4 files changed, 131 insertions(+), 58 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 0704b0b93..71d8f20cf 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1145,6 +1145,8 @@ void MainWindow::writeSettings() m_settings->setValue("RxFreq",ui->RxFreqSpinBox->value()); m_settings->setValue("TxFreq",ui->TxFreqSpinBox->value()); m_settings->setValue("WSPRfreq",ui->WSPRfreqSpinBox->value()); + m_settings->setValue("FST4W_RxFreq",ui->sbFST4W_RxFreq->value()); + m_settings->setValue("FST4W_FTol",ui->sbFST4W_FTol->value()); m_settings->setValue("SubMode",ui->sbSubmode->value()); m_settings->setValue("DTtol",m_DTtol); m_settings->setValue("Ftol", ui->sbFtol->value ()); @@ -1232,8 +1234,11 @@ void MainWindow::readSettings() ui->actionSave_all->setChecked(m_settings->value("SaveAll",false).toBool()); ui->RxFreqSpinBox->setValue(0); // ensure a change is signaled ui->RxFreqSpinBox->setValue(m_settings->value("RxFreq",1500).toInt()); + ui->sbFST4W_RxFreq->setValue(0); + ui->sbFST4W_RxFreq->setValue(m_settings->value("FST4W_RxFreq",1500).toInt()); m_nSubMode=m_settings->value("SubMode",0).toInt(); ui->sbFtol->setValue (m_settings->value("Ftol", 50).toInt()); + ui->sbFST4W_FTol->setValue(m_settings->value("FST4W_FTol",100).toInt()); m_minSync=m_settings->value("MinSync",0).toInt(); ui->syncSpinBox->setValue(m_minSync); ui->cbAutoSeq->setChecked (m_settings->value ("AutoSeq", false).toBool()); @@ -3079,6 +3084,7 @@ void MainWindow::decode() //decode() dec_data.params.ntol=20; dec_data.params.naggressive=0; } + if(m_mode=="FST4W") dec_data.params.ntol=ui->sbFST4W_FTol->value (); if(dec_data.params.nutc < m_nutc0) m_RxLog = 1; //Date and Time to file "ALL.TXT". if(dec_data.params.newdat==1 and !m_diskData) m_nutc0=dec_data.params.nutc; dec_data.params.ntxmode=9; @@ -5995,10 +6001,9 @@ void MainWindow::on_actionFST4_triggered() m_modeTx="FST4"; ui->actionFST4->setChecked(true); WSPR_config(false); - bool bVHF=m_config.enable_VHF_features(); // 0123456789012345678901234567890123 displayWidgets(nWidgets("1111110001001110000100000001000000")); - setup_status_bar (bVHF); + setup_status_bar(false); ui->sbTR->values ({15, 30, 60, 120, 300, 900, 1800}); on_sbTR_valueChanged (ui->sbTR->value()); ui->cbAutoSeq->setChecked(true); @@ -6013,15 +6018,16 @@ void MainWindow::on_actionFST4_triggered() void MainWindow::on_actionFST4W_triggered() { - on_actionFST4_triggered(); m_mode="FST4W"; m_modeTx="FST4W"; + m_nsps=6912; //For symspec only + m_FFTSize = m_nsps / 2; + Q_EMIT FFTSize(m_FFTSize); WSPR_config(true); ui->actionFST4W->setChecked(true); // 0123456789012345678901234567890123 displayWidgets(nWidgets("0000000000000000010100000000000001")); - bool bVHF=m_config.enable_VHF_features(); - setup_status_bar (bVHF); + setup_status_bar(false); ui->band_hopping_group_box->setChecked(false); ui->band_hopping_group_box->setVisible(false); on_sbTR_FST4W_valueChanged (ui->sbTR_FST4W->value ()); @@ -6029,6 +6035,8 @@ void MainWindow::on_actionFST4W_triggered() m_wideGraph->setModeTx(m_modeTx); m_wideGraph->setPeriod(m_TRperiod,6912); m_wideGraph->setTxFreq(ui->WSPRfreqSpinBox->value()); + m_wideGraph->setRxFreq(ui->sbFST4W_RxFreq->value()); + m_wideGraph->setTol(ui->sbFST4W_FTol->value()); ui->sbFtol->setValue(100); ui->RxFreqSpinBox->setValue(1500); switch_mode (Modes::FST4W); @@ -6644,9 +6652,12 @@ void MainWindow::WSPR_config(bool b) ui->label_7->setVisible(!b and ui->cbMenus->isChecked()); ui->logQSOButton->setVisible(!b); ui->DecodeButton->setEnabled(!b); - ui->sbTxPercent->setEnabled (m_mode != "FST4W" || tr ("Random") == ui->RoundRobin->currentText ()); + bool bFST4W=(m_mode=="FST4W"); + ui->sbTxPercent->setEnabled(!bFST4W or (tr("Random") == ui->RoundRobin->currentText())); ui->band_hopping_group_box->setVisible(true); - ui->RoundRobin->setVisible(m_mode=="FST4W"); + ui->RoundRobin->setVisible(bFST4W); + ui->sbFST4W_RxFreq->setVisible(bFST4W); + ui->sbFST4W_FTol->setVisible(bFST4W); ui->RoundRobin->lineEdit()->setAlignment(Qt::AlignCenter); if(b and m_mode!="Echo" and m_mode!="FST4W") { QString t="UTC dB DT Freq Drift Call Grid dBm "; @@ -8126,6 +8137,18 @@ void MainWindow::on_WSPRfreqSpinBox_valueChanged(int n) ui->TxFreqSpinBox->setValue(n); } +void MainWindow::on_sbFST4W_RxFreq_valueChanged(int n) +{ + m_wideGraph->setRxFreq(n); + statusUpdate (); +} + +void MainWindow::on_sbFST4W_FTol_valueChanged(int n) +{ + m_wideGraph->setTol(n); + statusUpdate (); +} + void MainWindow::on_pbTxNext_clicked(bool b) { if (b && !ui->autoButton->isChecked ()) diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 48cdf0c01..694316969 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -288,6 +288,8 @@ private slots: void TxAgain(); void uploadResponse(QString response); void on_WSPRfreqSpinBox_valueChanged(int n); + void on_sbFST4W_RxFreq_valueChanged(int n); + void on_sbFST4W_FTol_valueChanged(int n); void on_pbTxNext_clicked(bool b); void on_actionEcho_Graph_triggered(); void on_actionEcho_triggered(); diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index f16f26c42..e315ba235 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -1195,7 +1195,7 @@ When not checked you can view the calibration results. QTabWidget::Triangular - 0 + 1 @@ -2159,69 +2159,50 @@ list. The list can be maintained in Settings (F2). - - - Percentage of minute sequences devoted to transmitting. - - - QSpinBox:enabled[notx="true"] { - color: rgb(0, 0, 0); - background-color: rgb(255, 255, 0); -} - + Qt::AlignCenter - % + Hz - Tx Pct - - - 100 - - - - - - - Qt::AlignCenter - - - s - - - T/R + Rx - 15 + 100 - 1800 + 4900 + + + 100 + + + 1500 - - - Band Hopping + + + Qt::AlignCenter - - true + + Hz + + + F Tol + + + 100 + + + 500 + + + 100 - - - - - Choose bands and times of day for band-hopping. - - - Schedule ... - - - - @@ -2339,6 +2320,72 @@ list. The list can be maintained in Settings (F2). + + + + Percentage of minute sequences devoted to transmitting. + + + QSpinBox:enabled[notx="true"] { + color: rgb(0, 0, 0); + background-color: rgb(255, 255, 0); +} + + + Qt::AlignCenter + + + % + + + Tx Pct + + + 100 + + + + + + + Qt::AlignCenter + + + s + + + T/R + + + 15 + + + 1800 + + + + + + + Band Hopping + + + true + + + + + + Choose bands and times of day for band-hopping. + + + Schedule ... + + + + + + diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index c21d7e5f0..9fdf66cef 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -48,7 +48,8 @@ CPlotter::CPlotter(QWidget *parent) : //CPlotter Constructor m_Percent2DScreen0 {0}, m_rxFreq {1020}, m_txFreq {0}, - m_startFreq {0} + m_startFreq {0}, + m_tol {100} { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); setFocusPolicy(Qt::StrongFocus); @@ -485,8 +486,8 @@ void CPlotter::DrawOverlay() //DrawOverlay() } if(m_mode=="FST4W") { - x1=XfromFreq(2600); - x2=XfromFreq(2700); + x1=XfromFreq(m_rxFreq-m_tol); + x2=XfromFreq(m_rxFreq+m_tol); painter0.drawLine(x1,26,x2,26); } From 844fe26368eacfd69fe04630ee1c4259c12d650d Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 5 Sep 2020 11:53:23 -0400 Subject: [PATCH 438/520] Fix "on_actionFST4_triggered()" so that it does not call another mode setup routine. --- widgets/mainwindow.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 71d8f20cf..d3d1954da 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5994,12 +5994,14 @@ void MainWindow::displayWidgets(qint64 n) void MainWindow::on_actionFST4_triggered() { - on_actionJT65_triggered(); - ui->label_6->setText(tr ("Band Activity")); - ui->label_7->setText(tr ("Rx Frequency")); m_mode="FST4"; m_modeTx="FST4"; ui->actionFST4->setChecked(true); + m_nsps=6912; //For symspec only + m_FFTSize = m_nsps / 2; + Q_EMIT FFTSize(m_FFTSize); + ui->label_6->setText(tr ("Band Activity")); + ui->label_7->setText(tr ("Rx Frequency")); WSPR_config(false); // 0123456789012345678901234567890123 displayWidgets(nWidgets("1111110001001110000100000001000000")); @@ -6020,11 +6022,11 @@ void MainWindow::on_actionFST4W_triggered() { m_mode="FST4W"; m_modeTx="FST4W"; + ui->actionFST4W->setChecked(true); m_nsps=6912; //For symspec only m_FFTSize = m_nsps / 2; Q_EMIT FFTSize(m_FFTSize); WSPR_config(true); - ui->actionFST4W->setChecked(true); // 0123456789012345678901234567890123 displayWidgets(nWidgets("0000000000000000010100000000000001")); setup_status_bar(false); From 01a1688b321e57566c8b6dd49eda2e0ee3dfb31c Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 5 Sep 2020 13:14:40 -0400 Subject: [PATCH 439/520] FST4 and FST4W decoder: get freq range from nfqso and ntol; remove BCD submodes, i.e. hmod=2, 4, 8. --- lib/decoder.f90 | 10 ++++---- lib/fst4_decode.f90 | 58 +++++++++++++-------------------------------- 2 files changed, 21 insertions(+), 47 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 455362982..8e9033e4e 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -194,9 +194,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) params%nsubmode=0 call timer('dec240 ',0) call my_fst4%decode(fst4_decoded,id2,params%nutc, & - params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & - params%nsubmode,ndepth,params%ntr,params%nexp_decode, & - params%ntol,params%emedelay, & + params%nQSOProgress,params%nfqso,ndepth,params%ntr, & + params%nexp_decode,params%ntol,params%emedelay, & logical(params%lapcqonly),mycall,hiscall,iwspr) call timer('dec240 ',1) go to 800 @@ -208,9 +207,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) iwspr=1 call timer('dec240 ',0) call my_fst4%decode(fst4_decoded,id2,params%nutc, & - params%nQSOProgress,params%nfqso,params%nfa,params%nfb, & - params%nsubmode,ndepth,params%ntr,params%nexp_decode, & - params%ntol,params%emedelay, & + params%nQSOProgress,params%nfqso,ndepth,params%ntr, & + params%nexp_decode,params%ntol,params%emedelay, & logical(params%lapcqonly),mycall,hiscall,iwspr) call timer('dec240 ',1) go to 800 diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index a3c2e2a98..33f383810 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -29,9 +29,9 @@ module fst4_decode contains - subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfqso, & - nfa,nfb,nsubmode,ndepth,ntrperiod,nexp_decode,ntol, & - emedelay,lapcqonly,mycall,hiscall,iwspr) + subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfqso, & + ndepth,ntrperiod,nexp_decode,ntol,emedelay,lapcqonly,mycall, & + hiscall,iwspr) use timer_module, only: timer use packjt77 @@ -64,7 +64,7 @@ contains integer naptypes(0:5,4) ! (nQSOProgress,decoding pass) integer mcq(29),mrrr(19),m73(19),mrr73(19) - logical badsync,unpk77_success,single_decode + logical badsync,unpk77_success logical first,nohiscall,lwspr,ex integer*2 iwave(30*60*12000) @@ -76,14 +76,12 @@ contains data rvec/0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,1,0, & 1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, & 0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/ - data first/.true./ + data first/.true./,hmod/1/ save first,apbits,nappasses,naptypes,mycall0,hiscall0 this%callback => callback - dxcall13=hiscall ! initialize for use in packjt77 mycall13=mycall - fMHz=1.0 if(iwspr.ne.0.and.iwspr.ne.1) return @@ -157,57 +155,43 @@ contains endif !************************************ - hmod=2**nsubmode if(nfqso+nqsoprogress.eq.-999) return Keff=91 nmax=15*12000 - single_decode=iand(nexp_decode,32).eq.32 if(ntrperiod.eq.15) then nsps=720 nmax=15*12000 - ndown=18/hmod !nss=40,80,160,400 - if(hmod.eq.4) ndown=4 - if(hmod.eq.8) ndown=2 + ndown=18 !nss=40,80,160,400 nfft1=int(nmax/ndown)*ndown else if(ntrperiod.eq.30) then nsps=1680 nmax=30*12000 - ndown=42/hmod !nss=40,80,168,336 + ndown=42 !nss=40,80,168,336 nfft1=359856 !nfft2=8568=2^3*3^2*7*17 - if(hmod.eq.4) then - ndown=10 - nfft1=nmax - endif - if(hmod.eq.8) then - ndown=5 - nfft1=nmax - endif else if(ntrperiod.eq.60) then nsps=3888 nmax=60*12000 - ndown=96/hmod !nss=36,81,162,324 - if(hmod.eq.1) ndown=108 + ndown=108 nfft1=7500*96 ! nfft2=7500=2^2*3*5^4 else if(ntrperiod.eq.120) then nsps=8200 nmax=120*12000 - ndown=200/hmod !nss=40,82,164,328 - if(hmod.eq.1) ndown=205 + ndown=205 !nss=40,82,164,328 nfft1=7200*200 ! nfft2=7200=2^5*3^2*5^2 else if(ntrperiod.eq.300) then nsps=21504 nmax=300*12000 - ndown=512/hmod !nss=42,84,168,336 + ndown=512 !nss=42,84,168,336 nfft1=7020*512 ! nfft2=7020=2^2*3^3*5*13 else if(ntrperiod.eq.900) then nsps=66560 nmax=900*12000 - ndown=1664/hmod !nss=40,80,160,320 + ndown=1664 !nss=40,80,160,320 nfft1=6480*1664 ! nfft2=6480=2^4*3^4*5 else if(ntrperiod.eq.1800) then nsps=134400 nmax=1800*12000 - ndown=3360/hmod !nss=40,80,160,320 + ndown=3360 !nss=40,80,160,320 nfft1=6426*3360 ! nfft2=6426=2*3^3*7*17 end if nss=nsps/ndown @@ -218,7 +202,7 @@ contains dt2=1.0/fs2 tt=nsps*dt !Duration of "itone" symbols (s) baud=1.0/tt - sigbw=4.0*hmod*baud + sigbw=4.0*baud nfft2=nfft1/ndown !make sure that nfft1 is exactly nfft2*ndown nfft1=nfft2*ndown nh1=nfft1/2 @@ -232,8 +216,7 @@ contains jittermax=2 norder=3 elseif(ndepth.eq.2) then - nblock=1 - if(hmod.eq.1) nblock=3 + nblock=3 jittermax=0 norder=3 elseif(ndepth.eq.1) then @@ -249,17 +232,11 @@ contains ! The big fft is done once and is used for calculating the smoothed spectrum ! and also for downconverting/downsampling each candidate. call four2a(c_bigfft,nfft1,1,-1,0) !r2c -! call blank2(nfa,nfb,nfft1,c_bigfft,iwave) nhicoh=1 nsyncoh=8 - if(iwspr.eq.1) then - fa=1400.0 - fb=1600.0 - else - fa=max(100,nint(nfqso+1.5*hmod*baud-ntol)) - fb=min(4800,nint(nfqso+1.5*hmod*baud+ntol)) - endif + fa=max(100,nint(nfqso+1.5*baud-ntol)) + fb=min(4800,nint(nfqso+1.5*baud+ntol)) minsync=1.20 if(ntrperiod.eq.15) minsync=1.15 @@ -485,7 +462,7 @@ contains endif nsnr=nint(xsnr) qual=0. - fsig=fc_synced - 1.5*hmod*baud + fsig=fc_synced - 1.5*baud if(ex) then write(21,3021) nutc,icand,itry,nsyncoh,iaptype, & ijitter,ntype,nsync_qual,nharderrors,dmin, & @@ -791,7 +768,6 @@ contains complex, allocatable :: cwave(:) !Reconstructed complex signal complex, allocatable :: g(:) !Channel gain, g(t) in QEX paper real,allocatable :: ss(:) !Computed power spectrum of g(t) - real,allocatable,save :: ssavg(:) !Computed power spectrum of g(t) integer itone(160) !Tones for this message integer*2 iwave(nmax) !Raw Rx data integer hmod !Modulation index From 403d3a10411ff3b98f119b0ca39c41afa049cc32 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 5 Sep 2020 14:09:33 -0400 Subject: [PATCH 440/520] Make "double-click on call" work in FST4 as in oter modes. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index d3d1954da..1c21bb836 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4794,7 +4794,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie ui->TxFreqSpinBox->setValue(frequency); } if(m_mode != "JT4" && m_mode != "JT65" && !m_mode.startsWith ("JT9") && - m_mode != "QRA64" && m_mode!="FT8" && m_mode!="FT4") { + m_mode != "QRA64" && m_mode!="FT8" && m_mode!="FT4" && m_mode!="FST4") { return; } } From 7aeb9d5e2ed20210a5a009300808b319a6d7109a Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 5 Sep 2020 15:11:32 -0400 Subject: [PATCH 441/520] Remove the "Tab 2" option for generating Tx messages. --- widgets/mainwindow.cpp | 211 +++---------------------------- widgets/mainwindow.h | 9 -- widgets/mainwindow.ui | 277 +---------------------------------------- 3 files changed, 15 insertions(+), 482 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 1c21bb836..bd605062a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -565,15 +565,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, } else if (text.isEmpty ()) { ui->tx5->setCurrentText (text); } - } else if (1 == ui->tabWidget->currentIndex ()) { - if (!text.isEmpty ()) { - ui->freeTextMsg->setCurrentText (text); - } - if (send) { - ui->rbFreeText->click (); - } else if (text.isEmpty ()) { - ui->freeTextMsg->setCurrentText (text); - } } QApplication::alert (this); }); @@ -809,17 +800,11 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->tx4->setValidator (new QRegExpValidator {message_alphabet, this}); ui->tx5->setValidator (new QRegExpValidator {message_alphabet, this}); ui->tx6->setValidator (new QRegExpValidator {message_alphabet, this}); - ui->freeTextMsg->setValidator (new QRegExpValidator {message_alphabet, this}); // Free text macros model to widget hook up. ui->tx5->setModel (m_config.macros ()); connect (ui->tx5->lineEdit(), &QLineEdit::editingFinished, [this] () {on_tx5_currentTextChanged (ui->tx5->lineEdit()->text());}); - ui->freeTextMsg->setModel (m_config.macros ()); - connect (ui->freeTextMsg->lineEdit () - , &QLineEdit::editingFinished - , [this] () {on_freeTextMsg_currentTextChanged (ui->freeTextMsg->lineEdit ()->text ());}); - connect(&m_guiTimer, &QTimer::timeout, this, &MainWindow::guiUpdate); m_guiTimer.start(100); //### Don't change the 100 ms! ### @@ -965,9 +950,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, enable_DXCC_entity (m_config.DXCC ()); // sets text window proportions and (re)inits the logbook - ui->label_9->setStyleSheet("QLabel{color: #000000; background-color: #aabec8}"); - ui->label_10->setStyleSheet("QLabel{color: #000000; background-color: #aabec8}"); - // this must be done before initializing the mode as some modes need // to turn off split on the rig e.g. WSPR m_config.transceiver_online (); @@ -1125,7 +1107,6 @@ void MainWindow::writeSettings() m_settings->setValue ("MsgAvgDisplayed", m_msgAvgWidget && m_msgAvgWidget->isVisible ()); m_settings->setValue ("FoxLogDisplayed", m_foxLogWindow && m_foxLogWindow->isVisible ()); m_settings->setValue ("ContestLogDisplayed", m_contestLogWindow && m_contestLogWindow->isVisible ()); - m_settings->setValue ("FreeText", ui->freeTextMsg->currentText ()); m_settings->setValue("ShowMenus",ui->cbMenus->isChecked()); m_settings->setValue("CallFirst",ui->cbFirst->isChecked()); m_settings->setValue("HoundSort",ui->comboBoxHoundSort->currentIndex()); @@ -1209,8 +1190,6 @@ void MainWindow::readSettings() auto displayMsgAvg = m_settings->value ("MsgAvgDisplayed", false).toBool (); auto displayFoxLog = m_settings->value ("FoxLogDisplayed", false).toBool (); auto displayContestLog = m_settings->value ("ContestLogDisplayed", false).toBool (); - if (m_settings->contains ("FreeText")) ui->freeTextMsg->setCurrentText ( - m_settings->value ("FreeText").toString ()); ui->cbMenus->setChecked(m_settings->value("ShowMenus",true).toBool()); ui->cbFirst->setChecked(m_settings->value("CallFirst",true).toBool()); ui->comboBoxHoundSort->setCurrentIndex(m_settings->value("HoundSort",3).toInt()); @@ -2123,9 +2102,6 @@ void MainWindow::keyPressEvent (QKeyEvent * e) if(ui->tabWidget->currentIndex()==0) { ui->tx5->clearEditText(); ui->tx5->setFocus(); - } else { - ui->freeTextMsg->clearEditText(); - ui->freeTextMsg->setFocus(); } return; } @@ -2603,9 +2579,7 @@ void MainWindow::hideMenus(bool checked) } ui->decodedTextLabel->setVisible(!checked); ui->gridLayout_5->layout()->setSpacing(spacing); - ui->horizontalLayout->layout()->setSpacing(spacing); ui->horizontalLayout_2->layout()->setSpacing(spacing); - ui->horizontalLayout_3->layout()->setSpacing(spacing); ui->horizontalLayout_5->layout()->setSpacing(spacing); ui->horizontalLayout_6->layout()->setSpacing(spacing); ui->horizontalLayout_7->layout()->setSpacing(spacing); @@ -2619,7 +2593,6 @@ void MainWindow::hideMenus(bool checked) ui->verticalLayout->layout()->setSpacing(spacing); ui->verticalLayout_2->layout()->setSpacing(spacing); ui->verticalLayout_3->layout()->setSpacing(spacing); - ui->verticalLayout_4->layout()->setSpacing(spacing); ui->verticalLayout_5->layout()->setSpacing(spacing); ui->verticalLayout_7->layout()->setSpacing(spacing); ui->verticalLayout_8->layout()->setSpacing(spacing); @@ -3836,8 +3809,6 @@ void MainWindow::guiUpdate() if(m_ntx == 4) txMsg=ui->tx4->text(); if(m_ntx == 5) txMsg=ui->tx5->currentText(); if(m_ntx == 6) txMsg=ui->tx6->text(); - if(m_ntx == 7) txMsg=ui->genMsg->text(); - if(m_ntx == 8) txMsg=ui->freeTextMsg->currentText(); int msgLength=txMsg.trimmed().length(); if(msgLength==0 and !m_tune) on_stopTxButton_clicked(); @@ -3937,8 +3908,6 @@ void MainWindow::guiUpdate() if(m_ntx == 4) ba=ui->tx4->text().toLocal8Bit(); if(m_ntx == 5) ba=ui->tx5->currentText().toLocal8Bit(); if(m_ntx == 6) ba=ui->tx6->text().toLocal8Bit(); - if(m_ntx == 7) ba=ui->genMsg->text().toLocal8Bit(); - if(m_ntx == 8) ba=ui->freeTextMsg->currentText().toLocal8Bit(); } ba2msg(ba,message); @@ -3984,7 +3953,7 @@ void MainWindow::guiUpdate() } if(m_modeTx=="FT8") { - if(SpecOp::FOX==m_config.special_op_id() and ui->tabWidget->currentIndex()==2) { + if(SpecOp::FOX==m_config.special_op_id() and ui->tabWidget->currentIndex()==1) { foxTxSequencer(); } else { int i3=0; @@ -4175,17 +4144,8 @@ void MainWindow::guiUpdate() m_restart=false; //---------------------------------------------------------------------- } else { - if (!m_auto && m_sentFirst73) - { + if (!m_auto && m_sentFirst73) { m_sentFirst73 = false; - if (1 == ui->tabWidget->currentIndex()) - { - ui->genMsg->setText(ui->tx6->text()); - m_ntx=7; - m_QSOProgress = CALLING; - m_gen_message_is_cq = true; - ui->rbGenMsg->setChecked(true); - } } } if (g_iptt == 1 && m_iptt0 == 0) { @@ -4285,7 +4245,7 @@ void MainWindow::guiUpdate() if(m_transmitting) { char s[42]; - if(SpecOp::FOX==m_config.special_op_id() and ui->tabWidget->currentIndex()==2) { + if(SpecOp::FOX==m_config.special_op_id() and ui->tabWidget->currentIndex()==1) { sprintf(s,"Tx: %d Slots",foxcom_.nslots); } else { sprintf(s,"Tx: %s",msgsent); @@ -4307,7 +4267,7 @@ void MainWindow::guiUpdate() } else { s[40]=0; QString t{QString::fromLatin1(s)}; - if(SpecOp::FOX==m_config.special_op_id() and ui->tabWidget->currentIndex()==2 and foxcom_.nslots==1) { + if(SpecOp::FOX==m_config.special_op_id() and ui->tabWidget->currentIndex()==1 and foxcom_.nslots==1) { t=m_fm1.trimmed(); } if(m_mode=="FT4") t="Tx: "+ m_currentMessage; @@ -4912,11 +4872,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie QString r=message_words.at (3); if(m_QSOProgress >= ROGER_REPORT && (r=="RRR" || r.toInt()==73 || "RR73" == r)) { if(m_mode=="FT4" and r=="RR73") m_dateTimeRcvdRR73=QDateTime::currentDateTimeUtc(); - if(ui->tabWidget->currentIndex()==1) { - gen_msg = 5; - if (ui->rbGenMsg->isChecked ()) m_ntx=7; - m_gen_message_is_cq = false; - } else { m_bTUmsg=false; m_nextCall=""; //### Temporary: disable use of "TU;" message if(SpecOp::RTTY == m_config.special_op_id() and m_nextCall!="") { @@ -4937,7 +4892,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie ui->txrb5->setChecked(true); } } - } m_QSOProgress = SIGNOFF; } else if((m_QSOProgress >= REPORT || (m_QSOProgress >= REPLYING && @@ -4981,15 +4935,8 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie && message_words.size () > 2 && message_words.at (1).contains (m_baseCall) && message_words.at (2) == "73") { // 73 back to compound call holder - if(ui->tabWidget->currentIndex()==1) { - gen_msg = 5; - if (ui->rbGenMsg->isChecked ()) m_ntx=7; - m_gen_message_is_cq = false; - } - else { - m_ntx=5; - ui->txrb5->setChecked(true); - } + m_ntx=5; + ui->txrb5->setChecked(true); m_QSOProgress = SIGNOFF; } else if (!(m_bAutoReply && (m_QSOProgress > CALLING))) { @@ -5070,14 +5017,8 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie } } else if (is_73 && !message.isStandardMessage ()) { - if(ui->tabWidget->currentIndex()==1) { - gen_msg = 5; - if (ui->rbGenMsg->isChecked ()) m_ntx=7; - m_gen_message_is_cq = false; - } else { - m_ntx=5; - ui->txrb5->setChecked(true); - } + m_ntx=5; + ui->txrb5->setChecked(true); m_QSOProgress = SIGNOFF; } else { // just work them @@ -5148,18 +5089,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie m_bTUmsg=false; //### Temporary: disable use of "TU;" messages if (!m_nTx73 and !m_bTUmsg) { genStdMsgs(rpt); - if (gen_msg) { - switch (gen_msg) { - case 1: ui->genMsg->setText (ui->tx1->text ()); break; - case 2: ui->genMsg->setText (ui->tx2->text ()); break; - case 3: ui->genMsg->setText (ui->tx3->text ()); break; - case 4: ui->genMsg->setText (ui->tx4->text ()); break; - case 5: ui->genMsg->setText (ui->tx5->currentText ()); break; - } - if (gen_msg != 5) { // allow user to pre-select a free message - ui->rbGenMsg->setChecked (true); - } - } } if(m_transmitting) m_restart=true; if (ui->cbAutoSeq->isVisible () && ui->cbAutoSeq->isChecked () @@ -5168,6 +5097,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie } if(m_config.quick_call() && m_bDoubleClicked) auto_tx_mode(true); m_bDoubleClicked=false; + if(gen_msg==-999) return; //Silence compiler warning } int MainWindow::setTxMsg(int n) @@ -5275,7 +5205,6 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) ui->tx3->clear (); ui->tx4->clear (); if(unconditional) ui->tx5->lineEdit ()->clear (); //Test if it needs sending again - ui->genMsg->clear (); m_gen_message_is_cq = false; return; } @@ -5517,19 +5446,12 @@ void MainWindow::clearDX () m_qsoStop.clear (); m_inQSOwith.clear(); genStdMsgs (QString {}); - if (ui->tabWidget->currentIndex() == 1) { - ui->genMsg->setText(ui->tx6->text()); - m_ntx=7; - m_gen_message_is_cq = true; - ui->rbGenMsg->setChecked(true); + if (m_mode=="FT8" and SpecOp::HOUND == m_config.special_op_id()) { + m_ntx=1; + ui->txrb1->setChecked(true); } else { - if (m_mode=="FT8" and SpecOp::HOUND == m_config.special_op_id()) { - m_ntx=1; - ui->txrb1->setChecked(true); - } else { - m_ntx=6; - ui->txrb6->setChecked(true); - } + m_ntx=6; + ui->txrb6->setChecked(true); } m_QSOProgress = CALLING; } @@ -6895,111 +6817,6 @@ void MainWindow::enable_DXCC_entity (bool on) updateGeometry (); } -void MainWindow::on_pbCallCQ_clicked() -{ - genStdMsgs(m_rpt); - ui->genMsg->setText(ui->tx6->text()); - m_ntx=7; - m_QSOProgress = CALLING; - m_gen_message_is_cq = true; - ui->rbGenMsg->setChecked(true); - if(m_transmitting) m_restart=true; - set_dateTimeQSO(-1); -} - -void MainWindow::on_pbAnswerCaller_clicked() -{ - genStdMsgs(m_rpt); - QString t=ui->tx3->text(); - int i0=t.indexOf(" R-"); - if(i0<0) i0=t.indexOf(" R+"); - t=t.mid(0,i0+1)+t.mid(i0+2,3); - ui->genMsg->setText(t); - m_ntx=7; - m_QSOProgress = REPORT; - m_gen_message_is_cq = false; - ui->rbGenMsg->setChecked(true); - if(m_transmitting) m_restart=true; - set_dateTimeQSO(2); -} - -void MainWindow::on_pbSendRRR_clicked() -{ - genStdMsgs(m_rpt); - ui->genMsg->setText(ui->tx4->text()); - m_ntx=7; - m_QSOProgress = ROGERS; - m_gen_message_is_cq = false; - ui->rbGenMsg->setChecked(true); - if(m_transmitting) m_restart=true; -} - -void MainWindow::on_pbAnswerCQ_clicked() -{ - genStdMsgs(m_rpt); - ui->genMsg->setText(ui->tx1->text()); - QString t=ui->tx2->text(); - int i0=t.indexOf("/"); - int i1=t.indexOf(" "); - if(i0>0 and i0genMsg->setText(t); - m_ntx=7; - m_QSOProgress = REPLYING; - m_gen_message_is_cq = false; - ui->rbGenMsg->setChecked(true); - if(m_transmitting) m_restart=true; -} - -void MainWindow::on_pbSendReport_clicked() -{ - genStdMsgs(m_rpt); - ui->genMsg->setText(ui->tx3->text()); - m_ntx=7; - m_QSOProgress = ROGER_REPORT; - m_gen_message_is_cq = false; - ui->rbGenMsg->setChecked(true); - if(m_transmitting) m_restart=true; - set_dateTimeQSO(3); -} - -void MainWindow::on_pbSend73_clicked() -{ - genStdMsgs(m_rpt); - ui->genMsg->setText(ui->tx5->currentText()); - m_ntx=7; - m_QSOProgress = SIGNOFF; - m_gen_message_is_cq = false; - ui->rbGenMsg->setChecked(true); - if(m_transmitting) m_restart=true; -} - -void MainWindow::on_rbGenMsg_clicked(bool checked) -{ - m_freeText=!checked; - if(!m_freeText) { - if(m_ntx != 7 && m_transmitting) m_restart=true; - m_ntx=7; - // would like to set m_QSOProgress but what to? So leave alone and - // assume it is correct - } -} - -void MainWindow::on_rbFreeText_clicked(bool checked) -{ - m_freeText=checked; - if(m_freeText) { - m_ntx=8; - // would like to set m_QSOProgress but what to? So leave alone and - // assume it is correct. Perhaps should store old value to be - // restored above in on_rbGenMsg_clicked - if (m_transmitting) m_restart=true; - } -} - -void MainWindow::on_freeTextMsg_currentTextChanged (QString const& text) -{ - msgtype(text, ui->freeTextMsg->lineEdit ()); -} - void MainWindow::on_rptSpinBox_valueChanged(int n) { int step=ui->rptSpinBox->singleStep(); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 694316969..aa6838b08 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -222,15 +222,6 @@ private slots: void startP1(); void stopTx(); void stopTx2(); - void on_pbCallCQ_clicked(); - void on_pbAnswerCaller_clicked(); - void on_pbSendRRR_clicked(); - void on_pbAnswerCQ_clicked(); - void on_pbSendReport_clicked(); - void on_pbSend73_clicked(); - void on_rbGenMsg_clicked(bool checked); - void on_rbFreeText_clicked(bool checked); - void on_freeTextMsg_currentTextChanged (QString const&); void on_rptSpinBox_valueChanged(int n); void killFile(); void on_tuneButton_clicked (bool); diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index e315ba235..7d5fa0004 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -1507,274 +1507,9 @@ list. The list can be maintained in Settings (F2). - - - 2 - - - - 6 - - - 6 - - - 6 - - - 6 - - - - - 0 - - - - - - 2 - 0 - - - - - 0 - 30 - - - - - 16777215 - 30 - - - - Calling CQ - - - Qt::AlignCenter - - - - - - - - 2 - 0 - - - - Generate a CQ message - - - CQ - - - - - - - - 2 - 0 - - - - Generate message with RRR - - - RRR - - - - - - - - 2 - 0 - - - - Generate message with report - - - dB - - - - - - - - 2 - 0 - - - - - 0 - 30 - - - - - 16777215 - 30 - - - - Answering CQ - - - Qt::AlignCenter - - - - - - - - 2 - 0 - - - - Generate message for replying to a CQ - - - Grid - - - - - - - - 2 - 0 - - - - Generate message with R+report - - - R+dB - - - - - - - - 2 - 0 - - - - Generate message with 73 - - - 73 - - - - - - - - - - - - 3 - 0 - - - - - - - - - 1 - 0 - - - - - 0 - 26 - - - - Send this standard (generated) message - - - Gen msg - - - true - - - - - - - - - - - - 3 - 0 - - - - - 150 - 0 - - - - Enter a free text message (maximum 13 characters) -or select a predefined macro from the dropdown list. -Press ENTER to add the current text to the predefined -list. The list can be maintained in Settings (F2). - - - true - - - QComboBox::InsertAtBottom - - - - - - - - 1 - 0 - - - - Send this free-text message (max 13 characters) - - - Free msg - - - - - - - - 3 + 2 @@ -3774,16 +3509,6 @@ Yellow when too low sbSubmode syncSpinBox tabWidget - pbCallCQ - pbAnswerCQ - pbAnswerCaller - pbSendReport - pbSendRRR - pbSend73 - genMsg - rbGenMsg - freeTextMsg - rbFreeText outAttenuation genStdMsgsPushButton tx1 From 4ab8780dd8a600808a0c6d3bfd27067465d05696 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 5 Sep 2020 15:22:18 -0400 Subject: [PATCH 442/520] Code cleanyup associated with removing Tab 2. --- widgets/mainwindow.cpp | 71 ++++++++++-------------------------------- widgets/mainwindow.h | 2 +- 2 files changed, 17 insertions(+), 56 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index bd605062a..2c2ef96eb 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4767,7 +4767,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie // Determine appropriate response to received message auto dtext = " " + message.string () + " "; dtext=dtext.remove("<").remove(">"); - int gen_msg {0}; if(dtext.contains (" " + m_baseCall + " ") || dtext.contains ("<" + m_baseCall + "> ") //###??? || dtext.contains ("<" + m_baseCall + " " + hiscall + "> ") @@ -4826,46 +4825,46 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie or bEU_VHF_w2 or (m_QSOProgress==CALLING))) { if(message_words.at(3).contains(grid_regexp) and SpecOp::EU_VHF!=m_config.special_op_id()) { if(SpecOp::NA_VHF==m_config.special_op_id() or SpecOp::WW_DIGI==m_config.special_op_id()){ - gen_msg=setTxMsg(3); + setTxMsg(3); m_QSOProgress=ROGER_REPORT; } else { if(m_mode=="JT65" and message_words.size()>4 and message_words.at(4)=="OOO") { - gen_msg=setTxMsg(3); + setTxMsg(3); m_QSOProgress=ROGER_REPORT; } else { - gen_msg=setTxMsg(2); + setTxMsg(2); m_QSOProgress=REPORT; } } } else if(w34.contains(grid_regexp) and SpecOp::EU_VHF==m_config.special_op_id()) { if(nrpt==0) { - gen_msg=setTxMsg(2); + setTxMsg(2); m_QSOProgress=REPORT; } else { if(w2=="R") { - gen_msg=setTxMsg(4); + setTxMsg(4); m_QSOProgress=ROGERS; } else { - gen_msg=setTxMsg(3); + setTxMsg(3); m_QSOProgress=ROGER_REPORT; } } } else if(SpecOp::RTTY == m_config.special_op_id() and bRTTY) { if(w2=="R") { - gen_msg=setTxMsg(4); + setTxMsg(4); m_QSOProgress=ROGERS; } else { - gen_msg=setTxMsg(3); + setTxMsg(3); m_QSOProgress=ROGER_REPORT; } m_xRcvd=t[n-2] + " " + t[n-1]; } else if(SpecOp::FIELD_DAY==m_config.special_op_id() and bFieldDay_msg) { if(t0=="R") { - gen_msg=setTxMsg(4); + setTxMsg(4); m_QSOProgress=ROGERS; } else { - gen_msg=setTxMsg(3); + setTxMsg(3); m_QSOProgress=ROGER_REPORT; } } else { // no grid on end of msg @@ -4905,24 +4904,19 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie if(nRpt>=529 and nRpt<=599) m_xRcvd=t[n-2] + " " + t[n-1]; } ui->txrb4->setChecked(true); - if(ui->tabWidget->currentIndex()==1) { - gen_msg = 4; - m_ntx=7; - m_gen_message_is_cq = false; - } } else if(m_QSOProgress>=CALLING and ((r.toInt()>=-50 && r.toInt()<=49) or (r.toInt()>=529 && r.toInt()<=599))) { if(SpecOp::EU_VHF==m_config.special_op_id() or SpecOp::FIELD_DAY==m_config.special_op_id() or SpecOp::RTTY==m_config.special_op_id()) { - gen_msg=setTxMsg(2); + setTxMsg(2); m_QSOProgress=REPORT; } else { if(r.left(2)=="R-" or r.left(2)=="R+") { - gen_msg=setTxMsg(4); + setTxMsg(4); m_QSOProgress=ROGERS; } else { - gen_msg=setTxMsg(3); + setTxMsg(3); m_QSOProgress=ROGER_REPORT; } } @@ -4946,21 +4940,10 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie m_ntx=3; m_QSOProgress = ROGER_REPORT; ui->txrb3->setChecked (true); - if (ui->tabWidget->currentIndex () == 1) { - gen_msg = 3; - m_ntx = 7; - m_gen_message_is_cq = false; - } } else if (!is_73) { // don't respond to sign off messages m_ntx=2; m_QSOProgress = REPORT; ui->txrb2->setChecked(true); - if(ui->tabWidget->currentIndex()==1) { - gen_msg = 2; - m_ntx=7; - m_gen_message_is_cq = false; - } - if (m_bDoubleClickAfterCQnnn and m_transmitting) { on_stopTxButton_clicked(); TxAgainTimer.start(1500); @@ -4989,14 +4972,8 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie else if (firstcall == "DE" && message_words.size () > 3 && message_words.at (3) == "73") { if (m_QSOProgress >= ROGERS && base_call == qso_partner_base_call && m_currentMessageType) { // 73 back to compound call holder - if(ui->tabWidget->currentIndex()==1) { - gen_msg = 5; - m_ntx=7; - m_gen_message_is_cq = false; - } else { - m_ntx=5; - ui->txrb5->setChecked(true); - } + m_ntx=5; + ui->txrb5->setChecked(true); m_QSOProgress = SIGNOFF; } else { // treat like a CQ/QRZ @@ -5009,11 +4986,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie m_QSOProgress = REPORT; ui->txrb2->setChecked (true); } - if(ui->tabWidget->currentIndex()==1) { - gen_msg = 1; - m_ntx=7; - m_gen_message_is_cq = false; - } } } else if (is_73 && !message.isStandardMessage ()) { @@ -5031,11 +5003,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie m_QSOProgress = REPORT; ui->txrb2->setChecked (true); } - if (1 == ui->tabWidget->currentIndex ()) { - gen_msg = m_ntx; - m_ntx=7; - m_gen_message_is_cq = false; - } } // if we get here then we are reacting to the message if (m_bAutoReply) m_bCallingCQ = CALLING == m_QSOProgress; @@ -5097,10 +5064,9 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie } if(m_config.quick_call() && m_bDoubleClicked) auto_tx_mode(true); m_bDoubleClicked=false; - if(gen_msg==-999) return; //Silence compiler warning } -int MainWindow::setTxMsg(int n) +void MainWindow::setTxMsg(int n) { m_ntx=n; if(n==1) ui->txrb1->setChecked(true); @@ -5109,11 +5075,6 @@ int MainWindow::setTxMsg(int n) if(n==4) ui->txrb4->setChecked(true); if(n==5) ui->txrb5->setChecked(true); if(n==6) ui->txrb6->setChecked(true); - if(ui->tabWidget->currentIndex()==1) { - m_ntx=7; //### FIX THIS ### - m_gen_message_is_cq = false; - } - return n; } void MainWindow::genCQMsg () diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index aa6838b08..880c5d141 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -310,7 +310,7 @@ private slots: void checkMSK144ContestType(); void on_pbBestSP_clicked(); void on_RoundRobin_currentTextChanged(QString text); - int setTxMsg(int n); + void setTxMsg(int n); bool stdCall(QString const& w); void remote_configure (QString const& mode, quint32 frequency_tolerance, QString const& submode , bool fast_mode, quint32 tr_period, quint32 rx_df, QString const& dx_call From 72cffc9da4c175f82c0507f82b8584fcac12b0bb Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 6 Sep 2020 13:31:19 -0400 Subject: [PATCH 443/520] Make the FST4/FST4W Quick-Start Guide available from the Help menu. --- displayWidgets.txt | 1 + widgets/mainwindow.cpp | 4 ++-- widgets/mainwindow.h | 2 +- widgets/mainwindow.ui | 6 +++--- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/displayWidgets.txt b/displayWidgets.txt index 2f6c382e2..9b438590c 100644 --- a/displayWidgets.txt +++ b/displayWidgets.txt @@ -14,6 +14,7 @@ QRA64 1111100101101101100000000010000000 ISCAT 1001110000000001100000000000000000 MSK144 1011111101000000000100010000000000 WSPR 0000000000000000010100000000000000 +FST4 1111110001001110000100000001000000 FST4W 0000000000000000010100000000000001 Echo 0000000000000000000000100000000000 FCal 0011010000000000000000000000010000 diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 2c2ef96eb..05ce2702b 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -2459,9 +2459,9 @@ void MainWindow::on_actionFT8_DXpedition_Mode_User_Guide_triggered() QDesktopServices::openUrl (QUrl {"http://physics.princeton.edu/pulsar/k1jt/FT8_DXpedition_Mode.pdf"}); } -void MainWindow::on_actionQuick_Start_Guide_v2_triggered() +void MainWindow::on_actionQuick_Start_Guide_triggered() { - QDesktopServices::openUrl (QUrl {"https://physics.princeton.edu/pulsar/k1jt/Quick_Start_WSJT-X_2.0.pdf"}); + QDesktopServices::openUrl (QUrl {"https://physics.princeton.edu/pulsar/k1jt/FST4_Quick_Start.pdf"}); } void MainWindow::on_actionOnline_User_Guide_triggered() //Display manual diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 880c5d141..c0e0a9414 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -150,7 +150,7 @@ private slots: void on_stopButton_clicked(); void on_actionRelease_Notes_triggered (); void on_actionFT8_DXpedition_Mode_User_Guide_triggered(); - void on_actionQuick_Start_Guide_v2_triggered(); + void on_actionQuick_Start_Guide_triggered(); void on_actionOnline_User_Guide_triggered(); void on_actionLocal_User_Guide_triggered(); void on_actionWide_Waterfall_triggered(); diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 7d5fa0004..6952cbec4 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -2776,7 +2776,7 @@ Yellow when too low - + @@ -3386,9 +3386,9 @@ Yellow when too low Export Cabrillo log ... - + - Quick-Start Guide to WSJT-X 2.0 + Quick-Start Guide to FST4 and FST4W From a9e205518fdb2ea12cc94d311e0c53f7a15e94eb Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 6 Sep 2020 13:57:29 -0400 Subject: [PATCH 444/520] Update wsptx.pro to include Audio subdirectory. --- wsjtx.pro | 1 + 1 file changed, 1 insertion(+) diff --git a/wsjtx.pro b/wsjtx.pro index 9e11c70ca..fd151a264 100644 --- a/wsjtx.pro +++ b/wsjtx.pro @@ -55,6 +55,7 @@ include(widgets/widgets.pri) include(Decoder/decodedtext.pri) include(Detector/Detector.pri) include(Modulator/Modulator.pri) +include(Audio/Audio.pri) SOURCES += \ Radio.cpp NetworkServerLookup.cpp revision_utils.cpp \ From 8d48b44e9a92fea08ed17b07cb6acec3cc8856b7 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Mon, 7 Sep 2020 20:36:09 +0100 Subject: [PATCH 445/520] ADIF v3.1.1 compliance Note that FST4 QSOs are logged with MODE=MFSK and SUBMODE=FST4. The new bands 8m and 5m are recognized. The ADIF header is expanded with program and time stamp information. --- logbook/WorkedBefore.cpp | 15 ++++++++++++++- logbook/logbook.cpp | 2 +- models/Bands.cpp | 2 ++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/logbook/WorkedBefore.cpp b/logbook/WorkedBefore.cpp index 152feeb25..d6a794108 100644 --- a/logbook/WorkedBefore.cpp +++ b/logbook/WorkedBefore.cpp @@ -19,7 +19,9 @@ #include #include #include +#include #include "Configuration.hpp" +#include "revision_utils.hpp" #include "qt_helpers.hpp" #include "pimpl_impl.hpp" @@ -442,7 +444,18 @@ bool WorkedBefore::add (QString const& call QTextStream out {&file}; if (!file.size ()) { - out << "WSJT-X ADIF Export" << // new file + auto ts = QDateTime::currentDateTimeUtc ().toString ("yyyyMMdd HHmmss"); + auto ver = version (true); + out << // new file + QString { + "ADIF Export\n" + "3.1.1\n" + "%0\n" + "WSJT-X\n" + "%2\n" + "" + }.arg (ts).arg (ver.size ()).arg (ver) + << #if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) endl #else diff --git a/logbook/logbook.cpp b/logbook/logbook.cpp index 327585110..2cfa87418 100644 --- a/logbook/logbook.cpp +++ b/logbook/logbook.cpp @@ -79,7 +79,7 @@ QByteArray LogBook::QSOToADIF (QString const& hisCall, QString const& hisGrid, Q QString t; t = "" + hisCall; t += " " + hisGrid; - if (mode != "FT4") + if (mode != "FT4" && mode != "FST4") { t += " " + mode; } diff --git a/models/Bands.cpp b/models/Bands.cpp index f8d7872f2..f6d79f2ee 100644 --- a/models/Bands.cpp +++ b/models/Bands.cpp @@ -28,7 +28,9 @@ namespace {"15m", 21000000u, 21450000u}, {"12m", 24890000u, 24990000u}, {"10m", 28000000u, 29700000u}, + {"8m", 40000000u, 45000000u}, {"6m", 50000000u, 54000000u}, + {"5m", 54000001u, 69900000u}, {"4m", 70000000u, 71000000u}, {"2m", 144000000u, 148000000u}, {"1.25m", 222000000u, 225000000u}, From 6ff8459ea926b2ba06b5a2105030720fe317db64 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 7 Sep 2020 18:40:26 -0400 Subject: [PATCH 446/520] Add a book-keeping file useful in QtCreator. --- Audio/Audio.pri | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Audio/Audio.pri diff --git a/Audio/Audio.pri b/Audio/Audio.pri new file mode 100644 index 000000000..e2237bbd1 --- /dev/null +++ b/Audio/Audio.pri @@ -0,0 +1,5 @@ +SOURCES += Audio/AudioDevice.cpp Audio/BWFFile.cpp Audio/soundin.cpp \ + Audio/soundout.cpp + +HEADERS += Audio/AudioDevice.hpp Audio/BWFFile.hpp Audio/soundin.h \ + Audio/soundout.h From 1d52daf7ee0f8a03d7c9bb73a3ee5976ea8e5b14 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 8 Sep 2020 12:54:19 +0100 Subject: [PATCH 447/520] Remove erroneous Qt emit keywords --- widgets/mainwindow.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 05ce2702b..aaa4f3c53 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1879,7 +1879,7 @@ void MainWindow::on_monitorButton_clicked (bool checked) on_RxFreqSpinBox_valueChanged (ui->RxFreqSpinBox->value ()); } //Get Configuration in/out of strict split and mode checking - Q_EMIT m_config.sync_transceiver (true, checked); + m_config.sync_transceiver (true, checked); } else { ui->monitorButton->setChecked (false); // disallow } @@ -3858,7 +3858,7 @@ void MainWindow::guiUpdate() } setXIT (ui->TxFreqSpinBox->value ()); - Q_EMIT m_config.transceiver_ptt (true); //Assert the PTT + m_config.transceiver_ptt (true); //Assert the PTT m_tx_when_ready = true; } // if(!m_bTxTime and !m_tune and m_mode!="FT4") m_btxok=false; //Time to stop transmitting @@ -4369,7 +4369,7 @@ void MainWindow::stopTx() void MainWindow::stopTx2() { - Q_EMIT m_config.transceiver_ptt (false); //Lower PTT + m_config.transceiver_ptt (false); //Lower PTT if (m_mode == "JT9" && m_bFast9 && ui->cbAutoSeq->isVisible () && ui->cbAutoSeq->isChecked() && m_ntx == 5 && m_nTx73 >= 5) { @@ -6550,7 +6550,7 @@ void MainWindow::WSPR_config(bool b) if(!m_config.miles()) t += " km"; ui->decodedTextLabel->setText(t); if (m_config.is_transceiver_online ()) { - Q_EMIT m_config.transceiver_tx_frequency (0); // turn off split + m_config.transceiver_tx_frequency (0); // turn off split } m_bSimplex = true; } else @@ -6864,7 +6864,7 @@ void MainWindow::rigOpen () ui->readFreq->setText (""); ui->readFreq->setEnabled (true); m_config.transceiver_online (); - Q_EMIT m_config.sync_transceiver (true, true); + m_config.sync_transceiver (true, true); } void MainWindow::on_pbR2T_clicked() @@ -6887,7 +6887,7 @@ void MainWindow::on_readFreq_clicked() if (m_config.transceiver_online ()) { - Q_EMIT m_config.sync_transceiver (true, true); + m_config.sync_transceiver (true, true); } } @@ -6937,7 +6937,7 @@ void MainWindow::setXIT(int n, Frequency base) // frequency m_freqTxNominal = base + m_XIT; if (m_astroWidget) m_astroWidget->nominal_frequency (m_freqNominal, m_freqTxNominal); - Q_EMIT m_config.transceiver_tx_frequency (m_freqTxNominal + m_astroCorrection.tx); + m_config.transceiver_tx_frequency (m_freqTxNominal + m_astroCorrection.tx); } } //Now set the audio Tx freq @@ -8094,11 +8094,11 @@ void MainWindow::setRig (Frequency f) { if (m_transmitting && m_config.split_mode ()) { - Q_EMIT m_config.transceiver_tx_frequency (m_freqTxNominal + m_astroCorrection.tx); + m_config.transceiver_tx_frequency (m_freqTxNominal + m_astroCorrection.tx); } else { - Q_EMIT m_config.transceiver_frequency (m_freqNominal + m_astroCorrection.rx); + m_config.transceiver_frequency (m_freqNominal + m_astroCorrection.rx); } } } From db6a432a33e752db114469f0c43562a3a949e438 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 8 Sep 2020 15:24:55 +0100 Subject: [PATCH 448/520] Ensure band/frequency combo box edit styling tracks current frequency --- widgets/mainwindow.cpp | 13 ++++++++----- widgets/mainwindow.h | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index aaa4f3c53..78d8fb0df 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -2197,7 +2197,7 @@ void MainWindow::displayDialFrequency () { // only change this when necessary as we get called a lot and it // would trash any user input to the band combo box line edit - ui->bandComboBox->setCurrentText (band_name); + ui->bandComboBox->setCurrentText (band_name.size () ? band_name : m_config.bands ()->oob ()); m_wideGraph->setRxBand (band_name); m_lastBand = band_name; band_changed(dial_frequency); @@ -6696,17 +6696,20 @@ void MainWindow::on_bandComboBox_currentIndexChanged (int index) // Lookup band auto const& band = m_config.bands ()->find (frequency); - if (!band.isEmpty ()) + ui->bandComboBox->setCurrentText (band.size () ? band : m_config.bands ()->oob ()); + displayDialFrequency (); +} + +void MainWindow::on_bandComboBox_editTextChanged (QString const& text) +{ + if (text.size () && m_config.bands ()->oob () != text) { ui->bandComboBox->lineEdit ()->setStyleSheet ({}); - ui->bandComboBox->setCurrentText (band); } else { ui->bandComboBox->lineEdit ()->setStyleSheet ("QLineEdit {color: yellow; background-color : red;}"); - ui->bandComboBox->setCurrentText (m_config.bands ()->oob ()); } - displayDialFrequency (); } void MainWindow::on_bandComboBox_activated (int index) diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index c0e0a9414..9bf7f79be 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -236,6 +236,7 @@ private slots: , QString const& exchange_sent, QString const& exchange_rcvd , QString const& propmode, QByteArray const& ADIF); void on_bandComboBox_currentIndexChanged (int index); + void on_bandComboBox_editTextChanged (QString const& text); void on_bandComboBox_activated (int index); void on_readFreq_clicked(); void on_pbTxMode_clicked(); From ae4cfaf1ae9946046594a1cf404b5bc2a061d458 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 8 Sep 2020 21:19:48 +0100 Subject: [PATCH 449/520] Start Fox mode on correct tab of tab widget --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 78d8fb0df..e017ec9ea 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -6023,7 +6023,7 @@ void MainWindow::on_actionFT8_triggered() ui->txFirstCheckBox->setEnabled(false); ui->cbHoldTxFreq->setChecked(true); ui->cbAutoSeq->setEnabled(false); - ui->tabWidget->setCurrentIndex(2); + ui->tabWidget->setCurrentIndex(1); ui->TxFreqSpinBox->setValue(300); displayWidgets(nWidgets("1110100001001110000100000000001000")); ui->labDXped->setText(tr ("Fox")); From 923c1e6dfd15b359d80620237d4acda3aed06849 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 9 Sep 2020 22:40:07 +0100 Subject: [PATCH 450/520] I18n for some error messages --- logbook/WorkedBefore.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/logbook/WorkedBefore.cpp b/logbook/WorkedBefore.cpp index d6a794108..e7214d41b 100644 --- a/logbook/WorkedBefore.cpp +++ b/logbook/WorkedBefore.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -254,7 +255,7 @@ namespace } else { - throw LoaderException (std::runtime_error {"Invalid ADIF field " + fieldName.toStdString () + ": " + record.toStdString ()}); + throw LoaderException (std::runtime_error {QCoreApplication::translate ("WorkedBefore", "Invalid ADIF field %0: %1").arg (fieldName).arg (record).toLocal8Bit ()}); } if (closingBracketIndex > fieldNameIndex && fieldLengthIndex > fieldNameIndex && fieldLengthIndex < closingBracketIndex) @@ -271,7 +272,7 @@ namespace } else { - throw LoaderException (std::runtime_error {"Malformed ADIF field " + fieldName.toStdString () + ": " + record.toStdString ()}); + throw LoaderException (std::runtime_error {QCoreApplication::translate ("WorkedBefore", "Malformed ADIF field %0: %1").arg (fieldName).arg (record).toLocal8Bit ()}); } } return QString {}; @@ -308,7 +309,7 @@ namespace { if (end_position < 0) { - throw LoaderException (std::runtime_error {"Invalid ADIF header"}); + throw LoaderException (std::runtime_error {QCoreApplication::translate ("WorkedBefore", "Invalid ADIF header").toLocal8Bit ()}); } buffer.remove (0, end_position + 5); } @@ -354,7 +355,7 @@ namespace } else { - throw LoaderException (std::runtime_error {"Error opening ADIF log file for read: " + inputFile.errorString ().toStdString ()}); + throw LoaderException (std::runtime_error {QCoreApplication::translate ("WorkedBefore", "Error opening ADIF log file for read: %0").arg (inputFile.errorString ()).toLocal8Bit ()}); } } return worked; From d9d0e827ff81e79133e373c74d8a6e9430935091 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 9 Sep 2020 22:40:58 +0100 Subject: [PATCH 451/520] User Guide updates --- doc/user_guide/en/install-linux.adoc | 2 -- doc/user_guide/en/install-windows.adoc | 24 ++++++++++++++++++------ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/doc/user_guide/en/install-linux.adoc b/doc/user_guide/en/install-linux.adoc index 6461ac77e..bbd53b2b9 100644 --- a/doc/user_guide/en/install-linux.adoc +++ b/doc/user_guide/en/install-linux.adoc @@ -40,7 +40,6 @@ sudo dpkg -P wsjtx You may also need to execute the following command in a terminal: -[example] .... sudo apt install libgfortran5 libqt5widgets5 libqt5network5 \ libqt5printsupport5 libqt5multimedia5-plugins libqt5serialport5 \ @@ -73,7 +72,6 @@ sudo rpm -e wsjtx You may also need to execute the following command in a terminal: -[example] .... sudo dnf install libgfortran fftw-libs-single qt5-qtbase \ qt5-qtmultimedia qt5-qtserialport qt5-qtsvg \ diff --git a/doc/user_guide/en/install-windows.adoc b/doc/user_guide/en/install-windows.adoc index 04b9785ce..b999c15e7 100644 --- a/doc/user_guide/en/install-windows.adoc +++ b/doc/user_guide/en/install-windows.adoc @@ -21,18 +21,30 @@ TIP: Your computer may be configured so that this directory is `"%LocalAppData%\WSJT-X\"`. * The built-in Windows facility for time synchronization is usually - not adequate. We recommend the program _Meinberg NTP_ (see - {ntpsetup} for downloading and installation instructions) or - _Dimension 4_ from {dimension4}. Recent versions of Windows 10 are - now shipped with a more capable Internet time synchronization - service that is suitable if configured appropriately. + not adequate. We recommend the program _Meinberg NTP Client_ (see + {ntpsetup} for downloading and installation instructions). Recent + versions of Windows 10 are now shipped with a more capable Internet + time synchronization service that is suitable if configured + appropriately. We do not recommend SNTP time setting tools or others + that make periodic correction steps, _WSJT-X_ requires that the PC + clock be monotonic. + +NOTE: Having a PC clock that appears to be synchronized to UTC is not + sufficient, monotonicity means that the clock must not be + stepped backwards or forwards during corrections, instead the + clock frequency must be adjusted to correct synchronization + errors gradually. [[OPENSSL]] image:LoTW_TLS_error.png[_WSJT-X_ LoTW download TLS error, align="center"] -* _WSJT-X_ requires installation of the _OpenSSL_ libraries. Suitable libraries may already be installed on your system. If they are not, you will see this error shortly after requesting a fetch of the latest LoTW users database. To fix this, install the _OpenSSL_ libraries. +* _WSJT-X_ requires installation of the _OpenSSL_ libraries. Suitable + libraries may already be installed on your system. If they are not, + you will see this error shortly after requesting a fetch of the + latest LoTW users database. To fix this, install the _OpenSSL_ + libraries. ** You can download a suitable _OpenSSL_ package for Windows from {win_openssl_packages}; you need the latest *Windows Light* From 67bd56a6d62544597eb675f11ddd2d8e9348aee7 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 10 Sep 2020 16:29:51 +0100 Subject: [PATCH 452/520] Accessibility improvements --- Configuration.ui | 62 ++++++++++++++++++++++++++++++++++++++++--- widgets/mainwindow.ui | 6 +++++ 2 files changed, 64 insertions(+), 4 deletions(-) diff --git a/Configuration.ui b/Configuration.ui index 610bc85ad..f8a50df7d 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -577,6 +577,9 @@ quiet period when decoding is done. 0 + + Serial Port Parameters + Serial Port Parameters @@ -659,6 +662,9 @@ quiet period when decoding is done. <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> + + Data bits + Data Bits @@ -710,6 +716,9 @@ quiet period when decoding is done. <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> + + Stop bits + Stop Bits @@ -758,6 +767,9 @@ quiet period when decoding is done. <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> + + Handshake + Handshake @@ -824,6 +836,9 @@ a few, particularly some Kenwood rigs, require it). Special control of CAT port control lines. + + Force Control Lines + Force Control Lines @@ -2346,6 +2361,9 @@ Right click for insert and delete options. <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> + + URL + https://lotw.arrl.org/lotw-user-activity.csv @@ -2378,6 +2396,9 @@ Right click for insert and delete options. <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> + + Day since lalst upload + days @@ -2513,6 +2534,9 @@ Right click for insert and delete options. <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> + + Hound + Hound @@ -2535,6 +2559,9 @@ Right click for insert and delete options. <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> + + NA VHF Contest + NA VHF Contest @@ -2548,6 +2575,9 @@ Right click for insert and delete options. <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> + + Fox + Fox @@ -2570,6 +2600,9 @@ Right click for insert and delete options. <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> + + EU VHF Contest + EU VHF Contest @@ -2598,6 +2631,9 @@ Right click for insert and delete options. <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> + + R T T Y Roundup + RTTY Roundup messages @@ -2623,6 +2659,9 @@ Right click for insert and delete options. + + RTTY Roundup exchange + RTTY RU Exch: @@ -2661,6 +2700,9 @@ Right click for insert and delete options. <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> + + A R R L Field Day + ARRL Field Day @@ -2686,6 +2728,9 @@ Right click for insert and delete options. + + Field Day exchange + FD Exch: @@ -2728,6 +2773,9 @@ Right click for insert and delete options. <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> + + WW Digital Contest + WW Digi Contest @@ -2840,6 +2888,9 @@ Right click for insert and delete options. 50 + + Tone spacing + Tone spacing @@ -2878,6 +2929,9 @@ Right click for insert and delete options. 50 + + Waterfall spectra + Waterfall spectra @@ -3134,12 +3188,12 @@ Right click for insert and delete options. - - - - + + + + diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 6952cbec4..d53d75358 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -721,6 +721,9 @@ QPushButton[state="ok"] { Set Tx frequency to Rx Frequency + + Set Tx frequency to Rx Frequency + @@ -771,6 +774,9 @@ QPushButton[state="ok"] { Set Rx frequency to Tx Frequency + + Set Rx frequency to Tx Frequency + From b6f990fac226f731f25f2bf83abb595c360b37ac Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 10 Sep 2020 13:33:33 -0400 Subject: [PATCH 453/520] Allow FTol values down to 1 Hz; let maximum FTol values for FST4 depend on TRperiod. --- widgets/mainwindow.cpp | 19 +++++++++++++++++-- widgets/mainwindow.h | 1 + widgets/mainwindow.ui | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index e017ec9ea..3c86841c7 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4210,9 +4210,10 @@ void MainWindow::guiUpdate() } } -//Once per second: +//Once per second (onesec) if(nsec != m_sec0) { // qDebug() << "AAA" << nsec; + if(m_mode=="FST4") sbFtolMaxVal(); m_currentBand=m_config.bands()->find(m_freqNominal); if( SpecOp::HOUND == m_config.special_op_id() ) { qint32 tHound=QDateTime::currentMSecsSinceEpoch()/1000 - m_tAutoOn; @@ -5891,6 +5892,7 @@ void MainWindow::on_actionFST4_triggered() setup_status_bar(false); ui->sbTR->values ({15, 30, 60, 120, 300, 900, 1800}); on_sbTR_valueChanged (ui->sbTR->value()); + sbFtolMaxVal(); ui->cbAutoSeq->setChecked(true); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); @@ -6504,7 +6506,8 @@ void MainWindow::switch_mode (Mode mode) ui->rptSpinBox->setSingleStep(1); ui->rptSpinBox->setMinimum(-50); ui->rptSpinBox->setMaximum(49); - ui->sbFtol->values ({10, 20, 50, 100, 200, 500, 1000}); + ui->sbFtol->values ({1, 2, 5, 10, 20, 50, 100, 200, 500, 1000}); + ui->sbFST4W_FTol->values({1, 2, 5, 10, 20, 50, 100}); if(m_mode=="MSK144") { ui->RxFreqSpinBox->setMinimum(1400); ui->RxFreqSpinBox->setMaximum(1600); @@ -7439,6 +7442,7 @@ void MainWindow::on_sbTR_valueChanged(int value) m_wideGraph->setPeriod (value, m_nsps); progressBar.setMaximum (value); } + if(m_mode=="FST4") sbFtolMaxVal(); if(m_monitoring) { on_stopButton_clicked(); on_monitorButton_clicked(true); @@ -7449,6 +7453,14 @@ void MainWindow::on_sbTR_valueChanged(int value) statusUpdate (); } +void MainWindow::sbFtolMaxVal() +{ + if(m_TRperiod<=60) ui->sbFtol->setMaximum(1000); + if(m_TRperiod==120) ui->sbFtol->setMaximum(500); + if(m_TRperiod==300) ui->sbFtol->setMaximum(200); + if(m_TRperiod>=900) ui->sbFtol->setMaximum(100); +} + void MainWindow::on_sbTR_FST4W_valueChanged(int value) { on_sbTR_valueChanged(value); @@ -7928,6 +7940,9 @@ void MainWindow::on_sbFST4W_RxFreq_valueChanged(int n) void MainWindow::on_sbFST4W_FTol_valueChanged(int n) { + int m=(ui->sbFST4W_RxFreq->value() + n/2)/n; + ui->sbFST4W_RxFreq->setValue(n*m); + ui->sbFST4W_RxFreq->setSingleStep(n); m_wideGraph->setTol(n); statusUpdate (); } diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 9bf7f79be..042866fe2 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -312,6 +312,7 @@ private slots: void on_pbBestSP_clicked(); void on_RoundRobin_currentTextChanged(QString text); void setTxMsg(int n); + void sbFtolMaxVal(); bool stdCall(QString const& w); void remote_configure (QString const& mode, quint32 frequency_tolerance, QString const& submode , bool fast_mode, quint32 tr_period, quint32 rx_df, QString const& dx_call diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 6952cbec4..164bf2f2b 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -1919,7 +1919,7 @@ list. The list can be maintained in Settings (F2). - + Qt::AlignCenter From e23f7b34349dd966b2e7b2b68789d05e5edef01c Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 10 Sep 2020 13:48:08 -0400 Subject: [PATCH 454/520] Don't round off the FST4W RxFreq when FTol is changed. That was a bad idea. --- widgets/mainwindow.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 3c86841c7..e98ed8a00 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -7940,8 +7940,6 @@ void MainWindow::on_sbFST4W_RxFreq_valueChanged(int n) void MainWindow::on_sbFST4W_FTol_valueChanged(int n) { - int m=(ui->sbFST4W_RxFreq->value() + n/2)/n; - ui->sbFST4W_RxFreq->setValue(n*m); ui->sbFST4W_RxFreq->setSingleStep(n); m_wideGraph->setTol(n); statusUpdate (); From 47fcddcb5003941a0c6f0af68da77a708b628fce Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 10 Sep 2020 14:59:52 -0400 Subject: [PATCH 455/520] Send nfa, nfb to fst4_decode(). --- lib/decoder.f90 | 6 ++++-- lib/fst4_decode.f90 | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 8e9033e4e..3e5b2573d 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -194,7 +194,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) params%nsubmode=0 call timer('dec240 ',0) call my_fst4%decode(fst4_decoded,id2,params%nutc, & - params%nQSOProgress,params%nfqso,ndepth,params%ntr, & + params%nQSOProgress,params%nfa,params%nfb, & + params%nfqso,ndepth,params%ntr, & params%nexp_decode,params%ntol,params%emedelay, & logical(params%lapcqonly),mycall,hiscall,iwspr) call timer('dec240 ',1) @@ -207,7 +208,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) iwspr=1 call timer('dec240 ',0) call my_fst4%decode(fst4_decoded,id2,params%nutc, & - params%nQSOProgress,params%nfqso,ndepth,params%ntr, & + params%nQSOProgress,params%nfa,params%nfb, & + params%nfqso,ndepth,params%ntr, & params%nexp_decode,params%ntol,params%emedelay, & logical(params%lapcqonly),mycall,hiscall,iwspr) call timer('dec240 ',1) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 33f383810..8ec889b36 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -29,8 +29,8 @@ module fst4_decode contains - subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfqso, & - ndepth,ntrperiod,nexp_decode,ntol,emedelay,lapcqonly,mycall, & + subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfa,nfb,nfqso, & + ndepth,ntrperiod,nexp_decode,ntol,emedelay,lapcqonly,mycall, & hiscall,iwspr) use timer_module, only: timer From 2dcde590df3954fd79c0a7ff08ec7a4b6aa5576d Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 10 Sep 2020 14:58:10 -0500 Subject: [PATCH 456/520] Use widegraph limits for noise baseline fit. Limit signal search to within the widegraph limits. --- lib/fst4_decode.f90 | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 8ec889b36..c8d3add32 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -82,7 +82,6 @@ contains this%callback => callback dxcall13=hiscall ! initialize for use in packjt77 mycall13=mycall - fMHz=1.0 if(iwspr.ne.0.and.iwspr.ne.1) return @@ -241,7 +240,7 @@ contains if(ntrperiod.eq.15) minsync=1.15 ! Get first approximation of candidate frequencies - call get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & + call get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb,nfa,nfb, & minsync,ncand,candidates) ndecodes=0 @@ -626,7 +625,7 @@ contains end subroutine fst4_downsample - subroutine get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb, & + subroutine get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb,nfa,nfb, & minsync,ncand,candidates) complex c_bigfft(0:nfft1/2) !Full length FFT of raw data @@ -648,20 +647,10 @@ contains ndh=nd/2 ia=nint(max(100.0,fa)/df2) !Low frequency search limit ib=nint(min(4800.0,fb)/df2) !High frequency limit - signal_bw=4*(12000.0/nsps)*hmod - analysis_bw=min(4800.0,fb)-max(100.0,fa) - xnoise_bw=10.0*signal_bw !Is this a good compromise? - if(xnoise_bw .lt. 400.0) xnoise_bw=400.0 - if(analysis_bw.gt.xnoise_bw) then !Estimate noise baseline over analysis bw - ina=0.9*ia - inb=min(int(1.1*ib),nfft1/2) - else !Estimate noise baseline over noise bw - fcenter=(fa+fb)/2.0 - fl = max(100.0,fcenter-xnoise_bw/2.)/df2 - fh = min(4800.0,fcenter+xnoise_bw/2.)/df2 - ina=nint(fl) - inb=nint(fh) - endif + ina=nint(max(100.0,real(nfa))/df2) !Low freq limit for noise baseline fit + inb=nint(min(4800.0,real(nfb))/df2) !High freq limit for noise fit + if(ia.lt.ina) ia=ina + if(ib.gt.inb) ib=inb nnw=nint(48000.*nsps*2./fs) allocate (s(nnw)) s=0. !Compute low-resolution power spectrum From 71fdcd11195d50f395d4d692851b1a54485f59d9 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 10 Sep 2020 16:11:07 -0500 Subject: [PATCH 457/520] Silence a compiler warning. --- lib/fst4_decode.f90 | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index c8d3add32..6237ba4a7 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -210,6 +210,7 @@ contains allocate( c2(0:nfft2-1) ) allocate( cframe(0:160*nss-1) ) + jittermax=2 if(ndepth.eq.3) then nblock=4 jittermax=2 From 7d63ef12fa7c804ec1664233d8071435898f8783 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 11 Sep 2020 12:52:34 +0100 Subject: [PATCH 458/520] Remove unused actions from MainWindow UI source Correct a typo as well. --- widgets/mainwindow.ui | 157 +----------------------------------------- 1 file changed, 1 insertion(+), 156 deletions(-) diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 3a942b902..4779fb20b 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -1201,7 +1201,7 @@ When not checked you can view the calibration results. QTabWidget::Triangular - 1 + 0 @@ -2852,17 +2852,6 @@ Yellow when too low QAction::QuitRole - - - false - - - Configuration - - - F2 - - About WSJT-X @@ -2991,14 +2980,6 @@ Yellow when too low Deep - - - true - - - Monitor OFF at startup - - Erase ALL.TXT @@ -3009,97 +2990,6 @@ Yellow when too low Erase wsjtx_log.adi - - - true - - - Convert mode to RTTY for logging - - - - - true - - - Log dB reports to Comments - - - - - true - - - Prompt me to log QSO - - - - - true - - - Blank line between decoding periods - - - - - true - - - Clear DX Call and Grid after logging - - - - - true - - - Display distance in miles - - - - - true - - - Double-click on call sets Tx Enable - - - F7 - - - - - true - - - Tx disabled after sending 73 - - - - - true - - - Runaway Tx watchdog - - - - - true - - - Allow multiple instances - - - - - true - - - Tx freq locked to Rx freq - - true @@ -3116,30 +3006,6 @@ Yellow when too low JT9+JT65 - - - true - - - Tx messages to Rx Frequency window - - - - - true - - - Gray1 - - - - - true - - - Show DXCC entity and worked B4 status - - true @@ -3382,11 +3248,6 @@ Yellow when too low Color highlighting scheme - - - Contest Log - - Export Cabrillo log ... @@ -3423,11 +3284,6 @@ Yellow when too low FST4 - - - FT240W - - true @@ -3436,17 +3292,6 @@ Yellow when too low FST4W - - - true - - - true - - - Also FST4W - - From 5037445f9433766a91de8cf45bee1704be3f4a4d Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 11 Sep 2020 12:54:22 +0100 Subject: [PATCH 459/520] Fix a typo --- Configuration.ui | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Configuration.ui b/Configuration.ui index f8a50df7d..4c8035754 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -2397,7 +2397,7 @@ Right click for insert and delete options. <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> - Day since lalst upload + Days since last upload days @@ -3187,13 +3187,13 @@ Right click for insert and delete options. + + + - - - - - + + From 99e09a55c54694bee162796c686be706af4902f0 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 11 Sep 2020 13:06:57 +0100 Subject: [PATCH 460/520] Updated l10n files --- translations/wsjtx_ca.ts | 1867 ++++++++++++++++++--------------- translations/wsjtx_da.ts | 1869 ++++++++++++++++++--------------- translations/wsjtx_en.ts | 1969 +++++++++++++++++----------------- translations/wsjtx_en_GB.ts | 1969 +++++++++++++++++----------------- translations/wsjtx_es.ts | 1867 ++++++++++++++++++--------------- translations/wsjtx_it.ts | 1867 ++++++++++++++++++--------------- translations/wsjtx_ja.ts | 1881 +++++++++++++++++---------------- translations/wsjtx_zh.ts | 1975 +++++++++++++++++++---------------- translations/wsjtx_zh_HK.ts | 1975 +++++++++++++++++++---------------- 9 files changed, 9199 insertions(+), 8040 deletions(-) diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index f604eb877..8f39ac882 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -138,17 +138,17 @@ Dades astronòmiques - + Doppler Tracking Error Error de Seguiment de Doppler - + Split operating is required for Doppler tracking L’Split és necessàri per al seguiment de Doppler - + Go to "Menu->File->Settings->Radio" to enable split operation Vés a "Menú-> Arxiu-> Configuració-> Ràdio" per habilitar l'operació dividida @@ -156,32 +156,32 @@ Bands - + Band name Nom banda - + Lower frequency limit Límit inferior de freqüència - + Upper frequency limit Límit superior de freqüència - + Band Banda - + Lower Limit Límit inferior - + Upper Limit Límit superior @@ -377,75 +377,75 @@ Configuration::impl - - - + + + &Delete &Esborrar - - + + &Insert ... &Insereix ... - + Failed to create save directory No s'ha pogut crear el directori per desar - + path: "%1% ruta: "%1% - + Failed to create samples directory No s'ha pogut crear el directori d'exemples - + path: "%1" ruta: "%1" - + &Load ... &Carrega ... - + &Save as ... &Guardar com ... - + &Merge ... &Combinar ... - + &Reset &Restablir - + Serial Port: Port sèrie: - + Serial port used for CAT control Port sèrie utilitzat per al control CAT - + Network Server: Servidor de xarxa: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -460,12 +460,12 @@ Formats: [adreça IPv6]:port - + USB Device: Dispositiu USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -476,152 +476,157 @@ Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - + + Invalid audio input device El dispositiu d'entrada d'àudio no és vàlid - Invalid audio out device - El dispositiu de sortida d'àudio no és vàlid + El dispositiu de sortida d'àudio no és vàlid - + + Invalid audio output device + + + + Invalid PTT method El mètode de PTT no és vàlid - + Invalid PTT port El port del PTT no és vàlid - - + + Invalid Contest Exchange Intercanvi de concurs no vàlid - + You must input a valid ARRL Field Day exchange Has d’introduir un intercanvi de Field Day de l'ARRL vàlid - + You must input a valid ARRL RTTY Roundup exchange Has d’introduir un intercanvi vàlid de l'ARRL RTTY Roundup - + Reset Decode Highlighting Restableix Ressaltat de Descodificació - + Reset all decode highlighting and priorities to default values Restableix tot el ressaltat i les prioritats de descodificació als valors predeterminats - + WSJT-X Decoded Text Font Chooser Tipus de text de pantalla de descodificació WSJT-X - + Load Working Frequencies Càrrega les freqüències de treball - - - + + + Frequency files (*.qrg);;All files (*.*) Arxius de freqüència (*.qrg);;Tots els arxius (*.*) - + Replace Working Frequencies Substitueix les freqüències de treball - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? Segur que vols descartar les teves freqüències actuals de treball i reemplaçar-les per les carregades ? - + Merge Working Frequencies Combina les freqüències de treball - - - + + + Not a valid frequencies file L'arxiu de freqüències no és vàlid - + Incorrect file magic L'arxiu màgic es incorrecte - + Version is too new La versió és massa nova - + Contents corrupt Continguts corruptes - + Save Working Frequencies Desa les freqüències de treball - + Only Save Selected Working Frequencies Desa només les freqüències de treball seleccionades - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. Estàs segur que vols desar només les freqüències de treball seleccionades actualment? Fes clic a No per desar-ho tot. - + Reset Working Frequencies Restablir les freqüències de treball - + Are you sure you want to discard your current working frequencies and replace them with default ones? Segur que vols descartar les teves freqüències actuals de treball i reemplaçar-les per altres? - + Save Directory Directori de Guardar - + AzEl Directory Directori AzEl - + Rig control error Error de control de l'equip - + Failed to open connection to rig No s'ha pogut obrir la connexió al equip - + Rig failure Fallada en l'equip @@ -1446,22 +1451,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency Afedueix Freqüència - + IARU &Region: Regió &IARU: - + &Mode: &Mode: - + &Frequency (MHz): &Freqüència en MHz.: @@ -1469,26 +1474,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region Regió IARU - - + + Mode Mode - - + + Frequency Freqüència - - + + Frequency (MHz) Freqüència en MHz @@ -2080,12 +2085,13 @@ Error(%2): %3 - - - - - - + + + + + + + Band Activity Activitat a la banda @@ -2097,11 +2103,12 @@ Error(%2): %3 - - - - - + + + + + + Rx Frequency Freqüència de RX @@ -2136,122 +2143,137 @@ Error(%2): %3 Activació / desactivació del control de monitorització - + &Monitor &Monitor - + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> <html><head/><body><p>Esborra la finestra dreta, fes doble clic per esborrar les dues finestres.</p></body></html> - + Erase right window. Double-click to erase both windows. Esborra la finestra dreta, fes doble clic per esborrar les dues finestres. - + &Erase &Esborrar - + <html><head/><body><p>Clear the accumulating message average.</p></body></html> <html><head/><body><p>Neteja la mitjana de missatges acumulats.</p></body></html> - + Clear the accumulating message average. Neteja la mitjana de missatges acumulats. - + Clear Avg Esborra mitjana - + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> <html><head/><body><p>Descodificar el període de RX més recent en la freqüència de QSO</p></body></html> - + Decode most recent Rx period at QSO Frequency Descodificar el període de RX més recent en la freqüència de QSO - + &Decode &Descodificar - + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> <html><head/><body><p>Activar/Desactivar TX</p></body></html> - + Toggle Auto-Tx On/Off Activar/Desactivar TX - + E&nable Tx A&ctivar TX - + Stop transmitting immediately Deixa de transmetre immediatament - + &Halt Tx Aturar &TX - + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> <html><head/><body><p>Activa/Desactiva el to de TX pur per a sintonització</p></body></html> - + Toggle a pure Tx tone On/Off Activa/Desactiva el to TX pur per a sintonització - + &Tune &Sintonitzar - + Menus Menús - + + Percentage of minute sequences devoted to transmitting. + + + + + Prefer Type 1 messages + + + + + <html><head/><body><p>Transmit during the next sequence.</p></body></html> + + + + USB dial frequency freqüència de dial USB - + 14.078 000 14.078 000 - + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> <html><head/><body><p>30dB recomanat quan només hi ha soroll,<br/>en Verd és un bon nivell,<br/>en Vermell és poden produir retalls, i<br/>en Groc quan és massa baix.</p></body></html> - + Rx Signal Senyal de RX - + 30dB recommended when only noise present Green when good Red when clipping may occur @@ -2262,338 +2284,344 @@ en Vermell és poden produir retalls i en Groc quan és massa baix - + DX Call Indicatiu DX - + DX Grid Locator DX - + Callsign of station to be worked Indiatiu de l'estació per ser treballada - + Search for callsign in database Buscar el indicatiu a la base de dades - + &Lookup &Cercar - + Locator of station to be worked Locator de l'estació a treballar - + Az: 251 16553 km Az: 251 16553 km - + Add callsign and locator to database Afegir indicatiu i locator a la base de dades - + Add Afegir - + Pwr Potència - + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> <html><head/><body><p>Si hi ha hagut un error en el control de l'equip, fes clic per restablir i llegir la freqüència del dial. S implica mode dividit o split.</p></body></html> - + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. Si hi ha hagut un error en el control de l'equip, fes clic per restablir i llegir la freqüència del dial. S implica mode dividit o split. - + ? ? - + Adjust Tx audio level Ajust del nivell d'àudio de TX - + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> <html><head/><body><p>Selecciona la banda operativa, introdueix la freqüència en MHz o introdueix un increment de kHz seguit de k.</p></body></html> - + Frequency entry Freqüència d'entrada - + Select operating band or enter frequency in MHz or enter kHz increment followed by k. Selecciona la banda operativa, introdueix la freqüència en MHz o introdueix un increment de kHz seguit de k. - + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> - + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> <html><head/><body><p>Marca per que es mantingui la freqüència de TX fixada quan facis doble clic sobre un text descodificat.</p></body></html> - + Check to keep Tx frequency fixed when double-clicking on decoded text. Marca per que es mantingui la freqüència de TX fixada quan facis doble clic sobre un text descodificat. - + Hold Tx Freq Manté TX Freq - + Audio Rx frequency Freqüència d'Àudio en RX - - - + + + + + Hz Hz - + + Rx RX - + + Set Tx frequency to Rx Frequency Estableix la freqüència de RX en la de TX - + - + Frequency tolerance (Hz) Freqüència de Tolerància (Hz) - + + F Tol F Tol - + + Set Rx frequency to Tx Frequency Estableix la freqüència de TX en la de RX - + - + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> <html><head/><body><p>Sincronització del llindar. Els nombres més baixos accepten senyals de sincronització més febles.</p></body></html> - + Synchronizing threshold. Lower numbers accept weaker sync signals. Sincronització del llindar. Els nombres més baixos accepten senyals de sincronització més febles. - + Sync Sinc - + <html><head/><body><p>Check to use short-format messages.</p></body></html> <html><head/><body><p>Marcar per utilitzar missatges de format curt.</p></body></html> - + Check to use short-format messages. Marcar per utilitzar missatges de format curt. - + Sh Sh - + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> <html><head/><body><p>Comprova que actives els modes ràpids JT9</p></body></html> - + Check to enable JT9 fast modes Comprova que actives els modes ràpids JT9 - - + + Fast Ràpid - + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> <html><head/><body><p>Activa la seqüència automàtica dels missatges de TX en funció dels missatges rebuts.</p></body></html> - + Check to enable automatic sequencing of Tx messages based on received messages. Activa la seqüència automàtica dels missatges de TX en funció dels missatges rebuts. - + Auto Seq Seqüència Automàtica - + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> <html><head/><body><p>Contesta al primer CQ descodificat.</p></body></html> - + Check to call the first decoded responder to my CQ. Contesta al primer CQ descodificat. - + Call 1st Contesta al primer CQ - + Check to generate "@1250 (SEND MSGS)" in Tx6. Marca per generar "@1250 (SEND MSGS)" a TX6. - + Tx6 TX6 - + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> <html><head/><body><p>Marca a TX en minuts o seqüències de números parells, a partir de 0; desmarca les seqüències senars.</p></body></html> - + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. Marca a TX en minuts o seqüències de números parells, a partir de 0; desmarca les seqüències senars. - + Tx even/1st Alternar període TX Parell/Senar - + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> <html><head/><body><p>Freqüència per cridar CQ en kHz per sobre dels MHz actuals</p></body></html> - + Frequency to call CQ on in kHz above the current MHz Freqüència per cridar CQ en kHz per sobre dels MHz actuals - + Tx CQ TX CQ - + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> <html><head/><body><p>Marca això per trucar a CQ a la freqüència &quot;TX CQ&quot;. RX serà a la freqüència actual i el missatge CQ inclourà la freqüència de RX actual perquè els corresponsals sàpiguen a quina freqüència respondre.</p><p>No està disponible per als titulars de indicatiu no estàndard.</p></body></html> - + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. Marca això per trucar a CQ a la freqüència "TX CQ". RX serà a la freqüència actual i el missatge CQ inclourà la freqüència de RX actual perquè els corresponsals sàpiguen a quina freqüència respondre. No està disponible per als titulars de indicatiu no estàndard. - + Rx All Freqs RX a totes les freqüències - + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> <html><head/><body><p>La submode determina l'espai entre tons; A és més estret.</p></body></html> - + Submode determines tone spacing; A is narrowest. La submode determina l'espai entre tons; A és més estret. - + Submode Submode - - + + Fox Fox - + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> <html><head/><body><p>Marca per monitoritzar els missatges Sh.</p></body></html> - + Check to monitor Sh messages. Marca per monitoritzar els missatges Sh. - + SWL SWL - + Best S+P El millor S+P - + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> <html><head/><body><p>Marca per començar a enregistrar dades de calibració.<br/>Mentre es mesura la correcció de calibratge, es desactiva.<br/>Si no està marcat, pots veure els resultats de la calibració.</p></body></html> - + Check this to start recording calibration data. While measuring calibration correction is disabled. When not checked you can view the calibration results. @@ -2602,204 +2630,206 @@ Mentre es mesura la correcció de calibratge, es desactiva. Si no està marcat, pots veure els resultats de la calibració. - + Measure Mesura - + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> <html><head/><body><p>Informe de senyal: Relació senyal/soroll en amplada de banda de referència de 2500 Hz (dB).</p></body></html> - + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). Informe de senyal: Relació senyal/soroll en amplada de banda de referència de 2500 Hz (dB). - + Report Informe de senyal - + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> <html><head/><body><p>TX/RX o Longitud de la seqüència de calibratge de la freqüència</p></body></html> - + Tx/Rx or Frequency calibration sequence length TX/RX o Longitud de la seqüència de calibratge de la freqüència - + + s s - + + T/R T/R - + Toggle Tx mode Commuta el mode TX - + Tx JT9 @ TX JT9 @ - + Audio Tx frequency Freqüència d'àudio de TX - - + + Tx TX - + Tx# TX# - + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> <html><head/><body><p>Fes doble clic sobre un altre estació per posar a la cua en la trucada per al teu proper QSO.</p></body></html> - + Double-click on another caller to queue that call for your next QSO. Fes doble clic sobre un altre estació per posar a la cua en la trucada per al teu proper QSO. - + Next Call Proper Indicatiu - + 1 1 - - - + + + Send this message in next Tx interval Envia aquest missatge al següent interval de TX - + Ctrl+2 Ctrl+2 - + <html><head/><body><p>Send this message in next Tx interval</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>Envia aquest missatge al següent interval de TX.</p><p>Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1).</p></body></html> - + Send this message in next Tx interval 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) Envia aquest missatge al següent interval de TX. Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1) - + Ctrl+1 Ctrl+1 - - - - + + + + Switch to this Tx message NOW Canvia a aquest missatge de TX ARA - + Tx &2 TX &2 - + Alt+2 Alt+2 - + <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>Canvia a aquest missatge de TX ARA.</p><p>Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1).</p></body></html> - + Switch to this Tx message NOW 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) Canvia a aquest missatge de TX ARA. Fes doble clic per canviar l’ús del missatge TX1 per iniciar un QSO amb una estació (no està permès per a titulars de indicatius compostos de tipus 1) - + Tx &1 TX &1 - + Alt+1 Alt+1 - + Ctrl+6 Ctrl+6 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>Envia aquest missatge al següent interval de TX.</p><p>Fes doble clic per restablir el missatge estàndard 73.</p></body></html> - + Send this message in next Tx interval Double-click to reset to the standard 73 message Envia aquest missatge al següent interval de TX. Fes doble clic per restablir el missatge estàndard 73 - + Ctrl+5 Ctrl+5 - + Ctrl+3 Ctrl+3 - + Tx &3 TX &3 - + Alt+3 Alt+3 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>Envia aquest missatge al següent interval de TX.</p><p>Fes doble clic per alternar entre els missatges RRR i RR73 a TX4 (no està permès per a titulars d'indicatius compostos del tipus 2)</p><p>Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge.</p></body></html> - + Send this message in next Tx interval Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required @@ -2808,17 +2838,17 @@ Fes doble clic per alternar entre els missatges RRR i RR73 a TX4 (no està perm Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge - + Ctrl+4 Ctrl+4 - + <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>Canvia a aquest missatge de TX ARA.</p><p>Fes doble clic per alternar entre els missatges RRR i RR73 a TX4 (no està permès per a titulars d'indicatius compostos del tipus 2)</p><p>Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge.</p></body></html> - + Switch to this Tx message NOW Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required @@ -2827,65 +2857,64 @@ Fes doble clic per alternar entre els missatges RRR i RR73 a TX4 (no està perm Els missatges RR73 només s’han d’utilitzar quan teniu una confiança raonable que no caldrà repetir cap missatge - + Tx &4 TX &4 - + Alt+4 Alt+4 - + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>Canvia a aquest missatge de TX ARA.</p><p>Fes doble clic per restablir el missatge estàndard 73.</p></body></html> - + Switch to this Tx message NOW Double-click to reset to the standard 73 message Canvia a aquest missatge de TX ARA. Fes doble clic per restablir el missatge estàndard 73 - + Tx &5 TX &5 - + Alt+5 Alt+5 - + Now Ara - + Generate standard messages for minimal QSO Genera missatges estàndard per a un QSO mínim - + Generate Std Msgs Generar Std Msgs - + Tx &6 TX &6 - + Alt+6 Alt+6 - - + Enter a free text message (maximum 13 characters) or select a predefined macro from the dropdown list. Press ENTER to add the current text to the predefined @@ -2896,1074 +2925,1099 @@ Prem ENTER per afegir el text actual a la llista predefinida La llista es pot mantenir a la configuració (F2). - + Queue up the next Tx message Posa a la cua el següent missatge de TX - + Next Pròxim - + 2 2 - + + FST4W + + + Calling CQ - Cridant a CQ + Cridant a CQ - Generate a CQ message - Genera un missatge CQ + Genera un missatge CQ - - - + + CQ CQ - Generate message with RRR - Genera un missatge amb RRR + Genera un missatge amb RRR - RRR - RRR + RRR - Generate message with report - Generar un missatge amb Informe de senyal + Generar un missatge amb Informe de senyal - dB - dB + dB - Answering CQ - Respondre un CQ + Respondre un CQ - Generate message for replying to a CQ - Generar un missatge per respondre a un CQ + Generar un missatge per respondre a un CQ - - + Grid Locator - Generate message with R+report - Generar un missatge amb R+Informe de senyal + Generar un missatge amb R+Informe de senyal - R+dB - R+dB + R+dB - Generate message with 73 - Generar un missatge amb 73 + Generar un missatge amb 73 - 73 - 73 + 73 - Send this standard (generated) message - Envia aquest missatge estàndard (generat) + Envia aquest missatge estàndard (generat) - Gen msg - Gen msg + Gen msg - Send this free-text message (max 13 characters) - Envia aquest missatge de text lliure (màxim 13 caràcters) + Envia aquest missatge de text lliure (màxim 13 caràcters) - Free msg - Msg Lliure + Msg Lliure - 3 - 3 + 3 - + Max dB Màx dB - + CQ AF CQ AF - + CQ AN CQ AN - + CQ AS CA AS - + CQ EU CQ EU - + CQ NA CQ NA - + CQ OC CQ OC - + CQ SA CQ SA - + CQ 0 CQ 0 - + CQ 1 CQ 1 - + CQ 2 CQ 2 - + CQ 3 CQ 3 - + CQ 4 CQ 3 - + CQ 5 CQ 4 - + CQ 6 CQ 6 - + CQ 7 CQ 7 - + CQ 8 CQ 8 - + CQ 9 CQ 9 - + Reset Restablir - + N List N List - + N Slots N Slots - - + + + + + + + Random a l’atzar - + Call Indicatiu - + S/N (dB) S/N (dB) - + Distance Distància - + More CQs Més CQ's - Percentage of 2-minute sequences devoted to transmitting. - Percentatge de seqüències de 2 minuts dedicades a la transmissió. + Percentatge de seqüències de 2 minuts dedicades a la transmissió. - + + % % - + Tx Pct TX Pct - + Band Hopping Salt de Banda - + Choose bands and times of day for band-hopping. Tria bandes i hores del dia per al salt de bandes. - + Schedule ... Programació ... + 1/2 - 1/2 + 1/2 + 2/2 - 2/2 + 2/2 + 1/3 - 1/3 + 1/3 + 2/3 - 2/3 + 2/3 + 3/3 - 3/3 + 3/3 + 1/4 - 1/4 + 1/4 + 2/4 - 2/4 + 2/4 + 3/4 - 3/4 + 3/4 + 4/4 - 4/4 + 4/4 + 1/5 - 1/5 + 1/5 + 2/5 - 2/5 + 2/5 + 3/5 - 3/5 + 3/5 + 4/5 - 4/5 + 4/5 + 5/5 - 5/5 + 5/5 + 1/6 - 1/6 + 1/6 + 2/6 - 2/6 + 2/6 + 3/6 - 3/6 + 3/6 + 4/6 - 4/6 + 4/6 + 5/6 - 5/6 + 5/6 + 6/6 - 6/6 + 6/6 - + Upload decoded messages to WSPRnet.org. Carrega missatges descodificats a WSPRnet.org. - + Upload spots Carrega Spots - + <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>Els locator de 6 dígits fan que s’enviïn 2 missatges diferents, el segon conté el locator complet, però només un indicatiu trossejat, les altres estacions han d’haver descodificat el primer una vegada abans de poder descodificar el segon. Marca aquesta opció per enviar només locators de 4 dígits i s’evitarà el protocol de dos missatges.</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. Els locator de 6 dígits fan que s’enviïn 2 missatges diferents, el segon conté el locator complet, però només un indicatiu trossejat, les altres estacions han d’haver descodificat el primer una vegada abans de poder descodificar el segon. Marca aquesta opció per enviar només locators de 4 dígits i s’evitarà el protocol de dos missatges. + + + Quick-Start Guide to FST4 and FST4W + + + + + FST4 + + FT240W FT240W - Prefer type 1 messages - Prefereixes missatges de tipus 1 + Prefereixes missatges de tipus 1 - + No own call decodes No es descodifica cap indicatiu pròpi - Transmit during the next 2-minute sequence. - Transmetre durant la següent seqüència de 2 minuts. + Transmetre durant la següent seqüència de 2 minuts. - + Tx Next Proper TX - + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. Configura la potència de TX en dBm (dB per sobre d'1 mW) com a part del vostre missatge WSPR. - + + NB + + + + File Arxiu - + View Veure - + Decode Descodificar - + Save Guardar - + Help Ajuda - + Mode Mode - + Configurations Configuracions - + Tools Eines - + Exit Sortir - Configuration - Ajustos + Ajustos - F2 - F2 + F2 - + About WSJT-X Quant a WSJT-X - + Waterfall Cascada - + Open Obrir - + Ctrl+O Ctrl+O - + Open next in directory Obre el següent directori - + Decode remaining files in directory Descodificar els arxius restants al directori - + Shift+F6 Maj.+F6 - + Delete all *.wav && *.c2 files in SaveDir Esborrar tots els arxius *.wav i *.c2 - + None Cap - + Save all Guardar-ho tot - + Online User Guide Guia d'usuari online - + Keyboard shortcuts Dreceres de teclat - + Special mouse commands Ordres especials del ratolí - + JT9 JT9 - + Save decoded Guarda el descodificat - + Normal Normal - + Deep Profunda - Monitor OFF at startup - Monitor apagat a l’inici + Monitor apagat a l’inici - + Erase ALL.TXT Esborrar l'arxiu ALL.TXT - + Erase wsjtx_log.adi Esborrar l'arxiu wsjtx_log.adi - Convert mode to RTTY for logging - Converteix el mode a RTTY després de registrar el QSO + Converteix el mode a RTTY després de registrar el QSO - Log dB reports to Comments - Posa els informes de recepció en dB als comentaris + Posa els informes de recepció en dB als comentaris - Prompt me to log QSO - Inclòure el QSO al log + Inclòure el QSO al log - Blank line between decoding periods - Línia en blanc entre els períodes de descodificació + Línia en blanc entre els períodes de descodificació - Clear DX Call and Grid after logging - Neteja l'indicatiu i la graella de DX després de registrar el QSO + Neteja l'indicatiu i la graella de DX després de registrar el QSO - Display distance in miles - Distància en milles + Distància en milles - Double-click on call sets Tx Enable - Fes doble clic als conjunts d'indicatius d'activar TX + Fes doble clic als conjunts d'indicatius d'activar TX - - + F7 F7 - Tx disabled after sending 73 - TX desactivat després d’enviar 73 + TX desactivat després d’enviar 73 - - + Runaway Tx watchdog Seguretat de TX - Allow multiple instances - Permetre diverses instàncies + Permetre diverses instàncies - Tx freq locked to Rx freq - TX freq bloquejat a RX freq + TX freq bloquejat a RX freq - + JT65 JT65 - + JT9+JT65 JT9+JT65 - Tx messages to Rx Frequency window - Missatges de TX a la finestra de freqüència de RX + Missatges de TX a la finestra de freqüència de RX - Gray1 - Gris1 + Gris1 - Show DXCC entity and worked B4 status - Mostra l'entitat DXCC i l'estat de B4 treballat + Mostra l'entitat DXCC i l'estat de B4 treballat - + Astronomical data Dades astronòmiques - + List of Type 1 prefixes and suffixes Llista de prefixos i sufixos de tipus 1 - + Settings... Configuració... - + Local User Guide Guia d'usuari local - + Open log directory Obre el directori del log - + JT4 JT4 - + Message averaging Mitjana de missatges - + Enable averaging Activa la mitjana - + Enable deep search Activa la cerca profunda - + WSPR WSPR - + Echo Graph Gràfic d'Eco - + F8 F8 - + Echo Eco - + EME Echo mode Mode EME Eco - + ISCAT ISCAT - + Fast Graph Gràfic ràpid - + F9 F9 - + &Download Samples ... &Descarrega mostres ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>Descarrega els arxius d’àudio d’exemple mostrant els diversos modes.</p></body></html> - + MSK144 MSK144 - + QRA64 QRA64 - + Release Notes Notes de llançament - + Enable AP for DX Call Habilita AP per al indicatiu de DX - + FreqCal FreqCal - + Measure reference spectrum Mesura l’espectre de referència - + Measure phase response Mesura la resposta en fase - + Erase reference spectrum Esborra l'espectre de referència - + Execute frequency calibration cycle Executa el cicle de calibració de freqüència - + Equalization tools ... Eines d'equalització ... - WSPR-LF - WSPR-LF + WSPR-LF - Experimental LF/MF mode - Mode experimental LF/MF + Mode experimental LF/MF - + FT8 FT8 - - + + Enable AP Activa AP - + Solve for calibration parameters Resol els paràmetres de calibratge - + Copyright notice Avís de drets d’autor - + Shift+F1 Maj.+F1 - + Fox log Log Fox - + FT8 DXpedition Mode User Guide Guia de l'usuari del mode DXpedition a FT8 - + Reset Cabrillo log ... Restableix el log de Cabrillo ... - + Color highlighting scheme Esquema de ressaltar el color - Contest Log - Log de Concurs + Log de Concurs - + Export Cabrillo log ... Exporta el log de Cabrillo ... - Quick-Start Guide to WSJT-X 2.0 - Guia d'inici ràpid a WSJT-X 2.0 + Guia d'inici ràpid a WSJT-X 2.0 - + Contest log Log de Concurs - + Erase WSPR hashtable Esborra la taula WSPR - + FT4 FT4 - + Rig Control Error Error del control del equip - - - + + + Receiving Rebent - + Do you want to reconfigure the radio interface? Vols reconfigurar la interfície de la ràdio ? - + + %1 (%2 sec) audio frames dropped + + + + + Audio Source + + + + + Reduce system load + + + + + Excessive dropped samples - %1 (%2 sec) audio frames dropped + + + + Error Scanning ADIF Log Error d'escaneig del log ADIF - + Scanned ADIF log, %1 worked before records created Log ADIF escanejat, %1 funcionava abans de la creació de registres - + Error Loading LotW Users Data S'ha produït un error al carregar les dades dels usuaris de LotW - + Error Writing WAV File S'ha produït un error al escriure l'arxiu WAV - + Configurations... Configuracions... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message Missatge - + Error Killing jt9.exe Process Error en matar el procés jt9.exe - + KillByName return code: %1 Codi de retorn de KillByName: %1 - + Error removing "%1" Error en eliminar "%1" - + Click OK to retry Fes clic a D'acord per tornar-ho a provar - - + + Improper mode Mode inadequat - - + + File Open Error Error al obrir l'arxiu - - - - - + + + + + Cannot open "%1" for append: %2 No es pot obrir "%1" per annexar: %2 - + Error saving c2 file Error en desar l'arxiu c2 - + Error in Sound Input Error a la entrada de so - + Error in Sound Output Error en la sortida de so - - - + + + Single-Period Decodes Descodificacions d'un sol període - - - + + + Average Decodes Mitjans descodificats - + Change Operator Canvi d'Operador - + New operator: Operador Nou: - + Status File Error Error d'estat de l'arxiu - - + + Cannot open "%1" for writing: %2 No es pot obrir "%1" per escriure: %2 - + Subprocess Error Error de subprocés - + Subprocess failed with exit code %1 Ha fallat el subprocés amb el codi de sortida %1 - - + + Running: %1 %2 Corrent: %1 %2 - + Subprocess error Error de subprocés - + Reference spectrum saved Guarda l'espectre de referència - + Invalid data in fmt.all at line %1 Les dades no són vàlides a fmt.all a la línia %1 - + Good Calibration Solution Solució de bona calibració - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3976,17 +4030,17 @@ La llista es pot mantenir a la configuració (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Suprimeix les mesures de calibració - + The "fmt.all" file will be renamed as "fmt.bak" L'arxiu "fmt.all" serà renombrat com a "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3994,27 +4048,27 @@ La llista es pot mantenir a la configuració (F2). "Els algoritmes, codi font, aspecte de WSJT-X i programes relacionats i les especificacions de protocol per als modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 són Copyright (C) 2001-2020 per un o més dels següents autors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q i altres membres del grup de desenvolupament de WSJT. " - + No data read from disk. Wrong file format? No es llegeixen dades del disc. Format de l'arxiu incorrecte ? - + Confirm Delete Confirma Esborrar - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Estàs segur que vols esborrar tots els arxius *.wav i *.c2"%1" ? - + Keyboard Shortcuts Dreceres de teclat - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4064,12 +4118,12 @@ La llista es pot mantenir a la configuració (F2). - + Special Mouse Commands Ordres especials del ratolí - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4080,7 +4134,7 @@ La llista es pot mantenir a la configuració (F2). <td><b>Click</b> to set Rx frequency.<br/> <b>Shift-click</b> to set Tx frequency.<br/> <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> - <b>Double-click</b> to also decode at Rx frequency.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> </td> </tr> <tr> @@ -4088,10 +4142,10 @@ La llista es pot mantenir a la configuració (F2). <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> locator to Dx Grid, change Rx and Tx frequency to<br/> decoded signal's frequency, and generate standard<br/> - messages.<br/> - If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> - is your own call, Tx frequency is not changed unless <br/> - <b>Ctrl</b> is held down.<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> </td> </tr> <tr> @@ -4105,42 +4159,42 @@ La llista es pot mantenir a la configuració (F2). - + No more files to open. No s’obriran més arxius. - + Spotting to PSK Reporter unavailable - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Tria una altra freqüència de TX. El WSJT-X no transmetrà de manera conscient un altre mode a la sub-banda WSPR a 30 m. - + WSPR Guard Band Banda de Guàrdia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Tria una altra freqüència de treball. WSJT-X no funcionarà en mode Fox a les sub-bandes FT8 estàndard. - + Fox Mode warning Avís de mode Fox - + Last Tx: %1 Últim TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4151,183 +4205,182 @@ Per fer-ho, comprova "Activitat operativa especial" i Concurs EU VHF a la Configuració | Pestanya avançada. - + Should you switch to ARRL Field Day mode? Has de canviar al mode de Field Day de l'ARRL ? - + Should you switch to RTTY contest mode? Has de canviar al mode de concurs RTTY? - - - - + + + + Add to CALL3.TXT Afegeix a CALL3.TXT - + Please enter a valid grid locator Introduïu un locator vàlid - + Cannot open "%1" for read/write: %2 No es pot obrir "%1" per llegir o escriure: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 ja és a CALL3.TXT, vols substituir-lo ? - + Warning: DX Call field is empty. Avís: el camp de indicatiu DX està buit. - + Log file error Error a l'arxiu de log - + Cannot open "%1" No es pot obrir "%1" - + Error sending log to N1MM Error al enviar el log a N1MM - + Write returned "%1" Escriptura retornada "%1" - + Stations calling DXpedition %1 Estacions que criden a DXpedition %1 - + Hound Hound - + Tx Messages Missatges de TX - - - + + + Confirm Erase Confirma Esborrar - + Are you sure you want to erase file ALL.TXT? Estàs segur que vols esborrar l'arxiu ALL.TXT ? - - + + Confirm Reset Confirma que vols Restablir - + Are you sure you want to erase your contest log? Estàs segur que vols esborrar el log del concurs ? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Si fas això, suprimiràs tots els registres de QSO del concurs actual. Es conservaran a l'arxiu de log ADIF, però no es podran exportar al log de Cabrillo. - + Cabrillo Log saved Log Cabrillo desat - + Are you sure you want to erase file wsjtx_log.adi? Estàs segur que vols esborrar l'arxiu wsjtx_log.adi ? - + Are you sure you want to erase the WSPR hashtable? Estàs segur que vols esborrar la taula del WSPR ? - VHF features warning - Les característiques de VHF tenen un avís + Les característiques de VHF tenen un avís - + Tune digital gain Guany de sintonització digital - + Transmit digital gain Guany digital de transmissió - + Prefixes Prefixos - + Network Error Error de xarxa - + Error: %1 UDP server %2:%3 Error: %1 UDP server %2:%3 - + File Error Error a l'arxiu - + Phase Training Disabled Entrenament de fase Desactivat - + Phase Training Enabled Entrenament de fase activat - + WD:%1m WD:%1m - - + + Log File Error Error a l'arxiu de log - + Are you sure you want to clear the QSO queues? Estàs segur que vols esborrar les cues de QSO ? @@ -4349,8 +4402,8 @@ UDP server %2:%3 Modes - - + + Mode Mode @@ -4507,7 +4560,7 @@ UDP server %2:%3 No s'ha pogut obrir l'arxiu CSV dels usuaris de LotW: '%1' - + OOB OOB @@ -4694,7 +4747,7 @@ Error(%2): %3 Error no recuperable, el dispositiu d'entrada d'àudio no es pot utilitzar ara. - + Requested input audio format is not valid. El format sol·licitat d'àudio d'entrada no és vàlid. @@ -4704,37 +4757,37 @@ Error(%2): %3 El format d'àudio d'entrada sol·licitat no és compatible amb el dispositiu. - + Failed to initialize audio sink device Error a l'inicialitzar el dispositiu de descarrega d'àudio - + Idle Inactiu - + Receiving Rebent - + Suspended Suspès - + Interrupted Interromput - + Error Error - + Stopped Aturat @@ -4742,62 +4795,67 @@ Error(%2): %3 SoundOutput - + An error opening the audio output device has occurred. S'ha produït un error obrint el dispositiu de sortida d'àudio. - + An error occurred during write to the audio output device. S'ha produït un error escribint en el dispositiu de sortida d'àudio. - + Audio data not being fed to the audio output device fast enough. Les dades d'àudio no s'envien al dispositiu de sortida d'àudio prou ràpid. - + Non-recoverable error, audio output device not usable at this time. Error no recuperable, dispositiu de sortida d'àudio no utilitzable ara. - + Requested output audio format is not valid. El format sol·licitat d'àudio de sortida no és vàlid. - + Requested output audio format is not supported on device. El format sol·licitat d'àudio de sortida no és compatible amb el dispositiu. - + + No audio output device configured. + + + + Idle Inactiu - + Sending Enviant - + Suspended Suspès - + Interrupted Interromput - + Error Error - + Stopped Aturat @@ -4805,22 +4863,22 @@ Error(%2): %3 StationDialog - + Add Station Afegir estació - + &Band: &Banda: - + &Offset (MHz): &Desplaçament en MHz: - + &Antenna: &Antena: @@ -5008,19 +5066,23 @@ Error(%2): %3 <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> <html><head/><body><p>Descodificar JT9 només per sobre d’aquesta freqüència</p></body></html> - - Hz - Hz - - JT9 - JT9 + Hz + Hz + Split + + + + JT9 + JT9 + + JT65 - JT65 + JT65 @@ -5054,6 +5116,29 @@ Error(%2): %3 Llegiu Paleta + + WorkedBefore + + + Invalid ADIF field %0: %1 + + + + + Malformed ADIF field %0: %1 + + + + + Invalid ADIF header + + + + + Error opening ADIF log file for read: %0 + + + configuration_dialog @@ -5252,9 +5337,8 @@ Error(%2): %3 minuts - Enable VHF/UHF/Microwave features - Activa les funcions de VHF/UHF/Microones + Activa les funcions de VHF/UHF/Microones @@ -5371,7 +5455,7 @@ període tranquil quan es fa la descodificació. - + Port: Port: @@ -5382,137 +5466,149 @@ període tranquil quan es fa la descodificació. + Serial Port Parameters Paràmetres de port sèrie - + Baud Rate: Velocitat de transmissió: - + Serial port data rate which must match the setting of your radio. Velocitat de dades del port sèrie que ha de coincidir amb la configuració del equip. - + 1200 1200 - + 2400 2400 - + 4800 4800 - + 9600 9600 - + 19200 19200 - + 38400 38400 - + 57600 57600 - + 115200 115200 - + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> <html><head/><body><p>Nombre de bits de dades utilitzats per a comunicar-se amb la interfície CAT del equip (generalment vuit).</p></body></html> - + + Data bits + + + + Data Bits Bits de dades - + D&efault &Per defecte - + Se&ven S&et - + E&ight V&uit - + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> <html><head/><body><p>Nombre de bits de parada utilitzats per a comunicar-se amb la interfície CAT del equip</p><p>(consulta el manual del equip per a més detalls).</p></body></html> - + + Stop bits + + + + Stop Bits Bits de parada - - + + Default Per defecte - + On&e U&n - + T&wo D&os - + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> <html><head/><body><p>Protocol de control de flux que s’utilitza entre aquest ordinador i la interfície CAT del equip (generalment &quot;Cap&quot; però alguns requereixen &quot;Maquinari&quot;).</p></body></html> - + + Handshake Handshake - + &None &Cap - + Software flow control (very rare on CAT interfaces). Control de flux de programari (molt rar a les interfícies CAT). - + XON/XOFF XON/XOFF - + Flow control using the RTS and CTS RS-232 control lines not often used but some radios have it as an option and a few, particularly some Kenwood rigs, require it). @@ -5521,79 +5617,85 @@ no s’utilitza sovint, però alguns equips ho tenen com a opció i uns pocs, particularment alguns equips de Kenwood, ho requereixen. - + &Hardware Ma&quinari - + Special control of CAT port control lines. Control especial de les línies de control de ports CAT. - + + Force Control Lines Línies de control de força - - + + High Alt - - + + Low Baix - + DTR: DTR: - + RTS: RTS: + + + Days since last upload + + How this program activates the PTT on your radio missing ? Com activa aquest programa el PTT al vostre equip - + How this program activates the PTT on your radio? Com activa aquest programa el PTT del teu equip ? - + PTT Method Mètode PTT - + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> <html><head/><body><p>No hi ha cap activació PTT, en canvi, el VOX automàtic de l'equip s'utilitza per teclejar el transmissor.</p><p>Fes-la servir si no tens maquinari d'interfície de l'equip.</p></body></html> - + VO&X VO&X - + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> <html><head/><body><p>Utilitza la línia de control RS-232 DTR per alternar el PTT del teu equip, requereix maquinari per interconnectar la línia.</p><p>Algunes unitats d'interfície comercial també utilitzen aquest mètode.</p><p>Es pot utilitzar la línia de control DTR del port sèrie CAT o es pot utilitzar una línia de control DTR en un port sèrie diferent.</p></body></html> - + &DTR &DTR - + Some radios support PTT via CAT commands, use this option if your radio supports it and you have no other hardware interface for PTT. @@ -5602,47 +5704,47 @@ utilitza aquesta opció si l'equip li dóna suport i no en tens cap altra interfície de maquinari per a PTT. - + C&AT C&AT - + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> <html><head/><body><p>Utilitza la línia de control RS-232 RTS per canviar el PTT del teu equip, requereix que el maquinari interfereixi a la línia.</p><p>Algunes unitats d'interfície comercial també utilitzen aquest mètode.</p><p>Es pot utilitzar la línia de control RTS del port sèrie CAT o es pot utilitzar una línia de control RTS en un port sèrie diferent. Tingues en compte que aquesta opció no està disponible al port sèrie CAT quan s'utilitza el control del flux de maquinari.</p></body></html> - + R&TS R&TS - + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> <html><head/><body><p>Selecciona el port sèrie RS-232 utilitzat per al control PTT, aquesta opció està disponible quan es selecciona DTR o RTS a dalt com a mètode de transmissió.</p><p>Aquest port pot ser el que s'utilitza per al control CAT.</p><p>Per a alguns tipus d'interfície es pot triar el valor especial CAT, aquest s'utilitza per a interfícies CAT no serials que puguin controlar les línies de control de ports sèrie de forma remota (per exemple, OmniRig).</p></body></html> - + Modulation mode selected on radio. Mode de modulació seleccionat al equip. - + Mode Mode - + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> <html><head/><body><p>USB sol ser el mode de modulació correcte,</p><p>tret que l'equip tingui una configuració especial del mode de dades o paquets</p><p>per a l’operació AFSK.</p></body></html> - + US&B US&B - + Don't allow the program to set the radio mode (not recommended but use if the wrong mode or bandwidth is selected). @@ -5651,23 +5753,23 @@ or bandwidth is selected). o es selecciona l'ample de banda). - - + + None Cap - + If this is available then it is usually the correct mode for this program. Si està disponible, normalment és el mode correcte per a aquest programa. - + Data/P&kt Dades/P&kt - + Some radios can select the audio input using a CAT command, this setting allows you to select which audio input will be used (if it is available then generally the Rear/Data option is best). @@ -5676,52 +5778,52 @@ aquest paràmetre et permet seleccionar quina entrada d'àudio s'utili (si està disponible, en general, l'opció posterior/dades és la millor). - + Transmit Audio Source Font d’àudio de transmissió - + Rear&/Data Part posterior&/dades - + &Front/Mic &Frontal/Micròfon - + Rig: Equip: - + Poll Interval: Interval de sondeig: - + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> <html><head/><body><p>Interval del sondeig de l'equip per a l'estat. Intervals més llargs significa que els canvis a l'equip triguen més a detectar-se.</p></body></html> - + s s - + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> <html><head/><body><p>Intenta connectar-te a l'equip amb aquests paràmetres.</p><p>El botó es posarà de color verd si la connexió és correcta o vermella si hi ha algun problema.</p></body></html> - + Test CAT Prova de CAT - + Attempt to activate the transmitter. Click again to deactivate. Normally no power should be output since there is no audio being generated at this time. @@ -5734,47 +5836,47 @@ Comprova que hi hagi alguna indicació de TX a l'equip i el teu interfície de ràdio funcioni correctament. - + Test PTT Prova PTT - + Split Operation Operació Split - + Fake It Falseja-ho - + Rig Equip - + A&udio À&udio - + Audio interface settings Configuració de la interfície d'àudio - + Souncard Targeta de so - + Soundcard Targeta de so - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5787,46 +5889,46 @@ desactivats, en cas contrari emetreu els sons del sistema generats durant els períodes de transmissió. - + Select the audio CODEC to use for receiving. Selecciona el CODEC d'àudio que cal utilitzar per rebre. - + &Input: &Entrada: - + Select the channel to use for receiving. Selecciona el canal a utilitzar per a rebre. - - + + Mono Mono - - + + Left Esquerra - - + + Right Dreta - - + + Both Tots dos - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5837,110 +5939,115 @@ canals, llavors normalment voldràs seleccionar mono o els dos canals. - + + Enable VHF and submode features + + + + Ou&tput: Sor&tida: - - + + Save Directory Directori de Guardar - + Loc&ation: Ubic&ació: - + Path to which .WAV files are saved. Ruta a la qual es desen els arxius .WAV. - - + + TextLabel Etiqueta de text - + Click to select a different save directory for .WAV files. Fes clic per seleccionar un directori diferent per desar els arxius .WAV. - + S&elect Sele&cciona - - + + AzEl Directory Directori AzEl - + Location: Ubicació: - + Select Selecciona - + Power Memory By Band Memòria de potència per banda - + Remember power settings by band Recorda els ajustos de potència per banda - + Enable power memory during transmit Habilita la memòria de potència durant la transmissió - + Transmit Transmetre - + Enable power memory during tuning Habilita la memòria de potència durant la sintonització - + Tune Sintonitzar - + Tx &Macros &Macros de TX - + Canned free text messages setup Configuració de missatges de text lliures - + &Add &Afegir - + &Delete &Esborrar - + Drag and drop items to rearrange order Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items @@ -5949,37 +6056,37 @@ Fes clic amb el botó dret per a les accions específiques de l’element. Fes clic, MAJ. + clic i, CTRL+clic per seleccionar els elements - + Reportin&g Informe&s - + Reporting and logging settings Configuració d'informes i registres - + Logging Registres - + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. El programa apareixerà un diàleg de QSO de registre parcialment completat quan enviïs un missatge de text 73 o lliure. - + Promp&t me to log QSO Regis&tra el QSO - + Op Call: Indicatiu de l'Operador: - + Some logging programs will not accept the type of reports saved by this program. Check this option to save the sent and received reports in the @@ -5990,49 +6097,49 @@ Comprova aquesta opció per desar els informes enviats i rebuts al camp de comentaris. - + d&B reports to comments informa dels d&B's als comentaris - + Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. Marca aquesta opció per a forçar l'eliminació dels camps Indicatiu DX i Locator DX quan s’envia un missatge de text 73 o lliure. - + Clear &DX call and grid after logging Buida les graelles Indicatiu DX i Locator &DX després del registre - + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> <html><head/><body><p>Alguns programes de log no accepten noms del mode WSJT-X.</p></body></html> - + Con&vert mode to RTTY Con&verteix el mode a RTTY - + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> <html><head/><body><p>L'Indicatiu de l'operador, si és diferent del indicatiu de l'estació.</p></body></html> - + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> <html><head/><body><p>Marca perquè els QSO's es registrin automàticament, quan es completin.</p></body></html> - + Log automatically (contesting only) Log automàtic (només concurs) - + Network Services Serveis de xarxa @@ -6047,512 +6154,548 @@ S'utilitza per a l'anàlisi de balises inverses, que és molt útil per avaluar la propagació i el rendiment del sistema. - + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> - + Enable &PSK Reporter Spotting Activa &PSK Reporter - + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + Use TCP/IP connection - + UDP Server Servidor UDP - + UDP Server: Servidor UDP: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>Nom de l'amfitrió opcional del servei de xarxa per rebre descodificacions.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Nom d'amfitrió</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">adreça IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">adreça IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Adreça de grup multicast IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Adreça de grup multicast IPv6</li></ul><p>Si esborreu aquest camp, es desactivarà la difusió de les actualitzacions d’estat d’UDP.</p></body></html> - + UDP Server port number: Número de port del servidor UDP: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p>Introdueix el número de port del servei del servidor UDP al qual WSJT-X hauria d'enviar les actualitzacions. Si és zero, no s’emetran actualitzacions.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p>Amb aquesta habilitat, WSJT-X acceptarà de nou algunes sol·licituds d’un servidor UDP que rep missatges de descodificació.</p></body></html> - + Accept UDP requests Accepta sol·licituds UDP - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p>Indica l'acceptació d'una sol·licitud UDP entrant. L’efecte d’aquesta opció varia en funció del sistema operatiu i del gestor de finestres, la seva intenció és notificar l’acceptació d’una sol·licitud UDP entrant encara que aquesta aplicació estigui minimitzada o oculta.</p></body></html> - + Notify on accepted UDP request Notifica-la sobre la sol·licitud acceptada d’UDP - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p>Restaura la finestra al mínim si s’accepta una sol·licitud UDP.</p></body></html> - + Accepted UDP request restores window La finestra de restauració de la sol·licitud UDP es acceptada - + Secondary UDP Server (deprecated) Servidor UDP secundari (obsolet) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p>Quan es marca, WSJT-X transmetrà un contacte registrat en format ADIF al nom d'amfitrió i port configurats. </p></body></html> - + Enable logged contact ADIF broadcast Habilita la transmissió ADIF de contacte registrad - + Server name or IP address: Nom del servidor o adreça IP: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>Nom d'amfitrió opcional del programa N1MM Logger+ per rebre transmissions ADIF UDP. Generalment és "localhost" o adreça IP 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Nom d'amfitrió</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">adreça IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">adreça IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Adreça de grup multicast IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Adreça de grup multicast IPv6</li></ul><p>Si esborres aquest camp, es desactivarà la transmissió d’informació ADIF a través d’UDP.</p></body></html> - + Server port number: Número de port del servidor: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>Introdueix el número de port que hauria d’utilitzar WSJT-X per a les emissions d'UDP d’informació de registre ADIF. Per N1MM Logger+, aquest valor hauria de ser 2333. Si aquest és zero, no es transmetran actualitzacions.</p></body></html> - + Frequencies Freqüències - + Default frequencies and band specific station details setup Configuració predeterminada de les freqüències i bandes amb detalls específics de l'estació - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>Veure &quot;Freqüència de Calibració&quot; a la Guia de l'usuari de WSJT-X per obtenir més informació sobre com determinar aquests paràmetres per al teu equip.</p></body></html> - + Frequency Calibration Freqüència de Calibració - + Slope: Pendent: - + ppm ppm - + Intercept: Intercepte: - + Hz Hz - + Working Frequencies Freqüències de treball - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>Fes clic amb el botó dret per mantenir la llista de freqüències de treball.</p></body></html> - + Station Information Informació de l'estació - + Items may be edited. Right click for insert and delete options. Es poden editar ítems. Fes clic amb el botó dret per a les opcions d'inserció i eliminació. - + Colors Colors - + Decode Highlightling Ressaltar Descodificar - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> <html><head/><body><p>Fes clic per analitzar l'arxiu ADIF wsjtx_log.adi de nou per obtenir la informació abans treballada</p></body></html> - + Rescan ADIF Log Escaneig de nou el log ADIF - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>Prem per restablir tots els elements destacats anteriors als valors i prioritats predeterminats.</p></body></html> - + Reset Highlighting Restableix Ressaltat - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body><p>Activar o desactivar l'ús de les caselles de verificació fes clic amb el botó dret en un element per canviar o desactivar el color del primer pla, el color de fons o restablir l'element als valors predeterminats. Arrossega i deixa anar els elements per canviar la seva prioritat, major a la llista és major en prioritat.</p><p>Recorda que cada color de primer pla o de fons pot estar configurat o no, el que vol dir que no està assignat per al tipus d'element i poden aplicar-se elements de menor prioritat.</p></body></html> - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>Marca per indicar noves entitats DXCC, Locators i indicatius per modes.</p></body></html> - + Highlight by Mode Ressaltar per mode - + Include extra WAE entities Incloure entitats WAE addicionals - + Check to for grid highlighting to only apply to unworked grid fields Marca perquè el ressaltat de Locator només s'aplica als camps de Locator no treballats - + Only grid Fields sought Només camps de Locator buscats - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>Controls per a la recerca d'usuaris de Logbook of the World (LoTW).</p></body></html> - + Logbook of the World User Validation Validació de l’usuari a Logbook of the World (LoTW) - + Users CSV file URL: URL de l'arxiu CSV dels usuaris: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body><p>URL de l'últim arxiu de dades de dates i hores de càrrega de ARRL LotW que s'utilitza per ressaltar descodificacions d'estacions que se sap que carreguen el seu arxiu de log a LotW.</p></body></html> - + + URL + + + + https://lotw.arrl.org/lotw-user-activity.csv https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>Fes clic sobre aquest botó per obtenir l'últim arxiu de dades de data i hora de càrrega dels usuaris de LotW.</p></body></html> - + Fetch Now Obtenir ara - + Age of last upload less than: Edat de la darrera càrrega inferior a: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p>Ajusta aquest quadre de selecció per establir el llindar d'edat de l'última data de càrrega dels usuaris de LotW que s'accepta com a usuari actual de LotW.</p></body></html> - + days dies - + Advanced Avançat - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>Paràmetres seleccionables per l'usuari per descodificació JT65 VHF/UHF/Microones.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters Paràmetres de descodificació JT65 VHF/UHF/Microones - + Random erasure patterns: Patrons d'esborrament aleatoris: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p>El nombre màxim de patrons d'esborrat per al descodificador estoic de decisió suau Reed Solomon és 10^(n/2).</p></body></html> - + Aggressive decoding level: Nivell de descodificació agressiu: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>A nivells més elevats augmentarà la probabilitat de descodificació, però també augmentarà la probabilitat de fals descodificació.</p></body></html> - + Two-pass decoding Descodificació a dos passos - + Special operating activity: Generation of FT4, FT8, and MSK144 messages Activitat operativa especial: Generació de missatges FT4, FT8 i MSK144 - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> <html><head/><body><p>Mode FT8 DXpedition: operador Hound que truca al DX.</p></body></html> - + + Hound Hound - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>Concursos de VHF/UHF/Microones nord-americans i altres en què es necessita un intercanvi de locators de quatre caràcters.</p></body></html> - + + NA VHF Contest Concurs NA VHF - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>Mode FT8 DXpedition: operador Fox (DXpedition).</p></body></html> - + + Fox Fox - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>Concursos europeus de VHF i superiors que requereixen el informe de senyal, número de sèrie i locator de 6 caràcters.</p></body></html> - + + EU VHF Contest Concurs EU VHF - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY Roundup i concursos similars. L’intercanvi és estat nord-americà, província canadenca o &quot;DX&quot;.</p></body></html> - + + R T T Y Roundup + + + + RTTY Roundup messages Missatges de Rencontre RTTY - + + RTTY Roundup exchange + + + + RTTY RU Exch: Intercanvi RTTY RU: - + NJ NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL Field Day exchange: nombre de transmissors, classe i secció ARRL / RAC o &quot;DX&quot;.</p></body></html> - + + A R R L Field Day + + + + ARRL Field Day ARRL Field Day - + + Field Day exchange + + + + FD Exch: Intercanvi FD: - + 6A SNJ 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>Concurs World-Wide Digi-mode</p><p><br/></p></body></html> - + + WW Digital Contest + + + + WW Digi Contest Concurs WW Digi - + Miscellaneous Divers - + Degrade S/N of .wav file: Grau S/N de l'arxiu .wav: - - + + For offline sensitivity tests Per a proves de sensibilitat fora de línia - + dB dB - + Receiver bandwidth: Amplada de banda del receptor: - + Hz Hz - + Tx delay: Retard de TX: - + Minimum delay between assertion of PTT and start of Tx audio. Retard mínim entre el PTT i l'inici de l'àudio TX. - + s s - + + Tone spacing Espaiat de to - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>Genera l’àudio de TX amb el doble de l'espaiament normal. Destinat a transmissors especials de LF/MF que utilitzen un dividit per 2 abans de generar la RF.</p></body></html> - + x 2 x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>Genera l'àudio de TX amb quatre vegades l'espaiat del to normal. Destinat a transmissors especials de LF/MF que usen una divisió per 4 abans de generar la RF.</p></body></html> - + x 4 x 4 - + + Waterfall spectra Espectres de cascades - + Low sidelobes Lòbuls laterals baixos - + Most sensitive El més sensible - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p>Eliminar (Cancel·la) o aplicar (D'acord) canvis de configuració inclosos.</p><p>Restablint la interfície de ràdio i aplicant els canvis a la targeta de so</p></body></html> @@ -6659,12 +6802,12 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació.No es pot crear el segment de memòria compartida - + Sub-process error - + Failed to close orphaned jt9 process diff --git a/translations/wsjtx_da.ts b/translations/wsjtx_da.ts index a0e37dc59..8c93f09e0 100644 --- a/translations/wsjtx_da.ts +++ b/translations/wsjtx_da.ts @@ -130,17 +130,17 @@ Astronomiske Data - + Doppler Tracking Error Doppler Tracking Error - + Split operating is required for Doppler tracking For Doppler tracking kræves Split Mode - + Go to "Menu->File->Settings->Radio" to enable split operation Gå til "Menu->Fil->Indstillinger->Radio for at aktivere Split Mode @@ -148,32 +148,32 @@ Bands - + Band name Bånd - + Lower frequency limit Nedre frekvens grænse - + Upper frequency limit Øvre frekvens grænse - + Band Bånd - + Lower Limit Nedre Grænse - + Upper Limit Øvre Grænse @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete &Slet - - + + &Insert ... &indsæt ... - + Failed to create save directory Fejl ved oprettelse af mappe til at gemme i - + path: "%1% sti: "%1% - + Failed to create samples directory Fejl i oprettelsen af mappe til eksempler - + path: "%1" sti: "%1" - + &Load ... &Hent ... - + &Save as ... &Gem som ... - + &Merge ... &Indflette ... - + &Reset &Reset - + Serial Port: Seriel Port: - + Serial port used for CAT control Seriel port til CAT kontrol - + Network Server: Netværk Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -452,12 +452,12 @@ Formater: [IPv6-address]:port - + USB Device: USB Enhed: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -468,152 +468,157 @@ Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - + + Invalid audio input device Foekert audio input enhed - Invalid audio out device - Forkert audio output enhed + Forkert audio output enhed - + + Invalid audio output device + + + + Invalid PTT method Forkert PTT metode - + Invalid PTT port Forkert PTT port - - + + Invalid Contest Exchange Forkert Contest Udveksling - + You must input a valid ARRL Field Day exchange Indsæt et valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange Indsæt et valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting Nulstil dekode markering - + Reset all decode highlighting and priorities to default values Indstil alle dekode markeringer og prioriteringer til default - + WSJT-X Decoded Text Font Chooser WSJT-X Dekodet tekst Font vælger - + Load Working Frequencies Hent Frekvens liste - - - + + + Frequency files (*.qrg);;All files (*.*) Frekvens fil *.qrg);;All files (*.*) - + Replace Working Frequencies Erstat frekvensliste - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? Er du sikker på du vil kassere dine nuværende frekvensliste og erstatte den med denne frekvensliste? - + Merge Working Frequencies Indflet Frevens liste - - - + + + Not a valid frequencies file Ikke en gyldig Frekvens liste fil - + Incorrect file magic Forkert fil Magic - + Version is too new Version for ny - + Contents corrupt Inhold ugyldigt - + Save Working Frequencies Gem frekvens liste - + Only Save Selected Working Frequencies Gemmer kun de valgte frekvenser til listen - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. Er du sikker på du kun vil gemme de valgte frekvenser i Frekvenslisten. Klik nej for gemme alle. - + Reset Working Frequencies Reset frekvens liste - + Are you sure you want to discard your current working frequencies and replace them with default ones? Er du sikker på du vil kassere dine nuværende frekvensliste og erstatte dem med standard frekvenser? - + Save Directory Gemme Mappe - + AzEl Directory AzEL Mappe - + Rig control error Radio kontrol fejl - + Failed to open connection to rig Fejl i etablering af forbindelse til radio - + Rig failure Radio fejl @@ -1438,22 +1443,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency Tilføj Frekvens - + IARU &Region: IARU &Region: - + &Mode: &Mode: - + &Frequency (MHz): &Frekvens (Mhz): @@ -1461,26 +1466,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region IRAU Region - - + + Mode Mode - - + + Frequency Frekvens - - + + Frequency (MHz) Frekvens (Mhz) @@ -2080,12 +2085,13 @@ Fejl(%2): %3 - - - - - - + + + + + + + Band Activity Bånd Aktivitet @@ -2097,11 +2103,12 @@ Fejl(%2): %3 - - - - - + + + + + + Rx Frequency Rx frekvens @@ -2136,122 +2143,137 @@ Fejl(%2): %3 Skift monitorering On/Off - + &Monitor &Monitor - + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> <html><head/><body><p>Slet hjre vindue. Dobbelt-klik for at slette begge vinduer.</p></body></html> - + Erase right window. Double-click to erase both windows. Slet højre vindue. Dobbelt klik for at slette begge vinduer. - + &Erase &Slet - + <html><head/><body><p>Clear the accumulating message average.</p></body></html> <html><head/><body> <p> Slet det samlede meddelelsesgennemsnit. </p> </body> </html> - + Clear the accumulating message average. Slet det samlede meddelses gennemsnit. - + Clear Avg Slet AVG - + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> <html><head/><body> <p> Dekod den seneste Rx-periode på QSO-frekvens </p> </body> </html> - + Decode most recent Rx period at QSO Frequency Dekod den seneste Rx-periode på QSO-frekvens - + &Decode &Dekod - + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> <html><head/><body><p>Skift af Auto-Tx On/Off</p></body></html> - + Toggle Auto-Tx On/Off Skift Auto Tx On/Off - + E&nable Tx A&ktiver Tx - + Stop transmitting immediately Stop TX med det samme - + &Halt Tx &Stop Tx - + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> <html><head/><body><p>Skift mellem On/Off af TX Tone</p></body></html> - + Toggle a pure Tx tone On/Off Skift mellem On/Off af TX Tone - + &Tune &Tune - + Menus Menu - + + Percentage of minute sequences devoted to transmitting. + + + + + Prefer Type 1 messages + + + + + <html><head/><body><p>Transmit during the next sequence.</p></body></html> + + + + USB dial frequency USB dial frekvens - + 14.078 000 14.078 000 - + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> <html><head/><body> <p> 30dB anbefales, når der kun er støj til stede <br/> Grønt er godt <br/> Rødt ved klipning kan forekomme <br/> Gul, når den er for lav </p> </ body > </ html> - + Rx Signal Rx Signal - + 30dB recommended when only noise present Green when good Red when clipping may occur @@ -2262,337 +2284,343 @@ Rød ved klipping kan forekomme Gul er for lavt - + DX Call DX kaldesignal - + DX Grid DX Grid - + Callsign of station to be worked Kaldesignal på den der køres - + Search for callsign in database Kig efter kaldesignalet i databasen - + &Lookup &Slå op - + Locator of station to be worked Lokator på den der køres - + Az: 251 16553 km Az: 251 16553 km - + Add callsign and locator to database Tilføj kaldesignal og locator til Log databasen - + Add Tilføj - + Pwr Pwr - + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> <html><head/><body> <p> Er den orange eller rød er der sket en Radiokontrol fejl og så skal du klikke for at nulstille og læse frekvensen. S betyder split mode. </p> </body> </html> - + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. Hvis den er orange eller rød har der været en Radiokontrol fejl. Så skal der klikkes for nulstille og læse frekvensen. S betyder split mode. - + ? ? - + Adjust Tx audio level Juster Tx audio niveau - + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> <html><head/><body> <p> Vælg bånd eller indtast frekvens i MHz eller indtast kHz forøgelse efterfulgt af k. </p> </body> </html> - + Frequency entry Indsæt Frekvens - + Select operating band or enter frequency in MHz or enter kHz increment followed by k. Vælg bånd du vil operere på eller indtast frekvens i Mhz eller indtast Khz efterfulgt af k. - + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> - + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> <html><head/><body> <p> Marker for at holde Tx-frekvensen, når du dobbeltklikker på dekodet tekst. </p> </body> </html> - + Check to keep Tx frequency fixed when double-clicking on decoded text. Marker for at låse Tx frekvens når der dobbeltklikkes på en dekodet tekst. - + Hold Tx Freq Hold Tx Frekv - + Audio Rx frequency Audio Rx frekvens - - - + + + + + Hz Hz - + + Rx Rx - + + Set Tx frequency to Rx Frequency Sæt Tx frekvens til Rx frekvens - + - + Frequency tolerance (Hz) Frekvens tolerance (Hz) - + + F Tol F Tol - + + Set Rx frequency to Tx Frequency Sæt Rx frekevens til Tx Frekvens - + - + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> <html><head/><body> <p> Synkroniseringsgrænse. Lavere tal accepterer svagere synkroniseringssignaler. </p> </body> </html> - + Synchronizing threshold. Lower numbers accept weaker sync signals. Synkroniseringsgrænse. Lavere tal accepterer svagere synkroniseringssignaler. - + Sync Synk - + <html><head/><body><p>Check to use short-format messages.</p></body></html> <html><head/><body><p>Marker for at bruge kort msg format.</p></body></html> - + Check to use short-format messages. Marker for at bruge kort msg format. - + Sh Sh - + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> <html><head/><body><p>Marker for at aktivere JT9 Fast Mode</p></body></html> - + Check to enable JT9 fast modes Marker for aktivering af JT9 Fast Mode - - + + Fast Fast - + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> <html><head/><body> <p> Marker for at aktivere automatisk sekventering af Tx-meddelelser baseret på modtagne meddelelser. </p> </body> </html> - + Check to enable automatic sequencing of Tx messages based on received messages. Marker for at aktivere automatisk sekventering af Tx-meddelelser baseret på modtagne meddelelser. - + Auto Seq Auto Sekv - + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> <html><head/><body> <p> Marker for at kalde den første dekodede som svarer på min CQ. </p> </body> </html> - + Check to call the first decoded responder to my CQ. Marker for at kalde den første som svarer på min CQ. - + Call 1st Kald 1st - + Check to generate "@1250 (SEND MSGS)" in Tx6. Marker for at generere "@1250 (SEND MSGS)" in Tx6. - + Tx6 Tx6 - + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> <html><head/><body> <p> Marker for Tx på lige sekunder i minuttet eller sekvenser, der starter ved 0; fjern markeringen for ulige sekvenser. </p> </body> </html> - + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. Marker til Tx på lige sekunder i minuttet eller sekvenser, der starter ved 0; fjern markeringen for ulige sekvenser. - + Tx even/1st Tx Lige/1st - + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> <html><head/><body><p>Frekvens hvor der kaldes CQ på i kHz over de nuværende Mhz</p></body></html> - + Frequency to call CQ on in kHz above the current MHz Frekvens hvor der kaldes CQ i Khz over de nuværende Mhz - + Tx CQ Tx CQ - + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> <html><head/><body> <p> Marker for at kalde CQ på &quot; Tx CQ &quot; frekvens. Rx vil være på den aktuelle frekvens, og CQ-meddelelsen vil indeholde den aktuelle Rx-frekvens, så modparten ved, hvilken frekvens der skal svares på. </p> <p> Ikke tilgængelig for ikke-standard kaldesignaler. </p> </body> </ html> - + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. Marker for at kalde CQ på "TX CQ" frekvens. Rx vil være på den aktuelle frekvens, og CQ-meddelelsen vil indeholde den aktuelle Rx-frekvens, så modparten ved, hvilken frekvens der skal svares på. Ikke tilgængelig for ikke-standard kaldesignaler. - + Rx All Freqs Rx Alle Frekv - + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> <html><head/><body> <p> Submode bestemmer toneafstanden; A er det smalleste. </p> </body> </html> - + Submode determines tone spacing; A is narrowest. Submode bestemmer toneafstanden; A er det smalleste. - + Submode Submode - - + + Fox Fox - + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> <html><head/><body><p>Marker for at monitere Sh meddelser.</p></body></html> - + Check to monitor Sh messages. Marker for monitering af Sh meddelser. - + SWL SWL - + Best S+P Best S+P - + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> <html><head/><body> <p> Marker dennee for at starte opsamling af kalibreringsdata. <br/> Mens måling af kalibreringskorrektion er visning deaktiveret. <br/> Når denne ikke er markeret, kan du se kalibreringsresultaterne. </p> </ body> </ html> - + Check this to start recording calibration data. While measuring calibration correction is disabled. When not checked you can view the calibration results. @@ -2601,204 +2629,206 @@ Mens foregår måling af kalibreringskorrektion er visning deaktiveret. Når den ikke er markeret, kan du se kalibreringsresultaterne. - + Measure Mål kalibrering - + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> <html><head/><body> <p> Signalrapport: Signal-til-støj-forhold i 2500 Hz referencebåndbredde (dB). </p> </body> </html> - + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). Signalrapport: Signal-til-støj-forhold i 2500 Hz referencebåndbredde (dB). - + Report Rapport - + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> <html><head/><body><p>Tx/Rx eller Frekvens kalibrerings sekvenslængde</p></body></html> - + Tx/Rx or Frequency calibration sequence length Tx/Rx eller Frekvens kalibrerings sekvenslængde</p></body></html> - + + s s - + + T/R T/R - + Toggle Tx mode Skift TX mode - + Tx JT9 @ Tx JT9@ - + Audio Tx frequency Audio Tx frekvens - - + + Tx TX - + Tx# TX# - + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> <html><head/><body> <p> Dobbeltklik på et CQ opkald for at den pågældende kommer i kø til næste QSO. </p> </body> </html> - + Double-click on another caller to queue that call for your next QSO. Dobbeltklik på et andet CQ opkald for at den pågældende kommer i kø til næste QSO. - + Next Call Næste Kaldesignal - + 1 1 - - - + + + Send this message in next Tx interval Send denne meddelse i næste Tx periode - + Ctrl+2 Ctrl+2 - + <html><head/><body><p>Send this message in next Tx interval</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> Send denne meddelelse i næste Tx-interval </p> <p> Dobbeltklik for at skifte brug af Tx1-meddelelsen til at starte en QSO med en station (ikke tilladt for type 1 sammensatte opkald) </p> </body> </html> - + Send this message in next Tx interval 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) Send denne meddelelse i næste Tx-periode. Dobbeltklik for at skifte brug af Tx1-meddelelsen til at starte en QSO med en station (ikke tilladt for type 1 indehavere af sammensatte opkald) - + Ctrl+1 CTRL+1 - - - - + + + + Switch to this Tx message NOW Skift til denne Tx meddelse nu - + Tx &2 TX &2 - + Alt+2 Alt+2 - + <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> Skift til denne Tx-meddelelse NU </p> <p> Dobbeltklik for at skifte brug af Tx1-meddelelsen til at starte en QSO med en station (ikke tilladt for type 1 sammensatte kaldesignaler) </p> </body> </html> - + Switch to this Tx message NOW 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) Skift til denne Tx meddelse NU Dobbelt klik for at skifte brug af Tx1 meddelse for at starte QSO med en station (ikke tilladt for type 1 sammensatte kaldesignaler) - + Tx &1 Tx &1 - + Alt+1 Alt+1 - + Ctrl+6 CTRL+6 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>Send denne meddelse i næste Tx periode</p><p>Dobbelt klik for at resette til standard 73 message</p></body></html> - + Send this message in next Tx interval Double-click to reset to the standard 73 message Send denne meddelse i næste Tx periode Dobbelt klik for at resette til standard 73 message - + Ctrl+5 Ctrl+5 - + Ctrl+3 CTRL+3 - + Tx &3 Tx &3 - + Alt+3 Alt+3 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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> Send denne meddelelse i næste Tx periode </p> <p> Dobbeltklik for at skifte mellem RRR og RR73-meddelelser i Tx4 (ikke tilladt for type 2 sammensatte kaldesignaler)</p><p> RR73 meddelelser skal kun bruges, når du med rimelig sikkerhed er overbevist om, at der ikke kræves gentagne meddelelser</p></body></html> - + Send this message in next Tx interval Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required @@ -2807,17 +2837,17 @@ Dobbeltklik for at skifte mellem RRR og RR73-meddelelser i Tx4 (ikke tilladt for RR73-meddelelser skal kun bruges, når du med rimelig sikkerhed er overbevist om, at der ikke kræves gentagne meddelelser - + Ctrl+4 Ctrl+4 - + <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> Skift til denne Tx-meddelelse NU</p><p>Dobbeltklik for at skifte mellem RRR og RR73-meddelelser i Tx4 (ikke tilladt for type2 sammensatte kaldesignaler)</p><p>RR73-meddelelser skal kun bruges, når du med rimelighed er overbevist om, at der ikke kræves gentagne meddelelser </p></body></html> - + Switch to this Tx message NOW Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required @@ -2826,65 +2856,64 @@ Dobbeltklik for at skifte mellem RRR og RR73-meddelelser i Tx4 (ikke tilladt for RR73-meddelelser skal kun bruges, når du med rimelig sikkerhed er overbevist om, at der ikke kræves gentagne meddelelser - + Tx &4 TX &4 - + Alt+4 Alt+4 - + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>Skift til denne Tx meddelse NU</p><p>Dobbelt klik for at vende tilbage til standard 73 message</p></body></html> - + Switch to this Tx message NOW Double-click to reset to the standard 73 message Skift til denne Tx meddelse NU Dobbelt klik for at vende tilbage til standard 73 meddelse - + Tx &5 Tx&5 - + Alt+5 Alt+5 - + Now Nu - + Generate standard messages for minimal QSO Generer standard meddelse til minimal QSO - + Generate Std Msgs Generate Std Medd - + Tx &6 Tx&6 - + Alt+6 Alt+6 - - + Enter a free text message (maximum 13 characters) or select a predefined macro from the dropdown list. Press ENTER to add the current text to the predefined @@ -2895,1075 +2924,1096 @@ Tryk på på Enter for indsætte teksten til makro listen. Makro listen kan også ændfres i Inderstillinger (F2). - + Queue up the next Tx message Sat i kø til næste Tx meddelse - + Next Næste - + 2 ? 2 - + + FST4W + + + Calling CQ - Kalder CQ + Kalder CQ - Generate a CQ message - Generer CQ meddelse + Generer CQ meddelse - - - + + CQ CQ - Generate message with RRR - Generer meddelse med RRR + Generer meddelse med RRR - RRR - RRR + RRR - Generate message with report - Generer meddelse med rapport + Generer meddelse med rapport - dB - dB + dB - Answering CQ - Svar på CQ + Svar på CQ - Generate message for replying to a CQ - Generer meddelse som svar på et CQ + Generer meddelse som svar på et CQ - - + Grid Grid - Generate message with R+report - Generer meddelse med R+report + Generer meddelse med R+report - R+dB - R+dB + R+dB - Generate message with 73 - Generer meddelse med 73 + Generer meddelse med 73 - 73 - 73 + 73 - Send this standard (generated) message - Send denne standard (genereret) meddelse + Send denne standard (genereret) meddelse - Gen msg - Gen medd + Gen medd - Send this free-text message (max 13 characters) - Send denne fri-tekst meddelse (maks 13 karakterer) + Send denne fri-tekst meddelse (maks 13 karakterer) - Free msg - Fri medd + Fri medd - 3 - 3 + 3 - + Max dB Maks dB - + CQ AF CQ AF - + CQ AN CQ AN - + CQ AS CQ AS - + CQ EU CQ EU - + CQ NA CQ NA - + CQ OC CQ OC - + CQ SA CQ SA - + CQ 0 CQ 0 - + CQ 1 CQ 1 - + CQ 2 CQ 2 - + CQ 3 CQ 3 - + CQ 4 CQ 4 - + CQ 5 CQ 5 - + CQ 6 CQ 6 - + CQ 7 CQ 7 - + CQ 8 CQ 8 - + CQ 9 CQ 9 - + Reset Reset - + N List N Liste - + N Slots N slots - - + + + + + + + Random Tilfældig - + Call Kaldesignal - + S/N (dB) S/N (dB) - + Distance Distance - + More CQs Flere CQ - Percentage of 2-minute sequences devoted to transmitting. - Procen af en 2 minutters sekvens dedikeret til sending. + Procen af en 2 minutters sekvens dedikeret til sending. - + + % % - + Tx Pct Tx Pct - + Band Hopping Bånd hopping - + Choose bands and times of day for band-hopping. Vælg bånd og tid på dagen for Bånd-Hopping. - + Schedule ... Tidskema ... + 1/2 - 1/2 + 1/2 + 2/2 - 2/2 + 2/2 + 1/3 - 1/3 + 1/3 + 2/3 - 2/3 + 2/3 + 3/3 - 3/3 + 3/3 + 1/4 - 1/4 + 1/4 + 2/4 - 2/4 + 2/4 + 3/4 - 3/4 + 3/4 + 4/4 - 4/4 + 4/4 + 1/5 - 1/5 + 1/5 + 2/5 - 2/5 + 2/5 + 3/5 - 3/5 + 3/5 + 4/5 - 4/5 + 4/5 + 5/5 - 5/5 + 5/5 + 1/6 - 1/6 + 1/6 + 2/6 - 2/6 + 2/6 + 3/6 - 3/6 + 3/6 + 4/6 - 4/6 + 4/6 + 5/6 - 5/6 + 5/6 + 6/6 - 6/6 + 6/6 - + Upload decoded messages to WSPRnet.org. Uoload dekodet meddelser til WSPRnet.org. - + Upload spots Upload spots - + <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>6-cifrede locatorer kræver 2 forskellige meddelelser for at blive sendt, den anden indeholder den fulde locator, men kun et hashet kaldesignal. Andre stationer skal have dekodet den første gang, før de kan dekode dit kaldesignal i den anden meddelse. Marker denne indstilling for kun at sende 4-cifrede locatorer, hvis den vil undgå to meddelelsesprotokollen.</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. 6 cifrede locatorer kræver 2 forskellige meddelelser for at blive sendt, den anden indeholder den fulde locator, men kun et hashet kaldesignal. Andre stationer skal have dekodet den første gang, før de kan dekode dit kaldesignal i den anden meddelse. Marker denne indstilling for kun at sende 4-cifrede locatorer, hvis du vil undgå to meddelelses protokollen. + + + Quick-Start Guide to FST4 and FST4W + + + + + FST4 + + FT240W FT240W - Prefer type 1 messages - Fortrækker type 1 meddelse + Fortrækker type 1 meddelse - + No own call decodes Ingen dekodning af eget kaldesignal - Transmit during the next 2-minute sequence. - Tx i den næste 2 minutters sekvens. + Tx i den næste 2 minutters sekvens. - + Tx Next Tx Næste - + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. Indsæt Tx power i dBm (dB over 1mW) som en del af WSPR meddelse. - + + NB + + + + File Fil - + View Vis/Se - + Decode Dekod - + Save Gem - + Help Hjælp - + Mode Mode - + Configurations Konfiguration - + Tools Værktøjer - + Exit Afslut - Configuration - Konfiguiration + Konfiguiration - F2 - F2 + F2 - + About WSJT-X Om WSJT-X - + Waterfall Vandfald - + Open Åbne - + Ctrl+O Ctrl+o - + Open next in directory Åben den næste i mappe - + Decode remaining files in directory Dekod resterende filer i mappen - + Shift+F6 Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir Slet alle *.wav && *.c2 filer i mappen Gemt - + None Ingen - + Save all Gem alt - + Online User Guide Online Bruger Manual - + Keyboard shortcuts Tastetur genveje - + Special mouse commands Specielle muse kommandoer - + JT9 JT9 - + Save decoded Gem dekodet - + Normal Normal - + Deep Dybt - Monitor OFF at startup - Monitor OFF ved start + Monitor OFF ved start - + Erase ALL.TXT Slet ALL.TXT - + Erase wsjtx_log.adi Slet wsjtx_log.adi - Convert mode to RTTY for logging - Koverter mode til RTTY ved logning + Koverter mode til RTTY ved logning - Log dB reports to Comments - Log dB rapporter til kommentar feltet + Log dB rapporter til kommentar feltet - Prompt me to log QSO - Gør mig opmærksom på at logge QSO + Gør mig opmærksom på at logge QSO - Blank line between decoding periods - Stiplede linjer mellem dekodnings perioder + Stiplede linjer mellem dekodnings perioder - Clear DX Call and Grid after logging - Slet DX Call og Grid efter logging + Slet DX Call og Grid efter logging - Display distance in miles - Vis afstand i miles + Vis afstand i miles - Double-click on call sets Tx Enable - Dobbelt-klik på et kaldesignal for at sætte TX ON + Dobbelt-klik på et kaldesignal for at sætte TX ON - - + F7 F7 - - Tx disabled after sending 73 - - - - - + Runaway Tx watchdog Runaway Tx vagthund - Allow multiple instances - Tillad flere forekomster af program + Tillad flere forekomster af program - Tx freq locked to Rx freq - Tx frekv låst til Rx frekv + Tx frekv låst til Rx frekv - + JT65 JT65 - + JT9+JT65 JT+JT65 - Tx messages to Rx Frequency window - Tx meddelse til Rx Frekvens vindue + Tx meddelse til Rx Frekvens vindue - Gray1 - Gray1 + Gray1 - Show DXCC entity and worked B4 status - Vis DXCC og Worked B4 status + Vis DXCC og Worked B4 status - + Astronomical data Astronomi data - + List of Type 1 prefixes and suffixes Liste over Type 1 prefix og suffix - + Settings... Indstillinger... - + Local User Guide Lokal User Manual - + Open log directory Åben Logfil mappe - + JT4 JT4 - + Message averaging Meddelse gennemsnit - + Enable averaging Aktiver gennemsnit - + Enable deep search Aktiver Dyb dekodning - + WSPR WSPR - + Echo Graph Ekko graf - + F8 F8 - + Echo Ekko - + EME Echo mode EME Ekko mode - + ISCAT ISCAT - + Fast Graph - + F9 F9 - + &Download Samples ... &Download eksempler ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>Download audio filer eksempler som demonstrerer de forskellige modes.</p></body></html> - + MSK144 MSK144 - + QRA64 QRA64 - + Release Notes Release Notes - + Enable AP for DX Call Aktiver AP for DX kaldesignal - + FreqCal FrekvCal - + Measure reference spectrum Måler reference spectrum - + Measure phase response Måler fase response - + Erase reference spectrum Slet reference spektrum - + Execute frequency calibration cycle Kør en frekvens kalibrerings sekvens - + Equalization tools ... Equalization værktøjer ... - WSPR-LF - WSPR-LF + WSPR-LF - Experimental LF/MF mode - Eksperimental LF/MF mode + Eksperimental LF/MF mode - + FT8 FT8 - - + + Enable AP Aktiver AP - + Solve for calibration parameters Løs for kalibrerings parametre - + Copyright notice Copyright notits - + Shift+F1 Shift+F1 - + Fox log Fox Log - + FT8 DXpedition Mode User Guide FT8 DXpedition Mode bruger guide - + Reset Cabrillo log ... Reset Cabrillo log ... - + Color highlighting scheme Farve skema - Contest Log - Contest Log + Contest Log - + Export Cabrillo log ... Eksporter Cabrillo log ... - Quick-Start Guide to WSJT-X 2.0 - Quick-Start Guide til WSJT-X 2.0 + Quick-Start Guide til WSJT-X 2.0 - + Contest log Contest log - + Erase WSPR hashtable Slet WSPR Hash tabel - + FT4 FT4 - + Rig Control Error Radio kontrol fejl - - - + + + Receiving Modtager - + Do you want to reconfigure the radio interface? Vil du rekonfigurere radio interface? - + + %1 (%2 sec) audio frames dropped + + + + + Audio Source + + + + + Reduce system load + + + + + Excessive dropped samples - %1 (%2 sec) audio frames dropped + + + + Error Scanning ADIF Log Fejl ved scanning af Adif Log - + Scanned ADIF log, %1 worked before records created Scannet ADIF log, %1 worked B4 oprettede poster - + Error Loading LotW Users Data Fejl ved indlæsning af LotW bruger Data - + Error Writing WAV File Fejl ved skrivning af WAV Fil - + Configurations... Konfigurationer... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message Meddelse - + Error Killing jt9.exe Process Fejl ved lukning af jt9.exe processen - + KillByName return code: %1 KillByName return code: %1 - + Error removing "%1" Fejl ved fjernelse af "%1" - + Click OK to retry Klik OK for at prøve igen - - + + Improper mode Forkert mode - - + + File Open Error Fejl ved åbning af fil - - - - - + + + + + Cannot open "%1" for append: %2 Kan ikke åbne "%1" for at tilføje: %2 - + Error saving c2 file Fejl da c2 fil skulle gemmes - + Error in Sound Input Fejl i Audio input - + Error in Sound Output Fejl i Audio output - - - + + + Single-Period Decodes Enkel-Periode Dekodning - - - + + + Average Decodes Gennemsnitlig dekodning - + Change Operator Skift Operatør - + New operator: Ny Operatør: - + Status File Error Fejl i status Fil - - + + Cannot open "%1" for writing: %2 Kan ikke åbne "%1" for at skrive: %2 - + Subprocess Error Underprocess fejl - + Subprocess failed with exit code %1 Underprocess fejlede med fejlkode %1 - - + + Running: %1 %2 Kører: %1 %2 - + Subprocess error Underprocess fejl - + Reference spectrum saved Reference spectrum gemt - + Invalid data in fmt.all at line %1 Forkert data i fmt.all ved linje %1 - + Good Calibration Solution God Kalibrerings løsning - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3976,17 +4026,17 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Slet Kalibrerings måling - + The "fmt.all" file will be renamed as "fmt.bak" Filen fmt.all vil blive omdøbt til "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3994,27 +4044,27 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). "Algoritmerne, kildekoden, udseendet og funktionen af ​​WSJT-X og relaterede programmer og protokolspecifikationer for Mode FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 er Copyright (C) 2001-2020 af en eller flere af følgende forfattere: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; og andre medlemmer af WSJT Development Group. " - + No data read from disk. Wrong file format? Ingen data indlæst. Forkert fil format? - + Confirm Delete Bekræft sletning - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Er du sikker på du vil slette alle *.wav og *.c2 filer i "%1"? - + Keyboard Shortcuts Tastetur Genveje - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4064,12 +4114,12 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). - + Special Mouse Commands Specielle muse kommandoer - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4080,7 +4130,7 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). <td><b>Click</b> to set Rx frequency.<br/> <b>Shift-click</b> to set Tx frequency.<br/> <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> - <b>Double-click</b> to also decode at Rx frequency.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> </td> </tr> <tr> @@ -4088,10 +4138,10 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> locator to Dx Grid, change Rx and Tx frequency to<br/> decoded signal's frequency, and generate standard<br/> - messages.<br/> - If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> - is your own call, Tx frequency is not changed unless <br/> - <b>Ctrl</b> is held down.<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> </td> </tr> <tr> @@ -4105,42 +4155,42 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). - + No more files to open. Ikke flere filer at åbne. - + Spotting to PSK Reporter unavailable - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Venligst vælg en ande Tx frekvens. WSJT-X vil ikke sende med en anden Mode i WSPR området på 30m. - + WSPR Guard Band WSPR Guard bånd - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Vælg venligst en anden VFO frekvens. WSJT-x vil ikke operere med Fox mode i standard FT8 områder - + Fox Mode warning Fox Mode advarsel - + Last Tx: %1 Senest Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4151,183 +4201,182 @@ For at gøre dette skal du markere 'Speciel aktivitet' og 'EU VHF-Contest' på indstillingerne | Avanceret fane. - + Should you switch to ARRL Field Day mode? Bør du skifte til ARRL Field Day mode? - + Should you switch to RTTY contest mode? Bør du skifte til RTTY Contest mode? - - - - + + + + Add to CALL3.TXT Tilføj til CALL3.TXT - + Please enter a valid grid locator Indsæt en gyldig Grid lokator - + Cannot open "%1" for read/write: %2 Kan ikke åbne "%1" for Læse/Skrive: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 er allerede i CALL3.TXT. Vil du erstatte den? - + Warning: DX Call field is empty. Advarsel: DX Call feltet er tomt. - + Log file error Log fil fejl - + Cannot open "%1" Kan ikke åbne "%1" - + Error sending log to N1MM Fejl ved afsendelse af log til N1MM - + Write returned "%1" Skrivning vendte tilbage med "%1" - + Stations calling DXpedition %1 Stationer som kalder DXpedition %1 - + Hound Hound - + Tx Messages Tx meddelse - - - + + + Confirm Erase Bekræft Slet - + Are you sure you want to erase file ALL.TXT? Er du sikker på du vil slette filen ALL.TXT? - - + + Confirm Reset Bekræft Reset - + Are you sure you want to erase your contest log? Er du sikker på du vil slette din contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Gør du dette vil alle QSOer for pågældende contest blive slettet. De bliver dog gemt i en ADIF fik, men det vil ikke være muligt at eksportere dem som Cabrillo log. - + Cabrillo Log saved Cabrillo Log gemt - + Are you sure you want to erase file wsjtx_log.adi? Er du sikker på du vil slette filen wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? Er du sikker på du vil slette WSPR Hash tabellen? - VHF features warning - VHF feature advarsel + VHF feature advarsel - + Tune digital gain Tune digital gain - + Transmit digital gain Transmit digital gain - + Prefixes Prefixer - + Network Error Netværks Fejl - + Error: %1 UDP server %2:%3 Error: %1 UDP server %2:%3 - + File Error Fil fejl - + Phase Training Disabled Phase Training Deaktiveret - + Phase Training Enabled Phase Training Aktiveret - + WD:%1m WD:%1m - - + + Log File Error Log Fil Fejl - + Are you sure you want to clear the QSO queues? Er du sikker du vil slette QSO køen? @@ -4349,8 +4398,8 @@ UDP server %2:%3 Modes - - + + Mode Mode @@ -4503,7 +4552,7 @@ UDP server %2:%3 Fejl ved åbning af LoTW bruger CSV file:'%1' - + OOB OOB @@ -4694,7 +4743,7 @@ Fejl(%2): %3 Fejl, der ikke kan gendannes, lydindgangs enhed kan ikke bruges på dette tidspunkt. - + Requested input audio format is not valid. Det ønskede Audio ingangs format er ikke gyldigt. @@ -4704,37 +4753,37 @@ Fejl(%2): %3 Det ønskede Audio indgangs format understøttes ikke af enheden. - + Failed to initialize audio sink device Kunne ikke initialisere lydenheden - + Idle Venter - + Receiving Modtager - + Suspended Suspenderet - + Interrupted Afbrudt - + Error Fejl - + Stopped Stoppet @@ -4742,62 +4791,67 @@ Fejl(%2): %3 SoundOutput - + An error opening the audio output device has occurred. Fejl ved åbning af Audio udgangs enheden. - + An error occurred during write to the audio output device. Fejl ved skrivning til Audio udgangs enheden. - + Audio data not being fed to the audio output device fast enough. Audio data bliver ikke sendt hurtigt nok Audio udgangs enheden. - + Non-recoverable error, audio output device not usable at this time. Fejl, der ikke kan gendannes, lydudgangs enhed kan ikke bruges på dette tidspunkt. - + Requested output audio format is not valid. Det ønskede udgangs Audio format er ikke gyldig. - + Requested output audio format is not supported on device. Det ønskede Audio udgangs format understøttes ikke af enheden. - + + No audio output device configured. + + + + Idle Venter - + Sending Sender - + Suspended Suspenderet - + Interrupted Afbrudt - + Error Fejl - + Stopped Stoppet @@ -4805,22 +4859,22 @@ Fejl(%2): %3 StationDialog - + Add Station Tilføj Station - + &Band: &Bånd: - + &Offset (MHz): &Offset (Mhz): - + &Antenna: &Antenne: @@ -5008,19 +5062,23 @@ Fejl(%2): %3 <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> <html><head/><body><p>Dekod kun JT9 over denne frekvens</p></body></html> - - Hz - Hz - - JT9 - JT69 + Hz + Hz + Split + + + + JT9 + JT69 + + JT65 - JY65 + JY65 @@ -5054,6 +5112,29 @@ Fejl(%2): %3 Læs Palette + + WorkedBefore + + + Invalid ADIF field %0: %1 + + + + + Malformed ADIF field %0: %1 + + + + + Invalid ADIF header + + + + + Error opening ADIF log file for read: %0 + + + configuration_dialog @@ -5252,9 +5333,8 @@ Fejl(%2): %3 minutter - Enable VHF/UHF/Microwave features - Aktiver VHF/UHF/Mikrobølge funktioner + Aktiver VHF/UHF/Mikrobølge funktioner @@ -5371,7 +5451,7 @@ den stille periode, når dekodningen er udført. - + Port: Port: @@ -5382,137 +5462,149 @@ den stille periode, når dekodningen er udført. + Serial Port Parameters Seriek Port Parametre - + Baud Rate: Baud Rate: - + Serial port data rate which must match the setting of your radio. Seriel data hastighed som skal være den samme som på din radio. - + 1200 1200 - + 2400 2400 - + 4800 4800 - + 9600 9600 - + 19200 19200 - + 38400 38400 - + 57600 57600 - + 115200 115200 - + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> <html><head/><body><p>Antallet af data bits der skal bruges for at kommunikerer med din radio via CAT interface (normalt otte).</p></body></html> - + + Data bits + + + + Data Bits Data Bits - + D&efault D&efault - + Se&ven Sy&v - + E&ight O&tte - + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> <html><head/><body><p>Antallet af stop bits der bruges til kommunikation via din radio CAT interface</p><p>(Se i din radio manual for detaljer).</p></body></html> - + + Stop bits + + + + Stop Bits Stop Bit - - + + Default Deafult - + On&e E&n - + T&wo T&o - + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> <html><head/><body><p>Flow kontrol protokol der bruges mellem computer og radioens CAT interface (Normal &quot;None&quot; men nogle radioer kræver &quot;Hardware&quot;).</p></body></html> - + + Handshake Handshake - + &None &ingen - + Software flow control (very rare on CAT interfaces). Software flow kontrol (sjælden på CAT interface). - + XON/XOFF XON/XOFF - + Flow control using the RTS and CTS RS-232 control lines not often used but some radios have it as an option and a few, particularly some Kenwood rigs, require it). @@ -5521,74 +5613,75 @@ ikke ofte brugt, men nogle radioer har det som en mulighed og et par, især nogle Kenwood radioer, kræver det). - + &Hardware &Hardware - + Special control of CAT port control lines. Special kontrol af CAT port kontrol linjer. - + + Force Control Lines Tving Kontrol Linjer - - + + High Høj - - + + Low Lav - + DTR: DTR: - + RTS: RTS: - + How this program activates the PTT on your radio? Hvorledes dette program skal aktivere PTT på din radio? - + PTT Method PTT metode - + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> <html><head/><body><p>Ingen PTT aktivering. I stedet bruges radioens automatis VOX til at nøgle senderen.</p><p>Bruge denne hvis du ingen hardware interface har.</p></body></html> - + VO&X VO&X - + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> <html><head/><body><p> Brug RS-232 DTR-kontrollinjen til at skifte radioens PTT, kræver hardware for at interface. </p><p> Nogle kommercielle interface-enheder bruger også denne metode. </p> <p> DTR-kontrollinjen i CAT-seriel port kan bruges til dette, eller en DTR-kontrollinje på en anden seriel port kan bruges.</p></body></html> - + &DTR &DTR - + Some radios support PTT via CAT commands, use this option if your radio supports it and you have no other hardware interface for PTT. @@ -5597,47 +5690,47 @@ Brug denne option if din radio understøtter det, og hvis du ikke har andre muligheder eller andet hardware interface til PTT. - + C&AT C&AT - + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> <html><head/><body><p> Brug RS-232 RTS kontrollinjen til at skifte radioens PTT, kræver hardware for at interface grænsen.</p><p> Nogle kommercielle interfaceenheder bruger også denne metode.</p><p> RTS-kontrollinjen i CAT-seriel port kan bruges til dette, eller en RTS-kontrollinje på en anden seriel port kan bruges. Bemærk, at denne indstilling ikke er tilgængelig på den serielle CAT-port, når hardwarestrømstyring bruges. </p></body></html> - + R&TS R&TS - + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> <html><head/><body><p> Vælg den serielle RS-232-port, der bruges til PTT-kontrol, denne indstilling er tilgængelig, når DTR eller RTS vælges ovenfor som en sendemetode.</p><p>Denne port kan være den samme som den, der bruges til CAT-kontrol.</p><p> For nogle grænsefladetyper kan den særlige værdi CAT vælges, dette bruges til ikke-serielle CAT-grænseflader, der kan kontrollere serielle portkontrollinier eksternt (OmniRig for eksempel).</p></body></html> - + Modulation mode selected on radio. Modulation type valgt på Radio. - + Mode Mode - + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> <html><head/><body><p>USB er normalt den korrekte modulations mode,</p><p>med mindre radioenunless the radio har en speciel data eller packet mode indstilling så som USB-D</p><p>til AFSK operation.</p></body></html> - + US&B US&B - + Don't allow the program to set the radio mode (not recommended but use if the wrong mode or bandwidth is selected). @@ -5646,23 +5739,23 @@ or bandwidth is selected). forkert mode eller båndbredde). - - + + None Ingen - + If this is available then it is usually the correct mode for this program. Hvis denne mulighed er til stede er det sædvanligvis den korrekte mode for dette program. - + Data/P&kt Data/P&kt - + Some radios can select the audio input using a CAT command, this setting allows you to select which audio input will be used (if it is available then generally the Rear/Data option is best). @@ -5671,52 +5764,52 @@ Denne indstilling tillader dig og vælge hvilken audio indgang der bruges (Hvis Bag/Data er muligt er det generelt den bedste). - + Transmit Audio Source Tx audio kilde - + Rear&/Data Bag&/Data - + &Front/Mic &Front/Mic - + Rig: Rig: - + Poll Interval: Poll Interval: - + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> <html><head/><body><p> Interval mellem poll radio for status. Længere intervaller betyder, at det vil tage længere tid at opdage ændringer i radioen.</p></body></html> - + s s - + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> <html><head/><body><p>Forsøger og kontakte radioen med disse indstillinger.</p><p>Knappen vil blive grøn hvis kontakten lykkedes og rød hvis der er et problem.</p></body></html> - + Test CAT Test CAT - + Attempt to activate the transmitter. Click again to deactivate. Normally no power should be output since there is no audio being generated at this time. @@ -5729,47 +5822,47 @@ Kontroller, at Tx-indikation på din radio og / eller dit radio interface opfører sig som forventet. - + Test PTT Test PTT - + Split Operation Split Operation - + Fake It Fake It - + Rig Rig - + A&udio A&udio - + Audio interface settings Audio interface indstillinger - + Souncard Lydkort - + Soundcard Lydkort - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5782,46 +5875,51 @@ vil du sende alle systemlyde der genereres i løbet af transmissionsperioder. - + + Days since last upload + + + + Select the audio CODEC to use for receiving. Vælg Audio CODEC for modtagelse. - + &Input: &Input: - + Select the channel to use for receiving. Vælg kanal til modtagelse. - - + + Mono Mono - - + + Left Venstre - - + + Right Højre - - + + Both Begge - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5832,110 +5930,115 @@ kanaler skal du normalt vælge mono her eller begge. - + + Enable VHF and submode features + + + + Ou&tput: Ou&tput: - - + + Save Directory Gemme Mappe - + Loc&ation: Lok&ation: - + Path to which .WAV files are saved. Sti hvor .WAV filerne er gemt. - - + + TextLabel Tekst Felt - + Click to select a different save directory for .WAV files. Klik for at vælge et andet sted og gemme .WAV filerne. - + S&elect Væ&lg - - + + AzEl Directory AzEl Mappe - + Location: Lokation: - + Select Vælg - + Power Memory By Band Power hukommelse per bånd - + Remember power settings by band Husk power indstilling per Bånd - + Enable power memory during transmit Husk power instillinger ved sending - + Transmit Transmit - + Enable power memory during tuning Husk power ved Tuning - + Tune Tune - + Tx &Macros TX &Makroer - + Canned free text messages setup Gemte Fri tekst meddelser indstilling - + &Add &Tilføj - + &Delete &Slet - + Drag and drop items to rearrange order Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items @@ -5944,37 +6047,37 @@ Højreklik for emne specifikke handlinger Klik, SHIFT + Klik og, CRTL + Klik for at vælge emner - + Reportin&g Rapporterin&g - + Reporting and logging settings Rapportering og Logging indstillinger - + Logging Logging - + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. Programmet vil poppe op med en delvis udfyldt QSO Log når du sender 73 eller en Fri tekst meddelse. - + Promp&t me to log QSO Promp&t mig for at logge QSO - + Op Call: Op kaldesignal: - + Some logging programs will not accept the type of reports saved by this program. Check this option to save the sent and received reports in the @@ -5985,54 +6088,54 @@ Marker denne option for at gemme rapporterne i kommentar feltet. - + d&B reports to comments c&B rapporter til kommentar felt - + Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. Marker denne mulighed for at tvinge sletning af DX-kaldesignalt og DX Grid-felter, når der sendes en 73 eller fri tekstbesked. - + Clear &DX call and grid after logging Slet &DX kaldesignal og Grid efter logging - + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> <html><head/><body><p>Nogle logging programmer vil ikke acceptere mode navne.</p></body></html> - + Con&vert mode to RTTY Kon&verter mode til RTTY - + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> <html><head/><body><p>Kaldesignal på Operatør, hvis det er forskelligt fra stations kaldesignal.</p></body></html> - + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> <html><head/><body><p>Marker hvis du vil have at QSO'er logges automatisk når de er slut.</p></body></html> - + Log automatically (contesting only) Log automatisk (kun Contest) - + Network Services Netværks Service - + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> @@ -6047,507 +6150,543 @@ Dette bruges til analyse af reverse beacon, hvilket er meget nyttigt til vurdering af udbrednings forhold og systemydelse. - + Enable &PSK Reporter Spotting Aktiver &PSK Reporter Spotting - + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + Use TCP/IP connection - + UDP Server UDP Server - + UDP Server: UDP Server: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>Alternativ værtsnavn på netværks service som skal modtage det dekodede.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Værtsnavn</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 adresse</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 adresse</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast gruppe adresse</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast gruppe adresse</li></ul><p>Slettes dette felt vil der ikke blive udsendt UDP status opdateringer.</p></body></html> - + UDP Server port number: UDP Server port nummer: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p> Indtast serviceportnummeret på den UDP-server, som WSJT-X skal sende opdateringer til. Hvis dette er nul, udsendes ingen opdateringer.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p> Med denne aktiveret vil WSJT-X acceptere visse anmodninger tilbage fra en UDP-server, som modtager dekodede meddelelser.</p></body></html> - + Accept UDP requests Accepter UDP anmodninger - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p> Angiv accept af en indgående UDP-anmodning. Effekten af ​​denne indstilling varierer afhængigt af operativsystemet og window manager, dens formål er at underrette accept af en indgående UDP-anmodning, selvom denne applikation er minimeret eller skjult.</p></body></html> - + Notify on accepted UDP request Meddelse om accepteret UDP anmodning - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p> Gendan vinduet fra minimeret, hvis en UDP-anmodning accepteres.</p></body></html> - + Accepted UDP request restores window Gendan vindue fra minimeret, hvis en UDP anmodning accepteres - + Secondary UDP Server (deprecated) Sekundær UDP-server (udskrevet) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p> Når denne er markeret, vil WSJT-X sende en logget kontakt i ADIF-format til det konfigurerede værtsnavn og port.</P></body></html> - + Enable logged contact ADIF broadcast Aktiver Logged kontankt ADIF afsendelse - + Server name or IP address: Server navn eller IP adresse: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>Alternativ host navn i N1MM Logger+ program der skal modtage ADIF UDP broadcasts. Det e rnormalt 'localhost' eller ip adresse 127.0.0.1</p><p>Format:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostnavn</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 adresse</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast gruppe adresse</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Slettes dette felt vil der ikke blive udsendt broadcasting af ADIF information via UDP.</p></body></html> - + Server port number: Server port nummer: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>Indsæt portnummer som WSJT-X skal bruge til UDP broadcasts af ADIF log information. For N1MM Logger+, skal det være 2333. Hvis det er NUL vil der ikke blive udsendt broadcast.</p></body></html> - + Frequencies Frekvneser - + Default frequencies and band specific station details setup Default frekvenser og bånd specifikke stations deltalje indstillinger - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>Se &quot;Frekvens Kalibrering&quot; i WSJT-X User Guide for detaljer om hvorledes disse parametre indstilles for din radio.</p></body></html> - + Frequency Calibration Frekvens Kalibrering - + Slope: Stigning: - + ppm ppm - + Intercept: Intercept: - + Hz Hz - + Working Frequencies Arbejds Frekvenser - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>Højre klik for at ændre i frekvenslisten.</p></body></html> - + Station Information Stations Information - + Items may be edited. Right click for insert and delete options. Listen kan editeres Højre klik for at indsætte eller slette elementer. - + Colors Farver - + Decode Highlightling Dekode Farvelade - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> <html><head/><body><p>Klik for at scanne wsjtx_log.adi ADIF filen igen for worked before information</p></body></html> - + Rescan ADIF Log Rescan Adif Log - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>Tryk for at resette alle Highligt oven over til default værdier og prioriteter.</p></body></html> - + Reset Highlighting Reset Higlighting - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body> <p> Aktivér eller deaktiver ved hjælp af afkrydsningsfelterne og højreklik på et element for at ændre eller deaktivere forgrundsfarve, baggrundsfarve eller nulstille elementet til standardværdier. Træk og slip emnerne for at ændre deres prioritet, højere på listen har højere prioritet. </p> <p> Bemærk, at hver forgrunds- eller baggrundsfarve enten er indstillet eller frakoblet, ikke indstillet betyder, at den ikke er tildelt til det pågældende element type og lavere prioriterede poster kan muligvis anvendes. </p> </body> </html> - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>Marker for at indikere nye DXCC Lande, Grid og Kaldesignaler pr Mode.</p></body></html> - + Highlight by Mode Highlight by Mode - + Include extra WAE entities Inkluder ekstra WAE lande - + Check to for grid highlighting to only apply to unworked grid fields Marker for Grid Highlighting for kun at tilføje ikke kørte Lokator felter - + Only grid Fields sought Kun søgte GRID felter - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>Kontrol for Logbook of the World bruger lookup.</p></body></html> - + Logbook of the World User Validation Logbook of the World Bruger Validering - + Users CSV file URL: Sti til Bruger CSV fil: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body> <p> URL til ARRL LotW-brugerens sidste uploaddatoer og -tidsdatafil, som bruges til at fremhæve dekodninger fra stationer, der vides at uploade deres logfil til LotW. </p> < / body> </ html> - + + URL + + + + https://lotw.arrl.org/lotw-user-activity.csv https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>Tryk på denne knap for at hente seneste LotW bruger upload dato og tids data file.</p></body></html> - + Fetch Now Hent Nu - + Age of last upload less than: Alder på seneste upload mindre end: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p> Juster dette spin-felt for at indstille grænsen for alderen på LotW-brugers sidste upload-dato, der accepteres som en nuværende LotW-bruger.</p></body></html> - + days dage - + Advanced Avanceret - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>Bruger valgte parametre for JT65 VHF/UHF/Microwave dekoning.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters JT65/VHF/UHF/Microwave parametre - + Random erasure patterns: Tilfældige sletningsmønstre: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p> Maksimum antal sletningsmønstre til stokastisk soft-beslutning Reed Solomon-dekoder er 10^(n/2).</p></body></html> - + Aggressive decoding level: Aggressiv dekoder niveau: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>Højere niveau vil øge dekodningen, men vil også øge chanchen for falske dekodninger.</p></body></html> - + Two-pass decoding To-pass dekodning - + Special operating activity: Generation of FT4, FT8, and MSK144 messages Special operations aktivitet: Generering af FT4, FT8 og MSK 144 meddelser - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> <html><head/><body><p>FT8 DXpedition mode: Hound operatører der kalder på DX.</p></body></html> - + + Hound Hound - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>Nord Amerikansk VHF/UHF/Microwave contests og andre hvor 4 karakter Grid lokator er påkrævet for Contest rpt udveksling.</p></body></html> - + + NA VHF Contest NA VHF Contest - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operatør.</p></body></html> - + + Fox Fox - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>European VHF+ contests kræver en siganl rapport, serie nummer og 6 karakters lokator.</p></body></html> - + + EU VHF Contest EU VHF Contest - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY Roundup og ligende contests. Exchange er US state, Canadian province, eller &quot;DX&quot;.</p></body></html> - + + R T T Y Roundup + + + + RTTY Roundup messages RTTY Roundup meddelser - + + RTTY Roundup exchange + + + + RTTY RU Exch: RTTU RU Exch: - + NJ NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL Field Day exchange: antal transmittere, Class, og ARRL/RAC sektion eller &quot;DX&quot;.</p></body></html> - + + A R R L Field Day + + + + ARRL Field Day ARRL Field Day - + + Field Day exchange + + + + FD Exch: FD Exch: - + 6A SNJ 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> - + + WW Digital Contest + + + + WW Digi Contest WW Digi Contest - + Miscellaneous Diverse - + Degrade S/N of .wav file: Degrade S/N .wav.fil: - - + + For offline sensitivity tests Til offline følsomheds test - + dB dB - + Receiver bandwidth: Modtager båndbredde: - + Hz Hz - + Tx delay: Tx delay: - + Minimum delay between assertion of PTT and start of Tx audio. Minimum forsinkelse mellen aktivering af PTT og start af Tx audio. - + s s - + + Tone spacing Tone afstand - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>Generer Tx audio med dobbelt af den normale tone afstand. Beregnet til special LF/MF transmittere som bruger divideret med-2 før generering af RF.</p></body></html> - + x 2 x2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>Generer Tx audio med 4 gange den normale tone afstand. Beregnet til special LF/MF transmittere som bruger divideret med-4 før generering af RF.</p></body></html> - + x 4 x4 - + + Waterfall spectra Vandfald Spektrum - + Low sidelobes Lave sidelobes - + Most sensitive Mest følsom - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p> Forkast (Annuller) eller anvend (OK) konfigurationsændringer inklusive</p><p>nulstilling af radiog interface og anvendelse af lydkortændringer</p></body></html> @@ -6614,12 +6753,12 @@ Højre klik for at indsætte eller slette elementer. Kan ikke oprette delt hukommelse segment - + Sub-process error - + Failed to close orphaned jt9 process diff --git a/translations/wsjtx_en.ts b/translations/wsjtx_en.ts index 5993e0fec..16dc8e0fd 100644 --- a/translations/wsjtx_en.ts +++ b/translations/wsjtx_en.ts @@ -130,17 +130,17 @@ - + Doppler Tracking Error - + Split operating is required for Doppler tracking - + Go to "Menu->File->Settings->Radio" to enable split operation @@ -148,32 +148,32 @@ Bands - + Band name - + Lower frequency limit - + Upper frequency limit - + Band - + Lower Limit - + Upper Limit @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete - - + + &Insert ... - + Failed to create save directory - + path: "%1% - + Failed to create samples directory - + path: "%1" - + &Load ... - + &Save as ... - + &Merge ... - + &Reset - + Serial Port: - + Serial port used for CAT control - + Network Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -447,12 +447,12 @@ Formats: - + USB Device: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -460,152 +460,153 @@ Format: - + + Invalid audio input device - - Invalid audio out device + + Invalid audio output device - + Invalid PTT method - + Invalid PTT port - - + + Invalid Contest Exchange - + You must input a valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting - + Reset all decode highlighting and priorities to default values - + WSJT-X Decoded Text Font Chooser - + Load Working Frequencies - - - + + + Frequency files (*.qrg);;All files (*.*) - + Replace Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - + Merge Working Frequencies - - - + + + Not a valid frequencies file - + Incorrect file magic - + Version is too new - + Contents corrupt - + Save Working Frequencies - + Only Save Selected Working Frequencies - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. - + Reset Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with default ones? - + Save Directory - + AzEl Directory - + Rig control error - + Failed to open connection to rig - + Rig failure @@ -1419,22 +1420,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency - + IARU &Region: - + &Mode: - + &Frequency (MHz): @@ -1442,26 +1443,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region - - + + Mode - - + + Frequency - - + + Frequency (MHz) @@ -2027,12 +2028,13 @@ Error(%2): %3 - - - - - - + + + + + + + Band Activity @@ -2044,11 +2046,12 @@ Error(%2): %3 - - - - - + + + + + + Rx Frequency @@ -2083,122 +2086,237 @@ Error(%2): %3 - + &Monitor - + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> - + Erase right window. Double-click to erase both windows. - + &Erase - + <html><head/><body><p>Clear the accumulating message average.</p></body></html> - + Clear the accumulating message average. - + Clear Avg - + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> - + Decode most recent Rx period at QSO Frequency - + &Decode - + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> - + Toggle Auto-Tx On/Off - + E&nable Tx - + Stop transmitting immediately - + &Halt Tx - + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> - + Toggle a pure Tx tone On/Off - + &Tune - + Menus - + + 1/2 + + + + + 2/2 + + + + + 1/3 + + + + + 2/3 + + + + + 3/3 + + + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 1/5 + + + + + 2/5 + + + + + 3/5 + + + + + 4/5 + + + + + 5/5 + + + + + 1/6 + + + + + 2/6 + + + + + 3/6 + + + + + 4/6 + + + + + 5/6 + + + + + 6/6 + + + + + Percentage of minute sequences devoted to transmitting. + + + + + Prefer Type 1 messages + + + + + <html><head/><body><p>Transmit during the next sequence.</p></body></html> + + + + USB dial frequency - + 14.078 000 - + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> - + Rx Signal - + 30dB recommended when only noise present Green when good Red when clipping may occur @@ -2206,619 +2324,626 @@ Yellow when too low - + DX Call - + DX Grid - + Callsign of station to be worked - + Search for callsign in database - + &Lookup - + Locator of station to be worked - + Az: 251 16553 km - + Add callsign and locator to database - + Add - + Pwr - + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> - + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. - + ? - + Adjust Tx audio level - + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> - + Frequency entry - + Select operating band or enter frequency in MHz or enter kHz increment followed by k. - + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> - + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> - + Check to keep Tx frequency fixed when double-clicking on decoded text. - + Hold Tx Freq - + Audio Rx frequency - - - + + + + + Hz - + + Rx - + + Set Tx frequency to Rx Frequency - + - + Frequency tolerance (Hz) - + + F Tol - + + Set Rx frequency to Tx Frequency - + - + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> - + Synchronizing threshold. Lower numbers accept weaker sync signals. - + Sync - + <html><head/><body><p>Check to use short-format messages.</p></body></html> - + Check to use short-format messages. - + Sh - + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> - + Check to enable JT9 fast modes - - + + Fast - + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> - + Check to enable automatic sequencing of Tx messages based on received messages. - + Auto Seq - + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> - + Check to call the first decoded responder to my CQ. - + Call 1st - + Check to generate "@1250 (SEND MSGS)" in Tx6. - + Tx6 - + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> - + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. - + Tx even/1st - + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> - + Frequency to call CQ on in kHz above the current MHz - + Tx CQ - + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> - + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. - + Rx All Freqs - + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> - + Submode determines tone spacing; A is narrowest. - + Submode - - + + Fox - + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> - + Check to monitor Sh messages. - + SWL - + Best S+P - + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> - + Check this to start recording calibration data. While measuring calibration correction is disabled. When not checked you can view the calibration results. - + Measure - + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> - + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). - + Report - + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> - + Tx/Rx or Frequency calibration sequence length - + + s - + + T/R - + Toggle Tx mode - + Tx JT9 @ - + Audio Tx frequency - - + + Tx - + Tx# - + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> - + Double-click on another caller to queue that call for your next QSO. - + Next Call - + 1 - - - + + + Send this message in next Tx interval - + Ctrl+2 - + <html><head/><body><p>Send this message in next Tx interval</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> - + Send this message in next Tx interval 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) - + Ctrl+1 - - - - + + + + Switch to this Tx message NOW - + Tx &2 - + Alt+2 - + <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> - + Switch to this Tx message NOW 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) - + Tx &1 - + Alt+1 - + Ctrl+6 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> - + Send this message in next Tx interval Double-click to reset to the standard 73 message - + Ctrl+5 - + Ctrl+3 - + Tx &3 - + Alt+3 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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> - + Send this message in next Tx interval Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required - + Ctrl+4 - + <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> - + Switch to this Tx message NOW Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required - + Tx &4 - + Alt+4 - + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> - + Switch to this Tx message NOW Double-click to reset to the standard 73 message - + Tx &5 - + Alt+5 - + Now - + Generate standard messages for minimal QSO - + Generate Std Msgs - + Tx &6 - + Alt+6 - - + Enter a free text message (maximum 13 characters) or select a predefined macro from the dropdown list. Press ENTER to add the current text to the predefined @@ -2826,989 +2951,834 @@ list. The list can be maintained in Settings (F2). - + Queue up the next Tx message - + Next - + 2 - - Calling CQ + + Quick-Start Guide to FST4 and FST4W - - Generate a CQ message + + FST4 - - - + + FST4W + + + + + CQ - - Generate message with RRR - - - - - RRR - - - - - Generate message with report - - - - - dB - - - - - Answering CQ - - - - - Generate message for replying to a CQ - - - - - + Grid - - Generate message with R+report - - - - - R+dB - - - - - Generate message with 73 - - - - - 73 - - - - - Send this standard (generated) message - - - - - Gen msg - - - - - Send this free-text message (max 13 characters) - - - - - Free msg - - - - - 3 - - - - + Max dB - + CQ AF - + CQ AN - + CQ AS - + CQ EU - + CQ NA - + CQ OC - + CQ SA - + CQ 0 - + CQ 1 - + CQ 2 - + CQ 3 - + CQ 4 - + CQ 5 - + CQ 6 - + CQ 7 - + CQ 8 - + CQ 9 - + Reset - + N List - + N Slots - - + + + + + + + Random - + Call - + S/N (dB) - + Distance - + More CQs - - Percentage of 2-minute sequences devoted to transmitting. - - - - + + % - + Tx Pct - + Band Hopping - + Choose bands and times of day for band-hopping. - + Schedule ... - - Prefer type 1 messages - - - - + Upload decoded messages to WSPRnet.org. - + Upload spots - + <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> - + 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. - + No own call decodes - - Transmit during the next 2-minute sequence. - - - - + Tx Next - + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. - + + NB + + + + File - + View - + Decode - + Save - + Help - + Mode - + Configurations - + Tools - + Exit - - Configuration - - - - - F2 - - - - + About WSJT-X - + Waterfall - + Open - + Ctrl+O - + Open next in directory - + Decode remaining files in directory - + Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir - + None - + Save all - + Online User Guide - + Keyboard shortcuts - + Special mouse commands - + JT9 - + Save decoded - + Normal - + Deep - - Monitor OFF at startup - - - - + Erase ALL.TXT - + Erase wsjtx_log.adi - - Convert mode to RTTY for logging - - - - - Log dB reports to Comments - - - - - Prompt me to log QSO - - - - - Blank line between decoding periods - - - - - Clear DX Call and Grid after logging - - - - - Display distance in miles - - - - - Double-click on call sets Tx Enable - - - - - + F7 - - Tx disabled after sending 73 - - - - - + Runaway Tx watchdog - - Allow multiple instances - - - - - Tx freq locked to Rx freq - - - - + JT65 - + JT9+JT65 - - Tx messages to Rx Frequency window - - - - - Gray1 - - - - - Show DXCC entity and worked B4 status - - - - + Astronomical data - + List of Type 1 prefixes and suffixes - + Settings... - + Local User Guide - + Open log directory - + JT4 - + Message averaging - + Enable averaging - + Enable deep search - + WSPR - + Echo Graph - + F8 - + Echo - + EME Echo mode - + ISCAT - + Fast Graph - + F9 - + &Download Samples ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> - + MSK144 - + QRA64 - + Release Notes - + Enable AP for DX Call - + FreqCal - + Measure reference spectrum - + Measure phase response - + Erase reference spectrum - + Execute frequency calibration cycle - + Equalization tools ... - - WSPR-LF - - - - - Experimental LF/MF mode - - - - + FT8 - - + + Enable AP - + Solve for calibration parameters - + Copyright notice - + Shift+F1 - + Fox log - + FT8 DXpedition Mode User Guide - + Reset Cabrillo log ... - + Color highlighting scheme - - Contest Log - - - - + Export Cabrillo log ... - - Quick-Start Guide to WSJT-X 2.0 - - - - + Contest log - + Erase WSPR hashtable - + FT4 - + Rig Control Error - - - + + + Receiving - + Do you want to reconfigure the radio interface? - + + %1 (%2 sec) audio frames dropped + + + + + Audio Source + + + + + Reduce system load + + + + + Excessive dropped samples - %1 (%2 sec) audio frames dropped + + + + Error Scanning ADIF Log - + Scanned ADIF log, %1 worked before records created - + Error Loading LotW Users Data - + Error Writing WAV File - + Configurations... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message - + Error Killing jt9.exe Process - + KillByName return code: %1 - + Error removing "%1" - + Click OK to retry - - + + Improper mode - - + + File Open Error - - - - - + + + + + Cannot open "%1" for append: %2 - + Error saving c2 file - + Error in Sound Input - + Error in Sound Output - - - + + + Single-Period Decodes - - - + + + Average Decodes - + Change Operator - + New operator: - + Status File Error - - + + Cannot open "%1" for writing: %2 - + Subprocess Error - + Subprocess failed with exit code %1 - - + + Running: %1 %2 - + Subprocess error - + Reference spectrum saved - + Invalid data in fmt.all at line %1 - + Good Calibration Solution - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3817,44 +3787,44 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements - + The "fmt.all" file will be renamed as "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? - + Confirm Delete - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + Keyboard Shortcuts - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -3904,12 +3874,12 @@ list. The list can be maintained in Settings (F2). - + Special Mouse Commands - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -3920,7 +3890,7 @@ list. The list can be maintained in Settings (F2). <td><b>Click</b> to set Rx frequency.<br/> <b>Shift-click</b> to set Tx frequency.<br/> <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> - <b>Double-click</b> to also decode at Rx frequency.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> </td> </tr> <tr> @@ -3928,10 +3898,10 @@ list. The list can be maintained in Settings (F2). <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> locator to Dx Grid, change Rx and Tx frequency to<br/> decoded signal's frequency, and generate standard<br/> - messages.<br/> - If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> - is your own call, Tx frequency is not changed unless <br/> - <b>Ctrl</b> is held down.<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> </td> </tr> <tr> @@ -3945,42 +3915,42 @@ list. The list can be maintained in Settings (F2). - + No more files to open. - + Spotting to PSK Reporter unavailable - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + Last Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3988,181 +3958,176 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - + Stations calling DXpedition %1 - + Hound - + Tx Messages - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - - VHF features warning - - - - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - + WD:%1m - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -4184,8 +4149,8 @@ UDP server %2:%3 Modes - - + + Mode @@ -4338,7 +4303,7 @@ UDP server %2:%3 - + OOB @@ -4515,7 +4480,7 @@ Error(%2): %3 - + Requested input audio format is not valid. @@ -4525,37 +4490,37 @@ Error(%2): %3 - + Failed to initialize audio sink device - + Idle - + Receiving - + Suspended - + Interrupted - + Error - + Stopped @@ -4563,62 +4528,67 @@ Error(%2): %3 SoundOutput - + An error opening the audio output device has occurred. - + An error occurred during write to the audio output device. - + Audio data not being fed to the audio output device fast enough. - + Non-recoverable error, audio output device not usable at this time. - + Requested output audio format is not valid. - + Requested output audio format is not supported on device. - + + No audio output device configured. + + + + Idle - + Sending - + Suspended - + Interrupted - + Error - + Stopped @@ -4626,22 +4596,22 @@ Error(%2): %3 StationDialog - + Add Station - + &Band: - + &Offset (MHz): - + &Antenna: @@ -4831,12 +4801,12 @@ Error(%2): %3 - JT9 + Hz - JT65 + Split @@ -4871,6 +4841,29 @@ Error(%2): %3 + + WorkedBefore + + + Invalid ADIF field %0: %1 + + + + + Malformed ADIF field %0: %1 + + + + + Invalid ADIF header + + + + + Error opening ADIF log file for read: %0 + + + configuration_dialog @@ -5068,11 +5061,6 @@ Error(%2): %3 minutes - - - Enable VHF/UHF/Microwave features - - Single decode @@ -5184,7 +5172,7 @@ quiet period when decoding is done. - + Port: @@ -5195,333 +5183,336 @@ quiet period when decoding is done. + Serial Port Parameters - + Baud Rate: - + Serial port data rate which must match the setting of your radio. - + 1200 - + 2400 - + 4800 - + 9600 - + 19200 - + 38400 - + 57600 - + 115200 - + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> - + Data Bits - + D&efault - + Se&ven - + E&ight - + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> - + Stop Bits - - + + Default - + On&e - + T&wo - + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> - + + Handshake - + &None - + Software flow control (very rare on CAT interfaces). - + XON/XOFF - + Flow control using the RTS and CTS RS-232 control lines not often used but some radios have it as an option and a few, particularly some Kenwood rigs, require it). - + &Hardware - + Special control of CAT port control lines. - + + Force Control Lines - - + + High - - + + Low - + DTR: - + RTS: - + How this program activates the PTT on your radio? - + PTT Method - + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> - + VO&X - + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> - + &DTR - + Some radios support PTT via CAT commands, use this option if your radio supports it and you have no other hardware interface for PTT. - + C&AT - + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> - + R&TS - + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> - + Modulation mode selected on radio. - + Mode - + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> - + US&B - + Don't allow the program to set the radio mode (not recommended but use if the wrong mode or bandwidth is selected). - - + + None - + If this is available then it is usually the correct mode for this program. - + Data/P&kt - + Some radios can select the audio input using a CAT command, this setting allows you to select which audio input will be used (if it is available then generally the Rear/Data option is best). - + Transmit Audio Source - + Rear&/Data - + &Front/Mic - + Rig: - + Poll Interval: - + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> - + s - + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> - + Test CAT - + Attempt to activate the transmitter. Click again to deactivate. Normally no power should be output since there is no audio being generated at this time. @@ -5530,47 +5521,47 @@ radio interface behave as expected. - + Test PTT - + Split Operation - + Fake It - + Rig - + A&udio - + Audio interface settings - + Souncard - + Soundcard - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5579,46 +5570,51 @@ transmitting periods. - + + Days since last upload + + + + Select the audio CODEC to use for receiving. - + &Input: - + Select the channel to use for receiving. - - + + Mono - - + + Left - - + + Right - - + + Both - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5626,147 +5622,162 @@ both here. - + + Enable VHF and submode features + + + + + Data bits + + + + + Stop bits + + + + Ou&tput: - - + + Save Directory - + Loc&ation: - + Path to which .WAV files are saved. - - + + TextLabel - + Click to select a different save directory for .WAV files. - + S&elect - - + + AzEl Directory - + Location: - + Select - + Power Memory By Band - + Remember power settings by band - + Enable power memory during transmit - + Transmit - + Enable power memory during tuning - + Tune - + Tx &Macros - + Canned free text messages setup - + &Add - + &Delete - + Drag and drop items to rearrange order Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items - + Reportin&g - + Reporting and logging settings - + Logging - + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. - + Promp&t me to log QSO - + Op Call: - + Some logging programs will not accept the type of reports saved by this program. Check this option to save the sent and received reports in the @@ -5774,557 +5785,593 @@ comments field. - + d&B reports to comments - + Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. - + Clear &DX call and grid after logging - + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> - + Con&vert mode to RTTY - + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> - + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> - + Log automatically (contesting only) - + Network Services - + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> - + Enable &PSK Reporter Spotting - + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + Use TCP/IP connection - + UDP Server - + UDP Server: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> - + UDP Server port number: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> - + Accept UDP requests - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> - + Notify on accepted UDP request - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> - + Accepted UDP request restores window - + Secondary UDP Server (deprecated) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> - + Enable logged contact ADIF broadcast - + Server name or IP address: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> - + Server port number: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> - + Frequencies - + Default frequencies and band specific station details setup - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> - + Frequency Calibration - + Slope: - + ppm - + Intercept: - + Hz - + Working Frequencies - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> - + Station Information - + Items may be edited. Right click for insert and delete options. - + Colors - + Decode Highlightling - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - + Rescan ADIF Log - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> - + Reset Highlighting - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> - + Highlight by Mode - + Include extra WAE entities - + Check to for grid highlighting to only apply to unworked grid fields - + Only grid Fields sought - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> - + Logbook of the World User Validation - + Users CSV file URL: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> - + + URL + + + + https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> - + Fetch Now - + Age of last upload less than: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> - + days - + Advanced - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters - + Random erasure patterns: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> - + Aggressive decoding level: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> - + Two-pass decoding - + Special operating activity: Generation of FT4, FT8, and MSK144 messages - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> - + + Hound - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> - + + NA VHF Contest - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> - + + Fox - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> - + + EU VHF Contest - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> - + + R T T Y Roundup + + + + RTTY Roundup messages - + + RTTY Roundup exchange + + + + RTTY RU Exch: - + NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> - - ARRL Field Day - - - - - FD Exch: + + A R R L Field Day + ARRL Field Day + + + + + Field Day exchange + + + + + FD Exch: + + + + 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> - + + WW Digital Contest + + + + WW Digi Contest - + Miscellaneous - + Degrade S/N of .wav file: - - + + For offline sensitivity tests - + dB - + Receiver bandwidth: - + Hz - + Tx delay: - + Minimum delay between assertion of PTT and start of Tx audio. - + s - + + Tone spacing - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> - + x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> - + x 4 - + + Waterfall spectra - + Low sidelobes - + Most sensitive - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> @@ -6383,12 +6430,12 @@ Right click for insert and delete options. - + Sub-process error - + Failed to close orphaned jt9 process diff --git a/translations/wsjtx_en_GB.ts b/translations/wsjtx_en_GB.ts index 071d11b48..523f654d7 100644 --- a/translations/wsjtx_en_GB.ts +++ b/translations/wsjtx_en_GB.ts @@ -130,17 +130,17 @@ - + Doppler Tracking Error - + Split operating is required for Doppler tracking - + Go to "Menu->File->Settings->Radio" to enable split operation @@ -148,32 +148,32 @@ Bands - + Band name - + Lower frequency limit - + Upper frequency limit - + Band - + Lower Limit - + Upper Limit @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete - - + + &Insert ... - + Failed to create save directory - + path: "%1% - + Failed to create samples directory - + path: "%1" - + &Load ... - + &Save as ... - + &Merge ... - + &Reset - + Serial Port: - + Serial port used for CAT control - + Network Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -447,12 +447,12 @@ Formats: - + USB Device: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -460,152 +460,153 @@ Format: - + + Invalid audio input device - - Invalid audio out device + + Invalid audio output device - + Invalid PTT method - + Invalid PTT port - - + + Invalid Contest Exchange - + You must input a valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting - + Reset all decode highlighting and priorities to default values - + WSJT-X Decoded Text Font Chooser - + Load Working Frequencies - - - + + + Frequency files (*.qrg);;All files (*.*) - + Replace Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - + Merge Working Frequencies - - - + + + Not a valid frequencies file - + Incorrect file magic - + Version is too new - + Contents corrupt - + Save Working Frequencies - + Only Save Selected Working Frequencies - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. - + Reset Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with default ones? - + Save Directory - + AzEl Directory - + Rig control error - + Failed to open connection to rig - + Rig failure @@ -1419,22 +1420,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency - + IARU &Region: - + &Mode: - + &Frequency (MHz): @@ -1442,26 +1443,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region - - + + Mode - - + + Frequency - - + + Frequency (MHz) @@ -2027,12 +2028,13 @@ Error(%2): %3 - - - - - - + + + + + + + Band Activity @@ -2044,11 +2046,12 @@ Error(%2): %3 - - - - - + + + + + + Rx Frequency @@ -2083,122 +2086,237 @@ Error(%2): %3 - + &Monitor - + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> - + Erase right window. Double-click to erase both windows. - + &Erase - + <html><head/><body><p>Clear the accumulating message average.</p></body></html> - + Clear the accumulating message average. - + Clear Avg - + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> - + Decode most recent Rx period at QSO Frequency - + &Decode - + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> - + Toggle Auto-Tx On/Off - + E&nable Tx - + Stop transmitting immediately - + &Halt Tx - + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> - + Toggle a pure Tx tone On/Off - + &Tune - + Menus - + + 1/2 + + + + + 2/2 + + + + + 1/3 + + + + + 2/3 + + + + + 3/3 + + + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 1/5 + + + + + 2/5 + + + + + 3/5 + + + + + 4/5 + + + + + 5/5 + + + + + 1/6 + + + + + 2/6 + + + + + 3/6 + + + + + 4/6 + + + + + 5/6 + + + + + 6/6 + + + + + Percentage of minute sequences devoted to transmitting. + + + + + Prefer Type 1 messages + + + + + <html><head/><body><p>Transmit during the next sequence.</p></body></html> + + + + USB dial frequency - + 14.078 000 - + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> - + Rx Signal - + 30dB recommended when only noise present Green when good Red when clipping may occur @@ -2206,619 +2324,626 @@ Yellow when too low - + DX Call - + DX Grid - + Callsign of station to be worked - + Search for callsign in database - + &Lookup - + Locator of station to be worked - + Az: 251 16553 km - + Add callsign and locator to database - + Add - + Pwr - + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> - + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. - + ? - + Adjust Tx audio level - + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> - + Frequency entry - + Select operating band or enter frequency in MHz or enter kHz increment followed by k. - + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> - + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> - + Check to keep Tx frequency fixed when double-clicking on decoded text. - + Hold Tx Freq - + Audio Rx frequency - - - + + + + + Hz - + + Rx - + + Set Tx frequency to Rx Frequency - + - + Frequency tolerance (Hz) - + + F Tol - + + Set Rx frequency to Tx Frequency - + - + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> - + Synchronizing threshold. Lower numbers accept weaker sync signals. - + Sync - + <html><head/><body><p>Check to use short-format messages.</p></body></html> - + Check to use short-format messages. - + Sh - + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> - + Check to enable JT9 fast modes - - + + Fast - + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> - + Check to enable automatic sequencing of Tx messages based on received messages. - + Auto Seq - + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> - + Check to call the first decoded responder to my CQ. - + Call 1st - + Check to generate "@1250 (SEND MSGS)" in Tx6. - + Tx6 - + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> - + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. - + Tx even/1st - + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> - + Frequency to call CQ on in kHz above the current MHz - + Tx CQ - + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> - + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. - + Rx All Freqs - + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> - + Submode determines tone spacing; A is narrowest. - + Submode - - + + Fox - + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> - + Check to monitor Sh messages. - + SWL - + Best S+P - + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> - + Check this to start recording calibration data. While measuring calibration correction is disabled. When not checked you can view the calibration results. - + Measure - + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> - + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). - + Report - + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> - + Tx/Rx or Frequency calibration sequence length - + + s - + + T/R - + Toggle Tx mode - + Tx JT9 @ - + Audio Tx frequency - - + + Tx - + Tx# - + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> - + Double-click on another caller to queue that call for your next QSO. - + Next Call - + 1 - - - + + + Send this message in next Tx interval - + Ctrl+2 - + <html><head/><body><p>Send this message in next Tx interval</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> - + Send this message in next Tx interval 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) - + Ctrl+1 - - - - + + + + Switch to this Tx message NOW - + Tx &2 - + Alt+2 - + <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> - + Switch to this Tx message NOW 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) - + Tx &1 - + Alt+1 - + Ctrl+6 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> - + Send this message in next Tx interval Double-click to reset to the standard 73 message - + Ctrl+5 - + Ctrl+3 - + Tx &3 - + Alt+3 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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> - + Send this message in next Tx interval Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required - + Ctrl+4 - + <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> - + Switch to this Tx message NOW Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required - + Tx &4 - + Alt+4 - + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> - + Switch to this Tx message NOW Double-click to reset to the standard 73 message - + Tx &5 - + Alt+5 - + Now - + Generate standard messages for minimal QSO - + Generate Std Msgs - + Tx &6 - + Alt+6 - - + Enter a free text message (maximum 13 characters) or select a predefined macro from the dropdown list. Press ENTER to add the current text to the predefined @@ -2826,989 +2951,834 @@ list. The list can be maintained in Settings (F2). - + Queue up the next Tx message - + Next - + 2 - - Calling CQ + + Quick-Start Guide to FST4 and FST4W - - Generate a CQ message + + FST4 - - - + + FST4W + + + + + CQ - - Generate message with RRR - - - - - RRR - - - - - Generate message with report - - - - - dB - - - - - Answering CQ - - - - - Generate message for replying to a CQ - - - - - + Grid - - Generate message with R+report - - - - - R+dB - - - - - Generate message with 73 - - - - - 73 - - - - - Send this standard (generated) message - - - - - Gen msg - - - - - Send this free-text message (max 13 characters) - - - - - Free msg - - - - - 3 - - - - + Max dB - + CQ AF - + CQ AN - + CQ AS - + CQ EU - + CQ NA - + CQ OC - + CQ SA - + CQ 0 - + CQ 1 - + CQ 2 - + CQ 3 - + CQ 4 - + CQ 5 - + CQ 6 - + CQ 7 - + CQ 8 - + CQ 9 - + Reset - + N List - + N Slots - - + + + + + + + Random - + Call - + S/N (dB) - + Distance - + More CQs - - Percentage of 2-minute sequences devoted to transmitting. - - - - + + % - + Tx Pct - + Band Hopping - + Choose bands and times of day for band-hopping. - + Schedule ... - - Prefer type 1 messages - - - - + Upload decoded messages to WSPRnet.org. - + Upload spots - + <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> - + 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. - + No own call decodes - - Transmit during the next 2-minute sequence. - - - - + Tx Next - + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. - + + NB + + + + File - + View - + Decode - + Save - + Help - + Mode - + Configurations - + Tools - + Exit - - Configuration - - - - - F2 - - - - + About WSJT-X - + Waterfall - + Open - + Ctrl+O - + Open next in directory - + Decode remaining files in directory - + Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir - + None - + Save all - + Online User Guide - + Keyboard shortcuts - + Special mouse commands - + JT9 - + Save decoded - + Normal - + Deep - - Monitor OFF at startup - - - - + Erase ALL.TXT - + Erase wsjtx_log.adi - - Convert mode to RTTY for logging - - - - - Log dB reports to Comments - - - - - Prompt me to log QSO - - - - - Blank line between decoding periods - - - - - Clear DX Call and Grid after logging - - - - - Display distance in miles - - - - - Double-click on call sets Tx Enable - - - - - + F7 - - Tx disabled after sending 73 - - - - - + Runaway Tx watchdog - - Allow multiple instances - - - - - Tx freq locked to Rx freq - - - - + JT65 - + JT9+JT65 - - Tx messages to Rx Frequency window - - - - - Gray1 - - - - - Show DXCC entity and worked B4 status - - - - + Astronomical data - + List of Type 1 prefixes and suffixes - + Settings... - + Local User Guide - + Open log directory - + JT4 - + Message averaging - + Enable averaging - + Enable deep search - + WSPR - + Echo Graph - + F8 - + Echo - + EME Echo mode - + ISCAT - + Fast Graph - + F9 - + &Download Samples ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> - + MSK144 - + QRA64 - + Release Notes - + Enable AP for DX Call - + FreqCal - + Measure reference spectrum - + Measure phase response - + Erase reference spectrum - + Execute frequency calibration cycle - + Equalization tools ... - - WSPR-LF - - - - - Experimental LF/MF mode - - - - + FT8 - - + + Enable AP - + Solve for calibration parameters - + Copyright notice - + Shift+F1 - + Fox log - + FT8 DXpedition Mode User Guide - + Reset Cabrillo log ... - + Color highlighting scheme - - Contest Log - - - - + Export Cabrillo log ... - - Quick-Start Guide to WSJT-X 2.0 - - - - + Contest log - + Erase WSPR hashtable - + FT4 - + Rig Control Error - - - + + + Receiving - + Do you want to reconfigure the radio interface? - + + %1 (%2 sec) audio frames dropped + + + + + Audio Source + + + + + Reduce system load + + + + + Excessive dropped samples - %1 (%2 sec) audio frames dropped + + + + Error Scanning ADIF Log - + Scanned ADIF log, %1 worked before records created - + Error Loading LotW Users Data - + Error Writing WAV File - + Configurations... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message - + Error Killing jt9.exe Process - + KillByName return code: %1 - + Error removing "%1" - + Click OK to retry - - + + Improper mode - - + + File Open Error - - - - - + + + + + Cannot open "%1" for append: %2 - + Error saving c2 file - + Error in Sound Input - + Error in Sound Output - - - + + + Single-Period Decodes - - - + + + Average Decodes - + Change Operator - + New operator: - + Status File Error - - + + Cannot open "%1" for writing: %2 - + Subprocess Error - + Subprocess failed with exit code %1 - - + + Running: %1 %2 - + Subprocess error - + Reference spectrum saved - + Invalid data in fmt.all at line %1 - + Good Calibration Solution - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3817,44 +3787,44 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements - + The "fmt.all" file will be renamed as "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? - + Confirm Delete - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + Keyboard Shortcuts - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -3904,12 +3874,12 @@ list. The list can be maintained in Settings (F2). - + Special Mouse Commands - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -3920,7 +3890,7 @@ list. The list can be maintained in Settings (F2). <td><b>Click</b> to set Rx frequency.<br/> <b>Shift-click</b> to set Tx frequency.<br/> <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> - <b>Double-click</b> to also decode at Rx frequency.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> </td> </tr> <tr> @@ -3928,10 +3898,10 @@ list. The list can be maintained in Settings (F2). <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> locator to Dx Grid, change Rx and Tx frequency to<br/> decoded signal's frequency, and generate standard<br/> - messages.<br/> - If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> - is your own call, Tx frequency is not changed unless <br/> - <b>Ctrl</b> is held down.<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> </td> </tr> <tr> @@ -3945,42 +3915,42 @@ list. The list can be maintained in Settings (F2). - + No more files to open. - + Spotting to PSK Reporter unavailable - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + Last Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3988,181 +3958,176 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - + Stations calling DXpedition %1 - + Hound - + Tx Messages - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - - VHF features warning - - - - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - + WD:%1m - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -4184,8 +4149,8 @@ UDP server %2:%3 Modes - - + + Mode @@ -4338,7 +4303,7 @@ UDP server %2:%3 - + OOB @@ -4515,7 +4480,7 @@ Error(%2): %3 - + Requested input audio format is not valid. @@ -4525,37 +4490,37 @@ Error(%2): %3 - + Failed to initialize audio sink device - + Idle - + Receiving - + Suspended - + Interrupted - + Error - + Stopped @@ -4563,62 +4528,67 @@ Error(%2): %3 SoundOutput - + An error opening the audio output device has occurred. - + An error occurred during write to the audio output device. - + Audio data not being fed to the audio output device fast enough. - + Non-recoverable error, audio output device not usable at this time. - + Requested output audio format is not valid. - + Requested output audio format is not supported on device. - + + No audio output device configured. + + + + Idle - + Sending - + Suspended - + Interrupted - + Error - + Stopped @@ -4626,22 +4596,22 @@ Error(%2): %3 StationDialog - + Add Station - + &Band: - + &Offset (MHz): - + &Antenna: @@ -4831,12 +4801,12 @@ Error(%2): %3 - JT9 + Hz - JT65 + Split @@ -4871,6 +4841,29 @@ Error(%2): %3 + + WorkedBefore + + + Invalid ADIF field %0: %1 + + + + + Malformed ADIF field %0: %1 + + + + + Invalid ADIF header + + + + + Error opening ADIF log file for read: %0 + + + configuration_dialog @@ -5068,11 +5061,6 @@ Error(%2): %3 minutes - - - Enable VHF/UHF/Microwave features - - Single decode @@ -5184,7 +5172,7 @@ quiet period when decoding is done. - + Port: @@ -5195,313 +5183,326 @@ quiet period when decoding is done. + Serial Port Parameters - + Baud Rate: - + Serial port data rate which must match the setting of your radio. - + 1200 - + 2400 - + 4800 - + 9600 - + 19200 - + 38400 - + 57600 - + 115200 - + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> - - Data Bits + + Data bits + Data Bits + + + + D&efault - + Se&ven - + E&ight - + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> - + + Stop bits + + + + Stop Bits - - + + Default - + On&e - + T&wo - + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> - + + Handshake - + &None - + Software flow control (very rare on CAT interfaces). - + XON/XOFF - + Flow control using the RTS and CTS RS-232 control lines not often used but some radios have it as an option and a few, particularly some Kenwood rigs, require it). - + &Hardware - + Special control of CAT port control lines. - + + Force Control Lines - - + + High - - + + Low - + DTR: - + RTS: - + PTT Method - + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> - + VO&X - + &DTR - + Some radios support PTT via CAT commands, use this option if your radio supports it and you have no other hardware interface for PTT. - + C&AT - + R&TS - + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> - + Modulation mode selected on radio. - + Mode - + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> - + US&B - + Don't allow the program to set the radio mode (not recommended but use if the wrong mode or bandwidth is selected). - - + + None - + Data/P&kt - + Some radios can select the audio input using a CAT command, this setting allows you to select which audio input will be used (if it is available then generally the Rear/Data option is best). - + Transmit Audio Source - + Rear&/Data - + &Front/Mic - + Rig: - + Poll Interval: - + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> - + s - + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> - + Test CAT - + Attempt to activate the transmitter. Click again to deactivate. Normally no power should be output since there is no audio being generated at this time. @@ -5510,47 +5511,47 @@ radio interface behave as expected. - + Test PTT - + Split Operation - + Fake It - + Rig - + A&udio - + Audio interface settings - + Souncard - + Soundcard - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5559,46 +5560,51 @@ transmitting periods. - + + Days since last upload + + + + Select the audio CODEC to use for receiving. - + &Input: - + Select the channel to use for receiving. - - + + Mono - - + + Left - - + + Right - - + + Both - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5606,147 +5612,152 @@ both here. - + + Enable VHF and submode features + + + + Ou&tput: - - + + Save Directory - + Loc&ation: - + Path to which .WAV files are saved. - - + + TextLabel - + Click to select a different save directory for .WAV files. - + S&elect - - + + AzEl Directory - + Location: - + Select - + Power Memory By Band - + Remember power settings by band - + Enable power memory during transmit - + Transmit - + Enable power memory during tuning - + Tune - + Tx &Macros - + Canned free text messages setup - + &Add - + &Delete - + Drag and drop items to rearrange order Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items - + Reportin&g - + Reporting and logging settings - + Logging - + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. - + Promp&t me to log QSO - + Op Call: - + Some logging programs will not accept the type of reports saved by this program. Check this option to save the sent and received reports in the @@ -5754,577 +5765,613 @@ comments field. - + d&B reports to comments - + Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. - + Clear &DX call and grid after logging - + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> - + Con&vert mode to RTTY - + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> - + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> - + Log automatically (contesting only) - + Network Services - + Enable &PSK Reporter Spotting - + UDP Server - + UDP Server: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> - + UDP Server port number: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> - + Accept UDP requests - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> - + Notify on accepted UDP request - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> - + Accepted UDP request restores window - + Secondary UDP Server (deprecated) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> - + Enable logged contact ADIF broadcast - + Server name or IP address: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> - + Server port number: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> - + Frequencies - + Default frequencies and band specific station details setup - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> - + Frequency Calibration - + Slope: - + ppm - + Intercept: - + Hz - + Working Frequencies - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> - + Station Information - + Items may be edited. Right click for insert and delete options. - + Colors Colours - + Decode Highlightling - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> - + Reset Highlighting - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> - + Highlight by Mode - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - + How this program activates the PTT on your radio? - + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> - + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> - + If this is available then it is usually the correct mode for this program. - + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> - + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + Use TCP/IP connection - + Rescan ADIF Log - + Include extra WAE entities - + Check to for grid highlighting to only apply to unworked grid fields - + Only grid Fields sought - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> - + Logbook of the World User Validation - + Users CSV file URL: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> - + + URL + + + + https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> - + Fetch Now - + Age of last upload less than: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> - + days - + Advanced - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters - + Random erasure patterns: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> - + Aggressive decoding level: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> - + Two-pass decoding - + Special operating activity: Generation of FT4, FT8, and MSK144 messages - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> - + + Hound - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> - + + NA VHF Contest - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> - + + Fox - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> - + + EU VHF Contest - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> - + + R T T Y Roundup + + + + RTTY Roundup messages - + + RTTY Roundup exchange + + + + RTTY RU Exch: - + NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> - - ARRL Field Day - - - - - FD Exch: + + A R R L Field Day + ARRL Field Day + + + + + Field Day exchange + + + + + FD Exch: + + + + 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> - + + WW Digital Contest + + + + WW Digi Contest - + Miscellaneous - + Degrade S/N of .wav file: - - + + For offline sensitivity tests - + dB - + Receiver bandwidth: - + Hz - + Tx delay: - + Minimum delay between assertion of PTT and start of Tx audio. - + s - + + Tone spacing - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> - + x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> - + x 4 - + + Waterfall spectra - + Low sidelobes - + Most sensitive - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> @@ -6383,12 +6430,12 @@ Right click for insert and delete options. - + Sub-process error - + Failed to close orphaned jt9 process diff --git a/translations/wsjtx_es.ts b/translations/wsjtx_es.ts index 96c2945f0..1302c2bda 100644 --- a/translations/wsjtx_es.ts +++ b/translations/wsjtx_es.ts @@ -150,19 +150,19 @@ Datos Astronómicos - + Doppler Tracking Error Error de seguimiento de Doppler Seguimiento de error Doppler - + Split operating is required for Doppler tracking Se requiere un funcionamiento dividido para el seguimiento Doppler Operación en "Split" es requerida para seguimiento Doppler - + Go to "Menu->File->Settings->Radio" to enable split operation Ves a "Menú-> Archivo-> Configuración-> Radio" para habilitar la operación dividida Ir a "Menú - Archivo - Ajustes - Radio" para habilitar la operación en "Split" @@ -171,33 +171,33 @@ Bands - + Band name Nombre de la Banda Nombre de la banda - + Lower frequency limit Límite de frecuencia inferior - + Upper frequency limit Límite de frecuencia superior - + Band Banda - + Lower Limit Límite inferior - + Upper Limit Limite superior @@ -404,81 +404,81 @@ Configuration::impl - - - + + + &Delete &Borrar - - + + &Insert ... &Introducir ... &Agregar... - + Failed to create save directory No se pudo crear el directorio para guardar No se pudo crear el directorio "Save" - + path: "%1% ruta: "%1% - + Failed to create samples directory No se pudo crear el directorio de ejemplos No se pudo crear el directorio "Samples" - + path: "%1" ruta: "%1" - + &Load ... &Carga ... &Cargar ... - + &Save as ... &Guardar como ... &Guardar como ... - + &Merge ... &Fusionar ... &Fusionar ... - + &Reset &Reiniciar - + Serial Port: Puerto Serie: - + Serial port used for CAT control Puerto serie utilizado para el control CAT - + Network Server: Servidor de red: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -499,12 +499,12 @@ Formatos: [dirección IPv6]:port - + USB Device: Dispositivo USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -519,172 +519,177 @@ Formato: [VID[:PID[:VENDOR[:PRODUCT]]]] - + + Invalid audio input device El dispositivo de entrada de audio no es válido Dispositivo de entrada de audio no válido - Invalid audio out device El dispositivo de salida de audio no es válido - Dispositivo de salida de audio no válido + Dispositivo de salida de audio no válido - + + Invalid audio output device + + + + Invalid PTT method El método de PTT no es válido Método PTT no válido - + Invalid PTT port El puerto del PTT no es válido Puerto PTT no válido - - + + Invalid Contest Exchange Intercambio de concurso no válido - + You must input a valid ARRL Field Day exchange Debes introducir un intercambio de Field Day del ARRL válido Debe introducir un intercambio válido para el ARRL Field Day - + You must input a valid ARRL RTTY Roundup exchange Debes introducir un intercambio válido de la ARRL RTTY Roundup Debe introducir un intercambio válido para el ARRL RTTY Roundup - + Reset Decode Highlighting Restablecer Resaltado de Decodificación Restablecer resaltado de colores de decodificados - + Reset all decode highlighting and priorities to default values Restablecer todo el resaltado y las prioridades de decodificación a los valores predeterminados Restablecer todo el resaltado de colores y prioridades a los valores predeterminados - + WSJT-X Decoded Text Font Chooser Tipo de texto de pantalla de descodificación WSJT-X Seleccionar un tipo de letra - + Load Working Frequencies Carga las frecuencias de trabajo Cargar las frecuencias de trabajo - - - + + + Frequency files (*.qrg);;All files (*.*) Archivos de frecuencia (*.qrg);;Todos los archivos (*.*) - + Replace Working Frequencies Sustituye las frecuencias de trabajo Sustituir las frecuencias de trabajo - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por las cargadas? ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las cargadas? - + Merge Working Frequencies Combinar las frecuencias de trabajo Combina las frecuencias de trabajo - - - + + + Not a valid frequencies file El archivo de frecuencias no es válido Archivo de frecuencias no válido - + Incorrect file magic Archivo mágico incorrecto - + Version is too new La versión es demasiado nueva - + Contents corrupt contenidos corruptos Contenido corrupto - + Save Working Frequencies Guardar las frecuencias de trabajo - + Only Save Selected Working Frequencies Guarda sólo las frecuencias de trabajo seleccionadas Sólo guarda las frecuencias de trabajo seleccionadas - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. ¿Seguro que quieres guardar sólo las frecuencias de trabajo seleccionadas actualmente? Haz clic en No para guardar todo. ¿Seguro que quiere guardar sólo las frecuencias de trabajo seleccionadas actualmente? Clic en No para guardar todo. - + Reset Working Frequencies Reiniciar las frecuencias de trabajo - + Are you sure you want to discard your current working frequencies and replace them with default ones? ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por otras? ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las de defecto? - + Save Directory Guardar directorio Directorio "Save" - + AzEl Directory Directorio AzEl - + Rig control error Error de control del equipo - + Failed to open connection to rig No se pudo abrir la conexión al equipo Fallo al abrir la conexión al equipo - + Rig failure Fallo en el equipo @@ -1581,23 +1586,23 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency Agregar frecuencia Añadir frecuencia - + IARU &Region: &Región IARU: - + &Mode: &Modo: - + &Frequency (MHz): &Frecuencia en MHz: &Frecuencia (MHz): @@ -1606,26 +1611,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region Región IARU - - + + Mode Modo - - + + Frequency Frecuencia - - + + Frequency (MHz) Frecuencia en MHz Frecuencia (MHz) @@ -2273,12 +2278,13 @@ Error(%2): %3 - - - - - - + + + + + + + Band Activity Actividad en la banda @@ -2290,11 +2296,12 @@ Error(%2): %3 - - - - - + + + + + + Rx Frequency Frecuencia de RX @@ -2332,135 +2339,150 @@ Error(%2): %3 Activa/Desactiva la monitorización - + &Monitor &Monitor - + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> <html><head/><body><p>Borrar ventana derecha. Haz doble clic para borrar ambas ventanas.</p></body></html> <html><head/><body><p>Clic para borrar ventana derecha.</p><p> Doble clic para borrar ambas ventanas.</p></body></html> - + Erase right window. Double-click to erase both windows. Borrar ventana derecha. Haz doble clic para borrar ambas ventanas. Borra ventana derecha. Doble clic para borrar ambas ventanas. - + &Erase &Borrar - + <html><head/><body><p>Clear the accumulating message average.</p></body></html> <html><head/><body><p>Borrar el promedio de mensajes acumulados.</p></body></html> <html><head/><body><p>Borrar el promedio de mensajes acumulados.</p></body></html> - + Clear the accumulating message average. Borrar el promedio de mensajes acumulados. - + Clear Avg Borrar media - + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> <html><head/><body><p>Decodificar el período de RX más reciente en la frecuencia QSO</p></body></html> <html><head/><body><p>Decodifica el período de RX más reciente en la frecuencia del QSO</p></body></html> - + Decode most recent Rx period at QSO Frequency Decodificar el período de RX más reciente en la frecuencia QSO Decodifica el período más reciente de RX en la frecuencia del QSO - + &Decode &Decodificar &Decodifica - + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> <html><head/><body><p>Activar/desactivar TX</p></body></html> <html><head/><body><p>Activar/Desactivar TX</p></body></html> - + Toggle Auto-Tx On/Off Activar/desactivar TX Activa/Desactiva Auto-TX - + E&nable Tx &Activar TX - + Stop transmitting immediately Detiene TX inmediatamente Detener TX inmediatamente - + &Halt Tx &Detener TX - + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> <html><head/><body><p>Activar/desactivar un tono de transmisión puro</p></body></html> <html><head/><body><p>Activa/Desactiva la transmisión de un tono continuo</p></body></html> - + Toggle a pure Tx tone On/Off Activar/desactivar un tono de transmisión puro Activar/Desactivar TX con tono continuo - + &Tune &Tono TX - + Menus Menús - + + Percentage of minute sequences devoted to transmitting. + + + + + Prefer Type 1 messages + + + + + <html><head/><body><p>Transmit during the next sequence.</p></body></html> + + + + USB dial frequency Frecuencia de dial USB - + 14.078 000 14.078 000 - + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> <html><head/><body><p>30dB recomendado cuando solo hay ruido presente,<br/>Verde cuando el nivel es bueno,<br/>Rojo cuando puede ocurrir recortes y<br/>Amarillo cuando esta muy bajo.</p></body></html> <html><head/><body><p>30 dB recomendado cuando solo hay ruido presente.<br>Verde: Nivel de audio aceptable.<br>Rojo: Pueden ocurrir fallos de audio.<br>Amarillo: Nivel de audio muy bajo.</p></body></html> - + Rx Signal Señal de RX Señal RX - + 30dB recommended when only noise present Green when good Red when clipping may occur @@ -2475,310 +2497,316 @@ Rojo pueden ocurrir fallos de audio Amarillo cuando esta muy bajo. - + DX Call Indicativo DX - + DX Grid Locator/Grid DX Locator DX - + Callsign of station to be worked Indicativo de la estación a trabajar - + Search for callsign in database Buscar el indicativo en la base de datos (CALL3.TXT) - + &Lookup &Buscar - + Locator of station to be worked Locator/Grid de la estación a trabajar Locator de la estación a trabajar - + Az: 251 16553 km Az: 251 16553 km - + Add callsign and locator to database Agregar indicativo y locator/Grid a la base de datos Agregar indicativo y locator a la base de datos (CALL3.TXT) - + Add Agregar - + Pwr Potencia - + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> <html><head/><body><p>Si ha habido un error en el control del equipo, haz clic para restablecer y leer la frecuencia del dial. S implica modo dividido o split.</p></body></html> <html><head/><body><p>Si está naranja o rojo, ha habido un error en el control del equipo</p><p>Clic para reiniciar y leer la frecuencia del dial. </p><p>S indica modo "Split".</p></body></html> - + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. Si ha habido un error en el control del equipo, haz clic para restablecer y leer la frecuencia del dial. S implica modo dividido o split. Si está naranja o rojo, ha habido un error en el control del equipo, clic para restablecer y leer la frecuencia del dial. S indica "Split". - + ? ? - + Adjust Tx audio level Ajuste del nivel de audio de TX Ajustar nivel de audio de TX - + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> <html><head/><body><p>Selecciona la banda operativa, introduce la frecuencia en MHz o introduce el incremento de kHz seguido de k.</p></body></html> <html><head/><body><p>Selecciona la banda, o escriba la frecuencia en MHz o escriba el incremento en kHz seguido de k.</p></body></html> - + Frequency entry Frecuencia de entrada - + Select operating band or enter frequency in MHz or enter kHz increment followed by k. Selecciona la banda operativa, introduce la frecuencia en MHz o introduce el incremento de kHz seguido de k. Selecciona la banda o introduce la frecuencia en MHz o ecribe el incremento en kHz seguido de la letra k. - + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> - + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> <html><head/><body><p>Marca para mantener fija la frecuencia de transmisión al hacer doble clic en el texto decodificado.</p></body></html> <html><head/><body><p>Marcar para mantener fija la frecuencia de TX al hacer doble clic en el texto decodificado.</p></body></html> - + Check to keep Tx frequency fixed when double-clicking on decoded text. Marca para mantener fija la frecuencia de transmisión al hacer doble clic en el texto decodificado. Marcar para mantener fija la frecuencia de TX al hacer doble clic en un texto decodificado. - + Hold Tx Freq Mantén TX Freq Mantener Frec. TX - + Audio Rx frequency Frecuencia de audio en RX Frecuencia de RX - - - + + + + + Hz Hz - + + Rx RX - + + Set Tx frequency to Rx Frequency Coloca la frecuencia de RX en la de TX Coloca la frecuencia de TX en la de RX - + - + Frequency tolerance (Hz) Frecuencia de tolerancia (Hz) - + + F Tol F Tol - + + Set Rx frequency to Tx Frequency Coloca la frecuencia de TX en la de RX Coloca la frecuencia de RX en la de TX - + - + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> <html><head/><body><p>Umbral de sincronización. Los números más bajos aceptan señales de sincronización más débiles.</p></body></html> - + Synchronizing threshold. Lower numbers accept weaker sync signals. Umbral de sincronización. Los números más bajos aceptan señales de sincronización más débiles. - + Sync Sinc - + <html><head/><body><p>Check to use short-format messages.</p></body></html> <html><head/><body><p>Marca para usar mensajes de formato corto.</p></body></html> <html><head/><body><p>Marcar para usar mensajes de formato corto.</p></body></html> - + Check to use short-format messages. Marcar para usar mensajes de formato corto. Marca para usar mensajes de formato corto. - + Sh Sh - + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> <html><head/><body><p>Marca para habilitar los modos rápidos JT9</p></body></html> <html><head/><body><p>Marcar para habilitar los modos rápidos JT9</p></body></html> - + Check to enable JT9 fast modes Marca para habilitar los modos rápidos JT9 Marcar para habilitar los modos rápidos JT9 - - + + Fast Rápido - + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> <html><head/><body><p>Marca para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos.</p></body></html> <html><head/><body><p>Marcar para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos.</p></body></html> - + Check to enable automatic sequencing of Tx messages based on received messages. Marca para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos. Marcar para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos. - + Auto Seq Secuencia Automática Secuencia Auto. - + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> <html><head/><body><p>Responde al 1er. CQ decodificado.</p></body></html> <html><head/><body><p>Marcar para responder a la 1ra estación decodificada.</p></body></html> - + Check to call the first decoded responder to my CQ. Responde al 1er. CQ decodificado. Marcar para responder al 1ra. estación decodificada. - + Call 1st Responde al 1er. CQ 1er decodificado - + Check to generate "@1250 (SEND MSGS)" in Tx6. Marcar para generar "@1250 (SEND MSGS)" en TX6. - + Tx6 TX6 - + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> <html><head/><body><p>Marca a TX en minutos o secuencias de números pares, a partir de 0; desmarca las secuencias impares.</p></body></html> <html><head/><body><p>Marcar para transmitir en secuencias o minutos pares, comenzando por 0; desmarca para transmitir en las secuencias o minutos impares.</p></body></html> - + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. Marca a TX en minutos o secuencias de números pares, a partir de 0; desmarca las secuencias impares. Marcar para transmitir en secuencias o minutos pares, comenzando por 0; desmarca para transmitir en las secuencias o minutos impares. - + Tx even/1st Alternar periodo TX Par/Impar TX segundo par - + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> <html><head/><body><p>Frecuencia para llamar a CQ en kHz por encima del MHz actual</p></body></html> <html><head/><body><p>Frecuencia para llamar CQ en kHz por sobre el MHz actual</p></body></html> - + Frequency to call CQ on in kHz above the current MHz Frecuencia para llamar a CQ en kHz por encima del MHz actual Frecuencia para llamar CQ en kHz por encima del MHz actual - + Tx CQ TX CQ - + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> <html><head/><body><p>Marca esto para llamar a CQ en la frecuencia&quot;TX CQ&quot;. RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder.</p><p>No está disponible para los titulares de indicativo no estándar.</p></body></html> <html><head/><body><p>Marcar para llamar CQ en la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder.</p><p>No está disponible para los titulares de indicativo no estándar.</p></body></html> - + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. Marca esto para llamar a CQ en la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder. @@ -2786,63 +2814,63 @@ No está disponible para los titulares de indicativo no estándar.Marcar para llamar CQ en la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder. No está disponible para los titulares de indicativo no estándar. - + Rx All Freqs RX en todas las frecuencias - + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> <html><head/><body><p>El submodo determina el espaciado de tono; "A" es más estrecho.</p></body></html> - + Submode determines tone spacing; A is narrowest. El submodo determina el espaciado de tono; "A" es más estrecho. - + Submode Submodo - - + + Fox Fox "Fox" - + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> <html><head/><body><p>Marca para monitorear los mensajes Sh.</p></body></html> <html><head/><body><p>Marcar para escuchar los mensajes Sh.</p></body></html> - + Check to monitor Sh messages. Marca para monitorear los mensajes Sh. Marcar para escuchar los mensajes Sh. - + SWL SWL - + Best S+P El mejor S+P S+P - + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> <html><head/><body><p>Marca para comenzar a registrar los datos de calibración.<br/>Mientras se mide la corrección de calibración, se desactiva.<br/>Cuando no está marcado, puedes ver los resultados de la calibración.</p></body></html> <html><head/><body><p>Marcar para comenzar a grabar los datos de calibración.<br/>Mientras se mide, la corrección de calibración está desactivada.<br/>Cuando no está marcado, puede verse los resultados de la calibración.</p></body></html> - + Check this to start recording calibration data. While measuring calibration correction is disabled. When not checked you can view the calibration results. @@ -2854,121 +2882,123 @@ Mientras se mide, la corrección de calibración está desactivada. Cuando no está marcado, puede verse los resultados de la calibración. - + Measure Medida - + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> <html><head/><body><p>Informe de señal: relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB).</p></body></html> <html><head/><body><p>Reporte de señal: Relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB).</p></body></html> - + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). Informe de señal: relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB). Reporte de señal: Relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB). - + Report No -> Señal de Recepción Reporte - + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> <html><head/><body><p>Tx/Rx o longitud de secuencia de calibración de frecuencia</p></body></html> <html><head/><body><p>TX/RX o longitud de secuencia de calibración de frecuencia</p></body></html> - + Tx/Rx or Frequency calibration sequence length Tx/Rx o longitud de secuencia de calibración de frecuencia TX/RX o longitud de secuencia de calibración de frecuencia - + + s s - + + T/R T/R - + Toggle Tx mode Conmuta el modo TX Conmuta modo TX - + Tx JT9 @ TX JT9 @ - + Audio Tx frequency Frecuencia de audio de TX Frecuencia de TX - - + + Tx TX - + Tx# TX# - + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> <html><head/><body><p>Haz doble clic en otro indicativo que llama para poner en la cola esa llamada para tú siguiente QSO.</p></body></html> <html><head/><body><p>Doble clic en otra estación llamando para poner en la cola ese indicativo para tu siguiente QSO.</p></body></html> - + Double-click on another caller to queue that call for your next QSO. Haz doble clic en otro indicativo que llama para poner en la cola esa llamada para tú siguiente QSO. Doble clic en otra estación llamando para poner en la cola ese indicativo para tu siguiente QSO. - + Next Call Siguiente Indicativo - + 1 1 - - - + + + Send this message in next Tx interval Enviar este mensaje en el siguiente intervalo de transmisión Enviar este mensaje en el siguiente intervalo de TX - + Ctrl+2 Ctrl+2 - + <html><head/><body><p>Send this message in next Tx interval</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>Enviar este mensaje en el siguiente intervalo de transmisión.</p><p>Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> <html><head/><body><p>Enviar este mensaje en el siguiente intervalo de TX.</p><p>Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> - + Send this message in next Tx interval 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) Enviar este mensaje en el siguiente intervalo de transmisión. @@ -2976,37 +3006,37 @@ Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una Enviar este mensaje en el siguiente intervalo de TX. Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1). - + Ctrl+1 Ctrl+1 - - - - + + + + Switch to this Tx message NOW Cambia a este mensaje de TX AHORA Cambiar a este mensaje de TX AHORA - + Tx &2 TX &2 - + Alt+2 Alt+2 - + <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>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> <html><head/><body><p>Cambiar a este mensaje de TX AHORA.</p><p>Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> - + Switch to this Tx message NOW 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) Cambia a este mensaje de TX AHORA. @@ -3014,78 +3044,78 @@ Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una Cambiar a este mensaje de TX AHORA.Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1) - + Tx &1 Tx &1 - + Alt+1 Alt+1 - + Ctrl+6 Ctrl+6 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>Enviar este mensaje en el siguiente intervalo de transmisión</p><p>Haz doble clic para restablecer el mensaje estándar 73.</p></body></html> <html><head/><body><p>Enviar este mensaje en el siguiente intervalo de TX</p><p>Doble clic para restablecer el mensaje 73 estándar.</p></body></html> - + Send this message in next Tx interval Double-click to reset to the standard 73 message Enviar este mensaje en el siguiente intervalo de TX. Doble clic para restablecer el mensaje 73 estándar. - + Ctrl+5 Ctrl+5 - + Ctrl+3 Ctrl+3 - + Tx &3 TX &3 - + Alt+3 Alt+3 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>Envia este mensaje en el siguiente intervalo de transmisión.</p><p>Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> <html><head/><body><p>Envia este mensaje en el siguiente intervalo de TX.</p><p>Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> - + Send this message in next Tx interval Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required Envia este mensaje en el siguiente intervalo de TX. Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2). Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes - + Ctrl+4 Ctrl+4 - + <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>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> <html><head/><body><p>Cambiar a este mensaje de TX AHORA.</p><p>Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> - + Switch to this Tx message NOW Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required @@ -3095,23 +3125,23 @@ Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no Cambiar a este mensaje de TX AHORA. Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2). Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes. - + Tx &4 TX &4 - + Alt+4 Alt+4 - + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para restablecer el mensaje estándar 73.</p></body></html> <html><head/><body><p>Cambiar a este mensaje de TX AHORA.</p><p>Doble clic para restablecer el mensaje estándar 73.</p></body></html> - + Switch to this Tx message NOW Double-click to reset to the standard 73 message Cambia a este mensaje de TX AHORA. @@ -3120,45 +3150,44 @@ Haz doble clic para restablecer el mensaje estándar 73. Doble clic para cambiar al mensaje estándar 73. - + Tx &5 TX &5 - + Alt+5 Alt+5 - + Now Ahora - + Generate standard messages for minimal QSO Genera mensajes estándar para un QSO mínimo Genera mensajes estándares para realizar un QSO - + Generate Std Msgs Genera Mensaje Standar Genera Mensajes Estándar - + Tx &6 TX &6 - + Alt+6 Alt+6 - - + Enter a free text message (maximum 13 characters) or select a predefined macro from the dropdown list. Press ENTER to add the current text to the predefined @@ -3173,1105 +3202,1130 @@ Presiona INTRO para agregar el texto actual a la lista predefinida. La lista se puede modificar en "Ajustes" (F2). - + Queue up the next Tx message Poner en cola el siguiente mensaje de TX - + Next Siguiente - + 2 2 - + + FST4W + + + Calling CQ - Llamando CQ + Llamando CQ - Generate a CQ message - Genera mensaje CQ + Genera mensaje CQ - - - + + CQ CQ - Generate message with RRR - Genera mensaje con RRR + Genera mensaje con RRR - RRR - RRR + RRR - Generate message with report Generar mensaje con informe de señal - Genera mensaje con informe de señal + Genera mensaje con informe de señal - dB - dB + dB - Answering CQ - Respondiendo CQ + Respondiendo CQ - Generate message for replying to a CQ Generar mensaje para responder a un CQ - Genera mensaje para responder a un CQ + Genera mensaje para responder a un CQ - - + Grid Locator/grid Locator - Generate message with R+report Generar mensaje con R+informe de señal - Genera mensaje con R más informe de señal + Genera mensaje con R más informe de señal - R+dB - R+dB + R+dB - Generate message with 73 Generar mensaje con 73 - Genera mensaje con 73 + Genera mensaje con 73 - 73 - 73 + 73 - Send this standard (generated) message Enviar este mensaje estándar (generado) - Envia este mensaje estándar (generado) + Envia este mensaje estándar (generado) - Gen msg Gen msg - Msg Gen + Msg Gen - Send this free-text message (max 13 characters) Enviar este mensaje de texto libre (máximo 13 caracteres) - Envia este mensaje de texto libre (máximo 13 caracteres) + Envia este mensaje de texto libre (máximo 13 caracteres) - Free msg - Msg Libre + Msg Libre - 3 - 3 + 3 - + Max dB Max dB - + CQ AF CQ AF - + CQ AN CQ AN - + CQ AS CQ AS - + CQ EU CQ EU - + CQ NA CQ NA - + CQ OC CQ OC - + CQ SA CQ SA - + CQ 0 CQ 0 - + CQ 1 CQ 1 - + CQ 2 CQ 2 - + CQ 3 CQ 3 - + CQ 4 CQ 4 - + CQ 5 CQ 5 - + CQ 6 CQ 6 - + CQ 7 CQ 7 - + CQ 8 CQ 8 - + CQ 9 CQ 9 - + Reset Reiniciar - + N List N List - + N Slots N Slots - - + + + + + + + Random Aleatorio - + Call Indicativo - + S/N (dB) S/N (dB) - + Distance Distancia - + More CQs Más CQ's - Percentage of 2-minute sequences devoted to transmitting. - Porcentaje de secuencias de 2 minutos dedicadas a la transmisión. + Porcentaje de secuencias de 2 minutos dedicadas a la transmisión. - + + % % - + Tx Pct TX Pct Pct TX - + Band Hopping Salto de banda - + Choose bands and times of day for band-hopping. Elija bandas y momentos del día para saltar de banda. Escoja bandas y momentos del día para saltos de banda. - + Schedule ... Calendario ... Programar ... + 1/2 - 1/2 + 1/2 + 2/2 - 2/2 + 2/2 + 1/3 - 1/3 + 1/3 + 2/3 - 2/3 + 2/3 + 3/3 - 3/3 + 3/3 + 1/4 - 1/4 + 1/4 + 2/4 - 2/4 + 2/4 + 3/4 - 3/4 + 3/4 + 4/4 - 4/4 + 4/4 + 1/5 - 1/5 + 1/5 + 2/5 - 2/5 + 2/5 + 3/5 - 3/5 + 3/5 + 4/5 - 4/5 + 4/5 + 5/5 - 5/5 + 5/5 + 1/6 - 1/6 + 1/6 + 2/6 - 2/6 + 2/6 + 3/6 - 3/6 + 3/6 + 4/6 - 4/6 + 4/6 + 5/6 - 5/6 + 5/6 + 6/6 - 6/6 + 6/6 - + Upload decoded messages to WSPRnet.org. Cargue mensajes decodificados a WSPRnet.org. Subir mensajes decodificados a WSPRnet.org. - + Upload spots Subir "Spots" - + <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>Los Locator/Grid de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes.</p></body></html> <html><head/><body><p>Los locator de 6 dígitos hace que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo, otras estaciones deben haber decodificado el primero antes de poder descodificar el segundo. Marcar esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes.</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. Los Locator/Grid de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes. Los locator de 6 dígitos hace que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo, otras estaciones deben haber decodificado el primero antes de poder descodificar el segundo. Marcar esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes. + + + Quick-Start Guide to FST4 and FST4W + + + + + FST4 + + FT240W FT240W - Prefer type 1 messages Prefieres mensajes de tipo 1 - Preferir mensajes de tipo 1 + Preferir mensajes de tipo 1 - + No own call decodes No se descodifica ningún indicativo propio No se descodifica mi indicativo - Transmit during the next 2-minute sequence. - Transmite durante la siguiente secuencia de 2 minutos. + Transmite durante la siguiente secuencia de 2 minutos. - + Tx Next Siguiente TX - + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. Configura la potencia de transmisión en dBm (dB por encima de 1 mW) como parte de tú mensaje WSPR. Configurar la potencia de TX en dBm (dB por encima de 1 mW) como parte de su mensaje WSPR. - + + NB + + + + File Archivo - + View Ver - + Decode Decodifica Decodificar - + Save Guardar - + Help Ayuda - + Mode Modo - + Configurations No es valido utilizar Ajustes Configuraciones - + Tools Herramientas - + Exit Salir - Configuration - Ajustes + Ajustes - F2 - F2 + F2 - + About WSJT-X Acerca de WSJT-X - + Waterfall Cascada Cascada (Waterfall) - + Open Abrir - + Ctrl+O Ctrl+O - + Open next in directory Abrir siguiente en el directorio - + Decode remaining files in directory Decodifica los archivos restantes en el directorio - + Shift+F6 Mayúsculas+F6 Mayúsculas+F6 - + Delete all *.wav && *.c2 files in SaveDir Borrar todos los archivos *.wav y *.c2 - + None Ninguno Nada - + Save all Guardar todo - + Online User Guide Guía de usuario en línea - + Keyboard shortcuts Atajos de teclado - + Special mouse commands Comandos especiales del ratón - + JT9 JT9 - + Save decoded Guarda el decodificado Guardar lo decodificado - + Normal Normal - + Deep Profundo - Monitor OFF at startup Monitor apagado al inicio - "Monitor" apagado al inicio + "Monitor" apagado al inicio - + Erase ALL.TXT Borrar ALL.TXT - + Erase wsjtx_log.adi Borrar el archivo wsjtx_log.adi Borrar archivo wsjtx_log.adi - Convert mode to RTTY for logging Convierte el modo a RTTY después de registrar el QSO - Convierte el modo a RTTY para guardar el QSO + Convierte el modo a RTTY para guardar el QSO - Log dB reports to Comments Pon los informes de recepción en dB en Comentarios - Guardar reportes dB en los Comentarios + Guardar reportes dB en los Comentarios - Prompt me to log QSO Pedirme que registre QSO - Preguntarme antes de guardar el QSO + Preguntarme antes de guardar el QSO - Blank line between decoding periods - Línea en blanco entre períodos de decodificación + Línea en blanco entre períodos de decodificación - Clear DX Call and Grid after logging Borrar Indicativo DX y Locator/Grid DX después de registrar un QSO - Borrar Indicativo y Locator del DX después de guardar QSO + Borrar Indicativo y Locator del DX después de guardar QSO - Display distance in miles - Mostrar distancia en millas + Mostrar distancia en millas - Double-click on call sets Tx Enable Haz doble clic en los conjuntos de indicativos de activar TX - Doble clic en el indicativo activa la TX + Doble clic en el indicativo activa la TX - - + F7 F7 - Tx disabled after sending 73 Tx deshabilitado después de enviar 73 - Dehabilita TX después de enviar 73 + Dehabilita TX después de enviar 73 - - + Runaway Tx watchdog Control de TX - Allow multiple instances - Permitir múltiples instancias + Permitir múltiples instancias - Tx freq locked to Rx freq TX frec bloqueado a RX frec - Freq. de TX bloqueda a freq. de RX + Freq. de TX bloqueda a freq. de RX - + JT65 JT65 - + JT9+JT65 JT9+JT65 - Tx messages to Rx Frequency window Mensajes de texto a la ventana de frecuencia de RX - Mensajes de TX a la ventana de "Frecuencia de RX" + Mensajes de TX a la ventana de "Frecuencia de RX" - Gray1 - Gris1 + Gris1 - Show DXCC entity and worked B4 status Mostrar entidad DXCC y estado B4 trabajado - Mostrar DXCC y estado B4 trabajado + Mostrar DXCC y estado B4 trabajado - + Astronomical data Datos astronómicos - + List of Type 1 prefixes and suffixes Lista de prefijos y sufijos de tipo 1 Lista de prefijos y sufijos tipo 1 - + Settings... Configuración Ajustes... - + Local User Guide Guía de usuario local - + Open log directory Abrir directorio de log - + JT4 JT4 - + Message averaging Promedio de mensajes - + Enable averaging Habilitar el promedio - + Enable deep search Habilitar búsqueda profunda - + WSPR WSPR - + Echo Graph Gráfico de eco - + F8 F8 - + Echo Echo Eco - + EME Echo mode Modo EME Eco - + ISCAT ISCAT - + Fast Graph Gráfico rápido "Fast Graph" - + F9 F9 - + &Download Samples ... &Descargar muestras ... &Descargar muestras de audio ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>Descarga archivos de audio de muestra que demuestren los distintos modos.</p></body></html> <html><head/><body><p>Descargar archivos de audio de los distintos modos.</p></body></html> - + MSK144 MSK144 - + QRA64 QRA64 - + Release Notes Cambios en la nueva versión - + Enable AP for DX Call Habilitar AP para llamada DX Habilitar AP para indicativo DX - + FreqCal FreqCal - + Measure reference spectrum Medir espectro de referencia - + Measure phase response Medir la respuesta de fase - + Erase reference spectrum Borrar espectro de referencia - + Execute frequency calibration cycle Ejecutar ciclo de calibración de frecuencia - + Equalization tools ... Herramientas de ecualización ... - WSPR-LF - WSPR-LF + WSPR-LF - Experimental LF/MF mode - Modo experimental LF/MF + Modo experimental LF/MF - + FT8 FT8 - - + + Enable AP Habilitar AP - + Solve for calibration parameters Resolver para parámetros de calibración Resolver parámetros de calibración - + Copyright notice Derechos de Autor - + Shift+F1 Mayúsculas+F1 - + Fox log Log Fox Log "Fox" - + FT8 DXpedition Mode User Guide Guía de usuario del modo FT8 DXpedition (inglés) - + Reset Cabrillo log ... Restablecer log de Cabrillo ... Borrar log Cabrillo ... - + Color highlighting scheme Esquema de resaltado de color Esquema de resaltado de colores - Contest Log - Log de Concurso + Log de Concurso - + Export Cabrillo log ... Exportar log de Cabrillo ... Exportar log Cabrillo ... - Quick-Start Guide to WSJT-X 2.0 - Guía de inicio rápido para WSJT-X 2.0 (inglés) + Guía de inicio rápido para WSJT-X 2.0 (inglés) - + Contest log Log de Concurso - + Erase WSPR hashtable Borrar la tabla de WSPR - + FT4 FT4 - + Rig Control Error Error de control del equipo - - - + + + Receiving Recibiendo - + Do you want to reconfigure the radio interface? ¿Desea reconfigurar la interfaz de radio? - + + %1 (%2 sec) audio frames dropped + + + + + Audio Source + + + + + Reduce system load + + + + + Excessive dropped samples - %1 (%2 sec) audio frames dropped + + + + Error Scanning ADIF Log Error al escanear el log ADIF - + Scanned ADIF log, %1 worked before records created Log ADIF escaneado, %1 funcionaba antes de la creación de registros Log ADIF escaneado, %1 registros trabajados B4 creados - + Error Loading LotW Users Data Error al cargar datos de usuarios de LotW Error al cargar datos de usuarios de LoTW - + Error Writing WAV File Error al escribir el archivo WAV - + Configurations... Conmfiguraciones... Configuraciones... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message Mensaje - + Error Killing jt9.exe Process Error al matar el proceso jt9.exe - + KillByName return code: %1 Código de retorno de KillByName: %1 KillByName regresa código: %1 - + Error removing "%1" Error al eliminar "%1" - + Click OK to retry Haga clic en Aceptar para volver a intentar Clic en "Aceptar" para reintentar - - + + Improper mode Modo incorrecto - - + + File Open Error Error de apertura del archivo Error al abrir archivo - - - - - + + + + + Cannot open "%1" for append: %2 No puedo abrir "%1" para anexar: %2 No se puedo abrir "%1" para anexar: %2 - + Error saving c2 file Error al guardar el archivo c2 Error al guardar archivo c2 - + Error in Sound Input Error en entrada de sonido - + Error in Sound Output Error en la salida de sonido Error en salida de audio - - - + + + Single-Period Decodes Decodificaciones de un solo período - - - + + + Average Decodes Promedio de decodificaciones - + Change Operator Cambiar operador - + New operator: Operador nuevo: - + Status File Error Error de estado del archivo Error en el archivo de estado - - + + Cannot open "%1" for writing: %2 No se puede abrir "%1" para la escritura: %2 No se puede abrir "%1" para escritura: %2 - + Subprocess Error Error de subproceso - + Subprocess failed with exit code %1 El subproceso falló con el código de salida %1 - - + + Running: %1 %2 Corriendo: %1 @@ -4280,27 +4334,27 @@ Error al cargar datos de usuarios de LotW %2 - + Subprocess error Error de subproceso - + Reference spectrum saved Espectro de referencia guardado - + Invalid data in fmt.all at line %1 Datos no válidos en fmt.all en la línea %1 - + Good Calibration Solution Buena solución de calibración - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -4313,18 +4367,18 @@ Error al cargar datos de usuarios de LotW %9%L10 Hz</pre> - + Delete Calibration Measurements Eliminar mediciones de calibración Borrar mediciones de calibración - + The "fmt.all" file will be renamed as "fmt.bak" El archivo "fmt.all" será renombrado como "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -4336,31 +4390,31 @@ Error al cargar datos de usuarios de LotW "Los algoritmos, el código fuente, la apariencia y comportamiento del WSJT-X y los programas relacionados, y las especificaciones del protocolo para los modos FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 son Copyright (C) 2001-2020 por uno o más de los siguientes autores: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q y otros miembros del Grupo de Desarrollo WSJT ". - + No data read from disk. Wrong file format? No se leen datos del disco. Formato de archivo incorrecto? No se han leido datos del disco. Formato de archivo incorrecto? - + Confirm Delete Confirmar eliminación Confirmar borrado - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? ¿Estas seguro de que deseas eliminar todos los archivos *.wav y *.c2 en "%1"? ¿Esta seguro de que desea borrar todos los archivos *.wav y *.c2 en "%1"? - + Keyboard Shortcuts Atajo de teclado Atajos de teclado - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4410,13 +4464,13 @@ Error al cargar datos de usuarios de LotW - + Special Mouse Commands Comandos especiales del ratón Comandos especiales de ratón - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4427,7 +4481,7 @@ Error al cargar datos de usuarios de LotW <td><b>Click</b> to set Rx frequency.<br/> <b>Shift-click</b> to set Tx frequency.<br/> <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> - <b>Double-click</b> to also decode at Rx frequency.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> </td> </tr> <tr> @@ -4435,10 +4489,10 @@ Error al cargar datos de usuarios de LotW <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> locator to Dx Grid, change Rx and Tx frequency to<br/> decoded signal's frequency, and generate standard<br/> - messages.<br/> - If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> - is your own call, Tx frequency is not changed unless <br/> - <b>Ctrl</b> is held down.<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> </td> </tr> <tr> @@ -4452,46 +4506,46 @@ Error al cargar datos de usuarios de LotW - + No more files to open. No hay más archivos para abrir. - + Spotting to PSK Reporter unavailable - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Por favor, elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30m. Elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30M. - + WSPR Guard Band Banda de Guardia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Elige otra frecuencia de dial. WSJT-X no funcionará en modo Fox en las sub-bandas FT8 estándar. Por favor elija otra frecuencia. WSJT-X no operá en modo "Fox" en las sub-bandas de FT8 estándar. - + Fox Mode warning Advertencia del modo Fox Advertencia de modo "Fox" - + Last Tx: %1 Última TX: %1 Últ TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4506,37 +4560,37 @@ Para hacerlo, marca "Actividad operativa especial" y luego "Concurso VHF EU" en "Archivo" - "Ajustes" - "Avanzado". - + Should you switch to ARRL Field Day mode? ¿Cambiar al modo ARRL Field Day? - + Should you switch to RTTY contest mode? ¿Cambiar al modo de concurso RTTY? - - - - + + + + Add to CALL3.TXT Añadir a CALL3.TXT - + Please enter a valid grid locator Por favor, introduce un locator/Grid válido Por favor escriba un locator válido - + Cannot open "%1" for read/write: %2 No se puede abrir "%1" para leer/escribir: %2 No se puede abrir "%1" para lectura/escritura: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 @@ -4545,167 +4599,166 @@ ya está en CALL3.TXT, ¿deseas reemplazarlo? ya está en CALL3.TXT, ¿desea reemplazarlo? - + Warning: DX Call field is empty. Advertencia: el campo de Indicativo DX está vacío. Advertencia: el campo Indicativo DX está vacío. - + Log file error Error de archivo de log Error en el archivo de log - + Cannot open "%1" No puedo abrir "%1" No se puede abrir "%1" - + Error sending log to N1MM Error al enviar el log a N1MM - + Write returned "%1" Escritura devuelta "%1" Escritura devuelve "%1" - + Stations calling DXpedition %1 Estaciones que llaman a DXpedition %1 Estaciones llamando a DXpedition %1 - + Hound Hound "Hound" - + Tx Messages Mensajes de TX Mensajes TX - - - + + + Confirm Erase Confirmar borrado - + Are you sure you want to erase file ALL.TXT? ¿Estás seguro de que quiere borrar el archivo ALL.TXT? - - + + Confirm Reset Confirmar reinicio Confirmar restablecer - + Are you sure you want to erase your contest log? ¿Estás seguro de que quieres borrar el log de tú concurso? ¿Está seguro que quiere borrar el log de concurso? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Hacer esto eliminará todos los registros de QSO para el concurso actual. Se guardarán en el archivo log de ADIF, pero no estarán disponibles para la exportación en tú log de Cabrillo. Hacer esto eliminará todos los QSOs del concurso actual. Se mantendrán en el log ADIF, pero no estarán disponibles para la exportación como log de Cabrillo. - + Cabrillo Log saved Cabrillo Log guardado Log Cabrillo guardado - + Are you sure you want to erase file wsjtx_log.adi? ¿Estás seguro de que quieres borrar el archivo wsjtx_log.adi? ¿Está seguro que quiere borrar el archivo wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? ¿Estás seguro de que quieres borrar la tabla WSPR? ¿Está seguro de que quiere borrar la tabla hash WSPR? - VHF features warning - Advertencia de características VHF + Advertencia de características VHF - + Tune digital gain Ganancia de sintonización digital Ajustar ganancia digital - + Transmit digital gain Ganancia de transmisión digital Transmitir ganancia digital - + Prefixes Prefijos Prefijos y sufijos tipo 1 - + Network Error Error de red - + Error: %1 UDP server %2:%3 Error: %1 Servidor UDP %2:%3 - + File Error Error en el archivo - + Phase Training Disabled Fase de entrenamiento deshabilitado Entrenamieno de Fase deshabilitado - + Phase Training Enabled Fase de entrenamiento habilitado Entrenamiento de Fase habilitado - + WD:%1m WD:%1m - - + + Log File Error Error de archivo log Error en archivo log - + Are you sure you want to clear the QSO queues? ¿Estás seguro de que quieres borrar las colas QSO? ¿Está seguro que quiere borrar las colas de QSOs? @@ -4729,8 +4782,8 @@ Servidor UDP %2:%3 Modes - - + + Mode Modo @@ -4903,7 +4956,7 @@ Servidor UDP %2:%3 Error al abrir archivo CSV de usuarios del LoTW: '%1' - + OOB OOB @@ -5103,7 +5156,7 @@ Error(%2): %3 Error no recuperable, dispositivo de entrada de audio no disponible en este momento. - + Requested input audio format is not valid. El formato de audio de entrada solicitado no es válido. @@ -5114,37 +5167,37 @@ Error(%2): %3 El formato de audio de entrada solicitado no está soportado en el dispositivo. - + Failed to initialize audio sink device Error al inicializar el dispositivo receptor de audio - + Idle Inactivo - + Receiving Recibiendo - + Suspended Suspendido - + Interrupted Interrumpido - + Error Error - + Stopped Detenido @@ -5152,62 +5205,67 @@ Error(%2): %3 SoundOutput - + An error opening the audio output device has occurred. Se produjo un error al abrir el dispositivo de salida de audio. - + An error occurred during write to the audio output device. Se produjo un error durante la escritura en el dispositivo de salida de audio. - + Audio data not being fed to the audio output device fast enough. Los datos de audio no se envían al dispositivo de salida de audio lo suficientemente rápido. - + Non-recoverable error, audio output device not usable at this time. Error no recuperable, dispositivo de salida de audio no utilizable en este momento. - + Requested output audio format is not valid. El formato de audio de salida solicitado no es válido. - + Requested output audio format is not supported on device. El formato de audio de salida solicitado no es compatible con el dispositivo. - + + No audio output device configured. + + + + Idle Inactivo - + Sending Recibiendo - + Suspended Suspendido - + Interrupted Interrumpido - + Error Error - + Stopped Detenido @@ -5215,23 +5273,23 @@ Error(%2): %3 StationDialog - + Add Station Agregar estación - + &Band: &Banda: - + &Offset (MHz): &Desplazamiento en MHz: Desplazamient&o (MHz): - + &Antenna: &Antena: @@ -5428,19 +5486,23 @@ Error(%2): %3 <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> <html><head/><body><p>Decodifica JT9 solo por encima de esta frecuencia</p></body></html> - - Hz - Hz - - JT9 - JT9 + Hz + Hz + Split + + + + JT9 + JT9 + + JT65 - JT65 + JT65 @@ -5478,6 +5540,29 @@ Error(%2): %3 Leer Paleta + + WorkedBefore + + + Invalid ADIF field %0: %1 + + + + + Malformed ADIF field %0: %1 + + + + + Invalid ADIF header + + + + + Error opening ADIF log file for read: %0 + + + configuration_dialog @@ -5704,10 +5789,9 @@ Error(%2): %3 minutos - Enable VHF/UHF/Microwave features Habilita las funciones VHF/UHF/Microondas - Habilita características en VHF/UHF/Microondas + Habilita características en VHF/UHF/Microondas @@ -5842,7 +5926,7 @@ período de silencio cuando se ha realizado la decodificación. - + Port: Puerto: @@ -5853,140 +5937,152 @@ período de silencio cuando se ha realizado la decodificación. + Serial Port Parameters Parámetros del puerto serie - + Baud Rate: Velocidad de transmisión: - + Serial port data rate which must match the setting of your radio. Velocidad de datos del puerto serie que debe coincidir con los ajustes de tu radio. - + 1200 1200 - + 2400 2400 - + 4800 - + 9600 9600 - + 19200 19200 - + 38400 38400 - + 57600 57600 - + 115200 115200 - + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> <html><head/><body><p>Número de bits de datos utilizados para comunicarse con la interfaz CAT de tú equipo (generalmente ocho).</p></body></html> <html><head/><body><p>Número de bits de datos utilizados para comunicarse con la interface CAT del equipo (generalmente ocho).</p></body></html> - + + Data bits + + + + Data Bits Bits de datos - + D&efault Por d&efecto - + Se&ven &Siete - + E&ight O&cho - + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> <html><head/><body><p>Número de bits de parada utilizados al comunicarse con la interfaz CAT de tú equipo</p><p>(consulta el manual de tú equipo para más detalles).</p></body></html> <html><head/><body><p>Número de bits de parada utilizados al comunicarse con la interface CAT del equipo</p><p>(consulta el manual del equipo para más detalles).</p></body></html> - + + Stop bits + + + + Stop Bits Bits de parada - - + + Default Por defecto - + On&e Un&o - + T&wo &Dos - + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> <html><head/><body><p>Protocolo de control de flujo utilizado entre este PC y la interfaz CAT de tú equipo (generalmente &quot;Ninguno&quot;pero algunos requieren&quot;Hardware&quot;).</p></body></html> <html><head/><body><p>Protocolo de control de flujo utilizado entre este PC y la interfaz CAT del equipo (generalmente "Ninguno", pero algunos requieren "Hardware").</p></body></html> - + + Handshake Handshake - + &None &Ninguno - + Software flow control (very rare on CAT interfaces). Control de flujo de software (muy raro en interfaces CAT). - + XON/XOFF XON/XOFF - + Flow control using the RTS and CTS RS-232 control lines not often used but some radios have it as an option and a few, particularly some Kenwood rigs, require it). @@ -5995,82 +6091,88 @@ no se usa con frecuencia, pero algunos equipos lo tienen como una opción y unos pocos, particularmente algunos equipos de Kenwood, lo requieren. - + &Hardware &Hardware - + Special control of CAT port control lines. Control especial de líneas de control de puertos CAT. - + + Force Control Lines Líneas de control de fuerza Forzar - - + + High Alto - - + + Low Bajo - + DTR: DTR: - + RTS: RTS: + + + Days since last upload + + How this program activates the PTT on your radio ¿ Cómo este programa activa el PTT en tú equipo ? - + How this program activates the PTT on your radio? ¿Cómo este programa activa el PTT en tú equipo? ¿Cómo activa este programa el PTT del equipo? - + PTT Method Método de PTT - + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> <html><head/><body><p>Sin activación de PTT, en cambio, el VOX automático del equipo se usa para conectar el transmisor.</p><p>Usa esto si no tienes hardware de interfaz de radio.</p></body></html> <html><head/><body><p>Sin activación de PTT, se use el VOX del equipo para activar el transmisor.</p><p>Use esta opción si no se tiene una interface de radio.</p></body></html> - + VO&X VO&X - + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> <html><head/><body><p>Usa la línea de control RS-232 DTR para alternar el PTT de tú equipo, requiere hardware para interconectar la línea.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control DTR del puerto serie CAT se puede usar para esto o se puede usar una línea de control DTR en un puerto serie diferente.</p></body></html> <html><head/><body><p>Use la línea de control RS-232 DTR para activar el PTT del equipo, se requiere de "hardware" para el envio de señales.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control DTR del puerto serie CAT se puede usar para esto o se puede usar una línea de control DTR en un puerto serie diferente.</p></body></html> - + &DTR &DTR - + Some radios support PTT via CAT commands, use this option if your radio supports it and you have no other hardware interface for PTT. @@ -6082,50 +6184,50 @@ use esta opción si el equipo lo admite y no tiene una interface para PTT. - + C&AT C&AT - + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> <html><head/><body><p>Usa la línea de control RS-232 RTS para alternar el PTT de tú equipo, requiere hardware para interconectar la línea.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control RTS del puerto serie CAT se puede usar para esto o se puede usar una línea de control RTS en un puerto serie diferente. Ten en cuenta que esta opción no está disponible en el puerto serie CAT cuando se usa el control de flujo de hardware.</p></body></html> <html><head/><body><p>Use la línea de control RS-232 RTS para activar el PTT del equipo, requiere hardware para interconectar la línea.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control RTS del puerto serie CAT se puede usar para esto o se puede usar una línea de control RTS en un puerto serie diferente. Esta opción no está disponible en el puerto serie CAT cuando se usa el control de flujo de hardware.</p></body></html> - + R&TS R&TS - + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> <html><head/><body><p>Selecciona el puerto serie RS-232 utilizado para el control PTT, esta opción está disponible cuando se selecciona DTR o RTS arriba como método de transmisión.</p><p>Este puerto puede ser el mismo que el utilizado para el control CAT.</p><p>Para algunos tipos de interfaz, se puede elegir el valor especial CAT, esto se usa para interfaces CAT no seriales que pueden controlar líneas de control de puerto serie de forma remota (OmniRig, por ejemplo).</p></body></html> <html><head/><body><p>Seleccione el puerto serie RS-232 utilizado para el control PTT, esta opción está disponible cuando se selecciona DTR o RTS como método de transmisión.</p><p>Este puerto puede ser el mismo que el utilizado para el control CAT.</p><p>Para algunos tipos de interfaz, se puede elegir el valor especial CAT, esto se usa para interfaces CAT no seriales que pueden controlar líneas de control de puerto serie de forma remota (OmniRig, por ejemplo).</p></body></html> - + Modulation mode selected on radio. Modo de modulación seleccionado en el equipo. - + Mode Modo - + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> <html><head/><body><p>USB suele ser el modo de modulación correcto,</p><p>a menos que la radio tenga una configuración/ajuste especial de datos o modo de paquete</p><p>para operación AFSK.</p></body></html> <html><head/><body><p>USB suele ser usualmente el modo correcto,</p><p>a menos que la radio tenga un ajuste de modo especifico para "data o packet"</p><p>para operación en AFSK.</p></body></html> - + US&B US&B - + Don't allow the program to set the radio mode (not recommended but use if the wrong mode or bandwidth is selected). @@ -6137,25 +6239,25 @@ o se selecciona el ancho de banda). o ancho de banda es seleccionado). - - + + None Ninguno - + If this is available then it is usually the correct mode for this program. Si está disponible, generalmente es el modo correcto para este programa. Si está disponible, entonces usualmente es el modo correcto para este programa. - + Data/P&kt Datos/P&kt Data/P&kt - + Some radios can select the audio input using a CAT command, this setting allows you to select which audio input will be used (if it is available then generally the Rear/Data option is best). @@ -6167,56 +6269,56 @@ este ajuste permite seleccionar qué entrada de audio se usará (si está disponible, generalmente la opción "Parte posterior" es la mejor). - + Transmit Audio Source Fuente de audio de transmisión - + Rear&/Data Parte posterior/Datos Parte posterior - + &Front/Mic &Frontal/Micrófono - + Rig: Equipo: - + Poll Interval: Intervalo de sondeo: - + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> <html><head/><body><p>Intervalo de sondeo al equipo para el estado. Intervalos más largos significarán que los cambios en el equipo tardarán más en detectarse.</p></body></html> <html><head/><body><p>Intervalo para sondeo del estado del equipo. Intervalos más largos significará que los cambios en el equipo tardarán más en detectarse.</p></body></html> - + s s - + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> <html><head/><body><p>Intenta conectarte al equipo con esta configuración.</p><p>El botón se pondrá verde si la conexión es correcta o rojo si hay un problema.</p></body></html> <html><head/><body><p>Prueba de conexión al equipo por CAT utilizando esta configuración.</p><p>El botón cambiará a verde si la conexión es correcta o rojo si hay un problema.</p></body></html> - + Test CAT Test de CAT Probar CAT - + Attempt to activate the transmitter. Click again to deactivate. Normally no power should be output since there is no audio being generated at this time. @@ -6237,50 +6339,50 @@ Verifica que cualquier indicación de TX en tu equipo y/o en el interfaz de radio se comporte como se esperaba. - + Test PTT Test de PTT Probar PTT - + Split Operation Operación dividida (Split) Operación en "Split" - + Fake It Fíngelo Fingir "Split" - + Rig Equipo - + A&udio A&udio - + Audio interface settings Ajustes del interfaz de audio - + Souncard Tarjeta de Sonido - + Soundcard Tarjeta de Sonido - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -6298,48 +6400,48 @@ de lo contrario transmitirá cualquier sonido del sistema generado durante los períodos de transmisión. - + Select the audio CODEC to use for receiving. Selecciona el CODEC de audio que se usará para recibir. Selecciona el CODEC a usar para recibir. - + &Input: &Entrada: - + Select the channel to use for receiving. Selecciona el canal a usar para recibir. Seleccione el canal a usar para recibir. - - + + Mono Mono - - + + Left Izquierdo - - + + Right Derecho - - + + Both Ambos - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -6354,118 +6456,123 @@ canales, entonces, generalmente debe seleccionar "Mono" o "Ambos". - + + Enable VHF and submode features + + + + Ou&tput: &Salida: - - + + Save Directory Guardar directorio Directorio "save" - + Loc&ation: Ubic&ación: - + Path to which .WAV files are saved. Ruta en la que se guardan los archivos .WAV. - - + + TextLabel Etiqueta de texto - + Click to select a different save directory for .WAV files. Haz clic para seleccionar un directorio de guardado diferente para los archivos .WAV. Clic para seleccionar un directorio "Save" diferente donde guardar los los archivos .WAV. - + S&elect S&elecciona S&eleccionar - - + + AzEl Directory Directorio AzEl - + Location: Ubicación: - + Select Seleccionar - + Power Memory By Band Memoriza la potencia por banda Recuerda la potencia por banda - + Remember power settings by band Recuerde los ajustes de potencia por banda Recuerda ajustes de potencia por banda - + Enable power memory during transmit Habilita memoria de potencia durante la transmisión - + Transmit Transmitir - + Enable power memory during tuning Habilita memoria de potencia durante la sintonización - + Tune Tono TX - + Tx &Macros Macros de T&X Macros T&X - + Canned free text messages setup Configuración de mensajes de texto libres Ajuste de mensajes de texto libre - + &Add &Añadir &Agregar - + &Delete &Borrar - + Drag and drop items to rearrange order Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items @@ -6477,42 +6584,42 @@ Clic derecho para acciones específicas del elemento. Clic, Mayús+Clic y CTRL+Clic para seleccionar elementos. - + Reportin&g Informe&s &Reportes - + Reporting and logging settings Ajuste de informes y logs Ajustes de reportes y gaurdado de logs - + Logging Registros Guardado de log - + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. El programa mostrará un cuadro de diálogo Log QSO parcialmente completado cuando envíe un mensaje de texto 73 o libre. El programa mostrará un cuadro de diálogo con datos del QSO parcialmente completados cuando envíe un 73 o mensaje de texto libre. - + Promp&t me to log QSO Regis&tra el QSO Pregun&tarme para guardar el QSO - + Op Call: Indicativo del Operador: - + Some logging programs will not accept the type of reports saved by this program. Check this option to save the sent and received reports in the @@ -6528,13 +6635,13 @@ Marca esta opción para guardar los reportes enviados y recibidos en el campo de comentarios. - + d&B reports to comments Informes de los d&B en los comentarios Guardar reportes d&B en los comentarios - + Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. Marca esta opción para forzar la eliminación de los campos @@ -6543,40 +6650,40 @@ Llamada DX y Locator/Grid DX cuando se envía un mensaje de texto 73 o libre. - + Clear &DX call and grid after logging Borrar la Llamada &DX y Locator/Grid después del registro Borrar Indicativo &DX y Locator DX después de guardado el QSO - + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> <html><head/><body><p>Algunos programas de log no aceptarán nombres de modo WSJT-X.</p></body></html> - + Con&vert mode to RTTY Con&vertir modo a RTTY - + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> <html><head/><body><p>El indicativo del operador, si es diferente del indicativo de la estación.</p></body></html> - + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> <html><head/><body><p>Marca para que los QSO's se registren automáticamente, cuando se completen.</p></body></html> <html><head/><body><p>Marca para que los QSO's se guarden automáticamente, cuando se completen.</p></body></html> - + Log automatically (contesting only) Log automático (sólo concursos) Guardar QSO automáticamente (sólo concursos) - + Network Services Servicios de red @@ -6596,185 +6703,185 @@ Esto se utiliza para el análisis de "reverse beacon", lo cual es muy para evaluar la propagación y el rendimiento del sistema. - + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> - + Enable &PSK Reporter Spotting Activa &PSK Reporter Activar "spotting" en &PSK Reporter - + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + Use TCP/IP connection - + UDP Server Servidor UDP - + UDP Server: Servidor UDP: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>"Hostname" del servicio de red para recibir decodificaciones.</p><p>Formatos:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4 multicast</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6 multicast</li></ul><p>Borrar este campo deshabilitará la transmisión de actualizaciones de estado UDP.</p></body></html> - + UDP Server port number: Número de puerto del servidor UDP: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p>Introduce el número de puerto del servicio del servidor UDP al que WSJT-X debe enviar actualizaciones. Si esto es cero, no se transmitirán actualizaciones.</p></body></html> <html><head/><body><p>Escriba el número del puerto del servidor UDP al que WSJT-X debe enviar actualizaciones. Si este es cero, no se transmitirán actualizaciones.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p>Con esto habilitado, WSJT-X aceptará ciertas solicitudes de un servidor UDP que recibe mensajes de decodificación.</p></body></html> <html><head/><body><p>Si se habilita, WSJT-X aceptará ciertas solicitudes de un servidor UDP que recibe mensajes decodificados.</p></body></html> - + Accept UDP requests Aceptar solicitudes UDP - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p>Indica la aceptación de una solicitud UDP entrante. El efecto de esta opción varía según el sistema operativo y el administrador de ventanas, su intención es notificar la aceptación de una solicitud UDP entrante, incluso si esta aplicación está minimizada u oculta.</p></body></html> <html><head/><body><p>Indica la aceptación de una solicitud UDP entrante. El efecto de esta opción varía según el sistema operativo y el "Window Manager", su intención es notificar la aceptación de una solicitud UDP entrante, incluso si esta aplicación está minimizada u oculta.</p></body></html> - + Notify on accepted UDP request Notificar sobre una solicitud UDP aceptada - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p>Restaura la ventana minimizada si se acepta una solicitud UDP.</p></body></html> - + Accepted UDP request restores window La solicitud UDP aceptada restaura la ventana Una solicitud UDP aceptada restaura la ventana - + Secondary UDP Server (deprecated) Servidor UDP secundario (en desuso) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p>Cuando se marca, WSJT-X transmitirá un contacto registrado en formato ADIF al nombre de host y puerto configurados. </p></body></html> <html><head/><body><p>Si se marca , WSJT-X difundirá el contacto guardado, en formato ADIF, al servidor y puerto configurados. </p></body></html> - + Enable logged contact ADIF broadcast Habilita la transmisión ADIF de contacto registrado Habilita transmisión ADIF de contacto guardado - + Server name or IP address: Nombre del servidor o dirección IP: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>"Hostname" del programa N1MM Logger + donde se recibirán las transmisiones ADIF UDP. Este suele ser 'localhost' o dirección IP 127.0.0.1</p><p>Formatos:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4 multicast</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6 multicast</li></ul><p>Borrar este campo deshabilitará la transmisión de información ADIF a través de UDP.</p></body></html> - + Server port number: Número de puerto del servidor: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>Introduce el número de puerto que WSJT-X debe usar para las transmisiones UDP de información de registro ADIF. Para N1MM Logger +, este valor debe ser 2333. Si es cero, no se transmitirán actualizaciones.</p></body></html> <html><head/><body><p>Escriba el número de puerto que WSJT-X debe usar para las transmisiones UDP del log ADIF guardado. Para N1MM Logger + este valor debe ser 2333. Si es cero, no se transmitirán actualizaciones.</p></body></html> - + Frequencies Frecuencias - + Default frequencies and band specific station details setup Configuración predeterminada de las frecuencias y banda con detalles específicos de la estación Ajustes de frecuencias predeterminada y detalles de especificos de la banda - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>Ver&quot;Calibración de Frecuencia&quot;en la Guía de usuario de WSJT-X para obtener detalles sobre cómo determinar estos parámetros para tú equipo.</p></body></html> <html><head/><body><p>Ver "Calibración de Frecuencia" en la Guía de usuario de WSJT-X para obtener detalles sobre cómo determinar estos parámetros para el equipo.</p></body></html> - + Frequency Calibration Calibración de frecuencia - + Slope: Pendiente: Cadencia: - + ppm ppm - + Intercept: Interceptar: Intercepción: - + Hz Hz - + Working Frequencies Frecuencias de trabajo - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>Haz clic derecho para mantener la lista de frecuencias de trabajo.</p></body></html> <html><head/><body><p>Clic derecho para mantener la lista de frecuencias de trabajo.</p></body></html> - + Station Information Información de la estación - + Items may be edited. Right click for insert and delete options. Se pueden editar ítems. @@ -6783,373 +6890,409 @@ Haz clic derecho para insertar y eliminar opciones. Clic derecho para insertar y eliminar opciones. - + Colors Colores - + Decode Highlightling Resaltar Decodificado - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> <html><head/><body><p>Haz clic para escanear el archivo ADIF wsjtx_log.adi nuevamente para obtener información trabajada antes</p></body></html> <html><head/><body><p>Clic para procesar nuevamente el archivo ADIF wsjtx_log.adi para obtener información de estaciones trabajadas anteriormente</p></body></html> - + Rescan ADIF Log Escaneo de nuevo el log ADIF Procesar nuevamente log ADIF - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>Presiona para restablecer todos los elementos resaltados arriba a los valores y prioridades predeterminados.</p></body></html> - + Reset Highlighting Restablecer resaltado - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body><p>Activa o desactiva las casillas de verificación y haz clic con el botón derecho en un elemento para cambiar o desactivar el color del primer plano, el color de fondo o restablecer el elemento a los valores predeterminados. Arrastra y suelta los elementos para cambiar su prioridad, mayor en la lista es mayor en prioridad.</p><p>Ten en cuenta que cada color de primer plano o de fondo puede estar configurado o no, lo que significa que no está asignado para ese tipo de elemento y pueden aplicarse elementos de menor prioridad.</p></body></html> <html><head/><body><p>Activar o desactivar usando las casillas de verificación. Clic con el botón derecho en un elemento para cambiar o volver al color predeterminado tanto de las letras como el color de fondo. Arrastrar y soltar los elementos para cambiar su prioridad; los primeros en la lista tienen mayor prioridad.</p><p>Cada color de letras o fondo puede estar configurado o no, no configurado significa que no está asignado para este elemento y pueden aplicarse elementos de menor prioridad.</p></body></html> - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>Marca para indicar nuevas entidades DXCC, Locator y indicativos por modo.</p></body></html> <html><head/><body><p>Marcar para indicar nueva entidad DXCC, locator e indicativos por modo.</p></body></html> - + Highlight by Mode Destacar por modo - + Include extra WAE entities Incluir entidades WAE adicionales - + Check to for grid highlighting to only apply to unworked grid fields Marca para que el resaltado de Locator sólo se aplique a los campos de Locator no trabajados Marcar para que el resaltado de locator sólo se aplique a los no trabajados - + Only grid Fields sought Solo campos de Locator/Grid buscados Solo campos de locator buscados - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>Controles para la búsqueda de usuarios de Logbook of the World (LoTW).</p></body></html> <html><head/><body><p>Búsqueda de usuarios de LoTW.</p></body></html> - + Logbook of the World User Validation Validación de Usuario de Logbook of the World (LoTW) Validación de usuario de LoTW - + Users CSV file URL: URL del archivo CSV de los usuarios: Enlace del archivo CSV de los usuarios: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body><p>URL del último archivo de datos de fechas y horas de carga de ARRL LotW que se utiliza para resaltar decodificaciones de estaciones que se sabe que cargan su archivo de log a LotW.</p></body></html> <html><head/><body><p>Enlace del último archivo con fechas y horas de subidas de usuarios del LoTW, que se utiliza para resaltar decodificaciones de estaciones que suben su log al LoTW.</p></body></html> - + + URL + + + + https://lotw.arrl.org/lotw-user-activity.csv https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>Presiona este botón para obtener el último archivo de datos de fecha y hora de carga de los usuarios de LotW.</p></body></html> <html><head/><body><p>Presionar este botón para descargar archivo de LoTW con la última fecha/hora de subida de los usuarios.</p></body></html> - + Fetch Now Buscar ahora - + Age of last upload less than: Edad de la última carga inferior a: Fecha última subida a LoTW inferior a: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p>Ajusta este cuadro de selección para establecer el umbral de edad de la última fecha de carga del usuario de LotW que se acepta como usuario actual de LotW.</p></body></html> <html><head/><body><p>Ajusta este cuadro de selección para establecer la última fecha de subida de logs del usuario de LoTW.</p></body></html> - + days dias - + Advanced Avanzado - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>Parámetros seleccionables por el usuario para decodificación JT65 VHF/UHF/Microondas.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters Parámetros de decodificación JT65 VHF/UHF/Microondas Parámetros decodificación JT65 VHF/UHF/Microondas - + Random erasure patterns: Patrones de borrado aleatorio: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p>El número máximo de patrones de borrado para el decodificador estoico de decisión suave Reed Solomon es 10^(n/2).</p></body></html> <html><head/><body><p>El número máximo de patrones de borrado para el decodificador linear Reed Solomon es 10^(n/2).</p></body></html> - + Aggressive decoding level: Nivel de decodificación agresivo: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>Los niveles más altos aumentarán la probabilidad de decodificación, pero también aumentarán la probabilidad de una decodificación falsa.</p></body></html> <html><head/><body><p>Los niveles más altos aumentarán la probabilidad de decodificación, pero también aumentarán la probabilidad de una falsa decodificación.</p></body></html> - + Two-pass decoding Decodificación de dos pasos Decodificación en dos pasos - + Special operating activity: Generation of FT4, FT8, and MSK144 messages Actividad operativa especial: generación de mensajes FT4, FT8 y MSK144 Actividad operativa especial: Generación de mensajes FT4, FT8 y MSK144 - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: operador Hound llamando al DX.</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: Operador "Hound" llamando al DX.</p></body></html> - + + Hound "Hound" - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>Concursos norteamericanos de VHF/UHF/microondas y otros en los que se requiere un locator de 4 caracteres.</p></body></html> <html><head/><body><p>Concursos VHF/UHF/Microondas de norteamérica y otros en los cuales se requiere un intercambio de locator de 4 caracteres.</p></body></html> - + + NA VHF Contest Concurso NA VHF - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: operador FOX (DXpedition).</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: Operador "FOX" (DXpedition).</p></body></html> - + + Fox Fox "Fox" - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>Concursos europeos de VHF y superiores que requieren un informe de señal, número de serie y locator de 6 caracteres.</p></body></html> <html><head/><body><p>Concursos europeos de VHF y concursos que requieran reporte de señal, número de serie y locator de 6 caracteres.</p></body></html> - + + EU VHF Contest Concurso EU de VHF Concurso EU VHF - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>Resumen de ARRL RTTY y concursos similares. El intercambio es el estado de EE.UU., La provincia canadiense o &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY Roundup y concursos similares. Intercambio, estado de EE.UU., provincia de Canadá o "DX".</p></body></html> - + + R T T Y Roundup + + + + RTTY Roundup messages Mensajes de resumen de RTTY Mesnajes para e lRTTY Roundup - + + RTTY Roundup exchange + + + + RTTY RU Exch: Intercambio RTTY RU: - + NJ NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>Intercambio de ARRL Field Day: número de transmisores, clase y sección ARRL/RAC o &quot;DX&quot;.</p></body></html> <html><head/><body><p>Intercambiio para el ARRL Field Day: número de transmisores, "Class" y sección ARRL/RAC o "DX".</p></body></html> - + + A R R L Field Day + + + + ARRL Field Day ARRL Field Day - + + Field Day exchange + + + + FD Exch: Intercambio FD: - + 6A SNJ 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>Concurso World-Wide Digi-mode</p><p><br/></p></body></html> <html><head/><body><p>Concurso World-Wide Digi DX</p><p><br/></p></body></html> - + + WW Digital Contest + + + + WW Digi Contest Concurso WW Digi Concurso WW Digi DX - + Miscellaneous Diverso Otros - + Degrade S/N of .wav file: Degradar S/N del archivo .wav: - - + + For offline sensitivity tests Para pruebas de sensibilidad fuera de línea - + dB dB - + Receiver bandwidth: Ancho de banda del receptor: - + Hz Hz - + Tx delay: Retardo de TX: - + Minimum delay between assertion of PTT and start of Tx audio. Retraso mínimo entre el PTT y el inicio del audio TX. - + s s - + + Tone spacing Espaciado de tono - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>Genera el audio de TX con el doble del espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 2 antes de generar RF.</p></body></html> <html><head/><body><p>Genera audio de TX con el doble del espaciado del tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 2 antes de generar RF.</p></body></html> - + x 2 x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>Genera el audio de TX con cuatro veces el espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 4 antes de generar RF.</p></body></html> <html><head/><body><p>Genera audio de TX con cuatro veces el espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 4 antes de generar RF.</p></body></html> - + x 4 x 4 - + + Waterfall spectra Espectros de la cascada Espectro de la cascada (waterfall) - + Low sidelobes Lóbulos laterales bajos - + Most sensitive Más sensible - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p>Descartar (Cancelar) o aplicar (OK) cambios de configuración/ajuste que incluyen</p><p>restablecer la interfaz de radio y aplicar cualquier cambio en la tarjeta de sonido</p></body></html> <html><head/><body><p>"Aceptar" o "Cancelar" cambios de configuración, incluyendo el restablecer la interface de radio y aplicar cualquier cambio en la tarjeta de sonido</p></body></html> @@ -7265,12 +7408,12 @@ Clic derecho para insertar y eliminar opciones. No se puede crear un segmento de memoria compartida - + Sub-process error - + Failed to close orphaned jt9 process diff --git a/translations/wsjtx_it.ts b/translations/wsjtx_it.ts index 6b6c95084..7aa135f61 100644 --- a/translations/wsjtx_it.ts +++ b/translations/wsjtx_it.ts @@ -130,17 +130,17 @@ Dati Astronomici - + Doppler Tracking Error Errore Tracciamento Doppler - + Split operating is required for Doppler tracking Operazione Split richiesta per il tracciamento Doppler - + Go to "Menu->File->Settings->Radio" to enable split operation Vai a "Menu->File->Configurazione->Radio" per abilitare l'operazione split @@ -148,32 +148,32 @@ Bands - + Band name Nome Banda - + Lower frequency limit Limite frequenza minore - + Upper frequency limit Limite frequenza superiore - + Band Banda - + Lower Limit Limite inferiore - + Upper Limit Limite superiore @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete &Elimina - - + + &Insert ... &Inserisci ... - + Failed to create save directory Impossibile creare la directory di salvataggio - + path: "%1% Percorso: "%1" - + Failed to create samples directory Impossibile creare la directory dei campioni - + path: "%1" Percorso: "%1" - + &Load ... &Carica ... - + &Save as ... &Salva come ... - + &Merge ... &Unisci ... - + &Reset &Ripristina - + Serial Port: Porta Seriale: - + Serial port used for CAT control Porta Seriale usata per il controllo CAT - + Network Server: Server di rete: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -452,12 +452,12 @@ Formati: [IPv6-address]: porta - + USB Device: Dispositivo USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -468,152 +468,157 @@ Formato: [VID [: PID [: VENDOR [: PRODOTTI]]]] - + + Invalid audio input device Dispositivo di input audio non valido - Invalid audio out device - Dispositivo di uscita audio non valido + Dispositivo di uscita audio non valido - + + Invalid audio output device + + + + Invalid PTT method Metodo PTT non valido - + Invalid PTT port Porta PTT non valida - - + + Invalid Contest Exchange Scambio Contest non valido - + You must input a valid ARRL Field Day exchange È necessario inserire uno scambioField Day ARRL valido - + You must input a valid ARRL RTTY Roundup exchange È necessario inserire uno scambio Roundup RTTY ARRL valido - + Reset Decode Highlighting Ripristina l'evidenziazione della decodifica - + Reset all decode highlighting and priorities to default values Ripristina tutti i valori di evidenziazione e priorità della decodifica sui valori predefiniti - + WSJT-X Decoded Text Font Chooser Selezionatore font testo decodificato WSJT-X - + Load Working Frequencies Carica frequenze di lavoro - - - + + + Frequency files (*.qrg);;All files (*.*) File di frequenza (*.qrg);;Tutti i file (*.*) - + Replace Working Frequencies Sostituisci le frequenze di lavoro - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? Sei sicuro di voler scartare le tue attuali frequenze di lavoro e sostituirle con quelle caricate? - + Merge Working Frequencies Unisci le frequenze di lavoro - - - + + + Not a valid frequencies file Non è un file di frequenze valido - + Incorrect file magic Magic file errato - + Version is too new La versione è troppo nuova - + Contents corrupt Contenuto corrotto - + Save Working Frequencies Salva frequenze di lavoro - + Only Save Selected Working Frequencies Salva solo le frequenze di lavoro selezionate - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. Sei sicuro di voler salvare solo le frequenze di lavoro che sono attualmente selezionate? Fai clic su No per salvare tutto. - + Reset Working Frequencies Ripristina frequenze di lavoro - + Are you sure you want to discard your current working frequencies and replace them with default ones? Sei sicuro di voler scartare le tue attuali frequenze di lavoro e sostituirle con quelle predefinite? - + Save Directory Salva il direttorio - + AzEl Directory AzEl Direttorio - + Rig control error Errore di controllo rig - + Failed to open connection to rig Impossibile aprire la connessione al rig - + Rig failure Rig fallito @@ -1442,22 +1447,22 @@ Errore: %2 - %3 FrequencyDialog - + Add Frequency Aggiungi frequenza - + IARU &Region: &Regione IARU: - + &Mode: &Modo: - + &Frequency (MHz): &Frequenza (MHz): @@ -1465,26 +1470,26 @@ Errore: %2 - %3 FrequencyList_v2 - - + + IARU Region Regione IARU - - + + Mode Modo - - + + Frequency Frequenza - - + + Frequency (MHz) Frequenza (MHz) @@ -2075,12 +2080,13 @@ Errore (%2):%3 - - - - - - + + + + + + + Band Activity Attività di Banda @@ -2092,11 +2098,12 @@ Errore (%2):%3 - - - - - + + + + + + Rx Frequency Frequenza Rx @@ -2131,122 +2138,137 @@ Errore (%2):%3 Attiva / disattiva il monitoraggio - + &Monitor &Monitor - + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> <html><head/><body><p>Cancella la finestra a destra. Fare doppio clic per cancellare entrambe le finestre.</p></body></html> - + Erase right window. Double-click to erase both windows. Cancella la finestra a destra. Fare doppio clic per cancellare entrambe le finestre. - + &Erase &Cancella - + <html><head/><body><p>Clear the accumulating message average.</p></body></html> <html><head/><body><p>Cancella la media dei messaggi accumulati.</p></body></html> - + Clear the accumulating message average. Cancella la media dei messaggi accumulati. - + Clear Avg Cancella media - + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> <html><head/><body><p>Decodifica il periodo Rx più recente alla frequenza QSO</p></body></html> - + Decode most recent Rx period at QSO Frequency Decodifica il periodo Rx più recente alla frequenza QSO - + &Decode &Decodifica - + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> <html><head/><body> <p> Attiva / Disattiva Auto-Tx </p> </body> </html> - + Toggle Auto-Tx On/Off Attiva / Disattiva Auto-Tx - + E&nable Tx &Abilita Tx - + Stop transmitting immediately Interrompere immediatamente la trasmissione - + &Halt Tx &Arresta Tx - + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> <html><head/><body><p>Attiva / disattiva un tono Tx puro</p></body></html> - + Toggle a pure Tx tone On/Off Attiva / disattiva un tono Tx puro - + &Tune &Accorda - + Menus Menù - + + Percentage of minute sequences devoted to transmitting. + + + + + Prefer Type 1 messages + + + + + <html><head/><body><p>Transmit during the next sequence.</p></body></html> + + + + USB dial frequency Frequenza di chiamata USB - + 14.078 000 14.078 000 - + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> <html><head/><body><p>30dB consigliato quando è presente solo rumore<br/>Verde quando buono<br/>Rosso quando può verificarsi distorsione<br/>Giallo quando troppo basso</p></body></html> - + Rx Signal Segnale Rx - + 30dB recommended when only noise present Green when good Red when clipping may occur @@ -2257,338 +2279,344 @@ Rosso quando può verificarsi distorsione Giallo quando troppo basso - + DX Call Nominativo DX - + DX Grid Grid DX - + Callsign of station to be worked Nominativo statione da collegare - + Search for callsign in database Ricerca nominativo nel database - + &Lookup &Ricerca - + Locator of station to be worked Localizzatore della stazione da lavorare - + Az: 251 16553 km Az: 251 16553 km - + Add callsign and locator to database Aggiungi nominativo e localizzatore al database - + Add Aggiungi - + Pwr Potenza - + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> <html><head/><body><p>Se arancione o rosso si è verificato un errore nel controllo rig, fare clic per ripristinare e leggere la frequenza di sintonia. S implica la modalità split.</p></body></html> - + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. Se arancione o rosso si è verificato un errore nel controllo rig, fare clic per ripristinare e leggere la frequenza di sintonia. S implica la modalità split. - + ? ? - + Adjust Tx audio level Regola il livello audio Tx - + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> <html><head/><body><p>Seleziona la banda operativa o inserisci la frequenza in MHz o inserisci l'incremento di kHz seguito da k.</p></body></html> - + Frequency entry Immetti la frequenza - + Select operating band or enter frequency in MHz or enter kHz increment followed by k. Seleziona la banda operativa o inserisci la frequenza in MHz o inserisci l'incremento di kHz seguito da k. - + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> <html><head/><body><p align="center"> 2015 Giu 17 </p><p align="center"> 01:23:45 </p></body></html> - + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> <html><head/><body><p>Spuntare la casella per mantenere fissa la frequenza Tx quando si fa doppio clic sul testo decodificato.</p></body></html> - + Check to keep Tx frequency fixed when double-clicking on decoded text. Spuntare la casella per mantenere fissa la frequenza Tx quando si fa doppio clic sul testo decodificato. - + Hold Tx Freq Mantenere premuto Tx Freq - + Audio Rx frequency Frequenza audio Rx - - - + + + + + Hz Hz - + + Rx Rx - + + Set Tx frequency to Rx Frequency Impostare la frequenza Tx su Frequenza Rx - + - + Frequency tolerance (Hz) Tolleranza di frequenza (Hz) - + + F Tol F Tol - + + Set Rx frequency to Tx Frequency Impostare la frequenza Rx su Frequenza Tx - + - + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> <html><head/><body><p>Sincronizzazione della soglia. I numeri più bassi accettano segnali di sincronizzazione più deboli.</p></body></html> - + Synchronizing threshold. Lower numbers accept weaker sync signals. Sincronizzazione della soglia. I numeri più bassi accettano segnali di sincronizzazione più deboli. - + Sync Sinc - + <html><head/><body><p>Check to use short-format messages.</p></body></html> <html><head/><body><p>Selezionare per utilizzare i messaggi di formato breve.</p></body></html> - + Check to use short-format messages. Selezionare per utilizzare i messaggi di formato breve. - + Sh Sh - + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> <html><head/><body><p>Selezionare per abilitare le modalità rapide JT9</p></body></html> - + Check to enable JT9 fast modes Selezionare per abilitare le modalità rapide JT9 - - + + Fast Veloce - + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> <html><head/><body><p>Selezionare per abilitare il sequenziamento automatico dei messaggi Tx in base ai messaggi ricevuti.</p></body></html> - + Check to enable automatic sequencing of Tx messages based on received messages. Selezionare per abilitare il sequenziamento automatico dei messaggi Tx in base ai messaggi ricevuti. - + Auto Seq Auto Seq - + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> <html><head/><body><p>Selezionare per chiamare il primo risponditore decodificato al mio CQ.</p></body></html> - + Check to call the first decoded responder to my CQ. Selezionare per chiamare il primo risponditore decodificato al mio CQ. - + Call 1st Chiama il 1º - + Check to generate "@1250 (SEND MSGS)" in Tx6. Selezionare per generare "@1250 (INVIO MSGS)" in Tx6. - + Tx6 Tx6 - + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> <html><head/><body><p>Selezionare su Tx in minuti o sequenze di numero pari, iniziando da 0; deselezionare le sequenze dispari.</p></body></html> - + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. Selezionare su Tx in minuti o sequenze di numero pari, iniziando da 0; deselezionare le sequenze dispari. - + Tx even/1st Tx pari/1º - + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> <html><head/><body> <p> Frequenza di chiamata CQ in kHz sopra l'attuale MHz </p> </body> </html> - + Frequency to call CQ on in kHz above the current MHz Frequenza per chiamare CQ in kHz sopra l'attuale MHz - + Tx CQ Tx CQ - + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> <html><head/><body><p>Spunta questo per chiamare CQ sulla frequenza &quot;Tx CQ&quot;.L' Rx sarà sulla frequenza corrente e il messaggio CQ includerà la frequenza Rx corrente in modo che i chiamanti sappiano su quale frequenza rispondere. Non disponibile per i possessori di nominativi non standard.</p></body></html> - + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. Spunta questo per chiamare CQ sulla frequenza "Tx CQ". Rx sarà sulla frequenza corrente e il messaggio CQ includerà la frequenza Rx corrente in modo che i chiamanti sappiano su quale frequenza rispondere. Non disponibile per i possessori di nominativi non standard. - + Rx All Freqs Rx Tutte le freq - + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> <html><head/><body> <p> La modalità secondaria determina la spaziatura dei toni; A è il più stretto. </p> </body> </html> - + Submode determines tone spacing; A is narrowest. La modalità secondaria determina la spaziatura dei toni; A è il più stretto. - + Submode Modalità Secondaria - - + + Fox Fox - + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> <html><head/><body><p>Spuntare per monitorare i messaggi Sh.</p></body></html> - + Check to monitor Sh messages. Spuntare per monitorare i messaggi Sh. - + SWL SWL - + Best S+P Migliore S+P - + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> <html><head/><body><p>Seleziona questa opzione per avviare la registrazione dei dati di calibrazione.<br/>Mentre la misurazione della correzione della calibrazione è disabilitata.<br/>Se non selezionato puoi visualizzare i risultati della calibrazione.</p></body></html> - + Check this to start recording calibration data. While measuring calibration correction is disabled. When not checked you can view the calibration results. @@ -2597,204 +2625,206 @@ Durante la misurazione, la correzione della calibrazione è disabilitata. Se non selezionato, è possibile visualizzare i risultati della calibrazione. - + Measure Misura - + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> <html><head/><body><p>Rapporto segnale: rapporto segnale-rumore nella larghezza di banda di riferimento di 2500 Hz (dB).</p></body></html> - + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). Rapporto segnale: rapporto segnale-rumore nella larghezza di banda di riferimento di 2500 Hz (dB). - + Report Rapporto - + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> <html><head/><body><p>TX/RX o Lunghezza della sequenza di calibrazione della frequenza</p></body></html> - + Tx/Rx or Frequency calibration sequence length TX/RX o Lunghezza della sequenza di calibrazione della frequenza - + + s s - + + T/R T/R - + Toggle Tx mode Attiva / disattiva la modalità Tx - + Tx JT9 @ Tx JT9 @ - + Audio Tx frequency Frequenza Tx audio - - + + Tx Tx - + Tx# Tx# - + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> <html><head/><body><p>Fare doppio clic su un altro chiamante per mettere in coda quella chiamata per il QSO successivo.</p></body></html> - + Double-click on another caller to queue that call for your next QSO. Fare doppio clic su un altro chiamante per mettere in coda quella chiamata per il QSO successivo. - + Next Call Prossima chiamata - + 1 1 - - - + + + Send this message in next Tx interval Invia questo messaggio nel prossimo intervallo Tx - + Ctrl+2 Ctrl+2 - + <html><head/><body><p>Send this message in next Tx interval</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>Invia questo messaggio nel prossimo intervallo Tx </p><p>Fare doppio clic per alternare 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> - + Send this message in next Tx interval 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) Invia questo messaggio nel prossimo intervallo Tx Fare doppio clic per attivare / disattivare l'uso del messaggio Tx1 per avviare un QSO con una stazione (non consentito per i detentori di chiamate composte di tipo 1) - + Ctrl+1 Ctrl+1 - - - - + + + + Switch to this Tx message NOW Passa a questo messaggio Tx ADESSO - + Tx &2 Tx &2 - + Alt+2 Alt+2 - + <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> - + Switch to this Tx message NOW 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) Passa a questo messaggio Tx ADESSO Fare doppio clic per attivare / disattivare l'uso del messaggio Tx1 per avviare un QSO con una stazione (non consentito per i detentori di chiamate composte di tipo 1) - + Tx &1 Tx &1 - + Alt+1 Alt+1 - + Ctrl+6 Ctrl+6 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>Invia questo messaggio nel prossimo intervallo Tx</p><p>Fare doppio clic per ripristinare il messaggio 73 standard</p></body></html> - + Send this message in next Tx interval Double-click to reset to the standard 73 message Invia questo messaggio nel prossimo intervallo Tx Fare doppio clic per ripristinare il messaggio 73 standard - + Ctrl+5 Ctrl+5 - + Ctrl+3 Ctrl+3 - + Tx &3 Tx &3 - + Alt+3 Alt+3 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>Invia questo messaggio nel prossimo intervallo Tx</p><p>Fare doppio clic per alternare tra i messaggi RRR e RR73 in Tx4 (non consentito per i possessori di chiamate composte di tipo 2)</p><p>I messaggi RR73 devono essere utilizzati solo quando si è ragionevolmente sicuri che non saranno necessarie ripetizioni dei messaggi</p></body></html> - + Send this message in next Tx interval Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required @@ -2803,17 +2833,17 @@ Fare doppio clic per alternare tra i messaggi RRR e RR73 in Tx4 (non consentito I messaggi RR73 devono essere utilizzati solo quando si è ragionevolmente sicuri che non saranno necessarie ripetizioni dei messaggi - + Ctrl+4 Ctrl+4 - + <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> - + Switch to this Tx message NOW Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required @@ -2822,65 +2852,64 @@ Fare doppio clic per alternare tra i messaggi RRR e RR73 in Tx4 (non consentito I messaggi RR73 devono essere utilizzati solo quando si è ragionevolmente sicuri che non saranno necessarie ripetizioni dei messaggi - + Tx &4 Tx &4 - + Alt+4 Alt+4 - + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>Passa a questo messaggio Tx ADESSO</p><p>Fai doppio clic per ripristinare il messaggio 73 standard</p></body></html> - + Switch to this Tx message NOW Double-click to reset to the standard 73 message Passa a questo messaggio Tx ADESSO Fare doppio clic per ripristinare il messaggio 73 standard - + Tx &5 Tx &5 - + Alt+5 Alt+5 - + Now Now - + Generate standard messages for minimal QSO Genera messaggi standard per un QSO minimo - + Generate Std Msgs Genera Std Msgs - + Tx &6 Tx &6 - + Alt+6 Alt+6 - - + Enter a free text message (maximum 13 characters) or select a predefined macro from the dropdown list. Press ENTER to add the current text to the predefined @@ -2891,1074 +2920,1099 @@ Premere INVIO per aggiungere il testo corrente al predefinito elenco. L'elenco può essere gestito in Impostazioni (F2). - + Queue up the next Tx message Accoda il prossimo messaggio Tx - + Next Prossimo - + 2 2 - + + FST4W + + + Calling CQ - Chiamando CQ + Chiamando CQ - Generate a CQ message - Genera un messaggio CQ + Genera un messaggio CQ - - - + + CQ CQ - Generate message with RRR - Genera un messaggio con RRR + Genera un messaggio con RRR - RRR - RRR + RRR - Generate message with report - Genera un messaggio con rapporto + Genera un messaggio con rapporto - dB - dB + dB - Answering CQ - Rispondere al CQ + Rispondere al CQ - Generate message for replying to a CQ - Genera messaggio di risposta al CQ + Genera messaggio di risposta al CQ - - + Grid Grid - Generate message with R+report - Genera messaggio con R+rapporto + Genera messaggio con R+rapporto - R+dB - R+dB + R+dB - Generate message with 73 - Genera messaggio con 73 + Genera messaggio con 73 - 73 - 73 + 73 - Send this standard (generated) message - Invia questo messaggio standard (generato) + Invia questo messaggio standard (generato) - Gen msg - Gen msg + Gen msg - Send this free-text message (max 13 characters) - Invia questo messaggio di testo libero (massimo 13 caratteri) + Invia questo messaggio di testo libero (massimo 13 caratteri) - Free msg - Msg libero + Msg libero - 3 - 3 + 3 - + Max dB Max dB - + CQ AF CQ AF - + CQ AN CQ AN - + CQ AS CQ AS - + CQ EU CQ EU - + CQ NA CQ NA - + CQ OC CQ OC - + CQ SA CQ SA - + CQ 0 CQ 0 - + CQ 1 CQ 1 - + CQ 2 CQ 2 - + CQ 3 CQ 3 - + CQ 4 CQ 4 - + CQ 5 CQ 5 - + CQ 6 CQ 6 - + CQ 7 CQ 7 - + CQ 8 CQ 8 - + CQ 9 CQ 9 - + Reset Ripristina - + N List N List - + N Slots N Slots - - + + + + + + + Random Casuale - + Call Nominativo - + S/N (dB) S/N (dB) - + Distance Distanza - + More CQs Più CQs - Percentage of 2-minute sequences devoted to transmitting. - Percentuale di sequenze di 2 minuti dedicate alla trasmissione. + Percentuale di sequenze di 2 minuti dedicate alla trasmissione. - + + % % - + Tx Pct Tx Pct - + Band Hopping Band Hopping - + Choose bands and times of day for band-hopping. Scegli le fasce e gli orari del giorno per il band-hopping. - + Schedule ... Programma ... + 1/2 - 1/2 + 1/2 + 2/2 - 2/2 + 2/2 + 1/3 - 1/3 + 1/3 + 2/3 - 2/3 + 2/3 + 3/3 - 3/3 + 3/3 + 1/4 - 1/4 + 1/4 + 2/4 - 2/4 + 2/4 + 3/4 - 3/4 + 3/4 + 4/4 - 4/4 + 4/4 + 1/5 - 1/5 + 1/5 + 2/5 - 2/5 + 2/5 + 3/5 - 3/5 + 3/5 + 4/5 - 4/5 + 4/5 + 5/5 - 5/5 + 5/5 + 1/6 - 1/6 + 1/6 + 2/6 - 2/6 + 2/6 + 3/6 - 3/6 + 3/6 + 4/6 - 4/6 + 4/6 + 5/6 - 5/6 + 5/6 + 6/6 - 6/6 + 6/6 - + Upload decoded messages to WSPRnet.org. Carica messaggi decodificati su WSPRnet.org. - + Upload spots Carica spot - + <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> - + 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. + + + Quick-Start Guide to FST4 and FST4W + + + + + FST4 + + FT240W FT240W - Prefer type 1 messages - Preferisci i messaggi di tipo 1 + Preferisci i messaggi di tipo 1 - + No own call decodes Nessuna decodifica del proprio nominativo - Transmit during the next 2-minute sequence. - Trasmettere durante la sequenza di 2 minuti successiva. + Trasmettere durante la sequenza di 2 minuti successiva. - + Tx Next Tx Successiva - + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. Imposta la potenza Tx in dBm (dB sopra 1 mW) come parte del tuo messaggio WSPR. - + + NB + + + + File File - + View Vista - + Decode Decodificare - + Save Salva - + Help Aiuto - + Mode Modo - + Configurations Configurazioni - + Tools Strumenti - + Exit Uscita - Configuration - Configurazione + Configurazione - F2 - F2 + F2 - + About WSJT-X Informazioni su WSJT-X - + Waterfall Display a cascata - + Open Apri - + Ctrl+O Ctrl+O - + Open next in directory Apri successivo nella directory - + Decode remaining files in directory Decodifica i file rimanenti nella directory - + Shift+F6 Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir Elimina tutti i file * .wav && * .c2 nel direttorio - + None Nessuno - + Save all Salva tutto - + Online User Guide Guida per l'utente online - + Keyboard shortcuts Scorciatoie da tastiera - + Special mouse commands Comandi speciali mouse - + JT9 JT9 - + Save decoded Salva decodificato - + Normal Normale - + Deep Profondo - Monitor OFF at startup - Monitor OFF all'avvio + Monitor OFF all'avvio - + Erase ALL.TXT Cancella ALL.TXT - + Erase wsjtx_log.adi Cancella wsjtx_log.adi - Convert mode to RTTY for logging - Convertire la modalità in RTTY per la registrazione + Convertire la modalità in RTTY per la registrazione - Log dB reports to Comments - Registra rapporto dB nei commenti + Registra rapporto dB nei commenti - Prompt me to log QSO - Avvisami di registrare il QSO + Avvisami di registrare il QSO - Blank line between decoding periods - Riga vuota tra i periodi di decodifica + Riga vuota tra i periodi di decodifica - Clear DX Call and Grid after logging - Cancella chiamata DX e griglia dopo la registrazione + Cancella chiamata DX e griglia dopo la registrazione - Display distance in miles - Visualizza la distanza in miglia + Visualizza la distanza in miglia - Double-click on call sets Tx Enable - Fare doppio clic sui set di chiamate Abilita Tx + Fare doppio clic sui set di chiamate Abilita Tx - - + F7 F7 - Tx disabled after sending 73 - Tx disabilitato dopo l'invio 73 + Tx disabilitato dopo l'invio 73 - - + Runaway Tx watchdog Watchdog Tx sfuggito - Allow multiple instances - Consenti più istanze + Consenti più istanze - Tx freq locked to Rx freq - Tx freq bloccato su Rx freq + Tx freq bloccato su Rx freq - + JT65 JT65 - + JT9+JT65 JT9+JT65 - Tx messages to Rx Frequency window - Messaggi Tx alla finestra Frequenza Rx + Messaggi Tx alla finestra Frequenza Rx - Gray1 - Gray1 + Gray1 - Show DXCC entity and worked B4 status - Mostra entità DXCC e stato B4 lavorato + Mostra entità DXCC e stato B4 lavorato - + Astronomical data Dati Astronomici - + List of Type 1 prefixes and suffixes Elenco di prefissi e suffissi di tipo 1 - + Settings... Impostazioni... - + Local User Guide Guida per l'utente locale - + Open log directory Apri il direttorio del Log - + JT4 JT4 - + Message averaging Media dei messaggi - + Enable averaging Abilita Media - + Enable deep search Abilita ricerca profonda - + WSPR WSPR - + Echo Graph Grafico Eco - + F8 F8 - + Echo Eco - + EME Echo mode Modo Eco EME - + ISCAT ISCAT - + Fast Graph Grafico Veloce - + F9 F9 - + &Download Samples ... &Scarica Campioni ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>Scarica file audio di esempio che dimostrano le varie modalità.</p></body></html> - + MSK144 MSK144 - + QRA64 QRA64 - + Release Notes Note di rilascio - + Enable AP for DX Call Abilita AP per DX Call - + FreqCal FreqCal - + Measure reference spectrum Misurare lo spettro di riferimento - + Measure phase response Misura la risposta di fase - + Erase reference spectrum Cancella spettro di riferimento - + Execute frequency calibration cycle Eseguire il ciclo di calibrazione della frequenza - + Equalization tools ... Strumenti di equalizzazione ... - WSPR-LF - WSPR-LF + WSPR-LF - Experimental LF/MF mode - Modo Sperimentale LF/MF + Modo Sperimentale LF/MF - + FT8 FT8 - - + + Enable AP Abilita AP - + Solve for calibration parameters Risolvi per i parametri di calibrazione - + Copyright notice Avviso sul copyright - + Shift+F1 Shift+F1 - + Fox log Fox log - + FT8 DXpedition Mode User Guide Manuale Utente modo FT8 DXpedition - + Reset Cabrillo log ... Ripristina Cabrillo log ... - + Color highlighting scheme Schema di evidenziazione del colore - Contest Log - Log del Contest + Log del Contest - + Export Cabrillo log ... Esporta Log Cabrillo ... - Quick-Start Guide to WSJT-X 2.0 - Guida rapida per WSJT-X 2.0 + Guida rapida per WSJT-X 2.0 - + Contest log Log del Contest - + Erase WSPR hashtable Cancella hashtable WSPR - + FT4 FT4 - + Rig Control Error Errore di controllo rig - - - + + + Receiving Ricevente - + Do you want to reconfigure the radio interface? Vuoi riconfigurare l'interfaccia radio? - + + %1 (%2 sec) audio frames dropped + + + + + Audio Source + + + + + Reduce system load + + + + + Excessive dropped samples - %1 (%2 sec) audio frames dropped + + + + Error Scanning ADIF Log Errore durante la scansione del registro ADIF - + Scanned ADIF log, %1 worked before records created Log ADIF scansionato,%1 ha funzionato prima della creazione dei record - + Error Loading LotW Users Data Errore durante il caricamento dei dati degli utenti di LotW - + Error Writing WAV File Errore durante la scrittura del file WAV - + Configurations... Configurazioni... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message Messaggio - + Error Killing jt9.exe Process Errore durante l'uccisione del processo jt9.exe - + KillByName return code: %1 Codice di ritorno KillByName:%1 - + Error removing "%1" Errore durante la rimozione di "%1" - + Click OK to retry Fai clic su OK per riprovare - - + + Improper mode Modalità impropria - - + + File Open Error Errore apertura file - - - - - + + + + + Cannot open "%1" for append: %2 Impossibile aprire "%1" per aggiungere:%2 - + Error saving c2 file Errore salvataggio file c2 - + Error in Sound Input Errore nell'ingresso audio - + Error in Sound Output Errore nell'uscita audio - - - + + + Single-Period Decodes Decodifiche a periodo singolo - - - + + + Average Decodes Media Decodifiche - + Change Operator Cambio Operatore - + New operator: Nuovo operatore: - + Status File Error Errore del file di stato - - + + Cannot open "%1" for writing: %2 Impossibile aprire "%1" per la scrittura:%2 - + Subprocess Error Errore sottoprocesso - + Subprocess failed with exit code %1 Il sottoprocesso non è riuscito con il codice di uscita%1 - - + + Running: %1 %2 In esecuzione: %1 %2 - + Subprocess error Errore sottoprocesso - + Reference spectrum saved Spettro di riferimento salvato - + Invalid data in fmt.all at line %1 Dati non validi in fmt.all alla riga%1 - + Good Calibration Solution Buona soluzione di calibrazione - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3971,17 +4025,17 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Elimina misure di calibrazione - + The "fmt.all" file will be renamed as "fmt.bak" Il file "fmt.all" verrà rinominato come "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -3990,27 +4044,27 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). "Gli algoritmi, il codice sorgente, l'aspetto di WSJT-X e dei relativi programmi e le specifiche del protocollo per le modalità FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 sono Copyright (C) 2001-2020 di uno o più dei seguenti autori: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q e altri membri del WSJT Development Group. " - + No data read from disk. Wrong file format? Nessun dato letto dal disco. Formato file errato? - + Confirm Delete Conferma Eliminazione - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Sei sicuro di voler eliminare tutti i file * .wav e * .c2 in "%1"? - + Keyboard Shortcuts Scorciatoie da tastiera - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4060,12 +4114,12 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). - + Special Mouse Commands Comandi speciali mouse - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4076,7 +4130,7 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). <td><b>Click</b> to set Rx frequency.<br/> <b>Shift-click</b> to set Tx frequency.<br/> <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> - <b>Double-click</b> to also decode at Rx frequency.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> </td> </tr> <tr> @@ -4084,10 +4138,10 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> locator to Dx Grid, change Rx and Tx frequency to<br/> decoded signal's frequency, and generate standard<br/> - messages.<br/> - If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> - is your own call, Tx frequency is not changed unless <br/> - <b>Ctrl</b> is held down.<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> </td> </tr> <tr> @@ -4101,42 +4155,42 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). - + No more files to open. Niente più file da aprire. - + Spotting to PSK Reporter unavailable - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Scegli un'altra frequenza Tx. WSJT-X non trasmetterà consapevolmente un'altra modalità nella sottobanda WSPR a 30 m. - + WSPR Guard Band Banda di guardia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Scegli un'altra frequenza di composizione. WSJT-X non funzionerà in modalità Fox nelle sottobande FT8 standard. - + Fox Mode warning Avviso modalità Fox - + Last Tx: %1 Ultimo Tx:%1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4147,184 +4201,183 @@ Per fare ciò, selezionare "Attività operativa speciale" e "Contest VHF EU" sulle impostazioni | Scheda Avanzate. - + Should you switch to ARRL Field Day mode? Dovresti passare alla modalità Field Day di ARRL? - + Should you switch to RTTY contest mode? Dovresti passare alla modalità contest RTTY? - - - - + + + + Add to CALL3.TXT Aggiungi a CALL3.TXT - + Please enter a valid grid locator Inserisci un localizzatore di griglia valido - + Cannot open "%1" for read/write: %2 Impossibile aprire "%1" per lettura / scrittura:%2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 è già in CALL3.TXT, desideri sostituirlo? - + Warning: DX Call field is empty. Avviso: il campo Chiamata DX è vuoto. - + Log file error Errore nel file di registro - + Cannot open "%1" Impossibile aprire "%1" - + Error sending log to N1MM Errore durante l'invio del Log a N1MM - + Write returned "%1" Scrivi ha restituito "%1" - + Stations calling DXpedition %1 Stazioni che chiamano la DXpedition %1 - + Hound (Hound=Cane da caccia) Hound - + Tx Messages Messaggi Tx - - - + + + Confirm Erase Conferma Cancella - + Are you sure you want to erase file ALL.TXT? Sei sicuro di voler cancellare il file ALL.TXT? - - + + Confirm Reset Conferma Ripristina - + Are you sure you want to erase your contest log? Sei sicuro di voler cancellare il tuo Log del contest? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. In questo modo verranno rimossi tutti i record QSO per il contest corrente. Saranno conservati nel file di registro ADIF ma non saranno disponibili per l'esportazione nel registro Cabrillo. - + Cabrillo Log saved Log Cabrillo salvato - + Are you sure you want to erase file wsjtx_log.adi? Sei sicuro di voler cancellare il file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? Sei sicuro di voler cancellare la tabella hash WSPR? - VHF features warning - VHF presenta un avviso + VHF presenta un avviso - + Tune digital gain Ottimizza il guadagno digitale - + Transmit digital gain Trasmetti Guadagno digitale - + Prefixes Prefissi - + Network Error Errore di Rete - + Error: %1 UDP server %2:%3 Errore:%1 Server UDP%2:%3 - + File Error Errore File - + Phase Training Disabled Fase di Allenamento Disabilitato - + Phase Training Enabled Fase di allenamento abilitato - + WD:%1m WD:%1m - - + + Log File Error Errore file di Log - + Are you sure you want to clear the QSO queues? Sei sicuro di voler cancellare le code QSO? @@ -4346,8 +4399,8 @@ Server UDP%2:%3 Modes - - + + Mode Modo @@ -4500,7 +4553,7 @@ Server UDP%2:%3 Impossibile aprire ilf file CSV LotW degli utenti: '%1' - + OOB OOB @@ -4691,7 +4744,7 @@ Errore (%2):%3 Errore non recuperabile, dispositivo di input audio non utilizzabile in questo momento. - + Requested input audio format is not valid. Il formato audio di input richiesto non è valido. @@ -4701,37 +4754,37 @@ Errore (%2):%3 Il formato audio di input richiesto non è supportato sul dispositivo. - + Failed to initialize audio sink device Impossibile inizializzare il dispositivo sink audio - + Idle Inattivo - + Receiving Ricevente - + Suspended Sospeso - + Interrupted Interrotto - + Error Errore - + Stopped Fermato @@ -4739,62 +4792,67 @@ Errore (%2):%3 SoundOutput - + An error opening the audio output device has occurred. Si è verificato un errore durante l'apertura del dispositivo di uscita audio. - + An error occurred during write to the audio output device. Si è verificato un errore durante la scrittura sul dispositivo di uscita audio. - + Audio data not being fed to the audio output device fast enough. I dati audio non vengono inviati al dispositivo di uscita audio abbastanza velocemente. - + Non-recoverable error, audio output device not usable at this time. Errore non recuperabile, dispositivo di uscita audio non utilizzabile in questo momento. - + Requested output audio format is not valid. Il formato audio di output richiesto non è valido. - + Requested output audio format is not supported on device. Il formato audio di output richiesto non è supportato sul dispositivo. - + + No audio output device configured. + + + + Idle Inattivo - + Sending Invio - + Suspended Sospeso - + Interrupted Interrotto - + Error Errore - + Stopped Fermato @@ -4802,22 +4860,22 @@ Errore (%2):%3 StationDialog - + Add Station Aggoingi Stazione - + &Band: &Banda: - + &Offset (MHz): &Offset (MHz): - + &Antenna: &Antenna: @@ -5005,19 +5063,23 @@ Errore (%2):%3 <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> <html><head/><body><p>Decodifica JT9 solo sopra questa frequenza</p></body></html> - - Hz - Hz - - JT9 - JT9 + Hz + Hz + Split + + + + JT9 + JT9 + + JT65 - JT65 + JT65 @@ -5051,6 +5113,29 @@ Errore (%2):%3 Leggi Tavolozza + + WorkedBefore + + + Invalid ADIF field %0: %1 + + + + + Malformed ADIF field %0: %1 + + + + + Invalid ADIF header + + + + + Error opening ADIF log file for read: %0 + + + configuration_dialog @@ -5249,9 +5334,8 @@ Errore (%2):%3 minuti - Enable VHF/UHF/Microwave features - Abilita le funzionalità VHF / UHF / Microonde + Abilita le funzionalità VHF / UHF / Microonde @@ -5368,7 +5452,7 @@ periodo di quiete al termine della decodifica. - + Port: Porta: @@ -5379,137 +5463,149 @@ periodo di quiete al termine della decodifica. + Serial Port Parameters Parametri Porta Seriale - + Baud Rate: Baud Rate: - + Serial port data rate which must match the setting of your radio. Velocità dati della porta seriale che deve corrispondere all'impostazione della radio. - + 1200 1200 - + 2400 2400 - + 4800 4800 - + 9600 9600 - + 19200 19200 - + 38400 38400 - + 57600 57600 - + 115200 115200 - + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> <html><head/><body><p>Numero di bit di dati utilizzati per comunicare con l'interfaccia CAT della radio (in genere otto). </p></body></html> - + + Data bits + + + + Data Bits Bit di dati - + D&efault Pred&efinito - + Se&ven Se&tte - + E&ight O&tto - + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> <html><head/><body><p>Numero di bit di stop utilizzati durante la comunicazione con l'interfaccia CAT della radio</p><p>(consultare il manuale della radio per i dettagli).</p></body></html> - + + Stop bits + + + + Stop Bits Bits di Stop - - + + Default Predefinito - + On&e &Uno - + T&wo &Due - + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> <html><head/><body><p>Protocollo di controllo del flusso utilizzato tra questo computer e l'interfaccia CAT della radio (in genere &quot;Nessuno&quot; ma qualcuno richiede &quot;Hardware&quot;).</p></body></html> - + + Handshake Handshake - + &None &Nessuno - + Software flow control (very rare on CAT interfaces). Controllo del flusso del software (molto raro sulle interfacce CAT). - + XON/XOFF XON/XOFF - + Flow control using the RTS and CTS RS-232 control lines not often used but some radios have it as an option and a few, particularly some Kenwood rigs, require it). @@ -5518,74 +5614,75 @@ non usato spesso ma alcune radio lo hanno come opzione e alcuni, in particolare (alcuni rig Kenwood, lo richiedono). - + &Hardware &Hardware - + Special control of CAT port control lines. Controllo speciale delle linee di controllo della porta CAT. - + + Force Control Lines Forza Linee di controllo - - + + High Alto - - + + Low Basso - + DTR: DTR: - + RTS: RTS: - + How this program activates the PTT on your radio? In che modo questo programma attiva il PTT sulla radio? - + PTT Method Metodo PTT - + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> <html><head/><body><p>Nessuna attivazione PTT, invece viene utilizzato il VOX automatico della radio per attivare il trasmettitore.</p><p>Usalo se non hai hardware di interfaccia radio.</p></body></html> - + VO&X VO&X - + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> <html><head/><body><p>Utilizzare la linea di controllo DTR RS-232 per attivare / disattivare il PTT della radio, richiede l'hardware per interfacciare la linea.</p><p>Anche alcune unità di interfaccia commerciale utilizzano questo metodo.</p><p>La linea di controllo DTR della porta seriale CAT può essere usata a questo scopo o una linea di controllo DTR su una porta seriale diversa.</p></body></html> - + &DTR &DTR - + Some radios support PTT via CAT commands, use this option if your radio supports it and you have no other hardware interface for PTT. @@ -5594,47 +5691,47 @@ usa questa opzione se la tua radio la supporta e non hai altra interfaccia hardware per PTT. - + C&AT C&AT - + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> <html><head/><body><p>Usa la linea di controllo RS-232 RTS per attivare / disattivare il PTT della tua radio, richiede hardware per interfacciare la linea. </p><p>Anche alcune unità di interfaccia commerciale usano questo metodo.</p><p>La linea di controllo RTS della porta seriale CAT può essere utilizzata per questa o una linea di controllo RTS su una porta seriale diversa. Questa opzione non è disponibile sulla porta seriale CAT quando viene utilizzato il controllo del flusso hardware.</p></body></html> - + R&TS R&TS - + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> <html><head/><body><p>Seleziona la porta seriale RS-232 utilizzata per il controllo PTT, questa opzione è disponibile quando DTR o RTS è selezionato sopra come metodo di trasmissione.</p><p>Questa porta può essere uguale a quello utilizzato per il controllo CAT.</p><p>Per alcuni tipi di interfaccia è possibile scegliere il valore speciale CAT, utilizzato per interfacce CAT non seriali che possono controllare da remoto le linee di controllo della porta seriale ( OmniRig per esempio).</p></body></html> - + Modulation mode selected on radio. Modalità di modulazione selezionata alla radio. - + Mode Modo - + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> <html><head/><body><p>L'USB è di solito la modalità di modulazione corretta,</p><p>a meno che la radio non abbia un'impostazione di dati speciali o modalità pacchetto</p><p>per il funzionamento di AFSK.</p></body></html> - + US&B US&B - + Don't allow the program to set the radio mode (not recommended but use if the wrong mode or bandwidth is selected). @@ -5643,23 +5740,23 @@ or bandwidth is selected). o la larghezza di banda è selezionata). - - + + None Nessuno - + If this is available then it is usually the correct mode for this program. Se questo è disponibile, di solito è la modalità corretta per questo programma. - + Data/P&kt Data/P&kt - + Some radios can select the audio input using a CAT command, this setting allows you to select which audio input will be used (if it is available then generally the Rear/Data option is best). @@ -5668,52 +5765,52 @@ questa impostazione consente di selezionare quale ingresso audio verrà utilizza (se disponibile, in genere l'opzione Posteriore / Dati è la migliore). - + Transmit Audio Source Trasmettere la sorgente audio - + Rear&/Data Rear&/Data - + &Front/Mic &Front/Mic - + Rig: Rig: - + Poll Interval: Intervallo di Interrogazione: - + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> <html><head/><body><p>Intervallo di interrogazione del rig per sapere lo status. Intervalli più lunghi significheranno che le modifiche al rig richiedono più tempo per essere rilevate.</p></body></html> - + s s - + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> <html><head/><body><p>Tenta di connettersi alla radio con queste impostazioni.</p><p>Il pulsante diventerà verde se la connessione ha esito positivo o rosso in caso di problemi. </p></body></html> - + Test CAT Test CAT - + Attempt to activate the transmitter. Click again to deactivate. Normally no power should be output since there is no audio being generated at this time. @@ -5726,47 +5823,47 @@ Verificare che qualsiasi indicazione Tx sulla radio e / o sul proprio l'interfaccia radio si comporta come previsto. - + Test PTT Prova-PTT - + Split Operation Operazione in Split - + Fake It Fai finta - + Rig Rig - + A&udio A&udio - + Audio interface settings Impostazioni dell'interfaccia audio - + Souncard Scheda audio - + Soundcard Scheda audio - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5779,46 +5876,51 @@ trasmetterai qualsiasi suono di sistema generato durante periodi di trasmissione. - + + Days since last upload + + + + Select the audio CODEC to use for receiving. Seleziona l'audio CODEC da utilizzare per la ricezione. - + &Input: &Ingresso: - + Select the channel to use for receiving. Seleziona il canale da utilizzare per la ricezione. - - + + Mono Mono - - + + Left Sinistro - - + + Right Destro - - + + Both Entrambi - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5829,110 +5931,115 @@ canali; quindi di solito si desidera selezionare mono o entrambi qui. - + + Enable VHF and submode features + + + + Ou&tput: Usci&ta: - - + + Save Directory Salva directory - + Loc&ation: &Posizione: - + Path to which .WAV files are saved. Percorso in cui vengono salvati i file .WAV. - - + + TextLabel Etichetta di testo - + Click to select a different save directory for .WAV files. Fare clic per selezionare una directory di salvataggio diversa per i file .WAV. - + S&elect S&eleziona - - + + AzEl Directory AzEl Directory - + Location: Posizione: - + Select Seleziona - + Power Memory By Band Memoria di Potenza per banda - + Remember power settings by band Ricorda le impostazioni di alimentazione per banda - + Enable power memory during transmit Abilita la memoria di potenza durante la trasmissione - + Transmit Trasmetti - + Enable power memory during tuning Abilita la memoria di potenza durante la sintonia - + Tune Accorda - + Tx &Macros Tx &Macros - + Canned free text messages setup Impostazione dei messaggi di testo libero - + &Add &Aggiungi - + &Delete &Elimina - + Drag and drop items to rearrange order Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items @@ -5941,37 +6048,37 @@ Fare clic con il tasto destro per azioni specifiche dell'oggetto Fare clic, MAIUSC + clic e, CRTL + clic per selezionare gli elementi - + Reportin&g &Segnalazione - + Reporting and logging settings Impostazioni di report e registrazione - + Logging Registrazione - + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. Il programma aprirà una finestra di dialogo Log QSO parzialmente completata quando si invia un messaggio di testo libero o 73. - + Promp&t me to log QSO Avvisami di regis&trare il QSO - + Op Call: Nominativo Op: - + Some logging programs will not accept the type of reports saved by this program. Check this option to save the sent and received reports in the @@ -5983,57 +6090,57 @@ Seleziona questa opzione per salvare i rapporti inviati e ricevuti nel campo commenti. - + d&B reports to comments Riporta d&B nei 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 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 - + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> (Registrazione=Log) <html><head/><body><p>Alcuni programmi di registrazione non accettano i nomi della modalità WSJT-X.</p></body></html> - + Con&vert mode to RTTY Con&vertire la modalità in RTTY - + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> <html><head/><body><p>Il nominativo dell'operatore, se diverso dal nominativo della stazione.</p></body></html> - + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> <html><head/><body><p>Verifica che i QSO siano registrati automaticamente, quando completi. </p></body></html> - + Log automatically (contesting only) (Registra=Scrivi nel Log) Registra automaticamente (solo in contest) - + Network Services Servizi di rete - + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> @@ -6048,509 +6155,545 @@ Questo è usato per l'analisi del beacon inverso che è molto utile per valutare la propagazione e le prestazioni del sistema. - + Enable &PSK Reporter Spotting Abilita rilevamento &PSK Reporter - + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + Use TCP/IP connection - + UDP Server UDP Server - + UDP Server: UDP Server: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>Nome host facoltativo del servizio di rete per ricevere decodifiche.</p><p>Formati:</p><ul style="margin-top: 0px; margin-bottom: 0px; margine-sinistra: 0px; margine-destra: 0px; -qt-list-indent: 1;"><li style="margin-top: 12px; margin-bottom: 0px; margin-left: 0px; margin- right: 0px; -qt-block-indent: 0; text-indent: 0px;">hostname</li><li style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin -right: 0px; -qt-block-indent: 0; text-indent: 0px;">Indirizzo IPv4</li><li style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px ; margin-right: 0px; -qt-block-indent: 0; text-indent: 0px;">Indirizzo IPv6</li><li style="margin-top: 0px; margin-bottom: 0px; margin-left : 0px; margine-destra: 0px; -qt-block-indent: 0; text-indent: 0px;">Indirizzo gruppo multicast IPv4</li><li style="margin-top: 0px; margin-bottom: 0px ; margin-left: 0px; margin-right: 0px; -qt-block-indent: 0; text-indent: 0px;">Indirizzo gruppo multicast IPv6</li></ul><p>Deselezionando questo campo si disabilita la trasmissione di aggiornamenti di stato UDP.</p></Body></html> - + UDP Server port number: Porta del Server UDP: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p>Immettere il numero di porta del servizio del server UDP a cui WSJT-X deve inviare gli aggiornamenti. Se questo è zero, non verranno trasmessi aggiornamenti.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p>Con questo abilitato WSJT-X accetterà alcune richieste di ritorno da un server UDP che riceve messaggi di decodifica.</p></body></html> - + Accept UDP requests Accetta richieste UDP - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p>Indica l'accettazione di una richiesta UDP in arrivo. L'effetto di questa opzione varia a seconda del sistema operativo e del gestore delle finestre, il suo intento è di notificare l'accettazione di una richiesta UDP in arrivo anche se questa applicazione è ridotta a icona o nascosta.</p></body></html> - + Notify on accepted UDP request Notifica su richiesta UDP accettata - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p>Ripristina la finestra da minimizzata se viene accettata una richiesta UDP.</p></body></html> - + Accepted UDP request restores window Finestra di ripristino richieste UDP accettate - + Secondary UDP Server (deprecated) Server UDP Secondario (obsoleto) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p>Se selezionato, WSJT-X trasmetterà un contatto registrato in formato ADIF al nome host e alla porta configurati.</p></body></html> - + Enable logged contact ADIF broadcast Abilita trasmissione ADIF del contatto registrato - + Server name or IP address: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>Nome host facoltativo del programma Logger + N1MM per ricevere trasmissioni UDP ADIF. Di solito si tratta di "localhost" o indirizzo IP 127.0.0.1</p><p>Formati:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indirizzo IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indirizzo IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indirizzo di gruppo multicast IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indirizzo di gruppo multicast IPv6</li></ul><p>La cancellazione di questo campo disabiliterà la trasmissione di informazioni ADIF tramite UDP.</p></body></html> - + Server port number: Numero porta Server: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>Immettere il numero di porta che WSJT-X deve utilizzare per le trasmissioni UDP delle informazioni del registro ADIF. Per N1MM Logger +, questo valore dovrebbe essere 2333. Se questo è zero, non verrà trasmesso alcun aggiornamento.</p></body></html> - + Frequencies Frequenze - + Default frequencies and band specific station details setup Frequenze predefinite e impostazione specifiche dei dettagli della stazione per banda - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>Vedere &quot;Calibrazione di Frequenza&quot;nella Guida dell'utente WSJT-X per i dettagli su come determinare questi parametri per la radio.</p></body></html> - + Frequency Calibration Calibrazione di Frequenza - + Slope: Inclinazione: - + ppm ppm - + Intercept: Intercetta: - + Hz Hz - + Working Frequencies Frequenze di Lavoro - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>Fare clic con il tasto destro per mantenere l'elenco delle frequenze di lavoro.</p></body></html> - + Station Information Informazioni Stazione - + Items may be edited. Right click for insert and delete options. Gli articoli possono essere modificati. Fare clic con il tasto destro per inserire ed eliminare le opzioni. - + Colors Colori - + Decode Highlightling Evidenziazione Decodifica - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> <html><head/><body><p>Fare clic per scansionare nuovamente il file ADIF wsjtx_log.adi alla ricerca di informazioni se collegato prima</p></body></html> - + Rescan ADIF Log Eseguire nuovamente la scansione del registro ADIF - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>Premere per ripristinare tutti gli elementi evidenziati sopra ai valori e alle priorità predefiniti.</p></body></html> - + Reset Highlighting Ripristina l'evidenziazione - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body><p>Abilitare o disabilitare utilizzando le caselle di controllo e fare clic con il pulsante destro del mouse su un elemento per modificare o annullare il colore di primo piano, il colore di sfondo o ripristinare l'elemento sui valori predefiniti. Trascina e rilascia gli elementi per cambiarne la priorità, più in alto nell'elenco ha una priorità più alta.</p><p>Nota che ogni colore di primo piano o di sfondo può essere impostato o non impostato, non impostato significa che non è assegnato per quello di quell'elemento possono essere applicati articoli di tipo e priorità inferiore.</p></body></html> - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>Selezionare per indicare nuove entità DXCC, quadrati della griglia e nominativi per modalità.</p></body></html> - + Highlight by Mode Evidenzia per modalità - + Include extra WAE entities Includi entità WAE extra - + Check to for grid highlighting to only apply to unworked grid fields Verificare che l'evidenziazione della griglia si applichi solo ai campi della griglia non lavorati - + Only grid Fields sought Sono stati cercati solo i campi della griglia - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>Controlli per la ricerca degli utenti di Logbook of the World.</p></body></html> - + Logbook of the World User Validation Convalida dell'utente Logbook of the World - + Users CSV file URL: URL del file CSV degli utenti: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body><p>URL del file di dati e date dell'ultimo caricamento dell'utente ARRL LotW utilizzato per evidenziare i decodificatori dalle stazioni note per caricare il loro file di registro su LotW.</p></body></html> - + + URL + + + + https://lotw.arrl.org/lotw-user-activity.csv https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>Premere questo pulsante per recuperare l'ultimo file di dati di data e ora di caricamento dell'utente LotW.</p></body></html> - + Fetch Now Scarica ora - + Age of last upload less than: Periodo dell'ultimo caricamento inferiore a: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p>Regola questa casella di selezione per impostare la soglia del periodo dell'ultima data di caricamento dell'utente di LotW accettata come utente corrente di LotW.</p></body></html> - + days giorni - + Advanced Avanzato - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>Parametri selezionabili dall'utente per la decodifica JT65 VHF/UHF/Microonde.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters JT65 Parametri di decodifica VHF/UHF/Microonde - + Random erasure patterns: Schemi di cancellazione casuali: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p>Il numero massimo di schemi di cancellazione per il decodificatore stocastico Reed Solomon a decisione morbida è 10^(n/2)</p></body></html> - + Aggressive decoding level: Livello di decodifica aggressivo: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>Livelli più alti aumenteranno la probabilità di decodifica, ma aumenteranno anche la probabilità di una decodifica falsa.</p></body></html> - + Two-pass decoding Decodifica a due passaggi - + Special operating activity: Generation of FT4, FT8, and MSK144 messages Attività operativa speciale: Generazione di messaggi FT4, FT8 e MSK144 - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> (Hound=Cane da caccia) <html><head/><body><p>FT8 DXpedition mode: operator Hound chiama il DX.</p></body></html> - + + Hound Hound (Cane da caccia) - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>Contests Nordamericani VHF/UHF/Microonde e altri in cui un localizzatore di griglia a 4 caratteri è lo scambio richiesto.</p></body></html> - + + NA VHF Contest NA VHF Contest - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>Modalità FT8 DXpedition: operatore Fox (DXpedition).</p></body></html> - + + Fox (Fox=Volpe) Fox - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>Contest VHF + Europei che richiedono un rapporto segnale, numero di serie e localizzatore a 6 caratteri.</p></body></html> - + + EU VHF Contest EU VHF Contest - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY Roundup e contests simili. Lo scambio è stato USA, provincia Canadese o &quot;DX&quot;</p></body></html> - + + R T T Y Roundup + + + + RTTY Roundup messages Messaggi Roundup RTTY - + + RTTY Roundup exchange + + + + RTTY RU Exch: Scambio RTTY RU: - + NJ NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>Scambio di Field Day ARRL: numero di trasmettitori, classe e sezione ARRL / RAC o&quot;DX&quot;.</p></body></html> - + + A R R L Field Day + + + + ARRL Field Day ARRL Field Day - + + Field Day exchange + + + + FD Exch: Scambio FD: - + 6A SNJ 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>Contest Digi-Mode mondiale</p><p><br/></p></body></html> - + + WW Digital Contest + + + + WW Digi Contest WW Digi Contest - + Miscellaneous Miscellanea - + Degrade S/N of .wav file: Degrada S/N del file .wav: - - + + For offline sensitivity tests Per test di sensibilità offline - + dB dB - + Receiver bandwidth: Larghezza di banda ricevitore: - + Hz Hz - + Tx delay: Ritardo Tx: - + Minimum delay between assertion of PTT and start of Tx audio. Ritardo minimo tra l'asserzione del PTT e l'avvio dell'audio Tx. - + s ..s - + + Tone spacing Spaziatura dei toni - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>Genera audio Tx con una spaziatura del doppio del tono normale. Destinato a trasmettitori speciali LF / MF che utilizzano un divisore per 2 prima di generare RF.</p></body></html> - + x 2 x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>Genera audio Tx con una spaziatura dei toni quattro volte superiore. Destinato a trasmettitori speciali LF / MF che utilizzano un divisore per 4 prima di generare RF.</p></body></html> - + x 4 x 4 - + + Waterfall spectra Spettro Display a cascata - + Low sidelobes Lobi laterali bassi - + Most sensitive Più sensibile - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p>Annulla (Annulla) o applica (OK) le modifiche alla configurazione incluso</p><p>ripristinando l'interfaccia radio e applicando eventuali modifiche alla scheda audio</p></body></html> @@ -6617,12 +6760,12 @@ Fare clic con il tasto destro per inserire ed eliminare le opzioni.Impossibile creare il segmento di memoria condivisa - + Sub-process error - + Failed to close orphaned jt9 process diff --git a/translations/wsjtx_ja.ts b/translations/wsjtx_ja.ts index f92b67d10..6841f88df 100644 --- a/translations/wsjtx_ja.ts +++ b/translations/wsjtx_ja.ts @@ -129,17 +129,17 @@ 天文データ - + Doppler Tracking Error ドップラー追跡エラー - + Split operating is required for Doppler tracking ドップラー追跡にはスプリットオペレーションが必要です - + Go to "Menu->File->Settings->Radio" to enable split operation "メニュー->ファイル->設定->トランシーバー"と進んでスプリットをオンにします @@ -147,32 +147,32 @@ Bands - + Band name バンド名 - + Lower frequency limit 下限周波数 - + Upper frequency limit 上限周波数 - + Band バンド - + Lower Limit 下限 - + Upper Limit 上限 @@ -368,75 +368,75 @@ Configuration::impl - - - + + + &Delete 削除(&D) - - + + &Insert ... 挿入(&I)... - + Failed to create save directory 保存のためのフォルダを作成できません - + path: "%1% パス: "%1% - + Failed to create samples directory サンプルフォルダを作成できません - + path: "%1" パス: "%1" - + &Load ... 読み込み(&L)... - + &Save as ... 名前を付けて保存(&S)... - + &Merge ... 結合(&M)... - + &Reset リセット(&R) - + Serial Port: シリアルポート: - + Serial port used for CAT control CAT制御用シリアルポート - + Network Server: ネットワークサーバ: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -451,12 +451,12 @@ Formats: [IPv6-アドレス]:ポート番号 - + USB Device: USBデバイス: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -467,152 +467,157 @@ Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - + + Invalid audio input device 無効なオーディオ入力デバイス - Invalid audio out device - 無効なオーディオ出力デバイス + 無効なオーディオ出力デバイス - + + Invalid audio output device + + + + Invalid PTT method 無効なPTT方式 - + Invalid PTT port 無効なPTT用ポート - - + + Invalid Contest Exchange 無効なコンテストナンバー - + You must input a valid ARRL Field Day exchange 正しいARRLフィールドデーコンテストナンバーを入力しなければなりません - + You must input a valid ARRL RTTY Roundup exchange 正しいARRL RTTY ラウンドアップのコンテストナンバーを入力しなければなりません - + Reset Decode Highlighting デコードハイライトをリセット - + Reset all decode highlighting and priorities to default values すべてのハイライトと優先順位設定をデフォルトへ戻す - + WSJT-X Decoded Text Font Chooser WSJT-Xのデコード出力用フォント選択 - + Load Working Frequencies 使用周波数を読み込み - - - + + + Frequency files (*.qrg);;All files (*.*) 周波数ファイル (*.qrg);;全ファイル (*.*) - + Replace Working Frequencies 使用周波数を置き換え - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? 本当に現在の周波数を読み込んだ周波数で置き換えてもいいですか? - + Merge Working Frequencies 使用周波数を追加併合 - - - + + + Not a valid frequencies file 正しい周波数ファイルではない - + Incorrect file magic 無効なファイルマジック - + Version is too new バージョンが新しすぎます - + Contents corrupt 中身が壊れています - + Save Working Frequencies 使用周波数を保存 - + Only Save Selected Working Frequencies 選択した使用周波数のみ保存 - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. 選択した使用周波数だけを保存してもいいですか。全部を保存したいときはNoをクリックしてください。 - + Reset Working Frequencies 使用周波数をリセット - + Are you sure you want to discard your current working frequencies and replace them with default ones? 本当に現在の使用周波数を破棄してデフォルト周波数と置き換えてもよいですか? - + Save Directory フォルダーを保存 - + AzEl Directory AzElフォルダー - + Rig control error 無線機コントロールエラー - + Failed to open connection to rig 無線機へ接続できません - + Rig failure 無線機エラー @@ -1437,22 +1442,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency 周波数を追加 - + IARU &Region: IARU地域(&R): - + &Mode: モード(&M): - + &Frequency (MHz): 周波数MHz(&F): @@ -1460,26 +1465,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region IARU地域 - - + + Mode モード - - + + Frequency 周波数 - - + + Frequency (MHz) 周波数(MHz) @@ -2071,12 +2076,13 @@ Error(%2): %3 - - - - - - + + + + + + + Band Activity バンド状況 @@ -2088,11 +2094,12 @@ Error(%2): %3 - - - - - + + + + + + Rx Frequency 受信周波数 @@ -2127,122 +2134,137 @@ Error(%2): %3 モニターオン/オフ - + &Monitor モニター(&M) - + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> <html><head/><body><p>右側ウィンドウを消去. ダブルクリックで両側ウィンドウを消去.</p></body></html> - + Erase right window. Double-click to erase both windows. 右側ウィンドウを消去. ダブルクリックで両側ウィンドウを消去. - + &Erase 消去(&E) - + <html><head/><body><p>Clear the accumulating message average.</p></body></html> <html><head/><body><p>累加メッセージ平均をクリア.</p></body></html> - + Clear the accumulating message average. 累加メッセージ平均をクリア. - + Clear Avg 平均をクリア - + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> <html><head/><body><p>QSO周波数で最後に受信した信号をデコード</p></body></html> - + Decode most recent Rx period at QSO Frequency QSO周波数で最後に受信した信号をデコード - + &Decode デコード(&D) - + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> <html><head/><body><p>自動送信をオン/オフ</p></body></html> - + Toggle Auto-Tx On/Off 自動送信をオン/オフ - + E&nable Tx 送信許可(&n) - + Stop transmitting immediately 直ちに送信停止 - + &Halt Tx 送信停止(&H) - + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> <html><head/><body><p>シングルトーンのオン/オフ</p></body></html> - + Toggle a pure Tx tone On/Off シングルトーンのオン/オフ - + &Tune チューン(&T) - + Menus メニュー - + + Percentage of minute sequences devoted to transmitting. + + + + + Prefer Type 1 messages + + + + + <html><head/><body><p>Transmit during the next sequence.</p></body></html> + + + + USB dial frequency USBダイアル周波数 - + 14.078 000 14.078 000 - + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> <html><head/><body><p>ノイズのみ受信のとき30dBが適当<br/>緑:適切<br/>赤:過大<br/>黄:過少</p></body></html> - + Rx Signal 受信信号 - + 30dB recommended when only noise present Green when good Red when clipping may occur @@ -2253,338 +2275,344 @@ Yellow when too low 黄:過少 - + DX Call DXコール - + DX Grid DXグリッド - + Callsign of station to be worked 交信相手コールサイン - + Search for callsign in database データベース内でコールサイン検索 - + &Lookup 検索(&L) - + Locator of station to be worked 交信相手のロケータ - + Az: 251 16553 km Az: 251 16553 km - + Add callsign and locator to database データベースへコールサインとロケータを追加 - + Add 追加 - + Pwr 出力 - + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> <html><head/><body><p>黄色か赤色の場合無線機制御にエラーあり. リセットを押しダイヤル周波数を読み込む. Sはスプリット.</p></body></html> - + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. 黄色か赤色の場合無線機制御にエラーあり. リセットを押しダイヤル周波数を読み込む. Sはスプリット. - + ? ? - + Adjust Tx audio level 送信オーディオレベル調整 - + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> <html><head/><body><p>バンドを選びMHz単位で周波数を入力するか差分をkHz単位(最後にkをつける)で入力.</p></body></html> - + Frequency entry 周波数入力 - + Select operating band or enter frequency in MHz or enter kHz increment followed by k. バンドを選びMHz単位で周波数を入力するか差分をkHz単位(最後にkをつける)で入力. - + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> - + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> <html><head/><body><p>デコードした文をダブルクリックしたときに送信周波数を動かさない.</p></body></html> - + Check to keep Tx frequency fixed when double-clicking on decoded text. デコードした文をダブルクリックしたときに送信周波数を動かさない. - + Hold Tx Freq 送信周波数固定 - + Audio Rx frequency 受信オーディオ周波数 - - - + + + + + Hz Hz - + + Rx Rx - + + Set Tx frequency to Rx Frequency 送信周波数を受信周波数へコピー - + - + Frequency tolerance (Hz) 許容周波数(Hz) - + + F Tol F Tol - + + Set Rx frequency to Tx Frequency 受信周波数を送信周波数へコピー - + - + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> <html><head/><body><p>同期信号閾値. 小さい値ほど弱い同期信号を検出.</p></body></html> - + Synchronizing threshold. Lower numbers accept weaker sync signals. 同期信号閾値. 小さい値ほど弱い同期信号を検出. - + Sync 同期 - + <html><head/><body><p>Check to use short-format messages.</p></body></html> <html><head/><body><p>短いメッセージフォーマットを使うときはチェック.</p></body></html> - + Check to use short-format messages. 短いメッセージフォーマットを使うときはチェック. - + Sh Sh - + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> <html><head/><body><p>JT9高速モードをオン</p></body></html> - + Check to enable JT9 fast modes JT9高速モードをオン - - + + Fast 高速 - + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> <html><head/><body><p>チェックすることで受信したメッセージに基づき自動的に送信メッセージを生成する.</p></body></html> - + Check to enable automatic sequencing of Tx messages based on received messages. 受信メッセージに合わせて送信メッセージ自動生成. - + Auto Seq 自動シーケンス - + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> <html><head/><body><p>自分のCQに最初に応答してきた局をコール.</p></body></html> - + Check to call the first decoded responder to my CQ. 自分のCQに最初に応答してきた局をコール. - + Call 1st コール 1st - + Check to generate "@1250 (SEND MSGS)" in Tx6. Tx6に "@1250 (SEND MSGS)" を生成. - + Tx6 Tx6 - + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> <html><head/><body><p>チェックすると偶数分の0秒から送信開始.チェックを外すと奇数分.</p></body></html> - + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. チェックすると偶数分の0秒から送信開始.チェックを外すと奇数分. - + Tx even/1st Tx even/1st - + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> <html><head/><body><p>現在の周波数からkHz上でCQをコール</p></body></html> - + Frequency to call CQ on in kHz above the current MHz 現在の周波数からkHz上でCQをコール - + Tx CQ Tx CQ - + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> <html><head/><body><p>チェックすると &quot;Tx CQ&quot; 周波数でCQをコール. 受信は現在の周波数. 相手局がどの周波数で呼べばよいが分かるようにCQメッセージに現在の受信周波数を含める.</p><p>非標準コールには非対応.</p></body></html> - + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. チェックすると "Tx CQ" 周波数でCQをコール. 受信は現在の周波数. 相手局がどの周波数で呼べばよいが分かるようにCQメッセージに現在の受信周波数を含める. 非標準コールには非対応. - + Rx All Freqs - + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> <html><head/><body><p>サブモードはトーン間隔を意味する.Aが一番狭い.</p></body></html> - + Submode determines tone spacing; A is narrowest. サブモードはトーン間隔を意味する.Aが一番狭い. - + Submode サブモード - - + + Fox Fox - + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> <html><head/><body><p>Shメッセージをモニターする.</p></body></html> - + Check to monitor Sh messages. Shメッセージをモニターする. - + SWL SWL - + Best S+P Best S+P - + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> <html><head/><body><p>ここをチェックして較正データを録音開始.<br/>測定中は較正処理は停止します.<br/>チェックをはずすと較正結果を見ることができます.</p></body></html> - + Check this to start recording calibration data. While measuring calibration correction is disabled. When not checked you can view the calibration results. @@ -2593,202 +2621,204 @@ When not checked you can view the calibration results. チェックしないと較正結果を表示. - + Measure 測定 - + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> <html><head/><body><p>シグナルレポート: 2500Hzバンド幅におけるSN比(dB).</p></body></html> - + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). シグナルレポート: 2500Hzパスバンド幅におけるSN比(dB). - + Report レポート - + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> <html><head/><body><p>送信/受信または周波数較正の時間</p></body></html> - + Tx/Rx or Frequency calibration sequence length Tx/Rxまたは周波数較正時間長 - + + s s - + + T/R T/R - + Toggle Tx mode 送信モードをトグル - + Tx JT9 @ - + Audio Tx frequency 送信オーディオ周波数 - - + + Tx Tx - + Tx# Tx# - + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> <html><head/><body><p>ダブルクリックして次のQSOの待ち行列に加える.</p></body></html> - + Double-click on another caller to queue that call for your next QSO. ダブルクリックで次のQSOで呼ぶ相手を待ち行列に追加. - + Next Call 次のコール - + 1 1 - - - + + + Send this message in next Tx interval このメッセージを次回送信する - + Ctrl+2 - + <html><head/><body><p>Send this message in next Tx interval</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>このメッセージを次回送信する</p><p>ダブルクリックしてTx1メッセージとしてQSOを開始のオンオフ(タイプ1複合コールサインでは使えません)</p></body></html> - + Send this message in next Tx interval 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) >このメッセージを次回送信する. ダブルクリックしてTx1メッセージとしてQSOを開始のオンオフ(タイプ1複合コールサインでは使えません) - + Ctrl+1 - - - - + + + + Switch to this Tx message NOW このメッセージを送信 - + Tx &2 - + Alt+2 - + <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>このメッセージをすぐに送信</p><p>ダブルクリックすることでTx1メッセージを使うかどうか選択(タイプ1複合コールサインには使えません)</p></body></html> - + Switch to this Tx message NOW 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) このメッセージをすぐに送信. ダブルクリックすることでTx1メッセージを使うかどうか選択(タイプ1複合コールサインには使えません) - + Tx &1 - + Alt+1 - + Ctrl+6 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>このメッセージを次回送信</p><p>ダブルクリックして標準73メッセージにリセット</p></body></html> - + Send this message in next Tx interval Double-click to reset to the standard 73 message このメッセージを次回送信 ダブルクリックして標準73メッセージにリセット - + Ctrl+5 - + Ctrl+3 - + Tx &3 - + Alt+3 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>このメッセージを次回送信</p><p>ダブルクリックするとTx4でRRRかRR73を送るかを切り替え(タイプ2複合コールサインでは使えません)</p><p>RR73 メッセージは、相手が確実にコピーしたと考えられるときに使ってください</p></body></html> - + Send this message in next Tx interval Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required @@ -2797,17 +2827,17 @@ RR73 messages should only be used when you are reasonably confident that no mess RR73 メッセージは、相手が確実にコピーしたと考えられるときに使ってください - + Ctrl+4 - + <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>この送信メッセージをすぐに送信</p><p>ダブルクリックしてTx4のRRRとRR73を交互切り替え(タイプ2の複合コールサインでは使えません)</p><p>RR73は、双方ともメッセージを確認し、繰り返しが必要ないと考えうるときにのみ使いましょう</p></body></html> - + Switch to this Tx message NOW Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required @@ -2816,64 +2846,63 @@ RR73 messages should only be used when you are reasonably confident that no mess RR73 メッセージは、相手が確実にコピーしたと考えられるときに使ってください - + Tx &4 - + Alt+4 - + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>このメッセージをすぐに送信</p><p>ダブルクリックして標準73メッセージにリセット</p></body></html> - + Switch to this Tx message NOW Double-click to reset to the standard 73 message このメッセージをすぐに送信. ダブルクリックして標準73メッセージにリセット - + Tx &5 - + Alt+5 - + Now 送信 - + Generate standard messages for minimal QSO 最短QSO用メッセージを生成 - + Generate Std Msgs 標準メッセージ生成 - + Tx &6 - + Alt+6 - - + Enter a free text message (maximum 13 characters) or select a predefined macro from the dropdown list. Press ENTER to add the current text to the predefined @@ -2884,1071 +2913,1068 @@ ENTERを押してテキストを登録リストに追加. リストは設定(F2)で変更可能. - + Queue up the next Tx message 次の送信メッセージを待ち行列に追加 - + Next - + 2 - + + Quick-Start Guide to FST4 and FST4W + + + + + FST4 + + + + + FST4W + + + Calling CQ - CQをコール + CQをコール - Generate a CQ message - CQメッセージ生成 + CQメッセージ生成 - - - + + CQ - Generate message with RRR - RRRメッセージを生成 + RRRメッセージを生成 - - RRR - - - - Generate message with report - レポートメッセージを生成 + レポートメッセージを生成 - - dB - - - - Answering CQ - CQに応答 + CQに応答 - Generate message for replying to a CQ - CQに応答するメッセージを生成 + CQに応答するメッセージを生成 - - + Grid グリッド - Generate message with R+report - R+レポートメッセージ生成 + R+レポートメッセージ生成 - - R+dB - - - - Generate message with 73 - 73メッセージ生成 + 73メッセージ生成 - - 73 - - - - Send this standard (generated) message - この生成された標準メッセージを送信 + この生成された標準メッセージを送信 - Gen msg - メッセージ生成 + メッセージ生成 - Send this free-text message (max 13 characters) - フリーテキストを送信(最大13文字) + フリーテキストを送信(最大13文字) - Free msg - フリーテキスト + フリーテキスト - - 3 - - - - + Max dB 最大dB - + CQ AF - + CQ AN - + CQ AS - + CQ EU - + CQ NA - + CQ OC - + CQ SA - + CQ 0 - + CQ 1 - + CQ 2 - + CQ 3 - + CQ 4 - + CQ 5 - + CQ 6 - + CQ 7 - + CQ 8 - + CQ 9 - + Reset リセット - + N List リスト数 - + N Slots スロット数 - - + + + + + + + Random ランダム - + Call - + S/N (dB) - + Distance 距離 - + More CQs これは何?チェックすると5回の送信に1回CQを出す - Percentage of 2-minute sequences devoted to transmitting. - 2分の送信に費やすパーセンテージ. + 2分の送信に費やすパーセンテージ. - + + % % - + Tx Pct Tx Pct - + Band Hopping バンドホッピング - + Choose bands and times of day for band-hopping. バンドホッピングためのバンドと時間を選択. - + Schedule ... スケジュール .... + 1/2 - 1/2 + 1/2 + 2/2 - 2/2 + 2/2 + 1/3 - 1/3 + 1/3 + 2/3 - 2/3 + 2/3 + 3/3 - 3/3 + 3/3 + 1/4 - 1/4 + 1/4 + 2/4 - 2/4 + 2/4 + 3/4 - 3/4 + 3/4 + 4/4 - 4/4 + 4/4 + 1/5 - 1/5 + 1/5 + 2/5 - 2/5 + 2/5 + 3/5 - 3/5 + 3/5 + 4/5 - 4/5 + 4/5 + 5/5 - 5/5 + 5/5 + 1/6 - 1/6 + 1/6 + 2/6 - 2/6 + 2/6 + 3/6 - 3/6 + 3/6 + 4/6 - 4/6 + 4/6 + 5/6 - 5/6 + 5/6 + 6/6 - 6/6 + 6/6 - + Upload decoded messages to WSPRnet.org. デコードしたメッセージをWSPRnet.orgへアップロード. - + Upload spots スポットをアップロード - + <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>6桁のグリッドロケーターは2回のメッセージで送られます, 2回目のメッセージで6桁全部送られますが、コールサインはハッシュになります, 相手局は1回目であなたのコールサインをコピーしていなければなりません.. このオプションをチェックすると4桁のグリッドロケーターしか送らず、6桁のグリッドロケーターを送るための2回のメッセージ送信は行いません.</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. 6桁のグリッドロケーターは2回のメッセージで送られます, 2回目のメッセージで6桁全部送られますが、コールサインはハッシュになります, 相手局は1回目であなたのコールサインをコピーしていなければなりません.. このオプションをチェックすると4桁のグリッドロケーターしか送らず、6桁のグリッドロケーターを送るための2回のメッセージ送信は行いません. - Prefer type 1 messages - タイプ1メッセージを使う + タイプ1メッセージを使う - + No own call decodes 自分のコールサインをデコードしない - Transmit during the next 2-minute sequence. - 次の2分送信シーケンスの間に送信. + 次の2分送信シーケンスの間に送信. - + Tx Next 次のTx - + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. dBm単位の送信出力をWSPRメッセージに入れる. - + + NB + + + + File ファイル - + View 表示 - + Decode デコード - + Save 保存 - + Help ヘルプ - + Mode モード - + Configurations コンフィグレーション - + Tools ツール - + Exit 終了 - Configuration - コンフィグレーション + コンフィグレーション - - F2 - - - - + About WSJT-X WSJT-Xについて - + Waterfall ウォーターフォール - + Open 開く - + Ctrl+O - + Open next in directory ディレクトリ中の次のファイルを開く - + Decode remaining files in directory ディレクトリ中の残りのファイルをデコード - + Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir SaveDirのすべての*.wavと*.c2ファイルを削除 - + None 無し - + Save all すべて保存 - + Online User Guide オンラインユーザーガイド - + Keyboard shortcuts キーボードショートカット - + Special mouse commands 特別なマウス操作 - + JT9 - + Save decoded デコードしたメッセージを保存 - + Normal 標準 - + Deep ディープ - Monitor OFF at startup - 起動時モニターオフ + 起動時モニターオフ - + Erase ALL.TXT ALL.TXTを消去 - + Erase wsjtx_log.adi wsjtx_log.adiを消去 - Convert mode to RTTY for logging - ログのためモードをRTTYに変換 + ログのためモードをRTTYに変換 - Log dB reports to Comments - dBレポートをコメントに記録 + dBレポートをコメントに記録 - Prompt me to log QSO - QSOをログするとき知らせる + QSOをログするとき知らせる - Blank line between decoding periods - デコードタイミング間に空白行を入れる + デコードタイミング間に空白行を入れる - Clear DX Call and Grid after logging - ログした後、DXコールサインとグリッドをクリア + ログした後、DXコールサインとグリッドをクリア - Display distance in miles - 距離をマイルで表示 + 距離をマイルで表示 - Double-click on call sets Tx Enable - コールサインをダブルクリックして送信オン + コールサインをダブルクリックして送信オン - - + F7 - Tx disabled after sending 73 - 73を送った後送信禁止 + 73を送った後送信禁止 - - + Runaway Tx watchdog Txウオッチドッグ発令 - Allow multiple instances - 複数のインスタンス起動許可 + 複数のインスタンス起動許可 - Tx freq locked to Rx freq - 送信周波数を受信周波数にロック + 送信周波数を受信周波数にロック - + JT65 - + JT9+JT65 - Tx messages to Rx Frequency window - 送信メッセージを受信周波数ウィンドウへ + 送信メッセージを受信周波数ウィンドウへ - - Gray1 - - - - Show DXCC entity and worked B4 status - DXCCエンティティと交信済みステータスを表示 + DXCCエンティティと交信済みステータスを表示 - + Astronomical data 天文データ - + List of Type 1 prefixes and suffixes タイプ1プリフィックス、サフィックスのリスト - + Settings... 設定... - + Local User Guide 各国版ユーザーガイド - + Open log directory ログディレクトリを開く - + JT4 - + Message averaging メッセージ平均化 - + Enable averaging 平均化オン - + Enable deep search ディープサーチをオン - + WSPR WSPR - + Echo Graph エコーグラフ - + F8 - + Echo Echo - + EME Echo mode EMEエコーモード - + ISCAT - + Fast Graph 高速グラフ - + F9 - + &Download Samples ... サンプルをダウンロード(&D)... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>いろいろなモードのオーディオファイルをダウンロード.</p></body></html> - + MSK144 - + QRA64 - + Release Notes リリースノート - + Enable AP for DX Call DXコールのAPをオン - + FreqCal - + Measure reference spectrum 参照スペクトラムを測定 - + Measure phase response 位相応答を測定 - + Erase reference spectrum 参照スペクトラムを消去 - + Execute frequency calibration cycle 周波数較正実行 - + Equalization tools ... イコライザー... - WSPR-LF - WSPR-LF + WSPR-LF - Experimental LF/MF mode - 実験的LF/MFモード + 実験的LF/MFモード - + FT8 - - + + Enable AP AP使用 - + Solve for calibration parameters 較正パラメータ計算 - + Copyright notice 著作権表示 - + Shift+F1 - + Fox log Foxログ - + FT8 DXpedition Mode User Guide FT8 DXペディションモードユーザーガイド - + Reset Cabrillo log ... Cabrilloログをリセット... - + Color highlighting scheme ハイライト設定 - Contest Log - コンテストログ + コンテストログ - + Export Cabrillo log ... Cabrilloログをエクスポート... - Quick-Start Guide to WSJT-X 2.0 - WSJT-X 2.0クイックスタートガイド + WSJT-X 2.0クイックスタートガイド - + Contest log コンテストログ - + Erase WSPR hashtable WSPRハッシュテーブルを消去 - + FT4 - + Rig Control Error 無線機制御エラー - - - + + + Receiving 受信中 - + Do you want to reconfigure the radio interface? 無線機インターフェイスを再構成しますか? - + + %1 (%2 sec) audio frames dropped + + + + + Audio Source + + + + + Reduce system load + + + + + Excessive dropped samples - %1 (%2 sec) audio frames dropped + + + + Error Scanning ADIF Log ADIFログスキャンエラー - + Scanned ADIF log, %1 worked before records created ADIFログ検索. %1交信済み記録作成しました - + Error Loading LotW Users Data LotWユーザデータをロードできません - + Error Writing WAV File WAVファイルを書き込みできません - + Configurations... コンフィグレーション... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message メッセージ - + Error Killing jt9.exe Process jt9.exeプロセスを終了できません - + KillByName return code: %1 KillByNameリターンコード: %1 - + Error removing "%1" "%1"を削除できません - + Click OK to retry OKを押して再試行 - - + + Improper mode 不適切なモード - - + + File Open Error ファイルオープンエラー - - - - - + + + + + Cannot open "%1" for append: %2 "%2"を追加する"%1"が開けません - + Error saving c2 file c2ファイルを保存できません - + Error in Sound Input サウンド入力にエラー発生 - + Error in Sound Output サウンド出力にエラー発生 - - - + + + Single-Period Decodes シングルパスデコード - - - + + + Average Decodes 平均デコード - + Change Operator オペレータ交代 - + New operator: 新オペレータ: - + Status File Error ステータスファイルエラー - - + + Cannot open "%1" for writing: %2 %2を書き込むための"%1"が開けません - + Subprocess Error サブプロセスエラー - + Subprocess failed with exit code %1 サブプロセスエラー 終了コード %1 - - + + Running: %1 %2 実行中: %1 %2 - + Subprocess error サブプロセスエラー - + Reference spectrum saved 参照用スペクトラムを保存しました - + Invalid data in fmt.all at line %1 fmt.allの%1行目に無効なデータ - + Good Calibration Solution 較正良好 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3957,44 +3983,44 @@ ENTERを押してテキストを登録リストに追加. - + Delete Calibration Measurements 較正の測定結果を削除 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all"は"fmt.bak"に名前が変わります - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? ディスクからデータが読めません.フォーマットが合っていますか? - + Confirm Delete 削除確認 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? "%1"のすべての*.wavと*.c2ファイルを削除していいですか? - + Keyboard Shortcuts キーボードショートカット - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4044,12 +4070,12 @@ ENTERを押してテキストを登録リストに追加. - + Special Mouse Commands 特別なマウス操作 - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4060,7 +4086,7 @@ ENTERを押してテキストを登録リストに追加. <td><b>Click</b> to set Rx frequency.<br/> <b>Shift-click</b> to set Tx frequency.<br/> <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> - <b>Double-click</b> to also decode at Rx frequency.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> </td> </tr> <tr> @@ -4068,10 +4094,10 @@ ENTERを押してテキストを登録リストに追加. <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> locator to Dx Grid, change Rx and Tx frequency to<br/> decoded signal's frequency, and generate standard<br/> - messages.<br/> - If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> - is your own call, Tx frequency is not changed unless <br/> - <b>Ctrl</b> is held down.<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> </td> </tr> <tr> @@ -4085,42 +4111,42 @@ ENTERを押してテキストを登録リストに追加. - + No more files to open. これ以上開くファイルがありません. - + Spotting to PSK Reporter unavailable - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 他の送信周波数を使ってください. WSJT-Xは30mバンドのWSPRサブバンド中の他のモードを受信せずに送信してしまいます. - + WSPR Guard Band WSPRガードバンド - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 他のダイヤル周波数を使ってください. WSJT-XはFT8の標準サブバンドでFoxモードを使えません。 - + Fox Mode warning Foxモード警告 - + Last Tx: %1 最終送信: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4130,183 +4156,182 @@ To do so, check 'Special operating activity' and 設定|詳細タブで設定変更してください. - + Should you switch to ARRL Field Day mode? ARRLフィールドデーモードに切り替えますか? - + Should you switch to RTTY contest mode? RTTYコンテストモードに切り替えますか? - - - - + + + + Add to CALL3.TXT CALL3.TXTへ追加 - + Please enter a valid grid locator 有効なグリッドロケータを入力してください - + Cannot open "%1" for read/write: %2 %2を読み書きするための"%1"が開けません - + %1 is already in CALL3.TXT, do you wish to replace it? %1 がすでにCALL3.TXTにセットされています。置き換えますか? - + Warning: DX Call field is empty. 警告 DXコールが空白です. - + Log file error ログファイルエラー - + Cannot open "%1" "%1"を開けません - + Error sending log to N1MM N1MMへログを送れません - + Write returned "%1" 応答"%1"を書き込み - + Stations calling DXpedition %1 DXペディション %1を呼ぶ局 - + Hound Hound - + Tx Messages 送信メッセージ - - - + + + Confirm Erase 消去確認 - + Are you sure you want to erase file ALL.TXT? ALL.TXTファイルを消去してよいですか? - - + + Confirm Reset リセット確認 - + Are you sure you want to erase your contest log? コンテストログを消去していいですか? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 現在のコンテストのQSO記録をすべて消去します。ADIFログには記録されますがCabrilloログにエクスポートすることはできません. - + Cabrillo Log saved Cabrilloログ保存しました - + Are you sure you want to erase file wsjtx_log.adi? wsjtx_log.adiを消してもよいですか? - + Are you sure you want to erase the WSPR hashtable? WSPRのハッシュテーブルを消してもよいですか? - VHF features warning - VHF機能警告 + VHF機能警告 - + Tune digital gain チューンのデジタルゲイン - + Transmit digital gain 送信デジタルゲイン - + Prefixes プリフィックス - + Network Error ネットワークエラー - + Error: %1 UDP server %2:%3 エラー %1 UDPサーバー %2:%3 - + File Error ファイルエラー - + Phase Training Disabled 位相調整オフ - + Phase Training Enabled 位相調整オン - + WD:%1m WD:%1m - - + + Log File Error ログファイルエラー - + Are you sure you want to clear the QSO queues? QSO待ち行列をクリアしてもいいですか? @@ -4328,8 +4353,8 @@ UDPサーバー %2:%3 Modes - - + + Mode モード @@ -4486,7 +4511,7 @@ UDPサーバー %2:%3 LotW CSVファイル '%1'が開けません - + OOB @@ -4673,7 +4698,7 @@ Error(%2): %3 回復不能エラー. 現在オーディオ入力デバイスが使えません. - + Requested input audio format is not valid. このオーディオフォーマットは無効です. @@ -4683,37 +4708,37 @@ Error(%2): %3 このオーディオ入力フォーマットはオーディオ入力デバイスでサポートされていません. - + Failed to initialize audio sink device オーディオ出力デバイス初期化エラー - + Idle 待機中 - + Receiving 受信中 - + Suspended サスペンド中 - + Interrupted 割り込まれました - + Error エラー - + Stopped 停止中 @@ -4721,62 +4746,67 @@ Error(%2): %3 SoundOutput - + An error opening the audio output device has occurred. オーディオ出力デバイスが開けません. - + An error occurred during write to the audio output device. オーディオ出力デバイスへデータ書き込みエラー発生. - + Audio data not being fed to the audio output device fast enough. 十分な速度でオーディオデータを出力デバイスへ送れません. - + Non-recoverable error, audio output device not usable at this time. 回復不能エラー. 現在オーディオ出力デバイスが使えません. - + Requested output audio format is not valid. このオーディオフォーマットは無効です. - + Requested output audio format is not supported on device. このオーディオフォーマットはオーディオ出力デバイスでサポートされていません. - + + No audio output device configured. + + + + Idle 待機中 - + Sending 送信中 - + Suspended サスペンド中 - + Interrupted 割り込まれました - + Error エラー - + Stopped 停止中 @@ -4784,22 +4814,22 @@ Error(%2): %3 StationDialog - + Add Station 局を追加 - + &Band: バンド(&B): - + &Offset (MHz): オフセットMHz(&O): - + &Antenna: アンテナ(&A): @@ -4988,19 +5018,23 @@ Error(%2): %3 <html><head/><body><p>Decode JT9 only above this frequency</p></body></html> <html><head/><body><p>この周波数より上でのみJT9をデコード</p></body></html> - - Hz - Hz - - JT9 - JT9 + Hz + Hz + Split + + + + JT9 + JT9 + + JT65 - JT65 + JT65 @@ -5034,6 +5068,29 @@ Error(%2): %3 パレット読み込み + + WorkedBefore + + + Invalid ADIF field %0: %1 + + + + + Malformed ADIF field %0: %1 + + + + + Invalid ADIF header + + + + + Error opening ADIF log file for read: %0 + + + configuration_dialog @@ -5232,9 +5289,8 @@ Error(%2): %3 - Enable VHF/UHF/Microwave features - VHF/UHF/Microwave機能をオン + VHF/UHF/Microwave機能をオン @@ -5350,7 +5406,7 @@ quiet period when decoding is done. - + Port: ポート: @@ -5361,137 +5417,149 @@ quiet period when decoding is done. + Serial Port Parameters シリアルポートパラメーター - + Baud Rate: ボーレート: - + Serial port data rate which must match the setting of your radio. シリアルポートの速度(無線機と同じでなければなりません). - + 1200 - + 2400 - + 4800 - + 9600 - + 19200 - + 38400 - + 57600 - + 115200 - + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> <html><head/><body><p>CATインターフェイスのデータビット数(大抵はビット).</p></body></html> - + + Data bits + + + + Data Bits データビット - + D&efault デフォルト(&e) - + Se&ven - + E&ight - + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> <html><head/><body><p>CATインターフェイスのストップビット数</p><p>(詳細は取扱説明書を参照のこと).</p></body></html> - + + Stop bits + + + + Stop Bits ストップビット - - + + Default デフォルト - + On&e - + T&wo - + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> <html><head/><body><p>無線機のCATインターフェイスに使われるフロー制御(通常 &quot;None&quot; たまに &quot;Hardware&quot;).</p></body></html> - + + Handshake ハンドシェイク - + &None なし(&N) - + Software flow control (very rare on CAT interfaces). ソフトウェアによるフロー制御(CATではほとんど使われません). - + XON/XOFF XON/XOFF - + Flow control using the RTS and CTS RS-232 control lines not often used but some radios have it as an option and a few, particularly some Kenwood rigs, require it). @@ -5500,74 +5568,75 @@ a few, particularly some Kenwood rigs, require it). またKenwoodのいくつかの無線機では必須です. - + &Hardware ハードウェア(&H) - + Special control of CAT port control lines. CAT用ポートの特別な設定. - + + Force Control Lines 制御信号を強制設定 - - + + High - - + + Low - + DTR: - + RTS: - + How this program activates the PTT on your radio? このプログラムがどのようにして無線機のPTTを制御するか? - + PTT Method PTT方式 - + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> <html><head/><body><p>無線機のVOXで送受信を切り替える.</p><p>無線機インターフェイスハードウェアが無いとき使用.</p></body></html> - + VO&X VO&X - + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> <html><head/><body><p>RS-232CのDTR信号をPTT制御に使う.</p><p>市販のCATインターフェイスのうち、いくつかはこの方法を使っています.</p><p>CATシリアルポートのDTRを使うか、または、別のポートのDTRを使うこともあります.</p></body></html> - + &DTR - + Some radios support PTT via CAT commands, use this option if your radio supports it and you have no other hardware interface for PTT. @@ -5576,47 +5645,47 @@ other hardware interface for PTT. 他のハードウェアインターフェイスが必要なくなります. - + C&AT - + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> <html><head/><body><p>RS-232CのRTS信号をPTT制御に使います.</p><p>市販のCATインターフェイスのうち、いくつかはこの方法を使っています.</p><p>CATシリアルポートのRTSを使う、または、別のポートのRTSを使うこともあります. CATポートのハードウェアフロー制御を使う場合、このオプションは使えないことに注意してください.</p></body></html> - + R&TS - + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> <html><head/><body><p>PTT制御に使うシリアルポートを選択. このオプションはDTRまたはRTSでPTTを制御する場合に有効となります.</p><p>CAT制御のシリアルポートと同じポートでも構いません.</p><p>いくつかの特殊なインターフェイスでは特別なCATを選択します。そればリモートコントロールに使われたりします(例:OmniRig).</p></body></html> - + Modulation mode selected on radio. 無線機の変調モード. - + Mode モード - + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> <html><head/><body><p>通常はUSBを使います</p><p>(無線機がデータやパケットモードを持っている場合以外).</p></body></html> - + US&B US&B - + Don't allow the program to set the radio mode (not recommended but use if the wrong mode or bandwidth is selected). @@ -5625,23 +5694,23 @@ or bandwidth is selected). セットされているときは使います). - - + + None 指定なし - + If this is available then it is usually the correct mode for this program. これが使えるときは正しいモード. - + Data/P&kt - + Some radios can select the audio input using a CAT command, this setting allows you to select which audio input will be used (if it is available then generally the Rear/Data option is best). @@ -5650,52 +5719,52 @@ this setting allows you to select which audio input will be used 後ろのコネクタかデータ端子を使うことをお勧めします. - + Transmit Audio Source 送信オーディオ入力端子 - + Rear&/Data 後面/データ端子(&/) - + &Front/Mic 前面/マイク端子(&F) - + Rig: 無線機: - + Poll Interval: ポーリング間隔: - + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> <html><head/><body><p>無線機の状態を見に行く時間間隔. 長めに設定すると、無線機の状態がプログラムに反映されるのに長くかかります.</p></body></html> - + s - + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> <html><head/><body><p>これらの設定を使って無線機接続を試みます.</p><p>接続が確立されればボタンは緑に、失敗すれば赤になります.</p></body></html> - + Test CAT CATをテスト - + Attempt to activate the transmitter. Click again to deactivate. Normally no power should be output since there is no audio being generated at this time. @@ -5708,47 +5777,47 @@ radio interface behave as expected. インターフェイスが正しくどうさするかどうかチェックしてください. - + Test PTT PTTテスト - + Split Operation スプリット - + Fake It 擬似スプリット - + Rig 無線機 - + A&udio オーディオ(&u) - + Audio interface settings オーディオインターフェース設定 - + Souncard サウンドカード - + Soundcard サウンドカード - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5760,46 +5829,51 @@ transmitting periods. さもないと、システム音が送信されてしまいます. - + + Days since last upload + + + + Select the audio CODEC to use for receiving. 受信用オーディオコーデックを選択. - + &Input: 入力(&I): - + Select the channel to use for receiving. 受信用チャンネルを選択. - - + + Mono モノラル - - + + Left - - + + Right - - + + Both 両方 - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5809,110 +5883,115 @@ both here. モノラルまたはステレオをここで選びます. - + + Enable VHF and submode features + + + + Ou&tput: 出力(&t): - - + + Save Directory ディレクトリ保存 - + Loc&ation: 場所(&a): - + Path to which .WAV files are saved. .WAVファイルを保存するパス. - - + + TextLabel テキストラベル - + Click to select a different save directory for .WAV files. ここをクリックして .WAVファイルを保存する別のディレクトリを選択. - + S&elect 選択(&e) - - + + AzEl Directory AzElディレクトリ - + Location: 場所: - + Select 選択 - + Power Memory By Band バンドごとの出力 - + Remember power settings by band バンドごとに出力設定 - + Enable power memory during transmit 送信中に出力メモリを可能とする - + Transmit 送信 - + Enable power memory during tuning チューニング中に出力メモリを可能とする - + Tune チューン - + Tx &Macros Txマクロ(&M) - + Canned free text messages setup フリーテキストメッセージ設定 - + &Add 追加(&A) - + &Delete 削除(&D) - + Drag and drop items to rearrange order Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items @@ -5921,37 +6000,37 @@ Click, SHIFT+Click and, CRTL+Click to select items SHIFT+クリック、CTRL+クリックで複数選択できます - + Reportin&g レポート(&g) - + Reporting and logging settings レポートとログの設定 - + Logging ログ - + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. 73またはフリーテキストメッセージを送った後でQSOをログするかどうかたずねるダイアログがポップアップします. - + Promp&t me to log QSO QSOをログするよう促すメッセージを出す(&t) - + Op Call: オペレータコール: - + Some logging programs will not accept the type of reports saved by this program. Check this option to save the sent and received reports in the @@ -5962,54 +6041,54 @@ comments field. コメントに付加します. - + d&B reports to comments dBレポートをコメントに追加(&B) - + Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. このオプションをオンにすると73またはフリーテキスト メッセージを送った後、DXコールとDXグリッドをクリアします. - + Clear &DX call and grid after logging ログした後DXコールとDXグリッドをクリアする(&D) - + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> <html><head/><body><p>いくつかのログプログラムはWSJT-Xのモード名を受け付けません.</p></body></html> - + Con&vert mode to RTTY モードをRTTYに変換(&v) - + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> <html><head/><body><p>もしオペレータのコールサインが局のコールサインと違う場合、ここに指定.</p></body></html> - + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> <html><head/><body><p>ここをチェックするとQSOが終了次第自動的にログに追加.されます.</p></body></html> - + Log automatically (contesting only) 自動ログ記録(コンテストのみ) - + Network Services ネットワークサービス - + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> @@ -6024,507 +6103,543 @@ for assessing propagation and system performance. リバースビーコンに使用されます. - + Enable &PSK Reporter Spotting PSK Reporterによるスポットをオン(&P) - + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + Use TCP/IP connection - + UDP Server UDPサーバー - + UDP Server: UDPサーバー: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>ネットワークサービスのホスト名指定オプション.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ホスト名</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 アドレス</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 アドレス</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 マルチキャストグループアドレス</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 マルチキャストグループアドレス</li></ul><p>空白の場合は、UDPブロードキャストがオフ.</p></body></html> - + UDP Server port number: UDPサーバーのポート番号: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p>WSJT-Xがデータを送る先のUDPポート番号. ゼロの場合はデータを送りません.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p>オンにすると、WSJT-XはUDPサーバーからのデータを受け付けます.</p></body></html> - + Accept UDP requests UDP要求を受け付ける - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p>UDPリクエストを受け付けたことを表示. OSやウィンドウマネージャによって振る舞いが変わります. アプリウィンドウが最小化されていたり隠れていたりしていてもUDPリクエストが送られてきたことを知るために使うことができます.</p></body></html> - + Notify on accepted UDP request UDPリクエストが来たとき知らせる - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p>UDPリクエストが来たとき、ウィンドウを最小化から元の大きさへ戻します.</p></body></html> - + Accepted UDP request restores window ウィンドウを元に戻すUDPリクエストを受け付ける - + Secondary UDP Server (deprecated) 第二UDPサーバー(使わないことを推奨) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p>ここをチェックすると、WSJT-XはADIFフォーマットのログ情報を指定のホストの指定のポートへブロードキャストします. </p></body></html> - + Enable logged contact ADIF broadcast ADIFログ情報をブロードキャスト - + Server name or IP address: サーバー名またはIPアドレス: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>ADIF UDP ブロードキャストを受けるN1MM Logger+のホスト名. 通常は 'localhost' または ip アドレス 127.0.0.1</p><p>フォーマット:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">ホスト名</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 マルチキャストグループアドレス</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 マルチキャストグループアドレス</li></ul><p>空白にすることで、UDP経由のADIF情報ブロードキャストを停止.</p></body></html> - + Server port number: サーバーのポート番号: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>WSJT-XがADIF情報をブロードキャストする先のUDPポート番号. N1MM Logger+のときは2333. ゼロの場合はブロードキャスト停止.</p></body></html> - + Frequencies 周波数 - + Default frequencies and band specific station details setup デフォルト周波数及びバンドごとの局情報設定 - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>あなたの無線機に合わせたパラメータ設定の詳細については、WSJT-Xユーザーガイドの &quot;Frequency Calibration&quot; セクションを参照のこと.</p></body></html> - + Frequency Calibration 周波数較正 - + Slope: スロープ: - + ppm - + Intercept: インターセプト: - + Hz - + Working Frequencies 運用周波数 - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>右クリックで周波数リストの管理.</p></body></html> - + Station Information 局情報 - + Items may be edited. Right click for insert and delete options. 項目は編集できます. 右クリックで挿入や削除が選べます. - + Colors - + Decode Highlightling デコードハイライト - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> クリックすることでADIFファイル(wsjtx_log.adi)を読み直し、交信済みの情報を得る - + Rescan ADIF Log ADIFログを再読み込み - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>ここから上すべてのハイライト項目のデフォルト値と優先度をリセットする.</p></body></html> - + Reset Highlighting ハイライトをリセット - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body><p>チェックボックスでオンオフを切り替え、右クリックで項目を編集、文字色、背景色を指定、あるいはデフォルト値へリセット. ドラッグアンドドロップで項目の優先順位を変更、リストの上にいくほど優先度高.</p><p>文字色と背景色はそれぞれ指定または解除が選択可能. 解除とはその項目では色指定されないが、より低い優先度の項目で指定されるかもしれないという意味.</p></body></html> - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>チェックするとモードごとに新DXCCエンティティ、新グリッドスクエア、新コールサインを表示します.</p></body></html> - + Highlight by Mode モードハイライト - + Include extra WAE entities WAEの特別エンティティを含む - + Check to for grid highlighting to only apply to unworked grid fields チェックするとグリッドハイライトは未交信グリッドのみに適用 - + Only grid Fields sought グリッドのみ検索 - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>LotWユーザー参照設定.</p></body></html> - + Logbook of the World User Validation LotWユーザー確認 - + Users CSV file URL: ユーザーのCSVファイルURL: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body><p>ARRL LotWのURL. QSO相手がLotWを使っているかどうかを判定しハイライトするために、相手がいつログデータをLotWへアップロードしたか調べます.</p></body></html> - + + URL + + + + https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>このボタンを押すとQSO相手が最近いつLotWへログをアップロードしたかという情報を取得します.</p></body></html> - + Fetch Now データ取り込み - + Age of last upload less than: 最終アップロード日がこの日数以内: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p>このスピンボックスを使ってLotWユーザが過去何日以内にLotWへログをアップデートしたらLotWを現在も使っていると判断するか指定します.</p></body></html> - + days - + Advanced 詳細 - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>JT65 VHF/UHF/Microwaveデコードのユーザパラメータ設定.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters JT65 VHF/UHF/Microwave デコードパラメータ - + Random erasure patterns: ランダム消去パターン: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p>確率的判定の最大ランダム消去パターン数 Reed Solomon デコーダーは 10^(n/2).</p></body></html> - + Aggressive decoding level: デコードレベル: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>大きな値にするとデコードする確率は高まりますが、同時に誤ったデータを出力する可能性も高まります.</p></body></html> - + Two-pass decoding 2パスデコード - + Special operating activity: Generation of FT4, FT8, and MSK144 messages 特別な運用 FT4, FT8, MSK144用のメッセージ生成 - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> <html><head/><body><p>FT8 DXペディションモード: DXを呼ぶHound オペレータ</p></body></html> - + + Hound - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>北アメリカ VHF/UHF/Microwave コンテストなど、コンテストナンバーとして4桁のグリッドロケーター使う場合.</p></body></html> - + + NA VHF Contest NA VHFコンテスト - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>FT8 DXペディションモード: Fox (DXペディションのオペレータ).</p></body></html> - + + Fox - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>European VHF+ コンテスト, コンテストナンバーとしてシグナルレポート、シリアルナンバー、6桁のロケータを交換する場合.</p></body></html> - + + EU VHF Contest EU VHFコンテスト - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY ラウンドアップなどのコンテスト. コンテストナンバーはアメリカ州、カナダ州、または &quot;DX&quot;.</p></body></html> - + + R T T Y Roundup + + + + RTTY Roundup messages RTTYラウンドアップメッセージ - + + RTTY Roundup exchange + + + + RTTY RU Exch: - + NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL フィールドデーのコンテストナンバー、送信機, クラス, ARRL/RAC セクション または &quot;DX&quot;.</p></body></html> - + + A R R L Field Day + + + + ARRL Field Day ARRLフィールドデー - + + Field Day exchange + + + + FD Exch: FD ナンバー: - + 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>World-Wide デジモードコンテスト</p><p><br/></p></body></html> - + + WW Digital Contest + + + + WW Digi Contest WWデジタルコンテスト - + Miscellaneous その他 - + Degrade S/N of .wav file: wavファイルのSN比を落とす: - - + + For offline sensitivity tests オフライン感度テスト用 - + dB dB - + Receiver bandwidth: 受信バンド幅: - + Hz Hz - + Tx delay: 送信遅延: - + Minimum delay between assertion of PTT and start of Tx audio. PTTをオンにしてからオーディオ信号を発生するまでの最小時間. - + s - + + Tone spacing トーン間隔 - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>通常の2倍のトーン間隔を持った信号を送信. 電波を出す際に周波数を2分の1にする特別なLF/MF送信機用.</p></body></html> - + x 2 x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>通常の4倍のトーン間隔を持った信号を送信. 電波を出す際に周波数を4分の1にする特別なLF/MF送信機用.</p></body></html> - + x 4 x 4 - + + Waterfall spectra ウォーターフォールスペクトラム - + Low sidelobes サイドローブ表示控え目 - + Most sensitive 最大感度 - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p>コンフィグレーション変更の破棄 (キャンセル) または 適用 (OK)</p><p>無線機インターフェイスのリセットとサウンドカードの変更を含む</p></body></html> @@ -6631,12 +6746,12 @@ Right click for insert and delete options. 共有メモリセグメントが作成できません - + Sub-process error - + Failed to close orphaned jt9 process diff --git a/translations/wsjtx_zh.ts b/translations/wsjtx_zh.ts index 1744307d2..3d5b8dd6f 100644 --- a/translations/wsjtx_zh.ts +++ b/translations/wsjtx_zh.ts @@ -129,17 +129,17 @@ 天文数据 - + Doppler Tracking Error 多普勒跟踪错误 - + Split operating is required for Doppler tracking 多普勒跟踪需要异频操作 - + Go to "Menu->File->Settings->Radio" to enable split operation 转到 "菜单->档案->设置->无线电设备" 启用异频操作 @@ -147,32 +147,32 @@ Bands - + Band name 波段名称 - + Lower frequency limit 频率下限 - + Upper frequency limit 频率上限 - + Band 波段 - + Lower Limit 下限 - + Upper Limit 上限 @@ -368,75 +368,75 @@ Configuration::impl - - - + + + &Delete 删除(&D) - - + + &Insert ... 插入(&I) ... - + Failed to create save directory 无法创建保存目录 - + path: "%1% 目錄: "%1% - + Failed to create samples directory 无法创建示例目录 - + path: "%1" 目录: "%1" - + &Load ... 加载(&L) ... - + &Save as ... 另存为(&S) ... - + &Merge ... 合并(&M) ... - + &Reset 重置(&R) - + Serial Port: 串行端口: - + Serial port used for CAT control 用于CAT控制的串行端口 - + Network Server: 网络服务器: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -451,12 +451,12 @@ Formats: [IPv6-地址]:端口 - + USB Device: USB 设备: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -467,152 +467,157 @@ Format: [VID[:PID[:供应商[:产品]]]] - + + Invalid audio input device 无效的音频输入设备 - Invalid audio out device - 无效的音频输出设备 + 无效的音频输出设备 - + + Invalid audio output device + + + + Invalid PTT method 无效的PTT方法 - + Invalid PTT port 无效的PTT端口 - - + + Invalid Contest Exchange 无效的竞赛交换数据 - + You must input a valid ARRL Field Day exchange 您必须输入有效的 ARRL Field Day交换数据 - + You must input a valid ARRL RTTY Roundup exchange 您必须输入有效的 ARRL RTTY Roundup 交换数据 - + Reset Decode Highlighting 重置解码突出显示 - + Reset all decode highlighting and priorities to default values 将所有解码突出显示和优先级重置为默认值 - + WSJT-X Decoded Text Font Chooser WSJT-X 解码文本字体选择 - + Load Working Frequencies 载入工作频率 - - - + + + Frequency files (*.qrg);;All files (*.*) 频率文件 (*.qrg);;所有文件 (*.*) - + Replace Working Frequencies 替换工作频率 - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? 是否确实要放弃当前工作频率, 并将其替换为加载的频率? - + Merge Working Frequencies 合并工作频率 - - - + + + Not a valid frequencies file 不是有效的频率文件 - + Incorrect file magic 不正确的文件內容 - + Version is too new 版本太新 - + Contents corrupt 内容已损坏 - + Save Working Frequencies 保存工作频率 - + Only Save Selected Working Frequencies 仅保存选定的工作频率 - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. 是否确实要仅保存当前选择的工作频率? 单击 否 可保存所有. - + Reset Working Frequencies 重置工作频率 - + Are you sure you want to discard your current working frequencies and replace them with default ones? 您确定要放弃您当前的工作频率并用默认值频率替换它们吗? - + Save Directory 保存目录 - + AzEl Directory AzEl 目录 - + Rig control error 无线电设备控制错误 - + Failed to open connection to rig 无法打开无线电设备的连接 - + Rig failure 无线电设备故障 @@ -1437,22 +1442,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency 添加频率 - + IARU &Region: IA&RU 区域: - + &Mode: 模式(&M): - + &Frequency (MHz): 频率 (M&Hz): @@ -1460,26 +1465,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region IARU 区域 - - + + Mode 模式 - - + + Frequency 频率 - - + + Frequency (MHz) 频率 (MHz) @@ -2071,12 +2076,13 @@ Error(%2): %3 - - - - - - + + + + + + + Band Activity 波段活动 @@ -2088,11 +2094,12 @@ Error(%2): %3 - - - - - + + + + + + Rx Frequency 接收信息 @@ -2127,122 +2134,237 @@ Error(%2): %3 切换监听开/关 - + &Monitor 监听(&M) - + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> <html><head/><body><p>擦除右窗口. 双击可擦除两个窗口.</p></body></html> - + Erase right window. Double-click to erase both windows. 擦除右窗口. 双击可擦除两个窗口. - + &Erase 擦除(&E) - + <html><head/><body><p>Clear the accumulating message average.</p></body></html> <html><head/><body><p>清除累积信息平均值.</p></body></html> - + Clear the accumulating message average. 清除累积信息平均值. - + Clear Avg 清除平均 - + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> <html><head/><body><p>在通联频率下解码最近的接收周期</p></body></html> - + Decode most recent Rx period at QSO Frequency 在通联频率下解码最近的接收周期 - + &Decode 解码(&D) - + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> <html><head/><body><p>切换自动发射 开/关</p></body></html> - + Toggle Auto-Tx On/Off 切换自动发射 开/关 - + E&nable Tx 启用发射(&n) - + Stop transmitting immediately 立即停止发射 - + &Halt Tx 停止发射(&H) - + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> <html><head/><body><p>切换发射纯音调 开/关</p></body></html> - + Toggle a pure Tx tone On/Off 切换发射纯音调 开/关 - + &Tune 调谐(&T) - + Menus 菜单 - + + 1/2 + + + + + 2/2 + + + + + 1/3 + + + + + 2/3 + + + + + 3/3 + + + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 1/5 + + + + + 2/5 + + + + + 3/5 + + + + + 4/5 + + + + + 5/5 + + + + + 1/6 + + + + + 2/6 + + + + + 3/6 + + + + + 4/6 + + + + + 5/6 + + + + + 6/6 + + + + + Percentage of minute sequences devoted to transmitting. + + + + + Prefer Type 1 messages + + + + + <html><head/><body><p>Transmit during the next sequence.</p></body></html> + + + + USB dial frequency 上边带频率 - + 14.078 000 - + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> <html><head/><body><p>当只存在噪音时建议30dB<br/>绿色好<br/>红色时可能发生剪切<br/>黄色时太低</p></body></html> - + Rx Signal 接收信号 - + 30dB recommended when only noise present Green when good Red when clipping may occur @@ -2253,338 +2375,344 @@ Yellow when too low 黄色时太低 - + DX Call DX 呼号 - + DX Grid DX 网格 - + Callsign of station to be worked 正在通联的电台呼号 - + Search for callsign in database 在数据库中搜索此呼号的网格数据 - + &Lookup 检索(&L) - + Locator of station to be worked 通联中的电台定位 - + Az: 251 16553 km 角度: 251 16553 公里 - + Add callsign and locator to database 增加这呼号及网格的数据在数据库中 - + Add 增加 - + Pwr 功率 - + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> <html><head/><body><p>如果橙色或红色出现表示无线电设备控制故障, 请单击以重置并读取频率. S 表示异频模式.</p></body></html> - + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. 如果橙色或红色出现表示无线电设备控制故障, 请单击以重置并读取频率. S 表示异频模式. - + ? - + Adjust Tx audio level 调整发射音频电平 - + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> <html><head/><body><p>选择工作频段或输入 MHz 频率或输入 kHz 增量,然后输入 k.</p></body></html> - + Frequency entry 输入频率 - + Select operating band or enter frequency in MHz or enter kHz increment followed by k. 选择工作频段或输入 MHz 频率或输入 kHz 增量,然后输入 k. - + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> - + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> <html><head/><body><p>双击解码文本时, 选择以保持发射频率固定.</p></body></html> - + Check to keep Tx frequency fixed when double-clicking on decoded text. 双击解码文本时, 选择以保持发射频率固定. - + Hold Tx Freq 保持发射频率 - + Audio Rx frequency 音频接收频率 - - - + + + + + Hz 赫兹 - + + Rx 接收 - + + Set Tx frequency to Rx Frequency 将发射频率设置为接收频率 - + - + Frequency tolerance (Hz) 频率容差 (Hz) - + + F Tol 容差 - + + Set Rx frequency to Tx Frequency 将接收频率位置移往发射频率位置 - + - + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> <html><head/><body><p>同步阈值. 较低的数字接受较弱的同步信号.</p></body></html> - + Synchronizing threshold. Lower numbers accept weaker sync signals. 同步阈值. 较低的数字接受较弱的同步信号. - + Sync 同步 - + <html><head/><body><p>Check to use short-format messages.</p></body></html> <html><head/><body><p>选择以使用短格式信息.</p></body></html> - + Check to use short-format messages. 选择以使用短格式信息. - + Sh - + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> <html><head/><body><p>选择以启用 JT9 快速模式</p></body></html> - + Check to enable JT9 fast modes 选择以启用 JT9 快速模式 - - + + Fast 快速 - + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> <html><head/><body><p>选择以启用基于收到的信息自动排序发射信息.</p></body></html> - + Check to enable automatic sequencing of Tx messages based on received messages. 选择以启用基于收到的信息自动排序发射信息. - + Auto Seq 自动程序 - + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> <html><head/><body><p>选择以呼叫第一个解码的响应我的 CQ.</p></body></html> - + Check to call the first decoded responder to my CQ. 选择以呼叫第一个解码的响应我的 CQ. - + Call 1st 呼叫第一个解码 - + Check to generate "@1250 (SEND MSGS)" in Tx6. 选择以生成 "@1250 (发送信息)" 在发射6. - + Tx6 发射6 - + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> <html><head/><body><p>选择发射以偶数分钟或序列, 从 0 开始; 取消选择以奇数序列.</p></body></html> - + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. 选择发射以偶数分钟或序列, 从 0 开始; 取消选择以奇数序列. - + Tx even/1st 发射偶数/第一 - + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> <html><head/><body><p>呼叫 CQ 的频率以 kHz 高于当前的 MHz</p></body></html> - + Frequency to call CQ on in kHz above the current MHz 呼叫 CQ 的频率以 kHz 高于当前的 MHz - + Tx CQ 发射 CQ - + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> <html><head/><body><p>选中此项, 以发射CQ呼叫. 接收将在当前频率上, CQ信息将显示在当前的接收信息窗口, 以便呼叫者知道回复的频率.</p><p>不适用于非标准呼号持有者.</p></body></html> - + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. 选中此项, 以发射CQ呼叫. 接收将在当前频率上, CQ信息将显示在当前的接收信息窗口, 以便呼叫者知道回复的频率. 不适用于非标准呼号持有者. - + Rx All Freqs 接收全部频率 - + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> <html><head/><body><p>子模式確定音調間距; A 最窄.</p></body></html> - + Submode determines tone spacing; A is narrowest. 子模式確定音調間距; A 最窄. - + Submode 子模式 - - + + Fox 狐狸 - + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> <html><head/><body><p>选择以监视速记信息.</p></body></html> - + Check to monitor Sh messages. 选择以监视速记信息. - + SWL - + Best S+P 最佳 S+P - + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> <html><head/><body><p>选中可开始记录校准数据.<br/>当测量校准校正被禁用时.<br/>未检查时您可以查看校准结果.</p></body></html> - + Check this to start recording calibration data. While measuring calibration correction is disabled. When not checked you can view the calibration results. @@ -2593,204 +2721,206 @@ When not checked you can view the calibration results. 未检查时您可以查看校准结果. - + Measure 测量 - + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> <html><head/><body><p>信号报告: 参考2500 Hz 带宽 (dB) 中的信噪比.</p></body></html> - + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). 信号报告: 参考2500 Hz 带宽 (dB) 中的信噪比. - + Report 报告 - + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> <html><head/><body><p>发射/接收 或频率校准序列长度</p></body></html> - + Tx/Rx or Frequency calibration sequence length 发射/接收 或频率校准序列长度 - + + s - + + T/R - + Toggle Tx mode 切换发射模式 - + Tx JT9 @ 发射 JT9 @ - + Audio Tx frequency 音频发射频率 - - + + Tx 发射 - + Tx# 发射# - + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> <html><head/><body><p>双击另一个呼号以排队呼叫您的下一个通联.</p></body></html> - + Double-click on another caller to queue that call for your next QSO. 双击另一个呼号以排队呼叫您的下一个通联. - + Next Call 下一个通联 - + 1 - - - + + + Send this message in next Tx interval 在下一个发射间隔内发送此信息 - + Ctrl+2 - + <html><head/><body><p>Send this message in next Tx interval</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>在下一个发射间隔内发送此信息</p><p>双击以切换使用 发射 1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者)</p></body></html> - + Send this message in next Tx interval 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) 在下一个发射间隔内发送此信息 双击以切换使用 发射 1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者) - + Ctrl+1 - - - - + + + + Switch to this Tx message NOW 立即切换到此发射信息 - + Tx &2 发射 &2 - + Alt+2 - + <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>立即切换到此发射信息</p><p>双击以切换使用 发射 1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者)</p></body></html> - + Switch to this Tx message NOW 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) 立即切换到此发射信息 双击以切换使用 发射 1 信息以启动和电台的通联 (不允许 1 型复合呼叫持有者) - + Tx &1 发射 &1 - + Alt+1 - + Ctrl+6 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>在下一个发射间隔内发送此信息</p><p>双击可重置为标准 73 信息</p></body></html> - + Send this message in next Tx interval Double-click to reset to the standard 73 message 在下一个发射间隔内发送此信息 双击可重置为标准 73 信息 - + Ctrl+5 - + Ctrl+3 - + Tx &3 发射 &3 - + Alt+3 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>在下一个发射间隔内发送此信息</p><p>双击可在 发射4 中的 RRR 和 RR73 信息之间切换 (不允许类型 2 复合呼叫持有者)</p><p>RR73 信息仅在您有理由相信不需要重复信息时才应使用</p></body></html> - + Send this message in next Tx interval Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required @@ -2799,17 +2929,17 @@ RR73 messages should only be used when you are reasonably confident that no mess RR73 信息仅在您有理由相信不需要重复信息时才应使用 - + Ctrl+4 - + <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>立即切换到此发射信息</p><p>双击可在 发射 4 中的 RRR 和 RR73 信息之间切换 (不允许类型 2 复合呼叫持有者)</p><p>RR73 信息仅在您有理由相信不需要重复信息时才应使用</p></body></html> - + Switch to this Tx message NOW Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required @@ -2818,65 +2948,64 @@ RR73 messages should only be used when you are reasonably confident that no mess RR73 信息仅在您有理由相信不需要重复信息时才应使用 - + Tx &4 发射 &4 - + Alt+4 - + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>立即切换到此发射信息</p><p>双击可重置为标准 73 信息</p></body></html> - + Switch to this Tx message NOW Double-click to reset to the standard 73 message 立即切换到此发射信息 双击可重置为标准 73 信息 - + Tx &5 发射 &5 - + Alt+5 - + Now 现在 - + Generate standard messages for minimal QSO 生成标准信息用于通联 - + Generate Std Msgs 生成标准信息 - + Tx &6 发射 &6 - + Alt+6 - - + Enter a free text message (maximum 13 characters) or select a predefined macro from the dropdown list. Press ENTER to add the current text to the predefined @@ -2887,990 +3016,971 @@ list. The list can be maintained in Settings (F2). 列表. 该列表可在设置(F2)中维护. - + Queue up the next Tx message 排队下一个发射信息 - + Next 下一个 - + 2 - + + Quick-Start Guide to FST4 and FST4W + + + + + FST4 + + + + + FST4W + + + Calling CQ - 呼叫 CQ + 呼叫 CQ - Generate a CQ message - 生成CQ信息 + 生成CQ信息 - - - + + CQ - Generate message with RRR - 生成RRR信息 + 生成RRR信息 - - RRR - - - - Generate message with report - 生成报告信息 + 生成报告信息 - dB - 分贝 + 分贝 - Answering CQ - 回答 CQ + 回答 CQ - Generate message for replying to a CQ - 生成信息以回答 CQ + 生成信息以回答 CQ - - + Grid 网格 - Generate message with R+report - 生成 R+ 报告信息 + 生成 R+ 报告信息 - R+dB - R+分贝 + R+分贝 - Generate message with 73 - 生成73信息 + 生成73信息 - - 73 - - - - Send this standard (generated) message - 发送此标准(生成)信息 + 发送此标准(生成)信息 - Gen msg - 生成信息 + 生成信息 - Send this free-text message (max 13 characters) - 发送此自定义文本信息(最多13个字符) + 发送此自定义文本信息(最多13个字符) - Free msg - 自定义文本 + 自定义文本 - - 3 - - - - + Max dB 最大分贝 - + CQ AF CQ 非洲 - + CQ AN CQ 南极 - + CQ AS CQ 亚洲 - + CQ EU CQ 欧洲 - + CQ NA CQ 北美 - + CQ OC CQ 大洋洲 - + CQ SA CQ 南美 - + CQ 0 - + CQ 1 - + CQ 2 - + CQ 3 - + CQ 4 - + CQ 5 - + CQ 6 - + CQ 7 - + CQ 8 - + CQ 9 - + Reset 重置 - + N List N 列表 - + N Slots N 插槽 - - + + + + + + + Random 随机 - + Call 呼号 - + S/N (dB) 信噪比(分贝) - + Distance 距离 - + More CQs 更多 CQ - Percentage of 2-minute sequences devoted to transmitting. - 用于传输的 2 分钟序列的百分比. + 用于传输的 2 分钟序列的百分比. - + + % - + Tx Pct 发射 Pct - + Band Hopping 波段预案 - + Choose bands and times of day for band-hopping. 选择波段和一天之中的时间进行波段跳跃. - + Schedule ... 时间流程 ... - + Upload decoded messages to WSPRnet.org. 将解码的信息上载到 WSPRnet.org. - + Upload spots 上传 spots - + <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>6 位定位器会导致发送 2 个不同的信息, 第二个包含完整定位器, 但只有哈希呼号. 其他电台必须解码第一个一次. 然后才能在第二个中解码您的呼叫. 如果此选项将避免两个信息协议. 则选中此选项仅发送 4 位定位器.</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. 6 位定位器会导致发送 2 个不同的信息, 第二个包含完整定位器, 但只有哈希呼号. 其他电台必须解码第一个一次. 然后才能在第二个中解码您的呼叫. 如果此选项将避免两个信息协议. 则选中此选项仅发送 4 位定位器. - Prefer type 1 messages - 首选类型 1信息 + 首选类型 1信息 - + No own call decodes 没有自己的呼号解码 - Transmit during the next 2-minute sequence. - 在接下来的2分钟序列中输送. + 在接下来的2分钟序列中输送. - + Tx Next 发射下一个信息 - + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. 将发射功率设置为 dBm (dB 高于 1 mW) 作为 WSPR 信息的一部分. - + + NB + + + + File 文件 - + View 显示 - + Decode 解码 - + Save 保存 - + Help 帮助 - + Mode 模式 - + Configurations 配置 - + Tools 工具 - + Exit 关闭软件 - Configuration - 配置档 + 配置档 - - F2 - - - - + About WSJT-X 有关 WSJT-X - + Waterfall 瀑布图 - + Open 打开文件 - + Ctrl+O - + Open next in directory 打开下一个文件 - + Decode remaining files in directory 打开余下文件 - + Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir 删除所有在SaveDir目录内 *.wav && *.c2 - + None 不保存 - + Save all 保存所有 - + Online User Guide 在线用户指南 - + Keyboard shortcuts 键盘快捷键 - + Special mouse commands 滑鼠特殊组合 - + JT9 - + Save decoded 保存解码 - + Normal 正常 - + Deep 深度 - Monitor OFF at startup - 启动时关闭监听 + 启动时关闭监听 - + Erase ALL.TXT 删除 ALL.TXT - + Erase wsjtx_log.adi 删除通联日志 wsjtx_log.adi - Convert mode to RTTY for logging - 将日志记录模式转换为RTTY + 将日志记录模式转换为RTTY - Log dB reports to Comments - 将 dB 报告记录到注释 + 将 dB 报告记录到注释 - Prompt me to log QSO - 提示我记录通联 + 提示我记录通联 - Blank line between decoding periods - 解码期间之间添加空白行 + 解码期间之间添加空白行 - Clear DX Call and Grid after logging - 日志记录后清除 DX 呼号和网格 + 日志记录后清除 DX 呼号和网格 - Display distance in miles - 显示距离以英里为单位 + 显示距离以英里为单位 - Double-click on call sets Tx Enable - 双击呼号启用发射 + 双击呼号启用发射 - - + F7 - Tx disabled after sending 73 - 发送 73 后停止发射 + 发送 73 后停止发射 - - + Runaway Tx watchdog 运行发射监管计时器 - Allow multiple instances - 允许多个情况 + 允许多个情况 - Tx freq locked to Rx freq - 发射频率锁定到接收频率 + 发射频率锁定到接收频率 - + JT65 - + JT9+JT65 - Tx messages to Rx Frequency window - 发射信息发送到接收信息窗口 + 发射信息发送到接收信息窗口 - - Gray1 - - - - Show DXCC entity and worked B4 status - 显示 DXCC 实体和曾经通联状态 + 显示 DXCC 实体和曾经通联状态 - + Astronomical data 天文数据 - + List of Type 1 prefixes and suffixes 类型 1 前缀和后缀的列表 - + Settings... 设置... - + Local User Guide 本地用户指南 - + Open log directory 打开日志文件目录 - + JT4 - + Message averaging 信息平均值 - + Enable averaging 平均值 - + Enable deep search 启用深度搜索 - + WSPR - + Echo Graph 回波图 - + F8 - + Echo - + EME Echo mode EME 回波模式 - + ISCAT - + Fast Graph 快速图 - + F9 - + &Download Samples ... 下载样本(&D) ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>下载演示各种模式的示例音频文件.</p></body></html> - + MSK144 - + QRA64 - + Release Notes 发行说明 - + Enable AP for DX Call 启用 AP 为 DX 呼叫 - + FreqCal - + Measure reference spectrum 测量参考频谱 - + Measure phase response 测量相位响应 - + Erase reference spectrum 擦除参考频谱 - + Execute frequency calibration cycle 执行频率校准周期 - + Equalization tools ... 均衡工具 ... - - WSPR-LF - - - - Experimental LF/MF mode - 实验性 LF/MF 模式 + 实验性 LF/MF 模式 - + FT8 - - + + Enable AP 启用 AP - + Solve for calibration parameters 校准参数的解算 - + Copyright notice 版权声明 - + Shift+F1 - + Fox log 狐狸日志 - + FT8 DXpedition Mode User Guide FT8 远征模式用户指南 - + Reset Cabrillo log ... 重置卡布里略日志 ... - + Color highlighting scheme 颜色突显方案 - Contest Log - 竞赛日志 + 竞赛日志 - + Export Cabrillo log ... 导出卡布里略日志 ... - Quick-Start Guide to WSJT-X 2.0 - WSJT-X 2.0 快速入门指南 + WSJT-X 2.0 快速入门指南 - + Contest log 竞赛日志 - + Erase WSPR hashtable 擦除 WSPR 哈希表 - + FT4 - + Rig Control Error 无线电设备控制错误 - - - + + + Receiving 接收 - + Do you want to reconfigure the radio interface? 是否要重新配置无线电设备接口? - + + %1 (%2 sec) audio frames dropped + + + + + Audio Source + + + + + Reduce system load + + + + + Excessive dropped samples - %1 (%2 sec) audio frames dropped + + + + Error Scanning ADIF Log 扫描 ADIF 日志错误 - + Scanned ADIF log, %1 worked before records created 扫描 ADIF 日志, %1 创建曾经通联记录 - + Error Loading LotW Users Data 加载 LotW 用户数据错误 - + Error Writing WAV File 写入 WAV 文件时错误 - + Configurations... 配置文件... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message 信息 - + Error Killing jt9.exe Process 错误终止 jt9.exe 进程 - + KillByName return code: %1 按名称终止返回代码: %1 - + Error removing "%1" 删除时出错误 "%1" - + Click OK to retry 单击 确定 重试 - - + + Improper mode 模式不正确 - - + + File Open Error 文件打开出错误 - - - - - + + + + + Cannot open "%1" for append: %2 无法打开 "%1" 用于附加: %2 - + Error saving c2 file 保存 c2 文件出错误 - + Error in Sound Input 声音输入出错误 - + Error in Sound Output 声音输出错误 - - - + + + Single-Period Decodes 单周期解码 - - - + + + Average Decodes 平均解码 - + Change Operator 改变操作员 - + New operator: 新操作员: - + Status File Error 状态文件错误 - - + + Cannot open "%1" for writing: %2 无法打开 "%1" 用于写入: %2 - + Subprocess Error 子流程出错误 - + Subprocess failed with exit code %1 子流程失败, 退出代码为 %1 - - + + Running: %1 %2 运行: %1 %2 - + Subprocess error 子进程错误 - + Reference spectrum saved 保存参考频谱 - + Invalid data in fmt.all at line %1 在 %1 行中 fmt.all 的无效数据 - + Good Calibration Solution 良好的校准解决方案 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3879,37 +3989,37 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements 删除校准测量值 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all" 文件将重命名为 "fmt.bak" - + No data read from disk. Wrong file format? 没有从磁盘读取数据. 文件格式出错误? - + Confirm Delete 确认删除 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? 是否确实要删除所有 *.wav 和 *.c2 文件在 "%1"? - + Keyboard Shortcuts 键盘快捷键 - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -3959,12 +4069,51 @@ list. The list can be maintained in Settings (F2). - + Special Mouse Commands 滑鼠特殊组合 - + + No more files to open. + 没有要打开的文件. + + + + Spotting to PSK Reporter unavailable + + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. + 请选择其他发射频率. WSJT-X 不会故意传输另一个模式在 WSPR 30米子波段上. + + + + WSPR Guard Band + WSPR保护波段 + + + + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. + 请选择其它频率. WSJT-X 不会运行狐狸模式在标准 FT8 波段. + + + + Fox Mode warning + 狐狸模式警告 + + + + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: + +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." + 如果您根据 GNU 通用公共许可证条款合理使用 WSJT-X 的任何部分, 则必须在衍生作品中醒目地显示以下版权声明: + +"WSJT-X 的算法, 源代码, 外观和感觉及相关程序,和协议规格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版权 (C) 2001-2019 由以下一个或多个作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 开发组的其他成员." + + + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -3975,7 +4124,7 @@ list. The list can be maintained in Settings (F2). <td><b>Click</b> to set Rx frequency.<br/> <b>Shift-click</b> to set Tx frequency.<br/> <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> - <b>Double-click</b> to also decode at Rx frequency.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> </td> </tr> <tr> @@ -3983,10 +4132,10 @@ list. The list can be maintained in Settings (F2). <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> locator to Dx Grid, change Rx and Tx frequency to<br/> decoded signal's frequency, and generate standard<br/> - messages.<br/> - If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> - is your own call, Tx frequency is not changed unless <br/> - <b>Ctrl</b> is held down.<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> </td> </tr> <tr> @@ -4000,51 +4149,12 @@ list. The list can be maintained in Settings (F2). - - No more files to open. - 没有要打开的文件. - - - - Spotting to PSK Reporter unavailable - - - - - Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - 请选择其他发射频率. WSJT-X 不会故意传输另一个模式在 WSPR 30米子波段上. - - - - WSPR Guard Band - WSPR保护波段 - - - - Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - 请选择其它频率. WSJT-X 不会运行狐狸模式在标准 FT8 波段. - - - - Fox Mode warning - 狐狸模式警告 - - - - If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: - -"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - 如果您根据 GNU 通用公共许可证条款合理使用 WSJT-X 的任何部分, 则必须在衍生作品中醒目地显示以下版权声明: - -"WSJT-X 的算法, 源代码, 外观和感觉及相关程序,和协议规格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版权 (C) 2001-2019 由以下一个或多个作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 开发组的其他成员." - - - + Last Tx: %1 最后发射: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4055,183 +4165,182 @@ To do so, check 'Special operating activity' and 设置高级选项卡上的 '欧洲 VHF 竞赛'. - + Should you switch to ARRL Field Day mode? 是否应切换到 ARRL Field Day 模式? - + Should you switch to RTTY contest mode? 是否应切换到 RTTY 竞赛模式? - - - - + + + + Add to CALL3.TXT 添加到 CALL3.TXT - + Please enter a valid grid locator 请输入有效的网格定位 - + Cannot open "%1" for read/write: %2 无法打开 "%1" 用于读/写: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 已经在 CALL3.TXT, 你想替换它吗? - + Warning: DX Call field is empty. 警告: DX 呼号字段为空. - + Log file error 日志文件错误 - + Cannot open "%1" 无法打开 "%1" - + Error sending log to N1MM 将日志发送到 N1MM 时发生错误 - + Write returned "%1" 写入返回 "%1" - + Stations calling DXpedition %1 呼叫远征电台 %1 - + Hound 猎犬 - + Tx Messages 发射信息 - - - + + + Confirm Erase 确认擦除 - + Are you sure you want to erase file ALL.TXT? 是否确实要擦除 ALL.TXT 文件? - - + + Confirm Reset 确认重置 - + Are you sure you want to erase your contest log? 是否确实要擦除竞赛日志? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 执行此操作将删除当前竞赛的所有通联记录. 它们将保留在 ADIF 日志文件中, 但无法导出到您的卡布里略日志中. - + Cabrillo Log saved 卡布里略日志已保存 - + Are you sure you want to erase file wsjtx_log.adi? 是否确实要擦除 wsjtx_log.adi 文件? - + Are you sure you want to erase the WSPR hashtable? 是否确实要擦除 WSPR 哈希表? - VHF features warning - VHF 功能警告 + VHF 功能警告 - + Tune digital gain 调谐数码增益 - + Transmit digital gain 传输数码增益 - + Prefixes 前缀 - + Network Error 网络错误 - + Error: %1 UDP server %2:%3 错误: %1 UDP 服务器 %2:%3 - + File Error 文件错误 - + Phase Training Disabled 已禁用阶段训练 - + Phase Training Enabled 已启用阶段训练 - + WD:%1m - - + + Log File Error 日志文件错误 - + Are you sure you want to clear the QSO queues? 是否确实要清除通联队列? @@ -4253,8 +4362,8 @@ UDP 服务器 %2:%3 Modes - - + + Mode 模式 @@ -4411,7 +4520,7 @@ UDP 服务器 %2:%3 无法打开 LotW 用户 CSV 文件: '%1' - + OOB @@ -4602,7 +4711,7 @@ Error(%2): %3 不可恢复的出错误, 音频输入设备此时不可用. - + Requested input audio format is not valid. 请求的输入音频格式无效. @@ -4612,37 +4721,37 @@ Error(%2): %3 设备不支持请求输入的音频格式. - + Failed to initialize audio sink device 无法初始化音频接收器设备 - + Idle 闲置 - + Receiving 接收 - + Suspended 暂停 - + Interrupted 中断 - + Error 错误 - + Stopped 停止 @@ -4650,62 +4759,67 @@ Error(%2): %3 SoundOutput - + An error opening the audio output device has occurred. 打开音频输出设备时错误. - + An error occurred during write to the audio output device. 写入音频输出设备期间错误. - + Audio data not being fed to the audio output device fast enough. 音频数据未以足够快的速度馈送到音频输出设备. - + Non-recoverable error, audio output device not usable at this time. 不可恢复出错误, 音频输出设备此时不可用. - + Requested output audio format is not valid. 请求的输出音频格式无效. - + Requested output audio format is not supported on device. 设备不支持请求输出的音频格式. - + + No audio output device configured. + + + + Idle 闲置 - + Sending 发送 - + Suspended 暂停 - + Interrupted 中断 - + Error 错误 - + Stopped 停止 @@ -4713,22 +4827,22 @@ Error(%2): %3 StationDialog - + Add Station 添加电台 - + &Band: 波段(&B): - + &Offset (MHz): 偏移 (M&Hz): - + &Antenna: 天线(&A): @@ -4918,18 +5032,14 @@ Error(%2): %3 - JT9 - + Hz + 赫兹 - JT65 + Split - - Hz - 赫兹 - Number of FFTs averaged (controls waterfall scrolling rate) @@ -4962,6 +5072,29 @@ Error(%2): %3 读取调色板 + + WorkedBefore + + + Invalid ADIF field %0: %1 + + + + + Malformed ADIF field %0: %1 + + + + + Invalid ADIF header + + + + + Error opening ADIF log file for read: %0 + + + configuration_dialog @@ -5160,9 +5293,8 @@ Error(%2): %3 分钟 - Enable VHF/UHF/Microwave features - 启用 VHF/UHF/Microwave 功能 + 启用 VHF/UHF/Microwave 功能 @@ -5279,7 +5411,7 @@ quiet period when decoding is done. - + Port: 端口: @@ -5290,137 +5422,149 @@ quiet period when decoding is done. + Serial Port Parameters 串口参数 - + Baud Rate: 波特率: - + Serial port data rate which must match the setting of your radio. 串行端口数据速率必须与您的无线电设置相匹配. - + 1200 - + 2400 - + 4800 - + 9600 - + 19200 - + 38400 - + 57600 - + 115200 - + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> <html><head/><body><p>用于与无线电设备 CAT 接口通信的数据位数 (通常为 8 ).</p></body></html> - + + Data bits + + + + Data Bits 数据位元 - + D&efault 默认值(&e) - + Se&ven Se&ven 7 - + E&ight E&ight 8 - + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> <html><head/><body><p>与无线电设备 CAT 接口通信时使用的停止位数</p><p>(详情请参阅无线电设备手册).</p></body></html> - + + Stop bits + + + + Stop Bits 停止位元 - - + + Default 默认值 - + On&e On&e 1 - + T&wo T&wo 2 - + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> <html><head/><body><p>电脑和无线电设备 CAT 接口 之间使用的流量控制协议 (通常是 "None",但有些要求"硬件").</p></body></html> - + + Handshake 握手方式 - + &None 无(&N) - + Software flow control (very rare on CAT interfaces). 软件控制流 (在CAT接口上非常罕见). - + XON/XOFF - + Flow control using the RTS and CTS RS-232 control lines not often used but some radios have it as an option and a few, particularly some Kenwood rigs, require it). @@ -5429,74 +5573,75 @@ a few, particularly some Kenwood rigs, require it). 很少,特别是一些 健伍无线电设备,需要它). - + &Hardware 硬件(&H) - + Special control of CAT port control lines. 特殊控制的CAT控制线. - + + Force Control Lines 强制控制线 - - + + High - - + + Low - + DTR: - + RTS: - + How this program activates the PTT on your radio? 此程序如何激活无线电设备上的 PTT? - + PTT Method PTT 方法 - + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> <html><head/><body><p>如果您没有无线电设备接口硬件,没法PTT而是使用无线电设备的自动声控来发射,请使用此选项.</p></body></html> - + VO&X - + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> <html><head/><body><p>使用 RS-232 DTR 控制线路切换无线电设备的 PTT, 需要硬件来接口线路.</p><p>某些商业接口单元也使用此方法.</p><p>CAT 串行端口的 DTR 控制线路可用于此或可用于其他串行端口上的 DTR 控制线路.</p></body></html> - + &DTR - + Some radios support PTT via CAT commands, use this option if your radio supports it and you have no other hardware interface for PTT. @@ -5505,47 +5650,47 @@ other hardware interface for PTT. PTT的其它硬件接口. - + C&AT - + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> <html><head/><body><p>使用 RS-232 RTS 控制线路切换無線電設備的 PTT, 需要硬件来接口线路.</p><p>某些商业接口单元也使用此方法.</p><p>CAT 串行端口的 RTS 控制线路可用于此或可能用于其他串行端口上的 RTS 控制线路. 请注意, 使用硬件流控制时, CAT 串行端口上不可用此选项.</p></body></html> - + R&TS - + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> <html><head/><body><p>选择用于 ptt 控制的RS-232 串行端口,当选择上述DTR或RTS作为发射方法时,此选项可用.此端口可以与用于CAT控制的端口相同.对于某些接口类型,可以选择特殊值CAT,这用于可以远程控制串口控制线的非串行CAT接口 (例如 omnirig).</p></body></html> - + Modulation mode selected on radio. 在无线电设备上选择的调制模式. - + Mode 模式 - + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> <html><head/><body><p>上边带通常是正确的调制模式,除非无线电设备具有用于AFSK操作的特殊数据或数据包模式设置.</p></body></html> - + US&B 上边带(&B) - + Don't allow the program to set the radio mode (not recommended but use if the wrong mode or bandwidth is selected). @@ -5554,23 +5699,23 @@ or bandwidth is selected). 或带宽). - - + + None - + If this is available then it is usually the correct mode for this program. 如果这是可用的, 那么它通常是这个程序的正确模式. - + Data/P&kt 数据/封包(&k) - + Some radios can select the audio input using a CAT command, this setting allows you to select which audio input will be used (if it is available then generally the Rear/Data option is best). @@ -5579,52 +5724,52 @@ this setting allows you to select which audio input will be used (如果可用,则通常 后方/数据 选项是最佳选择). - + Transmit Audio Source 无线电设备音频源 - + Rear&/Data 后方&/数据口 - + &Front/Mic 前方/麦克风(&F) - + Rig: 无线电设备: - + Poll Interval: 时间间隔: - + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> <html><head/><body><p>为软件与无线电设备沟通的时间间隔.时间间隔较长,意味着对无线电设备的更改需要更长的时间才能检测到.</p></body></html> - + s - + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> <html><head/><body><p>尝试使用这些设置连接到无线电设备.如果连接成功,该按钮将变为绿色; 如果有问题,则为红色.</p></body></html> - + Test CAT 测试 CAT - + Attempt to activate the transmitter. Click again to deactivate. Normally no power should be output since there is no audio being generated at this time. @@ -5637,47 +5782,47 @@ radio interface behave as expected. 的任何发射指示是否如预期的那样. - + Test PTT 测试 PTT - + Split Operation 异频操作 - + Fake It 虚假 - + Rig 无线电设备 - + A&udio 音频(&u) - + Audio interface settings 音频接口设置 - + Souncard - + Soundcard 声效卡 - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5690,46 +5835,51 @@ transmitting periods. 向外发射输出. - + + Days since last upload + + + + Select the audio CODEC to use for receiving. 选择要用于接收的音频信号. - + &Input: 输入(&I): - + Select the channel to use for receiving. 选择要用于接收的通道. - - + + Mono 单声道 - - + + Left 左声道 - - + + Right 右声道 - - + + Both 双声道 - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5740,110 +5890,110 @@ both here. 双声道. - + Ou&tput: 输出(&t): - - + + Save Directory 保存目录 - + Loc&ation: 目录位置(&a): - + Path to which .WAV files are saved. .WAV 文件被保存到哪条路径. - - + + TextLabel - + Click to select a different save directory for .WAV files. 单击选择不同的保存目录 .WAV 文件. - + S&elect 选择(&e) - - + + AzEl Directory AzEl 目录 - + Location: 位置: - + Select 选择 - + Power Memory By Band 按频段存储功率 - + Remember power settings by band 按频段功率记忆设置 - + Enable power memory during transmit 在传输过程中启用功率记忆 - + Transmit 发射 - + Enable power memory during tuning 在调谐期间启用功率记忆 - + Tune 调谐 - + Tx &Macros 自定义文字(&M) - + Canned free text messages setup 设置自定义文字 - + &Add 增加(&A) - + &Delete 删除(&D) - + Drag and drop items to rearrange order Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items @@ -5852,37 +6002,37 @@ Click, SHIFT+Click and, CRTL+Click to select items 单击, SHIFT+单击 和, CRTL+单击 以选择项目 - + Reportin&g 报告(&g) - + Reporting and logging settings 设置日志和报告 - + Logging 记录日志 - + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. 当您发送73或自定义文字时,程序将弹出一个部分完成的日志通联对话框. - + Promp&t me to log QSO 提示我记录通联日志(&t) - + Op Call: 操作员呼号: - + Some logging programs will not accept the type of reports saved by this program. Check this option to save the sent and received reports in the @@ -5893,49 +6043,49 @@ comments field. 注释字段. - + d&B reports to comments 把d&B报告写入注释栏 - + Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. 选中此选项当发送73或自定义文字信息可强制清除DX呼叫 和DX网格字段. - + Clear &DX call and grid after logging 记录完成后清除&DX呼号及网格 - + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> <html><head/><body><p>某些日志记录程序不接受 WSJT-X 模式名称.</p></body></html> - + Con&vert mode to RTTY 把日志记录转成&RTTY模式 - + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> <html><head/><body><p>操作员的呼号 (如果与电台呼号不同).</p></body></html> - + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> <html><head/><body><p>选择当完成通联后, 自动记录.</p></body></html> - + Log automatically (contesting only) 日志自动记录 (仅限竞赛) - + Network Services 网络服务 @@ -5950,512 +6100,553 @@ for assessing propagation and system performance. 用于评估传播和系统性能. - + Enable &PSK Reporter Spotting 启用&PSK Reporter Spotting - + UDP Server UDP服务器 - + UDP Server: UDP服务器: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>接收解码的网络服务的可选主机名称.</p><p>格式:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">主机名称</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4多点传送组地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 多点传送组地址</li></ul><p>清除此字段将禁用UDP状态更新的广播.</p></body></html> - + UDP Server port number: UDP服务器端口: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p>输入 WSJT-X 应向其发送更新的 UDP 服务器的服务端口号. 如果为零, 将不会广播任何更新.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p>启用此功能后,WSJT-X 将接受来自接收解码消息的 UDP 服务器的某些请求.</p></body></html> - + Accept UDP requests 接受UDP请求 - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p>指示接受传入的 UDP 请求.此选项的效果因操作系统和窗口管理器而异,其目的是通知接受传入的 UDP 请求,即使此应用程序最小化或隐藏</p></body></html> - + Notify on accepted UDP request 接受UDP的请求时通知 - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p>如果接受 UDP 请求,则从最小化还原窗口.</p></body></html> - + Accepted UDP request restores window 接受UDP请求还原窗口 - + Secondary UDP Server (deprecated) 辅助 UDP 服务器 (已弃用) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p>选中后,WSJT-X 将以 ADIF 格式将记录的联系广播到配置的主机名和端口. </p></body></html> - + Enable logged contact ADIF broadcast 启用记录联系 ADIF 广播 - + Server name or IP address: 服务器名称或 IP 地址: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>N1MM Logger+ 程序的可选电脑主机, 用于接收 ADIF UDP 广播. 这通常是 'localhost' 或 IP地址 127.0.0.1</p><p>格式:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">主机名称</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 多播组地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 多播组地址</li></ul><p>清除此字段将禁用通过 UDP 广播 ADIF 信息.</p></body></html> - + Server port number: 服务器端口号: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>输入 WSJT-X 应用于 ADIF 日志信息的 UDP 广播的端口号. 对于 N1MM Logger+, 此值应为 2333. 如果为零, 将不会广播任何更新.</p></body></html> - + Frequencies 频率 - + Default frequencies and band specific station details setup 设置默认值频率和带宽点特定的无线电设备详细信息 - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>阅读 &quot;频率校准&quot; 在 WSJT-X 用户指南中, 有关如何确定无线电的这些参数的详细信息.</p></body></html> - + Frequency Calibration 频率校准 - + Slope: 倾斜率: - + ppm - + Intercept: 拦截: - + Hz 赫兹 - + Working Frequencies 工作频率 - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>右键单击以保持工作频率列表.</p></body></html> - + Station Information 电台信息 - + Items may be edited. Right click for insert and delete options. 项目可以编辑 右键单击以插入和删除选项. - + Colors 颜色 - + Decode Highlightling 解码突出显示 - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body><p>使用复选框启用或禁用项目,并右键单击项目以更改或取消设置前景颜色, 背景颜色, 或将项目重置为默认值. 拖放项目以更改其优先级, 列表中较高的优先级较高.</p><p>请注意, 每个前景或背景颜色都可以设置或取消设置, 取消设置意味着它未为该项分配, 其类型和低优先级项可能适用.</p></body></html> - + Rescan ADIF Log 重新扫描 ADIF 日志 - + + Enable VHF and submode features + + + + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> - + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + Use TCP/IP connection - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>推送将上述所有突出显示项重置为默认值和优先级.</p></body></html> - + Reset Highlighting 重置高亮显示 - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>选择以指示每个模式新的 DXCC 实体, 网格和呼号.</p></body></html> - + Highlight by Mode 按模式突出显示 - + Include extra WAE entities 包括额外的 WAE 实体 - + Check to for grid highlighting to only apply to unworked grid fields 检查到网格突出显示仅应用于未通联的网格字段 - + Only grid Fields sought 仅寻求网格字段 - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>控制 LoTW 用户查找日志.</p></body></html> - + Logbook of the World User Validation LoTW 用户验证 - + Users CSV file URL: 用户 CSV 文件 URL: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body><p>ARRL LoTW 用户上次上传日期和时间数据文件的网址, 该文件用于突出显示已知将日志文件上载到 LoTW 的电台的解码.</p></body></html> - + + URL + + + + https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>按下此按钮即可获取最新的 LoTW 用户的上传日期和时间数据文件.</p></body></html> - + Fetch Now 立即获取 - + Age of last upload less than: 上次上传的日期小于: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p>调整此旋转框以设置 LoTW 用户最后一个上传日期的日期阈值, 该日期被接受为当前 LoTW 用户.</p></body></html> - + days - + Advanced 高级设置 - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>用户可选参数用于 JT65 VHF/UHF/Microwave 的解码.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters JT65 VHF/UHF/Microwave 解码参数 - + Random erasure patterns: 随机擦除模式: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p>随机软判决 Reed Solomon 解码器的最大擦除模式数为 10^(n/2).</p></body></html> - + Aggressive decoding level: 主动解码级别: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>较高的水平会增加解码的概率, 但也会增加错误解码的概率.</p></body></html> - + Two-pass decoding 通过二次解码 - + Special operating activity: Generation of FT4, FT8, and MSK144 messages 特殊操作活动: 产生FT4, FT8 和 MSK144 信息 - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> <html><head/><body><p>FT8 DX远征模式呼叫DX的猎犬操作员.</p></body></html> - + + Hound 猎犬 - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>北美 VHF/UHF/Microwave 竞赛和其他需要交换的 4 个字符网格定位器的竞赛.</p></body></html> - + + NA VHF Contest NA VHF 竞赛 - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>FT8 DX远征模式: 狐狸 (DX远征) 操作员.</p></body></html> - + + Fox 狐狸 - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>欧洲 VHF+ 竞赛需要信号报告, 序列号和 6 个字符定位.</p></body></html> - + + EU VHF Contest EU VHF 竞赛 - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY Roundup 和类似的比赛. 交换是美国的州, 加拿大省或 &quot;DX&quot;.</p></body></html> - + + R T T Y Roundup + + + + RTTY Roundup messages RTTY Roundup 信息 - + + RTTY Roundup exchange + + + + RTTY RU Exch: RTTY RU 交换: - + NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL Field Day 交换: 发射机数量, 类別, 和 ARRL/RAC 部分或 &quot;DX&quot;.</p></body></html> - + + A R R L Field Day + + + + ARRL Field Day - + + Field Day exchange + + + + FD Exch: FD 交换: - + 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>世界数字模式竞赛</p><p><br/></p></body></html> - + + WW Digital Contest + + + + WW Digi Contest 世界数字竞赛 - + Miscellaneous 杂项 - + Degrade S/N of .wav file: 降低信噪比的 .wav文件: - - + + For offline sensitivity tests 用于离线灵敏度测试 - + dB 分贝 - + Receiver bandwidth: 接收器带宽: - + Hz 赫兹 - + Tx delay: 发射延迟: - + Minimum delay between assertion of PTT and start of Tx audio. PTT 验证与发射音频启动之间的最小延迟. - + s - + + Tone spacing 音调间距 - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>生成具有正常音调间距两倍的发射音频. 适用于在产生射频之前使用除以 2 的特殊 LF/MF 发射器.</p></body></html> - + x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>具有正常音調間距四倍的發射音頻. 適用於在產生射頻之前使用除以 4 的特殊 LF/MF 發射器.</p></body></html> - + x 4 - + + Waterfall spectra 瀑布频谱 - + Low sidelobes 低侧边 - + Most sensitive 最敏感 - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p>放弃 (取消) 或应用 (确定) 配置更改, 包括</p><p>重置无线电接口并应用任何声卡更改</p></body></html> @@ -6522,12 +6713,12 @@ Right click for insert and delete options. 无法创建共享内存段 - + Sub-process error - + Failed to close orphaned jt9 process diff --git a/translations/wsjtx_zh_HK.ts b/translations/wsjtx_zh_HK.ts index b56039b8a..6897d76bd 100644 --- a/translations/wsjtx_zh_HK.ts +++ b/translations/wsjtx_zh_HK.ts @@ -129,17 +129,17 @@ 天文資料 - + Doppler Tracking Error 多普勒跟蹤錯誤 - + Split operating is required for Doppler tracking 多普勒跟蹤需要異頻操作 - + Go to "Menu->File->Settings->Radio" to enable split operation 轉到 "菜單->檔案->設置->無線電設備" 啟用異頻操作 @@ -147,32 +147,32 @@ Bands - + Band name 波段名稱 - + Lower frequency limit 頻率下限 - + Upper frequency limit 頻率上限 - + Band 波段 - + Lower Limit 下限 - + Upper Limit 上限 @@ -368,75 +368,75 @@ Configuration::impl - - - + + + &Delete 刪除(&D) - - + + &Insert ... 插入(&I) ... - + Failed to create save directory 無法建立儲存目錄 - + path: "%1% 目錄: "%1% - + Failed to create samples directory 無法建立範例目錄 - + path: "%1" 目录: "%1" - + &Load ... 載入(&L)... - + &Save as ... 另存為(&S) ... - + &Merge ... 合併(&M) ... - + &Reset 重置(&R) - + Serial Port: 串行端口: - + Serial port used for CAT control 用於CAT控制的串行端口 - + Network Server: 網絡服務器: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -451,12 +451,12 @@ Formats: [IPv6-地址]:端口 - + USB Device: USB設備: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -467,152 +467,157 @@ Format: [VID[:PID[:供應商[:產品]]]] - + + Invalid audio input device 無效的音頻輸入設備 - Invalid audio out device - 無效的音頻輸出設備 + 無效的音頻輸出設備 - + + Invalid audio output device + + + + Invalid PTT method 無效的PTT方法 - + Invalid PTT port 無效的PTT端口 - - + + Invalid Contest Exchange 無效的競賽交換數據 - + You must input a valid ARRL Field Day exchange 您必須輸入有效的 ARRL Field Day交換數據 - + You must input a valid ARRL RTTY Roundup exchange 您必須輸入有效的 ARRL RTTY Roundup 交換數據 - + Reset Decode Highlighting 重置解碼突出顯示 - + Reset all decode highlighting and priorities to default values 將所有解碼突出顯示和優先順序重置為預設值 - + WSJT-X Decoded Text Font Chooser WSJT-X 解碼文本字體選擇 - + Load Working Frequencies 載入工作頻率 - - - + + + Frequency files (*.qrg);;All files (*.*) 頻率檔案 (*.qrg);;所有檔案 (*.*) - + Replace Working Frequencies 替換工作頻率 - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? 是否確實要放棄當前工作頻率, 並將其替換為載入的頻率? - + Merge Working Frequencies 合併工作頻率 - - - + + + Not a valid frequencies file 不是有效的頻率檔案 - + Incorrect file magic 不正確的檔案內容 - + Version is too new 版本太新 - + Contents corrupt 內容已損壞 - + Save Working Frequencies 儲存工作頻率 - + Only Save Selected Working Frequencies 只儲存選取的工作頻率 - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. 是否確定要只儲存目前選擇的工作頻率? 按一下 否 可儲存所有. - + Reset Working Frequencies 重置工作頻率 - + Are you sure you want to discard your current working frequencies and replace them with default ones? 您確定要放棄您當前的工作頻率並用默認值頻率替換它們嗎? - + Save Directory 儲存目錄 - + AzEl Directory AzEl 目錄 - + Rig control error 無線電設備控制錯誤 - + Failed to open connection to rig 無法開啟無線電設備的連接 - + Rig failure 無線電設備故障 @@ -1437,22 +1442,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency 添加頻率 - + IARU &Region: IA&RU 區域: - + &Mode: 模式(&M): - + &Frequency (MHz): 頻率 (M&Hz): @@ -1460,26 +1465,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region IARU 區域 - - + + Mode 模式 - - + + Frequency 頻率 - - + + Frequency (MHz) 頻率 (MHz) @@ -2071,12 +2076,13 @@ Error(%2): %3 - - - - - - + + + + + + + Band Activity 波段活動 @@ -2088,11 +2094,12 @@ Error(%2): %3 - - - - - + + + + + + Rx Frequency 接收信息 @@ -2127,122 +2134,237 @@ Error(%2): %3 切換監聽開/關 - + &Monitor 监听(&M) - + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> <html><head/><body><p>擦除右視窗. 雙擊可擦除兩個視窗.</p></body></html> - + Erase right window. Double-click to erase both windows. 擦除右視窗. 雙擊可擦除兩個視窗. - + &Erase 擦除(&E) - + <html><head/><body><p>Clear the accumulating message average.</p></body></html> <html><head/><body><p>清除累積信息平均值.</p></body></html> - + Clear the accumulating message average. 清除累積信息平均值. - + Clear Avg 清除平均 - + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> <html><head/><body><p>在通聯頻率下解碼最近的接收週期</p></body></html> - + Decode most recent Rx period at QSO Frequency 在通聯頻率下解碼最近的接收週期 - + &Decode 解碼(&D) - + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> <html><head/><body><p>切換自動發射 開/關</p></body></html> - + Toggle Auto-Tx On/Off 切換自動發射 開/關 - + E&nable Tx 啟用發射(&n) - + Stop transmitting immediately 立即停止發射 - + &Halt Tx 停止發射(&H) - + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> <html><head/><body><p>切換發射純音調 開/關</p></body></html> - + Toggle a pure Tx tone On/Off 切換發射純音調 開/關 - + &Tune 調諧(&T) - + Menus 選單 - + + 1/2 + + + + + 2/2 + + + + + 1/3 + + + + + 2/3 + + + + + 3/3 + + + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 1/5 + + + + + 2/5 + + + + + 3/5 + + + + + 4/5 + + + + + 5/5 + + + + + 1/6 + + + + + 2/6 + + + + + 3/6 + + + + + 4/6 + + + + + 5/6 + + + + + 6/6 + + + + + Percentage of minute sequences devoted to transmitting. + + + + + Prefer Type 1 messages + + + + + <html><head/><body><p>Transmit during the next sequence.</p></body></html> + + + + USB dial frequency 上邊帶頻率 - + 14.078 000 - + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> <html><head/><body><p>當只存在噪音時建議30dB<br/>綠色好<br/>紅色時可能發生剪切<br/>黃色時太低</p></body></html> - + Rx Signal 接收信號 - + 30dB recommended when only noise present Green when good Red when clipping may occur @@ -2253,338 +2375,344 @@ Yellow when too low 黃色時太低 - + DX Call DX 呼號 - + DX Grid DX 網格 - + Callsign of station to be worked 正在通聯的電臺呼號 - + Search for callsign in database 在數據庫中搜索此呼號的網格數據 - + &Lookup 檢索(&L) - + Locator of station to be worked 通聯中的電臺定位 - + Az: 251 16553 km 角度: 251 16553 公里 - + Add callsign and locator to database 增加這呼號及網格的數據在數據庫中 - + Add 增加 - + Pwr 功率 - + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> <html><head/><body><p>如果橙色或紅色出現表示無線電設備控制故障, 請單擊以重置並讀取頻率. S 表示異頻模式.</p></body></html> - + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. 如果橙色或红色出现表示无线电设备控制故障, 请单击以重置并读取频率. S 表示异频模式. - + ? - + Adjust Tx audio level 調整發射音效電平 - + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> <html><head/><body><p>選擇工作頻段或輸入 MHz 頻率或輸入 kHz 增量,然後輸入 k.</p></body></html> - + Frequency entry 輸入頻率 - + Select operating band or enter frequency in MHz or enter kHz increment followed by k. 選擇工作頻段或輸入 MHz 頻率或輸入 kHz 增量,然後輸入 k. - + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> - + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> <html><head/><body><p>按兩下解碼文字時, 選擇以保持發射頻率固定.</p></body></html> - + Check to keep Tx frequency fixed when double-clicking on decoded text. 按兩下解碼文字時, 選擇以保持發射頻率固定. - + Hold Tx Freq 保持發射頻率 - + Audio Rx frequency 音頻接收頻率 - - - + + + + + Hz 赫茲 - + + Rx 接收 - + + Set Tx frequency to Rx Frequency 將發射頻率設定為接收頻率 - + - + Frequency tolerance (Hz) 頻率容差 (Hz) - + + F Tol 容差 - + + Set Rx frequency to Tx Frequency 將接收頻率位置移往發射頻率位置 - + - + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> <html><head/><body><p>同步閾值. 較低的數位接受較弱的同步訊號.</p></body></html> - + Synchronizing threshold. Lower numbers accept weaker sync signals. 同步閾值. 較低的數位接受較弱的同步訊號. - + Sync 同步 - + <html><head/><body><p>Check to use short-format messages.</p></body></html> <html><head/><body><p>選擇以使用短格式信息.</p></body></html> - + Check to use short-format messages. 選擇以使用短格式信息. - + Sh - + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> <html><head/><body><p>選擇以開啟 JT9 快速模式</p></body></html> - + Check to enable JT9 fast modes 選擇以開啟 JT9 快速模式 - - + + Fast 快速 - + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> <html><head/><body><p>選擇以開啟接收到信息自動排序發射信息.</p></body></html> - + Check to enable automatic sequencing of Tx messages based on received messages. 選擇以開啟接收到信息自動排序發射信息. - + Auto Seq 自動程序 - + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> <html><head/><body><p>選擇以呼叫第一個解碼的回應器到我的 CQ.</p></body></html> - + Check to call the first decoded responder to my CQ. 選擇以呼叫第一個解碼的回應我的 CQ. - + Call 1st 呼叫第一個解碼 - + Check to generate "@1250 (SEND MSGS)" in Tx6. 選擇以產生 "@1250 (傳送信息)" 在發射6. - + Tx6 發射6 - + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> <html><head/><body><p>選擇發射以偶數分鐘或序列, 從 0 開始; 取消選擇以奇數序列.</p></body></html> - + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. 選擇發射以偶數分鐘或序列, 從 0 開始; 取消選擇以奇數序列. - + Tx even/1st 發射偶數/第一 - + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> <html><head/><body><p>呼叫CQ 的頻率以 kHz 高於目前的 MHz</p></body></html> - + Frequency to call CQ on in kHz above the current MHz 呼叫CQ 的頻率以 kHz 高於目前的 MHz - + Tx CQ 發射 CQ - + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> <html><head/><body><p>勾選此項, 以發射CQ呼叫. 接收將在當前頻率上,CQ信息將顯示在當前的接收資訊視窗, 以便呼叫者知道回覆的頻率.</p><p> 不適用於非標準呼號持有者.</p></body></html> - + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. 勾選此項, 以發射CQ呼叫. 接收將在當前頻率上,CQ信息將顯示在當前的接收資訊視窗, 以便呼叫者知道回覆的頻率. 不適用於非標準呼號持有者. - + Rx All Freqs 接收所有頻率 - + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> <html><head/><body><p>子模式確定音調間距; A 最窄.</p></body></html> - + Submode determines tone spacing; A is narrowest. 子模式確定音調間距; A 最窄. - + Submode 子模式 - - + + Fox 狐狸 - + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> <html><head/><body><p>選擇以監視速記信息.</p></body></html> - + Check to monitor Sh messages. 選擇以監視速記信息. - + SWL - + Best S+P 最佳 S+P - + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> <html><head/><body><p>勾選可開始紀錄校準資料.<br/>當測量校準校正被禁用時.<br/>未檢查時您可以查看校準結果.</p></body></html> - + Check this to start recording calibration data. While measuring calibration correction is disabled. When not checked you can view the calibration results. @@ -2593,204 +2721,206 @@ When not checked you can view the calibration results. 未檢查時您可以查看校準結果. - + Measure 測量 - + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> <html><head/><body><p>信號報告: 參考2500 Hz 頻寬 (dB) 中的信噪比.</p></body></html> - + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). 信號報告: 參考2500 Hz 頻寬 (dB) 中的信噪比. - + Report 報告 - + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> <html><head/><body><p>發射/接收 或頻率校準序列長度</p></body></html> - + Tx/Rx or Frequency calibration sequence length 發射/接收 或頻率校準序列長度 - + + s - + + T/R - + Toggle Tx mode 切換發射模式 - + Tx JT9 @ 發射 JT9 @ - + Audio Tx frequency 音訊發射頻率 - - + + Tx 發射 - + Tx# 發射# - + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> <html><head/><body><p>按兩下另一個呼號以排隊呼叫您的下一個通聯.</p></body></html> - + Double-click on another caller to queue that call for your next QSO. 按兩下另一個呼號以排隊呼叫您的下一個通聯. - + Next Call 下一個通聯 - + 1 - - - + + + Send this message in next Tx interval 在下一個發射間隔內發送此信息 - + Ctrl+2 - + <html><head/><body><p>Send this message in next Tx interval</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>在下一個發射間隔中傳送此訊息</p><p>按兩下以切換使用 發射 1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者)<</p></body></html> - + Send this message in next Tx interval 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) 在下一個發射間隔中傳送此訊息 按兩下以切換使用 發射 1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者) - + Ctrl+1 - - - - + + + + Switch to this Tx message NOW 立即切換到此發射信息 - + Tx &2 發射 &2 - + Alt+2 - + <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>立即切換到此發射信息</p><p>按兩下以切換使用 發射 1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者)</p></body></html> - + Switch to this Tx message NOW 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) 立即切換到此發射信息 按兩下以切換使用 發射 1 訊息以啟動電臺的通聯 (不允許 1 型複合呼叫持有者) - + Tx &1 發射 &1 - + Alt+1 - + Ctrl+6 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>在下一個發射間隔內傳送此信息</p><p>雙擊可重置為標準 73 信息</p></body></html> - + Send this message in next Tx interval Double-click to reset to the standard 73 message 在下一個發射間隔內傳送此信息 雙擊可重置為標準 73 信息 - + Ctrl+5 - + Ctrl+3 - + Tx &3 發射 &3 - + Alt+3 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>在下一個發射間隔內傳送此信息</p><p>按兩下可在 發射4 中的 RRR 和 RR73 信息之間切換 (不允許類型 2 複合呼叫持有者)</p><p>RR73 信息僅在您有理由相信不需要重複信息時才應使用</p></body></html> - + Send this message in next Tx interval Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required @@ -2799,17 +2929,17 @@ RR73 messages should only be used when you are reasonably confident that no mess RR73 信息僅在您有理由相信不需要重複信息時才應使用 - + Ctrl+4 - + <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>立即切換到此發射信息</p><p>按兩下可在 發射 4 中的 RRR 和 RR73 信息之間切換 (不允許類型 2 複合呼叫持有者)</p><p>RR73 信息僅在您有理由相信不需要重複信息時才應使用</p></body></html> - + Switch to this Tx message NOW Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required @@ -2818,65 +2948,64 @@ RR73 messages should only be used when you are reasonably confident that no mess RR73 信息僅在您有理由相信不需要重複信息時才應使用 - + Tx &4 發射 &4 - + Alt+4 - + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>立即切换到此发射信息</p><p>雙擊可重置為標準 73 信息</p></body></html> - + Switch to this Tx message NOW Double-click to reset to the standard 73 message 立即切换到此发射信息 雙擊可重置為標準 73 信息 - + Tx &5 發射 &5 - + Alt+5 - + Now 現在 - + Generate standard messages for minimal QSO 產生標準信息用於通聯 - + Generate Std Msgs 產生標準信息 - + Tx &6 發射 &6 - + Alt+6 - - + Enter a free text message (maximum 13 characters) or select a predefined macro from the dropdown list. Press ENTER to add the current text to the predefined @@ -2887,990 +3016,971 @@ list. The list can be maintained in Settings (F2). 清單. 該清單可在設定(F2)中維護. - + Queue up the next Tx message 排到下一個發射信息 - + Next 下一個 - + 2 - + + Quick-Start Guide to FST4 and FST4W + + + + + FST4 + + + + + FST4W + + + Calling CQ - 呼叫 CQ + 呼叫 CQ - Generate a CQ message - 產生CQ信息 + 產生CQ信息 - - - + + CQ - Generate message with RRR - 產生RRR信息 + 產生RRR信息 - - RRR - - - - Generate message with report - 產生報告信息 + 產生報告信息 - dB - 分貝 + 分貝 - Answering CQ - 回答 CQ + 回答 CQ - Generate message for replying to a CQ - 產生信息以回答 CQ + 產生信息以回答 CQ - - + Grid 網格 - Generate message with R+report - 產生 R+ 報告信息 + 產生 R+ 報告信息 - R+dB - R+分貝 + R+分貝 - Generate message with 73 - 產生73信息 + 產生73信息 - - 73 - - - - Send this standard (generated) message - 發送此標准(產生)信息 + 發送此標准(產生)信息 - Gen msg - 產生信息 + 產生信息 - Send this free-text message (max 13 characters) - 發送此自定義文本信息(最多13個字符) + 發送此自定義文本信息(最多13個字符) - Free msg - 自定義文本 + 自定義文本 - - 3 - - - - + Max dB 最大分貝 - + CQ AF CQ 非洲 - + CQ AN CQ 南極 - + CQ AS CQ 亞洲 - + CQ EU CQ 歐洲 - + CQ NA CQ 北美 - + CQ OC CQ 大洋洲 - + CQ SA CQ 南美 - + CQ 0 - + CQ 1 - + CQ 2 - + CQ 3 - + CQ 4 - + CQ 5 - + CQ 6 - + CQ 7 - + CQ 8 - + CQ 9 - + Reset 重置 - + N List N 清單 - + N Slots N 插槽 - - + + + + + + + Random 隨機 - + Call 呼號 - + S/N (dB) 信噪比(分貝) - + Distance 距離 - + More CQs 更多 CQ - Percentage of 2-minute sequences devoted to transmitting. - 用於傳輸的2分鐘序列的百分比. + 用於傳輸的2分鐘序列的百分比. - + + % - + Tx Pct 發射 Pct - + Band Hopping 波段預案 - + Choose bands and times of day for band-hopping. 選擇波段和一天之中的時間進行波段跳躍. - + Schedule ... 時間流程 ... - + Upload decoded messages to WSPRnet.org. 將解碼的信息上載到 WSPRnet.org. - + Upload spots 上傳 spots - + <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>6 位定位器會導致發送 2 個不同的信息, 第二個包含完整定位器, 但只有哈希呼號,其他電臺必須解碼第一個一次, 然後才能在第二個中解碼您的呼叫. 如果此選項將避免兩個信息協定, 則選中此選項僅發送 4 位定位器.</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. 6 位定位器會導致發送 2 個不同的信息, 第二個包含完整定位器, 但只有哈希呼號,其他電臺必須解碼第一個一次, 然後才能在第二個中解碼您的呼叫. 如果此選項將避免兩個信息協定, 則選中此選項僅發送 4 位定位器. - Prefer type 1 messages - 首選類型 1信息 + 首選類型 1信息 - + No own call decodes 沒有自己的呼號解碼 - Transmit during the next 2-minute sequence. - 在接下來的2分鐘序列中輸送. + 在接下來的2分鐘序列中輸送. - + Tx Next 發射下一個信息 - + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. 將發射功率設置為 dBm (dB 高於 1 mW) 作為 WSPR 信息的一部分. - + + NB + + + + File 檔案 - + View 顯示 - + Decode 解碼 - + Save 儲存 - + Help 說明 - + Mode 模式 - + Configurations 設定 - + Tools 工具 - + Exit 關閉軟件 - Configuration - 設定檔 + 設定檔 - - F2 - - - - + About WSJT-X 有關 WSJT-X - + Waterfall 瀑布圖 - + Open 開啟檔案 - + Ctrl+O - + Open next in directory 開啟下一個檔案 - + Decode remaining files in directory 開啟剩餘檔案 - + Shift+F6 - + Delete all *.wav && *.c2 files in SaveDir 刪除所有在SaveDir目錄內 *.wav && *.c2 - + None 不儲存 - + Save all 儲存所有 - + Online User Guide 線上使用者指南 - + Keyboard shortcuts 鍵盤快捷鍵 - + Special mouse commands 滑鼠特殊組合 - + JT9 - + Save decoded 儲存解碼 - + Normal 正常 - + Deep 深度 - Monitor OFF at startup - 啟動時關閉監聽 + 啟動時關閉監聽 - + Erase ALL.TXT 刪除 ALL.TXT - + Erase wsjtx_log.adi 刪除通聯日誌 wsjtx_log.adi - Convert mode to RTTY for logging - 將日誌記錄模式轉換為RTTY + 將日誌記錄模式轉換為RTTY - Log dB reports to Comments - 將分貝報告記錄到注釋 + 將分貝報告記錄到注釋 - Prompt me to log QSO - 提示我記錄通聯 + 提示我記錄通聯 - Blank line between decoding periods - 解碼期間之間添加空白行 + 解碼期間之間添加空白行 - Clear DX Call and Grid after logging - 日誌記錄後清除 DX 呼號和網格 + 日誌記錄後清除 DX 呼號和網格 - Display distance in miles - 顯示距離以英里為單位 + 顯示距離以英里為單位 - Double-click on call sets Tx Enable - 雙擊呼號啟用發射 + 雙擊呼號啟用發射 - - + F7 - Tx disabled after sending 73 - 發送 73 後停止發射 + 發送 73 後停止發射 - - + Runaway Tx watchdog 運行發射監管計時器 - Allow multiple instances - 允許多個情況 + 允許多個情況 - Tx freq locked to Rx freq - 發射頻率鎖定到接收頻率 + 發射頻率鎖定到接收頻率 - + JT65 - + JT9+JT65 - Tx messages to Rx Frequency window - 發射信息發送到接收信息窗口 + 發射信息發送到接收信息窗口 - - Gray1 - - - - Show DXCC entity and worked B4 status - 顯示 DXCC 實體和曾經通聯狀態 + 顯示 DXCC 實體和曾經通聯狀態 - + Astronomical data 天文數據 - + List of Type 1 prefixes and suffixes 型態 1 前置碼與後綴清單 - + Settings... 設置... - + Local User Guide 本地使用者指南 - + Open log directory 開啟日誌檔案目錄 - + JT4 - + Message averaging 信息平均值 - + Enable averaging 平均值 - + Enable deep search 開啟深度搜尋 - + WSPR - + Echo Graph 回波圖 - + F8 - + Echo - + EME Echo mode EME 回波模式 - + ISCAT - + Fast Graph 快速圖 - + F9 - + &Download Samples ... 下載樣本(&D) ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>下載演示各種模式的示例音頻檔案.</p></body></html> - + MSK144 - + QRA64 - + Release Notes 發行說明 - + Enable AP for DX Call 開啟 AP 為 DX 呼叫 - + FreqCal - + Measure reference spectrum 測量參考頻譜 - + Measure phase response 測量相位回應 - + Erase reference spectrum 清除參考頻譜 - + Execute frequency calibration cycle 執行頻率校準週期 - + Equalization tools ... 均衡工具 ... - - WSPR-LF - - - - Experimental LF/MF mode - 實驗性 LF/MF 模式 + 實驗性 LF/MF 模式 - + FT8 - - + + Enable AP 開啟 AP - + Solve for calibration parameters 修正參數的解算 - + Copyright notice 版權聲明 - + Shift+F1 - + Fox log 狐狸日誌 - + FT8 DXpedition Mode User Guide FT8 遠征模式使用者指南 - + Reset Cabrillo log ... 重置卡布里略日誌 ... - + Color highlighting scheme 色彩突顯機制 - Contest Log - 競賽日誌 + 競賽日誌 - + Export Cabrillo log ... 匯出卡布里略日誌 ... - Quick-Start Guide to WSJT-X 2.0 - WSJT-X 2.0 快速入門指南 + WSJT-X 2.0 快速入門指南 - + Contest log 競賽日誌 - + Erase WSPR hashtable 擦除 WSPR 哈希表 - + FT4 - + Rig Control Error 無線電設備控制錯誤 - - - + + + Receiving 接收 - + Do you want to reconfigure the radio interface? 是否要重新配置無線電設備接口? - + + %1 (%2 sec) audio frames dropped + + + + + Audio Source + + + + + Reduce system load + + + + + Excessive dropped samples - %1 (%2 sec) audio frames dropped + + + + Error Scanning ADIF Log 掃描 ADIF 紀錄錯誤 - + Scanned ADIF log, %1 worked before records created 掃描 ADIF 紀錄紀錄, %1 建立曾經通聯紀錄 - + Error Loading LotW Users Data 載入 LotW 使用者資料錯誤 - + Error Writing WAV File 寫入 WAV 檔案時錯誤 - + Configurations... 設定檔案... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message 信息 - + Error Killing jt9.exe Process 錯誤終止 jt9.exe 程序 - + KillByName return code: %1 按結束名稱返回代碼: %1 - + Error removing "%1" 刪除時出錯誤 "%1" - + Click OK to retry 單擊 確定 重試 - - + + Improper mode 模式不正確 - - + + File Open Error 檔案開啟出錯誤 - - - - - + + + + + Cannot open "%1" for append: %2 無法開啟 "%1" 用於附加: %2 - + Error saving c2 file 保存c2檔案出錯誤 - + Error in Sound Input 聲音輸入出錯誤 - + Error in Sound Output 聲音輸出錯誤 - - - + + + Single-Period Decodes 單週期解碼 - - - + + + Average Decodes 平均解碼 - + Change Operator 變更操作員 - + New operator: 新操作員: - + Status File Error 狀態檔案錯誤 - - + + Cannot open "%1" for writing: %2 無法開啟 "%1" 用於寫入: %2 - + Subprocess Error 子流程出錯誤 - + Subprocess failed with exit code %1 子流程失敗, 退出代碼為 %1 - - + + Running: %1 %2 運行: %1 %2 - + Subprocess error 子進程出錯誤 - + Reference spectrum saved 儲存參考頻譜 - + Invalid data in fmt.all at line %1 在 %1 行中 fmt.all 的不合法資料 - + Good Calibration Solution 良好的校準解決方案 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3879,37 +3989,37 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements 刪除校準測量值 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all" 檔案將重新命名為 "fmt.bak" - + No data read from disk. Wrong file format? 沒有從磁盤讀取數據. 檔案格式出錯誤? - + Confirm Delete 確認刪除 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? 是否確實要刪除所有 *.wav 和 *.c2 檔案在 "%1"? - + Keyboard Shortcuts 鍵盤快捷鍵 - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -3959,12 +4069,51 @@ list. The list can be maintained in Settings (F2). - + Special Mouse Commands 滑鼠特殊組合 - + + No more files to open. + 沒有要打開的檔. + + + + Spotting to PSK Reporter unavailable + + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. + 請選擇其他發射頻率. WSJT-X 不會故意傳輸另一個模式在 WSPR 30米子波段上. + + + + WSPR Guard Band + WSPR保護波段 + + + + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. + 請選擇其他頻率. WSJT-X 不會運行狐狸模式在標準 FT8 波段. + + + + Fox Mode warning + 狐狸模式警告 + + + + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: + +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." + 如果您根據 GNU 通用公共授權條款合理使用 WSJT-X 的任何部分, 則必須在衍生作品中醒目地顯示以下版權聲明: + +"WSJT-X 的演演演算法, 原始碼, 外觀和感覺及相關程式, 和協定規格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版權 (C) 2001-2019 由以下一個或多個作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 開發組的其他成員." + + + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -3975,7 +4124,7 @@ list. The list can be maintained in Settings (F2). <td><b>Click</b> to set Rx frequency.<br/> <b>Shift-click</b> to set Tx frequency.<br/> <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> - <b>Double-click</b> to also decode at Rx frequency.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> </td> </tr> <tr> @@ -3983,10 +4132,10 @@ list. The list can be maintained in Settings (F2). <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> locator to Dx Grid, change Rx and Tx frequency to<br/> decoded signal's frequency, and generate standard<br/> - messages.<br/> - If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> - is your own call, Tx frequency is not changed unless <br/> - <b>Ctrl</b> is held down.<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> </td> </tr> <tr> @@ -4000,51 +4149,12 @@ list. The list can be maintained in Settings (F2). - - No more files to open. - 沒有要打開的檔. - - - - Spotting to PSK Reporter unavailable - - - - - Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - 請選擇其他發射頻率. WSJT-X 不會故意傳輸另一個模式在 WSPR 30米子波段上. - - - - WSPR Guard Band - WSPR保護波段 - - - - Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - 請選擇其他頻率. WSJT-X 不會運行狐狸模式在標準 FT8 波段. - - - - Fox Mode warning - 狐狸模式警告 - - - - If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: - -"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - 如果您根據 GNU 通用公共授權條款合理使用 WSJT-X 的任何部分, 則必須在衍生作品中醒目地顯示以下版權聲明: - -"WSJT-X 的演演演算法, 原始碼, 外觀和感覺及相關程式, 和協定規格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版權 (C) 2001-2019 由以下一個或多個作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 開發組的其他成員." - - - + Last Tx: %1 最後發射: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4055,183 +4165,182 @@ To do so, check 'Special operating activity' and 設置高級選項卡上的 '歐洲 VHF 競賽'. - + Should you switch to ARRL Field Day mode? 是否應切換到 ARRL Field Day 模式? - + Should you switch to RTTY contest mode? 是否應切換到 RTTY 競賽模式? - - - - + + + + Add to CALL3.TXT 添加到 CALL3.TXT - + Please enter a valid grid locator 請輸入有效的網格定位 - + Cannot open "%1" for read/write: %2 無法開啟 "%1" 用於讀/寫: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 已經在 CALL3.TXT, 你想替換它嗎? - + Warning: DX Call field is empty. 警告: DX 呼號欄位為空. - + Log file error 日誌檔案錯誤 - + Cannot open "%1" 無法開啟 "%1" - + Error sending log to N1MM 將日誌傳送到 N1MM 時發生錯誤 - + Write returned "%1" 寫入返回 "%1" - + Stations calling DXpedition %1 呼叫遠征電臺 %1 - + Hound 獵犬 - + Tx Messages 發射信息 - - - + + + Confirm Erase 確認擦除 - + Are you sure you want to erase file ALL.TXT? 是否確實要擦除 ALL.Txt 檔案? - - + + Confirm Reset 確認重置 - + Are you sure you want to erase your contest log? 是否確實要擦除競賽日誌? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 執行此動作將移除目前競賽的所有通聯記錄. 它們將保留在 ADIF 日誌檔案中, 但無法匯出到您的卡布里略日誌中. - + Cabrillo Log saved 卡布里略日誌已儲存 - + Are you sure you want to erase file wsjtx_log.adi? 是否確實要擦除 wsjtx_log.adi 檔案? - + Are you sure you want to erase the WSPR hashtable? 是否確定要擦除 WSPR 哈希表? - VHF features warning - VHF 功能警告 + VHF 功能警告 - + Tune digital gain 調諧數碼增益 - + Transmit digital gain 傳輸數碼增益 - + Prefixes 前綴 - + Network Error 網路錯誤 - + Error: %1 UDP server %2:%3 錯誤: %1 UDP 服務器 %2:%3 - + File Error 檔案錯誤 - + Phase Training Disabled 關閉階段訓練 - + Phase Training Enabled 開啟階段訓練 - + WD:%1m - - + + Log File Error 日誌檔案錯誤 - + Are you sure you want to clear the QSO queues? 是否要清除通聯佇列? @@ -4253,8 +4362,8 @@ UDP 服務器 %2:%3 Modes - - + + Mode 模式 @@ -4411,7 +4520,7 @@ UDP 服務器 %2:%3 無法開啟 LotW 使用者 CSV 檔案: '%1' - + OOB @@ -4602,7 +4711,7 @@ Error(%2): %3 不可恢復的出錯誤, 音頻輸入設備此時不可用. - + Requested input audio format is not valid. 請求的輸入音頻格式無效. @@ -4612,37 +4721,37 @@ Error(%2): %3 設備不支持請求輸入的音頻格式. - + Failed to initialize audio sink device 無法初始化音頻接收器設備 - + Idle 閑置 - + Receiving 接收 - + Suspended 暫停 - + Interrupted 中斷 - + Error 錯誤 - + Stopped 停止 @@ -4650,62 +4759,67 @@ Error(%2): %3 SoundOutput - + An error opening the audio output device has occurred. 開啟音頻輸出設備時錯誤. - + An error occurred during write to the audio output device. 寫入音頻輸出設備期間錯誤. - + Audio data not being fed to the audio output device fast enough. 音頻數據未以足夠快的速度饋送到音頻輸出設備. - + Non-recoverable error, audio output device not usable at this time. 不可恢復錯誤, 音頻輸出設備此時不可用. - + Requested output audio format is not valid. 請求的輸出音頻格式無效. - + Requested output audio format is not supported on device. 設備不支持請求輸出的音頻格式. - + + No audio output device configured. + + + + Idle 閑置 - + Sending 發送 - + Suspended 暫停 - + Interrupted 中斷 - + Error 錯誤 - + Stopped 停止 @@ -4713,22 +4827,22 @@ Error(%2): %3 StationDialog - + Add Station 添加電臺 - + &Band: 波段(&B): - + &Offset (MHz): 偏移 (M&Hz): - + &Antenna: 天線(&A): @@ -4918,18 +5032,14 @@ Error(%2): %3 - JT9 - + Hz + 赫茲 - JT65 + Split - - Hz - 赫茲 - Number of FFTs averaged (controls waterfall scrolling rate) @@ -4962,6 +5072,29 @@ Error(%2): %3 讀取調色盤 + + WorkedBefore + + + Invalid ADIF field %0: %1 + + + + + Malformed ADIF field %0: %1 + + + + + Invalid ADIF header + + + + + Error opening ADIF log file for read: %0 + + + configuration_dialog @@ -5160,9 +5293,8 @@ Error(%2): %3 分鐘 - Enable VHF/UHF/Microwave features - 啟用 VHF/UHF/Microwave 功能 + 啟用 VHF/UHF/Microwave 功能 @@ -5279,7 +5411,7 @@ quiet period when decoding is done. - + Port: 端口: @@ -5290,137 +5422,149 @@ quiet period when decoding is done. + Serial Port Parameters 串口參數 - + Baud Rate: 波特率: - + Serial port data rate which must match the setting of your radio. 串行端口數據速率必須與您的無線電設置相匹配. - + 1200 - + 2400 - + 4800 - + 9600 - + 19200 - + 38400 - + 57600 - + 115200 - + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> <html><head/><body><p>用於與無線電設備 CAT 接口通信的數據位數 (通常為 8 ).</p></body></html> - + + Data bits + + + + Data Bits 數據位元 - + D&efault 默認值(&e) - + Se&ven Se&ven 7 - + E&ight E&ight 8 - + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> <html><head/><body><p>與無線電設備 CAT 接口通信時使用的停止位數</p><p>(詳情請參閱無線電設備手冊).</p></body></html> - + + Stop bits + + + + Stop Bits 停止位元 - - + + Default 默認值 - + On&e On&e 1 - + T&wo T&wo 2 - + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> <html><head/><body><p>電腦和無線電設備 CAT 接口 之間使用的流量控制協議 (通常是 "None",但有些要求"硬件").</p></body></html> - + + Handshake 握手方式 - + &None 無(&N) - + Software flow control (very rare on CAT interfaces). 軟件控制流 (在CAT接口上非常罕見). - + XON/XOFF - + Flow control using the RTS and CTS RS-232 control lines not often used but some radios have it as an option and a few, particularly some Kenwood rigs, require it). @@ -5429,74 +5573,75 @@ a few, particularly some Kenwood rigs, require it). 很少,特別是一些 健伍無線電設備,需要它). - + &Hardware 硬件(&H) - + Special control of CAT port control lines. 特殊控制的CAT控制線. - + + Force Control Lines 強制控制線 - - + + High - - + + Low - + DTR: - + RTS: - + How this program activates the PTT on your radio? 此程式如何啟動無線電設備上的 PTT? - + PTT Method PTT 方法 - + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> <html><head/><body><p>如果您沒有無線電設備接口硬件,沒法PTT而是使用無線電設備的自動聲控來發射,請使用此選項.</p></body></html> - + VO&X - + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> <html><head/><body><p>使用 RS-232 DTR 控制線路切換無線電設備的 PTT, 需要硬體來介面線路.</p><p>某些商業介面單元也使用此方法.</p><p>CAT 串列埠的 DTR 控制線路可用於此或可用於其他串行埠上的 DTR 控制線路.</p></body></html> - + &DTR - + Some radios support PTT via CAT commands, use this option if your radio supports it and you have no other hardware interface for PTT. @@ -5505,47 +5650,47 @@ other hardware interface for PTT. PTT的其它硬件接口. - + C&AT - + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> <html><head/><body><p>使用 RS-232 RTS 控制線路切換無線電設備的 PTT, 需要硬體來介面線路.</p><p>某些商業介面單元也使用此方法.</p><p>CAT 串列埠的 RTS 控制線路可用於此或可能用於其他串行埠上的 RTS 控制線路. 請注意,使用硬體流控制時, CAT 串行埠上不可用此選項.</p></body></html> - + R&TS - + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> <html><head/><body><p>選擇用於 ptt 控制的RS-232 串行端口,當選擇上述DTR或RTS作為發射方法時,此選項可用.此端口可以與用於CAT控制的端口相同.對於某些接口類型,可以選擇特殊值CAT,這用於可以遠程控制串口控制線的非串行CAT接口 (例如 omnirig).</p></body></html> - + Modulation mode selected on radio. 在無線電設備上選擇的調制模式. - + Mode 模式 - + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> <html><head/><body><p>上邊帶通常是正確的調制模式,除非無線電設備具有用於AFSK操作的特殊數據或數據包模式設置.</p></body></html> - + US&B 上邊帶(&B) - + Don't allow the program to set the radio mode (not recommended but use if the wrong mode or bandwidth is selected). @@ -5554,23 +5699,23 @@ or bandwidth is selected). 或帶寬). - - + + None - + If this is available then it is usually the correct mode for this program. 如果這是可用的, 那麼它通常是這個程式的正確模式. - + Data/P&kt 數據/封包(&k) - + Some radios can select the audio input using a CAT command, this setting allows you to select which audio input will be used (if it is available then generally the Rear/Data option is best). @@ -5579,52 +5724,52 @@ this setting allows you to select which audio input will be used (如果可用,則通常 後方/數據 選項是最佳選擇). - + Transmit Audio Source 無線電設備音頻源 - + Rear&/Data 後方&/數據口 - + &Front/Mic 前方/咪高峰(&F) - + Rig: 無線電設備: - + Poll Interval: 時間間隔: - + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> <html><head/><body><p>為軟件與無線電設備溝通的時間間隔.時間間隔較長,意味着對無線電設備的更改需要更長的時間才能檢測到.</p></body></html> - + s - + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> <html><head/><body><p>嘗試使用這些設置連接到無線電設備.如果連接成功,該按鈕將變為綠色; 如果有問題,則為紅色.</p></body></html> - + Test CAT 測試 CAT - + Attempt to activate the transmitter. Click again to deactivate. Normally no power should be output since there is no audio being generated at this time. @@ -5637,47 +5782,47 @@ radio interface behave as expected. 的任何發射指示是否如預期的那樣. - + Test PTT 測試 PTT - + Split Operation 異頻操作 - + Fake It 虛假 - + Rig 無線電設備 - + A&udio 音頻(&u) - + Audio interface settings 音頻接口設置 - + Souncard 音效卡 - + Soundcard 音效卡 - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5690,46 +5835,51 @@ transmitting periods. 向外發射輸出. - + + Days since last upload + + + + Select the audio CODEC to use for receiving. 選擇要用於接收的音頻信號. - + &Input: 輸入(&I): - + Select the channel to use for receiving. 選擇要用於接收的通道. - - + + Mono 單聲道 - - + + Left 左聲道 - - + + Right 右聲道 - - + + Both 雙聲道 - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5740,110 +5890,110 @@ both here. 雙聲道. - + Ou&tput: 輸出(&t): - - + + Save Directory 儲存目錄 - + Loc&ation: 目錄位置(&a): - + Path to which .WAV files are saved. .WAV 檔案被儲存到哪條路徑. - - + + TextLabel - + Click to select a different save directory for .WAV files. 單擊選擇不同的儲存目錄 .WAV 檔案. - + S&elect 選擇(&e) - - + + AzEl Directory AzEl 目錄 - + Location: 位置: - + Select 選擇 - + Power Memory By Band 依頻段記憶功率 - + Remember power settings by band 按頻段功率記憶設定 - + Enable power memory during transmit 在傳輸過程中啟用功率記憶 - + Transmit 發射 - + Enable power memory during tuning 在調諧期間開啟功率記憶 - + Tune 調諧 - + Tx &Macros 自定義文字(&M) - + Canned free text messages setup 設置自定義文字 - + &Add 增加(&A) - + &Delete 删除(&D) - + Drag and drop items to rearrange order Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items @@ -5852,37 +6002,37 @@ Click, SHIFT+Click and, CRTL+Click to select items 單擊, SHIFT+單擊 和, CRTL+單擊 以選擇專案 - + Reportin&g 報告(&g) - + Reporting and logging settings 設置日誌和報告 - + Logging 記錄日誌 - + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. 當您發送73或自定義文字時,程序將彈出一個部分完成的日誌通聯對話框. - + Promp&t me to log QSO 提示我記錄通聯日誌(&t) - + Op Call: 操作員呼號: - + Some logging programs will not accept the type of reports saved by this program. Check this option to save the sent and received reports in the @@ -5893,49 +6043,49 @@ comments field. 注釋字段. - + d&B reports to comments 把d&B報告寫入注釋欄 - + Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. 選中此選項當發送73或自定義文字信息可強制清除DX呼叫 和DX網格字段. - + Clear &DX call and grid after logging 記錄完成後清除&DX呼號及網格 - + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> <html><head/><body><p>某些紀錄紀錄程式不接受 WSJT-X 模式名稱.</p></body></html> - + Con&vert mode to RTTY 把日誌記錄轉成&RTTY模式 - + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> <html><head/><body><p>操作員的呼號 (如果與電臺呼號不同).</p></body></html> - + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> <html><head/><body><p>選擇當完成通聯後, 自動記錄.</p></body></html> - + Log automatically (contesting only) 日誌自記錄 (僅限競赛) - + Network Services 網絡服務 @@ -5950,512 +6100,553 @@ for assessing propagation and system performance. 用於評估傳播和系統性能. - + Enable &PSK Reporter Spotting 啟用&PSK Reporter Spotting - + UDP Server UDP服務器 - + UDP Server: UDP服務器: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>接收解碼的網絡服務的可選主機名稱.</p><p>格式:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">主機名稱</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4多點傳送組地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 多點傳送組地址</li></ul><p>清除此字段將禁用UDP狀態更新的廣播.</p></body></html> - + UDP Server port number: 主要UDP服務器端口: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p>輸入 WSJT-X 應向其發送更新的 UDP 伺服器的服務埠號. 如果為零, 將不會廣播任何更新.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p>啟用此功能後,WSJT-X 將接受來自接收解碼消息的 UDP 伺服器的某些請求.</p></body></html> - + Accept UDP requests 接受UDP請求 - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p>指示接受傳入的 UDP 請求.此選項的效果因操作系統和窗口管理器而異,其目的是通知接受傳入的 UDP 請求,即使此應用程序最小化或隱藏</p></body></html> - + Notify on accepted UDP request 在接受UDP的請求時通知 - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p>如果接受 UDP 請求,則從最小化還原窗口.</p></body></html> - + Accepted UDP request restores window 接受UDP請求還原窗口 - + Secondary UDP Server (deprecated) 輔助UDP 伺服器 (已棄用) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p>選擇後, WSJT-X 將以 ADIF 格式將記錄的聯絡廣播到設定的主機名稱和埠. </p></body></html> - + Enable logged contact ADIF broadcast 開啟記錄連絡 ADIF 廣播 - + Server name or IP address: 伺服器名稱或 IP 位址: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>N1MM Logger+ 程式可選電腦主機用於接收 ADIF UDP 廣播. 這通常是 'localhost' 或 IP 地址 127.0.0.1</p><p>格式:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">主機名稱</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 多播組地址</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 多播組地址</li></ul><p>清除此欄位將停用透過UDP廣播ADIF資訊.</p></body></html> - + Server port number: 伺服器連接埠號: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>輸入 WSJT-X 應用於 ADIF 日誌資訊的 UDP 廣播的埠號. 對於 N1MM Logger+, 此值應為 2333. 如果為零, 將不會廣播任何更新.</p></body></html> - + Frequencies 頻率 - + Default frequencies and band specific station details setup 設置默認值頻率和帶寬點特定的電臺詳細信息 - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>閱讀 &quot;頻率校準&quot; 在 WSJT-X 使用者指南中, 有關如何確定無線電的這些參數的詳細資訊.</p></body></html> - + Frequency Calibration 頻率校准 - + Slope: 傾斜率: - + ppm - + Intercept: 攔截: - + Hz 赫茲 - + Working Frequencies 工作頻率 - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>右鍵按一下以保持工作頻率清單.</p></body></html> - + Station Information 電臺信息 - + Items may be edited. Right click for insert and delete options. 專案可以編輯 右鍵按下以插入與刪除選項. - + Colors 顏色 - + Decode Highlightling 解碼突出顯示 - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body><p>使用複選框啟用或禁用專案, 並右鍵單擊專案以更改或取消設置前景顏色, 背景顏色, 或將專案重置為預設值. 拖放專案以更改其優先順序, 清單中較高的優先順序較高.</p><p> 請注意,每個前景或背景顏色都可以設置或取消設置, 未設置意味著未為該專案分配該類型, 低優先順序項可能適用.</p></body></html> - + Rescan ADIF Log 重新掃描 ADIF 日誌 - + + Enable VHF and submode features + + + + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> - + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + Use TCP/IP connection - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>推送將上述所有突出顯示項重置為預設值和優先順序.</p></body></html> - + Reset Highlighting 重置突顯顯示 - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>選擇以指示每個模式新的 DXCC 實體, 網格和呼號.</p></body></html> - + Highlight by Mode 依模式突顯 - + Include extra WAE entities 包括額外的 WAE 實體 - + Check to for grid highlighting to only apply to unworked grid fields 檢查到格線突出顯示僅套用於未通聯的網格欄位 - + Only grid Fields sought 只尋求格格欄位 - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>控制 LoTW 使用者查找日誌.</p></body></html> - + Logbook of the World User Validation LoTW 使用者驗證 - + Users CSV file URL: 使用者 CSV 檔案網址: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body><p>ARRL LoTW 使用者上次上傳日期和時間資料檔案的網址, 該檔案用於突出顯示已知將紀錄檔上載到 LoTW 的電臺的解碼.</p></body></html> - + + URL + + + + https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>按下這個按鈕即可取得最新的 LoRW 使用者的上傳日期和時間資料檔.</p></body></html> - + Fetch Now 立即取得 - + Age of last upload less than: 上次上傳的日期小於: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p>調整此旋轉框以設定 LoTW 使用者最後一個上傳日期的日期閾值,該日期被接受為當前 LoTW 使用者.</p></body></html> - + days - + Advanced 高級設置 - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>用戶可選參數用於JT65 VHF/UHF/Microwave 的解碼.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters JT65 VHF/UHF/Microwave 解碼參數 - + Random erasure patterns: 隨機擦除模式: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p>隨機軟決策 Reed Solomon 解碼器的最大擦除模式數為 10^(n/2).</p></body></html> - + Aggressive decoding level: 主動解碼等級: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>較高的水準會增加解碼的概率,但也會增加錯誤解碼的概率.</p></body></html> - + Two-pass decoding 以二次解碼 - + Special operating activity: Generation of FT4, FT8, and MSK144 messages 特殊操作活動: 產生FT4, FT8 和 MSK144 信息 - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> <html><head/><body><p>FT8 DX遠征模式呼叫DX的獵犬操作員.</p></body></html> - + + Hound 獵犬 - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>北美 VHF/UHF/Microwave 競賽和其他需要交換的 4 個字元網格定位的競賽.</p></body></html> - + + NA VHF Contest NA VHF 競賽 - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>FT8 DX远征模式: 狐狸 (DX远征) 操作员.</p></body></html> - + + Fox 狐狸 - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>歐洲 VHF+ 競賽需要信號報告, 序列號和 6 個字元定位.</p></body></html> - + + EU VHF Contest EU VHF 競賽 - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY Roundup 和類似的比賽. 交換是美國的州, 加拿大省或 &quot;DX&quot;.</p></body></html> - + + R T T Y Roundup + + + + RTTY Roundup messages RTTY Roundup 信息 - + + RTTY Roundup exchange + + + + RTTY RU Exch: RTTY RU 交換: - + NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL Field Day 交換: 發射機數量, 類別別, 和 ARRL/RAC 部份或 &quot;DX&quot;.</p></body></html> - + + A R R L Field Day + + + + ARRL Field Day - + + Field Day exchange + + + + FD Exch: FD 交換: - + 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>世界數字模式競賽</p><p><br/></p></body></html> - + + WW Digital Contest + + + + WW Digi Contest 世界數字競賽 - + Miscellaneous 雜項 - + Degrade S/N of .wav file: 降低信噪比的 .wav文件: - - + + For offline sensitivity tests 用於離線靈敏度測試 - + dB 分貝 - + Receiver bandwidth: 接收器頻寬: - + Hz 赫茲 - + Tx delay: 發射延遲: - + Minimum delay between assertion of PTT and start of Tx audio. PTT 驗證與發射音訊啟動之間的最小延遲. - + s - + + Tone spacing 音調間距 - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>產生具有正常音調間距兩倍的發射音頻. 適用於在產生射頻之前使用除以 2 的特殊 LF/MF 發射器.</p></body></html> - + x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>具有正常音調間距四倍的發射音頻. 適用於在產生射頻之前使用除以 4 的特殊 LF/MF 發射器.</p></body></html> - + x 4 - + + Waterfall spectra 瀑布頻譜 - + Low sidelobes 低側邊 - + Most sensitive 最敏感 - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p>放棄 (取消) 或應用 (確定) 設定更改, 包括</p><p>重置無線電介面並套用任何音效卡變更</p></body></html> @@ -6522,12 +6713,12 @@ Right click for insert and delete options. 無法建立共用記憶體段 - + Sub-process error - + Failed to close orphaned jt9 process From 2a1ef287a68992244148be6eaebf9a74a94ea088 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 11 Sep 2020 09:13:11 -0400 Subject: [PATCH 461/520] Add 300 and 400 Hz to the list of available FTol values for FST4. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index e98ed8a00..829096681 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -6506,7 +6506,7 @@ void MainWindow::switch_mode (Mode mode) ui->rptSpinBox->setSingleStep(1); ui->rptSpinBox->setMinimum(-50); ui->rptSpinBox->setMaximum(49); - ui->sbFtol->values ({1, 2, 5, 10, 20, 50, 100, 200, 500, 1000}); + ui->sbFtol->values ({1, 2, 5, 10, 20, 50, 100, 200, 300, 400, 500, 1000}); ui->sbFST4W_FTol->values({1, 2, 5, 10, 20, 50, 100}); if(m_mode=="MSK144") { ui->RxFreqSpinBox->setMinimum(1400); From 6d434b147d065e102a918aa2b55d022023f68f49 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 11 Sep 2020 14:55:25 +0100 Subject: [PATCH 462/520] Japanese l10n updates, tnx to Oba san, JA7UDE --- translations/wsjtx_ja.ts | 193 +++++++++++++++++++++++++++------------ 1 file changed, 134 insertions(+), 59 deletions(-) diff --git a/translations/wsjtx_ja.ts b/translations/wsjtx_ja.ts index 6841f88df..643a3e433 100644 --- a/translations/wsjtx_ja.ts +++ b/translations/wsjtx_ja.ts @@ -479,7 +479,7 @@ Format: Invalid audio output device - + 無効なオーディオ出力デバイス @@ -692,7 +692,8 @@ Format: DX Lab Suite Commander send command failed "%1": %2 - + DX Lab Suite Commanderが "%1": %2コマンドを送れませんでした + DX Lab Suite Commander failed to send command "%1": %2 @@ -2231,17 +2232,17 @@ Error(%2): %3 Percentage of minute sequences devoted to transmitting. - + 送信に費やされた時間のパーセンテージ. Prefer Type 1 messages - + タイプ1メッセージ優先 <html><head/><body><p>Transmit during the next sequence.</p></body></html> - + <html><head/><body><p>次回送信</p></body></html> @@ -2930,17 +2931,17 @@ ENTERを押してテキストを登録リストに追加. Quick-Start Guide to FST4 and FST4W - + FST4とFST4Wのクイックスタートガイド FST4 - + FST4 FST4W - + FST4W Calling CQ @@ -2954,7 +2955,7 @@ ENTERを押してテキストを登録リストに追加. CQ - + CQ Generate message with RRR @@ -3171,102 +3172,102 @@ ENTERを押してテキストを登録リストに追加. 1/2 - 1/2 + 1/2 2/2 - 2/2 + 2/2 1/3 - 1/3 + 1/3 2/3 - 2/3 + 2/3 3/3 - 3/3 + 3/3 1/4 - 1/4 + 1/4 2/4 - 2/4 + 2/4 3/4 - 3/4 + 3/4 4/4 - 4/4 + 4/4 1/5 - 1/5 + 1/5 2/5 - 2/5 + 2/5 3/5 - 3/5 + 3/5 4/5 - 4/5 + 4/5 5/5 - 5/5 + 5/5 1/6 - 1/6 + 1/6 2/6 - 2/6 + 2/6 3/6 - 3/6 + 3/6 4/6 - 4/6 + 4/6 5/6 - 5/6 + 5/6 6/6 - 6/6 + 6/6 @@ -3314,7 +3315,7 @@ ENTERを押してテキストを登録リストに追加. NB - + NB @@ -3779,22 +3780,22 @@ ENTERを押してテキストを登録リストに追加. %1 (%2 sec) audio frames dropped - + %1個 (%2 秒)のオーディオフレームが欠落 Audio Source - + オーディオソース Reduce system load - + システム負荷軽減 Excessive dropped samples - %1 (%2 sec) audio frames dropped - + サンプル大量欠落 - %1個 (%2秒)のオーディオフレームが欠落 @@ -4067,7 +4068,51 @@ ENTERを押してテキストを登録リストに追加. <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> </table> Keyboard shortcuts help window contents - + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>送信中止 QSO終了, 次の送信をクリア</td></tr> + <tr><td><b>F1 </b></td><td>オンラインユーザーガイド (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>著作権表示</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>WSJT-Xについて</td></tr> + <tr><td><b>F2 </b></td><td>設定ウィンドウを開く (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>キーボードショートカットを表示 (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>DXコール、グリッド、送信メッセージ1~4をクリア (Alt: transmit Tx4)</td></tr> + <tr><td><b>Alt+F4 </b></td><td>プログラム終了</td></tr> + <tr><td><b>F5 </b></td><td>特別なマウスコマンドを表示 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>ディレクトリ内の次のファイルを開く (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>ディレクトリ内の残りのファイルをすべてデコード</td></tr> + <tr><td><b>F7 </b></td><td>メッセージ平均化ウィンドウを表示</td></tr> + <tr><td><b>F11 </b></td><td>受信周波数を1 Hz下げる</td></tr> + <tr><td><b>Ctrl+F11 </b></td><td>送受信周波数を1 Hz下げる</td></tr> + <tr><td><b>Shift+F11 </b></td><td>送信周波数を60 Hz (FT8) または 90 Hz (FT4)下げる</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>ダイアル周波数を2000 Hz下げる</td></tr> + <tr><td><b>F12 </b></td><td>受信周波数を1 Hz<上げる/td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>送受信周波数を1 Hz上げる</td></tr> + <tr><td><b>Shift+F12 </b></td><td>送信周波数を60 Hz (FT8) または 90 Hz (FT4)上げる</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>ダイアル周波数を2000 Hz上げる</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>この番号をタブ1の送信中番号へセット</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>この番号をタブ1の次回送信番号へセット</td></tr> + <tr><td><b>Alt+B </b></td><td> "Best S+P" ステータスをトグル</td></tr> + <tr><td><b>Alt+C </b></td><td> "Call 1st" チェックボックスをトグル</td></tr> + <tr><td><b>Alt+D </b></td><td>QSO周波数でもう一度デコード</td></tr> + <tr><td><b>Shift+D </b></td><td>フルデコード(両ウィンドウ)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>TX even/1stをオン</td></tr> + <tr><td><b>Shift+E </b></td><td>TX even/1stをオフ</td></tr> + <tr><td><b>Alt+E </b></td><td>消去</td></tr> + <tr><td><b>Ctrl+F </b></td><td>フリーテキストメッセージボックスを編集</td></tr> + <tr><td><b>Alt+G </b></td><td>標準メッセージを生成</td></tr> + <tr><td><b>Alt+H </b></td><td>送信中断</td></tr> + <tr><td><b>Ctrl+L </b></td><td>データベースでコールサインを検索, 標準メッセージを生成</td></tr> + <tr><td><b>Alt+M </b></td><td>受信</td></tr> + <tr><td><b>Alt+N </b></td><td>送信許可</td></tr> + <tr><td><b>Ctrl+O </b></td><td>.wav ファイルを開く</td></tr> + <tr><td><b>Alt+O </b></td><td>オペレータ交代</td></tr> + <tr><td><b>Alt+Q </b></td><td>QSOをログイン</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Tx4 メッセージをRRRに(FT4以外)</td></tr> + <tr><td><b>Alt+R </b></td><td>Tx4 メッセージをRR73に</td></tr> + <tr><td><b>Alt+S </b></td><td>受信停止</td></tr> + <tr><td><b>Alt+T </b></td><td>Tune ステータスをトグル</td></tr> + <tr><td><b>Alt+Z </b></td><td>デコードステータスをクリア</td></tr> +</table> @@ -4108,7 +4153,37 @@ ENTERを押してテキストを登録リストに追加. </tr> </table> Mouse commands help window contents - + <table cellpadding=5> + <tr> + <th align="right">クリック</th> + <th align="left">動作</th> + </tr> + <tr> + <td align="right">ウォーターフォール:</td> + <td><b>クリックし</b>受信周波数をセット.<br/> + <b>シフトを押しながらクリックし</b>送信周波数をセット.<br/> + <b>コントロールを押しながらクリック</b> または <b>右クリックし</b>送信受信周波数をセット.<br/> + <b>ダブルクリック</b>受信周波数でデコード.<br/> + </td> + </tr> + <tr> + <td align="right">デコードされたテキスト:</td> + <td><b>ダブルクリックし</b>2番めのコールをDxコールにセット,<br/> + ロケータをDxグリッドにセット, 送受信周波数を<br/> + デコードした周波数にセット, さらに標準メッセージを<br/> + 生成.<br/> + もし <b>Hold Tx Freq</b> がチェックされているか、メッセージの最初のコールが<br/> + あなたのコールの場合は送信周波数変化なし <br/> + <b>コントロールキー</b> が押されていれば変化する.<br/> + </td> + </tr> + <tr> + <td align="right">消去ボタン:</td> + <td><b>クリックして</b>QSOウィンドウをクリア.<br/> + <b>ダブルクリックして</b>QSOウィンドウとバンドアクティビティウィンドウをクリア. + </td> + </tr> +</table> @@ -4118,7 +4193,7 @@ ENTERを押してテキストを登録リストに追加. Spotting to PSK Reporter unavailable - + 現在PSK Reporterにスポットできません @@ -4778,7 +4853,7 @@ Error(%2): %3 No audio output device configured. - + オーディオ出力デバイスが設定されていません. @@ -5021,12 +5096,12 @@ Error(%2): %3 Hz - Hz + Hz Split - + スプリット JT9 @@ -5073,22 +5148,22 @@ Error(%2): %3 Invalid ADIF field %0: %1 - + 無効なADIFフィールド %0: %1 Malformed ADIF field %0: %1 - + 不正フォーマットADIFフィールド %0: %1 Invalid ADIF header - + 無効なADIFヘッダー Error opening ADIF log file for read: %0 - + ADIFログファイルを開けません: %0 @@ -5479,7 +5554,7 @@ quiet period when decoding is done. Data bits - + データビット @@ -5509,7 +5584,7 @@ quiet period when decoding is done. Stop bits - + ストップビット @@ -5831,7 +5906,7 @@ transmitting periods. Days since last upload - + 最後にアップロードしてから経過した日数 @@ -5885,7 +5960,7 @@ both here. Enable VHF and submode features - + VHFとサブモード機能をオン @@ -6090,7 +6165,7 @@ and DX Grid fields when a 73 or free text message is sent. <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> - + <html><head/><body><p>貴局の詳細、及びグリッドスクエアを含む全てのデコードした信号を http://pskreporter.info web siteへスポットできます.</p><p>これは、リバースビーコンの解析に使用され、電波伝搬の評価に大変役立ちます.</p></body></html> The program can send your station details and all @@ -6110,12 +6185,12 @@ for assessing propagation and system performance. <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + <html><head/><body><p>確実な通信が必要なときだけ、このオプションをチェックします</p><p>殆どのユーザー環境では、UDPで十分かつ効率がよいため、チェックする必要はありません. PSK ReporterへのUDPトラフィックが不安定であるという確信があるときのみチェックしてください.</p></body></html> Use TCP/IP connection - + TCP/IP接続を仕様 @@ -6352,7 +6427,7 @@ Right click for insert and delete options. URL - + URL @@ -6482,7 +6557,7 @@ Right click for insert and delete options. R T T Y Roundup - + R T T Y ラウンドアップ @@ -6492,7 +6567,7 @@ Right click for insert and delete options. RTTY Roundup exchange - + RTTYラウンドアップコンテストナンバー @@ -6513,7 +6588,7 @@ Right click for insert and delete options. A R R L Field Day - + A R R L フィールドデー @@ -6523,7 +6598,7 @@ Right click for insert and delete options. Field Day exchange - + フィールドデーコンテストナンバー @@ -6543,7 +6618,7 @@ Right click for insert and delete options. WW Digital Contest - + WWデジタルコンテスト @@ -6748,12 +6823,12 @@ Right click for insert and delete options. Sub-process error - + サブプロセスエラー Failed to close orphaned jt9 process - + jt9の孤立したプロセスを終了できません From 5c05cd2acb6b0c3dcf051ea71877f5f9f359be52 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 11 Sep 2020 14:56:42 +0100 Subject: [PATCH 463/520] =?UTF-8?q?Spanish=20l10n=20updates,=20tnx=20to=20?= =?UTF-8?q?C=C3=A9dric,=20EA4AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/wsjtx_es.ts | 2200 ++++++++++++++++---------------------- 1 file changed, 928 insertions(+), 1272 deletions(-) diff --git a/translations/wsjtx_es.ts b/translations/wsjtx_es.ts index 1302c2bda..658a05624 100644 --- a/translations/wsjtx_es.ts +++ b/translations/wsjtx_es.ts @@ -150,19 +150,19 @@ Datos Astronómicos - + Doppler Tracking Error Error de seguimiento de Doppler Seguimiento de error Doppler - + Split operating is required for Doppler tracking Se requiere un funcionamiento dividido para el seguimiento Doppler Operación en "Split" es requerida para seguimiento Doppler - + Go to "Menu->File->Settings->Radio" to enable split operation Ves a "Menú-> Archivo-> Configuración-> Radio" para habilitar la operación dividida Ir a "Menú - Archivo - Ajustes - Radio" para habilitar la operación en "Split" @@ -171,33 +171,33 @@ Bands - + Band name Nombre de la Banda Nombre de la banda - + Lower frequency limit Límite de frecuencia inferior - + Upper frequency limit Límite de frecuencia superior - + Band Banda - + Lower Limit Límite inferior - + Upper Limit Limite superior @@ -404,81 +404,81 @@ Configuration::impl - - - + + + &Delete &Borrar - - + + &Insert ... &Introducir ... &Agregar... - + Failed to create save directory No se pudo crear el directorio para guardar No se pudo crear el directorio "Save" - + path: "%1% ruta: "%1% - + Failed to create samples directory No se pudo crear el directorio de ejemplos No se pudo crear el directorio "Samples" - + path: "%1" ruta: "%1" - + &Load ... &Carga ... &Cargar ... - + &Save as ... &Guardar como ... &Guardar como ... - + &Merge ... &Fusionar ... &Fusionar ... - + &Reset &Reiniciar - + Serial Port: Puerto Serie: - + Serial port used for CAT control Puerto serie utilizado para el control CAT - + Network Server: Servidor de red: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -499,12 +499,12 @@ Formatos: [dirección IPv6]:port - + USB Device: Dispositivo USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -519,177 +519,172 @@ Formato: [VID[:PID[:VENDOR[:PRODUCT]]]] - - + Invalid audio input device El dispositivo de entrada de audio no es válido Dispositivo de entrada de audio no válido + Invalid audio out device El dispositivo de salida de audio no es válido - Dispositivo de salida de audio no válido + Dispositivo de salida de audio no válido - - Invalid audio output device - - - - + Invalid PTT method El método de PTT no es válido Método PTT no válido - + Invalid PTT port El puerto del PTT no es válido Puerto PTT no válido - - + + Invalid Contest Exchange Intercambio de concurso no válido - + You must input a valid ARRL Field Day exchange Debes introducir un intercambio de Field Day del ARRL válido Debe introducir un intercambio válido para el ARRL Field Day - + You must input a valid ARRL RTTY Roundup exchange Debes introducir un intercambio válido de la ARRL RTTY Roundup Debe introducir un intercambio válido para el ARRL RTTY Roundup - + Reset Decode Highlighting Restablecer Resaltado de Decodificación Restablecer resaltado de colores de decodificados - + Reset all decode highlighting and priorities to default values Restablecer todo el resaltado y las prioridades de decodificación a los valores predeterminados Restablecer todo el resaltado de colores y prioridades a los valores predeterminados - + WSJT-X Decoded Text Font Chooser Tipo de texto de pantalla de descodificación WSJT-X Seleccionar un tipo de letra - + Load Working Frequencies Carga las frecuencias de trabajo Cargar las frecuencias de trabajo - - - + + + Frequency files (*.qrg);;All files (*.*) Archivos de frecuencia (*.qrg);;Todos los archivos (*.*) - + Replace Working Frequencies Sustituye las frecuencias de trabajo Sustituir las frecuencias de trabajo - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por las cargadas? ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las cargadas? - + Merge Working Frequencies Combinar las frecuencias de trabajo Combina las frecuencias de trabajo - - - + + + Not a valid frequencies file El archivo de frecuencias no es válido Archivo de frecuencias no válido - + Incorrect file magic Archivo mágico incorrecto - + Version is too new La versión es demasiado nueva - + Contents corrupt contenidos corruptos Contenido corrupto - + Save Working Frequencies Guardar las frecuencias de trabajo - + Only Save Selected Working Frequencies Guarda sólo las frecuencias de trabajo seleccionadas Sólo guarda las frecuencias de trabajo seleccionadas - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. ¿Seguro que quieres guardar sólo las frecuencias de trabajo seleccionadas actualmente? Haz clic en No para guardar todo. ¿Seguro que quiere guardar sólo las frecuencias de trabajo seleccionadas actualmente? Clic en No para guardar todo. - + Reset Working Frequencies Reiniciar las frecuencias de trabajo - + Are you sure you want to discard your current working frequencies and replace them with default ones? ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por otras? ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las de defecto? - + Save Directory Guardar directorio Directorio "Save" - + AzEl Directory Directorio AzEl - + Rig control error Error de control del equipo - + Failed to open connection to rig No se pudo abrir la conexión al equipo Fallo al abrir la conexión al equipo - + Rig failure Fallo en el equipo @@ -769,14 +764,9 @@ Formato: - DX Lab Suite Commander send command failed "%1": %2 - - - - DX Lab Suite Commander failed to send command "%1": %2 - DX Lab Suite Commander ha fallado al enviar el comando "%1": %2 + DX Lab Suite Commander ha fallado al enviar el comando "%1": %2 @@ -999,12 +989,12 @@ Formato: File - Archivo + Archivo Progress - + Progreso @@ -1199,7 +1189,7 @@ Error: %2 - %3 Equalization Tools - + Herramientas de Ecualización @@ -1586,23 +1576,23 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency Agregar frecuencia Añadir frecuencia - + IARU &Region: &Región IARU: - + &Mode: &Modo: - + &Frequency (MHz): &Frecuencia en MHz: &Frecuencia (MHz): @@ -1611,26 +1601,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region Región IARU - - + + Mode Modo - - + + Frequency Frecuencia - - + + Frequency (MHz) Frecuencia en MHz Frecuencia (MHz) @@ -1645,7 +1635,6 @@ Error: %2 - %3 No se pudo conectar a Ham Radio Deluxe Fallo al conectar con el Ham Radio Deluxe - @@ -1743,7 +1732,7 @@ Error: %2 - %3 Hamlib settings file error: %1 at character offset %2 Error de archivo de configuración de Hamlib:%1 en el desplazamiento de caracteres %2 - Error en archivo de configuración de Hamlib:%1 en el desplazamiento de caracteres %2 + Error en archivo de configuración de Hamlib:%1 en el desplazamiento de caracteres %2 @@ -1936,18 +1925,21 @@ Error: %2 - %3 HelpTextWindow + Help file error Error del archivo de ayuda - Error en el archivo de ayuda + Error en el archivo de ayuda + Cannot open "%1" for reading No se puede abrir "%1" para leer - No se puede abrir "%1" para lectura + No se puede abrir "%1" para lectura + Error: %1 - Error: %1 + Error: %1 @@ -1955,22 +1947,22 @@ Error: %2 - %3 All - + Todas Region 1 - + Región 1 Region 2 - + Región 2 Region 3 - + Región 3 @@ -2079,97 +2071,97 @@ Error: %2 - %3 Prop Mode - + Modo de Propagación Aircraft scatter - + Scatter por aeronaves Aurora-E - + Aurora-E Aurora - + Aurora Back scatter - + Back scatter Echolink - + Echolink Earth-moon-earth - + Tierra-Luna-Tierra Sporadic E - + Esporádica E F2 Reflection - + Reflección F2 Field aligned irregularities - + Irregularidades alineadas de campo Internet-assisted - + Asistido por Internet Ionoscatter - + Scatter Ionosférico IRLP - + IRLP Meteor scatter - + Meteor scatter Non-satellite repeater or transponder - + Repetidor o transponder sin satelite Rain scatter - + Scatter por lluvia Satellite - + Satelite Trans-equatorial - + Transecuatorial Troposheric ducting - + Conductos troposfericos @@ -2278,13 +2270,12 @@ Error(%2): %3 - - - - - - - + + + + + + Band Activity Actividad en la banda @@ -2296,12 +2287,11 @@ Error(%2): %3 - - - - - - + + + + + Rx Frequency Frecuencia de RX @@ -2339,150 +2329,135 @@ Error(%2): %3 Activa/Desactiva la monitorización - + &Monitor &Monitor - + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> <html><head/><body><p>Borrar ventana derecha. Haz doble clic para borrar ambas ventanas.</p></body></html> - <html><head/><body><p>Clic para borrar ventana derecha.</p><p> Doble clic para borrar ambas ventanas.</p></body></html> + <html><head/><body><p>Clic para borrar ventana derecha.</p><p> Doble clic para borrar ambas ventanas.</p></body></html> - + Erase right window. Double-click to erase both windows. Borrar ventana derecha. Haz doble clic para borrar ambas ventanas. Borra ventana derecha. Doble clic para borrar ambas ventanas. - + &Erase &Borrar - + <html><head/><body><p>Clear the accumulating message average.</p></body></html> <html><head/><body><p>Borrar el promedio de mensajes acumulados.</p></body></html> - <html><head/><body><p>Borrar el promedio de mensajes acumulados.</p></body></html> + <html><head/><body><p>Borrar el promedio de mensajes acumulados.</p></body></html> - + Clear the accumulating message average. - Borrar el promedio de mensajes acumulados. + Borrar el promedio de mensajes acumulados. - + Clear Avg Borrar media - + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> <html><head/><body><p>Decodificar el período de RX más reciente en la frecuencia QSO</p></body></html> <html><head/><body><p>Decodifica el período de RX más reciente en la frecuencia del QSO</p></body></html> - + Decode most recent Rx period at QSO Frequency Decodificar el período de RX más reciente en la frecuencia QSO - Decodifica el período más reciente de RX en la frecuencia del QSO + Decodifica el período más reciente de RX en la frecuencia del QSO - + &Decode &Decodificar &Decodifica - + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> <html><head/><body><p>Activar/desactivar TX</p></body></html> <html><head/><body><p>Activar/Desactivar TX</p></body></html> - + Toggle Auto-Tx On/Off Activar/desactivar TX Activa/Desactiva Auto-TX - + E&nable Tx &Activar TX - + Stop transmitting immediately Detiene TX inmediatamente Detener TX inmediatamente - + &Halt Tx &Detener TX - + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> <html><head/><body><p>Activar/desactivar un tono de transmisión puro</p></body></html> <html><head/><body><p>Activa/Desactiva la transmisión de un tono continuo</p></body></html> - + Toggle a pure Tx tone On/Off Activar/desactivar un tono de transmisión puro Activar/Desactivar TX con tono continuo - + &Tune &Tono TX - + Menus Menús - - Percentage of minute sequences devoted to transmitting. - - - - - Prefer Type 1 messages - - - - - <html><head/><body><p>Transmit during the next sequence.</p></body></html> - - - - + USB dial frequency Frecuencia de dial USB - + 14.078 000 14.078 000 - + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> <html><head/><body><p>30dB recomendado cuando solo hay ruido presente,<br/>Verde cuando el nivel es bueno,<br/>Rojo cuando puede ocurrir recortes y<br/>Amarillo cuando esta muy bajo.</p></body></html> <html><head/><body><p>30 dB recomendado cuando solo hay ruido presente.<br>Verde: Nivel de audio aceptable.<br>Rojo: Pueden ocurrir fallos de audio.<br>Amarillo: Nivel de audio muy bajo.</p></body></html> - + Rx Signal Señal de RX Señal RX - + 30dB recommended when only noise present Green when good Red when clipping may occur @@ -2497,316 +2472,310 @@ Rojo pueden ocurrir fallos de audio Amarillo cuando esta muy bajo. - + DX Call Indicativo DX - + DX Grid Locator/Grid DX Locator DX - + Callsign of station to be worked Indicativo de la estación a trabajar - + Search for callsign in database Buscar el indicativo en la base de datos (CALL3.TXT) - + &Lookup &Buscar - + Locator of station to be worked Locator/Grid de la estación a trabajar Locator de la estación a trabajar - + Az: 251 16553 km Az: 251 16553 km - + Add callsign and locator to database Agregar indicativo y locator/Grid a la base de datos Agregar indicativo y locator a la base de datos (CALL3.TXT) - + Add Agregar - + Pwr Potencia - + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> <html><head/><body><p>Si ha habido un error en el control del equipo, haz clic para restablecer y leer la frecuencia del dial. S implica modo dividido o split.</p></body></html> - <html><head/><body><p>Si está naranja o rojo, ha habido un error en el control del equipo</p><p>Clic para reiniciar y leer la frecuencia del dial. </p><p>S indica modo "Split".</p></body></html> + <html><head/><body><p>Si está naranja o rojo, ha habido un error en el control del equipo</p><p>Clic para reiniciar y leer la frecuencia del dial. </p><p>S indica modo "Split".</p></body></html> - + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. Si ha habido un error en el control del equipo, haz clic para restablecer y leer la frecuencia del dial. S implica modo dividido o split. Si está naranja o rojo, ha habido un error en el control del equipo, clic para restablecer y leer la frecuencia del dial. S indica "Split". - + ? ? - + Adjust Tx audio level Ajuste del nivel de audio de TX Ajustar nivel de audio de TX - + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> <html><head/><body><p>Selecciona la banda operativa, introduce la frecuencia en MHz o introduce el incremento de kHz seguido de k.</p></body></html> <html><head/><body><p>Selecciona la banda, o escriba la frecuencia en MHz o escriba el incremento en kHz seguido de k.</p></body></html> - + Frequency entry Frecuencia de entrada - + Select operating band or enter frequency in MHz or enter kHz increment followed by k. Selecciona la banda operativa, introduce la frecuencia en MHz o introduce el incremento de kHz seguido de k. Selecciona la banda o introduce la frecuencia en MHz o ecribe el incremento en kHz seguido de la letra k. - + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> - + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> <html><head/><body><p>Marca para mantener fija la frecuencia de transmisión al hacer doble clic en el texto decodificado.</p></body></html> <html><head/><body><p>Marcar para mantener fija la frecuencia de TX al hacer doble clic en el texto decodificado.</p></body></html> - + Check to keep Tx frequency fixed when double-clicking on decoded text. Marca para mantener fija la frecuencia de transmisión al hacer doble clic en el texto decodificado. Marcar para mantener fija la frecuencia de TX al hacer doble clic en un texto decodificado. - + Hold Tx Freq Mantén TX Freq Mantener Frec. TX - + Audio Rx frequency Frecuencia de audio en RX Frecuencia de RX - - - - - + + + Hz Hz - - + Rx RX - - + Set Tx frequency to Rx Frequency Coloca la frecuencia de RX en la de TX Coloca la frecuencia de TX en la de RX - + - + Frequency tolerance (Hz) Frecuencia de tolerancia (Hz) - - + F Tol F Tol - - + Set Rx frequency to Tx Frequency Coloca la frecuencia de TX en la de RX Coloca la frecuencia de RX en la de TX - + - + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> <html><head/><body><p>Umbral de sincronización. Los números más bajos aceptan señales de sincronización más débiles.</p></body></html> - + Synchronizing threshold. Lower numbers accept weaker sync signals. Umbral de sincronización. Los números más bajos aceptan señales de sincronización más débiles. - + Sync Sinc - + <html><head/><body><p>Check to use short-format messages.</p></body></html> <html><head/><body><p>Marca para usar mensajes de formato corto.</p></body></html> <html><head/><body><p>Marcar para usar mensajes de formato corto.</p></body></html> - + Check to use short-format messages. Marcar para usar mensajes de formato corto. Marca para usar mensajes de formato corto. - + Sh Sh - + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> <html><head/><body><p>Marca para habilitar los modos rápidos JT9</p></body></html> <html><head/><body><p>Marcar para habilitar los modos rápidos JT9</p></body></html> - + Check to enable JT9 fast modes Marca para habilitar los modos rápidos JT9 Marcar para habilitar los modos rápidos JT9 - - + + Fast Rápido - + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> <html><head/><body><p>Marca para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos.</p></body></html> <html><head/><body><p>Marcar para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos.</p></body></html> - + Check to enable automatic sequencing of Tx messages based on received messages. Marca para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos. Marcar para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos. - + Auto Seq Secuencia Automática Secuencia Auto. - + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> <html><head/><body><p>Responde al 1er. CQ decodificado.</p></body></html> <html><head/><body><p>Marcar para responder a la 1ra estación decodificada.</p></body></html> - + Check to call the first decoded responder to my CQ. Responde al 1er. CQ decodificado. Marcar para responder al 1ra. estación decodificada. - + Call 1st Responde al 1er. CQ 1er decodificado - + Check to generate "@1250 (SEND MSGS)" in Tx6. Marcar para generar "@1250 (SEND MSGS)" en TX6. - + Tx6 TX6 - + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> <html><head/><body><p>Marca a TX en minutos o secuencias de números pares, a partir de 0; desmarca las secuencias impares.</p></body></html> <html><head/><body><p>Marcar para transmitir en secuencias o minutos pares, comenzando por 0; desmarca para transmitir en las secuencias o minutos impares.</p></body></html> - + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. Marca a TX en minutos o secuencias de números pares, a partir de 0; desmarca las secuencias impares. Marcar para transmitir en secuencias o minutos pares, comenzando por 0; desmarca para transmitir en las secuencias o minutos impares. - + Tx even/1st Alternar periodo TX Par/Impar TX segundo par - + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> <html><head/><body><p>Frecuencia para llamar a CQ en kHz por encima del MHz actual</p></body></html> <html><head/><body><p>Frecuencia para llamar CQ en kHz por sobre el MHz actual</p></body></html> - + Frequency to call CQ on in kHz above the current MHz Frecuencia para llamar a CQ en kHz por encima del MHz actual Frecuencia para llamar CQ en kHz por encima del MHz actual - + Tx CQ TX CQ - + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> <html><head/><body><p>Marca esto para llamar a CQ en la frecuencia&quot;TX CQ&quot;. RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder.</p><p>No está disponible para los titulares de indicativo no estándar.</p></body></html> <html><head/><body><p>Marcar para llamar CQ en la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder.</p><p>No está disponible para los titulares de indicativo no estándar.</p></body></html> - + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. Marca esto para llamar a CQ en la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder. @@ -2814,63 +2783,63 @@ No está disponible para los titulares de indicativo no estándar.Marcar para llamar CQ en la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder. No está disponible para los titulares de indicativo no estándar. - + Rx All Freqs RX en todas las frecuencias - + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> <html><head/><body><p>El submodo determina el espaciado de tono; "A" es más estrecho.</p></body></html> - + Submode determines tone spacing; A is narrowest. El submodo determina el espaciado de tono; "A" es más estrecho. - + Submode Submodo - - + + Fox Fox "Fox" - + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> <html><head/><body><p>Marca para monitorear los mensajes Sh.</p></body></html> <html><head/><body><p>Marcar para escuchar los mensajes Sh.</p></body></html> - + Check to monitor Sh messages. Marca para monitorear los mensajes Sh. Marcar para escuchar los mensajes Sh. - + SWL SWL - + Best S+P El mejor S+P - S+P + S+P - + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> <html><head/><body><p>Marca para comenzar a registrar los datos de calibración.<br/>Mientras se mide la corrección de calibración, se desactiva.<br/>Cuando no está marcado, puedes ver los resultados de la calibración.</p></body></html> <html><head/><body><p>Marcar para comenzar a grabar los datos de calibración.<br/>Mientras se mide, la corrección de calibración está desactivada.<br/>Cuando no está marcado, puede verse los resultados de la calibración.</p></body></html> - + Check this to start recording calibration data. While measuring calibration correction is disabled. When not checked you can view the calibration results. @@ -2882,123 +2851,121 @@ Mientras se mide, la corrección de calibración está desactivada. Cuando no está marcado, puede verse los resultados de la calibración. - + Measure Medida - + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> <html><head/><body><p>Informe de señal: relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB).</p></body></html> <html><head/><body><p>Reporte de señal: Relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB).</p></body></html> - + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). Informe de señal: relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB). Reporte de señal: Relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB). - + Report No -> Señal de Recepción Reporte - + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> <html><head/><body><p>Tx/Rx o longitud de secuencia de calibración de frecuencia</p></body></html> - <html><head/><body><p>TX/RX o longitud de secuencia de calibración de frecuencia</p></body></html> + <html><head/><body><p>TX/RX o longitud de secuencia de calibración de frecuencia</p></body></html> - + Tx/Rx or Frequency calibration sequence length Tx/Rx o longitud de secuencia de calibración de frecuencia - TX/RX o longitud de secuencia de calibración de frecuencia + TX/RX o longitud de secuencia de calibración de frecuencia - - + s s - - + T/R T/R - + Toggle Tx mode Conmuta el modo TX Conmuta modo TX - + Tx JT9 @ TX JT9 @ - + Audio Tx frequency Frecuencia de audio de TX Frecuencia de TX - - + + Tx TX - + Tx# TX# - + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> <html><head/><body><p>Haz doble clic en otro indicativo que llama para poner en la cola esa llamada para tú siguiente QSO.</p></body></html> <html><head/><body><p>Doble clic en otra estación llamando para poner en la cola ese indicativo para tu siguiente QSO.</p></body></html> - + Double-click on another caller to queue that call for your next QSO. Haz doble clic en otro indicativo que llama para poner en la cola esa llamada para tú siguiente QSO. Doble clic en otra estación llamando para poner en la cola ese indicativo para tu siguiente QSO. - + Next Call Siguiente Indicativo - + 1 1 - - - + + + Send this message in next Tx interval Enviar este mensaje en el siguiente intervalo de transmisión Enviar este mensaje en el siguiente intervalo de TX - + Ctrl+2 Ctrl+2 - + <html><head/><body><p>Send this message in next Tx interval</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>Enviar este mensaje en el siguiente intervalo de transmisión.</p><p>Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> <html><head/><body><p>Enviar este mensaje en el siguiente intervalo de TX.</p><p>Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> - + Send this message in next Tx interval 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) Enviar este mensaje en el siguiente intervalo de transmisión. @@ -3006,37 +2973,37 @@ Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una Enviar este mensaje en el siguiente intervalo de TX. Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1). - + Ctrl+1 Ctrl+1 - - - - + + + + Switch to this Tx message NOW Cambia a este mensaje de TX AHORA Cambiar a este mensaje de TX AHORA - + Tx &2 TX &2 - + Alt+2 Alt+2 - + <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>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> <html><head/><body><p>Cambiar a este mensaje de TX AHORA.</p><p>Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> - + Switch to this Tx message NOW 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) Cambia a este mensaje de TX AHORA. @@ -3044,78 +3011,78 @@ Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una Cambiar a este mensaje de TX AHORA.Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1) - + Tx &1 Tx &1 - + Alt+1 Alt+1 - + Ctrl+6 Ctrl+6 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>Enviar este mensaje en el siguiente intervalo de transmisión</p><p>Haz doble clic para restablecer el mensaje estándar 73.</p></body></html> <html><head/><body><p>Enviar este mensaje en el siguiente intervalo de TX</p><p>Doble clic para restablecer el mensaje 73 estándar.</p></body></html> - + Send this message in next Tx interval Double-click to reset to the standard 73 message Enviar este mensaje en el siguiente intervalo de TX. Doble clic para restablecer el mensaje 73 estándar. - + Ctrl+5 Ctrl+5 - + Ctrl+3 Ctrl+3 - + Tx &3 TX &3 - + Alt+3 Alt+3 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>Envia este mensaje en el siguiente intervalo de transmisión.</p><p>Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> <html><head/><body><p>Envia este mensaje en el siguiente intervalo de TX.</p><p>Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> - + Send this message in next Tx interval Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required Envia este mensaje en el siguiente intervalo de TX. Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2). Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes - + Ctrl+4 Ctrl+4 - + <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>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> <html><head/><body><p>Cambiar a este mensaje de TX AHORA.</p><p>Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> - + Switch to this Tx message NOW Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required @@ -3125,23 +3092,23 @@ Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no Cambiar a este mensaje de TX AHORA. Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2). Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes. - + Tx &4 TX &4 - + Alt+4 Alt+4 - + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para restablecer el mensaje estándar 73.</p></body></html> <html><head/><body><p>Cambiar a este mensaje de TX AHORA.</p><p>Doble clic para restablecer el mensaje estándar 73.</p></body></html> - + Switch to this Tx message NOW Double-click to reset to the standard 73 message Cambia a este mensaje de TX AHORA. @@ -3150,44 +3117,45 @@ Haz doble clic para restablecer el mensaje estándar 73. Doble clic para cambiar al mensaje estándar 73. - + Tx &5 TX &5 - + Alt+5 Alt+5 - + Now Ahora - + Generate standard messages for minimal QSO Genera mensajes estándar para un QSO mínimo Genera mensajes estándares para realizar un QSO - + Generate Std Msgs Genera Mensaje Standar Genera Mensajes Estándar - + Tx &6 TX &6 - + Alt+6 Alt+6 - + + Enter a free text message (maximum 13 characters) or select a predefined macro from the dropdown list. Press ENTER to add the current text to the predefined @@ -3202,1130 +3170,1021 @@ Presiona INTRO para agregar el texto actual a la lista predefinida. La lista se puede modificar en "Ajustes" (F2). - + Queue up the next Tx message Poner en cola el siguiente mensaje de TX - + Next Siguiente - + 2 2 - - FST4W - - - + Calling CQ - Llamando CQ + Llamando CQ + Generate a CQ message - Genera mensaje CQ + Genera mensaje CQ - - + + + CQ CQ + Generate message with RRR - Genera mensaje con RRR + Genera mensaje con RRR + RRR - RRR + RRR + Generate message with report Generar mensaje con informe de señal - Genera mensaje con informe de señal + Genera mensaje con informe de señal + dB - dB + dB + Answering CQ - Respondiendo CQ + Respondiendo CQ + Generate message for replying to a CQ Generar mensaje para responder a un CQ - Genera mensaje para responder a un CQ + Genera mensaje para responder a un CQ - + + Grid Locator/grid Locator + Generate message with R+report Generar mensaje con R+informe de señal - Genera mensaje con R más informe de señal + Genera mensaje con R más informe de señal + R+dB - R+dB + R+dB + Generate message with 73 Generar mensaje con 73 - Genera mensaje con 73 + Genera mensaje con 73 + 73 - 73 + 73 + Send this standard (generated) message Enviar este mensaje estándar (generado) - Envia este mensaje estándar (generado) + Envia este mensaje estándar (generado) + Gen msg Gen msg - Msg Gen + Msg Gen + Send this free-text message (max 13 characters) Enviar este mensaje de texto libre (máximo 13 caracteres) - Envia este mensaje de texto libre (máximo 13 caracteres) + Envia este mensaje de texto libre (máximo 13 caracteres) + Free msg - Msg Libre + Msg Libre + 3 - 3 + 3 - + Max dB Max dB - + CQ AF CQ AF - + CQ AN CQ AN - + CQ AS CQ AS - + CQ EU CQ EU - + CQ NA CQ NA - + CQ OC CQ OC - + CQ SA CQ SA - + CQ 0 CQ 0 - + CQ 1 CQ 1 - + CQ 2 CQ 2 - + CQ 3 CQ 3 - + CQ 4 CQ 4 - + CQ 5 CQ 5 - + CQ 6 CQ 6 - + CQ 7 CQ 7 - + CQ 8 CQ 8 - + CQ 9 CQ 9 - + Reset Reiniciar - + N List N List - + N Slots N Slots - - - - - - - + + Random Aleatorio - + Call Indicativo - + S/N (dB) S/N (dB) - + Distance Distancia - + More CQs Más CQ's + Percentage of 2-minute sequences devoted to transmitting. - Porcentaje de secuencias de 2 minutos dedicadas a la transmisión. + Porcentaje de secuencias de 2 minutos dedicadas a la transmisión. - - + % % - + Tx Pct TX Pct Pct TX - + Band Hopping Salto de banda - + Choose bands and times of day for band-hopping. Elija bandas y momentos del día para saltar de banda. Escoja bandas y momentos del día para saltos de banda. - + Schedule ... Calendario ... Programar ... - - 1/2 - 1/2 - - - - 2/2 - 2/2 - - - - 1/3 - 1/3 - - - - 2/3 - 2/3 - - - - 3/3 - 3/3 - - - - 1/4 - 1/4 - - - - 2/4 - 2/4 - - - - 3/4 - 3/4 - - - - 4/4 - 4/4 - - - - 1/5 - 1/5 - - - - 2/5 - 2/5 - - - - 3/5 - 3/5 - - - - 4/5 - 4/5 - - - - 5/5 - 5/5 - - - - 1/6 - 1/6 - - - - 2/6 - 2/6 - - - - 3/6 - 3/6 - - - - 4/6 - 4/6 - - - - 5/6 - 5/6 - - - - 6/6 - 6/6 - - - + Upload decoded messages to WSPRnet.org. Cargue mensajes decodificados a WSPRnet.org. Subir mensajes decodificados a WSPRnet.org. - + Upload spots Subir "Spots" - + <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>Los Locator/Grid de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes.</p></body></html> <html><head/><body><p>Los locator de 6 dígitos hace que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo, otras estaciones deben haber decodificado el primero antes de poder descodificar el segundo. Marcar esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes.</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. Los Locator/Grid de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes. Los locator de 6 dígitos hace que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo, otras estaciones deben haber decodificado el primero antes de poder descodificar el segundo. Marcar esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes. - - Quick-Start Guide to FST4 and FST4W - - - - - FST4 - - - - FT240W - FT240W - - + Prefer type 1 messages Prefieres mensajes de tipo 1 - Preferir mensajes de tipo 1 + Preferir mensajes de tipo 1 - + No own call decodes No se descodifica ningún indicativo propio No se descodifica mi indicativo + Transmit during the next 2-minute sequence. - Transmite durante la siguiente secuencia de 2 minutos. + Transmite durante la siguiente secuencia de 2 minutos. - + Tx Next Siguiente TX - + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. Configura la potencia de transmisión en dBm (dB por encima de 1 mW) como parte de tú mensaje WSPR. Configurar la potencia de TX en dBm (dB por encima de 1 mW) como parte de su mensaje WSPR. - - NB - - - - + File Archivo - + View Ver - + Decode Decodifica Decodificar - + Save Guardar - + Help Ayuda - + Mode Modo - + Configurations No es valido utilizar Ajustes Configuraciones - + Tools Herramientas - + Exit Salir + Configuration - Ajustes + Ajustes + F2 - F2 + F2 - + About WSJT-X Acerca de WSJT-X - + Waterfall Cascada Cascada (Waterfall) - + Open Abrir - + Ctrl+O Ctrl+O - + Open next in directory - Abrir siguiente en el directorio + Abrir siguiente en el directorio - + Decode remaining files in directory - Decodifica los archivos restantes en el directorio + Decodifica los archivos restantes en el directorio - + Shift+F6 Mayúsculas+F6 Mayúsculas+F6 - + Delete all *.wav && *.c2 files in SaveDir Borrar todos los archivos *.wav y *.c2 - + None Ninguno - Nada + Nada - + Save all Guardar todo - + Online User Guide Guía de usuario en línea - + Keyboard shortcuts Atajos de teclado - + Special mouse commands Comandos especiales del ratón - + JT9 JT9 - + Save decoded Guarda el decodificado Guardar lo decodificado - + Normal Normal - + Deep Profundo + Monitor OFF at startup Monitor apagado al inicio - "Monitor" apagado al inicio + "Monitor" apagado al inicio - + Erase ALL.TXT Borrar ALL.TXT - + Erase wsjtx_log.adi Borrar el archivo wsjtx_log.adi Borrar archivo wsjtx_log.adi + Convert mode to RTTY for logging Convierte el modo a RTTY después de registrar el QSO - Convierte el modo a RTTY para guardar el QSO + Convierte el modo a RTTY para guardar el QSO + Log dB reports to Comments Pon los informes de recepción en dB en Comentarios - Guardar reportes dB en los Comentarios + Guardar reportes dB en los Comentarios + Prompt me to log QSO Pedirme que registre QSO - Preguntarme antes de guardar el QSO + Preguntarme antes de guardar el QSO + Blank line between decoding periods - Línea en blanco entre períodos de decodificación + Línea en blanco entre períodos de decodificación + Clear DX Call and Grid after logging Borrar Indicativo DX y Locator/Grid DX después de registrar un QSO - Borrar Indicativo y Locator del DX después de guardar QSO + Borrar Indicativo y Locator del DX después de guardar QSO + Display distance in miles - Mostrar distancia en millas + Mostrar distancia en millas + Double-click on call sets Tx Enable Haz doble clic en los conjuntos de indicativos de activar TX - Doble clic en el indicativo activa la TX + Doble clic en el indicativo activa la TX - + + F7 F7 + Tx disabled after sending 73 Tx deshabilitado después de enviar 73 - Dehabilita TX después de enviar 73 + Dehabilita TX después de enviar 73 - + + Runaway Tx watchdog - Control de TX + Temporizador de TX + Allow multiple instances - Permitir múltiples instancias + Permitir múltiples instancias + Tx freq locked to Rx freq TX frec bloqueado a RX frec - Freq. de TX bloqueda a freq. de RX + Freq. de TX bloqueda a freq. de RX - + JT65 JT65 - + JT9+JT65 JT9+JT65 + Tx messages to Rx Frequency window Mensajes de texto a la ventana de frecuencia de RX - Mensajes de TX a la ventana de "Frecuencia de RX" + Mensajes de TX a la ventana de "Frecuencia de RX" + Gray1 - Gris1 + Gris1 + Show DXCC entity and worked B4 status Mostrar entidad DXCC y estado B4 trabajado - Mostrar DXCC y estado B4 trabajado + Mostrar DXCC y estado B4 trabajado - + Astronomical data Datos astronómicos - + List of Type 1 prefixes and suffixes Lista de prefijos y sufijos de tipo 1 Lista de prefijos y sufijos tipo 1 - + Settings... Configuración Ajustes... - + Local User Guide Guía de usuario local - + Open log directory Abrir directorio de log - + JT4 JT4 - + Message averaging Promedio de mensajes - + Enable averaging Habilitar el promedio - + Enable deep search Habilitar búsqueda profunda - + WSPR WSPR - + Echo Graph Gráfico de eco - + F8 F8 - + Echo Echo Eco - + EME Echo mode Modo EME Eco - + ISCAT ISCAT - + Fast Graph Gráfico rápido "Fast Graph" - + F9 F9 - + &Download Samples ... &Descargar muestras ... &Descargar muestras de audio ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>Descarga archivos de audio de muestra que demuestren los distintos modos.</p></body></html> <html><head/><body><p>Descargar archivos de audio de los distintos modos.</p></body></html> - + MSK144 MSK144 - + QRA64 QRA64 - + Release Notes Cambios en la nueva versión - + Enable AP for DX Call Habilitar AP para llamada DX - Habilitar AP para indicativo DX + Habilitar AP para indicativo DX - + FreqCal FreqCal - + Measure reference spectrum Medir espectro de referencia - + Measure phase response Medir la respuesta de fase - + Erase reference spectrum Borrar espectro de referencia - + Execute frequency calibration cycle Ejecutar ciclo de calibración de frecuencia - + Equalization tools ... Herramientas de ecualización ... + WSPR-LF - WSPR-LF + WSPR-LF + Experimental LF/MF mode - Modo experimental LF/MF + Modo experimental LF/MF - + FT8 FT8 - - + + Enable AP Habilitar AP - + Solve for calibration parameters Resolver para parámetros de calibración Resolver parámetros de calibración - + Copyright notice Derechos de Autor - + Shift+F1 Mayúsculas+F1 - + Fox log Log Fox Log "Fox" - + FT8 DXpedition Mode User Guide Guía de usuario del modo FT8 DXpedition (inglés) - + Reset Cabrillo log ... Restablecer log de Cabrillo ... Borrar log Cabrillo ... - + Color highlighting scheme Esquema de resaltado de color Esquema de resaltado de colores + Contest Log - Log de Concurso + Log de Concurso - + Export Cabrillo log ... Exportar log de Cabrillo ... Exportar log Cabrillo ... + Quick-Start Guide to WSJT-X 2.0 - Guía de inicio rápido para WSJT-X 2.0 (inglés) + Guía de inicio rápido para WSJT-X 2.0 (inglés) - + Contest log Log de Concurso - + Erase WSPR hashtable Borrar la tabla de WSPR - + FT4 FT4 - + Rig Control Error Error de control del equipo - - - + + + Receiving Recibiendo - + Do you want to reconfigure the radio interface? ¿Desea reconfigurar la interfaz de radio? - - %1 (%2 sec) audio frames dropped - - - - - Audio Source - - - - - Reduce system load - - - - - Excessive dropped samples - %1 (%2 sec) audio frames dropped - - - - + Error Scanning ADIF Log Error al escanear el log ADIF - + Scanned ADIF log, %1 worked before records created Log ADIF escaneado, %1 funcionaba antes de la creación de registros Log ADIF escaneado, %1 registros trabajados B4 creados - + Error Loading LotW Users Data Error al cargar datos de usuarios de LotW Error al cargar datos de usuarios de LoTW - + Error Writing WAV File Error al escribir el archivo WAV - + Configurations... Conmfiguraciones... Configuraciones... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + Message Mensaje - + Error Killing jt9.exe Process Error al matar el proceso jt9.exe - + KillByName return code: %1 Código de retorno de KillByName: %1 KillByName regresa código: %1 - + Error removing "%1" Error al eliminar "%1" - + Click OK to retry Haga clic en Aceptar para volver a intentar Clic en "Aceptar" para reintentar - - + + Improper mode - Modo incorrecto + Modo incorrecto - - + + File Open Error Error de apertura del archivo - Error al abrir archivo + Error al abrir archivo - - - - - + + + + + Cannot open "%1" for append: %2 No puedo abrir "%1" para anexar: %2 No se puedo abrir "%1" para anexar: %2 - + Error saving c2 file Error al guardar el archivo c2 Error al guardar archivo c2 - + Error in Sound Input Error en entrada de sonido - + Error in Sound Output Error en la salida de sonido Error en salida de audio - - - + + + Single-Period Decodes Decodificaciones de un solo período - - - + + + Average Decodes Promedio de decodificaciones - + Change Operator Cambiar operador - + New operator: Operador nuevo: - + Status File Error Error de estado del archivo Error en el archivo de estado - - + + Cannot open "%1" for writing: %2 No se puede abrir "%1" para la escritura: %2 No se puede abrir "%1" para escritura: %2 - + Subprocess Error Error de subproceso - + Subprocess failed with exit code %1 El subproceso falló con el código de salida %1 - - + + Running: %1 %2 Corriendo: %1 @@ -4334,27 +4193,27 @@ Error al cargar datos de usuarios de LotW %2 - + Subprocess error Error de subproceso - + Reference spectrum saved Espectro de referencia guardado - + Invalid data in fmt.all at line %1 Datos no válidos en fmt.all en la línea %1 - + Good Calibration Solution - Buena solución de calibración + Buena solución de calibración - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -4367,18 +4226,18 @@ Error al cargar datos de usuarios de LotW %9%L10 Hz</pre> - + Delete Calibration Measurements Eliminar mediciones de calibración Borrar mediciones de calibración - + The "fmt.all" file will be renamed as "fmt.bak" El archivo "fmt.all" será renombrado como "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -4390,162 +4249,72 @@ Error al cargar datos de usuarios de LotW "Los algoritmos, el código fuente, la apariencia y comportamiento del WSJT-X y los programas relacionados, y las especificaciones del protocolo para los modos FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 son Copyright (C) 2001-2020 por uno o más de los siguientes autores: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q y otros miembros del Grupo de Desarrollo WSJT ". - + No data read from disk. Wrong file format? No se leen datos del disco. Formato de archivo incorrecto? No se han leido datos del disco. Formato de archivo incorrecto? - + Confirm Delete Confirmar eliminación Confirmar borrado - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? ¿Estas seguro de que deseas eliminar todos los archivos *.wav y *.c2 en "%1"? ¿Esta seguro de que desea borrar todos los archivos *.wav y *.c2 en "%1"? - + Keyboard Shortcuts Atajo de teclado Atajos de teclado - - <table cellspacing=1> - <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> - <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> - <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> - <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> - <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> - <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> - <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> - <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> - <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr> - <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> - <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> - <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> - <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> - <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> - <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> - <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> - <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> - <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> - <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> - <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> - <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> - <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> - <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> - <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> - <tr><td><b>Alt+E </b></td><td>Erase</td></tr> - <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> - <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> - <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> - <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> - <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> - <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> - <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> - <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> - <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> - <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> - <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> - <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> - <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> - <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> -</table> - Keyboard shortcuts help window contents - - - - + Special Mouse Commands Comandos especiales del ratón Comandos especiales de ratón - - <table cellpadding=5> - <tr> - <th align="right">Click on</th> - <th align="left">Action</th> - </tr> - <tr> - <td align="right">Waterfall:</td> - <td><b>Click</b> to set Rx frequency.<br/> - <b>Shift-click</b> to set Tx frequency.<br/> - <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> - <b>Double-click</b> to also decode at Rx frequency.<br/> - </td> - </tr> - <tr> - <td align="right">Decoded text:</td> - <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> - locator to Dx Grid, change Rx and Tx frequency to<br/> - decoded signal's frequency, and generate standard<br/> - messages.<br/> - If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> - is your own call, Tx frequency is not changed unless <br/> - <b>Ctrl</b> is held down.<br/> - </td> - </tr> - <tr> - <td align="right">Erase button:</td> - <td><b>Click</b> to erase QSO window.<br/> - <b>Double-click</b> to erase QSO and Band Activity windows. - </td> - </tr> -</table> - Mouse commands help window contents - - - - + No more files to open. No hay más archivos para abrir. - - Spotting to PSK Reporter unavailable - - - - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Por favor, elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30m. - Elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30M. + Elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30M. - + WSPR Guard Band - Banda de Guardia WSPR + Banda de Guardia WSPR + Guarda de banda WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Elige otra frecuencia de dial. WSJT-X no funcionará en modo Fox en las sub-bandas FT8 estándar. Por favor elija otra frecuencia. WSJT-X no operá en modo "Fox" en las sub-bandas de FT8 estándar. - + Fox Mode warning Advertencia del modo Fox Advertencia de modo "Fox" - + Last Tx: %1 Última TX: %1 Últ TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4560,37 +4329,37 @@ Para hacerlo, marca "Actividad operativa especial" y luego "Concurso VHF EU" en "Archivo" - "Ajustes" - "Avanzado". - + Should you switch to ARRL Field Day mode? ¿Cambiar al modo ARRL Field Day? - + Should you switch to RTTY contest mode? ¿Cambiar al modo de concurso RTTY? - - - - + + + + Add to CALL3.TXT Añadir a CALL3.TXT - + Please enter a valid grid locator Por favor, introduce un locator/Grid válido Por favor escriba un locator válido - + Cannot open "%1" for read/write: %2 No se puede abrir "%1" para leer/escribir: %2 No se puede abrir "%1" para lectura/escritura: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 @@ -4599,104 +4368,105 @@ ya está en CALL3.TXT, ¿deseas reemplazarlo? ya está en CALL3.TXT, ¿desea reemplazarlo? - + Warning: DX Call field is empty. Advertencia: el campo de Indicativo DX está vacío. Advertencia: el campo Indicativo DX está vacío. - + Log file error Error de archivo de log Error en el archivo de log - + Cannot open "%1" No puedo abrir "%1" No se puede abrir "%1" - + Error sending log to N1MM Error al enviar el log a N1MM - + Write returned "%1" Escritura devuelta "%1" Escritura devuelve "%1" - + Stations calling DXpedition %1 Estaciones que llaman a DXpedition %1 Estaciones llamando a DXpedition %1 - + Hound Hound "Hound" - + Tx Messages Mensajes de TX Mensajes TX - - - + + + Confirm Erase Confirmar borrado - + Are you sure you want to erase file ALL.TXT? ¿Estás seguro de que quiere borrar el archivo ALL.TXT? - - + + Confirm Reset Confirmar reinicio Confirmar restablecer - + Are you sure you want to erase your contest log? ¿Estás seguro de que quieres borrar el log de tú concurso? ¿Está seguro que quiere borrar el log de concurso? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Hacer esto eliminará todos los registros de QSO para el concurso actual. Se guardarán en el archivo log de ADIF, pero no estarán disponibles para la exportación en tú log de Cabrillo. Hacer esto eliminará todos los QSOs del concurso actual. Se mantendrán en el log ADIF, pero no estarán disponibles para la exportación como log de Cabrillo. - + Cabrillo Log saved Cabrillo Log guardado Log Cabrillo guardado - + Are you sure you want to erase file wsjtx_log.adi? ¿Estás seguro de que quieres borrar el archivo wsjtx_log.adi? ¿Está seguro que quiere borrar el archivo wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? ¿Estás seguro de que quieres borrar la tabla WSPR? ¿Está seguro de que quiere borrar la tabla hash WSPR? + VHF features warning - Advertencia de características VHF + Advertencia de características VHF @@ -4717,48 +4487,48 @@ ya está en CALL3.TXT, ¿desea reemplazarlo? Prefijos y sufijos tipo 1 - + Network Error Error de red - + Error: %1 UDP server %2:%3 Error: %1 Servidor UDP %2:%3 - + File Error Error en el archivo - + Phase Training Disabled Fase de entrenamiento deshabilitado Entrenamieno de Fase deshabilitado - + Phase Training Enabled Fase de entrenamiento habilitado Entrenamiento de Fase habilitado - + WD:%1m WD:%1m - - + + Log File Error Error de archivo log Error en archivo log - + Are you sure you want to clear the QSO queues? ¿Estás seguro de que quieres borrar las colas QSO? ¿Está seguro que quiere borrar las colas de QSOs? @@ -4770,7 +4540,7 @@ Servidor UDP %2:%3 Message Averaging - Promedio de mensajes + Promedio de mensajes @@ -4782,8 +4552,8 @@ Servidor UDP %2:%3 Modes - - + + Mode Modo @@ -4813,7 +4583,7 @@ Servidor UDP %2:%3 Clone &Into ... Clon &a ... - &Clonar a ... + &Clonar a ... @@ -4894,7 +4664,7 @@ Servidor UDP %2:%3 Network SSL/TLS Errors - + Errores SSL/TLS @@ -4956,7 +4726,7 @@ Servidor UDP %2:%3 Error al abrir archivo CSV de usuarios del LoTW: '%1' - + OOB OOB @@ -4975,7 +4745,7 @@ Servidor UDP %2:%3 Error reading waterfall palette file "%1:%2" invalid triplet. Error al leer el archivo de paleta en cascada "%1:%2" triplete inválido. - Error al leer el archivo de paleta de la cascada (waterfall) "%1:%2" triplete inválido. + Error al leer el archivo de paleta de la cascada (waterfall) "%1:%2" triplete inválido. @@ -5041,7 +4811,7 @@ Error(%3): %4 Redirect not followed: %1 - Redireccionamiento no seguido: %1 + Redireccionamiento no seguido: %1 @@ -5092,32 +4862,32 @@ Error(%2): %3 &Abort - + &Abortar &Refresh - + &Refrescar &Details - + &Detalles Base URL for samples: - + Enlace para muestras: Only use HTTP: - + Use solo HTTP: Check this if you get SSL/TLS errors - + Chequee esto si tiene errores SSL/TLS @@ -5156,7 +4926,7 @@ Error(%2): %3 Error no recuperable, dispositivo de entrada de audio no disponible en este momento. - + Requested input audio format is not valid. El formato de audio de entrada solicitado no es válido. @@ -5167,37 +4937,37 @@ Error(%2): %3 El formato de audio de entrada solicitado no está soportado en el dispositivo. - + Failed to initialize audio sink device Error al inicializar el dispositivo receptor de audio - + Idle Inactivo - + Receiving Recibiendo - + Suspended Suspendido - + Interrupted Interrumpido - + Error Error - + Stopped Detenido @@ -5205,67 +4975,62 @@ Error(%2): %3 SoundOutput - + An error opening the audio output device has occurred. Se produjo un error al abrir el dispositivo de salida de audio. - + An error occurred during write to the audio output device. Se produjo un error durante la escritura en el dispositivo de salida de audio. - + Audio data not being fed to the audio output device fast enough. Los datos de audio no se envían al dispositivo de salida de audio lo suficientemente rápido. - + Non-recoverable error, audio output device not usable at this time. Error no recuperable, dispositivo de salida de audio no utilizable en este momento. - + Requested output audio format is not valid. El formato de audio de salida solicitado no es válido. - + Requested output audio format is not supported on device. El formato de audio de salida solicitado no es compatible con el dispositivo. - - No audio output device configured. - - - - + Idle Inactivo - + Sending Recibiendo - + Suspended Suspendido - + Interrupted Interrumpido - + Error Error - + Stopped Detenido @@ -5273,23 +5038,23 @@ Error(%2): %3 StationDialog - + Add Station Agregar estación - + &Band: &Banda: - + &Offset (MHz): &Desplazamiento en MHz: Desplazamient&o (MHz): - + &Antenna: &Antena: @@ -5395,7 +5160,7 @@ Error(%2): %3 <html><head/><body><p>Flatten spectral baseline over the full displayed interval.</p></body></html> <html><head/><body><p>Acoplar la línea base espectral sobre el intervalo visualizado completo.</p></body></html> - <html><head/><body><p>Línea base del espectro sobre el intervalo visualizado completo.</p></body></html> + <html><head/><body><p>Línea base del espectro sobre el intervalo visualizado completo.</p></body></html> @@ -5415,7 +5180,7 @@ Error(%2): %3 Smoothing of Linear Average spectrum - Suavizado del espectro promedio lineal + Suavizado del espectro promedio lineal @@ -5457,7 +5222,7 @@ Error(%2): %3 Linear Avg Promedio lineal - Linear Avg + Linear Avg @@ -5488,21 +5253,13 @@ Error(%2): %3 - Hz - Hz + JT9 + JT9 - Split - - - - JT9 - JT9 - - JT65 - JT65 + JT65 @@ -5540,29 +5297,6 @@ Error(%2): %3 Leer Paleta - - WorkedBefore - - - Invalid ADIF field %0: %1 - - - - - Malformed ADIF field %0: %1 - - - - - Invalid ADIF header - - - - - Error opening ADIF log file for read: %0 - - - configuration_dialog @@ -5671,13 +5405,13 @@ Error(%2): %3 Show outgoing transmitted messages in the Rx frequency window. Mostrar mensajes transmitidos salientes en la ventana de frecuencia de RX. - Mostrar mensajes transmitidos en la ventana "Frecuencia de RX". + Mostrar mensajes transmitidos en la ventana "Frecuencia de RX". &Tx messages to Rx frequency window &Mensajes de texto en la ventana de frecuencia RX - Mensajes de &TX en la ventana "Frecuencia de RX" + Mensajes de &TX en la ventana "Frecuencia de RX" @@ -5712,7 +5446,7 @@ Error(%2): %3 Set the font characteristics for the application. Define las características de la fuente para la aplicación. - Cambia el tipo de letras para la aplicación. + Cambia el tipo de letras para la aplicación. @@ -5724,13 +5458,13 @@ Error(%2): %3 Set the font characteristics for the Band Activity and Rx Frequency areas. Establece las características de la fuente para las áreas de Actividad de banda y Frecuencia de RX. - Cambiar el tipo de letras para las ventanas "Actividad en la banda" y "Frecuencia de RX". + Cambiar el tipo de letras para las ventanas "Actividad en la banda" y "Frecuencia de RX". Decoded Text Font... Tipo de fuente en el área de decodificada ... - Tipo de letras decodificados... + Tipo de letras decodificados... @@ -5742,7 +5476,7 @@ Error(%2): %3 &Blank line between decoding periods &Línea en blanco entre períodos de decodificación - Línea de &separación entre períodos de decodificación + Línea de &separación entre períodos de decodificación @@ -5770,7 +5504,7 @@ Error(%2): %3 Tx watchdog: Seguridad de TX: - Control de TX: + Temporizador de TX: @@ -5789,9 +5523,10 @@ Error(%2): %3 minutos + Enable VHF/UHF/Microwave features Habilita las funciones VHF/UHF/Microondas - Habilita características en VHF/UHF/Microondas + Habilita características en VHF/UHF/Microondas @@ -5837,7 +5572,7 @@ Error(%2): %3 Alternate F1-F6 bindings - Enlaces alternativos F1-F6 + Enlaces alternativos F1-F6 @@ -5862,7 +5597,7 @@ cualquier otro mensaje de texto libre. CW ID a&fter 73 ID de CW d&espués de 73 - &ID en CW después de 73 + &ID en CW después de 73 @@ -5880,7 +5615,7 @@ quiet period when decoding is done. Esto puede ser requerido bajo las regulaciones de licencia de tú país. No interferirá con otros usuarios, ya que siempre se envía en el período tranquilo cuando se realiza la decodificación. - Envía una identificación en CW periódicamente cada pocos minutos. + Envía una identificación en CW periódicamente cada pocos minutos. Esto puede ser requerido bajo las regulaciones de licencia de tu país. No interferirá con otros usuarios, ya que siempre se envía en el período de silencio cuando se ha realizado la decodificación. @@ -5926,7 +5661,7 @@ período de silencio cuando se ha realizado la decodificación. - + Port: Puerto: @@ -5937,152 +5672,140 @@ período de silencio cuando se ha realizado la decodificación. - Serial Port Parameters Parámetros del puerto serie - + Baud Rate: Velocidad de transmisión: - + Serial port data rate which must match the setting of your radio. Velocidad de datos del puerto serie que debe coincidir con los ajustes de tu radio. - + 1200 1200 - + 2400 2400 - + 4800 - + 9600 9600 - + 19200 19200 - + 38400 38400 - + 57600 57600 - + 115200 115200 - + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> <html><head/><body><p>Número de bits de datos utilizados para comunicarse con la interfaz CAT de tú equipo (generalmente ocho).</p></body></html> <html><head/><body><p>Número de bits de datos utilizados para comunicarse con la interface CAT del equipo (generalmente ocho).</p></body></html> - - Data bits - - - - + Data Bits Bits de datos - + D&efault Por d&efecto - + Se&ven - &Siete + &Siete - + E&ight - O&cho + O&cho - + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> <html><head/><body><p>Número de bits de parada utilizados al comunicarse con la interfaz CAT de tú equipo</p><p>(consulta el manual de tú equipo para más detalles).</p></body></html> <html><head/><body><p>Número de bits de parada utilizados al comunicarse con la interface CAT del equipo</p><p>(consulta el manual del equipo para más detalles).</p></body></html> - - Stop bits - - - - + Stop Bits Bits de parada - - + + Default Por defecto - + On&e - Un&o + Un&o - + T&wo - &Dos + &Dos - + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> <html><head/><body><p>Protocolo de control de flujo utilizado entre este PC y la interfaz CAT de tú equipo (generalmente &quot;Ninguno&quot;pero algunos requieren&quot;Hardware&quot;).</p></body></html> <html><head/><body><p>Protocolo de control de flujo utilizado entre este PC y la interfaz CAT del equipo (generalmente "Ninguno", pero algunos requieren "Hardware").</p></body></html> - - + Handshake Handshake - + &None &Ninguno - + Software flow control (very rare on CAT interfaces). Control de flujo de software (muy raro en interfaces CAT). - + XON/XOFF XON/XOFF - + Flow control using the RTS and CTS RS-232 control lines not often used but some radios have it as an option and a few, particularly some Kenwood rigs, require it). @@ -6091,88 +5814,82 @@ no se usa con frecuencia, pero algunos equipos lo tienen como una opción y unos pocos, particularmente algunos equipos de Kenwood, lo requieren. - + &Hardware &Hardware - + Special control of CAT port control lines. Control especial de líneas de control de puertos CAT. - - + Force Control Lines Líneas de control de fuerza - Forzar + Forzar "Control de Líneas" - - + + High Alto - - + + Low Bajo - + DTR: DTR: - + RTS: RTS: - - - Days since last upload - - How this program activates the PTT on your radio ¿ Cómo este programa activa el PTT en tú equipo ? - + How this program activates the PTT on your radio? ¿Cómo este programa activa el PTT en tú equipo? ¿Cómo activa este programa el PTT del equipo? - + PTT Method Método de PTT - + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> <html><head/><body><p>Sin activación de PTT, en cambio, el VOX automático del equipo se usa para conectar el transmisor.</p><p>Usa esto si no tienes hardware de interfaz de radio.</p></body></html> <html><head/><body><p>Sin activación de PTT, se use el VOX del equipo para activar el transmisor.</p><p>Use esta opción si no se tiene una interface de radio.</p></body></html> - + VO&X VO&X - + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> <html><head/><body><p>Usa la línea de control RS-232 DTR para alternar el PTT de tú equipo, requiere hardware para interconectar la línea.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control DTR del puerto serie CAT se puede usar para esto o se puede usar una línea de control DTR en un puerto serie diferente.</p></body></html> <html><head/><body><p>Use la línea de control RS-232 DTR para activar el PTT del equipo, se requiere de "hardware" para el envio de señales.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control DTR del puerto serie CAT se puede usar para esto o se puede usar una línea de control DTR en un puerto serie diferente.</p></body></html> - + &DTR &DTR - + Some radios support PTT via CAT commands, use this option if your radio supports it and you have no other hardware interface for PTT. @@ -6184,50 +5901,50 @@ use esta opción si el equipo lo admite y no tiene una interface para PTT. - + C&AT C&AT - + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> <html><head/><body><p>Usa la línea de control RS-232 RTS para alternar el PTT de tú equipo, requiere hardware para interconectar la línea.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control RTS del puerto serie CAT se puede usar para esto o se puede usar una línea de control RTS en un puerto serie diferente. Ten en cuenta que esta opción no está disponible en el puerto serie CAT cuando se usa el control de flujo de hardware.</p></body></html> <html><head/><body><p>Use la línea de control RS-232 RTS para activar el PTT del equipo, requiere hardware para interconectar la línea.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control RTS del puerto serie CAT se puede usar para esto o se puede usar una línea de control RTS en un puerto serie diferente. Esta opción no está disponible en el puerto serie CAT cuando se usa el control de flujo de hardware.</p></body></html> - + R&TS R&TS - + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> <html><head/><body><p>Selecciona el puerto serie RS-232 utilizado para el control PTT, esta opción está disponible cuando se selecciona DTR o RTS arriba como método de transmisión.</p><p>Este puerto puede ser el mismo que el utilizado para el control CAT.</p><p>Para algunos tipos de interfaz, se puede elegir el valor especial CAT, esto se usa para interfaces CAT no seriales que pueden controlar líneas de control de puerto serie de forma remota (OmniRig, por ejemplo).</p></body></html> <html><head/><body><p>Seleccione el puerto serie RS-232 utilizado para el control PTT, esta opción está disponible cuando se selecciona DTR o RTS como método de transmisión.</p><p>Este puerto puede ser el mismo que el utilizado para el control CAT.</p><p>Para algunos tipos de interfaz, se puede elegir el valor especial CAT, esto se usa para interfaces CAT no seriales que pueden controlar líneas de control de puerto serie de forma remota (OmniRig, por ejemplo).</p></body></html> - + Modulation mode selected on radio. Modo de modulación seleccionado en el equipo. - + Mode Modo - + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> <html><head/><body><p>USB suele ser el modo de modulación correcto,</p><p>a menos que la radio tenga una configuración/ajuste especial de datos o modo de paquete</p><p>para operación AFSK.</p></body></html> <html><head/><body><p>USB suele ser usualmente el modo correcto,</p><p>a menos que la radio tenga un ajuste de modo especifico para "data o packet"</p><p>para operación en AFSK.</p></body></html> - + US&B US&B - + Don't allow the program to set the radio mode (not recommended but use if the wrong mode or bandwidth is selected). @@ -6239,86 +5956,86 @@ o se selecciona el ancho de banda). o ancho de banda es seleccionado). - - + + None Ninguno - + If this is available then it is usually the correct mode for this program. Si está disponible, generalmente es el modo correcto para este programa. Si está disponible, entonces usualmente es el modo correcto para este programa. - + Data/P&kt Datos/P&kt Data/P&kt - + Some radios can select the audio input using a CAT command, this setting allows you to select which audio input will be used (if it is available then generally the Rear/Data option is best). Algunos equipos pueden seleccionar la entrada de audio usando un comando CAT, esta configuración/ajuste te permite seleccionar qué entrada de audio se usará (si está disponible, generalmente la opción Posterior/Datos es la mejor). - Algunos equipos pueden seleccionar la entrada de audio usando un comando CAT, + Algunos equipos pueden seleccionar la entrada de audio usando un comando CAT, este ajuste permite seleccionar qué entrada de audio se usará (si está disponible, generalmente la opción "Parte posterior" es la mejor). - + Transmit Audio Source Fuente de audio de transmisión - + Rear&/Data Parte posterior/Datos Parte posterior - + &Front/Mic &Frontal/Micrófono - + Rig: Equipo: - + Poll Interval: Intervalo de sondeo: - + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> <html><head/><body><p>Intervalo de sondeo al equipo para el estado. Intervalos más largos significarán que los cambios en el equipo tardarán más en detectarse.</p></body></html> <html><head/><body><p>Intervalo para sondeo del estado del equipo. Intervalos más largos significará que los cambios en el equipo tardarán más en detectarse.</p></body></html> - + s - s + s - + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> <html><head/><body><p>Intenta conectarte al equipo con esta configuración.</p><p>El botón se pondrá verde si la conexión es correcta o rojo si hay un problema.</p></body></html> - <html><head/><body><p>Prueba de conexión al equipo por CAT utilizando esta configuración.</p><p>El botón cambiará a verde si la conexión es correcta o rojo si hay un problema.</p></body></html> + <html><head/><body><p>Prueba de conexión al equipo por CAT utilizando esta configuración.</p><p>El botón cambiará a verde si la conexión es correcta o rojo si hay un problema.</p></body></html> - + Test CAT Test de CAT Probar CAT - + Attempt to activate the transmitter. Click again to deactivate. Normally no power should be output since there is no audio being generated at this time. @@ -6339,50 +6056,50 @@ Verifica que cualquier indicación de TX en tu equipo y/o en el interfaz de radio se comporte como se esperaba. - + Test PTT Test de PTT Probar PTT - + Split Operation Operación dividida (Split) Operación en "Split" - + Fake It Fíngelo Fingir "Split" - + Rig Equipo - + A&udio A&udio - + Audio interface settings Ajustes del interfaz de audio - + Souncard Tarjeta de Sonido - + Soundcard Tarjeta de Sonido - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -6400,48 +6117,48 @@ de lo contrario transmitirá cualquier sonido del sistema generado durante los períodos de transmisión. - + Select the audio CODEC to use for receiving. Selecciona el CODEC de audio que se usará para recibir. Selecciona el CODEC a usar para recibir. - + &Input: &Entrada: - + Select the channel to use for receiving. Selecciona el canal a usar para recibir. Seleccione el canal a usar para recibir. - - + + Mono Mono - - + + Left Izquierdo - - + + Right Derecho - - + + Both Ambos - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -6456,123 +6173,118 @@ canales, entonces, generalmente debe seleccionar "Mono" o "Ambos". - - Enable VHF and submode features - - - - + Ou&tput: - &Salida: + &Salida: - - + + Save Directory Guardar directorio Directorio "save" - + Loc&ation: - Ubic&ación: + Ubic&ación: - + Path to which .WAV files are saved. Ruta en la que se guardan los archivos .WAV. - - + + TextLabel Etiqueta de texto - + Click to select a different save directory for .WAV files. Haz clic para seleccionar un directorio de guardado diferente para los archivos .WAV. Clic para seleccionar un directorio "Save" diferente donde guardar los los archivos .WAV. - + S&elect S&elecciona S&eleccionar - - + + AzEl Directory Directorio AzEl - + Location: Ubicación: - + Select Seleccionar - + Power Memory By Band Memoriza la potencia por banda Recuerda la potencia por banda - + Remember power settings by band Recuerde los ajustes de potencia por banda Recuerda ajustes de potencia por banda - + Enable power memory during transmit Habilita memoria de potencia durante la transmisión - + Transmit Transmitir - + Enable power memory during tuning Habilita memoria de potencia durante la sintonización - + Tune Tono TX - + Tx &Macros Macros de T&X Macros T&X - + Canned free text messages setup Configuración de mensajes de texto libres Ajuste de mensajes de texto libre - + &Add &Añadir &Agregar - + &Delete &Borrar - + Drag and drop items to rearrange order Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items @@ -6584,42 +6296,42 @@ Clic derecho para acciones específicas del elemento. Clic, Mayús+Clic y CTRL+Clic para seleccionar elementos. - + Reportin&g Informe&s &Reportes - + Reporting and logging settings Ajuste de informes y logs Ajustes de reportes y gaurdado de logs - + Logging Registros Guardado de log - + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. El programa mostrará un cuadro de diálogo Log QSO parcialmente completado cuando envíe un mensaje de texto 73 o libre. El programa mostrará un cuadro de diálogo con datos del QSO parcialmente completados cuando envíe un 73 o mensaje de texto libre. - + Promp&t me to log QSO Regis&tra el QSO - Pregun&tarme para guardar el QSO + Pregun&tarme para guardar el QSO - + Op Call: Indicativo del Operador: - + Some logging programs will not accept the type of reports saved by this program. Check this option to save the sent and received reports in the @@ -6628,66 +6340,67 @@ comments field. guardado por este programa. Marca esta opción para guardar los informes enviados y recibidos en el campo de comentarios. - Algunos libros de guardia no aceptan el tipo de reportes + Algunos libros de guardia no aceptan el tipo de reportes guardados por este programa. Marca esta opción para guardar los reportes enviados y recibidos en el campo de comentarios. - + d&B reports to comments Informes de los d&B en los comentarios Guardar reportes d&B en los comentarios - + Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. Marca esta opción para forzar la eliminación de los campos Llamada DX y Locator/Grid DX cuando se envía un mensaje de texto 73 o libre. - Marca esta opción para eliminar los campos Indicativo DX y + Marca esta opción para eliminar los campos Indicativo DX y Locator DX cuando se envíe un 73 o un mensaje de texto libre. - + Clear &DX call and grid after logging Borrar la Llamada &DX y Locator/Grid después del registro Borrar Indicativo &DX y Locator DX después de guardado el QSO - + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> <html><head/><body><p>Algunos programas de log no aceptarán nombres de modo WSJT-X.</p></body></html> - + Con&vert mode to RTTY Con&vertir modo a RTTY - + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> <html><head/><body><p>El indicativo del operador, si es diferente del indicativo de la estación.</p></body></html> - + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> <html><head/><body><p>Marca para que los QSO's se registren automáticamente, cuando se completen.</p></body></html> <html><head/><body><p>Marca para que los QSO's se guarden automáticamente, cuando se completen.</p></body></html> - + Log automatically (contesting only) Log automático (sólo concursos) Guardar QSO automáticamente (sólo concursos) - + Network Services Servicios de red + The program can send your station details and all decoded signals as spots to the http://pskreporter.info web site. This is used for reverse beacon analysis which is very useful @@ -6696,192 +6409,177 @@ for assessing propagation and system performance. señales decodificadas como puntos en el sitio web http://pskreporter.info. Esto se utiliza para el análisis de baliza inversa que es muy útil para evaluar la propagación y el rendimiento del sistema. - Este programa puede enviar los detalles de su estación y todas las + Este programa puede enviar los detalles de su estación y todas las señales decodificadas como "spots" a la página web http://pskreporter.info. Esto se utiliza para el análisis de "reverse beacon", lo cual es muy útil para evaluar la propagación y el rendimiento del sistema. - - <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> - - - - + Enable &PSK Reporter Spotting Activa &PSK Reporter Activar "spotting" en &PSK Reporter - - <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - - - - - Use TCP/IP connection - - - - + UDP Server Servidor UDP - + UDP Server: Servidor UDP: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>"Hostname" del servicio de red para recibir decodificaciones.</p><p>Formatos:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4 multicast</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6 multicast</li></ul><p>Borrar este campo deshabilitará la transmisión de actualizaciones de estado UDP.</p></body></html> - + UDP Server port number: Número de puerto del servidor UDP: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p>Introduce el número de puerto del servicio del servidor UDP al que WSJT-X debe enviar actualizaciones. Si esto es cero, no se transmitirán actualizaciones.</p></body></html> <html><head/><body><p>Escriba el número del puerto del servidor UDP al que WSJT-X debe enviar actualizaciones. Si este es cero, no se transmitirán actualizaciones.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p>Con esto habilitado, WSJT-X aceptará ciertas solicitudes de un servidor UDP que recibe mensajes de decodificación.</p></body></html> <html><head/><body><p>Si se habilita, WSJT-X aceptará ciertas solicitudes de un servidor UDP que recibe mensajes decodificados.</p></body></html> - + Accept UDP requests Aceptar solicitudes UDP - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p>Indica la aceptación de una solicitud UDP entrante. El efecto de esta opción varía según el sistema operativo y el administrador de ventanas, su intención es notificar la aceptación de una solicitud UDP entrante, incluso si esta aplicación está minimizada u oculta.</p></body></html> <html><head/><body><p>Indica la aceptación de una solicitud UDP entrante. El efecto de esta opción varía según el sistema operativo y el "Window Manager", su intención es notificar la aceptación de una solicitud UDP entrante, incluso si esta aplicación está minimizada u oculta.</p></body></html> - + Notify on accepted UDP request Notificar sobre una solicitud UDP aceptada - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p>Restaura la ventana minimizada si se acepta una solicitud UDP.</p></body></html> - + Accepted UDP request restores window La solicitud UDP aceptada restaura la ventana Una solicitud UDP aceptada restaura la ventana - + Secondary UDP Server (deprecated) Servidor UDP secundario (en desuso) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p>Cuando se marca, WSJT-X transmitirá un contacto registrado en formato ADIF al nombre de host y puerto configurados. </p></body></html> <html><head/><body><p>Si se marca , WSJT-X difundirá el contacto guardado, en formato ADIF, al servidor y puerto configurados. </p></body></html> - + Enable logged contact ADIF broadcast Habilita la transmisión ADIF de contacto registrado - Habilita transmisión ADIF de contacto guardado + Habilita "broadcast" de contacto guardado (ADIF) - + Server name or IP address: Nombre del servidor o dirección IP: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>"Hostname" del programa N1MM Logger + donde se recibirán las transmisiones ADIF UDP. Este suele ser 'localhost' o dirección IP 127.0.0.1</p><p>Formatos:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4 multicast</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6 multicast</li></ul><p>Borrar este campo deshabilitará la transmisión de información ADIF a través de UDP.</p></body></html> - + Server port number: Número de puerto del servidor: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>Introduce el número de puerto que WSJT-X debe usar para las transmisiones UDP de información de registro ADIF. Para N1MM Logger +, este valor debe ser 2333. Si es cero, no se transmitirán actualizaciones.</p></body></html> <html><head/><body><p>Escriba el número de puerto que WSJT-X debe usar para las transmisiones UDP del log ADIF guardado. Para N1MM Logger + este valor debe ser 2333. Si es cero, no se transmitirán actualizaciones.</p></body></html> - + Frequencies Frecuencias - + Default frequencies and band specific station details setup Configuración predeterminada de las frecuencias y banda con detalles específicos de la estación - Ajustes de frecuencias predeterminada y detalles de especificos de la banda + Ajustes de frecuencias predeterminada y detalles de especificos de la banda - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>Ver&quot;Calibración de Frecuencia&quot;en la Guía de usuario de WSJT-X para obtener detalles sobre cómo determinar estos parámetros para tú equipo.</p></body></html> <html><head/><body><p>Ver "Calibración de Frecuencia" en la Guía de usuario de WSJT-X para obtener detalles sobre cómo determinar estos parámetros para el equipo.</p></body></html> - + Frequency Calibration Calibración de frecuencia - + Slope: Pendiente: Cadencia: - + ppm ppm - + Intercept: Interceptar: Intercepción: - + Hz Hz - + Working Frequencies Frecuencias de trabajo - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>Haz clic derecho para mantener la lista de frecuencias de trabajo.</p></body></html> <html><head/><body><p>Clic derecho para mantener la lista de frecuencias de trabajo.</p></body></html> - + Station Information Información de la estación - + Items may be edited. Right click for insert and delete options. Se pueden editar ítems. @@ -6890,423 +6588,391 @@ Haz clic derecho para insertar y eliminar opciones. Clic derecho para insertar y eliminar opciones. - + Colors Colores - + Decode Highlightling Resaltar Decodificado - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> <html><head/><body><p>Haz clic para escanear el archivo ADIF wsjtx_log.adi nuevamente para obtener información trabajada antes</p></body></html> <html><head/><body><p>Clic para procesar nuevamente el archivo ADIF wsjtx_log.adi para obtener información de estaciones trabajadas anteriormente</p></body></html> - + Rescan ADIF Log Escaneo de nuevo el log ADIF Procesar nuevamente log ADIF - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>Presiona para restablecer todos los elementos resaltados arriba a los valores y prioridades predeterminados.</p></body></html> - + Reset Highlighting Restablecer resaltado - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body><p>Activa o desactiva las casillas de verificación y haz clic con el botón derecho en un elemento para cambiar o desactivar el color del primer plano, el color de fondo o restablecer el elemento a los valores predeterminados. Arrastra y suelta los elementos para cambiar su prioridad, mayor en la lista es mayor en prioridad.</p><p>Ten en cuenta que cada color de primer plano o de fondo puede estar configurado o no, lo que significa que no está asignado para ese tipo de elemento y pueden aplicarse elementos de menor prioridad.</p></body></html> - <html><head/><body><p>Activar o desactivar usando las casillas de verificación. Clic con el botón derecho en un elemento para cambiar o volver al color predeterminado tanto de las letras como el color de fondo. Arrastrar y soltar los elementos para cambiar su prioridad; los primeros en la lista tienen mayor prioridad.</p><p>Cada color de letras o fondo puede estar configurado o no, no configurado significa que no está asignado para este elemento y pueden aplicarse elementos de menor prioridad.</p></body></html> + <html><head/><body><p>Activar o desactivar usando las casillas de verificación. Clic con el botón derecho en un elemento para cambiar o volver al color predeterminado tanto de las letras como el color de fondo. Arrastrar y soltar los elementos para cambiar su prioridad; los primeros en la lista tienen mayor prioridad.</p><p>Cada color de letras o fondo puede estar configurado o no, no configurado significa que no está asignado para este elemento y pueden aplicarse elementos de menor prioridad.</p></body></html> - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>Marca para indicar nuevas entidades DXCC, Locator y indicativos por modo.</p></body></html> <html><head/><body><p>Marcar para indicar nueva entidad DXCC, locator e indicativos por modo.</p></body></html> - + Highlight by Mode Destacar por modo - + Include extra WAE entities Incluir entidades WAE adicionales - + Check to for grid highlighting to only apply to unworked grid fields Marca para que el resaltado de Locator sólo se aplique a los campos de Locator no trabajados Marcar para que el resaltado de locator sólo se aplique a los no trabajados - + Only grid Fields sought Solo campos de Locator/Grid buscados Solo campos de locator buscados - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>Controles para la búsqueda de usuarios de Logbook of the World (LoTW).</p></body></html> <html><head/><body><p>Búsqueda de usuarios de LoTW.</p></body></html> - + Logbook of the World User Validation Validación de Usuario de Logbook of the World (LoTW) Validación de usuario de LoTW - + Users CSV file URL: URL del archivo CSV de los usuarios: Enlace del archivo CSV de los usuarios: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body><p>URL del último archivo de datos de fechas y horas de carga de ARRL LotW que se utiliza para resaltar decodificaciones de estaciones que se sabe que cargan su archivo de log a LotW.</p></body></html> <html><head/><body><p>Enlace del último archivo con fechas y horas de subidas de usuarios del LoTW, que se utiliza para resaltar decodificaciones de estaciones que suben su log al LoTW.</p></body></html> - - URL - - - - + https://lotw.arrl.org/lotw-user-activity.csv https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>Presiona este botón para obtener el último archivo de datos de fecha y hora de carga de los usuarios de LotW.</p></body></html> <html><head/><body><p>Presionar este botón para descargar archivo de LoTW con la última fecha/hora de subida de los usuarios.</p></body></html> - + Fetch Now Buscar ahora - + Age of last upload less than: Edad de la última carga inferior a: Fecha última subida a LoTW inferior a: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p>Ajusta este cuadro de selección para establecer el umbral de edad de la última fecha de carga del usuario de LotW que se acepta como usuario actual de LotW.</p></body></html> <html><head/><body><p>Ajusta este cuadro de selección para establecer la última fecha de subida de logs del usuario de LoTW.</p></body></html> - + days dias - + Advanced Avanzado - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>Parámetros seleccionables por el usuario para decodificación JT65 VHF/UHF/Microondas.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters Parámetros de decodificación JT65 VHF/UHF/Microondas Parámetros decodificación JT65 VHF/UHF/Microondas - + Random erasure patterns: Patrones de borrado aleatorio: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p>El número máximo de patrones de borrado para el decodificador estoico de decisión suave Reed Solomon es 10^(n/2).</p></body></html> <html><head/><body><p>El número máximo de patrones de borrado para el decodificador linear Reed Solomon es 10^(n/2).</p></body></html> - + Aggressive decoding level: Nivel de decodificación agresivo: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>Los niveles más altos aumentarán la probabilidad de decodificación, pero también aumentarán la probabilidad de una decodificación falsa.</p></body></html> <html><head/><body><p>Los niveles más altos aumentarán la probabilidad de decodificación, pero también aumentarán la probabilidad de una falsa decodificación.</p></body></html> - + Two-pass decoding Decodificación de dos pasos Decodificación en dos pasos - + Special operating activity: Generation of FT4, FT8, and MSK144 messages Actividad operativa especial: generación de mensajes FT4, FT8 y MSK144 Actividad operativa especial: Generación de mensajes FT4, FT8 y MSK144 - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: operador Hound llamando al DX.</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: Operador "Hound" llamando al DX.</p></body></html> - - + Hound - "Hound" + "Hound" - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>Concursos norteamericanos de VHF/UHF/microondas y otros en los que se requiere un locator de 4 caracteres.</p></body></html> <html><head/><body><p>Concursos VHF/UHF/Microondas de norteamérica y otros en los cuales se requiere un intercambio de locator de 4 caracteres.</p></body></html> - - + NA VHF Contest Concurso NA VHF - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: operador FOX (DXpedition).</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: Operador "FOX" (DXpedition).</p></body></html> - - + Fox Fox "Fox" - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>Concursos europeos de VHF y superiores que requieren un informe de señal, número de serie y locator de 6 caracteres.</p></body></html> <html><head/><body><p>Concursos europeos de VHF y concursos que requieran reporte de señal, número de serie y locator de 6 caracteres.</p></body></html> - - + EU VHF Contest Concurso EU de VHF Concurso EU VHF - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>Resumen de ARRL RTTY y concursos similares. El intercambio es el estado de EE.UU., La provincia canadiense o &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY Roundup y concursos similares. Intercambio, estado de EE.UU., provincia de Canadá o "DX".</p></body></html> - - R T T Y Roundup - - - - + RTTY Roundup messages Mensajes de resumen de RTTY Mesnajes para e lRTTY Roundup - - RTTY Roundup exchange - - - - + RTTY RU Exch: Intercambio RTTY RU: - + NJ NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>Intercambio de ARRL Field Day: número de transmisores, clase y sección ARRL/RAC o &quot;DX&quot;.</p></body></html> <html><head/><body><p>Intercambiio para el ARRL Field Day: número de transmisores, "Class" y sección ARRL/RAC o "DX".</p></body></html> - - A R R L Field Day - - - - + ARRL Field Day ARRL Field Day - - Field Day exchange - - - - + FD Exch: Intercambio FD: - + 6A SNJ 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>Concurso World-Wide Digi-mode</p><p><br/></p></body></html> <html><head/><body><p>Concurso World-Wide Digi DX</p><p><br/></p></body></html> - - WW Digital Contest - - - - + WW Digi Contest Concurso WW Digi Concurso WW Digi DX - + Miscellaneous Diverso Otros - + Degrade S/N of .wav file: Degradar S/N del archivo .wav: - - + + For offline sensitivity tests Para pruebas de sensibilidad fuera de línea - + dB dB - + Receiver bandwidth: Ancho de banda del receptor: - + Hz Hz - + Tx delay: Retardo de TX: - + Minimum delay between assertion of PTT and start of Tx audio. Retraso mínimo entre el PTT y el inicio del audio TX. - + s s - - + Tone spacing Espaciado de tono - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>Genera el audio de TX con el doble del espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 2 antes de generar RF.</p></body></html> <html><head/><body><p>Genera audio de TX con el doble del espaciado del tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 2 antes de generar RF.</p></body></html> - + x 2 x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>Genera el audio de TX con cuatro veces el espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 4 antes de generar RF.</p></body></html> <html><head/><body><p>Genera audio de TX con cuatro veces el espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 4 antes de generar RF.</p></body></html> - + x 4 x 4 - - + Waterfall spectra Espectros de la cascada Espectro de la cascada (waterfall) - + Low sidelobes Lóbulos laterales bajos - + Most sensitive Más sensible - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p>Descartar (Cancelar) o aplicar (OK) cambios de configuración/ajuste que incluyen</p><p>restablecer la interfaz de radio y aplicar cualquier cambio en la tarjeta de sonido</p></body></html> - <html><head/><body><p>"Aceptar" o "Cancelar" cambios de configuración, incluyendo el restablecer la interface de radio y aplicar cualquier cambio en la tarjeta de sonido</p></body></html> + <html><head/><body><p>"Aceptar" o "Cancelar" cambios de configuración, incluyendo el restablecer la interface de radio y aplicar cualquier cambio en la tarjeta de sonido</p></body></html> main + + Fatal error - Error fatal + Error fatal + + Unexpected fatal error - Error fatal inesperado + Error fatal inesperado Where <rig-name> is for multi-instance support. @@ -7398,25 +7064,15 @@ Clic derecho para insertar y eliminar opciones. ruta: "%1" - + Shared memory error Error de memoria compartida - + Unable to create shared memory segment No se puede crear un segmento de memoria compartida - - - Sub-process error - - - - - Failed to close orphaned jt9 process - - wf_palette_design_dialog @@ -7429,7 +7085,7 @@ Clic derecho para insertar y eliminar opciones. <html><head/><body><p>Double click a color to edit it.</p><p>Right click to insert or delete colors.</p><p>Colors at the top represent weak signals</p><p>and colors at the bottom represent strong</p><p>signals. You can have up to 256 colors.</p></body></html> <html><head/><body><p>Haz doble clic en un color para editarlo.</p><p>Haz clic derecho para insertar o eliminar colores.</p><p>Los colores en la parte superior representan señales débiles</p><p>y los colores en la parte inferior representan señales fuertes</p><p>Puedes tener hasta 256 colores.</p></body></html> - <html><head/><body><p>Doble clic en un color para editarlo.</p><p>Clic derecho para insertar o eliminar colores.</p><p>Los colores en la parte superior representan señales débiles</p><p>y los colores en la parte inferior representan señales fuertes</p><p>Puedes utilizar hasta 256 colores.</p></body></html> + <html><head/><body><p>Doble clic en un color para editarlo.</p><p>Clic derecho para insertar o eliminar colores.</p><p>Los colores en la parte superior representan señales débiles</p><p>y los colores en la parte inferior representan señales fuertes</p><p>Puedes utilizar hasta 256 colores.</p></body></html> From f23e8a4e0d8cde06ae9ec13e8d85125dff97fe35 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 11 Sep 2020 19:07:28 +0100 Subject: [PATCH 464/520] Catalan l10n updates, tnx to Xavi, EA3W --- translations/wsjtx_ca.ts | 195 +++++++++++++++++++++++++++------------ 1 file changed, 135 insertions(+), 60 deletions(-) diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index 8f39ac882..c5a542003 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -488,7 +488,7 @@ Format: Invalid audio output device - + El dispositiu de sortida d'àudio no és vàlid @@ -694,14 +694,15 @@ Format: DX Lab Suite Commander send command failed - Errada del DX Lab Suite Commander en l'enviament de comanda + Error del DX Lab Suite Commander en l'enviament de comanda DX Lab Suite Commander send command failed "%1": %2 - + Error del DX Lab Suite Commander en l'enviament de comanda "%1": %2 + DX Lab Suite Commander failed to send command "%1": %2 @@ -2240,17 +2241,17 @@ Error(%2): %3 Percentage of minute sequences devoted to transmitting. - + Percentatge de seqüències de minuts dedicades a transmetre. Prefer Type 1 messages - + Preferiu els missatges de tipus 1 <html><head/><body><p>Transmit during the next sequence.</p></body></html> - + <html><head/><body><p>Transmetre durant la següent seqüència.</p></body></html> @@ -2942,7 +2943,7 @@ La llista es pot mantenir a la configuració (F2). FST4W - + FST4W Calling CQ @@ -3192,102 +3193,102 @@ La llista es pot mantenir a la configuració (F2). 1/2 - 1/2 + 1/2 2/2 - 2/2 + 2/2 1/3 - 1/3 + 1/3 2/3 - 2/3 + 2/3 3/3 - 3/3 + 3/3 1/4 - 1/4 + 1/4 2/4 - 2/4 + 2/4 3/4 - 3/4 + 3/4 4/4 - 4/4 + 4/4 1/5 - 1/5 + 1/5 2/5 - 2/5 + 2/5 3/5 - 3/5 + 3/5 4/5 - 4/5 + 4/5 5/5 - 5/5 + 5/5 1/6 - 1/6 + 1/6 2/6 - 2/6 + 2/6 3/6 - 3/6 + 3/6 4/6 - 4/6 + 4/6 5/6 - 5/6 + 5/6 6/6 - 6/6 + 6/6 @@ -3312,12 +3313,12 @@ La llista es pot mantenir a la configuració (F2). Quick-Start Guide to FST4 and FST4W - + Guia d'inici ràpid de FST4 i FST4W FST4 - + FST4 FT240W @@ -3349,7 +3350,7 @@ La llista es pot mantenir a la configuració (F2). NB - + NB @@ -3822,22 +3823,22 @@ La llista es pot mantenir a la configuració (F2). %1 (%2 sec) audio frames dropped - + %1 (%2 sec) s’han caigut els marcs d’àudio Audio Source - + Font d'àudio Reduce system load - + Reduir la càrrega del sistema Excessive dropped samples - %1 (%2 sec) audio frames dropped - + Mostres caigudes excessives - %1 (%2 sec) s’han caigut els marcs d’àudio @@ -4115,7 +4116,51 @@ La llista es pot mantenir a la configuració (F2). <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> </table> Keyboard shortcuts help window contents - + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Atura TX, avortar QSO, esborra la cua del proper indicatiu</td></tr> + <tr><td><b>F1 </b></td><td>Guia de l'usuari en línia (Alt: transmetre TX6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Avís de drets d'autor</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>Quant a WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Obre la finestra de configuració (Alt: transmetre TX2)</td></tr> + <tr><td><b>F3 </b></td><td>Mostra les dreceres del teclat (Alt: transmetre TX3)</td></tr> + <tr><td><b>F4 </b></td><td>Esborra l'indicatiu de DX, Locator DX, Missatges de TX1-4 (Alt: transmetre TX4)</td></tr> + <tr><td><b>Alt+F4 </b></td><td>Surt del programa</td></tr> + <tr><td><b>F5 </b></td><td>Mostra les ordres especials del ratolí (Alt: transmetre TX5)</td></tr> + <tr><td><b>F6 </b></td><td>Obre l'arxiu següent al directori (Alt: commutar "Contesta al primer CQ")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Descodifica tots els arxius restants al directori</td></tr> + <tr><td><b>F7 </b></td><td>Mostra la finestra Mitjana de missatges</td></tr> + <tr><td><b>F11 </b></td><td>Baixa la freqüència de RX 1 Hz</td></tr> + <tr><td><b>Ctrl+F11 </b></td><td>Mou les freqüències de RX i TX idèntiques cap avall 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Mou la freqüència de TX cap avall 60 Hz en FT8 o bé 90 Hz en FT4</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Baixa la freqüència de marcatge 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Mou la freqüència de RX cap amunt 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Mou les freqüències de RX i TX idèntiques cap amunt 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Mou la freqüència de TX cap amunt 60 Hz en FT8 o bé 90 Hz en FT4</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Mou la freqüència de marcatge cap amunt 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Configura ara la transmissió a aquest número en Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Configura la propera transmissió a aquest número en Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Commuta l'estat "El millor S+P"</td></tr> + <tr><td><b>Alt+C </b></td><td>Commuta "Contesta al primer CQ" a la casella de selecció</td></tr> + <tr><td><b>Alt+D </b></td><td>Torna a descodificar a la freqüència del QSO</td></tr> + <tr><td><b>Shift+D </b></td><td>Descodificació completa (ambdues finestres)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Activa el periòde de TX parell/senar</td></tr> + <tr><td><b>Shift+E </b></td><td>Desactiva el periòde de TX parell/senar</td></tr> + <tr><td><b>Alt+E </b></td><td>Esborra</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edita el quadre de missatges de text lliure</td></tr> + <tr><td><b>Alt+G </b></td><td>Genera missatges estàndard</td></tr> + <tr><td><b>Alt+H </b></td><td>Parar TX</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Cerca un indicatiu a la base de dades, genera missatges estàndard</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Activa TX</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Obre un arxiu .wav</td></tr> + <tr><td><b>Alt+O </b></td><td>Canvia d'operador</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log de QSOs</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Utilitza el missatge TX4 de RRR (excepte a FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Utilitza el missatge TX4 de RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Deixa de monitoritzar</td></tr> + <tr><td><b>Alt+T </b></td><td>Commuta l'estat de la sintonització</td></tr> + <tr><td><b>Alt+Z </b></td><td>Esborra l'estat del descodificador penjat</td></tr> +</table> @@ -4156,7 +4201,37 @@ La llista es pot mantenir a la configuració (F2). </tr> </table> Mouse commands help window contents - + <table cellpadding=5> + <tr> + <th align="right">Fes clic a</th> + <th align="left">Acció</th> + </tr> + <tr> + <td align="right">Cascada:</td> + <td><b>Clic</b> per definir la freqüència de RX.<br/> + <b>clic a Majúscules</b> per configurar la freqüència de TX.<br/> + <b>clic a Ctrl</b> o bé <b>clic Dret</b> per definir les freqüències de RX i TX.<br/> + <b>Doble clic</b> per descodificar també a la freqüència de RX.<br/> + </td> + </tr> + <tr> + <td align="right">Text descodificat:</td> + <td><b>Doble clic</b> per copiar el segon indicatiu a Indicatiu DX,<br/> + locator a Locator DX, canvia la freqüència de RX i TX a<br/> + la freqüència del senyal descodificat i generar missatges<br/> + estàndard.<br/> + Si <b>Manté TX Freq</b> està marcat o bé el primer missatge d’inici<br/> + és el teu pròpi indicatiu, la freqüència de TX no es modificarà tret que <br/> + <b>Ctrl</b> es manté premut.<br/> + </td> + </tr> + <tr> + <td align="right">Botó d'Esborrar:</td> + <td><b>Clic</b> per esborrar la finestra de QSOs.<br/> + <b>Doble-clic</b> per esborrar les finestres de QSOs i Activitat a la Banda. + </td> + </tr> +</table> @@ -4166,7 +4241,7 @@ La llista es pot mantenir a la configuració (F2). Spotting to PSK Reporter unavailable - + No hi ha espots a PSK Reporter @@ -4827,7 +4902,7 @@ Error(%2): %3 No audio output device configured. - + No hi ha configurat cap dispositiu de sortida d'àudio. @@ -5069,12 +5144,12 @@ Error(%2): %3 Hz - Hz + Hz Split - + Dividit JT9 @@ -5121,22 +5196,22 @@ Error(%2): %3 Invalid ADIF field %0: %1 - + El camp ADIF no és vàlid %0: %1 Malformed ADIF field %0: %1 - + Camp ADIF amb format incorrecte %0: %1 Invalid ADIF header - + Capçalera ADIF no vàlid Error opening ADIF log file for read: %0 - + Error en obrir l'arxiu de registre ADIF per llegir-lo: %0 @@ -5528,7 +5603,7 @@ període tranquil quan es fa la descodificació. Data bits - + Bits de dades @@ -5558,7 +5633,7 @@ període tranquil quan es fa la descodificació. Stop bits - + Bits de parada @@ -5657,7 +5732,7 @@ uns pocs, particularment alguns equips de Kenwood, ho requereixen. Days since last upload - + Dies des de la darrera càrrega How this program activates the PTT on your radio @@ -5941,7 +6016,7 @@ els dos canals. Enable VHF and submode features - + Activa les funcions de VHF i submode @@ -6156,7 +6231,7 @@ per avaluar la propagació i el rendiment del sistema. <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> - + <html><head/><body><p>El programa pot enviar els detalls de l'estació i tots els senyals descodificats amb locators com a spots a la web http://pskreporter.info.</p><p>S'utilitza per a l'anàlisi de balises inverses, que és molt útil per avaluar la propagació i el rendiment del sistema.</p></body></html> @@ -6166,12 +6241,12 @@ per avaluar la propagació i el rendiment del sistema. <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + <html><head/><body><p>Marca aquesta opció si cal una connexió fiable</p><p>La majoria dels usuaris no ho necessiten, el valor per defecte utilitza UDP, que és més eficient. Comprova-ho només si tens proves que es perd el trànsit UDP que envies a PSK Reporter.</p></body></html> Use TCP/IP connection - + Utilitza la connexió TCP/IP @@ -6408,7 +6483,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. URL - + URL @@ -6538,17 +6613,17 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. R T T Y Roundup - + Arrodoniment R T T Y RTTY Roundup messages - Missatges de Rencontre RTTY + Missatges d'arrodoniment RTTY RTTY Roundup exchange - + Intercanvi d'arrodoniment RTTY @@ -6569,7 +6644,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. A R R L Field Day - + A R R L Field Day @@ -6579,7 +6654,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. Field Day exchange - + Intercanvi Field Day @@ -6599,7 +6674,7 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. WW Digital Contest - + WW Digital Contest @@ -6804,12 +6879,12 @@ Fes clic amb el botó dret per a les opcions d'inserció i eliminació. Sub-process error - + Error de subprocés Failed to close orphaned jt9 process - + No s'ha pogut tancar el procés jt9 orfe From 14dad11f2eb2f70f603af472bd409e18d731a7ea Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Fri, 11 Sep 2020 20:42:46 +0100 Subject: [PATCH 465/520] Updated cty.dat database, Big CTY - 01 September 2020 Tnx Jim, AD1C. --- cty.dat | 1685 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 847 insertions(+), 838 deletions(-) diff --git a/cty.dat b/cty.dat index db7d3ba98..26c0e617e 100644 --- a/cty.dat +++ b/cty.dat @@ -23,7 +23,7 @@ Conway Reef: 32: 56: OC: -22.00: -175.00: -12.0: 3D2/c: Rotuma Island: 32: 56: OC: -12.48: -177.08: -12.0: 3D2/r: =3D2AG/P,=3D2EU,=3D2GC/P,=3D2HY/R,=3D2NV/P,=3D2NV/R,=3D2R,=3D2RA,=3D2RI,=3D2RO,=3D2RR,=3D2RX, =3D2VB/R; -Kingdom of eSwatini: 38: 57: AF: -26.65: -31.48: -2.0: 3DA: +Kingdom of Eswatini: 38: 57: AF: -26.65: -31.48: -2.0: 3DA: 3DA,=3DA0BP/J; Tunisia: 33: 37: AF: 35.40: -9.32: -1.0: 3V: 3V,TS,=3V8CB/J,=3V8ST/J; @@ -53,11 +53,12 @@ Vienna Intl Ctr: 15: 28: EU: 48.20: -16.30: -1.0: *4U1V: Timor - Leste: 28: 54: OC: -8.80: -126.05: -9.0: 4W: 4W,=4U1ET; Israel: 20: 39: AS: 31.32: -34.82: -2.0: 4X: - 4X,4Z,=4X01T/FF,=4X1FC/LH,=4X1GO/LH,=4X1IG/LH,=4X1KS/LH,=4X1OM/LH,=4X1OZ/LH,=4X1ST/LH,=4X1VF/LH, - =4X1ZM/LH,=4X1ZZ/LH,=4X4FC/LH,=4X4FR/LH,=4X4YM/LH,=4X5HF/LH,=4X5IQ/LH,=4X5MG/LH,=4X6DK/LH, - =4X6HP/LH,=4X6RE/LH,=4X6TT/JY1,=4X6UT/LH,=4X6UU/LH,=4X6ZM/LH,=4Z1DZ/LH,=4Z1KD/LH,=4Z1KM/LH, - =4Z1ZV/LH,=4Z4DX/ANT,=4Z4DX/J,=4Z4DX/LGT,=4Z4DX/LH,=4Z4HC/LH,=4Z4KJ/LH,=4Z4KX/LH,=4Z5DZ/LH, - =4Z5FL/LH,=4Z5FW/LH,=4Z5KJ/LGT,=4Z5KJ/LH,=4Z5NW/YL,=4Z5OT/LH,=4Z5SL/LH,=4Z8GZ/LH; + 4X,4Z,=4X01T/FF,=4X1FC/LH,=4X1GO/LH,=4X1IG/LH,=4X1KS/LH,=4X1KW/LH,=4X1OM/LH,=4X1OZ/LH,=4X1RE/LH, + =4X1ST/LH,=4X1VF/LH,=4X1ZM/LH,=4X1ZZ/LH,=4X4FC/LH,=4X4FR/LH,=4X4YM/LH,=4X5HF/LH,=4X5IQ/LH, + =4X5MG/LH,=4X6DK/LH,=4X6HP/LH,=4X6RE/LH,=4X6TT/JY1,=4X6UT/LH,=4X6UU/LH,=4X6YA/LH,=4X6ZM/LH, + =4Z1AR/LH,=4Z1DX/LH,=4Z1DZ/LH,=4Z1KD/LH,=4Z1KM/LH,=4Z1NB/LH,=4Z1ZV/LH,=4Z4DX/ANT,=4Z4DX/J, + =4Z4DX/LGT,=4Z4DX/LH,=4Z4HC/LH,=4Z4KJ/LH,=4Z4KX/LH,=4Z5DZ/LH,=4Z5FL/LH,=4Z5FW/LH,=4Z5KJ/LGT, + =4Z5KJ/LH,=4Z5NW/YL,=4Z5OT/LH,=4Z5SL/LH,=4Z8GZ/LH; Libya: 34: 38: AF: 27.20: -16.60: -2.0: 5A: 5A; Cyprus: 20: 39: AS: 35.00: -33.00: -2.0: 5B: @@ -115,17 +116,17 @@ Kuwait: 21: 39: AS: 29.38: -47.38: -3.0: 9K: Sierra Leone: 35: 46: AF: 8.50: 13.25: 0.0: 9L: 9L; West Malaysia: 28: 54: AS: 3.95: -102.23: -8.0: 9M2: - 9M,9W,=9M0SEA,=9M6/PA0RRS/2,=9M6/ZS6EZ/2,=9M6XX/2,=9M6YBG/2,=9M8DX/2,=9M8SYA/2,=9W6KOM/2, + 9M,9M63M,9W,=9M0SEA,=9M6/PA0RRS/2,=9M6/ZS6EZ/2,=9M6XX/2,=9M6YBG/2,=9M8DX/2,=9M8SYA/2,=9W6KOM/2, =9W6MAN/2; East Malaysia: 28: 54: OC: 2.68: -113.32: -8.0: 9M6: =9M4CAK,=9M4CKT/6,=9M4CRP/6,=9M9/7M2VPR,=9M9/CCL, 9M6,9W6,=9M1CSS,=9M2/G3TMA/6,=9M2/PG5M/6,=9M2/R6AF/6,=9M2GCN/6,=9M2MDX/6,=9M4ARD/6,=9M4CBP, =9M4CCB,=9M4CKT,=9M4CMY,=9M4CRB,=9M4CRP,=9M4CWS,=9M4GCW,=9M4LHS,=9M4LTW,=9M4SAB,=9M4SEB,=9M4SHQ, =9M4SJO,=9M4SJS,=9M4SJSA,=9M4SJSB,=9M4SJSD,=9M4SJSL,=9M4SJSM,=9M4SJSP,=9M4SJST,=9M4SJSW,=9M4SJX, - =9M4SMO,=9M4SMS,=9M4SMY,=9M4STA,=9M50IARU/6,=9M50MS,=9M51SB,=9M57MS,=9M58MS,=9M59MS,=9W2RCR/6, - =9W2VVH/6, + =9M4SMO,=9M4SMS,=9M4SMY,=9M4STA,=9M50IARU/6,=9M50MS,=9M51SB,=9M57MS,=9M58MS,=9M59MS,=9M63MS, + =9W2RCR/6,=9W2VVH/6, 9M8,9W8,=9M1CSQ,=9M4CHQ,=9M4CJN,=9M4CPB,=9M4CSR,=9M4CSS,=9M4JSE,=9M4LHM,=9M4RSA,=9M4SJE,=9M4SJQ, - =9M4SWK,=9M50IARU/8,=9M50MQ,=9M51GW,=9M53QA,=9M57MW,=9M58MW,=9M59MW; + =9M4SWK,=9M50IARU/8,=9M50MQ,=9M51GW,=9M53QA,=9M57MW,=9M58MW,=9M59MW,=9M63MQ; Nepal: 22: 42: AS: 27.70: -85.33: -5.75: 9N: 9N; Dem. Rep. of the Congo: 36: 52: AF: -3.12: -23.03: -1.0: 9Q: @@ -497,6 +498,7 @@ Mozambique: 37: 53: AF: -18.25: -35.00: -2.0: C9: C8,C9,=C98DC/YL; Chile: 12: 14: SA: -30.00: 71.00: 4.0: CE: 3G,CA,CB,CC,CD,CE,XQ,XR,=CE9/PA3EXX,=CE9/PA3EXX/P,=CE9/VE3LYC,=CE9/VE3LYC/P,=CE9/WW3TRG,=XR90IARU, + =CE0YHF/3, =CE6PGO[16],=CE6RFP[16],=XQ6CFX[16],=XQ6OA[16],=XQ6UMR[16],=XR6F[16], 3G7[16],CA7[16],CB7[16],CC7[16],CD7[16],CE7[16],XQ7[16],XR7[16],=XR7FTC/LH[16], 3G8[16],CA8[16],CB8[16],CC8[16],CD8[16],CE8[16],XQ8[16],XR8[16],=CE9/UA4WHX[16],=XR9A/8[16]; @@ -603,7 +605,7 @@ Bolivia: 10: 12: SA: -17.00: 65.00: 4.0: CP: CP7[14]; Portugal: 14: 37: EU: 39.50: 8.00: 0.0: CT: CQ,CR,CS,CT,=CR5FB/LH,=CR6L/LT,=CR6YLH/LT,=CS2HNI/LH,=CS5ARAM/LH,=CS5E/LH,=CT/DJ5AA/LH,=CT1BWW/LH, - =CT1GFK/LH,=CT1GPQ/LGT,=CT7/ON4LO/LH,=CT7/ON7RU/LH,=VERSION; + =CT1GFK/LH,=CT1GPQ/LGT,=CT7/ON4LO/LH,=CT7/ON7RU/LH; Madeira Islands: 33: 36: AF: 32.75: 16.95: 0.0: CT3: CQ2,CQ3,CQ9,CR3,CR9,CS3,CS9,CT3,CT9,=CT9500AEP/J; Azores: 14: 36: EU: 38.70: 27.23: 1.0: CU: @@ -614,7 +616,7 @@ Azores: 14: 36: EU: 38.70: 27.23: 1.0: CU: Uruguay: 13: 14: SA: -33.00: 56.00: 3.0: CX: CV,CW,CX,=CW5X/LH, =CV1AA/LH, - =CX1CAK/D,=CX1SI/D, + =CX1CAK/D,=CX1SI/D,=CX2ABP/D, =CX7OV/H, =CV9T/LH,=CX1TA/LH,=CX1TCR/LH, =CX5TR/U, @@ -631,30 +633,30 @@ Comoros: 39: 53: AF: -11.63: -43.30: -3.0: D6: D6; Fed. Rep. of Germany: 14: 28: EU: 51.00: -10.00: -1.0: DL: DA,DB,DC,DD,DE,DF,DG,DH,DI,DJ,DK,DL,DM,DN,DO,DP,DQ,DR,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9,=DA0BHV/LGT, - =DA0BHV/LH,=DA0BLH/LGT,=DA0DAG/LH,=DA0FO/LH,=DA0LCC/LH,=DA0LGV/LH,=DA0LHT/LH,=DA0OIE/LGT, - =DA0QS/LGT,=DA0QS/LH,=DA0WLH/LH,=DB2BJT/LH,=DC1HPS/LH,=DD3D/LH,=DF0AWG/LH,=DF0BU/LH,=DF0CHE/LH, - =DF0ELM/LH,=DF0HC/LH,=DF0IF/LGT,=DF0IF/LH,=DF0LR/LH,=DF0MF/LGT,=DF0MF/LH,=DF0MF/LS,=DF0SX/LH, - =DF0VK/LH,=DF0WAT/LH,=DF0WFB/LH,=DF0WH/LGT,=DF0WLG/LH,=DF1AG/LH,=DF1HF/LH,=DF2BR/LH,=DF3LY/L, - =DF5A/LH,=DF5FO/LH,=DF8AN/LGT,=DF8AN/LH,=DF8AN/P/LH,=DF9HG/LH,=DG0GF/LH,=DG3XA/LH,=DH0IPA/LH, - =DH1DH/LH,=DH1DH/M/LH,=DH6RS/LH,=DH7RK/LH,=DH9JK/LH,=DH9UW/YL,=DJ0PJ/LH,=DJ2OC/LH,=DJ3XG/LH, - =DJ5AA/LH,=DJ7AO/LH,=DJ7MH/LH,=DJ8RH/LH,=DJ9QE/LH,=DK0DAN/LH,=DK0FC/LGT,=DK0FC/LH,=DK0GYB/LH, - =DK0IZ/LH,=DK0KTL/LH,=DK0LWL/LH,=DK0OC/LH,=DK0PRE/LH,=DK0RA/LH,=DK0RBY/LH,=DK0RU/LH,=DK0RZ/LH, - =DK3DUA/LH,=DK3R/LH,=DK4DS/LH,=DK4MT/LT,=DK5AN/P/LH,=DK5T/LH,=DK5T/LS,=DL/HB9DQJ/LH,=DL0AWG/LH, - =DL0BLA/LH,=DL0BPS/LH,=DL0BUX/LGT,=DL0BUX/LH,=DL0CA/LH,=DL0CUX/LGT,=DL0CUX/LV,=DL0DAB/LH, - =DL0EJ/LH,=DL0EL/LH,=DL0EM/LGT,=DL0EM/LH,=DL0EO/LGT,=DL0EO/LH,=DL0FFF/LGT,=DL0FFF/LH,=DL0FFF/LS, - =DL0FHD/LH,=DL0FL/FF,=DL0HDF/LH,=DL0HGW/LGT,=DL0HGW/LH,=DL0HST/LH,=DL0II/LH,=DL0IOO/LH,=DL0IPA/LH, - =DL0LGT/LH,=DL0LNW/LH,=DL0MCM/LH,=DL0MFH/LGT,=DL0MFH/LH,=DL0MFK/LGT,=DL0MFK/LH,=DL0MFN/LH, - =DL0MHR/LH,=DL0NH/LH,=DL0OF/LH,=DL0PAS/LH,=DL0PBS/LH,=DL0PJ/LH,=DL0RSH/LH,=DL0RUG/LGT,=DL0RUG/LH, - =DL0RWE/LH,=DL0SH/LH,=DL0SY/LH,=DL0TO/LH,=DL0UEM/LH,=DL0VV/LH,=DL0YLM/LH,=DL1BSN/LH,=DL1DUT/LH, - =DL1ELU/LH,=DL1HZM/YL,=DL1SKK/LH,=DL2FCA/YL,=DL2RPS/LH,=DL3ANK/LH,=DL3JJ/LH,=DL3KWR/YL,=DL3KZA/LH, - =DL3RNZ/LH,=DL4ABB/LH,=DL5CX/LH,=DL5KUA/LH,=DL5SE/LH,=DL65DARC/LH,=DL6ABN/LH,=DL6AP/LH,=DL6KWN/LH, - =DL7ANC/LH,=DL7BMG/LH,=DL7MFK/LH,=DL7UVO/LH,=DL7VDX/LH,=DL8HK/YL,=DL8MTG/LH,=DL8TG/LH,=DL8TG/LV, - =DL8UAA/FF,=DL9CU/LH,=DL9NEI/ND2N,=DL9OE/LH,=DL9SEP/P/LH,=DM19ERZ/BB,=DM19ERZ/BEF,=DM19ERZ/BHF, - =DM19ERZ/BL,=DM19ERZ/BP,=DM19ERZ/BRB,=DM19ERZ/BS,=DM19ERZ/BU,=DM19ERZ/HAM,=DM19ERZ/HSD, - =DM19ERZ/MAF,=DM19ERZ/MAZ,=DM19ERZ/MF,=DM19ERZ/MS,=DM19ERZ/SG,=DM19ERZ/VL,=DM2C/LH,=DM3B/LH, - =DM3G/LH,=DM3KF/LH,=DM5C/LH,=DM5JBN/LH,=DN0AWG/LH,=DN4MB/LH,=DN8RLS/YL,=DO1EEW/YL,=DO1OMA/LH, - =DO5MCL/LH,=DO5MCL/YL,=DO6KDS/LH,=DO6UVM/LH,=DO7DC/LH,=DO7RKL/LH,=DQ4M/LH,=DQ4M/LT,=DR100MF/LS, - =DR3M/LH,=DR4W/FF,=DR4X/LH,=DR9Z/LH; + =DA0BHV/LH,=DA0BLH/LGT,=DA0DAG/LH,=DA0DFF/LH,=DA0FO/LH,=DA0LCC/LH,=DA0LGV/LH,=DA0LHT/LH, + =DA0OIE/LGT,=DA0QS/LGT,=DA0QS/LH,=DA0WLH/LH,=DB2BJT/LH,=DC1HPS/LH,=DD3D/LH,=DF0AWG/LH,=DF0BU/LH, + =DF0CHE/LH,=DF0ELM/LH,=DF0HC/LH,=DF0IF/LGT,=DF0IF/LH,=DF0LR/LH,=DF0MF/LGT,=DF0MF/LH,=DF0MF/LS, + =DF0SX/LH,=DF0VK/LH,=DF0WAT/LH,=DF0WFB/LH,=DF0WH/LGT,=DF0WLG/LH,=DF1AG/LH,=DF1HF/LH,=DF2BR/LH, + =DF3LY/L,=DF5A/LH,=DF5FO/LH,=DF8AN/LGT,=DF8AN/LH,=DF8AN/P/LH,=DF9HG/LH,=DG0GF/LH,=DG1EHM/LH, + =DG3XA/LH,=DH0IPA/LH,=DH1DH/LH,=DH1DH/M/LH,=DH6RS/LH,=DH7RK/LH,=DH9JK/LH,=DH9UW/YL,=DJ0PJ/LH, + =DJ2OC/LH,=DJ3XG/LH,=DJ5AA/LH,=DJ7AO/LH,=DJ7MH/LH,=DJ8RH/LH,=DJ9QE/LH,=DK0DAN/LH,=DK0FC/LGT, + =DK0FC/LH,=DK0GYB/LH,=DK0IZ/LH,=DK0KTL/LH,=DK0LWL/LH,=DK0OC/LH,=DK0PRE/LH,=DK0RA/LH,=DK0RBY/LH, + =DK0RU/LH,=DK0RZ/LH,=DK3DUA/LH,=DK3R/LH,=DK4DS/LH,=DK4MT/LT,=DK5AN/P/LH,=DK5T/LH,=DK5T/LS, + =DL/HB9DQJ/LH,=DL0AWG/LH,=DL0BLA/LH,=DL0BPS/LH,=DL0BUX/LGT,=DL0BUX/LH,=DL0CA/LH,=DL0CUX/LGT, + =DL0CUX/LV,=DL0DAB/LH,=DL0EJ/LH,=DL0EL/LH,=DL0EM/LGT,=DL0EM/LH,=DL0EO/LGT,=DL0EO/LH,=DL0FFF/LGT, + =DL0FFF/LH,=DL0FFF/LS,=DL0FHD/LH,=DL0FL/FF,=DL0HDF/LH,=DL0HGW/LGT,=DL0HGW/LH,=DL0HST/LH,=DL0II/LH, + =DL0IOO/LH,=DL0IPA/LH,=DL0LGT/LH,=DL0LNW/LH,=DL0MCM/LH,=DL0MFH/LGT,=DL0MFH/LH,=DL0MFK/LGT, + =DL0MFK/LH,=DL0MFN/LH,=DL0MHR/LH,=DL0NH/LH,=DL0OF/LH,=DL0PAS/LH,=DL0PBS/LH,=DL0PJ/LH,=DL0RSH/LH, + =DL0RUG/LGT,=DL0RUG/LH,=DL0RWE/LH,=DL0SH/LH,=DL0SY/LH,=DL0TO/LH,=DL0UEM/LH,=DL0VV/LH,=DL0YLM/LH, + =DL1BSN/LH,=DL1DUT/LH,=DL1ELU/LH,=DL1HZM/YL,=DL1SKK/LH,=DL2FCA/YL,=DL2RPS/LH,=DL3ANK/LH,=DL3JJ/LH, + =DL3KWR/YL,=DL3KZA/LH,=DL3RNZ/LH,=DL4ABB/LH,=DL5CX/LH,=DL5KUA/LH,=DL5SE/LH,=DL65DARC/LH, + =DL6ABN/LH,=DL6AP/LH,=DL6KWN/LH,=DL7ANC/LH,=DL7BMG/LH,=DL7MFK/LH,=DL7NF/LH,=DL7UVO/LH,=DL7VDX/LH, + =DL8HK/YL,=DL8MTG/LH,=DL8TG/LH,=DL8TG/LV,=DL8UAA/FF,=DL9CU/LH,=DL9NEI/ND2N,=DL9OE/LH,=DL9SEP/P/LH, + =DM19ERZ/BB,=DM19ERZ/BEF,=DM19ERZ/BHF,=DM19ERZ/BL,=DM19ERZ/BP,=DM19ERZ/BRB,=DM19ERZ/BS, + =DM19ERZ/BU,=DM19ERZ/HAM,=DM19ERZ/HSD,=DM19ERZ/MAF,=DM19ERZ/MAZ,=DM19ERZ/MF,=DM19ERZ/MS, + =DM19ERZ/SG,=DM19ERZ/VL,=DM2C/LH,=DM3B/LH,=DM3G/LH,=DM3KF/LH,=DM5C/LH,=DM5JBN/LH,=DN0AWG/LH, + =DN4MB/LH,=DN8RLS/YL,=DO1EEW/YL,=DO1OMA/LH,=DO2IK/LH,=DO5MCL/LH,=DO5MCL/YL,=DO6KDS/LH,=DO6UVM/LH, + =DO7DC/LH,=DO7RKL/LH,=DQ4M/LH,=DQ4M/LT,=DR100MF/LS,=DR3M/LH,=DR4W/FF,=DR4X/LH,=DR9Z/LH; Philippines: 27: 50: OC: 13.00: -122.00: -8.0: DU: 4D,4E,4F,4G,4H,4I,DU,DV,DW,DX,DY,DZ; Eritrea: 37: 48: AF: 15.00: -39.00: -3.0: E3: @@ -771,9 +773,9 @@ Chesterfield Islands: 30: 56: OC: -19.87: -158.32: -11.0: FK/c: =FK8C/AA7JV,=FK8IK/C,=TX0AT,=TX0C,=TX0DX,=TX3A,=TX3X,=TX9; Martinique: 08: 11: NA: 14.70: 61.03: 4.0: FM: FM,=TO0O,=TO1BT,=TO1C,=TO1J,=TO1N,=TO1YR,=TO2M,=TO2MB,=TO3FM,=TO3GA,=TO3JA,=TO3M,=TO3T,=TO3W, - =TO40CDXC,=TO4A,=TO4C,=TO4FM,=TO4GU,=TO4IPA,=TO4OC,=TO4YL,=TO5A,=TO5AA,=TO5J,=TO5K,=TO5PX,=TO5T, - =TO5U,=TO5W,=TO5X,=TO5Y,=TO6ABM,=TO6M,=TO7A,=TO7BP,=TO7HAM,=TO7X,=TO8A,=TO8M,=TO8T,=TO8Z, - =TO90IARU,=TO972A,=TO972M,=TO9A,=TO9R; + =TO40CDXC,=TO4A,=TO4C,=TO4FM,=TO4GU,=TO4IPA,=TO4OC,=TO4YL,=TO5A,=TO5AA,=TO5J,=TO5K,=TO5PX,=TO5U, + =TO5W,=TO5X,=TO5Y,=TO6ABM,=TO6M,=TO7A,=TO7BP,=TO7HAM,=TO7X,=TO8A,=TO8M,=TO8T,=TO8Z,=TO90IARU, + =TO972A,=TO972M,=TO9A,=TO9R; French Polynesia: 32: 63: OC: -17.65: 149.40: 10.0: FO: FO,=FO0MIC/MM3,=TX0A,=TX0M,=TX4N,=TX4VK,=TX5J, =TX2AH,=TX6T/P, @@ -792,7 +794,7 @@ Marquesas Islands: 31: 63: OC: -8.92: 140.07: 9.5: FO/m: =FO/W6TLD,=FO0ELY,=FO0POM,=FO0TOH,=FO5QS/M,=FO8RZ/P,=K7ST/FO,=TX0SIX,=TX4PG,=TX5A,=TX5SPM,=TX5VT, =TX7EU,=TX7G,=TX7M,=TX7MB,=TX7T; St. Pierre & Miquelon: 05: 09: NA: 46.77: 56.20: 3.0: FP: - FP,=TO200SPM,=TO2U,=TO5FP,=TO5M,=TO80SP; + FP,=TO200SPM,=TO2U,=TO5FP,=TO5M,=TO5T,=TO80SP; Reunion Island: 39: 53: AF: -21.12: -55.48: -4.0: FR: FR,=TO019IEEE,=TO0FAR,=TO0MPB,=TO0R,=TO19A,=TO1PF,=TO1PF/P,=TO1TAAF,=TO2R,=TO2R/P,=TO2Z,=TO3R, =TO5R,=TO7CC,=TO7DL,=TO90R; @@ -843,25 +845,25 @@ Northern Ireland: 14: 27: EU: 54.73: 6.68: 0.0: GI: =GB2BOA,=GB2CA,=GB2CRU,=GB2DCI,=GB2DMR,=GB2DPC,=GB2IL,=GB2LL,=GB2LOL,=GB2MAC,=GB2MRI,=GB2PDY, =GB2PP,=GB2PSW,=GB2REL,=GB2SDD,=GB2SPD,=GB2SPR,=GB2STI,=GB2STP,=GB2SW,=GB2UAS,=GB3NGI,=GB4AFD, =GB4CSC,=GB4CTL,=GB4NHS,=GB4ONI,=GB4PS,=GB4SOS,=GB4SPD,=GB4UAS,=GB50AAD,=GB50CSC,=GB5AFD,=GB5BIG, - =GB5BL,=GB5BL/LH,=GB5DPR,=GB5NHS,=GB5OMU,=GB5SPD,=GB6EPC,=GB6SPD,=GB6VCB,=GB75VEC,=GB8BKY,=GB8BRM, - =GB8DS,=GB8EGT,=GB8GLM,=GB8NHS,=GB8ROC,=GB8SJA,=GB8SPD,=GB90RSGB/82,=GB90SOM,=GB9AFD,=GB9LQV, - =GB9RAF,=GB9SPD,=GN0LIX/LH,=GN4GTY/LH,=GO0AQD,=GO0BJH,=GO0DUP,=GO3KVD,=GO3MMF,=GO3SG,=GO4DOH, - =GO4GID,=GO4GUH,=GO4LKG,=GO4NKB,=GO4ONL,=GO4OYM,=GO4SRQ,=GO4SZW,=GO6MTL,=GO7AXB,=GO7KMC,=GO8YYM, - =GQ0AQD,=GQ0BJG,=GQ0NCA,=GQ0RQK,=GQ0TJV,=GQ0UVD,=GQ1CET,=GQ3KVD,=GQ3MMF,=GQ3SG,=GQ3UZJ,=GQ3XRQ, - =GQ4DOH,=GQ4GID,=GQ4GUH,=GQ4JTF,=GQ4LKG,=GQ4LXL,=GQ4NKB,=GQ4ONL,=GQ4OYM,=GQ4SZW,=GQ6JPO,=GQ6MTL, - =GQ7AXB,=GQ7JYK,=GQ7KMC,=GQ8RQI,=GQ8YYM,=GR0BJH,=GR0BRO,=GR0DVU,=GR0RQK,=GR0RWO,=GR0UVD,=GR1CET, - =GR3GTR,=GR3KDR,=GR3SG,=GR3WEM,=GR4AAM,=GR4DHW,=GR4DOH,=GR4FUE,=GR4FUM,=GR4GID,=GR4GOS,=GR4GUH, - =GR4KQU,=GR4LXL,=GR4NKB,=GR6JPO,=GR7AXB,=GR7KMC,=GR8RKC,=GR8RQI,=GR8YYM,=GV1BZT,=GV3KVD,=GV3SG, - =GV4FUE,=GV4GUH,=GV4JTF,=GV4LXL,=GV4SRQ,=GV4WVN,=GV7AXB,=GV7THH,=MI5AFK/2K,=MN0NID/LH,=MO0ALS, - =MO0BDZ,=MO0CBH,=MO0IOU,=MO0IRZ,=MO0JFC,=MO0JFC/P,=MO0JML,=MO0JST,=MO0KYE,=MO0LPO,=MO0MOD, - =MO0MOD/P,=MO0MSR,=MO0MVP,=MO0RRE,=MO0RUC,=MO0RYL,=MO0TGO,=MO0VAX,=MO0ZXZ,=MO3RLA,=MO6AOX,=MO6NIR, - =MO6TUM,=MO6WAG,=MO6WDB,=MO6YDR,=MQ0ALS,=MQ0BDZ,=MQ0BPB,=MQ0GGB,=MQ0IRZ,=MQ0JFC,=MQ0JST,=MQ0KAM, - =MQ0KYE,=MQ0MOD,=MQ0MSR,=MQ0MVP,=MQ0RMD,=MQ0RRE,=MQ0RUC,=MQ0RYL,=MQ0TGO,=MQ0VAX,=MQ0ZXZ,=MQ3GHW, - =MQ3RLA,=MQ3STV,=MQ5AFK,=MQ6AOX,=MQ6BJG,=MQ6GDN,=MQ6WAG,=MQ6WDB,=MQ6WGM,=MR0GDO,=MR0GGB,=MR0JFC, - =MR0KQU,=MR0LPO,=MR0MOD,=MR0MSR,=MR0MVP,=MR0RUC,=MR0SAI,=MR0SMK,=MR0TFK,=MR0TLG,=MR0TMW,=MR0VAX, - =MR0WWB,=MR1CCU,=MR3RLA,=MR3TFF,=MR3WHM,=MR5AMO,=MR6CCU,=MR6CWC,=MR6GDN,=MR6MME,=MR6MRJ,=MR6OKS, - =MR6OLA,=MR6PUX,=MR6WAG,=MR6XGZ,=MV0ALS,=MV0GGB,=MV0IOU,=MV0JFC,=MV0JLC,=MV0MOD,=MV0MSR,=MV0MVP, - =MV0TGO,=MV0VAX,=MV0WGM,=MV0ZAO,=MV1VOX,=MV6DTE,=MV6GTY,=MV6NIR,=MV6TLG; + =GB5BL,=GB5BL/LH,=GB5DPR,=GB5NHS,=GB5OMU,=GB5SPD,=GB6EPC,=GB6SPD,=GB6VCB,=GB75VEC,=GB80BOB, + =GB8BKY,=GB8BRM,=GB8DS,=GB8EGT,=GB8GLM,=GB8NHS,=GB8ROC,=GB8SJA,=GB8SPD,=GB90RSGB/82,=GB90SOM, + =GB9AFD,=GB9LQV,=GB9RAF,=GB9SPD,=GN0LIX/LH,=GN4GTY/LH,=GO0AQD,=GO0BJH,=GO0DUP,=GO3KVD,=GO3MMF, + =GO3SG,=GO4DOH,=GO4GID,=GO4GUH,=GO4LKG,=GO4NKB,=GO4ONL,=GO4OYM,=GO4SRQ,=GO4SZW,=GO6MTL,=GO7AXB, + =GO7KMC,=GO8YYM,=GQ0AQD,=GQ0BJG,=GQ0NCA,=GQ0RQK,=GQ0TJV,=GQ0UVD,=GQ1CET,=GQ3KVD,=GQ3MMF,=GQ3SG, + =GQ3UZJ,=GQ3XRQ,=GQ4DOH,=GQ4GID,=GQ4GUH,=GQ4JTF,=GQ4LKG,=GQ4LXL,=GQ4NKB,=GQ4ONL,=GQ4OYM,=GQ4SZW, + =GQ6JPO,=GQ6MTL,=GQ7AXB,=GQ7JYK,=GQ7KMC,=GQ8RQI,=GQ8YYM,=GR0BJH,=GR0BRO,=GR0DVU,=GR0RQK,=GR0RWO, + =GR0UVD,=GR1CET,=GR3GTR,=GR3KDR,=GR3SG,=GR3WEM,=GR4AAM,=GR4DHW,=GR4DOH,=GR4FUE,=GR4FUM,=GR4GID, + =GR4GOS,=GR4GUH,=GR4KQU,=GR4LXL,=GR4NKB,=GR6JPO,=GR7AXB,=GR7KMC,=GR8RKC,=GR8RQI,=GR8YYM,=GV1BZT, + =GV3KVD,=GV3SG,=GV4FUE,=GV4GUH,=GV4JTF,=GV4LXL,=GV4SRQ,=GV4WVN,=GV7AXB,=GV7THH,=MI5AFK/2K, + =MN0NID/LH,=MO0ALS,=MO0BDZ,=MO0CBH,=MO0IOU,=MO0IRZ,=MO0JFC,=MO0JFC/P,=MO0JML,=MO0JST,=MO0KYE, + =MO0LPO,=MO0MOD,=MO0MOD/P,=MO0MSR,=MO0MVP,=MO0RRE,=MO0RUC,=MO0RYL,=MO0TGO,=MO0VAX,=MO0ZXZ,=MO3RLA, + =MO6AOX,=MO6NIR,=MO6TUM,=MO6WAG,=MO6WDB,=MO6YDR,=MQ0ALS,=MQ0BDZ,=MQ0BPB,=MQ0GGB,=MQ0IRZ,=MQ0JFC, + =MQ0JST,=MQ0KAM,=MQ0KYE,=MQ0MOD,=MQ0MSR,=MQ0MVP,=MQ0RMD,=MQ0RRE,=MQ0RUC,=MQ0RYL,=MQ0TGO,=MQ0VAX, + =MQ0ZXZ,=MQ3GHW,=MQ3RLA,=MQ3STV,=MQ5AFK,=MQ6AOX,=MQ6BJG,=MQ6GDN,=MQ6WAG,=MQ6WDB,=MQ6WGM,=MR0GDO, + =MR0GGB,=MR0JFC,=MR0KQU,=MR0LPO,=MR0MOD,=MR0MSR,=MR0MVP,=MR0RUC,=MR0SAI,=MR0SMK,=MR0TFK,=MR0TLG, + =MR0TMW,=MR0VAX,=MR0WWB,=MR1CCU,=MR3RLA,=MR3TFF,=MR3WHM,=MR5AMO,=MR6CCU,=MR6CWC,=MR6GDN,=MR6MME, + =MR6MRJ,=MR6OKS,=MR6OLA,=MR6PUX,=MR6WAG,=MR6XGZ,=MV0ALS,=MV0GGB,=MV0IOU,=MV0JFC,=MV0JLC,=MV0MOD, + =MV0MSR,=MV0MVP,=MV0TGO,=MV0VAX,=MV0WGM,=MV0ZAO,=MV1VOX,=MV6DTE,=MV6GTY,=MV6NIR,=MV6TLG; Jersey: 14: 27: EU: 49.22: 2.18: 0.0: GJ: 2J,GH,GJ,MH,MJ,=2R0ODX,=GB0JSA,=GB19CJ,=GB2BYL,=GB2JSA,=GB50JSA,=GB5OJR,=GB8LMI,=GH5DX/NHS, =GJ3DVC/L,=GJ6WRI/LH,=GJ8PVL/LH,=GO8PVL,=GQ8PVL,=GR6TMM,=MO0ASP,=MQ0ASP,=MR0ASP,=MR0RZD,=MV0ASP; @@ -886,75 +888,75 @@ Scotland: 14: 27: EU: 56.82: 4.18: 0.0: GM: =2R0IMP,=2R0IOB,=2R0ISM,=2R0JVR,=2R0KAU,=2R0KAU/P,=2R0NCM,=2R0OXX,=2R0YCG,=2R0ZPS,=2R1MIC,=2R1SJB, =2V0GUL,=2V0IVG,=2V0JCH,=2V0KAU,=2V0TAX,=2V1HFE,=2V1MIC,=2V1SJB,=G0FBJ,=GA6NX/LH,=GB0AYR,=GB0BAJ, =GB0BCG,=GB0BCK,=GB0BD,=GB0BDC,=GB0BL,=GB0BNA,=GB0BNC,=GB0BOC,=GB0BOL,=GB0BSS,=GB0BWT,=GB0CCF, - =GB0CHL,=GB0CLH,=GB0CML,=GB0CNL,=GB0CSL,=GB0CWF,=GB0CWS,=GB0DAM,=GB0DAW,=GB0DBS,=GB0DHL,=GB0DPK, - =GB0EPC,=GB0FFS,=GB0FSG,=GB0GDS,=GB0GDS/J,=GB0GGR,=GB0GRN,=GB0GTD,=GB0HHW,=GB0HLD,=GB0JOG,=GB0KEY, - =GB0KGS,=GB0KKS,=GB0KLT,=GB0LCS,=GB0LCW,=GB0LTM,=GB0MLH,=GB0MLM,=GB0MOD,=GB0MOG,=GB0MOL,=GB0MSL, - =GB0MUL,=GB0NGG,=GB0NHL,=GB0NHL/LH,=GB0NHS,=GB0NRL,=GB0OYT,=GB0PLS,=GB0POS,=GB0PPE,=GB0PSW, - =GB0RGC,=GB0SAA,=GB0SBC,=GB0SCD,=GB0SFM,=GB0SHP,=GB0SI,=GB0SK,=GB0SKG,=GB0SKY,=GB0SLB,=GB0SRC, - =GB0SSB,=GB0TH,=GB0THL,=GB0TNL,=GB0TTS,=GB0WRH,=GB100MAS,=GB100MUC,=GB100ZET,=GB10SP,=GB150NRL, - =GB18FIFA,=GB19CGM,=GB19CS,=GB1AJ,=GB1ASC,=GB1ASH,=GB1BD,=GB1BOL,=GB1CFL,=GB1COR,=GB1DHL,=GB1FB, - =GB1FRS,=GB1FVS,=GB1FVT,=GB1GEO,=GB1GND,=GB1HRS,=GB1KGG,=GB1KLD,=GB1LAY,=GB1LGG,=GB1LL,=GB1MAY, - =GB1NHL,=GB1OL,=GB1OL/LH,=GB1PC,=GB1RB,=GB1RHU,=GB1RST,=GB1SLH,=GB1TAY,=GB1WLG,=GB250RB,=GB2AES, - =GB2AGG,=GB2AL,=GB2AMS,=GB2AST,=GB2ATC,=GB2AYR,=GB2BAJ,=GB2BHM,=GB2BHS,=GB2BMJ,=GB2BOL,=GB2CAS, - =GB2CHC,=GB2CM,=GB2CMA,=GB2CVL,=GB2CWR,=GB2DAS,=GB2DAW,=GB2DHS,=GB2DL,=GB2DRC,=GB2DT,=GB2DTM, - =GB2ELH,=GB2ELH/LH,=GB2EPC,=GB2FBM,=GB2FEA,=GB2FSM,=GB2FSW,=GB2GEO,=GB2GKR,=GB2GNL,=GB2GNL/LH, - =GB2GTM,=GB2GVC,=GB2HLB,=GB2HMC,=GB2HRH,=GB2IGB,=GB2IGS,=GB2IMG,=GB2IMM,=GB2INV,=GB2IOT,=GB2JCM, - =GB2KDR,=GB2KGB,=GB2KW,=GB2LBN,=GB2LBN/LH,=GB2LCL,=GB2LCP,=GB2LCT,=GB2LDG,=GB2LG,=GB2LGB,=GB2LHI, - =GB2LK,=GB2LK/LH,=GB2LMG,=GB2LP,=GB2LS,=GB2LS/LH,=GB2LSS,=GB2LT,=GB2LT/LH,=GB2LXX,=GB2M,=GB2MAS, - =GB2MBB,=GB2MDG,=GB2MN,=GB2MOF,=GB2MSL,=GB2MUC,=GB2MUL,=GB2NBC,=GB2NEF,=GB2NL,=GB2NMM,=GB2OL, - =GB2OWM,=GB2PBF,=GB2PG,=GB2QM,=GB2RB,=GB2RDR,=GB2ROC,=GB2RRL,=GB2RWW,=GB2SAA,=GB2SAM,=GB2SAS, - =GB2SB,=GB2SBG,=GB2SHL/LH,=GB2SKG,=GB2SLH,=GB2SMM,=GB2SOH,=GB2SQN,=GB2SR,=GB2SSB,=GB2SUM,=GB2SWF, - =GB2TDS,=GB2THL,=GB2THL/LH,=GB2TNL,=GB2VCB,=GB2VEF,=GB2WAM,=GB2WBF,=GB2WG,=GB2WLS,=GB2YLS,=GB2ZE, - =GB3ANG,=GB3GKR,=GB3LER,=GB3LER/B,=GB3ORK,=GB3ORK/B,=GB3SWF,=GB3WOI,=GB4AAS,=GB4AST,=GB4BBR, - =GB4BG,=GB4CGS,=GB4CMA,=GB4DAS,=GB4DHX,=GB4DTD,=GB4DUK,=GB4EPC,=GB4FFS,=GB4GD,=GB4GDS,=GB4GS, - =GB4IE,=GB4JCM,=GB4JOA,=GB4JPJ,=GB4JYS,=GB4LER,=GB4MSE,=GB4NFE,=GB4PAS,=GB4SK,=GB4SKO,=GB4SLH, - =GB4SMM,=GB4SRO,=GB4SWF,=GB50FVS,=GB50GDS,=GB50GT,=GB50JS,=GB5AG,=GB5AST,=GB5BBS,=GB5BOH,=GB5C, - =GB5CCC,=GB5CS,=GB5CWL,=GB5DHL,=GB5DX,=GB5EMF,=GB5FHC,=GB5FLM,=GB5JS,=GB5LTH,=GB5RO,=GB5RO/LH, - =GB5RR,=GB5SI,=GB5TAM,=GB5TI,=GB60CRB,=GB6BEN,=GB6TAA,=GB6WW,=GB75CC,=GB75GD,=GB7SRW,=GB80GD, - =GB8AYR,=GB8CSL,=GB8FSG,=GB8RU,=GB8RUM,=GB90RSGB/11,=GB90RSGB/12,=GB90RSGB/21,=GB90RSGB/22, - =GB90RSGB/23,=GB999SPC,=GB9UL,=GG100AGG,=GG100GA,=GG100GCC,=GG100GGP,=GG100GGR,=GG100GLD, - =GG100SBG,=GM/DL5SE/LH,=GM0AZC/2K,=GM0DHZ/P,=GM0GFL/P,=GM0KTO/2K,=GM0MUN/2K,=GM0SGB/M,=GM0SGB/P, - =GM0WED/NHS,=GM0WUX/2K,=GM3JIJ/2K,=GM3OFT/P,=GM3TKV/LH,=GM3TTC/P,=GM3TXF/P,=GM3USR/P,=GM3VLB/P, - =GM3WFK/P,=GM3YDN/NHS,=GM4AFF/P,=GM4CHX/2K,=GM4CHX/P,=GM4SQM/NHS,=GM4SQN/NHS,=GM4WSB/M,=GM4WSB/P, - =GM4ZVD/P,=GM6JNJ/NHS,=GM6WRW/P,=GO0AEG,=GO0AIR,=GO0BKC,=GO0DBW,=GO0DBW/M,=GO0DEQ,=GO0GMN,=GO0OGN, - =GO0SYY,=GO0TUB,=GO0VRP,=GO0WEZ,=GO1BAN,=GO1BKF,=GO1MQE,=GO1TBW,=GO2MP,=GO3HVK,=GO3JIJ,=GO3NIG, - =GO3VTB,=GO4BLO,=GO4CAU,=GO4CFS,=GO4CHX,=GO4CXM,=GO4DLG,=GO4EMX,=GO4FAM,=GO4FAU,=GO4JOJ,=GO4JPZ, - =GO4JR,=GO4MOX,=GO4MSL,=GO4PRB,=GO4UBJ,=GO4VTB,=GO4WZG,=GO4XQJ,=GO6JEP,=GO6JRX,=GO6KON,=GO6LYJ, - =GO6VCV,=GO7GAX,=GO7GDE,=GO7HUD,=GO7TUD,=GO7WEF,=GO8CBQ,=GO8MHU,=GO8SVB,=GO8TTD,=GQ0AEG,=GQ0AIR, - =GQ0BKC,=GQ0BWR,=GQ0DBW,=GQ0DEQ,=GQ0DUX,=GQ0FNE,=GQ0GMN,=GQ0HUO,=GQ0KWL,=GQ0MUN,=GQ0NTL,=GQ0OGN, - =GQ0RNR,=GQ0TKV/P,=GQ0VRP,=GQ0WEZ,=GQ0WNR,=GQ1BAN,=GQ1BKF,=GQ1MQE,=GQ1TBW,=GQ3JIJ,=GQ3JQJ,=GQ3NIG, - =GQ3NTL,=GQ3TKP,=GQ3TKP/P,=GQ3TKV,=GQ3TKV/P,=GQ3VTB,=GQ3WUX,=GQ3ZBE,=GQ4AGG,=GQ4BAE,=GQ4BLO, - =GQ4CAU,=GQ4CFS,=GQ4CHX,=GQ4CHX/P,=GQ4CXM,=GQ4DLG,=GQ4ELV,=GQ4EMX,=GQ4FAU,=GQ4JOJ,=GQ4JPZ,=GQ4JR, - =GQ4MSL,=GQ4OBG,=GQ4PRB,=GQ4UIB,=GQ4UPL,=GQ4VTB,=GQ4WZG,=GQ4XQJ,=GQ4YMM,=GQ6JEP,=GQ6JRX,=GQ6KON, - =GQ6LYJ,=GQ7GAX,=GQ7GDE,=GQ7HUD,=GQ7TUD,=GQ7UED,=GQ7WEF,=GQ8CBQ,=GQ8MHU,=GQ8PLR,=GQ8SVB,=GQ8TTD, - =GR0AXY,=GR0CDV,=GR0DBW,=GR0EKM,=GR0GMN,=GR0GRD,=GR0HPK,=GR0HPL,=GR0HUO,=GR0OGN,=GR0PNS,=GR0SYV, - =GR0TTV,=GR0TUB,=GR0UKZ,=GR0VRP,=GR0WED,=GR0WNR,=GR150NIB,=GR1BAN,=GR1MWK,=GR1TBW,=GR1ZIV,=GR3JFG, - =GR3MZX,=GR3NIG,=GR3OFT,=GR3PPE,=GR3PYU,=GR3VAL,=GR3VTB,=GR3WFJ,=GR3YXJ,=GR3ZDH,=GR4BDJ,=GR4BLO, - =GR4CAU,=GR4CCN,=GR4CFS,=GR4CMI,=GR4CXM,=GR4DLG,=GR4EMX,=GR4EOU,=GR4FQE,=GR4GIF,=GR4JOJ,=GR4NSZ, - =GR4PRB,=GR4SQM,=GR4VTB,=GR4XAW,=GR4XMD,=GR4XQJ,=GR4YMM,=GR6JEP,=GR6JNJ,=GR7AAJ,=GR7GAX,=GR7GDE, - =GR7GMC,=GR7HHB,=GR7HUD,=GR7LNO,=GR7NZI,=GR7TUD,=GR7USC,=GR7VSB,=GR8CBQ,=GR8KJO,=GR8KPH,=GR8MHU, - =GR8OFQ,=GR8SVB,=GS4WAB/P,=GV0DBW,=GV0GMN,=GV0GRD,=GV0LZE,=GV0OBX,=GV0OGN,=GV0SYV,=GV0VRP,=GV1BAN, - =GV3EEW,=GV3JIJ,=GV3NHQ,=GV3NIG,=GV3NKG,=GV3NNZ,=GV3PIP,=GV3ULP,=GV3VTB,=GV4BLO,=GV4EMX,=GV4HRJ, - =GV4ILS,=GV4JOJ,=GV4KLN,=GV4LVW,=GV4PRB,=GV4VTB,=GV4XQJ,=GV6KON,=GV7DHA,=GV7GDE,=GV7GMC,=GV8AVM, - =GV8DPV,=GV8LYS,=MB18FIFA,=MM/DH5JBR/P,=MM/DJ4OK/M,=MM/DJ8OK/M,=MM/DL5SE/LH,=MM/F5BLC/P, - =MM/F5LMJ/P,=MM/HB9IAB/P,=MM/KE5TF/P,=MM/N5ET/P,=MM/OK1FZM/P,=MM/W5ZE/P,=MM0BNN/LH,=MM0BQI/2K, - =MM0BQN/2K,=MM0BYE/2K,=MM0DFV/P,=MM0DHQ/NHS,=MM0LON/M,=MM0SHF/P,=MM0YHB/P,=MM0ZOL/LH,=MM3AWD/NHS, - =MM3DDQ/NHS,=MM5PSL/P,=MM5YLO/P,=MM7WAB/NHS,=MO0BFF,=MO0CWJ,=MO0CYR,=MO0DBC,=MO0DNX,=MO0FMF, - =MO0GXQ,=MO0HZT,=MO0JST/P,=MO0KJG,=MO0KSS,=MO0NFC,=MO0SGQ,=MO0SJT,=MO0TGB,=MO0TSG,=MO0WKC,=MO0XXW, - =MO0ZBH,=MO1AWV,=MO1HMV,=MO3BCA,=MO3BRR,=MO3GPL,=MO3OQR,=MO3TUP,=MO3UVL,=MO3YHA,=MO3YMU,=MO3ZCB/P, - =MO3ZRF,=MO5PSL,=MO6BJJ,=MO6CCS,=MO6CHM,=MO6CRQ,=MO6CRQ/M,=MO6DGZ,=MO6HUT,=MO6KAU,=MO6KAU/M, - =MO6KSJ,=MO6MCV,=MO6SRL,=MO6TEW,=MQ0BNN/P,=MQ0BQM,=MQ0BRG,=MQ0CIN,=MQ0CXA,=MQ0CYR,=MQ0DNX,=MQ0DXD, - =MQ0EQE,=MQ0FMF,=MQ0GXQ,=MQ0GYX,=MQ0GYX/P,=MQ0KJG,=MQ0KSS,=MQ0LEN,=MQ0NFC,=MQ0NJC,=MQ0SJT,=MQ0TSG, - =MQ0WKC,=MQ0XXW,=MQ0ZBH,=MQ1AWV,=MQ1HMV,=MQ1JWF,=MQ3BCA,=MQ3BRR,=MQ3ERZ,=MQ3FET,=MQ3OVK,=MQ3SVK, - =MQ3UIX,=MQ3UVL,=MQ3YHA,=MQ3YMU,=MQ3ZRF,=MQ5PSL,=MQ6AQM,=MQ6BJJ,=MQ6CCS,=MQ6CHM,=MQ6CRQ,=MQ6DGZ, - =MQ6HUT,=MQ6KAJ,=MQ6KAU,=MQ6KSJ,=MQ6KUA,=MQ6LMP,=MQ6MCV,=MR0BQN,=MR0CWB,=MR0CXA,=MR0DHQ,=MR0DWF, - =MR0DXD,=MR0DXH,=MR0EPC,=MR0EQE,=MR0FME,=MR0FMF,=MR0GCF,=MR0GGG,=MR0GGI,=MR0GOR,=MR0HAI,=MR0HVU, - =MR0OIL,=MR0POD,=MR0PSL,=MR0RDM,=MR0SGQ,=MR0SJT,=MR0TAI,=MR0TSG,=MR0TSS,=MR0VTV,=MR0WEI,=MR0XAF, - =MR0XXP,=MR0XXW,=MR1AWV,=MR1HMV,=MR1JWF,=MR1VTB,=MR3AWA,=MR3AWD,=MR3BRR,=MR3PTS,=MR3UIX,=MR3UVL, - =MR3WJZ,=MR3XGP,=MR3YHA,=MR3YPH,=MR3ZCS,=MR5PSL,=MR6AHB,=MR6ARN,=MR6ATU,=MR6CHM,=MR6CTH,=MR6CTL, - =MR6HFC,=MR6MCV,=MR6RLL,=MR6SSI,=MR6TMS,=MV0DXH,=MV0FME,=MV0FMF,=MV0GHM,=MV0HAR,=MV0LGS,=MV0NFC, - =MV0NJS,=MV0SGQ,=MV0SJT,=MV0XXW,=MV1VTB,=MV3BRR,=MV3CVB,=MV3YHA,=MV3YMU,=MV5PSL,=MV6BJJ,=MV6KSJ, - =MV6NRQ; + =GB0CHL,=GB0CLH,=GB0CML,=GB0CNL,=GB0CSL,=GB0CSL/LH,=GB0CWF,=GB0CWS,=GB0DAM,=GB0DAW,=GB0DBS, + =GB0DHL,=GB0DPK,=GB0EPC,=GB0FFS,=GB0FSG,=GB0GDS,=GB0GDS/J,=GB0GGR,=GB0GRN,=GB0GTD,=GB0HHW,=GB0HLD, + =GB0JOG,=GB0KEY,=GB0KGS,=GB0KKS,=GB0KLT,=GB0LCS,=GB0LCW,=GB0LTM,=GB0MLH,=GB0MLM,=GB0MOD,=GB0MOG, + =GB0MOL,=GB0MSL,=GB0MUL,=GB0NGG,=GB0NHL,=GB0NHL/LH,=GB0NHS,=GB0NRL,=GB0OYT,=GB0PLS,=GB0POS, + =GB0PPE,=GB0PSW,=GB0RGC,=GB0SAA,=GB0SBC,=GB0SCD,=GB0SFM,=GB0SHP,=GB0SI,=GB0SK,=GB0SKG,=GB0SKY, + =GB0SLB,=GB0SRC,=GB0SSB,=GB0TH,=GB0THL,=GB0TNL,=GB0TTS,=GB0WRH,=GB100BCG,=GB100MAS,=GB100MUC, + =GB100ZET,=GB10SP,=GB150NRL,=GB18FIFA,=GB19CGM,=GB19CS,=GB1AJ,=GB1ASC,=GB1ASH,=GB1BD,=GB1BOL, + =GB1CFL,=GB1COR,=GB1DHL,=GB1FB,=GB1FRS,=GB1FVS,=GB1FVT,=GB1GEO,=GB1GND,=GB1HRS,=GB1KGG,=GB1KLD, + =GB1LAY,=GB1LGG,=GB1LL,=GB1MAY,=GB1NHL,=GB1OL,=GB1OL/LH,=GB1PC,=GB1RB,=GB1RHU,=GB1RST,=GB1SLH, + =GB1TAY,=GB1WLG,=GB250RB,=GB2AES,=GB2AGG,=GB2AL,=GB2AMS,=GB2AST,=GB2ATC,=GB2AYR,=GB2BAJ,=GB2BHM, + =GB2BHS,=GB2BMJ,=GB2BOL,=GB2CAS,=GB2CHC,=GB2CM,=GB2CMA,=GB2CVL,=GB2CWR,=GB2DAS,=GB2DAW,=GB2DHS, + =GB2DL,=GB2DRC,=GB2DT,=GB2DTM,=GB2ELH,=GB2ELH/LH,=GB2EPC,=GB2FBM,=GB2FEA,=GB2FSM,=GB2FSW,=GB2GEO, + =GB2GKR,=GB2GNL,=GB2GNL/LH,=GB2GTM,=GB2GVC,=GB2HLB,=GB2HMC,=GB2HRH,=GB2IGB,=GB2IGS,=GB2IMG, + =GB2IMM,=GB2INV,=GB2IOT,=GB2JCM,=GB2KDR,=GB2KGB,=GB2KW,=GB2LBN,=GB2LBN/LH,=GB2LCL,=GB2LCP,=GB2LCT, + =GB2LDG,=GB2LG,=GB2LG/P,=GB2LGB,=GB2LHI,=GB2LK,=GB2LK/LH,=GB2LMG,=GB2LP,=GB2LS,=GB2LS/LH,=GB2LSS, + =GB2LT,=GB2LT/LH,=GB2LXX,=GB2M,=GB2MAS,=GB2MBB,=GB2MDG,=GB2MN,=GB2MOF,=GB2MSL,=GB2MUC,=GB2MUL, + =GB2NBC,=GB2NEF,=GB2NL,=GB2NMM,=GB2OL,=GB2OWM,=GB2PBF,=GB2PG,=GB2QM,=GB2RB,=GB2RDR,=GB2ROC, + =GB2RRL,=GB2RWW,=GB2SAA,=GB2SAM,=GB2SAS,=GB2SB,=GB2SBG,=GB2SHL/LH,=GB2SKG,=GB2SLH,=GB2SMM,=GB2SOH, + =GB2SQN,=GB2SR,=GB2SSB,=GB2SUM,=GB2SWF,=GB2TDS,=GB2THL,=GB2THL/LH,=GB2TNL,=GB2VCB,=GB2VEF,=GB2WAM, + =GB2WBF,=GB2WG,=GB2WLS,=GB2YLS,=GB2ZE,=GB3ANG,=GB3GKR,=GB3LER,=GB3LER/B,=GB3ORK,=GB3ORK/B,=GB3SWF, + =GB3WOI,=GB4AAS,=GB4AST,=GB4BBR,=GB4BG,=GB4CGS,=GB4CMA,=GB4DAS,=GB4DHX,=GB4DTD,=GB4DUK,=GB4EPC, + =GB4FFS,=GB4GD,=GB4GDS,=GB4GS,=GB4IE,=GB4JCM,=GB4JOA,=GB4JPJ,=GB4JYS,=GB4LER,=GB4MSE,=GB4NFE, + =GB4PAS,=GB4SK,=GB4SKO,=GB4SLH,=GB4SMM,=GB4SRO,=GB4SWF,=GB50FVS,=GB50GDS,=GB50GT,=GB50JS,=GB5AG, + =GB5AST,=GB5BBS,=GB5BOH,=GB5C,=GB5CCC,=GB5CS,=GB5CWL,=GB5DHL,=GB5DX,=GB5EMF,=GB5FHC,=GB5FLM, + =GB5JS,=GB5LTH,=GB5RO,=GB5RO/LH,=GB5RR,=GB5SI,=GB5TAM,=GB5TI,=GB60CRB,=GB6BEN,=GB6TAA,=GB6WW, + =GB75CC,=GB75GD,=GB7SRW,=GB80GD,=GB8AYR,=GB8CSL,=GB8FSG,=GB8RU,=GB8RUM,=GB90RSGB/11,=GB90RSGB/12, + =GB90RSGB/21,=GB90RSGB/22,=GB90RSGB/23,=GB999SPC,=GB9UL,=GG100AGG,=GG100GA,=GG100GCC,=GG100GGP, + =GG100GGR,=GG100GLD,=GG100SBG,=GM/DL5SE/LH,=GM0AZC/2K,=GM0DHZ/P,=GM0GFL/P,=GM0KTO/2K,=GM0MUN/2K, + =GM0SGB/M,=GM0SGB/P,=GM0WED/NHS,=GM0WUX/2K,=GM3JIJ/2K,=GM3OFT/P,=GM3TKV/LH,=GM3TTC/P,=GM3TXF/P, + =GM3USR/P,=GM3VLB/P,=GM3WFK/P,=GM3YDN/NHS,=GM4AFF/P,=GM4CHX/2K,=GM4CHX/P,=GM4SQM/NHS,=GM4SQN/NHS, + =GM4WSB/M,=GM4WSB/P,=GM4ZVD/P,=GM6JNJ/NHS,=GM6WRW/P,=GO0AEG,=GO0AIR,=GO0BKC,=GO0DBW,=GO0DBW/M, + =GO0DEQ,=GO0GMN,=GO0OGN,=GO0SYY,=GO0TUB,=GO0VRP,=GO0WEZ,=GO1BAN,=GO1BKF,=GO1MQE,=GO1TBW,=GO2MP, + =GO3HVK,=GO3JIJ,=GO3NIG,=GO3VTB,=GO4BLO,=GO4CAU,=GO4CFS,=GO4CHX,=GO4CXM,=GO4DLG,=GO4EMX,=GO4FAM, + =GO4FAU,=GO4JOJ,=GO4JPZ,=GO4JR,=GO4MOX,=GO4MSL,=GO4PRB,=GO4UBJ,=GO4VTB,=GO4WZG,=GO4XQJ,=GO6JEP, + =GO6JRX,=GO6KON,=GO6LYJ,=GO6VCV,=GO7GAX,=GO7GDE,=GO7HUD,=GO7TUD,=GO7WEF,=GO8CBQ,=GO8MHU,=GO8SVB, + =GO8TTD,=GQ0AEG,=GQ0AIR,=GQ0BKC,=GQ0BWR,=GQ0DBW,=GQ0DEQ,=GQ0DUX,=GQ0FNE,=GQ0GMN,=GQ0HUO,=GQ0KWL, + =GQ0MUN,=GQ0NTL,=GQ0OGN,=GQ0RNR,=GQ0TKV/P,=GQ0VRP,=GQ0WEZ,=GQ0WNR,=GQ1BAN,=GQ1BKF,=GQ1MQE,=GQ1TBW, + =GQ3JIJ,=GQ3JQJ,=GQ3NIG,=GQ3NTL,=GQ3TKP,=GQ3TKP/P,=GQ3TKV,=GQ3TKV/P,=GQ3VTB,=GQ3WUX,=GQ3ZBE, + =GQ4AGG,=GQ4BAE,=GQ4BLO,=GQ4CAU,=GQ4CFS,=GQ4CHX,=GQ4CHX/P,=GQ4CXM,=GQ4DLG,=GQ4ELV,=GQ4EMX,=GQ4FAU, + =GQ4JOJ,=GQ4JPZ,=GQ4JR,=GQ4MSL,=GQ4OBG,=GQ4PRB,=GQ4UIB,=GQ4UPL,=GQ4VTB,=GQ4WZG,=GQ4XQJ,=GQ4YMM, + =GQ6JEP,=GQ6JRX,=GQ6KON,=GQ6LYJ,=GQ7GAX,=GQ7GDE,=GQ7HUD,=GQ7TUD,=GQ7UED,=GQ7WEF,=GQ8CBQ,=GQ8MHU, + =GQ8PLR,=GQ8SVB,=GQ8TTD,=GR0AXY,=GR0CDV,=GR0DBW,=GR0EKM,=GR0GMN,=GR0GRD,=GR0HPK,=GR0HPL,=GR0HUO, + =GR0OGN,=GR0PNS,=GR0SYV,=GR0TTV,=GR0TUB,=GR0UKZ,=GR0VRP,=GR0WED,=GR0WNR,=GR150NIB,=GR1BAN,=GR1MWK, + =GR1TBW,=GR1ZIV,=GR3JFG,=GR3MZX,=GR3NIG,=GR3OFT,=GR3PPE,=GR3PYU,=GR3VAL,=GR3VTB,=GR3WFJ,=GR3YXJ, + =GR3ZDH,=GR4BDJ,=GR4BLO,=GR4CAU,=GR4CCN,=GR4CFS,=GR4CMI,=GR4CXM,=GR4DLG,=GR4EMX,=GR4EOU,=GR4FQE, + =GR4GIF,=GR4JOJ,=GR4NSZ,=GR4PRB,=GR4SQM,=GR4VTB,=GR4XAW,=GR4XMD,=GR4XQJ,=GR4YMM,=GR6JEP,=GR6JNJ, + =GR7AAJ,=GR7GAX,=GR7GDE,=GR7GMC,=GR7HHB,=GR7HUD,=GR7LNO,=GR7NZI,=GR7TUD,=GR7USC,=GR7VSB,=GR8CBQ, + =GR8KJO,=GR8KPH,=GR8MHU,=GR8OFQ,=GR8SVB,=GS4WAB/P,=GV0DBW,=GV0GMN,=GV0GRD,=GV0LZE,=GV0OBX,=GV0OGN, + =GV0SYV,=GV0VRP,=GV1BAN,=GV3EEW,=GV3JIJ,=GV3NHQ,=GV3NIG,=GV3NKG,=GV3NNZ,=GV3PIP,=GV3ULP,=GV3VTB, + =GV4BLO,=GV4EMX,=GV4HRJ,=GV4ILS,=GV4JOJ,=GV4KLN,=GV4LVW,=GV4PRB,=GV4VTB,=GV4XQJ,=GV6KON,=GV7DHA, + =GV7GDE,=GV7GMC,=GV8AVM,=GV8DPV,=GV8LYS,=MB18FIFA,=MM/DH5JBR/P,=MM/DJ4OK/M,=MM/DJ8OK/M, + =MM/DL5SE/LH,=MM/F5BLC/P,=MM/F5LMJ/P,=MM/HB9IAB/P,=MM/KE5TF/P,=MM/N5ET/P,=MM/OK1FZM/P,=MM/W5ZE/P, + =MM0BNN/LH,=MM0BQI/2K,=MM0BQN/2K,=MM0BYE/2K,=MM0DFV/P,=MM0DHQ/NHS,=MM0LON/M,=MM0SHF/P,=MM0YHB/P, + =MM0ZOL/LH,=MM3AWD/NHS,=MM3DDQ/NHS,=MM5PSL/P,=MM5YLO/P,=MM7WAB/NHS,=MO0BFF,=MO0CWJ,=MO0CYR, + =MO0DBC,=MO0DNX,=MO0FMF,=MO0GXQ,=MO0HZT,=MO0JST/P,=MO0KJG,=MO0KSS,=MO0NFC,=MO0SGQ,=MO0SJT,=MO0TGB, + =MO0TSG,=MO0WKC,=MO0XXW,=MO0ZBH,=MO1AWV,=MO1HMV,=MO3BCA,=MO3BRR,=MO3GPL,=MO3OQR,=MO3TUP,=MO3UVL, + =MO3YHA,=MO3YMU,=MO3ZCB/P,=MO3ZRF,=MO5PSL,=MO6BJJ,=MO6CCS,=MO6CHM,=MO6CRQ,=MO6CRQ/M,=MO6DGZ, + =MO6HUT,=MO6KAU,=MO6KAU/M,=MO6KSJ,=MO6MCV,=MO6SRL,=MO6TEW,=MQ0BNN/P,=MQ0BQM,=MQ0BRG,=MQ0CIN, + =MQ0CXA,=MQ0CYR,=MQ0DNX,=MQ0DXD,=MQ0EQE,=MQ0FMF,=MQ0GXQ,=MQ0GYX,=MQ0GYX/P,=MQ0KJG,=MQ0KSS,=MQ0LEN, + =MQ0NFC,=MQ0NJC,=MQ0SJT,=MQ0TSG,=MQ0WKC,=MQ0XXW,=MQ0ZBH,=MQ1AWV,=MQ1HMV,=MQ1JWF,=MQ3BCA,=MQ3BRR, + =MQ3ERZ,=MQ3FET,=MQ3OVK,=MQ3SVK,=MQ3UIX,=MQ3UVL,=MQ3YHA,=MQ3YMU,=MQ3ZRF,=MQ5PSL,=MQ6AQM,=MQ6BJJ, + =MQ6CCS,=MQ6CHM,=MQ6CRQ,=MQ6DGZ,=MQ6HUT,=MQ6KAJ,=MQ6KAU,=MQ6KSJ,=MQ6KUA,=MQ6LMP,=MQ6MCV,=MR0BQN, + =MR0CWB,=MR0CXA,=MR0DHQ,=MR0DWF,=MR0DXD,=MR0DXH,=MR0EPC,=MR0EQE,=MR0FME,=MR0FMF,=MR0GCF,=MR0GGG, + =MR0GGI,=MR0GOR,=MR0HAI,=MR0HVU,=MR0OIL,=MR0POD,=MR0PSL,=MR0RDM,=MR0SGQ,=MR0SJT,=MR0TAI,=MR0TSG, + =MR0TSS,=MR0VTV,=MR0WEI,=MR0XAF,=MR0XXP,=MR0XXW,=MR1AWV,=MR1HMV,=MR1JWF,=MR1VTB,=MR3AWA,=MR3AWD, + =MR3BRR,=MR3PTS,=MR3UIX,=MR3UVL,=MR3WJZ,=MR3XGP,=MR3YHA,=MR3YPH,=MR3ZCS,=MR5PSL,=MR6AHB,=MR6ARN, + =MR6ATU,=MR6CHM,=MR6CTH,=MR6CTL,=MR6HFC,=MR6MCV,=MR6RLL,=MR6SSI,=MR6TMS,=MV0DXH,=MV0FME,=MV0FMF, + =MV0GHM,=MV0HAR,=MV0LGS,=MV0NFC,=MV0NJS,=MV0SGQ,=MV0SJT,=MV0XXW,=MV1VTB,=MV3BRR,=MV3CVB,=MV3YHA, + =MV3YMU,=MV5PSL,=MV6BJJ,=MV6KSJ,=MV6NRQ; Guernsey: 14: 27: EU: 49.45: 2.58: 0.0: GU: 2U,GP,GU,MP,MU,=2O0FER,=2Q0ARE,=2Q0FER,=2U0ARE/2K,=GB0HAM,=GB0SRK,=GB0U,=GB19CG,=GB2AFG,=GB2FG, =GB2GU,=GB2JTA,=GB4SGG,=GB50GSY,=GO8FBO,=GQ8FBO,=GU0DXX/2K,=GU4GG/2K,=MO0FAL,=MO0KWD,=MQ0FAL, @@ -969,63 +971,63 @@ Wales: 14: 27: EU: 52.28: 3.73: 0.0: GW: =GB0BRE,=GB0BTB,=GB0BVL,=GB0BYL,=GB0CAC,=GB0CCE,=GB0CEW,=GB0CFD,=GB0CGG,=GB0CLC,=GB0CQD,=GB0CSA, =GB0CSR,=GB0CTK,=GB0CVA,=GB0DFD,=GB0DMT,=GB0DS,=GB0DVP,=GB0EUL,=GB0FHD,=GB0FHI,=GB0GDD,=GB0GIG, =GB0GIW,=GB0GLV,=GB0GMD,=GB0GRM,=GB0HEL,=GB0HGC,=GB0HLT,=GB0HMM,=GB0HMT,=GB0KF,=GB0L,=GB0LBG, - =GB0LM,=GB0LVF,=GB0MFH,=GB0MIW,=GB0ML,=GB0MPA,=GB0MSB,=GB0MUU,=GB0MWL,=GB0MZX,=GB0NAW,=GB0NEW, - =GB0NG,=GB0NLC,=GB0PBR,=GB0PEM,=GB0PGG,=GB0PLB,=GB0PLL,=GB0PSG,=GB0RME,=GB0ROC,=GB0RPO,=GB0RS, - =GB0RSC,=GB0RSF,=GB0RWM,=GB0SCB,=GB0SDD,=GB0SGC,=GB0SH,=GB0SH/LH,=GB0SOA,=GB0SPE,=GB0SPS,=GB0TD, - =GB0TL,=GB0TPR,=GB0TS,=GB0TTT,=GB0VCA,=GB0VEE,=GB0VK,=GB0WHH,=GB0WHR,=GB0WIW,=GB0WMZ,=GB0WUL, - =GB0YG,=GB100AB,=GB100BP,=GB100CSW,=GB100GGC,=GB100GGM,=GB100HD,=GB100LB,=GB100LSG,=GB100MCV, - =GB100RS,=GB100TMD,=GB10SOTA,=GB19CGW,=GB19CW,=GB19SG,=GB1AD,=GB1ATC,=GB1BAF,=GB1BGS,=GB1BPL, - =GB1BSW,=GB1BW,=GB1CCC,=GB1CDS,=GB1CPG,=GB1DS,=GB1FHS,=GB1HAS,=GB1HTW,=GB1JC,=GB1KEY,=GB1LSG, - =GB1LW,=GB1OOC,=GB1PCA,=GB1PCS,=GB1PD,=GB1PGW,=GB1PJ,=GB1PLL,=GB1SDD,=GB1SEA,=GB1SL,=GB1SPN, - =GB1SSL,=GB1STC,=GB1TDS,=GB1WAA,=GB1WIW,=GB1WSM,=GB2000SET,=GB2003SET,=GB200HNT,=GB200TT, - =GB250TMB,=GB250TT,=GB2ADU,=GB2BEF,=GB2BGG,=GB2BOM,=GB2BOW,=GB2BPM,=GB2BYF,=GB2CC,=GB2CI,=GB2COB, - =GB2CR,=GB2CRS,=GB2DWR,=GB2EI,=GB2FC,=GB2FLB,=GB2GGM,=GB2GLS,=GB2GOL,=GB2GSG,=GB2GVA,=GB2HDG, - =GB2HMM,=GB2IMD,=GB2LBR,=GB2LM,=GB2LNP,=GB2LSA,=GB2LSA/LH,=GB2LSH,=GB2MD,=GB2MGY,=GB2MIL,=GB2MLM, - =GB2MMC,=GB2MOP,=GB2NF,=GB2NPH,=GB2NPL,=GB2OOA,=GB2ORM,=GB2PRC,=GB2RFS,=GB2RSG,=GB2RTB,=GB2SAC, - =GB2SCC,=GB2SCD,=GB2SCP,=GB2SFM,=GB2SIP,=GB2SLA,=GB2TD,=GB2TD/LH,=GB2TTA,=GB2VK,=GB2WAA,=GB2WHO, - =GB2WIW,=GB2WNA,=GB2WSF,=GB2WT,=GB3HLS,=GB3LMW,=GB4ADU,=GB4AFS,=GB4AOS,=GB4BB,=GB4BIT,=GB4BOJ, - =GB4BPL,=GB4BPL/LH,=GB4BPL/P,=GB4BPR,=GB4BRS/P,=GB4BSG,=GB4CI,=GB4CTC,=GB4EUL,=GB4FAA,=GB4GM, - =GB4GSS,=GB4HFH,=GB4HI,=GB4HLB,=GB4HMD,=GB4HMM,=GB4LRG,=GB4MBC,=GB4MD,=GB4MDH,=GB4MDI,=GB4MJS, - =GB4MPI,=GB4MUU,=GB4NDG,=GB4NPL,=GB4NTB,=GB4ON,=GB4OST,=GB4PAT,=GB4PCS,=GB4PD,=GB4POW,=GB4RC, - =GB4RME,=GB4RSL,=GB4SDD,=GB4SLC,=GB4SSP,=GB4SUB,=GB4TMS,=GB4UKG,=GB4VJD,=GB4WT,=GB4WWI,=GB4XT, - =GB50ABS,=GB50EVS,=GB50RSC,=GB50SGP,=GB5AC,=GB5FI,=GB5GEO,=GB5MD,=GB5ONG,=GB5PSJ,=GB5SIP,=GB5VEP, - =GB5WT,=GB60DITP,=GB60ER,=GB60PW,=GB60SPS,=GB60VLY,=GB65BTF,=GB6AC,=GB6BLB,=GB6CRI,=GB6GGM, - =GB6OQA,=GB6ORA,=GB6PLB,=GB6RNLI,=GB6TS,=GB6TSG,=GB6WT,=GB6WWT,=GB70BTF,=GB750CC,=GB75ATC,=GB75BB, - =GB8CCC,=GB8HI,=GB8MD,=GB8MG,=GB8ND,=GB8OAE,=GB8OQE,=GB8RAF,=GB8WOW,=GB8WT,=GB90RSGB/62, - =GB90RSGB/72,=GB9GGM,=GC4BRS/LH,=GG100ACD,=GG100ANG,=GG100CPG,=GG100RGG,=GG100SG,=GO0DIV,=GO0EZQ, - =GO0EZY,=GO0JEQ,=GO0MNP,=GO0MNP/P,=GO0NPL,=GO0PLB,=GO0PNI,=GO0PUP,=GO0VKW,=GO0VML,=GO0VSW,=GO1DPL, - =GO1IOT,=GO1JFV,=GO1MVL,=GO1PKM,=GO3PLB,=GO3UOF,=GO3UOF/M,=GO3XJQ,=GO4BKG,=GO4BLE,=GO4CQZ,=GO4DTQ, - =GO4GTI,=GO4JKR,=GO4JUN,=GO4JUW,=GO4MVA,=GO4NOO,=GO4OKT,=GO4SUE,=GO4SUE/P,=GO4TNZ,=GO4WXM,=GO6IMS, - =GO6NKG,=GO6UKO,=GO7DWR,=GO7SBO,=GO7VJK,=GO7VQD,=GO8BQK,=GO8IQC,=GO8JOY,=GO8OKR,=GQ0ANA,=GQ0DIV, - =GQ0JEQ,=GQ0JRF,=GQ0MNO,=GQ0MNP,=GQ0NPL,=GQ0PUP,=GQ0RYT,=GQ0SLM,=GQ0TQM,=GQ0VKW,=GQ0VML,=GQ0VSW, - =GQ0WVL,=GQ1FKY,=GQ1FOA/P,=GQ1IOT,=GQ1JFV,=GQ1MVL,=GQ1NRS,=GQ1WRV,=GQ1ZKN,=GQ3IRK,=GQ3PLB,=GQ3SB, - =GQ3UOF,=GQ3VEN,=GQ3VKL,=GQ3WSU,=GQ3XJA,=GQ3XJQ,=GQ4BKG,=GQ4BLE,=GQ4CQZ,=GQ4EZW,=GQ4GSH,=GQ4GTI, - =GQ4IIL,=GQ4JKR,=GQ4JUN,=GQ4JUW,=GQ4LZP,=GQ4MVA,=GQ4NOO,=GQ4OKT,=GQ4SUE,=GQ4VNS,=GQ4VZJ,=GQ4WXM, - =GQ4WXM/P,=GQ6IMS,=GQ6ITJ,=GQ6NKG,=GQ6UKO,=GQ7BQK,=GQ7DWR,=GQ7FBV,=GQ7SBO,=GQ7UNJ,=GQ7UNV,=GQ7VJK, - =GQ7VQD,=GQ8BQK,=GQ8IQC,=GQ8JOY,=GQ8OKR,=GR0ANA,=GR0DIV,=GR0DSP,=GR0HUS,=GR0JEQ,=GR0MYY,=GR0NPL, - =GR0PSV,=GR0RYT,=GR0SYN,=GR0TKX,=GR0VKW,=GR0WGK,=GR1FJI,=GR1HNG,=GR1LFX,=GR1LHV,=GR1MCD,=GR1SGG, - =GR1WVY,=GR1YQM,=GR3SB,=GR3SFC,=GR3TKH,=GR3UOF,=GR3XJQ,=GR4BKG,=GR4BLE,=GR4CQZ,=GR4GNY,=GR4GTI, - =GR4HZA,=GR4JUN,=GR4JUW,=GR4OGO,=GR4SUE,=GR4VSS/P,=GR4XXJ,=GR4ZOM,=GR5PH,=GR6NKG,=GR6SIX,=GR6STK, - =GR6UKO,=GR6ZDH,=GR7AAV,=GR7HOC,=GR7NAU,=GR7TKZ,=GR7UNV,=GR7VQD,=GR8BQK,=GR8IQC,=GR8OGI,=GR8TRO, - =GV0ANA,=GV0DCK,=GV0DIV,=GV0EME,=GV0FRE,=GV0MNP,=GV0NPL,=GV1FKY,=GV1IOT,=GV1JFV,=GV1NBW,=GV1YQM, - =GV3ATZ,=GV3TJE/P,=GV3UOF,=GV3WEZ,=GV3XJQ,=GV4BKG,=GV4BRS,=GV4CQZ,=GV4JKR,=GV4JQP,=GV4NQJ,=GV4PUC, - =GV6BRC,=GV6JPC,=GV6NKG,=GV7UNV,=GV7VJK,=GV8IQC,=GW0AWT/2K,=GW0GEI/2K,=GW0GIH/2K,=GW0MNO/2K, - =GW0VSW/2K,=GW3JXN/2K,=GW3KJN/2K,=GW4IIL/2K,=GW4VHP/2K,=M2000Y/97A,=MO0AQZ,=MO0ATI,=MO0COE, - =MO0CVT,=MO0EQL,=MO0EZQ,=MO0GXE,=MO0HCX,=MO0IBZ,=MO0IML,=MO0KLW,=MO0LDJ,=MO0LLK,=MO0LUK,=MO0LZZ, - =MO0MAU,=MO0MUM,=MO0MWZ,=MO0OWW,=MO0SGD,=MO0SGR,=MO0TBB,=MO0TMI,=MO0TTU,=MO0UPH,=MO0VVO,=MO1CFA, - =MO1CFN,=MO3DAO,=MO3DQB,=MO3GKI,=MO3OJA,=MO3PUU,=MO3RNI,=MO3UEZ,=MO3WPH,=MO3YVO,=MO3ZCO,=MO6DVP, - =MO6GWK,=MO6GWR,=MO6GWR/P,=MO6MAU,=MO6PAM,=MO6PLC,=MO6PUT,=MO6SEF,=MO6TBD,=MO6TBP,=MO6WLB,=MQ0AQZ, - =MQ0ATI,=MQ0AWW,=MQ0CDO,=MQ0CNA,=MQ0CVT,=MQ0DHF,=MQ0EQL,=MQ0GXE,=MQ0GYV,=MQ0HCX,=MQ0IBZ,=MQ0IML, - =MQ0LDJ,=MQ0LLK,=MQ0LUK,=MQ0LZZ,=MQ0MAU,=MQ0MUM,=MQ0MWA,=MQ0MWZ,=MQ0OWW,=MQ0PAD,=MQ0RHD,=MQ0SGD, - =MQ0SGR,=MQ0TBB,=MQ0TMI,=MQ0TTU,=MQ0UPH,=MQ0UPH/P,=MQ0VVO,=MQ0XMC/P,=MQ1CFA,=MQ1CFN,=MQ1EYO/P, - =MQ1LCR,=MQ3DAO,=MQ3EPA,=MQ3GKI,=MQ3JAT,=MQ3NDB,=MQ3OJA,=MQ3USK,=MQ3WPH,=MQ3ZCB/P,=MQ5AND,=MQ5EPA, - =MQ5VZW,=MQ6DVP,=MQ6KLL,=MQ6MAU,=MQ6PAM,=MQ6PLC,=MQ6RHD,=MQ6SEF,=MQ6TBD,=MQ6TBP,=MR0AQZ,=MR0BXJ, - =MR0CVT,=MR0GUK,=MR0GXE,=MR0IDX,=MR0JGE,=MR0LAO,=MR0LDJ,=MR0MAU,=MR0RLD,=MR0TTR,=MR0TTU,=MR0YAD, - =MR0ZAP,=MR1CFN,=MR1EAA,=MR1LCR,=MR1MAJ/P,=MR1MDH,=MR3AVB,=MR3AVC,=MR3CBF,=MR3NYR,=MR3OBL, - =MR3SET/P,=MR3UFN,=MR3XZP,=MR3YKL,=MR3YLO,=MR3YVO,=MR3ZCB/P,=MR5HOC,=MR6ADZ,=MR6KDA,=MR6VHF, - =MR6YDP,=MV0AEL,=MV0BLM,=MV0EDX,=MV0GWT,=MV0GXE,=MV0HGY/P,=MV0IML,=MV0LLK,=MV0PJJ,=MV0PJJ/P, - =MV0RRD,=MV0SGD,=MV0SGR,=MV0TBB,=MV0TDQ,=MV0UAA,=MV0USK,=MV0VRQ,=MV0WYN,=MV1CFA,=MV1CFN,=MV1EYP/P, - =MV3RNI,=MV6CQN,=MV6GWR,=MV6GWR/P,=MV6URC,=MV6ZOL,=MW0CND/2K,=MW0DHF/LH,=MW5AAM/2K,=MW5GOL/LH; + =GB0LM,=GB0LVF,=GB0MFH,=GB0MIW,=GB0ML,=GB0MPA,=GB0MSB,=GB0MUU,=GB0MWL,=GB0NAW,=GB0NEW,=GB0NG, + =GB0NLC,=GB0PBR,=GB0PEM,=GB0PGG,=GB0PLB,=GB0PLL,=GB0PSG,=GB0RME,=GB0ROC,=GB0RPO,=GB0RS,=GB0RSC, + =GB0RSF,=GB0RWM,=GB0SCB,=GB0SDD,=GB0SGC,=GB0SH,=GB0SH/LH,=GB0SOA,=GB0SPE,=GB0SPS,=GB0TD,=GB0TL, + =GB0TPR,=GB0TS,=GB0TTT,=GB0VCA,=GB0VEE,=GB0VK,=GB0WHH,=GB0WHR,=GB0WIW,=GB0WMZ,=GB0WUL,=GB0YG, + =GB100AB,=GB100BP,=GB100CSW,=GB100GGC,=GB100GGM,=GB100HD,=GB100LB,=GB100LSG,=GB100MCV,=GB100RS, + =GB100TMD,=GB10SOTA,=GB19CGW,=GB19CW,=GB19SG,=GB1AD,=GB1ATC,=GB1BAF,=GB1BGS,=GB1BPL,=GB1BSW, + =GB1BW,=GB1CCC,=GB1CDS,=GB1CPG,=GB1DS,=GB1FHS,=GB1HAS,=GB1HTW,=GB1JC,=GB1KEY,=GB1LSG,=GB1LW, + =GB1OOC,=GB1PCA,=GB1PCS,=GB1PD,=GB1PGW,=GB1PJ,=GB1PLL,=GB1SDD,=GB1SEA,=GB1SL,=GB1SPN,=GB1SSL, + =GB1STC,=GB1TDS,=GB1WAA,=GB1WIW,=GB1WSM,=GB2000SET,=GB2003SET,=GB200HNT,=GB200TT,=GB250TMB, + =GB250TT,=GB2ADU,=GB2BEF,=GB2BGG,=GB2BOM,=GB2BOW,=GB2BPM,=GB2BYF,=GB2CC,=GB2CI,=GB2COB,=GB2CR, + =GB2CRS,=GB2DWR,=GB2EI,=GB2FC,=GB2FLB,=GB2GGM,=GB2GLS,=GB2GOL,=GB2GSG,=GB2GVA,=GB2HDG,=GB2HMM, + =GB2IMD,=GB2LBR,=GB2LM,=GB2LNP,=GB2LSA,=GB2LSA/LH,=GB2LSH,=GB2MD,=GB2MGY,=GB2MIL,=GB2MLM,=GB2MMC, + =GB2MOP,=GB2NF,=GB2NPH,=GB2NPL,=GB2OOA,=GB2ORM,=GB2PRC,=GB2RFS,=GB2RSG,=GB2RTB,=GB2SAC,=GB2SCC, + =GB2SCD,=GB2SCP,=GB2SFM,=GB2SIP,=GB2SLA,=GB2TD,=GB2TD/LH,=GB2TTA,=GB2VK,=GB2WAA,=GB2WHO,=GB2WIW, + =GB2WNA,=GB2WSF,=GB2WT,=GB3HLS,=GB3LMW,=GB4ADU,=GB4AFS,=GB4AOS,=GB4BB,=GB4BIT,=GB4BOJ,=GB4BPL, + =GB4BPL/LH,=GB4BPL/P,=GB4BPR,=GB4BRS/P,=GB4BSG,=GB4CI,=GB4CTC,=GB4EUL,=GB4FAA,=GB4GM,=GB4GSS, + =GB4HFH,=GB4HI,=GB4HLB,=GB4HMD,=GB4HMM,=GB4LRG,=GB4MBC,=GB4MD,=GB4MDH,=GB4MDI,=GB4MJS,=GB4MPI, + =GB4MUU,=GB4NDG,=GB4NPL,=GB4NTB,=GB4ON,=GB4OST,=GB4PAT,=GB4PCS,=GB4PD,=GB4POW,=GB4RC,=GB4RME, + =GB4RSL,=GB4SDD,=GB4SLC,=GB4SSP,=GB4SUB,=GB4TMS,=GB4UKG,=GB4WT,=GB4WWI,=GB4XT,=GB50ABS,=GB50EVS, + =GB50RSC,=GB50SGP,=GB5AC,=GB5FI,=GB5GEO,=GB5MD,=GB5ONG,=GB5PSJ,=GB5SIP,=GB5VEP,=GB5WT,=GB60DITP, + =GB60ER,=GB60PW,=GB60SPS,=GB60VLY,=GB65BTF,=GB6AC,=GB6BLB,=GB6CRI,=GB6GGM,=GB6OQA,=GB6ORA,=GB6PLB, + =GB6RNLI,=GB6TS,=GB6TSG,=GB6WT,=GB6WWT,=GB70BTF,=GB750CC,=GB75ATC,=GB75BB,=GB8CCC,=GB8HI,=GB8MD, + =GB8MG,=GB8ND,=GB8OAE,=GB8OQE,=GB8RAF,=GB8WOW,=GB8WT,=GB90RSGB/62,=GB90RSGB/72,=GB9GGM,=GC4BRS/LH, + =GG100ACD,=GG100ANG,=GG100CPG,=GG100RGG,=GG100SG,=GO0DIV,=GO0EZQ,=GO0EZY,=GO0JEQ,=GO0MNP, + =GO0MNP/P,=GO0NPL,=GO0PLB,=GO0PNI,=GO0PUP,=GO0VKW,=GO0VML,=GO0VSW,=GO1DPL,=GO1IOT,=GO1JFV,=GO1MVL, + =GO1PKM,=GO3PLB,=GO3UOF,=GO3UOF/M,=GO3XJQ,=GO4BKG,=GO4BLE,=GO4CQZ,=GO4DTQ,=GO4GTI,=GO4JKR,=GO4JUN, + =GO4JUW,=GO4MVA,=GO4NOO,=GO4OKT,=GO4SUE,=GO4SUE/P,=GO4TNZ,=GO4WXM,=GO6IMS,=GO6NKG,=GO6UKO,=GO7DWR, + =GO7SBO,=GO7VJK,=GO7VQD,=GO8BQK,=GO8IQC,=GO8JOY,=GO8OKR,=GQ0ANA,=GQ0DIV,=GQ0JEQ,=GQ0JRF,=GQ0MNO, + =GQ0MNP,=GQ0NPL,=GQ0PUP,=GQ0RYT,=GQ0SLM,=GQ0TQM,=GQ0VKW,=GQ0VML,=GQ0VSW,=GQ0WVL,=GQ1FKY,=GQ1FOA/P, + =GQ1IOT,=GQ1JFV,=GQ1MVL,=GQ1NRS,=GQ1WRV,=GQ1ZKN,=GQ3IRK,=GQ3PLB,=GQ3SB,=GQ3UOF,=GQ3VEN,=GQ3VKL, + =GQ3WSU,=GQ3XJA,=GQ3XJQ,=GQ4BKG,=GQ4BLE,=GQ4CQZ,=GQ4EZW,=GQ4GSH,=GQ4GTI,=GQ4IIL,=GQ4JKR,=GQ4JUN, + =GQ4JUW,=GQ4LZP,=GQ4MVA,=GQ4NOO,=GQ4OKT,=GQ4SUE,=GQ4VNS,=GQ4VZJ,=GQ4WXM,=GQ4WXM/P,=GQ6IMS,=GQ6ITJ, + =GQ6NKG,=GQ6UKO,=GQ7BQK,=GQ7DWR,=GQ7FBV,=GQ7SBO,=GQ7UNJ,=GQ7UNV,=GQ7VJK,=GQ7VQD,=GQ8BQK,=GQ8IQC, + =GQ8JOY,=GQ8OKR,=GR0ANA,=GR0DIV,=GR0DSP,=GR0HUS,=GR0JEQ,=GR0MYY,=GR0NPL,=GR0PSV,=GR0RYT,=GR0SYN, + =GR0TKX,=GR0VKW,=GR0WGK,=GR1FJI,=GR1HNG,=GR1LFX,=GR1LHV,=GR1MCD,=GR1SGG,=GR1WVY,=GR1YQM,=GR3SB, + =GR3SFC,=GR3TKH,=GR3UOF,=GR3XJQ,=GR4BKG,=GR4BLE,=GR4CQZ,=GR4GNY,=GR4GTI,=GR4HZA,=GR4JUN,=GR4JUW, + =GR4OGO,=GR4SUE,=GR4VSS/P,=GR4XXJ,=GR4ZOM,=GR5PH,=GR6NKG,=GR6SIX,=GR6STK,=GR6UKO,=GR6ZDH,=GR7AAV, + =GR7HOC,=GR7NAU,=GR7TKZ,=GR7UNV,=GR7VQD,=GR8BQK,=GR8IQC,=GR8OGI,=GR8TRO,=GV0ANA,=GV0DCK,=GV0DIV, + =GV0EME,=GV0FRE,=GV0MNP,=GV0NPL,=GV1FKY,=GV1IOT,=GV1JFV,=GV1NBW,=GV1YQM,=GV3ATZ,=GV3TJE/P,=GV3UOF, + =GV3WEZ,=GV3XJQ,=GV4BKG,=GV4BRS,=GV4CQZ,=GV4JKR,=GV4JQP,=GV4NQJ,=GV4PUC,=GV6BRC,=GV6JPC,=GV6NKG, + =GV7UNV,=GV7VJK,=GV8IQC,=GW0AWT/2K,=GW0GEI/2K,=GW0GIH/2K,=GW0MNO/2K,=GW0VSW/2K,=GW3JXN/2K, + =GW3KJN/2K,=GW4IIL/2K,=GW4VHP/2K,=M2000Y/97A,=MO0AQZ,=MO0ATI,=MO0COE,=MO0CVT,=MO0EQL,=MO0EZQ, + =MO0GXE,=MO0HCX,=MO0IBZ,=MO0IML,=MO0KLW,=MO0LDJ,=MO0LLK,=MO0LUK,=MO0LZZ,=MO0MAU,=MO0MUM,=MO0MWZ, + =MO0OWW,=MO0SGD,=MO0SGR,=MO0TBB,=MO0TMI,=MO0TTU,=MO0UPH,=MO0VVO,=MO1CFA,=MO1CFN,=MO3DAO,=MO3DQB, + =MO3GKI,=MO3OJA,=MO3PUU,=MO3RNI,=MO3UEZ,=MO3WPH,=MO3YVO,=MO3ZCO,=MO6DVP,=MO6GWK,=MO6GWR,=MO6GWR/P, + =MO6MAU,=MO6PAM,=MO6PLC,=MO6PUT,=MO6SEF,=MO6TBD,=MO6TBP,=MO6WLB,=MQ0AQZ,=MQ0ATI,=MQ0AWW,=MQ0CDO, + =MQ0CNA,=MQ0CVT,=MQ0DHF,=MQ0EQL,=MQ0GXE,=MQ0GYV,=MQ0HCX,=MQ0IBZ,=MQ0IML,=MQ0LDJ,=MQ0LLK,=MQ0LUK, + =MQ0LZZ,=MQ0MAU,=MQ0MUM,=MQ0MWA,=MQ0MWZ,=MQ0OWW,=MQ0PAD,=MQ0RHD,=MQ0SGD,=MQ0SGR,=MQ0TBB,=MQ0TMI, + =MQ0TTU,=MQ0UPH,=MQ0UPH/P,=MQ0VVO,=MQ0XMC/P,=MQ1CFA,=MQ1CFN,=MQ1EYO/P,=MQ1LCR,=MQ3DAO,=MQ3EPA, + =MQ3GKI,=MQ3JAT,=MQ3NDB,=MQ3OJA,=MQ3USK,=MQ3WPH,=MQ3ZCB/P,=MQ5AND,=MQ5EPA,=MQ5VZW,=MQ6DVP,=MQ6KLL, + =MQ6MAU,=MQ6PAM,=MQ6PLC,=MQ6RHD,=MQ6SEF,=MQ6TBD,=MQ6TBP,=MR0AQZ,=MR0BXJ,=MR0CVT,=MR0GUK,=MR0GXE, + =MR0IDX,=MR0JGE,=MR0LAO,=MR0LDJ,=MR0MAU,=MR0RLD,=MR0TTR,=MR0TTU,=MR0YAD,=MR0ZAP,=MR1CFN,=MR1EAA, + =MR1LCR,=MR1MAJ/P,=MR1MDH,=MR3AVB,=MR3AVC,=MR3CBF,=MR3NYR,=MR3OBL,=MR3SET/P,=MR3UFN,=MR3XZP, + =MR3YKL,=MR3YLO,=MR3YVO,=MR3ZCB/P,=MR5HOC,=MR6ADZ,=MR6KDA,=MR6VHF,=MR6YDP,=MV0AEL,=MV0BLM,=MV0EDX, + =MV0GWT,=MV0GXE,=MV0HGY/P,=MV0IML,=MV0LLK,=MV0PJJ,=MV0PJJ/P,=MV0RRD,=MV0SGD,=MV0SGR,=MV0TBB, + =MV0TDQ,=MV0UAA,=MV0USK,=MV0VRQ,=MV0WYN,=MV1CFA,=MV1CFN,=MV1EYP/P,=MV3RNI,=MV6CQN,=MV6GWR, + =MV6GWR/P,=MV6URC,=MV6ZOL,=MW0CND/2K,=MW0DHF/LH,=MW5AAM/2K,=MW5GOL/LH; Solomon Islands: 28: 51: OC: -9.00: -160.00: -11.0: H4: H4,=H40/H44RK; Temotu Province: 32: 51: OC: -10.72: -165.80: -11.0: H40: @@ -1079,9 +1081,9 @@ Saudi Arabia: 21: 39: AS: 24.20: -43.83: -3.0: HZ: Italy: 15: 28: EU: 42.82: -12.58: -1.0: I: I,=II0PN/MM(40),=II1RT/N, =4U0WFP,=4U4F,=4U5F,=4U6F,=4U7F,=4U7FOC,=4U80FOC,=4U8F,=4U8FOC,=II0IDR/NAVY,=IK0ATK/N,=IK0CNA/LH, - =IK0JFS/N,=IK0XFD/N,=IQ0AP/J,=IQ0CV/LH,=IQ0FM/LH,=IQ0FR/LH,=IQ0GV/AAW,=IR0BP/J,=IU0FSC/LH, - =IW0HP/N,=IW9GSH/0,=IZ0BXZ/N,=IZ0DBA/N,=IZ0EGC/N,=IZ0EUX/I/AZ,=IZ0FVD/N,=IZ0HTW/PS,=IZ0HTW/SP, - =IZ0IAT/LH,=IZ0IJC/FF,=IZ0IJC/N,=IZ0XZD/RO, + =IK0JFS/N,=IK0XFD/N,=IQ0AP/J,=IQ0CV/LH,=IQ0FM/LH,=IQ0FR/LH,=IQ0GV/AAW,=IR0BP/J,=IT9ELM/0, + =IT9PQJ/0,=IU0FSC/LH,=IW0HP/N,=IW9GSH/0,=IZ0BXZ/N,=IZ0DBA/N,=IZ0EGC/N,=IZ0EUX/I/AZ,=IZ0FVD/N, + =IZ0HTW/PS,=IZ0HTW/SP,=IZ0IAT/LH,=IZ0IJC/FF,=IZ0IJC/N,=IZ0XZD/RO, =I1MQ/N,=I1ULJ/N,=I1XSG/N,=I1YRL/GRA,=II1PV/LH,=IK1RED/N,=IK1VDN/N,=IP1T/LH,=IQ1L/LH,=IQ1NM/REX, =IQ1SP/N,=IU1LCI/EMG,=IY1SP/ASB,=IY1SP/MTN,=IZ0IJC/BSM,=IZ1CLA/N,=IZ1ESH/EMG,=IZ1FCF/N, =IZ1GDB/EMG,=IZ1POA/N,=IZ1RGI/ECO,=IZ5GST/1/LH, @@ -1172,43 +1174,43 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: WE0(4)[7],WF0(4)[7],WG0(4)[7],WI0(4)[7],WJ0(4)[7],WK0(4)[7],WM0(4)[7],WN0(4)[7],WO0(4)[7], WQ0(4)[7],WR0(4)[7],WS0(4)[7],WT0(4)[7],WU0(4)[7],WV0(4)[7],WW0(4)[7],WX0(4)[7],WY0(4)[7], WZ0(4)[7],=AH2BW(4)[7],=AH2BY(4)[7],=AH6ES/0(4)[7],=AH6FY(4)[7],=AH6MD(4)[7],=AH6N(4)[7], - =AH6N/0(4)[7],=AH6O(4)[7],=AH6OS(4)[7],=AH6PC(4)[7],=AH6RS(4)[7],=AL0G(4)[7],=AL3E(4)[7], - =AL3V(4)[7],=AL6E(4)[7],=AL7BX(4)[7],=AL7EK(4)[7],=AL7FU(4)[7],=AL7GQ(4)[7],=AL7NY(4)[7], - =AL7O/0(4)[7],=AL7OX(4)[7],=AL7QQ(4)[7],=AL7QQ/P(4)[7],=AL9DB(4)[7],=KH0EX(4)[7],=KH2CZ(4)[7], - =KH2FM(4)[7],=KH2JK(4)[7],=KH2OP(4)[7],=KH2OP/0(4)[7],=KH2SL(4)[7],=KH6DM(4)[7],=KH6HNL(4)[7], - =KH6HTV(4)[7],=KH6HTV/0(4)[7],=KH6JEM(4)[7],=KH6JFH(4)[7],=KH6NM(4)[7],=KH6NR(4)[7],=KH6OY(4)[7], - =KH6RON(4)[7],=KH6SB(4)[7],=KH6TL(4)[7],=KH6UC(4)[7],=KH6VHF(4)[7],=KH6VO(4)[7],=KH7AL/M(4)[7], - =KH7AL/P(4)[7],=KH7BU(4)[7],=KH7GF(4)[7],=KH7HA(4)[7],=KH7HY(4)[7],=KH7OX(4)[7],=KH7QI(4)[7], - =KH7QJ(4)[7],=KH7QT(4)[7],=KH8CW(4)[7],=KL0DW(4)[7],=KL0EQ(4)[7],=KL0FOX(4)[7],=KL0GP(4)[7], - =KL0GQ(4)[7],=KL0MW(4)[7],=KL0N(4)[7],=KL0SV(4)[7],=KL0UP(4)[7],=KL0VM(4)[7],=KL0WIZ(4)[7], - =KL0XM(4)[7],=KL0XN(4)[7],=KL1HT(4)[7],=KL1IF(4)[7],=KL1IF/M(4)[7],=KL1J(4)[7],=KL1LD(4)[7], - =KL1PV(4)[7],=KL1TU(4)[7],=KL1V/M(4)[7],=KL1VN(4)[7],=KL2A/0(4)[7],=KL2FU(4)[7],=KL2GR(4)[7], - =KL2NS(4)[7],=KL2QO(4)[7],=KL2SX(4)[7],=KL2YI(4)[7],=KL3LY(4)[7],=KL3MA(4)[7],=KL3MB(4)[7], - =KL3MC(4)[7],=KL3MW(4)[7],=KL3QS(4)[7],=KL3SM(4)[7],=KL3VN(4)[7],=KL4IY(4)[7],=KL4JN(4)[7], - =KL7DE(4)[7],=KL7DTJ(4)[7],=KL7DYS(4)[7],=KL7ED(4)[7],=KL7EP(4)[7],=KL7EP/0(4)[7],=KL7GKY/0(4)[7], - =KL7GLK(4)[7],=KL7GLK/0(4)[7],=KL7GLK/B(4)[7],=KL7HR(4)[7],=KL7IWT(4)[7],=KL7IXI(4)[7], - =KL7JGJ(4)[7],=KL7JIE(4)[7],=KL7JIM(4)[7],=KL7JR/0(4)[7],=KL7MH(4)[7],=KL7MP(4)[7],=KL7MV(4)[7], - =KL7NW(4)[7],=KL7PE/M(4)[7],=KL7QW(4)[7],=KL7QW/0(4)[7],=KL7RH(4)[7],=KL7RZ(4)[7],=KL7SB/0(4)[7], - =KL7SFD(4)[7],=KL7UV(4)[7],=KL7XH(4)[7],=KL7YL(4)[7],=KL7YY/0(4)[7],=KL7ZD(4)[7],=KL7ZT(4)[7], - =KP4ATV(4)[7],=KP4MLF(4)[7],=KP4XZ(4)[7],=NH2LH(4)[7],=NH6CF(4)[7],=NH6EU(4)[7],=NH6WF(4)[7], - =NH7CY(4)[7],=NH7FI(4)[7],=NH7XM(4)[7],=NH7ZH(4)[7],=NL7AS(4)[7],=NL7BU(4)[7],=NL7CO/M(4)[7], - =NL7CQ(4)[7],=NL7CQ/0(4)[7],=NL7FF(4)[7],=NL7FU(4)[7],=NL7XT(4)[7],=NL7XU(4)[7],=NP3XP(4)[7], - =NP4AI(4)[7],=NP4AI/0(4)[7],=VE4AGT/M(4)[7],=VE4XC/M(4)[7],=WH2S(4)[7],=WH2Z(4)[7],=WH6AKZ(4)[7], - =WH6ANH(4)[7],=WH6BLT(4)[7],=WH6BUL(4)[7],=WH6BXD(4)[7],=WH6CTU(4)[7],=WH6CUE(4)[7],=WH6CYM(4)[7], - =WH6CZI(4)[7],=WH6CZU(4)[7],=WH6DCJ(4)[7],=WH6DUV(4)[7],=WH6DXA(4)[7],=WH6EAA(4)[7],=WH6EAE(4)[7], - =WH6ENX(4)[7],=WH6FBM(4)[7],=WH6LR(4)[7],=WH6MS(4)[7],=WH6QS(4)[7],=WH7IR(4)[7],=WH7MZ(4)[7], - =WH7PV(4)[7],=WH9AAH(4)[7],=WL0JF(4)[7],=WL1ON(4)[7],=WL7AEC(4)[7],=WL7AJA(4)[7],=WL7ANY(4)[7], - =WL7ATK(4)[7],=WL7BRV(4)[7],=WL7BT(4)[7],=WL7CEG(4)[7],=WL7CLI(4)[7],=WL7CPW(4)[7],=WL7CQF(4)[7], - =WL7CRT(4)[7],=WL7CY(4)[7],=WL7J(4)[7],=WL7JB(4)[7],=WL7LZ(4)[7],=WL7LZ/M(4)[7],=WL7RV(4)[7], - =WL7S(4)[7],=WL7YM(4)[7],=WP2B/0(4)[7],=WP3QH(4)[7],=WP4BTQ(4)[7],=WP4GQR(4)[7],=WP4LC(4)[7], - =WP4NPV(4)[7], + =AH6N/0(4)[7],=AH6O(4)[7],=AH6OS(4)[7],=AH6PC(4)[7],=AH6RS(4)[7],=AL0G(4)[7],=AL2AK(4)[7], + =AL3E(4)[7],=AL3V(4)[7],=AL6E(4)[7],=AL7BX(4)[7],=AL7EK(4)[7],=AL7FU(4)[7],=AL7GQ(4)[7], + =AL7NY(4)[7],=AL7O/0(4)[7],=AL7OX(4)[7],=AL7QQ(4)[7],=AL7QQ/P(4)[7],=AL9DB(4)[7],=KH0EX(4)[7], + =KH2CZ(4)[7],=KH2FM(4)[7],=KH2JK(4)[7],=KH2OP(4)[7],=KH2OP/0(4)[7],=KH2SL(4)[7],=KH6DM(4)[7], + =KH6HNL(4)[7],=KH6HTV(4)[7],=KH6HTV/0(4)[7],=KH6JEM(4)[7],=KH6JFH(4)[7],=KH6NM(4)[7],=KH6NR(4)[7], + =KH6OY(4)[7],=KH6RON(4)[7],=KH6SB(4)[7],=KH6TL(4)[7],=KH6UC(4)[7],=KH6VHF(4)[7],=KH6VO(4)[7], + =KH7AL/M(4)[7],=KH7AL/P(4)[7],=KH7BU(4)[7],=KH7GF(4)[7],=KH7HA(4)[7],=KH7HY(4)[7],=KH7OX(4)[7], + =KH7QI(4)[7],=KH7QJ(4)[7],=KH7QT(4)[7],=KH8CW(4)[7],=KL0DW(4)[7],=KL0EQ(4)[7],=KL0FOX(4)[7], + =KL0GP(4)[7],=KL0GQ(4)[7],=KL0MW(4)[7],=KL0N(4)[7],=KL0SV(4)[7],=KL0UP(4)[7],=KL0VM(4)[7], + =KL0WIZ(4)[7],=KL0XM(4)[7],=KL0XN(4)[7],=KL1HT(4)[7],=KL1IF(4)[7],=KL1IF/M(4)[7],=KL1J(4)[7], + =KL1LD(4)[7],=KL1PV(4)[7],=KL1TU(4)[7],=KL1V/M(4)[7],=KL1VN(4)[7],=KL2A/0(4)[7],=KL2BG(4)[7], + =KL2FU(4)[7],=KL2GR(4)[7],=KL2NS(4)[7],=KL2QO(4)[7],=KL2SX(4)[7],=KL2YI(4)[7],=KL3LY(4)[7], + =KL3MA(4)[7],=KL3MB(4)[7],=KL3MC(4)[7],=KL3MW(4)[7],=KL3QS(4)[7],=KL3SM(4)[7],=KL3VN(4)[7], + =KL4IY(4)[7],=KL4JN(4)[7],=KL7DTJ(4)[7],=KL7DYS(4)[7],=KL7ED(4)[7],=KL7EP(4)[7],=KL7EP/0(4)[7], + =KL7GKY/0(4)[7],=KL7GLK(4)[7],=KL7GLK/0(4)[7],=KL7GLK/B(4)[7],=KL7HR(4)[7],=KL7IWT(4)[7], + =KL7IXI(4)[7],=KL7JGJ(4)[7],=KL7JIE(4)[7],=KL7JIM(4)[7],=KL7JR/0(4)[7],=KL7MH(4)[7],=KL7MP(4)[7], + =KL7MV(4)[7],=KL7NW(4)[7],=KL7PE/M(4)[7],=KL7QW(4)[7],=KL7QW/0(4)[7],=KL7RH(4)[7],=KL7RZ(4)[7], + =KL7SB/0(4)[7],=KL7SFD(4)[7],=KL7UV(4)[7],=KL7XH(4)[7],=KL7YL(4)[7],=KL7YY/0(4)[7],=KL7ZD(4)[7], + =KL7ZT(4)[7],=KP4ATV(4)[7],=KP4MLF(4)[7],=KP4XZ(4)[7],=NH2LH(4)[7],=NH6CF(4)[7],=NH6EU(4)[7], + =NH6WF(4)[7],=NH7CY(4)[7],=NH7FI(4)[7],=NH7XM(4)[7],=NH7ZH(4)[7],=NL7AS(4)[7],=NL7BU(4)[7], + =NL7CO/M(4)[7],=NL7CQ(4)[7],=NL7CQ/0(4)[7],=NL7FF(4)[7],=NL7FU(4)[7],=NL7XT(4)[7],=NL7XU(4)[7], + =NP3XP(4)[7],=NP4AI(4)[7],=NP4AI/0(4)[7],=VE4AGT/M(4)[7],=VE4XC/M(4)[7],=WH2S(4)[7],=WH2Z(4)[7], + =WH6AKZ(4)[7],=WH6ANH(4)[7],=WH6BLT(4)[7],=WH6BUL(4)[7],=WH6BXD(4)[7],=WH6CTU(4)[7],=WH6CUE(4)[7], + =WH6CYM(4)[7],=WH6CZI(4)[7],=WH6CZU(4)[7],=WH6DCJ(4)[7],=WH6DUV(4)[7],=WH6DXA(4)[7],=WH6EAA(4)[7], + =WH6EAE(4)[7],=WH6ENX(4)[7],=WH6FBM(4)[7],=WH6LR(4)[7],=WH6MS(4)[7],=WH6QS(4)[7],=WH7IR(4)[7], + =WH7MZ(4)[7],=WH7PV(4)[7],=WH9AAH(4)[7],=WL0JF(4)[7],=WL1ON(4)[7],=WL7AEC(4)[7],=WL7AJA(4)[7], + =WL7ANY(4)[7],=WL7ATK(4)[7],=WL7BRV(4)[7],=WL7BT(4)[7],=WL7CEG(4)[7],=WL7CLI(4)[7],=WL7CPW(4)[7], + =WL7CQF(4)[7],=WL7CRT(4)[7],=WL7CY(4)[7],=WL7J(4)[7],=WL7JB(4)[7],=WL7LZ(4)[7],=WL7LZ/M(4)[7], + =WL7RV(4)[7],=WL7S(4)[7],=WL7YM(4)[7],=WP2B/0(4)[7],=WP3QH(4)[7],=WP4BTQ(4)[7],=WP4GQR(4)[7], + =WP4LC(4)[7],=WP4NPV(4)[7], =AH2V(5)[8],=AH2W(5)[8],=AH6BV(5)[8],=AL0A(5)[8],=AL1K(5)[8],=AL1O(5)[8],=AL4V(5)[8],=AL6L(5)[8], =AL6M(5)[8],=AL7EL(5)[8],=AL7GD(5)[8],=AL7LV(5)[8],=AL7QS(5)[8],=AL8E(5)[8],=KH2AB(5)[8], =KH2BA(5)[8],=KH2EH(5)[8],=KH6GR(5)[8],=KH6HZ(5)[8],=KH6IKI(5)[8],=KH6JKQ(5)[8],=KH6JUK(5)[8], =KH6RF(5)[8],=KH6RF/1(5)[8],=KH6RF/M(5)[8],=KH7CD(5)[8],=KH7CD/1(5)[8],=KH7PL(5)[8],=KH8AC(5)[8], =KH8AC/1(5)[8],=KL1OC(5)[8],=KL1T(5)[8],=KL1WD(5)[8],=KL2A/1(5)[8],=KL2DM(5)[8],=KL2GA(5)[8], =KL2IC(5)[8],=KL2KL(5)[8],=KL2MU(5)[8],=KL3UX(5)[8],=KL3VA(5)[8],=KL4XK(5)[8],=KL7CE/1(5)[8], - =KL7IOP(5)[8],=KL7IXX(5)[8],=KL7JHM(5)[8],=KL7JJN(5)[8],=KL7JR/1(5)[8],=KL7JT(5)[8],=KL7LK(5)[8], + =KL7IOP(5)[8],=KL7IXX(5)[8],=KL7JHM(5)[8],=KL7JJN(5)[8],=KL7JR/1(5)[8],=KL7JT(5)[8], =KL7USI/1(5)[8],=KL8DX(5)[8],=KP4AMC(5)[8],=KP4ANG(5)[8],=KP4BLS(5)[8],=KP4BPR(5)[8], =KP4DGF(5)[8],=KP4EC/1(5)[8],=KP4G(5)[8],=KP4GVT(5)[8],=KP4JLD(5)[8],=KP4KWB(5)[8],=KP4MHG(5)[8], =KP4MR(5)[8],=KP4NBI(5)[8],=KP4NPL(5)[8],=KP4NW(5)[8],=KP4R(5)[8],=KP4RCD(5)[8],=KP4ZEM(5)[8], @@ -1224,40 +1226,41 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =WP4MOC(5)[8],=WP4NKW(5)[8],=WP4NUV(5)[8],=WP4NYT(5)[8],=WP4NYY(5)[8],=WP4OFO(5)[8],=WP4OIG(5)[8], =WP4OJK(5)[8],=WP4RQ(5)[8], =AH0BR(5)[8],=AH2AL(5)[8],=AH2CG(5)[8],=AH2O(5)[8],=AH6K(5)[8],=AL0Q(5)[8],=AL0Y(5)[8], - =AL2O(5)[8],=AL7RG(5)[8],=KH2CW(5)[8],=KH2P(5)[8],=KH2R(5)[8],=KH4AG(5)[8],=KH6ALN(5)[8], - =KH6HFO(5)[8],=KH6HO(5)[8],=KH7GA(5)[8],=KH7JO(5)[8],=KH7JO/2(5)[8],=KH7MX(5)[8],=KH7NE(5)[8], - =KH8ZK(5)[8],=KL0TV(5)[8],=KL0VD(5)[8],=KL0VE(5)[8],=KL0WV(5)[8],=KL1A/2(5)[8],=KL1LA(5)[8], - =KL2A/2(5)[8],=KL2NP(5)[8],=KL2TP(5)[8],=KL3ET(5)[8],=KL3ZC(5)[8],=KL4T(5)[8],=KL7DL(5)[8], - =KL7GB(5)[8],=KL7JCQ(5)[8],=KL7NL/2(5)[8],=KL7TJZ(5)[8],=KL7USI/2(5)[8],=KL7WA(5)[8],=KL9ER(5)[8], - =KP2NP(5)[8],=KP3AK(5)[8],=KP3LM(5)[8],=KP3Y(5)[8],=KP4AK(5)[8],=KP4CML(5)[8],=KP4GEG(5)[8], - =KP4HR(5)[8],=KP4I(5)[8],=KP4JDR(5)[8],=KP4JMP(5)[8],=NH2DC(5)[8],=NH7NA(5)[8],=NH7TN(5)[8], - =NL7CC(5)[8],=NL7JY(5)[8],=NP2AQ(5)[8],=NP2GI(5)[8],=NP3D(5)[8],=NP3E(5)[8],=NP3EU(5)[8], - =NP3I(5)[8],=NP3KH(5)[8],=NP3KP(5)[8],=NP4H(5)[8],=NP4IR(5)[8],=NP4IT(5)[8],=NP4JQ(5)[8], - =WH0W(5)[8],=WH2C(5)[8],=WH6DLD(5)[8],=WH6DNT(5)[8],=WH6EHT(5)[8],=WH6FRH(5)[8],=WH6UO(5)[8], - =WH7ZS(5)[8],=WL2NAS(5)[8],=WL7OG(5)[8],=WP2AAO(5)[8],=WP3FU(5)[8],=WP3MD(5)[8],=WP3VU(5)[8], - =WP3WZ(5)[8],=WP4BMU(5)[8],=WP4BNI(5)[8],=WP4BZ(5)[8],=WP4CB(5)[8],=WP4DME(5)[8],=WP4DWH(5)[8], - =WP4EHY(5)[8],=WP4EYW(5)[8],=WP4HLY(5)[8],=WP4HXS(5)[8],=WP4KXX(5)[8],=WP4LFO(5)[8],=WP4LYI(5)[8], - =WP4MQN(5)[8],=WP4MRB(5)[8],=WP4MUJ(5)[8],=WP4MYM(5)[8],=WP4MZO(5)[8],=WP4NBS(5)[8],=WP4NZF(5)[8], - =WP4OCO(5)[8],=WP4OPY(5)[8],=WP4PZB(5)[8],=WP4R(5)[8],=XL3TUV/M(5)[8],=XM3CMB/M(5)[8], + =AL2O(5)[8],=AL7RG(5)[8],=AL7RK(5)[8],=KH2CW(5)[8],=KH2P(5)[8],=KH2R(5)[8],=KH4AG(5)[8], + =KH6ALN(5)[8],=KH6HFO(5)[8],=KH6HO(5)[8],=KH7GA(5)[8],=KH7JO(5)[8],=KH7JO/2(5)[8],=KH7MX(5)[8], + =KH7NE(5)[8],=KH8ZK(5)[8],=KL0TV(5)[8],=KL0VD(5)[8],=KL0VE(5)[8],=KL0WV(5)[8],=KL1A/2(5)[8], + =KL1LA(5)[8],=KL2A/2(5)[8],=KL2NP(5)[8],=KL2TP(5)[8],=KL3ET(5)[8],=KL3ZC(5)[8],=KL4T(5)[8], + =KL7DL(5)[8],=KL7GB(5)[8],=KL7JCQ(5)[8],=KL7NL/2(5)[8],=KL7TJZ(5)[8],=KL7USI/2(5)[8],=KL7WA(5)[8], + =KL9ER(5)[8],=KP2NP(5)[8],=KP3AK(5)[8],=KP3LM(5)[8],=KP3Y(5)[8],=KP4AK(5)[8],=KP4CML(5)[8], + =KP4GEG(5)[8],=KP4HR(5)[8],=KP4I(5)[8],=KP4JDR(5)[8],=KP4JMP(5)[8],=NH2DC(5)[8],=NH7NA(5)[8], + =NH7TN(5)[8],=NL7CC(5)[8],=NL7JY(5)[8],=NP2AQ(5)[8],=NP2GI(5)[8],=NP3D(5)[8],=NP3E(5)[8], + =NP3EU(5)[8],=NP3I(5)[8],=NP3KH(5)[8],=NP3KP(5)[8],=NP4H(5)[8],=NP4IR(5)[8],=NP4IT(5)[8], + =NP4JQ(5)[8],=WH0W(5)[8],=WH2C(5)[8],=WH6DLD(5)[8],=WH6DNT(5)[8],=WH6EHT(5)[8],=WH6FRH(5)[8], + =WH6UO(5)[8],=WH7ZS(5)[8],=WL2NAS(5)[8],=WL7OG(5)[8],=WP2AAO(5)[8],=WP3FU(5)[8],=WP3MD(5)[8], + =WP3VU(5)[8],=WP3WZ(5)[8],=WP4BMU(5)[8],=WP4BNI(5)[8],=WP4BZ(5)[8],=WP4CB(5)[8],=WP4DME(5)[8], + =WP4DWH(5)[8],=WP4EHY(5)[8],=WP4EYW(5)[8],=WP4HLY(5)[8],=WP4HXS(5)[8],=WP4KXX(5)[8],=WP4LFO(5)[8], + =WP4LYI(5)[8],=WP4MQN(5)[8],=WP4MRB(5)[8],=WP4MUJ(5)[8],=WP4MYM(5)[8],=WP4MZO(5)[8],=WP4NBS(5)[8], + =WP4NZF(5)[8],=WP4OCO(5)[8],=WP4OPY(5)[8],=WP4PZB(5)[8],=WP4R(5)[8],=XL3TUV/M(5)[8], + =XM3CMB/M(5)[8], =4U1WB(5)[8],=AH6AX(5)[8],=AH6FF/3(5)[8],=AH6R(5)[8],=AH6Z(5)[8],=AH7J(5)[8],=AH8P(5)[8], =AL1B(5)[8],=AL1B/M(5)[8],=AL2G(5)[8],=AL7AB(5)[8],=AL7NN(5)[8],=AL7NN/3(5)[8],=AL7RS(5)[8], =KH2EI(5)[8],=KH2GM(5)[8],=KH2JX(5)[8],=KH2SX(5)[8],=KH6CUJ(5)[8],=KH6GRG(5)[8],=KH6ILR/3(5)[8], - =KH6JGA(5)[8],=KH6LDO(5)[8],=KH6PX(5)[8],=KH8CN(5)[8],=KL1HA(5)[8],=KL1KM(5)[8],=KL2A(5)[8], - =KL2A/3(5)[8],=KL2BV(5)[8],=KL2UR(5)[8],=KL2XF(5)[8],=KL7FD(5)[8],=KL7GLK/3(5)[8],=KL7HR/3(5)[8], - =KL7JO(5)[8],=KL7OF/3(5)[8],=KL7OQ(5)[8],=KL9A/3(5)[8],=KP3M(5)[8],=KP3N(5)[8],=KP4BEP(5)[8], - =KP4CAM(5)[8],=KP4FCF(5)[8],=KP4GB/3(5)[8],=KP4IP(5)[8],=KP4JB(5)[8],=KP4N(5)[8],=KP4N/3(5)[8], - =KP4PRI(5)[8],=KP4UV(5)[8],=KP4WR(5)[8],=KP4XO(5)[8],=KP4XX(5)[8],=KP4YH(5)[8],=NH2CW(5)[8], - =NH2LA(5)[8],=NH6BD(5)[8],=NH6BK(5)[8],=NH7C(5)[8],=NH7CC(5)[8],=NH7TV(5)[8],=NH7YK(5)[8], - =NL7CK(5)[8],=NL7PJ(5)[8],=NL7V/3(5)[8],=NL7WA(5)[8],=NL7XM(5)[8],=NL7XM/B(5)[8],=NP2EP(5)[8], - =NP2G(5)[8],=NP2NC(5)[8],=NP3ES(5)[8],=NP3IP(5)[8],=NP3YN(5)[8],=NP4RH(5)[8],=NP4YZ(5)[8], - =WH6ADS(5)[8],=WH6AWO(5)[8],=WH6AZN(5)[8],=WH6CE(5)[8],=WH6CTO(5)[8],=WH6DOA(5)[8],=WH6ECO(5)[8], - =WH6EEL(5)[8],=WH6EEN(5)[8],=WH6EIJ(5)[8],=WH6FPS(5)[8],=WH6GEU(5)[8],=WH6IO(5)[8],=WH6OB(5)[8], - =WH6RN(5)[8],=WH7F(5)[8],=WH7USA(5)[8],=WL7AF(5)[8],=WL7L(5)[8],=WP2XX(5)[8],=WP3BX(5)[8], - =WP3CC(5)[8],=WP3EC(5)[8],=WP3FK(5)[8],=WP4DA(5)[8],=WP4DCK(5)[8],=WP4EDM(5)[8],=WP4GJL(5)[8], - =WP4HRK(5)[8],=WP4HSZ(5)[8],=WP4KDN(5)[8],=WP4KKX(5)[8],=WP4KTU(5)[8],=WP4LEM(5)[8],=WP4LNP(5)[8], - =WP4MNV(5)[8],=WP4MSX(5)[8],=WP4MYN(5)[8],=WP4NXG(5)[8],=WP4OSQ(5)[8],=WP4PPH(5)[8],=WP4PQN(5)[8], - =WP4PUR(5)[8],=WP4PYL(5)[8],=WP4PYM(5)[8],=WP4PYT(5)[8],=WP4PYU(5)[8],=WP4PYV(5)[8],=WP4PYZ(5)[8], - =WP4PZA(5)[8], + =KH6JGA(5)[8],=KH6LDO(5)[8],=KH6PX(5)[8],=KH6RE(5)[8],=KH8CN(5)[8],=KL1HA(5)[8],=KL1KM(5)[8], + =KL2A(5)[8],=KL2A/3(5)[8],=KL2BV(5)[8],=KL2UR(5)[8],=KL2XF(5)[8],=KL7FD(5)[8],=KL7GLK/3(5)[8], + =KL7HR/3(5)[8],=KL7JO(5)[8],=KL7OF/3(5)[8],=KL7OQ(5)[8],=KL9A/3(5)[8],=KP3M(5)[8],=KP3N(5)[8], + =KP4BEP(5)[8],=KP4CAM(5)[8],=KP4FCF(5)[8],=KP4GB/3(5)[8],=KP4IP(5)[8],=KP4JB(5)[8],=KP4N(5)[8], + =KP4N/3(5)[8],=KP4PRI(5)[8],=KP4UV(5)[8],=KP4VW(5)[8],=KP4WR(5)[8],=KP4XO(5)[8],=KP4XX(5)[8], + =KP4YH(5)[8],=NH2CW(5)[8],=NH2LA(5)[8],=NH6BD(5)[8],=NH6BK(5)[8],=NH7C(5)[8],=NH7CC(5)[8], + =NH7TV(5)[8],=NH7YK(5)[8],=NL7CK(5)[8],=NL7PJ(5)[8],=NL7V/3(5)[8],=NL7WA(5)[8],=NL7XM(5)[8], + =NL7XM/B(5)[8],=NP2EP(5)[8],=NP2G(5)[8],=NP2NC(5)[8],=NP3ES(5)[8],=NP3IP(5)[8],=NP3YN(5)[8], + =NP4RH(5)[8],=NP4YZ(5)[8],=WH6ADS(5)[8],=WH6AWO(5)[8],=WH6AZN(5)[8],=WH6CE(5)[8],=WH6CTO(5)[8], + =WH6DOA(5)[8],=WH6ECO(5)[8],=WH6EEL(5)[8],=WH6EEN(5)[8],=WH6EIJ(5)[8],=WH6FPS(5)[8],=WH6GEU(5)[8], + =WH6IO(5)[8],=WH6OB(5)[8],=WH6RN(5)[8],=WH7F(5)[8],=WH7USA(5)[8],=WL7AF(5)[8],=WL7L(5)[8], + =WP2XX(5)[8],=WP3BX(5)[8],=WP3CC(5)[8],=WP3EC(5)[8],=WP3FK(5)[8],=WP4DA(5)[8],=WP4DCK(5)[8], + =WP4EDM(5)[8],=WP4GJL(5)[8],=WP4HRK(5)[8],=WP4HSZ(5)[8],=WP4IYE(5)[8],=WP4KDN(5)[8],=WP4KKX(5)[8], + =WP4KTU(5)[8],=WP4LEM(5)[8],=WP4LNP(5)[8],=WP4MNV(5)[8],=WP4MSX(5)[8],=WP4MYN(5)[8],=WP4NXG(5)[8], + =WP4OSQ(5)[8],=WP4PPH(5)[8],=WP4PQN(5)[8],=WP4PUR(5)[8],=WP4PYL(5)[8],=WP4PYM(5)[8],=WP4PYT(5)[8], + =WP4PYU(5)[8],=WP4PYV(5)[8],=WP4PYZ(5)[8],=WP4PZA(5)[8], =AH0BV(5)[8],=AH0BZ(5)[8],=AH0G(5)[8],=AH2AJ(5)[8],=AH2AM(5)[8],=AH2AV/4(5)[8],=AH2DF(5)[8], =AH2EB(5)[8],=AH2X(5)[8],=AH3B(5)[8],=AH6AL(5)[8],=AH6AT(5)[8],=AH6AU(5)[8],=AH6BJ(5)[8], =AH6C(5)[8],=AH6EZ/4(5)[8],=AH6FX(5)[8],=AH6FX/4(5)[8],=AH6IC(5)[8],=AH6IJ(5)[8],=AH6IW(5)[8], @@ -1273,90 +1276,91 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =KH2PM(5)[8],=KH2RL(5)[8],=KH2TI(5)[8],=KH2UG(5)[8],=KH2UV(5)[8],=KH2UZ(5)[8],=KH2VM(5)[8], =KH3AC(5)[8],=KH3AG(5)[8],=KH6AE(5)[8],=KH6AME(5)[8],=KH6CG(5)[8],=KH6CG/4(5)[8],=KH6CT(5)[8], =KH6ED(5)[8],=KH6HHS(5)[8],=KH6HHS/4(5)[8],=KH6HOW(5)[8],=KH6ILR(5)[8],=KH6ILR/4(5)[8], - =KH6ITI(5)[8],=KH6JAU(5)[8],=KH6JIM(5)[8],=KH6JJD(5)[8],=KH6JNW(5)[8],=KH6JUA(5)[8],=KH6KZ(5)[8], - =KH6M(5)[8],=KH6M/4(5)[8],=KH6M/M(5)[8],=KH6MT(5)[8],=KH6MT/4(5)[8],=KH6NC(5)[8],=KH6NI(5)[8], - =KH6OU(5)[8],=KH6POI(5)[8],=KH6PU(5)[8],=KH6RP(5)[8],=KH6TY(5)[8],=KH6TY/R(5)[8],=KH6UN(5)[8], - =KH6WE(5)[8],=KH6XH(5)[8],=KH7DA(5)[8],=KH7DM(5)[8],=KH7DY(5)[8],=KH7FC(5)[8],=KH7FU(5)[8], - =KH7GM(5)[8],=KH7GZ(5)[8],=KH7HJ/4(5)[8],=KH7OC(5)[8],=KH7OV(5)[8],=KH7WK(5)[8],=KH7WU(5)[8], - =KH7XS/4(5)[8],=KH7XT(5)[8],=KH7ZC(5)[8],=KH8DO(5)[8],=KH8U(5)[8],=KL0AG(5)[8],=KL0BG(5)[8], - =KL0IP(5)[8],=KL0KC(5)[8],=KL0KE/4(5)[8],=KL0L(5)[8],=KL0MG(5)[8],=KL0MP(5)[8],=KL0S(5)[8], - =KL0SS(5)[8],=KL0ST(5)[8],=KL0TY(5)[8],=KL0UA(5)[8],=KL0UD(5)[8],=KL0VU(5)[8],=KL0WF(5)[8], - =KL1KP(5)[8],=KL1NK(5)[8],=KL1NS(5)[8],=KL1OK(5)[8],=KL1PA(5)[8],=KL1SS(5)[8],=KL2AK(5)[8], - =KL2CX(5)[8],=KL2EY(5)[8],=KL2GG(5)[8],=KL2GP(5)[8],=KL2HV(5)[8],=KL2MQ(5)[8],=KL2NN(5)[8], - =KL2UM(5)[8],=KL2UQ(5)[8],=KL2XI(5)[8],=KL3BG(5)[8],=KL3EV(5)[8],=KL3HG(5)[8],=KL3IA(5)[8], - =KL3KB(5)[8],=KL3KG(5)[8],=KL3NR(5)[8],=KL3WM(5)[8],=KL3X(5)[8],=KL3XB(5)[8],=KL4CO(5)[8], - =KL4DD(5)[8],=KL4H(5)[8],=KL4J(5)[8],=KL5X(5)[8],=KL5YJ(5)[8],=KL7A(5)[8],=KL7AF(5)[8], - =KL7DA(5)[8],=KL7DA/4(5)[8],=KL7FO(5)[8],=KL7GLL(5)[8],=KL7H(5)[8],=KL7HIM(5)[8],=KL7HNY(5)[8], - =KL7HOT(5)[8],=KL7HQW(5)[8],=KL7HV(5)[8],=KL7HX(5)[8],=KL7I(5)[8],=KL7IEK(5)[8],=KL7IKZ(5)[8], - =KL7IV(5)[8],=KL7IVY(5)[8],=KL7IWF(5)[8],=KL7JDS(5)[8],=KL7JR(5)[8],=KL7LS(5)[8],=KL7MJ(5)[8], - =KL7NCO(5)[8],=KL7NL(5)[8],=KL7NL/4(5)[8],=KL7NT(5)[8],=KL7OO(5)[8],=KL7P/4(5)[8],=KL7PS(5)[8], - =KL7QH(5)[8],=KL7QU(5)[8],=KL7SR(5)[8],=KL7TZ(5)[8],=KL7USI/4(5)[8],=KL7XA(5)[8],=KL9A/1(5)[8], - =KP2AF(5)[8],=KP2AV(5)[8],=KP2AV/4(5)[8],=KP2CH(5)[8],=KP2CR(5)[8],=KP2L(5)[8],=KP2L/4(5)[8], - =KP2N(5)[8],=KP2R(5)[8],=KP2U(5)[8],=KP2US(5)[8],=KP2V(5)[8],=KP3AMG(5)[8],=KP3BL(5)[8], - =KP3BP(5)[8],=KP3SK(5)[8],=KP3U(5)[8],=KP4AD(5)[8],=KP4AOD(5)[8],=KP4AOD/4(5)[8],=KP4AYI(5)[8], - =KP4BBN(5)[8],=KP4BEC(5)[8],=KP4BM(5)[8],=KP4BOB(5)[8],=KP4CBP(5)[8],=KP4CEL(5)[8],=KP4CH(5)[8], - =KP4CPP(5)[8],=KP4CSJ(5)[8],=KP4CSZ(5)[8],=KP4CW(5)[8],=KP4CZ(5)[8],=KP4DAC(5)[8],=KP4DDS(5)[8], - =KP4DPQ(5)[8],=KP4DQS(5)[8],=KP4EDL(5)[8],=KP4EF(5)[8],=KP4EIA(5)[8],=KP4EMY(5)[8],=KP4ENK(5)[8], + =KH6ITI(5)[8],=KH6JAU(5)[8],=KH6JJD(5)[8],=KH6JNW(5)[8],=KH6JUA(5)[8],=KH6KZ(5)[8],=KH6M(5)[8], + =KH6M/4(5)[8],=KH6M/M(5)[8],=KH6MT(5)[8],=KH6MT/4(5)[8],=KH6NC(5)[8],=KH6NI(5)[8],=KH6OU(5)[8], + =KH6POI(5)[8],=KH6PU(5)[8],=KH6RP(5)[8],=KH6TY(5)[8],=KH6TY/R(5)[8],=KH6UN(5)[8],=KH6WE(5)[8], + =KH6XH(5)[8],=KH7DA(5)[8],=KH7DM(5)[8],=KH7DY(5)[8],=KH7FC(5)[8],=KH7FU(5)[8],=KH7GM(5)[8], + =KH7GZ(5)[8],=KH7HJ/4(5)[8],=KH7OC(5)[8],=KH7OV(5)[8],=KH7WK(5)[8],=KH7WU(5)[8],=KH7XS/4(5)[8], + =KH7XT(5)[8],=KH7ZC(5)[8],=KH8DO(5)[8],=KH8U(5)[8],=KL0AG(5)[8],=KL0BG(5)[8],=KL0IP(5)[8], + =KL0KC(5)[8],=KL0KE/4(5)[8],=KL0L(5)[8],=KL0MG(5)[8],=KL0MP(5)[8],=KL0S(5)[8],=KL0SS(5)[8], + =KL0ST(5)[8],=KL0TY(5)[8],=KL0UA(5)[8],=KL0UD(5)[8],=KL0VU(5)[8],=KL0WF(5)[8],=KL1KP(5)[8], + =KL1NK(5)[8],=KL1NS(5)[8],=KL1OK(5)[8],=KL1PA(5)[8],=KL1SS(5)[8],=KL2AK(5)[8],=KL2CX(5)[8], + =KL2EY(5)[8],=KL2GG(5)[8],=KL2GP(5)[8],=KL2HV(5)[8],=KL2MQ(5)[8],=KL2NN(5)[8],=KL2UM(5)[8], + =KL2UQ(5)[8],=KL2XI(5)[8],=KL3BG(5)[8],=KL3EV(5)[8],=KL3HG(5)[8],=KL3IA(5)[8],=KL3KB(5)[8], + =KL3KG(5)[8],=KL3NR(5)[8],=KL3WM(5)[8],=KL3X(5)[8],=KL3XB(5)[8],=KL4CO(5)[8],=KL4DD(5)[8], + =KL4H(5)[8],=KL4J(5)[8],=KL5X(5)[8],=KL5YJ(5)[8],=KL7A(5)[8],=KL7AF(5)[8],=KL7DA(5)[8], + =KL7DA/4(5)[8],=KL7FO(5)[8],=KL7GLL(5)[8],=KL7H(5)[8],=KL7HIM(5)[8],=KL7HNY(5)[8],=KL7HOT(5)[8], + =KL7HQW(5)[8],=KL7HV(5)[8],=KL7HX(5)[8],=KL7I(5)[8],=KL7IEK(5)[8],=KL7IKZ(5)[8],=KL7IV(5)[8], + =KL7IVY(5)[8],=KL7IWF(5)[8],=KL7JDS(5)[8],=KL7JR(5)[8],=KL7LS(5)[8],=KL7MJ(5)[8],=KL7NCO(5)[8], + =KL7NL(5)[8],=KL7NL/4(5)[8],=KL7NT(5)[8],=KL7OO(5)[8],=KL7P/4(5)[8],=KL7PS(5)[8],=KL7QH(5)[8], + =KL7QU(5)[8],=KL7SR(5)[8],=KL7TZ(5)[8],=KL7USI/4(5)[8],=KL7XA(5)[8],=KL9A/1(5)[8],=KP2AF(5)[8], + =KP2AV(5)[8],=KP2AV/4(5)[8],=KP2CH(5)[8],=KP2CR(5)[8],=KP2L(5)[8],=KP2L/4(5)[8],=KP2N(5)[8], + =KP2R(5)[8],=KP2U(5)[8],=KP2US(5)[8],=KP2V(5)[8],=KP3AMG(5)[8],=KP3BL(5)[8],=KP3BP(5)[8], + =KP3SK(5)[8],=KP3U(5)[8],=KP4AD(5)[8],=KP4AOD(5)[8],=KP4AOD/4(5)[8],=KP4AYI(5)[8],=KP4BBN(5)[8], + =KP4BEC(5)[8],=KP4BM(5)[8],=KP4BOB(5)[8],=KP4CBP(5)[8],=KP4CEL(5)[8],=KP4CH(5)[8],=KP4CPP(5)[8], + =KP4CSJ(5)[8],=KP4CSZ(5)[8],=KP4CW(5)[8],=KP4CZ(5)[8],=KP4DAC(5)[8],=KP4DDS(5)[8],=KP4DPQ(5)[8], + =KP4DQS(5)[8],=KP4EDL(5)[8],=KP4EF(5)[8],=KP4EH(5)[8],=KP4EIA(5)[8],=KP4EMY(5)[8],=KP4ENK(5)[8], =KP4EOR(5)[8],=KP4EOR/4(5)[8],=KP4ERT(5)[8],=KP4ESC(5)[8],=KP4FBS(5)[8],=KP4FGI(5)[8], - =KP4FIR(5)[8],=KP4FJE(5)[8],=KP4FLP(5)[8],=KP4FOF(5)[8],=KP4HE(5)[8],=KP4HN(5)[8],=KP4II(5)[8], - =KP4IRI(5)[8],=KP4IT(5)[8],=KP4JC(5)[8],=KP4JCC(5)[8],=KP4JOS(5)[8],=KP4JWR(5)[8],=KP4KA(5)[8], - =KP4KD(5)[8],=KP4KD/4(5)[8],=KP4KE/4(5)[8],=KP4KF(5)[8],=KP4LEU(5)[8],=KP4LF(5)[8],=KP4LMD(5)[8], - =KP4LQ(5)[8],=KP4LUV(5)[8],=KP4LX(5)[8],=KP4MA(5)[8],=KP4MHC(5)[8],=KP4MPR(5)[8],=KP4MSP(5)[8], - =KP4NI(5)[8],=KP4OO(5)[8],=KP4PC(5)[8],=KP4PEC(5)[8],=KP4PF(5)[8],=KP4PM(5)[8],=KP4PMD(5)[8], - =KP4Q(5)[8],=KP4QT(5)[8],=KP4QT/4(5)[8],=KP4REY(5)[8],=KP4RGD(5)[8],=KP4RGT(5)[8],=KP4ROP(5)[8], - =KP4RRC(5)[8],=KP4RT(5)[8],=KP4RZ(5)[8],=KP4SU(5)[8],=KP4SWR(5)[8],=KP4TL(5)[8],=KP4TR(5)[8], - =KP4UFO(5)[8],=KP4USA(5)[8],=KP4WK(5)[8],=KP4WW(5)[8],=KP4WY(5)[8],=KP4XP(5)[8],=KP4Y(5)[8], - =KP4YLV(5)[8],=KP4ZV(5)[8],=KP4ZX(5)[8],=NH2A(5)[8],=NH2BQ(5)[8],=NH2DB(5)[8],=NH2F(5)[8], - =NH2GY(5)[8],=NH6AU(5)[8],=NH6AX(5)[8],=NH6BD/4(5)[8],=NH6E(5)[8],=NH6GE(5)[8],=NH6GR(5)[8], - =NH6HX(5)[8],=NH6HX/4(5)[8],=NH6JX(5)[8],=NH6KI(5)[8],=NH6QR(5)[8],=NH6SR(5)[8],=NH6T(5)[8], - =NH6TL(5)[8],=NH7AA(5)[8],=NH7AQ(5)[8],=NH7AR(5)[8],=NH7FG(5)[8],=NH7FV(5)[8],=NH7OI(5)[8], - =NH7T/4(5)[8],=NH7UN(5)[8],=NH7XN(5)[8],=NH7YL(5)[8],=NL7AJ(5)[8],=NL7AU(5)[8],=NL7AU/4(5)[8], - =NL7BV(5)[8],=NL7KL(5)[8],=NL7KX(5)[8],=NL7LO(5)[8],=NL7LR(5)[8],=NL7LY(5)[8],=NL7MD(5)[8], - =NL7MR(5)[8],=NL7OB(5)[8],=NL7OS(5)[8],=NL7P(5)[8],=NL7PV(5)[8],=NL7U(5)[8],=NL7VV(5)[8], - =NL7VX(5)[8],=NL7VX/4(5)[8],=NL7VX/M(5)[8],=NL7YZ(5)[8],=NP2B(5)[8],=NP2B/4(5)[8],=NP2BB(5)[8], - =NP2BW(5)[8],=NP2C(5)[8],=NP2C/4(5)[8],=NP2CB(5)[8],=NP2D(5)[8],=NP2DB(5)[8],=NP2DJ(5)[8], - =NP2EI(5)[8],=NP2FJ(5)[8],=NP2FT(5)[8],=NP2GN(5)[8],=NP2GW(5)[8],=NP2HQ(5)[8],=NP2HS(5)[8], - =NP2HW(5)[8],=NP2IE(5)[8],=NP2IF(5)[8],=NP2IJ(5)[8],=NP2IS(5)[8],=NP2IW(5)[8],=NP2IX(5)[8], - =NP2JA(5)[8],=NP2JS(5)[8],=NP2JV(5)[8],=NP2L(5)[8],=NP2LC(5)[8],=NP2MM(5)[8],=NP2MN(5)[8], - =NP2MP(5)[8],=NP2MR(5)[8],=NP2MR/4(5)[8],=NP2O(5)[8],=NP2OL(5)[8],=NP2OO(5)[8],=NP2OR(5)[8], - =NP2PA(5)[8],=NP2R(5)[8],=NP2T(5)[8],=NP2W(5)[8],=NP3AX(5)[8],=NP3BL(5)[8],=NP3CC(5)[8], - =NP3CI(5)[8],=NP3CM(5)[8],=NP3CT(5)[8],=NP3FR(5)[8],=NP3G(5)[8],=NP3HD(5)[8],=NP3HG(5)[8], - =NP3HN(5)[8],=NP3HP(5)[8],=NP3HU(5)[8],=NP3IL(5)[8],=NP3IU(5)[8],=NP3K(5)[8],=NP3KM(5)[8], - =NP3MM(5)[8],=NP3MX(5)[8],=NP3NC(5)[8],=NP3OW(5)[8],=NP3QT(5)[8],=NP3R(5)[8],=NP3ST(5)[8], - =NP3TM(5)[8],=NP3UM(5)[8],=NP3VJ(5)[8],=NP4AS(5)[8],=NP4AV(5)[8],=NP4CC(5)[8],=NP4CK(5)[8], - =NP4CV(5)[8],=NP4DM(5)[8],=NP4EM(5)[8],=NP4GH(5)[8],=NP4GW(5)[8],=NP4J(5)[8],=NP4JL(5)[8], - =NP4JU(5)[8],=NP4KV(5)[8],=NP4M(5)[8],=NP4ND(5)[8],=NP4PF(5)[8],=NP4RJ(5)[8],=NP4SY(5)[8], - =NP4TR(5)[8],=NP4WT(5)[8],=NP4XB(5)[8],=WH2AAT(5)[8],=WH2ABJ(5)[8],=WH2G(5)[8],=WH6A(5)[8], - =WH6ACF(5)[8],=WH6AJS(5)[8],=WH6AQ(5)[8],=WH6AVU(5)[8],=WH6AX(5)[8],=WH6BRQ(5)[8],=WH6CEF(5)[8], - =WH6CMT(5)[8],=WH6CNC(5)[8],=WH6CTC(5)[8],=WH6CXA(5)[8],=WH6CXT(5)[8],=WH6DBX(5)[8],=WH6DMJ(5)[8], - =WH6DNF(5)[8],=WH6DOL(5)[8],=WH6DUJ(5)[8],=WH6DXT(5)[8],=WH6DZ(5)[8],=WH6ECQ(5)[8],=WH6EFI(5)[8], - =WH6EIK(5)[8],=WH6EIR(5)[8],=WH6EKW(5)[8],=WH6ELG(5)[8],=WH6ELM(5)[8],=WH6ETE(5)[8],=WH6ETF(5)[8], - =WH6FCP(5)[8],=WH6FGK(5)[8],=WH6HA(5)[8],=WH6IF(5)[8],=WH6IZ(5)[8],=WH6J(5)[8],=WH6L(5)[8], - =WH6LE(5)[8],=WH6LE/4(5)[8],=WH6LE/M(5)[8],=WH6LE/P(5)[8],=WH6NE(5)[8],=WH6WX(5)[8],=WH6YH(5)[8], - =WH6YH/4(5)[8],=WH6YM(5)[8],=WH6ZF(5)[8],=WH7GD(5)[8],=WH7HX(5)[8],=WH7NI(5)[8],=WH7XK(5)[8], - =WH7XU(5)[8],=WH7YL(5)[8],=WH7YV(5)[8],=WH7ZM(5)[8],=WH9AAF(5)[8],=WL4X(5)[8],=WL7AUL(5)[8], - =WL7AX(5)[8],=WL7BAL(5)[8],=WL7CHA(5)[8],=WL7CIB(5)[8],=WL7CKJ(5)[8],=WL7COL(5)[8],=WL7CPA(5)[8], - =WL7CQT(5)[8],=WL7CUY(5)[8],=WL7E/4(5)[8],=WL7GV(5)[8],=WL7SR(5)[8],=WL7UN(5)[8],=WL7YX(5)[8], - =WP2AGD(5)[8],=WP2AGO(5)[8],=WP2AHC(5)[8],=WP2AIG(5)[8],=WP2BB(5)[8],=WP2C(5)[8],=WP2L(5)[8], - =WP2MA(5)[8],=WP2P(5)[8],=WP3AY(5)[8],=WP3BC(5)[8],=WP3DW(5)[8],=WP3HL(5)[8],=WP3JE(5)[8], - =WP3JQ(5)[8],=WP3JU(5)[8],=WP3K(5)[8],=WP3LE(5)[8],=WP3MB(5)[8],=WP3ME(5)[8],=WP3NIS(5)[8], - =WP3O(5)[8],=WP3QE(5)[8],=WP3ZA(5)[8],=WP4AIE(5)[8],=WP4AIL(5)[8],=WP4AIZ(5)[8],=WP4ALH(5)[8], - =WP4AQK(5)[8],=WP4AVW(5)[8],=WP4B(5)[8],=WP4BFP(5)[8],=WP4BGM(5)[8],=WP4BIN(5)[8],=WP4BJS(5)[8], - =WP4BK(5)[8],=WP4BOC(5)[8],=WP4BQV(5)[8],=WP4BXS(5)[8],=WP4CKW(5)[8],=WP4CLS(5)[8],=WP4CMH(5)[8], - =WP4DC(5)[8],=WP4DCB(5)[8],=WP4DFK(5)[8],=WP4DMV(5)[8],=WP4DNE(5)[8],=WP4DPX(5)[8],=WP4ENX(5)[8], - =WP4EXH(5)[8],=WP4FEI(5)[8],=WP4FRK(5)[8],=WP4FS(5)[8],=WP4GAK(5)[8],=WP4GFH(5)[8],=WP4GX(5)[8], - =WP4GYA(5)[8],=WP4HFZ(5)[8],=WP4HNN(5)[8],=WP4HOX(5)[8],=WP4IF(5)[8],=WP4IJ(5)[8],=WP4IK(5)[8], - =WP4ILP(5)[8],=WP4INP(5)[8],=WP4JC(5)[8],=WP4JKO(5)[8],=WP4JQJ(5)[8],=WP4JSR(5)[8],=WP4JT(5)[8], - =WP4KCJ(5)[8],=WP4KDH(5)[8],=WP4KFP(5)[8],=WP4KGI(5)[8],=WP4KI(5)[8],=WP4KJV(5)[8],=WP4KPK(5)[8], - =WP4KSK(5)[8],=WP4KTD(5)[8],=WP4LBK(5)[8],=WP4LDG(5)[8],=WP4LDL(5)[8],=WP4LDP(5)[8],=WP4LE(5)[8], - =WP4LEO(5)[8],=WP4LHA(5)[8],=WP4LTA(5)[8],=WP4MAE(5)[8],=WP4MD(5)[8],=WP4MQF(5)[8],=WP4MWE(5)[8], - =WP4MWS(5)[8],=WP4MXE(5)[8],=WP4MYG(5)[8],=WP4MYK(5)[8],=WP4NAI(5)[8],=WP4NAQ(5)[8],=WP4NBF(5)[8], - =WP4NBG(5)[8],=WP4NFU(5)[8],=WP4NKU(5)[8],=WP4NLQ(5)[8],=WP4NVL(5)[8],=WP4NWV(5)[8],=WP4NWW(5)[8], - =WP4O/4(5)[8],=WP4O/M(5)[8],=WP4OAT(5)[8],=WP4OBD(5)[8],=WP4OBH(5)[8],=WP4ODR(5)[8],=WP4ODT(5)[8], - =WP4OEO(5)[8],=WP4OFA(5)[8],=WP4OFL(5)[8],=WP4OHJ(5)[8],=WP4OLM(5)[8],=WP4OMG(5)[8],=WP4OMV(5)[8], - =WP4ONR(5)[8],=WP4OOI(5)[8],=WP4OPD(5)[8],=WP4OPF(5)[8],=WP4OTP(5)[8],=WP4OXA(5)[8],=WP4P(5)[8], - =WP4PR(5)[8],=WP4PUV(5)[8],=WP4PWV(5)[8],=WP4PXG(5)[8],=WP4QER(5)[8],=WP4QGV(5)[8],=WP4QHU(5)[8], - =WP4TD(5)[8],=WP4TX(5)[8],=WP4UC(5)[8],=WP4UM(5)[8],=WP4VL(5)[8],=WP4VM(5)[8],=WP4YG(5)[8], + =KP4FIR(5)[8],=KP4FJE(5)[8],=KP4FLP(5)[8],=KP4FOF(5)[8],=KP4GW(5)[8],=KP4HE(5)[8],=KP4HN(5)[8], + =KP4II(5)[8],=KP4IRI(5)[8],=KP4IT(5)[8],=KP4JC(5)[8],=KP4JCC(5)[8],=KP4JOS(5)[8],=KP4JVD(5)[8], + =KP4JWR(5)[8],=KP4KA(5)[8],=KP4KD(5)[8],=KP4KD/4(5)[8],=KP4KE/4(5)[8],=KP4KF(5)[8],=KP4LEU(5)[8], + =KP4LF(5)[8],=KP4LMD(5)[8],=KP4LQ(5)[8],=KP4LUV(5)[8],=KP4LX(5)[8],=KP4MA(5)[8],=KP4MHC(5)[8], + =KP4MPR(5)[8],=KP4MSP(5)[8],=KP4NI(5)[8],=KP4OO(5)[8],=KP4PC(5)[8],=KP4PEC(5)[8],=KP4PF(5)[8], + =KP4PM(5)[8],=KP4PMD(5)[8],=KP4Q(5)[8],=KP4QT(5)[8],=KP4QT/4(5)[8],=KP4REY(5)[8],=KP4RGD(5)[8], + =KP4RGT(5)[8],=KP4ROP(5)[8],=KP4RRC(5)[8],=KP4RT(5)[8],=KP4RZ(5)[8],=KP4SU(5)[8],=KP4SWR(5)[8], + =KP4TL(5)[8],=KP4TR(5)[8],=KP4UFO(5)[8],=KP4USA(5)[8],=KP4WK(5)[8],=KP4WW(5)[8],=KP4WY(5)[8], + =KP4XP(5)[8],=KP4Y(5)[8],=KP4YLV(5)[8],=KP4ZV(5)[8],=KP4ZX(5)[8],=NH2A(5)[8],=NH2BQ(5)[8], + =NH2DB(5)[8],=NH2F(5)[8],=NH2GY(5)[8],=NH2NG(5)[8],=NH6AU(5)[8],=NH6AX(5)[8],=NH6BD/4(5)[8], + =NH6E(5)[8],=NH6GE(5)[8],=NH6GR(5)[8],=NH6HX(5)[8],=NH6HX/4(5)[8],=NH6JX(5)[8],=NH6KI(5)[8], + =NH6QR(5)[8],=NH6SR(5)[8],=NH6T(5)[8],=NH6TL(5)[8],=NH7AA(5)[8],=NH7AQ(5)[8],=NH7AR(5)[8], + =NH7FG(5)[8],=NH7FV(5)[8],=NH7OI(5)[8],=NH7T/4(5)[8],=NH7UN(5)[8],=NH7XN(5)[8],=NH7YL(5)[8], + =NL7AJ(5)[8],=NL7AU(5)[8],=NL7AU/4(5)[8],=NL7BV(5)[8],=NL7KL(5)[8],=NL7KX(5)[8],=NL7LO(5)[8], + =NL7LR(5)[8],=NL7LY(5)[8],=NL7MD(5)[8],=NL7MR(5)[8],=NL7OB(5)[8],=NL7OS(5)[8],=NL7P(5)[8], + =NL7PV(5)[8],=NL7U(5)[8],=NL7VV(5)[8],=NL7VX(5)[8],=NL7VX/4(5)[8],=NL7VX/M(5)[8],=NL7YZ(5)[8], + =NP2B(5)[8],=NP2B/4(5)[8],=NP2BB(5)[8],=NP2BW(5)[8],=NP2C/4(5)[8],=NP2CB(5)[8],=NP2D(5)[8], + =NP2DB(5)[8],=NP2DJ(5)[8],=NP2EI(5)[8],=NP2FJ(5)[8],=NP2FT(5)[8],=NP2GN(5)[8],=NP2GW(5)[8], + =NP2HQ(5)[8],=NP2HS(5)[8],=NP2HW(5)[8],=NP2IE(5)[8],=NP2IF(5)[8],=NP2IJ(5)[8],=NP2IS(5)[8], + =NP2IW(5)[8],=NP2IX(5)[8],=NP2JA(5)[8],=NP2JS(5)[8],=NP2JV(5)[8],=NP2L(5)[8],=NP2LC(5)[8], + =NP2MM(5)[8],=NP2MN(5)[8],=NP2MP(5)[8],=NP2MR(5)[8],=NP2MR/4(5)[8],=NP2O(5)[8],=NP2OL(5)[8], + =NP2OO(5)[8],=NP2OR(5)[8],=NP2PA(5)[8],=NP2R(5)[8],=NP2T(5)[8],=NP2W(5)[8],=NP3AX(5)[8], + =NP3BL(5)[8],=NP3CC(5)[8],=NP3CI(5)[8],=NP3CM(5)[8],=NP3CT(5)[8],=NP3FR(5)[8],=NP3G(5)[8], + =NP3HD(5)[8],=NP3HG(5)[8],=NP3HN(5)[8],=NP3HP(5)[8],=NP3HU(5)[8],=NP3IL(5)[8],=NP3IU(5)[8], + =NP3K(5)[8],=NP3KM(5)[8],=NP3MM(5)[8],=NP3MX(5)[8],=NP3NC(5)[8],=NP3OW(5)[8],=NP3QT(5)[8], + =NP3R(5)[8],=NP3ST(5)[8],=NP3TM(5)[8],=NP3UM(5)[8],=NP3VJ(5)[8],=NP4AS(5)[8],=NP4AV(5)[8], + =NP4CC(5)[8],=NP4CK(5)[8],=NP4CV(5)[8],=NP4DM(5)[8],=NP4EM(5)[8],=NP4GH(5)[8],=NP4J(5)[8], + =NP4JL(5)[8],=NP4JU(5)[8],=NP4KV(5)[8],=NP4M(5)[8],=NP4ND(5)[8],=NP4PF(5)[8],=NP4RJ(5)[8], + =NP4SY(5)[8],=NP4TR(5)[8],=NP4WT(5)[8],=NP4XB(5)[8],=WH2AAT(5)[8],=WH2ABJ(5)[8],=WH2G(5)[8], + =WH6A(5)[8],=WH6ACF(5)[8],=WH6AJS(5)[8],=WH6AQ(5)[8],=WH6AVU(5)[8],=WH6AX(5)[8],=WH6BRQ(5)[8], + =WH6CEF(5)[8],=WH6CMT(5)[8],=WH6CNC(5)[8],=WH6CTC(5)[8],=WH6CXA(5)[8],=WH6CXT(5)[8],=WH6DBX(5)[8], + =WH6DMJ(5)[8],=WH6DNF(5)[8],=WH6DOL(5)[8],=WH6DUJ(5)[8],=WH6DXT(5)[8],=WH6DZ(5)[8],=WH6ECQ(5)[8], + =WH6EFI(5)[8],=WH6EIK(5)[8],=WH6EIR(5)[8],=WH6EKW(5)[8],=WH6ELG(5)[8],=WH6ELM(5)[8],=WH6ETE(5)[8], + =WH6ETF(5)[8],=WH6FCP(5)[8],=WH6FGK(5)[8],=WH6HA(5)[8],=WH6IF(5)[8],=WH6IZ(5)[8],=WH6J(5)[8], + =WH6L(5)[8],=WH6LE(5)[8],=WH6LE/4(5)[8],=WH6LE/M(5)[8],=WH6LE/P(5)[8],=WH6NE(5)[8],=WH6WX(5)[8], + =WH6YH(5)[8],=WH6YH/4(5)[8],=WH6YM(5)[8],=WH6ZF(5)[8],=WH7GD(5)[8],=WH7HX(5)[8],=WH7NI(5)[8], + =WH7XK(5)[8],=WH7XU(5)[8],=WH7YL(5)[8],=WH7YV(5)[8],=WH7ZM(5)[8],=WH9AAF(5)[8],=WL4X(5)[8], + =WL7AUL(5)[8],=WL7AX(5)[8],=WL7BAL(5)[8],=WL7CHA(5)[8],=WL7CIB(5)[8],=WL7CKJ(5)[8],=WL7COL(5)[8], + =WL7CPA(5)[8],=WL7CQT(5)[8],=WL7CUY(5)[8],=WL7E/4(5)[8],=WL7GV(5)[8],=WL7SR(5)[8],=WL7UN(5)[8], + =WL7YX(5)[8],=WP2AGD(5)[8],=WP2AGO(5)[8],=WP2AHC(5)[8],=WP2AIG(5)[8],=WP2AIL(5)[8],=WP2BB(5)[8], + =WP2C(5)[8],=WP2J(5)[8],=WP2L(5)[8],=WP2MA(5)[8],=WP2P(5)[8],=WP3AY(5)[8],=WP3BC(5)[8], + =WP3DW(5)[8],=WP3HL(5)[8],=WP3IM(5)[8],=WP3JE(5)[8],=WP3JQ(5)[8],=WP3JU(5)[8],=WP3K(5)[8], + =WP3LE(5)[8],=WP3MB(5)[8],=WP3ME(5)[8],=WP3NIS(5)[8],=WP3O(5)[8],=WP3QE(5)[8],=WP3ZA(5)[8], + =WP4AIE(5)[8],=WP4AIL(5)[8],=WP4AIZ(5)[8],=WP4ALH(5)[8],=WP4AQK(5)[8],=WP4AVW(5)[8],=WP4B(5)[8], + =WP4BFP(5)[8],=WP4BGM(5)[8],=WP4BIN(5)[8],=WP4BJS(5)[8],=WP4BK(5)[8],=WP4BOC(5)[8],=WP4BQV(5)[8], + =WP4BXS(5)[8],=WP4CKW(5)[8],=WP4CLS(5)[8],=WP4CMH(5)[8],=WP4DC(5)[8],=WP4DCB(5)[8],=WP4DFK(5)[8], + =WP4DMV(5)[8],=WP4DNE(5)[8],=WP4DPX(5)[8],=WP4ENX(5)[8],=WP4EXH(5)[8],=WP4FEI(5)[8],=WP4FRK(5)[8], + =WP4FS(5)[8],=WP4GAK(5)[8],=WP4GFH(5)[8],=WP4GX(5)[8],=WP4GYA(5)[8],=WP4HFZ(5)[8],=WP4HNN(5)[8], + =WP4HOX(5)[8],=WP4IF(5)[8],=WP4IJ(5)[8],=WP4IK(5)[8],=WP4ILP(5)[8],=WP4INP(5)[8],=WP4JC(5)[8], + =WP4JKO(5)[8],=WP4JQJ(5)[8],=WP4JSR(5)[8],=WP4JT(5)[8],=WP4KCJ(5)[8],=WP4KDH(5)[8],=WP4KFP(5)[8], + =WP4KGI(5)[8],=WP4KI(5)[8],=WP4KJV(5)[8],=WP4KPK(5)[8],=WP4KSK(5)[8],=WP4KTD(5)[8],=WP4LBK(5)[8], + =WP4LDG(5)[8],=WP4LDL(5)[8],=WP4LDP(5)[8],=WP4LE(5)[8],=WP4LEO(5)[8],=WP4LHA(5)[8],=WP4LTA(5)[8], + =WP4MAE(5)[8],=WP4MD(5)[8],=WP4MQF(5)[8],=WP4MWE(5)[8],=WP4MWS(5)[8],=WP4MXE(5)[8],=WP4MYG(5)[8], + =WP4MYK(5)[8],=WP4NAI(5)[8],=WP4NAQ(5)[8],=WP4NBF(5)[8],=WP4NBG(5)[8],=WP4NFU(5)[8],=WP4NKU(5)[8], + =WP4NLQ(5)[8],=WP4NVL(5)[8],=WP4NWV(5)[8],=WP4NWW(5)[8],=WP4O/4(5)[8],=WP4O/M(5)[8],=WP4OAT(5)[8], + =WP4OBD(5)[8],=WP4OBH(5)[8],=WP4ODR(5)[8],=WP4ODT(5)[8],=WP4OEO(5)[8],=WP4OFA(5)[8],=WP4OFL(5)[8], + =WP4OHJ(5)[8],=WP4OLM(5)[8],=WP4OMG(5)[8],=WP4OMV(5)[8],=WP4ONR(5)[8],=WP4OPD(5)[8],=WP4OPF(5)[8], + =WP4OTP(5)[8],=WP4OXA(5)[8],=WP4P(5)[8],=WP4PR(5)[8],=WP4PUV(5)[8],=WP4PWV(5)[8],=WP4PXG(5)[8], + =WP4QER(5)[8],=WP4QGV(5)[8],=WP4QHU(5)[8],=WP4TD(5)[8],=WP4TX(5)[8],=WP4UC(5)[8],=WP4UM(5)[8], + =WP4VL(5)[8],=WP4VM(5)[8],=WP4YG(5)[8], AA5(4)[7],AB5(4)[7],AC5(4)[7],AD5(4)[7],AE5(4)[7],AF5(4)[7],AG5(4)[7],AI5(4)[7],AJ5(4)[7], AK5(4)[7],K5(4)[7],KA5(4)[7],KB5(4)[7],KC5(4)[7],KD5(4)[7],KE5(4)[7],KF5(4)[7],KG5(4)[7], KI5(4)[7],KJ5(4)[7],KK5(4)[7],KM5(4)[7],KN5(4)[7],KO5(4)[7],KQ5(4)[7],KR5(4)[7],KS5(4)[7], @@ -1378,44 +1382,44 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =KH6ITY/M(4)[7],=KH6JCV(4)[7],=KH6JIQ(4)[7],=KH6JTE(4)[7],=KH6JTM(4)[7],=KH6JUM(4)[7], =KH6JVL(4)[7],=KH6KG/5(4)[7],=KH6LL(4)[7],=KH6LX(4)[7],=KH6MB/5(4)[7],=KH6SP/5(4)[7],=KH6SZ(4)[7], =KH6TG(4)[7],=KH6UW(4)[7],=KH7CF(4)[7],=KH7FB(4)[7],=KH7IC(4)[7],=KH7JE(4)[7],=KH7QL(4)[7], - =KH7QO(4)[7],=KH8CG(4)[7],=KH9AE(4)[7],=KL0EX(4)[7],=KL0HU(4)[7],=KL0PG(4)[7],=KL0WH(4)[7], - =KL0XI(4)[7],=KL1DA(4)[7],=KL1DJ(4)[7],=KL1DY(4)[7],=KL1MM(4)[7],=KL1RX(4)[7],=KL1TS(4)[7], - =KL1UR(4)[7],=KL1WG(4)[7],=KL1WO(4)[7],=KL1XK(4)[7],=KL1Y(4)[7],=KL1ZW(4)[7],=KL2AX(4)[7], - =KL2AX/5(4)[7],=KL2CD(4)[7],=KL2HC(4)[7],=KL2HN(4)[7],=KL2MI(4)[7],=KL2OY(4)[7],=KL2RA(4)[7], - =KL2RB(4)[7],=KL2TV(4)[7],=KL2UO(4)[7],=KL2UP(4)[7],=KL2VA(4)[7],=KL2ZJ(4)[7],=KL2ZK(4)[7], - =KL3DB(4)[7],=KL3DP(4)[7],=KL3HK(4)[7],=KL3HX(4)[7],=KL3HZ(4)[7],=KL3JL(4)[7],=KL3KH(4)[7], - =KL3KI(4)[7],=KL3TB(4)[7],=KL4JQ(4)[7],=KL5L(4)[7],=KL5Z(4)[7],=KL7AH(4)[7],=KL7AU(4)[7], - =KL7AX(4)[7],=KL7BCD(4)[7],=KL7BL(4)[7],=KL7BX(4)[7],=KL7BZ/5(4)[7],=KL7BZL(4)[7],=KL7CD(4)[7], - =KL7DB(4)[7],=KL7EBE(4)[7],=KL7EMH(4)[7],=KL7EMH/M(4)[7],=KL7EQQ(4)[7],=KL7F(4)[7],=KL7FB(4)[7], - =KL7FHX(4)[7],=KL7FLY(4)[7],=KL7FQR(4)[7],=KL7GNW(4)[7],=KL7HH(4)[7],=KL7HJZ(4)[7],=KL7IDM(4)[7], - =KL7IK(4)[7],=KL7ITF(4)[7],=KL7IWU(4)[7],=KL7IZW(4)[7],=KL7JAR(4)[7],=KL7JEX(4)[7],=KL7JIU(4)[7], - =KL7JR/5(4)[7],=KL7JW(4)[7],=KL7LJ(4)[7],=KL7LY(4)[7],=KL7MA(4)[7],=KL7ME(4)[7],=KL7ML(4)[7], - =KL7NE(4)[7],=KL7NI(4)[7],=KL7OI(4)[7],=KL7PZ(4)[7],=KL7QC(4)[7],=KL7SG(4)[7],=KL7TN/5(4)[7], - =KL7UHF(4)[7],=KL7USI/5(4)[7],=KL7XP(4)[7],=KL7XS(4)[7],=KL7YY/5(4)[7],=KP2AZ(4)[7],=KP4CV(4)[7], - =KP4DJT(4)[7],=KP4FF(4)[7],=KP4FFW(4)[7],=KP4GMC(4)[7],=KP4JE(4)[7],=KP4JG(4)[7],=KP4YP(4)[7], - =KP4YY(4)[7],=NH0V/5(4)[7],=NH2BV(4)[7],=NH2LP(4)[7],=NH6AZ(4)[7],=NH6CJ(4)[7],=NH6EF(4)[7], - =NH6FA(4)[7],=NH6L(4)[7],=NH6MG(4)[7],=NH6TD(4)[7],=NH6VB(4)[7],=NH6VJ(4)[7],=NH6WL(4)[7], - =NH6WL/5(4)[7],=NH7FO(4)[7],=NH7MV(4)[7],=NH7PZ(4)[7],=NH7R(4)[7],=NH7RO(4)[7],=NH7RO/5(4)[7], - =NH7TR(4)[7],=NH7VA(4)[7],=NH7WB(4)[7],=NL5J(4)[7],=NL7AX(4)[7],=NL7C(4)[7],=NL7CO(4)[7], - =NL7CO/5(4)[7],=NL7DC(4)[7],=NL7HB(4)[7],=NL7IE(4)[7],=NL7JH(4)[7],=NL7JI(4)[7],=NL7JV(4)[7], - =NL7JZ(4)[7],=NL7K/5(4)[7],=NL7KB(4)[7],=NL7LE(4)[7],=NL7NP(4)[7],=NL7OM(4)[7],=NL7PD(4)[7], - =NL7RQ(4)[7],=NL7RQ/5(4)[7],=NL7SI(4)[7],=NL7TO(4)[7],=NL7WY(4)[7],=NL7ZL(4)[7],=NP2EE(4)[7], - =NP2PR(4)[7],=NP2RA(4)[7],=NP3BA(4)[7],=NP3CV(4)[7],=NP3NT(4)[7],=NP3PG(4)[7],=NP3RG(4)[7], - =NP3SU(4)[7],=NP3TY(4)[7],=NP4EA(4)[7],=NP4NQ(4)[7],=NP4NQ/5(4)[7],=NP4RW(4)[7],=NP4RZ(4)[7], - =WH2ACT(4)[7],=WH2ACT/5(4)[7],=WH6ARN(4)[7],=WH6BYJ(4)[7],=WH6BYP(4)[7],=WH6CCQ(4)[7], - =WH6CDU(4)[7],=WH6CUL(4)[7],=WH6DMP(4)[7],=WH6DZU(4)[7],=WH6ECJ(4)[7],=WH6EMW(4)[7],=WH6EOF(4)[7], - =WH6ERS(4)[7],=WH6EUA(4)[7],=WH6EXQ(4)[7],=WH6FAD(4)[7],=WH6FGM(4)[7],=WH6FZ/5(4)[7], - =WH6FZL(4)[7],=WH6FZN(4)[7],=WH6GBC(4)[7],=WH6GEA(4)[7],=WH6GL(4)[7],=WH6KK(4)[7],=WH6L/5(4)[7], - =WH7DC(4)[7],=WH7DW(4)[7],=WH7OK(4)[7],=WH7R(4)[7],=WH7YM(4)[7],=WH7YN(4)[7],=WL3WX(4)[7], - =WL5H(4)[7],=WL7AIU(4)[7],=WL7AWC(4)[7],=WL7BBV(4)[7],=WL7BKF(4)[7],=WL7BPY(4)[7],=WL7CA(4)[7], - =WL7CJA(4)[7],=WL7CJC(4)[7],=WL7CQE(4)[7],=WL7CTP(4)[7],=WL7CTQ(4)[7],=WL7D(4)[7],=WL7FC(4)[7], - =WL7FE(4)[7],=WL7FT(4)[7],=WL7FT/5(4)[7],=WL7K/5(4)[7],=WL7ME(4)[7],=WL7MQ/5(4)[7],=WL7OP(4)[7], - =WL7OU(4)[7],=WL7SG(4)[7],=WL7W(4)[7],=WL7WN(4)[7],=WL7XI(4)[7],=WL7XR(4)[7],=WP2AHG(4)[7], - =WP2N(4)[7],=WP2U(4)[7],=WP2WP(4)[7],=WP3AL(4)[7],=WP3HG(4)[7],=WP3JM(4)[7],=WP4A(4)[7], - =WP4ADA(4)[7],=WP4APJ(4)[7],=WP4BAB(4)[7],=WP4BAT(4)[7],=WP4CJY(4)[7],=WP4EVA(4)[7],=WP4EVL(4)[7], - =WP4IXT(4)[7],=WP4IYJ(4)[7],=WP4KSP(4)[7],=WP4KTF(4)[7],=WP4KUW(4)[7],=WP4LKA(4)[7],=WP4MJP(4)[7], - =WP4MYI(4)[7],=WP4MZR(4)[7],=WP4NAK(4)[7],=WP4NEP(4)[7],=WP4NQA(4)[7],=WP4NQL(4)[7],=WP4OUE(4)[7], - =WP4QLB(4)[7],=WP4RON(4)[7], + =KH7QO(4)[7],=KH8CG(4)[7],=KH9AE(4)[7],=KL0EX(4)[7],=KL0HU(4)[7],=KL0IF(4)[7],=KL0PG(4)[7], + =KL0WH(4)[7],=KL0XI(4)[7],=KL1DA(4)[7],=KL1DJ(4)[7],=KL1DY(4)[7],=KL1MM(4)[7],=KL1RX(4)[7], + =KL1TS(4)[7],=KL1UR(4)[7],=KL1WG(4)[7],=KL1WO(4)[7],=KL1XK(4)[7],=KL1Y(4)[7],=KL1ZW(4)[7], + =KL2AX(4)[7],=KL2AX/5(4)[7],=KL2CD(4)[7],=KL2HC(4)[7],=KL2HN(4)[7],=KL2MI(4)[7],=KL2OY(4)[7], + =KL2RA(4)[7],=KL2RB(4)[7],=KL2TV(4)[7],=KL2UO(4)[7],=KL2UP(4)[7],=KL2VA(4)[7],=KL2ZJ(4)[7], + =KL2ZK(4)[7],=KL3DB(4)[7],=KL3DP(4)[7],=KL3HK(4)[7],=KL3HX(4)[7],=KL3HZ(4)[7],=KL3JL(4)[7], + =KL3KH(4)[7],=KL3KI(4)[7],=KL3TB(4)[7],=KL4JQ(4)[7],=KL4LS(4)[7],=KL5L(4)[7],=KL5Z(4)[7], + =KL7AH(4)[7],=KL7AU(4)[7],=KL7AX(4)[7],=KL7BCD(4)[7],=KL7BL(4)[7],=KL7BX(4)[7],=KL7BZ/5(4)[7], + =KL7BZL(4)[7],=KL7CD(4)[7],=KL7DB(4)[7],=KL7EBE(4)[7],=KL7EMH(4)[7],=KL7EMH/M(4)[7],=KL7EQQ(4)[7], + =KL7F(4)[7],=KL7FB(4)[7],=KL7FHX(4)[7],=KL7FLY(4)[7],=KL7FQR(4)[7],=KL7GNW(4)[7],=KL7HH(4)[7], + =KL7HJZ(4)[7],=KL7IDM(4)[7],=KL7IK(4)[7],=KL7ITF(4)[7],=KL7IWU(4)[7],=KL7IZW(4)[7],=KL7JAR(4)[7], + =KL7JEX(4)[7],=KL7JIU(4)[7],=KL7JR/5(4)[7],=KL7JW(4)[7],=KL7LJ(4)[7],=KL7LY(4)[7],=KL7MA(4)[7], + =KL7ME(4)[7],=KL7ML(4)[7],=KL7NE(4)[7],=KL7NI(4)[7],=KL7OI(4)[7],=KL7PZ(4)[7],=KL7QC(4)[7], + =KL7SG(4)[7],=KL7TN/5(4)[7],=KL7UHF(4)[7],=KL7USI/5(4)[7],=KL7XP(4)[7],=KL7XS(4)[7], + =KL7YY/5(4)[7],=KP2AZ(4)[7],=KP4CV(4)[7],=KP4DJT(4)[7],=KP4FF(4)[7],=KP4FFW(4)[7],=KP4GMC(4)[7], + =KP4JE(4)[7],=KP4JG(4)[7],=KP4JY(4)[7],=KP4YP(4)[7],=KP4YY(4)[7],=NH0V/5(4)[7],=NH2BV(4)[7], + =NH2LP(4)[7],=NH6AZ(4)[7],=NH6CJ(4)[7],=NH6EF(4)[7],=NH6FA(4)[7],=NH6L(4)[7],=NH6MG(4)[7], + =NH6TD(4)[7],=NH6VB(4)[7],=NH6VJ(4)[7],=NH6WL(4)[7],=NH6WL/5(4)[7],=NH7FO(4)[7],=NH7MV(4)[7], + =NH7PZ(4)[7],=NH7R(4)[7],=NH7RO(4)[7],=NH7RO/5(4)[7],=NH7TR(4)[7],=NH7VA(4)[7],=NH7WB(4)[7], + =NL5J(4)[7],=NL7AX(4)[7],=NL7C(4)[7],=NL7CO(4)[7],=NL7CO/5(4)[7],=NL7DC(4)[7],=NL7HB(4)[7], + =NL7IE(4)[7],=NL7JH(4)[7],=NL7JI(4)[7],=NL7JV(4)[7],=NL7JZ(4)[7],=NL7K/5(4)[7],=NL7KB(4)[7], + =NL7LE(4)[7],=NL7NP(4)[7],=NL7OM(4)[7],=NL7PD(4)[7],=NL7RQ(4)[7],=NL7RQ/5(4)[7],=NL7SI(4)[7], + =NL7TO(4)[7],=NL7WY(4)[7],=NL7ZL(4)[7],=NP2EE(4)[7],=NP2PR(4)[7],=NP2RA(4)[7],=NP3BA(4)[7], + =NP3CV(4)[7],=NP3NT(4)[7],=NP3PG(4)[7],=NP3RG(4)[7],=NP3SU(4)[7],=NP3TY(4)[7],=NP4EA(4)[7], + =NP4NQ(4)[7],=NP4NQ/5(4)[7],=NP4RW(4)[7],=NP4RZ(4)[7],=WH2ACT(4)[7],=WH2ACT/5(4)[7],=WH6ARN(4)[7], + =WH6BYJ(4)[7],=WH6BYP(4)[7],=WH6CCQ(4)[7],=WH6CDU(4)[7],=WH6CUL(4)[7],=WH6DMP(4)[7],=WH6DZU(4)[7], + =WH6ECJ(4)[7],=WH6EMW(4)[7],=WH6EOF(4)[7],=WH6ERS(4)[7],=WH6EUA(4)[7],=WH6EXQ(4)[7],=WH6FAD(4)[7], + =WH6FGM(4)[7],=WH6FZ/5(4)[7],=WH6FZL(4)[7],=WH6FZN(4)[7],=WH6GBC(4)[7],=WH6GEA(4)[7],=WH6GL(4)[7], + =WH6KK(4)[7],=WH6L/5(4)[7],=WH7DC(4)[7],=WH7DW(4)[7],=WH7IN(4)[7],=WH7R(4)[7],=WH7YM(4)[7], + =WH7YN(4)[7],=WL3WX(4)[7],=WL5H(4)[7],=WL7AIU(4)[7],=WL7AWC(4)[7],=WL7BBV(4)[7],=WL7BKF(4)[7], + =WL7BPY(4)[7],=WL7CA(4)[7],=WL7CJA(4)[7],=WL7CJC(4)[7],=WL7CQE(4)[7],=WL7CTP(4)[7],=WL7CTQ(4)[7], + =WL7D(4)[7],=WL7FC(4)[7],=WL7FE(4)[7],=WL7FT(4)[7],=WL7FT/5(4)[7],=WL7K/5(4)[7],=WL7ME(4)[7], + =WL7MQ/5(4)[7],=WL7OP(4)[7],=WL7OU(4)[7],=WL7SG(4)[7],=WL7W(4)[7],=WL7WN(4)[7],=WL7XI(4)[7], + =WL7XR(4)[7],=WP2AHG(4)[7],=WP2N(4)[7],=WP2U(4)[7],=WP2WP(4)[7],=WP3AL(4)[7],=WP3HG(4)[7], + =WP3JM(4)[7],=WP4A(4)[7],=WP4ADA(4)[7],=WP4APJ(4)[7],=WP4BAB(4)[7],=WP4BAT(4)[7],=WP4CJY(4)[7], + =WP4EVA(4)[7],=WP4EVL(4)[7],=WP4IXT(4)[7],=WP4IYJ(4)[7],=WP4KSP(4)[7],=WP4KTF(4)[7],=WP4KUW(4)[7], + =WP4LKA(4)[7],=WP4LQR(4)[7],=WP4MJP(4)[7],=WP4MYI(4)[7],=WP4MZR(4)[7],=WP4NAK(4)[7],=WP4NEP(4)[7], + =WP4NQA(4)[7],=WP4NQL(4)[7],=WP4OUE(4)[7],=WP4QLB(4)[7],=WP4RON(4)[7], AA6(3)[6],AB6(3)[6],AC6(3)[6],AD6(3)[6],AE6(3)[6],AF6(3)[6],AG6(3)[6],AI6(3)[6],AJ6(3)[6], AK6(3)[6],K6(3)[6],KA6(3)[6],KB6(3)[6],KC6(3)[6],KD6(3)[6],KE6(3)[6],KF6(3)[6],KG6(3)[6], KI6(3)[6],KJ6(3)[6],KK6(3)[6],KM6(3)[6],KN6(3)[6],KO6(3)[6],KQ6(3)[6],KR6(3)[6],KS6(3)[6], @@ -1426,17 +1430,17 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: WE6(3)[6],WF6(3)[6],WG6(3)[6],WI6(3)[6],WJ6(3)[6],WK6(3)[6],WM6(3)[6],WN6(3)[6],WO6(3)[6], WQ6(3)[6],WR6(3)[6],WS6(3)[6],WT6(3)[6],WU6(3)[6],WV6(3)[6],WW6(3)[6],WX6(3)[6],WY6(3)[6], WZ6(3)[6],=AH0C(3)[6],=AH0CS(3)[6],=AH0U(3)[6],=AH0U/6(3)[6],=AH0W(3)[6],=AH2AP(3)[6], - =AH2DY(3)[6],=AH6BS(3)[6],=AH6CY(3)[6],=AH6CY/P(3)[6],=AH6EI(3)[6],=AH6HE(3)[6],=AH6KG(3)[6], - =AH6ML(3)[6],=AH6NL(3)[6],=AH6NP(3)[6],=AH6PD(3)[6],=AH6RI(3)[6],=AH6S(3)[6],=AH6SU(3)[6], - =AH6TX(3)[6],=AH6UK(3)[6],=AH6UN(3)[6],=AH6UX(3)[6],=AH7A(3)[6],=AH7D(3)[6],=AH7F(3)[6], - =AH8C(3)[6],=AL3A(3)[6],=AL5ET(3)[6],=AL7DQ(3)[6],=AL7EM(3)[6],=AL7EP(3)[6],=AL7EW(3)[6], - =AL7FN(3)[6],=AL7GS(3)[6],=AL7HO/6(3)[6],=AL7L/6(3)[6],=AL7PS(3)[6],=AL7QR(3)[6],=KH0BR(3)[6], - =KH0BU(3)[6],=KH0CA(3)[6],=KH0CG(3)[6],=KH0DH(3)[6],=KH0DJ(3)[6],=KH0HQ(3)[6],=KH0JJ(3)[6], - =KH0UV(3)[6],=KH0V(3)[6],=KH0XD(3)[6],=KH2BD(3)[6],=KH2BI(3)[6],=KH2BR(3)[6],=KH2BR/6(3)[6], - =KH2C(3)[6],=KH2EE(3)[6],=KH2FI(3)[6],=KH2FI/6(3)[6],=KH2H(3)[6],=KH2IW(3)[6],=KH2LU(3)[6], - =KH2LW(3)[6],=KH2LZ(3)[6],=KH2OJ(3)[6],=KH2QE(3)[6],=KH2QL(3)[6],=KH2QY(3)[6],=KH2TJ(3)[6], - =KH2TJ/6(3)[6],=KH2XW(3)[6],=KH2YJ(3)[6],=KH2Z(3)[6],=KH2ZM(3)[6],=KH4AB(3)[6],=KH6ARA(3)[6], - =KH6AS(3)[6],=KH6BMD(3)[6],=KH6BRY(3)[6],=KH6COL(3)[6],=KH6DDW(3)[6],=KH6DX/M(3)[6], + =AH2DY(3)[6],=AH6BS(3)[6],=AH6CY(3)[6],=AH6CY/P(3)[6],=AH6EI(3)[6],=AH6HE(3)[6],=AH6KD(3)[6], + =AH6KG(3)[6],=AH6ML(3)[6],=AH6NL(3)[6],=AH6NP(3)[6],=AH6PD(3)[6],=AH6RI(3)[6],=AH6S(3)[6], + =AH6SU(3)[6],=AH6TX(3)[6],=AH6UK(3)[6],=AH6UN(3)[6],=AH6UX(3)[6],=AH7A(3)[6],=AH7D(3)[6], + =AH7F(3)[6],=AH8C(3)[6],=AL3A(3)[6],=AL5ET(3)[6],=AL7DQ(3)[6],=AL7EM(3)[6],=AL7EP(3)[6], + =AL7EW(3)[6],=AL7FN(3)[6],=AL7GS(3)[6],=AL7HO/6(3)[6],=AL7L/6(3)[6],=AL7PS(3)[6],=AL7QR(3)[6], + =KH0BR(3)[6],=KH0BU(3)[6],=KH0CA(3)[6],=KH0CG(3)[6],=KH0DH(3)[6],=KH0DJ(3)[6],=KH0HQ(3)[6], + =KH0JJ(3)[6],=KH0UV(3)[6],=KH0V(3)[6],=KH0XD(3)[6],=KH2BD(3)[6],=KH2BI(3)[6],=KH2BR(3)[6], + =KH2BR/6(3)[6],=KH2C(3)[6],=KH2EE(3)[6],=KH2FI(3)[6],=KH2FI/6(3)[6],=KH2H(3)[6],=KH2IW(3)[6], + =KH2LU(3)[6],=KH2LW(3)[6],=KH2LZ(3)[6],=KH2OJ(3)[6],=KH2QE(3)[6],=KH2QL(3)[6],=KH2QY(3)[6], + =KH2TJ(3)[6],=KH2TJ/6(3)[6],=KH2XW(3)[6],=KH2YJ(3)[6],=KH2Z(3)[6],=KH2ZM(3)[6],=KH4AB(3)[6], + =KH6ARA(3)[6],=KH6AS(3)[6],=KH6BMD(3)[6],=KH6BRY(3)[6],=KH6COL(3)[6],=KH6DDW(3)[6],=KH6DX/M(3)[6], =KH6DX/M6(3)[6],=KH6DZ(3)[6],=KH6EAM(3)[6],=KH6EHF(3)[6],=KH6FH(3)[6],=KH6FL(3)[6],=KH6FOX(3)[6], =KH6FQR(3)[6],=KH6FQY(3)[6],=KH6GBQ(3)[6],=KH6GC(3)[6],=KH6GJV(3)[6],=KH6GJV/6(3)[6],=KH6GK(3)[6], =KH6GKR(3)[6],=KH6HH(3)[6],=KH6HJE(3)[6],=KH6HOU(3)[6],=KH6IKH(3)[6],=KH6IKL(3)[6],=KH6IP(3)[6], @@ -1449,37 +1453,36 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =KH7JI(3)[6],=KH7JR(3)[6],=KH7NS(3)[6],=KH7QS(3)[6],=KH7QU(3)[6],=KH7RB(3)[6],=KH7TJ(3)[6], =KH7TJ/6(3)[6],=KH7TR(3)[6],=KH7TW(3)[6],=KH7VD(3)[6],=KH7VE(3)[6],=KH7WN(3)[6],=KH7WO(3)[6], =KH7WP(3)[6],=KH7WR(3)[6],=KH7WS(3)[6],=KH7XX/6(3)[6],=KH7Y(3)[6],=KH7Y/6(3)[6],=KH8A(3)[6], - =KH8AF(3)[6],=KH8FL(3)[6],=KL0AA(3)[6],=KL0AF(3)[6],=KL0AL(3)[6],=KL0HZ(3)[6],=KL0IF(3)[6], - =KL1NER(3)[6],=KL1WE/6(3)[6],=KL2CQ(3)[6],=KL2WL(3)[6],=KL3IM(3)[6],=KL3JY/6(3)[6],=KL3YH(3)[6], - =KL4GW(3)[6],=KL4LV(3)[6],=KL4NZ(3)[6],=KL4QW(3)[6],=KL4UZ(3)[6],=KL7AK(3)[6],=KL7CE/6(3)[6], - =KL7CM(3)[6],=KL7CN(3)[6],=KL7CW/6(3)[6],=KL7CX(3)[6],=KL7DJ(3)[6],=KL7EAE(3)[6],=KL7EAL(3)[6], - =KL7GRG(3)[6],=KL7HQR(3)[6],=KL7HQR/6(3)[6],=KL7HSY(3)[6],=KL7ID(3)[6],=KL7IDY/6(3)[6], - =KL7ISB(3)[6],=KL7ISN(3)[6],=KL7JBE(3)[6],=KL7JG(3)[6],=KL7KNP(3)[6],=KL7KX(3)[6],=KL7MF(3)[6], - =KL7MF/6(3)[6],=KL7MF/M(3)[6],=KL7RT(3)[6],=KL7SL(3)[6],=KL7SY(3)[6],=KL7VU(3)[6],=KL7VU/6(3)[6], - =KP2BK(3)[6],=KP3BN(3)[6],=KP3YL(3)[6],=KP4BR(3)[6],=KP4DSO(3)[6],=KP4DX/6(3)[6],=KP4ENM(3)[6], - =KP4ERR(3)[6],=KP4FBT(3)[6],=KP4MD(3)[6],=KP4UB(3)[6],=KP4ZW(3)[6],=NH0C(3)[6],=NH0X(3)[6], - =NH2AR(3)[6],=NH2BD(3)[6],=NH2CM(3)[6],=NH2FT(3)[6],=NH2FX(3)[6],=NH2R(3)[6],=NH2S(3)[6], - =NH6AC(3)[6],=NH6AE(3)[6],=NH6AF(3)[6],=NH6FV(3)[6],=NH6FX(3)[6],=NH6G(3)[6],=NH6NG(3)[6], - =NH6RG(3)[6],=NH6SF(3)[6],=NH6ST(3)[6],=NH6WR(3)[6],=NH7AG(3)[6],=NH7EM(3)[6],=NH7FW(3)[6], - =NH7G(3)[6],=NH7IG(3)[6],=NH7IH(3)[6],=NH7PM(3)[6],=NH7QV(3)[6],=NH7RT(3)[6],=NH7ST(3)[6], - =NH7SU(3)[6],=NH7WC(3)[6],=NH7WE(3)[6],=NH7WG(3)[6],=NH7ZE(3)[6],=NL7GE(3)[6],=NL7IB(3)[6], - =NL7LC(3)[6],=NL7OP(3)[6],=NL7RO(3)[6],=NL7TP(3)[6],=NL7YB(3)[6],=NP2KY(3)[6],=NP4AB(3)[6], - =NP4AI/6(3)[6],=NP4IW(3)[6],=NP4IW/6(3)[6],=NP4MV(3)[6],=NP4XE(3)[6],=WH0AAZ(3)[6],=WH0M(3)[6], - =WH2ABS(3)[6],=WH2ALN(3)[6],=WH2K(3)[6],=WH6AAJ(3)[6],=WH6AFM(3)[6],=WH6ANA(3)[6],=WH6ASW/M(3)[6], - =WH6BYT(3)[6],=WH6CIL(3)[6],=WH6CK(3)[6],=WH6CO(3)[6],=WH6CPO(3)[6],=WH6CPT(3)[6],=WH6CRE(3)[6], - =WH6CSG(3)[6],=WH6CUF(3)[6],=WH6CUU(3)[6],=WH6CUX(3)[6],=WH6CVJ(3)[6],=WH6CWS(3)[6],=WH6CZF(3)[6], - =WH6CZH(3)[6],=WH6DHN(3)[6],=WH6DPA(3)[6],=WH6DSK(3)[6],=WH6DVM(3)[6],=WH6DVN(3)[6],=WH6DVX(3)[6], - =WH6DYA(3)[6],=WH6DZV(3)[6],=WH6DZY(3)[6],=WH6EEZ(3)[6],=WH6EHY(3)[6],=WH6EKB(3)[6],=WH6ENG(3)[6], - =WH6EUH(3)[6],=WH6EZW(3)[6],=WH6FTF(3)[6],=WH6FTO(3)[6],=WH6JO(3)[6],=WH6LZ(3)[6],=WH6MC(3)[6], - =WH6MK(3)[6],=WH6OI(3)[6],=WH6PX(3)[6],=WH6QA(3)[6],=WH6RF(3)[6],=WH6TD(3)[6],=WH6TK(3)[6], - =WH6TT(3)[6],=WH6USA(3)[6],=WH6VM(3)[6],=WH6VN(3)[6],=WH6XI(3)[6],=WH6XX(3)[6],=WH6YJ(3)[6], - =WH7DG(3)[6],=WH7DH(3)[6],=WH7HQ(3)[6],=WH7IN(3)[6],=WH7IV(3)[6],=WH7IZ(3)[6],=WH7L(3)[6], - =WH7LP(3)[6],=WH7OO(3)[6],=WH7PM(3)[6],=WH7QC(3)[6],=WH7RU(3)[6],=WH7TT(3)[6],=WH7UZ(3)[6], - =WH7VM(3)[6],=WH7VU(3)[6],=WH7XR(3)[6],=WL3AF(3)[6],=WL3DZ(3)[6],=WL4JC(3)[6],=WL7ACO(3)[6], - =WL7BA(3)[6],=WL7BGF(3)[6],=WL7CPL(3)[6],=WL7CSD(3)[6],=WL7DN/6(3)[6],=WL7EA(3)[6],=WL7EKK(3)[6], - =WL7RA(3)[6],=WL7SE(3)[6],=WL7TG(3)[6],=WL7WL(3)[6],=WL7YQ(3)[6],=WL7YQ/6(3)[6],=WP3OV(3)[6], - =WP4CUJ(3)[6],=WP4CW(3)[6],=WP4IER(3)[6],=WP4KSU(3)[6],=WP4MVE(3)[6],=WP4OBB(3)[6],=WP4OBC(3)[6], - =WP4PWS(3)[6], + =KH8AF(3)[6],=KH8FL(3)[6],=KL0AA(3)[6],=KL0AF(3)[6],=KL0AL(3)[6],=KL0HZ(3)[6],=KL1NER(3)[6], + =KL1WE/6(3)[6],=KL2CQ(3)[6],=KL2WL(3)[6],=KL3IM(3)[6],=KL3JY/6(3)[6],=KL3YH(3)[6],=KL4GW(3)[6], + =KL4LV(3)[6],=KL4NZ(3)[6],=KL4QW(3)[6],=KL4UZ(3)[6],=KL7AK(3)[6],=KL7CE/6(3)[6],=KL7CM(3)[6], + =KL7CN(3)[6],=KL7CW/6(3)[6],=KL7CX(3)[6],=KL7DJ(3)[6],=KL7EAE(3)[6],=KL7EAL(3)[6],=KL7GKW(3)[6], + =KL7HQR(3)[6],=KL7HQR/6(3)[6],=KL7HSY(3)[6],=KL7ID(3)[6],=KL7IDY/6(3)[6],=KL7ISB(3)[6], + =KL7ISN(3)[6],=KL7JBE(3)[6],=KL7JG(3)[6],=KL7KNP(3)[6],=KL7KX(3)[6],=KL7MF(3)[6],=KL7MF/6(3)[6], + =KL7MF/M(3)[6],=KL7RT(3)[6],=KL7SL(3)[6],=KL7SY(3)[6],=KL7VU(3)[6],=KL7VU/6(3)[6],=KP2BK(3)[6], + =KP3BN(3)[6],=KP3YL(3)[6],=KP4BR(3)[6],=KP4DSO(3)[6],=KP4DX/6(3)[6],=KP4ENM(3)[6],=KP4ERR(3)[6], + =KP4FBT(3)[6],=KP4MD(3)[6],=KP4UB(3)[6],=KP4ZW(3)[6],=NH0C(3)[6],=NH0X(3)[6],=NH2AR(3)[6], + =NH2BD(3)[6],=NH2CM(3)[6],=NH2FT(3)[6],=NH2FX(3)[6],=NH2R(3)[6],=NH2S(3)[6],=NH6AC(3)[6], + =NH6AE(3)[6],=NH6AF(3)[6],=NH6FV(3)[6],=NH6FX(3)[6],=NH6G(3)[6],=NH6NG(3)[6],=NH6RG(3)[6], + =NH6SF(3)[6],=NH6ST(3)[6],=NH6WR(3)[6],=NH7AG(3)[6],=NH7EM(3)[6],=NH7FW(3)[6],=NH7G(3)[6], + =NH7IG(3)[6],=NH7IH(3)[6],=NH7PM(3)[6],=NH7QV(3)[6],=NH7RT(3)[6],=NH7ST(3)[6],=NH7SU(3)[6], + =NH7WC(3)[6],=NH7WE(3)[6],=NH7WG(3)[6],=NH7ZE(3)[6],=NL7GE(3)[6],=NL7IB(3)[6],=NL7LC(3)[6], + =NL7OP(3)[6],=NL7RO(3)[6],=NL7TP(3)[6],=NL7YB(3)[6],=NP2KY(3)[6],=NP4AB(3)[6],=NP4AI/6(3)[6], + =NP4IW(3)[6],=NP4IW/6(3)[6],=NP4MV(3)[6],=NP4XE(3)[6],=WH0AAZ(3)[6],=WH0M(3)[6],=WH2ABS(3)[6], + =WH2ALN(3)[6],=WH2K(3)[6],=WH6AAJ(3)[6],=WH6AFM(3)[6],=WH6ANA(3)[6],=WH6ASW/M(3)[6],=WH6BYT(3)[6], + =WH6CIL(3)[6],=WH6CK(3)[6],=WH6CO(3)[6],=WH6CPO(3)[6],=WH6CPT(3)[6],=WH6CRE(3)[6],=WH6CSG(3)[6], + =WH6CUF(3)[6],=WH6CUU(3)[6],=WH6CUX(3)[6],=WH6CVJ(3)[6],=WH6CWS(3)[6],=WH6CZF(3)[6],=WH6CZH(3)[6], + =WH6DHN(3)[6],=WH6DPA(3)[6],=WH6DSK(3)[6],=WH6DVM(3)[6],=WH6DVN(3)[6],=WH6DVX(3)[6],=WH6DYA(3)[6], + =WH6DZV(3)[6],=WH6DZY(3)[6],=WH6EEZ(3)[6],=WH6EHY(3)[6],=WH6EKB(3)[6],=WH6ENG(3)[6],=WH6EUH(3)[6], + =WH6EZW(3)[6],=WH6FTF(3)[6],=WH6FTO(3)[6],=WH6JO(3)[6],=WH6LZ(3)[6],=WH6MC(3)[6],=WH6MK(3)[6], + =WH6OI(3)[6],=WH6PX(3)[6],=WH6QA(3)[6],=WH6RF(3)[6],=WH6TD(3)[6],=WH6TK(3)[6],=WH6TT(3)[6], + =WH6USA(3)[6],=WH6VM(3)[6],=WH6VN(3)[6],=WH6XI(3)[6],=WH6XX(3)[6],=WH6YJ(3)[6],=WH7DG(3)[6], + =WH7DH(3)[6],=WH7HQ(3)[6],=WH7IV(3)[6],=WH7IZ(3)[6],=WH7L(3)[6],=WH7LP(3)[6],=WH7OO(3)[6], + =WH7PM(3)[6],=WH7QC(3)[6],=WH7RU(3)[6],=WH7TT(3)[6],=WH7UZ(3)[6],=WH7VM(3)[6],=WH7VU(3)[6], + =WH7XR(3)[6],=WL3AF(3)[6],=WL3DZ(3)[6],=WL4JC(3)[6],=WL7ACO(3)[6],=WL7BA(3)[6],=WL7BGF(3)[6], + =WL7CPL(3)[6],=WL7CSD(3)[6],=WL7DN/6(3)[6],=WL7EA(3)[6],=WL7EKK(3)[6],=WL7RA(3)[6],=WL7SE(3)[6], + =WL7TG(3)[6],=WL7WL(3)[6],=WL7YQ(3)[6],=WL7YQ/6(3)[6],=WP3OV(3)[6],=WP4CUJ(3)[6],=WP4CW(3)[6], + =WP4IER(3)[6],=WP4KSU(3)[6],=WP4MVE(3)[6],=WP4OBB(3)[6],=WP4OBC(3)[6],=WP4PWS(3)[6], AA7(3)[6],AB7(3)[6],AC7(3)[6],AD7(3)[6],AE7(3)[6],AF7(3)[6],AG7(3)[6],AI7(3)[6],AJ7(3)[6], AK7(3)[6],K7(3)[6],KA7(3)[6],KB7(3)[6],KC7(3)[6],KD7(3)[6],KE7(3)[6],KF7(3)[6],KG7(3)[6], KI7(3)[6],KJ7(3)[6],KK7(3)[6],KM7(3)[6],KN7(3)[6],KO7(3)[6],KQ7(3)[6],KR7(3)[6],KS7(3)[6], @@ -1495,7 +1498,7 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =AH6JS(3)[6],=AH6LE(3)[6],=AH6LE/7(3)[6],=AH6NJ(3)[6],=AH6NR(3)[6],=AH6OD(3)[6],=AH6PJ(3)[6], =AH6PW(3)[6],=AH6QW(3)[6],=AH6RI/7(3)[6],=AH6SV(3)[6],=AH6VM(3)[6],=AH6VP(3)[6],=AH6Y(3)[6], =AH7MP(3)[6],=AH7Q(3)[6],=AH8AC(3)[6],=AH8DX(3)[6],=AH8K(3)[6],=AH9A(3)[6],=AH9AC(3)[6], - =AH9C(3)[6],=AL0AA(3)[6],=AL0F(3)[6],=AL0FT(3)[6],=AL0H(3)[6],=AL0X(3)[6],=AL1N(3)[6],=AL1P(3)[6], + =AH9C(3)[6],=AL0AA(3)[6],=AL0FT(3)[6],=AL0H(3)[6],=AL0X(3)[6],=AL1N(3)[6],=AL1P(3)[6], =AL1VE(3)[6],=AL2B(3)[6],=AL2I(3)[6],=AL2N(3)[6],=AL3L(3)[6],=AL4Q/7(3)[6],=AL4R(3)[6], =AL5B(3)[6],=AL5W(3)[6],=AL6U(3)[6],=AL7A(3)[6],=AL7AA(3)[6],=AL7AN(3)[6],=AL7AW(3)[6], =AL7BN(3)[6],=AL7BQ(3)[6],=AL7CC(3)[6],=AL7CG(3)[6],=AL7CM(3)[6],=AL7CM/7(3)[6],=AL7CR(3)[6], @@ -1507,99 +1510,99 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =AL7MH(3)[6],=AL7MQ(3)[6],=AL7ND(3)[6],=AL7NK(3)[6],=AL7NZ(3)[6],=AL7OK(3)[6],=AL7OW(3)[6], =AL7PR(3)[6],=AL7PV(3)[6],=AL7QL(3)[6],=AL7QZ(3)[6],=AL7R(3)[6],=AL7R/7(3)[6],=AL7RF(3)[6], =AL7RF/7(3)[6],=AL7RM(3)[6],=AL7RR(3)[6],=AL7W(3)[6],=G4KHG/M(3)[6],=KH0AS(3)[6],=KH0H(3)[6], - =KH0K(3)[6],=KH0SH(3)[6],=KH0TL(3)[6],=KH0X(3)[6],=KH2CH(3)[6],=KH2G(3)[6],=KH2GG(3)[6], - =KH2JA(3)[6],=KH2QH(3)[6],=KH2RK(3)[6],=KH2SK(3)[6],=KH2SR(3)[6],=KH2TJ/7(3)[6],=KH2TJ/P(3)[6], - =KH2XP(3)[6],=KH2YL(3)[6],=KH3AD(3)[6],=KH6AB(3)[6],=KH6AHQ(3)[6],=KH6BXZ(3)[6],=KH6CN(3)[6], - =KH6CN/7(3)[6],=KH6COY(3)[6],=KH6CQG(3)[6],=KH6CQH(3)[6],=KH6CQH/7(3)[6],=KH6CTQ(3)[6], - =KH6DB(3)[6],=KH6DE(3)[6],=KH6DOT(3)[6],=KH6DUT(3)[6],=KH6EE(3)[6],=KH6EE/7(3)[6],=KH6FE(3)[6], - =KH6FKA/7(3)[6],=KH6FU(3)[6],=KH6GB(3)[6],=KH6GDN(3)[6],=KH6GN(3)[6],=KH6HP(3)[6],=KH6HU(3)[6], - =KH6HWK(3)[6],=KH6IA(3)[6],=KH6ICQ(3)[6],=KH6IKC(3)[6],=KH6IMN(3)[6],=KH6IQX(3)[6],=KH6ITY(3)[6], - =KH6JFL(3)[6],=KH6JIM/7(3)[6],=KH6JJS(3)[6],=KH6JMK(3)[6],=KH6JPJ(3)[6],=KH6JPO(3)[6], - =KH6JRW(3)[6],=KH6JT(3)[6],=KH6JUC(3)[6],=KH6JUQ(3)[6],=KH6KS(3)[6],=KH6KW(3)[6],=KH6LEM(3)[6], - =KH6ME(3)[6],=KH6MF(3)[6],=KH6NA(3)[6],=KH6NO/7(3)[6],=KH6NO/M(3)[6],=KH6NU(3)[6],=KH6OV(3)[6], - =KH6PG(3)[6],=KH6PR(3)[6],=KH6QAI(3)[6],=KH6QAI/7(3)[6],=KH6QAJ(3)[6],=KH6RW(3)[6],=KH6RY(3)[6], - =KH6SAT(3)[6],=KH6SS(3)[6],=KH6TX(3)[6],=KH6VM(3)[6],=KH6VM/7(3)[6],=KH6VT(3)[6],=KH6WX(3)[6], - =KH6XG(3)[6],=KH6XJ(3)[6],=KH6XS(3)[6],=KH6XT(3)[6],=KH6YL(3)[6],=KH7AR(3)[6],=KH7AX(3)[6], - =KH7CB(3)[6],=KH7CM(3)[6],=KH7CZ(3)[6],=KH7FJ(3)[6],=KH7FR(3)[6],=KH7HH(3)[6],=KH7HWK(3)[6], - =KH7IP(3)[6],=KH7LE(3)[6],=KH7ME(3)[6],=KH7MR(3)[6],=KH7NI(3)[6],=KH7NP(3)[6],=KH7R(3)[6], - =KH7RD(3)[6],=KH7RT(3)[6],=KH7SB(3)[6],=KH7SQ(3)[6],=KH7SR(3)[6],=KH7VB(3)[6],=KH7VC(3)[6], - =KH7WW(3)[6],=KH7WW/7(3)[6],=KH7WX(3)[6],=KH7X/7(3)[6],=KH7YD(3)[6],=KH7YD/7(3)[6],=KH8AB(3)[6], - =KH8AH(3)[6],=KH8AZ(3)[6],=KH8BG(3)[6],=KH8D(3)[6],=KH8E(3)[6],=KH8K(3)[6],=KH9AA(3)[6], - =KL0AI(3)[6],=KL0AN(3)[6],=KL0AP(3)[6],=KL0CA(3)[6],=KL0CM(3)[6],=KL0CW(3)[6],=KL0DF(3)[6], - =KL0DG(3)[6],=KL0DR(3)[6],=KL0DT(3)[6],=KL0EU(3)[6],=KL0IR(3)[6],=KL0IS(3)[6],=KL0IW(3)[6], - =KL0IX(3)[6],=KL0LF(3)[6],=KL0MO(3)[6],=KL0NM(3)[6],=KL0NP(3)[6],=KL0NP/P(3)[6],=KL0PC(3)[6], - =KL0PP(3)[6],=KL0QD(3)[6],=KL0RA(3)[6],=KL0SA(3)[6],=KL0SZ(3)[6],=KL0TR(3)[6],=KL0TU(3)[6], - =KL0VB(3)[6],=KL0VZ(3)[6],=KL0WN(3)[6],=KL0ZL(3)[6],=KL1AA(3)[6],=KL1AE(3)[6],=KL1AK(3)[6], - =KL1DO(3)[6],=KL1DW(3)[6],=KL1ED(3)[6],=KL1HS(3)[6],=KL1JF(3)[6],=KL1K(3)[6],=KL1KU(3)[6], - =KL1LE(3)[6],=KL1LZ(3)[6],=KL1MF(3)[6],=KL1OH(3)[6],=KL1QL(3)[6],=KL1RH(3)[6],=KL1RV(3)[6], - =KL1SF/7(3)[6],=KL1SO(3)[6],=KL1SP(3)[6],=KL1U(3)[6],=KL1UA(3)[6],=KL1UM(3)[6],=KL1XI(3)[6], - =KL1YO(3)[6],=KL1YY/7(3)[6],=KL1ZN(3)[6],=KL1ZP(3)[6],=KL1ZR(3)[6],=KL2A/7(3)[6],=KL2BG(3)[6], - =KL2BO(3)[6],=KL2BP(3)[6],=KL2BW(3)[6],=KL2BY(3)[6],=KL2BZ(3)[6],=KL2FD(3)[6],=KL2FL(3)[6], - =KL2JY(3)[6],=KL2K(3)[6],=KL2KY(3)[6],=KL2LA(3)[6],=KL2LN(3)[6],=KL2LT(3)[6],=KL2MA(3)[6], - =KL2MP(3)[6],=KL2NJ(3)[6],=KL2NU(3)[6],=KL2NW(3)[6],=KL2OH(3)[6],=KL2OJ(3)[6],=KL2P(3)[6], - =KL2QE(3)[6],=KL2TR(3)[6],=KL2TZ(3)[6],=KL2VK(3)[6],=KL2WE(3)[6],=KL2XQ(3)[6],=KL2YH(3)[6], - =KL3DL(3)[6],=KL3EZ(3)[6],=KL3FE(3)[6],=KL3IC(3)[6],=KL3IO(3)[6],=KL3IW(3)[6],=KL3ML(3)[6], - =KL3MZ(3)[6],=KL3NE(3)[6],=KL3NO(3)[6],=KL3OQ(3)[6],=KL3PD(3)[6],=KL3TW(3)[6],=KL3TY(3)[6], - =KL3VJ(3)[6],=KL3XS(3)[6],=KL4BQ(3)[6],=KL4BS(3)[6],=KL4E(3)[6],=KL4FX(3)[6],=KL4NG(3)[6], + =KH0K(3)[6],=KH0SH(3)[6],=KH0TL(3)[6],=KH0X(3)[6],=KH2CH(3)[6],=KH2DX(3)[6],=KH2G(3)[6], + =KH2GG(3)[6],=KH2JA(3)[6],=KH2QH(3)[6],=KH2RK(3)[6],=KH2SK(3)[6],=KH2SR(3)[6],=KH2TJ/7(3)[6], + =KH2TJ/P(3)[6],=KH2XP(3)[6],=KH2YL(3)[6],=KH3AD(3)[6],=KH6AB(3)[6],=KH6AHQ(3)[6],=KH6BXZ(3)[6], + =KH6CN(3)[6],=KH6CN/7(3)[6],=KH6COY(3)[6],=KH6CQG(3)[6],=KH6CQH(3)[6],=KH6CQH/7(3)[6], + =KH6CTQ(3)[6],=KH6DB(3)[6],=KH6DE(3)[6],=KH6DOT(3)[6],=KH6DUT(3)[6],=KH6EE(3)[6],=KH6EE/7(3)[6], + =KH6FE(3)[6],=KH6FKA/7(3)[6],=KH6FU(3)[6],=KH6GB(3)[6],=KH6GDN(3)[6],=KH6GN(3)[6],=KH6HP(3)[6], + =KH6HU(3)[6],=KH6HWK(3)[6],=KH6IA(3)[6],=KH6ICQ(3)[6],=KH6IKC(3)[6],=KH6IMN(3)[6],=KH6IQX(3)[6], + =KH6ITY(3)[6],=KH6JFL(3)[6],=KH6JIM(3)[6],=KH6JIM/7(3)[6],=KH6JJS(3)[6],=KH6JMK(3)[6], + =KH6JPJ(3)[6],=KH6JPO(3)[6],=KH6JRW(3)[6],=KH6JT(3)[6],=KH6JUC(3)[6],=KH6JUQ(3)[6],=KH6KS(3)[6], + =KH6KW(3)[6],=KH6LEM(3)[6],=KH6ME(3)[6],=KH6MF(3)[6],=KH6NA(3)[6],=KH6NO/7(3)[6],=KH6NO/M(3)[6], + =KH6NU(3)[6],=KH6OV(3)[6],=KH6PG(3)[6],=KH6PR(3)[6],=KH6QAI(3)[6],=KH6QAI/7(3)[6],=KH6QAJ(3)[6], + =KH6RW(3)[6],=KH6RY(3)[6],=KH6SAT(3)[6],=KH6SS(3)[6],=KH6TX(3)[6],=KH6VM(3)[6],=KH6VM/7(3)[6], + =KH6VT(3)[6],=KH6WX(3)[6],=KH6XG(3)[6],=KH6XJ(3)[6],=KH6XS(3)[6],=KH6XT(3)[6],=KH6YL(3)[6], + =KH7AR(3)[6],=KH7AX(3)[6],=KH7CB(3)[6],=KH7CM(3)[6],=KH7CZ(3)[6],=KH7FJ(3)[6],=KH7FR(3)[6], + =KH7HH(3)[6],=KH7HWK(3)[6],=KH7IP(3)[6],=KH7LE(3)[6],=KH7ME(3)[6],=KH7MR(3)[6],=KH7NI(3)[6], + =KH7NP(3)[6],=KH7R(3)[6],=KH7RD(3)[6],=KH7RT(3)[6],=KH7SB(3)[6],=KH7SQ(3)[6],=KH7SR(3)[6], + =KH7VB(3)[6],=KH7VC(3)[6],=KH7WW/7(3)[6],=KH7WX(3)[6],=KH7X/7(3)[6],=KH7YD(3)[6],=KH7YD/7(3)[6], + =KH8AB(3)[6],=KH8AH(3)[6],=KH8AZ(3)[6],=KH8BG(3)[6],=KH8D(3)[6],=KH8E(3)[6],=KH8K(3)[6], + =KH9AA(3)[6],=KL0AI(3)[6],=KL0AN(3)[6],=KL0AP(3)[6],=KL0CA(3)[6],=KL0CM(3)[6],=KL0CW(3)[6], + =KL0DF(3)[6],=KL0DG(3)[6],=KL0DR(3)[6],=KL0DT(3)[6],=KL0ER(3)[6],=KL0EU(3)[6],=KL0IR(3)[6], + =KL0IS(3)[6],=KL0IW(3)[6],=KL0IX(3)[6],=KL0LF(3)[6],=KL0MO(3)[6],=KL0NM(3)[6],=KL0NP(3)[6], + =KL0NP/P(3)[6],=KL0PC(3)[6],=KL0PP(3)[6],=KL0QD(3)[6],=KL0RA(3)[6],=KL0SA(3)[6],=KL0SZ(3)[6], + =KL0TR(3)[6],=KL0TU(3)[6],=KL0VB(3)[6],=KL0VZ(3)[6],=KL0WN(3)[6],=KL0ZL(3)[6],=KL1AA(3)[6], + =KL1AE(3)[6],=KL1AK(3)[6],=KL1DO(3)[6],=KL1DW(3)[6],=KL1ED(3)[6],=KL1HS(3)[6],=KL1JF(3)[6], + =KL1K(3)[6],=KL1KU(3)[6],=KL1LE(3)[6],=KL1LZ(3)[6],=KL1MF(3)[6],=KL1OH(3)[6],=KL1QL(3)[6], + =KL1RH(3)[6],=KL1RV(3)[6],=KL1SF/7(3)[6],=KL1SO(3)[6],=KL1SP(3)[6],=KL1U(3)[6],=KL1UA(3)[6], + =KL1UM(3)[6],=KL1XI(3)[6],=KL1YO(3)[6],=KL1YY/7(3)[6],=KL1ZN(3)[6],=KL1ZP(3)[6],=KL1ZR(3)[6], + =KL2A/7(3)[6],=KL2BO(3)[6],=KL2BP(3)[6],=KL2BW(3)[6],=KL2BY(3)[6],=KL2BZ(3)[6],=KL2FD(3)[6], + =KL2FL(3)[6],=KL2JY(3)[6],=KL2K(3)[6],=KL2KY(3)[6],=KL2LA(3)[6],=KL2LN(3)[6],=KL2LT(3)[6], + =KL2MA(3)[6],=KL2MP(3)[6],=KL2NJ(3)[6],=KL2NU(3)[6],=KL2NW(3)[6],=KL2OH(3)[6],=KL2OJ(3)[6], + =KL2P(3)[6],=KL2QE(3)[6],=KL2TR(3)[6],=KL2TZ(3)[6],=KL2VK(3)[6],=KL2WE(3)[6],=KL2XQ(3)[6], + =KL2YH(3)[6],=KL3DL(3)[6],=KL3EZ(3)[6],=KL3FE(3)[6],=KL3IC(3)[6],=KL3IO(3)[6],=KL3IW(3)[6], + =KL3ML(3)[6],=KL3MZ(3)[6],=KL3NE(3)[6],=KL3NO(3)[6],=KL3OQ(3)[6],=KL3PD(3)[6],=KL3TW(3)[6], + =KL3TY(3)[6],=KL3VJ(3)[6],=KL3XS(3)[6],=KL4BQ(3)[6],=KL4BS(3)[6],=KL4FX(3)[6],=KL4NG(3)[6], =KL4QJ(3)[6],=KL4RKH(3)[6],=KL4RY(3)[6],=KL4YFD(3)[6],=KL7AB(3)[6],=KL7AD(3)[6],=KL7AW(3)[6], =KL7BD(3)[6],=KL7BDC(3)[6],=KL7BH(3)[6],=KL7BJ(3)[6],=KL7BR(3)[6],=KL7BS(3)[6],=KL7BT(3)[6], - =KL7BUR(3)[6],=KL7BXP(3)[6],=KL7C(3)[6],=KL7CPO(3)[6],=KL7CR(3)[6],=KL7CT(3)[6],=KL7CY(3)[6], - =KL7DC(3)[6],=KL7DF(3)[6],=KL7DI(3)[6],=KL7DK(3)[6],=KL7DLG(3)[6],=KL7DSI(3)[6],=KL7DZQ(3)[6], - =KL7EBN(3)[6],=KL7EF(3)[6],=KL7EFL(3)[6],=KL7EH(3)[6],=KL7EIN(3)[6],=KL7EU(3)[6],=KL7FDQ(3)[6], - =KL7FDQ/7(3)[6],=KL7FIR(3)[6],=KL7FOZ(3)[6],=KL7FRQ(3)[6],=KL7FS(3)[6],=KL7GA(3)[6],=KL7GCS(3)[6], - =KL7GKY(3)[6],=KL7GRF(3)[6],=KL7GT(3)[6],=KL7HB(3)[6],=KL7HBV(3)[6],=KL7HFI/7(3)[6],=KL7HFV(3)[6], - =KL7HI(3)[6],=KL7HJR(3)[6],=KL7HLF(3)[6],=KL7HM(3)[6],=KL7HMK(3)[6],=KL7HQL(3)[6],=KL7HSR(3)[6], - =KL7IAL(3)[6],=KL7IBT(3)[6],=KL7IDY(3)[6],=KL7IEI(3)[6],=KL7IFK(3)[6],=KL7IGB(3)[6],=KL7IHK(3)[6], - =KL7IIK(3)[6],=KL7IKV(3)[6],=KL7IL(3)[6],=KL7IME(3)[6],=KL7IOW(3)[6],=KL7IPV(3)[6],=KL7ISE(3)[6], - =KL7IUX(3)[6],=KL7IWC/7(3)[6],=KL7IZC(3)[6],=KL7IZH(3)[6],=KL7JBB(3)[6],=KL7JDQ(3)[6], - =KL7JEA(3)[6],=KL7JES(3)[6],=KL7JIJ(3)[6],=KL7JJE(3)[6],=KL7JKV(3)[6],=KL7KA(3)[6],=KL7KG/7(3)[6], - =KL7LG(3)[6],=KL7LI(3)[6],=KL7LX(3)[6],=KL7LZ(3)[6],=KL7M(3)[6],=KL7MY(3)[6],=KL7MZ(3)[6], - =KL7NA(3)[6],=KL7NP(3)[6],=KL7NP/7(3)[6],=KL7OA(3)[6],=KL7OF(3)[6],=KL7OL(3)[6],=KL7OR(3)[6], - =KL7OR/7(3)[6],=KL7OS(3)[6],=KL7OY(3)[6],=KL7PC(3)[6],=KL7PO(3)[6],=KL7QA(3)[6],=KL7QK(3)[6], - =KL7QK/140(3)[6],=KL7QK/7(3)[6],=KL7QR(3)[6],=KL7QR/7(3)[6],=KL7R(3)[6],=KL7RC(3)[6],=KL7RK(3)[6], - =KL7RM(3)[6],=KL7RN(3)[6],=KL7RS(3)[6],=KL7S(3)[6],=KL7SK(3)[6],=KL7SP(3)[6],=KL7T(3)[6], - =KL7TU(3)[6],=KL7UP(3)[6],=KL7UT(3)[6],=KL7VK(3)[6],=KL7VL(3)[6],=KL7VN(3)[6],=KL7VQ(3)[6], - =KL7W(3)[6],=KL7WC(3)[6],=KL7WM(3)[6],=KL7WN(3)[6],=KL7WP(3)[6],=KL7WP/7(3)[6],=KL7WT(3)[6], - =KL7XL(3)[6],=KL7YJ(3)[6],=KL7YQ(3)[6],=KL7YY/M(3)[6],=KL7ZH(3)[6],=KL7ZW(3)[6],=KL8RV(3)[6], - =KL8SU(3)[6],=KL9PC(3)[6],=KP2BX(3)[6],=KP2CB(3)[6],=KP2CT(3)[6],=KP2X(3)[6],=KP2Y(3)[6], - =KP4EFZ(3)[6],=KP4ND(3)[6],=KP4UZ(3)[6],=KP4X(3)[6],=NH0F(3)[6],=NH0K(3)[6],=NH0O(3)[6], - =NH2DM(3)[6],=NH2JE(3)[6],=NH2KR(3)[6],=NH6AY(3)[6],=NH6B(3)[6],=NH6BF(3)[6],=NH6CI(3)[6], - =NH6CO(3)[6],=NH6DQ(3)[6],=NH6DX(3)[6],=NH6F(3)[6],=NH6FF(3)[6],=NH6GZ(3)[6],=NH6HE(3)[6], - =NH6HZ(3)[6],=NH6LF(3)[6],=NH6LM(3)[6],=NH6NS(3)[6],=NH6SO(3)[6],=NH6U(3)[6],=NH6WE(3)[6], - =NH6XN(3)[6],=NH6XP(3)[6],=NH6Z(3)[6],=NH6ZA(3)[6],=NH6ZE(3)[6],=NH7FU(3)[6],=NH7FZ(3)[6], - =NH7L(3)[6],=NH7M(3)[6],=NH7MY(3)[6],=NH7N(3)[6],=NH7ND(3)[6],=NH7NJ/7(3)[6],=NH7OC(3)[6], - =NH7PL(3)[6],=NH7RS(3)[6],=NH7S(3)[6],=NH7SH(3)[6],=NH7TG(3)[6],=NH7VZ(3)[6],=NH7W(3)[6], - =NH7WT(3)[6],=NH7WU(3)[6],=NH7YE(3)[6],=NH7YI(3)[6],=NL5L(3)[6],=NL7AH(3)[6],=NL7AR(3)[6], - =NL7AZ(3)[6],=NL7CH(3)[6],=NL7D(3)[6],=NL7D/7(3)[6],=NL7DH(3)[6],=NL7DY(3)[6],=NL7EO(3)[6], - =NL7FQ(3)[6],=NL7FX(3)[6],=NL7FY(3)[6],=NL7GM(3)[6],=NL7GN(3)[6],=NL7GO(3)[6],=NL7GU(3)[6], - =NL7GW(3)[6],=NL7HH(3)[6],=NL7HK(3)[6],=NL7HQ(3)[6],=NL7HU(3)[6],=NL7IN(3)[6],=NL7JJ(3)[6], - =NL7JN(3)[6],=NL7KV(3)[6],=NL7LI(3)[6],=NL7MS(3)[6],=NL7MT(3)[6],=NL7NL(3)[6],=NL7OF(3)[6], - =NL7PN(3)[6],=NL7QI(3)[6],=NL7RL(3)[6],=NL7RN(3)[6],=NL7TK(3)[6],=NL7UE(3)[6],=NL7US(3)[6], - =NL7VS(3)[6],=NL7WD(3)[6],=NL7WJ(3)[6],=NL7XX(3)[6],=NL7ZM(3)[6],=NL7ZN(3)[6],=NL7ZP(3)[6], - =NP2CT(3)[6],=NP2KL(3)[6],=NP2X/7(3)[6],=NP3PH(3)[6],=NP4AI/M(3)[6],=NP4ES(3)[6],=NP4FP(3)[6], - =NP4I(3)[6],=NP4JV(3)[6],=NP4JV/7(3)[6],=VA2GLB/P(3)[6],=WH0AAM(3)[6],=WH0J(3)[6],=WH2ACV(3)[6], - =WH2AJF(3)[6],=WH6ARU(3)[6],=WH6ASB(3)[6],=WH6B(3)[6],=WH6BDR(3)[6],=WH6BLM(3)[6],=WH6BPL(3)[6], - =WH6BPU(3)[6],=WH6CF(3)[6],=WH6CMS(3)[6],=WH6CN(3)[6],=WH6CUS(3)[6],=WH6CWD(3)[6],=WH6CXB(3)[6], - =WH6CXE(3)[6],=WH6CXN(3)[6],=WH6CYB(3)[6],=WH6CZ(3)[6],=WH6DAY(3)[6],=WH6DJO(3)[6],=WH6DKC(3)[6], + =KL7BUR(3)[6],=KL7BXP(3)[6],=KL7C(3)[6],=KL7CPO(3)[6],=KL7CR(3)[6],=KL7CT(3)[6],=KL7DC(3)[6], + =KL7DF(3)[6],=KL7DI(3)[6],=KL7DK(3)[6],=KL7DLG(3)[6],=KL7DSI(3)[6],=KL7DZQ(3)[6],=KL7EBN(3)[6], + =KL7EF(3)[6],=KL7EFL(3)[6],=KL7EH(3)[6],=KL7EIN(3)[6],=KL7EU(3)[6],=KL7FDQ(3)[6],=KL7FDQ/7(3)[6], + =KL7FIR(3)[6],=KL7FOZ(3)[6],=KL7FRQ(3)[6],=KL7FS(3)[6],=KL7GA(3)[6],=KL7GCS(3)[6],=KL7GKY(3)[6], + =KL7GRF(3)[6],=KL7GT(3)[6],=KL7HB(3)[6],=KL7HBV(3)[6],=KL7HFI/7(3)[6],=KL7HFV(3)[6],=KL7HI(3)[6], + =KL7HJR(3)[6],=KL7HLF(3)[6],=KL7HM(3)[6],=KL7HMK(3)[6],=KL7HQL(3)[6],=KL7HSR(3)[6],=KL7IAL(3)[6], + =KL7IBT(3)[6],=KL7IDY(3)[6],=KL7IEI(3)[6],=KL7IFK(3)[6],=KL7IGB(3)[6],=KL7IHK(3)[6],=KL7IIK(3)[6], + =KL7IKV(3)[6],=KL7IL(3)[6],=KL7IME(3)[6],=KL7IOW(3)[6],=KL7IPV(3)[6],=KL7ISE(3)[6],=KL7IUX(3)[6], + =KL7IWC/7(3)[6],=KL7IZC(3)[6],=KL7IZH(3)[6],=KL7JBB(3)[6],=KL7JDQ(3)[6],=KL7JEA(3)[6], + =KL7JES(3)[6],=KL7JIJ(3)[6],=KL7JJE(3)[6],=KL7JKV(3)[6],=KL7KA(3)[6],=KL7KG/7(3)[6],=KL7LG(3)[6], + =KL7LI(3)[6],=KL7LX(3)[6],=KL7LZ(3)[6],=KL7M(3)[6],=KL7MY(3)[6],=KL7MZ(3)[6],=KL7NA(3)[6], + =KL7NP(3)[6],=KL7NP/7(3)[6],=KL7OA(3)[6],=KL7OF(3)[6],=KL7OL(3)[6],=KL7OR(3)[6],=KL7OR/7(3)[6], + =KL7OS(3)[6],=KL7OY(3)[6],=KL7PC(3)[6],=KL7PO(3)[6],=KL7QA(3)[6],=KL7QK(3)[6],=KL7QK/140(3)[6], + =KL7QK/7(3)[6],=KL7QR(3)[6],=KL7QR/7(3)[6],=KL7R(3)[6],=KL7RC(3)[6],=KL7RK(3)[6],=KL7RM(3)[6], + =KL7RN(3)[6],=KL7RS(3)[6],=KL7S(3)[6],=KL7SK(3)[6],=KL7SP(3)[6],=KL7T(3)[6],=KL7TU(3)[6], + =KL7UP(3)[6],=KL7UT(3)[6],=KL7VK(3)[6],=KL7VL(3)[6],=KL7VN(3)[6],=KL7VQ(3)[6],=KL7W(3)[6], + =KL7WC(3)[6],=KL7WM(3)[6],=KL7WN(3)[6],=KL7WP(3)[6],=KL7WP/7(3)[6],=KL7WT(3)[6],=KL7XL(3)[6], + =KL7YJ(3)[6],=KL7YQ(3)[6],=KL7YY/M(3)[6],=KL7ZH(3)[6],=KL7ZW(3)[6],=KL8RV(3)[6],=KL8SU(3)[6], + =KL9PC(3)[6],=KP2BX(3)[6],=KP2CB(3)[6],=KP2CT(3)[6],=KP2X(3)[6],=KP2Y(3)[6],=KP4EFZ(3)[6], + =KP4ND(3)[6],=KP4UZ(3)[6],=KP4X(3)[6],=NH0F(3)[6],=NH0K(3)[6],=NH0O(3)[6],=NH2DM(3)[6], + =NH2JE(3)[6],=NH2KR(3)[6],=NH6AY(3)[6],=NH6B(3)[6],=NH6BF(3)[6],=NH6CI(3)[6],=NH6CO(3)[6], + =NH6DQ(3)[6],=NH6DX(3)[6],=NH6F(3)[6],=NH6FF(3)[6],=NH6GZ(3)[6],=NH6HE(3)[6],=NH6HZ(3)[6], + =NH6LF(3)[6],=NH6LM(3)[6],=NH6NS(3)[6],=NH6SO(3)[6],=NH6U(3)[6],=NH6WE(3)[6],=NH6XN(3)[6], + =NH6XP(3)[6],=NH6Z(3)[6],=NH6ZA(3)[6],=NH6ZE(3)[6],=NH7FU(3)[6],=NH7FZ(3)[6],=NH7L(3)[6], + =NH7M(3)[6],=NH7MY(3)[6],=NH7N(3)[6],=NH7ND(3)[6],=NH7NJ/7(3)[6],=NH7OC(3)[6],=NH7PL(3)[6], + =NH7RS(3)[6],=NH7S(3)[6],=NH7SH(3)[6],=NH7TG(3)[6],=NH7VZ(3)[6],=NH7W(3)[6],=NH7WT(3)[6], + =NH7WU(3)[6],=NH7YE(3)[6],=NH7YI(3)[6],=NL5L(3)[6],=NL7AH(3)[6],=NL7AR(3)[6],=NL7AZ(3)[6], + =NL7CH(3)[6],=NL7D(3)[6],=NL7D/7(3)[6],=NL7DH(3)[6],=NL7DY(3)[6],=NL7EO(3)[6],=NL7FQ(3)[6], + =NL7FX(3)[6],=NL7FY(3)[6],=NL7GM(3)[6],=NL7GN(3)[6],=NL7GO(3)[6],=NL7GU(3)[6],=NL7GW(3)[6], + =NL7HH(3)[6],=NL7HK(3)[6],=NL7HQ(3)[6],=NL7HU(3)[6],=NL7IN(3)[6],=NL7JJ(3)[6],=NL7JN(3)[6], + =NL7KV(3)[6],=NL7LI(3)[6],=NL7MS(3)[6],=NL7MT(3)[6],=NL7NL(3)[6],=NL7OF(3)[6],=NL7PN(3)[6], + =NL7QI(3)[6],=NL7RL(3)[6],=NL7RN(3)[6],=NL7TK(3)[6],=NL7UE(3)[6],=NL7US(3)[6],=NL7VS(3)[6], + =NL7WD(3)[6],=NL7WJ(3)[6],=NL7XX(3)[6],=NL7ZM(3)[6],=NL7ZN(3)[6],=NL7ZP(3)[6],=NP2CT(3)[6], + =NP2KL(3)[6],=NP2X/7(3)[6],=NP3PH(3)[6],=NP4AI/M(3)[6],=NP4ES(3)[6],=NP4FP(3)[6],=NP4I(3)[6], + =NP4JV(3)[6],=NP4JV/7(3)[6],=VA2GLB/P(3)[6],=WH0AAM(3)[6],=WH0J(3)[6],=WH2ACV(3)[6],=WH2AJF(3)[6], + =WH6ARU(3)[6],=WH6ASB(3)[6],=WH6B(3)[6],=WH6BDR(3)[6],=WH6BLM(3)[6],=WH6BPL(3)[6],=WH6BPU(3)[6], + =WH6CF(3)[6],=WH6CMS(3)[6],=WH6CN(3)[6],=WH6CUS(3)[6],=WH6CWD(3)[6],=WH6CXB(3)[6],=WH6CXE(3)[6], + =WH6CXN(3)[6],=WH6CYB(3)[6],=WH6CZ(3)[6],=WH6DAY(3)[6],=WH6DJO(3)[6],=WH6DKC(3)[6],=WH6DKG(3)[6], =WH6DKO(3)[6],=WH6DLQ(3)[6],=WH6DQ(3)[6],=WH6DST(3)[6],=WH6DTH(3)[6],=WH6EEC(3)[6],=WH6EEG(3)[6], =WH6EGM(3)[6],=WH6EHW(3)[6],=WH6EJV(3)[6],=WH6EQB(3)[6],=WH6ESS(3)[6],=WH6ETO(3)[6],=WH6EWE(3)[6], =WH6FCT(3)[6],=WH6FEU(3)[6],=WH6FJR(3)[6],=WH6FL(3)[6],=WH6FOJ(3)[6],=WH6FPR(3)[6],=WH6FPV(3)[6], =WH6FQ(3)[6],=WH6FQK(3)[6],=WH6GEV(3)[6],=WH6OL(3)[6],=WH6OY(3)[6],=WH6QV(3)[6],=WH6SD(3)[6], =WH6SR(3)[6],=WH6TI(3)[6],=WH6U(3)[6],=WH6XV(3)[6],=WH6YT(3)[6],=WH6YX(3)[6],=WH6ZR(3)[6], =WH6ZV(3)[6],=WH7A(3)[6],=WH7CY(3)[6],=WH7DA(3)[6],=WH7DB(3)[6],=WH7DE(3)[6],=WH7G(3)[6], - =WH7GC(3)[6],=WH7GY(3)[6],=WH7HU(3)[6],=WH7LB(3)[6],=WH7NS(3)[6],=WH7P(3)[6],=WH7RG(3)[6], - =WH7TC(3)[6],=WH7U(3)[6],=WH7UP(3)[6],=WH7WP(3)[6],=WH7WT(3)[6],=WH7XP(3)[6],=WH8AAG(3)[6], - =WL7AAW(3)[6],=WL7AL(3)[6],=WL7AP(3)[6],=WL7AQ(3)[6],=WL7AUY(3)[6],=WL7AWD(3)[6],=WL7AZG(3)[6], - =WL7AZL(3)[6],=WL7BCR(3)[6],=WL7BHR(3)[6],=WL7BLM(3)[6],=WL7BM(3)[6],=WL7BNQ(3)[6],=WL7BON(3)[6], - =WL7BOO(3)[6],=WL7BSW(3)[6],=WL7BUI(3)[6],=WL7BVN(3)[6],=WL7BVS(3)[6],=WL7CAZ(3)[6],=WL7CBF(3)[6], - =WL7CES(3)[6],=WL7COQ(3)[6],=WL7CPE(3)[6],=WL7CPI(3)[6],=WL7CQX(3)[6],=WL7CRJ(3)[6],=WL7CSL(3)[6], - =WL7CTB(3)[6],=WL7CTC(3)[6],=WL7CTE(3)[6],=WL7DD(3)[6],=WL7FA(3)[6],=WL7FR(3)[6],=WL7FU(3)[6], - =WL7H(3)[6],=WL7HE(3)[6],=WL7HK(3)[6],=WL7HL(3)[6],=WL7IQ(3)[6],=WL7IS(3)[6],=WL7JM(3)[6], - =WL7K(3)[6],=WL7K/7(3)[6],=WL7K/M(3)[6],=WL7LB(3)[6],=WL7LK(3)[6],=WL7MM(3)[6],=WL7OA(3)[6], + =WH7GC(3)[6],=WH7GY(3)[6],=WH7HU(3)[6],=WH7LB(3)[6],=WH7NS(3)[6],=WH7OK(3)[6],=WH7P(3)[6], + =WH7RG(3)[6],=WH7TC(3)[6],=WH7U(3)[6],=WH7UP(3)[6],=WH7WP(3)[6],=WH7WT(3)[6],=WH7XP(3)[6], + =WH8AAG(3)[6],=WL7AAW(3)[6],=WL7AL(3)[6],=WL7AP(3)[6],=WL7AQ(3)[6],=WL7AUY(3)[6],=WL7AWD(3)[6], + =WL7AZG(3)[6],=WL7AZL(3)[6],=WL7BCR(3)[6],=WL7BHR(3)[6],=WL7BLM(3)[6],=WL7BM(3)[6],=WL7BNQ(3)[6], + =WL7BON(3)[6],=WL7BOO(3)[6],=WL7BSW(3)[6],=WL7BUI(3)[6],=WL7BVN(3)[6],=WL7BVS(3)[6],=WL7CAZ(3)[6], + =WL7CBF(3)[6],=WL7CES(3)[6],=WL7COQ(3)[6],=WL7CPE(3)[6],=WL7CPI(3)[6],=WL7CQX(3)[6],=WL7CRJ(3)[6], + =WL7CSL(3)[6],=WL7CTB(3)[6],=WL7CTC(3)[6],=WL7CTE(3)[6],=WL7DD(3)[6],=WL7FA(3)[6],=WL7FR(3)[6], + =WL7FU(3)[6],=WL7H(3)[6],=WL7HE(3)[6],=WL7HK(3)[6],=WL7HL(3)[6],=WL7IQ(3)[6],=WL7IS(3)[6], + =WL7JM(3)[6],=WL7K(3)[6],=WL7K/7(3)[6],=WL7K/M(3)[6],=WL7LB(3)[6],=WL7LK(3)[6],=WL7OA(3)[6], =WL7P(3)[6],=WL7PJ(3)[6],=WL7QC(3)[6],=WL7QX(3)[6],=WL7RV/140(3)[6],=WL7SD(3)[6],=WL7SO(3)[6], - =WL7SV(3)[6],=WL7T(3)[6],=WL7VK(3)[6],=WL7WB(3)[6],=WL7WF(3)[6],=WL7WG(3)[6],=WL7WK(3)[6], - =WL7WU(3)[6],=WL7XE(3)[6],=WL7XJ(3)[6],=WL7XN(3)[6],=WL7XW(3)[6],=WL7Z(3)[6],=WL7ZM(3)[6], - =WP2ADG(3)[6],=WP4BZG(3)[6],=WP4DYP(3)[6],=WP4NBP(3)[6], + =WL7SV(3)[6],=WL7T(3)[6],=WL7VK(3)[6],=WL7VV(3)[6],=WL7WB(3)[6],=WL7WF(3)[6],=WL7WG(3)[6], + =WL7WK(3)[6],=WL7WU(3)[6],=WL7XE(3)[6],=WL7XJ(3)[6],=WL7XN(3)[6],=WL7XW(3)[6],=WL7Z(3)[6], + =WL7ZM(3)[6],=WP2ADG(3)[6],=WP4BZG(3)[6],=WP4DYP(3)[6],=WP4NBP(3)[6], AA8(4)[8],AB8(4)[8],AC8(4)[8],AD8(4)[8],AE8(4)[8],AF8(4)[8],AG8(4)[8],AI8(4)[8],AJ8(4)[8], AK8(4)[8],K8(4)[8],KA8(4)[8],KB8(4)[8],KC8(4)[8],KD8(4)[8],KE8(4)[8],KF8(4)[8],KG8(4)[8], KI8(4)[8],KJ8(4)[8],KK8(4)[8],KM8(4)[8],KN8(4)[8],KO8(4)[8],KQ8(4)[8],KR8(4)[8],KS8(4)[8], @@ -1617,11 +1620,11 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =KL7FHI(4)[8],=KL7FHK(4)[8],=KL7GF(4)[8],=KL7IKR(4)[8],=KL7IYK(4)[8],=KL7IYK/8(4)[8],=KL7OG(4)[8], =KL7RF(4)[8],=KL7RF/8(4)[8],=KL7SW(4)[8],=KL8X(4)[8],=KL9A/8(4)[8],=KP2RF(4)[8],=KP4AKB(4)[8], =KP4AMZ(4)[8],=KP4AQI(4)[8],=KP4E(4)[8],=KP4MAS(4)[8],=KP4VZ(4)[8],=KP4ZD(4)[8],=NH6CN(4)[8], - =NH6CN/8(4)[8],=NL7CF(4)[8],=NL7FK(4)[8],=NP2AK(4)[8],=NP2F(4)[8],=NP3NA(4)[8],=NP4C/8(4)[8], - =VE3ACW/M(4)[8],=WH2U(4)[8],=WH6BCB(4)[8],=WH6CYR(4)[8],=WH6E(4)[8],=WH6E/8(4)[8],=WH6EBA(4)[8], - =WH6EJD(4)[8],=WH6EWB(4)[8],=WH6TB(4)[8],=WL7AGO(4)[8],=WL7AM(4)[8],=WL7BKR(4)[8],=WL7CMV(4)[8], - =WL7GG(4)[8],=WL7HC(4)[8],=WL7OS(4)[8],=WL7OT(4)[8],=WP3KU(4)[8],=WP3S(4)[8],=WP4HJF(4)[8], - =WP4IJK(4)[8],=WP4MWB(4)[8],=WP4NAE(4)[8],=WP4NYQ(4)[8],=WP4PLR(4)[8], + =NH6CN/8(4)[8],=NL7CF(4)[8],=NL7FK(4)[8],=NP2AK(4)[8],=NP2DW(4)[8],=NP2F(4)[8],=NP3NA(4)[8], + =NP4C/8(4)[8],=VE3ACW/M(4)[8],=WH2U(4)[8],=WH6BCB(4)[8],=WH6CYR(4)[8],=WH6E(4)[8],=WH6E/8(4)[8], + =WH6EBA(4)[8],=WH6EJD(4)[8],=WH6EWB(4)[8],=WH6TB(4)[8],=WL7AGO(4)[8],=WL7AM(4)[8],=WL7BKR(4)[8], + =WL7CMV(4)[8],=WL7GG(4)[8],=WL7HC(4)[8],=WL7OS(4)[8],=WL7OT(4)[8],=WP3KU(4)[8],=WP3S(4)[8], + =WP4HJF(4)[8],=WP4IJK(4)[8],=WP4MWB(4)[8],=WP4NAE(4)[8],=WP4NYQ(4)[8],=WP4PLR(4)[8], AA9(4)[8],AB9(4)[8],AC9(4)[8],AD9(4)[8],AE9(4)[8],AF9(4)[8],AG9(4)[8],AI9(4)[8],AJ9(4)[8], AK9(4)[8],K9(4)[8],KA9(4)[8],KB9(4)[8],KC9(4)[8],KD9(4)[8],KE9(4)[8],KF9(4)[8],KG9(4)[8], KI9(4)[8],KJ9(4)[8],KK9(4)[8],KM9(4)[8],KN9(4)[8],KO9(4)[8],KQ9(4)[8],KR9(4)[8],KS9(4)[8], @@ -1638,36 +1641,36 @@ United States: 05: 08: NA: 37.53: 91.67: 5.0: K: =KL1NR(4)[8],=KL1QN(4)[8],=KL1US(4)[8],=KL2A/9(4)[8],=KL2KP(4)[8],=KL2NQ(4)[8],=KL2UY(4)[8], =KL2YD(4)[8],=KL2ZL(4)[8],=KL4CX(4)[8],=KL7AL(4)[8],=KL7AL/9(4)[8],=KL7BGR(4)[8],=KL7CE(4)[8], =KL7CE/9(4)[8],=KL7IBV(4)[8],=KL7IKP(4)[8],=KL7IPS(4)[8],=KL7IVK(4)[8],=KL7JAB(4)[8],=KL7MU(4)[8], - =KL7TD(4)[8],=KP2XX(4)[8],=KP3JOS(4)[8],=KP3VA/M(4)[8],=KP4CI(4)[8],=KP4GE/9(4)[8],=KP4NKE(4)[8], - =KP4SL(4)[8],=KP4WG(4)[8],=NH2W(4)[8],=NH2W/9(4)[8],=NH6R(4)[8],=NH7TK(4)[8],=NL7CM(4)[8], - =NL7KD(4)[8],=NL7NK(4)[8],=NL7QC(4)[8],=NL7QC/9(4)[8],=NL7RC(4)[8],=NL7UH(4)[8],=NL7YI(4)[8], - =NP2AV(4)[8],=NP2DK(4)[8],=NP2GM(4)[8],=NP2L/9(4)[8],=NP2MU(4)[8],=NP3QC(4)[8],=NP4ZI(4)[8], - =WH0AI(4)[8],=WH2T(4)[8],=WH6ERQ(4)[8],=WH6FBA(4)[8],=WH6SB(4)[8],=WL7AHP(4)[8],=WL7AIT(4)[8], - =WL7BEV(4)[8],=WL7CTA(4)[8],=WL7FJ(4)[8],=WL7JAN(4)[8],=WL7NP(4)[8],=WL7UU(4)[8],=WP4JSP(4)[8], - =WP4LKY(4)[8],=WP4LSQ(4)[8],=WP4MQX(4)[8],=WP4MSD(4)[8],=WP4MTN(4)[8],=WP4MVQ(4)[8],=WP4MXP(4)[8], - =WP4MYL(4)[8],=WP4OCZ(4)[8], + =KL7TD(4)[8],=KP2XX(4)[8],=KP3JOS(4)[8],=KP3VA/M(4)[8],=KP4CI(4)[8],=KP4GE/9(4)[8],=KP4JEL(4)[8], + =KP4NKE(4)[8],=KP4SL(4)[8],=KP4WG(4)[8],=NH2W(4)[8],=NH2W/9(4)[8],=NH6R(4)[8],=NH7TK(4)[8], + =NL7CM(4)[8],=NL7KD(4)[8],=NL7NK(4)[8],=NL7QC(4)[8],=NL7QC/9(4)[8],=NL7RC(4)[8],=NL7UH(4)[8], + =NL7YI(4)[8],=NP2AV(4)[8],=NP2DK(4)[8],=NP2GM(4)[8],=NP2L/9(4)[8],=NP2MU(4)[8],=NP3QC(4)[8], + =NP4ZI(4)[8],=WH0AI(4)[8],=WH2T(4)[8],=WH6ERQ(4)[8],=WH6FBA(4)[8],=WH6SB(4)[8],=WL7AHP(4)[8], + =WL7AIT(4)[8],=WL7BEV(4)[8],=WL7CTA(4)[8],=WL7FJ(4)[8],=WL7JAN(4)[8],=WL7NP(4)[8],=WL7UU(4)[8], + =WL9N(4)[8],=WP4JSP(4)[8],=WP4LKY(4)[8],=WP4LSQ(4)[8],=WP4MQX(4)[8],=WP4MSD(4)[8],=WP4MTN(4)[8], + =WP4MVQ(4)[8],=WP4MXP(4)[8],=WP4MYL(4)[8],=WP4OCZ(4)[8], =AH2BG(4)[8],=AH2CF(4)[8],=AH6ES(4)[8],=AH6FF(4)[8],=AH6HR(4)[8],=AH6HR/4(4)[8],=AH6KB(4)[8], - =AL0P(4)[8],=AL2C(4)[8],=AL2F(4)[8],=AL2F/4(4)[8],=AL4B(4)[8],=AL7CX(4)[8],=AL7EU(4)[8], - =AL7JN(4)[8],=AL7KN(4)[8],=AL7LP(4)[8],=AL7MR(4)[8],=AL7QO(4)[8],=KH0UN(4)[8],=KH2AR(4)[8], - =KH2AR/4(4)[8],=KH2DN(4)[8],=KH2EP(4)[8],=KH4AF(4)[8],=KH6EO(4)[8],=KH6JQW(4)[8],=KH6KM(4)[8], - =KH6OE(4)[8],=KH6RD(4)[8],=KH6RD/4(4)[8],=KH6SKY(4)[8],=KH6SKY/4(4)[8],=KH7JM(4)[8],=KH7UB(4)[8], - =KL0AH(4)[8],=KL0BX(4)[8],=KL0CP(4)[8],=KL0ET(4)[8],=KL0ET/M(4)[8],=KL0EY(4)[8],=KL0FF(4)[8], - =KL0GI(4)[8],=KL0LN(4)[8],=KL0PM(4)[8],=KL0VH(4)[8],=KL1DN(4)[8],=KL1IG(4)[8],=KL1LV(4)[8], - =KL1SE(4)[8],=KL1SE/4(4)[8],=KL1ZA(4)[8],=KL2GB(4)[8],=KL2HK(4)[8],=KL2LK(4)[8],=KL2LU(4)[8], - =KL2TD(4)[8],=KL3PG(4)[8],=KL3PV(4)[8],=KL3RA(4)[8],=KL4KA(4)[8],=KL4WV(4)[8],=KL7DT/4(4)[8], - =KL7FO/P(4)[8],=KL7GN/M(4)[8],=KL7IUQ(4)[8],=KL7JKC(4)[8],=KL7LT(4)[8],=KL7WW(4)[8],=KL7YN(4)[8], - =KL7YT(4)[8],=KL9MEK(4)[8],=KP3RC(4)[8],=KP4TOM(4)[8],=NH2E(4)[8],=NH6T/4(4)[8],=NH7FK(4)[8], - =NH7FL(4)[8],=NH7H(4)[8],=NL7OE(4)[8],=NL7YU(4)[8],=NP2KS(4)[8],=NP3FB(4)[8],=NP4AC(4)[8], - =NP4AC/4(4)[8],=WH6AUL(4)[8],=WH6BPL/4(4)[8],=WH6DM(4)[8],=WH6EOG(4)[8],=WH6EQW(4)[8], - =WH6FEJ(4)[8],=WH6LAK(4)[8],=WH6OR(4)[8],=WH6Q/4(4)[8],=WL4B(4)[8],=WL7BHI(4)[8],=WL7BHJ(4)[8], - =WL7CQH(4)[8],=WL7CQK(4)[8],=WL7IP(4)[8],=WL7PC(4)[8],=WL7SF(4)[8],=WL7TD(4)[8],=WL7XZ(4)[8], - =WP3IK(4)[8],=WP4CNA(4)[8],=WP4XF(4)[8], + =AL0F(4)[8],=AL0P(4)[8],=AL2C(4)[8],=AL2F(4)[8],=AL2F/4(4)[8],=AL4B(4)[8],=AL7CX(4)[8], + =AL7EU(4)[8],=AL7JN(4)[8],=AL7KN(4)[8],=AL7LP(4)[8],=AL7MR(4)[8],=AL7QO(4)[8],=KH0UN(4)[8], + =KH2AR(4)[8],=KH2AR/4(4)[8],=KH2DN(4)[8],=KH2EP(4)[8],=KH4AF(4)[8],=KH6EO(4)[8],=KH6JQW(4)[8], + =KH6KM(4)[8],=KH6OE(4)[8],=KH6RD(4)[8],=KH6RD/4(4)[8],=KH6SKY(4)[8],=KH6SKY/4(4)[8],=KH7JM(4)[8], + =KH7UB(4)[8],=KL0AH(4)[8],=KL0BX(4)[8],=KL0CP(4)[8],=KL0ET(4)[8],=KL0ET/M(4)[8],=KL0EY(4)[8], + =KL0FF(4)[8],=KL0GI(4)[8],=KL0LN(4)[8],=KL0PM(4)[8],=KL0VH(4)[8],=KL1DN(4)[8],=KL1IG(4)[8], + =KL1LV(4)[8],=KL1SE(4)[8],=KL1SE/4(4)[8],=KL1ZA(4)[8],=KL2GB(4)[8],=KL2HK(4)[8],=KL2LK(4)[8], + =KL2LU(4)[8],=KL2TD(4)[8],=KL3PG(4)[8],=KL3PV(4)[8],=KL3RA(4)[8],=KL4KA(4)[8],=KL4WV(4)[8], + =KL7DT/4(4)[8],=KL7FO/P(4)[8],=KL7GN/M(4)[8],=KL7IUQ(4)[8],=KL7JKC(4)[8],=KL7LT(4)[8], + =KL7WW(4)[8],=KL7YN(4)[8],=KL7YT(4)[8],=KL9MEK(4)[8],=KP3RC(4)[8],=KP4TOM(4)[8],=NH2E(4)[8], + =NH6T/4(4)[8],=NH7FK(4)[8],=NH7FL(4)[8],=NH7H(4)[8],=NL7OE(4)[8],=NL7YU(4)[8],=NP2KS(4)[8], + =NP3FB(4)[8],=NP4AC(4)[8],=NP4AC/4(4)[8],=WH6AUL(4)[8],=WH6BPL/4(4)[8],=WH6DM(4)[8],=WH6EOG(4)[8], + =WH6EQW(4)[8],=WH6FEJ(4)[8],=WH6LAK(4)[8],=WH6OR(4)[8],=WH6Q/4(4)[8],=WL4B(4)[8],=WL7BHI(4)[8], + =WL7BHJ(4)[8],=WL7CQH(4)[8],=WL7CQK(4)[8],=WL7IP(4)[8],=WL7PC(4)[8],=WL7SF(4)[8],=WL7TD(4)[8], + =WL7XZ(4)[8],=WP3IK(4)[8],=WP4CNA(4)[8],=WP4XF(4)[8], =AL1VE/R(4)[7],=AL7AU(4)[7],=AL7NI(4)[7],=AL7RT(4)[7],=AL7RT/7(4)[7],=KH2BR/7(4)[7],=KH6JVF(4)[7], =KH6OZ(4)[7],=KH7AL(4)[7],=KH7SS(4)[7],=KL0NT(4)[7],=KL0NV(4)[7],=KL0RN(4)[7],=KL0TF(4)[7], =KL1HE(4)[7],=KL1MW(4)[7],=KL1TV(4)[7],=KL2NZ(4)[7],=KL4CZ(4)[7],=KL7AR(4)[7],=KL7HF(4)[7], =KL7HSG(4)[7],=KL7JGS(4)[7],=KL7JGS/M(4)[7],=KL7JM(4)[7],=KL7JUL(4)[7],=KL7LH(4)[7],=KL7MVX(4)[7], - =KL7YY/7(4)[7],=KL9A(4)[7],=KL9A/7(4)[7],=NH0E(4)[7],=NH6HW(4)[7],=NL7IH(4)[7],=NL7MW(4)[7], - =NL7UI(4)[7],=WH2M(4)[7],=WH6COM(4)[7],=WH6ETU(4)[7],=WH6EVP(4)[7],=WL7A(4)[7],=WL7DP(4)[7], + =KL7YY/7(4)[7],=KL9A(4)[7],=KL9A/7(4)[7],=NH6HW(4)[7],=NL7IH(4)[7],=NL7MW(4)[7],=NL7UI(4)[7], + =WH2M(4)[7],=WH6COM(4)[7],=WH6ETU(4)[7],=WH6EVP(4)[7],=WH6GFE(4)[7],=WL7A(4)[7],=WL7DP(4)[7], =WL7HP/7(4)[7],=WL7I(4)[7], =AL7LU(5)[8],=KL7JFR(5)[8]; Guantanamo Bay: 08: 11: NA: 20.00: 75.00: 5.0: KG4: @@ -1675,9 +1678,9 @@ Guantanamo Bay: 08: 11: NA: 20.00: 75.00: 5.0: KG4: =KG4MA,=KG4NE,=KG4SC,=KG4SS,=KG4WH,=KG4WV,=KG4XP,=KG4ZK,=W1AW/KG4; Mariana Islands: 27: 64: OC: 15.18: -145.72: -10.0: KH0: AH0,KH0,NH0,WH0,=AB2HV,=AB2QH,=AB9HF,=AB9OQ,=AC8CP,=AD5KT,=AD6YP,=AE6OG,=AF4IN,=AF4KH,=AF6EO, - =AH2U,=AJ6K,=AK1JA,=K0FRI,=K8KH,=K8RN,=KB5UAB,=KB9LQG,=KC2WIK,=KC5SPG,=KC7SDC,=KC9GQX,=KD7GJX, - =KF7COQ,=KG2QH,=KG6GQ,=KG6SB,=KG7DCN,=KH0EN/KT,=KH2GV,=KH2O,=KH2VL,=KI5DQL,=KL7QOL,=KQ1J,=KW2X, - =N0J,=N3QD,=N6EAX,=N8CS,=NA1M,=NH2B,=NH2FG,=NO3V,=NQ1J,=NS0C,=NU2A,=W1FPU,=W2OTO,=W3FM,=W3NL, + =AH2U,=AJ6K,=AK1JA,=K0FRI,=K8KH,=K8RN,=KB5UAB,=KB9LQG,=KC2WIK,=KC7SDC,=KC9GQX,=KD7GJX,=KF7COQ, + =KG2QH,=KG6GQ,=KG6SB,=KG7DCN,=KH0EN/KT,=KH2GV,=KH2O,=KH2VL,=KI5DQL,=KL7QOL,=KQ1J,=KW2X,=N0J,=N3QD, + =N4VUC,=N6EAX,=N7NNG,=N8CS,=NA1M,=NH2B,=NH2FG,=NO3V,=NQ1J,=NS0C,=NU2A,=W1FPU,=W2OTO,=W3FM,=W3NL, =W3STX,=W7KFS,=WA6AC,=WE1J,=WH6ZW,=WO2G; Baker & Howland Islands: 31: 61: OC: 0.00: 176.00: 12.0: KH1: AH1,KH1,NH1,WH1; @@ -1686,8 +1689,8 @@ Guam: 27: 64: OC: 13.37: -144.70: -10.0: KH2: =K1IWD,=K2QGC,=K4QFS,=K5GUA,=K5GUM,=KA0RU,=KA1I,=KA6BEG,=KB7OVT,=KB7PQU,=KC2OOX,=KD0AA,=KD7IRV, =KE4YSP,=KE7GMC,=KE7IPG,=KF4UFC,=KF5ULC,=KF7BMU,=KG4BKW,=KG6AGT,=KG6ARL,=KG6DX,=KG6FJG,=KG6JDX, =KG6JKR,=KG6JKT,=KG6TWZ,=KH0DX,=KH0ES,=KH0TF,=KH0UM,=KH6KK,=KI4KKH,=KI4KKI,=KI7SSW,=KJ6AYQ, - =KJ6KCJ,=KK6GVF,=KK7AV,=KM4NVB,=KN4IAS,=KN4LVP,=N0RY,=N2MI,=N5ATC,=NH0A,=NH0B,=NH0Q,=NH7TL,=NP3EZ, - =W5LFA,=W6KV,=W7GVC,=W9MRE,=WA3KNB,=WB7AXZ,=WD6DGS,=WH0AC; + =KJ6KCJ,=KK6GVF,=KK7AV,=KM4NVB,=KN4IAS,=KN4LVP,=N0RY,=N2MI,=NH0A,=NH0B,=NH0Q,=NH7TL,=NP3EZ,=W5LFA, + =W6KV,=W7GVC,=W9MRE,=WA3KNB,=WB7AXZ,=WD6DGS,=WH0AC; Johnston Island: 31: 61: OC: 16.72: 169.53: 10.0: KH3: AH3,KH3,NH3,WH3,=KJ6BZ; Midway Island: 31: 61: OC: 28.20: 177.37: 11.0: KH4: @@ -1706,73 +1709,73 @@ Hawaii: 31: 61: OC: 21.12: 157.48: 10.0: KH6: =KB3IOC,=KB3OXU,=KB3PJS,=KB3SEV,=KB4NGN,=KB5HVJ,=KB5MTI,=KB5NNY,=KB5OWT,=KB5OXR,=KB6CNU,=KB6EGA, =KB6INB,=KB6PKF,=KB6SWL,=KB7AKH,=KB7AKQ,=KB7DDX,=KB7EA,=KB7G,=KB7JB,=KB7LPW,=KB7MEU,=KB7QKJ, =KB7UQH,=KB7UVR,=KB7WDC,=KB7WUP,=KB8SKX,=KC0HFI,=KC0WQU,=KC0YIH,=KC0ZER,=KC1DBY,=KC2CLQ,=KC2GSU, - =KC2HL,=KC2MIU,=KC2PGW,=KC2SRW,=KC2YL,=KC2ZSG,=KC2ZSH,=KC2ZSI,=KC3GZT,=KC4HHS,=KC5GAX,=KC6HOX, - =KC6MCC,=KC6QQI,=KC6RYQ,=KC6SHT,=KC6SWR,=KC6YIO,=KC7ASJ,=KC7AXX,=KC7DUT,=KC7EJC,=KC7HNC,=KC7KAT, - =KC7KAW,=KC7KBA,=KC7KHW,=KC7KJT,=KC7LFM,=KC7NZ,=KC7PLG,=KC7USA,=KC7VHF,=KC7VWU,=KC7YXO,=KC8EFI, - =KC8EJ,=KC8JNV,=KC9AUA,=KC9EQS,=KC9KEX,=KC9NJG,=KC9SBG,=KD0JNO,=KD0OXU,=KD0QLQ,=KD0QLR,=KD0RPD, - =KD0WVZ,=KD0ZSP,=KD3FZ,=KD4GVR,=KD4GW,=KD4ML,=KD4NFW,=KD4QWO,=KD5BSK,=KD5HDA,=KD5HX,=KD5TBQ, - =KD6CVU,=KD6CWF,=KD6EPD,=KD6IPX,=KD6LRA,=KD6NVX,=KD6VTU,=KD7GWI,=KD7GWM,=KD7HTG,=KD7KFT,=KD7LMP, - =KD7SME,=KD7SMV,=KD7TZ,=KD7UV,=KD7UZG,=KD7WJM,=KD8GVO,=KD8LYB,=KE0JSB,=KE0KIE,=KE0TU,=KE2CX, - =KE4DYE,=KE4RNU,=KE4UXQ,=KE4ZXQ,=KE5CGA,=KE5FJM,=KE5UZN,=KE5VQB,=KE6AHX,=KE6AXN,=KE6AXP,=KE6AYZ, - =KE6CQE,=KE6EDJ,=KE6EVT,=KE6JXO,=KE6MKW,=KE6RAW,=KE6TFR,=KE6TIS,=KE6TIX,=KE6TKQ,=KE7FJA,=KE7FSK, - =KE7HEW,=KE7IZS,=KE7JTX,=KE7KRQ,=KE7LWN,=KE7MW,=KE7PEQ,=KE7PIZ,=KE7QML,=KE7RCT,=KE7UAJ,=KE7UV, - =KE7UW,=KF4DWA,=KF4FQR,=KF4IBW,=KF4JLZ,=KF4OOB,=KF4SGA,=KF4UJC,=KF4URD,=KF4VHS,=KF5AHW,=KF5MXM, - =KF5MXP,=KF6BS,=KF6FDG,=KF6IVV,=KF6LWN,=KF6LYU,=KF6MQT,=KF6OHL,=KF6OSA,=KF6PJ,=KF6PQE,=KF6QZD, - =KF6RLP,=KF6YZR,=KF6ZAL,=KF6ZVS,=KF7GNP,=KF7LRS,=KF7OJR,=KF7TUU,=KF7VUK,=KG0XR,=KG4CAN,=KG4FJB, - =KG4HZF,=KG4JKJ,=KG4SGC,=KG4SGV,=KG4TZD,=KG5CH,=KG5CNO,=KG5IVP,=KG6CJA,=KG6CJK,=KG6DV,=KG6HRX, - =KG6IER,=KG6IGY,=KG6JJP,=KG6LFX,=KG6MZJ,=KG6NNF,=KG6NQI,=KG6OOB,=KG6RJI,=KG6SDD,=KG6TFI,=KG6WZD, - =KG6ZRY,=KG7AYU,=KG7CJI,=KG7EUP,=KG7ZJM,=KG9MDR,=KH0AI,=KH0HL,=KH0WJ,=KH2DC,=KH2MD,=KH2TD,=KH2TE, - =KH2YI,=KH3AE,=KH3AE/M,=KH3AF,=KH8Z,=KI4CAU,=KI4HCZ,=KI4NOH,=KI4YAF,=KI4YOG,=KI6CRL,=KI6DVJ, - =KI6EFY,=KI6FTE,=KI6HBZ,=KI6JEC,=KI6LPT,=KI6NOC,=KI6QDQ,=KI6QQJ,=KI6SNP,=KI6VYB,=KI6WOJ,=KI6ZRV, - =KI7AUZ,=KI7EZG,=KI7FJW,=KI7FJX,=KI7FUT,=KI7OS,=KI7QZQ,=KJ4BHO,=KJ4EYV,=KJ4KND,=KJ4WOI,=KJ6CKZ, - =KJ6COM,=KJ6CPN,=KJ6CQT,=KJ6FDF,=KJ6GYD,=KJ6LAW,=KJ6LAX,=KJ6LBI,=KJ6NZH,=KJ6QQT,=KJ6RGW,=KJ6TJZ, - =KK4EEC,=KK4RNF,=KK6BRW,=KK6DWS,=KK6EJ,=KK6GM,=KK6OMX,=KK6PGA,=KK6QAI,=KK6RM,=KK6VJN,=KK6ZQ, - =KK6ZZE,=KK7WR,=KL0TK,=KL1TP,=KL3FN,=KL3JC,=KL7PN,=KL7UB,=KL7XT,=KM4IP,=KM6IK,=KM6RM,=KM6RWE, - =KM6UVP,=KN6BE,=KN6ZU,=KN8AQR,=KO4BNK,=KO6KW,=KO6QT,=KQ6CD,=KQ6M,=KR1LLR,=KU4OY,=KW4JC,=KX6RTG, - =KY1I,=N0CAN,=N0KXY,=N0PJV,=N0RMC,=N0VYO,=N0ZSJ,=N1CBF,=N1CFD,=N1CNQ,=N1IDP,=N1SHV,=N1TEE,=N1TLE, - =N1VOP,=N1YLH,=N2AL,=N2KJU,=N2KLQ,=N3BQY,=N3DJT,=N3FUR,=N3GWR,=N3HQW,=N3RWD,=N3VDM,=N3ZFY,=N4BER, - =N4ERA,=N4ZIW,=N5IWF,=N5JKJ,=N6AI,=N6CGA,=N6DXW,=N6EQZ,=N6GOZ,=N6IKX,=N6KB,=N6NCT,=N6PJQ,=N6QBK, - =N6ZAB,=N7AMY,=N7BLC,=N7BMD,=N7KZB,=N7NYY,=N7ODC,=N7TSV,=N7WBX,=N9GFL,=N9SBL,=NB6R,=ND1A,=NE7SO, - =NG1T,=NH2CC,=NH2CD,=NH2CF,=NH2CQ,=NH2CR,=NH2IB,=NH2IF,=NH2II,=NH2IJ,=NH2IO,=NH2JO,=NH2KF,=NH2KH, - =NH2YL,=NH2Z,=NI1J,=NL7UW,=NM2B,=NO0H,=NT0DA,=NT4AA,=NZ2F,=W0UNX,=W1BMB,=W1ETT,=W1JJS,=W2UNS, - =W3ZRT,=W4PRO,=W4YQS,=W5FJG,=W6CAG,=W6CWJ,=W6KEV,=W6KIT,=W6KPI,=W6MQB,=W6MRJ,=W6NBK,=W6QPV,=W6ROM, - =W6SHH,=W6UNX,=W7EHP,=W7NVQ,=W7NX,=W7RCR,=W7UEA,=W8AYD,=W8JAY,=W8WH,=WA0FUR,=WA0NHD,=WA0TFB, - =WA2AUI,=WA3ZEM,=WA6AW,=WA6CZL,=WA6ECX,=WA6IIQ,=WA6JDA,=WA6JJQ,=WA6QDQ,=WA6UVF,=WA7ESE,=WA7HEO, - =WA7TFE,=WA7ZK,=WA8HEB,=WA8JQP,=WB0RUA,=WB0TZQ,=WB2AHM,=WB2SQW,=WB4JTT,=WB4MNF,=WB5ZDH,=WB5ZOV, - =WB6CVJ,=WB6FOX,=WB6PIO,=WB6PJT,=WB6SAA,=WB6VBM,=WB8NCD,=WB9SMM,=WC6B,=WD0FTF,=WD0LFN,=WD4MLF, - =WD8LIB,=WD8OBO,=WH2Y,=WH7K,=WU0H,=WV0Z,=WV6K,=WY6F; + =KC2HL,=KC2MIU,=KC2PGW,=KC2SRW,=KC2YL,=KC2ZSG,=KC2ZSH,=KC2ZSI,=KC3BW,=KC3GZT,=KC4HHS,=KC4TJB, + =KC5GAX,=KC6HOX,=KC6JAE,=KC6MCC,=KC6QQI,=KC6RYQ,=KC6SHT,=KC6SWR,=KC6YIO,=KC7ASJ,=KC7AXX,=KC7DUT, + =KC7EJC,=KC7HNC,=KC7KAT,=KC7KAW,=KC7KBA,=KC7KHW,=KC7KJT,=KC7LFM,=KC7NZ,=KC7PLG,=KC7USA,=KC7VHF, + =KC7VWU,=KC7YXO,=KC8EFI,=KC8EJ,=KC8JNV,=KC9AUA,=KC9EQS,=KC9KEX,=KC9NJG,=KC9SBG,=KD0JNO,=KD0OXU, + =KD0QLQ,=KD0QLR,=KD0RPD,=KD0WVZ,=KD0ZSP,=KD3FZ,=KD4GVR,=KD4GW,=KD4ML,=KD4NFW,=KD4QWO,=KD5BSK, + =KD5HDA,=KD5HX,=KD5TBQ,=KD6CVU,=KD6CWF,=KD6EPD,=KD6IPX,=KD6LRA,=KD6NVX,=KD6VTU,=KD7GWI,=KD7GWM, + =KD7HTG,=KD7KFT,=KD7LMP,=KD7SME,=KD7SMV,=KD7TZ,=KD7UV,=KD7UZG,=KD7WJM,=KD8GVO,=KD8LYB,=KE0JSB, + =KE0KIE,=KE0TU,=KE2CX,=KE4DYE,=KE4RNU,=KE4UXQ,=KE4ZXQ,=KE5CGA,=KE5FJM,=KE5UZN,=KE5VQB,=KE6AHX, + =KE6AXN,=KE6AXP,=KE6AYZ,=KE6CQE,=KE6EDJ,=KE6EVT,=KE6JXO,=KE6MKW,=KE6RAW,=KE6TFR,=KE6TIS,=KE6TIX, + =KE6TKQ,=KE7FJA,=KE7FSK,=KE7HEW,=KE7IZS,=KE7JTX,=KE7KRQ,=KE7LWN,=KE7MW,=KE7PEQ,=KE7PIZ,=KE7QML, + =KE7RCT,=KE7UAJ,=KE7UV,=KE7UW,=KF4DWA,=KF4FQR,=KF4IBW,=KF4JLZ,=KF4OOB,=KF4SGA,=KF4UJC,=KF4URD, + =KF4VHS,=KF5AHW,=KF5MXM,=KF5MXP,=KF6BS,=KF6FDG,=KF6IVV,=KF6LWN,=KF6LYU,=KF6MQT,=KF6OHL,=KF6OSA, + =KF6PJ,=KF6PQE,=KF6QZD,=KF6RLP,=KF6YZR,=KF6ZAL,=KF6ZVS,=KF7GNP,=KF7LRS,=KF7OJR,=KF7TUU,=KF7VUK, + =KG0XR,=KG4CAN,=KG4FJB,=KG4HZF,=KG4JKJ,=KG4SGC,=KG4SGV,=KG4TZD,=KG5CH,=KG5CNO,=KG5IVP,=KG6CJA, + =KG6CJK,=KG6DV,=KG6HRX,=KG6IER,=KG6IGY,=KG6JJP,=KG6LFX,=KG6MZJ,=KG6NNF,=KG6NQI,=KG6OOB,=KG6RJI, + =KG6SDD,=KG6TFI,=KG6WZD,=KG6ZRY,=KG7AYU,=KG7CJI,=KG7EUP,=KG7TSD,=KG7ZJM,=KG9MDR,=KH0AI,=KH0HL, + =KH0WJ,=KH2DC,=KH2MD,=KH2TD,=KH2TE,=KH2YI,=KH3AE,=KH3AE/M,=KH3AF,=KH8Z,=KI4CAU,=KI4HCZ,=KI4NOH, + =KI4YAF,=KI4YOG,=KI6CRL,=KI6DVJ,=KI6EFY,=KI6FTE,=KI6HBZ,=KI6JEC,=KI6LPT,=KI6NOC,=KI6QDQ,=KI6QQJ, + =KI6SNP,=KI6VYB,=KI6WOJ,=KI6ZRV,=KI7AUZ,=KI7EZG,=KI7FJW,=KI7FJX,=KI7FUT,=KI7OS,=KI7QZQ,=KJ4BHO, + =KJ4EYV,=KJ4KND,=KJ4WOI,=KJ6CKZ,=KJ6COM,=KJ6CPN,=KJ6CQT,=KJ6FDF,=KJ6GYD,=KJ6LAW,=KJ6LAX,=KJ6LBI, + =KJ6NZH,=KJ6QQT,=KJ6RGW,=KJ6TJZ,=KK4EEC,=KK4RNF,=KK6BRW,=KK6DWS,=KK6EJ,=KK6GM,=KK6OMX,=KK6PGA, + =KK6RM,=KK6VJN,=KK6ZQ,=KK6ZZE,=KK7WR,=KL0TK,=KL1TP,=KL3FN,=KL3JC,=KL7PN,=KL7UB,=KL7XT,=KM4IP, + =KM6IK,=KM6RM,=KM6RWE,=KM6UVP,=KN6BE,=KN6ZU,=KN8AQR,=KO4BNK,=KO6KW,=KO6QT,=KQ6CD,=KQ6M,=KR1LLR, + =KU4OY,=KW4JC,=KX6RTG,=KY1I,=N0CAN,=N0KXY,=N0PJV,=N0RMC,=N0VYO,=N0ZSJ,=N1CBF,=N1CFD,=N1CNQ,=N1IDP, + =N1SHV,=N1TEE,=N1TLE,=N1VOP,=N1YLH,=N2AL,=N2KJU,=N2KLQ,=N3BQY,=N3DJT,=N3FUR,=N3GWR,=N3HQW,=N3RWD, + =N3VDM,=N3ZFY,=N4BER,=N4ERA,=N4ZIW,=N5IWF,=N5JKJ,=N6CGA,=N6DXW,=N6EQZ,=N6GOZ,=N6IKX,=N6KB,=N6NCT, + =N6PJQ,=N6QBK,=N6XLB,=N6ZAB,=N7AMY,=N7BLC,=N7BMD,=N7KZB,=N7NYY,=N7ODC,=N7TSV,=N7WBX,=N9GFL,=N9SBL, + =NB6R,=ND1A,=NE7SO,=NG1T,=NH2CC,=NH2CD,=NH2CF,=NH2CQ,=NH2CR,=NH2IB,=NH2IF,=NH2II,=NH2IJ,=NH2IO, + =NH2JO,=NH2KF,=NH2KH,=NH2YL,=NH2Z,=NI1J,=NL7UW,=NO0H,=NT0DA,=NT4AA,=NZ2F,=W0UNX,=W1BMB,=W1ETT, + =W1JJS,=W2UNS,=W3ZRT,=W4PRO,=W4YQS,=W5FJG,=W6CAG,=W6CWJ,=W6KEV,=W6KIT,=W6KPI,=W6MQB,=W6MRJ,=W6NBK, + =W6QPV,=W6ROM,=W6SHH,=W6UNX,=W7EHP,=W7NVQ,=W7NX,=W7RCR,=W7TEN,=W7UEA,=W8AYD,=W8JAY,=W8WH,=WA0FUR, + =WA0NHD,=WA0TFB,=WA2AUI,=WA3ZEM,=WA6AW,=WA6CZL,=WA6ECX,=WA6IIQ,=WA6JDA,=WA6JJQ,=WA6QDQ,=WA6UVF, + =WA7ESE,=WA7HEO,=WA7TFE,=WA7WSU,=WA7ZK,=WA8HEB,=WA8JQP,=WB0RUA,=WB0TZQ,=WB2AHM,=WB2SQW,=WB4JTT, + =WB4MNF,=WB5ZDH,=WB5ZOV,=WB6CVJ,=WB6PIO,=WB6PJT,=WB6SAA,=WB6VBM,=WB8NCD,=WB9SMM,=WC6B,=WD0FTF, + =WD0LFN,=WD4MLF,=WD8LIB,=WD8OBO,=WH2Y,=WH7K,=WU0H,=WV0Z,=WV6K,=WY6F; Kure Island: 31: 61: OC: 29.00: 178.00: 10.0: KH7K: AH7K,KH7K,NH7K,WH7K; American Samoa: 32: 62: OC: -14.32: 170.78: 11.0: KH8: AH8,KH8,NH8,WH8,=AB9OH,=AF7MN,=KD8TFY,=KH0WF,=KM4YJH,=KS6EL,=KS6FS,=WH6BAR,=WL7BMP; Swains Island: 32: 62: OC: -11.05: 171.25: 11.0: KH8/s: - =K9CS/KH8S,=KH6BK/KH8,=KH8/WH7S,=KH8S/K3UY,=KH8S/NA6M,=KH8S/W8TN,=KH8SI,=NH8S,=W8S; + =K9CS/KH8S,=KH6BK/KH8,=KH8/WH7S,=KH8S/K3UY,=KH8S/NA6M,=KH8S/W8TN,=KH8SI,=NH8S; Wake Island: 31: 65: OC: 19.28: -166.63: -12.0: KH9: AH9,KH9,NH9,WH9; Alaska: 01: 01: NA: 61.40: 148.87: 8.0: KL: - AL,KL,NL,WL,=AA0NN,=AA7TV,=AA8FY,=AB0IC,=AB0WK,=AB0WS,=AB5JB,=AB7SB,=AB7YB,=AB7YO,=AB8XX,=AB9OM, - =AC3DF,=AC9QX,=AD0DK,=AD0FQ,=AD0ZL,=AD3BJ,=AD6GC,=AD7MF,=AD7VV,=AE1DJ,=AE4QH,=AE5CP,=AE5EX,=AE5FN, - =AE5IR,=AE7ES,=AE7KS,=AE7SB,=AF7FV,=AG5LN,=AG5OF,=AH0AH,=AH0H,=AJ4MY,=AJ4ZI,=AK4CM,=K0AZZ,=K0BHC, - =K1BZD,=K1KAO,=K1MAT,=K1TMT,=K2ICW,=K2NPS,=K3JMI,=K4DRC,=K4ETC,=K4HOE,=K4PSG,=K4RND,=K4WPK,=K5DOW, - =K5HL,=K5RD,=K5RSO,=K5RZW,=K5TDN,=K6ANE,=K6GKW,=K7BUF,=K7CAP,=K7EJM,=K7GRW,=K7LOP,=K7MVX,=K7OCL, - =K7RDR,=K7SGA,=K7UNX,=K7VRK,=K8IEL,=K8OUA,=K9DUG,=KA0SIM,=KA0YPV,=KA1NCN,=KA2TJZ,=KA2ZSD,=KA6DBB, - =KA6UGT,=KA7ETQ,=KA7HHF,=KA7HOX,=KA7JOR,=KA7PUB,=KA7TMU,=KA7TOM,=KA7UKN,=KA7VCR,=KA7YEY,=KA9GYQ, - =KB0APK,=KB0LOW,=KB0TSU,=KB0UGE,=KB0UVK,=KB1CRT,=KB1FCX,=KB1KLH,=KB1PHP,=KB1QCD,=KB1QCE,=KB1SYV, - =KB1WQL,=KB2FWF,=KB2JWV,=KB2ZME,=KB3CYB,=KB3JFK,=KB3NCR,=KB3VQE,=KB4DX,=KB5DNT,=KB5HEV,=KB5NOW, - =KB5UWU,=KB5YLG,=KB6DKJ,=KB7AMA,=KB7BNG,=KB7BUF,=KB7DEL,=KB7FXJ,=KB7IBI,=KB7JA,=KB7LJZ,=KB7LON, - =KB7PHT,=KB7QLB,=KB7RWK,=KB7RXZ,=KB7SIQ,=KB7UBH,=KB7VFZ,=KB7YEC,=KB7ZVZ,=KB8QKR,=KB8SBG,=KB8TEW, - =KB8VYJ,=KB9MWG,=KB9RWE,=KB9RWJ,=KB9THD,=KB9YGR,=KC0ATI,=KC0CWG,=KC0CYR,=KC0EF,=KC0EFL,=KC0GDH, - =KC0GHH,=KC0GLN,=KC0LLL,=KC0NSV,=KC0OKQ,=KC0PSZ,=KC0TK,=KC0TZL,=KC0UYK,=KC0VDN,=KC0WSG,=KC0YSW, - =KC1DL,=KC1KPL,=KC1LVR,=KC2BYX,=KC2HRV,=KC2KMU,=KC2OJP,=KC2PCV,=KC2PIO,=KC3BWW,=KC3DBK,=KC4MXQ, - =KC4MXR,=KC5BNN,=KC5CHO,=KC5DJA,=KC5IBS,=KC5KIG,=KC5LKF,=KC5LKG,=KC5NHL,=KC5QPJ,=KC5THY,=KC5YIB, - =KC5YOX,=KC5ZAA,=KC6FRJ,=KC6RJW,=KC7BUL,=KC7COW,=KC7DNT,=KC7ENM,=KC7FWK,=KC7GSO,=KC7HJM,=KC7HPF, - =KC7IKE,=KC7IKF,=KC7INC,=KC7MIJ,=KC7MPY,=KC7MRO,=KC7OQZ,=KC7PLJ,=KC7PLQ,=KC7RCP,=KC7TYT,=KC7UZY, - =KC7WOA,=KC7YZR,=KC8GKK,=KC8MVW,=KC8NOY,=KC8WWS,=KC8YIV,=KC9CMY,=KC9HIK,=KC9IKH,=KC9SXX,=KC9VLD, - =KD0CLU,=KD0CZC,=KD0DHU,=KD0FJG,=KD0IXU,=KD0JJB,=KD0NSG,=KD0ONB,=KD0VAK,=KD0VAL,=KD0ZOD,=KD2CTE, - =KD2GKT,=KD2NPD,=KD2SKJ,=KD4EYW,=KD4MEY,=KD4QJL,=KD5DNA,=KD5DWV,=KD5GAL,=KD5MQC,=KD5QPD,=KD5RVD, - =KD5WCF,=KD5WEV,=KD5WYP,=KD6DLB,=KD6RVY,=KD6YKS,=KD7APU,=KD7AWK,=KD7BBX,=KD7BGP,=KD7DIG,=KD7DUQ, - =KD7FGL,=KD7FUL,=KD7HXF,=KD7KRK,=KD7MGO,=KD7OOS,=KD7QAR,=KD7SIX,=KD7TOJ,=KD7TWB,=KD7UAG,=KD7VOI, - =KD7VXE,=KD7ZTJ,=KD8DDY,=KD8GEL,=KD8GMS,=KD8JOU,=KD8KQL,=KD8LNA,=KD8WMX,=KD9TK,=KE0DYM,=KE0KKI, + AL,KL,NL,WL,=AA0NN,=AA7TV,=AA8FY,=AB0IC,=AB0WK,=AB0WS,=AB5JB,=AB7YB,=AB7YO,=AB8XX,=AB9OM,=AC3DF, + =AC9QX,=AD0DK,=AD0FQ,=AD0ZL,=AD3BJ,=AD6GC,=AD7MF,=AD7VV,=AE1DJ,=AE4QH,=AE5CP,=AE5EX,=AE5FN,=AE5IR, + =AE7ES,=AE7KS,=AE7SB,=AF7FV,=AG5LN,=AG5OF,=AH0AH,=AH0H,=AJ4MY,=AJ4ZI,=AK4CM,=K0AZZ,=K0BHC,=K1BZD, + =K1KAO,=K1MAT,=K1TMT,=K2ICW,=K2NPS,=K3JMI,=K4DRC,=K4ETC,=K4HOE,=K4PSG,=K4RND,=K4WPK,=K5DOW,=K5HL, + =K5RD,=K5RSO,=K5RZW,=K5TDN,=K6ANE,=K6GKW,=K7BUF,=K7CAP,=K7EJM,=K7GRW,=K7LOP,=K7MVX,=K7OCL,=K7RDR, + =K7SGA,=K7UNX,=K7VRK,=K8IEL,=K8OUA,=K9DUG,=KA0SIM,=KA0YPV,=KA1NCN,=KA2TJZ,=KA2ZSD,=KA6DBB,=KA6UGT, + =KA7ETQ,=KA7HHF,=KA7HOX,=KA7JOR,=KA7PUB,=KA7TMU,=KA7TOM,=KA7UKN,=KA7VCR,=KA7YEY,=KA9GYQ,=KB0APK, + =KB0LOW,=KB0TSU,=KB0UGE,=KB0UVK,=KB1CRT,=KB1FCX,=KB1KLH,=KB1PHP,=KB1QCD,=KB1QCE,=KB1SYV,=KB1WQL, + =KB2FWF,=KB2JWV,=KB2ZME,=KB3CYB,=KB3JFK,=KB3NCR,=KB3VQE,=KB4DX,=KB5DNT,=KB5HEV,=KB5NOW,=KB5UWU, + =KB5YLG,=KB6DKJ,=KB7AMA,=KB7BNG,=KB7BUF,=KB7DEL,=KB7FXJ,=KB7IBI,=KB7JA,=KB7LJZ,=KB7LON,=KB7PHT, + =KB7QLB,=KB7RWK,=KB7RXZ,=KB7SIQ,=KB7UBH,=KB7VFZ,=KB7YEC,=KB7ZVZ,=KB8QKR,=KB8SBG,=KB8TEW,=KB8VYJ, + =KB9MWG,=KB9RWE,=KB9RWJ,=KB9THD,=KB9YGR,=KC0ATI,=KC0CWG,=KC0CYR,=KC0EF,=KC0EFL,=KC0GDH,=KC0GHH, + =KC0GLN,=KC0LLL,=KC0NSV,=KC0OKQ,=KC0PSZ,=KC0TK,=KC0TZL,=KC0UYK,=KC0VDN,=KC0WSG,=KC0YSW,=KC1DL, + =KC1KPL,=KC1LVR,=KC2BYX,=KC2HRV,=KC2KMU,=KC2OJP,=KC2PCV,=KC2PIO,=KC3BWW,=KC3DBK,=KC4MXQ,=KC4MXR, + =KC5BNN,=KC5CHO,=KC5DJA,=KC5IBS,=KC5KIG,=KC5LKF,=KC5LKG,=KC5NHL,=KC5QPJ,=KC5THY,=KC5YIB,=KC5YOX, + =KC5ZAA,=KC6FRJ,=KC6RJW,=KC7BUL,=KC7COW,=KC7DNT,=KC7ENM,=KC7FWK,=KC7GSO,=KC7HJM,=KC7HPF,=KC7IKE, + =KC7IKF,=KC7INC,=KC7MIJ,=KC7MPY,=KC7MRO,=KC7OQZ,=KC7PLJ,=KC7PLQ,=KC7RCP,=KC7TYT,=KC7UZY,=KC7WOA, + =KC7YZR,=KC8GKK,=KC8MVW,=KC8NOY,=KC8WWS,=KC8YIV,=KC9CMY,=KC9HIK,=KC9IKH,=KC9SXX,=KC9VLD,=KD0CLU, + =KD0CZC,=KD0DHU,=KD0FJG,=KD0IXU,=KD0JJB,=KD0NSG,=KD0ONB,=KD0VAK,=KD0VAL,=KD0ZOD,=KD2CTE,=KD2GKT, + =KD2NPD,=KD2SKJ,=KD4EYW,=KD4MEY,=KD4QJL,=KD5DNA,=KD5DWV,=KD5GAL,=KD5MQC,=KD5QPD,=KD5RVD,=KD5WCF, + =KD5WEV,=KD5WYP,=KD6DLB,=KD6RVY,=KD6YKS,=KD7APU,=KD7AWK,=KD7BBX,=KD7BGP,=KD7DIG,=KD7DUQ,=KD7FGL, + =KD7FUL,=KD7HXF,=KD7KRK,=KD7MGO,=KD7OOS,=KD7QAR,=KD7SIX,=KD7TOJ,=KD7TWB,=KD7UAG,=KD7VOI,=KD7VXE, + =KD7ZTJ,=KD8DDY,=KD8GEL,=KD8GMS,=KD8JOU,=KD8KQL,=KD8LNA,=KD8WMX,=KD9TK,=KE0DYM,=KE0KKI,=KE0PRX, =KE4DGR,=KE4MQD,=KE4YEI,=KE4YLG,=KE5CVD,=KE5CVT,=KE5DQV,=KE5FOC,=KE5GEB,=KE5HHR,=KE5JHS,=KE5JTB, =KE5NLG,=KE5QDJ,=KE5QDK,=KE5WGZ,=KE5ZRK,=KE5ZUM,=KE6DLM,=KE6DUJ,=KE6DXH,=KE6IPM,=KE6SYD,=KE6TCE, =KE6VUB,=KE7DFO,=KE7ELL,=KE7EOP,=KE7EPZ,=KE7FNC,=KE7FXM,=KE7GOE,=KE7HMJ,=KE7KYU,=KE7PXV,=KE7TRX, @@ -1796,10 +1799,10 @@ Alaska: 01: 01: NA: 61.40: 148.87: 8.0: KL: =N8JKB,=N8KCJ,=N8KYW,=N8SUG,=N9AIG,=N9YD,=NA7WM,=NC4OI,=NE7EK,=NH2GZ,=NH2LS,=NH7UO,=NM0H,=NN4NN, =NP4FU,=NU9Q,=NW7F,=W0EZM,=W0FJN,=W0OPT,=W0RWS,=W0UZJ,=W0ZEE,=W1JM,=W1LYD,=W1RSC,=W1ZKA,=W2DLS, =W2KRZ,=W3ICG,=W3JPN,=W3MKG,=W4AUL,=W4BMR,=W4RSB,=W5JKT,=W6DDP,=W6GTE,=W6ROW,=W7APM,=W7DDG,=W7EIK, - =W7JMR,=W7PWA,=W7RAZ,=W7ROS,=W7WEZ,=W7ZWT,=W8MDD,=W8PVZ,=W8TCX,=W9CG,=W9ITU,=W9JMC,=WA0JS,=WA1FVJ, - =WA2BGL,=WA2BIW,=WA6GFS,=WA7B,=WA7MDS,=WA7PXH,=WA7USX,=WA7YXF,=WB0CMZ,=WB1BR,=WB1GZL,=WB1ILS, - =WB6COP,=WB9JZL,=WD6CET,=WE3B,=WH6CYY,=WH6DPL,=WH6DX,=WH6GBB,=WH6GCO,=WH7AK,=WJ8M,=WP4IYI,=WT5T, - =WW4AL,=WX1NCC; + =W7JMR,=W7PWA,=W7RAZ,=W7ROS,=W7WEZ,=W7ZWT,=W8MDD,=W8PVZ,=W8TCX,=W9CG,=W9ITU,=W9JMC,=W9WLN,=WA0JS, + =WA1FVJ,=WA2BGL,=WA2BIW,=WA6GFS,=WA7B,=WA7MDS,=WA7PXH,=WA7USX,=WA7YXF,=WB0CMZ,=WB1BR,=WB1GZL, + =WB1ILS,=WB6COP,=WB9JZL,=WD6CET,=WE3B,=WH6CYY,=WH6DPL,=WH6DX,=WH6GBB,=WH6GCO,=WH7AK,=WJ6AA,=WJ8M, + =WP4IYI,=WT5T,=WW4AL,=WX1NCC; Navassa Island: 08: 11: NA: 18.40: 75.00: 5.0: KP1: KP1,NP1,WP1; US Virgin Islands: 08: 11: NA: 17.73: 64.80: 4.0: KP2: @@ -1810,12 +1813,12 @@ US Virgin Islands: 08: 11: NA: 17.73: 64.80: 4.0: KP2: =W2KW/KV4,=W3K/KD2CLB,=W4LIS,=WA4HLB,=WB2KQW,=WB4WFU,=WD8AHQ; Puerto Rico: 08: 11: NA: 18.18: 66.55: 4.0: KP4: KP3,KP4,NP3,NP4,WP3,WP4,=AA2ZN,=AB2DR,=AF4OU,=AF5IZ,=AG4CD,=AI4EZ,=K1NDN,=K4C/LH,=K4LCR,=K4PFH, - =K5YJR,=K6BOT,=K8ZB,=K9JOS,=KA2ABJ,=KA2GNG,=KA2MBR,=KA2UCX,=KA2YGB,=KA3PNP,=KA3ZGQ,=KA7URH, - =KA9UTY,=KB0AQB,=KB0JRR,=KB0TEP,=KB1CKX,=KB1IJU,=KB1KDP,=KB1RUQ,=KB1TUA,=KB1UEK,=KB1UZV,=KB1ZKF, - =KB2ALR,=KB2BVX,=KB2CIE,=KB2KWB,=KB2MMX,=KB2NMT,=KB2NYN,=KB2OIF,=KB2OMN,=KB2OPM,=KB2QQK,=KB2RYP, - =KB2TID,=KB2VHY,=KB2WKT,=KB2YKJ,=KB3BPK,=KB3BTN,=KB3LUV,=KB3SBO,=KB3TTV,=KB8ZVP,=KB9OWX,=KB9RZD, - =KB9YVE,=KB9YVF,=KC1CRV,=KC1CUF,=KC1DRV,=KC1IHB,=KC1IHO,=KC1JLY,=KC1KZI,=KC2BZZ,=KC2CJL,=KC2CTM, - =KC2DUO,=KC2EMM,=KC2ERS,=KC2ERU,=KC2GRZ,=KC2HAS,=KC2JNE,=KC2LET,=KC2TE,=KC2UXP,=KC2VCR,=KC3GEO, + =K5YJR,=K6BOT,=K9JOS,=KA2ABJ,=KA2GNG,=KA2MBR,=KA2UCX,=KA2YGB,=KA3ZGQ,=KA4ROB,=KA7URH,=KA9UTY, + =KB0AQB,=KB0JRR,=KB0TEP,=KB1CKX,=KB1IJU,=KB1KDP,=KB1RUQ,=KB1TUA,=KB1UEK,=KB1UZV,=KB1ZKF,=KB2ALR, + =KB2BVX,=KB2CIE,=KB2KWB,=KB2MMX,=KB2NMT,=KB2NYN,=KB2OIF,=KB2OMN,=KB2OPM,=KB2QQK,=KB2RYP,=KB2TID, + =KB2VHY,=KB2WKT,=KB2YKJ,=KB3BPK,=KB3BTN,=KB3LUV,=KB3SBO,=KB3TTV,=KB8ZVP,=KB9OWX,=KB9RZD,=KB9YVE, + =KB9YVF,=KC1CRV,=KC1CUF,=KC1DRV,=KC1IHB,=KC1IHO,=KC1JLY,=KC1KZI,=KC2BZZ,=KC2CJL,=KC2CTM,=KC2DUO, + =KC2EMM,=KC2ERS,=KC2ERU,=KC2GRZ,=KC2HAS,=KC2JNE,=KC2LET,=KC2TE,=KC2UXP,=KC2VCR,=KC3GEO,=KC3JYF, =KC4ADN,=KC5DKT,=KC5FWS,=KC8BFN,=KC8IRI,=KD2KPC,=KD2VQ,=KD4TVS,=KD5DVV,=KD5PKH,=KD9GIZ,=KD9MRY, =KE0AYJ,=KE0GFK,=KE0SH,=KE1MA,=KE3WW,=KE4GGD,=KE4GYA,=KE4SKH,=KE4THL,=KE4WUE,=KE5LNG,=KF4KPO, =KF4TZG,=KF4VYH,=KF4WTX,=KF4ZDB,=KF5YGN,=KF5YGX,=KF6OGJ,=KG4EEG,=KG4EEL,=KG4GYO,=KG4IRC,=KG4IVO, @@ -1825,9 +1828,9 @@ Puerto Rico: 08: 11: NA: 18.18: 66.55: 4.0: KP4: =KN4MNT,=KN4NLZ,=KN4ODN,=KN4QBT,=KN4QZZ,=KN4REC,=KN4SKZ,=KN4TNC,=KN4UAN,=KP2H,=KP2Z,=KP3CW/SKP, =KP3RE/LGT,=KP3RE/LH,=KP3RE/LT,=KP4ES/L,=KP4ES/LGT,=KP4ES/LH,=KP4FD/IARU,=KP4FRA/IARU,=KP4FRD/LH, =KP4MD/P,=KP4VP/LH,=KR4SQ,=KU4JI,=N0XAR,=N1CN,=N1HRV,=N1JFL,=N1QVU,=N1SCD,=N1SZM,=N1VCW,=N1YAY, - =N1ZJC,=N2FVA,=N2IBR,=N2KKN,=N2KUE,=N2OUS,=N2PGO,=N3JAM,=N3VIJ,=N3VVW,=N3YUB,=N3ZII,=N4CIE,=N4JZD, - =N4LER,=N4MMT,=N4NDL,=N4UK,=N6NVD,=N6RHF,=NB0G,=NP3M/LH,=NP4VO/LH,=W1AW/PR,=W6WAW,=W9JS,=W9NKE, - =WA2RVA,=WB2AC,=WB2HMY,=WB5YOF,=WB7ADC,=WB7VVV,=WD4LOL,=WP4L/TP,=WQ2N; + =N1ZJC,=N2FVA,=N2IBR,=N2KKN,=N2KUE,=N2OUS,=N2PGO,=N3VIJ,=N3VVW,=N3YUB,=N3ZII,=N4CIE,=N4JZD,=N4LER, + =N4MMT,=N4NDL,=N4UK,=N6NVD,=N6RHF,=N8MQ,=NB0G,=NP3M/LH,=NP4VO/LH,=W1AW/PR,=W6WAW,=W9JS,=W9NKE, + =WA2RVA,=WB2HMY,=WB5YOF,=WB7ADC,=WB7VVV,=WP4L/TP,=WQ2N; Desecheo Island: 08: 11: NA: 18.08: 67.88: 4.0: KP5: KP5,NP5,WP5; Norway: 14: 18: EU: 61.00: -9.00: -1.0: LA: @@ -1854,27 +1857,27 @@ Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU: =LU1EY/D,=LU1HBD/D,=LU1HLH/D,=LU1KCQ/D,=LU1UAG/D,=LU1VDF/D,=LU1VOF/D,=LU1VYL/D,=LU1XWC/E,=LU1XZ/D, =LU1YY/D,=LU2AAS/D,=LU2ABT/D,=LU2AEZ/D,=LU2AFE/D,=LU2AGQ/D,=LU2AHB/D,=LU2ALE/D,=LU2AMM/D, =LU2AOZ/D,=LU2AVG/D,=LU2AVW/D,=LU2BJA/D,=LU2BN/D,=LU2BOE/D,=LU2BPM/D,=LU2CDE/D,=LU2CDO/D, - =LU2CHP/D,=LU2CM/D,=LU2CRV/D,=LU2DAR/D,=LU2DB/D,=LU2DG/D,=LU2DHM/D,=LU2DJB/D,=LU2DJC/D,=LU2DJL/D, - =LU2DKN/D,=LU2DPW/D,=LU2DRT/D,=LU2DT/D,=LU2DT/D/LH,=LU2DT/LGT,=LU2DT/LH,=LU2DVF/D,=LU2ED/D, - =LU2EDC/D,=LU2EE/D,=LU2EE/E,=LU2EFI/D,=LU2EGA/D,=LU2EGI/D,=LU2EGP/D,=LU2EHA/D,=LU2EIT/D,=LU2EJL/D, - =LU2EK/D,=LU2ELT/D,=LU2EMQ/D,=LU2ENG/D,=LU2ENH/D,=LU2EPL/D,=LU2EPP/D,=LU2ERC/D,=LU2FBX/D, - =LU2FGD/D,=LU2FNH/D,=LU2HOD/D,=LU2JFC/D,=LU2VDV/D,=LU2YF/D,=LU3AAL/D,=LU3ADC/D,=LU3AJL/D, - =LU3AOI/D,=LU3ARE/D,=LU3ARM/D,=LU3AYE/D,=LU3CA/D,=LU3CM/D,=LU3CRA/D,=LU3CT/D,=LU3DAR/D,=LU3DAT/D, - =LU3DAT/E,=LU3DC/D,=LU3DEY/D,=LU3DFD/D,=LU3DH/D,=LU3DHF/D,=LU3DJA/D,=LU3DJI/D,=LU3DJT/D,=LU3DK/D, - =LU3DLF/D,=LU3DMZ/D,=LU3DO/D,=LU3DOC/D,=LU3DP/D,=LU3DPH/D,=LU3DQJ/D,=LU3DR/D,=LU3DRP/D,=LU3DRP/E, - =LU3DXG/D,=LU3DXI/D,=LU3DY/D,=LU3DYN/D,=LU3DZO/D,=LU3EBS/D,=LU3ED/D,=LU3EDU/D,=LU3EFL/D,=LU3EJ/L, - =LU3EJD/D,=LU3ELR/D,=LU3EMB/D,=LU3EOU/D,=LU3EP/D,=LU3ERU/D,=LU3ES/D,=LU3ESY/D,=LU3EZA/D,=LU3FCI/D, - =LU3HKA/D,=LU4AA/D,=LU4AAO/D,=LU4AAO/E,=LU4ACA/D,=LU4ADE/D,=LU4AJC/D,=LU4ARU/D,=LU4BAN/D, - =LU4BFP/D,=LU4BMG/D,=LU4BR/D,=LU4CMF/D,=LU4DBL/D,=LU4DBP/D,=LU4DBT/D,=LU4DBV/D,=LU4DCE/D, - =LU4DCY/D,=LU4DGC/D,=LU4DHA/D,=LU4DHC/D,=LU4DHE/D,=LU4DIS/D,=LU4DJB/D,=LU4DK/D,=LU4DLJ/D, - =LU4DLL/D,=LU4DLN/D,=LU4DMI/D,=LU4DPB/D,=LU4DQ/D,=LU4DRC/D,=LU4DRH/D,=LU4DRH/E,=LU4DVD/D, - =LU4EAE/D,=LU4EET/D,=LU4EGP/D,=LU4EHP/D,=LU4EJ/D,=LU4EL/D,=LU4ELE/D,=LU4EOU/D,=LU4ERS/D,=LU4ESP/D, - =LU4ETD/D,=LU4ETN/D,=LU4EV/D,=LU4HSA/D,=LU4HTD/D,=LU4MA/D,=LU4UWZ/D,=LU4UZW/D,=LU4VEN/D,=LU4VSD/D, - =LU4WAP/D,=LU5AHN/D,=LU5ALE/D,=LU5ALS/D,=LU5AM/D,=LU5ANL/D,=LU5AQV/D,=LU5ARS/D,=LU5ASA/D, - =LU5AVD/D,=LU5BDS/D,=LU5BE/D,=LU5BTL/D,=LU5CBA/D,=LU5CRE/D,=LU5DA/D,=LU5DA/E,=LU5DAS/D,=LU5DCO/D, - =LU5DDH/D,=LU5DEM/D,=LU5DF/D,=LU5DFR/D,=LU5DFT/D,=LU5DGG/D,=LU5DGR/D,=LU5DHE/D,=LU5DIT/D, - =LU5DJE/D,=LU5DKE/D,=LU5DLH/D,=LU5DLT/D,=LU5DLZ/D,=LU5DMI/D,=LU5DMP/D,=LU5DMR/D,=LU5DQ/D, - =LU5DRV/D,=LU5DSH/D,=LU5DSM/D,=LU5DT/D,=LU5DTB/D,=LU5DTF/D,=LU5DUC/D,=LU5DVB/D,=LU5DWS/D, + =LU2CHP/D,=LU2CM/D,=LU2CRV/D,=LU2DAR/D,=LU2DB/D,=LU2DG/D,=LU2DHM/D,=LU2DJB/D,=LU2DJB/PO,=LU2DJC/D, + =LU2DJL/D,=LU2DKN/D,=LU2DPW/D,=LU2DRT/D,=LU2DT/D,=LU2DT/D/LH,=LU2DT/LGT,=LU2DT/LH,=LU2DVF/D, + =LU2ED/D,=LU2EDC/D,=LU2EE/D,=LU2EE/E,=LU2EFI/D,=LU2EGA/D,=LU2EGI/D,=LU2EGP/D,=LU2EHA/D,=LU2EIT/D, + =LU2EJL/D,=LU2EK/D,=LU2ELT/D,=LU2EMQ/D,=LU2ENG/D,=LU2ENH/D,=LU2EPL/D,=LU2EPP/D,=LU2ERC/D, + =LU2FBX/D,=LU2FGD/D,=LU2FNH/D,=LU2HOD/D,=LU2JFC/D,=LU2VDV/D,=LU2YF/D,=LU3AAL/D,=LU3ADC/D, + =LU3AJL/D,=LU3AOI/D,=LU3ARE/D,=LU3ARM/D,=LU3AYE/D,=LU3CA/D,=LU3CM/D,=LU3CRA/D,=LU3CT/D,=LU3DAR/D, + =LU3DAT/D,=LU3DAT/E,=LU3DC/D,=LU3DEY/D,=LU3DFD/D,=LU3DH/D,=LU3DHF/D,=LU3DJA/D,=LU3DJI/D,=LU3DJT/D, + =LU3DK/D,=LU3DLF/D,=LU3DMZ/D,=LU3DO/D,=LU3DOC/D,=LU3DP/D,=LU3DPH/D,=LU3DQJ/D,=LU3DR/D,=LU3DRP/D, + =LU3DRP/E,=LU3DXG/D,=LU3DXI/D,=LU3DY/D,=LU3DYN/D,=LU3DZO/D,=LU3EBS/D,=LU3ED/D,=LU3EDU/D,=LU3EFL/D, + =LU3EJ/L,=LU3EJD/D,=LU3ELR/D,=LU3EMB/D,=LU3EOU/D,=LU3EP/D,=LU3ERU/D,=LU3ES/D,=LU3ESY/D,=LU3EZA/D, + =LU3FCI/D,=LU3HKA/D,=LU4AA/D,=LU4AAO/D,=LU4AAO/E,=LU4ACA/D,=LU4ADE/D,=LU4AJC/D,=LU4ARU/D, + =LU4BAN/D,=LU4BFP/D,=LU4BMG/D,=LU4BR/D,=LU4CMF/D,=LU4DBL/D,=LU4DBP/D,=LU4DBT/D,=LU4DBV/D, + =LU4DCE/D,=LU4DCY/D,=LU4DGC/D,=LU4DHA/D,=LU4DHC/D,=LU4DHE/D,=LU4DIS/D,=LU4DJB/D,=LU4DK/D, + =LU4DLJ/D,=LU4DLL/D,=LU4DLN/D,=LU4DMI/D,=LU4DPB/D,=LU4DQ/D,=LU4DRC/D,=LU4DRH/D,=LU4DRH/E, + =LU4DVD/D,=LU4EAE/D,=LU4EET/D,=LU4EGP/D,=LU4EHP/D,=LU4EJ/D,=LU4EL/D,=LU4ELE/D,=LU4EOU/D,=LU4ERS/D, + =LU4ESP/D,=LU4ETD/D,=LU4ETN/D,=LU4EV/D,=LU4HSA/D,=LU4HTD/D,=LU4MA/D,=LU4UWZ/D,=LU4UZW/D,=LU4VEN/D, + =LU4VSD/D,=LU4WAP/D,=LU5AHN/D,=LU5ALE/D,=LU5ALS/D,=LU5AM/D,=LU5ANL/D,=LU5AQV/D,=LU5ARS/D, + =LU5ASA/D,=LU5AVD/D,=LU5BDS/D,=LU5BE/D,=LU5BTL/D,=LU5CBA/D,=LU5CRE/D,=LU5DA/D,=LU5DA/E,=LU5DAS/D, + =LU5DCO/D,=LU5DDH/D,=LU5DEM/D,=LU5DF/D,=LU5DFR/D,=LU5DFT/D,=LU5DGG/D,=LU5DGR/D,=LU5DHE/D, + =LU5DIT/D,=LU5DJE/D,=LU5DKE/D,=LU5DLH/D,=LU5DLT/D,=LU5DLZ/D,=LU5DMI/D,=LU5DMP/D,=LU5DMR/D, + =LU5DQ/D,=LU5DRV/D,=LU5DSH/D,=LU5DSM/D,=LU5DT/D,=LU5DTB/D,=LU5DTF/D,=LU5DUC/D,=LU5DVB/D,=LU5DWS/D, =LU5DYT/D,=LU5EAO/D,=LU5EC/D,=LU5ED/D,=LU5EDS/D,=LU5EFG/D,=LU5EH/D,=LU5EHC/D,=LU5EJL/D,=LU5EM/D, =LU5EP/D,=LU5EW/D,=LU5FZ/D,=LU5FZ/E,=LU5JAH/D,=LU5JIB/D,=LU5OD/D,=LU5VAS/D,=LU5VAT/D,=LU5XP/D, =LU5YBR/D,=LU5YF/D,=LU6AER/D,=LU6AMT/D,=LU6CN/D,=LU6DAX/D,=LU6DBL/D,=LU6DC/D,=LU6DCT/D,=LU6DDC/D, @@ -1893,33 +1896,33 @@ Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU: =LU8DQ/D,=LU8DR/D,=LU8DRA/D,=LU8DRH/D,=LU8DRQ/D,=LU8DSJ/D,=LU8DTF/D,=LU8DUJ/D,=LU8DVQ/D,=LU8DW/D, =LU8DWR/D,=LU8DX/D,=LU8DY/D,=LU8DZE/D,=LU8DZH/D,=LU8EAG/D,=LU8EAJ/D,=LU8EBJ/D,=LU8EBJ/E,=LU8EBK/D, =LU8EBK/E,=LU8EC/D,=LU8ECF/D,=LU8ECF/E,=LU8EEM/D,=LU8EFF/D,=LU8EGC/D,=LU8EGS/D,=LU8EHQ/D, - =LU8EHQ/E,=LU8EHS/D,=LU8EHV/D,=LU8EKC/D,=LU8EMC/D,=LU8ERH/D,=LU8ETC/D,=LU8EU/D,=LU8EXJ/D, - =LU8EXN/D,=LU8FAU/D,=LU8VCC/D,=LU8VER/D,=LU9ACJ/D,=LU9AEA/D,=LU9AJK/D,=LU9AOS/D,=LU9AUC/D, - =LU9BGN/D,=LU9BRC/D,=LU9BSA/D,=LU9CGN/D,=LU9CLH/D,=LU9DA/D,=LU9DAA/D,=LU9DAD/D,=LU9DB/D,=LU9DE/D, - =LU9DEQ/D,=LU9DF/D,=LU9DGE/D,=LU9DHL/D,=LU9DJS/D,=LU9DKO/D,=LU9DMG/D,=LU9DNV/D,=LU9DO/D,=LU9DPD/D, - =LU9DPI/D,=LU9DPZ/E,=LU9DSD/D,=LU9DVO/D,=LU9DX/D,=LU9EAG/D,=LU9ECE/D,=LU9EI/D,=LU9EIM/D,=LU9EJM/D, - =LU9EJS/E,=LU9EJZ/D,=LU9ENH/D,=LU9EOE/D,=LU9ERA/D,=LU9ESD/D,=LU9ESD/E,=LU9ESD/LH,=LU9EV/D, - =LU9EV/E,=LU9EV/LH,=LU9EY/D,=LU9EYE/D,=LU9EZX/D,=LU9HDR/D,=LU9HJV/D,=LU9HVR/D,=LU9USD/D,=LU9WM/D, - =LV7E/D,=LW1DAL/D,=LW1DDX/D,=LW1DE/D,=LW1DEN/D,=LW1DEW/D,=LW1DG/D,=LW1DJ/D,=LW1DOG/D,=LW1DQQ/D, - =LW1DVB/D,=LW1DXH/D,=LW1DXP/D,=LW1DYN/D,=LW1DYP/D,=LW1EA/D,=LW1ECE/D,=LW1ECO/D,=LW1ELI/D, - =LW1EQI/D,=LW1EQZ/D,=LW1EVO/D,=LW1EXU/D,=LW2DAF/D,=LW2DAW/D,=LW2DET/D,=LW2DJM/D,=LW2DKF/D, - =LW2DNC/D,=LW2DOD/D,=LW2DOM/D,=LW2DSM/D,=LW2DX/E,=LW2DYA/D,=LW2ECC/D,=LW2ECK/D,=LW2ECM/D, - =LW2EFS/D,=LW2EHD/D,=LW2ENB/D,=LW2EQS/D,=LW2EUA/D,=LW3DAB/D,=LW3DAW/D,=LW3DBM/D,=LW3DC/D, - =LW3DED/D,=LW3DER/D,=LW3DFP/D,=LW3DG/D,=LW3DGC/D,=LW3DJC/D,=LW3DKC/D,=LW3DKC/E,=LW3DKO/D, - =LW3DKO/E,=LW3DN/D,=LW3DRW/D,=LW3DSM/D,=LW3DSR/D,=LW3DTD/D,=LW3EB/D,=LW3EIH/D,=LW3EK/D,=LW3EMP/D, - =LW4DAF/D,=LW4DBE/D,=LW4DBM/D,=LW4DCV/D,=LW4DKI/D,=LW4DOR/D,=LW4DRH/D,=LW4DRH/E,=LW4DRV/D, - =LW4DTM/D,=LW4DTR/D,=LW4DWV/D,=LW4DXH/D,=LW4ECV/D,=LW4EIN/D,=LW4EM/D,=LW4EM/E,=LW4EM/LH,=LW4ERO/D, - =LW4ESY/D,=LW4ETG/D,=LW4EZT/D,=LW4HCL/D,=LW5DAD/D,=LW5DD/D,=LW5DFR/D,=LW5DHG/D,=LW5DIE/D, - =LW5DLY/D,=LW5DNN/D,=LW5DOG/D,=LW5DQ/D,=LW5DR/D,=LW5DR/LH,=LW5DTD/D,=LW5DTQ/D,=LW5DUS/D,=LW5DWX/D, - =LW5EE/D,=LW5EO/D,=LW5EOL/D,=LW6DCA/D,=LW6DLS/D,=LW6DTM/D,=LW6DW/D,=LW6DYH/D,=LW6DYZ/D,=LW6EAK/D, - =LW6EEA/D,=LW6EFR/D,=LW6EGE/D,=LW6EHD/D,=LW6EXM/D,=LW7DAF/D,=LW7DAG/D,=LW7DAJ/D,=LW7DAR/D, - =LW7DFD/D,=LW7DGT/D,=LW7DJ/D,=LW7DKB/D,=LW7DKX/D,=LW7DLY/D,=LW7DNS/E,=LW7DPJ/D,=LW7DVC/D, - =LW7DWX/D,=LW7ECZ/D,=LW7EDH/D,=LW7EJV/D,=LW7ELR/D,=LW7EOJ/D,=LW7HA/D,=LW8DAL/D,=LW8DCM/D, - =LW8DIP/D,=LW8DMC/D,=LW8DMK/D,=LW8DPZ/E,=LW8DRU/D,=LW8DYT/D,=LW8EAG/D,=LW8ECQ/D,=LW8EFR/D, - =LW8EGA/D,=LW8EJ/D,=LW8ELR/D,=LW8EU/D,=LW8EVB/D,=LW8EXF/D,=LW9DAD/D,=LW9DAE/D,=LW9DIH/D,=LW9DMM/D, - =LW9DRD/D,=LW9DRT/D,=LW9DSP/D,=LW9DTP/D,=LW9DTQ/D,=LW9DTR/D,=LW9DX/D,=LW9EAG/D,=LW9ECR/D, - =LW9EDX/D,=LW9EGQ/D,=LW9ENF/D,=LW9ESY/D,=LW9EUE/D,=LW9EUU/D,=LW9EVA/D,=LW9EVA/E,=LW9EVE/D, - =LW9EYP/D,=LW9EZV/D,=LW9EZW/D,=LW9EZX/D,=LW9EZY/D, + =LU8EHQ/E,=LU8EHS/D,=LU8EHV/D,=LU8EHV/LH,=LU8EKC/D,=LU8EMC/D,=LU8ERH/D,=LU8ETC/D,=LU8EU/D, + =LU8EXJ/D,=LU8EXN/D,=LU8FAU/D,=LU8VCC/D,=LU8VER/D,=LU9ACJ/D,=LU9AEA/D,=LU9AJK/D,=LU9AOS/D, + =LU9AUC/D,=LU9BGN/D,=LU9BRC/D,=LU9BSA/D,=LU9CGN/D,=LU9CLH/D,=LU9DA/D,=LU9DAA/D,=LU9DAD/D,=LU9DB/D, + =LU9DE/D,=LU9DEQ/D,=LU9DF/D,=LU9DGE/D,=LU9DHL/D,=LU9DJS/D,=LU9DKO/D,=LU9DMG/D,=LU9DNV/D,=LU9DO/D, + =LU9DPD/D,=LU9DPI/D,=LU9DPZ/E,=LU9DSD/D,=LU9DVO/D,=LU9DX/D,=LU9EAG/D,=LU9ECE/D,=LU9EI/D,=LU9EIM/D, + =LU9EJM/D,=LU9EJS/E,=LU9EJZ/D,=LU9ENH/D,=LU9EOE/D,=LU9ERA/D,=LU9ESD/D,=LU9ESD/E,=LU9ESD/LH, + =LU9EV/D,=LU9EV/E,=LU9EV/LH,=LU9EY/D,=LU9EYE/D,=LU9EZX/D,=LU9HDR/D,=LU9HJV/D,=LU9HVR/D,=LU9USD/D, + =LU9WM/D,=LV7E/D,=LW1DAL/D,=LW1DDX/D,=LW1DE/D,=LW1DEN/D,=LW1DEW/D,=LW1DG/D,=LW1DIW/D,=LW1DJ/D, + =LW1DOG/D,=LW1DQQ/D,=LW1DVB/D,=LW1DXH/D,=LW1DXP/D,=LW1DYN/D,=LW1DYP/D,=LW1EA/D,=LW1ECE/D, + =LW1ECO/D,=LW1ELI/D,=LW1EQI/D,=LW1EQZ/D,=LW1EVO/D,=LW1EXU/D,=LW2DAF/D,=LW2DAW/D,=LW2DET/D, + =LW2DJM/D,=LW2DKF/D,=LW2DNC/D,=LW2DOD/D,=LW2DOM/D,=LW2DSM/D,=LW2DX/E,=LW2DYA/D,=LW2ECC/D, + =LW2ECK/D,=LW2ECM/D,=LW2EFS/D,=LW2EHD/D,=LW2ENB/D,=LW2EQS/D,=LW2EUA/D,=LW3DAB/D,=LW3DAW/D, + =LW3DBM/D,=LW3DC/D,=LW3DED/D,=LW3DER/D,=LW3DFP/D,=LW3DG/D,=LW3DGC/D,=LW3DJC/D,=LW3DKC/D,=LW3DKC/E, + =LW3DKO/D,=LW3DKO/E,=LW3DN/D,=LW3DRW/D,=LW3DSM/D,=LW3DSR/D,=LW3DTD/D,=LW3EB/D,=LW3EIH/D,=LW3EK/D, + =LW3EMP/D,=LW4DAF/D,=LW4DBE/D,=LW4DBM/D,=LW4DCV/D,=LW4DKI/D,=LW4DOR/D,=LW4DRH/D,=LW4DRH/E, + =LW4DRV/D,=LW4DTM/D,=LW4DTR/D,=LW4DWV/D,=LW4DXH/D,=LW4ECV/D,=LW4EIN/D,=LW4EM/D,=LW4EM/E,=LW4EM/LH, + =LW4ERO/D,=LW4ESY/D,=LW4ETG/D,=LW4EZT/D,=LW4HCL/D,=LW5DAD/D,=LW5DD/D,=LW5DFR/D,=LW5DHG/D, + =LW5DIE/D,=LW5DLY/D,=LW5DNN/D,=LW5DOG/D,=LW5DQ/D,=LW5DR/D,=LW5DR/LH,=LW5DTD/D,=LW5DTQ/D,=LW5DUS/D, + =LW5DWX/D,=LW5EE/D,=LW5EO/D,=LW5EOL/D,=LW6DCA/D,=LW6DLS/D,=LW6DTM/D,=LW6DW/D,=LW6DYH/D,=LW6DYZ/D, + =LW6EAK/D,=LW6EEA/D,=LW6EFR/D,=LW6EGE/D,=LW6EHD/D,=LW6EXM/D,=LW7DAF/D,=LW7DAG/D,=LW7DAJ/D, + =LW7DAR/D,=LW7DFD/D,=LW7DGT/D,=LW7DJ/D,=LW7DKB/D,=LW7DKX/D,=LW7DLY/D,=LW7DMB/D,=LW7DNS/E, + =LW7DPJ/D,=LW7DVC/D,=LW7DWX/D,=LW7ECZ/D,=LW7EDH/D,=LW7EDH/LH,=LW7EJV/D,=LW7ELR/D,=LW7EOJ/D, + =LW7HA/D,=LW8DAL/D,=LW8DCM/D,=LW8DIP/D,=LW8DMC/D,=LW8DMK/D,=LW8DPZ/E,=LW8DRU/D,=LW8DYT/D, + =LW8EAG/D,=LW8ECQ/D,=LW8EFR/D,=LW8EGA/D,=LW8EJ/D,=LW8ELR/D,=LW8EU/D,=LW8EVB/D,=LW8EXF/D,=LW9DAD/D, + =LW9DAE/D,=LW9DIH/D,=LW9DMM/D,=LW9DRD/D,=LW9DRT/D,=LW9DSP/D,=LW9DTP/D,=LW9DTQ/D,=LW9DTR/D, + =LW9DX/D,=LW9EAG/D,=LW9ECR/D,=LW9EDX/D,=LW9EGQ/D,=LW9ENF/D,=LW9ESY/D,=LW9EUE/D,=LW9EUU/D, + =LW9EVA/D,=LW9EVA/E,=LW9EVE/D,=LW9EYP/D,=LW9EZV/D,=LW9EZW/D,=LW9EZX/D,=LW9EZY/D, =LS4AA/F,=LT2F/F,=LU1FFF/F,=LU1FHE/F,=LU1FMC/F,=LU1FMS/F,=LU1FSE/F,=LU1FVG/F,=LU2FDA/F,=LU2FGD/F, =LU2FLB/F,=LU2FNA/F,=LU2FP/F,=LU3FCA/F,=LU3FCI/F,=LU3FLG/F,=LU3FMD/F,=LU3FV/F,=LU3FVH/F,=LU4AA/F, =LU4ETN/F,=LU4FKS/F,=LU4FM/F,=LU4FNO/F,=LU4FNP/F,=LU4FOO/F,=LU4HOD/F,=LU5ASA/F,=LU5FB/F,=LU5FBM/F, @@ -1930,33 +1933,34 @@ Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU: =LU1ACG/GP,=LU1GQQ/GP,=LU1GR/GP,=LU3AAL/GR,=LU4FM/G,=LU4FM/GP,=LU4GF/GA,=LU4GO/GA,=LU5BE/GR, =LU5FZ/GA,=LU8EFF/GR,=LU8GCJ/GA,=LU9GAH/G,=LU9GOO/GA,=LU9GOX/GA,=LU9GOY/GA,=LU9GRE/GP, =LS4AA/H,=LU1DZ/H,=LU1EZ/H,=LU1HBD/H,=LU1HCG/H,=LU1HCP/H,=LU1HH/H,=LU1HK/H,=LU1HLH/H,=LU1HPW/H, - =LU1HRA/H,=LU1HYW/H,=LU1XZ/H,=LU2DVI/H,=LU2HAE/H,=LU2HC/H,=LU2HCG/H,=LU2HEA/H,=LU2HEQ/H,=LU2HJ/H, - =LU2HNV/H,=LU2MAA/H,=LU3AJL/H,=LU3FCR/H,=LU3FN/H,=LU3HAT/H,=LU3HAZ/H,=LU3HE/H,=LU3HKA/H,=LU3HL/H, - =LU3HPW/H,=LU3HT/H,=LU3HU/H,=LU3HZK/H,=LU4AA/H,=LU4DPL/H,=LU4EG/H,=LU4ETN/H,=LU4FM/H,=LU4HAP/H, - =LU4HK/H,=LU4HOQ/H,=LU4HSA/H,=LU4HSA/LGH,=LU4HTD/H,=LU4MA/H,=LU5DGG/H,=LU5DX/H,=LU5DZ/H,=LU5FYX/H, - =LU5HA/H,=LU5HAZ/H,=LU5HCB/H,=LU5HCW/H,=LU5HFW/H,=LU5HGR/H,=LU5HIO/H,=LU5HPM/H,=LU5HR/H,=LU5HTA/H, - =LU5WTE/H,=LU5YUS/H,=LU6FE/H,=LU6HAS/H,=LU6HBB/H,=LU6HCA/H,=LU6HGH/H,=LU6HQH/H,=LU6HTR/H, - =LU6HWT/H,=LU6XQ/H,=LU7ADC/H,=LU7DZ/H,=LU7FBG/H,=LU7FTF/H,=LU7HA/H,=LU7HBC/H,=LU7HBL/H,=LU7HBV/H, - =LU7HCS/H,=LU7HEO/H,=LU7HOM/H,=LU7HOS/H,=LU7HSG/H,=LU7HW/H,=LU7HWB/H,=LU7HZ/H,=LU7JMS/H,=LU8FF/H, - =LU8HAR/H,=LU8HBX/H,=LU8HH/H,=LU8HJ/H,=LU8HOR/H,=LU9BSA/H,=LU9DPD/H,=LU9ERA/H,=LU9HCF/H,=LU9HJV/H, - =LU9HMB/H,=LU9HVR/H,=LW1HBD/H,=LW1HCM/H,=LW1HDI/H,=LW2EIY/H,=LW3HBS/H,=LW3HOH/H,=LW4HCL/H, - =LW4HTA/H,=LW4HTD/H,=LW6ENV/H,=LW6HAM/H,=LW7EIY/H,=LW7HA/H,=LW8EUA/H,=LW9HCF/H, + =LU1HRA/H,=LU1HYW/H,=LU1JB/H,=LU1XZ/H,=LU2DVI/H,=LU2HAE/H,=LU2HC/H,=LU2HCG/H,=LU2HEA/H,=LU2HEQ/H, + =LU2HJ/H,=LU2HNV/H,=LU2MAA/H,=LU3AJL/H,=LU3FCR/H,=LU3FN/H,=LU3HAT/H,=LU3HAZ/H,=LU3HE/H,=LU3HKA/H, + =LU3HL/H,=LU3HO/H,=LU3HPW/H,=LU3HT/H,=LU3HU/H,=LU3HZK/H,=LU4AA/H,=LU4DPL/H,=LU4EG/H,=LU4ETN/H, + =LU4FM/H,=LU4HAP/H,=LU4HK/H,=LU4HOQ/H,=LU4HSA/H,=LU4HSA/LGH,=LU4HTD/H,=LU4MA/H,=LU5DGG/H,=LU5DX/H, + =LU5DZ/H,=LU5FYX/H,=LU5HA/H,=LU5HAZ/H,=LU5HCB/H,=LU5HCW/H,=LU5HFW/H,=LU5HGR/H,=LU5HIO/H,=LU5HPM/H, + =LU5HR/H,=LU5HTA/H,=LU5WTE/H,=LU5YUS/H,=LU6FE/H,=LU6HAS/H,=LU6HBB/H,=LU6HCA/H,=LU6HGH/H,=LU6HMT/H, + =LU6HQH/H,=LU6HTR/H,=LU6HWT/H,=LU6XQ/H,=LU7ADC/H,=LU7DZ/H,=LU7FBG/H,=LU7FTF/H,=LU7HA/H,=LU7HBC/H, + =LU7HBL/H,=LU7HBV/H,=LU7HCS/H,=LU7HEO/H,=LU7HOM/H,=LU7HOS/H,=LU7HSG/H,=LU7HW/H,=LU7HWB/H,=LU7HZ/H, + =LU7JMS/H,=LU8FF/H,=LU8HAR/H,=LU8HBX/H,=LU8HH/H,=LU8HJ/H,=LU8HOR/H,=LU9BSA/H,=LU9DPD/H,=LU9ERA/H, + =LU9HCF/H,=LU9HJV/H,=LU9HMB/H,=LU9HVR/H,=LW1HBD/H,=LW1HCM/H,=LW1HDI/H,=LW2EIY/H,=LW3HBS/H, + =LW3HOH/H,=LW4HCL/H,=LW4HTA/H,=LW4HTD/H,=LW6ENV/H,=LW6HAM/H,=LW7EIY/H,=LW7HA/H,=LW8EUA/H, + =LW9HCF/H, =LU1IAL/I,=LU1IBM/I,=LU1IG/I,=LU1II/I,=LU2IP/I,=LU3EP/I,=LU4ERS/I,=LU5FZ/I,=LU5IAL/I,=LU5IAO/I, =LU5ILA/I,=LU7IEI/I,=LU7IPI/I,=LU7ITR/I,=LU7IUE/I,=LU8IEZ/I,=LU9DPI/I,=LU9EYE/I,=LU9IBJ/I, =LW8DRU/I, - =LU1JAO/J,=LU1JAR/J,=LU1JCE/J,=LU1JCO/J,=LU1JEF/J,=LU1JEO/J,=LU1JES/J,=LU1JHF/J,=LU1JHP/J, - =LU1JKN/J,=LU1JMA/J,=LU1JMV/J,=LU1JN/J,=LU1JP/J,=LU1JPC/J,=LU2DJB/J,=LU2FGD/J,=LU2FQ/J,=LU2JCI/J, - =LU2JLC/J,=LU2JMG/J,=LU2JNV/J,=LU2JPE/J,=LU2JS/J,=LU3DYN/J,=LU3JFB/J,=LU3JVO/J,=LU4AA/J,=LU4FM/J, - =LU4JEA/J,=LU4JHF/J,=LU4JJ/J,=LU4JLX/J,=LU4JMO/J,=LU5JAH/J,=LU5JB/J,=LU5JCL/J,=LU5JI/J,=LU5JJF/J, - =LU5JKI/J,=LU5JLA/J,=LU5JLX/J,=LU5JNC/J,=LU5JOL/J,=LU5JU/J,=LU5JZZ/J,=LU6JAF/J,=LU6JRA/J, - =LU7DAC/J,=LU7JI/J,=LU7JLB/J,=LU7JMS/J,=LU7JR/J,=LU7JRM/J,=LU8JOP/J,=LU9CYV/J,=LU9JLV/J,=LU9JMG/J, - =LU9JPR/J,=LU9YB/J,=LW2DRJ/J,=LW3EMP/J, + =LU1JAO/J,=LU1JAR/J,=LU1JCE/J,=LU1JCO/J,=LU1JEF/J,=LU1JEO/J,=LU1JES/J,=LU1JGU/J,=LU1JHF/J, + =LU1JHP/J,=LU1JKN/J,=LU1JMA/J,=LU1JMV/J,=LU1JN/J,=LU1JP/J,=LU1JPC/J,=LU2DJB/J,=LU2FGD/J,=LU2FQ/J, + =LU2JCI/J,=LU2JLC/J,=LU2JMG/J,=LU2JNV/J,=LU2JPE/J,=LU2JS/J,=LU3DYN/J,=LU3JFB/J,=LU3JVO/J,=LU4AA/J, + =LU4FM/J,=LU4JEA/J,=LU4JHF/J,=LU4JJ/J,=LU4JLX/J,=LU4JMO/J,=LU5JAH/J,=LU5JB/J,=LU5JCL/J,=LU5JI/J, + =LU5JJF/J,=LU5JKI/J,=LU5JLA/J,=LU5JLX/J,=LU5JNC/J,=LU5JOL/J,=LU5JU/J,=LU5JZZ/J,=LU6JAF/J, + =LU6JRA/J,=LU7DAC/J,=LU7JI/J,=LU7JLB/J,=LU7JMS/J,=LU7JR/J,=LU7JRM/J,=LU8JOP/J,=LU9CYV/J,=LU9JLV/J, + =LU9JMG/J,=LU9JPR/J,=LU9YB/J,=LW2DAF/J,=LW2DRJ/J,=LW3EMP/J, =LU1KAF/K,=LU1KWC/K,=LU2KLC/K,=LU4AA/K,=LU4KC/K,=LU5KAH/K,=LU5OM/K,=LU6KAQ/K,=LU7KHB/K,=LU7KT/K, =LU8KE/K,=LU9KMB/K,=LW1EVO/K,=LW3DFP/K, - =LU1AAS/L,=LU1DZ/L,=LU1LAA/L,=LU1LT/L,=LU1LTL/L,=LU2LDB/L,=LU3AYE/L,=LU4AGC/L,=LU4EFC/L,=LU4LAD/L, - =LU4LBU/L,=LU4LMA/L,=LU5FZ/L,=LU5ILA/L,=LU5LAE/L,=LU5LBV/L,=LU6JRA/L,=LU8IEZ/L,=LU8LFV/L, - =LU9GOO/L,=LU9GOY/L,=LU9JX/L,=LU9LEW/L,=LU9LOP/L,=LU9LZY/L,=LU9LZZ/L,=LU9XPA/L,=LW3EMP/L, - =LW8DTO/L, + =LU1AAS/L,=LU1DZ/L,=LU1JAP/L,=LU1LAA/L,=LU1LT/L,=LU1LTL/L,=LU2LDB/L,=LU3AYE/L,=LU4AGC/L,=LU4EFC/L, + =LU4LAD/L,=LU4LBU/L,=LU4LG/L,=LU4LMA/L,=LU5FZ/L,=LU5ILA/L,=LU5LA/L,=LU5LAE/L,=LU5LBV/L,=LU6JRA/L, + =LU8IEZ/L,=LU8LFV/L,=LU9GOO/L,=LU9GOY/L,=LU9JX/L,=LU9LEW/L,=LU9LOP/L,=LU9LZY/L,=LU9LZZ/L, + =LU9XPA/L,=LW3EMP/L,=LW8DTO/L, =LU3PCJ/MA,=LW4DBE/MA, =LS71N/N,=LU2DSV/N,=LU3AAL/N,=LU5BE/N,=LU5FZ/N,=LU8EFF/N,=LW5DR/N, =LU1HZY/O,=LU1XS/O,=LU2HON/O,=LU3HL/O,=LU4AA/O,=LU5BOJ/O,=LU5OD/O,=LU6FEC/O,=LU6HWT/O,=LU7DW/O, @@ -1999,10 +2003,10 @@ Argentina: 13: 14: SA: -34.80: 65.92: 3.0: LU: =LU5VAS/V[16],=LU5VAT/V[16],=LU5VFL/V[16],=LU5VIE/V[16],=LU5VLB/V[16],=LU5YBJ/V[16],=LU5YBR/V[16], =LU5YEC/V[16],=LU5YF/V[16],=LU6DAI/V[16],=LU6DBL/V[16],=LU6DKT/V[16],=LU6DO/V[16],=LU6VA/V[16], =LU6VAC/V[16],=LU6VDT/V[16],=LU6VEO/V[16],=LU6VFL/V[16],=LU6VM/V[16],=LU6VR/V[16],=LU7DSY/V[16], - =LU7DW/V[16],=LU7EGH/V[16],=LU7EHL/V[16],=LU7VBT/V[16],=LU7VFG/V[16],=LU7YZ/V[16],=LU8BV/V[16], - =LU8DWR/V[16],=LU8EB/M/V[16],=LU8EHQ/V[16],=LU8VCC/V[16],=LU8VER/V[16],=LU9AEA/V[16],=LU9DR/V[16], - =LU9ESD/V[16],=LU9EY/V[16],=LU9VEA/V[16],=LU9VRC/V[16],=LUVES/V[16],=LW1ECO/V[16],=LW2DVM/V[16], - =LW2DYA/V[16],=LW5EE/V[16],=LW6EQQ/V[16],=LW9EAG/V[16], + =LU7DW/V[16],=LU7EGH/V[16],=LU7EHL/V[16],=LU7VBT/V[16],=LU7VFG/V[16],=LU7YZ/V[16],=LU8ARI/V[16], + =LU8BV/V[16],=LU8DWR/V[16],=LU8EB/M/V[16],=LU8EHQ/V[16],=LU8VCC/V[16],=LU8VER/V[16],=LU9AEA/V[16], + =LU9DR/V[16],=LU9ESD/V[16],=LU9EY/V[16],=LU9VEA/V[16],=LU9VRC/V[16],=LUVES/V[16],=LW1ECO/V[16], + =LW2DVM/V[16],=LW2DYA/V[16],=LW5EE/V[16],=LW6EQQ/V[16],=LW9EAG/V[16], AY0W[16],AY1W[16],AY2W[16],AY3W[16],AY4W[16],AY5W[16],AY6W[16],AY7W[16],AY8W[16],AY9W[16], AZ0W[16],AZ1W[16],AZ2W[16],AZ3W[16],AZ4W[16],AZ5W[16],AZ6W[16],AZ7W[16],AZ8W[16],AZ9W[16], L20W[16],L21W[16],L22W[16],L23W[16],L24W[16],L25W[16],L26W[16],L27W[16],L28W[16],L29W[16], @@ -2118,9 +2122,10 @@ Austria: 15: 28: EU: 47.33: -13.33: -1.0: OE: Finland: 15: 18: EU: 63.78: -27.08: -2.0: OH: OF,OG,OH,OI,OJ,=OH/RX3AMI/LH, =OF100FI/1/LH,=OF1AD/S,=OF1LD/S,=OF1TX/S,=OH0HG/1,=OH0J/1,=OH0JJS/1,=OH0MDR/1,=OH0MRR/1,=OH1AD/S, - =OH1AF/LH,=OH1AH/LH,=OH1AH/LT,=OH1AM/LH,=OH1BGG/S,=OH1BGG/SA,=OH1CM/S,=OH1F/LGT,=OH1F/LH,=OH1FJ/S, - =OH1FJ/SA,=OH1KW/S,=OH1KW/SA,=OH1LD/S,=OH1LEO/S,=OH1MLZ/SA,=OH1NR/S,=OH1OD/S,=OH1PP/S,=OH1PV/S, - =OH1S/S,=OH1SJ/S,=OH1SJ/SA,=OH1SM/S,=OH1TX/S,=OH1TX/SA,=OH1UH/S,=OH1XW/S,=OI1AXA/S,=OI1AY/S, + =OH1AF/LH,=OH1AH/LH,=OH1AH/LT,=OH1AM/LH,=OH1BGG/S,=OH1BGG/SA,=OH1BS/SA,=OH1CM/S,=OH1F/LGT, + =OH1F/LH,=OH1FJ/S,=OH1FJ/SA,=OH1KW/S,=OH1KW/SA,=OH1LD/S,=OH1LEO/S,=OH1MLZ/SA,=OH1NR/S,=OH1OD/S, + =OH1PP/S,=OH1PV/S,=OH1S/S,=OH1SJ/S,=OH1SJ/SA,=OH1SM/S,=OH1TX/S,=OH1TX/SA,=OH1UH/S,=OH1XW/S, + =OI1AXA/S,=OI1AY/S, =OF2BNX/SA,=OG2O/YL,=OH0AM/2,=OH0BT/2,=OH0HG/2,=OH2AAF/S,=OH2AAF/SA,=OH2AAV/S,=OH2AN/SUB, =OH2AUE/S,=OH2AUE/SA,=OH2AY/S,=OH2BAX/S,=OH2BMB/S,=OH2BMB/SA,=OH2BNX/S,=OH2BNX/SA,=OH2BQP/S, =OH2BXT/S,=OH2C/S,=OH2EO/S,=OH2ET/LH,=OH2ET/LS,=OH2ET/S,=OH2FBX/S,=OH2FBX/SA,=OH2HK/S,=OH2HZ/S, @@ -2144,14 +2149,14 @@ Finland: 15: 18: EU: 63.78: -27.08: -2.0: OH: =OH8AAU/LH,=OH8FCK/S,=OH8FCK/SA,=OH8KN/S,=OH8KN/SA,=OI8VK/S, =OH0KAG/9,=OH9AR/S,=OH9TM/S,=OH9TO/S; Aland Islands: 15: 18: EU: 60.13: -20.37: -2.0: OH0: - OF0,OG0,OH0,OI0,=OF100FI/0,=OG2K/0,=OG2M/0,=OG3M/0,=OH1LWZ/0,=OH2FTJ/0,=OH6ZZ/0,=OH8K/0; + OF0,OG0,OH0,OI0,=OF100FI/0,=OG2K/0,=OG2M/0,=OG3M/0,=OH1LWZ/0,=OH2FTJ/0,=OH2JXA/0,=OH6ZZ/0,=OH8K/0; Market Reef: 15: 18: EU: 60.00: -19.00: -2.0: OJ0: OJ0; Czech Republic: 15: 28: EU: 50.00: -16.00: -1.0: OK: OK,OL,=OK6RA/APF,=OK9BAR/YL,=OL0R/J, =OK1KCR/J,=OK1KI/YL; Slovak Republic: 15: 28: EU: 49.00: -20.00: -1.0: OM: - OM; + OM,=VERSION; Belgium: 14: 27: EU: 50.70: -4.85: -1.0: ON: ON,OO,OP,OQ,OR,OS,OT,=ON3BLB/YL,=ON3TC/YL,=ON4BRC/J,=ON4BRN/LGT,=ON4BRN/LH,=ON4BRN/LS,=ON4BRN/SUB, =ON4CCC/LGT,=ON4CCC/LH,=ON4CEL/LGT,=ON4CEL/LH,=ON4CIS/LGT,=ON4CIS/LH,=ON4CJK/LH,=ON4CKZ/LH, @@ -2168,9 +2173,9 @@ Denmark: 14: 18: EU: 56.00: -10.00: -1.0: OZ: =OZ/DL5SE/LH,=OZ/DL7RSM/LH,=OZ/DR4X/LH,=OZ/ON6JUN/LH,=OZ/PH7Y/LH,=OZ0IL/LH,=OZ0MF/LH,=OZ0Q/LH, =OZ0Y/LS,=OZ13LH/LH,=OZ1CF/LH,=OZ1IIL/LH,=OZ1KAH/LH,=OZ1KR/J,=OZ1SDB/LH,=OZ1SKA/LH,=OZ2F/LH, =OZ2FG/LH,=OZ2GBW/LGT,=OZ2GBW/LH,=OZ2NYB/LGT,=OZ2NYB/LH,=OZ2ZB/LH,=OZ3EDR/LH,=OZ3EVA/LH, - =OZ3FYN/LH,=OZ3TL/JOTA,=OZ4EL/LH,=OZ4HAM/LH,=OZ50RN/LH,=OZ5ESB/LH,=OZ7AEI/LH,=OZ7DAL/LH, - =OZ7DAL/LS,=OZ7EA/YL,=OZ7HAM/LH,=OZ7LH/LH,=OZ7RJ/LGT,=OZ7RJ/LH,=OZ7SP/JOTA,=OZ7TOM/LH,=OZ8KV/LH, - =OZ8SMA/LGT,=OZ8SMA/LH,=OZ9HBO/JOTA,=OZ9HBO/LH,=OZ9WSR/J; + =OZ3FYN/LH,=OZ3TL/JOTA,=OZ4EL/LH,=OZ4HAM/LH,=OZ50RN/LH,=OZ5ESB/LH,=OZ5GRE/LH,=OZ7AEI/LH, + =OZ7DAL/LH,=OZ7DAL/LS,=OZ7EA/YL,=OZ7HAM/LH,=OZ7LH/LH,=OZ7RJ/LGT,=OZ7RJ/LH,=OZ7SP/JOTA,=OZ7TOM/LH, + =OZ8KV/LH,=OZ8SMA/LGT,=OZ8SMA/LH,=OZ9HBO/JOTA,=OZ9HBO/LH,=OZ9WSR/J; Papua New Guinea: 28: 51: OC: -9.50: -147.12: -10.0: P2: P2; Aruba: 09: 11: SA: 12.53: 69.98: 4.0: P4: @@ -2179,27 +2184,27 @@ DPR of Korea: 25: 44: AS: 39.78: -126.30: -9.0: P5: P5,P6,P7,P8,P9; Netherlands: 14: 27: EU: 52.28: -5.47: -1.0: PA: PA,PB,PC,PD,PE,PF,PG,PH,PI,=PA/DF8WA/LH,=PA/DL0IGA/LH,=PA/DL1KVN/LH,=PA/DL2GW/LH,=PA/DL2KSB/LH, - =PA/DL5SE/LH,=PA/ON4NOK/LH,=PA/ON6EF/LH,=PA0GOR/J,=PA0TLM/J,=PA0XAW/LH,=PA100J/J,=PA100SH/J, - =PA110HL/LH,=PA110LL/LH,=PA14NAWAKA/J,=PA1AW/J,=PA1BDO/LH,=PA1BP/J,=PA1EDL/J,=PA1ET/J,=PA1FJ/J, - =PA1FR/LH,=PA1VLD/LH,=PA2008NJ/J,=PA25SCH/LH,=PA2DK/J,=PA2LS/YL,=PA2RO/J,=PA3AAF/LH,=PA3AFG/J, - =PA3BDQ/LH,=PA3BIC/LH,=PA3BXR/MILL,=PA3CNI/LH,=PA3CNI/LT,=PA3CPI/J,=PA3CPI/JOTA,=PA3DEW/J, - =PA3EEQ/LH,=PA3EFR/J,=PA3ESO/J,=PA3EWG/J,=PA3FBO/LH,=PA3FYE/J,=PA3GAG/LH,=PA3GQS/J,=PA3GWN/J, - =PA3HFJ/J,=PA3WSK/JOTA,=PA40LAB/J,=PA4AGO/J,=PA4RVS/MILL,=PA4WK/J,=PA5CA/LH,=PA65DUIN/J, - =PA65URK/LH,=PA6ADZ/MILL,=PA6ARC/LH,=PA6FUN/LGT,=PA6FUN/LH,=PA6FUN/LS,=PA6HOOP/MILL,=PA6HYG/J, - =PA6JAM/J,=PA6KMS/MILL,=PA6LH/LH,=PA6LL/LH,=PA6LST/LH,=PA6LST/LS,=PA6MZD/MILL,=PA6OP/MILL, - =PA6RCG/J,=PA6SB/L,=PA6SB/LH,=PA6SCH/LH,=PA6SHB/J,=PA6SJB/J,=PA6SJS/J,=PA6STAR/MILL,=PA6URK/LH, - =PA6VEN/LH,=PA6VLD/LH,=PA6WAD/LGT,=PA70HYG/JOTA,=PA75SM/J,=PA7AL/LH,=PA7HPH/J,=PA7JWC/J, - =PA99HYG/JOTA,=PA9JAS/J,=PA9M/LH,=PB6F/LH,=PB6KW/LH,=PB88XYL/YL,=PB9ZR/J,=PC2D/LH,=PC5D/J, - =PC6RH/J,=PD0ARI/MILL,=PD0FSB/LH,=PD1JL/MILL,=PD1JSH/J,=PD2C/LH,=PD2GCM/LH,=PD5CW/LH,=PD5MVH/P/LH, - =PD7DX/J,=PE18KA/J,=PE1NCS/LGT,=PE1NCS/LH,=PE1NZJ/J,=PE1OPM/LH,=PE1ORG/J,=PE1OXI/J,=PE1PEX/J, - =PE1RBG/J,=PE1RBR/J,=PE2MC/J,=PE2MGA/J,=PE7M/J,=PF100ROVER/J,=PF18NAWAKA/J,=PF4R/LH,=PG150N/LH, - =PG64HOOP/MIL,=PG6HK/LH,=PG6N/LH,=PH4RTM/MILL,=PH4RTM/WHE,=PH50GFB/J,=PH6BB/J,=PH6WAL/LH,=PH75S/J, - =PH9GFB/J,=PI4ADH/LGT,=PI4ADH/LH,=PI4ADH/LS,=PI4ALK/LH,=PI4AZL/J,=PI4BG/J,=PI4BOZ/LH,=PI4CQ/J, - =PI4DHG/DM,=PI4DHG/MILL,=PI4ET/MILL,=PI4ETL/MILL,=PI4F/LH,=PI4LDN/L,=PI4LDN/LH,=PI4RCK/LGT, - =PI4RCK/LH,=PI4RIS/J,=PI4S/J,=PI4SHV/J,=PI4SRN/LH,=PI4SRN/MILL,=PI4VHW/J,=PI4VNW/LGT,=PI4VNW/LH, - =PI4VPO/LH,=PI4VPO/LT,=PI4WAL/LGT,=PI4WAL/LH,=PI4WBR/LH,=PI4WFL/MILL,=PI4YLC/LH,=PI4ZHE/LH, - =PI4ZHE/LS,=PI4ZHE/MILL,=PI4ZVL/FD,=PI4ZVL/LGT,=PI4ZVL/LH,=PI4ZWN/MILL,=PI9NHL/LH,=PI9SRS/LH, - =PI9TP/J; + =PA/DL5SE/LH,=PA/ON4NOK/LH,=PA/ON6EF/LH,=PA/ON7RU/LH,=PA0GOR/J,=PA0TLM/J,=PA0XAW/LH,=PA100J/J, + =PA100SH/J,=PA110HL/LH,=PA110LL/LH,=PA14NAWAKA/J,=PA1AW/J,=PA1BDO/LH,=PA1BP/J,=PA1EDL/J,=PA1ET/J, + =PA1FJ/J,=PA1FR/LH,=PA1VLD/LH,=PA2008NJ/J,=PA25SCH/LH,=PA2DK/J,=PA2LS/YL,=PA2RO/J,=PA3AAF/LH, + =PA3AFG/J,=PA3BDQ/LH,=PA3BIC/LH,=PA3BXR/MILL,=PA3CNI/LH,=PA3CNI/LT,=PA3CPI/J,=PA3CPI/JOTA, + =PA3DEW/J,=PA3EEQ/LH,=PA3EFR/J,=PA3ESO/J,=PA3EWG/J,=PA3FBO/LH,=PA3FYE/J,=PA3GAG/LH,=PA3GQS/J, + =PA3GWN/J,=PA3HFJ/J,=PA3WSK/JOTA,=PA40LAB/J,=PA4AGO/J,=PA4M/LH,=PA4RVS/MILL,=PA4WK/J,=PA5CA/LH, + =PA65DUIN/J,=PA65URK/LH,=PA6ADZ/MILL,=PA6ARC/LH,=PA6FUN/LGT,=PA6FUN/LH,=PA6FUN/LS,=PA6HOOP/MILL, + =PA6HYG/J,=PA6JAM/J,=PA6KMS/MILL,=PA6LH/LH,=PA6LL/LH,=PA6LST/LH,=PA6LST/LS,=PA6MZD/MILL, + =PA6OP/MILL,=PA6RCG/J,=PA6SB/L,=PA6SB/LH,=PA6SCH/LH,=PA6SHB/J,=PA6SJB/J,=PA6SJS/J,=PA6STAR/MILL, + =PA6URK/LH,=PA6VEN/LH,=PA6VLD/LH,=PA6WAD/LGT,=PA70HYG/JOTA,=PA75N/L,=PA75SM/J,=PA7AL/LH,=PA7HPH/J, + =PA7JWC/J,=PA99HYG/JOTA,=PA9JAS/J,=PA9M/LH,=PB6F/LH,=PB6KW/LH,=PB88XYL/YL,=PB9ZR/J,=PC2D/LH, + =PC5D/J,=PC6RH/J,=PD0ARI/MILL,=PD0FSB/LH,=PD1JL/MILL,=PD1JSH/J,=PD2C/LH,=PD2GCM/LH,=PD5CW/LH, + =PD5MVH/P/LH,=PD7DX/J,=PE18KA/J,=PE1NCS/LGT,=PE1NCS/LH,=PE1NZJ/J,=PE1OPM/LH,=PE1ORG/J,=PE1OXI/J, + =PE1PEX/J,=PE1RBG/J,=PE1RBR/J,=PE2MC/J,=PE2MGA/J,=PE7M/J,=PF100ROVER/J,=PF18NAWAKA/J,=PF4R/LH, + =PG150N/LH,=PG64HOOP/MIL,=PG6HK/LH,=PG6N/LH,=PH4RTM/MILL,=PH4RTM/WHE,=PH50GFB/J,=PH6BB/J, + =PH6WAL/LH,=PH75S/J,=PH9GFB/J,=PI4ADH/LGT,=PI4ADH/LH,=PI4ADH/LS,=PI4ALK/LH,=PI4AZL/J,=PI4BG/J, + =PI4BOZ/LH,=PI4CQ/J,=PI4DHG/DM,=PI4DHG/MILL,=PI4ET/MILL,=PI4ETL/MILL,=PI4F/LH,=PI4LDN/L, + =PI4LDN/LH,=PI4RCK/LGT,=PI4RCK/LH,=PI4RIS/J,=PI4S/J,=PI4SHV/J,=PI4SRN/LH,=PI4SRN/MILL,=PI4VHW/J, + =PI4VNW/LGT,=PI4VNW/LH,=PI4VPO/LH,=PI4VPO/LT,=PI4WAL/LGT,=PI4WAL/LH,=PI4WBR/LH,=PI4WFL/MILL, + =PI4YLC/LH,=PI4ZHE/LH,=PI4ZHE/LS,=PI4ZHE/MILL,=PI4ZVL/FD,=PI4ZVL/LGT,=PI4ZVL/LH,=PI4ZWN/MILL, + =PI9NHL/LH,=PI9SRS/LH,=PI9TP/J; Curacao: 09: 11: SA: 12.17: 69.00: 4.0: PJ2: PJ2; Bonaire: 09: 11: SA: 12.20: 68.25: 4.0: PJ4: @@ -2335,16 +2340,16 @@ Asiatic Turkey: 20: 39: AS: 39.18: -35.65: -2.0: TA: =TC2ELH/LH,=TC50TRAC/34K,=TC50TRAC/41G,=TC50TRAC/41K,=TC50TRAC/67E,=TC50TRAC/67Z,=YM1SIZ/2, =TA1BM/3,=TA1BX/3,=TA1BX/3/M,=TA1D/3,=TA1UT/3,=TA3J/LH,=TC50TRAC/10B,=TC50TRAC/16M,=TC50TRAC/35I, =TC50TRAC/35K, - =TA1AO/4,=TA1D/4,=TA1HZ/4,=TA3J/4/LGT,=TA4/DJ5AA/LH,=TC50TRAC/03D,=TC50TRAC/15B, + =TA1AO/4,=TA1D/4,=TA1HZ/4,=TA3J/4/LGT,=TA4/DJ5AA/LH,=TA4CS/LH,=TC50TRAC/03D,=TC50TRAC/15B, =TC50TRAC/01A,=TC50TRAC/80K,=TC50TRAC/80O, =TA1AYR/6,=TC50TRAC/18C, =TA7KB/LGT,=TA7KB/LH,=TC50TRAC/28G,=TC50TRAC/29T,=TC50TRAC/38D,=TC50TRAC/38K,=TC7YLH/LH,=YM7KA/LH, =TA1O/8, =TA9J/LH; European Turkey: 20: 39: EU: 41.02: -28.97: -2.0: *TA1: - TA1,TB1,TC1,YM1,=TA2AKG/1,=TA2LZ/1,=TA2ZF/1,=TA3CQ/1,=TA3HM/1,=TA5CT/1,=TA6CQ/1,=TC100A,=TC100GLB, - =TC100GP,=TC100GS,=TC100KT,=TC100VKZL,=TC101GLB,=TC101GP,=TC101GS,=TC101KT,=TC18MART,=TC2ISAF/1, - =TC50TRAC/17G,=TC50TRAC/34I,=TC9SAM/1; + TA1,TB1,TC1,YM1,=TA1BX/LH,=TA2AKG/1,=TA2LZ/1,=TA2ZF/1,=TA3CQ/1,=TA3HM/1,=TA5CT/1,=TA6CQ/1,=TC100A, + =TC100GLB,=TC100GP,=TC100GS,=TC100KT,=TC100VKZL,=TC101GLB,=TC101GP,=TC101GS,=TC101KT,=TC18MART, + =TC2ISAF/1,=TC50TRAC/17G,=TC50TRAC/34I,=TC9SAM/1; Iceland: 40: 17: EU: 64.80: 18.73: 0.0: TF: TF,=TF1IRA/LGT,=TF1IRA/LH,=TF1IRA/LT,=TF8IRA/LH,=TF8RX/LGT,=TF8RX/LH; Guatemala: 07: 11: NA: 15.50: 90.30: 6.0: TG: @@ -2375,20 +2380,20 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: R,U,=R0AGD/6,=R0CAF/1,=R0XAD/6/P,=R25EMW(17)[19],=R7AB/M,=R7AB/P,=R80PSP,=R80UPOL,=R8CT/4/P, =R8FF/3/M,=R8FF/7,=R90DOSAAF,=R9AV/6,=R9FCH/6,=R9JBF/1,=R9JI/1,=R9KC/6/M,=R9WR/1,=R9XAU/6, =RA0AM/6,=RA0BM/6,=RA0ZZ/3,=RA3CQ/9/M(17)[20],=RA80SP,=RA9JR/3,=RA9JX/3,=RA9P/4,=RA9RT/3, - =RA9UUY/6,=RA9YA/6,=RC80SP,=RC8C/6,=RG0F/5,=RG50P(17),=RG50P/9(17)[30],=RJ80SP,=RK80X(17)[19], + =RA9UUY/6,=RA9YA/6,=RC80SP,=RG0F/5,=RG50P(17),=RG50P/9(17)[30],=RJ80SP,=RK3AW/M,=RK80X(17)[19], =RK8O/4,=RL9AA/6,=RM80SP,=RM8A/4/M,=RM94AE,=RN9M/4,=RN9OI/3,=RO80RO,=RP61XX(17)[19], =RP62X(17)[19],=RP63X(17)[19],=RP63XO(17)[19],=RP64X(17)[19],=RP65FPP(17)[30],=RP8X(17)[30], - =RQ80SP,=RT9T/3,=RU0ZW/6,=RU2FB/3,=RU2FB/3/P,=RU4SS/9(17)[30],=RU4WA/9(17)[30],=RU9MU/3,=RV1CC/M, - =RV9LM/3,=RV9XX/3,=RW0IM/1,=RW0QE/6,=RW2F/6,=RW9FF/3,=RW9W/3,=RW9W/4,=RX2FS/3,=RX9TC/1,=RX9UL/1, - =RZ9AWN/6,=UA0AK/3,=UA0FQ/6,=UA0KBG/3,=UA0KBG/6,=UA0KCX/3/P,=UA0KT/4,=UA0QNE/3,=UA0QNU/3, - =UA0QQJ/3,=UA0UV/6,=UA0XAK/3,=UA0XAK/6,=UA9CCO/6,=UA9CDC/3,=UA9CTT/3,=UA9FFS/1/MM,=UE23DKA, - =UE6MAC/9(17),=UE95AE,=UE95E,=UE95ME,=UE96ME,=UE99PS, - =R900BL,=R9J/1,=RA2FN/1,=RA9KU/1,=RA9KU/1/M,=RA9MC/1,=RA9SGI/1,=RK9XWV/1,=RL1O,=RM0L/1,=RM80DZ, - =RN85AM,=RN85KN,=RT9T/1,=RU2FB/1,=RU9YT/1,=RU9YT/1/P,=RW1AI/ANT,=RW1AI/LH,=RW8W/1,=RW9QA/1, - =RX3AMI/1/LH,=UA1ADQ/ANT,=UA1BJ/ANT,=UA1JJ/ANT,=UA2FFX/1,=UA9B/1,=UA9KG/1,=UA9KGH/1,=UA9KK/1, - =UA9UDX/1,=UB9YUW/1,=UE21A,=UE21B,=UE21M,=UE22A,=UE25AC,=UE25AQ,=UE2AT/1, - =R0XAC/1,=R8XF/1,=R900DM,=R90LPU,=R9JNO/1,=RA0FU/1,=RA9FNV/1,=RN9N/1,=RU9MU/1,=RV0CA/1,=RV2FW/1, - =RV9JD/1,=RX9TN/1,=UA0BDS/1,=UA0SIK/1,=UA1CDA/LH,=UA1CIO/LH,=UA9MA/1,=UA9MQR/1, + =RQ80SP,=RT9T/3,=RU0ZW/6,=RU2FB/3,=RU2FB/3/P,=RU4SS/9(17)[30],=RU4WA/9(17)[30],=RU9MU/3,=RV9LM/3, + =RV9XX/3,=RW0IM/1,=RW0QE/6,=RW2F/6,=RW9FF/3,=RW9W/3,=RW9W/4,=RX2FS/3,=RX9TC/1,=RX9UL/1,=RZ9AWN/6, + =UA0AK/3,=UA0FQ/6,=UA0KBG/3,=UA0KBG/6,=UA0KCX/3/P,=UA0KT/4,=UA0QNE/3,=UA0QNU/3,=UA0QQJ/3,=UA0UV/6, + =UA0XAK/3,=UA0XAK/6,=UA4NF/M,=UA9CCO/6,=UA9CDC/3,=UA9CTT/3,=UA9FFS/1/MM,=UE23DKA,=UE6MAC/9(17), + =UE95AE,=UE95E,=UE95ME,=UE96ME,=UE99PS, + =R900BL,=R9J/1,=RA2FN/1,=RA9KU/1,=RA9KU/1/M,=RA9MC/1,=RA9SGI/1,=RD1A/M,=RK9XWV/1,=RL1O,=RM0L/1, + =RM80DZ,=RN85AM,=RN85KN,=RT9T/1,=RU2FB/1,=RU9YT/1,=RU9YT/1/P,=RW1AI/ANT,=RW1AI/LH,=RW8W/1, + =RW9QA/1,=RX3AMI/1/LH,=UA1ADQ/ANT,=UA1BJ/ANT,=UA1JJ/ANT,=UA2FFX/1,=UA9B/1,=UA9KG/1,=UA9KGH/1, + =UA9KK/1,=UA9UDX/1,=UB9YUW/1,=UE21A,=UE21B,=UE21M,=UE22A,=UE25AC,=UE25AQ,=UE2AT/1, + =R0XAC/1,=R1CF/M,=R8XF/1,=R900DM,=R90LPU,=R9JNO/1,=RA0FU/1,=RA9FNV/1,=RN9N/1,=RU9MU/1,=RV0CA/1, + =RV2FW/1,=RV9JD/1,=RX9TN/1,=UA0BDS/1,=UA0SIK/1,=UA1CDA/LH,=UA1CIO/LH,=UA9MA/1,=UA9MQR/1, R1N[19],RA1N[19],RC1N[19],RD1N[19],RE1N[19],RF1N[19],RG1N[19],RJ1N[19],RK1N[19],RL1N[19],RM1N[19], RN1N[19],RO1N[19],RQ1N[19],RT1N[19],RU1N[19],RV1N[19],RW1N[19],RX1N[19],RY1N[19],RZ1N[19],U1N[19], UA1N[19],UB1N[19],UC1N[19],UD1N[19],UE1N[19],UF1N[19],UG1N[19],UH1N[19],UI1N[19],=R01DTV/1[19], @@ -2411,7 +2416,7 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =UA9XRP/1[20], =R9FM/1,=RA0BM/1,=RA0BM/1/P,=RA1QQ/LH,=RU9MX/1,=RW9XC/1,=UA1QV/ANT,=UA9XC/1,=UE80GS, =R88EPC,=R95NRL,=RA9FBV/1,=RA9SC/1,=RA9XY/1,=RV2FW/1/M,=RZ0IWW/1,=UA9XF/1,=UE9WFF/1, - =RA0ZD/1,=RP9X/1,=RP9XWM/1,=UE25WDW,=UE9XBW/1,=UF2F/1/M, + =RA0ZD/1,=RP9X/1,=RP9XWM/1,=RV1CC/M,=UE25WDW,=UE9XBW/1,=UF2F/1/M, R1Z[19],RA1Z[19],RC1Z[19],RD1Z[19],RE1Z[19],RF1Z[19],RG1Z[19],RJ1Z[19],RK1Z[19],RL1Z[19],RM1Z[19], RN1Z[19],RO1Z[19],RQ1Z[19],RT1Z[19],RU1Z[19],RV1Z[19],RW1Z[19],RX1Z[19],RY1Z[19],RZ1Z[19],U1Z[19], UA1Z[19],UB1Z[19],UC1Z[19],UD1Z[19],UE1Z[19],UF1Z[19],UG1Z[19],UH1Z[19],UI1Z[19],=R25RRA[19], @@ -2421,11 +2426,11 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =R01DTV/3,=R85PAR,=R870B,=R870C,=R870K,=R870M,=R870O,=R9FM/3,=RA2AT,=RA2FDX/3,=RA9CO/3,=RA9USU/3, =RC85MP,=RL3AB/FF,=RT2F/3/M,=RT9K/3,=RW0LF/3,=RX9UL/3,=RX9WN/3,=RZ9UA/3,=UA0KCX/3,=UA3AV/ANT, =UA8AA/3,=UA8AA/5,=UA9KHD/3,=UA9MA/3,=UA9MDU/3,=UA9MRX/3,=UA9QCP/3,=UA9UAX/3,=UE24SU, - =R85AAL,=R85QMR,=R85WDW,=R8B,=R8FF/3,=R8FF/M,=R8FF/P,=R90DNF,=R90WDW,=R99FSB,=R9YU/3,=RA0BY/3, - =RA80KEDR,=RA9KV/3,=RA9SB/3,=RA9XY/3,=RD0L/3,=RK3DSW/ANT,=RK3DWA/3/N,=RN9MD/3,=RT80KEDR,=RU0LM/3, - =RU2FA/3,=RU3HD/ANT,=RV0AO/3,=RV9LM/3/P,=RW0IM/3,=RW3DU/N,=RW9UEW/3,=RX9SN/3,=RZ9OL/3/M, - =RZ9OL/3/P,=RZ9SZ/3,=RZ9W/3,=UA0JAD/3,=UA0KCL/3,=UA0ZAZ/3,=UA9AJ/3/M,=UA9DD/3,=UA9HSI/3,=UA9ONJ/3, - =UA9XGD/3,=UA9XMC/3,=UE23DSA,=UE25FO,=UE95GA,=UE96WS, + =R85AAL,=R85QMR,=R85WDW,=R8B,=R8FF/3,=R90DNF,=R90WDW,=R99FSB,=R9YU/3,=RA0BY/3,=RA80KEDR,=RA9KV/3, + =RA9SB/3,=RA9XY/3,=RD0L/3,=RK3DSW/ANT,=RK3DWA/3/N,=RN9MD/3,=RT80KEDR,=RU0LM/3,=RU2FA/3,=RU3HD/ANT, + =RV0AO/3,=RV9LM/3/P,=RW0IM/3,=RW3DU/N,=RW9UEW/3,=RX9SN/3,=RZ9OL/3/M,=RZ9OL/3/P,=RZ9SZ/3,=RZ9W/3, + =UA0JAD/3,=UA0KCL/3,=UA0ZAZ/3,=UA9AJ/3/M,=UA9DD/3,=UA9HSI/3,=UA9ONJ/3,=UA9XGD/3,=UA9XMC/3, + =UE23DSA,=UE25FO,=UE95GA,=UE96WS, =R80ORL,=UA0QGM/3,=UE80O,=UE80OL, =R0CAF/3,=R3GO/FF,=RM0L/3,=RN3GL/FF,=RN3GW/FF,=RT5G/P/FF,=RW0IW/3,=UA3GM/ANT,=UE90FL, =RA9KT/3,=RZ9SZ/3/M,=UA0FHC/3,=UF2F/3/M, @@ -2433,8 +2438,9 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =UA3LMR/P,=UA9JFM/3,=UA9XZ/3,=UE80G,=UE80V,=UE80YG, =RK3MXT/FF,=RV9AZ/3,=UA0AD/3, =R870T,=RT90PK,=RU0ZW/3,=RW0UM/3,=RW9JV/3, - =R0AIB/3,=R89AFG,=RA0CCV/3,=RA0QA/3,=RC9YA/3/P,=RM8X/3,=RV9LC/3,=UA0QJE/3,=UA0QQO/3,=UA9CGL/3, - =UA9JLY/3,=UA9XLE/3,=UB0AJJ/3,=UB5O/M,=UC0LAF/3,=UE25AFG,=UE25R,=UE27AFG,=UE28AFG,=UE96SN, + =R0AI/3,=R0AI/M,=R0AIB/3,=R89AFG,=RA0CCV/3,=RA0QA/3,=RC9YA/3/P,=RM8X/3,=RV9LC/3,=UA0QJE/3, + =UA0QQO/3,=UA9CGL/3,=UA9JLY/3,=UA9XLE/3,=UB0AJJ/3,=UB5O/M,=UC0LAF/3,=UE25AFG,=UE25R,=UE27AFG, + =UE28AFG,=UE96SN, =R80RTL,=R90IARU,=R9CZ/3,=RU80TO,=RZ9HK/3/P, =R920RZ,=R95DOD,=RA0QQ/3,=UA0KBA/3,=UE80S,=UE85NKN,=UE85WDW, =R3TT/FF,=R8TA/4/P,=R8TR/3,=R90NOR,=R9KW/3,=R9KW/4,=R9PA/4,=RA95FL,=RA9AP/3,=RA9CKQ/4,=RA9KW/3, @@ -2442,7 +2448,7 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =RU9LA/4,=RV9FQ/3,=RV9FQ/3/M,=RV9WB/4,=RV9WLE/3/P,=RV9WZ/3,=RW9KW/3,=RW9WA/3,=RX9SN/P,=UA0ADX/3, =UA0DM/4,=UA0S/4,=UA0SC/4,=UA9APA/3/P,=UA9CTT/4,=UA9PM/4,=UA9SSR/3,=UE200TARS,=UE25TF,=UE9FDA/3, =UE9FDA/3/M,=UE9WDA/3,=UI8W/3/P, - =R5VAJ/N,=R850G,=R850PN,=RU0BW/3,=RV80KEDR,=RX9TL/3,=UA0FM/3, + =R5VAJ/N,=R850G,=R850PN,=RU0BW/3,=RV80KEDR,=RX9TL/3,=UA0FM/3,=UA3A/P, =R110A/P,=R80PVB, =R8XF/3,=RA9XF/3,=RC80KEDR,=RK0BWW/3,=RN80KEDR,=RW9XC/3/M,=RX3XX/N,=UA0KBA/3/P,=UA9SIV/3, =UE0ZOO/3, @@ -2474,7 +2480,7 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =UA9LAO/4[30],=UA9SQG/4/P[30],=UA9SY/4[30],=UC4I[29],=UI4I[29], =R01DTV/4,=R9XC/4,=RA9XAF/4,=UA4HIP/4,=UA9JFE/4, =R8XF/4,=RA4NCC[30],=RA9FR/4/P,=RA9XSM/4,=RD9CX/4,=RD9CX/4/P,=RU0LM/4,=RW9XC/4/M,=UA4NE/M, - =UA4NF[30],=UA4NF/M,=UA9APA/4/P,=UA9FIT/4,=UA9XI/4,=UE9FDA/4,=UE9FDA/4/M,=UE9GDA/4, + =UA4NF[30],=UA9APA/4/P,=UA9FIT/4,=UA9XI/4,=UE9FDA/4,=UE9FDA/4/M,=UE9GDA/4, =R95PW,=R9WI/4/P,=RA9CKM/4/M,=RA9FR/4/M,=RJ4P[30],=RK4P[30],=RK4PK[30],=RM4P[30],=RM4R[30], =RM8W/4/M,=RN9WWW/4,=RN9WWW/4/M,=RT05RO,=RU9SO/M,=RV9FQ/4/M,=RV9WKI/4/M,=RV9WKI/4/P,=RV9WMZ/4/M, =RV9WZ/4,=RW9TP/4/P,=RW9WA/4,=RW9WA/4/M,=RZ9WM/4,=UA2FM/4,=UA3AKO/4,=UA4PN[30],=UA4RF[30], @@ -2488,14 +2494,14 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =RA9WU/4/P[30],=RP72IZ[30],=RP73IZ[30],=RP74IZ[30],=RP75IZ[30],=RT20NY[30],=RW9FWB/4[30], =RW9FWR/4[30],=RW9FWR/4/M[30],=RX9FW/4[30],=UA9UAX/4/M[30], =RT9T/4,=RV9MD/4,=UA4PCM/M,=UE04YCS,=UE85AGN,=UE90AGN, - =R01DTV,=R01DTV/7,=R0IT/6,=R1CF/M,=R80TV,=R8XW/6,=R9JO/6,=R9KD/6,=R9OM/6,=R9WGM/6/M,=RA0APW/6, - =RA0FW/6,=RA0LIF/6,=RA0LLW/6,=RA0QR/6,=RA9ODR/6,=RA9ODR/6/M,=RA9SAS/6,=RA9UWD/6,=RA9WW/6,=RD9CX/6, - =RD9CX/6/P,=RK6AH/LH,=RK9JA/6,=RN0CF/6,=RN0JT/6,=RQ0C/6,=RT9K/6,=RT9K/6/P,=RT9K/6/QRP,=RU2FB/6, - =RU9MX/6,=RU9QRP/6/M,=RU9QRP/6/P,=RU9SO/6,=RV9FQ/6,=RW0LIF/6,=RW0LIF/6/LH,=RW6AWW/LH,=RW9JZ/6, - =RW9WA/6,=RX6AA/ANT,=RX6AAP/ANT,=RX9TX/6,=RZ9HG/6,=RZ9HT/6,=RZ9UF/6,=RZ9UZV/6,=UA0AGE/6,=UA0IT/6, - =UA0JL/6,=UA0LQQ/6/P,=UA0SEP/6,=UA2FT/6,=UA6ADC/N,=UA9COO/6,=UA9CTT/6,=UA9JON/6,=UA9JPX/6, - =UA9KB/6,=UA9KJ/6,=UA9KW/6,=UA9MQR/6,=UA9UAX/6,=UA9VR/6,=UA9XC/6,=UA9XCI/6,=UE9WDA/6,=UE9WFF/6, - =UF0W/6, + =R01DTV,=R01DTV/7,=R0IT/6,=R80TV,=R8XW/6,=R9JO/6,=R9KD/6,=R9OM/6,=R9WGM/6/M,=RA0APW/6,=RA0FW/6, + =RA0LIF/6,=RA0LLW/6,=RA0QR/6,=RA9ODR/6,=RA9ODR/6/M,=RA9SAS/6,=RA9UWD/6,=RA9WW/6,=RD9CX/6, + =RD9CX/6/P,=RK6AH/LH,=RK9JA/6,=RM8W/6,=RN0CF/6,=RN0JT/6,=RQ0C/6,=RT9K/6,=RT9K/6/P,=RT9K/6/QRP, + =RU2FB/6,=RU9MX/6,=RU9QRP/6/M,=RU9QRP/6/P,=RU9SO/6,=RV9FQ/6,=RW0LIF/6,=RW0LIF/6/LH,=RW6AWW/LH, + =RW9JZ/6,=RW9WA/6,=RX6AA/ANT,=RX6AAP/ANT,=RX9TX/6,=RZ9HG/6,=RZ9HT/6,=RZ9UF/6,=RZ9UZV/6,=UA0AGE/6, + =UA0IT/6,=UA0JL/6,=UA0LQQ/6/P,=UA0SEP/6,=UA2FT/6,=UA6ADC/N,=UA9COO/6,=UA9CTT/6,=UA9JON/6, + =UA9JPX/6,=UA9KB/6,=UA9KJ/6,=UA9KW/6,=UA9MQR/6,=UA9UAX/6,=UA9VR/6,=UA9XC/6,=UA9XCI/6,=UE9WDA/6, + =UE9WFF/6,=UF0W/6, =RA6EE/FF,=RN7G/FF,=UA0LEC/6,=UA9KAS/6,=UA9KAS/6/P, =R9XV/6,=RA0ZG/6,=RA9CHS/6,=RA9CHS/7,=RK7G/FF,=RM8A/6/M,=RT9K/7,=RU9CK/7,=RU9ZA/7,=RZ7G/FF, =RZ9ON/6,=UA0ZDA/6,=UA0ZS/6,=UA6HBO/N,=UA6HBO/ST30,=UA6IC/6/FF,=UA9CE/6,=UA9UAX/7/M,=UE80HS, @@ -2509,7 +2515,7 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: =RU9CK/7/M,=RU9CK/7/P,=RV9CX/7/P,=UA9JFN/6/M, =RT9K/7/P,=RZ7G/6/FF, =R01DTV/6,=RV9AB/6, - =R9FAZ/6/M,=R9MJ/6,=R9OM/5/P,=R9XT/6,=RA9KD/6,=RA9WU/6,=RN9N/6,=RT9T/6,=RT9T/6/M,=RU2FB/5, + =R9FAZ/6/M,=R9MJ/6,=R9OM/5/P,=R9XT/6,=RA9KD/6,=RA9WU/6,=RC8C/6,=RN9N/6,=RT9T/6,=RT9T/6/M,=RU2FB/5, =RU9WW/5/M,=RW9AW/5,=UA0LLM/5,=UA8WAA/5,=UA9CDC/6,=UA9UAX/5,=UE2KR,=UE98PW, =R8AEU/6,=R9MJ/6/M,=RN9N/6/M,=UA0ZL/6,=UB8ADI/5,=UB8ADI/6,=UE2SE, R8F(17)[30],R8G(17)[30],R9F(17)[30],R9G(17)[30],RA8F(17)[30],RA8G(17)[30],RA9F(17)[30], @@ -2532,13 +2538,14 @@ European Russia: 16: 29: EU: 53.65: -41.37: -4.0: UA: UH9G(17)[30],UI8F(17)[30],UI8G(17)[30],UI9F(17)[30],UI9G(17)[30],=R120RP(17)[30],=R155PM(17)[30], =R160PM(17)[30],=R18PER(17)[30],=R2011UFO(17)[30],=R2011UFO/M(17)[30],=R2011UFO/P(17)[30], =R2014WOG(17)[30],=R20PRM(17)[30],=R290PM(17)[30],=R2AG/9(17)[30],=R34CZF(17)[30], - =R6DAB/9(17)[30],=R8CZ/4(17)[30],=R8CZ/4/M(17)[30],=R8CZ/M(17)[30],=R95FR(17)[30],=R9CZ/4(17)[30], - =R9CZ/4/M(17)[30],=R9CZ/M(17)[30],=R9GM/P(17)[30],=R9KC/4/M(17)[30],=R9KC/8/M(17)[30], - =RA27FM(17)[30],=RA9XAI/4(17)[30],=RC20FM(17)[30],=RD4M/9(17)[30],=RG50P/M(17)[30], - =RN9N/4(17)[30],=RP70PK(17)[30],=RP9FKU(17)[30],=RP9FTK(17)[30],=RQ9F/M(17)[30],=RU27FQ(17)[30], - =RU27FW(17)[30],=RU4W/9(17)[30],=RV22PM(17)[30],=RX9TX/9(17)[30],=RZ16FM(17)[30],=RZ9WM/9(17)[30], - =UA1ZQO/9(17)[30],=UA3FQ/4(17)[30],=UA3FQ/4/P(17)[30],=UA3FQ/P(17)[30],=UA4NF/4/M(17)[30], - =UA4WA/9(17)[30],=UA9CGL/4/M(17)[30],=UA9CUA/4/M(17)[30],=UA9UAX/4(17)[30],=UE16SA(17)[30], + =R6DAB/9(17)[30],=R8CZ/4(17)[30],=R8CZ/4/M(17)[30],=R8CZ/M(17)[30],=R8FF/M(17)[30], + =R8FF/P(17)[30],=R95FR(17)[30],=R9CZ/4(17)[30],=R9CZ/4/M(17)[30],=R9CZ/M(17)[30],=R9GM/P(17)[30], + =R9KC/4/M(17)[30],=R9KC/8/M(17)[30],=RA27FM(17)[30],=RA9XAI/4(17)[30],=RC20FM(17)[30], + =RD4M/9(17)[30],=RG50P/M(17)[30],=RK3AW/4(17)[30],=RN9N/4(17)[30],=RP70PK(17)[30],=RP9FKU(17)[30], + =RP9FTK(17)[30],=RQ9F/M(17)[30],=RU27FQ(17)[30],=RU27FW(17)[30],=RU4W/9(17)[30],=RV22PM(17)[30], + =RX9TX/9(17)[30],=RZ16FM(17)[30],=RZ9WM/9(17)[30],=UA1ZQO/9(17)[30],=UA3FQ/4(17)[30], + =UA3FQ/4/P(17)[30],=UA3FQ/P(17)[30],=UA4NF/4/M(17)[30],=UA4WA/9(17)[30],=UA5B/4(17)[30], + =UA9CGL/4/M(17)[30],=UA9CGL/9/M(17)[30],=UA9CUA/4/M(17)[30],=UA9UAX/4(17)[30],=UE16SA(17)[30], =UE55PM(17)[30], =RP75TK(17)[30],=RW3TN/9(17)[30],=UE10SK(17)[30], R1I(17)[20],R8X(17)[20],R9X(17)[20],RA1I(17)[20],RA8X(17)[20],RA9X(17)[20],RC1I(17)[20], @@ -2577,8 +2584,8 @@ Kaliningrad: 15: 29: EU: 54.72: -20.52: -3.0: UA2: =R3SRR/2,=R3XA/2,=R5K/2,=R5QA/2,=R60A,=R680FBO,=R6AF/2,=R777AN,=R7LV/2,=R900BL/2,=RA/DL6KV, =RA/EU1FY/P,=RA/SP7VC,=RA2FDX/FF,=RA2FN/RP,=RA2FO/N,=RA3ATX/2,=RA3XM/2,=RA4LW/2,=RC18KA,=RD22FU, =RD3FG/2,=RJ22DX,=RK3QS/2,=RM9I/2,=RM9IX/2,=RN3GM/2,=RP2F,=RP2K,=RP70KB,=RP70KG,=RP70MW,=RP70WB, - =RP75GC,=RP75IGS,=RP75KB,=RP75MW,=RP75STP,=RT9T/2,=RU3FS/2,=RU5A/2,=RV3FF/2,=RV3MA/2,=RV3UK/2, - =RV9WZ/2,=RW9QA/2,=RY1AAA/2,=RZ3FA/2,=RZ6HB/2,=UA0SIK/2,=UA1AAE/2,=UA1AFT/2,=UA2DC/RP, + =RP75GC,=RP75IGS,=RP75KB,=RP75MW,=RP75STP,=RT9T/2,=RU3FS/2,=RU5A/2,=RU5D/2,=RV3FF/2,=RV3MA/2, + =RV3UK/2,=RV9WZ/2,=RW9QA/2,=RY1AAA/2,=RZ3FA/2,=RZ6HB/2,=UA0SIK/2,=UA1AAE/2,=UA1AFT/2,=UA2DC/RP, =UA2FM/MM(13),=UA3DJG/2,=UA4RC/2,=UA4WHX/2,=UA9UAX/2,=UB5O/2,=UB5O/2/M,=UB9KAA/2,=UE08F,=UE1RLH/2, =UE3QRP/2,=UE6MAC/2,=UF1M/2; Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: @@ -2603,21 +2610,21 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: =RP75IE,=RP75MMK,=RP75SU,=RP75TG,=RP75U,=RQ4D/8,=RT60RT,=RT73AB,=RU22AZ,=RV1AQ/9,=RV1CC/8, =RV1CC/9,=RV3BA/9,=RV9WB/9/M,=RV9WMZ/9/P,=RV9WMZ/P,=RX3RC/9,=RX9WN/9/M,=RX9WT/8,=RZ0OO/9, =RZ6DR/9/M,=RZ9OO/9/M,=UA0MF/9,=UA3AKO/8,=UA4RC/9,=UA6A/9,=UA6CW/9,=UA6YGY/8,=UA6YGY/9,=UA8WAA/9, - =UA8WAA/9/P,=UA8WAA/M,=UA9CGL/9/M,=UA9SG/9,=UA9TO/9/M,=UA9WMN/9/P,=UB5O/8,=UE45AWT,=UE70AAA, - =UE9WDA/9, + =UA8WAA/9/P,=UA8WAA/M,=UA9SG/9,=UA9TO/9/M,=UA9WMN/9/P,=UB5O/8,=UE45AWT,=UE70AAA,=UE9WDA/9, =R01DTV/8,=R100RGA,=R105WWS,=R14CWC/8,=R14CWC/9,=R150DMP,=R155AP,=R15CWC/8,=R15CWC/8/QRP,=R160DMP, =R16SVK,=R170GS/8,=R2015BP,=R2015R,=R2016DR,=R20EKB,=R22SKJ,=R27EKB,=R30ZF,=R35CZF,=R375I, =R44YETI/8,=R4WAB/9/P,=R55EPC,=R55EPC/P,=R6UAE/9,=R70NIK,=R7LZ/8,=R8FF/8,=R9GM/8,=R9GM/8/M, =R9WCJ/8,=RA/DL6XK,=RA/US5ETV,=RA0BA/8,=RA0BA/9,=RA27AA,=RA27EK,=RA36GS,=RA36ZF,=RA4YW/9, - =RA4YW/9/M,=RA9FW/9,=RA9WU/9,=RC18EK,=RD0B/8,=RK9AD/9/M,=RK9DR/N,=RL20NY,=RL4R/8,=RM0B/9,=RM19NY, - =RN16CW,=RN3QBG/9,=RP68DT,=RP68RG,=RP68TG,=RP68TK,=RP69GR,=RP70DT,=RP70G,=RP70GB,=RP70GR,=RP70MA, - =RP70SA,=RP70UH,=RP71DT,=RP71GA,=RP71GA/M,=RP71GB,=RP71GR,=RP71LT,=RP71MO,=RP71SA,=RP72DT,=RP72FI, - =RP72GB,=RP72GR,=RP72IM,=RP72KB,=RP72SA,=RP73DT,=RP73GB,=RP73GR,=RP73IM,=RP73SA,=RP74DT,=RP74GB, - =RP74GR,=RP74IM,=RP75DT,=RP75GB,=RP75IM,=RP75MF,=RP75MLI,=RP75RGA,=RP75TT,=RP75UR,=RT4C/8,=RT4W/9, - =RT73BR,=RT73EB,=RT73FL,=RT73HE,=RT73KB,=RT73SK,=RU22CR,=RU5D/8,=RU5D/9,=RV6LGY/9,=RV6LGY/9/M, - =RV6LGY/9/P,=RV6MD/9,=RV9WB/8,=RW4NX/9,=RW9C[20],=RX0SD/9,=RX3Q/8,=RX3Q/9,=RX9UL/9,=RY9C/P, - =RZ1CWC/8,=RZ37ZF,=RZ38ZF,=RZ39ZF,=UA0BA/8,=UA3FQ/8,=UA3IHJ/8,=UA4WHX/9,=UA8WAA/8,=UA9MW/9, - =UA9UAX/8,=UA9UAX/8/M,=UE16SR,=UE25F,=UE40CZF,=UE4NFF/9,=UE56S,=UE64RWA,=UE70SL,=UE75DT, + =RA4YW/9/M,=RA9FW/9,=RC18EK,=RD0B/8,=RK3AW/8,=RK9AD/9/M,=RK9DR/N,=RL20NY,=RL4R/8,=RM0B/9,=RM19NY, + =RN16CW,=RN3QBG/9,=RN9N/M,=RP68DT,=RP68RG,=RP68TG,=RP68TK,=RP69GR,=RP70DT,=RP70G,=RP70GB,=RP70GR, + =RP70MA,=RP70SA,=RP70UH,=RP71DT,=RP71GA,=RP71GA/M,=RP71GB,=RP71GR,=RP71LT,=RP71MO,=RP71SA,=RP72DT, + =RP72FI,=RP72GB,=RP72GR,=RP72IM,=RP72KB,=RP72SA,=RP73DT,=RP73GB,=RP73GR,=RP73IM,=RP73SA,=RP74DT, + =RP74GB,=RP74GR,=RP74IM,=RP75DT,=RP75GB,=RP75IM,=RP75MF,=RP75MLI,=RP75RGA,=RP75TT,=RP75UR,=RT4C/8, + =RT4W/9,=RT73BR,=RT73EB,=RT73FL,=RT73HE,=RT73KB,=RT73SK,=RU22CR,=RU5D/8,=RU5D/9,=RV6LGY/9, + =RV6LGY/9/M,=RV6LGY/9/P,=RV6MD/9,=RV9WB/8,=RW4NX/9,=RW9C[20],=RX0SD/9,=RX3Q/8,=RX3Q/9,=RX9UL/9, + =RY9C/P,=RZ1CWC/8,=RZ37ZF,=RZ38ZF,=RZ39ZF,=UA0BA/8,=UA3FQ/8,=UA3IHJ/8,=UA4WHX/9,=UA8WAA/8, + =UA9CGL/M,=UA9MW/9,=UA9UAX/8,=UA9UAX/8/M,=UE16SR,=UE25F,=UE40CZF,=UE4NFF/9,=UE56S,=UE64RWA, + =UE70SL,=UE75DT, R8H(18)[31],R8I(18)[31],R9H(18)[31],R9I(18)[31],RA8H(18)[31],RA8I(18)[31],RA9H(18)[31], RA9I(18)[31],RC8H(18)[31],RC8I(18)[31],RC9H(18)[31],RC9I(18)[31],RD8H(18)[31],RD8I(18)[31], RD9H(18)[31],RD9I(18)[31],RE8H(18)[31],RE8I(18)[31],RE9H(18)[31],RE9I(18)[31],RF8H(18)[31], @@ -2708,12 +2715,12 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: =R9/TA1FL(18)[31],=RA/DF8DX(18)[31],=RA/N3QQ(18)[31],=RA0LMC/9(18)[31],=RA27OA(18)[31], =RA27OM(18)[31],=RA3DH/9(18)[31],=RA3ET/9(18)[31],=RA4FRH/0/P(18)[31],=RA9JJ/9/M(18)[31], =RA9MX/9(18)[31],=RC1M/9(18)[31],=RC1M/9/M(18)[31],=RD0L/9(18)[31],=RG9O(18)[31],=RL3T/9(18)[31], - =RN9N/9/M(18)[31],=RN9N/M(18)[31],=RO9O(18)[31],=RP67MP(18)[31],=RP68MP(18)[31],=RP70MP(18)[31], - =RP71MP(18)[31],=RP72MP(18)[31],=RP73MP(18)[31],=RP74MP(18)[31],=RP75MP(18)[31],=RP9OMP(18)[31], - =RP9OW(18)[31],=RQ16CW(18)[31],=RR9O(18)[31],=RS9O(18)[31],=RU0ZM/9(18)[31],=RU27OZ(18)[31], - =RU6LA/9(18)[31],=RV0CJ/9(18)[31],=RW1AC/9(18)[31],=RW9MD/9/M(18)[31],=RZ9MXM/9(18)[31], - =UA0KDR/9(18)[31],=UA0ZAY/9(18)[31],=UA6WFO/9(18)[31],=UA9MA/9(18)[31],=UA9MA/9/M(18)[31], - =UA9MRA/9(18)[31],=UB5O/9(18)[31],=UE80NSO(18)[31], + =RN9N/9/M(18)[31],=RO9O(18)[31],=RP67MP(18)[31],=RP68MP(18)[31],=RP70MP(18)[31],=RP71MP(18)[31], + =RP72MP(18)[31],=RP73MP(18)[31],=RP74MP(18)[31],=RP75MP(18)[31],=RP9OMP(18)[31],=RP9OW(18)[31], + =RQ16CW(18)[31],=RR9O(18)[31],=RS9O(18)[31],=RU0ZM/9(18)[31],=RU27OZ(18)[31],=RU6LA/9(18)[31], + =RV0CJ/9(18)[31],=RW1AC/9(18)[31],=RW9MD/9/M(18)[31],=RZ9MXM/9(18)[31],=UA0KDR/9(18)[31], + =UA0ZAY/9(18)[31],=UA6WFO/9(18)[31],=UA9MA/9(18)[31],=UA9MA/9/M(18)[31],=UA9MRA/9(18)[31], + =UA9UAX/M(18)[31],=UB5O/9(18)[31],=UE80NSO(18)[31], =R110RP,=R120RDP,=R120RZ,=R120TM,=R150RP,=R155RP,=R160RP,=R18URU,=RA22QF,=RC20QA,=RC20QC,=RC20QF, =RM20CC,=RM20NY,=RM9RZ/A,=RM9RZ/P,=RP65R,=RP67KE,=RP67R,=RP68KE,=RP68R,=RP69KE,=RP69R,=RP70KE, =RP70R,=RP71R,=RP72KE,=RP72R,=RP75KE,=RT73CW,=RT73JH,=RV3MN/9,=RW22QA,=RW22QA/8,=RW22QC,=RW22QC/8, @@ -2732,14 +2739,14 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UG8S(16),UG8T(16),UG9S(16),UG9T(16),UH8S(16),UH8T(16),UH9S(16),UH9T(16),UI8S(16),UI8T(16), UI9S(16),UI9T(16),=R2014FX(16),=R2015DM(16),=R270A(16),=R270E(16),=R270SR(16),=R3ARS/9(16), =R40WK(16),=R9HQ(16),=R9JBN/8/M(16),=RA/UY7IQ(16),=RA27TR(16),=RA4HMT/9/M(16),=RA4HT/9(16), - =RA4PKR/9(16),=RA9CS/P(16),=RC20OB(16),=RC20TT(16),=RK3AW/4(16),=RN3DHB/9(16),=RN3DHB/9/P(16), - =RN3GW/8(16),=RN3GW/8/QRP(16),=RN3GW/9(16),=RN3GW/9/QRP(16),=RN3QOP/9(16),=RN9S(16),=RN9SM/P(16), - =RN9WWW/9(16),=RO9S(16),=RP65TT(16),=RP68GR(16),=RP69NB(16),=RP71TK(16),=RP75TS(16),=RP9SBO(16), - =RP9SBR(16),=RP9SNK(16),=RT22TK(16),=RT73OA(16),=RT8T(16),=RT9S(16),=RT9T(16),=RU22TU(16), - =RV1CC/4/M(16),=RV9WGF/4/M(16),=RV9WMZ/9/M(16),=RW4PJZ/9(16),=RW4PJZ/9/M(16),=RW4PP/9(16), - =RW9WA/9(16),=RW9WA/9/M(16),=RY4W/9(16),=RZ4HZW/9/M(16),=UA0AGA/9/P(16),=UA0KBA/9(16), - =UA3WB/9(16),=UA4LCQ/9(16),=UA9SIV/9(16),=UB5O/4(16),=UB9JBN/9/M(16),=UE1RFF/9(16),=UE25ST(16), - =UE55OB(16),=UE60TDP(16),=UE60TDP/P(16),=UE9WDA/9/M(16), + =RA4PKR/9(16),=RA9CS/P(16),=RC20OB(16),=RC20TT(16),=RN3DHB/9(16),=RN3DHB/9/P(16),=RN3GW/8(16), + =RN3GW/8/QRP(16),=RN3GW/9(16),=RN3GW/9/QRP(16),=RN3QOP/9(16),=RN9S(16),=RN9SM/P(16),=RN9WWW/9(16), + =RO9S(16),=RP65TT(16),=RP68GR(16),=RP69NB(16),=RP71TK(16),=RP75TS(16),=RP9SBO(16),=RP9SBR(16), + =RP9SNK(16),=RT22TK(16),=RT73OA(16),=RT8T(16),=RT9S(16),=RT9T(16),=RU22TU(16),=RV1CC/4/M(16), + =RV9WGF/4/M(16),=RV9WMZ/9/M(16),=RW4PJZ/9(16),=RW4PJZ/9/M(16),=RW4PP/9(16),=RW9WA/9(16), + =RW9WA/9/M(16),=RY4W/9(16),=RZ4HZW/9/M(16),=UA0AGA/9/P(16),=UA0KBA/9(16),=UA3WB/9(16), + =UA4LCQ/9(16),=UA9SIV/9(16),=UB5O/4(16),=UB9JBN/9/M(16),=UE1RFF/9(16),=UE25ST(16),=UE55OB(16), + =UE60TDP(16),=UE60TDP/P(16),=UE9WDA/9/M(16), R8U(18)[31],R8V(18)[31],R9U(18)[31],R9V(18)[31],RA8U(18)[31],RA8V(18)[31],RA9U(18)[31], RA9V(18)[31],RC8U(18)[31],RC8V(18)[31],RC9U(18)[31],RC9V(18)[31],RD8U(18)[31],RD8V(18)[31], RD9U(18)[31],RD9V(18)[31],RE8U(18)[31],RE8V(18)[31],RE9U(18)[31],RE9V(18)[31],RF8U(18)[31], @@ -2758,32 +2765,32 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UE8V(18)[31],UE9U(18)[31],UE9V(18)[31],UF8U(18)[31],UF8V(18)[31],UF9U(18)[31],UF9V(18)[31], UG8U(18)[31],UG8V(18)[31],UG9U(18)[31],UG9V(18)[31],UH8U(18)[31],UH8V(18)[31],UH9U(18)[31], UH9V(18)[31],UI8U(18)[31],UI8V(18)[31],UI9U(18)[31],UI9V(18)[31],=R10NRC(18)[31],=R1991A(18)[31], - =R22ULM(18)[31],=R400N(18)[31],=R70B(18)[31],=R9/EW1TM(18)[31],=R9UAG/N(18)[31],=RA4CQ/9(18)[31], - =RC4W/9(18)[31],=RK6CG/9(18)[31],=RP65UMF(18)[31],=RP67KM(18)[31],=RP68KM(18)[31],=RP69KM(18)[31], - =RP70KM(18)[31],=RP70NM(18)[31],=RP70UK(18)[31],=RP70ZF(18)[31],=RP71KM(18)[31],=RP72KM(18)[31], - =RP72NM(18)[31],=RP73KM(18)[31],=RP73NZ(18)[31],=RP73ZF(18)[31],=RP74KM(18)[31],=RP75KM(18)[31], - =RP75YE(18)[31],=RT22UA(18)[31],=RT77VV(18)[31],=RW0CE/9(18)[31],=RW4CG/9(18)[31],=RZ5D/9(18)[31], - =UA9JFE/9/P(18)[31],=UA9MA/M(18)[31],=UE3ATV/9(18)[31], + =R22ULM(18)[31],=R2SD/9(18)[31],=R400N(18)[31],=R70B(18)[31],=R9/EW1TM(18)[31],=R9UAG/N(18)[31], + =RA4CQ/9(18)[31],=RC4W/9(18)[31],=RK6CG/9(18)[31],=RP65UMF(18)[31],=RP67KM(18)[31], + =RP68KM(18)[31],=RP69KM(18)[31],=RP70KM(18)[31],=RP70NM(18)[31],=RP70UK(18)[31],=RP70ZF(18)[31], + =RP71KM(18)[31],=RP72KM(18)[31],=RP72NM(18)[31],=RP73KM(18)[31],=RP73NZ(18)[31],=RP73ZF(18)[31], + =RP74KM(18)[31],=RP75KM(18)[31],=RP75YE(18)[31],=RT22UA(18)[31],=RT77VV(18)[31],=RW0CE/9(18)[31], + =RW4CG/9(18)[31],=RZ5D/9(18)[31],=UA9JFE/9/P(18)[31],=UA9MA/M(18)[31],=UE3ATV/9(18)[31], R8W(16),R9W(16),RA8W(16),RA9W(16),RC8W(16),RC9W(16),RD8W(16),RD9W(16),RE8W(16),RE9W(16),RF8W(16), RF9W(16),RG8W(16),RG9W(16),RJ8W(16),RJ9W(16),RK8W(16),RK9W(16),RL8W(16),RL9W(16),RM8W(16), RM9W(16),RN8W(16),RN9W(16),RO8W(16),RO9W(16),RQ8W(16),RQ9W(16),RT8W(16),RT9W(16),RU8W(16), RU9W(16),RV8W(16),RV9W(16),RW8W(16),RW9W(16),RX8W(16),RX9W(16),RY8W(16),RY9W(16),RZ8W(16), RZ9W(16),U8W(16),U9W(16),UA8W(16),UA9W(16),UB8W(16),UB9W(16),UC8W(16),UC9W(16),UD8W(16),UD9W(16), UE8W(16),UE9W(16),UF8W(16),UF9W(16),UG8W(16),UG9W(16),UH8W(16),UH9W(16),UI8W(16),UI9W(16), - =R100W(16),=R10RTRS/9(16),=R18KDR/4(16),=R2013CG(16),=R2015AS(16),=R2015DS(16),=R2015KM(16), - =R2017F/P(16),=R2019CG(16),=R20BIS(16),=R20UFA(16),=R25ARCK/4(16),=R25MSB(16),=R25WPW(16), - =R27UFA(16),=R3XX/9(16),=R44WFF(16),=R53ICGA(16),=R53ICGB(16),=R53ICGC(16),=R53ICGF(16), - =R53ICGJ(16),=R53ICGS(16),=R53ICGV(16),=R53ICGW(16),=R7378TM(16),=R8JAJ/4(16),=R8JAJ/4/P(16), - =R8JAJ/9(16),=R90WGM(16),=R90WJV(16),=R90WOB(16),=R90WXK(16),=R9LY/4(16),=RA0R/4(16), - =RA1ZPC/9(16),=RA3AUU/9(16),=RA4POX/9(16),=RA8JA/4(16),=RA8JA/4/P(16),=RA9DF/4/M(16), - =RA9KDX/8/M(16),=RF9W(16),=RG5A/8(16),=RK3PWJ/9(16),=RK6YYA/9/M(16),=RK9KWI/9(16),=RK9KWI/9/P(16), - =RL3DX/9(16),=RM90WF(16),=RM9RZ/9/P(16),=RN9S/M(16),=RN9WWW/9/M(16),=RN9WWW/P(16),=RO17CW(16), - =RP67GI(16),=RP67MG(16),=RP67NG(16),=RP67RK(16),=RP67SW(16),=RP67UF(16),=RP68GM(16),=RP68NK(16), - =RP68UF(16),=RP69GI(16),=RP69PW(16),=RP69UF(16),=RP70GI(16),=RP70GM(16),=RP70LS(16),=RP70NK(16), - =RP70UF(16),=RP70ZO(16),=RP71GI(16),=RP71GM(16),=RP71UF(16),=RP72AR(16),=RP72GI(16),=RP72GM(16), - =RP72UF(16),=RP72WU(16),=RP73AR(16),=RP73GI(16),=RP73UF(16),=RP73WU(16),=RP74GI(16),=RP74UF(16), - =RP75DM(16),=RP75GI(16),=RP75MGI(16),=RP75UF(16),=RP75VAM(16),=RP75WU(16),=RT22WF(16),=RT2F/4(16), - =RT2F/4/M(16),=RT2F/9/M(16),=RT73EA(16),=RT73EL(16),=RT8A/4(16),=RT9W(16),=RT9W/P(16), + =R05SOTA(16),=R100W(16),=R10RTRS/9(16),=R18KDR/4(16),=R2013CG(16),=R2015AS(16),=R2015DS(16), + =R2015KM(16),=R2017F/P(16),=R2019CG(16),=R20BIS(16),=R20UFA(16),=R25ARCK/4(16),=R25MSB(16), + =R25WPW(16),=R27UFA(16),=R3XX/9(16),=R44WFF(16),=R53ICGA(16),=R53ICGB(16),=R53ICGC(16), + =R53ICGF(16),=R53ICGJ(16),=R53ICGS(16),=R53ICGV(16),=R53ICGW(16),=R7378TM(16),=R8JAJ/4(16), + =R8JAJ/4/P(16),=R8JAJ/9(16),=R90WGM(16),=R90WJV(16),=R90WOB(16),=R90WXK(16),=R9LY/4(16), + =RA0R/4(16),=RA1ZPC/9(16),=RA3AUU/9(16),=RA4POX/9(16),=RA8JA/4(16),=RA8JA/4/P(16),=RA9DF/4/M(16), + =RA9KDX/8/M(16),=RA9WU/9(16),=RF9W(16),=RG5A/8(16),=RK3PWJ/9(16),=RK6YYA/9/M(16),=RK9KWI/9(16), + =RK9KWI/9/P(16),=RL3DX/9(16),=RM90WF(16),=RM9RZ/9/P(16),=RN9S/M(16),=RN9WWW/9/M(16),=RN9WWW/P(16), + =RO17CW(16),=RP67GI(16),=RP67MG(16),=RP67NG(16),=RP67RK(16),=RP67SW(16),=RP67UF(16),=RP68GM(16), + =RP68NK(16),=RP68UF(16),=RP69GI(16),=RP69PW(16),=RP69UF(16),=RP70GI(16),=RP70GM(16),=RP70LS(16), + =RP70NK(16),=RP70UF(16),=RP70ZO(16),=RP71GI(16),=RP71GM(16),=RP71UF(16),=RP72AR(16),=RP72GI(16), + =RP72GM(16),=RP72UF(16),=RP72WU(16),=RP73AR(16),=RP73GI(16),=RP73UF(16),=RP73WU(16),=RP74GI(16), + =RP74UF(16),=RP75DM(16),=RP75GI(16),=RP75MGI(16),=RP75UF(16),=RP75VAM(16),=RP75WU(16),=RT22WF(16), + =RT2F/4(16),=RT2F/4/M(16),=RT2F/9/M(16),=RT73EA(16),=RT73EL(16),=RT8A/4(16),=RT9W(16),=RT9W/P(16), =RU110RAEM(16),=RU20WC(16),=RU22WZ(16),=RU27WB(16),=RU27WF(16),=RU27WN(16),=RU27WO(16), =RU3HD/9/P(16),=RU90WZ(16),=RU9CK/4/M(16),=RU9KC/4/M(16),=RU9SO/4(16),=RU9SO/4/P(16),=RV22WB(16), =RV2FZ/9(16),=RV90WB(16),=RV9CHB/4(16),=RV9CX/4/M(16),=RW3SN/9(16),=RW3XX/9(16),=RW4WA/9/P(16), @@ -2805,7 +2812,7 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: =RK1B/9(18)[31],=RP68BP(18)[31],=RP68TZ(18)[31],=RP70AF(18)[31],=RP70BP(18)[31],=RP70GA(18)[31], =RP71BP(18)[31],=RP72BP(18)[31],=RP73BP(18)[31],=RP9Y(18)[31],=RP9YAF(18)[31],=RP9YTZ(18)[31], =RT73GM(18)[31],=RW22WG(18)[31],=RX6AY/9(18)[31],=UA0LLW/9(18)[31],=UA0ZDY/9(18)[31], - =UA9UAX/9/P(18)[31],=UA9UAX/M(18)[31],=UE0ZOO/9(18)[31],=UE44R/9(18)[31],=UE80AL(18)[31], + =UA9UAX/9/P(18)[31],=UE0ZOO/9(18)[31],=UE44R/9(18)[31],=UE80AL(18)[31], R8Z(18)[31],R9Z(18)[31],RA8Z(18)[31],RA9Z(18)[31],RC8Z(18)[31],RC9Z(18)[31],RD8Z(18)[31], RD9Z(18)[31],RE8Z(18)[31],RE9Z(18)[31],RF8Z(18)[31],RF9Z(18)[31],RG8Z(18)[31],RG9Z(18)[31], RJ8Z(18)[31],RJ9Z(18)[31],RK8Z(18)[31],RK9Z(18)[31],RL8Z(18)[31],RL9Z(18)[31],RM8Z(18)[31], @@ -2816,7 +2823,7 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UC9Z(18)[31],UD8Z(18)[31],UD9Z(18)[31],UE8Z(18)[31],UE9Z(18)[31],UF8Z(18)[31],UF9Z(18)[31], UG8Z(18)[31],UG9Z(18)[31],UH8Z(18)[31],UH9Z(18)[31],UI8Z(18)[31],UI9Z(18)[31], =RA/IK5MIC/P(18)[31],=RA3DS/P(18)[31],=RC9YA/9/M(18)[31],=RW9MD/9/P(18)[31],=UA0KBG/9/P(18)[31], - =UA3A/P(18)[31],=UA9MAC/9(18)[31], + =UA9MAC/9(18)[31], R0A(18)[32],R0B(18)[32],R0H(18)[32],RA0A(18)[32],RA0B(18)[32],RA0H(18)[32],RC0A(18)[32], RC0B(18)[32],RC0H(18)[32],RD0A(18)[32],RD0B(18)[32],RD0H(18)[32],RE0A(18)[32],RE0B(18)[32], RE0H(18)[32],RF0A(18)[32],RF0B(18)[32],RF0H(18)[32],RG0A(18)[32],RG0B(18)[32],RG0H(18)[32], @@ -2830,21 +2837,21 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UA0B(18)[32],UA0H(18)[32],UB0A(18)[32],UB0B(18)[32],UB0H(18)[32],UC0A(18)[32],UC0B(18)[32], UC0H(18)[32],UD0A(18)[32],UD0B(18)[32],UD0H(18)[32],UE0A(18)[32],UE0B(18)[32],UE0H(18)[32], UF0A(18)[32],UF0B(18)[32],UF0H(18)[32],UG0A(18)[32],UG0B(18)[32],UG0H(18)[32],UH0A(18)[32], - UH0B(18)[32],UH0H(18)[32],UI0A(18)[32],UI0B(18)[32],UI0H(18)[32],=R00BVB(18)[32],=R100RW(18)[32], - =R120RB(18)[32],=R170GS(18)[32],=R18KDR/9(18)[32],=R18RUS(18)[32],=R2016A(18)[32],=R20KRK(18)[32], - =R44YETI/9(18)[32],=R50CQM(18)[32],=R63RRC(18)[32],=R7LZ/9(18)[32],=RA/UR5HVR(18)[32], - =RA0/UR5HVR(18)[32],=RA1AMW/0(18)[32],=RA3AUU/0(18)[32],=RA3BB/0(18)[32],=RA3DA/0(18)[32], - =RA3DA/9(18)[32],=RA4CQ/0(18)[32],=RA4CSX/0(18)[32],=RA4RU/0(18)[32],=RA9UT/0(18)[32], - =RAEM(18)[32],=RD110RAEM(18)[32],=RI0BV/0(18)[32],=RK3DZJ/9(18)[32],=RK56GC(18)[32], - =RK6BBM/9(18)[32],=RK80KEDR(18)[32],=RL5G/9(18)[32],=RM0A(18)[32],=RM2D/9(18)[32], + UH0B(18)[32],UH0H(18)[32],UI0A(18)[32],UI0B(18)[32],UI0H(18)[32],=R00BVB(18)[32],=R0WA/P(18)[32], + =R100RW(18)[32],=R120RB(18)[32],=R170GS(18)[32],=R18KDR/9(18)[32],=R18RUS(18)[32],=R2016A(18)[32], + =R20KRK(18)[32],=R44YETI/9(18)[32],=R50CQM(18)[32],=R63RRC(18)[32],=R7LZ/9(18)[32], + =RA/UR5HVR(18)[32],=RA0/UR5HVR(18)[32],=RA1AMW/0(18)[32],=RA3AUU/0(18)[32],=RA3BB/0(18)[32], + =RA3DA/0(18)[32],=RA3DA/9(18)[32],=RA4CQ/0(18)[32],=RA4CSX/0(18)[32],=RA4RU/0(18)[32], + =RA9UT/0(18)[32],=RAEM(18)[32],=RD110RAEM(18)[32],=RI0BV/0(18)[32],=RK3DZJ/9(18)[32], + =RK56GC(18)[32],=RK6BBM/9(18)[32],=RK80KEDR(18)[32],=RL5G/9(18)[32],=RM0A(18)[32],=RM2D/9(18)[32], =RM9RZ/0(18)[32],=RN0A(18)[32],=RN110RAEM(18)[32],=RN110RAEM/P(18)[32],=RP70KV(18)[32], =RP70RS(18)[32],=RP73KT(18)[32],=RP74KT(18)[32],=RP75BKF(18)[32],=RT22SA(18)[32],=RT9K/9(18)[32], =RU19NY(18)[32],=RU3FF/0(18)[32],=RU4CO/0(18)[32],=RV3DHC/0(18)[32],=RV3DHC/0/P(18)[32], =RV9WP/9(18)[32],=RW3XN/0(18)[32],=RW3YC/0(18)[32],=RW3YC/9(18)[32],=RY1AAB/9(18)[32], =RY1AAB/9/M(18)[32],=RZ3DSA/0(18)[32],=RZ3DZS/0(18)[32],=RZ9ON/9(18)[32],=UA0ACG/0(18)[32], - =UA0FCB/0(18)[32],=UA0FCB/0/P(18)[32],=UA0WG/0(18)[32],=UA0WW/0(18)[32],=UA0WW/M(18)[32], - =UA0WY/0(18)[32],=UA3ADN/0(18)[32],=UA4LU/0(18)[32],=UA4PT/0(18)[32],=UA6BTN/0(18)[32], - =UA9UAX/9(18)[32],=UA9WDK/0(18)[32],=UB1AJQ/0(18)[32],=UE1WFF/0(18)[32], + =UA0FCB/0(18)[32],=UA0FCB/0/P(18)[32],=UA0WG/0(18)[32],=UA0WG/P(18)[32],=UA0WW/0(18)[32], + =UA0WW/M(18)[32],=UA0WY/0(18)[32],=UA3ADN/0(18)[32],=UA4LU/0(18)[32],=UA4PT/0(18)[32], + =UA6BTN/0(18)[32],=UA9UAX/9(18)[32],=UA9WDK/0(18)[32],=UB1AJQ/0(18)[32],=UE1WFF/0(18)[32], =R100D(18)[22],=R100DI(18)[22],=R3CA/9(18)[22],=RA3XR/0(18)[22],=RA9LI/0(18)[22],=RI0B(18)[22], =RI0BDI(18)[22],=RS0B(18)[22],=RS0B/P(18)[22],=RV3EFH/0(18)[22],=RW1AI/9(18)[22],=RW3GW/0(18)[22], =RX6LMQ/0(18)[22],=RZ9DX/0(18)[22],=RZ9DX/0/A(18)[22],=RZ9DX/0/P(18)[22],=RZ9DX/9(18)[22], @@ -2896,7 +2903,7 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UF0K(19)[25],UG0K(19)[25],UH0K(19)[25],UI0K(19)[25],=R2015RY(19)[25],=R207RRC(19)[25], =R71RRC(19)[25],=RA3AV/0(19)[25],=RA3XV/0(19)[25],=RC85AO(19)[25],=RP70AS(19)[25],=RT65KI(19)[25], =RT92KA(19)[25],=RU9MV/0(19)[25],=RV3MA/0(19)[25],=RZ3EC/0(19)[25],=RZ6LL/0(19)[25], - =RZ6MZ/0(19)[25],=UA1ORT/0(19)[25],=UA6LP/0(19)[25],=UD6AOP/0(19)[25], + =RZ6MZ/0(19)[25],=UA1ORT/0(19)[25],=UA6LP/0(19)[25], R0L(19)[34],R0M(19)[34],R0N(19)[34],RA0L(19)[34],RA0M(19)[34],RA0N(19)[34],RC0L(19)[34], RC0M(19)[34],RC0N(19)[34],RD0L(19)[34],RD0M(19)[34],RD0N(19)[34],RE0L(19)[34],RE0M(19)[34], RE0N(19)[34],RF0L(19)[34],RF0M(19)[34],RF0N(19)[34],RG0L(19)[34],RG0M(19)[34],RG0N(19)[34], @@ -2912,17 +2919,17 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UF0N(19)[34],UG0L(19)[34],UG0M(19)[34],UG0N(19)[34],UH0L(19)[34],UH0M(19)[34],UH0N(19)[34], UI0L(19)[34],UI0M(19)[34],UI0N(19)[34],=R150L(19)[34],=R17CWH(19)[34],=R20RRC/0(19)[34], =R3BY/0(19)[34],=R3HD/0(19)[34],=R66IOTA(19)[34],=R70LWA(19)[34],=R8CW/0(19)[34],=R8XW/0(19)[34], - =R9MI/0(19)[34],=R9XT/0(19)[34],=RA/IK7YTT(19)[34],=RA/OK1DWF(19)[34],=RD3BN/0(19)[34], - =RL5G/0/P(19)[34],=RM0M(19)[34],=RM0M/LH(19)[34],=RM5M/0(19)[34],=RN1NS/0(19)[34],=RP0L(19)[34], - =RP0LPK(19)[34],=RP60P(19)[34],=RP66V(19)[34],=RP67SD(19)[34],=RP67V(19)[34],=RP68SD(19)[34], - =RP68V(19)[34],=RP69SD(19)[34],=RP69V(19)[34],=RP70DG(19)[34],=RP70SD(19)[34],=RP70V(19)[34], - =RP71DG(19)[34],=RP71SD(19)[34],=RP71V(19)[34],=RP72DG(19)[34],=RP72SD(19)[34],=RP72V(19)[34], - =RP73DG(19)[34],=RP73SD(19)[34],=RP73V(19)[34],=RP74DG(19)[34],=RP74SD(19)[34],=RP74V(19)[34], - =RP75DG(19)[34],=RP75SD(19)[34],=RP75V(19)[34],=RU3BY/0(19)[34],=RU5D/0(19)[34],=RV1AW/0(19)[34], - =RV3DSA/0(19)[34],=RW22GO(19)[34],=RW3LG/0(19)[34],=RX15RX(19)[34],=RX20NY(19)[34], - =UA0SDX/0(19)[34],=UA0SIK/0(19)[34],=UA3AHA/0(19)[34],=UA4SBZ/0(19)[34],=UA6MF/0(19)[34], - =UA7R/0(19)[34],=UB0LAP/P(19)[34],=UC0LAF/P(19)[34],=UE1RFF/0(19)[34],=UE70MA(19)[34], - =UE75L(19)[34], + =R9MI/0(19)[34],=R9XT/0(19)[34],=RA/IK7YTT(19)[34],=RA/OK1DWF(19)[34],=RD3ARD/0(19)[34], + =RD3BN/0(19)[34],=RL5G/0/P(19)[34],=RM0M(19)[34],=RM0M/LH(19)[34],=RM5M/0(19)[34], + =RN1NS/0(19)[34],=RP0L(19)[34],=RP0LPK(19)[34],=RP60P(19)[34],=RP66V(19)[34],=RP67SD(19)[34], + =RP67V(19)[34],=RP68SD(19)[34],=RP68V(19)[34],=RP69SD(19)[34],=RP69V(19)[34],=RP70DG(19)[34], + =RP70SD(19)[34],=RP70V(19)[34],=RP71DG(19)[34],=RP71SD(19)[34],=RP71V(19)[34],=RP72DG(19)[34], + =RP72SD(19)[34],=RP72V(19)[34],=RP73DG(19)[34],=RP73SD(19)[34],=RP73V(19)[34],=RP74DG(19)[34], + =RP74SD(19)[34],=RP74V(19)[34],=RP75DG(19)[34],=RP75SD(19)[34],=RP75V(19)[34],=RU3BY/0(19)[34], + =RU5D/0(19)[34],=RV1AW/0(19)[34],=RV3DSA/0(19)[34],=RW22GO(19)[34],=RW3LG/0(19)[34], + =RX15RX(19)[34],=RX20NY(19)[34],=UA0SDX/0(19)[34],=UA0SIK/0(19)[34],=UA3AHA/0(19)[34], + =UA4SBZ/0(19)[34],=UA6MF/0(19)[34],=UA7R/0(19)[34],=UB0LAP/P(19)[34],=UC0LAF/P(19)[34], + =UE1RFF/0(19)[34],=UE70MA(19)[34],=UE75L(19)[34], R0O(18)[32],RA0O(18)[32],RC0O(18)[32],RD0O(18)[32],RE0O(18)[32],RF0O(18)[32],RG0O(18)[32], RJ0O(18)[32],RK0O(18)[32],RL0O(18)[32],RM0O(18)[32],RN0O(18)[32],RO0O(18)[32],RQ0O(18)[32], RT0O(18)[32],RU0O(18)[32],RV0O(18)[32],RW0O(18)[32],RX0O(18)[32],RY0O(18)[32],RZ0O(18)[32], @@ -2980,10 +2987,11 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: RJ0Y(23)[32],RK0Y(23)[32],RL0Y(23)[32],RM0Y(23)[32],RN0Y(23)[32],RO0Y(23)[32],RQ0Y(23)[32], RT0Y(23)[32],RU0Y(23)[32],RV0Y(23)[32],RW0Y(23)[32],RX0Y(23)[32],RY0Y(23)[32],RZ0Y(23)[32], U0Y(23)[32],UA0Y(23)[32],UB0Y(23)[32],UC0Y(23)[32],UD0Y(23)[32],UE0Y(23)[32],UF0Y(23)[32], - UG0Y(23)[32],UH0Y(23)[32],UI0Y(23)[32],=R0WX/P(23)[32],=R9OOO/9/M(23)[32],=R9OOO/9/P(23)[32], - =R9OY/9/P(23)[32],=RA0AJ/0/P(23)[32],=RA0WA/0/P(23)[32],=RA9YME/0(23)[32],=RK3BY/0(23)[32], - =RP0Y(23)[32],=RX0AE/0(23)[32],=RX0AT/0/P(23)[32],=UA0ADU/0(23)[32],=UA0WGD/0(23)[32], - =UA9ZZ/0/P(23)[32],=UE0OFF/0(23)[32],=UE44Y/9(23)[32],=UE70Y(23)[32], + UG0Y(23)[32],UH0Y(23)[32],UI0Y(23)[32],=R0WX/P(23)[32],=R8MZ/0(23)[32],=R8MZ/9(23)[32], + =R9OOO/9/M(23)[32],=R9OOO/9/P(23)[32],=R9OY/9/P(23)[32],=RA0AJ/0/P(23)[32],=RA0WA/0/P(23)[32], + =RA9YME/0(23)[32],=RK3BY/0(23)[32],=RP0Y(23)[32],=RX0AE/0(23)[32],=RX0AT/0/P(23)[32], + =UA0ADU/0(23)[32],=UA0WGD/0(23)[32],=UA9ZZ/0/P(23)[32],=UE0OFF/0(23)[32],=UE44Y/9(23)[32], + =UE70Y(23)[32], R0X(19)[35],R0Z(19)[35],RA0X(19)[35],RA0Z(19)[35],RC0X(19)[35],RC0Z(19)[35],RD0X(19)[35], RD0Z(19)[35],RE0X(19)[35],RE0Z(19)[35],RF0X(19)[35],RF0Z(19)[35],RG0X(19)[35],RG0Z(19)[35], RI0X(19)[35],RI0Z(19)[35],RJ0X(19)[35],RJ0Z(19)[35],RK0X(19)[35],RK0Z(19)[35],RL0X(19)[35], @@ -2996,8 +3004,8 @@ Asiatic Russia: 17: 30: AS: 55.88: -84.08: -7.0: UA9: UI0Z(19)[35],=R120RI(19)[35],=R6MG/0(19)[35],=R750X(19)[35],=RK1B/0(19)[35],=RM7C/0(19)[35], =RN6HI/0(19)[35],=RN7G/0(19)[35],=RP0Z(19)[35],=RP0ZKD(19)[35],=RP68PK(19)[35],=RT22ZS(19)[35], =RT9K/0(19)[35],=RV2FW/0(19)[35],=RX3F/0(19)[35],=RZ9O/0(19)[35],=UA3AAC/0(19)[35], - =UA3AKO/0(19)[35],=UA6ANU/0(19)[35],=UE23RRC(19)[35],=UE23RRC/P(19)[35],=UE3ATV/0(19)[35], - =UE44V(19)[35], + =UA3AKO/0(19)[35],=UA6ANU/0(19)[35],=UD6AOP/0(19)[35],=UE23RRC(19)[35],=UE23RRC/P(19)[35], + =UE3ATV/0(19)[35],=UE44V(19)[35], R0U(18)[32],R0V(18)[32],RA0U(18)[32],RA0V(18)[32],RC0U(18)[32],RC0V(18)[32],RD0U(18)[32], RD0V(18)[32],RE0U(18)[32],RE0V(18)[32],RF0U(18)[32],RF0V(18)[32],RG0U(18)[32],RG0V(18)[32], RJ0U(18)[32],RJ0V(18)[32],RK0U(18)[32],RK0V(18)[32],RL0U(18)[32],RL0V(18)[32],RM0U(18)[32], @@ -3068,7 +3076,7 @@ Marshall Islands: 31: 65: OC: 9.08: -167.33: -12.0: V7: Brunei Darussalam: 28: 54: OC: 4.50: -114.60: -8.0: V8: V8; Canada: 05: 09: NA: 44.35: 78.75: 5.0: VE: - CF,CG,CJ,CK,VA,VB,VC,VE,VG,VX,VY9,XL,XM,=VE2EM/M,=VER20200803, + CF,CG,CJ,CK,VA,VB,VC,VE,VG,VX,VY9,XL,XM,=VE2EM/M,=VER20200901, =CF7AAW/1,=CK7IG/1,=VA3QSL/1,=VA3WR/1,=VE1REC/LH,=VE1REC/M/LH,=VE3RSA/1,=VE7IG/1, CF2[4],CG2[4],CJ2[4],CK2[4],VA2[4],VB2[4],VC2[4],VE2[4],VG2[4],VX2[4],XL2[4],XM2[4],=4Y1CAO[4], =CY2ZT/2[4],=VA3MPM/2[4],=VA7AQ/P[4],=VE2/G3ZAY/P[4],=VE2/M0BLF/P[4],=VE2FK[9],=VE2HAY/P[4], @@ -3129,20 +3137,21 @@ Australia: 30: 59: OC: -23.70: -132.33: -10.0: VK: AX6(29)[58],VH6(29)[58],VI6(29)[58],VJ6(29)[58],VK6(29)[58],VL6(29)[58],VM6(29)[58],VN6(29)[58], VZ6(29)[58],=VI103WIA(29)[58],=VI5RAS/6(29)[58],=VI90ANZAC(29)[58],=VK1FOC/6(29)[58], =VK1LAJ/6(29)[58],=VK2015TDF(29)[58],=VK2BAA/6(29)[58],=VK2CV/6(29)[58],=VK2FDU/6(29)[58], - =VK2IA/6(29)[58],=VK2RAS/6(29)[58],=VK3DP/6(29)[58],=VK3DXI/6(29)[58],=VK3FPF/6(29)[58], - =VK3FPIL/6(29)[58],=VK3JBL/6(29)[58],=VK3KG/6(29)[58],=VK3MCD/6(29)[58],=VK3NUT/6(29)[58], - =VK3OHM/6(29)[58],=VK3TWO/6(29)[58],=VK3YQS/6(29)[58],=VK3ZK/6(29)[58],=VK4FDJL/6(29)[58], - =VK4IXU/6(29)[58],=VK4JWG/6(29)[58],=VK4NAI/6(29)[58],=VK4NH/6(29)[58],=VK4SN/6(29)[58], - =VK4VXX/6(29)[58],=VK5CC/6(29)[58],=VK5CE/6(29)[58],=VK5CE/9(29)[58],=VK5FLEA/6(29)[58], - =VK5FMAZ/6(29)[58],=VK5HYZ/6(29)[58],=VK5MAV/6(29)[58],=VK5NHG/6(29)[58],=VK5PAS/6(29)[58], - =VK6BV/AF(29)[58],=VK9AR(29)[58],=VK9AR/6(29)[58],=VK9ZLH/6(29)[58], + =VK2IA/6(29)[58],=VK2RAS/6(29)[58],=VK3DP/6(29)[58],=VK3DXI/6(29)[58],=VK3FM/6(29)[58], + =VK3FPF/6(29)[58],=VK3FPIL/6(29)[58],=VK3JBL/6(29)[58],=VK3KG/6(29)[58],=VK3MCD/6(29)[58], + =VK3NUT/6(29)[58],=VK3OHM/6(29)[58],=VK3TWO/6(29)[58],=VK3YQS/6(29)[58],=VK3ZK/6(29)[58], + =VK4FDJL/6(29)[58],=VK4IXU/6(29)[58],=VK4JWG/6(29)[58],=VK4NAI/6(29)[58],=VK4NH/6(29)[58], + =VK4SN/6(29)[58],=VK4VXX/6(29)[58],=VK5CC/6(29)[58],=VK5CE/6(29)[58],=VK5CE/9(29)[58], + =VK5FLEA/6(29)[58],=VK5FMAZ/6(29)[58],=VK5HYZ/6(29)[58],=VK5MAV/6(29)[58],=VK5NHG/6(29)[58], + =VK5PAS/6(29)[58],=VK6BV/AF(29)[58],=VK9AR(29)[58],=VK9AR/6(29)[58],=VK9ZLH/6(29)[58], =VK6JON/7,=VK6KSJ/7,=VK6ZN/7,=VK7NWT/LH,=VK8XX/7, AX8(29)[55],VH8(29)[55],VI8(29)[55],VJ8(29)[55],VK8(29)[55],VL8(29)[55],VM8(29)[55],VN8(29)[55], VZ8(29)[55],=VI5RAS/8(29)[55],=VK1AHS/8(29)[55],=VK1FOC/8(29)[55],=VK2CBD/8(29)[55], =VK2CR/8(29)[55],=VK2GR/8(29)[55],=VK2ZK/8(29)[55],=VK3BYD/8(29)[55],=VK3DHI/8(29)[55], - =VK3QB/8(29)[55],=VK3ZK/8(29)[55],=VK4FOC/8(29)[55],=VK4HDG/8(29)[55],=VK4VXX/8(29)[55], - =VK4WWI/8(29)[55],=VK5CE/8(29)[55],=VK5HSX/8(29)[55],=VK5MAV/8(29)[55],=VK5UK/8(29)[55], - =VK5WTF/8(29)[55],=VK8HLF/J(29)[55]; + =VK3QB/8(29)[55],=VK3SN/8(29)[55],=VK3ZK/8(29)[55],=VK4EMS/8(29)[55],=VK4FOC/8(29)[55], + =VK4HDG/8(29)[55],=VK4KC/8(29)[55],=VK4VXX/8(29)[55],=VK4WWI/8(29)[55],=VK5BC/8(29)[55], + =VK5CE/8(29)[55],=VK5HSX/8(29)[55],=VK5MAV/8(29)[55],=VK5UK/8(29)[55],=VK5WTF/8(29)[55], + =VK8HLF/J(29)[55]; Heard Island: 39: 68: AF: -53.08: -73.50: -5.0: VK0H: =VK0/K2ARB,=VK0EK,=VK0LD; Macquarie Island: 30: 60: OC: -54.60: -158.88: -10.0: VK0M: From 2f912c14e853b98d3a54e84d0b8018395c387289 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 12 Sep 2020 03:29:27 +0100 Subject: [PATCH 466/520] Restore l10n strings lost on round trip Reminder to touch a source file with any l10n string to force translatable strings to be updated when there are no other source file changes. --- translations/wsjtx_es.ts | 2018 ++++++++++++++++++++++---------------- 1 file changed, 1179 insertions(+), 839 deletions(-) diff --git a/translations/wsjtx_es.ts b/translations/wsjtx_es.ts index 658a05624..f0323b395 100644 --- a/translations/wsjtx_es.ts +++ b/translations/wsjtx_es.ts @@ -150,19 +150,19 @@ Datos Astronómicos - + Doppler Tracking Error Error de seguimiento de Doppler Seguimiento de error Doppler - + Split operating is required for Doppler tracking Se requiere un funcionamiento dividido para el seguimiento Doppler Operación en "Split" es requerida para seguimiento Doppler - + Go to "Menu->File->Settings->Radio" to enable split operation Ves a "Menú-> Archivo-> Configuración-> Radio" para habilitar la operación dividida Ir a "Menú - Archivo - Ajustes - Radio" para habilitar la operación en "Split" @@ -171,33 +171,33 @@ Bands - + Band name Nombre de la Banda Nombre de la banda - + Lower frequency limit Límite de frecuencia inferior - + Upper frequency limit Límite de frecuencia superior - + Band Banda - + Lower Limit Límite inferior - + Upper Limit Limite superior @@ -404,81 +404,81 @@ Configuration::impl - - - + + + &Delete &Borrar - - + + &Insert ... &Introducir ... &Agregar... - + Failed to create save directory No se pudo crear el directorio para guardar No se pudo crear el directorio "Save" - + path: "%1% ruta: "%1% - + Failed to create samples directory No se pudo crear el directorio de ejemplos No se pudo crear el directorio "Samples" - + path: "%1" ruta: "%1" - + &Load ... &Carga ... &Cargar ... - + &Save as ... &Guardar como ... &Guardar como ... - + &Merge ... &Fusionar ... &Fusionar ... - + &Reset &Reiniciar - + Serial Port: Puerto Serie: - + Serial port used for CAT control Puerto serie utilizado para el control CAT - + Network Server: Servidor de red: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -499,12 +499,12 @@ Formatos: [dirección IPv6]:port - + USB Device: Dispositivo USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -519,172 +519,177 @@ Formato: [VID[:PID[:VENDOR[:PRODUCT]]]] - + + Invalid audio input device El dispositivo de entrada de audio no es válido Dispositivo de entrada de audio no válido - Invalid audio out device El dispositivo de salida de audio no es válido - Dispositivo de salida de audio no válido + Dispositivo de salida de audio no válido - + + Invalid audio output device + + + + Invalid PTT method El método de PTT no es válido Método PTT no válido - + Invalid PTT port El puerto del PTT no es válido Puerto PTT no válido - - + + Invalid Contest Exchange Intercambio de concurso no válido - + You must input a valid ARRL Field Day exchange Debes introducir un intercambio de Field Day del ARRL válido Debe introducir un intercambio válido para el ARRL Field Day - + You must input a valid ARRL RTTY Roundup exchange Debes introducir un intercambio válido de la ARRL RTTY Roundup Debe introducir un intercambio válido para el ARRL RTTY Roundup - + Reset Decode Highlighting Restablecer Resaltado de Decodificación Restablecer resaltado de colores de decodificados - + Reset all decode highlighting and priorities to default values Restablecer todo el resaltado y las prioridades de decodificación a los valores predeterminados Restablecer todo el resaltado de colores y prioridades a los valores predeterminados - + WSJT-X Decoded Text Font Chooser Tipo de texto de pantalla de descodificación WSJT-X Seleccionar un tipo de letra - + Load Working Frequencies Carga las frecuencias de trabajo Cargar las frecuencias de trabajo - - - + + + Frequency files (*.qrg);;All files (*.*) Archivos de frecuencia (*.qrg);;Todos los archivos (*.*) - + Replace Working Frequencies Sustituye las frecuencias de trabajo Sustituir las frecuencias de trabajo - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por las cargadas? ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las cargadas? - + Merge Working Frequencies Combinar las frecuencias de trabajo Combina las frecuencias de trabajo - - - + + + Not a valid frequencies file El archivo de frecuencias no es válido Archivo de frecuencias no válido - + Incorrect file magic Archivo mágico incorrecto - + Version is too new La versión es demasiado nueva - + Contents corrupt contenidos corruptos Contenido corrupto - + Save Working Frequencies Guardar las frecuencias de trabajo - + Only Save Selected Working Frequencies Guarda sólo las frecuencias de trabajo seleccionadas Sólo guarda las frecuencias de trabajo seleccionadas - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. ¿Seguro que quieres guardar sólo las frecuencias de trabajo seleccionadas actualmente? Haz clic en No para guardar todo. ¿Seguro que quiere guardar sólo las frecuencias de trabajo seleccionadas actualmente? Clic en No para guardar todo. - + Reset Working Frequencies Reiniciar las frecuencias de trabajo - + Are you sure you want to discard your current working frequencies and replace them with default ones? ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por otras? ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las de defecto? - + Save Directory Guardar directorio Directorio "Save" - + AzEl Directory Directorio AzEl - + Rig control error Error de control del equipo - + Failed to open connection to rig No se pudo abrir la conexión al equipo Fallo al abrir la conexión al equipo - + Rig failure Fallo en el equipo @@ -764,9 +769,14 @@ Formato: + DX Lab Suite Commander send command failed "%1": %2 + + + + DX Lab Suite Commander failed to send command "%1": %2 - DX Lab Suite Commander ha fallado al enviar el comando "%1": %2 + DX Lab Suite Commander ha fallado al enviar el comando "%1": %2 @@ -1576,23 +1586,23 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency Agregar frecuencia Añadir frecuencia - + IARU &Region: &Región IARU: - + &Mode: &Modo: - + &Frequency (MHz): &Frecuencia en MHz: &Frecuencia (MHz): @@ -1601,26 +1611,26 @@ Error: %2 - %3 FrequencyList_v2 - - + + IARU Region Región IARU - - + + Mode Modo - - + + Frequency Frecuencia - - + + Frequency (MHz) Frecuencia en MHz Frecuencia (MHz) @@ -1925,21 +1935,18 @@ Error: %2 - %3 HelpTextWindow - Help file error Error del archivo de ayuda - Error en el archivo de ayuda + Error en el archivo de ayuda - Cannot open "%1" for reading No se puede abrir "%1" para leer - No se puede abrir "%1" para lectura + No se puede abrir "%1" para lectura - Error: %1 - Error: %1 + Error: %1 @@ -2270,12 +2277,13 @@ Error(%2): %3 - - - - - - + + + + + + + Band Activity Actividad en la banda @@ -2287,11 +2295,12 @@ Error(%2): %3 - - - - - + + + + + + Rx Frequency Frecuencia de RX @@ -2329,135 +2338,250 @@ Error(%2): %3 Activa/Desactiva la monitorización - + &Monitor &Monitor - + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> <html><head/><body><p>Borrar ventana derecha. Haz doble clic para borrar ambas ventanas.</p></body></html> <html><head/><body><p>Clic para borrar ventana derecha.</p><p> Doble clic para borrar ambas ventanas.</p></body></html> - + Erase right window. Double-click to erase both windows. Borrar ventana derecha. Haz doble clic para borrar ambas ventanas. Borra ventana derecha. Doble clic para borrar ambas ventanas. - + &Erase &Borrar - + <html><head/><body><p>Clear the accumulating message average.</p></body></html> <html><head/><body><p>Borrar el promedio de mensajes acumulados.</p></body></html> <html><head/><body><p>Borrar el promedio de mensajes acumulados.</p></body></html> - + Clear the accumulating message average. Borrar el promedio de mensajes acumulados. - + Clear Avg Borrar media - + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> <html><head/><body><p>Decodificar el período de RX más reciente en la frecuencia QSO</p></body></html> <html><head/><body><p>Decodifica el período de RX más reciente en la frecuencia del QSO</p></body></html> - + Decode most recent Rx period at QSO Frequency Decodificar el período de RX más reciente en la frecuencia QSO Decodifica el período más reciente de RX en la frecuencia del QSO - + &Decode &Decodificar &Decodifica - + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> <html><head/><body><p>Activar/desactivar TX</p></body></html> <html><head/><body><p>Activar/Desactivar TX</p></body></html> - + Toggle Auto-Tx On/Off Activar/desactivar TX Activa/Desactiva Auto-TX - + E&nable Tx &Activar TX - + Stop transmitting immediately Detiene TX inmediatamente Detener TX inmediatamente - + &Halt Tx &Detener TX - + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> <html><head/><body><p>Activar/desactivar un tono de transmisión puro</p></body></html> <html><head/><body><p>Activa/Desactiva la transmisión de un tono continuo</p></body></html> - + Toggle a pure Tx tone On/Off Activar/desactivar un tono de transmisión puro Activar/Desactivar TX con tono continuo - + &Tune &Tono TX - + Menus Menús - + + 1/2 + 1/2 + + + + 2/2 + 2/2 + + + + 1/3 + 1/3 + + + + 2/3 + 2/3 + + + + 3/3 + 3/3 + + + + 1/4 + 1/4 + + + + 2/4 + 2/4 + + + + 3/4 + 3/4 + + + + 4/4 + 4/4 + + + + 1/5 + 1/5 + + + + 2/5 + 2/5 + + + + 3/5 + 3/5 + + + + 4/5 + 4/5 + + + + 5/5 + 5/5 + + + + 1/6 + 1/6 + + + + 2/6 + 2/6 + + + + 3/6 + 3/6 + + + + 4/6 + 4/6 + + + + 5/6 + 5/6 + + + + 6/6 + 6/6 + + + + Percentage of minute sequences devoted to transmitting. + + + + + Prefer Type 1 messages + + + + + <html><head/><body><p>Transmit during the next sequence.</p></body></html> + + + + USB dial frequency Frecuencia de dial USB - + 14.078 000 14.078 000 - + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> <html><head/><body><p>30dB recomendado cuando solo hay ruido presente,<br/>Verde cuando el nivel es bueno,<br/>Rojo cuando puede ocurrir recortes y<br/>Amarillo cuando esta muy bajo.</p></body></html> <html><head/><body><p>30 dB recomendado cuando solo hay ruido presente.<br>Verde: Nivel de audio aceptable.<br>Rojo: Pueden ocurrir fallos de audio.<br>Amarillo: Nivel de audio muy bajo.</p></body></html> - + Rx Signal Señal de RX Señal RX - + 30dB recommended when only noise present Green when good Red when clipping may occur @@ -2472,310 +2596,321 @@ Rojo pueden ocurrir fallos de audio Amarillo cuando esta muy bajo. - + + NB + + + + DX Call Indicativo DX - + DX Grid Locator/Grid DX Locator DX - + Callsign of station to be worked Indicativo de la estación a trabajar - + Search for callsign in database Buscar el indicativo en la base de datos (CALL3.TXT) - + &Lookup &Buscar - + Locator of station to be worked Locator/Grid de la estación a trabajar Locator de la estación a trabajar - + Az: 251 16553 km Az: 251 16553 km - + Add callsign and locator to database Agregar indicativo y locator/Grid a la base de datos Agregar indicativo y locator a la base de datos (CALL3.TXT) - + Add Agregar - + Pwr Potencia - + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> <html><head/><body><p>Si ha habido un error en el control del equipo, haz clic para restablecer y leer la frecuencia del dial. S implica modo dividido o split.</p></body></html> <html><head/><body><p>Si está naranja o rojo, ha habido un error en el control del equipo</p><p>Clic para reiniciar y leer la frecuencia del dial. </p><p>S indica modo "Split".</p></body></html> - + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. Si ha habido un error en el control del equipo, haz clic para restablecer y leer la frecuencia del dial. S implica modo dividido o split. Si está naranja o rojo, ha habido un error en el control del equipo, clic para restablecer y leer la frecuencia del dial. S indica "Split". - + ? ? - + Adjust Tx audio level Ajuste del nivel de audio de TX Ajustar nivel de audio de TX - + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> <html><head/><body><p>Selecciona la banda operativa, introduce la frecuencia en MHz o introduce el incremento de kHz seguido de k.</p></body></html> <html><head/><body><p>Selecciona la banda, o escriba la frecuencia en MHz o escriba el incremento en kHz seguido de k.</p></body></html> - + Frequency entry Frecuencia de entrada - + Select operating band or enter frequency in MHz or enter kHz increment followed by k. Selecciona la banda operativa, introduce la frecuencia en MHz o introduce el incremento de kHz seguido de k. Selecciona la banda o introduce la frecuencia en MHz o ecribe el incremento en kHz seguido de la letra k. - + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> - + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> <html><head/><body><p>Marca para mantener fija la frecuencia de transmisión al hacer doble clic en el texto decodificado.</p></body></html> <html><head/><body><p>Marcar para mantener fija la frecuencia de TX al hacer doble clic en el texto decodificado.</p></body></html> - + Check to keep Tx frequency fixed when double-clicking on decoded text. Marca para mantener fija la frecuencia de transmisión al hacer doble clic en el texto decodificado. Marcar para mantener fija la frecuencia de TX al hacer doble clic en un texto decodificado. - + Hold Tx Freq Mantén TX Freq Mantener Frec. TX - + Audio Rx frequency Frecuencia de audio en RX Frecuencia de RX - - - + + + + + Hz Hz - + + Rx RX - + + Set Tx frequency to Rx Frequency Coloca la frecuencia de RX en la de TX Coloca la frecuencia de TX en la de RX - + - + Frequency tolerance (Hz) Frecuencia de tolerancia (Hz) - + + F Tol F Tol - + + Set Rx frequency to Tx Frequency Coloca la frecuencia de TX en la de RX Coloca la frecuencia de RX en la de TX - + - + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> <html><head/><body><p>Umbral de sincronización. Los números más bajos aceptan señales de sincronización más débiles.</p></body></html> - + Synchronizing threshold. Lower numbers accept weaker sync signals. Umbral de sincronización. Los números más bajos aceptan señales de sincronización más débiles. - + Sync Sinc - + <html><head/><body><p>Check to use short-format messages.</p></body></html> <html><head/><body><p>Marca para usar mensajes de formato corto.</p></body></html> <html><head/><body><p>Marcar para usar mensajes de formato corto.</p></body></html> - + Check to use short-format messages. Marcar para usar mensajes de formato corto. Marca para usar mensajes de formato corto. - + Sh Sh - + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> <html><head/><body><p>Marca para habilitar los modos rápidos JT9</p></body></html> <html><head/><body><p>Marcar para habilitar los modos rápidos JT9</p></body></html> - + Check to enable JT9 fast modes Marca para habilitar los modos rápidos JT9 Marcar para habilitar los modos rápidos JT9 - - + + Fast Rápido - + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> <html><head/><body><p>Marca para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos.</p></body></html> <html><head/><body><p>Marcar para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos.</p></body></html> - + Check to enable automatic sequencing of Tx messages based on received messages. Marca para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos. Marcar para habilitar la secuencia automática de mensajes de TX en función de los mensajes recibidos. - + Auto Seq Secuencia Automática Secuencia Auto. - + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> <html><head/><body><p>Responde al 1er. CQ decodificado.</p></body></html> <html><head/><body><p>Marcar para responder a la 1ra estación decodificada.</p></body></html> - + Check to call the first decoded responder to my CQ. Responde al 1er. CQ decodificado. Marcar para responder al 1ra. estación decodificada. - + Call 1st Responde al 1er. CQ 1er decodificado - + Check to generate "@1250 (SEND MSGS)" in Tx6. Marcar para generar "@1250 (SEND MSGS)" en TX6. - + Tx6 TX6 - + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> <html><head/><body><p>Marca a TX en minutos o secuencias de números pares, a partir de 0; desmarca las secuencias impares.</p></body></html> <html><head/><body><p>Marcar para transmitir en secuencias o minutos pares, comenzando por 0; desmarca para transmitir en las secuencias o minutos impares.</p></body></html> - + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. Marca a TX en minutos o secuencias de números pares, a partir de 0; desmarca las secuencias impares. Marcar para transmitir en secuencias o minutos pares, comenzando por 0; desmarca para transmitir en las secuencias o minutos impares. - + Tx even/1st Alternar periodo TX Par/Impar TX segundo par - + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> <html><head/><body><p>Frecuencia para llamar a CQ en kHz por encima del MHz actual</p></body></html> <html><head/><body><p>Frecuencia para llamar CQ en kHz por sobre el MHz actual</p></body></html> - + Frequency to call CQ on in kHz above the current MHz Frecuencia para llamar a CQ en kHz por encima del MHz actual Frecuencia para llamar CQ en kHz por encima del MHz actual - + Tx CQ TX CQ - + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> <html><head/><body><p>Marca esto para llamar a CQ en la frecuencia&quot;TX CQ&quot;. RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder.</p><p>No está disponible para los titulares de indicativo no estándar.</p></body></html> <html><head/><body><p>Marcar para llamar CQ en la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder.</p><p>No está disponible para los titulares de indicativo no estándar.</p></body></html> - + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. Not available to nonstandard callsign holders. Marca esto para llamar a CQ en la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder. @@ -2783,63 +2918,63 @@ No está disponible para los titulares de indicativo no estándar.Marcar para llamar CQ en la frecuencia "TX CQ". RX será a la frecuencia actual y el mensaje CQ incluirá la frecuencia de RX actual para que los corresponsales sepan en qué frecuencia responder. No está disponible para los titulares de indicativo no estándar. - + Rx All Freqs RX en todas las frecuencias - + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> <html><head/><body><p>El submodo determina el espaciado de tono; "A" es más estrecho.</p></body></html> - + Submode determines tone spacing; A is narrowest. El submodo determina el espaciado de tono; "A" es más estrecho. - + Submode Submodo - - + + Fox Fox "Fox" - + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> <html><head/><body><p>Marca para monitorear los mensajes Sh.</p></body></html> <html><head/><body><p>Marcar para escuchar los mensajes Sh.</p></body></html> - + Check to monitor Sh messages. Marca para monitorear los mensajes Sh. Marcar para escuchar los mensajes Sh. - + SWL SWL - + Best S+P El mejor S+P S+P - + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> <html><head/><body><p>Marca para comenzar a registrar los datos de calibración.<br/>Mientras se mide la corrección de calibración, se desactiva.<br/>Cuando no está marcado, puedes ver los resultados de la calibración.</p></body></html> <html><head/><body><p>Marcar para comenzar a grabar los datos de calibración.<br/>Mientras se mide, la corrección de calibración está desactivada.<br/>Cuando no está marcado, puede verse los resultados de la calibración.</p></body></html> - + Check this to start recording calibration data. While measuring calibration correction is disabled. When not checked you can view the calibration results. @@ -2851,121 +2986,123 @@ Mientras se mide, la corrección de calibración está desactivada. Cuando no está marcado, puede verse los resultados de la calibración. - + Measure Medida - + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> <html><head/><body><p>Informe de señal: relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB).</p></body></html> <html><head/><body><p>Reporte de señal: Relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB).</p></body></html> - + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). Informe de señal: relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB). Reporte de señal: Relación señal/ruido en ancho de banda de referencia de 2500 Hz (dB). - + Report No -> Señal de Recepción Reporte - + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> <html><head/><body><p>Tx/Rx o longitud de secuencia de calibración de frecuencia</p></body></html> <html><head/><body><p>TX/RX o longitud de secuencia de calibración de frecuencia</p></body></html> - + Tx/Rx or Frequency calibration sequence length Tx/Rx o longitud de secuencia de calibración de frecuencia TX/RX o longitud de secuencia de calibración de frecuencia - + + s s - + + T/R T/R - + Toggle Tx mode Conmuta el modo TX Conmuta modo TX - + Tx JT9 @ TX JT9 @ - + Audio Tx frequency Frecuencia de audio de TX Frecuencia de TX - - + + Tx TX - + Tx# TX# - + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> <html><head/><body><p>Haz doble clic en otro indicativo que llama para poner en la cola esa llamada para tú siguiente QSO.</p></body></html> <html><head/><body><p>Doble clic en otra estación llamando para poner en la cola ese indicativo para tu siguiente QSO.</p></body></html> - + Double-click on another caller to queue that call for your next QSO. Haz doble clic en otro indicativo que llama para poner en la cola esa llamada para tú siguiente QSO. Doble clic en otra estación llamando para poner en la cola ese indicativo para tu siguiente QSO. - + Next Call Siguiente Indicativo - + 1 1 - - - + + + Send this message in next Tx interval Enviar este mensaje en el siguiente intervalo de transmisión Enviar este mensaje en el siguiente intervalo de TX - + Ctrl+2 Ctrl+2 - + <html><head/><body><p>Send this message in next Tx interval</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>Enviar este mensaje en el siguiente intervalo de transmisión.</p><p>Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> <html><head/><body><p>Enviar este mensaje en el siguiente intervalo de TX.</p><p>Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> - + Send this message in next Tx interval 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) Enviar este mensaje en el siguiente intervalo de transmisión. @@ -2973,37 +3110,37 @@ Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una Enviar este mensaje en el siguiente intervalo de TX. Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1). - + Ctrl+1 Ctrl+1 - - - - + + + + Switch to this Tx message NOW Cambia a este mensaje de TX AHORA Cambiar a este mensaje de TX AHORA - + Tx &2 TX &2 - + Alt+2 Alt+2 - + <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>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> <html><head/><body><p>Cambiar a este mensaje de TX AHORA.</p><p>Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1).</p></body></html> - + Switch to this Tx message NOW 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) Cambia a este mensaje de TX AHORA. @@ -3011,78 +3148,78 @@ Haz doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una Cambiar a este mensaje de TX AHORA.Doble clic para alternar el uso del mensaje TX1 para iniciar un QSO con una estación (no está permitido para titulares de indicativos compuestos de tipo 1) - + Tx &1 Tx &1 - + Alt+1 Alt+1 - + Ctrl+6 Ctrl+6 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>Enviar este mensaje en el siguiente intervalo de transmisión</p><p>Haz doble clic para restablecer el mensaje estándar 73.</p></body></html> <html><head/><body><p>Enviar este mensaje en el siguiente intervalo de TX</p><p>Doble clic para restablecer el mensaje 73 estándar.</p></body></html> - + Send this message in next Tx interval Double-click to reset to the standard 73 message Enviar este mensaje en el siguiente intervalo de TX. Doble clic para restablecer el mensaje 73 estándar. - + Ctrl+5 Ctrl+5 - + Ctrl+3 Ctrl+3 - + Tx &3 TX &3 - + Alt+3 Alt+3 - + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 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>Envia este mensaje en el siguiente intervalo de transmisión.</p><p>Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> <html><head/><body><p>Envia este mensaje en el siguiente intervalo de TX.</p><p>Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> - + Send this message in next Tx interval Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required Envia este mensaje en el siguiente intervalo de TX. Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2). Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes - + Ctrl+4 Ctrl+4 - + <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>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> <html><head/><body><p>Cambiar a este mensaje de TX AHORA.</p><p>Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2).</p><p>Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes.</p></body></html> - + Switch to this Tx message NOW Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) RR73 messages should only be used when you are reasonably confident that no message repetitions will be required @@ -3092,23 +3229,23 @@ Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no Cambiar a este mensaje de TX AHORA. Doble clic para alternar entre los mensajes RRR y RR73 en TX4 (no está permitido para titulares de indicativos compuestos de tipo 2). Los mensajes RR73 solo deben usarse cuando esté razonablemente seguro de que no se requerirán repeticiones de mensajes. - + Tx &4 TX &4 - + Alt+4 Alt+4 - + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> <html><head/><body><p>Cambia a este mensaje de TX AHORA.</p><p>Haz doble clic para restablecer el mensaje estándar 73.</p></body></html> <html><head/><body><p>Cambiar a este mensaje de TX AHORA.</p><p>Doble clic para restablecer el mensaje estándar 73.</p></body></html> - + Switch to this Tx message NOW Double-click to reset to the standard 73 message Cambia a este mensaje de TX AHORA. @@ -3117,45 +3254,44 @@ Haz doble clic para restablecer el mensaje estándar 73. Doble clic para cambiar al mensaje estándar 73. - + Tx &5 TX &5 - + Alt+5 Alt+5 - + Now Ahora - + Generate standard messages for minimal QSO Genera mensajes estándar para un QSO mínimo Genera mensajes estándares para realizar un QSO - + Generate Std Msgs Genera Mensaje Standar Genera Mensajes Estándar - + Tx &6 TX &6 - + Alt+6 Alt+6 - - + Enter a free text message (maximum 13 characters) or select a predefined macro from the dropdown list. Press ENTER to add the current text to the predefined @@ -3170,1021 +3306,1021 @@ Presiona INTRO para agregar el texto actual a la lista predefinida. La lista se puede modificar en "Ajustes" (F2). - + Queue up the next Tx message Poner en cola el siguiente mensaje de TX - + Next Siguiente - + 2 2 - + + Quick-Start Guide to FST4 and FST4W + + + + + FST4 + + + + + FST4W + + + Calling CQ - Llamando CQ + Llamando CQ - Generate a CQ message - Genera mensaje CQ + Genera mensaje CQ - - - + + CQ CQ - Generate message with RRR - Genera mensaje con RRR + Genera mensaje con RRR - RRR - RRR + RRR - Generate message with report Generar mensaje con informe de señal - Genera mensaje con informe de señal + Genera mensaje con informe de señal - dB - dB + dB - Answering CQ - Respondiendo CQ + Respondiendo CQ - Generate message for replying to a CQ Generar mensaje para responder a un CQ - Genera mensaje para responder a un CQ + Genera mensaje para responder a un CQ - - + Grid Locator/grid Locator - Generate message with R+report Generar mensaje con R+informe de señal - Genera mensaje con R más informe de señal + Genera mensaje con R más informe de señal - R+dB - R+dB + R+dB - Generate message with 73 Generar mensaje con 73 - Genera mensaje con 73 + Genera mensaje con 73 - 73 - 73 + 73 - Send this standard (generated) message Enviar este mensaje estándar (generado) - Envia este mensaje estándar (generado) + Envia este mensaje estándar (generado) - Gen msg Gen msg - Msg Gen + Msg Gen - Send this free-text message (max 13 characters) Enviar este mensaje de texto libre (máximo 13 caracteres) - Envia este mensaje de texto libre (máximo 13 caracteres) + Envia este mensaje de texto libre (máximo 13 caracteres) - Free msg - Msg Libre + Msg Libre - 3 - 3 + 3 - + Max dB Max dB - + CQ AF CQ AF - + CQ AN CQ AN - + CQ AS CQ AS - + CQ EU CQ EU - + CQ NA CQ NA - + CQ OC CQ OC - + CQ SA CQ SA - + CQ 0 CQ 0 - + CQ 1 CQ 1 - + CQ 2 CQ 2 - + CQ 3 CQ 3 - + CQ 4 CQ 4 - + CQ 5 CQ 5 - + CQ 6 CQ 6 - + CQ 7 CQ 7 - + CQ 8 CQ 8 - + CQ 9 CQ 9 - + Reset Reiniciar - + N List N List - + N Slots N Slots - - + + + + + + + Random Aleatorio - + Call Indicativo - + S/N (dB) S/N (dB) - + Distance Distancia - + More CQs Más CQ's - Percentage of 2-minute sequences devoted to transmitting. - Porcentaje de secuencias de 2 minutos dedicadas a la transmisión. + Porcentaje de secuencias de 2 minutos dedicadas a la transmisión. - + + % % - + Tx Pct TX Pct Pct TX - + Band Hopping Salto de banda - + Choose bands and times of day for band-hopping. Elija bandas y momentos del día para saltar de banda. Escoja bandas y momentos del día para saltos de banda. - + Schedule ... Calendario ... Programar ... - + Upload decoded messages to WSPRnet.org. Cargue mensajes decodificados a WSPRnet.org. Subir mensajes decodificados a WSPRnet.org. - + Upload spots Subir "Spots" - + <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>Los Locator/Grid de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes.</p></body></html> <html><head/><body><p>Los locator de 6 dígitos hace que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo, otras estaciones deben haber decodificado el primero antes de poder descodificar el segundo. Marcar esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes.</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. Los Locator/Grid de 6 dígitos hacen que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo troceado, las otras estaciones deben haber decodificado el primero una vez antes de poder descodificar el segundo. Marca esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes. Los locator de 6 dígitos hace que se envíen 2 mensajes diferentes, el segundo contiene el locator completo, pero sólo un indicativo, otras estaciones deben haber decodificado el primero antes de poder descodificar el segundo. Marcar esta opción para enviar sólo locators de 4 dígitos y se evitará el protocolo de dos mensajes. - Prefer type 1 messages Prefieres mensajes de tipo 1 - Preferir mensajes de tipo 1 + Preferir mensajes de tipo 1 - + No own call decodes No se descodifica ningún indicativo propio No se descodifica mi indicativo - Transmit during the next 2-minute sequence. - Transmite durante la siguiente secuencia de 2 minutos. + Transmite durante la siguiente secuencia de 2 minutos. - + Tx Next Siguiente TX - + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. Configura la potencia de transmisión en dBm (dB por encima de 1 mW) como parte de tú mensaje WSPR. Configurar la potencia de TX en dBm (dB por encima de 1 mW) como parte de su mensaje WSPR. - + File Archivo - + View Ver - + Decode Decodifica Decodificar - + Save Guardar - + Help Ayuda - + Mode Modo - + Configurations No es valido utilizar Ajustes Configuraciones - + Tools Herramientas - + Exit Salir - Configuration - Ajustes + Ajustes - F2 - F2 + F2 - + About WSJT-X Acerca de WSJT-X - + Waterfall Cascada Cascada (Waterfall) - + Open Abrir - + Ctrl+O Ctrl+O - + Open next in directory Abrir siguiente en el directorio - + Decode remaining files in directory Decodifica los archivos restantes en el directorio - + Shift+F6 Mayúsculas+F6 Mayúsculas+F6 - + Delete all *.wav && *.c2 files in SaveDir Borrar todos los archivos *.wav y *.c2 - + None Ninguno Nada - + Save all Guardar todo - + Online User Guide Guía de usuario en línea - + Keyboard shortcuts Atajos de teclado - + Special mouse commands Comandos especiales del ratón - + JT9 JT9 - + Save decoded Guarda el decodificado Guardar lo decodificado - + Normal Normal - + Deep Profundo - Monitor OFF at startup Monitor apagado al inicio - "Monitor" apagado al inicio + "Monitor" apagado al inicio - + Erase ALL.TXT Borrar ALL.TXT - + Erase wsjtx_log.adi Borrar el archivo wsjtx_log.adi Borrar archivo wsjtx_log.adi - Convert mode to RTTY for logging Convierte el modo a RTTY después de registrar el QSO - Convierte el modo a RTTY para guardar el QSO + Convierte el modo a RTTY para guardar el QSO - Log dB reports to Comments Pon los informes de recepción en dB en Comentarios - Guardar reportes dB en los Comentarios + Guardar reportes dB en los Comentarios - Prompt me to log QSO Pedirme que registre QSO - Preguntarme antes de guardar el QSO + Preguntarme antes de guardar el QSO - Blank line between decoding periods - Línea en blanco entre períodos de decodificación + Línea en blanco entre períodos de decodificación - Clear DX Call and Grid after logging Borrar Indicativo DX y Locator/Grid DX después de registrar un QSO - Borrar Indicativo y Locator del DX después de guardar QSO + Borrar Indicativo y Locator del DX después de guardar QSO - Display distance in miles - Mostrar distancia en millas + Mostrar distancia en millas - Double-click on call sets Tx Enable Haz doble clic en los conjuntos de indicativos de activar TX - Doble clic en el indicativo activa la TX + Doble clic en el indicativo activa la TX - - + F7 F7 - Tx disabled after sending 73 Tx deshabilitado después de enviar 73 - Dehabilita TX después de enviar 73 + Dehabilita TX después de enviar 73 - - + Runaway Tx watchdog Temporizador de TX - Allow multiple instances - Permitir múltiples instancias + Permitir múltiples instancias - Tx freq locked to Rx freq TX frec bloqueado a RX frec - Freq. de TX bloqueda a freq. de RX + Freq. de TX bloqueda a freq. de RX - + JT65 JT65 - + JT9+JT65 JT9+JT65 - Tx messages to Rx Frequency window Mensajes de texto a la ventana de frecuencia de RX - Mensajes de TX a la ventana de "Frecuencia de RX" + Mensajes de TX a la ventana de "Frecuencia de RX" - Gray1 - Gris1 + Gris1 - Show DXCC entity and worked B4 status Mostrar entidad DXCC y estado B4 trabajado - Mostrar DXCC y estado B4 trabajado + Mostrar DXCC y estado B4 trabajado - + Astronomical data Datos astronómicos - + List of Type 1 prefixes and suffixes Lista de prefijos y sufijos de tipo 1 Lista de prefijos y sufijos tipo 1 - + Settings... Configuración Ajustes... - + Local User Guide Guía de usuario local - + Open log directory Abrir directorio de log - + JT4 JT4 - + Message averaging Promedio de mensajes - + Enable averaging Habilitar el promedio - + Enable deep search Habilitar búsqueda profunda - + WSPR WSPR - + Echo Graph Gráfico de eco - + F8 F8 - + Echo Echo Eco - + EME Echo mode Modo EME Eco - + ISCAT ISCAT - + Fast Graph Gráfico rápido "Fast Graph" - + F9 F9 - + &Download Samples ... &Descargar muestras ... &Descargar muestras de audio ... - + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> <html><head/><body><p>Descarga archivos de audio de muestra que demuestren los distintos modos.</p></body></html> <html><head/><body><p>Descargar archivos de audio de los distintos modos.</p></body></html> - + MSK144 MSK144 - + QRA64 QRA64 - + Release Notes Cambios en la nueva versión - + Enable AP for DX Call Habilitar AP para llamada DX Habilitar AP para indicativo DX - + FreqCal FreqCal - + Measure reference spectrum Medir espectro de referencia - + Measure phase response Medir la respuesta de fase - + Erase reference spectrum Borrar espectro de referencia - + Execute frequency calibration cycle Ejecutar ciclo de calibración de frecuencia - + Equalization tools ... Herramientas de ecualización ... - WSPR-LF - WSPR-LF + WSPR-LF - Experimental LF/MF mode - Modo experimental LF/MF + Modo experimental LF/MF - + FT8 FT8 - - + + Enable AP Habilitar AP - + Solve for calibration parameters Resolver para parámetros de calibración Resolver parámetros de calibración - + Copyright notice Derechos de Autor - + Shift+F1 Mayúsculas+F1 - + Fox log Log Fox Log "Fox" - + FT8 DXpedition Mode User Guide Guía de usuario del modo FT8 DXpedition (inglés) - + Reset Cabrillo log ... Restablecer log de Cabrillo ... Borrar log Cabrillo ... - + Color highlighting scheme Esquema de resaltado de color Esquema de resaltado de colores - Contest Log - Log de Concurso + Log de Concurso - + Export Cabrillo log ... Exportar log de Cabrillo ... Exportar log Cabrillo ... - Quick-Start Guide to WSJT-X 2.0 - Guía de inicio rápido para WSJT-X 2.0 (inglés) + Guía de inicio rápido para WSJT-X 2.0 (inglés) - + Contest log Log de Concurso - + Erase WSPR hashtable Borrar la tabla de WSPR - + FT4 FT4 - + Rig Control Error Error de control del equipo - - - + + + Receiving Recibiendo - + Do you want to reconfigure the radio interface? ¿Desea reconfigurar la interfaz de radio? - + + %1 (%2 sec) audio frames dropped + + + + + Audio Source + + + + + Reduce system load + + + + + Excessive dropped samples - %1 (%2 sec) audio frames dropped + + + + Error Scanning ADIF Log Error al escanear el log ADIF - + Scanned ADIF log, %1 worked before records created Log ADIF escaneado, %1 funcionaba antes de la creación de registros Log ADIF escaneado, %1 registros trabajados B4 creados - + Error Loading LotW Users Data Error al cargar datos de usuarios de LotW Error al cargar datos de usuarios de LoTW - + Error Writing WAV File Error al escribir el archivo WAV - + Configurations... Conmfiguraciones... Configuraciones... - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message Mensaje - + Error Killing jt9.exe Process Error al matar el proceso jt9.exe - + KillByName return code: %1 Código de retorno de KillByName: %1 KillByName regresa código: %1 - + Error removing "%1" Error al eliminar "%1" - + Click OK to retry Haga clic en Aceptar para volver a intentar Clic en "Aceptar" para reintentar - - + + Improper mode Modo incorrecto - - + + File Open Error Error de apertura del archivo Error al abrir archivo - - - - - + + + + + Cannot open "%1" for append: %2 No puedo abrir "%1" para anexar: %2 No se puedo abrir "%1" para anexar: %2 - + Error saving c2 file Error al guardar el archivo c2 Error al guardar archivo c2 - + Error in Sound Input Error en entrada de sonido - + Error in Sound Output Error en la salida de sonido Error en salida de audio - - - + + + Single-Period Decodes Decodificaciones de un solo período - - - + + + Average Decodes Promedio de decodificaciones - + Change Operator Cambiar operador - + New operator: Operador nuevo: - + Status File Error Error de estado del archivo Error en el archivo de estado - - + + Cannot open "%1" for writing: %2 No se puede abrir "%1" para la escritura: %2 No se puede abrir "%1" para escritura: %2 - + Subprocess Error Error de subproceso - + Subprocess failed with exit code %1 El subproceso falló con el código de salida %1 - - + + Running: %1 %2 Corriendo: %1 @@ -4193,27 +4329,27 @@ Error al cargar datos de usuarios de LotW %2 - + Subprocess error Error de subproceso - + Reference spectrum saved Espectro de referencia guardado - + Invalid data in fmt.all at line %1 Datos no válidos en fmt.all en la línea %1 - + Good Calibration Solution Buena solución de calibración - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -4226,18 +4362,18 @@ Error al cargar datos de usuarios de LotW %9%L10 Hz</pre> - + Delete Calibration Measurements Eliminar mediciones de calibración Borrar mediciones de calibración - + The "fmt.all" file will be renamed as "fmt.bak" El archivo "fmt.all" será renombrado como "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -4249,72 +4385,163 @@ Error al cargar datos de usuarios de LotW "Los algoritmos, el código fuente, la apariencia y comportamiento del WSJT-X y los programas relacionados, y las especificaciones del protocolo para los modos FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 son Copyright (C) 2001-2020 por uno o más de los siguientes autores: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q y otros miembros del Grupo de Desarrollo WSJT ". - + No data read from disk. Wrong file format? No se leen datos del disco. Formato de archivo incorrecto? No se han leido datos del disco. Formato de archivo incorrecto? - + Confirm Delete Confirmar eliminación Confirmar borrado - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? ¿Estas seguro de que deseas eliminar todos los archivos *.wav y *.c2 en "%1"? ¿Esta seguro de que desea borrar todos los archivos *.wav y *.c2 en "%1"? - + Keyboard Shortcuts Atajo de teclado Atajos de teclado - + + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> + Keyboard shortcuts help window contents + + + + Special Mouse Commands Comandos especiales del ratón Comandos especiales de ratón - + + <table cellpadding=5> + <tr> + <th align="right">Click on</th> + <th align="left">Action</th> + </tr> + <tr> + <td align="right">Waterfall:</td> + <td><b>Click</b> to set Rx frequency.<br/> + <b>Shift-click</b> to set Tx frequency.<br/> + <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> + </td> + </tr> + <tr> + <td align="right">Decoded text:</td> + <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> + locator to Dx Grid, change Rx and Tx frequency to<br/> + decoded signal's frequency, and generate standard<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> + </td> + </tr> + <tr> + <td align="right">Erase button:</td> + <td><b>Click</b> to erase QSO window.<br/> + <b>Double-click</b> to erase QSO and Band Activity windows. + </td> + </tr> +</table> + Mouse commands help window contents + + + + No more files to open. No hay más archivos para abrir. - + + Spotting to PSK Reporter unavailable + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Por favor, elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30m. Elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30M. - + WSPR Guard Band Banda de Guardia WSPR Guarda de banda WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Elige otra frecuencia de dial. WSJT-X no funcionará en modo Fox en las sub-bandas FT8 estándar. Por favor elija otra frecuencia. WSJT-X no operá en modo "Fox" en las sub-bandas de FT8 estándar. - + Fox Mode warning Advertencia del modo Fox Advertencia de modo "Fox" - + Last Tx: %1 Última TX: %1 Últ TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4329,37 +4556,37 @@ Para hacerlo, marca "Actividad operativa especial" y luego "Concurso VHF EU" en "Archivo" - "Ajustes" - "Avanzado". - + Should you switch to ARRL Field Day mode? ¿Cambiar al modo ARRL Field Day? - + Should you switch to RTTY contest mode? ¿Cambiar al modo de concurso RTTY? - - - - + + + + Add to CALL3.TXT Añadir a CALL3.TXT - + Please enter a valid grid locator Por favor, introduce un locator/Grid válido Por favor escriba un locator válido - + Cannot open "%1" for read/write: %2 No se puede abrir "%1" para leer/escribir: %2 No se puede abrir "%1" para lectura/escritura: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 @@ -4368,105 +4595,104 @@ ya está en CALL3.TXT, ¿deseas reemplazarlo? ya está en CALL3.TXT, ¿desea reemplazarlo? - + Warning: DX Call field is empty. Advertencia: el campo de Indicativo DX está vacío. Advertencia: el campo Indicativo DX está vacío. - + Log file error Error de archivo de log Error en el archivo de log - + Cannot open "%1" No puedo abrir "%1" No se puede abrir "%1" - + Error sending log to N1MM Error al enviar el log a N1MM - + Write returned "%1" Escritura devuelta "%1" Escritura devuelve "%1" - + Stations calling DXpedition %1 Estaciones que llaman a DXpedition %1 Estaciones llamando a DXpedition %1 - + Hound Hound "Hound" - + Tx Messages Mensajes de TX Mensajes TX - - - + + + Confirm Erase Confirmar borrado - + Are you sure you want to erase file ALL.TXT? ¿Estás seguro de que quiere borrar el archivo ALL.TXT? - - + + Confirm Reset Confirmar reinicio Confirmar restablecer - + Are you sure you want to erase your contest log? ¿Estás seguro de que quieres borrar el log de tú concurso? ¿Está seguro que quiere borrar el log de concurso? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Hacer esto eliminará todos los registros de QSO para el concurso actual. Se guardarán en el archivo log de ADIF, pero no estarán disponibles para la exportación en tú log de Cabrillo. Hacer esto eliminará todos los QSOs del concurso actual. Se mantendrán en el log ADIF, pero no estarán disponibles para la exportación como log de Cabrillo. - + Cabrillo Log saved Cabrillo Log guardado Log Cabrillo guardado - + Are you sure you want to erase file wsjtx_log.adi? ¿Estás seguro de que quieres borrar el archivo wsjtx_log.adi? ¿Está seguro que quiere borrar el archivo wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? ¿Estás seguro de que quieres borrar la tabla WSPR? ¿Está seguro de que quiere borrar la tabla hash WSPR? - VHF features warning - Advertencia de características VHF + Advertencia de características VHF @@ -4487,48 +4713,48 @@ ya está en CALL3.TXT, ¿desea reemplazarlo? Prefijos y sufijos tipo 1 - + Network Error Error de red - + Error: %1 UDP server %2:%3 Error: %1 Servidor UDP %2:%3 - + File Error Error en el archivo - + Phase Training Disabled Fase de entrenamiento deshabilitado Entrenamieno de Fase deshabilitado - + Phase Training Enabled Fase de entrenamiento habilitado Entrenamiento de Fase habilitado - + WD:%1m WD:%1m - - + + Log File Error Error de archivo log Error en archivo log - + Are you sure you want to clear the QSO queues? ¿Estás seguro de que quieres borrar las colas QSO? ¿Está seguro que quiere borrar las colas de QSOs? @@ -4552,8 +4778,8 @@ Servidor UDP %2:%3 Modes - - + + Mode Modo @@ -4726,7 +4952,7 @@ Servidor UDP %2:%3 Error al abrir archivo CSV de usuarios del LoTW: '%1' - + OOB OOB @@ -4926,7 +5152,7 @@ Error(%2): %3 Error no recuperable, dispositivo de entrada de audio no disponible en este momento. - + Requested input audio format is not valid. El formato de audio de entrada solicitado no es válido. @@ -4937,37 +5163,37 @@ Error(%2): %3 El formato de audio de entrada solicitado no está soportado en el dispositivo. - + Failed to initialize audio sink device Error al inicializar el dispositivo receptor de audio - + Idle Inactivo - + Receiving Recibiendo - + Suspended Suspendido - + Interrupted Interrumpido - + Error Error - + Stopped Detenido @@ -4975,62 +5201,67 @@ Error(%2): %3 SoundOutput - + An error opening the audio output device has occurred. Se produjo un error al abrir el dispositivo de salida de audio. - + An error occurred during write to the audio output device. Se produjo un error durante la escritura en el dispositivo de salida de audio. - + Audio data not being fed to the audio output device fast enough. Los datos de audio no se envían al dispositivo de salida de audio lo suficientemente rápido. - + Non-recoverable error, audio output device not usable at this time. Error no recuperable, dispositivo de salida de audio no utilizable en este momento. - + Requested output audio format is not valid. El formato de audio de salida solicitado no es válido. - + Requested output audio format is not supported on device. El formato de audio de salida solicitado no es compatible con el dispositivo. - + + No audio output device configured. + + + + Idle Inactivo - + Sending Recibiendo - + Suspended Suspendido - + Interrupted Interrumpido - + Error Error - + Stopped Detenido @@ -5038,23 +5269,23 @@ Error(%2): %3 StationDialog - + Add Station Agregar estación - + &Band: &Banda: - + &Offset (MHz): &Desplazamiento en MHz: Desplazamient&o (MHz): - + &Antenna: &Antena: @@ -5253,13 +5484,21 @@ Error(%2): %3 - JT9 - JT9 + Hz + Hz + Split + + + + JT9 + JT9 + + JT65 - JT65 + JT65 @@ -5297,6 +5536,29 @@ Error(%2): %3 Leer Paleta + + WorkedBefore + + + Invalid ADIF field %0: %1 + + + + + Malformed ADIF field %0: %1 + + + + + Invalid ADIF header + + + + + Error opening ADIF log file for read: %0 + + + configuration_dialog @@ -5523,10 +5785,9 @@ Error(%2): %3 minutos - Enable VHF/UHF/Microwave features Habilita las funciones VHF/UHF/Microondas - Habilita características en VHF/UHF/Microondas + Habilita características en VHF/UHF/Microondas @@ -5661,7 +5922,7 @@ período de silencio cuando se ha realizado la decodificación. - + Port: Puerto: @@ -5672,140 +5933,152 @@ período de silencio cuando se ha realizado la decodificación. + Serial Port Parameters Parámetros del puerto serie - + Baud Rate: Velocidad de transmisión: - + Serial port data rate which must match the setting of your radio. Velocidad de datos del puerto serie que debe coincidir con los ajustes de tu radio. - + 1200 1200 - + 2400 2400 - + 4800 - + 9600 9600 - + 19200 19200 - + 38400 38400 - + 57600 57600 - + 115200 115200 - + <html><head/><body><p>Number of data bits used to communicate with your radio's CAT interface (usually eight).</p></body></html> <html><head/><body><p>Número de bits de datos utilizados para comunicarse con la interfaz CAT de tú equipo (generalmente ocho).</p></body></html> <html><head/><body><p>Número de bits de datos utilizados para comunicarse con la interface CAT del equipo (generalmente ocho).</p></body></html> - + + Data bits + + + + Data Bits Bits de datos - + D&efault Por d&efecto - + Se&ven &Siete - + E&ight O&cho - + <html><head/><body><p>Number of stop bits used when communicating with your radio's CAT interface</p><p>(consult you radio's manual for details).</p></body></html> <html><head/><body><p>Número de bits de parada utilizados al comunicarse con la interfaz CAT de tú equipo</p><p>(consulta el manual de tú equipo para más detalles).</p></body></html> <html><head/><body><p>Número de bits de parada utilizados al comunicarse con la interface CAT del equipo</p><p>(consulta el manual del equipo para más detalles).</p></body></html> - + + Stop bits + + + + Stop Bits Bits de parada - - + + Default Por defecto - + On&e Un&o - + T&wo &Dos - + <html><head/><body><p>Flow control protocol used between this computer and your radio's CAT interface (usually &quot;None&quot; but some require &quot;Hardware&quot;).</p></body></html> <html><head/><body><p>Protocolo de control de flujo utilizado entre este PC y la interfaz CAT de tú equipo (generalmente &quot;Ninguno&quot;pero algunos requieren&quot;Hardware&quot;).</p></body></html> <html><head/><body><p>Protocolo de control de flujo utilizado entre este PC y la interfaz CAT del equipo (generalmente "Ninguno", pero algunos requieren "Hardware").</p></body></html> - + + Handshake Handshake - + &None &Ninguno - + Software flow control (very rare on CAT interfaces). Control de flujo de software (muy raro en interfaces CAT). - + XON/XOFF XON/XOFF - + Flow control using the RTS and CTS RS-232 control lines not often used but some radios have it as an option and a few, particularly some Kenwood rigs, require it). @@ -5814,40 +6087,41 @@ no se usa con frecuencia, pero algunos equipos lo tienen como una opción y unos pocos, particularmente algunos equipos de Kenwood, lo requieren. - + &Hardware &Hardware - + Special control of CAT port control lines. Control especial de líneas de control de puertos CAT. - + + Force Control Lines Líneas de control de fuerza Forzar "Control de Líneas" - - + + High Alto - - + + Low Bajo - + DTR: DTR: - + RTS: RTS: @@ -5856,40 +6130,40 @@ unos pocos, particularmente algunos equipos de Kenwood, lo requieren.¿ Cómo este programa activa el PTT en tú equipo ? - + How this program activates the PTT on your radio? ¿Cómo este programa activa el PTT en tú equipo? ¿Cómo activa este programa el PTT del equipo? - + PTT Method Método de PTT - + <html><head/><body><p>No PTT activation, instead the radio's automatic VOX is used to key the transmitter.</p><p>Use this if you have no radio interface hardware.</p></body></html> <html><head/><body><p>Sin activación de PTT, en cambio, el VOX automático del equipo se usa para conectar el transmisor.</p><p>Usa esto si no tienes hardware de interfaz de radio.</p></body></html> <html><head/><body><p>Sin activación de PTT, se use el VOX del equipo para activar el transmisor.</p><p>Use esta opción si no se tiene una interface de radio.</p></body></html> - + VO&X VO&X - + <html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html> <html><head/><body><p>Usa la línea de control RS-232 DTR para alternar el PTT de tú equipo, requiere hardware para interconectar la línea.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control DTR del puerto serie CAT se puede usar para esto o se puede usar una línea de control DTR en un puerto serie diferente.</p></body></html> <html><head/><body><p>Use la línea de control RS-232 DTR para activar el PTT del equipo, se requiere de "hardware" para el envio de señales.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control DTR del puerto serie CAT se puede usar para esto o se puede usar una línea de control DTR en un puerto serie diferente.</p></body></html> - + &DTR &DTR - + Some radios support PTT via CAT commands, use this option if your radio supports it and you have no other hardware interface for PTT. @@ -5901,50 +6175,50 @@ use esta opción si el equipo lo admite y no tiene una interface para PTT. - + C&AT C&AT - + <html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html> <html><head/><body><p>Usa la línea de control RS-232 RTS para alternar el PTT de tú equipo, requiere hardware para interconectar la línea.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control RTS del puerto serie CAT se puede usar para esto o se puede usar una línea de control RTS en un puerto serie diferente. Ten en cuenta que esta opción no está disponible en el puerto serie CAT cuando se usa el control de flujo de hardware.</p></body></html> <html><head/><body><p>Use la línea de control RS-232 RTS para activar el PTT del equipo, requiere hardware para interconectar la línea.</p><p>Algunas unidades de interfaz comerciales también usan este método.</p><p>La línea de control RTS del puerto serie CAT se puede usar para esto o se puede usar una línea de control RTS en un puerto serie diferente. Esta opción no está disponible en el puerto serie CAT cuando se usa el control de flujo de hardware.</p></body></html> - + R&TS R&TS - + <html><head/><body><p>Select the RS-232 serial port utilised for PTT control, this option is available when DTR or RTS is selected above as a transmit method.</p><p>This port can be the same one as the one used for CAT control.</p><p>For some interface types the special value CAT may be chosen, this is used for non-serial CAT interfaces that can control serial port control lines remotely (OmniRig for example).</p></body></html> <html><head/><body><p>Selecciona el puerto serie RS-232 utilizado para el control PTT, esta opción está disponible cuando se selecciona DTR o RTS arriba como método de transmisión.</p><p>Este puerto puede ser el mismo que el utilizado para el control CAT.</p><p>Para algunos tipos de interfaz, se puede elegir el valor especial CAT, esto se usa para interfaces CAT no seriales que pueden controlar líneas de control de puerto serie de forma remota (OmniRig, por ejemplo).</p></body></html> <html><head/><body><p>Seleccione el puerto serie RS-232 utilizado para el control PTT, esta opción está disponible cuando se selecciona DTR o RTS como método de transmisión.</p><p>Este puerto puede ser el mismo que el utilizado para el control CAT.</p><p>Para algunos tipos de interfaz, se puede elegir el valor especial CAT, esto se usa para interfaces CAT no seriales que pueden controlar líneas de control de puerto serie de forma remota (OmniRig, por ejemplo).</p></body></html> - + Modulation mode selected on radio. Modo de modulación seleccionado en el equipo. - + Mode Modo - + <html><head/><body><p>USB is usually the correct modulation mode,</p><p>unless the radio has a special data or packet mode setting</p><p>for AFSK operation.</p></body></html> <html><head/><body><p>USB suele ser el modo de modulación correcto,</p><p>a menos que la radio tenga una configuración/ajuste especial de datos o modo de paquete</p><p>para operación AFSK.</p></body></html> <html><head/><body><p>USB suele ser usualmente el modo correcto,</p><p>a menos que la radio tenga un ajuste de modo especifico para "data o packet"</p><p>para operación en AFSK.</p></body></html> - + US&B US&B - + Don't allow the program to set the radio mode (not recommended but use if the wrong mode or bandwidth is selected). @@ -5956,25 +6230,25 @@ o se selecciona el ancho de banda). o ancho de banda es seleccionado). - - + + None Ninguno - + If this is available then it is usually the correct mode for this program. Si está disponible, generalmente es el modo correcto para este programa. Si está disponible, entonces usualmente es el modo correcto para este programa. - + Data/P&kt Datos/P&kt Data/P&kt - + Some radios can select the audio input using a CAT command, this setting allows you to select which audio input will be used (if it is available then generally the Rear/Data option is best). @@ -5986,56 +6260,56 @@ este ajuste permite seleccionar qué entrada de audio se usará (si está disponible, generalmente la opción "Parte posterior" es la mejor). - + Transmit Audio Source Fuente de audio de transmisión - + Rear&/Data Parte posterior/Datos Parte posterior - + &Front/Mic &Frontal/Micrófono - + Rig: Equipo: - + Poll Interval: Intervalo de sondeo: - + <html><head/><body><p>Interval to poll rig for status. Longer intervals will mean that changes to the rig will take longer to be detected.</p></body></html> <html><head/><body><p>Intervalo de sondeo al equipo para el estado. Intervalos más largos significarán que los cambios en el equipo tardarán más en detectarse.</p></body></html> <html><head/><body><p>Intervalo para sondeo del estado del equipo. Intervalos más largos significará que los cambios en el equipo tardarán más en detectarse.</p></body></html> - + s s - + <html><head/><body><p>Attempt to connect to the radio with these settings.</p><p>The button will turn green if the connection is successful or red if there is a problem.</p></body></html> <html><head/><body><p>Intenta conectarte al equipo con esta configuración.</p><p>El botón se pondrá verde si la conexión es correcta o rojo si hay un problema.</p></body></html> <html><head/><body><p>Prueba de conexión al equipo por CAT utilizando esta configuración.</p><p>El botón cambiará a verde si la conexión es correcta o rojo si hay un problema.</p></body></html> - + Test CAT Test de CAT Probar CAT - + Attempt to activate the transmitter. Click again to deactivate. Normally no power should be output since there is no audio being generated at this time. @@ -6056,50 +6330,50 @@ Verifica que cualquier indicación de TX en tu equipo y/o en el interfaz de radio se comporte como se esperaba. - + Test PTT Test de PTT Probar PTT - + Split Operation Operación dividida (Split) Operación en "Split" - + Fake It Fíngelo Fingir "Split" - + Rig Equipo - + A&udio A&udio - + Audio interface settings Ajustes del interfaz de audio - + Souncard Tarjeta de Sonido - + Soundcard Tarjeta de Sonido - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -6117,48 +6391,48 @@ de lo contrario transmitirá cualquier sonido del sistema generado durante los períodos de transmisión. - + Select the audio CODEC to use for receiving. Selecciona el CODEC de audio que se usará para recibir. Selecciona el CODEC a usar para recibir. - + &Input: &Entrada: - + Select the channel to use for receiving. Selecciona el canal a usar para recibir. Seleccione el canal a usar para recibir. - - + + Mono Mono - - + + Left Izquierdo - - + + Right Derecho - - + + Both Ambos - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -6173,118 +6447,123 @@ canales, entonces, generalmente debe seleccionar "Mono" o "Ambos". - + + Enable VHF and submode features + + + + Ou&tput: &Salida: - - + + Save Directory Guardar directorio Directorio "save" - + Loc&ation: Ubic&ación: - + Path to which .WAV files are saved. Ruta en la que se guardan los archivos .WAV. - - + + TextLabel Etiqueta de texto - + Click to select a different save directory for .WAV files. Haz clic para seleccionar un directorio de guardado diferente para los archivos .WAV. Clic para seleccionar un directorio "Save" diferente donde guardar los los archivos .WAV. - + S&elect S&elecciona S&eleccionar - - + + AzEl Directory Directorio AzEl - + Location: Ubicación: - + Select Seleccionar - + Power Memory By Band Memoriza la potencia por banda Recuerda la potencia por banda - + Remember power settings by band Recuerde los ajustes de potencia por banda Recuerda ajustes de potencia por banda - + Enable power memory during transmit Habilita memoria de potencia durante la transmisión - + Transmit Transmitir - + Enable power memory during tuning Habilita memoria de potencia durante la sintonización - + Tune Tono TX - + Tx &Macros Macros de T&X Macros T&X - + Canned free text messages setup Configuración de mensajes de texto libres Ajuste de mensajes de texto libre - + &Add &Añadir &Agregar - + &Delete &Borrar - + Drag and drop items to rearrange order Right click for item specific actions Click, SHIFT+Click and, CRTL+Click to select items @@ -6296,42 +6575,42 @@ Clic derecho para acciones específicas del elemento. Clic, Mayús+Clic y CTRL+Clic para seleccionar elementos. - + Reportin&g Informe&s &Reportes - + Reporting and logging settings Ajuste de informes y logs Ajustes de reportes y gaurdado de logs - + Logging Registros Guardado de log - + The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message. El programa mostrará un cuadro de diálogo Log QSO parcialmente completado cuando envíe un mensaje de texto 73 o libre. El programa mostrará un cuadro de diálogo con datos del QSO parcialmente completados cuando envíe un 73 o mensaje de texto libre. - + Promp&t me to log QSO Regis&tra el QSO Pregun&tarme para guardar el QSO - + Op Call: Indicativo del Operador: - + Some logging programs will not accept the type of reports saved by this program. Check this option to save the sent and received reports in the @@ -6347,13 +6626,13 @@ Marca esta opción para guardar los reportes enviados y recibidos en el campo de comentarios. - + d&B reports to comments Informes de los d&B en los comentarios Guardar reportes d&B en los comentarios - + Check this option to force the clearing of the DX Call and DX Grid fields when a 73 or free text message is sent. Marca esta opción para forzar la eliminación de los campos @@ -6362,45 +6641,44 @@ Llamada DX y Locator/Grid DX cuando se envía un mensaje de texto 73 o libre. - + Clear &DX call and grid after logging Borrar la Llamada &DX y Locator/Grid después del registro Borrar Indicativo &DX y Locator DX después de guardado el QSO - + <html><head/><body><p>Some logging programs will not accept WSJT-X mode names.</p></body></html> <html><head/><body><p>Algunos programas de log no aceptarán nombres de modo WSJT-X.</p></body></html> - + Con&vert mode to RTTY Con&vertir modo a RTTY - + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> <html><head/><body><p>El indicativo del operador, si es diferente del indicativo de la estación.</p></body></html> - + <html><head/><body><p>Check to have QSOs logged automatically, when complete.</p></body></html> <html><head/><body><p>Marca para que los QSO's se registren automáticamente, cuando se completen.</p></body></html> <html><head/><body><p>Marca para que los QSO's se guarden automáticamente, cuando se completen.</p></body></html> - + Log automatically (contesting only) Log automático (sólo concursos) Guardar QSO automáticamente (sólo concursos) - + Network Services Servicios de red - The program can send your station details and all decoded signals as spots to the http://pskreporter.info web site. This is used for reverse beacon analysis which is very useful @@ -6409,177 +6687,192 @@ for assessing propagation and system performance. señales decodificadas como puntos en el sitio web http://pskreporter.info. Esto se utiliza para el análisis de baliza inversa que es muy útil para evaluar la propagación y el rendimiento del sistema. - Este programa puede enviar los detalles de su estación y todas las + Este programa puede enviar los detalles de su estación y todas las señales decodificadas como "spots" a la página web http://pskreporter.info. Esto se utiliza para el análisis de "reverse beacon", lo cual es muy útil para evaluar la propagación y el rendimiento del sistema. - + + <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> + + + + Enable &PSK Reporter Spotting Activa &PSK Reporter Activar "spotting" en &PSK Reporter - + + <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> + + + + + Use TCP/IP connection + + + + UDP Server Servidor UDP - + UDP Server: Servidor UDP: - + <html><head/><body><p>Optional hostname of network service to receive decodes.</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable the broadcasting of UDP status updates.</p></body></html> <html><head/><body><p>"Hostname" del servicio de red para recibir decodificaciones.</p><p>Formatos:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4 multicast</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6 multicast</li></ul><p>Borrar este campo deshabilitará la transmisión de actualizaciones de estado UDP.</p></body></html> - + UDP Server port number: Número de puerto del servidor UDP: - + <html><head/><body><p>Enter the service port number of the UDP server that WSJT-X should send updates to. If this is zero no updates will be broadcast.</p></body></html> <html><head/><body><p>Introduce el número de puerto del servicio del servidor UDP al que WSJT-X debe enviar actualizaciones. Si esto es cero, no se transmitirán actualizaciones.</p></body></html> <html><head/><body><p>Escriba el número del puerto del servidor UDP al que WSJT-X debe enviar actualizaciones. Si este es cero, no se transmitirán actualizaciones.</p></body></html> - + <html><head/><body><p>With this enabled WSJT-X will accept certain requests back from a UDP server that receives decode messages.</p></body></html> <html><head/><body><p>Con esto habilitado, WSJT-X aceptará ciertas solicitudes de un servidor UDP que recibe mensajes de decodificación.</p></body></html> <html><head/><body><p>Si se habilita, WSJT-X aceptará ciertas solicitudes de un servidor UDP que recibe mensajes decodificados.</p></body></html> - + Accept UDP requests Aceptar solicitudes UDP - + <html><head/><body><p>Indicate acceptance of an incoming UDP request. The effect of this option varies depending on the operating system and window manager, its intent is to notify the acceptance of an incoming UDP request even if this application is minimized or hidden.</p></body></html> <html><head/><body><p>Indica la aceptación de una solicitud UDP entrante. El efecto de esta opción varía según el sistema operativo y el administrador de ventanas, su intención es notificar la aceptación de una solicitud UDP entrante, incluso si esta aplicación está minimizada u oculta.</p></body></html> <html><head/><body><p>Indica la aceptación de una solicitud UDP entrante. El efecto de esta opción varía según el sistema operativo y el "Window Manager", su intención es notificar la aceptación de una solicitud UDP entrante, incluso si esta aplicación está minimizada u oculta.</p></body></html> - + Notify on accepted UDP request Notificar sobre una solicitud UDP aceptada - + <html><head/><body><p>Restore the window from minimized if an UDP request is accepted.</p></body></html> <html><head/><body><p>Restaura la ventana minimizada si se acepta una solicitud UDP.</p></body></html> - + Accepted UDP request restores window La solicitud UDP aceptada restaura la ventana Una solicitud UDP aceptada restaura la ventana - + Secondary UDP Server (deprecated) Servidor UDP secundario (en desuso) - + <html><head/><body><p>When checked, WSJT-X will broadcast a logged contact in ADIF format to the configured hostname and port. </p></body></html> <html><head/><body><p>Cuando se marca, WSJT-X transmitirá un contacto registrado en formato ADIF al nombre de host y puerto configurados. </p></body></html> <html><head/><body><p>Si se marca , WSJT-X difundirá el contacto guardado, en formato ADIF, al servidor y puerto configurados. </p></body></html> - + Enable logged contact ADIF broadcast Habilita la transmisión ADIF de contacto registrado Habilita "broadcast" de contacto guardado (ADIF) - + Server name or IP address: Nombre del servidor o dirección IP: - + <html><head/><body><p>Optional host name of N1MM Logger+ program to receive ADIF UDP broadcasts. This is usually 'localhost' or ip address 127.0.0.1</p><p>Formats:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv4 multicast group address</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">IPv6 multicast group address</li></ul><p>Clearing this field will disable broadcasting of ADIF information via UDP.</p></body></html> <html><head/><body><p>"Hostname" del programa N1MM Logger + donde se recibirán las transmisiones ADIF UDP. Este suele ser 'localhost' o dirección IP 127.0.0.1</p><p>Formatos:</p><ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hostname</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv4 multicast</li><li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dirección IPv6 multicast</li></ul><p>Borrar este campo deshabilitará la transmisión de información ADIF a través de UDP.</p></body></html> - + Server port number: Número de puerto del servidor: - + <html><head/><body><p>Enter the port number that WSJT-X should use for UDP broadcasts of ADIF log information. For N1MM Logger+, this value should be 2333. If this is zero, no updates will be broadcast.</p></body></html> <html><head/><body><p>Introduce el número de puerto que WSJT-X debe usar para las transmisiones UDP de información de registro ADIF. Para N1MM Logger +, este valor debe ser 2333. Si es cero, no se transmitirán actualizaciones.</p></body></html> <html><head/><body><p>Escriba el número de puerto que WSJT-X debe usar para las transmisiones UDP del log ADIF guardado. Para N1MM Logger + este valor debe ser 2333. Si es cero, no se transmitirán actualizaciones.</p></body></html> - + Frequencies Frecuencias - + Default frequencies and band specific station details setup Configuración predeterminada de las frecuencias y banda con detalles específicos de la estación Ajustes de frecuencias predeterminada y detalles de especificos de la banda - + <html><head/><body><p>See &quot;Frequency Calibration&quot; in the WSJT-X User Guide for details of how to determine these parameters for your radio.</p></body></html> <html><head/><body><p>Ver&quot;Calibración de Frecuencia&quot;en la Guía de usuario de WSJT-X para obtener detalles sobre cómo determinar estos parámetros para tú equipo.</p></body></html> <html><head/><body><p>Ver "Calibración de Frecuencia" en la Guía de usuario de WSJT-X para obtener detalles sobre cómo determinar estos parámetros para el equipo.</p></body></html> - + Frequency Calibration Calibración de frecuencia - + Slope: Pendiente: Cadencia: - + ppm ppm - + Intercept: Interceptar: Intercepción: - + Hz Hz - + Working Frequencies Frecuencias de trabajo - + <html><head/><body><p>Right click to maintain the working frequencies list.</p></body></html> <html><head/><body><p>Haz clic derecho para mantener la lista de frecuencias de trabajo.</p></body></html> <html><head/><body><p>Clic derecho para mantener la lista de frecuencias de trabajo.</p></body></html> - + Station Information Información de la estación - + Items may be edited. Right click for insert and delete options. Se pueden editar ítems. @@ -6588,373 +6881,414 @@ Haz clic derecho para insertar y eliminar opciones. Clic derecho para insertar y eliminar opciones. - + Colors Colores - + Decode Highlightling Resaltar Decodificado - + <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> <html><head/><body><p>Haz clic para escanear el archivo ADIF wsjtx_log.adi nuevamente para obtener información trabajada antes</p></body></html> <html><head/><body><p>Clic para procesar nuevamente el archivo ADIF wsjtx_log.adi para obtener información de estaciones trabajadas anteriormente</p></body></html> - + Rescan ADIF Log Escaneo de nuevo el log ADIF Procesar nuevamente log ADIF - + <html><head/><body><p>Push to reset all highlight items above to default values and priorities.</p></body></html> <html><head/><body><p>Presiona para restablecer todos los elementos resaltados arriba a los valores y prioridades predeterminados.</p></body></html> - + Reset Highlighting Restablecer resaltado - + <html><head/><body><p>Enable or disable using the check boxes and right-click an item to change or unset the foreground color, background color, or reset the item to default values. Drag and drop the items to change their priority, higher in the list is higher in priority.</p><p>Note that each foreground or background color may be either set or unset, unset means that it is not allocated for that item's type and lower priority items may apply.</p></body></html> <html><head/><body><p>Activa o desactiva las casillas de verificación y haz clic con el botón derecho en un elemento para cambiar o desactivar el color del primer plano, el color de fondo o restablecer el elemento a los valores predeterminados. Arrastra y suelta los elementos para cambiar su prioridad, mayor en la lista es mayor en prioridad.</p><p>Ten en cuenta que cada color de primer plano o de fondo puede estar configurado o no, lo que significa que no está asignado para ese tipo de elemento y pueden aplicarse elementos de menor prioridad.</p></body></html> <html><head/><body><p>Activar o desactivar usando las casillas de verificación. Clic con el botón derecho en un elemento para cambiar o volver al color predeterminado tanto de las letras como el color de fondo. Arrastrar y soltar los elementos para cambiar su prioridad; los primeros en la lista tienen mayor prioridad.</p><p>Cada color de letras o fondo puede estar configurado o no, no configurado significa que no está asignado para este elemento y pueden aplicarse elementos de menor prioridad.</p></body></html> - + <html><head/><body><p>Check to indicate new DXCC entities, grid squares, and callsigns per mode.</p></body></html> <html><head/><body><p>Marca para indicar nuevas entidades DXCC, Locator y indicativos por modo.</p></body></html> <html><head/><body><p>Marcar para indicar nueva entidad DXCC, locator e indicativos por modo.</p></body></html> - + Highlight by Mode Destacar por modo - + Include extra WAE entities Incluir entidades WAE adicionales - + Check to for grid highlighting to only apply to unworked grid fields Marca para que el resaltado de Locator sólo se aplique a los campos de Locator no trabajados Marcar para que el resaltado de locator sólo se aplique a los no trabajados - + Only grid Fields sought Solo campos de Locator/Grid buscados Solo campos de locator buscados - + <html><head/><body><p>Controls for Logbook of the World user lookup.</p></body></html> <html><head/><body><p>Controles para la búsqueda de usuarios de Logbook of the World (LoTW).</p></body></html> <html><head/><body><p>Búsqueda de usuarios de LoTW.</p></body></html> - + Logbook of the World User Validation Validación de Usuario de Logbook of the World (LoTW) Validación de usuario de LoTW - + Users CSV file URL: URL del archivo CSV de los usuarios: Enlace del archivo CSV de los usuarios: - + <html><head/><body><p>URL of the ARRL LotW user's last upload dates and times data file which is used to highlight decodes from stations that are known to upload their log file to LotW.</p></body></html> <html><head/><body><p>URL del último archivo de datos de fechas y horas de carga de ARRL LotW que se utiliza para resaltar decodificaciones de estaciones que se sabe que cargan su archivo de log a LotW.</p></body></html> <html><head/><body><p>Enlace del último archivo con fechas y horas de subidas de usuarios del LoTW, que se utiliza para resaltar decodificaciones de estaciones que suben su log al LoTW.</p></body></html> - + + URL + + + + https://lotw.arrl.org/lotw-user-activity.csv https://lotw.arrl.org/lotw-user-activity.csv - + <html><head/><body><p>Push this button to fetch the latest LotW user's upload date and time data file.</p></body></html> <html><head/><body><p>Presiona este botón para obtener el último archivo de datos de fecha y hora de carga de los usuarios de LotW.</p></body></html> <html><head/><body><p>Presionar este botón para descargar archivo de LoTW con la última fecha/hora de subida de los usuarios.</p></body></html> - + Fetch Now Buscar ahora - + Age of last upload less than: Edad de la última carga inferior a: Fecha última subida a LoTW inferior a: - + <html><head/><body><p>Adjust this spin box to set the age threshold of LotW user's last upload date that is accepted as a current LotW user.</p></body></html> <html><head/><body><p>Ajusta este cuadro de selección para establecer el umbral de edad de la última fecha de carga del usuario de LotW que se acepta como usuario actual de LotW.</p></body></html> <html><head/><body><p>Ajusta este cuadro de selección para establecer la última fecha de subida de logs del usuario de LoTW.</p></body></html> - + + Days since last upload + + + + days dias - + Advanced Avanzado - + <html><head/><body><p>User-selectable parameters for JT65 VHF/UHF/Microwave decoding.</p></body></html> <html><head/><body><p>Parámetros seleccionables por el usuario para decodificación JT65 VHF/UHF/Microondas.</p></body></html> - + JT65 VHF/UHF/Microwave decoding parameters Parámetros de decodificación JT65 VHF/UHF/Microondas Parámetros decodificación JT65 VHF/UHF/Microondas - + Random erasure patterns: Patrones de borrado aleatorio: - + <html><head/><body><p>Maximum number of erasure patterns for stochastic soft-decision Reed Solomon decoder is 10^(n/2).</p></body></html> <html><head/><body><p>El número máximo de patrones de borrado para el decodificador estoico de decisión suave Reed Solomon es 10^(n/2).</p></body></html> <html><head/><body><p>El número máximo de patrones de borrado para el decodificador linear Reed Solomon es 10^(n/2).</p></body></html> - + Aggressive decoding level: Nivel de decodificación agresivo: - + <html><head/><body><p>Higher levels will increase the probability of decoding, but will also increase probability of a false decode.</p></body></html> <html><head/><body><p>Los niveles más altos aumentarán la probabilidad de decodificación, pero también aumentarán la probabilidad de una decodificación falsa.</p></body></html> <html><head/><body><p>Los niveles más altos aumentarán la probabilidad de decodificación, pero también aumentarán la probabilidad de una falsa decodificación.</p></body></html> - + Two-pass decoding Decodificación de dos pasos Decodificación en dos pasos - + Special operating activity: Generation of FT4, FT8, and MSK144 messages Actividad operativa especial: generación de mensajes FT4, FT8 y MSK144 Actividad operativa especial: Generación de mensajes FT4, FT8 y MSK144 - + <html><head/><body><p>FT8 DXpedition mode: Hound operator calling the DX.</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: operador Hound llamando al DX.</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: Operador "Hound" llamando al DX.</p></body></html> - + + Hound "Hound" - + <html><head/><body><p>North American VHF/UHF/Microwave contests and others in which a 4-character grid locator is the required exchange.</p></body></html> <html><head/><body><p>Concursos norteamericanos de VHF/UHF/microondas y otros en los que se requiere un locator de 4 caracteres.</p></body></html> <html><head/><body><p>Concursos VHF/UHF/Microondas de norteamérica y otros en los cuales se requiere un intercambio de locator de 4 caracteres.</p></body></html> - + + NA VHF Contest Concurso NA VHF - + <html><head/><body><p>FT8 DXpedition mode: Fox (DXpedition) operator.</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: operador FOX (DXpedition).</p></body></html> <html><head/><body><p>Modo FT8 DXpedition: Operador "FOX" (DXpedition).</p></body></html> - + + Fox Fox "Fox" - + <html><head/><body><p>European VHF+ contests requiring a signal report, serial number, and 6-character locator.</p></body></html> <html><head/><body><p>Concursos europeos de VHF y superiores que requieren un informe de señal, número de serie y locator de 6 caracteres.</p></body></html> <html><head/><body><p>Concursos europeos de VHF y concursos que requieran reporte de señal, número de serie y locator de 6 caracteres.</p></body></html> - + + EU VHF Contest Concurso EU de VHF Concurso EU VHF - - + + <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> <html><head/><body><p>Resumen de ARRL RTTY y concursos similares. El intercambio es el estado de EE.UU., La provincia canadiense o &quot;DX&quot;.</p></body></html> <html><head/><body><p>ARRL RTTY Roundup y concursos similares. Intercambio, estado de EE.UU., provincia de Canadá o "DX".</p></body></html> - + + R T T Y Roundup + + + + RTTY Roundup messages Mensajes de resumen de RTTY Mesnajes para e lRTTY Roundup - + + RTTY Roundup exchange + + + + RTTY RU Exch: Intercambio RTTY RU: - + NJ NJ - - + + <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> <html><head/><body><p>Intercambio de ARRL Field Day: número de transmisores, clase y sección ARRL/RAC o &quot;DX&quot;.</p></body></html> <html><head/><body><p>Intercambiio para el ARRL Field Day: número de transmisores, "Class" y sección ARRL/RAC o "DX".</p></body></html> - + + A R R L Field Day + + + + ARRL Field Day ARRL Field Day - + + Field Day exchange + + + + FD Exch: Intercambio FD: - + 6A SNJ 6A SNJ - + <html><head/><body><p>World-Wide Digi-mode contest</p><p><br/></p></body></html> <html><head/><body><p>Concurso World-Wide Digi-mode</p><p><br/></p></body></html> <html><head/><body><p>Concurso World-Wide Digi DX</p><p><br/></p></body></html> - + + WW Digital Contest + + + + WW Digi Contest Concurso WW Digi Concurso WW Digi DX - + Miscellaneous Diverso Otros - + Degrade S/N of .wav file: Degradar S/N del archivo .wav: - - + + For offline sensitivity tests Para pruebas de sensibilidad fuera de línea - + dB dB - + Receiver bandwidth: Ancho de banda del receptor: - + Hz Hz - + Tx delay: Retardo de TX: - + Minimum delay between assertion of PTT and start of Tx audio. Retraso mínimo entre el PTT y el inicio del audio TX. - + s s - + + Tone spacing Espaciado de tono - + <html><head/><body><p>Generate Tx audio with twice the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-2 before generating RF.</p></body></html> <html><head/><body><p>Genera el audio de TX con el doble del espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 2 antes de generar RF.</p></body></html> <html><head/><body><p>Genera audio de TX con el doble del espaciado del tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 2 antes de generar RF.</p></body></html> - + x 2 x 2 - + <html><head/><body><p>Generate Tx audio with four times the normal tone spacing. Intended for special LF/MF transmitters that use a divide-by-4 before generating RF.</p></body></html> <html><head/><body><p>Genera el audio de TX con cuatro veces el espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 4 antes de generar RF.</p></body></html> <html><head/><body><p>Genera audio de TX con cuatro veces el espaciado de tono normal. Destinado a transmisores especiales de LF/MF que usan una división por 4 antes de generar RF.</p></body></html> - + x 4 x 4 - + + Waterfall spectra Espectros de la cascada Espectro de la cascada (waterfall) - + Low sidelobes Lóbulos laterales bajos - + Most sensitive Más sensible - + <html><head/><body><p>Discard (Cancel) or apply (OK) configuration changes including</p><p>resetting the radio interface and applying any soundcard changes</p></body></html> <html><head/><body><p>Descartar (Cancelar) o aplicar (OK) cambios de configuración/ajuste que incluyen</p><p>restablecer la interfaz de radio y aplicar cualquier cambio en la tarjeta de sonido</p></body></html> <html><head/><body><p>"Aceptar" o "Cancelar" cambios de configuración, incluyendo el restablecer la interface de radio y aplicar cualquier cambio en la tarjeta de sonido</p></body></html> @@ -6963,16 +7297,12 @@ Clic derecho para insertar y eliminar opciones. main - - Fatal error - Error fatal + Error fatal - - Unexpected fatal error - Error fatal inesperado + Error fatal inesperado Where <rig-name> is for multi-instance support. @@ -7064,15 +7394,25 @@ Clic derecho para insertar y eliminar opciones. ruta: "%1" - + Shared memory error Error de memoria compartida - + Unable to create shared memory segment No se puede crear un segmento de memoria compartida + + + Sub-process error + + + + + Failed to close orphaned jt9 process + + wf_palette_design_dialog From ba709fb1b019140dc4ead9ace375464065f6fb1e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 12 Sep 2020 12:46:26 +0100 Subject: [PATCH 467/520] Updated Danish UI l10n, tnx to Michael, 5P1KZX --- translations/wsjtx_da.ts | 245 +++++++++++++++++++++++++-------------- 1 file changed, 160 insertions(+), 85 deletions(-) diff --git a/translations/wsjtx_da.ts b/translations/wsjtx_da.ts index 8c93f09e0..b81fd6eb0 100644 --- a/translations/wsjtx_da.ts +++ b/translations/wsjtx_da.ts @@ -480,7 +480,7 @@ Format: Invalid audio output device - + Forkert Audio output Enhed @@ -693,7 +693,8 @@ Format: DX Lab Suite Commander send command failed "%1": %2 - + Fejl i DX Lab Suite Commander send kommando"%1": %2 + DX Lab Suite Commander failed to send command "%1": %2 @@ -1082,7 +1083,7 @@ Error: %2 - %3 Equalization Tools - + Equalization Værktøjer @@ -1778,22 +1779,22 @@ Error: %2 - %3 All - + Alle Region 1 - + Region 1 Region 2 - + Region 2 Region 3 - + Region 3 @@ -1895,97 +1896,97 @@ Error: %2 - %3 Prop Mode - + Prop Mode Aircraft scatter - + Flyscatter Aurora-E - + Aurora-E Aurora - + Aurora Back scatter - + Back scatter Echolink - + Echolink Earth-moon-earth - + Earth-moon-earth Sporadic E - + Sporadisk E F2 Reflection - + F2 Reflektion Field aligned irregularities - + Uregelmæssigheder i feltet Internet-assisted - + Internet assistance Ionoscatter - + Ionoscatter IRLP - + IRLP Meteor scatter - + Meteor scatter Non-satellite repeater or transponder - + Non-satelit eller transponder Rain scatter - + Regn scatter Satellite - + Satelit Trans-equatorial - + Transækvatorial Troposheric ducting - + Troposfærisk udbredelse @@ -2240,17 +2241,17 @@ Fejl(%2): %3 Percentage of minute sequences devoted to transmitting. - + Procentdel af minut sekvens dedikeret til sending. Prefer Type 1 messages - + Foretræk Type 1 meddelse <html><head/><body><p>Transmit during the next sequence.</p></body></html> - + <html><head/><body><p>Send i næste sekvens.</p></body></html> @@ -2942,7 +2943,7 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). FST4W - + FST4W Calling CQ @@ -3192,102 +3193,102 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). 1/2 - 1/2 + 1/2 2/2 - 2/2 + 2/2 1/3 - 1/3 + 1/3 2/3 - 2/3 + 2/3 3/3 - 3/3 + 3/3 1/4 - 1/4 + 1/4 2/4 - 2/4 + 2/4 3/4 - 3/4 + 3/4 4/4 - 4/4 + 4/4 1/5 - 1/5 + 1/5 2/5 - 2/5 + 2/5 3/5 - 3/5 + 3/5 4/5 - 4/5 + 4/5 5/5 - 5/5 + 5/5 1/6 - 1/6 + 1/6 2/6 - 2/6 + 2/6 3/6 - 3/6 + 3/6 4/6 - 4/6 + 4/6 5/6 - 5/6 + 5/6 6/6 - 6/6 + 6/6 @@ -3312,12 +3313,12 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). Quick-Start Guide to FST4 and FST4W - + Quick Start Guide for FST4 og FST4W FST4 - + FST4 FT240W @@ -3349,7 +3350,7 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). NB - + NB @@ -3649,7 +3650,7 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). Fast Graph - + Fast Graph @@ -3818,22 +3819,22 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). %1 (%2 sec) audio frames dropped - + %1 (%2 sec) audio frames droppet Audio Source - + Audio kilde Reduce system load - + Reducer system belasning Excessive dropped samples - %1 (%2 sec) audio frames dropped - + For stort tab - %1 (%2 sec) audio frames mistet @@ -4111,7 +4112,51 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> </table> Keyboard shortcuts help window contents - + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> @@ -4152,7 +4197,37 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). </tr> </table> Mouse commands help window contents - + <table cellpadding=5> + <tr> + <th align="right">Click on</th> + <th align="left">Action</th> + </tr> + <tr> + <td align="right">Waterfall:</td> + <td><b>Click</b> to set Rx frequency.<br/> + <b>Shift-click</b> to set Tx frequency.<br/> + <b>Ctrl-click</b> or <b>Right-click</b> to set Rx and Tx frequencies.<br/> + <b>Double-click</b> to also decode at Rx frequency.<br/> + </td> + </tr> + <tr> + <td align="right">Decoded text:</td> + <td><b>Double-click</b> to copy second callsign to Dx Call,<br/> + locator to Dx Grid, change Rx and Tx frequency to<br/> + decoded signal's frequency, and generate standard<br/> + messages.<br/> + If <b>Hold Tx Freq</b> is checked or first callsign in message<br/> + is your own call, Tx frequency is not changed unless <br/> + <b>Ctrl</b> is held down.<br/> + </td> + </tr> + <tr> + <td align="right">Erase button:</td> + <td><b>Click</b> to erase QSO window.<br/> + <b>Double-click</b> to erase QSO and Band Activity windows. + </td> + </tr> +</table> @@ -4162,7 +4237,7 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). Spotting to PSK Reporter unavailable - + Afsendelse af Spot til PSK Reporter ikke muligt @@ -4498,7 +4573,7 @@ UDP server %2:%3 Network SSL/TLS Errors - + Netværk SSL/TLS Fejl @@ -4703,7 +4778,7 @@ Fejl(%2): %3 Check this if you get SSL/TLS errors - + Check denne hvis du får SSL/TLS fejl Check this is you get SSL/TLS errors @@ -4823,7 +4898,7 @@ Fejl(%2): %3 No audio output device configured. - + Ingen audio output enhed er konfigureret. @@ -5065,12 +5140,12 @@ Fejl(%2): %3 Hz - Hz + Hz Split - + Split JT9 @@ -5117,22 +5192,22 @@ Fejl(%2): %3 Invalid ADIF field %0: %1 - + Forkert ADIF field %0: %1 Malformed ADIF field %0: %1 - + Misdannet ADIF field %0: %1 Invalid ADIF header - + Forkert ADIF header Error opening ADIF log file for read: %0 - + Fejl ved åbning af ADIF log filen for læsning: %0 @@ -5524,7 +5599,7 @@ den stille periode, når dekodningen er udført. Data bits - + Data bits @@ -5554,7 +5629,7 @@ den stille periode, når dekodningen er udført. Stop bits - + Stop bits @@ -5877,7 +5952,7 @@ transmissionsperioder. Days since last upload - + Dage siden sidste upload @@ -5932,7 +6007,7 @@ eller begge. Enable VHF and submode features - + Aktiver VHF and submode funktioner @@ -6137,7 +6212,7 @@ og DX Grid-felter, når der sendes en 73 eller fri tekstbesked. <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> - + <html><head/><body> <p> Programmet kan sende dine stationsoplysninger og alle dekodede signaler med Grid som SPOTS til http://pskreporter.info webstedet. </p> <p> Dette er bruges til reverse beacon-analyse, som er meget nyttig til vurdering af udbredelse og systemydelse. </p> </body> </html> The program can send your station details and all @@ -6157,12 +6232,12 @@ til vurdering af udbrednings forhold og systemydelse. <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + <html><head/><body> <p> Marker denne indstilling, hvis der er behov for en pålidelig forbindelse </p> <p> De fleste brugere har ikke brug for dette, da standard UDP er mere effektiv. Marker kun dette, hvis du er sikker på, at UDP-trafik fra dig til PSK Reporter går tabt. </p> </body> </html> Use TCP/IP connection - + Brug TCP/IP forbindelse @@ -6399,7 +6474,7 @@ Højre klik for at indsætte eller slette elementer. URL - + URL @@ -6529,7 +6604,7 @@ Højre klik for at indsætte eller slette elementer. R T T Y Roundup - + R T T Y Roundup @@ -6539,7 +6614,7 @@ Højre klik for at indsætte eller slette elementer. RTTY Roundup exchange - + RTTY Roundup udveksling @@ -6560,7 +6635,7 @@ Højre klik for at indsætte eller slette elementer. A R R L Field Day - + A R R L Field Day @@ -6570,7 +6645,7 @@ Højre klik for at indsætte eller slette elementer. Field Day exchange - + Fiels Day udveksling @@ -6590,7 +6665,7 @@ Højre klik for at indsætte eller slette elementer. WW Digital Contest - + WW Digital Contest @@ -6755,12 +6830,12 @@ Højre klik for at indsætte eller slette elementer. Sub-process error - + Under-rutine fejl Failed to close orphaned jt9 process - + Fejl ved lukning af jt9 proces From d5ef698ce1ce93aa37d54812b61b1501c8b28077 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 12 Sep 2020 12:54:42 +0100 Subject: [PATCH 468/520] Updated l10n files --- translations/wsjtx_ca.ts | 398 +++++++++++++++++------------------ translations/wsjtx_da.ts | 398 +++++++++++++++++------------------ translations/wsjtx_en.ts | 400 ++++++++++++++++++------------------ translations/wsjtx_en_GB.ts | 400 ++++++++++++++++++------------------ translations/wsjtx_es.ts | 394 +++++++++++++++++------------------ translations/wsjtx_it.ts | 394 +++++++++++++++++------------------ translations/wsjtx_ja.ts | 398 +++++++++++++++++------------------ translations/wsjtx_zh.ts | 400 ++++++++++++++++++------------------ translations/wsjtx_zh_HK.ts | 400 ++++++++++++++++++------------------ 9 files changed, 1797 insertions(+), 1785 deletions(-) diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index c5a542003..ba0c43a69 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -430,22 +430,22 @@ &Restablir - + Serial Port: Port sèrie: - + Serial port used for CAT control Port sèrie utilitzat per al control CAT - + Network Server: Servidor de xarxa: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -460,12 +460,12 @@ Formats: [adreça IPv6]:port - + USB Device: Dispositiu USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -476,8 +476,8 @@ Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - - + + Invalid audio input device El dispositiu d'entrada d'àudio no és vàlid @@ -486,147 +486,147 @@ Format: El dispositiu de sortida d'àudio no és vàlid - + Invalid audio output device El dispositiu de sortida d'àudio no és vàlid - + Invalid PTT method El mètode de PTT no és vàlid - + Invalid PTT port El port del PTT no és vàlid - - + + Invalid Contest Exchange Intercanvi de concurs no vàlid - + You must input a valid ARRL Field Day exchange Has d’introduir un intercanvi de Field Day de l'ARRL vàlid - + You must input a valid ARRL RTTY Roundup exchange Has d’introduir un intercanvi vàlid de l'ARRL RTTY Roundup - + Reset Decode Highlighting Restableix Ressaltat de Descodificació - + Reset all decode highlighting and priorities to default values Restableix tot el ressaltat i les prioritats de descodificació als valors predeterminats - + WSJT-X Decoded Text Font Chooser Tipus de text de pantalla de descodificació WSJT-X - + Load Working Frequencies Càrrega les freqüències de treball - - - + + + Frequency files (*.qrg);;All files (*.*) Arxius de freqüència (*.qrg);;Tots els arxius (*.*) - + Replace Working Frequencies Substitueix les freqüències de treball - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? Segur que vols descartar les teves freqüències actuals de treball i reemplaçar-les per les carregades ? - + Merge Working Frequencies Combina les freqüències de treball - - - + + + Not a valid frequencies file L'arxiu de freqüències no és vàlid - + Incorrect file magic L'arxiu màgic es incorrecte - + Version is too new La versió és massa nova - + Contents corrupt Continguts corruptes - + Save Working Frequencies Desa les freqüències de treball - + Only Save Selected Working Frequencies Desa només les freqüències de treball seleccionades - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. Estàs segur que vols desar només les freqüències de treball seleccionades actualment? Fes clic a No per desar-ho tot. - + Reset Working Frequencies Restablir les freqüències de treball - + Are you sure you want to discard your current working frequencies and replace them with default ones? Segur que vols descartar les teves freqüències actuals de treball i reemplaçar-les per altres? - + Save Directory Directori de Guardar - + AzEl Directory Directori AzEl - + Rig control error Error de control de l'equip - + Failed to open connection to rig No s'ha pogut obrir la connexió al equip - + Rig failure Fallada en l'equip @@ -2086,13 +2086,13 @@ Error(%2): %3 - - - - - - - + + + + + + + Band Activity Activitat a la banda @@ -2104,12 +2104,12 @@ Error(%2): %3 - - - - - - + + + + + + Rx Frequency Freqüència de RX @@ -2592,7 +2592,7 @@ No està disponible per als titulars de indicatiu no estàndard. - + Fox Fox @@ -3133,10 +3133,10 @@ La llista es pot mantenir a la configuració (F2). - - - - + + + + Random a l’atzar @@ -3542,7 +3542,7 @@ La llista es pot mantenir a la configuració (F2). TX desactivat després d’enviar 73 - + Runaway Tx watchdog Seguretat de TX @@ -3810,8 +3810,8 @@ La llista es pot mantenir a la configuració (F2). - - + + Receiving Rebent @@ -3826,199 +3826,203 @@ La llista es pot mantenir a la configuració (F2). %1 (%2 sec) s’han caigut els marcs d’àudio - + Audio Source Font d'àudio - + Reduce system load Reduir la càrrega del sistema - Excessive dropped samples - %1 (%2 sec) audio frames dropped - Mostres caigudes excessives - %1 (%2 sec) s’han caigut els marcs d’àudio + Mostres caigudes excessives - %1 (%2 sec) s’han caigut els marcs d’àudio - + + Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 + + + + Error Scanning ADIF Log Error d'escaneig del log ADIF - + Scanned ADIF log, %1 worked before records created Log ADIF escanejat, %1 funcionava abans de la creació de registres - + Error Loading LotW Users Data S'ha produït un error al carregar les dades dels usuaris de LotW - + Error Writing WAV File S'ha produït un error al escriure l'arxiu WAV - + Configurations... Configuracions... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message Missatge - + Error Killing jt9.exe Process Error en matar el procés jt9.exe - + KillByName return code: %1 Codi de retorn de KillByName: %1 - + Error removing "%1" Error en eliminar "%1" - + Click OK to retry Fes clic a D'acord per tornar-ho a provar - - + + Improper mode Mode inadequat - - + + File Open Error Error al obrir l'arxiu - - - - - + + + + + Cannot open "%1" for append: %2 No es pot obrir "%1" per annexar: %2 - + Error saving c2 file Error en desar l'arxiu c2 - + Error in Sound Input Error a la entrada de so - + Error in Sound Output Error en la sortida de so - - - + + + Single-Period Decodes Descodificacions d'un sol període - - - + + + Average Decodes Mitjans descodificats - + Change Operator Canvi d'Operador - + New operator: Operador Nou: - + Status File Error Error d'estat de l'arxiu - - + + Cannot open "%1" for writing: %2 No es pot obrir "%1" per escriure: %2 - + Subprocess Error Error de subprocés - + Subprocess failed with exit code %1 Ha fallat el subprocés amb el codi de sortida %1 - - + + Running: %1 %2 Corrent: %1 %2 - + Subprocess error Error de subprocés - + Reference spectrum saved Guarda l'espectre de referència - + Invalid data in fmt.all at line %1 Les dades no són vàlides a fmt.all a la línia %1 - + Good Calibration Solution Solució de bona calibració - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -4031,17 +4035,17 @@ La llista es pot mantenir a la configuració (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Suprimeix les mesures de calibració - + The "fmt.all" file will be renamed as "fmt.bak" L'arxiu "fmt.all" serà renombrat com a "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -4049,27 +4053,27 @@ La llista es pot mantenir a la configuració (F2). "Els algoritmes, codi font, aspecte de WSJT-X i programes relacionats i les especificacions de protocol per als modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 són Copyright (C) 2001-2020 per un o més dels següents autors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q i altres membres del grup de desenvolupament de WSJT. " - + No data read from disk. Wrong file format? No es llegeixen dades del disc. Format de l'arxiu incorrecte ? - + Confirm Delete Confirma Esborrar - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Estàs segur que vols esborrar tots els arxius *.wav i *.c2"%1" ? - + Keyboard Shortcuts Dreceres de teclat - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4163,12 +4167,12 @@ La llista es pot mantenir a la configuració (F2). </table> - + Special Mouse Commands Ordres especials del ratolí - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4234,42 +4238,42 @@ La llista es pot mantenir a la configuració (F2). </table> - + No more files to open. No s’obriran més arxius. - + Spotting to PSK Reporter unavailable No hi ha espots a PSK Reporter - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Tria una altra freqüència de TX. El WSJT-X no transmetrà de manera conscient un altre mode a la sub-banda WSPR a 30 m. - + WSPR Guard Band Banda de Guàrdia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Tria una altra freqüència de treball. WSJT-X no funcionarà en mode Fox a les sub-bandes FT8 estàndard. - + Fox Mode warning Avís de mode Fox - + Last Tx: %1 Últim TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4280,120 +4284,120 @@ Per fer-ho, comprova "Activitat operativa especial" i Concurs EU VHF a la Configuració | Pestanya avançada. - + Should you switch to ARRL Field Day mode? Has de canviar al mode de Field Day de l'ARRL ? - + Should you switch to RTTY contest mode? Has de canviar al mode de concurs RTTY? - - - - + + + + Add to CALL3.TXT Afegeix a CALL3.TXT - + Please enter a valid grid locator Introduïu un locator vàlid - + Cannot open "%1" for read/write: %2 No es pot obrir "%1" per llegir o escriure: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 ja és a CALL3.TXT, vols substituir-lo ? - + Warning: DX Call field is empty. Avís: el camp de indicatiu DX està buit. - + Log file error Error a l'arxiu de log - + Cannot open "%1" No es pot obrir "%1" - + Error sending log to N1MM Error al enviar el log a N1MM - + Write returned "%1" Escriptura retornada "%1" - + Stations calling DXpedition %1 Estacions que criden a DXpedition %1 - + Hound Hound - + Tx Messages Missatges de TX - - - + + + Confirm Erase Confirma Esborrar - + Are you sure you want to erase file ALL.TXT? Estàs segur que vols esborrar l'arxiu ALL.TXT ? - - + + Confirm Reset Confirma que vols Restablir - + Are you sure you want to erase your contest log? Estàs segur que vols esborrar el log del concurs ? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Si fas això, suprimiràs tots els registres de QSO del concurs actual. Es conservaran a l'arxiu de log ADIF, però no es podran exportar al log de Cabrillo. - + Cabrillo Log saved Log Cabrillo desat - + Are you sure you want to erase file wsjtx_log.adi? Estàs segur que vols esborrar l'arxiu wsjtx_log.adi ? - + Are you sure you want to erase the WSPR hashtable? Estàs segur que vols esborrar la taula del WSPR ? @@ -4402,60 +4406,60 @@ ja és a CALL3.TXT, vols substituir-lo ? Les característiques de VHF tenen un avís - + Tune digital gain Guany de sintonització digital - + Transmit digital gain Guany digital de transmissió - + Prefixes Prefixos - + Network Error Error de xarxa - + Error: %1 UDP server %2:%3 Error: %1 UDP server %2:%3 - + File Error Error a l'arxiu - + Phase Training Disabled Entrenament de fase Desactivat - + Phase Training Enabled Entrenament de fase activat - + WD:%1m WD:%1m - - + + Log File Error Error a l'arxiu de log - + Are you sure you want to clear the QSO queues? Estàs segur que vols esborrar les cues de QSO ? @@ -4802,67 +4806,67 @@ Error(%2): %3 SoundInput - + An error opening the audio input device has occurred. S'ha produït un error obrint el dispositiu d'entrada d'àudio. - + An error occurred during read from the audio input device. S'ha produït un error de lectura des del dispositiu d'entrada d'àudio. - + Audio data not being fed to the audio input device fast enough. Les dades d'àudio no s'envien al dispositiu d'entrada d'àudio prou ràpid. - + Non-recoverable error, audio input device not usable at this time. Error no recuperable, el dispositiu d'entrada d'àudio no es pot utilitzar ara. - + Requested input audio format is not valid. El format sol·licitat d'àudio d'entrada no és vàlid. - + Requested input audio format is not supported on device. El format d'àudio d'entrada sol·licitat no és compatible amb el dispositiu. - + Failed to initialize audio sink device Error a l'inicialitzar el dispositiu de descarrega d'àudio - + Idle Inactiu - + Receiving Rebent - + Suspended Suspès - + Interrupted Interromput - + Error Error - + Stopped Aturat diff --git a/translations/wsjtx_da.ts b/translations/wsjtx_da.ts index b81fd6eb0..277af77d4 100644 --- a/translations/wsjtx_da.ts +++ b/translations/wsjtx_da.ts @@ -422,22 +422,22 @@ &Reset - + Serial Port: Seriel Port: - + Serial port used for CAT control Seriel port til CAT kontrol - + Network Server: Netværk Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -452,12 +452,12 @@ Formater: [IPv6-address]:port - + USB Device: USB Enhed: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -468,8 +468,8 @@ Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - - + + Invalid audio input device Foekert audio input enhed @@ -478,147 +478,147 @@ Format: Forkert audio output enhed - + Invalid audio output device Forkert Audio output Enhed - + Invalid PTT method Forkert PTT metode - + Invalid PTT port Forkert PTT port - - + + Invalid Contest Exchange Forkert Contest Udveksling - + You must input a valid ARRL Field Day exchange Indsæt et valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange Indsæt et valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting Nulstil dekode markering - + Reset all decode highlighting and priorities to default values Indstil alle dekode markeringer og prioriteringer til default - + WSJT-X Decoded Text Font Chooser WSJT-X Dekodet tekst Font vælger - + Load Working Frequencies Hent Frekvens liste - - - + + + Frequency files (*.qrg);;All files (*.*) Frekvens fil *.qrg);;All files (*.*) - + Replace Working Frequencies Erstat frekvensliste - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? Er du sikker på du vil kassere dine nuværende frekvensliste og erstatte den med denne frekvensliste? - + Merge Working Frequencies Indflet Frevens liste - - - + + + Not a valid frequencies file Ikke en gyldig Frekvens liste fil - + Incorrect file magic Forkert fil Magic - + Version is too new Version for ny - + Contents corrupt Inhold ugyldigt - + Save Working Frequencies Gem frekvens liste - + Only Save Selected Working Frequencies Gemmer kun de valgte frekvenser til listen - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. Er du sikker på du kun vil gemme de valgte frekvenser i Frekvenslisten. Klik nej for gemme alle. - + Reset Working Frequencies Reset frekvens liste - + Are you sure you want to discard your current working frequencies and replace them with default ones? Er du sikker på du vil kassere dine nuværende frekvensliste og erstatte dem med standard frekvenser? - + Save Directory Gemme Mappe - + AzEl Directory AzEL Mappe - + Rig control error Radio kontrol fejl - + Failed to open connection to rig Fejl i etablering af forbindelse til radio - + Rig failure Radio fejl @@ -2086,13 +2086,13 @@ Fejl(%2): %3 - - - - - - - + + + + + + + Band Activity Bånd Aktivitet @@ -2104,12 +2104,12 @@ Fejl(%2): %3 - - - - - - + + + + + + Rx Frequency Rx frekvens @@ -2591,7 +2591,7 @@ Not available to nonstandard callsign holders. - + Fox Fox @@ -3133,10 +3133,10 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). - - - - + + + + Random Tilfældig @@ -3538,7 +3538,7 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). F7 - + Runaway Tx watchdog Runaway Tx vagthund @@ -3806,8 +3806,8 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). - - + + Receiving Modtager @@ -3822,199 +3822,203 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). %1 (%2 sec) audio frames droppet - + Audio Source Audio kilde - + Reduce system load Reducer system belasning - Excessive dropped samples - %1 (%2 sec) audio frames dropped - For stort tab - %1 (%2 sec) audio frames mistet + For stort tab - %1 (%2 sec) audio frames mistet - + + Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 + + + + Error Scanning ADIF Log Fejl ved scanning af Adif Log - + Scanned ADIF log, %1 worked before records created Scannet ADIF log, %1 worked B4 oprettede poster - + Error Loading LotW Users Data Fejl ved indlæsning af LotW bruger Data - + Error Writing WAV File Fejl ved skrivning af WAV Fil - + Configurations... Konfigurationer... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message Meddelse - + Error Killing jt9.exe Process Fejl ved lukning af jt9.exe processen - + KillByName return code: %1 KillByName return code: %1 - + Error removing "%1" Fejl ved fjernelse af "%1" - + Click OK to retry Klik OK for at prøve igen - - + + Improper mode Forkert mode - - + + File Open Error Fejl ved åbning af fil - - - - - + + + + + Cannot open "%1" for append: %2 Kan ikke åbne "%1" for at tilføje: %2 - + Error saving c2 file Fejl da c2 fil skulle gemmes - + Error in Sound Input Fejl i Audio input - + Error in Sound Output Fejl i Audio output - - - + + + Single-Period Decodes Enkel-Periode Dekodning - - - + + + Average Decodes Gennemsnitlig dekodning - + Change Operator Skift Operatør - + New operator: Ny Operatør: - + Status File Error Fejl i status Fil - - + + Cannot open "%1" for writing: %2 Kan ikke åbne "%1" for at skrive: %2 - + Subprocess Error Underprocess fejl - + Subprocess failed with exit code %1 Underprocess fejlede med fejlkode %1 - - + + Running: %1 %2 Kører: %1 %2 - + Subprocess error Underprocess fejl - + Reference spectrum saved Reference spectrum gemt - + Invalid data in fmt.all at line %1 Forkert data i fmt.all ved linje %1 - + Good Calibration Solution God Kalibrerings løsning - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -4027,17 +4031,17 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Slet Kalibrerings måling - + The "fmt.all" file will be renamed as "fmt.bak" Filen fmt.all vil blive omdøbt til "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -4045,27 +4049,27 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). "Algoritmerne, kildekoden, udseendet og funktionen af ​​WSJT-X og relaterede programmer og protokolspecifikationer for Mode FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 er Copyright (C) 2001-2020 af en eller flere af følgende forfattere: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; og andre medlemmer af WSJT Development Group. " - + No data read from disk. Wrong file format? Ingen data indlæst. Forkert fil format? - + Confirm Delete Bekræft sletning - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Er du sikker på du vil slette alle *.wav og *.c2 filer i "%1"? - + Keyboard Shortcuts Tastetur Genveje - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4159,12 +4163,12 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). </table> - + Special Mouse Commands Specielle muse kommandoer - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4230,42 +4234,42 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). </table> - + No more files to open. Ikke flere filer at åbne. - + Spotting to PSK Reporter unavailable Afsendelse af Spot til PSK Reporter ikke muligt - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Venligst vælg en ande Tx frekvens. WSJT-X vil ikke sende med en anden Mode i WSPR området på 30m. - + WSPR Guard Band WSPR Guard bånd - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Vælg venligst en anden VFO frekvens. WSJT-x vil ikke operere med Fox mode i standard FT8 områder - + Fox Mode warning Fox Mode advarsel - + Last Tx: %1 Senest Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4276,120 +4280,120 @@ For at gøre dette skal du markere 'Speciel aktivitet' og 'EU VHF-Contest' på indstillingerne | Avanceret fane. - + Should you switch to ARRL Field Day mode? Bør du skifte til ARRL Field Day mode? - + Should you switch to RTTY contest mode? Bør du skifte til RTTY Contest mode? - - - - + + + + Add to CALL3.TXT Tilføj til CALL3.TXT - + Please enter a valid grid locator Indsæt en gyldig Grid lokator - + Cannot open "%1" for read/write: %2 Kan ikke åbne "%1" for Læse/Skrive: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 er allerede i CALL3.TXT. Vil du erstatte den? - + Warning: DX Call field is empty. Advarsel: DX Call feltet er tomt. - + Log file error Log fil fejl - + Cannot open "%1" Kan ikke åbne "%1" - + Error sending log to N1MM Fejl ved afsendelse af log til N1MM - + Write returned "%1" Skrivning vendte tilbage med "%1" - + Stations calling DXpedition %1 Stationer som kalder DXpedition %1 - + Hound Hound - + Tx Messages Tx meddelse - - - + + + Confirm Erase Bekræft Slet - + Are you sure you want to erase file ALL.TXT? Er du sikker på du vil slette filen ALL.TXT? - - + + Confirm Reset Bekræft Reset - + Are you sure you want to erase your contest log? Er du sikker på du vil slette din contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Gør du dette vil alle QSOer for pågældende contest blive slettet. De bliver dog gemt i en ADIF fik, men det vil ikke være muligt at eksportere dem som Cabrillo log. - + Cabrillo Log saved Cabrillo Log gemt - + Are you sure you want to erase file wsjtx_log.adi? Er du sikker på du vil slette filen wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? Er du sikker på du vil slette WSPR Hash tabellen? @@ -4398,60 +4402,60 @@ er allerede i CALL3.TXT. Vil du erstatte den? VHF feature advarsel - + Tune digital gain Tune digital gain - + Transmit digital gain Transmit digital gain - + Prefixes Prefixer - + Network Error Netværks Fejl - + Error: %1 UDP server %2:%3 Error: %1 UDP server %2:%3 - + File Error Fil fejl - + Phase Training Disabled Phase Training Deaktiveret - + Phase Training Enabled Phase Training Aktiveret - + WD:%1m WD:%1m - - + + Log File Error Log Fil Fejl - + Are you sure you want to clear the QSO queues? Er du sikker du vil slette QSO køen? @@ -4798,67 +4802,67 @@ Fejl(%2): %3 SoundInput - + An error opening the audio input device has occurred. En fejl er opstået ved åbning af Audio indgangsenheden. - + An error occurred during read from the audio input device. En fejl er opstået ved læsning fra Audio enheden. - + Audio data not being fed to the audio input device fast enough. Audio bliverr ikke overført hurtigt nok til Audio enheden. - + Non-recoverable error, audio input device not usable at this time. Fejl, der ikke kan gendannes, lydindgangs enhed kan ikke bruges på dette tidspunkt. - + Requested input audio format is not valid. Det ønskede Audio ingangs format er ikke gyldigt. - + Requested input audio format is not supported on device. Det ønskede Audio indgangs format understøttes ikke af enheden. - + Failed to initialize audio sink device Kunne ikke initialisere lydenheden - + Idle Venter - + Receiving Modtager - + Suspended Suspenderet - + Interrupted Afbrudt - + Error Fejl - + Stopped Stoppet diff --git a/translations/wsjtx_en.ts b/translations/wsjtx_en.ts index 16dc8e0fd..faceee0fb 100644 --- a/translations/wsjtx_en.ts +++ b/translations/wsjtx_en.ts @@ -422,22 +422,22 @@ - + Serial Port: - + Serial port used for CAT control - + Network Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -447,12 +447,12 @@ Formats: - + USB Device: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -460,153 +460,153 @@ Format: - - + + Invalid audio input device - + Invalid audio output device - + Invalid PTT method - + Invalid PTT port - - + + Invalid Contest Exchange - + You must input a valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting - + Reset all decode highlighting and priorities to default values - + WSJT-X Decoded Text Font Chooser - + Load Working Frequencies - - - + + + Frequency files (*.qrg);;All files (*.*) - + Replace Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - + Merge Working Frequencies - - - + + + Not a valid frequencies file - + Incorrect file magic - + Version is too new - + Contents corrupt - + Save Working Frequencies - + Only Save Selected Working Frequencies - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. - + Reset Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with default ones? - + Save Directory - + AzEl Directory - + Rig control error - + Failed to open connection to rig - + Rig failure @@ -2028,13 +2028,13 @@ Error(%2): %3 - - - - - - - + + + + + + + Band Activity @@ -2046,12 +2046,12 @@ Error(%2): %3 - - - - - - + + + + + + Rx Frequency @@ -2630,7 +2630,7 @@ Not available to nonstandard callsign holders. - + Fox @@ -3100,10 +3100,10 @@ list. The list can be maintained in Settings (F2). - - - - + + + + Random @@ -3339,7 +3339,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog @@ -3571,8 +3571,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving @@ -3587,198 +3587,198 @@ list. The list can be maintained in Settings (F2). - + Audio Source - + Reduce system load - - Excessive dropped samples - %1 (%2 sec) audio frames dropped - - - - - Error Scanning ADIF Log + + Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 + Error Scanning ADIF Log + + + + Scanned ADIF log, %1 worked before records created - + Error Loading LotW Users Data - + Error Writing WAV File - + Configurations... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message - + Error Killing jt9.exe Process - + KillByName return code: %1 - + Error removing "%1" - + Click OK to retry - - + + Improper mode - - + + File Open Error - - - - - + + + + + Cannot open "%1" for append: %2 - + Error saving c2 file - + Error in Sound Input - + Error in Sound Output - - - + + + Single-Period Decodes - - - + + + Average Decodes - + Change Operator - + New operator: - + Status File Error - - + + Cannot open "%1" for writing: %2 - + Subprocess Error - + Subprocess failed with exit code %1 - - + + Running: %1 %2 - + Subprocess error - + Reference spectrum saved - + Invalid data in fmt.all at line %1 - + Good Calibration Solution - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3787,44 +3787,44 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements - + The "fmt.all" file will be renamed as "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? - + Confirm Delete - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + Keyboard Shortcuts - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -3874,12 +3874,12 @@ list. The list can be maintained in Settings (F2). - + Special Mouse Commands - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -3915,42 +3915,42 @@ list. The list can be maintained in Settings (F2). - + No more files to open. - + Spotting to PSK Reporter unavailable - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + Last Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3958,176 +3958,176 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - + Stations calling DXpedition %1 - + Hound - + Tx Messages - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - + WD:%1m - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -4460,67 +4460,67 @@ Error(%2): %3 SoundInput - + An error opening the audio input device has occurred. - + An error occurred during read from the audio input device. - + Audio data not being fed to the audio input device fast enough. - + Non-recoverable error, audio input device not usable at this time. - + Requested input audio format is not valid. - + Requested input audio format is not supported on device. - + Failed to initialize audio sink device - + Idle - + Receiving - + Suspended - + Interrupted - + Error - + Stopped diff --git a/translations/wsjtx_en_GB.ts b/translations/wsjtx_en_GB.ts index 523f654d7..62ec25ed2 100644 --- a/translations/wsjtx_en_GB.ts +++ b/translations/wsjtx_en_GB.ts @@ -422,22 +422,22 @@ - + Serial Port: - + Serial port used for CAT control - + Network Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -447,12 +447,12 @@ Formats: - + USB Device: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -460,153 +460,153 @@ Format: - - + + Invalid audio input device - + Invalid audio output device - + Invalid PTT method - + Invalid PTT port - - + + Invalid Contest Exchange - + You must input a valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting - + Reset all decode highlighting and priorities to default values - + WSJT-X Decoded Text Font Chooser - + Load Working Frequencies - - - + + + Frequency files (*.qrg);;All files (*.*) - + Replace Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - + Merge Working Frequencies - - - + + + Not a valid frequencies file - + Incorrect file magic - + Version is too new - + Contents corrupt - + Save Working Frequencies - + Only Save Selected Working Frequencies - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. - + Reset Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with default ones? - + Save Directory - + AzEl Directory - + Rig control error - + Failed to open connection to rig - + Rig failure @@ -2028,13 +2028,13 @@ Error(%2): %3 - - - - - - - + + + + + + + Band Activity @@ -2046,12 +2046,12 @@ Error(%2): %3 - - - - - - + + + + + + Rx Frequency @@ -2630,7 +2630,7 @@ Not available to nonstandard callsign holders. - + Fox @@ -3100,10 +3100,10 @@ list. The list can be maintained in Settings (F2). - - - - + + + + Random @@ -3339,7 +3339,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog @@ -3571,8 +3571,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving @@ -3587,198 +3587,198 @@ list. The list can be maintained in Settings (F2). - + Audio Source - + Reduce system load - - Excessive dropped samples - %1 (%2 sec) audio frames dropped - - - - - Error Scanning ADIF Log + + Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 + Error Scanning ADIF Log + + + + Scanned ADIF log, %1 worked before records created - + Error Loading LotW Users Data - + Error Writing WAV File - + Configurations... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message - + Error Killing jt9.exe Process - + KillByName return code: %1 - + Error removing "%1" - + Click OK to retry - - + + Improper mode - - + + File Open Error - - - - - + + + + + Cannot open "%1" for append: %2 - + Error saving c2 file - + Error in Sound Input - + Error in Sound Output - - - + + + Single-Period Decodes - - - + + + Average Decodes - + Change Operator - + New operator: - + Status File Error - - + + Cannot open "%1" for writing: %2 - + Subprocess Error - + Subprocess failed with exit code %1 - - + + Running: %1 %2 - + Subprocess error - + Reference spectrum saved - + Invalid data in fmt.all at line %1 - + Good Calibration Solution - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3787,44 +3787,44 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements - + The "fmt.all" file will be renamed as "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? - + Confirm Delete - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + Keyboard Shortcuts - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -3874,12 +3874,12 @@ list. The list can be maintained in Settings (F2). - + Special Mouse Commands - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -3915,42 +3915,42 @@ list. The list can be maintained in Settings (F2). - + No more files to open. - + Spotting to PSK Reporter unavailable - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + Last Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3958,176 +3958,176 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - + Stations calling DXpedition %1 - + Hound - + Tx Messages - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - + WD:%1m - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -4460,67 +4460,67 @@ Error(%2): %3 SoundInput - + An error opening the audio input device has occurred. - + An error occurred during read from the audio input device. - + Audio data not being fed to the audio input device fast enough. - + Non-recoverable error, audio input device not usable at this time. - + Requested input audio format is not valid. - + Requested input audio format is not supported on device. - + Failed to initialize audio sink device - + Idle - + Receiving - + Suspended - + Interrupted - + Error - + Stopped diff --git a/translations/wsjtx_es.ts b/translations/wsjtx_es.ts index f0323b395..da0aaf47e 100644 --- a/translations/wsjtx_es.ts +++ b/translations/wsjtx_es.ts @@ -463,22 +463,22 @@ &Reiniciar - + Serial Port: Puerto Serie: - + Serial port used for CAT control Puerto serie utilizado para el control CAT - + Network Server: Servidor de red: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -499,12 +499,12 @@ Formatos: [dirección IPv6]:port - + USB Device: Dispositivo USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -519,8 +519,8 @@ Formato: [VID[:PID[:VENDOR[:PRODUCT]]]] - - + + Invalid audio input device El dispositivo de entrada de audio no es válido Dispositivo de entrada de audio no válido @@ -531,165 +531,165 @@ Formato: Dispositivo de salida de audio no válido - + Invalid audio output device - + Invalid PTT method El método de PTT no es válido Método PTT no válido - + Invalid PTT port El puerto del PTT no es válido Puerto PTT no válido - - + + Invalid Contest Exchange Intercambio de concurso no válido - + You must input a valid ARRL Field Day exchange Debes introducir un intercambio de Field Day del ARRL válido Debe introducir un intercambio válido para el ARRL Field Day - + You must input a valid ARRL RTTY Roundup exchange Debes introducir un intercambio válido de la ARRL RTTY Roundup Debe introducir un intercambio válido para el ARRL RTTY Roundup - + Reset Decode Highlighting Restablecer Resaltado de Decodificación Restablecer resaltado de colores de decodificados - + Reset all decode highlighting and priorities to default values Restablecer todo el resaltado y las prioridades de decodificación a los valores predeterminados Restablecer todo el resaltado de colores y prioridades a los valores predeterminados - + WSJT-X Decoded Text Font Chooser Tipo de texto de pantalla de descodificación WSJT-X Seleccionar un tipo de letra - + Load Working Frequencies Carga las frecuencias de trabajo Cargar las frecuencias de trabajo - - - + + + Frequency files (*.qrg);;All files (*.*) Archivos de frecuencia (*.qrg);;Todos los archivos (*.*) - + Replace Working Frequencies Sustituye las frecuencias de trabajo Sustituir las frecuencias de trabajo - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por las cargadas? ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las cargadas? - + Merge Working Frequencies Combinar las frecuencias de trabajo Combina las frecuencias de trabajo - - - + + + Not a valid frequencies file El archivo de frecuencias no es válido Archivo de frecuencias no válido - + Incorrect file magic Archivo mágico incorrecto - + Version is too new La versión es demasiado nueva - + Contents corrupt contenidos corruptos Contenido corrupto - + Save Working Frequencies Guardar las frecuencias de trabajo - + Only Save Selected Working Frequencies Guarda sólo las frecuencias de trabajo seleccionadas Sólo guarda las frecuencias de trabajo seleccionadas - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. ¿Seguro que quieres guardar sólo las frecuencias de trabajo seleccionadas actualmente? Haz clic en No para guardar todo. ¿Seguro que quiere guardar sólo las frecuencias de trabajo seleccionadas actualmente? Clic en No para guardar todo. - + Reset Working Frequencies Reiniciar las frecuencias de trabajo - + Are you sure you want to discard your current working frequencies and replace them with default ones? ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por otras? ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las de defecto? - + Save Directory Guardar directorio Directorio "Save" - + AzEl Directory Directorio AzEl - + Rig control error Error de control del equipo - + Failed to open connection to rig No se pudo abrir la conexión al equipo Fallo al abrir la conexión al equipo - + Rig failure Fallo en el equipo @@ -2277,13 +2277,13 @@ Error(%2): %3 - - - - - - - + + + + + + + Band Activity Actividad en la banda @@ -2295,12 +2295,12 @@ Error(%2): %3 - - - - - - + + + + + + Rx Frequency Frecuencia de RX @@ -2939,7 +2939,7 @@ No está disponible para los titulares de indicativo no estándar. - + Fox Fox "Fox" @@ -3531,10 +3531,10 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). - - - - + + + + Random Aleatorio @@ -3844,7 +3844,7 @@ predefinida. La lista se puede modificar en "Ajustes" (F2).Dehabilita TX después de enviar 73 - + Runaway Tx watchdog Temporizador de TX @@ -4127,8 +4127,8 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). - - + + Receiving Recibiendo @@ -4143,184 +4143,184 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). - + Audio Source - + Reduce system load - - Excessive dropped samples - %1 (%2 sec) audio frames dropped + + Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 - + Error Scanning ADIF Log Error al escanear el log ADIF - + Scanned ADIF log, %1 worked before records created Log ADIF escaneado, %1 funcionaba antes de la creación de registros Log ADIF escaneado, %1 registros trabajados B4 creados - + Error Loading LotW Users Data Error al cargar datos de usuarios de LotW Error al cargar datos de usuarios de LoTW - + Error Writing WAV File Error al escribir el archivo WAV - + Configurations... Conmfiguraciones... Configuraciones... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message Mensaje - + Error Killing jt9.exe Process Error al matar el proceso jt9.exe - + KillByName return code: %1 Código de retorno de KillByName: %1 KillByName regresa código: %1 - + Error removing "%1" Error al eliminar "%1" - + Click OK to retry Haga clic en Aceptar para volver a intentar Clic en "Aceptar" para reintentar - - + + Improper mode Modo incorrecto - - + + File Open Error Error de apertura del archivo Error al abrir archivo - - - - - + + + + + Cannot open "%1" for append: %2 No puedo abrir "%1" para anexar: %2 No se puedo abrir "%1" para anexar: %2 - + Error saving c2 file Error al guardar el archivo c2 Error al guardar archivo c2 - + Error in Sound Input Error en entrada de sonido - + Error in Sound Output Error en la salida de sonido Error en salida de audio - - - + + + Single-Period Decodes Decodificaciones de un solo período - - - + + + Average Decodes Promedio de decodificaciones - + Change Operator Cambiar operador - + New operator: Operador nuevo: - + Status File Error Error de estado del archivo Error en el archivo de estado - - + + Cannot open "%1" for writing: %2 No se puede abrir "%1" para la escritura: %2 No se puede abrir "%1" para escritura: %2 - + Subprocess Error Error de subproceso - + Subprocess failed with exit code %1 El subproceso falló con el código de salida %1 - - + + Running: %1 %2 Corriendo: %1 @@ -4329,27 +4329,27 @@ Error al cargar datos de usuarios de LotW %2 - + Subprocess error Error de subproceso - + Reference spectrum saved Espectro de referencia guardado - + Invalid data in fmt.all at line %1 Datos no válidos en fmt.all en la línea %1 - + Good Calibration Solution Buena solución de calibración - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -4362,18 +4362,18 @@ Error al cargar datos de usuarios de LotW %9%L10 Hz</pre> - + Delete Calibration Measurements Eliminar mediciones de calibración Borrar mediciones de calibración - + The "fmt.all" file will be renamed as "fmt.bak" El archivo "fmt.all" será renombrado como "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -4385,31 +4385,31 @@ Error al cargar datos de usuarios de LotW "Los algoritmos, el código fuente, la apariencia y comportamiento del WSJT-X y los programas relacionados, y las especificaciones del protocolo para los modos FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 son Copyright (C) 2001-2020 por uno o más de los siguientes autores: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q y otros miembros del Grupo de Desarrollo WSJT ". - + No data read from disk. Wrong file format? No se leen datos del disco. Formato de archivo incorrecto? No se han leido datos del disco. Formato de archivo incorrecto? - + Confirm Delete Confirmar eliminación Confirmar borrado - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? ¿Estas seguro de que deseas eliminar todos los archivos *.wav y *.c2 en "%1"? ¿Esta seguro de que desea borrar todos los archivos *.wav y *.c2 en "%1"? - + Keyboard Shortcuts Atajo de teclado Atajos de teclado - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4459,13 +4459,13 @@ Error al cargar datos de usuarios de LotW - + Special Mouse Commands Comandos especiales del ratón Comandos especiales de ratón - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4501,47 +4501,47 @@ Error al cargar datos de usuarios de LotW - + No more files to open. No hay más archivos para abrir. - + Spotting to PSK Reporter unavailable - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Por favor, elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30m. Elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30M. - + WSPR Guard Band Banda de Guardia WSPR Guarda de banda WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Elige otra frecuencia de dial. WSJT-X no funcionará en modo Fox en las sub-bandas FT8 estándar. Por favor elija otra frecuencia. WSJT-X no operá en modo "Fox" en las sub-bandas de FT8 estándar. - + Fox Mode warning Advertencia del modo Fox Advertencia de modo "Fox" - + Last Tx: %1 Última TX: %1 Últ TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4556,37 +4556,37 @@ Para hacerlo, marca "Actividad operativa especial" y luego "Concurso VHF EU" en "Archivo" - "Ajustes" - "Avanzado". - + Should you switch to ARRL Field Day mode? ¿Cambiar al modo ARRL Field Day? - + Should you switch to RTTY contest mode? ¿Cambiar al modo de concurso RTTY? - - - - + + + + Add to CALL3.TXT Añadir a CALL3.TXT - + Please enter a valid grid locator Por favor, introduce un locator/Grid válido Por favor escriba un locator válido - + Cannot open "%1" for read/write: %2 No se puede abrir "%1" para leer/escribir: %2 No se puede abrir "%1" para lectura/escritura: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 @@ -4595,97 +4595,97 @@ ya está en CALL3.TXT, ¿deseas reemplazarlo? ya está en CALL3.TXT, ¿desea reemplazarlo? - + Warning: DX Call field is empty. Advertencia: el campo de Indicativo DX está vacío. Advertencia: el campo Indicativo DX está vacío. - + Log file error Error de archivo de log Error en el archivo de log - + Cannot open "%1" No puedo abrir "%1" No se puede abrir "%1" - + Error sending log to N1MM Error al enviar el log a N1MM - + Write returned "%1" Escritura devuelta "%1" Escritura devuelve "%1" - + Stations calling DXpedition %1 Estaciones que llaman a DXpedition %1 Estaciones llamando a DXpedition %1 - + Hound Hound "Hound" - + Tx Messages Mensajes de TX Mensajes TX - - - + + + Confirm Erase Confirmar borrado - + Are you sure you want to erase file ALL.TXT? ¿Estás seguro de que quiere borrar el archivo ALL.TXT? - - + + Confirm Reset Confirmar reinicio Confirmar restablecer - + Are you sure you want to erase your contest log? ¿Estás seguro de que quieres borrar el log de tú concurso? ¿Está seguro que quiere borrar el log de concurso? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Hacer esto eliminará todos los registros de QSO para el concurso actual. Se guardarán en el archivo log de ADIF, pero no estarán disponibles para la exportación en tú log de Cabrillo. Hacer esto eliminará todos los QSOs del concurso actual. Se mantendrán en el log ADIF, pero no estarán disponibles para la exportación como log de Cabrillo. - + Cabrillo Log saved Cabrillo Log guardado Log Cabrillo guardado - + Are you sure you want to erase file wsjtx_log.adi? ¿Estás seguro de que quieres borrar el archivo wsjtx_log.adi? ¿Está seguro que quiere borrar el archivo wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? ¿Estás seguro de que quieres borrar la tabla WSPR? ¿Está seguro de que quiere borrar la tabla hash WSPR? @@ -4695,66 +4695,66 @@ ya está en CALL3.TXT, ¿desea reemplazarlo? Advertencia de características VHF - + Tune digital gain Ganancia de sintonización digital Ajustar ganancia digital - + Transmit digital gain Ganancia de transmisión digital Transmitir ganancia digital - + Prefixes Prefijos Prefijos y sufijos tipo 1 - + Network Error Error de red - + Error: %1 UDP server %2:%3 Error: %1 Servidor UDP %2:%3 - + File Error Error en el archivo - + Phase Training Disabled Fase de entrenamiento deshabilitado Entrenamieno de Fase deshabilitado - + Phase Training Enabled Fase de entrenamiento habilitado Entrenamiento de Fase habilitado - + WD:%1m WD:%1m - - + + Log File Error Error de archivo log Error en archivo log - + Are you sure you want to clear the QSO queues? ¿Estás seguro de que quieres borrar las colas QSO? ¿Está seguro que quiere borrar las colas de QSOs? @@ -5130,70 +5130,70 @@ Error(%2): %3 SoundInput - + An error opening the audio input device has occurred. Se produjo un error al abrir el dispositivo de entrada de audio. - + An error occurred during read from the audio input device. Se produjo un error durante la lectura desde el dispositivo de entrada de audio. Se produjo un error durante la lectura del dispositivo de entrada de audio. - + Audio data not being fed to the audio input device fast enough. Los datos de audio no se envían al dispositivo de entrada de audio lo suficientemente rápido. - + Non-recoverable error, audio input device not usable at this time. Error no recuperable, el dispositivo de entrada de audio no se puede utilizar en este momento. Error no recuperable, dispositivo de entrada de audio no disponible en este momento. - + Requested input audio format is not valid. El formato de audio de entrada solicitado no es válido. - + Requested input audio format is not supported on device. El formato de audio de entrada solicitado no es compatible con el dispositivo. El formato de audio de entrada solicitado no está soportado en el dispositivo. - + Failed to initialize audio sink device Error al inicializar el dispositivo receptor de audio - + Idle Inactivo - + Receiving Recibiendo - + Suspended Suspendido - + Interrupted Interrumpido - + Error Error - + Stopped Detenido diff --git a/translations/wsjtx_it.ts b/translations/wsjtx_it.ts index 7aa135f61..47da3d226 100644 --- a/translations/wsjtx_it.ts +++ b/translations/wsjtx_it.ts @@ -422,22 +422,22 @@ &Ripristina - + Serial Port: Porta Seriale: - + Serial port used for CAT control Porta Seriale usata per il controllo CAT - + Network Server: Server di rete: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -452,12 +452,12 @@ Formati: [IPv6-address]: porta - + USB Device: Dispositivo USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -468,8 +468,8 @@ Formato: [VID [: PID [: VENDOR [: PRODOTTI]]]] - - + + Invalid audio input device Dispositivo di input audio non valido @@ -478,147 +478,147 @@ Formato: Dispositivo di uscita audio non valido - + Invalid audio output device - + Invalid PTT method Metodo PTT non valido - + Invalid PTT port Porta PTT non valida - - + + Invalid Contest Exchange Scambio Contest non valido - + You must input a valid ARRL Field Day exchange È necessario inserire uno scambioField Day ARRL valido - + You must input a valid ARRL RTTY Roundup exchange È necessario inserire uno scambio Roundup RTTY ARRL valido - + Reset Decode Highlighting Ripristina l'evidenziazione della decodifica - + Reset all decode highlighting and priorities to default values Ripristina tutti i valori di evidenziazione e priorità della decodifica sui valori predefiniti - + WSJT-X Decoded Text Font Chooser Selezionatore font testo decodificato WSJT-X - + Load Working Frequencies Carica frequenze di lavoro - - - + + + Frequency files (*.qrg);;All files (*.*) File di frequenza (*.qrg);;Tutti i file (*.*) - + Replace Working Frequencies Sostituisci le frequenze di lavoro - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? Sei sicuro di voler scartare le tue attuali frequenze di lavoro e sostituirle con quelle caricate? - + Merge Working Frequencies Unisci le frequenze di lavoro - - - + + + Not a valid frequencies file Non è un file di frequenze valido - + Incorrect file magic Magic file errato - + Version is too new La versione è troppo nuova - + Contents corrupt Contenuto corrotto - + Save Working Frequencies Salva frequenze di lavoro - + Only Save Selected Working Frequencies Salva solo le frequenze di lavoro selezionate - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. Sei sicuro di voler salvare solo le frequenze di lavoro che sono attualmente selezionate? Fai clic su No per salvare tutto. - + Reset Working Frequencies Ripristina frequenze di lavoro - + Are you sure you want to discard your current working frequencies and replace them with default ones? Sei sicuro di voler scartare le tue attuali frequenze di lavoro e sostituirle con quelle predefinite? - + Save Directory Salva il direttorio - + AzEl Directory AzEl Direttorio - + Rig control error Errore di controllo rig - + Failed to open connection to rig Impossibile aprire la connessione al rig - + Rig failure Rig fallito @@ -2080,13 +2080,13 @@ Errore (%2):%3 - - - - - - - + + + + + + + Band Activity Attività di Banda @@ -2098,12 +2098,12 @@ Errore (%2):%3 - - - - - - + + + + + + Rx Frequency Frequenza Rx @@ -2586,7 +2586,7 @@ Non disponibile per i possessori di nominativi non standard. - + Fox Fox @@ -3127,10 +3127,10 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). - - - - + + + + Random Casuale @@ -3536,7 +3536,7 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). Tx disabilitato dopo l'invio 73 - + Runaway Tx watchdog Watchdog Tx sfuggito @@ -3804,8 +3804,8 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). - - + + Receiving Ricevente @@ -3820,199 +3820,199 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). - + Audio Source - + Reduce system load - - Excessive dropped samples - %1 (%2 sec) audio frames dropped + + Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 - + Error Scanning ADIF Log Errore durante la scansione del registro ADIF - + Scanned ADIF log, %1 worked before records created Log ADIF scansionato,%1 ha funzionato prima della creazione dei record - + Error Loading LotW Users Data Errore durante il caricamento dei dati degli utenti di LotW - + Error Writing WAV File Errore durante la scrittura del file WAV - + Configurations... Configurazioni... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message Messaggio - + Error Killing jt9.exe Process Errore durante l'uccisione del processo jt9.exe - + KillByName return code: %1 Codice di ritorno KillByName:%1 - + Error removing "%1" Errore durante la rimozione di "%1" - + Click OK to retry Fai clic su OK per riprovare - - + + Improper mode Modalità impropria - - + + File Open Error Errore apertura file - - - - - + + + + + Cannot open "%1" for append: %2 Impossibile aprire "%1" per aggiungere:%2 - + Error saving c2 file Errore salvataggio file c2 - + Error in Sound Input Errore nell'ingresso audio - + Error in Sound Output Errore nell'uscita audio - - - + + + Single-Period Decodes Decodifiche a periodo singolo - - - + + + Average Decodes Media Decodifiche - + Change Operator Cambio Operatore - + New operator: Nuovo operatore: - + Status File Error Errore del file di stato - - + + Cannot open "%1" for writing: %2 Impossibile aprire "%1" per la scrittura:%2 - + Subprocess Error Errore sottoprocesso - + Subprocess failed with exit code %1 Il sottoprocesso non è riuscito con il codice di uscita%1 - - + + Running: %1 %2 In esecuzione: %1 %2 - + Subprocess error Errore sottoprocesso - + Reference spectrum saved Spettro di riferimento salvato - + Invalid data in fmt.all at line %1 Dati non validi in fmt.all alla riga%1 - + Good Calibration Solution Buona soluzione di calibrazione - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -4025,17 +4025,17 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Elimina misure di calibrazione - + The "fmt.all" file will be renamed as "fmt.bak" Il file "fmt.all" verrà rinominato come "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -4044,27 +4044,27 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). "Gli algoritmi, il codice sorgente, l'aspetto di WSJT-X e dei relativi programmi e le specifiche del protocollo per le modalità FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 sono Copyright (C) 2001-2020 di uno o più dei seguenti autori: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q e altri membri del WSJT Development Group. " - + No data read from disk. Wrong file format? Nessun dato letto dal disco. Formato file errato? - + Confirm Delete Conferma Eliminazione - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Sei sicuro di voler eliminare tutti i file * .wav e * .c2 in "%1"? - + Keyboard Shortcuts Scorciatoie da tastiera - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4114,12 +4114,12 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). - + Special Mouse Commands Comandi speciali mouse - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4155,42 +4155,42 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). - + No more files to open. Niente più file da aprire. - + Spotting to PSK Reporter unavailable - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Scegli un'altra frequenza Tx. WSJT-X non trasmetterà consapevolmente un'altra modalità nella sottobanda WSPR a 30 m. - + WSPR Guard Band Banda di guardia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Scegli un'altra frequenza di composizione. WSJT-X non funzionerà in modalità Fox nelle sottobande FT8 standard. - + Fox Mode warning Avviso modalità Fox - + Last Tx: %1 Ultimo Tx:%1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4201,121 +4201,121 @@ Per fare ciò, selezionare "Attività operativa speciale" e "Contest VHF EU" sulle impostazioni | Scheda Avanzate. - + Should you switch to ARRL Field Day mode? Dovresti passare alla modalità Field Day di ARRL? - + Should you switch to RTTY contest mode? Dovresti passare alla modalità contest RTTY? - - - - + + + + Add to CALL3.TXT Aggiungi a CALL3.TXT - + Please enter a valid grid locator Inserisci un localizzatore di griglia valido - + Cannot open "%1" for read/write: %2 Impossibile aprire "%1" per lettura / scrittura:%2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 è già in CALL3.TXT, desideri sostituirlo? - + Warning: DX Call field is empty. Avviso: il campo Chiamata DX è vuoto. - + Log file error Errore nel file di registro - + Cannot open "%1" Impossibile aprire "%1" - + Error sending log to N1MM Errore durante l'invio del Log a N1MM - + Write returned "%1" Scrivi ha restituito "%1" - + Stations calling DXpedition %1 Stazioni che chiamano la DXpedition %1 - + Hound (Hound=Cane da caccia) Hound - + Tx Messages Messaggi Tx - - - + + + Confirm Erase Conferma Cancella - + Are you sure you want to erase file ALL.TXT? Sei sicuro di voler cancellare il file ALL.TXT? - - + + Confirm Reset Conferma Ripristina - + Are you sure you want to erase your contest log? Sei sicuro di voler cancellare il tuo Log del contest? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. In questo modo verranno rimossi tutti i record QSO per il contest corrente. Saranno conservati nel file di registro ADIF ma non saranno disponibili per l'esportazione nel registro Cabrillo. - + Cabrillo Log saved Log Cabrillo salvato - + Are you sure you want to erase file wsjtx_log.adi? Sei sicuro di voler cancellare il file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? Sei sicuro di voler cancellare la tabella hash WSPR? @@ -4324,60 +4324,60 @@ is already in CALL3.TXT, do you wish to replace it? VHF presenta un avviso - + Tune digital gain Ottimizza il guadagno digitale - + Transmit digital gain Trasmetti Guadagno digitale - + Prefixes Prefissi - + Network Error Errore di Rete - + Error: %1 UDP server %2:%3 Errore:%1 Server UDP%2:%3 - + File Error Errore File - + Phase Training Disabled Fase di Allenamento Disabilitato - + Phase Training Enabled Fase di allenamento abilitato - + WD:%1m WD:%1m - - + + Log File Error Errore file di Log - + Are you sure you want to clear the QSO queues? Sei sicuro di voler cancellare le code QSO? @@ -4724,67 +4724,67 @@ Errore (%2):%3 SoundInput - + An error opening the audio input device has occurred. Si è verificato un errore durante l'apertura del dispositivo di input audio. - + An error occurred during read from the audio input device. Si è verificato un errore durante la lettura dal dispositivo di ingresso audio. - + Audio data not being fed to the audio input device fast enough. I dati audio non vengono inviati al dispositivo di input audio abbastanza velocemente. - + Non-recoverable error, audio input device not usable at this time. Errore non recuperabile, dispositivo di input audio non utilizzabile in questo momento. - + Requested input audio format is not valid. Il formato audio di input richiesto non è valido. - + Requested input audio format is not supported on device. Il formato audio di input richiesto non è supportato sul dispositivo. - + Failed to initialize audio sink device Impossibile inizializzare il dispositivo sink audio - + Idle Inattivo - + Receiving Ricevente - + Suspended Sospeso - + Interrupted Interrotto - + Error Errore - + Stopped Fermato diff --git a/translations/wsjtx_ja.ts b/translations/wsjtx_ja.ts index 643a3e433..33e3c4528 100644 --- a/translations/wsjtx_ja.ts +++ b/translations/wsjtx_ja.ts @@ -421,22 +421,22 @@ リセット(&R) - + Serial Port: シリアルポート: - + Serial port used for CAT control CAT制御用シリアルポート - + Network Server: ネットワークサーバ: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -451,12 +451,12 @@ Formats: [IPv6-アドレス]:ポート番号 - + USB Device: USBデバイス: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -467,8 +467,8 @@ Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - - + + Invalid audio input device 無効なオーディオ入力デバイス @@ -477,147 +477,147 @@ Format: 無効なオーディオ出力デバイス - + Invalid audio output device 無効なオーディオ出力デバイス - + Invalid PTT method 無効なPTT方式 - + Invalid PTT port 無効なPTT用ポート - - + + Invalid Contest Exchange 無効なコンテストナンバー - + You must input a valid ARRL Field Day exchange 正しいARRLフィールドデーコンテストナンバーを入力しなければなりません - + You must input a valid ARRL RTTY Roundup exchange 正しいARRL RTTY ラウンドアップのコンテストナンバーを入力しなければなりません - + Reset Decode Highlighting デコードハイライトをリセット - + Reset all decode highlighting and priorities to default values すべてのハイライトと優先順位設定をデフォルトへ戻す - + WSJT-X Decoded Text Font Chooser WSJT-Xのデコード出力用フォント選択 - + Load Working Frequencies 使用周波数を読み込み - - - + + + Frequency files (*.qrg);;All files (*.*) 周波数ファイル (*.qrg);;全ファイル (*.*) - + Replace Working Frequencies 使用周波数を置き換え - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? 本当に現在の周波数を読み込んだ周波数で置き換えてもいいですか? - + Merge Working Frequencies 使用周波数を追加併合 - - - + + + Not a valid frequencies file 正しい周波数ファイルではない - + Incorrect file magic 無効なファイルマジック - + Version is too new バージョンが新しすぎます - + Contents corrupt 中身が壊れています - + Save Working Frequencies 使用周波数を保存 - + Only Save Selected Working Frequencies 選択した使用周波数のみ保存 - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. 選択した使用周波数だけを保存してもいいですか。全部を保存したいときはNoをクリックしてください。 - + Reset Working Frequencies 使用周波数をリセット - + Are you sure you want to discard your current working frequencies and replace them with default ones? 本当に現在の使用周波数を破棄してデフォルト周波数と置き換えてもよいですか? - + Save Directory フォルダーを保存 - + AzEl Directory AzElフォルダー - + Rig control error 無線機コントロールエラー - + Failed to open connection to rig 無線機へ接続できません - + Rig failure 無線機エラー @@ -2077,13 +2077,13 @@ Error(%2): %3 - - - - - - - + + + + + + + Band Activity バンド状況 @@ -2095,12 +2095,12 @@ Error(%2): %3 - - - - - - + + + + + + Rx Frequency 受信周波数 @@ -2583,7 +2583,7 @@ Not available to nonstandard callsign holders. - + Fox Fox @@ -3111,10 +3111,10 @@ ENTERを押してテキストを登録リストに追加. - - - - + + + + Random ランダム @@ -3503,7 +3503,7 @@ ENTERを押してテキストを登録リストに追加. 73を送った後送信禁止 - + Runaway Tx watchdog Txウオッチドッグ発令 @@ -3767,8 +3767,8 @@ ENTERを押してテキストを登録リストに追加. - - + + Receiving 受信中 @@ -3783,199 +3783,203 @@ ENTERを押してテキストを登録リストに追加. %1個 (%2 秒)のオーディオフレームが欠落 - + Audio Source オーディオソース - + Reduce system load システム負荷軽減 - Excessive dropped samples - %1 (%2 sec) audio frames dropped - サンプル大量欠落 - %1個 (%2秒)のオーディオフレームが欠落 + サンプル大量欠落 - %1個 (%2秒)のオーディオフレームが欠落 - + + Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 + + + + Error Scanning ADIF Log ADIFログスキャンエラー - + Scanned ADIF log, %1 worked before records created ADIFログ検索. %1交信済み記録作成しました - + Error Loading LotW Users Data LotWユーザデータをロードできません - + Error Writing WAV File WAVファイルを書き込みできません - + Configurations... コンフィグレーション... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message メッセージ - + Error Killing jt9.exe Process jt9.exeプロセスを終了できません - + KillByName return code: %1 KillByNameリターンコード: %1 - + Error removing "%1" "%1"を削除できません - + Click OK to retry OKを押して再試行 - - + + Improper mode 不適切なモード - - + + File Open Error ファイルオープンエラー - - - - - + + + + + Cannot open "%1" for append: %2 "%2"を追加する"%1"が開けません - + Error saving c2 file c2ファイルを保存できません - + Error in Sound Input サウンド入力にエラー発生 - + Error in Sound Output サウンド出力にエラー発生 - - - + + + Single-Period Decodes シングルパスデコード - - - + + + Average Decodes 平均デコード - + Change Operator オペレータ交代 - + New operator: 新オペレータ: - + Status File Error ステータスファイルエラー - - + + Cannot open "%1" for writing: %2 %2を書き込むための"%1"が開けません - + Subprocess Error サブプロセスエラー - + Subprocess failed with exit code %1 サブプロセスエラー 終了コード %1 - - + + Running: %1 %2 実行中: %1 %2 - + Subprocess error サブプロセスエラー - + Reference spectrum saved 参照用スペクトラムを保存しました - + Invalid data in fmt.all at line %1 fmt.allの%1行目に無効なデータ - + Good Calibration Solution 較正良好 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3984,44 +3988,44 @@ ENTERを押してテキストを登録リストに追加. - + Delete Calibration Measurements 較正の測定結果を削除 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all"は"fmt.bak"に名前が変わります - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? ディスクからデータが読めません.フォーマットが合っていますか? - + Confirm Delete 削除確認 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? "%1"のすべての*.wavと*.c2ファイルを削除していいですか? - + Keyboard Shortcuts キーボードショートカット - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4115,12 +4119,12 @@ ENTERを押してテキストを登録リストに追加. </table> - + Special Mouse Commands 特別なマウス操作 - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4186,42 +4190,42 @@ ENTERを押してテキストを登録リストに追加. </table> - + No more files to open. これ以上開くファイルがありません. - + Spotting to PSK Reporter unavailable 現在PSK Reporterにスポットできません - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 他の送信周波数を使ってください. WSJT-Xは30mバンドのWSPRサブバンド中の他のモードを受信せずに送信してしまいます. - + WSPR Guard Band WSPRガードバンド - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 他のダイヤル周波数を使ってください. WSJT-XはFT8の標準サブバンドでFoxモードを使えません。 - + Fox Mode warning Foxモード警告 - + Last Tx: %1 最終送信: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4231,120 +4235,120 @@ To do so, check 'Special operating activity' and 設定|詳細タブで設定変更してください. - + Should you switch to ARRL Field Day mode? ARRLフィールドデーモードに切り替えますか? - + Should you switch to RTTY contest mode? RTTYコンテストモードに切り替えますか? - - - - + + + + Add to CALL3.TXT CALL3.TXTへ追加 - + Please enter a valid grid locator 有効なグリッドロケータを入力してください - + Cannot open "%1" for read/write: %2 %2を読み書きするための"%1"が開けません - + %1 is already in CALL3.TXT, do you wish to replace it? %1 がすでにCALL3.TXTにセットされています。置き換えますか? - + Warning: DX Call field is empty. 警告 DXコールが空白です. - + Log file error ログファイルエラー - + Cannot open "%1" "%1"を開けません - + Error sending log to N1MM N1MMへログを送れません - + Write returned "%1" 応答"%1"を書き込み - + Stations calling DXpedition %1 DXペディション %1を呼ぶ局 - + Hound Hound - + Tx Messages 送信メッセージ - - - + + + Confirm Erase 消去確認 - + Are you sure you want to erase file ALL.TXT? ALL.TXTファイルを消去してよいですか? - - + + Confirm Reset リセット確認 - + Are you sure you want to erase your contest log? コンテストログを消去していいですか? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 現在のコンテストのQSO記録をすべて消去します。ADIFログには記録されますがCabrilloログにエクスポートすることはできません. - + Cabrillo Log saved Cabrilloログ保存しました - + Are you sure you want to erase file wsjtx_log.adi? wsjtx_log.adiを消してもよいですか? - + Are you sure you want to erase the WSPR hashtable? WSPRのハッシュテーブルを消してもよいですか? @@ -4353,60 +4357,60 @@ is already in CALL3.TXT, do you wish to replace it? VHF機能警告 - + Tune digital gain チューンのデジタルゲイン - + Transmit digital gain 送信デジタルゲイン - + Prefixes プリフィックス - + Network Error ネットワークエラー - + Error: %1 UDP server %2:%3 エラー %1 UDPサーバー %2:%3 - + File Error ファイルエラー - + Phase Training Disabled 位相調整オフ - + Phase Training Enabled 位相調整オン - + WD:%1m WD:%1m - - + + Log File Error ログファイルエラー - + Are you sure you want to clear the QSO queues? QSO待ち行列をクリアしてもいいですか? @@ -4753,67 +4757,67 @@ Error(%2): %3 SoundInput - + An error opening the audio input device has occurred. オーディオ入力デバイスが開けません. - + An error occurred during read from the audio input device. オーディオ入力デバイスから読み込みエラー発生. - + Audio data not being fed to the audio input device fast enough. オーディオ入力デバイスにオーディオデータが入ってくる速度が遅すぎます. - + Non-recoverable error, audio input device not usable at this time. 回復不能エラー. 現在オーディオ入力デバイスが使えません. - + Requested input audio format is not valid. このオーディオフォーマットは無効です. - + Requested input audio format is not supported on device. このオーディオ入力フォーマットはオーディオ入力デバイスでサポートされていません. - + Failed to initialize audio sink device オーディオ出力デバイス初期化エラー - + Idle 待機中 - + Receiving 受信中 - + Suspended サスペンド中 - + Interrupted 割り込まれました - + Error エラー - + Stopped 停止中 diff --git a/translations/wsjtx_zh.ts b/translations/wsjtx_zh.ts index 3d5b8dd6f..3e3272c4d 100644 --- a/translations/wsjtx_zh.ts +++ b/translations/wsjtx_zh.ts @@ -421,22 +421,22 @@ 重置(&R) - + Serial Port: 串行端口: - + Serial port used for CAT control 用于CAT控制的串行端口 - + Network Server: 网络服务器: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -451,12 +451,12 @@ Formats: [IPv6-地址]:端口 - + USB Device: USB 设备: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -467,8 +467,8 @@ Format: [VID[:PID[:供应商[:产品]]]] - - + + Invalid audio input device 无效的音频输入设备 @@ -477,147 +477,147 @@ Format: 无效的音频输出设备 - + Invalid audio output device - + Invalid PTT method 无效的PTT方法 - + Invalid PTT port 无效的PTT端口 - - + + Invalid Contest Exchange 无效的竞赛交换数据 - + You must input a valid ARRL Field Day exchange 您必须输入有效的 ARRL Field Day交换数据 - + You must input a valid ARRL RTTY Roundup exchange 您必须输入有效的 ARRL RTTY Roundup 交换数据 - + Reset Decode Highlighting 重置解码突出显示 - + Reset all decode highlighting and priorities to default values 将所有解码突出显示和优先级重置为默认值 - + WSJT-X Decoded Text Font Chooser WSJT-X 解码文本字体选择 - + Load Working Frequencies 载入工作频率 - - - + + + Frequency files (*.qrg);;All files (*.*) 频率文件 (*.qrg);;所有文件 (*.*) - + Replace Working Frequencies 替换工作频率 - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? 是否确实要放弃当前工作频率, 并将其替换为加载的频率? - + Merge Working Frequencies 合并工作频率 - - - + + + Not a valid frequencies file 不是有效的频率文件 - + Incorrect file magic 不正确的文件內容 - + Version is too new 版本太新 - + Contents corrupt 内容已损坏 - + Save Working Frequencies 保存工作频率 - + Only Save Selected Working Frequencies 仅保存选定的工作频率 - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. 是否确实要仅保存当前选择的工作频率? 单击 否 可保存所有. - + Reset Working Frequencies 重置工作频率 - + Are you sure you want to discard your current working frequencies and replace them with default ones? 您确定要放弃您当前的工作频率并用默认值频率替换它们吗? - + Save Directory 保存目录 - + AzEl Directory AzEl 目录 - + Rig control error 无线电设备控制错误 - + Failed to open connection to rig 无法打开无线电设备的连接 - + Rig failure 无线电设备故障 @@ -2076,13 +2076,13 @@ Error(%2): %3 - - - - - - - + + + + + + + Band Activity 波段活动 @@ -2094,12 +2094,12 @@ Error(%2): %3 - - - - - - + + + + + + Rx Frequency 接收信息 @@ -2682,7 +2682,7 @@ Not available to nonstandard callsign holders. - + Fox 狐狸 @@ -3221,10 +3221,10 @@ list. The list can be maintained in Settings (F2). - - - - + + + + Random 随机 @@ -3512,7 +3512,7 @@ list. The list can be maintained in Settings (F2). 发送 73 后停止发射 - + Runaway Tx watchdog 运行发射监管计时器 @@ -3772,8 +3772,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving 接收 @@ -3788,199 +3788,194 @@ list. The list can be maintained in Settings (F2). - + Audio Source - + Reduce system load - - Excessive dropped samples - %1 (%2 sec) audio frames dropped - - - - + Error Scanning ADIF Log 扫描 ADIF 日志错误 - + Scanned ADIF log, %1 worked before records created 扫描 ADIF 日志, %1 创建曾经通联记录 - + Error Loading LotW Users Data 加载 LotW 用户数据错误 - + Error Writing WAV File 写入 WAV 文件时错误 - + Configurations... 配置文件... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message 信息 - + Error Killing jt9.exe Process 错误终止 jt9.exe 进程 - + KillByName return code: %1 按名称终止返回代码: %1 - + Error removing "%1" 删除时出错误 "%1" - + Click OK to retry 单击 确定 重试 - - + + Improper mode 模式不正确 - - + + File Open Error 文件打开出错误 - - - - - + + + + + Cannot open "%1" for append: %2 无法打开 "%1" 用于附加: %2 - + Error saving c2 file 保存 c2 文件出错误 - + Error in Sound Input 声音输入出错误 - + Error in Sound Output 声音输出错误 - - - + + + Single-Period Decodes 单周期解码 - - - + + + Average Decodes 平均解码 - + Change Operator 改变操作员 - + New operator: 新操作员: - + Status File Error 状态文件错误 - - + + Cannot open "%1" for writing: %2 无法打开 "%1" 用于写入: %2 - + Subprocess Error 子流程出错误 - + Subprocess failed with exit code %1 子流程失败, 退出代码为 %1 - - + + Running: %1 %2 运行: %1 %2 - + Subprocess error 子进程错误 - + Reference spectrum saved 保存参考频谱 - + Invalid data in fmt.all at line %1 在 %1 行中 fmt.all 的无效数据 - + Good Calibration Solution 良好的校准解决方案 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3989,37 +3984,37 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements 删除校准测量值 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all" 文件将重命名为 "fmt.bak" - + No data read from disk. Wrong file format? 没有从磁盘读取数据. 文件格式出错误? - + Confirm Delete 确认删除 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? 是否确实要删除所有 *.wav 和 *.c2 文件在 "%1"? - + Keyboard Shortcuts 键盘快捷键 - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4069,42 +4064,42 @@ list. The list can be maintained in Settings (F2). - + Special Mouse Commands 滑鼠特殊组合 - + No more files to open. 没有要打开的文件. - + Spotting to PSK Reporter unavailable - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 请选择其他发射频率. WSJT-X 不会故意传输另一个模式在 WSPR 30米子波段上. - + WSPR Guard Band WSPR保护波段 - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 请选择其它频率. WSJT-X 不会运行狐狸模式在标准 FT8 波段. - + Fox Mode warning 狐狸模式警告 - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -4113,7 +4108,12 @@ list. The list can be maintained in Settings (F2). "WSJT-X 的算法, 源代码, 外观和感觉及相关程序,和协议规格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版权 (C) 2001-2019 由以下一个或多个作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 开发组的其他成员." - + + Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 + + + + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4149,12 +4149,12 @@ list. The list can be maintained in Settings (F2). - + Last Tx: %1 最后发射: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4165,120 +4165,120 @@ To do so, check 'Special operating activity' and 设置高级选项卡上的 '欧洲 VHF 竞赛'. - + Should you switch to ARRL Field Day mode? 是否应切换到 ARRL Field Day 模式? - + Should you switch to RTTY contest mode? 是否应切换到 RTTY 竞赛模式? - - - - + + + + Add to CALL3.TXT 添加到 CALL3.TXT - + Please enter a valid grid locator 请输入有效的网格定位 - + Cannot open "%1" for read/write: %2 无法打开 "%1" 用于读/写: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 已经在 CALL3.TXT, 你想替换它吗? - + Warning: DX Call field is empty. 警告: DX 呼号字段为空. - + Log file error 日志文件错误 - + Cannot open "%1" 无法打开 "%1" - + Error sending log to N1MM 将日志发送到 N1MM 时发生错误 - + Write returned "%1" 写入返回 "%1" - + Stations calling DXpedition %1 呼叫远征电台 %1 - + Hound 猎犬 - + Tx Messages 发射信息 - - - + + + Confirm Erase 确认擦除 - + Are you sure you want to erase file ALL.TXT? 是否确实要擦除 ALL.TXT 文件? - - + + Confirm Reset 确认重置 - + Are you sure you want to erase your contest log? 是否确实要擦除竞赛日志? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 执行此操作将删除当前竞赛的所有通联记录. 它们将保留在 ADIF 日志文件中, 但无法导出到您的卡布里略日志中. - + Cabrillo Log saved 卡布里略日志已保存 - + Are you sure you want to erase file wsjtx_log.adi? 是否确实要擦除 wsjtx_log.adi 文件? - + Are you sure you want to erase the WSPR hashtable? 是否确实要擦除 WSPR 哈希表? @@ -4287,60 +4287,60 @@ is already in CALL3.TXT, do you wish to replace it? VHF 功能警告 - + Tune digital gain 调谐数码增益 - + Transmit digital gain 传输数码增益 - + Prefixes 前缀 - + Network Error 网络错误 - + Error: %1 UDP server %2:%3 错误: %1 UDP 服务器 %2:%3 - + File Error 文件错误 - + Phase Training Disabled 已禁用阶段训练 - + Phase Training Enabled 已启用阶段训练 - + WD:%1m - - + + Log File Error 日志文件错误 - + Are you sure you want to clear the QSO queues? 是否确实要清除通联队列? @@ -4691,67 +4691,67 @@ Error(%2): %3 SoundInput - + An error opening the audio input device has occurred. 打开音频输入设备时出错误. - + An error occurred during read from the audio input device. 从音频输入设备读取时出错误. - + Audio data not being fed to the audio input device fast enough. 音频数据没有足够提供馈送到音频输入设备. - + Non-recoverable error, audio input device not usable at this time. 不可恢复的出错误, 音频输入设备此时不可用. - + Requested input audio format is not valid. 请求的输入音频格式无效. - + Requested input audio format is not supported on device. 设备不支持请求输入的音频格式. - + Failed to initialize audio sink device 无法初始化音频接收器设备 - + Idle 闲置 - + Receiving 接收 - + Suspended 暂停 - + Interrupted 中断 - + Error 错误 - + Stopped 停止 diff --git a/translations/wsjtx_zh_HK.ts b/translations/wsjtx_zh_HK.ts index 6897d76bd..e3f4e246a 100644 --- a/translations/wsjtx_zh_HK.ts +++ b/translations/wsjtx_zh_HK.ts @@ -421,22 +421,22 @@ 重置(&R) - + Serial Port: 串行端口: - + Serial port used for CAT control 用於CAT控制的串行端口 - + Network Server: 網絡服務器: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -451,12 +451,12 @@ Formats: [IPv6-地址]:端口 - + USB Device: USB設備: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -467,8 +467,8 @@ Format: [VID[:PID[:供應商[:產品]]]] - - + + Invalid audio input device 無效的音頻輸入設備 @@ -477,147 +477,147 @@ Format: 無效的音頻輸出設備 - + Invalid audio output device - + Invalid PTT method 無效的PTT方法 - + Invalid PTT port 無效的PTT端口 - - + + Invalid Contest Exchange 無效的競賽交換數據 - + You must input a valid ARRL Field Day exchange 您必須輸入有效的 ARRL Field Day交換數據 - + You must input a valid ARRL RTTY Roundup exchange 您必須輸入有效的 ARRL RTTY Roundup 交換數據 - + Reset Decode Highlighting 重置解碼突出顯示 - + Reset all decode highlighting and priorities to default values 將所有解碼突出顯示和優先順序重置為預設值 - + WSJT-X Decoded Text Font Chooser WSJT-X 解碼文本字體選擇 - + Load Working Frequencies 載入工作頻率 - - - + + + Frequency files (*.qrg);;All files (*.*) 頻率檔案 (*.qrg);;所有檔案 (*.*) - + Replace Working Frequencies 替換工作頻率 - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? 是否確實要放棄當前工作頻率, 並將其替換為載入的頻率? - + Merge Working Frequencies 合併工作頻率 - - - + + + Not a valid frequencies file 不是有效的頻率檔案 - + Incorrect file magic 不正確的檔案內容 - + Version is too new 版本太新 - + Contents corrupt 內容已損壞 - + Save Working Frequencies 儲存工作頻率 - + Only Save Selected Working Frequencies 只儲存選取的工作頻率 - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. 是否確定要只儲存目前選擇的工作頻率? 按一下 否 可儲存所有. - + Reset Working Frequencies 重置工作頻率 - + Are you sure you want to discard your current working frequencies and replace them with default ones? 您確定要放棄您當前的工作頻率並用默認值頻率替換它們嗎? - + Save Directory 儲存目錄 - + AzEl Directory AzEl 目錄 - + Rig control error 無線電設備控制錯誤 - + Failed to open connection to rig 無法開啟無線電設備的連接 - + Rig failure 無線電設備故障 @@ -2076,13 +2076,13 @@ Error(%2): %3 - - - - - - - + + + + + + + Band Activity 波段活動 @@ -2094,12 +2094,12 @@ Error(%2): %3 - - - - - - + + + + + + Rx Frequency 接收信息 @@ -2682,7 +2682,7 @@ Not available to nonstandard callsign holders. - + Fox 狐狸 @@ -3221,10 +3221,10 @@ list. The list can be maintained in Settings (F2). - - - - + + + + Random 隨機 @@ -3512,7 +3512,7 @@ list. The list can be maintained in Settings (F2). 發送 73 後停止發射 - + Runaway Tx watchdog 運行發射監管計時器 @@ -3772,8 +3772,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving 接收 @@ -3788,199 +3788,194 @@ list. The list can be maintained in Settings (F2). - + Audio Source - + Reduce system load - - Excessive dropped samples - %1 (%2 sec) audio frames dropped - - - - + Error Scanning ADIF Log 掃描 ADIF 紀錄錯誤 - + Scanned ADIF log, %1 worked before records created 掃描 ADIF 紀錄紀錄, %1 建立曾經通聯紀錄 - + Error Loading LotW Users Data 載入 LotW 使用者資料錯誤 - + Error Writing WAV File 寫入 WAV 檔案時錯誤 - + Configurations... 設定檔案... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message 信息 - + Error Killing jt9.exe Process 錯誤終止 jt9.exe 程序 - + KillByName return code: %1 按結束名稱返回代碼: %1 - + Error removing "%1" 刪除時出錯誤 "%1" - + Click OK to retry 單擊 確定 重試 - - + + Improper mode 模式不正確 - - + + File Open Error 檔案開啟出錯誤 - - - - - + + + + + Cannot open "%1" for append: %2 無法開啟 "%1" 用於附加: %2 - + Error saving c2 file 保存c2檔案出錯誤 - + Error in Sound Input 聲音輸入出錯誤 - + Error in Sound Output 聲音輸出錯誤 - - - + + + Single-Period Decodes 單週期解碼 - - - + + + Average Decodes 平均解碼 - + Change Operator 變更操作員 - + New operator: 新操作員: - + Status File Error 狀態檔案錯誤 - - + + Cannot open "%1" for writing: %2 無法開啟 "%1" 用於寫入: %2 - + Subprocess Error 子流程出錯誤 - + Subprocess failed with exit code %1 子流程失敗, 退出代碼為 %1 - - + + Running: %1 %2 運行: %1 %2 - + Subprocess error 子進程出錯誤 - + Reference spectrum saved 儲存參考頻譜 - + Invalid data in fmt.all at line %1 在 %1 行中 fmt.all 的不合法資料 - + Good Calibration Solution 良好的校準解決方案 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3989,37 +3984,37 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements 刪除校準測量值 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all" 檔案將重新命名為 "fmt.bak" - + No data read from disk. Wrong file format? 沒有從磁盤讀取數據. 檔案格式出錯誤? - + Confirm Delete 確認刪除 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? 是否確實要刪除所有 *.wav 和 *.c2 檔案在 "%1"? - + Keyboard Shortcuts 鍵盤快捷鍵 - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4069,42 +4064,42 @@ list. The list can be maintained in Settings (F2). - + Special Mouse Commands 滑鼠特殊組合 - + No more files to open. 沒有要打開的檔. - + Spotting to PSK Reporter unavailable - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 請選擇其他發射頻率. WSJT-X 不會故意傳輸另一個模式在 WSPR 30米子波段上. - + WSPR Guard Band WSPR保護波段 - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 請選擇其他頻率. WSJT-X 不會運行狐狸模式在標準 FT8 波段. - + Fox Mode warning 狐狸模式警告 - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -4113,7 +4108,12 @@ list. The list can be maintained in Settings (F2). "WSJT-X 的演演演算法, 原始碼, 外觀和感覺及相關程式, 和協定規格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版權 (C) 2001-2019 由以下一個或多個作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 開發組的其他成員." - + + Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 + + + + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4149,12 +4149,12 @@ list. The list can be maintained in Settings (F2). - + Last Tx: %1 最後發射: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4165,120 +4165,120 @@ To do so, check 'Special operating activity' and 設置高級選項卡上的 '歐洲 VHF 競賽'. - + Should you switch to ARRL Field Day mode? 是否應切換到 ARRL Field Day 模式? - + Should you switch to RTTY contest mode? 是否應切換到 RTTY 競賽模式? - - - - + + + + Add to CALL3.TXT 添加到 CALL3.TXT - + Please enter a valid grid locator 請輸入有效的網格定位 - + Cannot open "%1" for read/write: %2 無法開啟 "%1" 用於讀/寫: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 已經在 CALL3.TXT, 你想替換它嗎? - + Warning: DX Call field is empty. 警告: DX 呼號欄位為空. - + Log file error 日誌檔案錯誤 - + Cannot open "%1" 無法開啟 "%1" - + Error sending log to N1MM 將日誌傳送到 N1MM 時發生錯誤 - + Write returned "%1" 寫入返回 "%1" - + Stations calling DXpedition %1 呼叫遠征電臺 %1 - + Hound 獵犬 - + Tx Messages 發射信息 - - - + + + Confirm Erase 確認擦除 - + Are you sure you want to erase file ALL.TXT? 是否確實要擦除 ALL.Txt 檔案? - - + + Confirm Reset 確認重置 - + Are you sure you want to erase your contest log? 是否確實要擦除競賽日誌? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 執行此動作將移除目前競賽的所有通聯記錄. 它們將保留在 ADIF 日誌檔案中, 但無法匯出到您的卡布里略日誌中. - + Cabrillo Log saved 卡布里略日誌已儲存 - + Are you sure you want to erase file wsjtx_log.adi? 是否確實要擦除 wsjtx_log.adi 檔案? - + Are you sure you want to erase the WSPR hashtable? 是否確定要擦除 WSPR 哈希表? @@ -4287,60 +4287,60 @@ is already in CALL3.TXT, do you wish to replace it? VHF 功能警告 - + Tune digital gain 調諧數碼增益 - + Transmit digital gain 傳輸數碼增益 - + Prefixes 前綴 - + Network Error 網路錯誤 - + Error: %1 UDP server %2:%3 錯誤: %1 UDP 服務器 %2:%3 - + File Error 檔案錯誤 - + Phase Training Disabled 關閉階段訓練 - + Phase Training Enabled 開啟階段訓練 - + WD:%1m - - + + Log File Error 日誌檔案錯誤 - + Are you sure you want to clear the QSO queues? 是否要清除通聯佇列? @@ -4691,67 +4691,67 @@ Error(%2): %3 SoundInput - + An error opening the audio input device has occurred. 開啟音頻輸入設備時出錯誤. - + An error occurred during read from the audio input device. 從音頻輸入設備讀取時出錯誤. - + Audio data not being fed to the audio input device fast enough. 音頻數據沒有足夠提供饋送到音頻輸入設備. - + Non-recoverable error, audio input device not usable at this time. 不可恢復的出錯誤, 音頻輸入設備此時不可用. - + Requested input audio format is not valid. 請求的輸入音頻格式無效. - + Requested input audio format is not supported on device. 設備不支持請求輸入的音頻格式. - + Failed to initialize audio sink device 無法初始化音頻接收器設備 - + Idle 閑置 - + Receiving 接收 - + Suspended 暫停 - + Interrupted 中斷 - + Error 錯誤 - + Stopped 停止 From 263675cac4db44f6cfe938455d0950cf8390e67a Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 12 Sep 2020 09:00:39 -0400 Subject: [PATCH 469/520] Fix an oddball result with i*2 numbers: abs(-32768)=-32768. --- lib/blanker.f90 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/blanker.f90 b/lib/blanker.f90 index 6dd496f81..65c8f8fe6 100644 --- a/lib/blanker.f90 +++ b/lib/blanker.f90 @@ -8,6 +8,8 @@ subroutine blanker(iwave,nz,ndropmax,npct,c_bigfft) fblank=0.01*npct hist=0 do i=1,nz +! ### NB: if iwave(i)=-32768, abs(iwave(i))=-32768 ### + if(iwave(i).eq.-32768) iwave(i)=-32767 n=abs(iwave(i)) hist(n)=hist(n)+1 enddo From bcdaf395f1695d508b17aa36e5c4924bef09ce1a Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 12 Sep 2020 09:35:32 -0400 Subject: [PATCH 470/520] Must set m_bFastMode=false for FST4. Fixes the reported "Hold Tx frequency" issue. Also, ensure display of WideGraph rather than FastGraph for FST4, FST4W. --- widgets/mainwindow.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index e6342f882..44f4ded65 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5885,6 +5885,10 @@ void MainWindow::on_actionFST4_triggered() m_mode="FST4"; m_modeTx="FST4"; ui->actionFST4->setChecked(true); + m_bFast9=false; + m_bFastMode=false; + m_fastGraph->hide(); + m_wideGraph->show(); m_nsps=6912; //For symspec only m_FFTSize = m_nsps / 2; Q_EMIT FFTSize(m_FFTSize); @@ -5912,6 +5916,10 @@ void MainWindow::on_actionFST4W_triggered() m_mode="FST4W"; m_modeTx="FST4W"; ui->actionFST4W->setChecked(true); + m_bFast9=false; + m_bFastMode=false; + m_fastGraph->hide(); + m_wideGraph->show(); m_nsps=6912; //For symspec only m_FFTSize = m_nsps / 2; Q_EMIT FFTSize(m_FFTSize); From 174893395b3064f934abc69e356c328a9ecd2fd1 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 12 Sep 2020 09:54:13 -0400 Subject: [PATCH 471/520] Ensure sending correct FTol value from GUI to decoder for FST4. --- widgets/mainwindow.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 44f4ded65..871b777c0 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3061,7 +3061,8 @@ void MainWindow::decode() //decode() dec_data.params.ntol=20; dec_data.params.naggressive=0; } - if(m_mode=="FST4W") dec_data.params.ntol=ui->sbFST4W_FTol->value (); + if(m_mode=="FST4") dec_data.params.ntol=ui->sbFtol->value(); + if(m_mode=="FST4W") dec_data.params.ntol=ui->sbFST4W_FTol->value(); if(dec_data.params.nutc < m_nutc0) m_RxLog = 1; //Date and Time to file "ALL.TXT". if(dec_data.params.newdat==1 and !m_diskData) m_nutc0=dec_data.params.nutc; dec_data.params.ntxmode=9; From e096b77bc1aeae248d22e0fd0c3b8a640faf00bf Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 12 Sep 2020 15:58:25 +0100 Subject: [PATCH 472/520] Ensure default FTol spin box range covers all possible values This allows persistence between sessions to work correctly. --- widgets/mainwindow.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 4779fb20b..5ade13659 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -741,7 +741,7 @@ QPushButton[state="ok"] { F Tol - 10 + 1 1000 From a1baaebee90906c22a76c4008c66b324251ba4a4 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 12 Sep 2020 13:46:09 -0400 Subject: [PATCH 473/520] Decoder should reject data with rms < 3.0 over first 15 seconds. --- lib/decoder.f90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 3e5b2573d..0c4da1674 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -55,6 +55,10 @@ subroutine multimode_decoder(ss,id2,params,nfsample) type(counting_ft4_decoder) :: my_ft4 type(counting_fst4_decoder) :: my_fst4 + rms=sqrt(dot_product(float(id2(1:180000)), & + float(id2(1:180000)))/180000.0) + if(rms.lt.3.0) go to 800 + !cast C character arrays to Fortran character strings datetime=transfer(params%datetime, datetime) mycall=transfer(params%mycall,mycall) @@ -216,10 +220,6 @@ subroutine multimode_decoder(ss,id2,params,nfsample) go to 800 endif - rms=sqrt(dot_product(float(id2(60001:61000)), & - float(id2(60001:61000)))/1000.0) - if(rms.lt.2.0) go to 800 - ! Zap data at start that might come from T/R switching transient? nadd=100 k=0 From 39403c25205af7ea44b0635f2bb084a43a88e974 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 13 Sep 2020 09:38:39 -0400 Subject: [PATCH 474/520] Expand the range of allowable values for TxFreq in FST4W. --- widgets/mainwindow.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 871b777c0..25fcee3c7 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5931,6 +5931,8 @@ void MainWindow::on_actionFST4W_triggered() ui->band_hopping_group_box->setChecked(false); ui->band_hopping_group_box->setVisible(false); on_sbTR_FST4W_valueChanged (ui->sbTR_FST4W->value ()); + ui->WSPRfreqSpinBox->setMinimum(100); + ui->WSPRfreqSpinBox->setMaximum(5000); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); m_wideGraph->setPeriod(m_TRperiod,6912); @@ -6438,6 +6440,8 @@ void MainWindow::on_actionWSPR_triggered() setup_status_bar (false); ui->actionWSPR->setChecked(true); VHF_features_enabled(false); + ui->WSPRfreqSpinBox->setMinimum(1400); + ui->WSPRfreqSpinBox->setMaximum(1600); m_wideGraph->setPeriod(m_TRperiod,m_nsps); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); From 617d4eaa7fa541a7ed5780c81900cd96f726228f Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 13 Sep 2020 15:28:10 +0100 Subject: [PATCH 475/520] Updated Chinese and Hong Kong UI translations, tnx to Sze-to, VR2UPU --- translations/wsjtx_zh.ts | 372 +++++++++--------------------------- translations/wsjtx_zh_HK.ts | 372 +++++++++--------------------------- 2 files changed, 178 insertions(+), 566 deletions(-) diff --git a/translations/wsjtx_zh.ts b/translations/wsjtx_zh.ts index 3e3272c4d..363f8e7d4 100644 --- a/translations/wsjtx_zh.ts +++ b/translations/wsjtx_zh.ts @@ -472,14 +472,10 @@ Format: Invalid audio input device 无效的音频输入设备 - - Invalid audio out device - 无效的音频输出设备 - Invalid audio output device - + 无效的音频输出设备 @@ -692,12 +688,7 @@ Format: DX Lab Suite Commander send command failed "%1": %2 - - - - DX Lab Suite Commander failed to send command "%1": %2 - - DX Lab Suite Commander 发送命令失败 "%1": %2 + DX Lab Suite Commander 发送命令失败 "%1": %2 @@ -1081,7 +1072,7 @@ Error: %2 - %3 Equalization Tools - + 均衡工具 @@ -1757,42 +1748,27 @@ Error: %2 - %3 获取配置项目 - - HelpTextWindow - - Help file error - 帮助文件错误 - - - Cannot open "%1" for reading - 无法打开 "%1" 以进行阅读 - - - Error: %1 - 错误: %1 - - IARURegions All - + 全部 Region 1 - + 区域 1 Region 2 - + 区域 2 Region 3 - + 区域 3 @@ -1894,97 +1870,97 @@ Error: %2 - %3 Prop Mode - + 传播模式 Aircraft scatter - + 飞机反射 Aurora-E - + 极光-E Aurora - + 极光 Back scatter - + 背面反射 Echolink - + Earth-moon-earth - + 月球面反射通信 Sporadic E - + 零星 E F2 Reflection - + F2 反射 Field aligned irregularities - + 场对齐不规则性 Internet-assisted - + 互联网辅助 Ionoscatter - + 电离层反射 IRLP - + 互联网电台连接 Meteor scatter - + 流星反射 Non-satellite repeater or transponder - + 非卫星中继器或转发器 Rain scatter - + 雨水反射 Satellite - + 卫星 Trans-equatorial - + 跨赤道 Troposheric ducting - + 对流层管道 @@ -2231,117 +2207,117 @@ Error(%2): %3 1/2 - + 2/2 - + 1/3 - + 2/3 - + 3/3 - + 1/4 - + 2/4 - + 3/4 - + 4/4 - + 1/5 - + 2/5 - + 3/5 - + 4/5 - + 5/5 - + 1/6 - + 2/6 - + 3/6 - + 4/6 - + 5/6 - + 6/6 - + Percentage of minute sequences devoted to transmitting. - + 用于传输的分钟序列的百分比. Prefer Type 1 messages - + 首选类型 1 信息 <html><head/><body><p>Transmit during the next sequence.</p></body></html> - + <html><head/><body><p>在下一个序列中传送.</p></body></html> @@ -3033,25 +3009,17 @@ list. The list can be maintained in Settings (F2). Quick-Start Guide to FST4 and FST4W - + FST4和FST4W快速入门指南 FST4 - + FST4W - - - - Calling CQ - 呼叫 CQ - - - Generate a CQ message - 生成CQ信息 + @@ -3059,59 +3027,11 @@ list. The list can be maintained in Settings (F2). CQ - - Generate message with RRR - 生成RRR信息 - - - Generate message with report - 生成报告信息 - - - dB - 分贝 - - - Answering CQ - 回答 CQ - - - Generate message for replying to a CQ - 生成信息以回答 CQ - Grid 网格 - - Generate message with R+report - 生成 R+ 报告信息 - - - R+dB - R+分贝 - - - Generate message with 73 - 生成73信息 - - - Send this standard (generated) message - 发送此标准(生成)信息 - - - Gen msg - 生成信息 - - - Send this free-text message (max 13 characters) - 发送此自定义文本信息(最多13个字符) - - - Free msg - 自定义文本 - Max dB @@ -3248,10 +3168,6 @@ list. The list can be maintained in Settings (F2). More CQs 更多 CQ - - Percentage of 2-minute sequences devoted to transmitting. - 用于传输的 2 分钟序列的百分比. - @@ -3298,19 +3214,11 @@ list. The list can be maintained in Settings (F2). 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. 6 位定位器会导致发送 2 个不同的信息, 第二个包含完整定位器, 但只有哈希呼号. 其他电台必须解码第一个一次. 然后才能在第二个中解码您的呼叫. 如果此选项将避免两个信息协议. 则选中此选项仅发送 4 位定位器. - - Prefer type 1 messages - 首选类型 1信息 - No own call decodes 没有自己的呼号解码 - - Transmit during the next 2-minute sequence. - 在接下来的2分钟序列中输送. - Tx Next @@ -3324,7 +3232,7 @@ list. The list can be maintained in Settings (F2). NB - + @@ -3371,10 +3279,6 @@ list. The list can be maintained in Settings (F2). Exit 关闭软件 - - Configuration - 配置档 - About WSJT-X @@ -3460,10 +3364,6 @@ list. The list can be maintained in Settings (F2). Deep 深度 - - Monitor OFF at startup - 启动时关闭监听 - Erase ALL.TXT @@ -3474,56 +3374,16 @@ list. The list can be maintained in Settings (F2). Erase wsjtx_log.adi 删除通联日志 wsjtx_log.adi - - Convert mode to RTTY for logging - 将日志记录模式转换为RTTY - - - Log dB reports to Comments - 将 dB 报告记录到注释 - - - Prompt me to log QSO - 提示我记录通联 - - - Blank line between decoding periods - 解码期间之间添加空白行 - - - Clear DX Call and Grid after logging - 日志记录后清除 DX 呼号和网格 - - - Display distance in miles - 显示距离以英里为单位 - - - Double-click on call sets Tx Enable - 双击呼号启用发射 - F7 - - Tx disabled after sending 73 - 发送 73 后停止发射 - Runaway Tx watchdog 运行发射监管计时器 - - Allow multiple instances - 允许多个情况 - - - Tx freq locked to Rx freq - 发射频率锁定到接收频率 - JT65 @@ -3534,14 +3394,6 @@ list. The list can be maintained in Settings (F2). JT9+JT65 - - Tx messages to Rx Frequency window - 发射信息发送到接收信息窗口 - - - Show DXCC entity and worked B4 status - 显示 DXCC 实体和曾经通联状态 - Astronomical data @@ -3687,10 +3539,6 @@ list. The list can be maintained in Settings (F2). Equalization tools ... 均衡工具 ... - - Experimental LF/MF mode - 实验性 LF/MF 模式 - FT8 @@ -3737,19 +3585,11 @@ list. The list can be maintained in Settings (F2). Color highlighting scheme 颜色突显方案 - - Contest Log - 竞赛日志 - Export Cabrillo log ... 导出卡布里略日志 ... - - Quick-Start Guide to WSJT-X 2.0 - WSJT-X 2.0 快速入门指南 - Contest log @@ -3785,17 +3625,17 @@ list. The list can be maintained in Settings (F2). %1 (%2 sec) audio frames dropped - + %1 (%2 秒) 音频帧被丢弃 Audio Source - + 音频源 Reduce system load - + 降低系统负载 @@ -4061,7 +3901,7 @@ list. The list can be maintained in Settings (F2). <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> </table> Keyboard shortcuts help window contents - + @@ -4076,7 +3916,7 @@ list. The list can be maintained in Settings (F2). Spotting to PSK Reporter unavailable - + 无法发送至PSK Reporter @@ -4110,7 +3950,7 @@ list. The list can be maintained in Settings (F2). Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 - + 样品丢失过多 - %1 (%2 sec) 音频帧在周期开始时丢失 %3 @@ -4146,7 +3986,7 @@ list. The list can be maintained in Settings (F2). </tr> </table> Mouse commands help window contents - + @@ -4282,10 +4122,6 @@ is already in CALL3.TXT, do you wish to replace it? Are you sure you want to erase the WSPR hashtable? 是否确实要擦除 WSPR 哈希表? - - VHF features warning - VHF 功能警告 - Tune digital gain @@ -4462,7 +4298,7 @@ UDP 服务器 %2:%3 Network SSL/TLS Errors - + SSL/TLS 网络错误 @@ -4505,10 +4341,6 @@ UDP 服务器 %2:%3 QObject - - Invalid rig name - \ & / not allowed - 无效的无线电设备名称 - \ & / 不允许 - User Defined @@ -4671,11 +4503,7 @@ Error(%2): %3 Check this if you get SSL/TLS errors - - - - Check this is you get SSL/TLS errors - 选择, 当你得到SSL/TLS错误 + 如果您收到SSL/TLS错误, 请选择此项 @@ -4791,7 +4619,7 @@ Error(%2): %3 No audio output device configured. - + 未配置音频输出设备. @@ -5033,12 +4861,12 @@ Error(%2): %3 Hz - 赫兹 + 赫兹 Split - + 异频 @@ -5077,22 +4905,22 @@ Error(%2): %3 Invalid ADIF field %0: %1 - + 无效的ADIF字段 %0: %1 Malformed ADIF field %0: %1 - + 格式不正确的ADIF字段 %0: %1 Invalid ADIF header - + 无效的ADIF标头 Error opening ADIF log file for read: %0 - + 打开ADIF日志文件进行读取时出错: %0 @@ -5292,10 +5120,6 @@ Error(%2): %3 minutes 分钟 - - Enable VHF/UHF/Microwave features - 启用 VHF/UHF/Microwave 功能 - Single decode @@ -5484,7 +5308,7 @@ quiet period when decoding is done. Data bits - + 数据位元 @@ -5514,7 +5338,7 @@ quiet period when decoding is done. Stop bits - + 停止位元 @@ -5837,7 +5661,7 @@ transmitting periods. Days since last upload - + 自上次上传以来的天数 @@ -6089,16 +5913,6 @@ and DX Grid fields when a 73 or free text message is sent. Network Services 网络服务 - - The program can send your station details and all -decoded signals as spots to the http://pskreporter.info web site. -This is used for reverse beacon analysis which is very useful -for assessing propagation and system performance. - 该程序可以发送您的站的详细信息和所有 -解码信号作为点的 http://pskreporter.info 的网站. -这是用于反向信标分析,这是非常有用的 -用于评估传播和系统性能. - Enable &PSK Reporter Spotting @@ -6269,7 +6083,7 @@ Right click for insert and delete options. <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - + <html><head/><body><p>单击以再次扫描wsjtx_log.adi ADIF文件,获取以前工作过的信息</p></body></html> @@ -6284,22 +6098,22 @@ Right click for insert and delete options. Enable VHF and submode features - + 启用甚高频和子模式功能 <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> - + <html><head/><body><p>该程序可以将你的电台详细信息和所有解码信号以网格发送到http://pskreporter.info网站.</p><p>这用于反向信标分析,这对于评估传播和系统性能非常有用.</p></body></html> <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + <html><head/><body><p>如果需要可靠的连接, 请选择此选项</p><p>大多数用户不需要这个, 默认使用UDP, 效率更高. 只有当你有证据表明从你到PSK Reporter的UDP流量丢失时, 才选择这个.</p></body></html> Use TCP/IP connection - + 使用TCP/IP连接 @@ -6359,7 +6173,7 @@ Right click for insert and delete options. URL - + 网址 @@ -6484,22 +6298,22 @@ Right click for insert and delete options. <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> - <html><head/><body><p>ARRL RTTY Roundup 和类似的比赛. 交换是美国的州, 加拿大省或 &quot;DX&quot;.</p></body></html> + <html><head/><body><p>ARRL RTTY 竞赛和类似的竞赛. 交换是美国的州, 加拿大省或 &quot;DX&quot;.</p></body></html> R T T Y Roundup - + R T T Y 竞赛 RTTY Roundup messages - RTTY Roundup 信息 + RTTY 竞赛信息 RTTY Roundup exchange - + RTTY 竞赛交换 @@ -6515,22 +6329,22 @@ Right click for insert and delete options. <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> - <html><head/><body><p>ARRL Field Day 交换: 发射机数量, 类別, 和 ARRL/RAC 部分或 &quot;DX&quot;.</p></body></html> + <html><head/><body><p>ARRL 竞赛日交换: 发射机数量, 类別, 和 ARRL/RAC 部分或 &quot;DX&quot;.</p></body></html> A R R L Field Day - + A R R L 竞赛日 ARRL Field Day - + ARRL 竞赛日 Field Day exchange - + 竞赛日交换 @@ -6550,7 +6364,7 @@ Right click for insert and delete options. WW Digital Contest - + 环球数码竞赛 @@ -6653,14 +6467,6 @@ Right click for insert and delete options. main - - Fatal error - 严重出错误 - - - Unexpected fatal error - 意外的严重出错误 - Another instance may be running @@ -6715,12 +6521,12 @@ Right click for insert and delete options. Sub-process error - + 子进程错误 Failed to close orphaned jt9 process - + 无法关闭遗留的jt9进程 diff --git a/translations/wsjtx_zh_HK.ts b/translations/wsjtx_zh_HK.ts index e3f4e246a..df29d38bf 100644 --- a/translations/wsjtx_zh_HK.ts +++ b/translations/wsjtx_zh_HK.ts @@ -472,14 +472,10 @@ Format: Invalid audio input device 無效的音頻輸入設備 - - Invalid audio out device - 無效的音頻輸出設備 - Invalid audio output device - + 無效的音頻輸出設備 @@ -692,12 +688,7 @@ Format: DX Lab Suite Commander send command failed "%1": %2 - - - - DX Lab Suite Commander failed to send command "%1": %2 - - DX Lab Suite Commander 發送命令失敗 "%1": %2 + DX Lab Suite Commander 發送命令失敗 "%1": %2 @@ -1081,7 +1072,7 @@ Error: %2 - %3 Equalization Tools - + 均衡工具 @@ -1757,42 +1748,27 @@ Error: %2 - %3 獲取配置項目 - - HelpTextWindow - - Help file error - 說明檔案錯誤 - - - Cannot open "%1" for reading - 無法開啟 "%1" 以進行閱讀 - - - Error: %1 - 錯誤: %1 - - IARURegions All - + 全部 Region 1 - + 區域 1 Region 2 - + 區域 2 Region 3 - + 區域 3 @@ -1894,97 +1870,97 @@ Error: %2 - %3 Prop Mode - + 傳播模式 Aircraft scatter - + 飛機反射 Aurora-E - + 極光-E Aurora - + 極光 Back scatter - + 背面反射 Echolink - + Earth-moon-earth - + 月球面反射通信 Sporadic E - + 零星 E F2 Reflection - + F2 反射 Field aligned irregularities - + 場對齊不規則性 Internet-assisted - + 互聯網輔助 Ionoscatter - + 電離層反射 IRLP - + 互聯網電台連接 Meteor scatter - + 流星反射 Non-satellite repeater or transponder - + 非衛星中繼器或轉發器 Rain scatter - + 雨水反射 Satellite - + 卫星 Trans-equatorial - + 跨赤道 Troposheric ducting - + 對流層管道 @@ -2231,117 +2207,117 @@ Error(%2): %3 1/2 - + 2/2 - + 1/3 - + 2/3 - + 3/3 - + 1/4 - + 2/4 - + 3/4 - + 4/4 - + 1/5 - + 2/5 - + 3/5 - + 4/5 - + 5/5 - + 1/6 - + 2/6 - + 3/6 - + 4/6 - + 5/6 - + 6/6 - + Percentage of minute sequences devoted to transmitting. - + 用於傳輸的分鐘序列的百分比. Prefer Type 1 messages - + 首選類型 1 資訊 <html><head/><body><p>Transmit during the next sequence.</p></body></html> - + <html><head/><body><p>在下一個序列中傳送.</p></body></html> @@ -3033,25 +3009,17 @@ list. The list can be maintained in Settings (F2). Quick-Start Guide to FST4 and FST4W - + FST4和FST4W快速入門指南 FST4 - + FST4W - - - - Calling CQ - 呼叫 CQ - - - Generate a CQ message - 產生CQ信息 + @@ -3059,59 +3027,11 @@ list. The list can be maintained in Settings (F2). CQ - - Generate message with RRR - 產生RRR信息 - - - Generate message with report - 產生報告信息 - - - dB - 分貝 - - - Answering CQ - 回答 CQ - - - Generate message for replying to a CQ - 產生信息以回答 CQ - Grid 網格 - - Generate message with R+report - 產生 R+ 報告信息 - - - R+dB - R+分貝 - - - Generate message with 73 - 產生73信息 - - - Send this standard (generated) message - 發送此標准(產生)信息 - - - Gen msg - 產生信息 - - - Send this free-text message (max 13 characters) - 發送此自定義文本信息(最多13個字符) - - - Free msg - 自定義文本 - Max dB @@ -3248,10 +3168,6 @@ list. The list can be maintained in Settings (F2). More CQs 更多 CQ - - Percentage of 2-minute sequences devoted to transmitting. - 用於傳輸的2分鐘序列的百分比. - @@ -3298,19 +3214,11 @@ list. The list can be maintained in Settings (F2). 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. 6 位定位器會導致發送 2 個不同的信息, 第二個包含完整定位器, 但只有哈希呼號,其他電臺必須解碼第一個一次, 然後才能在第二個中解碼您的呼叫. 如果此選項將避免兩個信息協定, 則選中此選項僅發送 4 位定位器. - - Prefer type 1 messages - 首選類型 1信息 - No own call decodes 沒有自己的呼號解碼 - - Transmit during the next 2-minute sequence. - 在接下來的2分鐘序列中輸送. - Tx Next @@ -3324,7 +3232,7 @@ list. The list can be maintained in Settings (F2). NB - + @@ -3371,10 +3279,6 @@ list. The list can be maintained in Settings (F2). Exit 關閉軟件 - - Configuration - 設定檔 - About WSJT-X @@ -3460,10 +3364,6 @@ list. The list can be maintained in Settings (F2). Deep 深度 - - Monitor OFF at startup - 啟動時關閉監聽 - Erase ALL.TXT @@ -3474,56 +3374,16 @@ list. The list can be maintained in Settings (F2). Erase wsjtx_log.adi 刪除通聯日誌 wsjtx_log.adi - - Convert mode to RTTY for logging - 將日誌記錄模式轉換為RTTY - - - Log dB reports to Comments - 將分貝報告記錄到注釋 - - - Prompt me to log QSO - 提示我記錄通聯 - - - Blank line between decoding periods - 解碼期間之間添加空白行 - - - Clear DX Call and Grid after logging - 日誌記錄後清除 DX 呼號和網格 - - - Display distance in miles - 顯示距離以英里為單位 - - - Double-click on call sets Tx Enable - 雙擊呼號啟用發射 - F7 - - Tx disabled after sending 73 - 發送 73 後停止發射 - Runaway Tx watchdog 運行發射監管計時器 - - Allow multiple instances - 允許多個情況 - - - Tx freq locked to Rx freq - 發射頻率鎖定到接收頻率 - JT65 @@ -3534,14 +3394,6 @@ list. The list can be maintained in Settings (F2). JT9+JT65 - - Tx messages to Rx Frequency window - 發射信息發送到接收信息窗口 - - - Show DXCC entity and worked B4 status - 顯示 DXCC 實體和曾經通聯狀態 - Astronomical data @@ -3687,10 +3539,6 @@ list. The list can be maintained in Settings (F2). Equalization tools ... 均衡工具 ... - - Experimental LF/MF mode - 實驗性 LF/MF 模式 - FT8 @@ -3737,19 +3585,11 @@ list. The list can be maintained in Settings (F2). Color highlighting scheme 色彩突顯機制 - - Contest Log - 競賽日誌 - Export Cabrillo log ... 匯出卡布里略日誌 ... - - Quick-Start Guide to WSJT-X 2.0 - WSJT-X 2.0 快速入門指南 - Contest log @@ -3785,17 +3625,17 @@ list. The list can be maintained in Settings (F2). %1 (%2 sec) audio frames dropped - + %1 (%2 秒) 音訊幀被丟棄 Audio Source - + 音訊源 Reduce system load - + 降低系統負載 @@ -4061,7 +3901,7 @@ list. The list can be maintained in Settings (F2). <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> </table> Keyboard shortcuts help window contents - + @@ -4076,7 +3916,7 @@ list. The list can be maintained in Settings (F2). Spotting to PSK Reporter unavailable - + 無法發送至PSK Reporter @@ -4110,7 +3950,7 @@ list. The list can be maintained in Settings (F2). Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 - + 樣品遺失過多 -%1 (%2 sec) 音效的畫面在週期開始時遺失 %3 @@ -4146,7 +3986,7 @@ list. The list can be maintained in Settings (F2). </tr> </table> Mouse commands help window contents - + @@ -4282,10 +4122,6 @@ is already in CALL3.TXT, do you wish to replace it? Are you sure you want to erase the WSPR hashtable? 是否確定要擦除 WSPR 哈希表? - - VHF features warning - VHF 功能警告 - Tune digital gain @@ -4462,7 +4298,7 @@ UDP 服務器 %2:%3 Network SSL/TLS Errors - + SSL/TLS 網路錯誤 @@ -4505,10 +4341,6 @@ UDP 服務器 %2:%3 QObject - - Invalid rig name - \ & / not allowed - 無效的無線電裝置名稱 - \ & / 不允許 - User Defined @@ -4671,11 +4503,7 @@ Error(%2): %3 Check this if you get SSL/TLS errors - - - - Check this is you get SSL/TLS errors - 選擇, 當你得到SSL/TLS錯誤 + 如果您收到SSL/TLS錯誤, 請選擇此項 @@ -4791,7 +4619,7 @@ Error(%2): %3 No audio output device configured. - + 未設定音訊輸出裝置. @@ -5033,12 +4861,12 @@ Error(%2): %3 Hz - 赫茲 + 赫茲 Split - + 異頻 @@ -5077,22 +4905,22 @@ Error(%2): %3 Invalid ADIF field %0: %1 - + 無效的ADIF欄位 %0: %1 Malformed ADIF field %0: %1 - + 格式不正確的ADIF欄位 %0: %1 Invalid ADIF header - + 無效的 ADIF 標頭 Error opening ADIF log file for read: %0 - + 開啟ADIF紀錄檔進行讀取時發生錯誤: %0 @@ -5292,10 +5120,6 @@ Error(%2): %3 minutes 分鐘 - - Enable VHF/UHF/Microwave features - 啟用 VHF/UHF/Microwave 功能 - Single decode @@ -5484,7 +5308,7 @@ quiet period when decoding is done. Data bits - + 數據位元 @@ -5514,7 +5338,7 @@ quiet period when decoding is done. Stop bits - + 停止位元 @@ -5837,7 +5661,7 @@ transmitting periods. Days since last upload - + 自上次上傳以來的天數 @@ -6089,16 +5913,6 @@ and DX Grid fields when a 73 or free text message is sent. Network Services 網絡服務 - - The program can send your station details and all -decoded signals as spots to the http://pskreporter.info web site. -This is used for reverse beacon analysis which is very useful -for assessing propagation and system performance. - 該程序可以發送您的站的詳細信息和所有 -解碼信號作為點的 http://pskreporter.info 的網站. -這是用於反向信標分析,這是非常有用的 -用於評估傳播和系統性能. - Enable &PSK Reporter Spotting @@ -6269,7 +6083,7 @@ Right click for insert and delete options. <html><head/><body><p>Click to scan the wsjtx_log.adi ADIF file again for worked before information</p></body></html> - + <html><head/><body><p>按一下以再次掃描wsjtx_log.adi ADIF檔,獲取以前工作過的資訊</p></body></html> @@ -6284,22 +6098,22 @@ Right click for insert and delete options. Enable VHF and submode features - + 啟用甚高頻和子模式功能 <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> - + <html><head/><body><p>該程式可以將你的電臺詳細資訊和所有解碼信號以網格發送到http://pskreporter.info網站.</p><p>這用於反向信標分析,這對於評估傳播和系統性能非常有用.</p></body></html> <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + <html><head/><body><p>如果需要可靠的連接, 請選擇此選項</p><p>大多數使用者不需要這個, 預設使用UDP, 效率更高. 只有當你有證據表明從你到PSK Reporter的UDP流量丟失時, 才選擇這個.</p></body></html> Use TCP/IP connection - + 使用TCP/IP連接 @@ -6359,7 +6173,7 @@ Right click for insert and delete options. URL - + 網址 @@ -6484,22 +6298,22 @@ Right click for insert and delete options. <html><head/><body><p>ARRL RTTY Roundup and similar contests. Exchange is US state, Canadian province, or &quot;DX&quot;.</p></body></html> - <html><head/><body><p>ARRL RTTY Roundup 和類似的比賽. 交換是美國的州, 加拿大省或 &quot;DX&quot;.</p></body></html> + <html><head/><body><p>ARRL RTTY 競賽和類似的競賽. 交換是美國的州, 加拿大省或 &quot;DX&quot;.</p></body></html> R T T Y Roundup - + R T T Y 競賽 RTTY Roundup messages - RTTY Roundup 信息 + RTTY 競賽信息 RTTY Roundup exchange - + RTTY 競賽交換 @@ -6515,22 +6329,22 @@ Right click for insert and delete options. <html><head/><body><p>ARRL Field Day exchange: number of transmitters, Class, and ARRL/RAC section or &quot;DX&quot;.</p></body></html> - <html><head/><body><p>ARRL Field Day 交換: 發射機數量, 類別別, 和 ARRL/RAC 部份或 &quot;DX&quot;.</p></body></html> + <html><head/><body><p>ARRL 競賽日交換: 發射機數量, 類別別, 和 ARRL/RAC 部份或 &quot;DX&quot;.</p></body></html> A R R L Field Day - + A R R L 競賽日 ARRL Field Day - + ARRL 競賽日 Field Day exchange - + 競賽日交換 @@ -6550,7 +6364,7 @@ Right click for insert and delete options. WW Digital Contest - + 世界數字競賽 @@ -6653,14 +6467,6 @@ Right click for insert and delete options. main - - Fatal error - 嚴重出錯誤 - - - Unexpected fatal error - 意外的嚴重出錯誤 - Another instance may be running @@ -6715,12 +6521,12 @@ Right click for insert and delete options. Sub-process error - + 子進程錯誤 Failed to close orphaned jt9 process - + 無法關閉遺留的jt9進程 From 5014c62bfa4a7a80dd491f1bc9efbdb626d7d879 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 13 Sep 2020 17:12:11 +0100 Subject: [PATCH 476/520] Notify user when enumerating audio devices --- Configuration.cpp | 1 + Configuration.hpp | 6 ++++++ widgets/mainwindow.cpp | 3 +++ 3 files changed, 10 insertions(+) diff --git a/Configuration.cpp b/Configuration.cpp index b414511db..91f9b1926 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -2806,6 +2806,7 @@ void Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * com combo_box->clear (); + Q_EMIT self_->enumerating_audio_devices (); int current_index = -1; auto const& devices = QAudioDeviceInfo::availableDevices (mode); Q_FOREACH (auto const& p, devices) diff --git a/Configuration.hpp b/Configuration.hpp index 882a78629..45fafe59b 100644 --- a/Configuration.hpp +++ b/Configuration.hpp @@ -293,6 +293,12 @@ public: // the fault condition has been rectified or is transient. Q_SIGNAL void transceiver_failure (QString const& reason) const; + // signal announces audio devices are being enumerated + // + // As this can take some time, particularly on Linux, consumers + // might like to notify the user. + Q_SIGNAL void enumerating_audio_devices (); + private: class impl; pimpl m_; diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 25fcee3c7..8ccf7bdb8 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -781,6 +781,9 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect (&m_config, &Configuration::udp_server_changed, m_messageClient, &MessageClient::set_server); connect (&m_config, &Configuration::udp_server_port_changed, m_messageClient, &MessageClient::set_server_port); connect (&m_config, &Configuration::accept_udp_requests_changed, m_messageClient, &MessageClient::enable); + connect (&m_config, &Configuration::enumerating_audio_devices, [this] () { + showStatusMessage (tr ("Enumerating audio devices")); + }); // set up configurations menu connect (m_multi_settings, &MultiSettings::configurationNameChanged, [this] (QString const& name) { From 8f554321c84ce101b06befd263eab2b4904c8e89 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 14 Sep 2020 09:55:33 -0400 Subject: [PATCH 477/520] Make sure that Tx audio frequency in FST4 mode comes from FST4 TxFreq spinner, not the WSPR/FST4W spinner. --- widgets/mainwindow.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 25fcee3c7..7eb32dafe 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -7159,6 +7159,7 @@ void MainWindow::transmit (double snr) int hmod=1; //No FST4/W submodes double dfreq=hmod*12000.0/nsps; double f0=ui->WSPRfreqSpinBox->value() - m_XIT; + if(m_mode=="FST4") f0=ui->TxFreqSpinBox->value() - m_XIT; if(!m_tune) f0 += + 1.5*dfreq; Q_EMIT sendMessage (m_mode, NUM_FST4_SYMBOLS,double(nsps),f0,toneSpacing, m_soundOutput,m_config.audio_output_channel(), From 98d52e35acd035070b91c3c4b6c2ca4e32408bb1 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 14 Sep 2020 09:00:30 -0500 Subject: [PATCH 478/520] Speed up FST4 decoding. --- lib/fst4_decode.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 6237ba4a7..848559530 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -392,7 +392,7 @@ contains if(iwspr.eq.0) then maxosd=2 Keff=91 - norder=4 + norder=3 call timer('d240_101',0) call decode240_101(llr,Keff,maxosd,norder,apmask,message101, & cw,ntype,nharderrors,dmin) From ca0804450baf56378346d65727dfa5447d86c172 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 14 Sep 2020 09:07:45 -0500 Subject: [PATCH 479/520] Remove some redundant code. --- lib/fst4_decode.f90 | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 848559530..c90149298 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -214,15 +214,12 @@ contains if(ndepth.eq.3) then nblock=4 jittermax=2 - norder=3 elseif(ndepth.eq.2) then nblock=3 jittermax=0 - norder=3 elseif(ndepth.eq.1) then nblock=1 jittermax=0 - norder=3 endif ndropmax=1 From f20c45c1679178d744867dd33edff04a87609a2c Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 14 Sep 2020 10:56:54 -0400 Subject: [PATCH 480/520] FST4: Align WideGraph green bar with RxFreq on startup. CTRL-diouble-click on waterfall sets FTol=10 and calls decoder. --- widgets/mainwindow.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 7eb32dafe..0bf7e7610 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -2969,7 +2969,10 @@ void MainWindow::on_DecodeButton_clicked (bool /* checked */) //Decode request void MainWindow::freezeDecode(int n) //freezeDecode() { - if((n%100)==2) on_DecodeButton_clicked (true); + if((n%100)==2) { + if(m_mode=="FST4") ui->sbFtol->setValue(10); + on_DecodeButton_clicked (true); + } } void MainWindow::on_ClrAvgButton_clicked() @@ -5906,6 +5909,7 @@ void MainWindow::on_actionFST4_triggered() m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); m_wideGraph->setPeriod(m_TRperiod,6912); + m_wideGraph->setRxFreq(ui->RxFreqSpinBox->value()); m_wideGraph->setTxFreq(ui->TxFreqSpinBox->value()); switch_mode (Modes::FST4); m_wideGraph->setMode(m_mode); From 1b59d9dc8ceac7af8518f1637cad6ab42b0cf15d Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 14 Sep 2020 12:42:32 -0500 Subject: [PATCH 481/520] Eliminate redundancies from the calculation of sequence correlations. --- lib/fst4/get_fst4_bitmetrics.f90 | 118 ++++++++++++++++++++----------- 1 file changed, 77 insertions(+), 41 deletions(-) diff --git a/lib/fst4/get_fst4_bitmetrics.f90 b/lib/fst4/get_fst4_bitmetrics.f90 index 69a649a04..87255e2ba 100644 --- a/lib/fst4/get_fst4_bitmetrics.f90 +++ b/lib/fst4/get_fst4_bitmetrics.f90 @@ -5,9 +5,9 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual, complex cd(0:NN*nss-1) complex cs(0:3,NN) complex csymb(nss) - complex, allocatable, save :: c1(:,:) ! ideal waveforms, 20 samples per symbol, 4 tones + complex, allocatable, save :: ci(:,:) ! ideal waveforms, 20 samples per symbol, 4 tones complex cp(0:3) ! accumulated phase shift over symbol types 0:3 - complex csum,cterm + complex c1(4,8),c2(16,4),c4(256,2),c8(655356),cterm integer isyncword1(0:7),isyncword2(0:7) integer graymap(0:3) integer ip(1) @@ -25,9 +25,9 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual, data first/.true./,nss0/-1/ save first,one,cp,nss0 - if(nss.ne.nss0 .and. allocated(c1)) deallocate(c1) + if(nss.ne.nss0 .and. allocated(ci)) deallocate(ci) if(first .or. nss.ne.nss0) then - allocate(c1(nss,0:3)) + allocate(ci(nss,0:3)) one=.false. do i=0,65535 do j=0,15 @@ -40,7 +40,7 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual, dp=(itone-1.5)*dphi phi=0.0 do j=1,nss - c1(j,itone)=cmplx(cos(phi),sin(phi)) + ci(j,itone)=cmplx(cos(phi),sin(phi)) phi=mod(phi+dp,twopi) enddo cp(itone)=cmplx(cos(phi),sin(phi)) @@ -52,7 +52,7 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual, i1=(k-1)*NSS csymb=cd(i1:i1+NSS-1) do itone=0,3 - cs(itone,k)=sum(csymb*conjg(c1(:,itone))) + cs(itone,k)=sum(csymb*conjg(ci(:,itone))) enddo s4(0:3,k)=abs(cs(0:3,k))**2 enddo @@ -85,49 +85,85 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual, return endif - call timer('seqcorrs',0) bitmetrics=0.0 - do nseq=1,nmax !Try coherent sequences of 1,2,3,4 or 1,2,4,8 symbols - if(nseq.eq.1) nsym=1 - if(nseq.eq.2) nsym=2 - if(nhicoh.eq.0) then - if(nseq.eq.3) nsym=3 - if(nseq.eq.4) nsym=4 - else - if(nseq.eq.3) nsym=4 - if(nseq.eq.4) nsym=8 - endif - nt=4**nsym - do ks=1,NN-nsym+1,nsym + +! Process the frame in 8-symbol chunks. Use 1-symbol correlations to calculate +! 2-symbol correlations. Then use 2-symbol correlations to calculate 4-symbol +! correlations. Finally, use 4-symbol correlations to calculate 8-symbol corrs. +! This eliminates redundant calculations. + + do k=1,NN,8 + + do m=1,8 ! do 4 1-symbol correlations for each of 8 symbs s2=0 - do i=0,nt-1 - csum=0 -! cterm=1 ! hmod.ne.1 - term=1 - do j=0,nsym-1 - ntone=mod(i/4**(nsym-1-j),4) - csum=csum+cs(graymap(ntone),ks+j)*term - term=-term -! csum=csum+cs(graymap(ntone),ks+j)*cterm ! hmod.ne.1 -! cterm=cterm*conjg(cp(graymap(ntone))) ! hmod.ne.1 - enddo - s2(i)=abs(csum) + do n=1,4 + c1(n,m)=cs(graymap(n-1),k+m-1) + s2(n-1)=abs(c1(n,m)) enddo - ipt=1+(ks-1)*2 - if(nsym.eq.1) ibmax=1 - if(nsym.eq.2) ibmax=3 - if(nsym.eq.3) ibmax=5 - if(nsym.eq.4) ibmax=7 - if(nsym.eq.8) ibmax=15 - do ib=0,ibmax - bm=maxval(s2(0:nt-1),one(0:nt-1,ibmax-ib)) - & - maxval(s2(0:nt-1),.not.one(0:nt-1,ibmax-ib)) + ipt=(k-1)*2+2*(m-1)+1 + do ib=0,1 + bm=maxval(s2(0:3),one(0:3,1-ib)) - & + maxval(s2(0:3),.not.one(0:3,1-ib)) if(ipt+ib.gt.2*NN) cycle - bitmetrics(ipt+ib,nseq)=bm + bitmetrics(ipt+ib,1)=bm enddo enddo + + do m=1,4 ! do 16 2-symbol correlations for each of 4 2-symbol groups + s2=0 + do i=1,4 + do j=1,4 + is=(i-1)*4+j + c2(is,m)=c1(i,2*m-1)-c1(j,2*m) + s2(is-1)=abs(c2(is,m)) + enddo + enddo + ipt=(k-1)*2+4*(m-1)+1 + do ib=0,3 + bm=maxval(s2(0:15),one(0:15,3-ib)) - & + maxval(s2(0:15),.not.one(0:15,3-ib)) + if(ipt+ib.gt.2*NN) cycle + bitmetrics(ipt+ib,2)=bm + enddo + enddo + + do m=1,2 ! do 256 4-symbol corrs for each of 2 4-symbol groups + s2=0 + do i=1,16 + do j=1,16 + is=(i-1)*16+j + c4(is,m)=c2(i,2*m-1)+c2(j,2*m) + s2(is-1)=abs(c4(is,m)) + enddo + enddo + ipt=(k-1)*2+8*(m-1)+1 + do ib=0,7 + bm=maxval(s2(0:255),one(0:255,7-ib)) - & + maxval(s2(0:255),.not.one(0:255,7-ib)) + if(ipt+ib.gt.2*NN) cycle + bitmetrics(ipt+ib,3)=bm + enddo + enddo + + s2=0 ! do 65536 8-symbol correlations for the entire group + do i=1,256 + do j=1,256 + is=(i-1)*256+j + c8(is)=c4(i,1)+c4(j,2) + s2(is-1)=abs(c8(is)) + enddo + enddo + ipt=(k-1)*2+1 + do ib=0,15 + bm=maxval(s2(0:65535),one(0:65535,15-ib)) - & + maxval(s2(0:65535),.not.one(0:65535,15-ib)) + if(ipt+ib.gt.2*NN) cycle + bitmetrics(ipt+ib,4)=bm + enddo + enddo + call timer('seqcorrs',1) hbits=0 From 3886411fadc2458110db5dfca07d35f69fa78f64 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 14 Sep 2020 13:55:30 -0400 Subject: [PATCH 482/520] Two more corrections to mode-switch settings of GUI controls in FST4/FST4W. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 0bf7e7610..1957068f9 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -5910,6 +5910,7 @@ void MainWindow::on_actionFST4_triggered() m_wideGraph->setModeTx(m_modeTx); m_wideGraph->setPeriod(m_TRperiod,6912); m_wideGraph->setRxFreq(ui->RxFreqSpinBox->value()); + m_wideGraph->setTol(ui->sbFtol->value()); m_wideGraph->setTxFreq(ui->TxFreqSpinBox->value()); switch_mode (Modes::FST4); m_wideGraph->setMode(m_mode); @@ -5944,7 +5945,6 @@ void MainWindow::on_actionFST4W_triggered() m_wideGraph->setRxFreq(ui->sbFST4W_RxFreq->value()); m_wideGraph->setTol(ui->sbFST4W_FTol->value()); ui->sbFtol->setValue(100); - ui->RxFreqSpinBox->setValue(1500); switch_mode (Modes::FST4W); statusChanged(); } From b49a90f5301e9e141379857ba63adc8b7ec6ff84 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 14 Sep 2020 13:03:33 -0500 Subject: [PATCH 483/520] Remove a redundant array. --- lib/fst4/get_fst4_bitmetrics.f90 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/fst4/get_fst4_bitmetrics.f90 b/lib/fst4/get_fst4_bitmetrics.f90 index 87255e2ba..181be6f56 100644 --- a/lib/fst4/get_fst4_bitmetrics.f90 +++ b/lib/fst4/get_fst4_bitmetrics.f90 @@ -7,7 +7,7 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual, complex csymb(nss) complex, allocatable, save :: ci(:,:) ! ideal waveforms, 20 samples per symbol, 4 tones complex cp(0:3) ! accumulated phase shift over symbol types 0:3 - complex c1(4,8),c2(16,4),c4(256,2),c8(655356),cterm + complex c1(4,8),c2(16,4),c4(256,2),cterm integer isyncword1(0:7),isyncword2(0:7) integer graymap(0:3) integer ip(1) @@ -150,8 +150,7 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual, do i=1,256 do j=1,256 is=(i-1)*256+j - c8(is)=c4(i,1)+c4(j,2) - s2(is-1)=abs(c8(is)) + s2(is-1)=abs(c4(i,1)+c4(j,2)) enddo enddo ipt=(k-1)*2+1 From 221ede2903d7d8032d043ea69c76174580d8bd1d Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 14 Sep 2020 13:07:07 -0500 Subject: [PATCH 484/520] Remove some unused variables. --- lib/fst4/get_fst4_bitmetrics.f90 | 9 +++------ lib/fst4_decode.f90 | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/lib/fst4/get_fst4_bitmetrics.f90 b/lib/fst4/get_fst4_bitmetrics.f90 index 181be6f56..9d3b0ba83 100644 --- a/lib/fst4/get_fst4_bitmetrics.f90 +++ b/lib/fst4/get_fst4_bitmetrics.f90 @@ -1,4 +1,4 @@ -subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual,badsync) +subroutine get_fst4_bitmetrics(cd,nss,nmax,nhicoh,bitmetrics,s4,nsync_qual,badsync) use timer_module, only: timer include 'fst4_params.f90' @@ -6,12 +6,10 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual, complex cs(0:3,NN) complex csymb(nss) complex, allocatable, save :: ci(:,:) ! ideal waveforms, 20 samples per symbol, 4 tones - complex cp(0:3) ! accumulated phase shift over symbol types 0:3 - complex c1(4,8),c2(16,4),c4(256,2),cterm + complex c1(4,8),c2(16,4),c4(256,2) integer isyncword1(0:7),isyncword2(0:7) integer graymap(0:3) integer ip(1) - integer hmod integer hbits(2*NN) logical one(0:65535,0:15) ! 65536 8-symbol sequences, 16 bits logical first @@ -35,7 +33,7 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual, enddo enddo twopi=8.0*atan(1.0) - dphi=twopi*hmod/nss + dphi=twopi/nss do itone=0,3 dp=(itone-1.5)*dphi phi=0.0 @@ -43,7 +41,6 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual, ci(j,itone)=cmplx(cos(phi),sin(phi)) phi=mod(phi+dp,twopi) enddo - cp(itone)=cmplx(cos(phi),sin(phi)) enddo first=.false. endif diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index c90149298..5d953e0e4 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -316,7 +316,7 @@ contains cframe=c2(is0:is0+160*nss-1) bitmetrics=0 call timer('bitmetrc',0) - call get_fst4_bitmetrics(cframe,nss,hmod,nblock,nhicoh,bitmetrics, & + call get_fst4_bitmetrics(cframe,nss,nblock,nhicoh,bitmetrics, & s4,nsync_qual,badsync) call timer('bitmetrc',1) if(badsync) cycle From abe470b24a9ae75d58fede32e9c8871362ca15b3 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 15 Sep 2020 15:53:14 +0100 Subject: [PATCH 485/520] Fix a typo --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index f7151ce66..3e046173c 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -2874,7 +2874,7 @@ void MainWindow::on_actionKeyboard_shortcuts_triggered() Alt+F4 Exit program F5 Display special mouse commands (Alt: transmit Tx5) F6 Open next file in directory (Alt: toggle "Call 1st") - Shift+F6 Decode all remaining files in directrory + Shift+F6 Decode all remaining files in directory F7 Display Message Averaging window F11 Move Rx frequency down 1 Hz Ctrl+F11 Move identical Rx and Tx frequencies down 1 Hz From c9e3c56c8e5d34d4e116d7d2bcb02d7d7c1c8331 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 15 Sep 2020 16:35:52 +0100 Subject: [PATCH 486/520] =?UTF-8?q?Updated=20Spanish=20l10n,=20tnx=20C?= =?UTF-8?q?=C3=A9dric,=20EA4AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/wsjtx_es.ts | 757 ++++++++++++++++++++++++--------------- 1 file changed, 469 insertions(+), 288 deletions(-) diff --git a/translations/wsjtx_es.ts b/translations/wsjtx_es.ts index da0aaf47e..eb112eeb1 100644 --- a/translations/wsjtx_es.ts +++ b/translations/wsjtx_es.ts @@ -404,81 +404,81 @@ Configuration::impl - - - + + + &Delete &Borrar - - + + &Insert ... &Introducir ... &Agregar... - + Failed to create save directory No se pudo crear el directorio para guardar No se pudo crear el directorio "Save" - + path: "%1% ruta: "%1% - + Failed to create samples directory No se pudo crear el directorio de ejemplos No se pudo crear el directorio "Samples" - + path: "%1" ruta: "%1" - + &Load ... &Carga ... &Cargar ... - + &Save as ... &Guardar como ... &Guardar como ... - + &Merge ... &Fusionar ... &Fusionar ... - + &Reset &Reiniciar - + Serial Port: Puerto Serie: - + Serial port used for CAT control Puerto serie utilizado para el control CAT - + Network Server: Servidor de red: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -499,12 +499,12 @@ Formatos: [dirección IPv6]:port - + USB Device: Dispositivo USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -519,8 +519,8 @@ Formato: [VID[:PID[:VENDOR[:PRODUCT]]]] - - + + Invalid audio input device El dispositivo de entrada de audio no es válido Dispositivo de entrada de audio no válido @@ -531,168 +531,174 @@ Formato: Dispositivo de salida de audio no válido - + Invalid audio output device - + Dispositivo de salida de audio no válido - + Invalid PTT method El método de PTT no es válido Método PTT no válido - + Invalid PTT port El puerto del PTT no es válido Puerto PTT no válido - - + + Invalid Contest Exchange Intercambio de concurso no válido - + You must input a valid ARRL Field Day exchange Debes introducir un intercambio de Field Day del ARRL válido Debe introducir un intercambio válido para el ARRL Field Day - + You must input a valid ARRL RTTY Roundup exchange Debes introducir un intercambio válido de la ARRL RTTY Roundup Debe introducir un intercambio válido para el ARRL RTTY Roundup - + Reset Decode Highlighting Restablecer Resaltado de Decodificación Restablecer resaltado de colores de decodificados - + Reset all decode highlighting and priorities to default values Restablecer todo el resaltado y las prioridades de decodificación a los valores predeterminados Restablecer todo el resaltado de colores y prioridades a los valores predeterminados - + WSJT-X Decoded Text Font Chooser Tipo de texto de pantalla de descodificación WSJT-X Seleccionar un tipo de letra - + Load Working Frequencies Carga las frecuencias de trabajo Cargar las frecuencias de trabajo - - - + + + Frequency files (*.qrg);;All files (*.*) Archivos de frecuencia (*.qrg);;Todos los archivos (*.*) - + Replace Working Frequencies Sustituye las frecuencias de trabajo Sustituir las frecuencias de trabajo - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por las cargadas? ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las cargadas? - + Merge Working Frequencies Combinar las frecuencias de trabajo Combina las frecuencias de trabajo - - - + + + Not a valid frequencies file El archivo de frecuencias no es válido Archivo de frecuencias no válido - + Incorrect file magic Archivo mágico incorrecto - + Version is too new La versión es demasiado nueva - + Contents corrupt contenidos corruptos Contenido corrupto - + Save Working Frequencies Guardar las frecuencias de trabajo - + Only Save Selected Working Frequencies Guarda sólo las frecuencias de trabajo seleccionadas Sólo guarda las frecuencias de trabajo seleccionadas - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. ¿Seguro que quieres guardar sólo las frecuencias de trabajo seleccionadas actualmente? Haz clic en No para guardar todo. ¿Seguro que quiere guardar sólo las frecuencias de trabajo seleccionadas actualmente? Clic en No para guardar todo. - + Reset Working Frequencies Reiniciar las frecuencias de trabajo - + Are you sure you want to discard your current working frequencies and replace them with default ones? ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por otras? ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las de defecto? - + Save Directory Guardar directorio Directorio "Save" - + AzEl Directory Directorio AzEl - + Rig control error Error de control del equipo - + Failed to open connection to rig No se pudo abrir la conexión al equipo Fallo al abrir la conexión al equipo - + Rig failure Fallo en el equipo + + + Not found + audio device missing + + DXLabSuiteCommanderTransceiver @@ -771,7 +777,7 @@ Formato: DX Lab Suite Commander send command failed "%1": %2 - + DX Lab Suite Commander, el comando "enviar" ha fallado "%1": %2 DX Lab Suite Commander failed to send command "%1": %2 @@ -1586,23 +1592,23 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency Agregar frecuencia Añadir frecuencia - + IARU &Region: &Región IARU: - + &Mode: &Modo: - + &Frequency (MHz): &Frecuencia en MHz: &Frecuencia (MHz): @@ -2277,13 +2283,13 @@ Error(%2): %3 - - - - - - - + + + + + + + Band Activity Actividad en la banda @@ -2295,12 +2301,12 @@ Error(%2): %3 - - - - - - + + + + + + Rx Frequency Frecuencia de RX @@ -2318,7 +2324,7 @@ Error(%2): %3 Log &QSO - Guardar &QSO + Guardar QSO (&Q) @@ -2329,7 +2335,7 @@ Error(%2): %3 &Stop - &Detener + Detener (&S) @@ -2340,7 +2346,7 @@ Error(%2): %3 &Monitor - &Monitor + Monitor (&M) @@ -2357,7 +2363,7 @@ Error(%2): %3 &Erase - &Borrar + Borrar (&E) @@ -2391,7 +2397,7 @@ Error(%2): %3 &Decode &Decodificar - &Decodifica + Decodifica (&D) @@ -2408,7 +2414,7 @@ Error(%2): %3 E&nable Tx - &Activar TX + Activar TX (&N) @@ -2419,7 +2425,7 @@ Error(%2): %3 &Halt Tx - &Detener TX + Detener TX (&H) @@ -2436,7 +2442,7 @@ Error(%2): %3 &Tune - &Tono TX + Tono TX (&T) @@ -2446,117 +2452,117 @@ Error(%2): %3 1/2 - 1/2 + 1/2 2/2 - 2/2 + 2/2 1/3 - 1/3 + 1/3 2/3 - 2/3 + 2/3 3/3 - 3/3 + 3/3 1/4 - 1/4 + 1/4 2/4 - 2/4 + 2/4 3/4 - 3/4 + 3/4 4/4 - 4/4 + 4/4 1/5 - 1/5 + 1/5 2/5 - 2/5 + 2/5 3/5 - 3/5 + 3/5 4/5 - 4/5 + 4/5 5/5 - 5/5 + 5/5 1/6 - 1/6 + 1/6 2/6 - 2/6 + 2/6 3/6 - 3/6 + 3/6 4/6 - 4/6 + 4/6 5/6 - 5/6 + 5/6 6/6 - 6/6 + 6/6 Percentage of minute sequences devoted to transmitting. - + Porcentaje de minutos dedicados a transmisión. Prefer Type 1 messages - + Preferir mensajes tipo 1 <html><head/><body><p>Transmit during the next sequence.</p></body></html> - + <html><head/><body><p>Transmitir durante la siguiente secuencia.</p></body></html> @@ -2598,7 +2604,7 @@ Amarillo cuando esta muy bajo. NB - + NB @@ -2624,7 +2630,7 @@ Amarillo cuando esta muy bajo. &Lookup - &Buscar + Buscar @@ -2939,7 +2945,7 @@ No está disponible para los titulares de indicativo no estándar. - + Fox Fox "Fox" @@ -2964,8 +2970,8 @@ No está disponible para los titulares de indicativo no estándar. Best S+P - El mejor S+P - S+P + El mejor S+P + Mejor S+P (&B) @@ -3323,17 +3329,17 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). Quick-Start Guide to FST4 and FST4W - + Guía de inicio rápido a FST4 y FST4W FST4 - + FST4 FST4W - + FST4W Calling CQ @@ -3531,10 +3537,10 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). - - - - + + + + Random Aleatorio @@ -3730,7 +3736,7 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). Shift+F6 Mayúsculas+F6 - Mayúsculas+F6 + Mayúsculas+F6 @@ -3761,7 +3767,7 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). Special mouse commands - Comandos especiales del ratón + Comandos especiales de ratón @@ -3844,9 +3850,9 @@ predefinida. La lista se puede modificar en "Ajustes" (F2).Dehabilita TX después de enviar 73 - + Runaway Tx watchdog - Temporizador de TX + Temporizador de TX Allow multiple instances @@ -4127,8 +4133,8 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). - - + + Receiving Recibiendo @@ -4140,17 +4146,21 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). %1 (%2 sec) audio frames dropped - + %1 (%2 seg) de audio rechazados Audio Source - + Origen del audio Reduce system load - + Reduzca la carga del sistema + + + Excessive dropped samples - %1 (%2 sec) audio frames dropped + Excesiva muestras rechazadas - %1 (%2 seg) de audio rechazados @@ -4181,146 +4191,151 @@ Error al cargar datos de usuarios de LotW Error al escribir el archivo WAV - + + Enumerating audio devices + + + + Configurations... Conmfiguraciones... Configuraciones... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message Mensaje - + Error Killing jt9.exe Process Error al matar el proceso jt9.exe - + KillByName return code: %1 Código de retorno de KillByName: %1 KillByName regresa código: %1 - + Error removing "%1" Error al eliminar "%1" - + Click OK to retry Haga clic en Aceptar para volver a intentar Clic en "Aceptar" para reintentar - - + + Improper mode Modo incorrecto - - + + File Open Error Error de apertura del archivo Error al abrir archivo - - - - - + + + + + Cannot open "%1" for append: %2 No puedo abrir "%1" para anexar: %2 No se puedo abrir "%1" para anexar: %2 - + Error saving c2 file Error al guardar el archivo c2 Error al guardar archivo c2 - + Error in Sound Input Error en entrada de sonido - + Error in Sound Output Error en la salida de sonido Error en salida de audio - - - + + + Single-Period Decodes Decodificaciones de un solo período - - - + + + Average Decodes Promedio de decodificaciones - + Change Operator Cambiar operador - + New operator: - Operador nuevo: + Nuevo operador: - + Status File Error Error de estado del archivo Error en el archivo de estado - - + + Cannot open "%1" for writing: %2 No se puede abrir "%1" para la escritura: %2 No se puede abrir "%1" para escritura: %2 - + Subprocess Error Error de subproceso - + Subprocess failed with exit code %1 El subproceso falló con el código de salida %1 - - + + Running: %1 %2 Corriendo: %1 @@ -4329,27 +4344,27 @@ Error al cargar datos de usuarios de LotW %2 - + Subprocess error Error de subproceso - + Reference spectrum saved Espectro de referencia guardado - + Invalid data in fmt.all at line %1 Datos no válidos en fmt.all en la línea %1 - + Good Calibration Solution Buena solución de calibración - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -4362,18 +4377,18 @@ Error al cargar datos de usuarios de LotW %9%L10 Hz</pre> - + Delete Calibration Measurements Eliminar mediciones de calibración Borrar mediciones de calibración - + The "fmt.all" file will be renamed as "fmt.bak" El archivo "fmt.all" será renombrado como "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -4385,31 +4400,124 @@ Error al cargar datos de usuarios de LotW "Los algoritmos, el código fuente, la apariencia y comportamiento del WSJT-X y los programas relacionados, y las especificaciones del protocolo para los modos FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 son Copyright (C) 2001-2020 por uno o más de los siguientes autores: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q y otros miembros del Grupo de Desarrollo WSJT ". - + No data read from disk. Wrong file format? No se leen datos del disco. Formato de archivo incorrecto? No se han leido datos del disco. Formato de archivo incorrecto? - + Confirm Delete Confirmar eliminación Confirmar borrado - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? ¿Estas seguro de que deseas eliminar todos los archivos *.wav y *.c2 en "%1"? ¿Esta seguro de que desea borrar todos los archivos *.wav y *.c2 en "%1"? - + Keyboard Shortcuts Atajo de teclado Atajos de teclado - + + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> + Keyboard shortcuts help window contents + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Detiene TX, cancela QSO, borra "Indicativo DX"</td></tr> + <tr><td><b>F1 </b></td><td>Manual de usuario en línea (Alt: transmitir TX6)</td></tr> + <tr><td><b>Mayús+F1 </b></td><td>Derechos de Autor</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>Acerca de WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Abrir ventana de ajustes (Alt: transmitir TX2)</td></tr> + <tr><td><b>F3 </b></td><td>Mostrar atajos de teclado (Alt: transmitir TX3)</td></tr> + <tr><td><b>F4 </b></td><td>Borra "Indicativo DX", "Locator DX", mensajes generados 1-4 (Alt: transmitir TX4)</td></tr> + <tr><td><b>Alt+F4 </b></td><td>Cerrar el programa</td></tr> + <tr><td><b>F5 </b></td><td>Mostrar los comandos especiales de ratón (Alt: transmitir TX5)</td></tr> + <tr><td><b>F6 </b></td><td>Abrir siguiente archivo en el directorio (Alt: alterna "1er decodificado")</td></tr> + <tr><td><b>Mayús+F6 </b></td><td>Decodifica todos los archivos restantes en el directorio</td></tr> + <tr><td><b>F7 </b></td><td>Muestra ventana de promedio de mensajes</td></tr> + <tr><td><b>F11 </b></td><td>Mueve la frecuencia de RX 1 Hz abajo</td></tr> + <tr><td><b>Ctrl+F11 </b></td><td>Mueve las frecuencias de RX y TX 1 Hz abajo</td></tr> + <tr><td><b>Mayús+F11 </b></td><td>Mueve la frecuencia de TX 60 Hz abajo (FT8) o 90 HZ (FT4)</td></tr> + <tr><td><b>Ctrl+Mayús+F11 </b></td><td>Mueve la frecuencia de la radio 2000 Hz abajo</td></tr> + <tr><td><b>F12 </b></td><td>Mueve la frecuencia de RX 1 Hz arriba</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Mueve las frecuencias de RX y TX 1 Hz arriba</td></tr> + <tr><td><b>Mayús+F12 </b></td><td>Mueve la frecuencia de TX 60 Hz arriba (FT8) o 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Mayús+F12 </b></td><td>Mueve la frecuencia de la radio 2000 Hz arriba</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Establece transmisión a este número en la pestaña 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Establece siguiente transmisión a este número en la pestaña 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Alterna el estatus "Best S+P"</td></tr> + <tr><td><b>Alt+C </b></td><td>Activa/desactiva casilla "1er decodificado"</td></tr> + <tr><td><b>Alt+D </b></td><td>Decodifica nuevamente en la frecuencia del QSO</td></tr> + <tr><td><b>Mayús+D </b></td><td>Decodifica nuevamente todo (ambas ventanas)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Activa "TX segundo par"</td></tr> + <tr><td><b>Mayús+E </b></td><td>Desactiva "TX segundo par"</td></tr> + <tr><td><b>Alt+E </b></td><td>Borrar</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Editar la caja de mensaje libre</td></tr> + <tr><td><b>Alt+G </b></td><td>Genera Mensajes Estándar</td></tr> + <tr><td><b>Alt+H </b></td><td>Detener TX</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Busca indicativo en la base de datos, genera los mensajes estándar</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Activa TX</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Abre un archivo .wav</td></tr> + <tr><td><b>Alt+O </b></td><td>Cambiar de operador</td></tr> + <tr><td><b>Alt+Q </b></td><td>Guardar QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Ajustar mensaje TX4 a RRR (no en FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Ajustar mensaje TX4 a RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Detener monitorización</td></tr> + <tr><td><b>Alt+T </b></td><td>Activa/desactiva "Tono TX"</td></tr> + <tr><td><b>Alt+Z </b></td><td>Limpia estado del "decodifcador colgado"</td></tr> +</table> + + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4456,16 +4564,60 @@ Error al cargar datos de usuarios de LotW <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> </table> Keyboard shortcuts help window contents - + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Detiene TX, cancela QSO, borra "Indicativo DX"</td></tr> + <tr><td><b>F1 </b></td><td>Manual de usuario en línea (Alt: transmitir TX6)</td></tr> + <tr><td><b>Mayús+F1 </b></td><td>Derechos de Autor</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>Acerca de WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Abrir ventana de ajustes (Alt: transmitir TX2)</td></tr> + <tr><td><b>F3 </b></td><td>Mostrar atajos de teclado (Alt: transmitir TX3)</td></tr> + <tr><td><b>F4 </b></td><td>Borra "Indicativo DX", "Locator DX", mensajes generados 1-4 (Alt: transmitir TX4)</td></tr> + <tr><td><b>Alt+F4 </b></td><td>Cerrar el programa</td></tr> + <tr><td><b>F5 </b></td><td>Mostrar los comandos especiales de ratón (Alt: transmitir TX5)</td></tr> + <tr><td><b>F6 </b></td><td>Abrir siguiente archivo en el directorio (Alt: alterna "1er decodificado")</td></tr> + <tr><td><b>Mayús+F6 </b></td><td>Decodifica todos los archivos restantes en el directorio</td></tr> + <tr><td><b>F7 </b></td><td>Muestra ventana de promedio de mensajes</td></tr> + <tr><td><b>F11 </b></td><td>Mueve la frecuencia de RX 1 Hz abajo</td></tr> + <tr><td><b>Ctrl+F11 </b></td><td>Mueve las frecuencias de RX y TX 1 Hz abajo</td></tr> + <tr><td><b>Mayús+F11 </b></td><td>Mueve la frecuencia de TX 60 Hz abajo (FT8) o 90 HZ (FT4)</td></tr> + <tr><td><b>Ctrl+Mayús+F11 </b></td><td>Mueve la frecuencia de la radio 2000 Hz abajo</td></tr> + <tr><td><b>F12 </b></td><td>Mueve la frecuencia de RX 1 Hz arriba</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Mueve las frecuencias de RX y TX 1 Hz arriba</td></tr> + <tr><td><b>Mayús+F12 </b></td><td>Mueve la frecuencia de TX 60 Hz arriba (FT8) o 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Mayús+F12 </b></td><td>Mueve la frecuencia de la radio 2000 Hz arriba</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Establece transmisión a este número en la pestaña 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Establece siguiente transmisión a este número en la pestaña 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Alterna el estatus "Best S+P"</td></tr> + <tr><td><b>Alt+C </b></td><td>Activa/desactiva casilla "1er decodificado"</td></tr> + <tr><td><b>Alt+D </b></td><td>Decodifica nuevamente en la frecuencia del QSO</td></tr> + <tr><td><b>Mayús+D </b></td><td>Decodifica nuevamente todo (ambas ventanas)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Activa "TX segundo par"</td></tr> + <tr><td><b>Mayús+E </b></td><td>Desactiva "TX segundo par"</td></tr> + <tr><td><b>Alt+E </b></td><td>Borrar</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Editar la caja de mensaje libre</td></tr> + <tr><td><b>Alt+G </b></td><td>Genera Mensajes Estándar</td></tr> + <tr><td><b>Alt+H </b></td><td>Detener TX</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Busca indicativo en la base de datos, genera los mensajes estándar</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Activa TX</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Abre un archivo .wav</td></tr> + <tr><td><b>Alt+O </b></td><td>Cambiar de operador</td></tr> + <tr><td><b>Alt+Q </b></td><td>Guardar QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Ajustar mensaje TX4 a RRR (no en FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Ajustar mensaje TX4 a RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Detener monitorización</td></tr> + <tr><td><b>Alt+T </b></td><td>Activa/desactiva "Tono TX"</td></tr> + <tr><td><b>Alt+Z </b></td><td>Limpia estado del "decodifcador colgado"</td></tr> +</table> - + Special Mouse Commands Comandos especiales del ratón Comandos especiales de ratón - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4498,50 +4650,79 @@ Error al cargar datos de usuarios de LotW </tr> </table> Mouse commands help window contents - + <table cellpadding=5> + <tr> + <th align="right">Clic en</th> + <th align="left">Acción</th> + </tr> + <tr> + <td align="right">Cascada:</td> + <td><b>Clic</b> para seleccionar frecuencia de RX.<br/> + <b>Mayús+clic</b> para seleccionar frecuencia de TX.<br/> + <b>Ctrl+clic</b> o <b>botón derecho</b> para seleccionar frecuencias de TX y RX.<br/> + <b>Doble clic</b> para decodificar en la frecuencia de RX.<br/> + </td> + </tr> + <tr> + <td align="right">Texto decodificado:</td> + <td><b>Doble clic</b> para copiar segundo indicativo a "Indicativo DX",<br/> + el locator "Locator DX", cambiar frecuencias de TX y RX a<br/> + la frecuencia de la señal decodificada, y generar mensajes estandar.<br/> + Si se tiene marcado <b>Mantener Frec. TX</b> o el primer indicativo en el mensaje<br/> + es su propio indicativo, la frecuencia de TX no cambia a menos <br/> + se mantenga presionada la tecla <b>Ctrl</b>.<br/> + </td> + </tr> + <tr> + <td align="right">Botón "Borrar":</td> + <td><b>Clic</b> para borrar la ventana "Frecuencia de RX".<br/> + <b>Doble clic</b> para borrar ventanas "Frecuencia de RX" y "Actividad en la banda". + </td> + </tr> +</table> - + No more files to open. No hay más archivos para abrir. - + Spotting to PSK Reporter unavailable - + "Spotting" a PSK Reporter no disponible - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Por favor, elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30m. Elije otra frecuencia de transmisión. WSJT-X no transmitirá a sabiendas otro modo en la sub-banda WSPR en 30M. - + WSPR Guard Band Banda de Guardia WSPR - Guarda de banda WSPR + WSPR protección de banda - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Elige otra frecuencia de dial. WSJT-X no funcionará en modo Fox en las sub-bandas FT8 estándar. Por favor elija otra frecuencia. WSJT-X no operá en modo "Fox" en las sub-bandas de FT8 estándar. - + Fox Mode warning Advertencia del modo Fox Advertencia de modo "Fox" - + Last Tx: %1 Última TX: %1 Últ TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4556,37 +4737,37 @@ Para hacerlo, marca "Actividad operativa especial" y luego "Concurso VHF EU" en "Archivo" - "Ajustes" - "Avanzado". - + Should you switch to ARRL Field Day mode? ¿Cambiar al modo ARRL Field Day? - + Should you switch to RTTY contest mode? ¿Cambiar al modo de concurso RTTY? - - - - + + + + Add to CALL3.TXT Añadir a CALL3.TXT - + Please enter a valid grid locator Por favor, introduce un locator/Grid válido Por favor escriba un locator válido - + Cannot open "%1" for read/write: %2 No se puede abrir "%1" para leer/escribir: %2 No se puede abrir "%1" para lectura/escritura: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 @@ -4595,97 +4776,97 @@ ya está en CALL3.TXT, ¿deseas reemplazarlo? ya está en CALL3.TXT, ¿desea reemplazarlo? - + Warning: DX Call field is empty. Advertencia: el campo de Indicativo DX está vacío. - Advertencia: el campo Indicativo DX está vacío. + Advertencia: El campo "Indicativo DX" está vacío. - + Log file error Error de archivo de log Error en el archivo de log - + Cannot open "%1" No puedo abrir "%1" No se puede abrir "%1" - + Error sending log to N1MM Error al enviar el log a N1MM - + Write returned "%1" Escritura devuelta "%1" Escritura devuelve "%1" - + Stations calling DXpedition %1 Estaciones que llaman a DXpedition %1 Estaciones llamando a DXpedition %1 - + Hound Hound "Hound" - + Tx Messages Mensajes de TX Mensajes TX - - - + + + Confirm Erase Confirmar borrado - + Are you sure you want to erase file ALL.TXT? ¿Estás seguro de que quiere borrar el archivo ALL.TXT? - - + + Confirm Reset Confirmar reinicio Confirmar restablecer - + Are you sure you want to erase your contest log? ¿Estás seguro de que quieres borrar el log de tú concurso? ¿Está seguro que quiere borrar el log de concurso? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Hacer esto eliminará todos los registros de QSO para el concurso actual. Se guardarán en el archivo log de ADIF, pero no estarán disponibles para la exportación en tú log de Cabrillo. Hacer esto eliminará todos los QSOs del concurso actual. Se mantendrán en el log ADIF, pero no estarán disponibles para la exportación como log de Cabrillo. - + Cabrillo Log saved Cabrillo Log guardado Log Cabrillo guardado - + Are you sure you want to erase file wsjtx_log.adi? ¿Estás seguro de que quieres borrar el archivo wsjtx_log.adi? ¿Está seguro que quiere borrar el archivo wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? ¿Estás seguro de que quieres borrar la tabla WSPR? ¿Está seguro de que quiere borrar la tabla hash WSPR? @@ -4695,66 +4876,66 @@ ya está en CALL3.TXT, ¿desea reemplazarlo? Advertencia de características VHF - + Tune digital gain Ganancia de sintonización digital Ajustar ganancia digital - + Transmit digital gain Ganancia de transmisión digital Transmitir ganancia digital - + Prefixes Prefijos Prefijos y sufijos tipo 1 - + Network Error Error de red - + Error: %1 UDP server %2:%3 Error: %1 Servidor UDP %2:%3 - + File Error Error en el archivo - + Phase Training Disabled Fase de entrenamiento deshabilitado Entrenamieno de Fase deshabilitado - + Phase Training Enabled Fase de entrenamiento habilitado Entrenamiento de Fase habilitado - + WD:%1m WD:%1m - - + + Log File Error Error de archivo log Error en archivo log - + Are you sure you want to clear the QSO queues? ¿Estás seguro de que quieres borrar las colas QSO? ¿Está seguro que quiere borrar las colas de QSOs? @@ -5233,7 +5414,7 @@ Error(%2): %3 No audio output device configured. - + No hay dispositivo de salida de audio configurado @@ -5269,23 +5450,23 @@ Error(%2): %3 StationDialog - + Add Station Agregar estación - + &Band: &Banda: - + &Offset (MHz): &Desplazamiento en MHz: Desplazamient&o (MHz): - + &Antenna: &Antena: @@ -5485,12 +5666,12 @@ Error(%2): %3 Hz - Hz + Hz Split - + "Split" JT9 @@ -5541,22 +5722,22 @@ Error(%2): %3 Invalid ADIF field %0: %1 - + Campo ADIF no válido %0: %1 Malformed ADIF field %0: %1 - + Campo ADIF malformado %0: %1 Invalid ADIF header - + Cabecera ADIF no valida Error opening ADIF log file for read: %0 - + Error abriendo log ADIF para lectura: %0 @@ -5766,7 +5947,7 @@ Error(%2): %3 Tx watchdog: Seguridad de TX: - Temporizador de TX: + Temporizador de TX: @@ -5996,7 +6177,7 @@ período de silencio cuando se ha realizado la decodificación. Data bits - + Bits de datos @@ -6027,7 +6208,7 @@ período de silencio cuando se ha realizado la decodificación. Stop bits - + Bits de parada @@ -6373,7 +6554,7 @@ interfaz de radio se comporte como se esperaba. Tarjeta de Sonido - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -6391,48 +6572,48 @@ de lo contrario transmitirá cualquier sonido del sistema generado durante los períodos de transmisión. - + Select the audio CODEC to use for receiving. Selecciona el CODEC de audio que se usará para recibir. Selecciona el CODEC a usar para recibir. - + &Input: &Entrada: - + Select the channel to use for receiving. Selecciona el canal a usar para recibir. Seleccione el canal a usar para recibir. - - + + Mono Mono - - + + Left Izquierdo - - + + Right Derecho - - + + Both Ambos - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -6449,10 +6630,10 @@ canales, entonces, generalmente debe seleccionar "Mono" o Enable VHF and submode features - + Habilitar funciones de VHF y submodo - + Ou&tput: &Salida: @@ -6522,7 +6703,7 @@ canales, entonces, generalmente debe seleccionar "Mono" o Enable power memory during transmit - Habilita memoria de potencia durante la transmisión + Habilita memoria de potencia durante la transmisión @@ -6532,7 +6713,7 @@ canales, entonces, generalmente debe seleccionar "Mono" o Enable power memory during tuning - Habilita memoria de potencia durante la sintonización + Habilita memoria de potencia durante la sintonización @@ -6696,7 +6877,7 @@ para evaluar la propagación y el rendimiento del sistema. <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> - + <html><head/><body><p>El programa puede enviar los detalles de su estación y todas las señales decodificadas con locator como "spots" a la página http://pskreporter.info. </p> <p> Esto se usa para el análisis de "reverse beacon", lo cual es muy útil para evaluar la propagación y rendimiento de sistema.</p></body></html> @@ -6707,12 +6888,12 @@ para evaluar la propagación y el rendimiento del sistema. <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + <html><head/><body><p>Marque esta opción si se necesita una conexión confiable</p><p> La mayoría de los usuarios no la necesitan, el valor predeterminado usa UDP que es más eficiente. Solo marque esta casilla si tiene evidencia de que se está perdiendo el tráfico UDP hacia PSK Reporter.</p></body></html> Use TCP/IP connection - + Usar conexión TCP/IP @@ -6973,7 +7154,7 @@ Clic derecho para insertar y eliminar opciones. URL - + Enlace @@ -7006,7 +7187,7 @@ Clic derecho para insertar y eliminar opciones. Days since last upload - + Días desde última subida @@ -7123,7 +7304,7 @@ Clic derecho para insertar y eliminar opciones. R T T Y Roundup - + R T T Y Roundup @@ -7134,7 +7315,7 @@ Clic derecho para insertar y eliminar opciones. RTTY Roundup exchange - + Intercambio RTTY Roundup @@ -7156,7 +7337,7 @@ Clic derecho para insertar y eliminar opciones. A R R L Field Day - + A R R L Field Day @@ -7166,7 +7347,7 @@ Clic derecho para insertar y eliminar opciones. Field Day exchange - + Intercambio "Field Day" @@ -7187,7 +7368,7 @@ Clic derecho para insertar y eliminar opciones. WW Digital Contest - + WW Digital Contest @@ -7406,12 +7587,12 @@ Clic derecho para insertar y eliminar opciones. Sub-process error - + Error en subproceso Failed to close orphaned jt9 process - + No se pudo cerrar los procesos huerfanos de JT9 From baa9c4fdd4c8ee05df94af949c9eadc705d7afe6 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 15 Sep 2020 16:37:22 +0100 Subject: [PATCH 487/520] Updated Italian l10n, tnx Marco, PY1ZRJ --- translations/wsjtx_it.ts | 825 ++++++++++++++++++++++++--------------- 1 file changed, 517 insertions(+), 308 deletions(-) diff --git a/translations/wsjtx_it.ts b/translations/wsjtx_it.ts index 47da3d226..4a75be8a6 100644 --- a/translations/wsjtx_it.ts +++ b/translations/wsjtx_it.ts @@ -41,7 +41,7 @@ Full Doppler to DX Grid - Doppler Pieno alal Griglia DX + Doppler Pieno alla Griglia DX @@ -86,7 +86,7 @@ <html><head/><body><p>No Doppler shift correction is applied. This may be used when the QSO partner does full Doppler correction to your grid square.</p></body></html> - <html><head/><body><p>Non è applicata correzione Doppler shift Questo può essere usato quando il partner in QSO esegue una correzione completa Doppler per il tuo grid square.</p></body></html> + <html><head/><body><p>Non è applicata correzione Doppler shift Questo può essere usato quando il partner in QSO esegue una correzione completa Doppler per il tuo quadrato di griglia.</p></body></html> @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete &Elimina - - + + &Insert ... &Inserisci ... - + Failed to create save directory Impossibile creare la directory di salvataggio - + path: "%1% Percorso: "%1" - + Failed to create samples directory Impossibile creare la directory dei campioni - + path: "%1" Percorso: "%1" - + &Load ... &Carica ... - + &Save as ... &Salva come ... - + &Merge ... &Unisci ... - + &Reset &Ripristina - + Serial Port: Porta Seriale: - + Serial port used for CAT control Porta Seriale usata per il controllo CAT - + Network Server: Server di rete: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -452,12 +452,12 @@ Formati: [IPv6-address]: porta - + USB Device: Dispositivo USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -468,160 +468,166 @@ Formato: [VID [: PID [: VENDOR [: PRODOTTI]]]] - - + + Invalid audio input device - Dispositivo di input audio non valido + Dispositivo di ingresso audio non valido Invalid audio out device Dispositivo di uscita audio non valido - + Invalid audio output device - + Dispositivo di uscita audio non valido - + Invalid PTT method Metodo PTT non valido - + Invalid PTT port Porta PTT non valida - - + + Invalid Contest Exchange Scambio Contest non valido - + You must input a valid ARRL Field Day exchange È necessario inserire uno scambioField Day ARRL valido - + You must input a valid ARRL RTTY Roundup exchange È necessario inserire uno scambio Roundup RTTY ARRL valido - + Reset Decode Highlighting Ripristina l'evidenziazione della decodifica - + Reset all decode highlighting and priorities to default values Ripristina tutti i valori di evidenziazione e priorità della decodifica sui valori predefiniti - + WSJT-X Decoded Text Font Chooser Selezionatore font testo decodificato WSJT-X - + Load Working Frequencies Carica frequenze di lavoro - - - + + + Frequency files (*.qrg);;All files (*.*) File di frequenza (*.qrg);;Tutti i file (*.*) - + Replace Working Frequencies Sostituisci le frequenze di lavoro - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? Sei sicuro di voler scartare le tue attuali frequenze di lavoro e sostituirle con quelle caricate? - + Merge Working Frequencies Unisci le frequenze di lavoro - - - + + + Not a valid frequencies file Non è un file di frequenze valido - + Incorrect file magic Magic file errato - + Version is too new La versione è troppo nuova - + Contents corrupt Contenuto corrotto - + Save Working Frequencies Salva frequenze di lavoro - + Only Save Selected Working Frequencies Salva solo le frequenze di lavoro selezionate - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. Sei sicuro di voler salvare solo le frequenze di lavoro che sono attualmente selezionate? Fai clic su No per salvare tutto. - + Reset Working Frequencies Ripristina frequenze di lavoro - + Are you sure you want to discard your current working frequencies and replace them with default ones? Sei sicuro di voler scartare le tue attuali frequenze di lavoro e sostituirle con quelle predefinite? - + Save Directory Salva il direttorio - + AzEl Directory AzEl Direttorio - + Rig control error Errore di controllo rig - + Failed to open connection to rig Impossibile aprire la connessione al rig - + Rig failure Rig fallito + + + Not found + audio device missing + + DXLabSuiteCommanderTransceiver @@ -686,14 +692,15 @@ Formato: DX Lab Suite Commander send command failed - Comando di invio del comando DX Lab Suite non riuscito + DX Lab Suite Commander invio comando non riuscito DX Lab Suite Commander send command failed "%1": %2 - + DX Lab Suite Commander invio del comando non riuscito "%1": %2 + DX Lab Suite Commander failed to send command "%1": %2 @@ -705,7 +712,7 @@ Formato: DX Lab Suite Commander send command "%1" read reply failed: %2 - Comando di invio DX Lab Suite Comando "%1" lettura risposta non riuscita: %2 + DX Lab Suite Commander comando "%1" lettura risposta non riuscita: %2 @@ -1085,7 +1092,7 @@ Errore: %2 - %3 Equalization Tools - + Strumenti di equalizzazione @@ -1447,22 +1454,22 @@ Errore: %2 - %3 FrequencyDialog - + Add Frequency Aggiungi frequenza - + IARU &Region: &Regione IARU: - + &Mode: &Modo: - + &Frequency (MHz): &Frequenza (MHz): @@ -1501,7 +1508,8 @@ Errore: %2 - %3 Failed to connect to Ham Radio Deluxe - Impossibile connettersi a Ham Radio Deluxe + Impossibile connettersi a Ham Radio Deluxe + @@ -1781,22 +1789,22 @@ Errore: %2 - %3 All - + Tutto Region 1 - + Regione 1 Region 2 - + Regione 2 Region 3 - + Regione 3 @@ -1898,97 +1906,110 @@ Errore: %2 - %3 Prop Mode - + Modo Propagazione Aircraft scatter - + Propagazione via riflessione Scatter su velivoli + Diffusione Aerea Aurora-E - + Propagazione via Aurora-E + Aurora-E Aurora - + Propagazione via Aurora Boreale + Aurora Back scatter - + Propagazione Via Back Scatter + Retro Diffusione Echolink - + Echolink Earth-moon-earth - + EME + Terra Luna Terra Sporadic E - + Propagazione via Strato E Sporadico + E-Sporadico F2 Reflection - + Propagazione via Strato F2 + Riflessione F2 Field aligned irregularities - + Propagazione via FAI + Irregolarità allineate al campo Internet-assisted - + Internet Assistito Ionoscatter - + Propagazione via diffusione ionosferica + Ionodiffusione IRLP - + Collegamento Internet Project Radio Meteor scatter - + Propagazione via Meteore + Diffusione Meteore Non-satellite repeater or transponder - + Ripetitore non satellite o transponder Rain scatter - + Propagazione via pioggia (bande GHz) + Diffusione pioggia Satellite - + Satellite Trans-equatorial - + Propagazione tranequatoriale + Trans-equatoriale Troposheric ducting - + Propagazione via canalizzazione nella Troposfera + Canalizzazione troposferica @@ -2080,13 +2101,13 @@ Errore (%2):%3 - - - - - - - + + + + + + + Band Activity Attività di Banda @@ -2098,12 +2119,12 @@ Errore (%2):%3 - - - - - - + + + + + + Rx Frequency Frequenza Rx @@ -2235,17 +2256,17 @@ Errore (%2):%3 Percentage of minute sequences devoted to transmitting. - + Percentuale di sequenze minuti dedicate alla trasmissione. Prefer Type 1 messages - + Preferisci i messaggi di tipo 1 <html><head/><body><p>Transmit during the next sequence.</p></body></html> - + <html><head/><body><p>Trasmetti durante la sequenza successiva.</p></body></html> @@ -2286,7 +2307,7 @@ Giallo quando troppo basso DX Grid - Grid DX + Griglia DX @@ -2586,7 +2607,7 @@ Non disponibile per i possessori di nominativi non standard. - + Fox Fox @@ -2937,7 +2958,8 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). FST4W - + FST4:Nuova famiglia di modalità digitali. FST4W:Messaggi simili al WSPR + FST4W Calling CQ @@ -2980,7 +3002,7 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). Grid - Grid + Griglia Generate message with R+report @@ -3127,10 +3149,10 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). - - - - + + + + Random Casuale @@ -3187,102 +3209,108 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). 1/2 - 1/2 + 1/2 + 1/2 2/2 - 2/2 + 2/2 + 2/2 1/3 - 1/3 + 1/3 + 1/3 2/3 - 2/3 + 2/3 + 2/3 3/3 - 3/3 + 3/3 + 3/3 1/4 - 1/4 + 1/4 + 1/4 2/4 - 2/4 + 2/4 3/4 - 3/4 + 3/4 4/4 - 4/4 + 4/4 1/5 - 1/5 + 1/5 2/5 - 2/5 + 2/5 3/5 - 3/5 + 3/5 4/5 - 4/5 + 4/5 5/5 - 5/5 + 5/5 1/6 - 1/6 + 1/6 2/6 - 2/6 + 2/6 3/6 - 3/6 + 3/6 4/6 - 4/6 + 4/6 5/6 - 5/6 + 5/6 6/6 - 6/6 + 6/6 @@ -3307,12 +3335,13 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). Quick-Start Guide to FST4 and FST4W - + Guida Rapida al FST4 e FST4W FST4 - + FST4:Nuova famiglia di modalità digitali. + FST4 FT240W @@ -3344,7 +3373,7 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). NB - + NB @@ -3536,7 +3565,7 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). Tx disabilitato dopo l'invio 73 - + Runaway Tx watchdog Watchdog Tx sfuggito @@ -3804,8 +3833,8 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). - - + + Receiving Ricevente @@ -3817,17 +3846,21 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). %1 (%2 sec) audio frames dropped - + %1 (%2 sec) frames audio perse Audio Source - + Sorgente Audio Reduce system load - + Riduci carico di sistema + + + Excessive dropped samples - %1 (%2 sec) audio frames dropped + Eccessivi campioni persi - %1 (%2 sec) frames audio ignorate @@ -3855,164 +3888,169 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). Errore durante la scrittura del file WAV - + + Enumerating audio devices + + + + Configurations... Configurazioni... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message Messaggio - + Error Killing jt9.exe Process Errore durante l'uccisione del processo jt9.exe - + KillByName return code: %1 Codice di ritorno KillByName:%1 - + Error removing "%1" Errore durante la rimozione di "%1" - + Click OK to retry Fai clic su OK per riprovare - - + + Improper mode Modalità impropria - - + + File Open Error Errore apertura file - - - - - + + + + + Cannot open "%1" for append: %2 Impossibile aprire "%1" per aggiungere:%2 - + Error saving c2 file Errore salvataggio file c2 - + Error in Sound Input Errore nell'ingresso audio - + Error in Sound Output Errore nell'uscita audio - - - + + + Single-Period Decodes Decodifiche a periodo singolo - - - + + + Average Decodes Media Decodifiche - + Change Operator Cambio Operatore - + New operator: Nuovo operatore: - + Status File Error Errore del file di stato - - + + Cannot open "%1" for writing: %2 Impossibile aprire "%1" per la scrittura:%2 - + Subprocess Error Errore sottoprocesso - + Subprocess failed with exit code %1 Il sottoprocesso non è riuscito con il codice di uscita%1 - - + + Running: %1 %2 In esecuzione: %1 %2 - + Subprocess error Errore sottoprocesso - + Reference spectrum saved Spettro di riferimento salvato - + Invalid data in fmt.all at line %1 Dati non validi in fmt.all alla riga%1 - + Good Calibration Solution Buona soluzione di calibrazione - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -4025,17 +4063,17 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Elimina misure di calibrazione - + The "fmt.all" file will be renamed as "fmt.bak" Il file "fmt.all" verrà rinominato come "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -4044,27 +4082,120 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). "Gli algoritmi, il codice sorgente, l'aspetto di WSJT-X e dei relativi programmi e le specifiche del protocollo per le modalità FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 sono Copyright (C) 2001-2020 di uno o più dei seguenti autori: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q e altri membri del WSJT Development Group. " - + No data read from disk. Wrong file format? Nessun dato letto dal disco. Formato file errato? - + Confirm Delete Conferma Eliminazione - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Sei sicuro di voler eliminare tutti i file * .wav e * .c2 in "%1"? - + Keyboard Shortcuts Scorciatoie da tastiera - + + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> + Keyboard shortcuts help window contents + <table cellspacing = 1> + <tr><td> <b> Esc </b></td> <td> Ferma Tx, interrompi QSO, cancella la coda della chiamata successiva </td> </tr> + <tr><td> <b> F1 </b></td> <td> Guida in linea dell'utente (Alt: trasmissione Tx6) </td> </tr> + <tr><td> <b> Maiusc + F1 </b></td> <td> Avviso sul copyright </td> </tr> + <tr><td> <b> Ctrl + F1 </b></td> <td> Informazioni su WSJT-X </td> </tr> + <tr><td> <b> F2 </b></td> <td> Apri la finestra delle impostazioni (Alt: trasmissione Tx2) </td> </tr> + <tr><td> <b> F3 </b></td> <td> Visualizza scorciatoie da tastiera (Alt: trasmissione Tx3) </td> </tr> + <tr><td> <b> F4 </b></td> <td> Cancella chiamata DX, Griglia DX, messaggi Tx 1-4 (Alt: trasmissione Tx4) </td> </tr> + <tr><td> <b> Alt + F4 </b></td> <td> Esci dal programma </td> </tr> + <tr><td> <b> F5 </b></td> <td> Visualizza comandi speciali del mouse (Alt: trasmissione Tx5) </td> </tr> + <tr><td> <b> F6 </b></td> <td> Apri il file successivo nella directory (Alt: attiva / disattiva "Chiama 1º") </td> </tr> + <tr><td> <b> Maiusc + F6 </b></td> <td> Decodifica tutti i file rimanenti nella directory </td> </tr> + <tr><td> <b> F7 </b></td> <td> Visualizza finestra media messaggio </td> </tr> + <tr><td> <b> F11 </b></td> <td> Sposta la frequenza Rx verso il basso di 1 Hz </td> </tr> + <tr><td> <b> Ctrl + F11 </b></td> <td> Sposta frequenze Rx e Tx identiche verso il basso di 1 Hz </td> </tr> + <tr><td> <b> Maiusc + F11 </b></td> <td> Sposta la frequenza Tx verso il basso di 60 Hz (FT8) o 90 Hz (FT4) </td> </tr> + <tr><td> <b> Ctrl + Maiusc + F11 </b></td> <td> Sposta la frequenza di composizione verso il basso di 2000 Hz </td> </tr> + <tr><td> <b> F12 </b></td> <td> Sposta la frequenza Rx su 1 Hz </td> </tr> + <tr><td> <b> Ctrl + F12 </b></td> <td> Sposta frequenze Rx e Tx identiche su 1 Hz </td> </tr> + <tr><td> <b> Maiusc + F12 </b></td> <td> Sposta la frequenza Tx su 60 Hz (FT8) o 90 Hz (FT4) </td> </tr> + <tr><td> <b> Ctrl + Maiusc + F12 </b></td> <td> Sposta la frequenza di composizione verso l'alto di 2000 Hz </td> </tr> + <tr><td> <b> Alt + 1-6 </b></td> <td> Imposta ora la trasmissione a questo numero nella scheda 1 </td> </tr> + <tr><td> <b> Ctl + 1-6 </b></td> <td> Imposta la trasmissione successiva a questo numero nella scheda 1 </td> </tr> + <tr><td> <b> Alt + B </b></td> <td> Alterna lo stato "Migliore S + P" </td> </tr> + <tr><td> <b> Alt + C </b></td> <td> Attiva / disattiva la casella di controllo "Chiama 1º" </td> </tr> + <tr><td> <b> Alt + D </b></td> <td> Decodifica di nuovo alla frequenza QSO </td> </tr> + <tr><td> <b> Maiusc + D </b></td> <td> Decodifica completa (entrambe le finestre) </td> </tr> + <tr><td> <b> Ctrl + E </b></td> <td> Attiva TX pari / 1 ° </td> </tr> + <tr><td> <b> Maiusc + E </b></td> <td> Disattiva TX pari / 1 ° </td> </tr> + <tr><td> <b> Alt + E </b></td><td>Erase</td> </tr> + <tr><td> <b> Ctrl + F </b></td> <td> Modifica la casella del messaggio di testo libero </td> </tr> + <tr><td> <b> Alt + G </b></td> <td> Genera messaggi standard </td> </tr> + <tr><td> <b> Alt + H </b></td> <td> Interrompi trasmissione </td> </tr> + <tr><td> <b> Ctrl + L </b></td> <td> Cerca il nominativo nel database, genera messaggi standard </td> </tr> + <tr><td> <b> Alt + M </b></td><td>Monitor</td> </tr> + <tr><td> <b> Alt + N </b></td> <td> Abilita Tx </td> </tr> + <tr><td> <b> Ctrl + O </b></td> <td> Apri un file .wav </td> </tr> + <tr><td> <b> Alt + O </b></td> <td> Cambia operatore </td> </tr> + <tr><td> <b> Alt + Q </b></td> <td> Registra QSO </td> </tr> + <tr><td> <b> Ctrl + R </b></td> <td> Imposta messaggio Tx4 su RRR (non in FT4) </td> </tr> + <tr><td> <b> Alt + R </b></td> <td> Imposta messaggio Tx4 su RR73 </td> </tr> + <tr><td> <b> Alt + S </b></td> <td> Interrompi monitoraggio </td> </tr> + <tr><td> <b> Alt + T </b></td> <td> Attiva / disattiva stato di regolazione </td> </tr> + <tr><td> <b> Alt + Z </b></td> <td> Cancella stato decoder bloccato </td> </tr> +</table> + + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4111,15 +4242,60 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> </table> Keyboard shortcuts help window contents - + Scorciatoie da tastiera contenuto della finestra della guida + <table cellspacing = 1> + <tr><td> <b> Esc </b></td> <td> Ferma Tx, interrompi QSO, cancella la coda della chiamata successiva </td> </tr> + <tr><td> <b> F1 </b></td> <td> Guida in linea dell'utente (Alt: trasmissione Tx6) </td> </tr> + <tr><td> <b> Maiusc + F1 </b></td> <td> Avviso sul copyright </td> </tr> + <tr><td> <b> Ctrl + F1 </b></td> <td> Informazioni su WSJT-X </td> </tr> + <tr><td> <b> F2 </b></td> <td> Apri la finestra delle impostazioni (Alt: trasmissione Tx2) </td> </tr> + <tr><td> <b> F3 </b></td> <td> Visualizza scorciatoie da tastiera (Alt: trasmissione Tx3) </td> </tr> + <tr><td> <b> F4 </b></td> <td> Cancella chiamata DX, Griglia DX, messaggi Tx 1-4 (Alt: trasmissione Tx4) </td> </tr> + <tr><td> <b> Alt + F4 </b></td> <td> Esci dal programma </td> </tr> + <tr><td> <b> F5 </b></td> <td> Visualizza comandi speciali del mouse (Alt: trasmissione Tx5) </td> </tr> + <tr><td> <b> F6 </b></td> <td> Apri il file successivo nella directory (Alt: attiva / disattiva "Chiama 1º") </td> </tr> + <tr><td> <b> Maiusc + F6 </b></td> <td> Decodifica tutti i file rimanenti nella directory </td> </tr> + <tr><td> <b> F7 </b></td> <td> Visualizza finestra media messaggio </td> </tr> + <tr><td> <b> F11 </b></td> <td> Sposta la frequenza Rx verso il basso di 1 Hz </td> </tr> + <tr><td> <b> Ctrl + F11 </b></td> <td> Sposta frequenze Rx e Tx identiche verso il basso di 1 Hz </td> </tr> + <tr><td> <b> Maiusc + F11 </b></td> <td> Sposta la frequenza Tx verso il basso di 60 Hz (FT8) o 90 Hz (FT4) </td> </tr> + <tr><td> <b> Ctrl + Maiusc + F11 </b></td> <td> Sposta la frequenza di composizione verso il basso di 2000 Hz </td> </tr> + <tr><td> <b> F12 </b></td> <td> Sposta la frequenza Rx su 1 Hz </td> </tr> + <tr><td> <b> Ctrl + F12 </b></td> <td> Sposta frequenze Rx e Tx identiche su 1 Hz </td> </tr> + <tr><td> <b> Maiusc + F12 </b></td> <td> Sposta la frequenza Tx su 60 Hz (FT8) o 90 Hz (FT4) </td> </tr> + <tr><td> <b> Ctrl + Maiusc + F12 </b></td> <td> Sposta la frequenza di composizione verso l'alto di 2000 Hz </td> </tr> + <tr><td> <b> Alt + 1-6 </b></td> <td> Imposta ora la trasmissione a questo numero nella scheda 1 </td> </tr> + <tr><td> <b> Ctl + 1-6 </b></td> <td> Imposta la trasmissione successiva a questo numero nella scheda 1 </td> </tr> + <tr><td> <b> Alt + B </b></td> <td> Alterna lo stato "Migliore S + P" </td> </tr> + <tr><td> <b> Alt + C </b></td> <td> Attiva / disattiva la casella di controllo "Chiama 1º" </td> </tr> + <tr><td> <b> Alt + D </b></td> <td> Decodifica di nuovo alla frequenza QSO </td> </tr> + <tr><td> <b> Maiusc + D </b></td> <td> Decodifica completa (entrambe le finestre) </td> </tr> + <tr><td> <b> Ctrl + E </b></td> <td> Attiva TX pari / 1 ° </td> </tr> + <tr><td> <b> Maiusc + E </b></td> <td> Disattiva TX pari / 1 ° </td> </tr> + <tr><td> <b> Alt + E </b></td><td>Erase</td> </tr> + <tr><td> <b> Ctrl + F </b></td> <td> Modifica la casella del messaggio di testo libero </td> </tr> + <tr><td> <b> Alt + G </b></td> <td> Genera messaggi standard </td> </tr> + <tr><td> <b> Alt + H </b></td> <td> Interrompi trasmissione </td> </tr> + <tr><td> <b> Ctrl + L </b></td> <td> Cerca il nominativo nel database, genera messaggi standard </td> </tr> + <tr><td> <b> Alt + M </b></td><td>Monitor</td> </tr> + <tr><td> <b> Alt + N </b></td> <td> Abilita Tx </td> </tr> + <tr><td> <b> Ctrl + O </b></td> <td> Apri un file .wav </td> </tr> + <tr><td> <b> Alt + O </b></td> <td> Cambia operatore </td> </tr> + <tr><td> <b> Alt + Q </b></td> <td> Registra QSO </td> </tr> + <tr><td> <b> Ctrl + R </b></td> <td> Imposta messaggio Tx4 su RRR (non in FT4) </td> </tr> + <tr><td> <b> Alt + R </b></td> <td> Imposta messaggio Tx4 su RR73 </td> </tr> + <tr><td> <b> Alt + S </b></td> <td> Interrompi monitoraggio </td> </tr> + <tr><td> <b> Alt + T </b></td> <td> Attiva / disattiva stato di regolazione </td> </tr> + <tr><td> <b> Alt + Z </b></td> <td> Cancella stato decoder bloccato </td> </tr> +</table> - + Special Mouse Commands Comandi speciali mouse - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4152,45 +4328,76 @@ elenco. L'elenco può essere gestito in Impostazioni (F2). </tr> </table> Mouse commands help window contents - + Contenuto della finestra della guida dei comandi del mouse + <table cellpadding = 5> + <tr> + <th align = "right"> Fare clic su </th> + <th align = "left"> Azione </th> + </tr> + <tr> + <td align = "right"> Cascata: </td> + <td> <b> Fare clic </b> per impostare la frequenza di ricezione. <br/> + <b> Fai clic tenendo premuto il tasto Maiusc </b> per impostare la frequenza Tx. <br/> + <b> Fare clic tenendo premuto il tasto Ctrl </b> o <b> Fare clic con il tasto destro </b> per impostare le frequenze Rx e Tx. <br/> + <b> Fare doppio clic </b> per decodificare anche alla frequenza Rx. <br/> + </td> + </tr> + <tr> + <td align = "right"> Testo decodificato: </td> + <td> <b> Fare doppio clic </b> per copiare il secondo nominativo in Dx Call, <br/> + locator su Dx Grid, cambia la frequenza Rx e Tx in <br/> + frequenza del segnale decodificato e generazione di standard <br/> + messaggi. <br/> + Se <b> Hold Tx Freq </b> è selezionato o il primo segnale di chiamata nel messaggio <br/> + è la tua chiamata, la frequenza di trasmissione non viene modificata a meno che <br/> + <b> Ctrl </b> è tenuto premuto. <br/> + </td> + </tr> + <tr> + <td align = "right"> Pulsante Cancella: </td> + <td> <b> Fai clic </b> per cancellare la finestra QSO. <br/> + <b> Fai doppio clic </b> per cancellare le finestre QSO e Band Activity. + </td> + </tr> +</table> - + No more files to open. Niente più file da aprire. - + Spotting to PSK Reporter unavailable - + Spotting su PSK Reporter non disponibile - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Scegli un'altra frequenza Tx. WSJT-X non trasmetterà consapevolmente un'altra modalità nella sottobanda WSPR a 30 m. - + WSPR Guard Band Banda di guardia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Scegli un'altra frequenza di composizione. WSJT-X non funzionerà in modalità Fox nelle sottobande FT8 standard. - + Fox Mode warning Avviso modalità Fox - + Last Tx: %1 Ultimo Tx:%1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4201,121 +4408,121 @@ Per fare ciò, selezionare "Attività operativa speciale" e "Contest VHF EU" sulle impostazioni | Scheda Avanzate. - + Should you switch to ARRL Field Day mode? Dovresti passare alla modalità Field Day di ARRL? - + Should you switch to RTTY contest mode? Dovresti passare alla modalità contest RTTY? - - - - + + + + Add to CALL3.TXT Aggiungi a CALL3.TXT - + Please enter a valid grid locator Inserisci un localizzatore di griglia valido - + Cannot open "%1" for read/write: %2 Impossibile aprire "%1" per lettura / scrittura:%2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 è già in CALL3.TXT, desideri sostituirlo? - + Warning: DX Call field is empty. Avviso: il campo Chiamata DX è vuoto. - + Log file error Errore nel file di registro - + Cannot open "%1" Impossibile aprire "%1" - + Error sending log to N1MM Errore durante l'invio del Log a N1MM - + Write returned "%1" Scrivi ha restituito "%1" - + Stations calling DXpedition %1 Stazioni che chiamano la DXpedition %1 - + Hound (Hound=Cane da caccia) Hound - + Tx Messages Messaggi Tx - - - + + + Confirm Erase Conferma Cancella - + Are you sure you want to erase file ALL.TXT? Sei sicuro di voler cancellare il file ALL.TXT? - - + + Confirm Reset Conferma Ripristina - + Are you sure you want to erase your contest log? Sei sicuro di voler cancellare il tuo Log del contest? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. In questo modo verranno rimossi tutti i record QSO per il contest corrente. Saranno conservati nel file di registro ADIF ma non saranno disponibili per l'esportazione nel registro Cabrillo. - + Cabrillo Log saved Log Cabrillo salvato - + Are you sure you want to erase file wsjtx_log.adi? Sei sicuro di voler cancellare il file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? Sei sicuro di voler cancellare la tabella hash WSPR? @@ -4324,60 +4531,60 @@ is already in CALL3.TXT, do you wish to replace it? VHF presenta un avviso - + Tune digital gain Ottimizza il guadagno digitale - + Transmit digital gain Trasmetti Guadagno digitale - + Prefixes Prefissi - + Network Error Errore di Rete - + Error: %1 UDP server %2:%3 Errore:%1 Server UDP%2:%3 - + File Error Errore File - + Phase Training Disabled Fase di Allenamento Disabilitato - + Phase Training Enabled Fase di allenamento abilitato - + WD:%1m WD:%1m - - + + Log File Error Errore file di Log - + Are you sure you want to clear the QSO queues? Sei sicuro di voler cancellare le code QSO? @@ -4499,7 +4706,7 @@ Server UDP%2:%3 Network SSL/TLS Errors - + Errori di rete SSL/TSL @@ -4704,7 +4911,7 @@ Errore (%2):%3 Check this if you get SSL/TLS errors - + Seleziona questa opzione se ricevi errori SSL / TLS Check this is you get SSL/TLS errors @@ -4824,7 +5031,7 @@ Errore (%2):%3 No audio output device configured. - + Nessun dispositivo di uscita audio configurato. @@ -4860,22 +5067,22 @@ Errore (%2):%3 StationDialog - + Add Station Aggoingi Stazione - + &Band: &Banda: - + &Offset (MHz): &Offset (MHz): - + &Antenna: &Antenna: @@ -4941,7 +5148,7 @@ Errore (%2):%3 Palette - Tavolozza + Tavolozza @@ -5056,7 +5263,7 @@ Errore (%2):%3 Start - Inizio + Inizio @@ -5066,12 +5273,12 @@ Errore (%2):%3 Hz - Hz + Hz Split - + Split JT9 @@ -5118,22 +5325,22 @@ Errore (%2):%3 Invalid ADIF field %0: %1 - + Campo ADIF non valido%0:%1 Malformed ADIF field %0: %1 - + Campo ADIF malformato %0:%1 Invalid ADIF header - + Intestazione ADIF invalida Error opening ADIF log file for read: %0 - + Errore durante l'apertura del file di registro ADIF per la lettura:%0 @@ -5525,7 +5732,7 @@ periodo di quiete al termine della decodifica. Data bits - + Bit di dati @@ -5555,7 +5762,7 @@ periodo di quiete al termine della decodifica. Stop bits - + Bits di Stop @@ -5863,7 +6070,7 @@ l'interfaccia radio si comporta come previsto. Scheda audio - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5878,49 +6085,49 @@ periodi di trasmissione. Days since last upload - + Giorni dall'ultimo aggiornamento - + Select the audio CODEC to use for receiving. Seleziona l'audio CODEC da utilizzare per la ricezione. - + &Input: &Ingresso: - + Select the channel to use for receiving. Seleziona il canale da utilizzare per la ricezione. - - + + Mono Mono - - + + Left Sinistro - - + + Right Destro - - + + Both Entrambi - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5933,10 +6140,10 @@ entrambi qui. Enable VHF and submode features - + Abilita le funzioni VHF e sottomodalità - + Ou&tput: Usci&ta: @@ -6142,7 +6349,7 @@ e i campi della Griglia DX quando viene inviato un messaggio di testo libero o 7 <html><head/><body><p>The program can send your station details and all decoded signals with grid squares as spots to the http://pskreporter.info web site.</p><p>This is used for reverse beacon analysis which is very useful for assessing propagation and system performance.</p></body></html> - + <html><head/><body> <p> Il programma può inviare i dettagli della stazione e tutti i segnali decodificati con quadrati della griglia come punti al sito web http://pskreporter.info. </p> <p> Questo è utilizzato per l'analisi del beacon inverso che è molto utile per valutare la propagazione e le prestazioni del sistema. </p> </body> </html> The program can send your station details and all @@ -6162,12 +6369,12 @@ per valutare la propagazione e le prestazioni del sistema. <html><head/><body><p>Check this option if a reliable connection is needed</p><p>Most users do not need this, the default uses UDP which is more efficient. Only check this if you have evidence that UDP traffic from you to PSK Reporter is being lost.</p></body></html> - + <html><head/><body> <p> Seleziona questa opzione se è necessaria una connessione affidabile </p> <p> La maggior parte degli utenti non ne ha bisogno, l'impostazione predefinita utilizza UDP che è più efficiente. Seleziona questa opzione solo se hai prove che il traffico UDP da te a PSK Reporter viene perso. </p> </body> </html> Use TCP/IP connection - + Usa la connessione TCP/IP @@ -6297,7 +6504,7 @@ per valutare la propagazione e le prestazioni del sistema. Hz - Hz + Hz @@ -6404,7 +6611,7 @@ Fare clic con il tasto destro per inserire ed eliminare le opzioni. URL - + URL @@ -6536,7 +6743,8 @@ Fare clic con il tasto destro per inserire ed eliminare le opzioni. R T T Y Roundup - + R T T Y Riunione + R T T Y Roundup @@ -6546,7 +6754,7 @@ Fare clic con il tasto destro per inserire ed eliminare le opzioni. RTTY Roundup exchange - + Scambio di riunione in RTTY @@ -6567,7 +6775,7 @@ Fare clic con il tasto destro per inserire ed eliminare le opzioni. A R R L Field Day - + A R R L Field Day @@ -6577,7 +6785,7 @@ Fare clic con il tasto destro per inserire ed eliminare le opzioni. Field Day exchange - + Scambio Field Day @@ -6597,7 +6805,8 @@ Fare clic con il tasto destro per inserire ed eliminare le opzioni. WW Digital Contest - + Contest Digitale WW + WW Digital Contest @@ -6612,7 +6821,7 @@ Fare clic con il tasto destro per inserire ed eliminare le opzioni. Degrade S/N of .wav file: - Degrada S/N del file .wav: + Degrado S/N del file .wav: @@ -6623,7 +6832,7 @@ Fare clic con il tasto destro per inserire ed eliminare le opzioni. dB - dB + dB @@ -6648,7 +6857,7 @@ Fare clic con il tasto destro per inserire ed eliminare le opzioni. s - ..s + s @@ -6762,12 +6971,12 @@ Fare clic con il tasto destro per inserire ed eliminare le opzioni. Sub-process error - + Errore sottoprocesso Failed to close orphaned jt9 process - + Impossibile chiudere il processo jt9 orfano From 10fbcfc7d0d763b67319bbdcb4bef89ba32c4dd3 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 15 Sep 2020 16:38:17 +0100 Subject: [PATCH 488/520] Updated l10n .TS files --- translations/wsjtx_ca.ts | 528 +++++++++++++++++++++--------------- translations/wsjtx_da.ts | 484 ++++++++++++++++++--------------- translations/wsjtx_en.ts | 435 ++++++++++++++--------------- translations/wsjtx_en_GB.ts | 435 ++++++++++++++--------------- translations/wsjtx_ja.ts | 528 +++++++++++++++++++++--------------- translations/wsjtx_zh.ts | 521 ++++++++++++++++++----------------- translations/wsjtx_zh_HK.ts | 521 ++++++++++++++++++----------------- 7 files changed, 1882 insertions(+), 1570 deletions(-) diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index ba0c43a69..c0eebd8ea 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -377,75 +377,75 @@ Configuration::impl - - - + + + &Delete &Esborrar - - + + &Insert ... &Insereix ... - + Failed to create save directory No s'ha pogut crear el directori per desar - + path: "%1% ruta: "%1% - + Failed to create samples directory No s'ha pogut crear el directori d'exemples - + path: "%1" ruta: "%1" - + &Load ... &Carrega ... - + &Save as ... &Guardar com ... - + &Merge ... &Combinar ... - + &Reset &Restablir - + Serial Port: Port sèrie: - + Serial port used for CAT control Port sèrie utilitzat per al control CAT - + Network Server: Servidor de xarxa: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -460,12 +460,12 @@ Formats: [adreça IPv6]:port - + USB Device: Dispositiu USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -476,8 +476,8 @@ Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - - + + Invalid audio input device El dispositiu d'entrada d'àudio no és vàlid @@ -486,150 +486,156 @@ Format: El dispositiu de sortida d'àudio no és vàlid - + Invalid audio output device El dispositiu de sortida d'àudio no és vàlid - + Invalid PTT method El mètode de PTT no és vàlid - + Invalid PTT port El port del PTT no és vàlid - - + + Invalid Contest Exchange Intercanvi de concurs no vàlid - + You must input a valid ARRL Field Day exchange Has d’introduir un intercanvi de Field Day de l'ARRL vàlid - + You must input a valid ARRL RTTY Roundup exchange Has d’introduir un intercanvi vàlid de l'ARRL RTTY Roundup - + Reset Decode Highlighting Restableix Ressaltat de Descodificació - + Reset all decode highlighting and priorities to default values Restableix tot el ressaltat i les prioritats de descodificació als valors predeterminats - + WSJT-X Decoded Text Font Chooser Tipus de text de pantalla de descodificació WSJT-X - + Load Working Frequencies Càrrega les freqüències de treball - - - + + + Frequency files (*.qrg);;All files (*.*) Arxius de freqüència (*.qrg);;Tots els arxius (*.*) - + Replace Working Frequencies Substitueix les freqüències de treball - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? Segur que vols descartar les teves freqüències actuals de treball i reemplaçar-les per les carregades ? - + Merge Working Frequencies Combina les freqüències de treball - - - + + + Not a valid frequencies file L'arxiu de freqüències no és vàlid - + Incorrect file magic L'arxiu màgic es incorrecte - + Version is too new La versió és massa nova - + Contents corrupt Continguts corruptes - + Save Working Frequencies Desa les freqüències de treball - + Only Save Selected Working Frequencies Desa només les freqüències de treball seleccionades - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. Estàs segur que vols desar només les freqüències de treball seleccionades actualment? Fes clic a No per desar-ho tot. - + Reset Working Frequencies Restablir les freqüències de treball - + Are you sure you want to discard your current working frequencies and replace them with default ones? Segur que vols descartar les teves freqüències actuals de treball i reemplaçar-les per altres? - + Save Directory Directori de Guardar - + AzEl Directory Directori AzEl - + Rig control error Error de control de l'equip - + Failed to open connection to rig No s'ha pogut obrir la connexió al equip - + Rig failure Fallada en l'equip + + + Not found + audio device missing + + DXLabSuiteCommanderTransceiver @@ -1452,22 +1458,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency Afedueix Freqüència - + IARU &Region: Regió &IARU: - + &Mode: &Mode: - + &Frequency (MHz): &Freqüència en MHz.: @@ -2086,13 +2092,13 @@ Error(%2): %3 - - - - - - - + + + + + + + Band Activity Activitat a la banda @@ -2104,12 +2110,12 @@ Error(%2): %3 - - - - - - + + + + + + Rx Frequency Freqüència de RX @@ -2592,7 +2598,7 @@ No està disponible per als titulars de indicatiu no estàndard. - + Fox Fox @@ -3133,10 +3139,10 @@ La llista es pot mantenir a la configuració (F2). - - - - + + + + Random a l’atzar @@ -3542,7 +3548,7 @@ La llista es pot mantenir a la configuració (F2). TX desactivat després d’enviar 73 - + Runaway Tx watchdog Seguretat de TX @@ -3810,8 +3816,8 @@ La llista es pot mantenir a la configuració (F2). - - + + Receiving Rebent @@ -3865,164 +3871,169 @@ La llista es pot mantenir a la configuració (F2). S'ha produït un error al escriure l'arxiu WAV - + + Enumerating audio devices + + + + Configurations... Configuracions... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message Missatge - + Error Killing jt9.exe Process Error en matar el procés jt9.exe - + KillByName return code: %1 Codi de retorn de KillByName: %1 - + Error removing "%1" Error en eliminar "%1" - + Click OK to retry Fes clic a D'acord per tornar-ho a provar - - + + Improper mode Mode inadequat - - + + File Open Error Error al obrir l'arxiu - - - - - + + + + + Cannot open "%1" for append: %2 No es pot obrir "%1" per annexar: %2 - + Error saving c2 file Error en desar l'arxiu c2 - + Error in Sound Input Error a la entrada de so - + Error in Sound Output Error en la sortida de so - - - + + + Single-Period Decodes Descodificacions d'un sol període - - - + + + Average Decodes Mitjans descodificats - + Change Operator Canvi d'Operador - + New operator: Operador Nou: - + Status File Error Error d'estat de l'arxiu - - + + Cannot open "%1" for writing: %2 No es pot obrir "%1" per escriure: %2 - + Subprocess Error Error de subprocés - + Subprocess failed with exit code %1 Ha fallat el subprocés amb el codi de sortida %1 - - + + Running: %1 %2 Corrent: %1 %2 - + Subprocess error Error de subprocés - + Reference spectrum saved Guarda l'espectre de referència - + Invalid data in fmt.all at line %1 Les dades no són vàlides a fmt.all a la línia %1 - + Good Calibration Solution Solució de bona calibració - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -4035,17 +4046,17 @@ La llista es pot mantenir a la configuració (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Suprimeix les mesures de calibració - + The "fmt.all" file will be renamed as "fmt.bak" L'arxiu "fmt.all" serà renombrat com a "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -4053,27 +4064,27 @@ La llista es pot mantenir a la configuració (F2). "Els algoritmes, codi font, aspecte de WSJT-X i programes relacionats i les especificacions de protocol per als modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 són Copyright (C) 2001-2020 per un o més dels següents autors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q i altres membres del grup de desenvolupament de WSJT. " - + No data read from disk. Wrong file format? No es llegeixen dades del disc. Format de l'arxiu incorrecte ? - + Confirm Delete Confirma Esborrar - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Estàs segur que vols esborrar tots els arxius *.wav i *.c2"%1" ? - + Keyboard Shortcuts Dreceres de teclat - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4085,7 +4096,7 @@ La llista es pot mantenir a la configuració (F2). <tr><td><b>Alt+F4 </b></td><td>Exit program</td></tr> <tr><td><b>F5 </b></td><td>Display special mouse commands (Alt: transmit Tx5)</td></tr> <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</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 directory</td></tr> <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> @@ -4167,12 +4178,105 @@ La llista es pot mantenir a la configuració (F2). </table> - + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> + Keyboard shortcuts help window contents + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Atura TX, avortar QSO, esborra la cua del proper indicatiu</td></tr> + <tr><td><b>F1 </b></td><td>Guia de l'usuari en línia (Alt: transmetre TX6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Avís de drets d'autor</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>Quant a WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Obre la finestra de configuració (Alt: transmetre TX2)</td></tr> + <tr><td><b>F3 </b></td><td>Mostra les dreceres del teclat (Alt: transmetre TX3)</td></tr> + <tr><td><b>F4 </b></td><td>Esborra l'indicatiu de DX, Locator DX, Missatges de TX1-4 (Alt: transmetre TX4)</td></tr> + <tr><td><b>Alt+F4 </b></td><td>Surt del programa</td></tr> + <tr><td><b>F5 </b></td><td>Mostra les ordres especials del ratolí (Alt: transmetre TX5)</td></tr> + <tr><td><b>F6 </b></td><td>Obre l'arxiu següent al directori (Alt: commutar "Contesta al primer CQ")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Descodifica tots els arxius restants al directori</td></tr> + <tr><td><b>F7 </b></td><td>Mostra la finestra Mitjana de missatges</td></tr> + <tr><td><b>F11 </b></td><td>Baixa la freqüència de RX 1 Hz</td></tr> + <tr><td><b>Ctrl+F11 </b></td><td>Mou les freqüències de RX i TX idèntiques cap avall 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Mou la freqüència de TX cap avall 60 Hz en FT8 o bé 90 Hz en FT4</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Baixa la freqüència de marcatge 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Mou la freqüència de RX cap amunt 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Mou les freqüències de RX i TX idèntiques cap amunt 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Mou la freqüència de TX cap amunt 60 Hz en FT8 o bé 90 Hz en FT4</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Mou la freqüència de marcatge cap amunt 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Configura ara la transmissió a aquest número en Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Configura la propera transmissió a aquest número en Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Commuta l'estat "El millor S+P"</td></tr> + <tr><td><b>Alt+C </b></td><td>Commuta "Contesta al primer CQ" a la casella de selecció</td></tr> + <tr><td><b>Alt+D </b></td><td>Torna a descodificar a la freqüència del QSO</td></tr> + <tr><td><b>Shift+D </b></td><td>Descodificació completa (ambdues finestres)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Activa el periòde de TX parell/senar</td></tr> + <tr><td><b>Shift+E </b></td><td>Desactiva el periòde de TX parell/senar</td></tr> + <tr><td><b>Alt+E </b></td><td>Esborra</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edita el quadre de missatges de text lliure</td></tr> + <tr><td><b>Alt+G </b></td><td>Genera missatges estàndard</td></tr> + <tr><td><b>Alt+H </b></td><td>Parar TX</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Cerca un indicatiu a la base de dades, genera missatges estàndard</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Activa TX</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Obre un arxiu .wav</td></tr> + <tr><td><b>Alt+O </b></td><td>Canvia d'operador</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log de QSOs</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Utilitza el missatge TX4 de RRR (excepte a FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Utilitza el missatge TX4 de RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Deixa de monitoritzar</td></tr> + <tr><td><b>Alt+T </b></td><td>Commuta l'estat de la sintonització</td></tr> + <tr><td><b>Alt+Z </b></td><td>Esborra l'estat del descodificador penjat</td></tr> +</table> + + + Special Mouse Commands Ordres especials del ratolí - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4238,42 +4342,42 @@ La llista es pot mantenir a la configuració (F2). </table> - + No more files to open. No s’obriran més arxius. - + Spotting to PSK Reporter unavailable No hi ha espots a PSK Reporter - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Tria una altra freqüència de TX. El WSJT-X no transmetrà de manera conscient un altre mode a la sub-banda WSPR a 30 m. - + WSPR Guard Band Banda de Guàrdia WSPR - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Tria una altra freqüència de treball. WSJT-X no funcionarà en mode Fox a les sub-bandes FT8 estàndard. - + Fox Mode warning Avís de mode Fox - + Last Tx: %1 Últim TX: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4284,120 +4388,120 @@ Per fer-ho, comprova "Activitat operativa especial" i Concurs EU VHF a la Configuració | Pestanya avançada. - + Should you switch to ARRL Field Day mode? Has de canviar al mode de Field Day de l'ARRL ? - + Should you switch to RTTY contest mode? Has de canviar al mode de concurs RTTY? - - - - + + + + Add to CALL3.TXT Afegeix a CALL3.TXT - + Please enter a valid grid locator Introduïu un locator vàlid - + Cannot open "%1" for read/write: %2 No es pot obrir "%1" per llegir o escriure: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 ja és a CALL3.TXT, vols substituir-lo ? - + Warning: DX Call field is empty. Avís: el camp de indicatiu DX està buit. - + Log file error Error a l'arxiu de log - + Cannot open "%1" No es pot obrir "%1" - + Error sending log to N1MM Error al enviar el log a N1MM - + Write returned "%1" Escriptura retornada "%1" - + Stations calling DXpedition %1 Estacions que criden a DXpedition %1 - + Hound Hound - + Tx Messages Missatges de TX - - - + + + Confirm Erase Confirma Esborrar - + Are you sure you want to erase file ALL.TXT? Estàs segur que vols esborrar l'arxiu ALL.TXT ? - - + + Confirm Reset Confirma que vols Restablir - + Are you sure you want to erase your contest log? Estàs segur que vols esborrar el log del concurs ? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Si fas això, suprimiràs tots els registres de QSO del concurs actual. Es conservaran a l'arxiu de log ADIF, però no es podran exportar al log de Cabrillo. - + Cabrillo Log saved Log Cabrillo desat - + Are you sure you want to erase file wsjtx_log.adi? Estàs segur que vols esborrar l'arxiu wsjtx_log.adi ? - + Are you sure you want to erase the WSPR hashtable? Estàs segur que vols esborrar la taula del WSPR ? @@ -4406,60 +4510,60 @@ ja és a CALL3.TXT, vols substituir-lo ? Les característiques de VHF tenen un avís - + Tune digital gain Guany de sintonització digital - + Transmit digital gain Guany digital de transmissió - + Prefixes Prefixos - + Network Error Error de xarxa - + Error: %1 UDP server %2:%3 Error: %1 UDP server %2:%3 - + File Error Error a l'arxiu - + Phase Training Disabled Entrenament de fase Desactivat - + Phase Training Enabled Entrenament de fase activat - + WD:%1m WD:%1m - - + + Log File Error Error a l'arxiu de log - + Are you sure you want to clear the QSO queues? Estàs segur que vols esborrar les cues de QSO ? @@ -4942,22 +5046,22 @@ Error(%2): %3 StationDialog - + Add Station Afegir estació - + &Band: &Banda: - + &Offset (MHz): &Desplaçament en MHz: - + &Antenna: &Antena: @@ -5955,7 +6059,7 @@ interfície de ràdio funcioni correctament. Targeta de so - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5968,46 +6072,46 @@ desactivats, en cas contrari emetreu els sons del sistema generats durant els períodes de transmissió. - + Select the audio CODEC to use for receiving. Selecciona el CODEC d'àudio que cal utilitzar per rebre. - + &Input: &Entrada: - + Select the channel to use for receiving. Selecciona el canal a utilitzar per a rebre. - - + + Mono Mono - - + + Left Esquerra - - + + Right Dreta - - + + Both Tots dos - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -6023,7 +6127,7 @@ els dos canals. Activa les funcions de VHF i submode - + Ou&tput: Sor&tida: diff --git a/translations/wsjtx_da.ts b/translations/wsjtx_da.ts index 277af77d4..bb9984204 100644 --- a/translations/wsjtx_da.ts +++ b/translations/wsjtx_da.ts @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete &Slet - - + + &Insert ... &indsæt ... - + Failed to create save directory Fejl ved oprettelse af mappe til at gemme i - + path: "%1% sti: "%1% - + Failed to create samples directory Fejl i oprettelsen af mappe til eksempler - + path: "%1" sti: "%1" - + &Load ... &Hent ... - + &Save as ... &Gem som ... - + &Merge ... &Indflette ... - + &Reset &Reset - + Serial Port: Seriel Port: - + Serial port used for CAT control Seriel port til CAT kontrol - + Network Server: Netværk Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -452,12 +452,12 @@ Formater: [IPv6-address]:port - + USB Device: USB Enhed: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -468,8 +468,8 @@ Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - - + + Invalid audio input device Foekert audio input enhed @@ -478,150 +478,156 @@ Format: Forkert audio output enhed - + Invalid audio output device Forkert Audio output Enhed - + Invalid PTT method Forkert PTT metode - + Invalid PTT port Forkert PTT port - - + + Invalid Contest Exchange Forkert Contest Udveksling - + You must input a valid ARRL Field Day exchange Indsæt et valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange Indsæt et valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting Nulstil dekode markering - + Reset all decode highlighting and priorities to default values Indstil alle dekode markeringer og prioriteringer til default - + WSJT-X Decoded Text Font Chooser WSJT-X Dekodet tekst Font vælger - + Load Working Frequencies Hent Frekvens liste - - - + + + Frequency files (*.qrg);;All files (*.*) Frekvens fil *.qrg);;All files (*.*) - + Replace Working Frequencies Erstat frekvensliste - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? Er du sikker på du vil kassere dine nuværende frekvensliste og erstatte den med denne frekvensliste? - + Merge Working Frequencies Indflet Frevens liste - - - + + + Not a valid frequencies file Ikke en gyldig Frekvens liste fil - + Incorrect file magic Forkert fil Magic - + Version is too new Version for ny - + Contents corrupt Inhold ugyldigt - + Save Working Frequencies Gem frekvens liste - + Only Save Selected Working Frequencies Gemmer kun de valgte frekvenser til listen - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. Er du sikker på du kun vil gemme de valgte frekvenser i Frekvenslisten. Klik nej for gemme alle. - + Reset Working Frequencies Reset frekvens liste - + Are you sure you want to discard your current working frequencies and replace them with default ones? Er du sikker på du vil kassere dine nuværende frekvensliste og erstatte dem med standard frekvenser? - + Save Directory Gemme Mappe - + AzEl Directory AzEL Mappe - + Rig control error Radio kontrol fejl - + Failed to open connection to rig Fejl i etablering af forbindelse til radio - + Rig failure Radio fejl + + + Not found + audio device missing + + DXLabSuiteCommanderTransceiver @@ -1444,22 +1450,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency Tilføj Frekvens - + IARU &Region: IARU &Region: - + &Mode: &Mode: - + &Frequency (MHz): &Frekvens (Mhz): @@ -2086,13 +2092,13 @@ Fejl(%2): %3 - - - - - - - + + + + + + + Band Activity Bånd Aktivitet @@ -2104,12 +2110,12 @@ Fejl(%2): %3 - - - - - - + + + + + + Rx Frequency Rx frekvens @@ -2591,7 +2597,7 @@ Not available to nonstandard callsign holders. - + Fox Fox @@ -3133,10 +3139,10 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). - - - - + + + + Random Tilfældig @@ -3538,7 +3544,7 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). F7 - + Runaway Tx watchdog Runaway Tx vagthund @@ -3806,8 +3812,8 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). - - + + Receiving Modtager @@ -3861,164 +3867,169 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). Fejl ved skrivning af WAV Fil - + + Enumerating audio devices + + + + Configurations... Konfigurationer... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message Meddelse - + Error Killing jt9.exe Process Fejl ved lukning af jt9.exe processen - + KillByName return code: %1 KillByName return code: %1 - + Error removing "%1" Fejl ved fjernelse af "%1" - + Click OK to retry Klik OK for at prøve igen - - + + Improper mode Forkert mode - - + + File Open Error Fejl ved åbning af fil - - - - - + + + + + Cannot open "%1" for append: %2 Kan ikke åbne "%1" for at tilføje: %2 - + Error saving c2 file Fejl da c2 fil skulle gemmes - + Error in Sound Input Fejl i Audio input - + Error in Sound Output Fejl i Audio output - - - + + + Single-Period Decodes Enkel-Periode Dekodning - - - + + + Average Decodes Gennemsnitlig dekodning - + Change Operator Skift Operatør - + New operator: Ny Operatør: - + Status File Error Fejl i status Fil - - + + Cannot open "%1" for writing: %2 Kan ikke åbne "%1" for at skrive: %2 - + Subprocess Error Underprocess fejl - + Subprocess failed with exit code %1 Underprocess fejlede med fejlkode %1 - - + + Running: %1 %2 Kører: %1 %2 - + Subprocess error Underprocess fejl - + Reference spectrum saved Reference spectrum gemt - + Invalid data in fmt.all at line %1 Forkert data i fmt.all ved linje %1 - + Good Calibration Solution God Kalibrerings løsning - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -4031,17 +4042,17 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). %9%L10 Hz</pre> - + Delete Calibration Measurements Slet Kalibrerings måling - + The "fmt.all" file will be renamed as "fmt.bak" Filen fmt.all vil blive omdøbt til "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." @@ -4049,27 +4060,76 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). "Algoritmerne, kildekoden, udseendet og funktionen af ​​WSJT-X og relaterede programmer og protokolspecifikationer for Mode FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 er Copyright (C) 2001-2020 af en eller flere af følgende forfattere: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; og andre medlemmer af WSJT Development Group. " - + No data read from disk. Wrong file format? Ingen data indlæst. Forkert fil format? - + Confirm Delete Bekræft sletning - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? Er du sikker på du vil slette alle *.wav og *.c2 filer i "%1"? - + Keyboard Shortcuts Tastetur Genveje - + + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> + Keyboard shortcuts help window contents + + + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4116,7 +4176,7 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> </table> Keyboard shortcuts help window contents - <table cellspacing=1> + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> @@ -4163,12 +4223,12 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). </table> - + Special Mouse Commands Specielle muse kommandoer - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4234,42 +4294,42 @@ listen. Makro listen kan også ændfres i Inderstillinger (F2). </table> - + No more files to open. Ikke flere filer at åbne. - + Spotting to PSK Reporter unavailable Afsendelse af Spot til PSK Reporter ikke muligt - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. Venligst vælg en ande Tx frekvens. WSJT-X vil ikke sende med en anden Mode i WSPR området på 30m. - + WSPR Guard Band WSPR Guard bånd - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. Vælg venligst en anden VFO frekvens. WSJT-x vil ikke operere med Fox mode i standard FT8 områder - + Fox Mode warning Fox Mode advarsel - + Last Tx: %1 Senest Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4280,120 +4340,120 @@ For at gøre dette skal du markere 'Speciel aktivitet' og 'EU VHF-Contest' på indstillingerne | Avanceret fane. - + Should you switch to ARRL Field Day mode? Bør du skifte til ARRL Field Day mode? - + Should you switch to RTTY contest mode? Bør du skifte til RTTY Contest mode? - - - - + + + + Add to CALL3.TXT Tilføj til CALL3.TXT - + Please enter a valid grid locator Indsæt en gyldig Grid lokator - + Cannot open "%1" for read/write: %2 Kan ikke åbne "%1" for Læse/Skrive: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 er allerede i CALL3.TXT. Vil du erstatte den? - + Warning: DX Call field is empty. Advarsel: DX Call feltet er tomt. - + Log file error Log fil fejl - + Cannot open "%1" Kan ikke åbne "%1" - + Error sending log to N1MM Fejl ved afsendelse af log til N1MM - + Write returned "%1" Skrivning vendte tilbage med "%1" - + Stations calling DXpedition %1 Stationer som kalder DXpedition %1 - + Hound Hound - + Tx Messages Tx meddelse - - - + + + Confirm Erase Bekræft Slet - + Are you sure you want to erase file ALL.TXT? Er du sikker på du vil slette filen ALL.TXT? - - + + Confirm Reset Bekræft Reset - + Are you sure you want to erase your contest log? Er du sikker på du vil slette din contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. Gør du dette vil alle QSOer for pågældende contest blive slettet. De bliver dog gemt i en ADIF fik, men det vil ikke være muligt at eksportere dem som Cabrillo log. - + Cabrillo Log saved Cabrillo Log gemt - + Are you sure you want to erase file wsjtx_log.adi? Er du sikker på du vil slette filen wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? Er du sikker på du vil slette WSPR Hash tabellen? @@ -4402,60 +4462,60 @@ er allerede i CALL3.TXT. Vil du erstatte den? VHF feature advarsel - + Tune digital gain Tune digital gain - + Transmit digital gain Transmit digital gain - + Prefixes Prefixer - + Network Error Netværks Fejl - + Error: %1 UDP server %2:%3 Error: %1 UDP server %2:%3 - + File Error Fil fejl - + Phase Training Disabled Phase Training Deaktiveret - + Phase Training Enabled Phase Training Aktiveret - + WD:%1m WD:%1m - - + + Log File Error Log Fil Fejl - + Are you sure you want to clear the QSO queues? Er du sikker du vil slette QSO køen? @@ -4938,22 +4998,22 @@ Fejl(%2): %3 StationDialog - + Add Station Tilføj Station - + &Band: &Bånd: - + &Offset (MHz): &Offset (Mhz): - + &Antenna: &Antenne: @@ -5941,7 +6001,7 @@ radio interface opfører sig som forventet. Lydkort - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5959,46 +6019,46 @@ transmissionsperioder. Dage siden sidste upload - + Select the audio CODEC to use for receiving. Vælg Audio CODEC for modtagelse. - + &Input: &Input: - + Select the channel to use for receiving. Vælg kanal til modtagelse. - - + + Mono Mono - - + + Left Venstre - - + + Right Højre - - + + Both Begge - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -6014,7 +6074,7 @@ eller begge. Aktiver VHF and submode funktioner - + Ou&tput: Ou&tput: diff --git a/translations/wsjtx_en.ts b/translations/wsjtx_en.ts index faceee0fb..c8423e728 100644 --- a/translations/wsjtx_en.ts +++ b/translations/wsjtx_en.ts @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete - - + + &Insert ... - + Failed to create save directory - + path: "%1% - + Failed to create samples directory - + path: "%1" - + &Load ... - + &Save as ... - + &Merge ... - + &Reset - + Serial Port: - + Serial port used for CAT control - + Network Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -447,12 +447,12 @@ Formats: - + USB Device: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -460,156 +460,162 @@ Format: - - + + Invalid audio input device - + Invalid audio output device - + Invalid PTT method - + Invalid PTT port - - + + Invalid Contest Exchange - + You must input a valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting - + Reset all decode highlighting and priorities to default values - + WSJT-X Decoded Text Font Chooser - + Load Working Frequencies - - - + + + Frequency files (*.qrg);;All files (*.*) - + Replace Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - + Merge Working Frequencies - - - + + + Not a valid frequencies file - + Incorrect file magic - + Version is too new - + Contents corrupt - + Save Working Frequencies - + Only Save Selected Working Frequencies - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. - + Reset Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with default ones? - + Save Directory - + AzEl Directory - + Rig control error - + Failed to open connection to rig - + Rig failure + + + Not found + audio device missing + + DXLabSuiteCommanderTransceiver @@ -1420,22 +1426,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency - + IARU &Region: - + &Mode: - + &Frequency (MHz): @@ -2028,13 +2034,13 @@ Error(%2): %3 - - - - - - - + + + + + + + Band Activity @@ -2046,12 +2052,12 @@ Error(%2): %3 - - - - - - + + + + + + Rx Frequency @@ -2630,7 +2636,7 @@ Not available to nonstandard callsign holders. - + Fox @@ -3100,10 +3106,10 @@ list. The list can be maintained in Settings (F2). - - - - + + + + Random @@ -3339,7 +3345,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog @@ -3571,8 +3577,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving @@ -3622,163 +3628,168 @@ list. The list can be maintained in Settings (F2). - + + Enumerating audio devices + + + + Configurations... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message - + Error Killing jt9.exe Process - + KillByName return code: %1 - + Error removing "%1" - + Click OK to retry - - + + Improper mode - - + + File Open Error - - - - - + + + + + Cannot open "%1" for append: %2 - + Error saving c2 file - + Error in Sound Input - + Error in Sound Output - - - + + + Single-Period Decodes - - - + + + Average Decodes - + Change Operator - + New operator: - + Status File Error - - + + Cannot open "%1" for writing: %2 - + Subprocess Error - + Subprocess failed with exit code %1 - - + + Running: %1 %2 - + Subprocess error - + Reference spectrum saved - + Invalid data in fmt.all at line %1 - + Good Calibration Solution - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3787,44 +3798,44 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements - + The "fmt.all" file will be renamed as "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? - + Confirm Delete - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + Keyboard Shortcuts - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -3836,7 +3847,7 @@ list. The list can be maintained in Settings (F2). <tr><td><b>Alt+F4 </b></td><td>Exit program</td></tr> <tr><td><b>F5 </b></td><td>Display special mouse commands (Alt: transmit Tx5)</td></tr> <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</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 directory</td></tr> <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> @@ -3874,12 +3885,12 @@ list. The list can be maintained in Settings (F2). - + Special Mouse Commands - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -3915,42 +3926,42 @@ list. The list can be maintained in Settings (F2). - + No more files to open. - + Spotting to PSK Reporter unavailable - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + Last Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3958,176 +3969,176 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - + Stations calling DXpedition %1 - + Hound - + Tx Messages - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - + WD:%1m - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -4596,22 +4607,22 @@ Error(%2): %3 StationDialog - + Add Station - + &Band: - + &Offset (MHz): - + &Antenna: @@ -5561,7 +5572,7 @@ radio interface behave as expected. - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5575,46 +5586,46 @@ transmitting periods. - + Select the audio CODEC to use for receiving. - + &Input: - + Select the channel to use for receiving. - - + + Mono - - + + Left - - + + Right - - + + Both - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5637,7 +5648,7 @@ both here. - + Ou&tput: diff --git a/translations/wsjtx_en_GB.ts b/translations/wsjtx_en_GB.ts index 62ec25ed2..3079f2a8c 100644 --- a/translations/wsjtx_en_GB.ts +++ b/translations/wsjtx_en_GB.ts @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete - - + + &Insert ... - + Failed to create save directory - + path: "%1% - + Failed to create samples directory - + path: "%1" - + &Load ... - + &Save as ... - + &Merge ... - + &Reset - + Serial Port: - + Serial port used for CAT control - + Network Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -447,12 +447,12 @@ Formats: - + USB Device: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -460,156 +460,162 @@ Format: - - + + Invalid audio input device - + Invalid audio output device - + Invalid PTT method - + Invalid PTT port - - + + Invalid Contest Exchange - + You must input a valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting - + Reset all decode highlighting and priorities to default values - + WSJT-X Decoded Text Font Chooser - + Load Working Frequencies - - - + + + Frequency files (*.qrg);;All files (*.*) - + Replace Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - + Merge Working Frequencies - - - + + + Not a valid frequencies file - + Incorrect file magic - + Version is too new - + Contents corrupt - + Save Working Frequencies - + Only Save Selected Working Frequencies - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. - + Reset Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with default ones? - + Save Directory - + AzEl Directory - + Rig control error - + Failed to open connection to rig - + Rig failure + + + Not found + audio device missing + + DXLabSuiteCommanderTransceiver @@ -1420,22 +1426,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency - + IARU &Region: - + &Mode: - + &Frequency (MHz): @@ -2028,13 +2034,13 @@ Error(%2): %3 - - - - - - - + + + + + + + Band Activity @@ -2046,12 +2052,12 @@ Error(%2): %3 - - - - - - + + + + + + Rx Frequency @@ -2630,7 +2636,7 @@ Not available to nonstandard callsign holders. - + Fox @@ -3100,10 +3106,10 @@ list. The list can be maintained in Settings (F2). - - - - + + + + Random @@ -3339,7 +3345,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog @@ -3571,8 +3577,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving @@ -3622,163 +3628,168 @@ list. The list can be maintained in Settings (F2). - + + Enumerating audio devices + + + + Configurations... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message - + Error Killing jt9.exe Process - + KillByName return code: %1 - + Error removing "%1" - + Click OK to retry - - + + Improper mode - - + + File Open Error - - - - - + + + + + Cannot open "%1" for append: %2 - + Error saving c2 file - + Error in Sound Input - + Error in Sound Output - - - + + + Single-Period Decodes - - - + + + Average Decodes - + Change Operator - + New operator: - + Status File Error - - + + Cannot open "%1" for writing: %2 - + Subprocess Error - + Subprocess failed with exit code %1 - - + + Running: %1 %2 - + Subprocess error - + Reference spectrum saved - + Invalid data in fmt.all at line %1 - + Good Calibration Solution - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3787,44 +3798,44 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements - + The "fmt.all" file will be renamed as "fmt.bak" - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? - + Confirm Delete - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? - + Keyboard Shortcuts - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -3836,7 +3847,7 @@ list. The list can be maintained in Settings (F2). <tr><td><b>Alt+F4 </b></td><td>Exit program</td></tr> <tr><td><b>F5 </b></td><td>Display special mouse commands (Alt: transmit Tx5)</td></tr> <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</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 directory</td></tr> <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> @@ -3874,12 +3885,12 @@ list. The list can be maintained in Settings (F2). - + Special Mouse Commands - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -3915,42 +3926,42 @@ list. The list can be maintained in Settings (F2). - + No more files to open. - + Spotting to PSK Reporter unavailable - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - + WSPR Guard Band - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - + Fox Mode warning - + Last Tx: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -3958,176 +3969,176 @@ To do so, check 'Special operating activity' and - + Should you switch to ARRL Field Day mode? - + Should you switch to RTTY contest mode? - - - - + + + + Add to CALL3.TXT - + Please enter a valid grid locator - + Cannot open "%1" for read/write: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? - + Warning: DX Call field is empty. - + Log file error - + Cannot open "%1" - + Error sending log to N1MM - + Write returned "%1" - + Stations calling DXpedition %1 - + Hound - + Tx Messages - - - + + + Confirm Erase - + Are you sure you want to erase file ALL.TXT? - - + + Confirm Reset - + Are you sure you want to erase your contest log? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. - + Cabrillo Log saved - + Are you sure you want to erase file wsjtx_log.adi? - + Are you sure you want to erase the WSPR hashtable? - + Tune digital gain - + Transmit digital gain - + Prefixes - + Network Error - + Error: %1 UDP server %2:%3 - + File Error - + Phase Training Disabled - + Phase Training Enabled - + WD:%1m - - + + Log File Error - + Are you sure you want to clear the QSO queues? @@ -4596,22 +4607,22 @@ Error(%2): %3 StationDialog - + Add Station - + &Band: - + &Offset (MHz): - + &Antenna: @@ -5551,7 +5562,7 @@ radio interface behave as expected. - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5565,46 +5576,46 @@ transmitting periods. - + Select the audio CODEC to use for receiving. - + &Input: - + Select the channel to use for receiving. - - + + Mono - - + + Left - - + + Right - - + + Both - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5617,7 +5628,7 @@ both here. - + Ou&tput: diff --git a/translations/wsjtx_ja.ts b/translations/wsjtx_ja.ts index 33e3c4528..a6a322402 100644 --- a/translations/wsjtx_ja.ts +++ b/translations/wsjtx_ja.ts @@ -368,75 +368,75 @@ Configuration::impl - - - + + + &Delete 削除(&D) - - + + &Insert ... 挿入(&I)... - + Failed to create save directory 保存のためのフォルダを作成できません - + path: "%1% パス: "%1% - + Failed to create samples directory サンプルフォルダを作成できません - + path: "%1" パス: "%1" - + &Load ... 読み込み(&L)... - + &Save as ... 名前を付けて保存(&S)... - + &Merge ... 結合(&M)... - + &Reset リセット(&R) - + Serial Port: シリアルポート: - + Serial port used for CAT control CAT制御用シリアルポート - + Network Server: ネットワークサーバ: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -451,12 +451,12 @@ Formats: [IPv6-アドレス]:ポート番号 - + USB Device: USBデバイス: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -467,8 +467,8 @@ Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - - + + Invalid audio input device 無効なオーディオ入力デバイス @@ -477,150 +477,156 @@ Format: 無効なオーディオ出力デバイス - + Invalid audio output device 無効なオーディオ出力デバイス - + Invalid PTT method 無効なPTT方式 - + Invalid PTT port 無効なPTT用ポート - - + + Invalid Contest Exchange 無効なコンテストナンバー - + You must input a valid ARRL Field Day exchange 正しいARRLフィールドデーコンテストナンバーを入力しなければなりません - + You must input a valid ARRL RTTY Roundup exchange 正しいARRL RTTY ラウンドアップのコンテストナンバーを入力しなければなりません - + Reset Decode Highlighting デコードハイライトをリセット - + Reset all decode highlighting and priorities to default values すべてのハイライトと優先順位設定をデフォルトへ戻す - + WSJT-X Decoded Text Font Chooser WSJT-Xのデコード出力用フォント選択 - + Load Working Frequencies 使用周波数を読み込み - - - + + + Frequency files (*.qrg);;All files (*.*) 周波数ファイル (*.qrg);;全ファイル (*.*) - + Replace Working Frequencies 使用周波数を置き換え - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? 本当に現在の周波数を読み込んだ周波数で置き換えてもいいですか? - + Merge Working Frequencies 使用周波数を追加併合 - - - + + + Not a valid frequencies file 正しい周波数ファイルではない - + Incorrect file magic 無効なファイルマジック - + Version is too new バージョンが新しすぎます - + Contents corrupt 中身が壊れています - + Save Working Frequencies 使用周波数を保存 - + Only Save Selected Working Frequencies 選択した使用周波数のみ保存 - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. 選択した使用周波数だけを保存してもいいですか。全部を保存したいときはNoをクリックしてください。 - + Reset Working Frequencies 使用周波数をリセット - + Are you sure you want to discard your current working frequencies and replace them with default ones? 本当に現在の使用周波数を破棄してデフォルト周波数と置き換えてもよいですか? - + Save Directory フォルダーを保存 - + AzEl Directory AzElフォルダー - + Rig control error 無線機コントロールエラー - + Failed to open connection to rig 無線機へ接続できません - + Rig failure 無線機エラー + + + Not found + audio device missing + + DXLabSuiteCommanderTransceiver @@ -1443,22 +1449,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency 周波数を追加 - + IARU &Region: IARU地域(&R): - + &Mode: モード(&M): - + &Frequency (MHz): 周波数MHz(&F): @@ -2077,13 +2083,13 @@ Error(%2): %3 - - - - - - - + + + + + + + Band Activity バンド状況 @@ -2095,12 +2101,12 @@ Error(%2): %3 - - - - - - + + + + + + Rx Frequency 受信周波数 @@ -2583,7 +2589,7 @@ Not available to nonstandard callsign holders. - + Fox Fox @@ -3111,10 +3117,10 @@ ENTERを押してテキストを登録リストに追加. - - - - + + + + Random ランダム @@ -3503,7 +3509,7 @@ ENTERを押してテキストを登録リストに追加. 73を送った後送信禁止 - + Runaway Tx watchdog Txウオッチドッグ発令 @@ -3767,8 +3773,8 @@ ENTERを押してテキストを登録リストに追加. - - + + Receiving 受信中 @@ -3822,164 +3828,169 @@ ENTERを押してテキストを登録リストに追加. WAVファイルを書き込みできません - + + Enumerating audio devices + + + + Configurations... コンフィグレーション... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message メッセージ - + Error Killing jt9.exe Process jt9.exeプロセスを終了できません - + KillByName return code: %1 KillByNameリターンコード: %1 - + Error removing "%1" "%1"を削除できません - + Click OK to retry OKを押して再試行 - - + + Improper mode 不適切なモード - - + + File Open Error ファイルオープンエラー - - - - - + + + + + Cannot open "%1" for append: %2 "%2"を追加する"%1"が開けません - + Error saving c2 file c2ファイルを保存できません - + Error in Sound Input サウンド入力にエラー発生 - + Error in Sound Output サウンド出力にエラー発生 - - - + + + Single-Period Decodes シングルパスデコード - - - + + + Average Decodes 平均デコード - + Change Operator オペレータ交代 - + New operator: 新オペレータ: - + Status File Error ステータスファイルエラー - - + + Cannot open "%1" for writing: %2 %2を書き込むための"%1"が開けません - + Subprocess Error サブプロセスエラー - + Subprocess failed with exit code %1 サブプロセスエラー 終了コード %1 - - + + Running: %1 %2 実行中: %1 %2 - + Subprocess error サブプロセスエラー - + Reference spectrum saved 参照用スペクトラムを保存しました - + Invalid data in fmt.all at line %1 fmt.allの%1行目に無効なデータ - + Good Calibration Solution 較正良好 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3988,44 +3999,44 @@ ENTERを押してテキストを登録リストに追加. - + Delete Calibration Measurements 較正の測定結果を削除 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all"は"fmt.bak"に名前が変わります - + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: "The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - + No data read from disk. Wrong file format? ディスクからデータが読めません.フォーマットが合っていますか? - + Confirm Delete 削除確認 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? "%1"のすべての*.wavと*.c2ファイルを削除していいですか? - + Keyboard Shortcuts キーボードショートカット - + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -4037,7 +4048,7 @@ ENTERを押してテキストを登録リストに追加. <tr><td><b>Alt+F4 </b></td><td>Exit program</td></tr> <tr><td><b>F5 </b></td><td>Display special mouse commands (Alt: transmit Tx5)</td></tr> <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</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 directory</td></tr> <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> @@ -4119,12 +4130,105 @@ ENTERを押してテキストを登録リストに追加. </table> - + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> + <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> + <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</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 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr> + <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> + <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> + <tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> + <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr> + <tr><td><b>Alt+B </b></td><td>Toggle "Best S+P" status</td></tr> + <tr><td><b>Alt+C </b></td><td>Toggle "Call 1st" checkbox</td></tr> + <tr><td><b>Alt+D </b></td><td>Decode again at QSO frequency</td></tr> + <tr><td><b>Shift+D </b></td><td>Full decode (both windows)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>Turn on TX even/1st</td></tr> + <tr><td><b>Shift+E </b></td><td>Turn off TX even/1st</td></tr> + <tr><td><b>Alt+E </b></td><td>Erase</td></tr> + <tr><td><b>Ctrl+F </b></td><td>Edit the free text message box</td></tr> + <tr><td><b>Alt+G </b></td><td>Generate standard messages</td></tr> + <tr><td><b>Alt+H </b></td><td>Halt Tx</td></tr> + <tr><td><b>Ctrl+L </b></td><td>Lookup callsign in database, generate standard messages</td></tr> + <tr><td><b>Alt+M </b></td><td>Monitor</td></tr> + <tr><td><b>Alt+N </b></td><td>Enable Tx</td></tr> + <tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr> + <tr><td><b>Alt+O </b></td><td>Change operator</td></tr> + <tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr> + <tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr> + <tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr> + <tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr> + <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> +</table> + Keyboard shortcuts help window contents + <table cellspacing=1> + <tr><td><b>Esc </b></td><td>送信中止 QSO終了, 次の送信をクリア</td></tr> + <tr><td><b>F1 </b></td><td>オンラインユーザーガイド (Alt: transmit Tx6)</td></tr> + <tr><td><b>Shift+F1 </b></td><td>著作権表示</td></tr> + <tr><td><b>Ctrl+F1 </b></td><td>WSJT-Xについて</td></tr> + <tr><td><b>F2 </b></td><td>設定ウィンドウを開く (Alt: transmit Tx2)</td></tr> + <tr><td><b>F3 </b></td><td>キーボードショートカットを表示 (Alt: transmit Tx3)</td></tr> + <tr><td><b>F4 </b></td><td>DXコール、グリッド、送信メッセージ1~4をクリア (Alt: transmit Tx4)</td></tr> + <tr><td><b>Alt+F4 </b></td><td>プログラム終了</td></tr> + <tr><td><b>F5 </b></td><td>特別なマウスコマンドを表示 (Alt: transmit Tx5)</td></tr> + <tr><td><b>F6 </b></td><td>ディレクトリ内の次のファイルを開く (Alt: toggle "Call 1st")</td></tr> + <tr><td><b>Shift+F6 </b></td><td>ディレクトリ内の残りのファイルをすべてデコード</td></tr> + <tr><td><b>F7 </b></td><td>メッセージ平均化ウィンドウを表示</td></tr> + <tr><td><b>F11 </b></td><td>受信周波数を1 Hz下げる</td></tr> + <tr><td><b>Ctrl+F11 </b></td><td>送受信周波数を1 Hz下げる</td></tr> + <tr><td><b>Shift+F11 </b></td><td>送信周波数を60 Hz (FT8) または 90 Hz (FT4)下げる</td></tr> + <tr><td><b>Ctrl+Shift+F11 </b></td><td>ダイアル周波数を2000 Hz下げる</td></tr> + <tr><td><b>F12 </b></td><td>受信周波数を1 Hz<上げる/td></tr> + <tr><td><b>Ctrl+F12 </b></td><td>送受信周波数を1 Hz上げる</td></tr> + <tr><td><b>Shift+F12 </b></td><td>送信周波数を60 Hz (FT8) または 90 Hz (FT4)上げる</td></tr> + <tr><td><b>Ctrl+Shift+F12 </b></td><td>ダイアル周波数を2000 Hz上げる</td></tr> + <tr><td><b>Alt+1-6 </b></td><td>この番号をタブ1の送信中番号へセット</td></tr> + <tr><td><b>Ctl+1-6 </b></td><td>この番号をタブ1の次回送信番号へセット</td></tr> + <tr><td><b>Alt+B </b></td><td> "Best S+P" ステータスをトグル</td></tr> + <tr><td><b>Alt+C </b></td><td> "Call 1st" チェックボックスをトグル</td></tr> + <tr><td><b>Alt+D </b></td><td>QSO周波数でもう一度デコード</td></tr> + <tr><td><b>Shift+D </b></td><td>フルデコード(両ウィンドウ)</td></tr> + <tr><td><b>Ctrl+E </b></td><td>TX even/1stをオン</td></tr> + <tr><td><b>Shift+E </b></td><td>TX even/1stをオフ</td></tr> + <tr><td><b>Alt+E </b></td><td>消去</td></tr> + <tr><td><b>Ctrl+F </b></td><td>フリーテキストメッセージボックスを編集</td></tr> + <tr><td><b>Alt+G </b></td><td>標準メッセージを生成</td></tr> + <tr><td><b>Alt+H </b></td><td>送信中断</td></tr> + <tr><td><b>Ctrl+L </b></td><td>データベースでコールサインを検索, 標準メッセージを生成</td></tr> + <tr><td><b>Alt+M </b></td><td>受信</td></tr> + <tr><td><b>Alt+N </b></td><td>送信許可</td></tr> + <tr><td><b>Ctrl+O </b></td><td>.wav ファイルを開く</td></tr> + <tr><td><b>Alt+O </b></td><td>オペレータ交代</td></tr> + <tr><td><b>Alt+Q </b></td><td>QSOをログイン</td></tr> + <tr><td><b>Ctrl+R </b></td><td>Tx4 メッセージをRRRに(FT4以外)</td></tr> + <tr><td><b>Alt+R </b></td><td>Tx4 メッセージをRR73に</td></tr> + <tr><td><b>Alt+S </b></td><td>受信停止</td></tr> + <tr><td><b>Alt+T </b></td><td>Tune ステータスをトグル</td></tr> + <tr><td><b>Alt+Z </b></td><td>デコードステータスをクリア</td></tr> +</table> + + + Special Mouse Commands 特別なマウス操作 - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -4190,42 +4294,42 @@ ENTERを押してテキストを登録リストに追加. </table> - + No more files to open. これ以上開くファイルがありません. - + Spotting to PSK Reporter unavailable 現在PSK Reporterにスポットできません - + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. 他の送信周波数を使ってください. WSJT-Xは30mバンドのWSPRサブバンド中の他のモードを受信せずに送信してしまいます. - + WSPR Guard Band WSPRガードバンド - + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. 他のダイヤル周波数を使ってください. WSJT-XはFT8の標準サブバンドでFoxモードを使えません。 - + Fox Mode warning Foxモード警告 - + Last Tx: %1 最終送信: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4235,120 +4339,120 @@ To do so, check 'Special operating activity' and 設定|詳細タブで設定変更してください. - + Should you switch to ARRL Field Day mode? ARRLフィールドデーモードに切り替えますか? - + Should you switch to RTTY contest mode? RTTYコンテストモードに切り替えますか? - - - - + + + + Add to CALL3.TXT CALL3.TXTへ追加 - + Please enter a valid grid locator 有効なグリッドロケータを入力してください - + Cannot open "%1" for read/write: %2 %2を読み書きするための"%1"が開けません - + %1 is already in CALL3.TXT, do you wish to replace it? %1 がすでにCALL3.TXTにセットされています。置き換えますか? - + Warning: DX Call field is empty. 警告 DXコールが空白です. - + Log file error ログファイルエラー - + Cannot open "%1" "%1"を開けません - + Error sending log to N1MM N1MMへログを送れません - + Write returned "%1" 応答"%1"を書き込み - + Stations calling DXpedition %1 DXペディション %1を呼ぶ局 - + Hound Hound - + Tx Messages 送信メッセージ - - - + + + Confirm Erase 消去確認 - + Are you sure you want to erase file ALL.TXT? ALL.TXTファイルを消去してよいですか? - - + + Confirm Reset リセット確認 - + Are you sure you want to erase your contest log? コンテストログを消去していいですか? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 現在のコンテストのQSO記録をすべて消去します。ADIFログには記録されますがCabrilloログにエクスポートすることはできません. - + Cabrillo Log saved Cabrilloログ保存しました - + Are you sure you want to erase file wsjtx_log.adi? wsjtx_log.adiを消してもよいですか? - + Are you sure you want to erase the WSPR hashtable? WSPRのハッシュテーブルを消してもよいですか? @@ -4357,60 +4461,60 @@ is already in CALL3.TXT, do you wish to replace it? VHF機能警告 - + Tune digital gain チューンのデジタルゲイン - + Transmit digital gain 送信デジタルゲイン - + Prefixes プリフィックス - + Network Error ネットワークエラー - + Error: %1 UDP server %2:%3 エラー %1 UDPサーバー %2:%3 - + File Error ファイルエラー - + Phase Training Disabled 位相調整オフ - + Phase Training Enabled 位相調整オン - + WD:%1m WD:%1m - - + + Log File Error ログファイルエラー - + Are you sure you want to clear the QSO queues? QSO待ち行列をクリアしてもいいですか? @@ -4893,22 +4997,22 @@ Error(%2): %3 StationDialog - + Add Station 局を追加 - + &Band: バンド(&B): - + &Offset (MHz): オフセットMHz(&O): - + &Antenna: アンテナ(&A): @@ -5896,7 +6000,7 @@ radio interface behave as expected. サウンドカード - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5913,46 +6017,46 @@ transmitting periods. 最後にアップロードしてから経過した日数 - + Select the audio CODEC to use for receiving. 受信用オーディオコーデックを選択. - + &Input: 入力(&I): - + Select the channel to use for receiving. 受信用チャンネルを選択. - - + + Mono モノラル - - + + Left - - + + Right - - + + Both 両方 - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5967,7 +6071,7 @@ both here. VHFとサブモード機能をオン - + Ou&tput: 出力(&t): diff --git a/translations/wsjtx_zh.ts b/translations/wsjtx_zh.ts index 363f8e7d4..a6adb5bfc 100644 --- a/translations/wsjtx_zh.ts +++ b/translations/wsjtx_zh.ts @@ -368,75 +368,75 @@ Configuration::impl - - - + + + &Delete 删除(&D) - - + + &Insert ... 插入(&I) ... - + Failed to create save directory 无法创建保存目录 - + path: "%1% 目錄: "%1% - + Failed to create samples directory 无法创建示例目录 - + path: "%1" 目录: "%1" - + &Load ... 加载(&L) ... - + &Save as ... 另存为(&S) ... - + &Merge ... 合并(&M) ... - + &Reset 重置(&R) - + Serial Port: 串行端口: - + Serial port used for CAT control 用于CAT控制的串行端口 - + Network Server: 网络服务器: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -451,12 +451,12 @@ Formats: [IPv6-地址]:端口 - + USB Device: USB 设备: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -467,156 +467,162 @@ Format: [VID[:PID[:供应商[:产品]]]] - - + + Invalid audio input device 无效的音频输入设备 - + Invalid audio output device 无效的音频输出设备 - + Invalid PTT method 无效的PTT方法 - + Invalid PTT port 无效的PTT端口 - - + + Invalid Contest Exchange 无效的竞赛交换数据 - + You must input a valid ARRL Field Day exchange 您必须输入有效的 ARRL Field Day交换数据 - + You must input a valid ARRL RTTY Roundup exchange 您必须输入有效的 ARRL RTTY Roundup 交换数据 - + Reset Decode Highlighting 重置解码突出显示 - + Reset all decode highlighting and priorities to default values 将所有解码突出显示和优先级重置为默认值 - + WSJT-X Decoded Text Font Chooser WSJT-X 解码文本字体选择 - + Load Working Frequencies 载入工作频率 - - - + + + Frequency files (*.qrg);;All files (*.*) 频率文件 (*.qrg);;所有文件 (*.*) - + Replace Working Frequencies 替换工作频率 - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? 是否确实要放弃当前工作频率, 并将其替换为加载的频率? - + Merge Working Frequencies 合并工作频率 - - - + + + Not a valid frequencies file 不是有效的频率文件 - + Incorrect file magic 不正确的文件內容 - + Version is too new 版本太新 - + Contents corrupt 内容已损坏 - + Save Working Frequencies 保存工作频率 - + Only Save Selected Working Frequencies 仅保存选定的工作频率 - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. 是否确实要仅保存当前选择的工作频率? 单击 否 可保存所有. - + Reset Working Frequencies 重置工作频率 - + Are you sure you want to discard your current working frequencies and replace them with default ones? 您确定要放弃您当前的工作频率并用默认值频率替换它们吗? - + Save Directory 保存目录 - + AzEl Directory AzEl 目录 - + Rig control error 无线电设备控制错误 - + Failed to open connection to rig 无法打开无线电设备的连接 - + Rig failure 无线电设备故障 + + + Not found + audio device missing + + DXLabSuiteCommanderTransceiver @@ -1433,22 +1439,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency 添加频率 - + IARU &Region: IA&RU 区域: - + &Mode: 模式(&M): - + &Frequency (MHz): 频率 (M&Hz): @@ -2052,13 +2058,13 @@ Error(%2): %3 - - - - - - - + + + + + + + Band Activity 波段活动 @@ -2070,12 +2076,12 @@ Error(%2): %3 - - - - - - + + + + + + Rx Frequency 接收信息 @@ -2658,7 +2664,7 @@ Not available to nonstandard callsign holders. - + Fox 狐狸 @@ -3141,10 +3147,10 @@ list. The list can be maintained in Settings (F2). - - - - + + + + Random 随机 @@ -3380,7 +3386,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog 运行发射监管计时器 @@ -3612,8 +3618,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving 接收 @@ -3658,164 +3664,169 @@ list. The list can be maintained in Settings (F2). 写入 WAV 文件时错误 - + + Enumerating audio devices + + + + Configurations... 配置文件... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message 信息 - + Error Killing jt9.exe Process 错误终止 jt9.exe 进程 - + KillByName return code: %1 按名称终止返回代码: %1 - + Error removing "%1" 删除时出错误 "%1" - + Click OK to retry 单击 确定 重试 - - + + Improper mode 模式不正确 - - + + File Open Error 文件打开出错误 - - - - - + + + + + Cannot open "%1" for append: %2 无法打开 "%1" 用于附加: %2 - + Error saving c2 file 保存 c2 文件出错误 - + Error in Sound Input 声音输入出错误 - + Error in Sound Output 声音输出错误 - - - + + + Single-Period Decodes 单周期解码 - - - + + + Average Decodes 平均解码 - + Change Operator 改变操作员 - + New operator: 新操作员: - + Status File Error 状态文件错误 - - + + Cannot open "%1" for writing: %2 无法打开 "%1" 用于写入: %2 - + Subprocess Error 子流程出错误 - + Subprocess failed with exit code %1 子流程失败, 退出代码为 %1 - - + + Running: %1 %2 运行: %1 %2 - + Subprocess error 子进程错误 - + Reference spectrum saved 保存参考频谱 - + Invalid data in fmt.all at line %1 在 %1 行中 fmt.all 的无效数据 - + Good Calibration Solution 良好的校准解决方案 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3824,37 +3835,86 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements 删除校准测量值 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all" 文件将重命名为 "fmt.bak" - + No data read from disk. Wrong file format? 没有从磁盘读取数据. 文件格式出错误? - + Confirm Delete 确认删除 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? 是否确实要删除所有 *.wav 和 *.c2 文件在 "%1"? - + Keyboard Shortcuts 键盘快捷键 - + + Special Mouse Commands + 滑鼠特殊组合 + + + + No more files to open. + 没有要打开的文件. + + + + Spotting to PSK Reporter unavailable + 无法发送至PSK Reporter + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. + 请选择其他发射频率. WSJT-X 不会故意传输另一个模式在 WSPR 30米子波段上. + + + + WSPR Guard Band + WSPR保护波段 + + + + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. + 请选择其它频率. WSJT-X 不会运行狐狸模式在标准 FT8 波段. + + + + Fox Mode warning + 狐狸模式警告 + + + + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: + +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." + 如果您根据 GNU 通用公共许可证条款合理使用 WSJT-X 的任何部分, 则必须在衍生作品中醒目地显示以下版权声明: + +"WSJT-X 的算法, 源代码, 外观和感觉及相关程序,和协议规格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版权 (C) 2001-2019 由以下一个或多个作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 开发组的其他成员." + + + + Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 + 样品丢失过多 - %1 (%2 sec) 音频帧在周期开始时丢失 %3 + + + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -3866,7 +3926,7 @@ list. The list can be maintained in Settings (F2). <tr><td><b>Alt+F4 </b></td><td>Exit program</td></tr> <tr><td><b>F5 </b></td><td>Display special mouse commands (Alt: transmit Tx5)</td></tr> <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</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 directory</td></tr> <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> @@ -3901,59 +3961,10 @@ list. The list can be maintained in Settings (F2). <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> </table> Keyboard shortcuts help window contents - + - - Special Mouse Commands - 滑鼠特殊组合 - - - - No more files to open. - 没有要打开的文件. - - - - Spotting to PSK Reporter unavailable - 无法发送至PSK Reporter - - - - Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - 请选择其他发射频率. WSJT-X 不会故意传输另一个模式在 WSPR 30米子波段上. - - - - WSPR Guard Band - WSPR保护波段 - - - - Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - 请选择其它频率. WSJT-X 不会运行狐狸模式在标准 FT8 波段. - - - - Fox Mode warning - 狐狸模式警告 - - - - If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: - -"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - 如果您根据 GNU 通用公共许可证条款合理使用 WSJT-X 的任何部分, 则必须在衍生作品中醒目地显示以下版权声明: - -"WSJT-X 的算法, 源代码, 外观和感觉及相关程序,和协议规格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版权 (C) 2001-2019 由以下一个或多个作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 开发组的其他成员." - - - - Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 - 样品丢失过多 - %1 (%2 sec) 音频帧在周期开始时丢失 %3 - - - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -3986,15 +3997,15 @@ list. The list can be maintained in Settings (F2). </tr> </table> Mouse commands help window contents - + - + Last Tx: %1 最后发射: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4005,178 +4016,178 @@ To do so, check 'Special operating activity' and 设置高级选项卡上的 '欧洲 VHF 竞赛'. - + Should you switch to ARRL Field Day mode? 是否应切换到 ARRL Field Day 模式? - + Should you switch to RTTY contest mode? 是否应切换到 RTTY 竞赛模式? - - - - + + + + Add to CALL3.TXT 添加到 CALL3.TXT - + Please enter a valid grid locator 请输入有效的网格定位 - + Cannot open "%1" for read/write: %2 无法打开 "%1" 用于读/写: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 已经在 CALL3.TXT, 你想替换它吗? - + Warning: DX Call field is empty. 警告: DX 呼号字段为空. - + Log file error 日志文件错误 - + Cannot open "%1" 无法打开 "%1" - + Error sending log to N1MM 将日志发送到 N1MM 时发生错误 - + Write returned "%1" 写入返回 "%1" - + Stations calling DXpedition %1 呼叫远征电台 %1 - + Hound 猎犬 - + Tx Messages 发射信息 - - - + + + Confirm Erase 确认擦除 - + Are you sure you want to erase file ALL.TXT? 是否确实要擦除 ALL.TXT 文件? - - + + Confirm Reset 确认重置 - + Are you sure you want to erase your contest log? 是否确实要擦除竞赛日志? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 执行此操作将删除当前竞赛的所有通联记录. 它们将保留在 ADIF 日志文件中, 但无法导出到您的卡布里略日志中. - + Cabrillo Log saved 卡布里略日志已保存 - + Are you sure you want to erase file wsjtx_log.adi? 是否确实要擦除 wsjtx_log.adi 文件? - + Are you sure you want to erase the WSPR hashtable? 是否确实要擦除 WSPR 哈希表? - + Tune digital gain 调谐数码增益 - + Transmit digital gain 传输数码增益 - + Prefixes 前缀 - + Network Error 网络错误 - + Error: %1 UDP server %2:%3 错误: %1 UDP 服务器 %2:%3 - + File Error 文件错误 - + Phase Training Disabled 已禁用阶段训练 - + Phase Training Enabled 已启用阶段训练 - + WD:%1m - - + + Log File Error 日志文件错误 - + Are you sure you want to clear the QSO queues? 是否确实要清除通联队列? @@ -4655,22 +4666,22 @@ Error(%2): %3 StationDialog - + Add Station 添加电台 - + &Band: 波段(&B): - + &Offset (MHz): 偏移 (M&Hz): - + &Antenna: 天线(&A): @@ -5646,7 +5657,7 @@ radio interface behave as expected. 声效卡 - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5664,46 +5675,46 @@ transmitting periods. 自上次上传以来的天数 - + Select the audio CODEC to use for receiving. 选择要用于接收的音频信号. - + &Input: 输入(&I): - + Select the channel to use for receiving. 选择要用于接收的通道. - - + + Mono 单声道 - - + + Left 左声道 - - + + Right 右声道 - - + + Both 双声道 - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5714,7 +5725,7 @@ both here. 双声道. - + Ou&tput: 输出(&t): diff --git a/translations/wsjtx_zh_HK.ts b/translations/wsjtx_zh_HK.ts index df29d38bf..86f731dc6 100644 --- a/translations/wsjtx_zh_HK.ts +++ b/translations/wsjtx_zh_HK.ts @@ -368,75 +368,75 @@ Configuration::impl - - - + + + &Delete 刪除(&D) - - + + &Insert ... 插入(&I) ... - + Failed to create save directory 無法建立儲存目錄 - + path: "%1% 目錄: "%1% - + Failed to create samples directory 無法建立範例目錄 - + path: "%1" 目录: "%1" - + &Load ... 載入(&L)... - + &Save as ... 另存為(&S) ... - + &Merge ... 合併(&M) ... - + &Reset 重置(&R) - + Serial Port: 串行端口: - + Serial port used for CAT control 用於CAT控制的串行端口 - + Network Server: 網絡服務器: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -451,12 +451,12 @@ Formats: [IPv6-地址]:端口 - + USB Device: USB設備: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -467,156 +467,162 @@ Format: [VID[:PID[:供應商[:產品]]]] - - + + Invalid audio input device 無效的音頻輸入設備 - + Invalid audio output device 無效的音頻輸出設備 - + Invalid PTT method 無效的PTT方法 - + Invalid PTT port 無效的PTT端口 - - + + Invalid Contest Exchange 無效的競賽交換數據 - + You must input a valid ARRL Field Day exchange 您必須輸入有效的 ARRL Field Day交換數據 - + You must input a valid ARRL RTTY Roundup exchange 您必須輸入有效的 ARRL RTTY Roundup 交換數據 - + Reset Decode Highlighting 重置解碼突出顯示 - + Reset all decode highlighting and priorities to default values 將所有解碼突出顯示和優先順序重置為預設值 - + WSJT-X Decoded Text Font Chooser WSJT-X 解碼文本字體選擇 - + Load Working Frequencies 載入工作頻率 - - - + + + Frequency files (*.qrg);;All files (*.*) 頻率檔案 (*.qrg);;所有檔案 (*.*) - + Replace Working Frequencies 替換工作頻率 - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? 是否確實要放棄當前工作頻率, 並將其替換為載入的頻率? - + Merge Working Frequencies 合併工作頻率 - - - + + + Not a valid frequencies file 不是有效的頻率檔案 - + Incorrect file magic 不正確的檔案內容 - + Version is too new 版本太新 - + Contents corrupt 內容已損壞 - + Save Working Frequencies 儲存工作頻率 - + Only Save Selected Working Frequencies 只儲存選取的工作頻率 - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. 是否確定要只儲存目前選擇的工作頻率? 按一下 否 可儲存所有. - + Reset Working Frequencies 重置工作頻率 - + Are you sure you want to discard your current working frequencies and replace them with default ones? 您確定要放棄您當前的工作頻率並用默認值頻率替換它們嗎? - + Save Directory 儲存目錄 - + AzEl Directory AzEl 目錄 - + Rig control error 無線電設備控制錯誤 - + Failed to open connection to rig 無法開啟無線電設備的連接 - + Rig failure 無線電設備故障 + + + Not found + audio device missing + + DXLabSuiteCommanderTransceiver @@ -1433,22 +1439,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency 添加頻率 - + IARU &Region: IA&RU 區域: - + &Mode: 模式(&M): - + &Frequency (MHz): 頻率 (M&Hz): @@ -2052,13 +2058,13 @@ Error(%2): %3 - - - - - - - + + + + + + + Band Activity 波段活動 @@ -2070,12 +2076,12 @@ Error(%2): %3 - - - - - - + + + + + + Rx Frequency 接收信息 @@ -2658,7 +2664,7 @@ Not available to nonstandard callsign holders. - + Fox 狐狸 @@ -3141,10 +3147,10 @@ list. The list can be maintained in Settings (F2). - - - - + + + + Random 隨機 @@ -3380,7 +3386,7 @@ list. The list can be maintained in Settings (F2). - + Runaway Tx watchdog 運行發射監管計時器 @@ -3612,8 +3618,8 @@ list. The list can be maintained in Settings (F2). - - + + Receiving 接收 @@ -3658,164 +3664,169 @@ list. The list can be maintained in Settings (F2). 寫入 WAV 檔案時錯誤 - + + Enumerating audio devices + + + + Configurations... 設定檔案... - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Message 信息 - + Error Killing jt9.exe Process 錯誤終止 jt9.exe 程序 - + KillByName return code: %1 按結束名稱返回代碼: %1 - + Error removing "%1" 刪除時出錯誤 "%1" - + Click OK to retry 單擊 確定 重試 - - + + Improper mode 模式不正確 - - + + File Open Error 檔案開啟出錯誤 - - - - - + + + + + Cannot open "%1" for append: %2 無法開啟 "%1" 用於附加: %2 - + Error saving c2 file 保存c2檔案出錯誤 - + Error in Sound Input 聲音輸入出錯誤 - + Error in Sound Output 聲音輸出錯誤 - - - + + + Single-Period Decodes 單週期解碼 - - - + + + Average Decodes 平均解碼 - + Change Operator 變更操作員 - + New operator: 新操作員: - + Status File Error 狀態檔案錯誤 - - + + Cannot open "%1" for writing: %2 無法開啟 "%1" 用於寫入: %2 - + Subprocess Error 子流程出錯誤 - + Subprocess failed with exit code %1 子流程失敗, 退出代碼為 %1 - - + + Running: %1 %2 運行: %1 %2 - + Subprocess error 子進程出錯誤 - + Reference spectrum saved 儲存參考頻譜 - + Invalid data in fmt.all at line %1 在 %1 行中 fmt.all 的不合法資料 - + Good Calibration Solution 良好的校準解決方案 - + <pre>%1%L2 ±%L3 ppm %4%L5 ±%L6 Hz @@ -3824,37 +3835,86 @@ list. The list can be maintained in Settings (F2). - + Delete Calibration Measurements 刪除校準測量值 - + The "fmt.all" file will be renamed as "fmt.bak" "fmt.all" 檔案將重新命名為 "fmt.bak" - + No data read from disk. Wrong file format? 沒有從磁盤讀取數據. 檔案格式出錯誤? - + Confirm Delete 確認刪除 - + Are you sure you want to delete all *.wav and *.c2 files in "%1"? 是否確實要刪除所有 *.wav 和 *.c2 檔案在 "%1"? - + Keyboard Shortcuts 鍵盤快捷鍵 - + + Special Mouse Commands + 滑鼠特殊組合 + + + + No more files to open. + 沒有要打開的檔. + + + + Spotting to PSK Reporter unavailable + 無法發送至PSK Reporter + + + + Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. + 請選擇其他發射頻率. WSJT-X 不會故意傳輸另一個模式在 WSPR 30米子波段上. + + + + WSPR Guard Band + WSPR保護波段 + + + + Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. + 請選擇其他頻率. WSJT-X 不會運行狐狸模式在標準 FT8 波段. + + + + Fox Mode warning + 狐狸模式警告 + + + + If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: + +"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." + 如果您根據 GNU 通用公共授權條款合理使用 WSJT-X 的任何部分, 則必須在衍生作品中醒目地顯示以下版權聲明: + +"WSJT-X 的演演演算法, 原始碼, 外觀和感覺及相關程式, 和協定規格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版權 (C) 2001-2019 由以下一個或多個作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 開發組的其他成員." + + + + Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 + 樣品遺失過多 -%1 (%2 sec) 音效的畫面在週期開始時遺失 %3 + + + <table cellspacing=1> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr> @@ -3866,7 +3926,7 @@ list. The list can be maintained in Settings (F2). <tr><td><b>Alt+F4 </b></td><td>Exit program</td></tr> <tr><td><b>F5 </b></td><td>Display special mouse commands (Alt: transmit Tx5)</td></tr> <tr><td><b>F6 </b></td><td>Open next file in directory (Alt: toggle "Call 1st")</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 directory</td></tr> <tr><td><b>F7 </b></td><td>Display Message Averaging window</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 identical Rx and Tx frequencies down 1 Hz</td></tr> @@ -3901,59 +3961,10 @@ list. The list can be maintained in Settings (F2). <tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr> </table> Keyboard shortcuts help window contents - + - - Special Mouse Commands - 滑鼠特殊組合 - - - - No more files to open. - 沒有要打開的檔. - - - - Spotting to PSK Reporter unavailable - 無法發送至PSK Reporter - - - - Please choose another Tx frequency. WSJT-X will not knowingly transmit another mode in the WSPR sub-band on 30m. - 請選擇其他發射頻率. WSJT-X 不會故意傳輸另一個模式在 WSPR 30米子波段上. - - - - WSPR Guard Band - WSPR保護波段 - - - - Please choose another dial frequency. WSJT-X will not operate in Fox mode in the standard FT8 sub-bands. - 請選擇其他頻率. WSJT-X 不會運行狐狸模式在標準 FT8 波段. - - - - Fox Mode warning - 狐狸模式警告 - - - - If you make fair use of any part of WSJT-X under terms of the GNU General Public License, you must display the following copyright notice prominently in your derivative work: - -"The algorithms, source code, look-and-feel of WSJT-X and related programs, and protocol specifications for the modes FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 are Copyright (C) 2001-2020 by one or more of the following authors: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; and other members of the WSJT Development Group." - 如果您根據 GNU 通用公共授權條款合理使用 WSJT-X 的任何部分, 則必須在衍生作品中醒目地顯示以下版權聲明: - -"WSJT-X 的演演演算法, 原始碼, 外觀和感覺及相關程式, 和協定規格模式 FSK441, FT8, JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, MSK144 的版權 (C) 2001-2019 由以下一個或多個作者: Joseph Taylor, K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; Philip Karn, KA9Q; 和 WSJT 開發組的其他成員." - - - - Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 - 樣品遺失過多 -%1 (%2 sec) 音效的畫面在週期開始時遺失 %3 - - - + <table cellpadding=5> <tr> <th align="right">Click on</th> @@ -3986,15 +3997,15 @@ list. The list can be maintained in Settings (F2). </tr> </table> Mouse commands help window contents - + - + Last Tx: %1 最後發射: %1 - + Should you switch to EU VHF Contest mode? To do so, check 'Special operating activity' and @@ -4005,178 +4016,178 @@ To do so, check 'Special operating activity' and 設置高級選項卡上的 '歐洲 VHF 競賽'. - + Should you switch to ARRL Field Day mode? 是否應切換到 ARRL Field Day 模式? - + Should you switch to RTTY contest mode? 是否應切換到 RTTY 競賽模式? - - - - + + + + Add to CALL3.TXT 添加到 CALL3.TXT - + Please enter a valid grid locator 請輸入有效的網格定位 - + Cannot open "%1" for read/write: %2 無法開啟 "%1" 用於讀/寫: %2 - + %1 is already in CALL3.TXT, do you wish to replace it? %1 已經在 CALL3.TXT, 你想替換它嗎? - + Warning: DX Call field is empty. 警告: DX 呼號欄位為空. - + Log file error 日誌檔案錯誤 - + Cannot open "%1" 無法開啟 "%1" - + Error sending log to N1MM 將日誌傳送到 N1MM 時發生錯誤 - + Write returned "%1" 寫入返回 "%1" - + Stations calling DXpedition %1 呼叫遠征電臺 %1 - + Hound 獵犬 - + Tx Messages 發射信息 - - - + + + Confirm Erase 確認擦除 - + Are you sure you want to erase file ALL.TXT? 是否確實要擦除 ALL.Txt 檔案? - - + + Confirm Reset 確認重置 - + Are you sure you want to erase your contest log? 是否確實要擦除競賽日誌? - + Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log. 執行此動作將移除目前競賽的所有通聯記錄. 它們將保留在 ADIF 日誌檔案中, 但無法匯出到您的卡布里略日誌中. - + Cabrillo Log saved 卡布里略日誌已儲存 - + Are you sure you want to erase file wsjtx_log.adi? 是否確實要擦除 wsjtx_log.adi 檔案? - + Are you sure you want to erase the WSPR hashtable? 是否確定要擦除 WSPR 哈希表? - + Tune digital gain 調諧數碼增益 - + Transmit digital gain 傳輸數碼增益 - + Prefixes 前綴 - + Network Error 網路錯誤 - + Error: %1 UDP server %2:%3 錯誤: %1 UDP 服務器 %2:%3 - + File Error 檔案錯誤 - + Phase Training Disabled 關閉階段訓練 - + Phase Training Enabled 開啟階段訓練 - + WD:%1m - - + + Log File Error 日誌檔案錯誤 - + Are you sure you want to clear the QSO queues? 是否要清除通聯佇列? @@ -4655,22 +4666,22 @@ Error(%2): %3 StationDialog - + Add Station 添加電臺 - + &Band: 波段(&B): - + &Offset (MHz): 偏移 (M&Hz): - + &Antenna: 天線(&A): @@ -5646,7 +5657,7 @@ radio interface behave as expected. 音效卡 - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5664,46 +5675,46 @@ transmitting periods. 自上次上傳以來的天數 - + Select the audio CODEC to use for receiving. 選擇要用於接收的音頻信號. - + &Input: 輸入(&I): - + Select the channel to use for receiving. 選擇要用於接收的通道. - - + + Mono 單聲道 - - + + Left 左聲道 - - + + Right 右聲道 - - + + Both 雙聲道 - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5714,7 +5725,7 @@ both here. 雙聲道. - + Ou&tput: 輸出(&t): From e48f71f424ee28f5ee6fb2b9e31dbd03dcdfad92 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 16 Sep 2020 11:45:55 +0100 Subject: [PATCH 489/520] =?UTF-8?q?Updated=20Spanish=20l10n,=20tnx=20C?= =?UTF-8?q?=C3=A9dric,=20EA4AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translations/wsjtx_es.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/translations/wsjtx_es.ts b/translations/wsjtx_es.ts index eb112eeb1..5c545ead5 100644 --- a/translations/wsjtx_es.ts +++ b/translations/wsjtx_es.ts @@ -697,7 +697,7 @@ Formato: Not found audio device missing - + No encontrado @@ -4165,7 +4165,7 @@ predefinida. La lista se puede modificar en "Ajustes" (F2). Excessive dropped samples - %1 (%2 sec) audio frames dropped in period starting %3 - + Excesiva muestras rechazadas - %1 (%2 seg) de audio rechazados en periodo %3 @@ -4193,7 +4193,7 @@ Error al cargar datos de usuarios de LotW Enumerating audio devices - + Listando dispositivos de audio @@ -7310,7 +7310,7 @@ Clic derecho para insertar y eliminar opciones. RTTY Roundup messages Mensajes de resumen de RTTY - Mesnajes para e lRTTY Roundup + Mensajes para el RTTY Roundup From 2755afe4662284deb280e6698dec31e20e079a96 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 16 Sep 2020 13:42:15 +0100 Subject: [PATCH 490/520] Updated Catalan l10n, tnx to Xavi, EA3W --- translations/wsjtx_ca.ts | 166 +++++++++++++++++++-------------------- 1 file changed, 80 insertions(+), 86 deletions(-) diff --git a/translations/wsjtx_ca.ts b/translations/wsjtx_ca.ts index c0eebd8ea..9aa47b5ac 100644 --- a/translations/wsjtx_ca.ts +++ b/translations/wsjtx_ca.ts @@ -377,75 +377,75 @@ Configuration::impl - - - + + + &Delete &Esborrar - - + + &Insert ... &Insereix ... - + Failed to create save directory No s'ha pogut crear el directori per desar - + path: "%1% ruta: "%1% - + Failed to create samples directory No s'ha pogut crear el directori d'exemples - + path: "%1" ruta: "%1" - + &Load ... &Carrega ... - + &Save as ... &Guardar com ... - + &Merge ... &Combinar ... - + &Reset &Restablir - + Serial Port: Port sèrie: - + Serial port used for CAT control Port sèrie utilitzat per al control CAT - + Network Server: Servidor de xarxa: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -460,12 +460,12 @@ Formats: [adreça IPv6]:port - + USB Device: Dispositiu USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -476,8 +476,8 @@ Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - - + + Invalid audio input device El dispositiu d'entrada d'àudio no és vàlid @@ -486,156 +486,150 @@ Format: El dispositiu de sortida d'àudio no és vàlid - + Invalid audio output device El dispositiu de sortida d'àudio no és vàlid - + Invalid PTT method El mètode de PTT no és vàlid - + Invalid PTT port El port del PTT no és vàlid - - + + Invalid Contest Exchange Intercanvi de concurs no vàlid - + You must input a valid ARRL Field Day exchange Has d’introduir un intercanvi de Field Day de l'ARRL vàlid - + You must input a valid ARRL RTTY Roundup exchange Has d’introduir un intercanvi vàlid de l'ARRL RTTY Roundup - + Reset Decode Highlighting Restableix Ressaltat de Descodificació - + Reset all decode highlighting and priorities to default values Restableix tot el ressaltat i les prioritats de descodificació als valors predeterminats - + WSJT-X Decoded Text Font Chooser Tipus de text de pantalla de descodificació WSJT-X - + Load Working Frequencies Càrrega les freqüències de treball - - - + + + Frequency files (*.qrg);;All files (*.*) Arxius de freqüència (*.qrg);;Tots els arxius (*.*) - + Replace Working Frequencies Substitueix les freqüències de treball - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? Segur que vols descartar les teves freqüències actuals de treball i reemplaçar-les per les carregades ? - + Merge Working Frequencies Combina les freqüències de treball - - - + + + Not a valid frequencies file L'arxiu de freqüències no és vàlid - + Incorrect file magic L'arxiu màgic es incorrecte - + Version is too new La versió és massa nova - + Contents corrupt Continguts corruptes - + Save Working Frequencies Desa les freqüències de treball - + Only Save Selected Working Frequencies Desa només les freqüències de treball seleccionades - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. Estàs segur que vols desar només les freqüències de treball seleccionades actualment? Fes clic a No per desar-ho tot. - + Reset Working Frequencies Restablir les freqüències de treball - + Are you sure you want to discard your current working frequencies and replace them with default ones? Segur que vols descartar les teves freqüències actuals de treball i reemplaçar-les per altres? - + Save Directory Directori de Guardar - + AzEl Directory Directori AzEl - + Rig control error Error de control de l'equip - + Failed to open connection to rig No s'ha pogut obrir la connexió al equip - + Rig failure Fallada en l'equip - - - Not found - audio device missing - - DXLabSuiteCommanderTransceiver @@ -1458,22 +1452,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency Afedueix Freqüència - + IARU &Region: Regió &IARU: - + &Mode: &Mode: - + &Frequency (MHz): &Freqüència en MHz.: @@ -5046,22 +5040,22 @@ Error(%2): %3 StationDialog - + Add Station Afegir estació - + &Band: &Banda: - + &Offset (MHz): &Desplaçament en MHz: - + &Antenna: &Antena: @@ -5477,7 +5471,7 @@ Error(%2): %3 &Blank line between decoding periods - Lín&ia en blanc entre els períodes de descodificació + Línia en &blanc entre els períodes de descodificació @@ -5546,7 +5540,7 @@ Error(%2): %3 Mon&itor off at startup - Mon&itor apagat a l'inici + Monitor apa&gat a l'inici @@ -5731,7 +5725,7 @@ període tranquil quan es fa la descodificació. E&ight - V&uit + &Vuit @@ -5968,7 +5962,7 @@ aquest paràmetre et permet seleccionar quina entrada d'àudio s'utili Rear&/Data - Part posterior&/dades + Part poster&ior/dades @@ -6059,7 +6053,7 @@ interfície de ràdio funcioni correctament. Targeta de so - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -6072,46 +6066,46 @@ desactivats, en cas contrari emetreu els sons del sistema generats durant els períodes de transmissió. - + Select the audio CODEC to use for receiving. Selecciona el CODEC d'àudio que cal utilitzar per rebre. - + &Input: &Entrada: - + Select the channel to use for receiving. Selecciona el canal a utilitzar per a rebre. - - + + Mono Mono - - + + Left Esquerra - - + + Right Dreta - - + + Both Tots dos - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -6127,7 +6121,7 @@ els dos canals. Activa les funcions de VHF i submode - + Ou&tput: Sor&tida: From 9356bec3a5f9006a3a94cfc6100e8ab92a804d64 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Wed, 16 Sep 2020 13:43:07 +0100 Subject: [PATCH 491/520] Updated translation files --- translations/wsjtx_da.ts | 158 +++++++++++++++++------------------- translations/wsjtx_en.ts | 158 +++++++++++++++++------------------- translations/wsjtx_en_GB.ts | 158 +++++++++++++++++------------------- translations/wsjtx_es.ts | 155 ++++++++++++++++++----------------- translations/wsjtx_it.ts | 158 +++++++++++++++++------------------- translations/wsjtx_ja.ts | 158 +++++++++++++++++------------------- translations/wsjtx_zh.ts | 158 +++++++++++++++++------------------- translations/wsjtx_zh_HK.ts | 158 +++++++++++++++++------------------- 8 files changed, 609 insertions(+), 652 deletions(-) diff --git a/translations/wsjtx_da.ts b/translations/wsjtx_da.ts index bb9984204..e06c93fd4 100644 --- a/translations/wsjtx_da.ts +++ b/translations/wsjtx_da.ts @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete &Slet - - + + &Insert ... &indsæt ... - + Failed to create save directory Fejl ved oprettelse af mappe til at gemme i - + path: "%1% sti: "%1% - + Failed to create samples directory Fejl i oprettelsen af mappe til eksempler - + path: "%1" sti: "%1" - + &Load ... &Hent ... - + &Save as ... &Gem som ... - + &Merge ... &Indflette ... - + &Reset &Reset - + Serial Port: Seriel Port: - + Serial port used for CAT control Seriel port til CAT kontrol - + Network Server: Netværk Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -452,12 +452,12 @@ Formater: [IPv6-address]:port - + USB Device: USB Enhed: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -468,8 +468,8 @@ Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - - + + Invalid audio input device Foekert audio input enhed @@ -478,156 +478,150 @@ Format: Forkert audio output enhed - + Invalid audio output device Forkert Audio output Enhed - + Invalid PTT method Forkert PTT metode - + Invalid PTT port Forkert PTT port - - + + Invalid Contest Exchange Forkert Contest Udveksling - + You must input a valid ARRL Field Day exchange Indsæt et valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange Indsæt et valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting Nulstil dekode markering - + Reset all decode highlighting and priorities to default values Indstil alle dekode markeringer og prioriteringer til default - + WSJT-X Decoded Text Font Chooser WSJT-X Dekodet tekst Font vælger - + Load Working Frequencies Hent Frekvens liste - - - + + + Frequency files (*.qrg);;All files (*.*) Frekvens fil *.qrg);;All files (*.*) - + Replace Working Frequencies Erstat frekvensliste - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? Er du sikker på du vil kassere dine nuværende frekvensliste og erstatte den med denne frekvensliste? - + Merge Working Frequencies Indflet Frevens liste - - - + + + Not a valid frequencies file Ikke en gyldig Frekvens liste fil - + Incorrect file magic Forkert fil Magic - + Version is too new Version for ny - + Contents corrupt Inhold ugyldigt - + Save Working Frequencies Gem frekvens liste - + Only Save Selected Working Frequencies Gemmer kun de valgte frekvenser til listen - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. Er du sikker på du kun vil gemme de valgte frekvenser i Frekvenslisten. Klik nej for gemme alle. - + Reset Working Frequencies Reset frekvens liste - + Are you sure you want to discard your current working frequencies and replace them with default ones? Er du sikker på du vil kassere dine nuværende frekvensliste og erstatte dem med standard frekvenser? - + Save Directory Gemme Mappe - + AzEl Directory AzEL Mappe - + Rig control error Radio kontrol fejl - + Failed to open connection to rig Fejl i etablering af forbindelse til radio - + Rig failure Radio fejl - - - Not found - audio device missing - - DXLabSuiteCommanderTransceiver @@ -1450,22 +1444,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency Tilføj Frekvens - + IARU &Region: IARU &Region: - + &Mode: &Mode: - + &Frequency (MHz): &Frekvens (Mhz): @@ -4998,22 +4992,22 @@ Fejl(%2): %3 StationDialog - + Add Station Tilføj Station - + &Band: &Bånd: - + &Offset (MHz): &Offset (Mhz): - + &Antenna: &Antenne: @@ -6001,7 +5995,7 @@ radio interface opfører sig som forventet. Lydkort - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -6019,46 +6013,46 @@ transmissionsperioder. Dage siden sidste upload - + Select the audio CODEC to use for receiving. Vælg Audio CODEC for modtagelse. - + &Input: &Input: - + Select the channel to use for receiving. Vælg kanal til modtagelse. - - + + Mono Mono - - + + Left Venstre - - + + Right Højre - - + + Both Begge - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -6074,7 +6068,7 @@ eller begge. Aktiver VHF and submode funktioner - + Ou&tput: Ou&tput: diff --git a/translations/wsjtx_en.ts b/translations/wsjtx_en.ts index c8423e728..60dc2593e 100644 --- a/translations/wsjtx_en.ts +++ b/translations/wsjtx_en.ts @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete - - + + &Insert ... - + Failed to create save directory - + path: "%1% - + Failed to create samples directory - + path: "%1" - + &Load ... - + &Save as ... - + &Merge ... - + &Reset - + Serial Port: - + Serial port used for CAT control - + Network Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -447,12 +447,12 @@ Formats: - + USB Device: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -460,162 +460,156 @@ Format: - - + + Invalid audio input device - + Invalid audio output device - + Invalid PTT method - + Invalid PTT port - - + + Invalid Contest Exchange - + You must input a valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting - + Reset all decode highlighting and priorities to default values - + WSJT-X Decoded Text Font Chooser - + Load Working Frequencies - - - + + + Frequency files (*.qrg);;All files (*.*) - + Replace Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - + Merge Working Frequencies - - - + + + Not a valid frequencies file - + Incorrect file magic - + Version is too new - + Contents corrupt - + Save Working Frequencies - + Only Save Selected Working Frequencies - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. - + Reset Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with default ones? - + Save Directory - + AzEl Directory - + Rig control error - + Failed to open connection to rig - + Rig failure - - - Not found - audio device missing - - DXLabSuiteCommanderTransceiver @@ -1426,22 +1420,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency - + IARU &Region: - + &Mode: - + &Frequency (MHz): @@ -4607,22 +4601,22 @@ Error(%2): %3 StationDialog - + Add Station - + &Band: - + &Offset (MHz): - + &Antenna: @@ -5572,7 +5566,7 @@ radio interface behave as expected. - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5586,46 +5580,46 @@ transmitting periods. - + Select the audio CODEC to use for receiving. - + &Input: - + Select the channel to use for receiving. - - + + Mono - - + + Left - - + + Right - - + + Both - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5648,7 +5642,7 @@ both here. - + Ou&tput: diff --git a/translations/wsjtx_en_GB.ts b/translations/wsjtx_en_GB.ts index 3079f2a8c..a082fb6d7 100644 --- a/translations/wsjtx_en_GB.ts +++ b/translations/wsjtx_en_GB.ts @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete - - + + &Insert ... - + Failed to create save directory - + path: "%1% - + Failed to create samples directory - + path: "%1" - + &Load ... - + &Save as ... - + &Merge ... - + &Reset - + Serial Port: - + Serial port used for CAT control - + Network Server: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -447,12 +447,12 @@ Formats: - + USB Device: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -460,162 +460,156 @@ Format: - - + + Invalid audio input device - + Invalid audio output device - + Invalid PTT method - + Invalid PTT port - - + + Invalid Contest Exchange - + You must input a valid ARRL Field Day exchange - + You must input a valid ARRL RTTY Roundup exchange - + Reset Decode Highlighting - + Reset all decode highlighting and priorities to default values - + WSJT-X Decoded Text Font Chooser - + Load Working Frequencies - - - + + + Frequency files (*.qrg);;All files (*.*) - + Replace Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? - + Merge Working Frequencies - - - + + + Not a valid frequencies file - + Incorrect file magic - + Version is too new - + Contents corrupt - + Save Working Frequencies - + Only Save Selected Working Frequencies - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. - + Reset Working Frequencies - + Are you sure you want to discard your current working frequencies and replace them with default ones? - + Save Directory - + AzEl Directory - + Rig control error - + Failed to open connection to rig - + Rig failure - - - Not found - audio device missing - - DXLabSuiteCommanderTransceiver @@ -1426,22 +1420,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency - + IARU &Region: - + &Mode: - + &Frequency (MHz): @@ -4607,22 +4601,22 @@ Error(%2): %3 StationDialog - + Add Station - + &Band: - + &Offset (MHz): - + &Antenna: @@ -5562,7 +5556,7 @@ radio interface behave as expected. - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5576,46 +5570,46 @@ transmitting periods. - + Select the audio CODEC to use for receiving. - + &Input: - + Select the channel to use for receiving. - - + + Mono - - + + Left - - + + Right - - + + Both - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5628,7 +5622,7 @@ both here. - + Ou&tput: diff --git a/translations/wsjtx_es.ts b/translations/wsjtx_es.ts index 5c545ead5..ce89139ac 100644 --- a/translations/wsjtx_es.ts +++ b/translations/wsjtx_es.ts @@ -404,81 +404,81 @@ Configuration::impl - - - + + + &Delete &Borrar - - + + &Insert ... &Introducir ... &Agregar... - + Failed to create save directory No se pudo crear el directorio para guardar No se pudo crear el directorio "Save" - + path: "%1% ruta: "%1% - + Failed to create samples directory No se pudo crear el directorio de ejemplos No se pudo crear el directorio "Samples" - + path: "%1" ruta: "%1" - + &Load ... &Carga ... &Cargar ... - + &Save as ... &Guardar como ... &Guardar como ... - + &Merge ... &Fusionar ... &Fusionar ... - + &Reset &Reiniciar - + Serial Port: Puerto Serie: - + Serial port used for CAT control Puerto serie utilizado para el control CAT - + Network Server: Servidor de red: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -499,12 +499,12 @@ Formatos: [dirección IPv6]:port - + USB Device: Dispositivo USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -519,8 +519,8 @@ Formato: [VID[:PID[:VENDOR[:PRODUCT]]]] - - + + Invalid audio input device El dispositivo de entrada de audio no es válido Dispositivo de entrada de audio no válido @@ -531,173 +531,172 @@ Formato: Dispositivo de salida de audio no válido - + Invalid audio output device Dispositivo de salida de audio no válido - + Invalid PTT method El método de PTT no es válido Método PTT no válido - + Invalid PTT port El puerto del PTT no es válido Puerto PTT no válido - - + + Invalid Contest Exchange Intercambio de concurso no válido - + You must input a valid ARRL Field Day exchange Debes introducir un intercambio de Field Day del ARRL válido Debe introducir un intercambio válido para el ARRL Field Day - + You must input a valid ARRL RTTY Roundup exchange Debes introducir un intercambio válido de la ARRL RTTY Roundup Debe introducir un intercambio válido para el ARRL RTTY Roundup - + Reset Decode Highlighting Restablecer Resaltado de Decodificación Restablecer resaltado de colores de decodificados - + Reset all decode highlighting and priorities to default values Restablecer todo el resaltado y las prioridades de decodificación a los valores predeterminados Restablecer todo el resaltado de colores y prioridades a los valores predeterminados - + WSJT-X Decoded Text Font Chooser Tipo de texto de pantalla de descodificación WSJT-X Seleccionar un tipo de letra - + Load Working Frequencies Carga las frecuencias de trabajo Cargar las frecuencias de trabajo - - - + + + Frequency files (*.qrg);;All files (*.*) Archivos de frecuencia (*.qrg);;Todos los archivos (*.*) - + Replace Working Frequencies Sustituye las frecuencias de trabajo Sustituir las frecuencias de trabajo - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por las cargadas? ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las cargadas? - + Merge Working Frequencies Combinar las frecuencias de trabajo Combina las frecuencias de trabajo - - - + + + Not a valid frequencies file El archivo de frecuencias no es válido Archivo de frecuencias no válido - + Incorrect file magic Archivo mágico incorrecto - + Version is too new La versión es demasiado nueva - + Contents corrupt contenidos corruptos Contenido corrupto - + Save Working Frequencies Guardar las frecuencias de trabajo - + Only Save Selected Working Frequencies Guarda sólo las frecuencias de trabajo seleccionadas Sólo guarda las frecuencias de trabajo seleccionadas - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. ¿Seguro que quieres guardar sólo las frecuencias de trabajo seleccionadas actualmente? Haz clic en No para guardar todo. ¿Seguro que quiere guardar sólo las frecuencias de trabajo seleccionadas actualmente? Clic en No para guardar todo. - + Reset Working Frequencies Reiniciar las frecuencias de trabajo - + Are you sure you want to discard your current working frequencies and replace them with default ones? ¿Seguro que quieres descartar tus frecuencias actuales de trabajo y reemplazarlas por otras? ¿Seguro que quiere descartar las frecuencias de trabajo actuales y reemplazarlas por las de defecto? - + Save Directory Guardar directorio Directorio "Save" - + AzEl Directory Directorio AzEl - + Rig control error Error de control del equipo - + Failed to open connection to rig No se pudo abrir la conexión al equipo Fallo al abrir la conexión al equipo - + Rig failure Fallo en el equipo - Not found audio device missing - No encontrado + No encontrado @@ -1592,23 +1591,23 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency Agregar frecuencia Añadir frecuencia - + IARU &Region: &Región IARU: - + &Mode: &Modo: - + &Frequency (MHz): &Frecuencia en MHz: &Frecuencia (MHz): @@ -5450,23 +5449,23 @@ Error(%2): %3 StationDialog - + Add Station Agregar estación - + &Band: &Banda: - + &Offset (MHz): &Desplazamiento en MHz: Desplazamient&o (MHz): - + &Antenna: &Antena: @@ -6554,7 +6553,7 @@ interfaz de radio se comporte como se esperaba. Tarjeta de Sonido - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -6572,48 +6571,48 @@ de lo contrario transmitirá cualquier sonido del sistema generado durante los períodos de transmisión. - + Select the audio CODEC to use for receiving. Selecciona el CODEC de audio que se usará para recibir. Selecciona el CODEC a usar para recibir. - + &Input: &Entrada: - + Select the channel to use for receiving. Selecciona el canal a usar para recibir. Seleccione el canal a usar para recibir. - - + + Mono Mono - - + + Left Izquierdo - - + + Right Derecho - - + + Both Ambos - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -6633,7 +6632,7 @@ canales, entonces, generalmente debe seleccionar "Mono" o Habilitar funciones de VHF y submodo - + Ou&tput: &Salida: diff --git a/translations/wsjtx_it.ts b/translations/wsjtx_it.ts index 4a75be8a6..9ab2dab13 100644 --- a/translations/wsjtx_it.ts +++ b/translations/wsjtx_it.ts @@ -369,75 +369,75 @@ Configuration::impl - - - + + + &Delete &Elimina - - + + &Insert ... &Inserisci ... - + Failed to create save directory Impossibile creare la directory di salvataggio - + path: "%1% Percorso: "%1" - + Failed to create samples directory Impossibile creare la directory dei campioni - + path: "%1" Percorso: "%1" - + &Load ... &Carica ... - + &Save as ... &Salva come ... - + &Merge ... &Unisci ... - + &Reset &Ripristina - + Serial Port: Porta Seriale: - + Serial port used for CAT control Porta Seriale usata per il controllo CAT - + Network Server: Server di rete: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -452,12 +452,12 @@ Formati: [IPv6-address]: porta - + USB Device: Dispositivo USB: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -468,8 +468,8 @@ Formato: [VID [: PID [: VENDOR [: PRODOTTI]]]] - - + + Invalid audio input device Dispositivo di ingresso audio non valido @@ -478,156 +478,150 @@ Formato: Dispositivo di uscita audio non valido - + Invalid audio output device Dispositivo di uscita audio non valido - + Invalid PTT method Metodo PTT non valido - + Invalid PTT port Porta PTT non valida - - + + Invalid Contest Exchange Scambio Contest non valido - + You must input a valid ARRL Field Day exchange È necessario inserire uno scambioField Day ARRL valido - + You must input a valid ARRL RTTY Roundup exchange È necessario inserire uno scambio Roundup RTTY ARRL valido - + Reset Decode Highlighting Ripristina l'evidenziazione della decodifica - + Reset all decode highlighting and priorities to default values Ripristina tutti i valori di evidenziazione e priorità della decodifica sui valori predefiniti - + WSJT-X Decoded Text Font Chooser Selezionatore font testo decodificato WSJT-X - + Load Working Frequencies Carica frequenze di lavoro - - - + + + Frequency files (*.qrg);;All files (*.*) File di frequenza (*.qrg);;Tutti i file (*.*) - + Replace Working Frequencies Sostituisci le frequenze di lavoro - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? Sei sicuro di voler scartare le tue attuali frequenze di lavoro e sostituirle con quelle caricate? - + Merge Working Frequencies Unisci le frequenze di lavoro - - - + + + Not a valid frequencies file Non è un file di frequenze valido - + Incorrect file magic Magic file errato - + Version is too new La versione è troppo nuova - + Contents corrupt Contenuto corrotto - + Save Working Frequencies Salva frequenze di lavoro - + Only Save Selected Working Frequencies Salva solo le frequenze di lavoro selezionate - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. Sei sicuro di voler salvare solo le frequenze di lavoro che sono attualmente selezionate? Fai clic su No per salvare tutto. - + Reset Working Frequencies Ripristina frequenze di lavoro - + Are you sure you want to discard your current working frequencies and replace them with default ones? Sei sicuro di voler scartare le tue attuali frequenze di lavoro e sostituirle con quelle predefinite? - + Save Directory Salva il direttorio - + AzEl Directory AzEl Direttorio - + Rig control error Errore di controllo rig - + Failed to open connection to rig Impossibile aprire la connessione al rig - + Rig failure Rig fallito - - - Not found - audio device missing - - DXLabSuiteCommanderTransceiver @@ -1454,22 +1448,22 @@ Errore: %2 - %3 FrequencyDialog - + Add Frequency Aggiungi frequenza - + IARU &Region: &Regione IARU: - + &Mode: &Modo: - + &Frequency (MHz): &Frequenza (MHz): @@ -5067,22 +5061,22 @@ Errore (%2):%3 StationDialog - + Add Station Aggoingi Stazione - + &Band: &Banda: - + &Offset (MHz): &Offset (MHz): - + &Antenna: &Antenna: @@ -6070,7 +6064,7 @@ l'interfaccia radio si comporta come previsto. Scheda audio - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -6088,46 +6082,46 @@ periodi di trasmissione. Giorni dall'ultimo aggiornamento - + Select the audio CODEC to use for receiving. Seleziona l'audio CODEC da utilizzare per la ricezione. - + &Input: &Ingresso: - + Select the channel to use for receiving. Seleziona il canale da utilizzare per la ricezione. - - + + Mono Mono - - + + Left Sinistro - - + + Right Destro - - + + Both Entrambi - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -6143,7 +6137,7 @@ entrambi qui. Abilita le funzioni VHF e sottomodalità - + Ou&tput: Usci&ta: diff --git a/translations/wsjtx_ja.ts b/translations/wsjtx_ja.ts index a6a322402..c4cfae0bc 100644 --- a/translations/wsjtx_ja.ts +++ b/translations/wsjtx_ja.ts @@ -368,75 +368,75 @@ Configuration::impl - - - + + + &Delete 削除(&D) - - + + &Insert ... 挿入(&I)... - + Failed to create save directory 保存のためのフォルダを作成できません - + path: "%1% パス: "%1% - + Failed to create samples directory サンプルフォルダを作成できません - + path: "%1" パス: "%1" - + &Load ... 読み込み(&L)... - + &Save as ... 名前を付けて保存(&S)... - + &Merge ... 結合(&M)... - + &Reset リセット(&R) - + Serial Port: シリアルポート: - + Serial port used for CAT control CAT制御用シリアルポート - + Network Server: ネットワークサーバ: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -451,12 +451,12 @@ Formats: [IPv6-アドレス]:ポート番号 - + USB Device: USBデバイス: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -467,8 +467,8 @@ Format: [VID[:PID[:VENDOR[:PRODUCT]]]] - - + + Invalid audio input device 無効なオーディオ入力デバイス @@ -477,156 +477,150 @@ Format: 無効なオーディオ出力デバイス - + Invalid audio output device 無効なオーディオ出力デバイス - + Invalid PTT method 無効なPTT方式 - + Invalid PTT port 無効なPTT用ポート - - + + Invalid Contest Exchange 無効なコンテストナンバー - + You must input a valid ARRL Field Day exchange 正しいARRLフィールドデーコンテストナンバーを入力しなければなりません - + You must input a valid ARRL RTTY Roundup exchange 正しいARRL RTTY ラウンドアップのコンテストナンバーを入力しなければなりません - + Reset Decode Highlighting デコードハイライトをリセット - + Reset all decode highlighting and priorities to default values すべてのハイライトと優先順位設定をデフォルトへ戻す - + WSJT-X Decoded Text Font Chooser WSJT-Xのデコード出力用フォント選択 - + Load Working Frequencies 使用周波数を読み込み - - - + + + Frequency files (*.qrg);;All files (*.*) 周波数ファイル (*.qrg);;全ファイル (*.*) - + Replace Working Frequencies 使用周波数を置き換え - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? 本当に現在の周波数を読み込んだ周波数で置き換えてもいいですか? - + Merge Working Frequencies 使用周波数を追加併合 - - - + + + Not a valid frequencies file 正しい周波数ファイルではない - + Incorrect file magic 無効なファイルマジック - + Version is too new バージョンが新しすぎます - + Contents corrupt 中身が壊れています - + Save Working Frequencies 使用周波数を保存 - + Only Save Selected Working Frequencies 選択した使用周波数のみ保存 - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. 選択した使用周波数だけを保存してもいいですか。全部を保存したいときはNoをクリックしてください。 - + Reset Working Frequencies 使用周波数をリセット - + Are you sure you want to discard your current working frequencies and replace them with default ones? 本当に現在の使用周波数を破棄してデフォルト周波数と置き換えてもよいですか? - + Save Directory フォルダーを保存 - + AzEl Directory AzElフォルダー - + Rig control error 無線機コントロールエラー - + Failed to open connection to rig 無線機へ接続できません - + Rig failure 無線機エラー - - - Not found - audio device missing - - DXLabSuiteCommanderTransceiver @@ -1449,22 +1443,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency 周波数を追加 - + IARU &Region: IARU地域(&R): - + &Mode: モード(&M): - + &Frequency (MHz): 周波数MHz(&F): @@ -4997,22 +4991,22 @@ Error(%2): %3 StationDialog - + Add Station 局を追加 - + &Band: バンド(&B): - + &Offset (MHz): オフセットMHz(&O): - + &Antenna: アンテナ(&A): @@ -6000,7 +5994,7 @@ radio interface behave as expected. サウンドカード - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -6017,46 +6011,46 @@ transmitting periods. 最後にアップロードしてから経過した日数 - + Select the audio CODEC to use for receiving. 受信用オーディオコーデックを選択. - + &Input: 入力(&I): - + Select the channel to use for receiving. 受信用チャンネルを選択. - - + + Mono モノラル - - + + Left - - + + Right - - + + Both 両方 - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -6071,7 +6065,7 @@ both here. VHFとサブモード機能をオン - + Ou&tput: 出力(&t): diff --git a/translations/wsjtx_zh.ts b/translations/wsjtx_zh.ts index a6adb5bfc..05f8a773a 100644 --- a/translations/wsjtx_zh.ts +++ b/translations/wsjtx_zh.ts @@ -368,75 +368,75 @@ Configuration::impl - - - + + + &Delete 删除(&D) - - + + &Insert ... 插入(&I) ... - + Failed to create save directory 无法创建保存目录 - + path: "%1% 目錄: "%1% - + Failed to create samples directory 无法创建示例目录 - + path: "%1" 目录: "%1" - + &Load ... 加载(&L) ... - + &Save as ... 另存为(&S) ... - + &Merge ... 合并(&M) ... - + &Reset 重置(&R) - + Serial Port: 串行端口: - + Serial port used for CAT control 用于CAT控制的串行端口 - + Network Server: 网络服务器: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -451,12 +451,12 @@ Formats: [IPv6-地址]:端口 - + USB Device: USB 设备: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -467,162 +467,156 @@ Format: [VID[:PID[:供应商[:产品]]]] - - + + Invalid audio input device 无效的音频输入设备 - + Invalid audio output device 无效的音频输出设备 - + Invalid PTT method 无效的PTT方法 - + Invalid PTT port 无效的PTT端口 - - + + Invalid Contest Exchange 无效的竞赛交换数据 - + You must input a valid ARRL Field Day exchange 您必须输入有效的 ARRL Field Day交换数据 - + You must input a valid ARRL RTTY Roundup exchange 您必须输入有效的 ARRL RTTY Roundup 交换数据 - + Reset Decode Highlighting 重置解码突出显示 - + Reset all decode highlighting and priorities to default values 将所有解码突出显示和优先级重置为默认值 - + WSJT-X Decoded Text Font Chooser WSJT-X 解码文本字体选择 - + Load Working Frequencies 载入工作频率 - - - + + + Frequency files (*.qrg);;All files (*.*) 频率文件 (*.qrg);;所有文件 (*.*) - + Replace Working Frequencies 替换工作频率 - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? 是否确实要放弃当前工作频率, 并将其替换为加载的频率? - + Merge Working Frequencies 合并工作频率 - - - + + + Not a valid frequencies file 不是有效的频率文件 - + Incorrect file magic 不正确的文件內容 - + Version is too new 版本太新 - + Contents corrupt 内容已损坏 - + Save Working Frequencies 保存工作频率 - + Only Save Selected Working Frequencies 仅保存选定的工作频率 - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. 是否确实要仅保存当前选择的工作频率? 单击 否 可保存所有. - + Reset Working Frequencies 重置工作频率 - + Are you sure you want to discard your current working frequencies and replace them with default ones? 您确定要放弃您当前的工作频率并用默认值频率替换它们吗? - + Save Directory 保存目录 - + AzEl Directory AzEl 目录 - + Rig control error 无线电设备控制错误 - + Failed to open connection to rig 无法打开无线电设备的连接 - + Rig failure 无线电设备故障 - - - Not found - audio device missing - - DXLabSuiteCommanderTransceiver @@ -1439,22 +1433,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency 添加频率 - + IARU &Region: IA&RU 区域: - + &Mode: 模式(&M): - + &Frequency (MHz): 频率 (M&Hz): @@ -4666,22 +4660,22 @@ Error(%2): %3 StationDialog - + Add Station 添加电台 - + &Band: 波段(&B): - + &Offset (MHz): 偏移 (M&Hz): - + &Antenna: 天线(&A): @@ -5657,7 +5651,7 @@ radio interface behave as expected. 声效卡 - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5675,46 +5669,46 @@ transmitting periods. 自上次上传以来的天数 - + Select the audio CODEC to use for receiving. 选择要用于接收的音频信号. - + &Input: 输入(&I): - + Select the channel to use for receiving. 选择要用于接收的通道. - - + + Mono 单声道 - - + + Left 左声道 - - + + Right 右声道 - - + + Both 双声道 - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5725,7 +5719,7 @@ both here. 双声道. - + Ou&tput: 输出(&t): diff --git a/translations/wsjtx_zh_HK.ts b/translations/wsjtx_zh_HK.ts index 86f731dc6..bb47a0ca7 100644 --- a/translations/wsjtx_zh_HK.ts +++ b/translations/wsjtx_zh_HK.ts @@ -368,75 +368,75 @@ Configuration::impl - - - + + + &Delete 刪除(&D) - - + + &Insert ... 插入(&I) ... - + Failed to create save directory 無法建立儲存目錄 - + path: "%1% 目錄: "%1% - + Failed to create samples directory 無法建立範例目錄 - + path: "%1" 目录: "%1" - + &Load ... 載入(&L)... - + &Save as ... 另存為(&S) ... - + &Merge ... 合併(&M) ... - + &Reset 重置(&R) - + Serial Port: 串行端口: - + Serial port used for CAT control 用於CAT控制的串行端口 - + Network Server: 網絡服務器: - + Optional hostname and port of network service. Leave blank for a sensible default on this machine. Formats: @@ -451,12 +451,12 @@ Formats: [IPv6-地址]:端口 - + USB Device: USB設備: - + Optional device identification. Leave blank for a sensible default for the rig. Format: @@ -467,162 +467,156 @@ Format: [VID[:PID[:供應商[:產品]]]] - - + + Invalid audio input device 無效的音頻輸入設備 - + Invalid audio output device 無效的音頻輸出設備 - + Invalid PTT method 無效的PTT方法 - + Invalid PTT port 無效的PTT端口 - - + + Invalid Contest Exchange 無效的競賽交換數據 - + You must input a valid ARRL Field Day exchange 您必須輸入有效的 ARRL Field Day交換數據 - + You must input a valid ARRL RTTY Roundup exchange 您必須輸入有效的 ARRL RTTY Roundup 交換數據 - + Reset Decode Highlighting 重置解碼突出顯示 - + Reset all decode highlighting and priorities to default values 將所有解碼突出顯示和優先順序重置為預設值 - + WSJT-X Decoded Text Font Chooser WSJT-X 解碼文本字體選擇 - + Load Working Frequencies 載入工作頻率 - - - + + + Frequency files (*.qrg);;All files (*.*) 頻率檔案 (*.qrg);;所有檔案 (*.*) - + Replace Working Frequencies 替換工作頻率 - + Are you sure you want to discard your current working frequencies and replace them with the loaded ones? 是否確實要放棄當前工作頻率, 並將其替換為載入的頻率? - + Merge Working Frequencies 合併工作頻率 - - - + + + Not a valid frequencies file 不是有效的頻率檔案 - + Incorrect file magic 不正確的檔案內容 - + Version is too new 版本太新 - + Contents corrupt 內容已損壞 - + Save Working Frequencies 儲存工作頻率 - + Only Save Selected Working Frequencies 只儲存選取的工作頻率 - + Are you sure you want to save only the working frequencies that are currently selected? Click No to save all. 是否確定要只儲存目前選擇的工作頻率? 按一下 否 可儲存所有. - + Reset Working Frequencies 重置工作頻率 - + Are you sure you want to discard your current working frequencies and replace them with default ones? 您確定要放棄您當前的工作頻率並用默認值頻率替換它們嗎? - + Save Directory 儲存目錄 - + AzEl Directory AzEl 目錄 - + Rig control error 無線電設備控制錯誤 - + Failed to open connection to rig 無法開啟無線電設備的連接 - + Rig failure 無線電設備故障 - - - Not found - audio device missing - - DXLabSuiteCommanderTransceiver @@ -1439,22 +1433,22 @@ Error: %2 - %3 FrequencyDialog - + Add Frequency 添加頻率 - + IARU &Region: IA&RU 區域: - + &Mode: 模式(&M): - + &Frequency (MHz): 頻率 (M&Hz): @@ -4666,22 +4660,22 @@ Error(%2): %3 StationDialog - + Add Station 添加電臺 - + &Band: 波段(&B): - + &Offset (MHz): 偏移 (M&Hz): - + &Antenna: 天線(&A): @@ -5657,7 +5651,7 @@ radio interface behave as expected. 音效卡 - + Select the audio CODEC to use for transmitting. If this is your default device for system sounds then ensure that all system sounds are disabled otherwise @@ -5675,46 +5669,46 @@ transmitting periods. 自上次上傳以來的天數 - + Select the audio CODEC to use for receiving. 選擇要用於接收的音頻信號. - + &Input: 輸入(&I): - + Select the channel to use for receiving. 選擇要用於接收的通道. - - + + Mono 單聲道 - - + + Left 左聲道 - - + + Right 右聲道 - - + + Both 雙聲道 - + Select the audio channel used for transmission. Unless you have multiple radios connected on different channels; then you will usually want to select mono or @@ -5725,7 +5719,7 @@ both here. 雙聲道. - + Ou&tput: 輸出(&t): From 2266e8dbb748a2ca849206a6d3144c8c5d377268 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 16 Sep 2020 17:02:40 -0400 Subject: [PATCH 492/520] Add FLow and FHigh spinner controls to set the FST4 decoding range. --- displayWidgets.txt | 44 +-- widgets/mainwindow.cpp | 98 ++++-- widgets/mainwindow.h | 4 +- widgets/mainwindow.ui | 737 ++++++++++++++++++++++------------------- widgets/plotter.cpp | 20 +- widgets/plotter.h | 5 + widgets/widegraph.cpp | 5 + widgets/widegraph.h | 1 + 8 files changed, 510 insertions(+), 404 deletions(-) diff --git a/displayWidgets.txt b/displayWidgets.txt index 9b438590c..a3f31eef2 100644 --- a/displayWidgets.txt +++ b/displayWidgets.txt @@ -1,27 +1,27 @@ Here are the "displayWidgets()" strings for WSJT-X modes 1 2 3 - 0123456789012345678901234567890123 ----------------------------------------------- -JT4 1110100000001100001100000000000000 -JT4/VHF 1111100100101101101111000000000000 -JT9 1110100000001110000100000000000010 -JT9/VHF 1111101010001111100100000000000000 -JT9+JT65 1110100000011110000100000000000010 -JT65 1110100000001110000100000000000010 -JT65/VHF 1111100100001101101011000100000000 -QRA64 1111100101101101100000000010000000 -ISCAT 1001110000000001100000000000000000 -MSK144 1011111101000000000100010000000000 -WSPR 0000000000000000010100000000000000 -FST4 1111110001001110000100000001000000 -FST4W 0000000000000000010100000000000001 -Echo 0000000000000000000000100000000000 -FCal 0011010000000000000000000000010000 -FT8 1110100001001110000100001001100010 -FT8/VHF 1110100001001110000100001001100010 -FT8/Fox 1110100001001110000100000000001000 -FT8/Hound 1110100001001110000100000000001100 + 012345678901234567890123456789012345 +------------------------------------------------ +JT4 111010000000110000110000000000000000 +JT4/VHF 111110010010110110111100000000000000 +JT9 111010000000111000010000000000001000 +JT9/VHF 111110101000111110010000000000000000 +JT9+JT65 111010000001111000010000000000001000 +JT65 111010000000111000010000000000001000 +JT65/VHF 111110010000110110101100010000000000 +QRA64 111110010110110110000000001000000000 +ISCAT 100111000000000110000000000000000000 +MSK144 101111110100000000010001000000000000 +WSPR 000000000000000001010000000000000000 +FST4 111111000100111000010000000100000011 +FST4W 000000000000000001010000000000000100 +Echo 000000000000000000000010000000000000 +FCal 001101000000000000000000000001000000 +FT8 111010000100111000010000100110001000 +FT8/VHF 111010000100111000010000100110001000 +FT8/Fox 111010000100111000010000000000100000 +FT8/Hound 111010000100111000010000000000110000 ---------------------------------------------- 1 2 3 012345678901234567890123456789012 @@ -63,3 +63,5 @@ Mapping of column numbers to widgets 31. cbRxAll 32. cbCQonly 33. sbTR_FST4W +34. sbF_Low +35. sbF_High diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 3e046173c..6ff5351c2 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -208,7 +208,7 @@ namespace // 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"}; auto quint32_max = std::numeric_limits::max (); - constexpr int N_WIDGETS {34}; + constexpr int N_WIDGETS {36}; constexpr int rx_chunk_size {3456}; // audio samples at 12000 Hz constexpr int tx_audio_buffer_size {48000 / 5}; // audio frames at 48000 Hz @@ -1135,6 +1135,8 @@ void MainWindow::writeSettings() m_settings->setValue("WSPRfreq",ui->WSPRfreqSpinBox->value()); m_settings->setValue("FST4W_RxFreq",ui->sbFST4W_RxFreq->value()); m_settings->setValue("FST4W_FTol",ui->sbFST4W_FTol->value()); + m_settings->setValue("FST4_FLow",ui->sbF_Low->value()); + m_settings->setValue("FST4_FHigh",ui->sbF_High->value()); m_settings->setValue("SubMode",ui->sbSubmode->value()); m_settings->setValue("DTtol",m_DTtol); m_settings->setValue("Ftol", ui->sbFtol->value ()); @@ -1222,6 +1224,8 @@ void MainWindow::readSettings() ui->RxFreqSpinBox->setValue(m_settings->value("RxFreq",1500).toInt()); ui->sbFST4W_RxFreq->setValue(0); ui->sbFST4W_RxFreq->setValue(m_settings->value("FST4W_RxFreq",1500).toInt()); + ui->sbF_Low->setValue(m_settings->value("FST4_FLow",600).toInt()); + ui->sbF_High->setValue(m_settings->value("FST4_FHigh",1400).toInt()); m_nSubMode=m_settings->value("SubMode",0).toInt(); ui->sbFtol->setValue (m_settings->value("Ftol", 50).toInt()); ui->sbFST4W_FTol->setValue(m_settings->value("FST4W_FTol",100).toInt()); @@ -1427,6 +1431,10 @@ void MainWindow::dataSink(qint64 frames) // Get power, spectrum, and ihsym dec_data.params.nfa=m_wideGraph->nStartFreq(); dec_data.params.nfb=m_wideGraph->Fmax(); + if(m_mode=="FST4") { + dec_data.params.nfa=ui->sbF_Low->value(); + dec_data.params.nfb=ui->sbF_High->value(); + } int nsps=m_nsps; if(m_bFastMode) nsps=6912; int nsmo=m_wideGraph->smoothYellow()-1; @@ -4224,7 +4232,7 @@ void MainWindow::guiUpdate() //Once per second (onesec) if(nsec != m_sec0) { // qDebug() << "AAA" << nsec; - if(m_mode=="FST4") sbFtolMaxVal(); + if(m_mode=="FST4") chk_FST4_freq_range(); m_currentBand=m_config.bands()->find(m_freqNominal); if( SpecOp::HOUND == m_config.special_op_id() ) { qint32 tHound=QDateTime::currentMSecsSinceEpoch()/1000 - m_tAutoOn; @@ -5870,6 +5878,8 @@ void MainWindow::displayWidgets(qint64 n) if(i==31) ui->cbRxAll->setVisible(b); if(i==32) ui->cbCQonly->setVisible(b); if(i==33) ui->sbTR_FST4W->setVisible(b); + if(i==34) ui->sbF_Low->setVisible(b); + if(i==35) ui->sbF_High->setVisible(b); j=j>>1; } ui->pbBestSP->setVisible(m_mode=="FT4"); @@ -5902,12 +5912,12 @@ void MainWindow::on_actionFST4_triggered() ui->label_6->setText(tr ("Band Activity")); ui->label_7->setText(tr ("Rx Frequency")); WSPR_config(false); -// 0123456789012345678901234567890123 - displayWidgets(nWidgets("1111110001001110000100000001000000")); +// 012345678901234567890123456789012345 + displayWidgets(nWidgets("111111000100111000010000000100000011")); setup_status_bar(false); ui->sbTR->values ({15, 30, 60, 120, 300, 900, 1800}); on_sbTR_valueChanged (ui->sbTR->value()); - sbFtolMaxVal(); + chk_FST4_freq_range(); ui->cbAutoSeq->setChecked(true); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); @@ -5915,6 +5925,7 @@ void MainWindow::on_actionFST4_triggered() m_wideGraph->setRxFreq(ui->RxFreqSpinBox->value()); m_wideGraph->setTol(ui->sbFtol->value()); m_wideGraph->setTxFreq(ui->TxFreqSpinBox->value()); + m_wideGraph->setFST4_FreqRange(ui->sbF_Low->value(),ui->sbF_High->value()); switch_mode (Modes::FST4); m_wideGraph->setMode(m_mode); statusChanged(); @@ -5933,8 +5944,8 @@ void MainWindow::on_actionFST4W_triggered() m_FFTSize = m_nsps / 2; Q_EMIT FFTSize(m_FFTSize); WSPR_config(true); -// 0123456789012345678901234567890123 - displayWidgets(nWidgets("0000000000000000010100000000000001")); +// 012345678901234567890123456789012345 + displayWidgets(nWidgets("000000000000000001010000000000000100")); setup_status_bar(false); ui->band_hopping_group_box->setChecked(false); ui->band_hopping_group_box->setVisible(false); @@ -5982,7 +5993,7 @@ void MainWindow::on_actionFT4_triggered() ui->label_7->setText(tr ("Rx Frequency")); ui->label_6->setText(tr ("Band Activity")); ui->decodedTextLabel->setText( " UTC dB DT Freq " + tr ("Message")); - displayWidgets(nWidgets("1110100001001110000100000001100010")); + displayWidgets(nWidgets("111010000100111000010000000110001000")); ui->txrb2->setEnabled(true); ui->txrb4->setEnabled(true); ui->txrb5->setEnabled(true); @@ -6031,7 +6042,7 @@ void MainWindow::on_actionFT8_triggered() ui->label_6->setText(tr ("Band Activity")); ui->decodedTextLabel->setText( " UTC dB DT Freq " + tr ("Message")); } - displayWidgets(nWidgets("1110100001001110000100001001100010")); + displayWidgets(nWidgets("111010000100111000010000100110001000")); ui->txrb2->setEnabled(true); ui->txrb4->setEnabled(true); ui->txrb5->setEnabled(true); @@ -6049,7 +6060,7 @@ void MainWindow::on_actionFT8_triggered() ui->cbAutoSeq->setEnabled(false); ui->tabWidget->setCurrentIndex(1); ui->TxFreqSpinBox->setValue(300); - displayWidgets(nWidgets("1110100001001110000100000000001000")); + displayWidgets(nWidgets("111010000100111000010000000000100000")); ui->labDXped->setText(tr ("Fox")); on_fox_log_action_triggered(); } @@ -6059,7 +6070,7 @@ void MainWindow::on_actionFT8_triggered() ui->cbAutoSeq->setEnabled(false); ui->tabWidget->setCurrentIndex(0); ui->cbHoldTxFreq->setChecked(true); - displayWidgets(nWidgets("1110100001001100000100000000001100")); + displayWidgets(nWidgets("111010000100110000010000000000110000")); ui->labDXped->setText(tr ("Hound")); ui->txrb1->setChecked(true); ui->txrb2->setEnabled(false); @@ -6134,9 +6145,9 @@ void MainWindow::on_actionJT4_triggered() ui->sbSubmode->setValue(0); } if(bVHF) { - displayWidgets(nWidgets("1111100100101101101111000000000000")); + displayWidgets(nWidgets("111110010010110110111100000000000000")); } else { - displayWidgets(nWidgets("1110100000001100001100000000000000")); + displayWidgets(nWidgets("111010000000110000110000000000000000")); } fast_config(false); statusChanged(); @@ -6193,9 +6204,9 @@ void MainWindow::on_actionJT9_triggered() ui->label_6->setText(tr ("Band Activity")); ui->label_7->setText(tr ("Rx Frequency")); if(bVHF) { - displayWidgets(nWidgets("1111101010001111100100000000000000")); + displayWidgets(nWidgets("111110101000111110010000000000000000")); } else { - displayWidgets(nWidgets("1110100000001110000100000000000010")); + displayWidgets(nWidgets("111010000000111000010000000000001000")); } fast_config(m_bFastMode); ui->cbAutoSeq->setVisible(m_bFast9); @@ -6234,7 +6245,7 @@ void MainWindow::on_actionJT9_JT65_triggered() ui->label_7->setText(tr ("Rx Frequency")); ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message")); ui->decodedTextLabel2->setText("UTC dB DT Freq " + tr ("Message")); - displayWidgets(nWidgets("1110100000011110000100000000000010")); + displayWidgets(nWidgets("111010000001111000010000000000001000")); fast_config(false); statusChanged(); } @@ -6282,9 +6293,9 @@ void MainWindow::on_actionJT65_triggered() ui->label_7->setText(tr ("Rx Frequency")); } if(bVHF) { - displayWidgets(nWidgets("1111100100001101101011000100000000")); + displayWidgets(nWidgets("111110010000110110101100010000000000")); } else { - displayWidgets(nWidgets("1110100000001110000100000000000010")); + displayWidgets(nWidgets("111010000000111000010000000000001000")); } fast_config(false); if(ui->cbShMsgs->isChecked()) { @@ -6316,7 +6327,7 @@ void MainWindow::on_actionQRA64_triggered() ui->TxFreqSpinBox->setValue(1000); QString fname {QDir::toNativeSeparators(m_config.temp_dir ().absoluteFilePath ("red.dat"))}; m_wideGraph->setRedFile(fname); - displayWidgets(nWidgets("1111100100101101100000000010000000")); + displayWidgets(nWidgets("111110010010110110000000001000000000")); statusChanged(); } @@ -6353,7 +6364,7 @@ void MainWindow::on_actionISCAT_triggered() ui->sbSubmode->setMaximum(1); if(m_nSubMode==0) ui->TxFreqSpinBox->setValue(1012); if(m_nSubMode==1) ui->TxFreqSpinBox->setValue(560); - displayWidgets(nWidgets("1001110000000001100000000000000000")); + displayWidgets(nWidgets("100111000000000110000000000000000000")); fast_config(true); statusChanged (); } @@ -6415,7 +6426,7 @@ void MainWindow::on_actionMSK144_triggered() ui->rptSpinBox->setValue(0); ui->rptSpinBox->setSingleStep(1); ui->sbFtol->values ({20, 50, 100, 200}); - displayWidgets(nWidgets("1011111101000000000100010000100000")); + displayWidgets(nWidgets("101111110100000000010001000010000000")); fast_config(m_bFastMode); statusChanged(); @@ -6455,7 +6466,7 @@ void MainWindow::on_actionWSPR_triggered() m_bFastMode=false; m_bFast9=false; ui->TxFreqSpinBox->setValue(ui->WSPRfreqSpinBox->value()); - displayWidgets(nWidgets("0000000000000000010100000000000000")); + displayWidgets(nWidgets("000000000000000001010000000000000000")); fast_config(false); statusChanged(); } @@ -6488,7 +6499,7 @@ void MainWindow::on_actionEcho_triggered() m_bFast9=false; WSPR_config(true); ui->decodedTextLabel->setText(" UTC N Level Sig DF Width Q"); - displayWidgets(nWidgets("0000000000000000000000100000000000")); + displayWidgets(nWidgets("000000000000000000000010000000000000")); fast_config(false); statusChanged(); } @@ -6514,7 +6525,7 @@ void MainWindow::on_actionFreqCal_triggered() // 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"); ui->measure_check_box->setChecked (false); - displayWidgets(nWidgets("0011010000000000000000000000010000")); + displayWidgets(nWidgets("001101000000000000000000000001000000")); statusChanged(); } @@ -6620,6 +6631,35 @@ void MainWindow::on_RxFreqSpinBox_valueChanged(int n) statusUpdate (); } +void MainWindow::on_sbF_Low_valueChanged(int n) +{ + m_wideGraph->setFST4_FreqRange(n,ui->sbF_High->value()); + chk_FST4_freq_range(); +} + +void MainWindow::on_sbF_High_valueChanged(int n) +{ + m_wideGraph->setFST4_FreqRange(ui->sbF_Low->value(),n); + chk_FST4_freq_range(); +} + +void MainWindow::chk_FST4_freq_range() +{ + int maxDiff=2000; + if(m_TRperiod==120) maxDiff=1000; + if(m_TRperiod==300) maxDiff=400; + if(m_TRperiod>=900) maxDiff=200; + int diff=ui->sbF_High->value() - ui->sbF_Low->value(); + + if(diff<100 or diff>maxDiff) { + ui->sbF_Low->setStyleSheet("QSpinBox { background-color: red; }"); + ui->sbF_High->setStyleSheet("QSpinBox { background-color: red; }"); + } else { + ui->sbF_Low->setStyleSheet(""); + ui->sbF_High->setStyleSheet(""); + } +} + void MainWindow::on_actionQuickDecode_toggled (bool checked) { m_ndepth ^= (-checked ^ m_ndepth) & 0x00000001; @@ -7467,7 +7507,7 @@ void MainWindow::on_sbTR_valueChanged(int value) m_wideGraph->setPeriod (value, m_nsps); progressBar.setMaximum (value); } - if(m_mode=="FST4") sbFtolMaxVal(); + if(m_mode=="FST4") chk_FST4_freq_range(); if(m_monitoring) { on_stopButton_clicked(); on_monitorButton_clicked(true); @@ -7478,14 +7518,6 @@ void MainWindow::on_sbTR_valueChanged(int value) statusUpdate (); } -void MainWindow::sbFtolMaxVal() -{ - if(m_TRperiod<=60) ui->sbFtol->setMaximum(1000); - if(m_TRperiod==120) ui->sbFtol->setMaximum(500); - if(m_TRperiod==300) ui->sbFtol->setMaximum(200); - if(m_TRperiod>=900) ui->sbFtol->setMaximum(100); -} - void MainWindow::on_sbTR_FST4W_valueChanged(int value) { on_sbTR_valueChanged(value); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 042866fe2..264e0cac5 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -305,6 +305,9 @@ private slots: void on_sbNlist_valueChanged(int n); void on_sbNslots_valueChanged(int n); void on_sbMax_dB_valueChanged(int n); + void on_sbF_Low_valueChanged(int n); + void on_sbF_High_valueChanged(int n); + void chk_FST4_freq_range(); void on_pbFoxReset_clicked(); void on_comboBoxHoundSort_activated (int index); void not_GA_warning_message (); @@ -312,7 +315,6 @@ private slots: void on_pbBestSP_clicked(); void on_RoundRobin_currentTextChanged(QString text); void setTxMsg(int n); - void sbFtolMaxVal(); bool stdCall(QString const& w); void remote_configure (QString const& mode, quint32 frequency_tolerance, QString const& submode , bool fast_mode, quint32 tr_period, quint32 rx_df, QString const& dx_call diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 5ade13659..9779fe3bb 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -658,6 +658,299 @@ QPushButton[state="ok"] { + + + + + + <html><head/><body><p>Check to use short-format messages.</p></body></html> + + + Check to use short-format messages. + + + Sh + + + + + + + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> + + + Check to enable JT9 fast modes + + + Fast + + + + + + + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> + + + Check to enable automatic sequencing of Tx messages based on received messages. + + + Auto Seq + + + + + + + <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> + + + Check to call the first decoded responder to my CQ. + + + Call 1st + + + + + + + false + + + Check to generate "@1250 (SEND MSGS)" in Tx6. + + + Tx6 + + + + + + + + + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> + + + Submode determines tone spacing; A is narrowest. + + + Qt::AlignCenter + + + Submode + + + 0 + + + 7 + + + + + + + + + false + + + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> + + + Frequency to call CQ on in kHz above the current MHz + + + Tx CQ + + + 1 + + + 999 + + + 260 + + + + + + + false + + + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> + + + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. +Not available to nonstandard callsign holders. + + + + + + + + + + Rx All Freqs + + + + + + + + + true + + + + 0 + 0 + + + + Toggle Tx mode + + + Tx JT9 @ + + + + + + + + + + 0 + 0 + + + + + 100 + 16777215 + + + + Fox + + + Qt::AlignCenter + + + + + + + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> + + + Check to monitor Sh messages. + + + SWL + + + + + + + QPushButton:checked { + color: rgb(0, 0, 0); + background-color: red; + border-style: outset; + border-width: 1px; + border-radius: 5px; + border-color: black; + min-width: 5em; + padding: 3px; +} + + + Best S+P + + + true + + + + + + + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> + + + Check this to start recording calibration data. +While measuring calibration correction is disabled. +When not checked you can view the calibration results. + + + Measure + + + + + + + + + Audio Tx frequency + + + Qt::AlignCenter + + + Hz + + + Tx + + + 200 + + + 5000 + + + 1500 + + + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + Tx# + + + 1 + + + 4095 + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + @@ -671,32 +964,108 @@ QPushButton[state="ok"] { - - + + - Audio Rx frequency + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> + + + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. + + + Tx even/1st + + + + + + + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> + + + Synchronizing threshold. Lower numbers accept weaker sync signals. Qt::AlignCenter - - Hz - - Rx + Sync - 200 + -1 + + + 10 + + + 1 + + + + + + + <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> + + + Double-click on another caller to queue that call for your next QSO. + + + Next Call + + + Qt::AlignCenter + + + + + + + Qt::AlignCenter + + + F Low + + + 100 5000 + + 100 + - 1500 + 600 - + + + + Qt::AlignCenter + + + + + + F High + + + 100 + + + 5000 + + + 100 + + + 1400 + + + + @@ -784,265 +1153,32 @@ QPushButton[state="ok"] { - - + + - <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> - - - Synchronizing threshold. Lower numbers accept weaker sync signals. + Audio Rx frequency Qt::AlignCenter + + Hz + - Sync + Rx - -1 + 200 - 10 + 5000 - 1 + 1500 - - - - - - <html><head/><body><p>Check to use short-format messages.</p></body></html> - - - Check to use short-format messages. - - - Sh - - - - - - - <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> - - - Check to enable JT9 fast modes - - - Fast - - - - - - - <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> - - - Check to enable automatic sequencing of Tx messages based on received messages. - - - Auto Seq - - - - - - - <html><head/><body><p>Check to call the first decoded responder to my CQ.</p></body></html> - - - Check to call the first decoded responder to my CQ. - - - Call 1st - - - - - - - false - - - Check to generate "@1250 (SEND MSGS)" in Tx6. - - - Tx6 - - - - - - - - - <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> - - - Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. - - - Tx even/1st - - - - - - - - - false - - - <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> - - - Frequency to call CQ on in kHz above the current MHz - - - Tx CQ - - - 1 - - - 999 - - - 260 - - - - - - - false - - - <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> - - - Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. -Not available to nonstandard callsign holders. - - - - - - - - - - Rx All Freqs - - - - - - - - - <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> - - - Submode determines tone spacing; A is narrowest. - - - Qt::AlignCenter - - - Submode - - - 0 - - - 7 - - - - - - - - - - 0 - 0 - - - - - 100 - 16777215 - - - - Fox - - - Qt::AlignCenter - - - - - - - <html><head/><body><p>Check to monitor Sh messages.</p></body></html> - - - Check to monitor Sh messages. - - - SWL - - - - - - - QPushButton:checked { - color: rgb(0, 0, 0); - background-color: red; - border-style: outset; - border-width: 1px; - border-radius: 5px; - border-color: black; - min-width: 5em; - padding: 3px; -} - - - Best S+P - - - true - - - - - - - <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> - - - Check this to start recording calibration data. -While measuring calibration correction is disabled. -When not checked you can view the calibration results. - - - Measure - - - - - - + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> @@ -1067,7 +1203,7 @@ When not checked you can view the calibration results. - + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> @@ -1095,95 +1231,6 @@ When not checked you can view the calibration results. - - - - true - - - - 0 - 0 - - - - Toggle Tx mode - - - Tx JT9 @ - - - - - - - Audio Tx frequency - - - Qt::AlignCenter - - - Hz - - - Tx - - - 200 - - - 5000 - - - 1500 - - - - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - Tx# - - - 1 - - - 4095 - - - - - - - <html><head/><body><p>Double-click on another caller to queue that call for your next QSO.</p></body></html> - - - Double-click on another caller to queue that call for your next QSO. - - - Next Call - - - Qt::AlignCenter - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - @@ -3348,8 +3395,6 @@ Yellow when too low addButton txFirstCheckBox TxFreqSpinBox - rptSpinBox - sbTR sbCQTxFreq cbCQTx cbShMsgs diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index 9fdf66cef..bc7b2270d 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -506,11 +506,20 @@ void CPlotter::DrawOverlay() //DrawOverlay() or m_mode=="QRA64" or m_mode=="FT8" or m_mode=="FT4" or m_mode.startsWith("FST4")) { + if(m_mode=="FST4") { + x1=XfromFreq(m_nfa); + x2=XfromFreq(m_nfb); + painter0.drawLine(x1,25,x1+5,30); // Mark FST4 F_Low + painter0.drawLine(x1,25,x1+5,20); + painter0.drawLine(x2,25,x2-5,30); // Mark FST4 F_High + painter0.drawLine(x2,25,x2-5,20); + } + if(m_mode=="QRA64" or (m_mode=="JT65" and m_bVHF)) { painter0.setPen(penGreen); x1=XfromFreq(m_rxFreq-m_tol); x2=XfromFreq(m_rxFreq+m_tol); - painter0.drawLine(x1,28,x2,28); + painter0.drawLine(x1,26,x2,26); x1=XfromFreq(m_rxFreq); painter0.drawLine(x1,24,x1,30); @@ -539,8 +548,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() x1=XfromFreq(m_rxFreq-m_tol); x2=XfromFreq(m_rxFreq+m_tol); painter0.drawLine(x1,26,x2,26); // Mark the Tol range - } - } + } } } if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65" or @@ -809,6 +817,12 @@ void CPlotter::setFlatten(bool b1, bool b2) void CPlotter::setTol(int n) //setTol() { m_tol=n; +} + +void CPlotter::setFST4_FreqRange(int fLow,int fHigh) +{ + m_nfa=fLow; + m_nfb=fHigh; DrawOverlay(); } diff --git a/widgets/plotter.h b/widgets/plotter.h index b4b4cf42b..3787fafe0 100644 --- a/widgets/plotter.h +++ b/widgets/plotter.h @@ -83,6 +83,9 @@ public: void drawRed(int ia, int ib, float swide[]); void setVHF(bool bVHF); void setRedFile(QString fRed); + void setFST4_FreqRange(int fLow,int fHigh); + + bool scaleOK () const {return m_bScaleOK;} signals: void freezeDecode1(int n); @@ -125,6 +128,8 @@ private: qint32 m_nSubMode; qint32 m_ia; qint32 m_ib; + qint32 m_nfa; + qint32 m_nfb; QPixmap m_WaterfallPixmap; QPixmap m_2DPixmap; diff --git a/widgets/widegraph.cpp b/widgets/widegraph.cpp index c29d84989..389986c84 100644 --- a/widgets/widegraph.cpp +++ b/widgets/widegraph.cpp @@ -500,6 +500,11 @@ void WideGraph::setTol(int n) //setTol ui->widePlot->update(); } +void WideGraph::setFST4_FreqRange(int fLow,int fHigh) +{ + ui->widePlot->setFST4_FreqRange(fLow,fHigh); +} + void WideGraph::on_smoSpinBox_valueChanged(int n) { m_nsmo=n; diff --git a/widgets/widegraph.h b/widgets/widegraph.h index 90f7b51aa..d26328fdb 100644 --- a/widgets/widegraph.h +++ b/widgets/widegraph.h @@ -49,6 +49,7 @@ public: void drawRed(int ia, int ib); void setVHF(bool bVHF); void setRedFile(QString fRed); + void setFST4_FreqRange(int fLow,int fHigh); signals: void freezeDecode2(int n); From 21dc6a5c596be9a1ca1c3edd96894b618c8d30da Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 16 Sep 2020 17:23:59 -0400 Subject: [PATCH 493/520] Connect the FLow and FHigh limits for FST4 decoding. --- lib/fst4_decode.f90 | 11 ++++++++--- widgets/mainwindow.cpp | 6 +++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 5d953e0e4..a4cce0dcd 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -64,7 +64,7 @@ contains integer naptypes(0:5,4) ! (nQSOProgress,decoding pass) integer mcq(29),mrrr(19),m73(19),mrr73(19) - logical badsync,unpk77_success + logical badsync,unpk77_success,single_decode logical first,nohiscall,lwspr,ex integer*2 iwave(30*60*12000) @@ -232,8 +232,13 @@ contains nhicoh=1 nsyncoh=8 - fa=max(100,nint(nfqso+1.5*baud-ntol)) - fb=min(4800,nint(nfqso+1.5*baud+ntol)) + fa=nfa + fb=nfb + single_decode=iand(nexp_decode,32).ne.0 + if(single_decode) then + fa=max(100,nint(nfqso+1.5*baud-ntol)) + fb=min(4800,nint(nfqso+1.5*baud+ntol)) + endif minsync=1.20 if(ntrperiod.eq.15) minsync=1.15 diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 6ff5351c2..99d42cb6a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3075,7 +3075,11 @@ void MainWindow::decode() //decode() dec_data.params.ntol=20; dec_data.params.naggressive=0; } - if(m_mode=="FST4") dec_data.params.ntol=ui->sbFtol->value(); + if(m_mode=="FST4") { + dec_data.params.ntol=ui->sbFtol->value(); + dec_data.params.nfa=ui->sbF_Low->value(); + dec_data.params.nfb=ui->sbF_High->value(); + } if(m_mode=="FST4W") dec_data.params.ntol=ui->sbFST4W_FTol->value(); if(dec_data.params.nutc < m_nutc0) m_RxLog = 1; //Date and Time to file "ALL.TXT". if(dec_data.params.newdat==1 and !m_diskData) m_nutc0=dec_data.params.nutc; From e60fc1ca196914d4bf0431abe1ae940eefb237ba Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 16 Sep 2020 20:16:32 -0400 Subject: [PATCH 494/520] FST4 GUI controls for FLow, FHigh, should disappear when Single Decode is checked. And some related improvements. --- widgets/mainwindow.cpp | 26 ++++++++++++++++++++++---- widgets/plotter.cpp | 13 +++++++++++-- widgets/plotter.h | 3 ++- widgets/widegraph.cpp | 5 +++++ widgets/widegraph.h | 1 + 5 files changed, 41 insertions(+), 7 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 99d42cb6a..7d81f6868 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3077,8 +3077,13 @@ void MainWindow::decode() //decode() } if(m_mode=="FST4") { dec_data.params.ntol=ui->sbFtol->value(); - dec_data.params.nfa=ui->sbF_Low->value(); - dec_data.params.nfb=ui->sbF_High->value(); + if(m_config.single_decode()) { + dec_data.params.nfa=m_wideGraph->rxFreq() - ui->sbFtol->value(); + dec_data.params.nfb=m_wideGraph->rxFreq() + ui->sbFtol->value(); + } else { + dec_data.params.nfa=ui->sbF_Low->value(); + dec_data.params.nfb=ui->sbF_High->value(); + } } if(m_mode=="FST4W") dec_data.params.ntol=ui->sbFST4W_FTol->value(); if(dec_data.params.nutc < m_nutc0) m_RxLog = 1; //Date and Time to file "ALL.TXT". @@ -5916,8 +5921,14 @@ void MainWindow::on_actionFST4_triggered() ui->label_6->setText(tr ("Band Activity")); ui->label_7->setText(tr ("Rx Frequency")); WSPR_config(false); -// 012345678901234567890123456789012345 - displayWidgets(nWidgets("111111000100111000010000000100000011")); + if(m_config.single_decode()) { +// 012345678901234567890123456789012345 + displayWidgets(nWidgets("111111000100111000010000000100000000")); + m_wideGraph->setSingleDecode(true); + } else { + displayWidgets(nWidgets("111111000100111000010000000100000011")); + m_wideGraph->setSingleDecode(false); + } setup_status_bar(false); ui->sbTR->values ({15, 30, 60, 120, 300, 900, 1800}); on_sbTR_valueChanged (ui->sbTR->value()); @@ -6649,6 +6660,13 @@ void MainWindow::on_sbF_High_valueChanged(int n) void MainWindow::chk_FST4_freq_range() { +// qDebug() << "aa" << m_wideGraph->nStartFreq() << m_wideGraph->Fmax() +// << ui->sbF_Low->value() << ui->sbF_High->value(); + if(ui->sbF_Low->value() < m_wideGraph->nStartFreq()) ui->sbF_Low->setValue(m_wideGraph->nStartFreq()); + if(ui->sbF_High->value() > m_wideGraph->Fmax()) { + int n=m_wideGraph->Fmax()/100; + ui->sbF_High->setValue(100*n); + } int maxDiff=2000; if(m_TRperiod==120) maxDiff=1000; if(m_TRperiod==300) maxDiff=400; diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index bc7b2270d..ab979af64 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -163,7 +163,6 @@ void CPlotter::draw(float swide[], bool bScroll, bool bRed) int iz=XfromFreq(5000.0); int jz=iz*m_binsPerPixel; m_fMax=FreqfromX(iz); - if(bScroll and swide[0]<1.e29) { flat4_(swide,&iz,&m_Flatten); if(!m_bReplot) flat4_(&dec_data.savg[j0],&jz,&m_Flatten); @@ -506,7 +505,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() or m_mode=="QRA64" or m_mode=="FT8" or m_mode=="FT4" or m_mode.startsWith("FST4")) { - if(m_mode=="FST4") { + if(m_mode=="FST4" and !m_bSingleDecode) { x1=XfromFreq(m_nfa); x2=XfromFreq(m_nfb); painter0.drawLine(x1,25,x1+5,30); // Mark FST4 F_Low @@ -663,7 +662,9 @@ void CPlotter::setPlot2dZero(int plot2dZero) //setPlot2dZero void CPlotter::setStartFreq(int f) //SetStartFreq() { m_startFreq=f; + m_fMax=FreqfromX(XfromFreq(5000.0)); resizeEvent(NULL); + DrawOverlay(); update(); } @@ -684,6 +685,7 @@ void CPlotter::setRxRange(int fMin) //setRxRange void CPlotter::setBinsPerPixel(int n) //setBinsPerPixel { m_binsPerPixel = n; + m_fMax=FreqfromX(XfromFreq(5000.0)); DrawOverlay(); //Redraw scales and ticks update(); //trigger a new paintEvent} } @@ -824,8 +826,15 @@ void CPlotter::setFST4_FreqRange(int fLow,int fHigh) m_nfa=fLow; m_nfb=fHigh; DrawOverlay(); + update(); } +void CPlotter::setSingleDecode(bool b) +{ + m_bSingleDecode=b; +} + + void CPlotter::setColours(QVector const& cl) { g_ColorTbl = cl; diff --git a/widgets/plotter.h b/widgets/plotter.h index 3787fafe0..ac13b5408 100644 --- a/widgets/plotter.h +++ b/widgets/plotter.h @@ -84,7 +84,7 @@ public: void setVHF(bool bVHF); void setRedFile(QString fRed); void setFST4_FreqRange(int fLow,int fHigh); - + void setSingleDecode(bool b); bool scaleOK () const {return m_bScaleOK;} signals: @@ -114,6 +114,7 @@ private: bool m_bReference; bool m_bReference0; bool m_bVHF; + bool m_bSingleDecode; float m_fSpan; diff --git a/widgets/widegraph.cpp b/widgets/widegraph.cpp index 389986c84..a369f6296 100644 --- a/widgets/widegraph.cpp +++ b/widgets/widegraph.cpp @@ -505,6 +505,11 @@ void WideGraph::setFST4_FreqRange(int fLow,int fHigh) ui->widePlot->setFST4_FreqRange(fLow,fHigh); } +void WideGraph::setSingleDecode(bool b) +{ + ui->widePlot->setSingleDecode(b); +} + void WideGraph::on_smoSpinBox_valueChanged(int n) { m_nsmo=n; diff --git a/widgets/widegraph.h b/widgets/widegraph.h index d26328fdb..f5f70c281 100644 --- a/widgets/widegraph.h +++ b/widgets/widegraph.h @@ -50,6 +50,7 @@ public: void setVHF(bool bVHF); void setRedFile(QString fRed); void setFST4_FreqRange(int fLow,int fHigh); + void setSingleDecode(bool b); signals: void freezeDecode2(int n); From 41aa5dae745b81c4a0567a889cd38c90d83562b2 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 17 Sep 2020 12:58:59 -0400 Subject: [PATCH 495/520] Make the FTol control invisible in FST4 if Single decode is not checked. --- widgets/mainwindow.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 7d81f6868..4458aa8b2 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -2981,7 +2981,7 @@ void MainWindow::on_DecodeButton_clicked (bool /* checked */) //Decode request void MainWindow::freezeDecode(int n) //freezeDecode() { if((n%100)==2) { - if(m_mode=="FST4") ui->sbFtol->setValue(10); + if(m_mode=="FST4" and m_config.single_decode() and ui->sbFtol->value()>10) ui->sbFtol->setValue(10); on_DecodeButton_clicked (true); } } @@ -5926,8 +5926,9 @@ void MainWindow::on_actionFST4_triggered() displayWidgets(nWidgets("111111000100111000010000000100000000")); m_wideGraph->setSingleDecode(true); } else { - displayWidgets(nWidgets("111111000100111000010000000100000011")); + displayWidgets(nWidgets("111011000100111000010000000100000011")); m_wideGraph->setSingleDecode(false); + ui->sbFtol->setValue(20); } setup_status_bar(false); ui->sbTR->values ({15, 30, 60, 120, 300, 900, 1800}); @@ -6660,8 +6661,6 @@ void MainWindow::on_sbF_High_valueChanged(int n) void MainWindow::chk_FST4_freq_range() { -// qDebug() << "aa" << m_wideGraph->nStartFreq() << m_wideGraph->Fmax() -// << ui->sbF_Low->value() << ui->sbF_High->value(); if(ui->sbF_Low->value() < m_wideGraph->nStartFreq()) ui->sbF_Low->setValue(m_wideGraph->nStartFreq()); if(ui->sbF_High->value() > m_wideGraph->Fmax()) { int n=m_wideGraph->Fmax()/100; From 7d58df4cc1f128d8ec23e0682fd4753e33902130 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 17 Sep 2020 14:22:38 -0500 Subject: [PATCH 496/520] In FST4 mode with Single Decode not checked, move candidates within 20 Hz of nfqso to the top of the list. --- lib/fst4_decode.f90 | 74 ++++++++++++++++++++++++++++++++------------- 1 file changed, 53 insertions(+), 21 deletions(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index a4cce0dcd..257705510 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -30,8 +30,8 @@ module fst4_decode contains subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfa,nfb,nfqso, & - ndepth,ntrperiod,nexp_decode,ntol,emedelay,lapcqonly,mycall, & - hiscall,iwspr) + ndepth,ntrperiod,nexp_decode,ntol,emedelay,lapcqonly,mycall, & + hiscall,iwspr) use timer_module, only: timer use packjt77 @@ -49,7 +49,7 @@ contains complex, allocatable :: cframe(:) complex, allocatable :: c_bigfft(:) !Complex waveform real llr(240),llrs(240,4) - real candidates(200,5) + real candidates0(200,5),candidates(200,5) real bitmetrics(320,4) real s4(0:3,NN) real minsync @@ -232,19 +232,29 @@ contains nhicoh=1 nsyncoh=8 - fa=nfa - fb=nfb single_decode=iand(nexp_decode,32).ne.0 - if(single_decode) then - fa=max(100,nint(nfqso+1.5*baud-ntol)) + if(iwspr.eq.1) then !FST4W + nfa=max(100,nint(nfqso+1.5*baud-150)) ! 300 Hz wide noise-fit window + nfb=min(4800,nint(nfqso+1.5*baud+150)) + fa=max(100,nint(nfqso+1.5*baud-ntol)) ! signal search window fb=min(4800,nint(nfqso+1.5*baud+ntol)) + else if(single_decode) then + fa=max(100,nint(nfa+1.5*baud)) + fb=min(4800,nint(nfb+1.5*baud)) + nfa=max(100,nfa-100) ! extend noise fit 100 Hz outside of search window + nfb=min(4800,nfb+100) + else + fa=max(100,nint(nfa+1.5*baud)) + fb=min(4800,nint(nfb+1.5*baud)) + nfa=max(100,nfa-100) ! extend noise fit 100 Hz outside of search window + nfb=min(4800,nfb+100) endif minsync=1.20 if(ntrperiod.eq.15) minsync=1.15 ! Get first approximation of candidate frequencies call get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb,nfa,nfb, & - minsync,ncand,candidates) + minsync,ncand,candidates0) ndecodes=0 decodes=' ' @@ -252,8 +262,8 @@ contains isbest=0 fc2=0. do icand=1,ncand - fc0=candidates(icand,1) - detmet=candidates(icand,2) + fc0=candidates0(icand,1) + detmet=candidates0(icand,2) ! Downconvert and downsample a slice of the spectrum centered on the ! rough estimate of the candidates frequency. @@ -270,35 +280,56 @@ contains fc_synced = fc0 + fcbest dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 - candidates(icand,3)=fc_synced - candidates(icand,4)=isbest + candidates0(icand,3)=fc_synced + candidates0(icand,4)=isbest enddo ! remove duplicate candidates do icand=1,ncand - fc=candidates(icand,3) - isbest=nint(candidates(icand,4)) + fc=candidates0(icand,3) + isbest=nint(candidates0(icand,4)) do ic2=1,ncand - fc2=candidates(ic2,3) - isbest2=nint(candidates(ic2,4)) + fc2=candidates0(ic2,3) + isbest2=nint(candidates0(ic2,4)) if(ic2.ne.icand .and. fc2.gt.0.0) then if(abs(fc2-fc).lt.0.10*baud) then ! same frequency if(abs(isbest2-isbest).le.2) then - candidates(ic2,3)=-1 + candidates0(ic2,3)=-1 endif endif endif enddo enddo - ic=0 do icand=1,ncand - if(candidates(icand,3).gt.0) then + if(candidates0(icand,3).gt.0) then ic=ic+1 - candidates(ic,:)=candidates(icand,:) + candidates0(ic,:)=candidates0(icand,:) endif enddo ncand=ic + +! If FST4 and Single Decode is not checked, then find candidates within +! 20 Hz of nfqso and put them at the top of the list + if(iwspr.eq.0 .and. .not.single_decode) then + nclose=count(abs(candidates0(:,3)-(nfqso+1.5*baud)).le.20) + k=0 + do i=1,ncand + if(abs(candidates0(i,3)-(nfqso+1.5*baud)).le.20) then + k=k+1 + candidates(k,:)=candidates0(i,:) + endif + enddo + do i=1,ncand + if(abs(candidates0(i,3)-(nfqso+1.5*baud)).gt.20) then + k=k+1 + candidates(k,:)=candidates0(i,:) + endif + enddo + else + candidates=candidates0 + endif + xsnr=0. !write(*,*) 'ncand ',ncand do icand=1,ncand @@ -307,7 +338,7 @@ contains isbest=nint(candidates(icand,4)) xdt=(isbest-nspsec)/fs2 if(ntrperiod.eq.15) xdt=(isbest-real(nspsec)/2.0)/fs2 - +! write(*,*) icand,sync,fc_synced,isbest,xdt call timer('dwnsmpl ',0) call fst4_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) call timer('dwnsmpl ',1) @@ -654,6 +685,7 @@ contains inb=nint(min(4800.0,real(nfb))/df2) !High freq limit for noise fit if(ia.lt.ina) ia=ina if(ib.gt.inb) ib=inb + nnw=nint(48000.*nsps*2./fs) allocate (s(nnw)) s=0. !Compute low-resolution power spectrum From bcf7f36b9c0148e9cb3cf5c9ad3f10de6c5c838b Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 17 Sep 2020 19:28:55 -0400 Subject: [PATCH 497/520] Very basic code (including some diagnostics) for "try all NB settings". Will remove it again. --- lib/decoder.f90 | 8 ++++---- lib/fst4_decode.f90 | 29 ++++++++++++++++++++++------- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 0c4da1674..14bab01a6 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -199,8 +199,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) call timer('dec240 ',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, & + params%nfqso,ndepth,params%ntr,params%nexp_decode, & + params%ntol,params%emedelay,logical(params%nagain), & logical(params%lapcqonly),mycall,hiscall,iwspr) call timer('dec240 ',1) go to 800 @@ -213,8 +213,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) call timer('dec240 ',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, & + params%nfqso,ndepth,params%ntr,params%nexp_decode, & + params%ntol,params%emedelay,logical(params%nagain), & logical(params%lapcqonly),mycall,hiscall,iwspr) call timer('dec240 ',1) go to 800 diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 257705510..577613c7f 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -30,7 +30,7 @@ module fst4_decode contains subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfa,nfb,nfqso, & - ndepth,ntrperiod,nexp_decode,ntol,emedelay,lapcqonly,mycall, & + ndepth,ntrperiod,nexp_decode,ntol,emedelay,lagain,lapcqonly,mycall, & hiscall,iwspr) use timer_module, only: timer @@ -53,9 +53,10 @@ contains real bitmetrics(320,4) real s4(0:3,NN) real minsync - logical lapcqonly + logical lagain,lapcqonly integer itone(NN) integer hmod + integer ipct(0:7) integer*1 apmask(240),cw(240) integer*1 message101(101),message74(74),message77(77) integer*1 rvec(77) @@ -69,6 +70,7 @@ contains integer*2 iwave(30*60*12000) + data ipct/0,8,14,4,12,2,10,6/ data mcq/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0/ data mrrr/0,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,1/ data m73/0,1,1,1,1,1,1,0,1,0,0,1,0,1,0,0,0,0,1/ @@ -223,7 +225,23 @@ contains endif ndropmax=1 - npct=nexp_decode/256 + single_decode=iand(nexp_decode,32).ne.0 + inb0=0 + inb1=0 + if((single_decode .or. lagain) .and. (ntol.le.20 .or. iwspr.ne.0)) then + inb1=20 + else + ipct(0)=nexp_decode/256 + endif + + ndecodes=0 + decodes=' ' + + do inb=inb0,inb1,2 +! npct=ipct(inb) + npct=inb + write(*,3001) inb,inb1,lagain,single_decode,npct,ntol +3001 format(2i4,2L3,2i5) call blanker(iwave,nfft1,ndropmax,npct,c_bigfft) ! The big fft is done once and is used for calculating the smoothed spectrum @@ -232,7 +250,6 @@ contains nhicoh=1 nsyncoh=8 - single_decode=iand(nexp_decode,32).ne.0 if(iwspr.eq.1) then !FST4W nfa=max(100,nint(nfqso+1.5*baud-150)) ! 300 Hz wide noise-fit window nfb=min(4800,nint(nfqso+1.5*baud+150)) @@ -256,9 +273,6 @@ contains call get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb,nfa,nfb, & minsync,ncand,candidates0) - ndecodes=0 - decodes=' ' - isbest=0 fc2=0. do icand=1,ncand @@ -510,6 +524,7 @@ contains enddo ! metrics enddo ! istart jitter 2002 enddo !candidate list + enddo return end subroutine decode From 033cc65d08da9610457983ead77411b80ad89801 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 17 Sep 2020 19:30:07 -0400 Subject: [PATCH 498/520] Revert "Very basic code (including some diagnostics) for "try all NB settings". Will remove it again." This reverts commit bcf7f36b9c0148e9cb3cf5c9ad3f10de6c5c838b. --- lib/decoder.f90 | 8 ++++---- lib/fst4_decode.f90 | 29 +++++++---------------------- 2 files changed, 11 insertions(+), 26 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 14bab01a6..0c4da1674 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -199,8 +199,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) call timer('dec240 ',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), & + params%nfqso,ndepth,params%ntr, & + params%nexp_decode,params%ntol,params%emedelay, & logical(params%lapcqonly),mycall,hiscall,iwspr) call timer('dec240 ',1) go to 800 @@ -213,8 +213,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) call timer('dec240 ',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), & + params%nfqso,ndepth,params%ntr, & + params%nexp_decode,params%ntol,params%emedelay, & logical(params%lapcqonly),mycall,hiscall,iwspr) call timer('dec240 ',1) go to 800 diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 577613c7f..257705510 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -30,7 +30,7 @@ module fst4_decode contains subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfa,nfb,nfqso, & - ndepth,ntrperiod,nexp_decode,ntol,emedelay,lagain,lapcqonly,mycall, & + ndepth,ntrperiod,nexp_decode,ntol,emedelay,lapcqonly,mycall, & hiscall,iwspr) use timer_module, only: timer @@ -53,10 +53,9 @@ contains real bitmetrics(320,4) real s4(0:3,NN) real minsync - logical lagain,lapcqonly + logical lapcqonly integer itone(NN) integer hmod - integer ipct(0:7) integer*1 apmask(240),cw(240) integer*1 message101(101),message74(74),message77(77) integer*1 rvec(77) @@ -70,7 +69,6 @@ contains integer*2 iwave(30*60*12000) - data ipct/0,8,14,4,12,2,10,6/ data mcq/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0/ data mrrr/0,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,1/ data m73/0,1,1,1,1,1,1,0,1,0,0,1,0,1,0,0,0,0,1/ @@ -225,23 +223,7 @@ contains endif ndropmax=1 - single_decode=iand(nexp_decode,32).ne.0 - inb0=0 - inb1=0 - if((single_decode .or. lagain) .and. (ntol.le.20 .or. iwspr.ne.0)) then - inb1=20 - else - ipct(0)=nexp_decode/256 - endif - - ndecodes=0 - decodes=' ' - - do inb=inb0,inb1,2 -! npct=ipct(inb) - npct=inb - write(*,3001) inb,inb1,lagain,single_decode,npct,ntol -3001 format(2i4,2L3,2i5) + npct=nexp_decode/256 call blanker(iwave,nfft1,ndropmax,npct,c_bigfft) ! The big fft is done once and is used for calculating the smoothed spectrum @@ -250,6 +232,7 @@ contains nhicoh=1 nsyncoh=8 + single_decode=iand(nexp_decode,32).ne.0 if(iwspr.eq.1) then !FST4W nfa=max(100,nint(nfqso+1.5*baud-150)) ! 300 Hz wide noise-fit window nfb=min(4800,nint(nfqso+1.5*baud+150)) @@ -273,6 +256,9 @@ contains call get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb,nfa,nfb, & minsync,ncand,candidates0) + ndecodes=0 + decodes=' ' + isbest=0 fc2=0. do icand=1,ncand @@ -524,7 +510,6 @@ contains enddo ! metrics enddo ! istart jitter 2002 enddo !candidate list - enddo return end subroutine decode From 375a869a51d88875802002921a786c7438185dea Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 18 Sep 2020 09:01:51 -0400 Subject: [PATCH 499/520] Revert "Revert "Very basic code (including some diagnostics) for "try all NB settings". Will remove it again."" This reverts commit 033cc65d08da9610457983ead77411b80ad89801. --- lib/decoder.f90 | 8 ++++---- lib/fst4_decode.f90 | 29 ++++++++++++++++++++++------- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 0c4da1674..14bab01a6 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -199,8 +199,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) call timer('dec240 ',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, & + params%nfqso,ndepth,params%ntr,params%nexp_decode, & + params%ntol,params%emedelay,logical(params%nagain), & logical(params%lapcqonly),mycall,hiscall,iwspr) call timer('dec240 ',1) go to 800 @@ -213,8 +213,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) call timer('dec240 ',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, & + params%nfqso,ndepth,params%ntr,params%nexp_decode, & + params%ntol,params%emedelay,logical(params%nagain), & logical(params%lapcqonly),mycall,hiscall,iwspr) call timer('dec240 ',1) go to 800 diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 257705510..577613c7f 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -30,7 +30,7 @@ module fst4_decode contains subroutine decode(this,callback,iwave,nutc,nQSOProgress,nfa,nfb,nfqso, & - ndepth,ntrperiod,nexp_decode,ntol,emedelay,lapcqonly,mycall, & + ndepth,ntrperiod,nexp_decode,ntol,emedelay,lagain,lapcqonly,mycall, & hiscall,iwspr) use timer_module, only: timer @@ -53,9 +53,10 @@ contains real bitmetrics(320,4) real s4(0:3,NN) real minsync - logical lapcqonly + logical lagain,lapcqonly integer itone(NN) integer hmod + integer ipct(0:7) integer*1 apmask(240),cw(240) integer*1 message101(101),message74(74),message77(77) integer*1 rvec(77) @@ -69,6 +70,7 @@ contains integer*2 iwave(30*60*12000) + data ipct/0,8,14,4,12,2,10,6/ data mcq/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0/ data mrrr/0,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,1/ data m73/0,1,1,1,1,1,1,0,1,0,0,1,0,1,0,0,0,0,1/ @@ -223,7 +225,23 @@ contains endif ndropmax=1 - npct=nexp_decode/256 + single_decode=iand(nexp_decode,32).ne.0 + inb0=0 + inb1=0 + if((single_decode .or. lagain) .and. (ntol.le.20 .or. iwspr.ne.0)) then + inb1=20 + else + ipct(0)=nexp_decode/256 + endif + + ndecodes=0 + decodes=' ' + + do inb=inb0,inb1,2 +! npct=ipct(inb) + npct=inb + write(*,3001) inb,inb1,lagain,single_decode,npct,ntol +3001 format(2i4,2L3,2i5) call blanker(iwave,nfft1,ndropmax,npct,c_bigfft) ! The big fft is done once and is used for calculating the smoothed spectrum @@ -232,7 +250,6 @@ contains nhicoh=1 nsyncoh=8 - single_decode=iand(nexp_decode,32).ne.0 if(iwspr.eq.1) then !FST4W nfa=max(100,nint(nfqso+1.5*baud-150)) ! 300 Hz wide noise-fit window nfb=min(4800,nint(nfqso+1.5*baud+150)) @@ -256,9 +273,6 @@ contains call get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb,nfa,nfb, & minsync,ncand,candidates0) - ndecodes=0 - decodes=' ' - isbest=0 fc2=0. do icand=1,ncand @@ -510,6 +524,7 @@ contains enddo ! metrics enddo ! istart jitter 2002 enddo !candidate list + enddo return end subroutine decode From 52bdd57e577da8db8622f8a21d65da629795d7d7 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 18 Sep 2020 11:30:23 -0400 Subject: [PATCH 500/520] Implement NB=-1%, NB=-2%. Fix a startup problem with WideGraps's fMax value. --- lib/fst4_decode.f90 | 501 +++++++++++++++++++++-------------------- widgets/mainwindow.cpp | 13 +- widgets/mainwindow.h | 1 + widgets/mainwindow.ui | 97 ++++---- 4 files changed, 310 insertions(+), 302 deletions(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index 577613c7f..c212a91d9 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -226,308 +226,311 @@ contains ndropmax=1 single_decode=iand(nexp_decode,32).ne.0 + npct=0 + nb=nexp_decode/256 - 2 + if(nb.ge.0) npct=nb inb0=0 - inb1=0 - if((single_decode .or. lagain) .and. (ntol.le.20 .or. iwspr.ne.0)) then - inb1=20 + inb1=20 + inb2=5 + if(nb.eq.-1) then + inb2=5 !Try NB = 0, 5, 10, 15, 20% + else if(nb.eq.-2) then + inb2=2 !Try NB = 0, 2, 4,... 20% else - ipct(0)=nexp_decode/256 + inb1=0 !Fixed NB value, 0 to 25% + ipct(0)=npct endif - ndecodes=0 decodes=' ' - do inb=inb0,inb1,2 -! npct=ipct(inb) + do inb=inb0,inb1,inb2 npct=inb - write(*,3001) inb,inb1,lagain,single_decode,npct,ntol -3001 format(2i4,2L3,2i5) - call blanker(iwave,nfft1,ndropmax,npct,c_bigfft) + call blanker(iwave,nfft1,ndropmax,npct,c_bigfft) ! The big fft is done once and is used for calculating the smoothed spectrum ! and also for downconverting/downsampling each candidate. - call four2a(c_bigfft,nfft1,1,-1,0) !r2c + call four2a(c_bigfft,nfft1,1,-1,0) !r2c - nhicoh=1 - nsyncoh=8 - if(iwspr.eq.1) then !FST4W - nfa=max(100,nint(nfqso+1.5*baud-150)) ! 300 Hz wide noise-fit window - nfb=min(4800,nint(nfqso+1.5*baud+150)) - fa=max(100,nint(nfqso+1.5*baud-ntol)) ! signal search window - fb=min(4800,nint(nfqso+1.5*baud+ntol)) - else if(single_decode) then - fa=max(100,nint(nfa+1.5*baud)) - fb=min(4800,nint(nfb+1.5*baud)) - nfa=max(100,nfa-100) ! extend noise fit 100 Hz outside of search window - nfb=min(4800,nfb+100) - else - fa=max(100,nint(nfa+1.5*baud)) - fb=min(4800,nint(nfb+1.5*baud)) - nfa=max(100,nfa-100) ! extend noise fit 100 Hz outside of search window - nfb=min(4800,nfb+100) - endif - minsync=1.20 - if(ntrperiod.eq.15) minsync=1.15 + nhicoh=1 + nsyncoh=8 + if(iwspr.eq.1) then !FST4W + nfa=max(100,nint(nfqso+1.5*baud-150)) !300 Hz wide noise-fit window + nfb=min(4800,nint(nfqso+1.5*baud+150)) + fa=max(100,nint(nfqso+1.5*baud-ntol)) ! signal search window + fb=min(4800,nint(nfqso+1.5*baud+ntol)) + else if(single_decode) then + fa=max(100,nint(nfa+1.5*baud)) + fb=min(4800,nint(nfb+1.5*baud)) + nfa=max(100,nfa-100) ! extend noise fit 100 Hz outside of search window + nfb=min(4800,nfb+100) + else + fa=max(100,nint(nfa+1.5*baud)) + fb=min(4800,nint(nfb+1.5*baud)) + nfa=max(100,nfa-100) ! extend noise fit 100 Hz outside of search window + nfb=min(4800,nfb+100) + endif + minsync=1.20 + if(ntrperiod.eq.15) minsync=1.15 ! Get first approximation of candidate frequencies - call get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb,nfa,nfb, & - minsync,ncand,candidates0) + call get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb,nfa,nfb, & + minsync,ncand,candidates0) - isbest=0 - fc2=0. - do icand=1,ncand - fc0=candidates0(icand,1) - detmet=candidates0(icand,2) + isbest=0 + fc2=0. + do icand=1,ncand + fc0=candidates0(icand,1) + if(iwspr.eq.0 .and. nb.lt.0 .and. & + abs(fc0-(nfqso+1.5*baud)).gt.ntol) cycle + detmet=candidates0(icand,2) ! Downconvert and downsample a slice of the spectrum centered on the ! rough estimate of the candidates frequency. ! Output array c2 is complex baseband sampled at 12000/ndown Sa/sec. ! The size of the downsampled c2 array is nfft2=nfft1/ndown - call timer('dwnsmpl ',0) - call fst4_downsample(c_bigfft,nfft1,ndown,fc0,sigbw,c2) - call timer('dwnsmpl ',1) + call timer('dwnsmpl ',0) + call fst4_downsample(c_bigfft,nfft1,ndown,fc0,sigbw,c2) + call timer('dwnsmpl ',1) - call timer('sync240 ',0) - call fst4_sync_search(c2,nfft2,hmod,fs2,nss,ntrperiod,nsyncoh,emedelay,sbest,fcbest,isbest) - call timer('sync240 ',1) + call timer('sync240 ',0) + call fst4_sync_search(c2,nfft2,hmod,fs2,nss,ntrperiod,nsyncoh,emedelay,sbest,fcbest,isbest) + call timer('sync240 ',1) - fc_synced = fc0 + fcbest - dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 - candidates0(icand,3)=fc_synced - candidates0(icand,4)=isbest - enddo + fc_synced = fc0 + fcbest + dt_synced = (isbest-fs2)*dt2 !nominal dt is 1 second so frame starts at sample fs2 + candidates0(icand,3)=fc_synced + candidates0(icand,4)=isbest + enddo ! remove duplicate candidates - do icand=1,ncand - fc=candidates0(icand,3) - isbest=nint(candidates0(icand,4)) - do ic2=1,ncand - fc2=candidates0(ic2,3) - isbest2=nint(candidates0(ic2,4)) - if(ic2.ne.icand .and. fc2.gt.0.0) then - if(abs(fc2-fc).lt.0.10*baud) then ! same frequency - if(abs(isbest2-isbest).le.2) then - candidates0(ic2,3)=-1 + do icand=1,ncand + fc=candidates0(icand,3) + isbest=nint(candidates0(icand,4)) + do ic2=1,ncand + fc2=candidates0(ic2,3) + isbest2=nint(candidates0(ic2,4)) + if(ic2.ne.icand .and. fc2.gt.0.0) then + if(abs(fc2-fc).lt.0.10*baud) then ! same frequency + if(abs(isbest2-isbest).le.2) then + candidates0(ic2,3)=-1 + endif endif endif + enddo + enddo + ic=0 + do icand=1,ncand + if(candidates0(icand,3).gt.0) then + ic=ic+1 + candidates0(ic,:)=candidates0(icand,:) endif enddo - enddo - ic=0 - do icand=1,ncand - if(candidates0(icand,3).gt.0) then - ic=ic+1 - candidates0(ic,:)=candidates0(icand,:) - endif - enddo - ncand=ic + ncand=ic ! If FST4 and Single Decode is not checked, then find candidates within ! 20 Hz of nfqso and put them at the top of the list - if(iwspr.eq.0 .and. .not.single_decode) then - nclose=count(abs(candidates0(:,3)-(nfqso+1.5*baud)).le.20) - k=0 - do i=1,ncand - if(abs(candidates0(i,3)-(nfqso+1.5*baud)).le.20) then - k=k+1 - candidates(k,:)=candidates0(i,:) - endif - enddo - do i=1,ncand - if(abs(candidates0(i,3)-(nfqso+1.5*baud)).gt.20) then - k=k+1 - candidates(k,:)=candidates0(i,:) - endif - enddo - else - candidates=candidates0 - endif - - xsnr=0. -!write(*,*) 'ncand ',ncand - do icand=1,ncand - sync=candidates(icand,2) - fc_synced=candidates(icand,3) - isbest=nint(candidates(icand,4)) - xdt=(isbest-nspsec)/fs2 - if(ntrperiod.eq.15) xdt=(isbest-real(nspsec)/2.0)/fs2 -! write(*,*) icand,sync,fc_synced,isbest,xdt - call timer('dwnsmpl ',0) - call fst4_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) - call timer('dwnsmpl ',1) - - do ijitter=0,jittermax - if(ijitter.eq.0) ioffset=0 - if(ijitter.eq.1) ioffset=1 - if(ijitter.eq.2) ioffset=-1 - is0=isbest+ioffset - if(is0.lt.0) cycle - cframe=c2(is0:is0+160*nss-1) - bitmetrics=0 - call timer('bitmetrc',0) - call get_fst4_bitmetrics(cframe,nss,nblock,nhicoh,bitmetrics, & - s4,nsync_qual,badsync) - call timer('bitmetrc',1) - if(badsync) cycle - - do il=1,4 - llrs( 1: 60,il)=bitmetrics( 17: 76, il) - llrs( 61:120,il)=bitmetrics( 93:152, il) - llrs(121:180,il)=bitmetrics(169:228, il) - llrs(181:240,il)=bitmetrics(245:304, il) + if(iwspr.eq.0 .and. .not.single_decode) then + nclose=count(abs(candidates0(:,3)-(nfqso+1.5*baud)).le.20) + k=0 + do i=1,ncand + if(abs(candidates0(i,3)-(nfqso+1.5*baud)).le.20) then + k=k+1 + candidates(k,:)=candidates0(i,:) + endif enddo + do i=1,ncand + if(abs(candidates0(i,3)-(nfqso+1.5*baud)).gt.20) then + k=k+1 + candidates(k,:)=candidates0(i,:) + endif + enddo + else + candidates=candidates0 + endif - apmag=maxval(abs(llrs(:,1)))*1.1 - ntmax=nblock+nappasses(nQSOProgress) - if(lapcqonly) ntmax=nblock+1 - if(ndepth.eq.1) ntmax=nblock - apmask=0 + xsnr=0. + do icand=1,ncand + sync=candidates(icand,2) + fc_synced=candidates(icand,3) + isbest=nint(candidates(icand,4)) + xdt=(isbest-nspsec)/fs2 + if(ntrperiod.eq.15) xdt=(isbest-real(nspsec)/2.0)/fs2 + call timer('dwnsmpl ',0) + call fst4_downsample(c_bigfft,nfft1,ndown,fc_synced,sigbw,c2) + call timer('dwnsmpl ',1) - if(iwspr.eq.1) then ! 50-bit msgs, no ap decoding - nblock=4 - ntmax=nblock - endif + do ijitter=0,jittermax + if(ijitter.eq.0) ioffset=0 + if(ijitter.eq.1) ioffset=1 + if(ijitter.eq.2) ioffset=-1 + is0=isbest+ioffset + if(is0.lt.0) cycle + cframe=c2(is0:is0+160*nss-1) + bitmetrics=0 + call timer('bitmetrc',0) + call get_fst4_bitmetrics(cframe,nss,nblock,nhicoh,bitmetrics, & + s4,nsync_qual,badsync) + call timer('bitmetrc',1) + if(badsync) cycle - do itry=1,ntmax - if(itry.eq.1) llr=llrs(:,1) - if(itry.eq.2.and.itry.le.nblock) llr=llrs(:,2) - if(itry.eq.3.and.itry.le.nblock) llr=llrs(:,3) - if(itry.eq.4.and.itry.le.nblock) llr=llrs(:,4) - if(itry.le.nblock) then - apmask=0 - iaptype=0 + do il=1,4 + llrs( 1: 60,il)=bitmetrics( 17: 76, il) + llrs( 61:120,il)=bitmetrics( 93:152, il) + llrs(121:180,il)=bitmetrics(169:228, il) + llrs(181:240,il)=bitmetrics(245:304, il) + enddo + + apmag=maxval(abs(llrs(:,1)))*1.1 + ntmax=nblock+nappasses(nQSOProgress) + if(lapcqonly) ntmax=nblock+1 + if(ndepth.eq.1) ntmax=nblock + apmask=0 + + if(iwspr.eq.1) then ! 50-bit msgs, no ap decoding + nblock=4 + ntmax=nblock endif - if(itry.gt.nblock) then ! do ap passes - llr=llrs(:,nblock) ! Use largest blocksize as the basis for AP passes - iaptype=naptypes(nQSOProgress,itry-nblock) - if(lapcqonly) iaptype=1 - if(iaptype.ge.2 .and. apbits(1).gt.1) cycle ! No, or nonstandard, mycall - if(iaptype.ge.3 .and. apbits(30).gt.1) cycle ! No, or nonstandard, dxcall - if(iaptype.eq.1) then ! CQ + do itry=1,ntmax + if(itry.eq.1) llr=llrs(:,1) + if(itry.eq.2.and.itry.le.nblock) llr=llrs(:,2) + if(itry.eq.3.and.itry.le.nblock) llr=llrs(:,3) + if(itry.eq.4.and.itry.le.nblock) llr=llrs(:,4) + if(itry.le.nblock) then apmask=0 - apmask(1:29)=1 - llr(1:29)=apmag*mcq(1:29) + iaptype=0 endif - if(iaptype.eq.2) then ! MyCall ??? ??? - apmask=0 - apmask(1:29)=1 - llr(1:29)=apmag*apbits(1:29) - endif + if(itry.gt.nblock) then ! do ap passes + llr=llrs(:,nblock) ! Use largest blocksize as the basis for AP passes + iaptype=naptypes(nQSOProgress,itry-nblock) + if(lapcqonly) iaptype=1 + if(iaptype.ge.2 .and. apbits(1).gt.1) cycle ! No, or nonstandard, mycall + if(iaptype.ge.3 .and. apbits(30).gt.1) cycle ! No, or nonstandard, dxcall + if(iaptype.eq.1) then ! CQ + apmask=0 + apmask(1:29)=1 + llr(1:29)=apmag*mcq(1:29) + endif - if(iaptype.eq.3) then ! MyCall DxCall ??? - apmask=0 - apmask(1:58)=1 - llr(1:58)=apmag*apbits(1:58) - endif + if(iaptype.eq.2) then ! MyCall ??? ??? + apmask=0 + apmask(1:29)=1 + llr(1:29)=apmag*apbits(1:29) + endif - if(iaptype.eq.4 .or. iaptype.eq.5 .or. iaptype .eq.6) then - apmask=0 - apmask(1:77)=1 - llr(1:58)=apmag*apbits(1:58) - if(iaptype.eq.4) llr(59:77)=apmag*mrrr(1:19) - if(iaptype.eq.5) llr(59:77)=apmag*m73(1:19) - if(iaptype.eq.6) llr(59:77)=apmag*mrr73(1:19) - endif - endif - - dmin=0.0 - nharderrors=-1 - unpk77_success=.false. - if(iwspr.eq.0) then - maxosd=2 - Keff=91 - norder=3 - call timer('d240_101',0) - call decode240_101(llr,Keff,maxosd,norder,apmask,message101, & - cw,ntype,nharderrors,dmin) - call timer('d240_101',1) - elseif(iwspr.eq.1) then - maxosd=2 - call timer('d240_74 ',0) - Keff=64 - norder=4 - call decode240_74(llr,Keff,maxosd,norder,apmask,message74,cw, & - ntype,nharderrors,dmin) - call timer('d240_74 ',1) - endif - - if(nharderrors .ge.0) then - if(count(cw.eq.1).eq.0) then - nharderrors=-nharderrors - cycle + if(iaptype.eq.3) then ! MyCall DxCall ??? + apmask=0 + apmask(1:58)=1 + llr(1:58)=apmag*apbits(1:58) + endif + + if(iaptype.eq.4 .or. iaptype.eq.5 .or. iaptype .eq.6) then + apmask=0 + apmask(1:77)=1 + llr(1:58)=apmag*apbits(1:58) + if(iaptype.eq.4) llr(59:77)=apmag*mrrr(1:19) + if(iaptype.eq.5) llr(59:77)=apmag*m73(1:19) + if(iaptype.eq.6) llr(59:77)=apmag*mrr73(1:19) + endif endif + + dmin=0.0 + nharderrors=-1 + unpk77_success=.false. if(iwspr.eq.0) then - write(c77,'(77i1)') mod(message101(1:77)+rvec,2) - call unpack77(c77,1,msg,unpk77_success) - else - write(c77,'(50i1)') message74(1:50) - c77(51:77)='000000000000000000000110000' - call unpack77(c77,1,msg,unpk77_success) + maxosd=2 + Keff=91 + norder=3 + call timer('d240_101',0) + call decode240_101(llr,Keff,maxosd,norder,apmask,message101, & + cw,ntype,nharderrors,dmin) + call timer('d240_101',1) + elseif(iwspr.eq.1) then + maxosd=2 + call timer('d240_74 ',0) + Keff=64 + norder=4 + call decode240_74(llr,Keff,maxosd,norder,apmask,message74,cw, & + ntype,nharderrors,dmin) + call timer('d240_74 ',1) endif - if(unpk77_success) then - idupe=0 - do i=1,ndecodes - if(decodes(i).eq.msg) idupe=1 - enddo - if(idupe.eq.1) goto 2002 - ndecodes=ndecodes+1 - decodes(ndecodes)=msg - + + if(nharderrors .ge.0) then + if(count(cw.eq.1).eq.0) then + nharderrors=-nharderrors + cycle + endif if(iwspr.eq.0) then - call get_fst4_tones_from_bits(message101,itone,0) + write(c77,'(77i1)') mod(message101(1:77)+rvec,2) + call unpack77(c77,1,msg,unpk77_success) else - call get_fst4_tones_from_bits(message74,itone,1) + write(c77,'(50i1)') message74(1:50) + c77(51:77)='000000000000000000000110000' + call unpack77(c77,1,msg,unpk77_success) endif - inquire(file='plotspec',exist=ex) - fmid=-999.0 - call timer('dopsprd ',0) + if(unpk77_success) then + idupe=0 + do i=1,ndecodes + if(decodes(i).eq.msg) idupe=1 + enddo + if(idupe.eq.1) goto 2002 + ndecodes=ndecodes+1 + decodes(ndecodes)=msg + + if(iwspr.eq.0) then + call get_fst4_tones_from_bits(message101,itone,0) + else + call get_fst4_tones_from_bits(message74,itone,1) + endif + inquire(file='plotspec',exist=ex) + fmid=-999.0 + call timer('dopsprd ',0) + if(ex) then + call dopspread(itone,iwave,nsps,nmax,ndown,hmod, & + isbest,fc_synced,fmid,w50) + endif + call timer('dopsprd ',1) + xsig=0 + do i=1,NN + xsig=xsig+s4(itone(i),i) + enddo + base=candidates(icand,5) + arg=600.0*(xsig/base)-1.0 + if(arg.gt.0.0) then + xsnr=10*log10(arg)-35.5-12.5*log10(nsps/8200.0) + if(ntrperiod.eq. 15) xsnr=xsnr+2 + if(ntrperiod.eq. 30) xsnr=xsnr+1 + if(ntrperiod.eq. 900) xsnr=xsnr+1 + if(ntrperiod.eq.1800) xsnr=xsnr+2 + else + xsnr=-99.9 + endif + else + cycle + endif + nsnr=nint(xsnr) + qual=0. + fsig=fc_synced - 1.5*baud if(ex) then - call dopspread(itone,iwave,nsps,nmax,ndown,hmod, & - isbest,fc_synced,fmid,w50) + write(21,3021) nutc,icand,itry,nsyncoh,iaptype, & + ijitter,ntype,nsync_qual,nharderrors,dmin, & + sync,xsnr,xdt,fsig,w50,trim(msg) +3021 format(i6.6,6i3,2i4,f6.1,f7.2,f6.1,f6.2,f7.1,f7.3,1x,a) + flush(21) endif - call timer('dopsprd ',1) - xsig=0 - do i=1,NN - xsig=xsig+s4(itone(i),i) - enddo - base=candidates(icand,5) - arg=600.0*(xsig/base)-1.0 - if(arg.gt.0.0) then - xsnr=10*log10(arg)-35.5-12.5*log10(nsps/8200.0) - if(ntrperiod.eq. 15) xsnr=xsnr+2 - if(ntrperiod.eq. 30) xsnr=xsnr+1 - if(ntrperiod.eq. 900) xsnr=xsnr+1 - if(ntrperiod.eq.1800) xsnr=xsnr+2 - else - xsnr=-99.9 - endif - else - cycle + call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & + iaptype,qual,ntrperiod,lwspr,fmid,w50) + goto 2002 endif - nsnr=nint(xsnr) - qual=0. - fsig=fc_synced - 1.5*baud - if(ex) then - write(21,3021) nutc,icand,itry,nsyncoh,iaptype, & - ijitter,ntype,nsync_qual,nharderrors,dmin, & - sync,xsnr,xdt,fsig,w50,trim(msg) -3021 format(i6.6,6i3,2i4,f6.1,f7.2,f6.1,f6.2,f7.1,f7.3,1x,a) - flush(21) - endif - call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & - iaptype,qual,ntrperiod,lwspr,fmid,w50) - goto 2002 - endif - enddo ! metrics - enddo ! istart jitter -2002 enddo !candidate list + enddo ! metrics + enddo ! istart jitter +2002 enddo !candidate list enddo - + return - end subroutine decode + end subroutine decode subroutine sync_fst4(cd0,i0,f0,hmod,ncoh,np,nss,ntr,fs,sync) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 4458aa8b2..6f014b99a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3127,7 +3127,7 @@ void MainWindow::decode() //decode() dec_data.params.nexp_decode = static_cast (m_config.special_op_id()); if(m_config.single_decode()) dec_data.params.nexp_decode += 32; if(m_config.enable_VHF_features()) dec_data.params.nexp_decode += 64; - if(m_mode.startsWith("FST4")) dec_data.params.nexp_decode += 256*ui->sbNB->value(); + if(m_mode.startsWith("FST4")) dec_data.params.nexp_decode += 256*(ui->sbNB->value()+2); ::memcpy(dec_data.params.datetime, m_dateTime.toLatin1()+" ", sizeof dec_data.params.datetime); ::memcpy(dec_data.params.mycall, (m_config.my_callsign()+" ").toLatin1(), sizeof dec_data.params.mycall); @@ -4241,7 +4241,7 @@ void MainWindow::guiUpdate() //Once per second (onesec) if(nsec != m_sec0) { // qDebug() << "AAA" << nsec; - if(m_mode=="FST4") chk_FST4_freq_range(); + if(m_mode=="FST4" and m_bOK_to_chk) chk_FST4_freq_range(); m_currentBand=m_config.bands()->find(m_freqNominal); if( SpecOp::HOUND == m_config.special_op_id() ) { qint32 tHound=QDateTime::currentMSecsSinceEpoch()/1000 - m_tAutoOn; @@ -5931,9 +5931,6 @@ void MainWindow::on_actionFST4_triggered() ui->sbFtol->setValue(20); } setup_status_bar(false); - ui->sbTR->values ({15, 30, 60, 120, 300, 900, 1800}); - on_sbTR_valueChanged (ui->sbTR->value()); - chk_FST4_freq_range(); ui->cbAutoSeq->setChecked(true); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); @@ -5942,9 +5939,13 @@ void MainWindow::on_actionFST4_triggered() m_wideGraph->setTol(ui->sbFtol->value()); m_wideGraph->setTxFreq(ui->TxFreqSpinBox->value()); m_wideGraph->setFST4_FreqRange(ui->sbF_Low->value(),ui->sbF_High->value()); + chk_FST4_freq_range(); switch_mode (Modes::FST4); m_wideGraph->setMode(m_mode); + ui->sbTR->values ({15, 30, 60, 120, 300, 900, 1800}); + on_sbTR_valueChanged (ui->sbTR->value()); statusChanged(); + m_bOK_to_chk=true; } void MainWindow::on_actionFST4W_triggered() @@ -7528,7 +7529,7 @@ void MainWindow::on_sbTR_valueChanged(int value) m_wideGraph->setPeriod (value, m_nsps); progressBar.setMaximum (value); } - if(m_mode=="FST4") chk_FST4_freq_range(); + if(m_mode=="FST4" and m_bOK_to_chk) chk_FST4_freq_range(); if(m_monitoring) { on_stopButton_clicked(); on_monitorButton_clicked(true); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 264e0cac5..011e29945 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -527,6 +527,7 @@ private: bool m_bWarnedSplit=false; bool m_bTUmsg; bool m_bBestSPArmed=false; + bool m_bOK_to_chk=false; enum { diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 9779fe3bb..558fefe06 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -1018,28 +1018,6 @@ When not checked you can view the calibration results. - - - - Qt::AlignCenter - - - F Low - - - 100 - - - 5000 - - - 100 - - - 600 - - - @@ -1065,6 +1043,53 @@ When not checked you can view the calibration results. + + + + Qt::AlignCenter + + + F Low + + + 100 + + + 5000 + + + 100 + + + 600 + + + + + + + Audio Rx frequency + + + Qt::AlignCenter + + + Hz + + + Rx + + + 200 + + + 5000 + + + 1500 + + + @@ -1153,31 +1178,6 @@ When not checked you can view the calibration results. - - - - Audio Rx frequency - - - Qt::AlignCenter - - - Hz - - - Rx - - - 200 - - - 5000 - - - 1500 - - - @@ -2470,6 +2470,9 @@ Yellow when too low NB + + -2 + 25 From f0ed93cdd08390b20a27cfa2f9d7d4c46f63ae2a Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 18 Sep 2020 11:45:28 -0400 Subject: [PATCH 501/520] In the NB-loop, don't cycle around a decode attempt for the npct=0 pass. --- lib/fst4_decode.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index c212a91d9..b02cda862 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -280,7 +280,7 @@ contains fc2=0. do icand=1,ncand fc0=candidates0(icand,1) - if(iwspr.eq.0 .and. nb.lt.0 .and. & + if(iwspr.eq.0 .and. nb.lt.0 .and. npct.ne.0 .and. & abs(fc0-(nfqso+1.5*baud)).gt.ntol) cycle detmet=candidates0(icand,2) From 327808a0bb7d8e04b4d68a6c6e01925dde78cda7 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 18 Sep 2020 13:33:30 -0400 Subject: [PATCH 502/520] One more try at fixing the Fmax() startup problem that Steve sees. --- widgets/mainwindow.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 6f014b99a..6b6bf4f08 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4241,7 +4241,7 @@ void MainWindow::guiUpdate() //Once per second (onesec) if(nsec != m_sec0) { // qDebug() << "AAA" << nsec; - if(m_mode=="FST4" and m_bOK_to_chk) chk_FST4_freq_range(); + if(m_mode=="FST4") chk_FST4_freq_range(); m_currentBand=m_config.bands()->find(m_freqNominal); if( SpecOp::HOUND == m_config.special_op_id() ) { qint32 tHound=QDateTime::currentMSecsSinceEpoch()/1000 - m_tAutoOn; @@ -5946,6 +5946,7 @@ void MainWindow::on_actionFST4_triggered() on_sbTR_valueChanged (ui->sbTR->value()); statusChanged(); m_bOK_to_chk=true; + chk_FST4_freq_range(); } void MainWindow::on_actionFST4W_triggered() @@ -6662,6 +6663,7 @@ void MainWindow::on_sbF_High_valueChanged(int n) void MainWindow::chk_FST4_freq_range() { + if(!m_bOK_to_chk) return; if(ui->sbF_Low->value() < m_wideGraph->nStartFreq()) ui->sbF_Low->setValue(m_wideGraph->nStartFreq()); if(ui->sbF_High->value() > m_wideGraph->Fmax()) { int n=m_wideGraph->Fmax()/100; @@ -7529,7 +7531,7 @@ void MainWindow::on_sbTR_valueChanged(int value) m_wideGraph->setPeriod (value, m_nsps); progressBar.setMaximum (value); } - if(m_mode=="FST4" and m_bOK_to_chk) chk_FST4_freq_range(); + if(m_mode=="FST4") chk_FST4_freq_range(); if(m_monitoring) { on_stopButton_clicked(); on_monitorButton_clicked(true); From 2af01ebaa1253b372377d70b6dd745d0fc353002 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 18 Sep 2020 15:52:33 -0400 Subject: [PATCH 503/520] Fix a flaw in the loop-over NB logic. There are more flaws! --- lib/fst4_decode.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index b02cda862..dac3fcc32 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -244,7 +244,7 @@ contains decodes=' ' do inb=inb0,inb1,inb2 - npct=inb + if(nb.lt.0) npct=inb call blanker(iwave,nfft1,ndropmax,npct,c_bigfft) ! The big fft is done once and is used for calculating the smoothed spectrum From 0ab3e5116fffc2a670142215b7d290cbc7e6f1ae Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 19 Sep 2020 10:08:42 -0400 Subject: [PATCH 504/520] Fix several flaws in the loop-over-NB logic in the FST4 decoder. --- lib/fst4_decode.f90 | 64 +++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index dac3fcc32..e97d8f096 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -229,7 +229,6 @@ contains npct=0 nb=nexp_decode/256 - 2 if(nb.ge.0) npct=nb - inb0=0 inb1=20 inb2=5 if(nb.eq.-1) then @@ -240,42 +239,44 @@ contains inb1=0 !Fixed NB value, 0 to 25% ipct(0)=npct endif + + if(iwspr.eq.1) then !FST4W + !300 Hz wide noise-fit window + nfa=max(100,nint(nfqso+1.5*baud-150)) + nfb=min(4800,nint(nfqso+1.5*baud+150)) + fa=max(100,nint(nfqso+1.5*baud-ntol)) ! signal search window + fb=min(4800,nint(nfqso+1.5*baud+ntol)) + else if(single_decode) then + fa=max(100,nint(nfa+1.5*baud)) + fb=min(4800,nint(nfb+1.5*baud)) + ! extend noise fit 100 Hz outside of search window + nfa=max(100,nfa-100) + nfb=min(4800,nfb+100) + else + fa=max(100,nint(nfa+1.5*baud)) + fb=min(4800,nint(nfb+1.5*baud)) + ! extend noise fit 100 Hz outside of search window + nfa=max(100,nfa-100) + nfb=min(4800,nfb+100) + endif + ndecodes=0 decodes=' ' - - do inb=inb0,inb1,inb2 + do inb=0,inb1,inb2 if(nb.lt.0) npct=inb call blanker(iwave,nfft1,ndropmax,npct,c_bigfft) ! The big fft is done once and is used for calculating the smoothed spectrum ! and also for downconverting/downsampling each candidate. call four2a(c_bigfft,nfft1,1,-1,0) !r2c - nhicoh=1 nsyncoh=8 - if(iwspr.eq.1) then !FST4W - nfa=max(100,nint(nfqso+1.5*baud-150)) !300 Hz wide noise-fit window - nfb=min(4800,nint(nfqso+1.5*baud+150)) - fa=max(100,nint(nfqso+1.5*baud-ntol)) ! signal search window - fb=min(4800,nint(nfqso+1.5*baud+ntol)) - else if(single_decode) then - fa=max(100,nint(nfa+1.5*baud)) - fb=min(4800,nint(nfb+1.5*baud)) - nfa=max(100,nfa-100) ! extend noise fit 100 Hz outside of search window - nfb=min(4800,nfb+100) - else - fa=max(100,nint(nfa+1.5*baud)) - fb=min(4800,nint(nfb+1.5*baud)) - nfa=max(100,nfa-100) ! extend noise fit 100 Hz outside of search window - nfb=min(4800,nfb+100) - endif minsync=1.20 if(ntrperiod.eq.15) minsync=1.15 - + ! Get first approximation of candidate frequencies call get_candidates_fst4(c_bigfft,nfft1,nsps,hmod,fs,fa,fb,nfa,nfb, & - minsync,ncand,candidates0) - + minsync,ncand,candidates0) isbest=0 fc2=0. do icand=1,ncand @@ -307,10 +308,10 @@ contains do icand=1,ncand fc=candidates0(icand,3) isbest=nint(candidates0(icand,4)) - do ic2=1,ncand + do ic2=icand+1,ncand fc2=candidates0(ic2,3) isbest2=nint(candidates0(ic2,4)) - if(ic2.ne.icand .and. fc2.gt.0.0) then + if(fc2.gt.0.0) then if(abs(fc2-fc).lt.0.10*baud) then ! same frequency if(abs(isbest2-isbest).le.2) then candidates0(ic2,3)=-1 @@ -327,7 +328,7 @@ contains endif enddo ncand=ic - + ! If FST4 and Single Decode is not checked, then find candidates within ! 20 Hz of nfqso and put them at the top of the list if(iwspr.eq.0 .and. .not.single_decode) then @@ -475,7 +476,7 @@ contains do i=1,ndecodes if(decodes(i).eq.msg) idupe=1 enddo - if(idupe.eq.1) goto 2002 + if(idupe.eq.1) goto 800 ndecodes=ndecodes+1 decodes(ndecodes)=msg @@ -522,14 +523,15 @@ contains endif call this%callback(nutc,smax1,nsnr,xdt,fsig,msg, & iaptype,qual,ntrperiod,lwspr,fmid,w50) - goto 2002 + if(iwspr.eq.0 .and. nb.lt.0) go to 900 + goto 800 endif enddo ! metrics enddo ! istart jitter -2002 enddo !candidate list - enddo +800 enddo !candidate list + enddo ! noise blanker loop - return +900 return end subroutine decode subroutine sync_fst4(cd0,i0,f0,hmod,ncoh,np,nss,ntr,fs,sync) From e79c5f65766d71ddd9d8f67f4c9950a3d9ea6280 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 20 Sep 2020 10:16:08 -0400 Subject: [PATCH 505/520] Minor edits to User Guide. --- doc/user_guide/en/install-windows.adoc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/doc/user_guide/en/install-windows.adoc b/doc/user_guide/en/install-windows.adoc index b999c15e7..19c73e3a3 100644 --- a/doc/user_guide/en/install-windows.adoc +++ b/doc/user_guide/en/install-windows.adoc @@ -21,19 +21,21 @@ TIP: Your computer may be configured so that this directory is `"%LocalAppData%\WSJT-X\"`. * The built-in Windows facility for time synchronization is usually - not adequate. We recommend the program _Meinberg NTP Client_ (see - {ntpsetup} for downloading and installation instructions). Recent + not adequate. We recommend the program _Meinberg NTP Client_: see + {ntpsetup} for downloading and installation instructions. Recent versions of Windows 10 are now shipped with a more capable Internet time synchronization service that is suitable if configured appropriately. We do not recommend SNTP time setting tools or others that make periodic correction steps, _WSJT-X_ requires that the PC - clock be monotonic. + clock be monotonically increasing and smoothly continuous. NOTE: Having a PC clock that appears to be synchronized to UTC is not - sufficient, monotonicity means that the clock must not be - stepped backwards or forwards during corrections, instead the - clock frequency must be adjusted to correct synchronization - errors gradually. + sufficient. "`Monotonically increasing`" means that the clock + must not be stepped backwards. "`Smoothly continuous`" means + that time must increase at a nearly constant rate, without + steps. Any necessary clock corrections must be applied by + adjusting the rate of increase, thereby correcting + synchronization errors gradually. [[OPENSSL]] From 1ab59a8d6b3f6363ec4287cbb9c73271b058dc35 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sun, 20 Sep 2020 10:17:27 -0400 Subject: [PATCH 506/520] Fully configure WideGpahe after switching to JT65 mode. --- widgets/mainwindow.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 6b6bf4f08..8b27440c5 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -6297,6 +6297,9 @@ void MainWindow::on_actionJT65_triggered() m_wideGraph->setPeriod(m_TRperiod,m_nsps); m_wideGraph->setMode(m_mode); m_wideGraph->setModeTx(m_modeTx); + m_wideGraph->setRxFreq(ui->RxFreqSpinBox->value()); + m_wideGraph->setTol(ui->sbFtol->value()); + m_wideGraph->setTxFreq(ui->TxFreqSpinBox->value()); setup_status_bar (bVHF); m_bFastMode=false; m_bFast9=false; From 542ffe83112c16e9a56fe946c496c8b4973683ff Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 20 Sep 2020 18:20:16 +0100 Subject: [PATCH 507/520] Improve audio device handling and error recovery where possible audio devices that disappear are not forgotten until the user selects another device, this should allow temporarily missing devices or forgetting to switch on devices before starting WSJT-X to be handled more cleanly. If all else fails, visiting the Settings dialog and clicking OK should get things going again. Note that we still do not have a reliable way of detecting failed audio out devices, in that case selecting another device and then returning to the original should work. Enumerating audio devices is expensive and on Linux may take many seconds per device. To avoid lengthy blocking behaviour until it is absolutely necessary, audio devices are not enumerated until one of the "Settings->Audio" device drop-down lists is opened. Elsewhere when devices must be discovered the enumeration stops as soon as the configured device is discovered. A status bar message is posted when audio devices are being enumerated as a reminder that the UI may block while this is happening. The message box warning about unaccounted-for input audio samples now only triggers when >5 seconds of audio appears to be missing or over provided. Hopefully this will make the warning less annoying for those that are using audio sources with high and/or variable latencies. A status bar message is still posted for any amount of audio input samples unaccounted for >1/5 second, this message appearing a lot should be considered as notification that there is a problem with the audio sub-system, system load is too high, or time synchronization is stepping the PC clock rather than adjusting the frequency to maintain monotonic clock ticks. --- Audio/AudioDevice.cpp | 1 - Audio/AudioDevice.hpp | 4 +- Audio/soundin.cpp | 32 +++--- Audio/soundin.h | 3 +- Audio/soundout.cpp | 54 +++++----- Audio/soundout.h | 9 +- CMakeLists.txt | 1 + Configuration.cpp | 185 +++++++++++++++++++++-------------- Configuration.hpp | 2 + Configuration.ui | 143 ++++++++++++++------------- Detector/Detector.cpp | 3 +- Modulator/Modulator.cpp | 2 - widgets/LazyFillComboBox.cpp | 3 + widgets/LazyFillComboBox.hpp | 40 ++++++++ widgets/mainwindow.cpp | 8 +- 15 files changed, 291 insertions(+), 199 deletions(-) create mode 100644 widgets/LazyFillComboBox.cpp create mode 100644 widgets/LazyFillComboBox.hpp diff --git a/Audio/AudioDevice.cpp b/Audio/AudioDevice.cpp index 2b8525826..16fec3148 100644 --- a/Audio/AudioDevice.cpp +++ b/Audio/AudioDevice.cpp @@ -7,4 +7,3 @@ bool AudioDevice::initialize (OpenMode mode, Channel channel) // open and ensure we are unbuffered if possible return QIODevice::open (mode | QIODevice::Unbuffered); } - diff --git a/Audio/AudioDevice.hpp b/Audio/AudioDevice.hpp index 3ab19f0f4..2d47af89b 100644 --- a/Audio/AudioDevice.hpp +++ b/Audio/AudioDevice.hpp @@ -33,8 +33,8 @@ public: Channel channel () const {return m_channel;} protected: - AudioDevice (QObject * parent = 0) - : QIODevice (parent) + AudioDevice (QObject * parent = nullptr) + : QIODevice {parent} { } diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index 7dc940406..00129311a 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -10,11 +10,9 @@ #include "moc_soundin.cpp" -bool SoundInput::audioError () const +bool SoundInput::checkStream () { - bool result (true); - - Q_ASSERT_X (m_stream, "SoundInput", "programming error"); + bool result (false); if (m_stream) { switch (m_stream->error ()) @@ -36,9 +34,13 @@ bool SoundInput::audioError () const break; case QAudio::NoError: - result = false; + result = true; break; } + if (!result) + { + stop (); + } } return result; } @@ -74,12 +76,13 @@ void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, Audi // qDebug () << "Selected audio input format:" << format; m_stream.reset (new QAudioInput {device, format}); - if (audioError ()) + if (!checkStream ()) { return; } connect (m_stream.data(), &QAudioInput::stateChanged, this, &SoundInput::handleStateChanged); + connect (m_stream.data(), &QAudioInput::notify, [this] () {checkStream ();}); //qDebug () << "SoundIn default buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); // the Windows MME version of QAudioInput uses 1/5 of the buffer @@ -89,10 +92,10 @@ void SoundInput::start(QAudioDeviceInfo const& device, int framesPerBuffer, Audi #else Q_UNUSED (framesPerBuffer); #endif - if (sink->initialize (QIODevice::WriteOnly, channel)) + if (m_sink->initialize (QIODevice::WriteOnly, channel)) { m_stream->start (sink); - audioError (); + checkStream (); cummulative_lost_usec_ = -1; //qDebug () << "SoundIn selected buffer size (bytes):" << m_stream->bufferSize () << "peirod size:" << m_stream->periodSize (); } @@ -107,7 +110,7 @@ void SoundInput::suspend () if (m_stream) { m_stream->suspend (); - audioError (); + checkStream (); } } @@ -122,14 +125,12 @@ void SoundInput::resume () if (m_stream) { m_stream->resume (); - audioError (); + checkStream (); } } void SoundInput::handleStateChanged (QAudio::State newState) { - //qDebug () << "SoundInput::handleStateChanged: newState:" << newState; - switch (newState) { case QAudio::IdleState: @@ -152,7 +153,7 @@ void SoundInput::handleStateChanged (QAudio::State newState) #endif case QAudio::StoppedState: - if (audioError ()) + if (!checkStream ()) { Q_EMIT status (tr ("Error")); } @@ -193,11 +194,6 @@ void SoundInput::stop() m_stream->stop (); } m_stream.reset (); - - if (m_sink) - { - m_sink->close (); - } } SoundInput::~SoundInput () diff --git a/Audio/soundin.h b/Audio/soundin.h index a126fbbd1..c35b3d7d8 100644 --- a/Audio/soundin.h +++ b/Audio/soundin.h @@ -24,7 +24,6 @@ class SoundInput public: SoundInput (QObject * parent = nullptr) : QObject {parent} - , m_sink {nullptr} , cummulative_lost_usec_ {std::numeric_limits::min ()} { } @@ -47,7 +46,7 @@ private: // used internally Q_SLOT void handleStateChanged (QAudio::State); - bool audioError () const; + bool checkStream (); QScopedPointer m_stream; QPointer m_sink; diff --git a/Audio/soundout.cpp b/Audio/soundout.cpp index 40eff6012..5e89de147 100644 --- a/Audio/soundout.cpp +++ b/Audio/soundout.cpp @@ -7,11 +7,13 @@ #include #include +#include "Audio/AudioDevice.hpp" + #include "moc_soundout.cpp" -bool SoundOutput::audioError () const +bool SoundOutput::checkStream () const { - bool result (true); + bool result {false}; Q_ASSERT_X (m_stream, "SoundOutput", "programming error"); if (m_stream) { @@ -34,7 +36,7 @@ bool SoundOutput::audioError () const break; case QAudio::NoError: - result = false; + result = true; break; } } @@ -43,15 +45,19 @@ bool SoundOutput::audioError () const void SoundOutput::setFormat (QAudioDeviceInfo const& device, unsigned channels, int frames_buffered) { - if (!device.isNull ()) + Q_ASSERT (0 < channels && channels < 3); + m_device = device; + m_channels = channels; + m_framesBuffered = frames_buffered; +} + +void SoundOutput::restart (AudioDevice * source) +{ + if (!m_device.isNull ()) { - Q_ASSERT (0 < channels && channels < 3); - - m_framesBuffered = frames_buffered; - - QAudioFormat format (device.preferredFormat ()); + QAudioFormat format (m_device.preferredFormat ()); // qDebug () << "Preferred audio output format:" << format; - format.setChannelCount (channels); + format.setChannelCount (m_channels); format.setCodec ("audio/pcm"); format.setSampleRate (48000); format.setSampleType (QAudioFormat::SignedInt); @@ -61,29 +67,25 @@ void SoundOutput::setFormat (QAudioDeviceInfo const& device, unsigned channels, { Q_EMIT error (tr ("Requested output audio format is not valid.")); } - else if (!device.isFormatSupported (format)) + else if (!m_device.isFormatSupported (format)) { Q_EMIT error (tr ("Requested output audio format is not supported on device.")); } else { // qDebug () << "Selected audio output format:" << format; - - m_stream.reset (new QAudioOutput (device, format)); - audioError (); + m_stream.reset (new QAudioOutput (m_device, format)); + checkStream (); m_stream->setVolume (m_volume); - m_stream->setNotifyInterval(100); + m_stream->setNotifyInterval(1000); error_ = false; connect (m_stream.data(), &QAudioOutput::stateChanged, this, &SoundOutput::handleStateChanged); + connect (m_stream.data(), &QAudioOutput::notify, [this] () {checkStream ();}); // qDebug() << "A" << m_volume << m_stream->notifyInterval(); } } -} - -void SoundOutput::restart (QIODevice * source) -{ if (!m_stream) { if (!error_) @@ -109,6 +111,7 @@ void SoundOutput::restart (QIODevice * source) #endif } m_stream->setCategory ("production"); + m_source = source; m_stream->start (source); // qDebug () << "SoundOut selected buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); } @@ -118,7 +121,7 @@ void SoundOutput::suspend () if (m_stream && QAudio::ActiveState == m_stream->state ()) { m_stream->suspend (); - audioError (); + checkStream (); } } @@ -127,7 +130,7 @@ void SoundOutput::resume () if (m_stream && QAudio::SuspendedState == m_stream->state ()) { m_stream->resume (); - audioError (); + checkStream (); } } @@ -136,7 +139,7 @@ void SoundOutput::reset () if (m_stream) { m_stream->reset (); - audioError (); + checkStream (); } } @@ -144,9 +147,10 @@ void SoundOutput::stop () { if (m_stream) { + m_stream->reset (); m_stream->stop (); - audioError (); } + m_stream.reset (); } qreal SoundOutput::attenuation () const @@ -176,8 +180,6 @@ void SoundOutput::resetAttenuation () void SoundOutput::handleStateChanged (QAudio::State newState) { - // qDebug () << "SoundOutput::handleStateChanged: newState:" << newState; - switch (newState) { case QAudio::IdleState: @@ -199,7 +201,7 @@ void SoundOutput::handleStateChanged (QAudio::State newState) #endif case QAudio::StoppedState: - if (audioError ()) + if (!checkStream ()) { Q_EMIT status (tr ("Error")); } diff --git a/Audio/soundout.h b/Audio/soundout.h index c46e1563f..95efaeb15 100644 --- a/Audio/soundout.h +++ b/Audio/soundout.h @@ -6,7 +6,9 @@ #include #include #include +#include +class AudioDevice; class QAudioDeviceInfo; // An instance of this sends audio data to a specified soundcard. @@ -28,7 +30,7 @@ public: public Q_SLOTS: void setFormat (QAudioDeviceInfo const& device, unsigned channels, int frames_buffered = 0); - void restart (QIODevice *); + void restart (AudioDevice *); void suspend (); void resume (); void reset (); @@ -41,13 +43,16 @@ Q_SIGNALS: void status (QString message) const; private: - bool audioError () const; + bool checkStream () const; private Q_SLOTS: void handleStateChanged (QAudio::State); private: + QAudioDeviceInfo m_device; + unsigned m_channels; QScopedPointer m_stream; + QPointer m_source; int m_framesBuffered; qreal m_volume; bool error_; diff --git a/CMakeLists.txt b/CMakeLists.txt index a2a31b388..f24abbbeb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -293,6 +293,7 @@ set (wsjt_qt_CXXSRCS logbook/WorkedBefore.cpp logbook/Multiplier.cpp Network/NetworkAccessManager.cpp + widgets/LazyFillComboBox.cpp ) set (wsjt_qtmm_CXXSRCS diff --git a/Configuration.cpp b/Configuration.cpp index 91f9b1926..65b510b8e 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -188,6 +188,7 @@ #include "Network/LotWUsers.hpp" #include "models/DecodeHighlightingModel.hpp" #include "logbook/logbook.h" +#include "widgets/LazyFillComboBox.hpp" #include "ui_Configuration.h" #include "moc_Configuration.cpp" @@ -432,7 +433,6 @@ private: void read_settings (); void write_settings (); - Q_SLOT void lazy_models_load (int); void find_audio_devices (); QAudioDeviceInfo find_audio_device (QAudio::Mode, QComboBox *, QString const& device_name); void load_audio_devices (QAudio::Mode, QComboBox *, QAudioDeviceInfo *); @@ -653,9 +653,13 @@ private: bool pwrBandTuneMemory_; QAudioDeviceInfo audio_input_device_; + QAudioDeviceInfo next_audio_input_device_; AudioDevice::Channel audio_input_channel_; + AudioDevice::Channel next_audio_input_channel_; QAudioDeviceInfo audio_output_device_; + QAudioDeviceInfo next_audio_output_device_; AudioDevice::Channel audio_output_channel_; + AudioDevice::Channel next_audio_output_channel_; friend class Configuration; }; @@ -856,6 +860,16 @@ void Configuration::sync_transceiver (bool force_signal, bool enforce_mode_and_s } } +void Configuration::invalidate_audio_input_device (QString /* error */) +{ + m_->audio_input_device_ = QAudioDeviceInfo {}; +} + +void Configuration::invalidate_audio_output_device (QString /* error */) +{ + m_->audio_output_device_ = QAudioDeviceInfo {}; +} + bool Configuration::valid_n1mm_info () const { // do very rudimentary checking on the n1mm server name and port number. @@ -1029,6 +1043,17 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network // this must be done after the default paths above are set read_settings (); + connect (ui_->sound_input_combo_box, &LazyFillComboBox::about_to_show_popup, [this] () { + load_audio_devices (QAudio::AudioInput, ui_->sound_input_combo_box, &next_audio_input_device_); + update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); + ui_->sound_input_channel_combo_box->setCurrentIndex (next_audio_input_channel_); + }); + connect (ui_->sound_output_combo_box, &LazyFillComboBox::about_to_show_popup, [this] () { + load_audio_devices (QAudio::AudioOutput, ui_->sound_output_combo_box, &next_audio_output_device_); + update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); + ui_->sound_output_channel_combo_box->setCurrentIndex (next_audio_output_channel_); + }); + // set up LoTW users CSV file fetching connect (&lotw_users_, &LotWUsers::load_finished, [this] () { ui_->LotW_CSV_fetch_push_button->setEnabled (true); @@ -1102,7 +1127,6 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network // // setup hooks to keep audio channels aligned with devices // - connect (ui_->configuration_tabs, &QTabWidget::currentChanged, this, &Configuration::impl::lazy_models_load); { using namespace std; using namespace std::placeholders; @@ -1199,6 +1223,11 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network enumerate_rigs (); initialize_models (); + audio_input_device_ = next_audio_input_device_; + audio_input_channel_ = next_audio_input_channel_; + audio_output_device_ = next_audio_output_device_; + audio_output_channel_ = next_audio_output_channel_; + transceiver_thread_ = new QThread {this}; transceiver_thread_->start (); } @@ -1210,31 +1239,14 @@ Configuration::impl::~impl () write_settings (); } -void Configuration::impl::lazy_models_load (int current_tab_index) -{ - switch (current_tab_index) - { - case 2: // Audio - // - // load combo boxes with audio setup choices - // - load_audio_devices (QAudio::AudioInput, ui_->sound_input_combo_box, &audio_input_device_); - load_audio_devices (QAudio::AudioOutput, ui_->sound_output_combo_box, &audio_output_device_); - - update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); - update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); - - ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); - ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); - break; - - default: - break; - } -} - void Configuration::impl::initialize_models () { + next_audio_input_device_ = audio_input_device_; + next_audio_input_channel_ = audio_input_channel_; + next_audio_output_device_ = audio_output_device_; + next_audio_output_channel_ = audio_output_channel_; + restart_sound_input_device_ = false; + restart_sound_output_device_ = false; { SettingsGroup g {settings_, "Configuration"}; find_audio_devices (); @@ -1413,8 +1425,6 @@ void Configuration::impl::read_settings () save_directory_.setPath (settings_->value ("SaveDir", default_save_directory_.absolutePath ()).toString ()); azel_directory_.setPath (settings_->value ("AzElDir", default_azel_directory_.absolutePath ()).toString ()); - find_audio_devices (); - type_2_msg_gen_ = settings_->value ("Type2MsgGen", QVariant::fromValue (Configuration::type_2_msg_3_full)).value (); monitor_off_at_startup_ = settings_->value ("MonitorOFF", false).toBool (); @@ -1522,24 +1532,24 @@ void Configuration::impl::find_audio_devices () // retrieve audio input device // auto saved_name = settings_->value ("SoundInName").toString (); - if (audio_input_device_.deviceName () != saved_name) + if (next_audio_input_device_.deviceName () != saved_name || next_audio_input_device_.isNull ()) { - audio_input_device_ = find_audio_device (QAudio::AudioInput, ui_->sound_input_combo_box, saved_name); - audio_input_channel_ = AudioDevice::fromString (settings_->value ("AudioInputChannel", "Mono").toString ()); + next_audio_input_device_ = find_audio_device (QAudio::AudioInput, ui_->sound_input_combo_box, saved_name); + next_audio_input_channel_ = AudioDevice::fromString (settings_->value ("AudioInputChannel", "Mono").toString ()); update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); - ui_->sound_input_channel_combo_box->setCurrentIndex (audio_input_channel_); + ui_->sound_input_channel_combo_box->setCurrentIndex (next_audio_input_channel_); } // // retrieve audio output device // saved_name = settings_->value("SoundOutName").toString(); - if (audio_output_device_.deviceName () != saved_name) + if (next_audio_output_device_.deviceName () != saved_name || next_audio_output_device_.isNull ()) { - audio_output_channel_ = AudioDevice::fromString (settings_->value ("AudioOutputChannel", "Mono").toString ()); - audio_output_device_ = find_audio_device (QAudio::AudioOutput, ui_->sound_output_combo_box, saved_name); + next_audio_output_device_ = find_audio_device (QAudio::AudioOutput, ui_->sound_output_combo_box, saved_name); + next_audio_output_channel_ = AudioDevice::fromString (settings_->value ("AudioOutputChannel", "Mono").toString ()); update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); - ui_->sound_output_channel_combo_box->setCurrentIndex (audio_output_channel_); + ui_->sound_output_channel_combo_box->setCurrentIndex (next_audio_output_channel_); } } @@ -1562,10 +1572,16 @@ void Configuration::impl::write_settings () settings_->setValue ("PTTport", rig_params_.ptt_port); settings_->setValue ("SaveDir", save_directory_.absolutePath ()); settings_->setValue ("AzElDir", azel_directory_.absolutePath ()); - settings_->setValue ("SoundInName", audio_input_device_.deviceName ()); - settings_->setValue ("SoundOutName", audio_output_device_.deviceName ()); - settings_->setValue ("AudioInputChannel", AudioDevice::toString (audio_input_channel_)); - settings_->setValue ("AudioOutputChannel", AudioDevice::toString (audio_output_channel_)); + if (!audio_input_device_.isNull ()) + { + settings_->setValue ("SoundInName", audio_input_device_.deviceName ()); + settings_->setValue ("AudioInputChannel", AudioDevice::toString (audio_input_channel_)); + } + if (!audio_output_device_.isNull ()) + { + settings_->setValue ("SoundOutName", audio_output_device_.deviceName ()); + settings_->setValue ("AudioOutputChannel", AudioDevice::toString (audio_output_channel_)); + } settings_->setValue ("Type2MsgGen", QVariant::fromValue (type_2_msg_gen_)); settings_->setValue ("MonitorOFF", monitor_off_at_startup_); settings_->setValue ("MonitorLastUsed", monitor_last_used_); @@ -1770,7 +1786,7 @@ void Configuration::impl::set_rig_invariants () bool Configuration::impl::validate () { if (ui_->sound_input_combo_box->currentIndex () < 0 - && audio_input_device_.isNull ()) + && next_audio_input_device_.isNull ()) { find_tab (ui_->sound_input_combo_box); MessageBox::critical_message (this, tr ("Invalid audio input device")); @@ -1778,7 +1794,7 @@ bool Configuration::impl::validate () } if (ui_->sound_input_channel_combo_box->currentIndex () < 0 - && audio_input_device_.isNull ()) + && next_audio_input_device_.isNull ()) { find_tab (ui_->sound_input_combo_box); MessageBox::critical_message (this, tr ("Invalid audio input device")); @@ -1786,7 +1802,7 @@ bool Configuration::impl::validate () } if (ui_->sound_output_combo_box->currentIndex () < 0 - && audio_output_device_.isNull ()) + && next_audio_output_device_.isNull ()) { find_tab (ui_->sound_output_combo_box); MessageBox::information_message (this, tr ("Invalid audio output device")); @@ -1842,7 +1858,6 @@ int Configuration::impl::exec () rig_changed_ = false; initialize_models (); - lazy_models_load (ui_->configuration_tabs->currentIndex ()); return QDialog::exec(); } @@ -1941,39 +1956,60 @@ void Configuration::impl::accept () // related configuration parameters rig_is_dummy_ = TransceiverFactory::basic_transceiver_name_ == rig_params_.rig_name; - // Check to see whether SoundInThread must be restarted, - // and save user parameters. { auto const& selected_device = ui_->sound_input_combo_box->currentData ().value ().first; - if (selected_device != audio_input_device_) + if (selected_device != next_audio_input_device_) { - audio_input_device_ = selected_device; - restart_sound_input_device_ = true; + next_audio_input_device_ = selected_device; } } { auto const& selected_device = ui_->sound_output_combo_box->currentData ().value ().first; - if (selected_device != audio_output_device_) + if (selected_device != next_audio_output_device_) { - audio_output_device_ = selected_device; - restart_sound_output_device_ = true; + next_audio_output_device_ = selected_device; } } - if (audio_input_channel_ != static_cast (ui_->sound_input_channel_combo_box->currentIndex ())) + if (next_audio_input_channel_ != static_cast (ui_->sound_input_channel_combo_box->currentIndex ())) { - audio_input_channel_ = static_cast (ui_->sound_input_channel_combo_box->currentIndex ()); + next_audio_input_channel_ = static_cast (ui_->sound_input_channel_combo_box->currentIndex ()); + } + Q_ASSERT (next_audio_input_channel_ <= AudioDevice::Right); + + if (next_audio_output_channel_ != static_cast (ui_->sound_output_channel_combo_box->currentIndex ())) + { + next_audio_output_channel_ = static_cast (ui_->sound_output_channel_combo_box->currentIndex ()); + } + Q_ASSERT (next_audio_output_channel_ <= AudioDevice::Both); + + if (audio_input_device_ != next_audio_input_device_ || next_audio_input_device_.isNull ()) + { + audio_input_device_ = next_audio_input_device_; restart_sound_input_device_ = true; } - Q_ASSERT (audio_input_channel_ <= AudioDevice::Right); - - if (audio_output_channel_ != static_cast (ui_->sound_output_channel_combo_box->currentIndex ())) + if (audio_input_channel_ != next_audio_input_channel_) { - audio_output_channel_ = static_cast (ui_->sound_output_channel_combo_box->currentIndex ()); + audio_input_channel_ = next_audio_input_channel_; + restart_sound_input_device_ = true; + } + if (audio_output_device_ != next_audio_output_device_ || next_audio_output_device_.isNull ()) + { + audio_output_device_ = next_audio_output_device_; restart_sound_output_device_ = true; } - Q_ASSERT (audio_output_channel_ <= AudioDevice::Both); + if (audio_output_channel_ != next_audio_output_channel_) + { + audio_output_channel_ = next_audio_output_channel_; + restart_sound_output_device_ = true; + } + // qDebug () << "Configure::accept: audio i/p:" << audio_input_device_.deviceName () + // << "chan:" << audio_input_channel_ + // << "o/p:" << audio_output_device_.deviceName () + // << "chan:" << audio_output_channel_ + // << "reset i/p:" << restart_sound_input_device_ + // << "reset o/p:" << restart_sound_output_device_; my_callsign_ = ui_->callsign_line_edit->text (); my_grid_ = ui_->grid_line_edit->text (); @@ -2112,6 +2148,13 @@ void Configuration::impl::reject () } } + // qDebug () << "Configure::reject: audio i/p:" << audio_input_device_.deviceName () + // << "chan:" << audio_input_channel_ + // << "o/p:" << audio_output_device_.deviceName () + // << "chan:" << audio_output_channel_ + // << "reset i/p:" << restart_sound_input_device_ + // << "reset o/p:" << restart_sound_output_device_; + QDialog::reject (); } @@ -2772,27 +2815,25 @@ QAudioDeviceInfo Configuration::impl::find_audio_device (QAudio::Mode mode, QCom if (device_name.size ()) { - combo_box->clear (); - - int current_index = -1; + Q_EMIT self_->enumerating_audio_devices (); auto const& devices = QAudioDeviceInfo::availableDevices (mode); Q_FOREACH (auto const& p, devices) { - - // convert supported channel counts into something we can store in the item model - QList channel_counts; - auto scc = p.supportedChannelCounts (); - copy (scc.cbegin (), scc.cend (), back_inserter (channel_counts)); - - combo_box->addItem (p.deviceName (), QVariant::fromValue (audio_info_type {p, channel_counts})); + qDebug () << "Configuration::impl::find_audio_device: input:" << (QAudio::AudioInput == mode) << "name:" << p.deviceName () << "preferred format:" << p.preferredFormat () << "endians:" << p.supportedByteOrders () << "codecs:" << p.supportedCodecs () << "channels:" << p.supportedChannelCounts () << "rates:" << p.supportedSampleRates () << "sizes:" << p.supportedSampleSizes () << "types:" << p.supportedSampleTypes (); if (p.deviceName () == device_name) { - current_index = combo_box->count () - 1; - combo_box->setCurrentIndex (current_index); + // convert supported channel counts into something we can store in the item model + QList channel_counts; + auto scc = p.supportedChannelCounts (); + copy (scc.cbegin (), scc.cend (), back_inserter (channel_counts)); + combo_box->insertItem (0, device_name, QVariant::fromValue (audio_info_type {p, channel_counts})); + combo_box->setCurrentIndex (0); return p; } } - combo_box->setCurrentIndex (current_index); + // insert a place holder for the not found device + combo_box->insertItem (0, device_name + " (" + tr ("Not found", "audio device missing") + ")", QVariant::fromValue (audio_info_type {})); + combo_box->setCurrentIndex (0); } return {}; } @@ -2811,7 +2852,7 @@ void Configuration::impl::load_audio_devices (QAudio::Mode mode, QComboBox * com auto const& devices = QAudioDeviceInfo::availableDevices (mode); Q_FOREACH (auto const& p, devices) { - // qDebug () << "Audio device: input:" << (QAudio::AudioInput == mode) << "name:" << p.deviceName () << "preferred format:" << p.preferredFormat () << "endians:" << p.supportedByteOrders () << "codecs:" << p.supportedCodecs () << "channels:" << p.supportedChannelCounts () << "rates:" << p.supportedSampleRates () << "sizes:" << p.supportedSampleSizes () << "types:" << p.supportedSampleTypes (); + // qDebug () << "Configuration::impl::load_audio_devices: input:" << (QAudio::AudioInput == mode) << "name:" << p.deviceName () << "preferred format:" << p.preferredFormat () << "endians:" << p.supportedByteOrders () << "codecs:" << p.supportedCodecs () << "channels:" << p.supportedChannelCounts () << "rates:" << p.supportedSampleRates () << "sizes:" << p.supportedSampleSizes () << "types:" << p.supportedSampleTypes (); // convert supported channel counts into something we can store in the item model QList channel_counts; diff --git a/Configuration.hpp b/Configuration.hpp index 45fafe59b..8594a4a6f 100644 --- a/Configuration.hpp +++ b/Configuration.hpp @@ -260,6 +260,8 @@ public: // i.e. the transceiver is ready for use. Q_SLOT void sync_transceiver (bool force_signal = false, bool enforce_mode_and_split = false); + Q_SLOT void invalidate_audio_input_device (QString error); + Q_SLOT void invalidate_audio_output_device (QString error); // // These signals indicate a font has been selected and accepted for diff --git a/Configuration.ui b/Configuration.ui index 4c8035754..d22032d53 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -7,7 +7,7 @@ 0 0 554 - 557 + 556 @@ -1364,71 +1364,8 @@ radio interface behave as expected. Soundcard - - - - Ou&tput: - - - sound_output_combo_box - - - - - - - &Input: - - - sound_input_combo_box - - - - - - - Select the audio channel used for transmission. -Unless you have multiple radios connected on different -channels; then you will usually want to select mono or -both here. - - - - Mono - - - - - Left - - - - - Right - - - - - Both - - - - - - - - - 1 - 0 - - - - Select the audio CODEC to use for receiving. - - - - + 1 @@ -1471,6 +1408,69 @@ transmitting periods. + + + + + 1 + 0 + + + + Select the audio CODEC to use for receiving. + + + + + + + Ou&tput: + + + sound_output_combo_box + + + + + + + Select the audio channel used for transmission. +Unless you have multiple radios connected on different +channels; then you will usually want to select mono or +both here. + + + + Mono + + + + + Left + + + + + Right + + + + + Both + + + + + + + + &Input: + + + sound_input_combo_box + + + @@ -2997,6 +2997,11 @@ Right click for insert and delete options. QListView
widgets/DecodeHighlightingListView.hpp
+ + LazyFillComboBox + QComboBox +
widgets/LazyFillComboBox.hpp
+
configuration_tabs @@ -3187,13 +3192,13 @@ Right click for insert and delete options. + + + - - - - + diff --git a/Detector/Detector.cpp b/Detector/Detector.cpp index d70dd42ff..164db2ab2 100644 --- a/Detector/Detector.cpp +++ b/Detector/Detector.cpp @@ -36,7 +36,7 @@ void Detector::setBlockSize (unsigned n) bool Detector::reset () { clear (); - // don't call base call reset because it calls seek(0) which causes + // don't call base class reset because it calls seek(0) which causes // a warning return isOpen (); } @@ -56,7 +56,6 @@ void Detector::clear () qint64 Detector::writeData (char const * data, qint64 maxSize) { - //qDebug () << "Detector::writeData: size:" << maxSize; static unsigned mstr0=999999; qint64 ms0 = QDateTime::currentMSecsSinceEpoch() % 86400000; unsigned mstr = ms0 % int(1000.0*m_period); // ms into the nominal Tx start time diff --git a/Modulator/Modulator.cpp b/Modulator/Modulator.cpp index df365c507..96963029f 100644 --- a/Modulator/Modulator.cpp +++ b/Modulator/Modulator.cpp @@ -149,8 +149,6 @@ void Modulator::close () qint64 Modulator::readData (char * data, qint64 maxSize) { - // qDebug () << "readData: maxSize:" << maxSize; - double toneFrequency=1500.0; if(m_nsps==6) { toneFrequency=1000.0; diff --git a/widgets/LazyFillComboBox.cpp b/widgets/LazyFillComboBox.cpp new file mode 100644 index 000000000..08968f357 --- /dev/null +++ b/widgets/LazyFillComboBox.cpp @@ -0,0 +1,3 @@ +#include "LazyFillComboBox.hpp" + +#include "moc_LazyFillComboBox.cpp" diff --git a/widgets/LazyFillComboBox.hpp b/widgets/LazyFillComboBox.hpp new file mode 100644 index 000000000..7d9052673 --- /dev/null +++ b/widgets/LazyFillComboBox.hpp @@ -0,0 +1,40 @@ +#ifndef LAZY_FILL_COMBO_BOX_HPP__ +#define LAZY_FILL_COMBO_BOX_HPP__ + +#include + +class QWidget; + +// +// Class LazyFillComboBox +// +// QComboBox derivative that signals show and hide of the pop up list. +// +class LazyFillComboBox final + : public QComboBox +{ + Q_OBJECT + +public: + Q_SIGNAL void about_to_show_popup (); + Q_SIGNAL void popup_hidden (); + + explicit LazyFillComboBox (QWidget * parent = nullptr) + : QComboBox {parent} + { + } + + void showPopup () override + { + Q_EMIT about_to_show_popup (); + QComboBox::showPopup (); + } + + void hidePopup () override + { + QComboBox::hidePopup (); + Q_EMIT popup_hidden (); + } +}; + +#endif diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 8b27440c5..d8461bd67 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -454,6 +454,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, // hook up sound output stream slots & signals and disposal connect (this, &MainWindow::initializeAudioOutputStream, m_soundOutput, &SoundOutput::setFormat); connect (m_soundOutput, &SoundOutput::error, this, &MainWindow::showSoundOutError); + connect (m_soundOutput, &SoundOutput::error, &m_config, &Configuration::invalidate_audio_output_device); // connect (m_soundOutput, &SoundOutput::status, this, &MainWindow::showStatusMessage); connect (this, &MainWindow::outAttenuationChanged, m_soundOutput, &SoundOutput::setAttenuation); connect (&m_audioThread, &QThread::finished, m_soundOutput, &QObject::deleteLater); @@ -472,13 +473,14 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect (this, &MainWindow::reset_audio_input_stream, m_soundInput, &SoundInput::reset); connect (this, &MainWindow::finished, m_soundInput, &SoundInput::stop); connect(m_soundInput, &SoundInput::error, this, &MainWindow::showSoundInError); + connect(m_soundInput, &SoundInput::error, &m_config, &Configuration::invalidate_audio_input_device); // connect(m_soundInput, &SoundInput::status, this, &MainWindow::showStatusMessage); connect (m_soundInput, &SoundInput::dropped_frames, this, [this] (qint32 dropped_frames, qint64 usec) { if (dropped_frames > 48000 / 5) // 1/5 second { showStatusMessage (tr ("%1 (%2 sec) audio frames dropped").arg (dropped_frames).arg (usec / 1.e6, 5, 'f', 3)); } - if (dropped_frames > 48000) // 1 second + if (dropped_frames > 5 * 48000) // seconds { auto period = qt_truncate_date_time_to (QDateTime::currentDateTimeUtc ().addMSecs (-m_TRperiod / 2.), m_TRperiod * 1e3); MessageBox::warning_message (this @@ -1824,14 +1826,14 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog m_psk_Reporter.sendReport (true); } - if(m_config.restart_audio_input ()) { + if(m_config.restart_audio_input () && !m_config.audio_input_device ().isNull ()) { Q_EMIT startAudioInputStream (m_config.audio_input_device () , rx_chunk_size * m_downSampleFactor , m_detector, m_downSampleFactor , m_config.audio_input_channel ()); } - if(m_config.restart_audio_output ()) { + if(m_config.restart_audio_output () && !m_config.audio_output_device ().isNull ()) { Q_EMIT initializeAudioOutputStream (m_config.audio_output_device () , AudioDevice::Mono == m_config.audio_output_channel () ? 1 : 2 , tx_audio_buffer_size); From 9fe2fc6de042456b70446e1bffc3f38938907940 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 21 Sep 2020 14:35:16 -0400 Subject: [PATCH 508/520] Fix two problems: sometime incorrect setting of RxFreq in WideGraph, and incorrect timestamp for FST4W-120 and FST4W-300 decodes in ALL.TXT. --- widgets/mainwindow.cpp | 19 ++++++++++--------- widgets/mainwindow.h | 1 + widgets/plotter.cpp | 3 ++- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index d8461bd67..6a45be645 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1893,7 +1893,11 @@ void MainWindow::on_monitorButton_clicked (bool checked) setXIT (ui->TxFreqSpinBox->value ()); } // ensure FreqCal triggers - on_RxFreqSpinBox_valueChanged (ui->RxFreqSpinBox->value ()); + if(m_mode=="FST4W") { + on_sbFST4W_RxFreq_valueChanged(ui->sbFST4W_RxFreq->value()); + } else { + on_RxFreqSpinBox_valueChanged (ui->RxFreqSpinBox->value ()); + } } //Get Configuration in/out of strict split and mode checking m_config.sync_transceiver (true, checked); @@ -3022,6 +3026,8 @@ void MainWindow::decode() //decode() dec_data.params.nutc=dec_data.params.nutc/100; } if(dec_data.params.nagain==0 && dec_data.params.newdat==1 && (!m_diskData)) { + qint64 nperiods=now.toMSecsSinceEpoch()/(1000.0*m_TRperiod); + m_dateTimeSeqStart=QDateTime::fromMSecsSinceEpoch(qint64(1000.0*nperiods*m_TRperiod)).toUTC(); qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; int imin=ms/60000; int ihr=imin/60; @@ -7508,7 +7514,7 @@ void::MainWindow::VHF_features_enabled(bool b) void MainWindow::on_sbTR_valueChanged(int value) { -// if(!m_bFastMode and n>m_nSubMode) m_MinW=m_nSubMode; + // if(!m_bFastMode and n>m_nSubMode) m_MinW=m_nSubMode; if(m_bFastMode or m_mode=="FreqCal" or m_mode=="FST4" or m_mode=="FST4W") { m_TRperiod = value; if (m_mode == "FST4" || m_mode == "FST4W") @@ -9101,13 +9107,8 @@ void MainWindow::write_all(QString txRx, QString message) t = t.asprintf("%5d",ui->TxFreqSpinBox->value()); if (txRx=="Tx") msg=" 0 0.0" + t + " " + message; auto time = QDateTime::currentDateTimeUtc (); - if( txRx=="Rx" ) { - double tdec = fmod(double(time.time().second()),m_TRperiod); - if( "MSK144" != m_mode && tdec < 0.5*m_TRperiod ) { - tdec+=m_TRperiod; - } - time = time.addSecs(-tdec); - } + if( txRx=="Rx" ) time=m_dateTimeSeqStart; + t = t.asprintf("%10.3f ",m_freqNominal/1.e6); if (m_diskData) { if (m_fileDateTime.size()==11) { diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 011e29945..071ffd90d 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -660,6 +660,7 @@ private: QDateTime m_dateTimeSentTx3; QDateTime m_dateTimeRcvdRR73; QDateTime m_dateTimeBestSP; + QDateTime m_dateTimeSeqStart; //Nominal start time of Rx sequence about to be decoded QSharedMemory *mem_jt9; QString m_QSOText; diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index ab979af64..d612b2eb6 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -547,7 +547,8 @@ void CPlotter::DrawOverlay() //DrawOverlay() x1=XfromFreq(m_rxFreq-m_tol); x2=XfromFreq(m_rxFreq+m_tol); painter0.drawLine(x1,26,x2,26); // Mark the Tol range - } } + } + } } if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65" or From 8c9acfc464a79bc27ec3a41f8326bf19e5f14c1f Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 21 Sep 2020 14:45:17 -0400 Subject: [PATCH 509/520] Set default freq for JT9 on 2200 m to 0.136000 MHz. --- models/FrequencyList.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/FrequencyList.cpp b/models/FrequencyList.cpp index ec3c185ff..7523b20a3 100644 --- a/models/FrequencyList.cpp +++ b/models/FrequencyList.cpp @@ -48,7 +48,7 @@ namespace {136000, Modes::WSPR, IARURegions::ALL}, {136000, Modes::FST4, IARURegions::ALL}, {136000, Modes::FST4W, IARURegions::ALL}, - {136130, Modes::JT9, IARURegions::ALL}, + {136000, Modes::JT9, IARURegions::ALL}, {474200, Modes::JT9, IARURegions::ALL}, {474200, Modes::FST4, IARURegions::ALL}, From d1bb70fd1bcf2b0c18b2d7801dc379d78752955b Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Tue, 22 Sep 2020 12:18:23 +0100 Subject: [PATCH 510/520] Show busy cursor while enumerating audio devices --- Configuration.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Configuration.cpp b/Configuration.cpp index 65b510b8e..0466fd662 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -135,6 +135,7 @@ #include #include +#include #include #include #include @@ -1044,14 +1045,18 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network read_settings (); connect (ui_->sound_input_combo_box, &LazyFillComboBox::about_to_show_popup, [this] () { + QGuiApplication::setOverrideCursor (QCursor {Qt::WaitCursor}); load_audio_devices (QAudio::AudioInput, ui_->sound_input_combo_box, &next_audio_input_device_); update_audio_channels (ui_->sound_input_combo_box, ui_->sound_input_combo_box->currentIndex (), ui_->sound_input_channel_combo_box, false); ui_->sound_input_channel_combo_box->setCurrentIndex (next_audio_input_channel_); + QGuiApplication::restoreOverrideCursor (); }); connect (ui_->sound_output_combo_box, &LazyFillComboBox::about_to_show_popup, [this] () { + QGuiApplication::setOverrideCursor (QCursor {Qt::WaitCursor}); load_audio_devices (QAudio::AudioOutput, ui_->sound_output_combo_box, &next_audio_output_device_); update_audio_channels (ui_->sound_output_combo_box, ui_->sound_output_combo_box->currentIndex (), ui_->sound_output_channel_combo_box, true); ui_->sound_output_channel_combo_box->setCurrentIndex (next_audio_output_channel_); + QGuiApplication::restoreOverrideCursor (); }); // set up LoTW users CSV file fetching @@ -2819,7 +2824,7 @@ QAudioDeviceInfo Configuration::impl::find_audio_device (QAudio::Mode mode, QCom auto const& devices = QAudioDeviceInfo::availableDevices (mode); Q_FOREACH (auto const& p, devices) { - qDebug () << "Configuration::impl::find_audio_device: input:" << (QAudio::AudioInput == mode) << "name:" << p.deviceName () << "preferred format:" << p.preferredFormat () << "endians:" << p.supportedByteOrders () << "codecs:" << p.supportedCodecs () << "channels:" << p.supportedChannelCounts () << "rates:" << p.supportedSampleRates () << "sizes:" << p.supportedSampleSizes () << "types:" << p.supportedSampleTypes (); + // qDebug () << "Configuration::impl::find_audio_device: input:" << (QAudio::AudioInput == mode) << "name:" << p.deviceName () << "preferred format:" << p.preferredFormat () << "endians:" << p.supportedByteOrders () << "codecs:" << p.supportedCodecs () << "channels:" << p.supportedChannelCounts () << "rates:" << p.supportedSampleRates () << "sizes:" << p.supportedSampleSizes () << "types:" << p.supportedSampleTypes (); if (p.deviceName () == device_name) { // convert supported channel counts into something we can store in the item model From dd296311cc65d04b948d6aa72b5f4fbb48019f18 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 22 Sep 2020 11:25:59 -0400 Subject: [PATCH 511/520] Disable TxFreqSpinBox, not RxFreqSpinBox if QSY during transmit is not allowed. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 6a45be645..2774cad8b 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -7458,7 +7458,7 @@ void MainWindow::transmitDisplay (bool transmitting) auto QSY_allowed = !transmitting or m_config.tx_QSY_allowed () or !m_config.split_mode (); if (ui->cbHoldTxFreq->isChecked ()) { - ui->RxFreqSpinBox->setEnabled (QSY_allowed); + ui->TxFreqSpinBox->setEnabled (QSY_allowed); ui->pbT2R->setEnabled (QSY_allowed); } From 598835d9c9660fbe62fbd939c533977ca47303a6 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 23 Sep 2020 15:03:33 -0400 Subject: [PATCH 512/520] First cut at adding FST4, FST4W to the User Guide. --- doc/CMakeLists.txt | 8 +- doc/user_guide/en/images/FST4W_RoundRobin.png | Bin 0 -> 4777 bytes .../en/images/FST4_Decoding_Limits.png | Bin 0 -> 15426 bytes doc/user_guide/en/images/FST4_center.png | Bin 0 -> 4020 bytes doc/user_guide/en/intro_subsections.adoc | 40 ++++++ doc/user_guide/en/introduction.adoc | 93 +++++++------ doc/user_guide/en/new_features.adoc | 130 ++++-------------- doc/user_guide/en/protocols.adoc | 58 ++++++-- doc/user_guide/en/tutorial-example5.adoc | 24 ++++ doc/user_guide/en/tutorial-example6.adoc | 16 +++ doc/user_guide/en/wsjtx-main.adoc | 11 ++ 11 files changed, 222 insertions(+), 158 deletions(-) create mode 100644 doc/user_guide/en/images/FST4W_RoundRobin.png create mode 100644 doc/user_guide/en/images/FST4_Decoding_Limits.png create mode 100644 doc/user_guide/en/images/FST4_center.png create mode 100644 doc/user_guide/en/intro_subsections.adoc create mode 100644 doc/user_guide/en/tutorial-example5.adoc create mode 100644 doc/user_guide/en/tutorial-example6.adoc diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 91b4d9875..9b48ced82 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -30,8 +30,7 @@ set (UG_SRCS install-mac.adoc install-windows.adoc introduction.adoc - measurement_tools.adoc - protocols.adoc + intro_subsections.adoc logging.adoc make-qso.adoc measurement_tools.adoc @@ -53,6 +52,8 @@ set (UG_SRCS tutorial-example2.adoc tutorial-example3.adoc tutorial-example4.adoc + tutorial-example5.adoc + tutorial-example6.adoc tutorial-main-window.adoc tutorial-wide-graph-settings.adoc utilities.adoc @@ -82,6 +83,9 @@ set (UG_IMGS images/FreqCal_Graph.png images/FreqCal_Results.png images/freemsg.png + images/FST4_center.png + images/FST4_Decoding_Limits.png + images/FST4W_RoundRobin.png images/ft4_decodes.png images/ft4_waterfall.png images/ft8_decodes.png diff --git a/doc/user_guide/en/images/FST4W_RoundRobin.png b/doc/user_guide/en/images/FST4W_RoundRobin.png new file mode 100644 index 0000000000000000000000000000000000000000..74d17b0078f2c96573c5d032b81c0ab7458b9d0a GIT binary patch literal 4777 zcmaKwc|25a`^PO=hpZVh5yq0SFJs@2eHm#eOUfFPC2K^KZDcR|zKmoE5h__qWZy=X zLY9!GLob)R|7eeUIYf9}t9#hRJwGt$H9$;ikU4GnZK;By_k za%m~R`{=1~Tkt{dhtUVfo(^$+0~@DYwa{8*WX~Qz4jib!Hl4SDwI3PT=?>CG-tATH zOh(44Zm6SWar@e8zS;vW1=i^8m#2gYlIxP*wcfQOLealEl)M{b$;qL66k7PDd3#Oo z`8GT*5(xN+1A!a1+)6cetE6y zM~8QyQ*4fUe7SXawN!q8K1eE!wXfJ$>Q-_~3{S2oo3)D*zqWVyuax(Ga=%J}m= z>hAXUGdwqVO#SfP6viQmz;Ph8#8!-bY|TaDoZmUMU;)8Mh#JCb!JU0ifzrdJ_5>hU z85;@w5rPGw(bpCd5lze7d_P8;o27DKX~h=r0y(nx3)hEBwK*C@l@DL<)?vAzjT`l_U-%>e9IH}7gLP`(xepVTm>Q79;wDBSrL3*; z6t)V0>vc*`{Gr1T)Zaffy+%NW4+rZhYGnO)DRwN&1RYKZZN4RrcA_W&{C5EoYZm5dcRRJ zwhecVMQpT$DF zikev>Ue5mCAmSb9MWB#s;6RREjjbS2N))EgzPEaqdj7Z9W0~Artvj?XN8h8ay~E(| z?R_g_QvWl*Qu9UvCy|$nSx*3dE?f#1#L})>IbUNi2kHlT?j3B{-8=jO_E-fV8~h%Y z5++to+dwlRKD?^2 zJnZ#D#U9%!hGqKdzLpljmja2RDV*F1Mac+cne=UsprEr|VlUov+0h`I?zaouFJC2g zYF>_kgid~&a*^6+sMa#rSvs=2WV>Aqlnfazl5Jk{9KJGmS<${b(|$HoSn8L=mLspI zkZJx?PwKM}w4GD=ntOjN@%n_aKGwycTAK8`6}HXvgM1_gE05ema9H1OyowNDtF&;% z==ch-^C!Rj{SvA0!BY9s;xuMNEm4ImD+n4aE#iOQ2rDntUhvT%&5+#)U3JAD%+Pe<<#eIURXO$zQsd75Q1!IvHqe1uAM0E>BZ0oeK%hC!t9sN0>4sz zuqyRTn$W4y^sdbVUW_ELmXAl(4Zgm4ogYs{;;LWm;HoW=a?0D2 z@R6ez|GiH0=R*+hcFYNC+Q9UcE!U9QC%90F`>l+HkG5A2R&K5rQjx+#?cm5ZX(n8- zfUn^@;CtaNXGv@emkhq1rQxa5hh)}fL0fvz6F!WiOzTDrE!vl^T9)t7 zCR7;Na90Q~U^-uV=P;t|Xvx56{-TZiJ2pucc-@WcgK&AAt#}=Ku%Hy5%i*#wcSX+_ zlwNZ|~5OI?aD2 zaiS!yh4|idTgg8!u3?kl*9EJSEZ8?JbSrl04M=dP26q(pKU1lF2a!}tk@7hATK=)@ z62HMQv0$%KW+ItYg*RrrH-z#p8RR}ez0(1kcGLGCdVGztkA)s$I7^a^al#Lf6Hy`I zDJE(=_#^8gmfqe#Htv zlb?kYK{g$XwQLU-ZvrqIY&YVUBbNSZh{cQZD400Uc5|6~oPBi+rK03DPqI^S6U8-x z)6BQxVV|$-@N|Dyeb2i+(9^|WrqlJANi`bqD26{&*R`*Eaz%kJmK$#Vb|4c_p$V^I z3Q8asr|xq=CwM+9&#o{Y&)FU{Y^9h=hm1+f^8@&aQpoqlB<;v|6rnYGk4$3Uxr$`D z3Ddq$*Gr?GT*FIihrj*H>%oRqK+_8tDk{S~PHDv(j}>f3+yG|W_BqnfhHQHo&k-C$ zlQLqdyL@B0qXrk-EMfQGVg<@!FUq5n*y+}3o2p+q3H=w7`LYdWHC&lz7}RLt(+Y2+R^8O_Spmn&ptL& zqjH<`A8tEp?@XCr(ai@ZljG!DB8Cche!H}NjGx2o!M+pV*R|wGCi@eR)WfaSni0(& z|3Zf?%Hy%s`sQ%7kaPD%!??FfoX-+_MY!v%ANrq5^mhjCTtsj0Z7{s6l4d(W-aSg4 z-zxNK!1ztt+OITs1Jdl5jqzUwMb3kp7FOl=@P}WjwR8kw`BbafS0ugz=~CFEHB<^p z<1_F`G{qiitVa4DtxUhNs(trCxZzXBT<3onelQy|?}#>{K7mf3t*Oy{SEdaF@zs5e zwl|?<75XRiUx0Xe4V~Y5x?4w%8dDSV{}sf|)G~NXMiThn>-&C60W=wnqW*TtcY&8@ z5}nOV!dj}tJGCp4(%2UR70Uh+^C9e%;)scBjqz{)Z=P|N&k59ATN(YG+4wQVerd2jE;S(lxOGx#s!{t2bHdZhH zXo)^EZ>`_Yf$5EYZmieYe}XJ&f~A{CjzbhY5tg$fKSe_Fk-~&}ruLEhK6A=y9<$iS z@!3he03pE{4O@QueP zraM&QCE0g)oS2ioUSzn zjXTYgwRk1uR^r9^l}CHCbH&J&;zu95`LIs}XRaocq6Cf`=B0NlmuO514y+7W(1UvN zbUsiQhWDJ?4kWc#;mC$|1mm{@?o_0(wH!4xj6`Y9q&3Y_xY0AAikCm0L1x3o%jub- z1J3cSq|1xb`HTu-67rhfMZ+Sqr2F*YRaCNe^s8J;d_dXrv6`Hs6-FEMfu=-I6BWhY zxQiQ%{Zd#=9&3kTGMjQMN^4JQ+>bp@LYE>FdGqbl)U79nLMKP4ssYigrS*Zk?d`Vf z1h?WO$w@b)(HQvmu}f;_NZ!kHqAHvX@pMR_6!>*(z&Z@hP4Kslos|^X<@J1 zpuK)>xC=5xB8rN+U!@80j5lB?`?!#I97ZvjsCrozH|gYHFINVcLsZ20-)~xB>pwM2 znMg2TQG&*GEdEP22`Jh`z?5o<8#+{Tr?X|ND*;wE^{e(?1^oBUI&YIoumuwpiCLFK z!jR#=ErTCPy+Hv|sLYEQh?k}C#DCK-W%DLE&}HEF|9l4A#5WgGDym3qS=slR3O4K} z7%fH$?W78^6`CnQ{`2-I-OE=2DSqLCQFWP$)4ks_ffyNfEoiV96LiogqeERaTiSyc&Z#xW zqtB~p%bLBq0eV|-mH`O-E`@b?{p2nTu5TI?tPURh99DIy#~4nfjmMqJe>*iM@`cPA z5xq3-h-utQ>n;oxO_bwP6D*qQAF@uf{S5rfOB^Q1dOm8%J&V4Dca0SE!{6aDCw^53 zhUvVrWmNM1_AhP$3sDyN{gI|2=bei%JK+0rSWCoA+}4= zx-znpRHc1}jU-8DYK%U;oaQn#5{SV*&+Z@T=?yV9i90koW)*EXkl{?m7V$TJm&Kcwjk1s`*&)ph9%x>xLURDFrK5OzvIXkt@A(_#Lme$|4zHv2^DrDK+>&yS@Dt zTuiVCa5sw}mYc}`{!&~|mllnC@rY&Lt&#};j6W;Qmw{8D;c#uQXL0F-QHpIuMsd99 zDeKY74TqhF!=sBZ)n42cT3o1HnG^e-y|Ms2pw0Nh2Xr@e8TNNvzP@`y^C{=`$Ip{Y ze5~9-*Kx=Xe4~z~KCxaJn%L?oMZ;S?-_pG5SQvD-6{z9KDS^Xl&ietD@c&EHGg~~r z+KPdt0-((1%um~(sLSC?Cbw4G&)XDjP9#&H6}@{SNhV~-_Ec+$^WRd14v|aE=k$pq zIt%-oO4V=#>lEq||36teVo*bXo9#o=|4+6802R|xc7ZTJ1H$k006D`UmvJJ+aePHfNx$}OhnC1?_?D< zc2&cj>QBk&#>9j8AeLZ4t!jbrqb3Q= z@bbB^66M^_iQHu@UwY_jiZGR9OX<{&61inoOQ!H~lMJxpp)F*Wi>p77-MD5to}I3u z>y~RQ&7K~%IX1tpUkUBEO+2-c?zfZD^CrL4c6#g!z4XOV%crqhOy@}_P|wiLGZVC2 zWL7%)JdSr-wQD5&=iIQ9>{0vwwvsnfSZm$s?kDvq$i48m+tNRc=J>b&d!SU3gIm3d z2AfswkpJ4J$tBdSmA=RSry-NQ9rrsu@XgJ>;4NPI+LH#C&Lv)Q$1XE-^Qq;T?%O=+ zORX(<_k6Q=mEga~8pY0V-!K*#- zb$z$RxU7~-+qLJpUS!D2Y0Po^UtENb&m;310(U>pobdiLO79^FXt)>%S`NN~U5?j| z;v_rTH=fVhZ>Kw7t3ytC!6!5oZfA}{?Z=&&PtAPei#|`{o#*=FZ~cQl*Q%uaFAg@aRI$!!v zYclz-?kBe=oGPyl*`7LPy;&S4#5IEVUCg6b4y4x~hng4%6;h<+_~1)yPoBnL`Q#m* zD74lRhRai=sLLz<4KtOQ^;dV==2}EcjL`KYem*vuf*$p(=gS_A)Zy?y z+;XRcSxTdIuCI}aCn z#N9U&UUp+~ zRv{lOThv&Ovnb0mBv=F=11<0eV~2|@|4AD8y(E;sR?&qAsWm8fpkBOHBGq{5mpPwJ zq1Ri>bvu*IT}h^g$*i_ZqDsN-NqV1aKJ!fPzu$x|R(Nb*dW1UNPv&jfu7;NJNVVMh zH#KY?Hh91{C8sr*1gB<){dNI=z$_j8_%klVxyZC2@Sb};e}c&D%y*f)(O&Ougr^Rg zsKg6I`$SYy@Jf!ud_;xQzQih9Z+J;GB0~DV8T-Hhla{`H>{-B2f5iJb5V7KR6u|X% zS^XLnmerDXt!LZ(Je2;n+X?P}^VuZ`8K3n0dGn&7cb|OL@zU7o@Kj0CaWUSTf7kLn z6jQF}dWy$<%yfkPNsKVkoJ8>n_?*@8F@JgJ`i8-RPa-Xfg?Vt4g(fn|IGb>7Qrwl{ zO9+DJVGF&dk;<8Kr2x^Q`Jb`Rxphv=qc!#cyEQSH|5k+^G1>95-1i)~epi}kohQfl zYxqoItLL;c4SIb(esfwRm}uV`e4XGCy67ASpWRNpOm_-icI)#zXD*}bKV-6Q&L(?Z zE#WGCf4`x=m_3^q6r^A*%9br+rVZTL< zB0RPsI#_RAIRvkQSRF7gO6ajyZa#yq(WCX&{-uiYX=AFX*6kYBZT#r^PPTH=Hkywc z^7PTOp5>ss<5K;n7vxLO6PNc+D0P*vKmguh3ifjUAMzL?YB)w&ZbJNQK&gly%7&9>)7CDFlc zwq7O==cg~F!M1nk(TffLNyRMIU(Gz@9p*@^1?z-Y4oIxUYe%yByiNx>Uy;|8d~7=Z z2ETbuNpiJ6Z0dst4~04&lhHe#@ZJVn*IailT}j=qKrsyOVloQeo7CuVC~CDzOf<_m zL*}xEJ-A_-I6gY#X-ODxA%x+L*}ToKv`9@v5#z|Ijzs5@dC`YL12`pmd(a0nkN&YI ziq@QJH2LHFZ*ga}H5E2@hoG3imT?CBmJ&FgTaB;xXU;t+ahzhahqa-Q9k1#i;h zy&Re|X?GsfcV0zQy6>FMza9?EuUt#+>)h@tf**_C8bv7tB=Xn^DFjs9XOmbp^`j5i zqLNlb!ncPO>BJkdYV87Gp5lT6ngF^eSAcJJD&&N=Tz!GpK}Sl{5!es54=Uc7N6#+rdfaMb!H9VJ&#-=ak9ev`6KCYUt}|R3lpZTXM{e zZ7Jt}i!TrP^hrCrUa5Nd;s38BTV#3uw?dC)Fz7vQAVfc${m(IW9`c&|IfS=^9kAv4 zzbXH&96N6R#raM>A@ocwunEtu?Kh0`7M6Q*3Iy+hXf9^kaOwn%j z^k0Yi@xVKyt9UcCIEHy6@q;Y^-$+2ypUxr!SU2W|6QByls6gQa#+!8P~?){En3(%I;O3`7-9tm5bt}oN@>qzNZ z`>W+Y5CY|eN(8gsVL*G!@ynyW`GVMJ#4o-({_t__c1rNJ5nFWwJ?5<)BX9uD-_KFv zo;CrApyCl7=a?O<2<5)&p)_%{vvxr&fQ}xfWE+OGu@V7kjt#=B(0N_FPFV?ujHF-X+iLnk_3{v%n`cQdGM74j@JW1o;n3GNvJdPWN z$~0}jx%u`eB8U3M0JIi$M5?ggb4D<$=D}WK{oKAxfw7;#Xsnzxzl!KM4SDq&h7v4p zhzwd00&lkZ#H%%7p?I1c&IyHWx#c{8esLvd$b z&bXcL8!cH7?A}$LnrsLf7`0F1xndoMK$}(Mz2OsxzbX?uc{LE{-Yqpd7AnYgev=$v z*E6v?`^FwgQ@Wrm*?RZn*Q6!S#_h!d?U++v;H>|LpuL$!riFJDToP%ge;s|>2ke4s zR4BpG>FqL7#hZEWF-mapW|ly~Ct2HOA&s$AB@1*=Gf$-bJF&dAUR6zDw}`K0yE#x8 zIGt@Ld_W$o{vJP4%oBJh8X^<6IUEN}%NPZ$Oug{8-x(G`4ikqNI%q!1;=wEcQ7CQD z-zH*a6*=S3HjaDk_O}=|HkLTNxsSM*r?8~Qo7qaqG5@niP*fSdWGEcB8TSsXMXe$H zdNb9r0SCpKB#ZDBs?kg{d@UEju6a3t190`uFIw>fe2~nX8gVWLDu91uPEJOd*JyO5 z0zTLJK!%`fI>a2X@$RJu-BIfKBL!h4&5+h3Ca39b4$uW-^SkOAhKbdDCJU!sw|^%2 zHNw{W9D=Ja@Z)UPz3GK;-7T)VU1JKUP37m}Rz@a7-mZ~kGzr_kd!P3=)wk(8LD#|i z1^$K)IQhmIGYKq>@Bk7!OKMY;4W6u5>_RDxk-!xafLm92Cd#Ah zNyt;ll24Rv+fdV5snI8U(GCn^`1IC_XLJ04bLTs~b*Z@AvX@Iqh*M!?nzv})m&3#3 z;d7;C{Bj%ojd#$>0|acWcA{38Y`rlD5ElG`VDM#ud?T^EEdeR2{cSp%#KCv9-M#bD zW;0nR4*1^lNu65LHWmsP$6m-3_d6vyQ`puZhCIq<<0-_*cFjW1KPnbggrmBF{O^>M zE4d>i!yZR$$W(Kt_$px1+x1vs>~`09Yg`s{U0LoJ5y^QWHpHFgPwoL-@V53(o+yVi z<`NK+@Q^oT?5rI>Tu&Gyyb9W^2!J_T>cTfrLcK%q3WrN&C0kmbbS^%O|>i7?! zHC7bO7iRdCG|aFT`vx)Uj(^L}XKd(-fbIM)!ha1IK^&4N!@~^Zb!OW0w>QDy-B1_s zLiZq@_g|8FAt+SckkPkh8GcV=z2r2?-4D0er)k#C15*!4|3@^ol_F8bI6z26&E~R7 zibZzsdRo9E*|-~+&U5lEWIpc-MmEj^8py^c;AR3vPkG8qwAAh=N1EAOm-ZN)eS6~| zushn3hGIRw4O|GT+cmk>Q|%Y}hpMaQ9c!sJMU@0CAppE*^t;>5$VUV zZ*{o#W5 zK5s8wpZ^wlAY`@&858OpBjO=(R4_8REhU*->#>@Xar}LpXf|4ww9Qg@qc=!pm3r=* z8o@g8Jl&p#=fJ<0v9fVIuLt#i2|IkBYkDd(dagx3Xgn?*GvNauVH`6nXP+NauxJ?5 zes5;U_N0)>7%l1aZ$=VivsOKNFk=xT=LKKkb0jv?KeiyV!n#BP$o5IQ!XlNbpn`(d zK*`t=m5ClJ@Zrl(b%PgRbeKux7|=K&`JpZ_V+*B@YPD2))Jt2`3?I~Z$Ln=}P7%Y; z+S@|ITx&O+I1#T3siv!SK}@p-~^_)m0#YAOq>WpZq@&3KA$##nAEE30u=OKt+>|Lv!$$r|)^7suRc zj)~lHHG^e}J5|!v)FjO}YKprQ|0r423z4Uv;Ja*#Mgrs={1~ud&NFK041yoxbT-fQ-MNq(W~SQ2%Oyi)FD6;5_5bYVQM-i6i0l9<5XR&+^{vh1-ySqx!-4Mh zhbcnY@8k7<^vcKQplHofys)-qrnzILId^7p?ciCs&{3n%(Ydhp?6B0Qbml?0u=e1@ z_Ngfuuie73&{6iZr&BYE8CLyXM1WVcq%{Z&`D2Bqwvavv#nx=z`^jjpZRrS z(Zsya5!lGodTY+*#5>p0L4&Vw=5#v#D-OX5tH=e=)w4P4-#!9iU_H=Ok@nyx~#cB4b@$D8bVAC4istPdz;IsPj27O7x`-!^jj+J|J zv9Ac1^fCY3Mbb&2eQzEDKkJ_L+}8>|;k!Jleu>=yD6|zsDb=s`nasNwI@Pv`RGC4P_jM}Hg9LU zA?R`e+h(+89OpXlJ18$Ku0EM(T)?Fdj!MDbOa-D=_rio#ECUI`(Nb>zn&b7P#!0R} zWr7p_iuOcs_cPYL)tZua+yrbOIvYAF{>43);~os9;wOU13gw#||01PFm^=QJI?F+< zuon2lkApI+M{UQepTbPXNhP)5Z;kG?70%?SlT!5r!}Uhb+>2OhTC~vyoHBy7D$x+S zXIbbg9MrbQr_sX^O)3nEU{|wcfUmAXf@)Rwt8QR69v0y2bb*Gy4BmHLPxQ^(;?DpdbFDuO zQQ)HJ8;}I!s+%f$9JGiV^rm7`ZV+=ej{j~#^fE+f7T%UsB3!E&XM>@I?t;1RvCg3H zafgg5wS+pVBB;|KG!yMJ^#R3gBaqN>Bj=H>Tnc#IU{SD+;e`}dR;P?N!mGTMp*=M! z`eEStbyhx!dxZ%58RACiEty+7oYU^~;T@Lzfmx?DE z-(6&9vEjdRJuidlcbXQibXn=ue#x4yJxm4&rMHR(sTKipg9(CD!C)Dr9R5U#=T;>t zg3(*lubs}`!k_(A3al5}7TKTJCIi{N7B4h$4%1V~W)L^mZDTURY4X?e*^g#Zu~>h; zjkipJy)RzL7man>3(ck+9l;;!2atiib8w^pB}cl6J);5AcJRh$Did ztdckvp-MRT`_vAnzjf8KQd>D3BI%LglV4x4M`&*Wzmzl59dDz5R%+ZD*YlW&gc?oF zAcrhYr_K2CbNf7k(DVN48oi%*d&_{7NUsk=3c{c+ z%Z-7I&^7h>q$;f=j;gOK-Kqz#`#Ah)R%8f6AKW%7)!^NX?Gj*_%U81L4uU!KaR?Kssej7J-($clafY5}slM^yZvHQ_UcPdoT+fvkrXm*lWG+K$7=yu_%v5!`rRIeZH?X z%XUr*sllGoh%m6hh(e;;17zJ9Pp$Jy2Z_${Z#@s4PHkg`o#Dc3lWuGvUAf}rdg#|x zQ4ha;e-1wc#xblYp4J?DRimW#mAlKlfFM^X0SUM;sb5BjbbSDHpF>sKJ63yHUD}y} z{%@jE((y+3c~VU+!hHOR6%z;J!Un)zqTc8P)U=#UGs#&_|k5sAmLx=54R*=1Z)be!Aetyb&nw0Q7!n8!MuL>g5 zlI8C8sl9ufl~NAk0Ukmg2-Mr0(b8nz)L2mJcydiJ66~^!sVIO!S7$TUJb)HfJz7)i z%dQ%ky}wyOh54jFuDyc9pFnw%n~*5ykNRbtexQhRX>jBZ z`*B#%Cb2lIl~!+Uys{3tzNu35m>Rlery=5-k#A=(Rw=Yflc-d#t5$#ZqR8*M+Hd#O z0gqbi`YhdYWTsIa7(zC>+$DE1eZ7Vy9NGwcTcRHqG5u?}{oL%2S!zD(>BN!QRj~vF zK}Hp)to)C2Cg5tSQgAvRzo|G7O2+V+R?4J%`wa9v}V|PU)=Shaw0=iD(8>8!SKjA zt-(k$iEE0lw1-BBiZ>@ogIO9zxqZLf)c33S7E!9>YD{2FIH8QW+|(~ zBT-LEipd5{^*9zky7;K>qI^7)p_GAb1cG?l-!0Z5YyW+ZTcYY&Y}%j&gYDRhqAv7Y zxeZpd_5!?or*d>gy)*;*K+AX_*khzRr#B<5@EA8lLNK;(5YdWjr=^3o5k_1E#8`ui zW*9sAafy_35PslZD*T1}vKUSKcaexQVE>jY6;$ovO>6>^R^FBeHr2N#kDj+8XM1R) zHAl|KZuj(I`M{E>-vtW$DAWBGbK9i(eiEk0X8oO!lw}TU5f!~i(O%N%GBYE3fPB+F z+HRgsZb>Y)0i(U55^qOpobI8&=n*jrqbA&?R7MV-KO*u2<*2>hy1WQ9$*mmB-bfRQ z*_P5u=69BLZMwO>upi0?#-jdXtCom6#UURs9nhXadIF?`e};T=%cFE#yPJzqbki?8 z-B3-~*4n*3&?%zZ&jXuM;DJ5}t%q?5VlChN*+_g`L*Wcz@)=_pBIYB0pN9vW12_c< zwjlVx9yvhUPT4FL4emC)xb#^Pj-4=5(kH1{oe?QkoQZnjO>2$tLM#!EeTR>M)ERiQ zD}LX6UD<#vW<2>%y||)HH-}?8@@+q9@I3lWT)jLb*Px4Wm$9+De((^{=F1AnCr@{m z@3IfaU+N|E0c4#$*qJ<8%~w=K=okLB?8V%^I_WJ+*(=k4&_w#-%TBC2O6jMD-MXi=6P*0E{3>AeV^x&{pC0kOyqNlzOBS15lh!BNP zw9W9Tu6ONKjTuPLadDR6)mxQIUCs<)naW~m4*_{%2>qESSw2%omgRq*MIceS+euq= z`C3if+uA~LPZ7ry_xonh360rUJvE4+9Sdjldt-7;=7-Xn3&mT242`Is?Ln z@Ut!`>#+l&5d|uxdZjXwB+~gqq9}U5WY0J(-v>Cm04HI-zOb=5h%`CoMP{H^seP8nJRVlA@&2$B%t4a{$QdoT3mkJ_hnQ zDcDH#)G_6`J1Qx5K&hMH#kan_8`q5hovWp8#dP`0EVAVy|2*9gv`8r{4yIO zn)g2Yri(|aibc%3N}4Ch_~$Rv=%LE}&voWBv}OJeIXm1i%u>Fqv2w+vanm+nZuyO9 zkLQI+Mx~=dG@Mk`$6#OcIKraC9y3DynJuRLeM%(@FMRKPx(ynfy=B2C0E~sa8}=d5bWoM4^A=R& zC{@ryeP~dEO1rql=Rv`o(3N=Kbpz27-tZA}!d!;U#}k(!^;nRRl3EkIuU@{7CFi~l z`G_5?jkJ7#WA1>g@kL)|R!Nqp^;5R>a|1Njx^z&IPNN&C~-$U!Hcz za{!)nRQ9$4>A9FEXtW96U@U*r#<)SX;qi7FUw#Y@ByKV2q8U>=Td5~v10+8}%!~x^ z0&jO0^F9t+H}7#U!%avGZ8L)q)%FrqFI(52S|1Af_W%*>;>+TwwrgCDx?Pj4C9d2? zkv|L@w3zyy_WNlg4q1NgCHcjRdz~uYMJ7C^qXzZA=ICk)Cc0iK<{ca4dhulhDB2l) z1KP?gidbMmrH&7L#jwG{R~~uF`MY;7zRS2-Qqvazu_KW^y=>-mtfncf)Xgj%f5Qu1hzLh?D&N z_H1k`pF?`0J z77}NpP(vK@)n^ZFDRgbQ3Ty*GE;qL{p1-A8E1@M%s!$eX_6(2T97Q&$a_{x5{03D_ z$`NCF?hbGy0b(bylj!7IVThlFmj{2#xkPb2HJ!gtdx*BPqqg|UKIahwE-Zg*A|E8l z9yw+Rt6;T;JhQ$k05;3jL2f{>`BoPh3e}6z%|ITu#@w@zfTLXxUih!!e1Gsu`dJuP z+G#Ij+3cR+rgmPIgE{r5K0PWoXBp6HR;!`ov2@Yp zUJ@P_7IF5Dp)gWbLV!6zVHLgpj|Dqdej@~I7Zy&$ri>_&8X*1(oJ#QYH}KL{9p6z$ zlB;Oa!>HAF$9ZLuPh+K)@={i#-0&WW#wZB~IF_7?D;vKNiGpQMXdI2E>c@i#_U%)f z=;wR%fI~s_TeRv;rU(yTNEn3Zor&|~FG`whXDMR-Ftc~7gDvXF&lY6POrL$a6Z9b| zIullo-1f{@i=ooKY}o^u<`)zLlSlrfca#-hoFnugdOdc_1y}UzCc7X`pGKj&QX}Jo z{hW${X33XD7!n_TC<@BH+Qy;y(XWTYD}8D zE~7F}?27FCbi7e@02dE(I#JvKj3L#aw2i`&ClvbKhOZo#=@Mbdy(BtO)hw zDJ-qEH=xSY!V1<_RYr!k%Kqz(JInzVzS}MUI_Cq8PuI2%zfjT- zGsbmt2vY(aOcbYUDatJx1I_BqFkixAhUe0Mg9E$|X}3U70)ZBlFo<&!cpT zQND+!%`#T%jfqJ?#Q9l9zspN16mEU}R^QJs`U^9#VF%Iyvxojle&Q4-;)|#3E zh=n-62A2)eiqSYmlPSKpx+v3BLs%*SD>Mafmw!<%Qc>8Lk*u6IdBN}%caB||YVNPe|-NhjotwLRjVt>KWt#};CBuTaO! z6(}?;=vM<17H=gHK30TqqNwQl)MG#D#aDbtccIsBrx7|*93pRK3-b#l9V6FXa|q)P z>Iy2c4j~J1ac3^p9KmqomyJZ-)X;1r6Z?c=O@O)X2B_H^LzPy>gCw6l_3Q*09bh}e>`S-iGN1}k!(~ZCS{A6yUSwccG-;S5au9fI~VwGZCFT3cAzlIJM)Sgz-aiTfvgilHcL?3aSI*0R2D=T&Mu z_A@myW?trf4oaBgaN|N$!C&F(LZQRx<5a;FU;Z8yM+$^pQ(iejWO)|&UCcqm;jkaW z>IAA+Ujf24I`)MZuK{2ewz0)IKQ)CF*nr{P{a&e$?G|Ek@B``_($2$?0y{d%ux9@C zD|Fh2tzbhPuv#AmkJWO$bl`5YWmqhAsgEnd?c^7y6KOFtMx$XksBb&A!&7iu^{c?0p!ocUg{Xe!V!28(Kz0wrA4RDSz}rH2t%N+2$^WN*@&ohrM{s*v3% zrp;^+81lnFanF;s1Ub`Wap^ne)h(ulSKX0gCq>YNoQ`|5)|lkeH0-|LvBd*6B8;ui z;bJqWqF=c2aH70vt<~{)6uKyu;rmbeOt|G&wd{b+HY`oT2)7Z~IhH}km#a^dL?+bC zRY99;vO}M?r(+T9zjI+zqUFnBqaX+5WybM}BMZ!*4dPZqbJMwL>9F*bJYnO0so^P- z5N14+-jZLlKa!^6V(Ic;=@wS#12j6YgOmRDxbPYf+J7gNT(w3KGy8zEzbl3wVz7>> z)<)|Kx7MSC3Z_+e;2%qwXu+~gWgr~QVl_d?%$X|hPo?#!_Dev>v9#TrXYFA&>KbDc zWiUu2ne-HRMYxP3Z$Yh7>a)}_c!l5)SYC{I&9}yvsA#q+M~yjjssBoL9M#)Lcy z1mJ*@QTq|`7>u<6vQPwl>=QzzST3|O<>sxcU3@^s#*z?OVsDNq9 zctPq=MOT7WI`caVLz2cD8dtXl9xO3JM;WNdLaTa85_W7X_@zY{PS0@b2D|Y3lxn3E z``FYyV|*T^VRdG4)|L&|$E#oF$QFq={=bz?6{eQ?oF;APUAcmZ)iyS#pGFY;2H>vv zrum?Ks}+Qo=0+Wy3Zxta0?i<#-{BD@HR=SXY}9>GEtz}i&WR`-NSY%{GLiK>}8N*29=k^ogwCO>tu(f0zN##jt>rE0y+s^4nWZ)pO*qp;f6` zdm*{nDfX7@5Qc6XC$z7VZqb)@UHHvU4}V&AH0efb-kuBdf6F&~KodDnwD73xs$FI* zmeh1+9FAkoZ11mVH;C+gr_g|+Hs|km-P8q&YZ%$%{*UO?rd8f-)N7oD}iWHXN{?z z$2JY)Yz3DwBAy?|dQ4xa9Z0UdZ12M$bTnWBEZa!b0cI;ap`(M%G@hps(-yr%luvsg@3-p0s*#Alwib9$!6&|j|l}xoCFjKl5e`;dQ zy6H8(MbsZGrrzPNX?It8C007Yl=;LrG71ebl1fldi-~(r{9w)2_0I^XlO$c8^+KS|J z?EjlTv=;^yeoHfz!fg0^ogp{IcjaV2j4#mTmf@U?7Ce}sLtp%f#>2QbhCW}fh;6Xs zaxfbodAahdL*y2;Au|c2{|m*Xjr4gb{7+z2vZX&N&x$g5^Nu|#Od_+qOUjxbjnd#6 zMi1!#&1ag|cmQonl`^q&7LJ;f4Y}dbHJ51HgKs5$rsNqnt_$A=9XgmE^UFa-n2ye0 ztSIo~HHV>ZDsx;w7*}x%1;L0!NUj^U+U=BerHmTBK9nzo;B3qfg@Zrp-Ix=SD8v<; zWpmn;VLLcySF5T6gV%Z)BMwbeoyBYDv>$!L)0aHMb#Lb(sR3I4ctO58L}{U|W=MF5 zdy%eC8Qx-0t9lS{3YpDD%wzIc3U0Jj#iGJb3*ZNwXtg+t>T-}nlfoKFnv(iku#x$+ zH2a57B4l1!GGuf?^^-Fd)d@tqwtFy1%$t2>L%9{NdsBwK-wQ4V>xF}r3OnwQ0Ez39 z`2l5}uQN()Q4(!X>K(C03YW1KV^cp?Abo7vuf!qBt=sdSs!wA&nO`cih}g~>Op*nD zJL%}!_V!_S7L^!zo8x06QG@g}f1|CTwhA^vk`l#Ts{i&7YkcTdDTl83Z8F~P?ykWq z@+r~t=yH&QUUjQHXq~-mZFW?Eka;BQd-s3@R294LnL(m=j_lI*qJ!lGvY$&4c&@7= zyz>|)o^sfgn5=wfFcbSmkM1YCAcj>bc2j8pWbNnhxwfI=cCJYoe0$F7=Dl<6^Me4)x8S2BOGz$Gh~+i|u-}V|gsLVrBR(5aeC_6DB#a96LMbBKBGzto_Yq;#tVW|N*hI?OUAO7- z(y5|w93eG<^3p$;-67k{E@?R9h#JN6F~Zfbo9m=Beagh>na^l#wnDQUuh8;l)vYA>L;%5laqK(9A@ zI5_r}Mlq@rsYH17_Fs>2;1vnijA0qq3v~^bh}G{x{$vu(9zhE)Ob&%T83``j9LciO zu4O~p75Fvk2#7e4&4Rfl*n7h4)Mq|BFt~=!fqQzJo2Z@LQe9ma1NEDT7=?4HpS@%L ze6X4urnO{|sQ+F@D!SpWe}cwCKlC8GK3wRs7fQAG&;af{;*Uy}9IGbgG&pB?J&~&{ zC)<&yZ~^u3k__`HdiHFbl3>PfAEVMTQ+G0*ll-prW$0X%2Asv{39{NW=MKI?BPtsq zie^|LoosEw3G9&R+M28FPY^X*;9|wgKvpdHmzks>ER$GNqAm6-Hk^W2c#YJ_?&Ys6 zi|vbp86ce4HqSEBz-6sdJIj|wDY1xEgKg#w0SXaORI1hsm=rpimR~QR&z!z+DlhZw zDFx6NY~?xaHqc=yA;gHHcV%T;t~IQY7xnQubUn-nK@}qWj z-;%Uq8^Ll~jV1eYz5vVb6>eCb2vCnL{>U$S7p~lnH?V#0y3A1BPZkY;H6wJ#2Iij5uLt1QBQ+N_Ge{vJtYvall79v0tq>x&CPrhqS$x$B2~A zR&pQgksM|A36~kU40X#eV6JV#88`e!`f;Z8T+fS8S?GQRk&32}V;XQ|%~P+P8-IIY z-`bU~(mix=NI^IfsplK)8fa54J?Mf>*QDRL@HNNQVYuK_{zysE_U9tq4BYUCon2LP zEu9U8Ml+tm#SxFQ+bpZcL=f>yGX~|o7I9$y;~kpDd6}u`i$WAqH#+#iguOm#^q3ik zWy8k3Hl0!w4;zrcA=^GIyIW#gz#}fY8EcLyYx^Qo@l0eP&61M(t8)|Cfd4RLFk=Xh z*TV9MSX>6SXP9Y;oTb7P$Ceim<1jGzMQpa~Ba9J>EcJ3ok+N4K@Y9Kkd-7f}bZO@; zM$tz1M0O+8aN%P3i8$PBs`^o6>PV4gLqMONga}ne6Trthw$*c*%xE}cm4B9xn!IpG z8%;aO07Kcx_iQY%7Mhnq{E+cBT7II1lnQ)8LBs_IR}bBTlxj< zVh~eU8m=Iy#SpLP4on+(*;~e%Wb3sMaWbff1=svf%8a5ohAxZ~fpHYr!Sr0B*BW z?cmWOJPZ8{fe4kNTp~}`*~{~&s#t86eVc;$^H`}C`s|%Ozb72dj?Nbm7{KS!@p=_A zOWJ!9*7d4_S;>-Er;JNd%H7#FTjHa{ZqpYL*$lCAXYRITg zzV8o~W{OXlrzJjaI-O_1wYS%1bSah&zcCi`#sLg;IJXW+cYooGEa|N zRo=RB7OTlDKx+o(q+xreFLzogRjhxSHw4d=_0v!ZfgJBF<-2M1fyFai_9< TuJ^Zu0RU-n1+fZI1ONX8U8Y|g literal 0 HcmV?d00001 diff --git a/doc/user_guide/en/images/FST4_center.png b/doc/user_guide/en/images/FST4_center.png new file mode 100644 index 0000000000000000000000000000000000000000..b66aa18545cb266c678b1d19fd67d2eca7c1aa15 GIT binary patch literal 4020 zcmai1c{o&k`yWCHm9ajy$2OL+L}UqBLOK*NV@Jj?=U*2pf=tk#beqIk&`AXm;v|zZQdr=n#tH!hZa$*wFm+Y>@kbB$@y&@D@PLR-tzs?9Qit5T>@YAqx=dJ z+aJMnLJ>q>5d$g9AzS65!}EvkZc4+@_M=Ku_wy7FVGw5BFULmhwMsMNv{_y5P&#;B zkcwTIK(b;n+$9-Wrc>to1lCo)#+oDc_??gq=PIut9P*}HLbqR}VmWJ(Tf4t^c7A?) z8nQ*8GN6N`9%Dwm(=_vluWmY@!Apbj`e#EnSKdFz|EQafd2zx|w=Nq6}O=?$? z%@IliI|#+JD;Xw;*uf5zbFw1H>tcfF;6EhsxDQ>t1{_>A%0o0~W6%%Bbs`G#Cy$TEna5P>$g_QoG z74dd0`!Qrv>D6Sc`QX@gj zoVxkTh~)&SMl+1Ngw>?5-^#a1m^)+7f$jl9hq{O^6R%Qkb{tw}m8e8`ym){4P(Fjo z;ETGIEyZ=7OI|c!SG_F;6~%=3056@}g(=wnq_c5*-$FcjTYm~*Db+`5u+jfz&L-dtQmEvnEGpVG` zMv366dCsm7ulDiNyOe0P+Ue@ff?OjTrt+u6$EOO;#MHGW^l*e08ps#}EoPrhjthnA zy{r!j>xf!26^-0szh9z zfam6i`~rE7Ud^@gpX#{(-2%}(zU*y}OjAu9s>boZ3}FYm{hX?StZ=QzG=1~}XDTJ> z_0UG#ewwuDe!|TMJ~i9{Ml@JhE5R@8xF3zSou1{l_zZyhcET$muN$Nyp$X?`fLzSN z1B>Her}DD!X;Ybc>rL@ao9(F1z;mjX#_1p|o5wfIgircOe)%N2`ANTtn*VgN&l&9K6$LeTY zT?%4oVHeMA|x_S3i;CA7jvjKr)`CuQPROdC;5nzO21j9XepVmn^eRw-D~ z*LuBHFy=JKrO`(I;((ClXSjcR+*DMQ9I`D6_e8{@1Ri@lq=JAT%5&MPHg(t(su~^* zdfRRuWo;HV{e?*(LatL}jG#1bhv3gb_lzEFclj!Uvfh%&EPeW)%to2OS3LwZ)4T^U zYag_abMR%H@BO;7pSXLg@DMY4pcs_Qr^R|09c^D1Psx?d1mg z(oP97Ijbx2%Yhh;hqO+zN<4LZ=!#P``s~gcZB4X+bVZDt;U$~3-QJjGF+o;R=O(L1 zR(p$316#VXM=~eY8wH98t|K0-KTLm*g`E`%{>9bHetd)o-}k`~*~aJ0 zkE_p*sdLSiS3Xl`P^0W8fh&16_#h}vs3R)kfK;adaHS*4Ho)g5(z-FRQ)Ad%F2~Dr z+JvLa!nlc+AiWL;amwhmkdUExulMLtjr+`#9E(F zxc#kBc7ZViX;Y{2yO!pW^yqX?DltQ300Z7i+p?)nhPYGpW-M(! zY(dHZE9E!nF3xn2lSdojH<$C_g7pUnT+~QG1}FU$j>I(9oC~9SW}R`J)pc>#tyzN% zG@l@o)HoYE8Q7t40)rQw0F`&l5AFF=kXBjtHslJox6zl~g_+z&iS+v!iOswEyTQKH z+Qd5A{dGV%z2p>Q*qp0ziL@a&Q)O$u)ab`hqZ`ji_x*=FOp?ZVn5ys1HSl9edKu>F zE3XHBGnPe#j_nhtzMODD+$%34*}kSg9&wVK zrd5N5%3&uK8OR2yZx^z`E|Z?|_$0zaSJ)!KN%{ZL?Ni{2$`VBBWNwJl1~2zHtq86+ z*nr*l`pyws(p8k}%i*^wJ~|__W{K$bI1`A>dCwI^4|Z3(^RChD&{_1b`XC2`T}ECP z2)ZtJxD}{Q^Y90|j_!ZLb{@2|co+R*G`x3~v-X{30yAheSAIjTmhL|dh&|K)=a(!7g*${ ze^%+REZ*SY04>h=DdyYG&q}Nu1RF+nxFdD_U49b=?bav}!-H#*tob+mEK0-d#B?DY zW^2upi=kj*)j<<;>6xMf4_q1{51>BBWMAWXZ{pBB)X07D`3MQst$jqY09I1Mf7YXP z${p1he`X8EM^fnaheeeFT}mkwa(`c$eoN4w&hG~Ly`TzYNRlrm{Bg?$5i&2a;@JP* zbAc6X&VC9T+Xsa|MKeqzG5U7|f zfw{F=O~gm?{FO5sG)uSod}LwxM!3(4u`DU8Yu^Sx3Dwt^RW^v0;w&x8z^pD!opSep ziM~j&U2lcQ-Xf66#Nd9gZ_3~l3hmiYMJ~xEjIXYnn_*E|FSrq22jyc=9RAoeV(>Z% zur{=!wVH|M7Z9W>nL#y;rH|+Sjo6!F!T=s8c@Mi<7FeiH7Q8Msb+pS?cOSHd>P76U z>*>HFHD54JZ*bRjaV$@Y!=J1^47Df%`I7Dt2NDq^b)t!5x`P`eU%mFNd3BS-z&Bt& z6W3!vFH4a-Bb(P1{kM`N{*Bmt2hVRR<9=h4azNK;;ObMO(t|G#M(QJa^n5<(8U7b+ z|8yf+!1PPqZ+3Bmsrf%IT9n;!z@GGx45TBb#8WV7hiX?hJ}ys`JX}jJw(2VfTEh2s zp#kQkLyPP@BfGZdy2}HT#Jmdu;{vy=dcG&nMGPyYWJdxIOpVh_KX~0PMv20=R%V~! z|I~gPh^1=Z-)1*4h-WxovS^{ydCxfqI8j72)L^<`AR`jCx%Sxw8MmWknLs?!coFQL zvxxCi@Kg%9F1(Q_?wpFO*fPTh)frAqdzvStYNm>;5zGh_l4# z>lhPSmF=Ei1A_ z7Kt1l4tSoRM?uiLgG;P1o|t12w9m1Ra*)`7)2=tx647(7E#A4v#0s92;7L9IZo4~4RO3ol?lCgnwXR~J zPGbT^zy3-5EVFzZ7O@zKYl0-PG<#zs)r@(M^ITZP*2aOZt_1j#2*t_b7zq literal 0 HcmV?d00001 diff --git a/doc/user_guide/en/intro_subsections.adoc b/doc/user_guide/en/intro_subsections.adoc new file mode 100644 index 000000000..242d54e54 --- /dev/null +++ b/doc/user_guide/en/intro_subsections.adoc @@ -0,0 +1,40 @@ +=== Documentation Conventions + +In this manual the following icons call attention to particular types +of information: + +NOTE: *Notes* containing information that may be of interest to +particular classes of users. + +TIP: *Tips* on program features or capabilities that might otherwise be +overlooked. + +IMPORTANT: *Warnings* about usage that could lead to undesired +consequences. + +=== User Interface in Other Languages + +The _WSJT-X_ user interface is now available in many languages. When +a translated user interface is available for the computer's default +System Language, it will appear automatically on program startup. + +=== How You Can Contribute + +_WSJT-X_ is part of an open-source project released under the +{gnu_gpl} (GPLv3). If you have programming or documentation skills or +would like to contribute to the project in other ways, please make +your interests known to the development team. We especially encourage +those with translation skills to volunteer their help, either for +this _User Guide_ or for the program's user interface. + +The project's source-code repository can be found at {devrepo}, and +communication among the developers takes place on the email reflector +{devmail}. Bug reports and suggestions for new features, improvements +to the _WSJT-X_ User Guide, etc., may be sent there as well. You must +join the group before posting to the email list. + + +=== License + +Before using _WSJT-X_, please read our licensing terms +<>. diff --git a/doc/user_guide/en/introduction.adoc b/doc/user_guide/en/introduction.adoc index f172b5d35..5dfd2fb8f 100644 --- a/doc/user_guide/en/introduction.adoc +++ b/doc/user_guide/en/introduction.adoc @@ -3,42 +3,39 @@ _WSJT-X_ is a computer program designed to facilitate basic amateur radio communication using very weak signals. The first four letters in the program name stand for "`**W**eak **S**ignal communication by -K1**JT**,`" while the suffix "`-X`" indicates that _WSJT-X_ started as -an extended and experimental branch of the program _WSJT_, -first released in 2001. Bill Somerville, G4WJS, and Steve Franke, -K9AN, have been major contributors to program development since 2013 -and 2015, respectively. +K1**JT**,`" while the suffix "`*-X*`" indicates that _WSJT-X_ started +as an extended branch of an earlier program, _WSJT_, first released in +2001. Bill Somerville, G4WJS, and Steve Franke, K9AN, have been major +contributors to development of _WSJT-X_ since 2013 and 2015, respectively. -_WSJT-X_ Version {VERSION_MAJOR}.{VERSION_MINOR} offers ten different -protocols or modes: *FT4*, *FT8*, *JT4*, *JT9*, *JT65*, *QRA64*, -*ISCAT*, *MSK144*, *WSPR*, and *Echo*. The first six are designed for -making reliable QSOs under weak-signal conditions. They use nearly -identical message structure and source encoding. JT65 and QRA64 were -designed for EME ("`moonbounce`") on the VHF/UHF bands and have also -proven very effective for worldwide QRP communication on the HF bands. -QRA64 has some advantages over JT65, including better performance -for EME on the higher microwave bands. JT9 was originally designed -for the LF, MF, and lower HF bands. Its submode JT9A is 2 dB more -sensitive than JT65 while using less than 10% of the bandwidth. JT4 -offers a wide variety of tone spacings and has proven highly effective -for EME on microwave bands up to 24 GHz. These four "`slow`" modes -use one-minute timed sequences of alternating transmission and -reception, so a minimal QSO takes four to six minutes — two or three -transmissions by each station, one sending in odd UTC minutes and the -other even. FT8 is operationally similar but four times faster -(15-second T/R sequences) and less sensitive by a few dB. FT4 is -faster still (7.5 s T/R sequences) and especially well-suited for -radio contesting. On the HF bands, world-wide QSOs are possible with -any of these modes using power levels of a few watts (or even -milliwatts) and compromise antennas. On VHF bands and higher, QSOs -are possible (by EME and other propagation types) at signal levels 10 -to 15 dB below those required for CW. - -Note that even though their T/R sequences are short, FT4 and FT8 are -classified as slow modes because their message frames are sent only -once per transmission. All fast modes in _WSJT-X_ send their message -frames repeatedly, as many times as will fit into the Tx sequence -length. +_WSJT-X_ Version {VERSION_MAJOR}.{VERSION_MINOR} offers twelve +different protocols or modes: *FST4*, *FT4*, *FT8*, *JT4*, *JT9*, +*JT65*, *QRA64*, *ISCAT*, *MSK144*, *WSPR*, *FST4W*, and *Echo*. The +first seven are designed for making reliable QSOs under weak-signal +conditions. They use nearly identical message structure and source +encoding. JT65 and QRA64 were designed for EME ("`moonbounce`") on +the VHF/UHF bands and have also proven very effective for worldwide +QRP communication on the HF bands. QRA64 has some advantages over +JT65, including better performance for EME on the higher microwave +bands. JT9 was originally designed for the HF and lower +bands. Its submode JT9A is nearly 2 dB more sensitive than JT65 while using +less than 10% of the bandwidth. JT4 offers a wide variety of tone +spacings and has proven highly effective for EME on microwave bands up +to 24 GHz. These four "`slow`" modes use one-minute timed sequences +of alternating transmission and reception, so a minimal QSO takes four +to six minutes — two or three transmissions by each station, one +sending in odd UTC minutes and the other even. FT8 is operationally +similar but four times faster (15-second T/R sequences) and less +sensitive by a few dB. FT4 is faster still (7.5 s T/R sequences) and +especially well-suited for radio contesting. FST4 was added to +_WSJT-X_ in version 2.3.0. It is intended especially for use on the +LF and MF bands; further details can be found in the following +section, <>. +On the HF bands, world-wide QSOs are possible with any of these modes +using power levels of a few watts (or even milliwatts) and compromise +antennas. On VHF bands and higher, QSOs are possible (by EME and +other propagation types) at signal levels 10 to 15 dB below those +required for CW. *ISCAT*, *MSK144*, and optionally submodes *JT9E-H* are "`fast`" protocols designed to take advantage of brief signal enhancements from @@ -51,15 +48,25 @@ messages up to 28 characters long, while MSK144 uses the same structured messages as the slow modes and optionally an abbreviated format with hashed callsigns. +Note that some of the modes classified as slow can have T/R sequence +lengths as short the fast modes. "`Slow`" in this sense implies +message frames being sent only once per transmission. The fast modes +in _WSJT-X_ send their message frames repeatedly, as many times as +will fit into the Tx sequence length. + *WSPR* (pronounced "`whisper`") stands for **W**eak **S**ignal -**P**ropagation **R**eporter. The WSPR protocol was designed for probing -potential propagation paths using low-power transmissions. WSPR -messages normally carry the transmitting station’s callsign, grid -locator, and transmitter power in dBm, and they can be decoded at -signal-to-noise ratios as low as -31 dB in a 2500 Hz bandwidth. WSPR -users with internet access can automatically upload reception -reports to a central database called {wsprnet} that provides a mapping -facility, archival storage, and many other features. +**P**ropagation **R**eporter. The WSPR protocol was designed for +probing potential propagation paths using low-power transmissions. +WSPR messages normally carry the transmitting station’s callsign, +grid locator, and transmitter power in dBm, and with two-minute +sequences they can be decoded at signal-to-noise ratios as low +as -31 dB in a 2500 Hz bandwidth. *FST4W* is designed for +similar purposes, but especially for use on LF and MF bands. +It includes optional sequence lengths as long as 30 minutes and +reaches sensitivity tresholds as low as -45 dB. WSPR and FST4W users +with internet access can automatically upload reception reports to a +central database called {wsprnet} that provides a mapping facility, +archival storage, and many other features. *Echo* mode allows you to detect and measure your own station's echoes from the moon, even if they are far below the audible threshold. diff --git a/doc/user_guide/en/new_features.adoc b/doc/user_guide/en/new_features.adoc index c653379f1..53740bdaf 100644 --- a/doc/user_guide/en/new_features.adoc +++ b/doc/user_guide/en/new_features.adoc @@ -1,107 +1,31 @@ +[[NEW_FEATURES]] === New in Version {VERSION} -*Improvements to decoders* +_WSJT-X 2.3.0_ introduces *FST4* and *FST4W*, new digital protocols +designed particularly for the LF and MF bands. On these bands their +fundamental sensitivities are better than other _WSJT-X_ modes with the +same sequence lengths, approaching the theoretical limits for their +rates of information throughput. FST4 is optimized for two-way QSOs, +while FST4W is for quasi-beacon transmissions of WSPR-style messages. +FST4 and FST4W do not require the strict, independent time +synchronization and phase locking of modes like EbNaut. -*FT4:* Corrected bugs that prevented AP (_a priori_) decoding and/or -multi-pass decoding in some circumstances. Improved and extended the -algorithm for AP decoding. +The new modes use 4-GFSK modulation and share common software for +encoding and decoding messages. FST4 offers T/R sequence lengths of +15, 30, 60, 120, 300, 900, and 1800 seconds, while FST4W omits the +lengths shorter than 120 s. Submodes are given names like FST4-60, +FST4W-300, etc., the appended numbers indicating sequence length in +seconds. Message payloads contain either 77 bits, as in FT4, FT8, and +MSK144, or 50 bits for the WSPR-like messages of FST4W. Message +formats displayed to the user are like those in the other 77-bit and +50-bit modes in _WSJT-X_. Forward error correction uses a low density +parity check (LDPC) code with 240 information and parity bits. +Transmissions consist of 160 symbols: 120 information-carrying symbols +of two bits each, interspersed with five groups of eight predefined +synchronization symbols. -*FT8:* Decoding is now spread over three intervals. The first starts -11.8 s into an Rx sequence and typically yields around 85% of the -possible decodes, so you see most decodes much earlier than before. A -second processing step starts at 13.5 s, and the final one at 14.7 s. -Overall decoding yield on crowded bands is improved by 10% or more. -Systems with receive latency greater than 0.2 s will see smaller -improvements, but will still see many decodes earlier than before. - -SNR estimates no longer saturate at +20 dB, and large signals in the -passband no longer cause the SNR of weaker signals to be biased low. -Times written to cumulative journal file ALL.TXT are now correct even -when the decode occurs after the T/R sequence boundary. In FT8 -DXpedition Mode, AP decoding is now implemented for Hounds when the -Fox has a compound callsign. - - -*JT4:* Formatting and display of averaged and Deep Search decodes has -been cleaned up and made consistent with other modes used for EME and -extreme weak-signal work on microwave bands. - -*JT65:* Many improvements have been made for averaged and Deep Search -decodes, and their display to the user. For details see <> -in the <> section of this guide. - -*WSPR:* Significant improvements have been made to the WSPR decoder's -sensitivity, its ability to cope with many signals in a crowded -sub-band, and its rate of undetected false decodes. We now use up to -three decoding passes. Passes 1 and 2 use noncoherent demodulation of -single symbols and allow for frequency drifts up to ±4 Hz in a -transmission. Pass 3 assumes no drift and does coherent block -detection of up to three symbols. It also applies bit-by-bit -normalization of the single-symbol bit metrics, a technique that has -proven helpful for signals corrupted by artifacts of the subtraction -of stronger signals and also for LF/MF signals heavily contaminated by -lightning transients. With these improvements the number of decodes -in a crowded WSPR sub-band typically increases by 10 to 15%. - -*New message format:* When *EU VHF Contest* is selected, the Tx2 and -Tx3 messages -- those conveying signal report, serial number, and -6-character locator -- now use hashcodes for both callsigns. This -change is *not* backward compatible with earlier versions of _WSJT-X_, so -all users of *EU VHF Contest* messages should be sure to upgrade to -version 2.2.0. See <> for details. - -*Minor enhancements and bug fixes* - -- *Save None* now writes no .wav files to disk, even temporarily. - -- An explicit entry for *WW Digi Contest* has been added to *Special - operating activities* on the *Settings | Advanced* tab. - -- The contest mode FT4 now always uses RR73 for the Tx4 message. - -- *Keyboard shortcuts* have been added as an aid to accessibility: -*Alt+R* sets Tx4 message to RR73, *Ctrl+R* sets it to RRR. - -- The *Status bar* now displays the number of decodes found in the -most recent Rx sequence. - -- As an aid for partial color-blindness, the "`inverted goal posts`" -marking Rx frequency on the Wide Graph's frequency scale are now in a -darker shade of green. - -=== Documentation Conventions - -In this manual the following icons call attention to particular types -of information: - -NOTE: *Notes* containing information that may be of interest to -particular classes of users. - -TIP: *Tips* on program features or capabilities that might otherwise be -overlooked. - -IMPORTANT: *Warnings* about usage that could lead to undesired -consequences. - -=== User Interface in Other Languages - -Thanks to Xavi Perez, EA3W, in cooperation with G4WJS, the _WSJT-X_ -user interface is now available the Catalan language. Spanish will -follow soon, and other languages when translations are made. When a -translated user interface is available for the computer's default -System Language, it will appear automatically on program startup. - -=== How You Can Contribute - -_WSJT-X_ is part of an open-source project released under the -{gnu_gpl} (GPLv3). If you have programming or documentation skills or -would like to contribute to the project in other ways, please make -your interests known to the development team. We especially encourage -those with translation skills to volunteer their help, either for -this _User Guide_ or for the program's user interface. - -The project's source-code repository can be found at {devrepo}, and -communication among the developers takes place on the email reflector -{devmail}. Bug reports and suggestions for new features, improvements -to the _WSJT-X_ User Guide, etc., may be sent there as well. You must -join the group before posting to the email list. +*We recommend that on the 2200 and 630 m bands FST4 should replace JT9 +for making 2-way QSOs, and FST4W should replace WSPR for propagation +tests*. Operating conventions on these LF and MF bands will +eventually determine the most useful T/R sequence lengths for each +type of operation. diff --git a/doc/user_guide/en/protocols.adoc b/doc/user_guide/en/protocols.adoc index e22911266..baa91bcd3 100644 --- a/doc/user_guide/en/protocols.adoc +++ b/doc/user_guide/en/protocols.adoc @@ -14,7 +14,7 @@ Special cases allow other information such as add-on callsign prefixes aim is to compress the most common messages used for minimally valid QSOs into a fixed 72-bit length. -The information payload for FT4, FT8, and MSK144 contains 77 bits. +The information payloads for FST4, FT4, FT8, and MSK144 contain 77 bits. The 5 new bits added to the original 72 are used to flag special message types signifying special message types used for FT8 DXpedition Mode, contesting, nonstandard callsigns, and a few other @@ -54,7 +54,7 @@ were the callsigns `E9AA` through `E9ZZ`. Upon reception they are converted back to the form `CQ AA` through `CQ ZZ`, for display to the user. -The FT4, FT8, and MSK144 protocols use different lossless compression +The FST4, FT4, FT8, and MSK144 protocols use different lossless compression algorithms with features that generate and recognize special messages used for contesting and other special purposes. Full details have been published in QEX, see {ft4_ft8_protocols}. @@ -71,6 +71,21 @@ _WSJT-X_ modes have continuous phase and constant envelope. [[SLOW_MODES]] === Slow Modes +[[FST4PRO]] +==== FST4 + +FST4 offers T/R sequence lengths of 15, 30, 60, 120, 300, 900, and +1800 seconds. Submodes are given names like FST4-60, FST4-120, etc., +the appended numbers indicating sequence length in seconds. Message +payloads contain 77 bits, and a 24-bit cyclic redundancy check (CRC) +appended to create a 101-bit message-plus-CRC word. Forward error +correction is accomplished using a (240,101) LDPC code. Transmissions +consist of 160 symbols: 120 information-carrying symbols of two bits +each, interspersed with five groups of eight predefined +synchronization symbols. Modulation uses 4-tone frequency-shift +keying (4-GFSK) with Gaussian smoothing of frequency transitions. + + [[FT4PRO]] ==== FT4 @@ -225,6 +240,20 @@ information the least significant. Thus, on a 0 – 3 scale, the tone for a given symbol is twice the value (0 or 1) of the data bit, plus the sync bit. +[[FST4WPRO]] +==== FST4W + +FST4W offers T/R sequence lengths of 120, 300, 900, and 1800 seconds. +Submodes are given names like FST4W-120, FST4W-300, etc., the appended +numbers indicating sequence length in seconds. Message payloads +contain 50 bits, and a 24-bit cyclic redundancy check (CRC) appended +to create a 74-bit message-plus-CRC word. Forward error correction +is accomplished using a (240,74) LDPC code. Transmissions consist of +160 symbols: 120 information-carrying symbols of two bits each, +interspersed with five groups of eight predefined synchronization +symbols. Modulation uses 4-tone frequency-shift keying (4-GFSK) with +Gaussian smoothing of frequency transitions. + [[SLOW_SUMMARY]] ==== Summary @@ -239,17 +268,28 @@ which the probability of decoding is 50% or higher. [[SLOW_TAB]] .Parameters of Slow Modes -[width="90%",cols="3h,^3,^2,^1,^2,^2,^2,^2,^2,^2",frame=topbot,options="header"] +[width="100%",cols="3h,^3,^2,^1,^2,^2,^2,^2,^2,^2",frame=topbot,options="header"] |=============================================================================== |Mode |FEC Type |(n,k) | Q|Modulation type|Keying rate (Baud)|Bandwidth (Hz) |Sync Energy|Tx Duration (s)|S/N Threshold (dB) -|FT4 |LDPC, r=1/2|(174,91)| 4| 4-GFSK| 20.8333 | 83.3 | 0.15| 5.04 | -17.5 -|FT8 |LDPC, r=1/2|(174,91)| 8| 8-GFSK| 6.25 | 50.0 | 0.27| 12.6 | -21 +|FST4-15 |LDPC | (240,101)| 4| 4-GFSK| 16.6667 | 67.7 | 0.25| 9.60 | -20.7 +|FST4-30 |LDPC | (240,101)| 4| 4-GFSK| 7.14 | 28.6 | 0.25| 22.4 | -24.2 +|FST4-60 |LDPC | (240,101)| 4| 4-GFSK| 3.09 | 12.4 | 0.25| 51.8 | -28.1 +|FST4-120 |LDPC | (240,101)| 4| 4-GFSK| 1.46 | 5.9 | 0.25| 109.3 | -31.3 +|FST4-300 |LDPC | (240,101)| 4| 4-GFSK| 0.56 | 2.2 | 0.25| 286.7 | -35.3 +|FST4-900 |LDPC | (240,101)| 4| 4-GFSK| 0.180 | 0.72 | 0.25| 887.5 | -40.2 +|FST4-1800 |LDPC | (240,101)| 4| 4-GFSK| 0.089 | 0.36 | 0.25| 1792.0| -43.2 +|FT4 |LDPC |(174,91)| 4| 4-GFSK| 20.8333 | 83.3 | 0.15| 5.04 | -17.5 +|FT8 |LDPC |(174,91)| 8| 8-GFSK| 6.25 | 50.0 | 0.27| 12.6 | -21 |JT4A |K=32, r=1/2|(206,72)| 2| 4-FSK| 4.375| 17.5 | 0.50| 47.1 | -23 -|JT9A |K=32, r=1/2|(206,72)| 8| 9-FSK| 1.736| 15.6 | 0.19| 49.0 | -27 +|JT9A |K=32, r=1/2|(206,72)| 8| 9-FSK| 1.736| 15.6 | 0.19| 49.0 | -26 |JT65A |Reed Solomon|(63,12) |64|65-FSK| 2.692| 177.6 | 0.50| 46.8 | -25 |QRA64A|Q-ary Repeat Accumulate|(63,12) |64|64-FSK|1.736|111.1|0.25|48.4| -26 | WSPR |K=32, r=1/2|(162,50)| 2| 4-FSK| 1.465| 5.9 | 0.50|110.6 | -31 +|FST4W-120 |LDPC | (240,74)| 4| 4-GFSK| 1.46 | 5.9 | 0.25| 109.3 | -32.8 +|FST4W-300 |LDPC | (240,74)| 4| 4-GFSK| 0.56 | 2.2 | 0.25| 286.7 | -36.8 +|FST4W-900 |LDPC | (240,74)| 4| 4-GFSK| 0.180 | 0.72 | 0.25| 887.5 | -41.7 +|FST4W-1800 |LDPC | (240,74)| 4| 4-GFSK| 0.089 | 0.36 | 0.25| 1792.0| -44.8 |=============================================================================== Submodes of JT4, JT9, JT65, and QRA64 offer wider tone spacings for @@ -259,12 +299,10 @@ threshold sensitivities of the various submodes when spreading is comparable to tone spacing. [[SLOW_SUBMODES]] -.Parameters of Slow Submodes +.Parameters of Slow Submodes with Wider Tome Spacings [width="50%",cols="h,3*^",frame=topbot,options="header"] |===================================== |Mode |Tone Spacing |BW (Hz)|S/N (dB) -|FT4 |20.8333 | 83.3 |-17.5 -|FT8 |6.25 | 50.0 |-21 |JT4A |4.375| 17.5 |-23 |JT4B |8.75 | 30.6 |-22 |JT4C |17.5 | 56.9 |-21 @@ -272,7 +310,7 @@ comparable to tone spacing. |JT4E |78.75| 240.6 |-19 |JT4F |157.5| 476.9 |-18 |JT4G |315.0| 949.4 |-17 -|JT9A |1.736| 15.6 |-27 +|JT9A |1.736| 15.6 |-26 |JT9B |3.472| 29.5 |-26 |JT9C |6.944| 57.3 |-25 |JT9D |13.889| 112.8 |-24 diff --git a/doc/user_guide/en/tutorial-example5.adoc b/doc/user_guide/en/tutorial-example5.adoc new file mode 100644 index 000000000..899625211 --- /dev/null +++ b/doc/user_guide/en/tutorial-example5.adoc @@ -0,0 +1,24 @@ +FST4 is is designed for making 2-way QSOs on the LF and MF bands. Do +not confuse it with FT4, which has a very different purpose! Most +on-screen controls, auto-sequencing, and other features behave in FST4 +as in other modes. However, operating conventions on the 2200 and 630 +m bands make it desirable to have additional user controls that set +the active frequency range for decoding. Spin boxes labeled *F Low* +and *F High* set lower and upper frequency limits for the FST4 +decoder. + +image::FST4_center.png[align="center"] + +Decoding limits are marked by dark green angle-bracket symbols *< >* on +the Wide Graph frequency scale: + +image::FST4_Decoding_Limits.png[align="center"] + +In general the specified range should be no larger than needed, since +detected transmissions in modes other than the selected FST4 sequence +length will be undecodable and will slow down the decoding process. + +If *Single decode* on the the *File | Settings | General* tab is +checked, the decoding range is further limited to the *F Tol* range +around *Rx Freq*. + diff --git a/doc/user_guide/en/tutorial-example6.adoc b/doc/user_guide/en/tutorial-example6.adoc new file mode 100644 index 000000000..8c7c0dc36 --- /dev/null +++ b/doc/user_guide/en/tutorial-example6.adoc @@ -0,0 +1,16 @@ +FST4W has significant advantages over WSPR for use on the 2200 and 630 +m bands. As for WSPR, the default Rx Freq is 1500 Hz and F Tol is +100 Hz, so the active decoding range 1400 to 1600 Hz. However, for added +flexibility you can select different center frequencies and F Tol values. +We expect that usage conventions will soon be established for FST4 activity on 2200 and 630 m. + +A new drop-down control below F Tol offers a round-robin mode for +scheduling FST4W transmissions: + +image::FST4W_RoundRobin.png[align="center"] + +If three operators agree in advance to select the options 1/3, 2/3, +and 3/3, for example, their FST4W transmissions will occur in a fixed +sequence with no two stations transmitting simultaneously. Sequence 1 +is the first sequence after 00:00 UTC. For WSPR-like scheduling +behavior, you should select Random with this control. diff --git a/doc/user_guide/en/wsjtx-main.adoc b/doc/user_guide/en/wsjtx-main.adoc index b04291136..9bed15dc6 100644 --- a/doc/user_guide/en/wsjtx-main.adoc +++ b/doc/user_guide/en/wsjtx-main.adoc @@ -32,6 +32,9 @@ include::introduction.adoc[] [[NEW_FEATURES]] include::new_features.adoc[] +[[INTRO_SUBSECTIONS]] +include::intro_subsections.adoc[] + [[SYSREQ]] == System Requirements include::system-requirements.adoc[] @@ -162,6 +165,14 @@ include::tutorial-example3.adoc[] === FT4 include::tutorial-example4.adoc[] +[[TUT_EX5]] +=== FST4 +include::tutorial-example5.adoc[] + +[[TUT_EX6]] +=== FST4W +include::tutorial-example6.adoc[] + [[MAKE_QSOS]] == Making QSOs include::make-qso.adoc[] From 4a327c2c42545f6bd72268c5c32c0fd58cb56ec0 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 23 Sep 2020 16:34:42 -0400 Subject: [PATCH 513/520] Minor editing of User Guide. --- doc/user_guide/en/protocols.adoc | 2 +- doc/user_guide/en/tutorial-example5.adoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/user_guide/en/protocols.adoc b/doc/user_guide/en/protocols.adoc index baa91bcd3..e50b6a408 100644 --- a/doc/user_guide/en/protocols.adoc +++ b/doc/user_guide/en/protocols.adoc @@ -299,7 +299,7 @@ threshold sensitivities of the various submodes when spreading is comparable to tone spacing. [[SLOW_SUBMODES]] -.Parameters of Slow Submodes with Wider Tome Spacings +.Parameters of Slow Submodes with Selectable Tone Spacings [width="50%",cols="h,3*^",frame=topbot,options="header"] |===================================== |Mode |Tone Spacing |BW (Hz)|S/N (dB) diff --git a/doc/user_guide/en/tutorial-example5.adoc b/doc/user_guide/en/tutorial-example5.adoc index 899625211..2c0d13b60 100644 --- a/doc/user_guide/en/tutorial-example5.adoc +++ b/doc/user_guide/en/tutorial-example5.adoc @@ -14,7 +14,7 @@ the Wide Graph frequency scale: image::FST4_Decoding_Limits.png[align="center"] -In general the specified range should be no larger than needed, since +In general the specified range should be no larger than you need, since detected transmissions in modes other than the selected FST4 sequence length will be undecodable and will slow down the decoding process. From 3799ddc3f72f80bc10c0a1d6c9cca2526cad2bd5 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 24 Sep 2020 10:42:39 -0400 Subject: [PATCH 514/520] Editing of new FST4/FST4W text in the User Guide. --- doc/user_guide/en/introduction.adoc | 49 +++++++++++++----------- doc/user_guide/en/new_features.adoc | 17 ++++---- doc/user_guide/en/protocols.adoc | 22 ++++------- doc/user_guide/en/tutorial-example5.adoc | 37 +++++++++--------- doc/user_guide/en/tutorial-example6.adoc | 24 ++++++------ 5 files changed, 75 insertions(+), 74 deletions(-) diff --git a/doc/user_guide/en/introduction.adoc b/doc/user_guide/en/introduction.adoc index 5dfd2fb8f..c1345f685 100644 --- a/doc/user_guide/en/introduction.adoc +++ b/doc/user_guide/en/introduction.adoc @@ -17,25 +17,27 @@ encoding. JT65 and QRA64 were designed for EME ("`moonbounce`") on the VHF/UHF bands and have also proven very effective for worldwide QRP communication on the HF bands. QRA64 has some advantages over JT65, including better performance for EME on the higher microwave -bands. JT9 was originally designed for the HF and lower -bands. Its submode JT9A is nearly 2 dB more sensitive than JT65 while using -less than 10% of the bandwidth. JT4 offers a wide variety of tone -spacings and has proven highly effective for EME on microwave bands up -to 24 GHz. These four "`slow`" modes use one-minute timed sequences -of alternating transmission and reception, so a minimal QSO takes four -to six minutes — two or three transmissions by each station, one -sending in odd UTC minutes and the other even. FT8 is operationally -similar but four times faster (15-second T/R sequences) and less -sensitive by a few dB. FT4 is faster still (7.5 s T/R sequences) and -especially well-suited for radio contesting. FST4 was added to -_WSJT-X_ in version 2.3.0. It is intended especially for use on the -LF and MF bands; further details can be found in the following -section, <>. -On the HF bands, world-wide QSOs are possible with any of these modes -using power levels of a few watts (or even milliwatts) and compromise -antennas. On VHF bands and higher, QSOs are possible (by EME and -other propagation types) at signal levels 10 to 15 dB below those -required for CW. +bands. JT9 was originally designed for the HF and lower bands. Its +submode JT9A is 1 dB more sensitive than JT65 while using less than +10% of the bandwidth. JT4 offers a wide variety of tone spacings and +has proven highly effective for EME on microwave bands up to 24 GHz. +These four "`slow`" modes use one-minute timed sequences of +alternating transmission and reception, so a minimal QSO takes four to +six minutes — two or three transmissions by each station, one sending +in odd UTC minutes and the other even. FT8 is operationally similar +but four times faster (15-second T/R sequences) and less sensitive by +a few dB. FT4 is faster still (7.5 s T/R sequences) and especially +well-suited for radio contesting. FST4 was added to _WSJT-X_ in +version 2.3.0. It is intended especially for use on the LF and MF +bands, and already during its first few months of testing +intercontinental paths have been spanned many times on the 2200 and +630 m bands. Further details can be found in the following section, +<>. On the HF bands, +world-wide QSOs are possible with any of these modes using power +levels of a few watts (or even milliwatts) and compromise antennas. +On VHF bands and higher, QSOs are possible (by EME and other +propagation types) at signal levels 10 to 15 dB below those required +for CW. *ISCAT*, *MSK144*, and optionally submodes *JT9E-H* are "`fast`" protocols designed to take advantage of brief signal enhancements from @@ -63,10 +65,11 @@ sequences they can be decoded at signal-to-noise ratios as low as -31 dB in a 2500 Hz bandwidth. *FST4W* is designed for similar purposes, but especially for use on LF and MF bands. It includes optional sequence lengths as long as 30 minutes and -reaches sensitivity tresholds as low as -45 dB. WSPR and FST4W users -with internet access can automatically upload reception reports to a -central database called {wsprnet} that provides a mapping facility, -archival storage, and many other features. +reaches sensitivity tresholds as low as -45 dB. Users +with internet access can automatically upload WSPR and FST4W +reception reports to a central database called {wsprnet} that +provides a mapping facility, archival storage, and many other +features. *Echo* mode allows you to detect and measure your own station's echoes from the moon, even if they are far below the audible threshold. diff --git a/doc/user_guide/en/new_features.adoc b/doc/user_guide/en/new_features.adoc index 53740bdaf..cd7c67869 100644 --- a/doc/user_guide/en/new_features.adoc +++ b/doc/user_guide/en/new_features.adoc @@ -2,13 +2,16 @@ === New in Version {VERSION} _WSJT-X 2.3.0_ introduces *FST4* and *FST4W*, new digital protocols -designed particularly for the LF and MF bands. On these bands their -fundamental sensitivities are better than other _WSJT-X_ modes with the -same sequence lengths, approaching the theoretical limits for their -rates of information throughput. FST4 is optimized for two-way QSOs, -while FST4W is for quasi-beacon transmissions of WSPR-style messages. -FST4 and FST4W do not require the strict, independent time -synchronization and phase locking of modes like EbNaut. +designed particularly for the LF and MF bands. Decoders for these +modes can take advantage of the very small Doppler spreads present at +these frequencies, even over intercontinental distances. As a +consequence, fundamental sensitivities of FST4 and FST4W are better +than other _WSJT-X_ modes with the same sequence lengths, approaching +the theoretical limits for their rates of information throughput. The +FST4 protocol is optimized for two-way QSOs, while FST4W is for +quasi-beacon transmissions of WSPR-style messages. FST4 and FST4W do +not require the strict, independent phase locking and time +synchronization of modes like EbNaut. The new modes use 4-GFSK modulation and share common software for encoding and decoding messages. FST4 offers T/R sequence lengths of diff --git a/doc/user_guide/en/protocols.adoc b/doc/user_guide/en/protocols.adoc index e50b6a408..631e7d0da 100644 --- a/doc/user_guide/en/protocols.adoc +++ b/doc/user_guide/en/protocols.adoc @@ -14,11 +14,11 @@ Special cases allow other information such as add-on callsign prefixes aim is to compress the most common messages used for minimally valid QSOs into a fixed 72-bit length. -The information payloads for FST4, FT4, FT8, and MSK144 contain 77 bits. -The 5 new bits added to the original 72 are used to flag special -message types signifying special message types used for FT8 DXpedition -Mode, contesting, nonstandard callsigns, and a few other -possibilities. +Information payloads for FST4, FT4, FT8, and MSK144 contain 77 bits. +The 5 additional bits are used to flag special message types used for +nonstandard callsigns, contest exchanges, FT8 DXpedition Mode, and a +few other possibilities. Full details have been published in QEX, see +{ft4_ft8_protocols}. A standard amateur callsign consists of a one- or two-character prefix, at least one of which must be a letter, followed by a digit @@ -54,11 +54,6 @@ were the callsigns `E9AA` through `E9ZZ`. Upon reception they are converted back to the form `CQ AA` through `CQ ZZ`, for display to the user. -The FST4, FT4, FT8, and MSK144 protocols use different lossless compression -algorithms with features that generate and recognize special messages -used for contesting and other special purposes. Full details have -been published in QEX, see {ft4_ft8_protocols}. - To be useful on channels with low signal-to-noise ratio, this kind of lossless message compression requires use of a strong forward error correcting (FEC) code. Different codes are used for each mode. @@ -76,16 +71,15 @@ _WSJT-X_ modes have continuous phase and constant envelope. FST4 offers T/R sequence lengths of 15, 30, 60, 120, 300, 900, and 1800 seconds. Submodes are given names like FST4-60, FST4-120, etc., -the appended numbers indicating sequence length in seconds. Message -payloads contain 77 bits, and a 24-bit cyclic redundancy check (CRC) -appended to create a 101-bit message-plus-CRC word. Forward error +the appended numbers indicating sequence length in seconds. A 24-bit +cyclic redundancy check (CRC) is appended to the 77-bit message +payload to create a 101-bit message-plus-CRC word. Forward error correction is accomplished using a (240,101) LDPC code. Transmissions consist of 160 symbols: 120 information-carrying symbols of two bits each, interspersed with five groups of eight predefined synchronization symbols. Modulation uses 4-tone frequency-shift keying (4-GFSK) with Gaussian smoothing of frequency transitions. - [[FT4PRO]] ==== FT4 diff --git a/doc/user_guide/en/tutorial-example5.adoc b/doc/user_guide/en/tutorial-example5.adoc index 2c0d13b60..3b979ce5f 100644 --- a/doc/user_guide/en/tutorial-example5.adoc +++ b/doc/user_guide/en/tutorial-example5.adoc @@ -1,24 +1,23 @@ -FST4 is is designed for making 2-way QSOs on the LF and MF bands. Do -not confuse it with FT4, which has a very different purpose! Most -on-screen controls, auto-sequencing, and other features behave in FST4 -as in other modes. However, operating conventions on the 2200 and 630 -m bands make it desirable to have additional user controls that set -the active frequency range for decoding. Spin boxes labeled *F Low* -and *F High* set lower and upper frequency limits for the FST4 -decoder. - -image::FST4_center.png[align="center"] - -Decoding limits are marked by dark green angle-bracket symbols *< >* on -the Wide Graph frequency scale: +Do not confuse FST4 with FT4, which has a very different purpose! +FST4 is is designed for making 2-way QSOs on the LF and MF bands. +Operation with FST4 is similar to that with other _WSJT-X_ modes: most +on-screen controls, auto-sequencing, and other features behave in +familiar ways. However, operating conventions on the 2200 and 630 m +bands have made some additional user controls desirable. Spin boxes +labeled *F Low* and *F High* set lower and upper frequency limits used +by the FST4 decoder, and these limits are marked by dark green +angle-bracket symbols *< >* on the Wide Graph frequency scale: image::FST4_Decoding_Limits.png[align="center"] -In general the specified range should be no larger than you need, since -detected transmissions in modes other than the selected FST4 sequence -length will be undecodable and will slow down the decoding process. +{empty} + -If *Single decode* on the the *File | Settings | General* tab is -checked, the decoding range is further limited to the *F Tol* range -around *Rx Freq*. +image::FST4_center.png[align="center"] + +It's best to keep the decoding range fairly small, since QRM and +transmissions in other modes or sequence lengths will slow down the +decoding process (and of course will be undecodable). By checking +*Single decode* on the the *File | Settings | General* tab, you can +further limit the decoding range to the setting of *F Tol* on +either side of *Rx Freq*. diff --git a/doc/user_guide/en/tutorial-example6.adoc b/doc/user_guide/en/tutorial-example6.adoc index 8c7c0dc36..4fe4804e3 100644 --- a/doc/user_guide/en/tutorial-example6.adoc +++ b/doc/user_guide/en/tutorial-example6.adoc @@ -1,16 +1,18 @@ -FST4W has significant advantages over WSPR for use on the 2200 and 630 -m bands. As for WSPR, the default Rx Freq is 1500 Hz and F Tol is -100 Hz, so the active decoding range 1400 to 1600 Hz. However, for added -flexibility you can select different center frequencies and F Tol values. -We expect that usage conventions will soon be established for FST4 activity on 2200 and 630 m. +FST4W is used in the same way as WSPR, but FST4W has significant +advantages for use on the 2200 and 630 m bands. By default the +central *Rx Freq* is 1500 Hz and *F Tol* is 100 Hz, so the active +decoding range is 1400 to 1600 Hz. However, for added flexibility you +can select different center frequencies and *F Tol* values. We expect +that usage conventions will soon be established for FST4W activity on +2200 and 630 m. -A new drop-down control below F Tol offers a round-robin mode for +A new drop-down control below *F Tol* offers a round-robin mode for scheduling FST4W transmissions: image::FST4W_RoundRobin.png[align="center"] -If three operators agree in advance to select the options 1/3, 2/3, -and 3/3, for example, their FST4W transmissions will occur in a fixed -sequence with no two stations transmitting simultaneously. Sequence 1 -is the first sequence after 00:00 UTC. For WSPR-like scheduling -behavior, you should select Random with this control. +If three operators agree in advance to select the options *1/3*, +*2/3*, and *3/3*, for example, their FST4W transmissions will occur in +a fixed sequence with no two stations transmitting simultaneously. +Sequence 1 is the first sequence after 00:00 UTC. For WSPR-like +scheduling behavior, you should select *Random* with this control. From e489d1fe85b1c748000020c145a8cde1fd4b4e4f Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 24 Sep 2020 11:01:04 -0400 Subject: [PATCH 515/520] A few more edits for User Guide. --- doc/user_guide/en/protocols.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/user_guide/en/protocols.adoc b/doc/user_guide/en/protocols.adoc index 631e7d0da..ae3b78478 100644 --- a/doc/user_guide/en/protocols.adoc +++ b/doc/user_guide/en/protocols.adoc @@ -266,14 +266,14 @@ which the probability of decoding is 50% or higher. |=============================================================================== |Mode |FEC Type |(n,k) | Q|Modulation type|Keying rate (Baud)|Bandwidth (Hz) |Sync Energy|Tx Duration (s)|S/N Threshold (dB) -|FST4-15 |LDPC | (240,101)| 4| 4-GFSK| 16.6667 | 67.7 | 0.25| 9.60 | -20.7 +|FST4-15 |LDPC | (240,101)| 4| 4-GFSK| 16.67 | 67.7 | 0.25| 9.6 | -20.7 |FST4-30 |LDPC | (240,101)| 4| 4-GFSK| 7.14 | 28.6 | 0.25| 22.4 | -24.2 |FST4-60 |LDPC | (240,101)| 4| 4-GFSK| 3.09 | 12.4 | 0.25| 51.8 | -28.1 |FST4-120 |LDPC | (240,101)| 4| 4-GFSK| 1.46 | 5.9 | 0.25| 109.3 | -31.3 -|FST4-300 |LDPC | (240,101)| 4| 4-GFSK| 0.56 | 2.2 | 0.25| 286.7 | -35.3 +|FST4-300 |LDPC | (240,101)| 4| 4-GFSK| 0.558 | 2.2 | 0.25| 286.7 | -35.3 |FST4-900 |LDPC | (240,101)| 4| 4-GFSK| 0.180 | 0.72 | 0.25| 887.5 | -40.2 |FST4-1800 |LDPC | (240,101)| 4| 4-GFSK| 0.089 | 0.36 | 0.25| 1792.0| -43.2 -|FT4 |LDPC |(174,91)| 4| 4-GFSK| 20.8333 | 83.3 | 0.15| 5.04 | -17.5 +|FT4 |LDPC |(174,91)| 4| 4-GFSK| 20.83 | 83.3 | 0.15| 5.04 | -17.5 |FT8 |LDPC |(174,91)| 8| 8-GFSK| 6.25 | 50.0 | 0.27| 12.6 | -21 |JT4A |K=32, r=1/2|(206,72)| 2| 4-FSK| 4.375| 17.5 | 0.50| 47.1 | -23 |JT9A |K=32, r=1/2|(206,72)| 8| 9-FSK| 1.736| 15.6 | 0.19| 49.0 | -26 @@ -281,7 +281,7 @@ which the probability of decoding is 50% or higher. |QRA64A|Q-ary Repeat Accumulate|(63,12) |64|64-FSK|1.736|111.1|0.25|48.4| -26 | WSPR |K=32, r=1/2|(162,50)| 2| 4-FSK| 1.465| 5.9 | 0.50|110.6 | -31 |FST4W-120 |LDPC | (240,74)| 4| 4-GFSK| 1.46 | 5.9 | 0.25| 109.3 | -32.8 -|FST4W-300 |LDPC | (240,74)| 4| 4-GFSK| 0.56 | 2.2 | 0.25| 286.7 | -36.8 +|FST4W-300 |LDPC | (240,74)| 4| 4-GFSK| 0.558 | 2.2 | 0.25| 286.7 | -36.8 |FST4W-900 |LDPC | (240,74)| 4| 4-GFSK| 0.180 | 0.72 | 0.25| 887.5 | -41.7 |FST4W-1800 |LDPC | (240,74)| 4| 4-GFSK| 0.089 | 0.36 | 0.25| 1792.0| -44.8 |=============================================================================== From 3295a7d10c5581f71d2c7e771cf42d33284a5930 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 26 Sep 2020 16:02:02 +0100 Subject: [PATCH 516/520] Preparation for the first v2.3.0 release candidate --- NEWS | 26 ++++++++++++++++++++++++++ Release_Notes.txt | 15 ++++++++++++++- Versions.cmake | 2 +- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 097282e70..6f7fad9c7 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,32 @@ Copyright 2001 - 2020 by Joe Taylor, K1JT. + Release: WSJT-X 2.3.0-rc1 + Sept 28, 2020 + ------------------------- + +WSJT-X 2.3.0 is a program upgrade offering two new modes designed +especially for use on the LF and MF bands. FST4 is for 2-way QSOs, +and FST4W is for WSPR-like transmissions. Both modes offer a range of +options for T/R sequence lengths and threshold decoding sensitivities +extending well into the -40 dB range. Early tests have shown these +modes frequently spanning intercontinental distances on the 2200 m and +630 m bands. Further details and operating hints can be found in the +"Quick-Start Guide to FST4 and FST4W", posted on the WSJT web site: + +https://physics.princeton.edu/pulsar/k1jt/FST4_Quick_Start.pdf + +WSJT-X 2.3.0-rc1 is a beta-quality release candidate for a program +upgrade that provides a number of new features and capabilities. +These include: + + - New modes FST4 and FST4W + + - The *On Dx Echo* Doppler compensation method has been modified in + response to feedback from Users. Basic functionality is unchanged. + See the User Guide (Section 8.1) for more information. + + Release: WSJT-X 2.2.2 June 22, 2020 --------------------- diff --git a/Release_Notes.txt b/Release_Notes.txt index 22fca397b..cc73dc071 100644 --- a/Release_Notes.txt +++ b/Release_Notes.txt @@ -14,13 +14,26 @@ Copyright 2001 - 2020 by Joe Taylor, K1JT. Release: WSJT-X 2.3.0-rc1 - Sept DD, 2020 + Sept 28, 2020 ------------------------- +WSJT-X 2.3.0 is a program upgrade offering two new modes designed +especially for use on the LF and MF bands. FST4 is for 2-way QSOs, +and FST4W is for WSPR-like transmissions. Both modes offer a range of +options for T/R sequence lengths and threshold decoding sensitivities +extending well into the -40 dB range. Early tests have shown these +modes frequently spanning intercontinental distances on the 2200 m and +630 m bands. Further details and operating hints can be found in the +"Quick-Start Guide to FST4 and FST4W", posted on the WSJT web site: + +https://physics.princeton.edu/pulsar/k1jt/FST4_Quick_Start.pdf + WSJT-X 2.3.0-rc1 is a beta-quality release candidate for a program upgrade that provides a number of new features and capabilities. These include: + - New modes FST4 and FST4W + - The *On Dx Echo* Doppler compensation method has been modified in response to feedback from Users. Basic functionality is unchanged. See the User Guide (Section 8.1) for more information. diff --git a/Versions.cmake b/Versions.cmake index 230f0e58d..ab6753cf6 100644 --- a/Versions.cmake +++ b/Versions.cmake @@ -2,5 +2,5 @@ set (WSJTX_VERSION_MAJOR 2) set (WSJTX_VERSION_MINOR 3) set (WSJTX_VERSION_PATCH 0) -set (WSJTX_RC 0) # release candidate number, comment out or zero for development versions +set (WSJTX_RC 1) # release candidate number, comment out or zero for development versions set (WSJTX_VERSION_IS_RELEASE 0) # set to 1 for final release build From f12f481955828af1b4f28491858c67f05bc278c6 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 26 Sep 2020 17:47:38 +0100 Subject: [PATCH 517/520] Remove unused member variable that breaks the Raspberry Pi build --- Audio/soundout.cpp | 3 +-- Audio/soundout.h | 6 ++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Audio/soundout.cpp b/Audio/soundout.cpp index 5e89de147..fe7c58fbf 100644 --- a/Audio/soundout.cpp +++ b/Audio/soundout.cpp @@ -51,7 +51,7 @@ void SoundOutput::setFormat (QAudioDeviceInfo const& device, unsigned channels, m_framesBuffered = frames_buffered; } -void SoundOutput::restart (AudioDevice * source) +void SoundOutput::restart (QIODevice * source) { if (!m_device.isNull ()) { @@ -111,7 +111,6 @@ void SoundOutput::restart (AudioDevice * source) #endif } m_stream->setCategory ("production"); - m_source = source; m_stream->start (source); // qDebug () << "SoundOut selected buffer size (bytes):" << m_stream->bufferSize () << "period size:" << m_stream->periodSize (); } diff --git a/Audio/soundout.h b/Audio/soundout.h index 95efaeb15..76711660d 100644 --- a/Audio/soundout.h +++ b/Audio/soundout.h @@ -6,9 +6,8 @@ #include #include #include -#include -class AudioDevice; +class QIODevice; class QAudioDeviceInfo; // An instance of this sends audio data to a specified soundcard. @@ -30,7 +29,7 @@ public: public Q_SLOTS: void setFormat (QAudioDeviceInfo const& device, unsigned channels, int frames_buffered = 0); - void restart (AudioDevice *); + void restart (QIODevice *); void suspend (); void resume (); void reset (); @@ -52,7 +51,6 @@ private: QAudioDeviceInfo m_device; unsigned m_channels; QScopedPointer m_stream; - QPointer m_source; int m_framesBuffered; qreal m_volume; bool error_; From e8808ebc5489ea225c2da0b3d3ba97f70f5c7cb3 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 26 Sep 2020 21:07:35 +0100 Subject: [PATCH 518/520] Remove unnecessary stop of the input audio stream after error notifications --- Audio/soundin.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Audio/soundin.cpp b/Audio/soundin.cpp index 00129311a..92368016b 100644 --- a/Audio/soundin.cpp +++ b/Audio/soundin.cpp @@ -37,10 +37,6 @@ bool SoundInput::checkStream () result = true; break; } - if (!result) - { - stop (); - } } return result; } From 32036cd36f0e1600b2b77c9c4922dcd1e33e482c Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 26 Sep 2020 21:08:43 +0100 Subject: [PATCH 519/520] Correct slot function signatures due to Raspberry Pi compile error --- widgets/astro.cpp | 12 ++++++------ widgets/astro.h | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/widgets/astro.cpp b/widgets/astro.cpp index cf4a05274..87ca7224f 100644 --- a/widgets/astro.cpp +++ b/widgets/astro.cpp @@ -269,14 +269,14 @@ void Astro::check_split () } } -void Astro::on_rbFullTrack_clicked() +void Astro::on_rbFullTrack_clicked(bool) { m_DopplerMethod = 1; check_split (); Q_EMIT tracking_update (); } -void Astro::on_rbOnDxEcho_clicked() //on_rbOnDxEcho_clicked(bool checked) +void Astro::on_rbOnDxEcho_clicked(bool) { m_DopplerMethod = 4; check_split (); @@ -287,28 +287,28 @@ void Astro::on_rbOnDxEcho_clicked() //on_rbOnDxEcho_clicked(bool checked) Q_EMIT tracking_update (); } -void Astro::on_rbOwnEcho_clicked() +void Astro::on_rbOwnEcho_clicked(bool) { m_DopplerMethod = 3; check_split (); Q_EMIT tracking_update (); } -void Astro::on_rbCallDx_clicked() +void Astro::on_rbCallDx_clicked(bool) { m_DopplerMethod = 5; check_split (); Q_EMIT tracking_update (); } -void Astro::on_rbConstFreqOnMoon_clicked() +void Astro::on_rbConstFreqOnMoon_clicked(bool) { m_DopplerMethod = 2; check_split (); Q_EMIT tracking_update (); } -void Astro::on_rbNoDoppler_clicked() +void Astro::on_rbNoDoppler_clicked(bool) { m_DopplerMethod = 0; Q_EMIT tracking_update (); diff --git a/widgets/astro.h b/widgets/astro.h index 937c11494..a2474072f 100644 --- a/widgets/astro.h +++ b/widgets/astro.h @@ -55,12 +55,12 @@ protected: void closeEvent (QCloseEvent *) override; private slots: - void on_rbConstFreqOnMoon_clicked(); - void on_rbFullTrack_clicked(); - void on_rbOwnEcho_clicked(); - void on_rbNoDoppler_clicked(); - void on_rbOnDxEcho_clicked(); - void on_rbCallDx_clicked(); + void on_rbConstFreqOnMoon_clicked(bool); + void on_rbFullTrack_clicked(bool); + void on_rbOwnEcho_clicked(bool); + void on_rbNoDoppler_clicked(bool); + void on_rbOnDxEcho_clicked(bool); + void on_rbCallDx_clicked(bool); void on_cbDopplerTracking_toggled(bool); private: From 24b9da7c1b632d0ed1cbbac0cd60863f7c542672 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sat, 26 Sep 2020 21:09:45 +0100 Subject: [PATCH 520/520] Enable RC nag message and time limit --- widgets/mainwindow.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 2774cad8b..682fb9ad1 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1043,14 +1043,14 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, void MainWindow::not_GA_warning_message () { - // MessageBox::critical_message (this, - // "This is a pre-release version of WSJT-X 2.2.0 made\n" - // "available for testing purposes. By design it will\n" - // "be nonfunctional after 0000 UTC on June 10, 2020."); - // auto now = QDateTime::currentDateTimeUtc (); - // if (now >= QDateTime {{2020, 6, 10}, {0, 0}, Qt::UTC}) { - // Q_EMIT finished (); - // } + MessageBox::critical_message (this, + "This is a pre-release version of WSJT-X 2.3.0 made\n" + "available for testing purposes. By design it will\n" + "be nonfunctional after 0000 UTC on Nov 17, 2020."); + auto now = QDateTime::currentDateTimeUtc (); + if (now >= QDateTime {{2020, 11, 17}, {0, 0}, Qt::UTC}) { + Q_EMIT finished (); + } } void MainWindow::initialize_fonts ()