using GDNXFD.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GDNXFD.Alert.Interpreter
{
///
/// 取测点的值
///
public interface IDataProvider
{
///
/// 取数值型测点的值
///
/// 统一编码
/// 对象(风机)ID
/// 对象类型:风机、风电场、变电所、电气等
///
double FindAIValue(string PointAI, string objectId, AlertObjectType objectType, ref string dataInfo);
///
/// 取布尔型测点的值
///
/// 统一编码
/// 对象(风机)ID
/// 对象类型:风机、风电场、变电所、电气等
///
bool FindDIValue(string PointDI, string objectId, AlertObjectType objectType, ref string dataInfo);
///
/// 取数值型测点的历史值
///
/// 统一编码
/// 对象(风机)ID
/// 对象类型:风机、风电场、变电所、电气等
/// 持续时间,从当前倒推
/// 抽样间隔,默认为60秒
///
double[] FindAIHistorySnap(string PointAI, string objectId, AlertObjectType objectType, DateTime tStart, DateTime tEnd, int interval = 60);
///
/// 取布尔型测点的历史值
///
/// 统一编码
/// 对象(风机)ID
/// 对象类型:风机、风电场、变电所、电气等
/// 持续时间,从当前倒推
/// 抽样间隔,默认为60秒
///
bool[] FindDIHistorySnap(string PointDI, string objectId, AlertObjectType objectType, DateTime tStart, DateTime tEnd, int interval = 60);
///
/// 取测点历史原始值
///
///
///
///
///
///
///
double[] FindHistoryRaw(string PointAI, string objectId, AlertObjectType objectType, DateTime tStart, DateTime tEnd);
///
/// 取测点最新值的时间
///
/// 测点
/// 对象的ID
/// 报警类型
///
int GetLastUpdateTime(string pointKey, string objectId, AlertObjectType objectType, ref string dataInfo);
}
}