ems/ems_c/logic/logic_peakvalley.h

53 lines
1.7 KiB
C

/*****************************************************************************
* @copyright 2024-202, . POWER SUPPLY CO., LTD.
* @file logic_peakvalley.h
* @brief xxxx
* @author Gary
* @date 2024/09/20
* @remark 初修订
*****************************************************************************/
#ifndef __LOGIC_PEAKVALLEY_H__
#define __LOGIC_PEAKVALLEY_H__
#define MAX_DATA_SEGMENTS 0x0C // 一年12个月最多分 12个时间段
#define MAX_TIME_SEGMENTS 0x60 // 一天24小时最多分 96个时间段
#include "kit_data.h"
// // 时段类型
// typedef enum
// {
// kPeakvalley_Start = 0, // 开始值
// kPeakvalley_Valley, // 谷
// kPeakvalley_Peak, // 峰
// kPeakvalley_Flat, // 平
// kPeakvalley_End // 结束值
// } peak_valley_e;
// 所有时间表结构体 用于查询
typedef struct
{
pv_date_config_t* peakItem; // 时区表
int zoneTabLen; // 时区表实际表长
} peakvalley_zone_tab_t;
// 削峰填谷传参结构体
typedef struct
{
int runPeriod; // 运行周期 ms
float_t power; // 最终计算的目标功率
} peakvalley_params_t;
/*****************************************************************************
* @brief 获取保护参数
* @return 0 成功 -1 失败
*****************************************************************************/
int logic_getProtectParam();
/*****************************************************************************
* @brief 更新时区时段表
* @return 0 更新成功 -1 失败
*****************************************************************************/
int logic_peakValleyUpdate();
#endif