/* * BinaryEncoderSync.cpp * * Created on: 1 февр. 2022 г. * Author: titov */ #include "BinaryEncoderSync.hh" #include "../../driver/BinaryEncoderSync.hh" bool application::board::BinaryEncoderSync::input( Environment & env ) { return grab( data_master, env.rholder.getShared( links.data_master ) ); } void application::board::BinaryEncoderSync::build( Environment & env ) { Local local_data_master( data_master, *env.rholder.getShared( links.data_master ) ); driver::detail::BinaryEncoderSync * encoder = memories::instance_object( env.static_object_ma, config.angle_bitoffset, config.agnle_bitsize, config.turn_bitoffset, config.turn_bitsize ); local_data_master->addSubscriber(config.frame_bitoffset, config.frame_bitsize, encoder ); systemic::ProcScheduler::ProcessParameter proc = { .priority = params.priority, .period = params.period, .phase = params.phase, .controlled = false }; env.scheduler.registerProcess( params.processor_id, *encoder, proc ); env.rholder.share( *encoder, links.encoder_sync ); } application::board::BinaryEncoderSync::BinaryEncoderSync( const Links & links, const Setting & config, configuration::ProcessConfig & params ) : links(links), config(config), params(params) {}