/* * PwmGenAdapter.h * * Created on: 6 сент. 2019 г. * Author: titov */ #ifndef SOURCE_TECHNOLOGICAL_ADAPTER_PWMGENADAPTER_H_ #define SOURCE_TECHNOLOGICAL_ADAPTER_PWMGENADAPTER_H_ #include "../../processing/acs/VectorAsyncInterface.hh" #include "../../units/PhysicalQuantities.hpp" #include "../../systemic/ISignal.hh" #include "../../driver/IInverter.hh" namespace technological { namespace adapter { //todo: PwmGenerator struct PwmGenAdapter : public vector::IStandingVectorSet { //todo: Подумать о reset(), подумать о управлении импульсами.. //todo: Подумать об уходе от IInverter к INaturalVectorSet. void set( control::StandingVector voltage ); void set_output( driver::IInverter * ); struct Setting { units::Factor voltage_utilization_factor; //!<Коэффицент использования по напряжению. units::Voltage minimum_control_voltage; //!<Минимальное напряжение при котором будет осущетсвляться управление. Setting(); bool isValid(); }; void configure( const Setting & config ); PwmGenAdapter( systemic::ISignal & ); ~PwmGenAdapter() noexcept {} private: float voltage_utilization_factor; float minimum_control_voltage; systemic::ISignal & voltage_dc; driver::IInverter * output; }; }} #endif /* SOURCE_TECHNOLOGICAL_ADAPTER_PWMGENADAPTER_H_ */