MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/application/schematic/DynamicParameterInitializer.cpp

51 lines
1.1 KiB
C++

/*
* DynamicParameterInitializer.cpp
*
* Created on: 29 íîÿá. 2023 ã.
* Author: titov
*/
#include "DynamicParameter.hh"
#include "../../systemic/ApplyParameter.hpp"
bool application::schematic::DynamicParameter::input( Environment & env ) {
return ( parameter = systemic::getSetting<Settable>( env.cparams, provider, links.preset ) );
}
void application::schematic::DynamicParameter::build( Environment & env ) {
Settable * dp = memories::instance_object<Settable>(env.static_object_ma);
typedef systemic::ApplyParameter<Settable> ApplySettable;
typedef systemic::IValueType<float> ParameterInterface;
typedef systemic::IFunctor<void> Action;
ApplySettable * ap = memories::instance_object<ApplySettable>(env.static_object_ma, *dp, parameter);
(*ap)();
if( links.value ) {
env.signals.create( links.value, dp->value() );
}
if( links.set ) {
env.rholder.share<ParameterInterface>( *dp, links.set );
}
if( links.reset ) {
env.rholder.share<Action>( *ap, links.reset );
}
}