using System;
namespace ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware.Backend
{
///
/// OPC-UA-free representation of a single historical data point. The sidecar serialises
/// these onto the TCP wire (HistorianSampleDto) for the .NET 10
/// WonderwareHistorianClient, which maps quality and value into OPC UA
/// DataValue on its side. Raw OPC DA quality byte is preserved so the client
/// can reuse the same quality mapper it already uses for live reads.
///
public sealed class HistorianSample
{
/// Gets or sets the historical data value.
public object? Value { get; set; }
/// Gets or sets the raw OPC DA quality byte from the historian SDK (low 8 bits of OpcQuality).
public byte Quality { get; set; }
/// Gets or sets the UTC timestamp of the historical sample.
public DateTime TimestampUtc { get; set; }
}
///
/// Result of . When is
/// null the aggregate is unavailable for that bucket — the client maps to BadNoData.
///
public sealed class HistorianAggregateSample
{
/// Gets or sets the aggregate value, or null if unavailable.
public double? Value { get; set; }
/// Gets or sets the UTC timestamp of the aggregate sample.
public DateTime TimestampUtc { get; set; }
}
}