83 lines
3.6 KiB
C++
83 lines
3.6 KiB
C++
|
#include <QCoreApplication>
|
|||
|
#include <QObject>
|
|||
|
|
|||
|
#include <iostream>
|
|||
|
|
|||
|
#include "hw/gtl_hw.h"
|
|||
|
#include "hw/gtl_hw_device.h"
|
|||
|
#include "hw/gtl_hw_generator.h"
|
|||
|
//#include "math/gtl_math_sum.h"
|
|||
|
//#include "math/gtl_math_rms.h"
|
|||
|
//#include "math/gtl_math_spec.h"
|
|||
|
//#include "math/gtl_math_delta_phase_spec.h"
|
|||
|
#include "math/gtl_math_max.h"
|
|||
|
|
|||
|
|
|||
|
int main(int argc, char *argv[])
|
|||
|
{
|
|||
|
QCoreApplication a(argc, argv);
|
|||
|
|
|||
|
//создаем объект hardware. параметр - путь к папке с плагинами.
|
|||
|
gtl::hw::hw hw("../../.output/.hwplugins/debug");
|
|||
|
|
|||
|
//получаем список доступных устройств.
|
|||
|
QStringList devices = hw.devices();
|
|||
|
|
|||
|
qDebug() << devices;
|
|||
|
|
|||
|
//создаем устройство. параметр имя устройства.
|
|||
|
//gtl::hw::device* d = hw.create_device("ni");
|
|||
|
gtl::hw::device* d = new gtl::hw::generator();
|
|||
|
|
|||
|
if(d == NULL)
|
|||
|
{
|
|||
|
qDebug() << "error creating device";
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// gtl::math::sum *sum;
|
|||
|
// gtl::math::rms *rms;
|
|||
|
// gtl::math::spec *spec;
|
|||
|
// gtl::math::delta_phase_spec *delta_phase_spec;
|
|||
|
gtl::math::max *max;
|
|||
|
|
|||
|
//задаем параметры каналов.
|
|||
|
// d->ai(0)->set_iepe(true);
|
|||
|
// d->ai(0)->set_sensitivity(0.001);
|
|||
|
gtl::hw::generator_analog_input* input = static_cast<gtl::hw::generator_analog_input*>(d->ai(0));
|
|||
|
// input->set_phase(87);
|
|||
|
input->set_freq(100);
|
|||
|
input->set_ampl(5);
|
|||
|
// input = static_cast<gtl::hw::generator_analog_input*>(d->ai(1));
|
|||
|
// input->set_freq(100);
|
|||
|
|
|||
|
// input = static_cast<gtl::hw::generator_analog_input*>(d->ai(1));
|
|||
|
|
|||
|
//запускаем устройство. первый параметр - id, второй - частота дискретизации
|
|||
|
qDebug() << d->start("Dev1", 51200);
|
|||
|
|
|||
|
//в библиотеке будет класс объектов, предназначеных для вычисления скалярных величин, характеризующих сигнал. скз, частота и т.п.
|
|||
|
//это объект, вычисляющий сумму поступающих аналоговых данных. для примера.
|
|||
|
//параметр - канал аналоговых данных. в данном случае входной канал устройства.
|
|||
|
// sum = new gtl::math::sum(d->ai(3));
|
|||
|
// rms = new gtl::math::rms(d->ai(3));
|
|||
|
// spec = new gtl::math::spec(gtl::math::spec::types::phase, d->ai(3));
|
|||
|
// delta_phase_spec = new gtl::math::delta_phase_spec(d->ai(0), d->ai(1));
|
|||
|
// delta_phase_spec->set_frequency(100);
|
|||
|
// delta_phase_spec->set_resolution(10);
|
|||
|
max = new gtl::math::max(d->ai(0));
|
|||
|
|
|||
|
// spec->set_frequency(2560);
|
|||
|
|
|||
|
//слот получения новых данных.
|
|||
|
// QObject::connect(d, >l::hw::device::received_data, [=](){qDebug() << "data recieved sum:\t" << sum->value();});
|
|||
|
// QObject::connect(d, >l::hw::device::received_data, [=](){qDebug() << "data recieved rms:\t" << rms->value();});
|
|||
|
// QObject::connect(spec, >l::math::spec::max_harm_idx, [=](int val){qDebug() << "idx spec:\t" << val;});
|
|||
|
// QObject::connect(delta_phase_spec, >l::math::delta_phase_spec::value_changed, [=](){qDebug() << "delta phase:\t" << delta_phase_spec->value();});
|
|||
|
QObject::connect(d, >l::hw::device::received_data, [=](){qDebug() << "data recieved max:\t" << max->value();});
|
|||
|
}
|
|||
|
|
|||
|
return a.exec();
|
|||
|
|
|||
|
}
|