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

50 lines
1.5 KiB
C++
Raw Permalink Normal View History

2024-06-07 11:12:56 +03:00
/*
* 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_ */