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

55 lines
1.5 KiB
C++

/*
* SignalFromBitmapU16.cpp
*
* Created on: 13 àâã. 2020 ã.
* Author: s.maksimenko
*/
#include <memory_resource>
#include "SignalFromBitmapU16.hh"
#include "../../schematic/BitmapU16ToSignal.hpp"
namespace application {
namespace schematic {
SignalFromBitmapU16::SignalFromBitmapU16(
const Links & links, const Setting & sett ) : links(links), config(sett) {}
bool SignalFromBitmapU16::input ( Environment & env ) {
return grab( port_input, env.rholder.getShared<volatile PortInput>( links.port_input_u16 ) )
and grab( port_output, env.rholder.getShared<volatile PortOutput>( links.port_output_u16 ) );
}
bool SignalFromBitmapU16::prepare () {
return true;
}
void SignalFromBitmapU16::build ( Environment & env ) {
Local<volatile PortInput> local_port_input( port_input, *env.rholder.getShared<volatile PortInput>( links.port_input_u16 ) );
Local<volatile PortOutput> local_port_output( port_output, *env.rholder.getShared<volatile PortOutput>( links.port_output_u16 ) );
using ::schematic::BitmapU16ToSignal;
BitmapU16ToSignal::Setting sett;
sett.iFirstBit = config.index_first_bit;
sett.nBits = config.number_bits;
sett.bInvCode = config.inverse_code;
BitmapU16ToSignal* pBitmap2Signal =
memories::instance_object<BitmapU16ToSignal> (
env.static_setup_ma,
port_input->data, sett
);
env.signals.add ( links.signal_id, pBitmap2Signal );
}
}// namespace schematic
}// namespace application