/* * PwmTripControllerSetup.cpp * * Created on: 4 мар. 2020 г. * Author: titov */ #include "PwmTripController.hh" #include "../../systemic/StatusLazyFast.hpp" #include "../../systemic/MemberFuntion.hpp" #include "../../schematic/StatusLogic.hpp" bool application::board::PwmTripController::input( Environment & env ) { return grab( trip, env.rholder.getShared( links.trip_handler ) ); } void application::board::PwmTripController::build( Environment & env ) { typedef systemic::detail::StatusLazyFast Tripped; Tripped * tripped = memories::instance_object(env.static_setup_ma, *trip); env.statuses.add(links.one_shot, tripped); typedef systemic::detail::StatusLazyFast CycleTripped; CycleTripped * cycle_tripped = memories::instance_object(env.static_setup_ma, *trip); env.statuses.add(links.cycle_by_cycle, cycle_tripped); systemic::detail::StatusNot * not_tripped = memories::instance_object(env.static_setup_ma, *tripped); typedef systemic::detail::MemberFuntionExternalResult ResetTrip; ResetTrip * trip_reset = memories::instance_object( env.static_setup_ma, *trip, *not_tripped ); typedef systemic::IFunctor ActionStatus; env.rholder.share< ActionStatus >( *trip_reset, links.reset_action ); } application::board::PwmTripController::PwmTripController( const Links & links ) : links(links) {}