mirror of
https://github.com/DreamSourceLab/DSView.git
synced 2025-02-02 13:52:55 +08:00
fix: The measure information is error when window resize on ANALOG mode
This commit is contained in:
parent
09479138f0
commit
e6d81f1195
@ -45,7 +45,7 @@ AnalogSnapshot::AnalogSnapshot() :
|
||||
{
|
||||
memset(_envelope_levels, 0, sizeof(_envelope_levels));
|
||||
_unit_pitch = 0;
|
||||
_data = NULL;
|
||||
_data = NULL;
|
||||
}
|
||||
|
||||
AnalogSnapshot::~AnalogSnapshot()
|
||||
|
@ -119,7 +119,7 @@ private:
|
||||
private:
|
||||
void *_data;
|
||||
struct Envelope _envelope_levels[DS_MAX_ANALOG_PROBES_NUM][ScaleStepCount];
|
||||
friend class AnalogSnapshotTest::Basic;
|
||||
friend class AnalogSnapshotTest::Basic;
|
||||
};
|
||||
|
||||
} // namespace data
|
||||
|
@ -51,6 +51,8 @@ DsoSnapshot::DsoSnapshot() :
|
||||
_threshold = 0;
|
||||
_measure_voltage_factor1 = 0;
|
||||
_measure_voltage_factor2 = 0;
|
||||
_data_scale1 = 0;
|
||||
_data_scale2 = 0;
|
||||
_is_file = false;
|
||||
|
||||
memset(_envelope_levels, 0, sizeof(_envelope_levels));
|
||||
|
@ -399,7 +399,9 @@ namespace pv
|
||||
_capture_data->get_analog()->set_samplerate(samplerate);
|
||||
_capture_data->get_dso()->set_samplerate(samplerate);
|
||||
|
||||
if (_device_agent.get_work_mode() == DSO)
|
||||
int mode = _device_agent.get_work_mode();
|
||||
|
||||
if (mode == DSO || mode == ANALOG)
|
||||
{
|
||||
for(auto s : _signals){
|
||||
if (s->get_type() == SR_CHANNEL_DSO){
|
||||
@ -2449,7 +2451,9 @@ namespace pv
|
||||
|
||||
void SigSession::update_dso_data_scale()
|
||||
{
|
||||
if (_device_agent.get_work_mode() == DSO)
|
||||
int mode = _device_agent.get_work_mode();
|
||||
|
||||
if (mode == DSO || mode == ANALOG)
|
||||
{
|
||||
for(auto s : _signals){
|
||||
if (s->get_type() == SR_CHANNEL_DSO){
|
||||
|
@ -407,7 +407,10 @@ void AnalogSignal::paint_mid(QPainter &p, int left, int right, QColor fore, QCol
|
||||
const float zeroY = ratio2pos(get_zero_ratio());
|
||||
const int width = right - left + 1;
|
||||
|
||||
// dsv_info("zeroY:%f", zeroY);
|
||||
|
||||
const double scale = _view->scale();
|
||||
|
||||
assert(scale > 0);
|
||||
const int64_t offset = _view->offset();
|
||||
|
||||
@ -531,6 +534,7 @@ void AnalogSignal::paint_envelope(QPainter &p,
|
||||
|
||||
if (!_rects)
|
||||
_rects = new QRectF[width+10];
|
||||
|
||||
QRectF *rect = _rects;
|
||||
int px = -1, pre_px;
|
||||
float y_min = zeroY, y_max = zeroY, pre_y_min = zeroY, pre_y_max = zeroY;
|
||||
@ -589,7 +593,7 @@ void AnalogSignal::paint_hover_measure(QPainter &p, QColor fore, QColor back)
|
||||
const int hw_offset = get_hw_offset();
|
||||
const int height = get_totalHeight();
|
||||
const float top = get_y() - height * 0.5;
|
||||
const float bottom = get_y() + height * 0.5;
|
||||
const float bottom = get_y() + height * 0.5;
|
||||
|
||||
// Hover measure
|
||||
if (_hover_en && _hover_point != QPointF(-1, -1)) {
|
||||
@ -655,9 +659,10 @@ QString AnalogSignal::get_voltage(double v, int p, bool scaled)
|
||||
const QString mapUnit = get_mapUnit();
|
||||
|
||||
if (scaled)
|
||||
v = v / get_totalHeight() * mapRange;
|
||||
v = v / (double)get_totalHeight() * mapRange;
|
||||
else
|
||||
v = v * _scale / get_totalHeight() * mapRange;
|
||||
v = v * _scale / (double)get_totalHeight() * mapRange;
|
||||
|
||||
return abs(v) >= 1000 ? QString::number(v/1000.0, 'f', p) + mapUnit : QString::number(v, 'f', p) + "m" + mapUnit;
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,6 @@
|
||||
#define DSVIEW_PV_ANALOGSIGNAL_H
|
||||
|
||||
#include "signal.h"
|
||||
|
||||
|
||||
namespace pv {
|
||||
|
||||
|
@ -28,9 +28,7 @@
|
||||
#include <QPen>
|
||||
#include <QRect>
|
||||
#include <QString>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "selectableitem.h"
|
||||
#include "dsldial.h"
|
||||
|
||||
|
@ -774,7 +774,7 @@ void View::signals_changed(const Trace* eventTrace)
|
||||
else if (t->signal_type() == SR_CHANNEL_ANALOG)
|
||||
{
|
||||
auto sig = dynamic_cast<view::AnalogSignal*>(t);
|
||||
sig->set_scale(sig->get_view_rect().height());
|
||||
sig->set_scale(sig->get_totalHeight());
|
||||
}
|
||||
}
|
||||
_time_viewport->clear_measure();
|
||||
|
Loading…
x
Reference in New Issue
Block a user