/* * ModbusAdapterInitializer.cpp * * Created on: 17 Aug 2022 * Author: malyarenko */ #include "../../driver/ModbusAdapter.hpp" #include "ModbusAdapter.hh" application::board::ModbusAdapter::ModbusAdapter( const Links & links, const Setting & setting ) : links(links), setting(setting), uart_in(nullptr), uart_callback(nullptr), de_pin(nullptr), re_pin(nullptr) {} bool application::board::ModbusAdapter::input( Environment & env ) { typedef systemic::IValueTypeSet< systemic::IFunctor * > ModbusAdapterCallback; return grab(uart_in, env.rholder.getShared(links.uart_in)) && grab(uart_callback, env.rholder.getShared(links.uart_callback)) && grab(de_pin, env.rholder.getShared(links.de_pin)) && grab(re_pin, env.rholder.getShared(links.re_pin)); } void application::board::ModbusAdapter::build( Environment & env ) { typedef driver::ModbusAdapter ModbusAdapterDriver; const bool active_level_de = setting.active_level_de != 0; const bool active_level_re = setting.active_level_re != 0; ModbusAdapterDriver* modbus_adapter_driver = memories::instance_object(env.static_object_ma, /* ModbusAdapter ctor */ uart_in, uart_callback, de_pin, active_level_de, re_pin, active_level_re ); env.rholder.share(*modbus_adapter_driver, links.uart_out); }