namespace ZB.MOM.WW.LmxProxy.Host.Domain
{
///
/// OPC quality codes mapped to domain-level values.
/// The byte value matches the low-order byte of the OPC UA StatusCode,
/// so it can be persisted or round-tripped without translation.
///
public enum Quality : byte
{
// ─────────────── Bad family (0-31) ───────────────
/// 0x00 – Bad [Non-Specific]
Bad = 0,
/// 0x01 – Unknown quality value
Unknown = 1,
/// 0x04 – Bad [Configuration Error]
Bad_ConfigError = 4,
/// 0x08 – Bad [Not Connected]
Bad_NotConnected = 8,
/// 0x0C – Bad [Device Failure]
Bad_DeviceFailure = 12,
/// 0x10 – Bad [Sensor Failure]
Bad_SensorFailure = 16,
/// 0x14 – Bad [Last Known Value]
Bad_LastKnownValue = 20,
/// 0x18 – Bad [Communication Failure]
Bad_CommFailure = 24,
/// 0x1C – Bad [Out of Service]
Bad_OutOfService = 28,
// ──────────── Uncertain family (64-95) ───────────
/// 0x40 – Uncertain [Non-Specific]
Uncertain = 64,
/// 0x41 – Uncertain [Non-Specific] (Low Limited)
Uncertain_LowLimited = 65,
/// 0x42 – Uncertain [Non-Specific] (High Limited)
Uncertain_HighLimited = 66,
/// 0x43 – Uncertain [Non-Specific] (Constant)
Uncertain_Constant = 67,
/// 0x44 – Uncertain [Last Usable]
Uncertain_LastUsable = 68,
/// 0x45 – Uncertain [Last Usable] (Low Limited)
Uncertain_LastUsable_LL = 69,
/// 0x46 – Uncertain [Last Usable] (High Limited)
Uncertain_LastUsable_HL = 70,
/// 0x47 – Uncertain [Last Usable] (Constant)
Uncertain_LastUsable_Cnst = 71,
/// 0x50 – Uncertain [Sensor Not Accurate]
Uncertain_SensorNotAcc = 80,
/// 0x51 – Uncertain [Sensor Not Accurate] (Low Limited)
Uncertain_SensorNotAcc_LL = 81,
/// 0x52 – Uncertain [Sensor Not Accurate] (High Limited)
Uncertain_SensorNotAcc_HL = 82,
/// 0x53 – Uncertain [Sensor Not Accurate] (Constant)
Uncertain_SensorNotAcc_C = 83,
/// 0x54 – Uncertain [EU Exceeded]
Uncertain_EuExceeded = 84,
/// 0x55 – Uncertain [EU Exceeded] (Low Limited)
Uncertain_EuExceeded_LL = 85,
/// 0x56 – Uncertain [EU Exceeded] (High Limited)
Uncertain_EuExceeded_HL = 86,
/// 0x57 – Uncertain [EU Exceeded] (Constant)
Uncertain_EuExceeded_C = 87,
/// 0x58 – Uncertain [Sub-Normal]
Uncertain_SubNormal = 88,
/// 0x59 – Uncertain [Sub-Normal] (Low Limited)
Uncertain_SubNormal_LL = 89,
/// 0x5A – Uncertain [Sub-Normal] (High Limited)
Uncertain_SubNormal_HL = 90,
/// 0x5B – Uncertain [Sub-Normal] (Constant)
Uncertain_SubNormal_C = 91,
// ─────────────── Good family (192-219) ────────────
/// 0xC0 – Good [Non-Specific]
Good = 192,
/// 0xC1 – Good [Non-Specific] (Low Limited)
Good_LowLimited = 193,
/// 0xC2 – Good [Non-Specific] (High Limited)
Good_HighLimited = 194,
/// 0xC3 – Good [Non-Specific] (Constant)
Good_Constant = 195,
/// 0xD8 – Good [Local Override]
Good_LocalOverride = 216,
/// 0xD9 – Good [Local Override] (Low Limited)
Good_LocalOverride_LL = 217,
/// 0xDA – Good [Local Override] (High Limited)
Good_LocalOverride_HL = 218,
/// 0xDB – Good [Local Override] (Constant)
Good_LocalOverride_C = 219
}
}