test_sdk/gui/gtl_gui_octv_series.cpp

103 lines
2.5 KiB
C++

#include "gtl_gui_octv_series.h"
namespace gtl
{
namespace gui
{
octv_series::octv_series(bool is_updating, gtl::analog_data* ai, ::chart::axis_horz* axis_x, ::chart::axis_vert* axis_y)
: chart_series(ai, axis_x, axis_y)
{
_is_updating = is_updating;
_octv = new gtl::math::octv(ai);
connect(_octv, &gtl::math::octv::changed, this, &octv_series::update);
connect(_octv, &gtl::math::octv::initialized, this, &octv_series::update);
}
octv_series::~octv_series()
{
delete _octv;
}
qreal octv_series::minimum() const
{
return _octv->minimum();
}
qreal octv_series::maximum() const
{
return _octv->maximum();
}
int octv_series::ratio() const
{
return static_cast<int>(_octv->ratio());
}
int octv_series::look() const
{
return static_cast<int>(_octv->look());
}
int octv_series::fraction() const
{
return static_cast<int>(_octv->fraction());
}
int octv_series::unit() const
{
return static_cast<int>(_octv->unit());
}
void octv_series::set_minimum(qreal value)
{
_octv->set_minimum(value);
}
void octv_series::set_maximum(qreal value)
{
_octv->set_maximum(value);
}
void octv_series::set_ratio(int value)
{
_octv->set_ratio(static_cast<gtl::math::octv::ratios>(value));
}
void octv_series::set_look(int value)
{
_octv->set_look(static_cast<gtl::math::octv::looks>(value));
}
void octv_series::set_fraction(int value)
{
_octv->set_fraction(static_cast<gtl::math::octv::fractions>(value));
}
void octv_series::set_unit(int value)
{
_octv->set_unit(static_cast<gtl::units>(value));
}
void octv_series::update()
{
clear();
/*
for(auto it : *_octv)
add(QPointF(it.first, it.second));
*/
for(int i = 0; i < _octv->size(); i++)
{
add(QPointF(_octv->left(i), _octv->at(i).second));
add(QPointF(_octv->at(i).first, _octv->at(i).second));
add(QPointF(_octv->right(i), _octv->at(i).second));
}
emit data_changed();
}
}
}