#ifndef __ENERGY_CURVE_H__
#define __ENERGY_CURVE_H__

enum
{
	CURVE_DAY_POS_EP = 0,		//日冻结，正向有功电能
	CURVE_DAY_POS_EQ,			//日冻结，正向无功电能
	CURVE_DAY_INV_EP,			//日冻结，反向有功电能
	CURVE_DAY_INV_EQ,			//日冻结，反向无功电能
	CURVE_DAY_EP,				//月冻结，有功电能
	CURVE_DAY_EQ,				//月冻结，无功电能

	CURVE_MON_POS_EP,			//月冻结，正向有功电能
	CURVE_MON_POS_EQ,			//月冻结，正向无功电能
	CURVE_MON_INV_EP,			//月冻结，反向有功电能
	CURVE_MON_INV_EQ,			//月冻结，反向无功电能
	CURVE_MON_EP,				//月冻结，有功电能
//	CURVE_MON_EQ,				//月冻结，无功电能


	CURVE_P,					//总有功功率
	CURVE_PA,					//A相有功功率
	CURVE_PB,					//B相有功功率
	CURVE_PC,					//C相有功功率

	CURVE_Q,					//总无功功率
	CURVE_QA,					//A相无功功率
	CURVE_QB,					//B相无功功率
	CURVE_QC,					//C相无功功率
	
	CURVE_COS,					//功率因数

	CURVE_POS_EP,				//正向有功电能
	CURVE_POS_EQ,				//反向有功电能
	CURVE_INV_EP,				//正向无功电能
	CURVE_INV_EQ,				//反向无功电能

	CURVE_U,					//电压
	CURVE_I,					//电流

	CURVE_NUM,
};

typedef struct
{
	float data[CURVE_NUM];
	CSV_RW csv;
}ENERGY_CURVE;

typedef struct
{
	float data;
	struct rtc_time_t time;
}ENERGY_CURVE_DATA;



#define ENERGY_CURVE_DAY	0	//日曲线
#define ENERGY_CURVE_MON	1	//月曲线
#define ENERGY_CURVE_RT		2	//实时曲线



void energy_curve_init(void);
void energy_curve_refresh(u8 interval);
int energy_curve_write_data(u8 file_id, float* data, u8 data_num);

void energy_curve_app(void);
void energy_curve_write_file(void);


#endif


