MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/technological/function/InverterDebug.hh

58 lines
1.4 KiB
C++

/*
* InverterDebug.h
*
* Created on: 4 àïð. 2017 ã.
* Author: titov
*/
#ifndef SOURCES_TECHNOLOGICAL_INVERTERDEBUG_H_
#define SOURCES_TECHNOLOGICAL_INVERTERDEBUG_H_
#include "../../peripheral/IPwmOverride.hh"
#include "../../driver/IInverter.hh"
#include "../../common/ResourceKeeper.hpp"
#include "../ITechFunction.hh"
namespace technological { namespace function {
class InverterDebug : public ITechFunction {
public:
struct Input {
float time_a;
float time_b;
float time_c;
};
InverterDebug( peripheral::IPwmOverride & u, peripheral::IPwmOverride & v, peripheral::IPwmOverride & w,
ResourceKeeper<driver::IInverter> & inv );
bool run( const char * value, std::size_t size );
//!Îñòàíîâêà êîêíðåòíîé ïðîöåäóðû íàñòðîéêè è äèàãíîñòèêè.
void stop();
//!Ïðîâåðêà ÷òî ïðîöåäóðà íà äàííûé ìîìåíò âûïîëíÿåòñÿ.
short getState() const;
//!Ïîëó÷åíèå çíà÷åíèé êîíêðåòíîé ïðîöåäóðû.
bool getResult( char * value, std::size_t size ) const { return true; }
~InverterDebug() noexcept;
private:
peripheral::IPwmOverride & pwm_u;
peripheral::IPwmOverride & pwm_v;
peripheral::IPwmOverride & pwm_w;
ResourceKeeper<driver::IInverter> & inverter_resource;
driver::IInverter * inverter;
static bool validate( Input & input );
void prepare_time(const Input & input, float (& time)[3]);
};
} }
#endif /* SOURCES_TECHNOLOGICAL_INVERTERDEBUG_H_ */