/* * SignalUpdateAction.cpp * * Created on: 21 δεκ. 2020 γ. * Author: titov */ #include "SignalUpdateAction.hh" #include "../../schematic/action/ValueUpdateAction.hpp" bool application::schematic::SignalUpdateAction::input( Environment & env ) { return ( signal = env.signals.get( links.signal ) ) and grab( action, env.rholder.getShared( links.action ) ); } void application::schematic::SignalUpdateAction::build( Environment & env ) { typedef ::schematic::functor::ValueUpdateAction SignalUpdateAction; SignalUpdateAction * object = memories::instance_object( env.static_object_ma, *signal, *action ); systemic::ProcScheduler::ProcessParameter proc = { .priority = params.priority, .period = params.period, .phase = params.phase, .controlled = false }; env.scheduler.registerProcess( params.processor_id, *object, proc ); } application::schematic::SignalUpdateAction::SignalUpdateAction( const Links & links, const configuration::ProcessConfig & params ) : links(links), params(params) {}