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

85 lines
2.8 KiB
C++

/*
* SignalValidation.cpp
*
* Created on: 29 àïð. 2022 ã.
* Author: titov
*/
#include "SignalValidation.hh"
bool application::schematic::SignalValidationPrevious::input( Environment & env ) {
return ( origin = env.signals.get( links.origin ) ) and
( validity = env.statuses.get( links.validity ) );
}
void application::schematic::SignalValidationPrevious::build( Environment & env ) {
systemic::detail::SignalValidationPrevious * svp =
memories::instance_object<systemic::detail::SignalValidationPrevious>( env.static_object_ma,
*origin, *validity );
env.signals.add( links.validated, svp );
}
bool application::schematic::SignalValidationFixed::input( Environment & env ) {
return ( origin = env.signals.get( links.origin ) ) and
( validity = env.statuses.get( links.validity ) );
}
void application::schematic::SignalValidationFixed::build( Environment & env ) {
systemic::detail::SignalValidationFixed * svf =
memories::instance_object<systemic::detail::SignalValidationFixed>( env.static_object_ma,
*origin, *validity, setting.fixed );
env.signals.add( links.validated, svf );
}
bool application::schematic::SignalValidationPreset::input( Environment & env ) {
return ( origin = env.signals.get( links.origin ) ) and
( validity = env.statuses.get( links.validity ) )
and ( parameter = systemic::getSetting<Object>( env.cparams, provider, links.preset ) );
}
void application::schematic::SignalValidationPreset::build( Environment & env ) {
systemic::LocalSetting<Object> ls( parameter );
systemic::detail::SignalValidationPreset * svp =
memories::instance_object<systemic::detail::SignalValidationPreset>( env.static_object_ma,
*origin, *validity );
svp->configure(ls.setting);
env.signals.add( links.validated, svp );
}
bool application::schematic::SignalValidationAnother::input( Environment & env ) {
return ( origin = env.signals.get( links.origin ) ) and
( validity = env.statuses.get( links.validity ) ) and
( alternate = env.signals.get(links.alternate ) );
}
void application::schematic::SignalValidationAnother::build( Environment & env ) {
systemic::detail::SignalValidationAnother * sva =
memories::instance_object<systemic::detail::SignalValidationAnother>( env.static_object_ma,
*origin, *validity, *alternate );
env.signals.add( links.validated, sva );
}