namespace ZB.MOM.WW.LmxProxy.Client.Domain;
/// Extension methods for .
public static class QualityExtensions
{
/// Returns true if quality is in the Good family (byte >= 192).
public static bool IsGood(this Quality q) => (byte)q >= 192;
/// Returns true if quality is in the Uncertain family (byte 64-127).
public static bool IsUncertain(this Quality q) => (byte)q is >= 64 and < 128;
/// Returns true if quality is in the Bad family (byte < 64).
public static bool IsBad(this Quality q) => (byte)q < 64;
///
/// Converts an OPC UA 32-bit status code to the simplified enum.
/// Uses the top two bits to determine the quality family.
///
public static Quality FromStatusCode(uint statusCode)
{
uint category = statusCode & 0xC0000000;
return category switch
{
0x00000000 => Quality.Good,
0x40000000 => Quality.Uncertain,
_ => Quality.Bad
};
}
}