40 lines
1.0 KiB
C++
40 lines
1.0 KiB
C++
/*
|
||
* SpiBusSetup.cpp
|
||
*
|
||
* Created on: 24 июн. 2019 г.
|
||
* 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 );
|
||
|
||
}
|
||
|
||
}
|
||
|