40 lines
1.0 KiB
C++
40 lines
1.0 KiB
C++
/*
|
|
* SignalSample.cpp
|
|
*
|
|
* Created on: 22 èþë. 2020 ã.
|
|
* Author: LeonidTitov
|
|
*/
|
|
|
|
#include "SignalSample.hh"
|
|
|
|
#include "../../schematic/ValueSample.hpp"
|
|
|
|
bool application::schematic::SignalSample::input( Environment & env ) {
|
|
|
|
return signal = env.signals.get( links.signal );
|
|
|
|
}
|
|
|
|
void application::schematic::SignalSample::build( Environment & env ) {
|
|
|
|
typedef typename ::schematic::ValueSample<float> StsSample;
|
|
|
|
StsSample * sample = memories::instance_object<StsSample>( env.static_object_ma, *signal );
|
|
|
|
systemic::ProcScheduler::ProcessParameter proc = {
|
|
.priority = params.priority,
|
|
.period = params.period, .phase = params.phase,
|
|
.controlled = true
|
|
};
|
|
|
|
env.scheduler.registerProcess( params.processor_id, *sample,
|
|
proc );
|
|
|
|
env.signals.create( links.sampled, sample->getSample() );
|
|
|
|
}
|
|
|
|
application::schematic::SignalSample::SignalSample( const Links & links, const configuration::ProcessConfig & params ) : links(links), params(params) {}
|
|
|
|
|