40 lines
1.0 KiB
C++
40 lines
1.0 KiB
C++
|
|
/*
|
|||
|
|
* SpiBusSetup.cpp
|
|||
|
|
*
|
|||
|
|
* Created on: 24 <EFBFBD><EFBFBD><EFBFBD>. 2019 <EFBFBD>.
|
|||
|
|
* Author: user
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#include "SpiBus.hh"
|
|||
|
|
|
|||
|
|
#include "../../driver/SpiBus.hh"
|
|||
|
|
|
|||
|
|
application::virtualization::SpiBus::SpiBus(const Links & links,
|
|||
|
|
const Setting & setting ) : links(links), config(setting) {}
|
|||
|
|
|
|||
|
|
bool application::virtualization::SpiBus::input( Environment & env ) {
|
|||
|
|
|
|||
|
|
return grab( serial_port, env.rholder.getShared<peripheral::ISerialPort>( links.spi_port ) )
|
|||
|
|
and grab( serial_port_configurator, env.rholder.getShared<peripheral::ISerialPortConfigurator>( links.spi_config ) );
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void application::virtualization::SpiBus::build( Environment & env ) {
|
|||
|
|
|
|||
|
|
if( links.spi_bus ) {
|
|||
|
|
|
|||
|
|
std::size_t abonent_quantity = config.abonent_quantity;
|
|||
|
|
|
|||
|
|
driver::SpiBus * spi_bus = memories::instance_object<driver::SpiBus>(
|
|||
|
|
env.static_object_ma,
|
|||
|
|
*serial_port, *serial_port_configurator,
|
|||
|
|
abonent_quantity
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
env.rholder.share( *spi_bus, links.spi_bus );
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|