using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Model.Model; namespace DeviceCommand.Base { /// /// Enova3 通道数据接收事件参数 /// public class EnovaChannelDataReceivedEventArgs : EventArgs { public List DataList { get; } public DateTime ReceivedTime { get; } public EnovaChannelDataReceivedEventArgs(List dataList) { DataList = dataList ?? new List(); ReceivedTime = DateTime.Now; } } /// /// Enova3 上位机数据上报 / 接收核心接口 /// 既支持上位机主动推送数据到客户平台,也支持接收下位机通过 HTTP POST 上报的数据 /// public interface IEnovaDataReporter { /// /// 客户平台接收数据的目标 HTTP URL(用于主动推送) /// string TargetUrl { get; set; } /// /// HTTP 请求超时时间(毫秒) /// int TimeoutMilliseconds { get; set; } /// /// 当 EnovaDataController 收到下位机 POST 上报的数据时触发 /// event EventHandler ChannelDataReceived; /// /// 异步推送通道的实时状态数据到客户平台 /// /// 包含各通道状态的采集数据集合 /// 取消令牌 /// 平台服务器的响应状态 Task ReportChannelStateAsync(List dataList, CancellationToken ct = default); /// /// 处理 EnovaDataController 转发过来的下位机上报数据 /// 由 Controller 在收到 HTTP POST 后调用,内部会触发 事件 /// /// 下位机上报的通道数据集合 /// 处理结果,将作为 HTTP 响应返回给下位机 ApiResponse HandleIncomingChannelData(List dataList); } }