
#ifndef VCTEST_H_
#define VCTEST_H_
#include "DSP281x_Device.h"
#include "IQmathLib.h"
#include "math.h"
#include "vcpublic.h"

typedef struct{
	              Uint16   VC_start;			        // input: voltate compentation test flag
	              Uint16   VC_start_flag;			    // para: vc status flag
	              Uint16   VC_end;			            // para: vc end flag
	              Uint16   VC_cal_num;			        // para: 计算计数
	              Uint16  VC_I_set_flag;                //para: 大小电流标志，1 大电流，2小电流
	              Uint16   VC_f2_change_flag;		    // para:改变频率标志
	              Uint16   VC_f1_flag;		            // para:改变频率标志
	              Uint16   VC_f2_flag;		            // para:改变频
	              Uint16   cur_f1;			            // para: 载波频率
	              Uint16   cur_f2;			            // para: 二倍载波频率
	              float32  VC_t_f1;			            // para: 载波周期
	              float32  VC_t_f2;			            // para: 二倍载波周期
	              float32  VC_I_f_u;				     // input: u current
	              float32  VC_I_f_v;		             // input: v current
	              float32  VC_vdc;                       // input: vdc
	              float32  VC_ID;                        // output: 电流环D轴电流
	              float32  VC_IQ;                        // output: 电流环Q轴电流
	              float32  VC_motor_R;                   // input: 电机电阻
	              float32  VC_I_rated;                   // input: 电机额定电流
	              float32  VC_I_input;                   // input: 输入电流
	              float32  VC_V_output;                  // output: 输出补偿电压
	              float32  VC_vdc_rated;                  // input: 电机额定母线电压
	              _iq19    iq_VC_D_return;               // input: 电流环输出D轴电压作为输入
	              _iq19    iq_VC_Q_return;               // input: 电流环输出Q轴电压作为输入
	              Uint16  VC_I_count;                    // para: 电流给定计数
	              float32 VC_Iu_set;                     // para: 给定U相电流
	              float32 VC_Iv_set;                     // para: 给定V相电流
	              Uint16  VC_test_count;
	              void (*init)();                        // 初始化
	              void (*compensator)();                 // 计算补偿电压
	              void (*query)();                       // 查询大电流补偿电压
	              void (*querysmall)();                  // 查询小电流补偿电压
	              }VCTEST;

typedef VCTEST *VCTEST_handle;
#define VCTEST_DEFAULTS {  0, \
                          0, \
                          0, \
                          0, \
                          1, \
                          0, \
                          0, \
                          0, \
                          24999, \
                          12499, \
                          0, \
                          0, \
                          0, \
                          0, \
                          0, \
                          0, \
                          0, \
                          0.186, \
                          30, \
                          0, \
                          0, \
                          564.0, \
                          0, \
                          0, \
                          0, \
                          0, \
                          10, \
                          0, \
                          (void (*)(Uint32))VCTEST_init,\
                          (void (*)(Uint32))VCTEST_compensator, \
                          (void(*)(Uint32))VCTEST_query, \
                          (void(*)(Uint32))VCTEST_querysmall \
	                    }

void VCTEST_init(VCTEST_handle);
void VCTEST_compensator(VCTEST_handle);
void VCTEST_query(VCTEST_handle);
void VCTEST_querysmall(VCTEST_handle);


#endif /* VCTEST_H_ */
