using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IStation.Model.Monitor
{
///
/// 枚举累积计算公式参数
///
public class EnumAccumulateCalculationFormulaParas : JsonModel
{
///
/// 累积类型
///
public enum eAccumulateType
{
///
/// 秒
///
Second = 0,
///
/// 分
///
Minute = 1,
///
/// 时
///
Hour = 2,
///
/// 日
///
Day = 3
}
///
/// 测点标识
///
public long ObjectID { get; set; }
///
/// 枚举值列表
///
public List EnumValues { get; set; }
///
/// 累积类型
///
public eAccumulateType AccumulateType { get; set; }
///
/// 计算
///
public double Calculate(double instantValue, double second)
{
if (this.EnumValues == null || this.EnumValues.Count < 1)
return default;
if (!this.EnumValues.Contains(instantValue))
return default;
double result = second;
switch (this.AccumulateType)
{
case eAccumulateType.Second: result = second; break;
case eAccumulateType.Minute: result = second / 60; break;
case eAccumulateType.Hour: result = second / 3600; break;
case eAccumulateType.Day: result = second / 3600 / 24; break;
default: break;
}
return result;
}
}
}