Files
2026-02-24 13:19:03 +01:00

48 lines
1.4 KiB
C++

/**
* Server application
*/
#include <iostream>
#include <opendaq/opendaq.h>
using namespace std::literals::chrono_literals;
using namespace daq;
int main(int /*argc*/, const char* /*argv*/[])
{
const InstancePtr instance = InstanceBuilder().addModulePath(MODULE_PATH).build();
DevicePtr device = instance.addDevice("daqref://device0");
ChannelPtr channel = device.getChannels()[0];
SignalPtr signal = channel.getSignals()[0];
FunctionBlockPtr renderer = instance.addFunctionBlock("RefFBModuleRenderer");
FunctionBlockPtr module = instance.addFunctionBlock("ExampleIIRFilter");
module.setPropertyValue("CutoffFrequency", 10);
module.getInputPorts()[0].connect(signal);
renderer.getInputPorts()[0].connect(signal);
renderer.getInputPorts()[1].connect(module.getSignals()[0]);
// Set the frequency to 5 Hz
channel.setPropertyValue("Frequency", 5);
// Set the noise amplitude to 0.75
channel.setPropertyValue("NoiseAmplitude", 0.75);
double amplStep = 0.1;
for (int i = 0; i < 200; ++i)
{
std::this_thread::sleep_for(std::chrono::milliseconds(25));
const double ampl = channel.getPropertyValue("Amplitude");
if (9.95 < ampl || ampl < 1.05)
amplStep *= -1;
channel.setPropertyValue("Amplitude", ampl + amplStep);
}
std::this_thread::sleep_for(5s);
return 0;
}