#ifndef __DQ_ALPHABETA_H__
#define __DQ_ALPHABETA_H__

#include "IQmathLib.h"

typedef struct { _iq Ualpha; //phase A voltage, input
			 	 _iq Ubeta; //phase B voltage, input
				 _iq Tetta; //phase angle, input
				 _iq Ud; // axis d voltage, output
			 	 _iq Uq; // axis q voltage, output
				 void (*calc)(); // Pointer to calculation function
				 void (*calc2)(); // Pointer to calculation function. Like in MATLAB
				 void (*calc_cos)(); // Pointer to calculation function, Ualpha = Uq*Cos(Tetta)
				 }DQ_TO_ALPHABETA;





typedef DQ_TO_ALPHABETA *DQ_TO_ALPHABETA_handle;

#define DQ_TO_ALPHABETA_DEFAULTS { 0, \
						    0, \
						    0, \
						    0, \
						    0, \
						    (void (*)(Uint32))dq_to_alphabeta_calc, \
						    (void (*)(Uint32))dq_to_alphabeta_calc2, \
						    (void (*)(Uint32))dq_to_alphabeta_calc_cos \
						    } 


void dq_to_alphabeta_calc(DQ_TO_ALPHABETA_handle);
void dq_to_alphabeta_calc2(DQ_TO_ALPHABETA_handle);
void dq_to_alphabeta_calc_cos(DQ_TO_ALPHABETA_handle);

#endif // end __DQ_ALPHABETA_H__