Fixed issue where the "none" selection didn't work quite right. Also

fixed the T/R meter switching to clear out invalid readings.
merge-requests/6/head
Elliott Liggett 2021-08-20 22:19:47 -07:00
rodzic 064d9cc2ce
commit d9a9a3ba2b
3 zmienionych plików z 32 dodań i 7 usunięć

Wyświetl plik

@ -48,13 +48,23 @@ meter::meter(QWidget *parent) : QWidget(parent)
}
void meter::setMeterType(meterKind type)
void meter::clearMeterOnPTTtoggle()
{
if(type == meterType)
return;
// When a meter changes type, such as the fixed S -- TxPo meter,
// there is automatic clearing. However, some meters do not switch on thier own,
// and thus we are providing this clearing method. We are careful
// not to clear meters that don't make sense to clear (such as Vd and Id)
meterType = type;
// clear average and peak vectors:
if( (meterType == meterALC) || (meterType == meterSWR)
|| (meterType == meterComp) || (meterType == meterTxMod) )
{
clearMeter();
}
}
void meter::clearMeter()
{
current = 0;
average = 0;
peak = 0;
@ -70,6 +80,16 @@ void meter::setMeterType(meterKind type)
update();
}
void meter::setMeterType(meterKind type)
{
if(type == meterType)
return;
meterType = type;
// clear average and peak vectors:
this->clearMeter();
}
meterKind meter::getMeterType()
{
return meterType;
@ -140,6 +160,9 @@ void meter::paintEvent(QPaintEvent *)
peakRedLevel = 100;
drawScaleComp(&painter);
break;
case meterNone:
return;
break;
default:
label = "DN";
peakRedLevel = 241;

Wyświetl plik

@ -24,6 +24,8 @@ public slots:
void updateDrawing(int num);
void setLevels(int current, int peak, int average);
void setLevel(int current);
void clearMeterOnPTTtoggle();
void clearMeter();
void setMeterType(meterKind type);
void setMeterShortString(QString);
QString getMeterShortString();
@ -47,8 +49,6 @@ private:
std::vector<unsigned char> avgLevels;
std::vector<unsigned char> peakLevels;
int peakRedLevel=0;
bool drawLabels = true;
int mXstart = 0; // Starting point for S=0.

Wyświetl plik

@ -2407,6 +2407,7 @@ void wfmain::doCmd(commandtype cmddata)
{
bool pttrequest = (*std::static_pointer_cast<bool>(data));
emit setPTT(pttrequest);
ui->meter2Widget->clearMeterOnPTTtoggle();
if(pttrequest)
{
ui->meterSPoWidget->setMeterType(meterPower);
@ -5257,6 +5258,7 @@ void wfmain::on_meter2selectionCombo_activated(int index)
if(newMeterType==meterNone)
{
ui->meter2Widget->hide();
ui->meter2Widget->setMeterType(newMeterType);
} else {
ui->meter2Widget->show();
ui->meter2Widget->setMeterType(newMeterType);