Removed warnings, added XY-plot data next to cursor
This commit is contained in:
parent
37bd9a0435
commit
1b003cc481
@ -44,7 +44,7 @@ void TraceMarker::setTimeDomain(bool timeDomain)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this->timeDomain = timeDomain;
|
this->timeDomain = timeDomain;
|
||||||
// TODO handle changed setting and everything
|
|
||||||
if(timeDomain) {
|
if(timeDomain) {
|
||||||
// need to delete this marker if the TDR data of the trace is no longer available
|
// need to delete this marker if the TDR data of the trace is no longer available
|
||||||
connect(parentTrace, &Trace::changedTDRstate, [=](bool tdr_available){
|
connect(parentTrace, &Trace::changedTDRstate, [=](bool tdr_available){
|
||||||
|
@ -99,7 +99,7 @@ void TracePlot::contextMenuEvent(QContextMenuEvent *event)
|
|||||||
|
|
||||||
void TracePlot::paintEvent(QPaintEvent *event)
|
void TracePlot::paintEvent(QPaintEvent *event)
|
||||||
{
|
{
|
||||||
|
Q_UNUSED(event)
|
||||||
auto pref = Preferences::getInstance();
|
auto pref = Preferences::getInstance();
|
||||||
QPainter p(this);
|
QPainter p(this);
|
||||||
// p.setRenderHint(QPainter::Antialiasing);
|
// p.setRenderHint(QPainter::Antialiasing);
|
||||||
@ -172,6 +172,7 @@ void TracePlot::mousePressEvent(QMouseEvent *event)
|
|||||||
|
|
||||||
void TracePlot::mouseReleaseEvent(QMouseEvent *event)
|
void TracePlot::mouseReleaseEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
|
Q_UNUSED(event)
|
||||||
selectedMarker = nullptr;
|
selectedMarker = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -298,6 +298,7 @@ void TraceXYPlot::draw(QPainter &p)
|
|||||||
case YAxisType::Impulse: labelY = "Impulse Response"; break;
|
case YAxisType::Impulse: labelY = "Impulse Response"; break;
|
||||||
case YAxisType::Step: labelY = "Step Response"; break;
|
case YAxisType::Step: labelY = "Step Response"; break;
|
||||||
case YAxisType::Impedance: labelY = "Impedance"; break;
|
case YAxisType::Impedance: labelY = "Impedance"; break;
|
||||||
|
default: break;
|
||||||
}
|
}
|
||||||
auto xStart = i == 0 ? 0 : w.width() - AxisLabelSize * 1.5;
|
auto xStart = i == 0 ? 0 : w.width() - AxisLabelSize * 1.5;
|
||||||
p.save();
|
p.save();
|
||||||
@ -719,6 +720,14 @@ QPoint TraceXYPlot::plotValueToPixel(QPointF plotValue, int Yaxis)
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QPointF TraceXYPlot::pixelToPlotValue(QPoint pixel, int Yaxis)
|
||||||
|
{
|
||||||
|
QPointF p;
|
||||||
|
p.setX(Util::Scale<double>(pixel.x(), plotAreaLeft, plotAreaLeft + plotAreaWidth, XAxis.rangeMin, XAxis.rangeMax));
|
||||||
|
p.setY(Util::Scale<double>(pixel.y(), plotAreaBottom, 0, YAxis[Yaxis].rangeMin, YAxis[Yaxis].rangeMax));
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
QPoint TraceXYPlot::markerToPixel(TraceMarker *m)
|
QPoint TraceXYPlot::markerToPixel(TraceMarker *m)
|
||||||
{
|
{
|
||||||
QPoint ret = QPoint();
|
QPoint ret = QPoint();
|
||||||
@ -791,3 +800,47 @@ void TraceXYPlot::traceDropped(Trace *t, QPoint position)
|
|||||||
enableTraceAxis(t, 1, true);
|
enableTraceAxis(t, 1, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString TraceXYPlot::mouseText(QPoint pos)
|
||||||
|
{
|
||||||
|
QString ret;
|
||||||
|
if(QRect(plotAreaLeft, 0, plotAreaWidth + 1, plotAreaBottom).contains(pos)) {
|
||||||
|
// cursor within plot area
|
||||||
|
QPointF coords[2];
|
||||||
|
coords[0] = pixelToPlotValue(pos, 0);
|
||||||
|
coords[1] = pixelToPlotValue(pos, 1);
|
||||||
|
int significantDigits = floor(log10(XAxis.rangeMax)) - floor(log10((XAxis.rangeMax - XAxis.rangeMin) / 1000.0)) + 1;
|
||||||
|
ret += Unit::ToString(coords[0].x(), AxisUnit(XAxis.type), "fpnum kMG", significantDigits) + "\n";
|
||||||
|
for(int i=0;i<2;i++) {
|
||||||
|
if(YAxis[i].type != YAxisType::Disabled) {
|
||||||
|
auto max = qMax(abs(YAxis[i].rangeMax), abs(YAxis[i].rangeMin));
|
||||||
|
auto step = abs(YAxis[i].rangeMax - YAxis[i].rangeMin) / 1000.0;
|
||||||
|
significantDigits = floor(log10(max)) - floor(log10(step)) + 1;
|
||||||
|
ret += Unit::ToString(coords[i].y(), AxisUnit(YAxis[i].type), "fpnum kMG", significantDigits) + "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString TraceXYPlot::AxisUnit(TraceXYPlot::YAxisType type)
|
||||||
|
{
|
||||||
|
switch(type) {
|
||||||
|
case TraceXYPlot::YAxisType::Magnitude: return "db"; break;
|
||||||
|
case TraceXYPlot::YAxisType::Phase: return "°"; break;
|
||||||
|
case TraceXYPlot::YAxisType::VSWR: return ""; break;
|
||||||
|
case TraceXYPlot::YAxisType::Impulse: return ""; break;
|
||||||
|
case TraceXYPlot::YAxisType::Step: return ""; break;
|
||||||
|
case TraceXYPlot::YAxisType::Impedance: return "Ohm"; break;
|
||||||
|
default: return ""; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QString TraceXYPlot::AxisUnit(TraceXYPlot::XAxisType type)
|
||||||
|
{
|
||||||
|
switch(type) {
|
||||||
|
case XAxisType::Frequency: return "Hz"; break;
|
||||||
|
case XAxisType::Time: return "s"; break;
|
||||||
|
case XAxisType::Distance: return "m"; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -63,9 +63,14 @@ private:
|
|||||||
unsigned int numTraceSamples(Trace *t);
|
unsigned int numTraceSamples(Trace *t);
|
||||||
QPoint dataToPixel(Trace::Data d);
|
QPoint dataToPixel(Trace::Data d);
|
||||||
QPoint plotValueToPixel(QPointF plotValue, int Yaxis);
|
QPoint plotValueToPixel(QPointF plotValue, int Yaxis);
|
||||||
|
QPointF pixelToPlotValue(QPoint pixel, int YAxis);
|
||||||
QPoint markerToPixel(TraceMarker *m) override;
|
QPoint markerToPixel(TraceMarker *m) override;
|
||||||
double nearestTracePoint(Trace *t, QPoint pixel) override;
|
double nearestTracePoint(Trace *t, QPoint pixel) override;
|
||||||
void traceDropped(Trace *t, QPoint position) override;
|
void traceDropped(Trace *t, QPoint position) override;
|
||||||
|
QString mouseText(QPoint pos) override;
|
||||||
|
|
||||||
|
static QString AxisUnit(YAxisType type);
|
||||||
|
static QString AxisUnit(XAxisType type);
|
||||||
|
|
||||||
std::set<Trace*> tracesAxis[2];
|
std::set<Trace*> tracesAxis[2];
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ XYplotAxisDialog::XYplotAxisDialog(TraceXYPlot *plot) :
|
|||||||
ui->Y1max->setEnabled(index != 0 && !autoRange);
|
ui->Y1max->setEnabled(index != 0 && !autoRange);
|
||||||
ui->Y1divs->setEnabled(index != 0 && !autoRange);
|
ui->Y1divs->setEnabled(index != 0 && !autoRange);
|
||||||
auto type = (TraceXYPlot::YAxisType) index;
|
auto type = (TraceXYPlot::YAxisType) index;
|
||||||
QString unit = YAxisUnit(type);
|
QString unit = TraceXYPlot::AxisUnit(type);
|
||||||
ui->Y1min->setUnit(unit);
|
ui->Y1min->setUnit(unit);
|
||||||
ui->Y1max->setUnit(unit);
|
ui->Y1max->setUnit(unit);
|
||||||
ui->Y1divs->setUnit(unit);
|
ui->Y1divs->setUnit(unit);
|
||||||
@ -41,7 +41,7 @@ XYplotAxisDialog::XYplotAxisDialog(TraceXYPlot *plot) :
|
|||||||
ui->Y2max->setEnabled(index != 0 && !autoRange);
|
ui->Y2max->setEnabled(index != 0 && !autoRange);
|
||||||
ui->Y2divs->setEnabled(index != 0 && !autoRange);
|
ui->Y2divs->setEnabled(index != 0 && !autoRange);
|
||||||
auto type = (TraceXYPlot::YAxisType) index;
|
auto type = (TraceXYPlot::YAxisType) index;
|
||||||
QString unit = YAxisUnit(type);
|
QString unit = TraceXYPlot::AxisUnit(type);
|
||||||
ui->Y2min->setUnit(unit);
|
ui->Y2min->setUnit(unit);
|
||||||
ui->Y2max->setUnit(unit);
|
ui->Y2max->setUnit(unit);
|
||||||
ui->Y2divs->setUnit(unit);
|
ui->Y2divs->setUnit(unit);
|
||||||
@ -160,30 +160,12 @@ void XYplotAxisDialog::XAxisTypeChanged(int XAxisIndex)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString unit;
|
QString unit = TraceXYPlot::AxisUnit(type);
|
||||||
switch(type) {
|
|
||||||
case TraceXYPlot::XAxisType::Frequency: unit = "Hz"; break;
|
|
||||||
case TraceXYPlot::XAxisType::Time: unit = "s"; break;
|
|
||||||
case TraceXYPlot::XAxisType::Distance: unit = "m"; break;
|
|
||||||
}
|
|
||||||
ui->Xmin->setUnit(unit);
|
ui->Xmin->setUnit(unit);
|
||||||
ui->Xmax->setUnit(unit);
|
ui->Xmax->setUnit(unit);
|
||||||
ui->Xdivs->setUnit(unit);
|
ui->Xdivs->setUnit(unit);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString XYplotAxisDialog::YAxisUnit(TraceXYPlot::YAxisType type)
|
|
||||||
{
|
|
||||||
switch(type) {
|
|
||||||
case TraceXYPlot::YAxisType::Magnitude: return "db"; break;
|
|
||||||
case TraceXYPlot::YAxisType::Phase: return "°"; break;
|
|
||||||
case TraceXYPlot::YAxisType::VSWR: return ""; break;
|
|
||||||
case TraceXYPlot::YAxisType::Impulse: return ""; break;
|
|
||||||
case TraceXYPlot::YAxisType::Step: return ""; break;
|
|
||||||
case TraceXYPlot::YAxisType::Impedance: return "Ohm"; break;
|
|
||||||
default: return ""; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
std::set<TraceXYPlot::YAxisType> XYplotAxisDialog::supportedYAxis(TraceXYPlot::XAxisType type)
|
std::set<TraceXYPlot::YAxisType> XYplotAxisDialog::supportedYAxis(TraceXYPlot::XAxisType type)
|
||||||
{
|
{
|
||||||
set<TraceXYPlot::YAxisType> ret = {TraceXYPlot::YAxisType::Disabled};
|
set<TraceXYPlot::YAxisType> ret = {TraceXYPlot::YAxisType::Disabled};
|
||||||
|
@ -21,7 +21,6 @@ private slots:
|
|||||||
void XAxisTypeChanged(int XAxisIndex);
|
void XAxisTypeChanged(int XAxisIndex);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString YAxisUnit(TraceXYPlot::YAxisType type);
|
|
||||||
std::set<TraceXYPlot::YAxisType> supportedYAxis(TraceXYPlot::XAxisType type);
|
std::set<TraceXYPlot::YAxisType> supportedYAxis(TraceXYPlot::XAxisType type);
|
||||||
Ui::XYplotAxisDialog *ui;
|
Ui::XYplotAxisDialog *ui;
|
||||||
TraceXYPlot *plot;
|
TraceXYPlot *plot;
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||||
|
|
||||||
<provider class="fr.ac6.mcu.ide.build.CrossBuiltinSpecsDetector" console="false" env-hash="-1870342659776466326" id="fr.ac6.mcu.ide.build.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="Ac6 SW4 STM32 MCU Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
<provider class="fr.ac6.mcu.ide.build.CrossBuiltinSpecsDetector" console="false" env-hash="1307432939745961523" id="fr.ac6.mcu.ide.build.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="Ac6 SW4 STM32 MCU Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||||
|
|
||||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user