Merged from trunk:

------------------------------------------------------------------------
r7997 | k1jt | 2017-08-03 19:18:34 +0100 (Thu, 03 Aug 2017) | 2 lines

More User Guide updates.

------------------------------------------------------------------------
r7998 | bsomervi | 2017-08-04 19:03:54 +0100 (Fri, 04 Aug 2017) | 5 lines

Optimize decoded text display to limit heap usage

Decoded  text line  now  use  considerably less  heap  memory as  they
accumulate. This change also limits the maximum number of decode lines
saved per session to 5000.
------------------------------------------------------------------------
r7999 | k1jt | 2017-08-04 19:07:23 +0100 (Fri, 04 Aug 2017) | 1 line

Text and figs for User Guide on Frequency Calibration.  Still need same for Reference Spectrum and Equalization.
------------------------------------------------------------------------
r8000 | bsomervi | 2017-08-04 23:00:20 +0100 (Fri, 04 Aug 2017) | 1 line

Add missing MOC generated source include
------------------------------------------------------------------------
r8001 | bsomervi | 2017-08-04 23:00:35 +0100 (Fri, 04 Aug 2017) | 1 line

Remove \r and \n from process stdout so Windows looks like everthing else
------------------------------------------------------------------------



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx-1.8@8002 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Bill Somerville 2017-08-04 22:12:06 +00:00
parent 445882b7bc
commit 3b48f94e4d
21 changed files with 196 additions and 131 deletions

View File

@ -8,6 +8,8 @@
#include "revision_utils.hpp"
#include "pimpl_impl.hpp"
#include "moc_SplashScreen.cpp"
class SplashScreen::impl
{
public:

View File

@ -8,7 +8,7 @@
class SplashScreen final
: public QSplashScreen
{
Q_OBJECT;
Q_OBJECT
public:
SplashScreen ();

View File

@ -3,8 +3,8 @@
#include <QMouseEvent>
#include <QDateTime>
#include <QTextCharFormat>
#include <QFont>
#include <QTextCursor>
#include <QTextBlock>
#include "qt_helpers.hpp"
@ -13,25 +13,28 @@
DisplayText::DisplayText(QWidget *parent) :
QTextEdit(parent)
{
setReadOnly (true);
viewport ()->setCursor (Qt::ArrowCursor);
setWordWrapMode (QTextOption::NoWrap);
setStyleSheet ("");
setReadOnly (true);
viewport ()->setCursor (Qt::ArrowCursor);
setWordWrapMode (QTextOption::NoWrap);
document ()->setMaximumBlockCount (5000); // max lines to limit heap usage
}
void DisplayText::setContentFont(QFont const& font)
{
setFont (font);
m_charFormat.setFont (font);
char_font_ = font;
selectAll ();
auto cursor = textCursor ();
cursor.mergeCharFormat (m_charFormat);
cursor.beginEditBlock ();
auto char_format = cursor.charFormat ();
char_format.setFont (char_font_);
cursor.mergeCharFormat (char_format);
cursor.clearSelection ();
cursor.movePosition (QTextCursor::End);
// position so viewport scrolled to left
cursor.movePosition (QTextCursor::Up);
cursor.movePosition (QTextCursor::StartOfLine);
cursor.endEditBlock ();
setTextCursor (cursor);
ensureCursorVisible ();
@ -50,32 +53,38 @@ void DisplayText::insertLineSpacer(QString const& line)
appendText (line, "#d3d3d3");
}
void DisplayText::appendText(QString const& text, QString const& bg)
void DisplayText::appendText(QString const& text, QColor bg)
{
QString escaped {text.trimmed().replace('<',"&lt;").replace('>',"&gt;").replace(' ', "&nbsp;")};
QString s = "<table border=0 cellspacing=0 width=100%><tr><td bgcolor=\"" +
bg + "\">" + escaped + "</td></tr></table>";
auto cursor = textCursor ();
cursor.movePosition (QTextCursor::End);
auto pos = cursor.position ();
cursor.insertHtml (s);
cursor.setPosition (pos, QTextCursor::MoveAnchor);
cursor.movePosition (QTextCursor::End, QTextCursor::KeepAnchor);
cursor.mergeCharFormat (m_charFormat);
cursor.clearSelection ();
auto cursor = textCursor ();
cursor.movePosition (QTextCursor::End);
auto block_format = cursor.blockFormat ();
block_format.setBackground (bg);
if (0 == cursor.position ())
{
cursor.setBlockFormat (block_format);
auto char_format = cursor.charFormat ();
char_format.setFont (char_font_);
cursor.setCharFormat (char_format);
}
else
{
cursor.insertBlock (block_format);
}
cursor.insertText (text);
// position so viewport scrolled to left
cursor.movePosition (QTextCursor::Up);
cursor.movePosition (QTextCursor::StartOfLine);
setTextCursor (cursor);
ensureCursorVisible ();
// position so viewport scrolled to left
cursor.movePosition (QTextCursor::Up);
cursor.movePosition (QTextCursor::StartOfLine);
setTextCursor (cursor);
ensureCursorVisible ();
document ()->setMaximumBlockCount (document ()->maximumBlockCount ());
}
QString DisplayText::_appendDXCCWorkedB4(QString message, QString const& callsign, QString * bg,
LogBook logBook, QColor color_CQ,
QColor color_DXCC,
QColor color_NewCall)
QString DisplayText::appendDXCCWorkedB4(QString message, QString const& callsign, QColor * bg,
LogBook logBook, QColor color_CQ,
QColor color_DXCC,
QColor color_NewCall)
{
QString call = callsign;
QString countryName;
@ -110,18 +119,18 @@ QString DisplayText::_appendDXCCWorkedB4(QString message, QString const& callsig
if (!countryWorkedBefore) // therefore not worked call either
{
message += "!";
*bg = color_DXCC.name();
*bg = color_DXCC;
}
else
if (!callWorkedBefore) // but have worked the country
{
message += "~";
*bg = color_NewCall.name();
*bg = color_NewCall;
}
else
{
message += " "; // have worked this call before
*bg = color_CQ.name();
*bg = color_CQ;
}
charsAvail -= 1;
@ -165,14 +174,14 @@ void DisplayText::displayDecodedText(DecodedText decodedText, QString myCall,
QColor color_CQ, QColor color_MyCall,
QColor color_DXCC, QColor color_NewCall)
{
QString bg="white";
QColor bg {Qt::white};
bool CQcall = false;
if (decodedText.string ().contains (" CQ ")
|| decodedText.string ().contains (" CQDX ")
|| decodedText.string ().contains (" QRZ "))
{
CQcall = true;
bg=color_CQ.name();
bg = color_CQ;
}
if (myCall != "" and (
decodedText.indexOf (" " + myCall + " ") >= 0
@ -180,14 +189,14 @@ void DisplayText::displayDecodedText(DecodedText decodedText, QString myCall,
or decodedText.indexOf ("/" + myCall + " ") >= 0
or decodedText.indexOf ("<" + myCall + " ") >= 0
or decodedText.indexOf (" " + myCall + ">") >= 0)) {
bg=color_MyCall.name();
bg = color_MyCall;
}
// if enabled add the DXCC entity and B4 status to the end of the
// preformated text line t1
auto message = decodedText.string ();
if (displayDXCCEntity && CQcall)
message = _appendDXCCWorkedB4 (message, decodedText.CQersCall (), &bg, logBook, color_CQ,
color_DXCC, color_NewCall);
message = appendDXCCWorkedB4 (message, decodedText.CQersCall (), &bg, logBook, color_CQ,
color_DXCC, color_NewCall);
appendText (message, bg);
}
@ -195,7 +204,6 @@ void DisplayText::displayDecodedText(DecodedText decodedText, QString myCall,
void DisplayText::displayTransmittedText(QString text, QString modeTx, qint32 txFreq,
QColor color_TxMsg, bool bFastMode)
{
QString bg=color_TxMsg.name();
QString t1=" @ ";
if(modeTx=="FT8") t1=" ~ ";
if(modeTx=="JT4") t1=" $ ";
@ -211,12 +219,11 @@ void DisplayText::displayTransmittedText(QString text, QString modeTx, qint32 tx
t = QDateTime::currentDateTimeUtc().toString("hhmm") + \
" Tx " + t2 + t1 + text;
}
appendText(t,bg);
appendText (t, color_TxMsg);
}
void DisplayText::displayQSY(QString text)
{
QString t = QDateTime::currentDateTimeUtc().toString("hhmmss") + " " + text;
QString bg="hot pink";
appendText(t,bg);
appendText (t, "hotpink");
}

View File

@ -3,39 +3,39 @@
#define DISPLAYTEXT_H
#include <QTextEdit>
#include <QFont>
#include "logbook/logbook.h"
#include "decodedtext.h"
class DisplayText : public QTextEdit
class DisplayText
: public QTextEdit
{
Q_OBJECT
Q_OBJECT
public:
explicit DisplayText(QWidget *parent = 0);
explicit DisplayText(QWidget *parent = 0);
void setContentFont (QFont const&);
void insertLineSpacer(QString const&);
void displayDecodedText(DecodedText decodedText, QString myCall, bool displayDXCCEntity,
LogBook logBook, QColor color_CQ, QColor color_MyCall,
QColor color_DXCC, QColor color_NewCall);
void displayTransmittedText(QString text, QString modeTx, qint32 txFreq,
QColor color_TxMsg, bool bFastMode);
void displayQSY(QString text);
void setContentFont (QFont const&);
void insertLineSpacer(QString const&);
void displayDecodedText(DecodedText decodedText, QString myCall, bool displayDXCCEntity,
LogBook logBook, QColor color_CQ, QColor color_MyCall,
QColor color_DXCC, QColor color_NewCall);
void displayTransmittedText(QString text, QString modeTx, qint32 txFreq,
QColor color_TxMsg, bool bFastMode);
void displayQSY(QString text);
signals:
void selectCallsign(bool alt, bool ctrl);
Q_SIGNAL void selectCallsign (bool alt, bool ctrl);
public slots:
void appendText(QString const& text, QString const& bg = "white");
Q_SLOT void appendText (QString const& text, QColor bg = Qt::white);
protected:
void mouseDoubleClickEvent(QMouseEvent *e);
void mouseDoubleClickEvent(QMouseEvent *e);
private:
QString _appendDXCCWorkedB4(QString message, QString const& callsign, QString * bg, LogBook logBook,
QColor color_CQ, QColor color_DXCC, QColor color_NewCall);
QString appendDXCCWorkedB4(QString message, QString const& callsign, QColor * bg, LogBook logBook,
QColor color_CQ, QColor color_DXCC, QColor color_NewCall);
QTextCharFormat m_charFormat;
QFont char_font_;
};
#endif // DISPLAYTEXT_H

View File

@ -22,6 +22,7 @@ set (UG_SRCS
controls-functions-status-bar.adoc
controls-functions-wide-graph.adoc
cooperating-programs.adoc
decoder_notes.adoc
faq.adoc
font-sizes.adoc
install-from-source.adoc
@ -29,11 +30,11 @@ set (UG_SRCS
install-mac.adoc
install-windows.adoc
introduction.adoc
measurement_tools.adoc
protocols.adoc
logging.adoc
make-qso.adoc
new_features.adoc
odds_and_ends.adoc
platform-dependencies.adoc
protocols.adoc
settings-advanced.adoc

View File

@ -25,7 +25,7 @@ and audio Tx frequency.
* Check the box *Lock Tx=Rx* to make the frequencies always track one
another.
TIP: In general we do not recommend using *Lock Tx=Rx* since it
IMPORTANT: In general we do not recommend using *Lock Tx=Rx* since it
encourages poor radio etiquette when running a frequency. With this
box checked, your own Tx frequency will move around following your
callers.

View File

@ -90,15 +90,3 @@ End of line information::
`R` - Return code from QRA64 decoder +
`T` - Length of analyzed region (s)
=== Reference Spectrum
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 *File* menu.
Wait for about a minute and then hit the *Stop* button. A file named
`refspec.dat` should appear in your log directory.
[ ... more to come ...]

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -31,10 +31,10 @@ lie in the range 30 to 1 dB, and values are significantly compressed
above about -10 dB. JT9 supports the extended range 50 to +49 dB and
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 -23 dB for JT4, 24 dB for
JT65, 26 dB for JT9.
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.
=== Free-Text Messages
@ -50,11 +50,11 @@ or rag-chewing.
=== Auto-Sequencing
The slow modes JT4, JT9, JT65, and QRA64 allow nearly 10 seconds at
the end of each one-minute receiving sequence in which you can inspect
decoded messages and decide how to reply. With its 15-second T/R
cycles, FT8 allows only about two seconds for this task. For this
reason a basic auto-sequencing feature is offered. Check *Auto Seq*
on the main window to enable this feature:
the end of each one-minute receiving sequence -- enough time for you
to inspect decoded messages and decide how to reply. The 15-second
T/R cycles of FT8 allow only about two seconds for this task, which is
often not enough. For this reason a basic auto-sequencing feature is
offered. Check *Auto Seq* on the main window to enable this feature:
image::auto-seq.png[align="center",alt="AutoSeq"]
@ -62,7 +62,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.
TIP: When *Auto-Seq* is enabled the program will de-activate *Enable
NOTE: When *Auto-Seq* is enabled the program de-activates *Enable
Tx* at the end of each QSO. We do not want _WSJT-X_ to make fully
automated QSOs.
@ -129,7 +129,7 @@ In each case, the compound callsign is treated as *Type 2* because the
add-on prefix or suffix is _not_ one of those in the fixed list. Note
that a second callsign is never permissible in these messages.
TIP: During a transmission your outgoing message is displayed in the
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
transmitting the message you wish to send.

View File

@ -0,0 +1,74 @@
=== Frequency Calibration
Many _WSJT-X_ capabilities depend on signal-detection bandwidths 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
on-the-air signals. The calibration procedure works by automatically
cycling your CAT-controlled radio through a series of preset
frequencies of carrier-based signals at reliably known frequencies,
measuring the error in dial frequency for each signal.
You will probably find it convenient to define and use a special
<<CONFIG-MENU,Configuration>> dedicated to frequency calibration.
Then complete the following steps, as appropriate for your system.
- Switch to FreqCal mode
- In the _Working Frequencies_ box on the *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.
TIP: We find major-city AM broadcast stations generally serve well as
frequency calibrators at the low frequency end of the spectrum. In
North America we also use the standard time-and-frequency broadcasts
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.
- During the calibration procedure, the radio's USB dial frequency is
offset 1500 Hz below each *FreqCal* entry in the default frequencies
list. As shown in the ecreen shot below, detected signal carriers
therefore appear at about 1500 Hz in the WSJT-X waterfall.
image::FreqCal.png[align="left",alt="FreqCal"]
With modern synthesized radios, small measured offsets from 1500 Hz
will exhibit a straight-line dependence on frequency. You can
approximate the calibration of your radio by simply dividing the
measured frequency offset (in Hz) at the highest reliable frequency by
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.
A more precise calibration can be effected by fitting the intercept
and slope of a straight line to the whole sequence of calibration
measurements, as shown for these measurements in the graph plotted
below. Software tools for completing this task are included with the
_WSJT-X_ installation, and detailed instructions for their use are
available at https://physics.princeton.edu/pulsar/k1jt/FMT_User.pdf.
Using these tools and no specialized hardware beyond your
CAT-interfaced radio, you can calibrate the radio to better than 1 Hz
and compete very effectively in the ARRL's periodic Frequency
Measuring Tests.
image::FreqCal_Graph.png[align="left",alt="FreqCal_Graph"]
=== Reference Spectrum
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.
[ ... TBD ... ]
=== Equalization
[ ... TBD ... ]

View File

@ -17,15 +17,15 @@ added to _WSJT-X_ since Version 1.7.0:
windows
- New set of suggested default frequencies specific to the three IARU
Regions.
regions
- Enhanced scheme for managing table of suggested default operating
frequencies
- Improved CAT control for many radios, including those controlled
through Commander or OmniRig.
through Commander or OmniRig
- Bug fixes and tweaks to user interface
- Bug fixes and minor tweaks to user interface
=== Documentation Conventions

View File

@ -11,10 +11,6 @@ purposes a good setting is 6 or 7.
decodes using Deep Search. Higher numbers will display results
with lower confidence levels.
- Check *FT8 and MSK144 Contest Mode* to enable generation and
auto-sequencing of MSK144 messages with four-character grid locators
in place of signal reports.
- Check *Two-pass decoding* to enable a second decoding pass after
signals producing first-pass decodes have been subtracted from the
received data stream.
@ -35,6 +31,10 @@ IMPORTANT: For the health of your T/R relays and external
preamplifier, we strongly recommend using a hardware sequencer and
testing to make sure that sequencing is correct.
- Check *FT8 and MSK144 Contest Mode* to enable generation and
auto-sequencing of MSK144 messages with four-character grid locators
in place of signal reports.
- Check *x 2 Tone spacing* to generate Tx audio with twice the normal
tone spacing. This feature is intended for use with specialized LF/MF
transmitters that divide the audio waveform by 2 before further

View File

@ -37,5 +37,5 @@ window is displayed.
- _Remember power settings by band_: Checking either of these will
cause _WSJT-X_ to remember the *Pwr* slider setting for that operation
on a band-by-band basis. For example, when *Tune* is checked here and
you click the *Tune* on the main window, the power slider will change
to the most recent setting used for *Tune* on the band in use.
you click the *Tune* button on the main window, the power slider will
change to the most recent setting used for *Tune* on the band in use.

View File

@ -17,6 +17,6 @@ NOTE: If you are using a callsign with an add-on prefix or
suffix, or wish to work a station using such a call, be sure to read
the section <<COMP-CALL,Compound Callsigns>>.
IMPORTANT: Enabling VHF/UHF/Microwave features necessarily disables
the wideband multi-decode capability of JT65. In most circumstances
you should turn this feature off when operating at HF.
NOTE: Enabling VHF/UHF/Microwave features necessarily disables the
wideband multi-decode capability of JT65. In most circumstances you
should turn this feature off when operating at HF.

View File

@ -2,9 +2,9 @@
image::RadioTab.png[align="center",alt="Radio Tab"]
_WSJT-X_ offers CAT (Computer Aided Transceiver) control of the
relevant features of most modern transceivers. To configure the
program for your radio, select the *Radio* tab.
_WSJT-X_ offers CAT (Computer Aided Transceiver) control of relevant
features of most modern transceivers. To configure the program for
your radio, select the *Radio* tab.
- Select your radio type from the drop-down list labeled *Rig*, or
*None* if you do not wish to use CAT control.

View File

@ -2,13 +2,13 @@
- SSB transceiver and antenna
- Computer running Windows (XP or later), Linux, or OS X
- 1.5 GHz or faster CPU and 200 MB of available memory. (MSK144
especially benefits from a multi-core CPU)
- 1.5 GHz or faster CPU and 200 MB of available memory; faster
machines are better
- Monitor with at least 1024 x 780 resolution
- Computer-to-radio interface using a serial port or equivalent USB
device for T/R switching, or CAT control, or VOX, as required for
your radio-to-computer connections
- Audio input and output devices supported by the operating system and
configured for sample rate 48000 Hz.
configured for sample rate 48000 Hz, 16 bits
- Audio or equivalent USB connections between transceiver and computer
- A means for synchronizing the computer clock to UTC within ±1 second

View File

@ -46,9 +46,9 @@ clicks or glitches. Make sure that this is true even when you
simultaneously use the computer to do other tasks such as email, web
browsing, etc.
* Adjust the *Pwr" slider (at the right edge of the main window)
downward from its maximum until the RF output from your transmitter
falls slightly. This is generally a good level for audio drive.
* Adjust the *Pwr* slider (at right edge of main window) downward from
its maximum until the RF output from your transmitter falls slightly.
This is generally a good level for audio drive.
* Toggle the *Tune* button once more or click *Halt Tx* to stop your
test transmission.

View File

@ -46,5 +46,5 @@ This behavior is desirable so that you will not inadvertently change
your Tx frequency to that of a tail-ender who called you somewhere
else in the FT8 subband.
IMPORTANT: When finished with this Tutorial, dont forget to re-enter
IMPORTANT: When finished with this Tutorial, don't forget to re-enter
your own callsign as *My Call* on the *Settings | General* tab.

View File

@ -68,7 +68,7 @@ include::install-from-source.adoc[]
Select *Settings* from the *File* menu or by typing *F2*. (On
Macintosh select *Preferences* from the _WSJT-X_ menu, or use the
keyboard shortcut *Cmd+,*). The following sections describe setup
options available on each of seven tabs selectable near the top of the
options available on each of eight tabs selectable near the top of the
window.
[[GENERAL]]
@ -110,12 +110,12 @@ include::transceiver-setup.adoc[]
[[TUTORIAL]]
== Basic Operating Tutorial
<<TUT_MAIN,Sections 6.1>> through <<TUT_EX2,6.4>> introduce basic user
controls and program behavior of _WSJT-X_. We suggest that new users
should go through the full HF-oriented tutorial, preferably while at
your radio. Subsequent sections cover additional details on
<<MAKE_QSOS,Making QSOs>>, <<WSPR,WSPR mode>> and <<VHF_AND_UP,VHF+
Features>>.
This section introduces the basic user controls and program behavior
of _WSJT-X_, with particular emphasis on the JT9, JT65, and FT8 modes.
We suggest that new users should go through the full HF-oriented
tutorial, preferably while at your radio. Subsequent sections cover
additional details on <<MAKE_QSOS,Making QSOs>>, <<WSPR,WSPR mode>>
and <<VHF_AND_UP,VHF+ Features>>.
[[TUT_MAIN]]
=== Main Window Settings
@ -184,9 +184,13 @@ include::controls-functions-wide-graph.adoc[]
== Logging
include::logging.adoc[]
[[ODDS_AND_ENDS]]
== Odds and Ends
include::odds_and_ends.adoc[]
[[DECODER_NOTES]]
== Decoder Notes
include::decoder_notes.adoc[]
[[MEASUREMENT_TOOLS]]
== Measurement Tools
include::measurement_tools.adoc[]
[[COOP_PGMS]]
== Cooperating Programs
@ -213,17 +217,6 @@ include::astro_data.adoc[]
== Utility Programs
include::utilities.adoc[]
////
[[TXRX]]
== Implementation Details
include::implementation.adoc[]
[[TROUBLE_SHOOTING]]
== Troubleshooting
To be added (?) ...
////
[[SUPPORT]]
== Support
include::support.adoc[]

View File

@ -2718,7 +2718,7 @@ void MainWindow::readFromStdout() //readFromStdout
}
DecodedText decodedtext;
decodedtext = t.replace(QChar::LineFeed,""); //t.replace(QChar::LineFeed,"").mid(0,t.length()-4);
decodedtext = QString::fromUtf8 (t.constData ()).remove (QRegularExpression {"\r|\n"});
//Left (Band activity) window
if(!bAvgMsg) {