MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/technological/adapter/PwmGenAdapter.hh

50 lines
1.3 KiB
C++

/*
* 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_ */