#include #include #include #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(d->ai(0)); // input->set_phase(87); input->set_freq(100); input->set_ampl(5); // input = static_cast(d->ai(1)); // input->set_freq(100); // input = static_cast(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(); }