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