Opc.Ua.Com.ComUtils.GetHdaQualityCode C# (CSharp) Method

GetHdaQualityCode() public static method

Converts a HDA quality code to a StatusCode.
public static GetHdaQualityCode ( uint quality ) : StatusCode
quality uint
return StatusCode
        public static StatusCode GetHdaQualityCode(uint quality)
        {
            uint hdaCode = quality & 0xFFFF0000;
            
            // check for bits indicating an out right error.
            if ((hdaCode & OpcRcw.Hda.Constants.OPCHDA_NOBOUND) != 0)
            {
                return StatusCodes.BadBoundNotFound;
            }

            if ((hdaCode & OpcRcw.Hda.Constants.OPCHDA_NODATA) != 0)
            {
                return StatusCodes.BadNoData;
            }

            if ((hdaCode & OpcRcw.Hda.Constants.OPCHDA_DATALOST) != 0)
            {
                return StatusCodes.BadDataLost;
            }

            if ((hdaCode & OpcRcw.Hda.Constants.OPCHDA_CONVERSION) != 0)
            {
                return StatusCodes.BadTypeMismatch;
            }

            // Get DA part (lower 2 bytes).
            StatusCode code = GetQualityCode((short)(quality & 0x0000FFFF));
            
            // check for bits that are placed in the info bits.
            AggregateBits aggregateBits = 0;
            
            if ((hdaCode & OpcRcw.Hda.Constants.OPCHDA_EXTRADATA) != 0)
            {
                aggregateBits |= AggregateBits.ExtraData;
            }

            if ((hdaCode & OpcRcw.Hda.Constants.OPCHDA_INTERPOLATED) != 0)
            {
                aggregateBits |= AggregateBits.Interpolated;
            }

            if ((hdaCode & OpcRcw.Hda.Constants.OPCHDA_RAW) != 0)
            {
                aggregateBits |= AggregateBits.Raw;
            }

            if ((hdaCode & OpcRcw.Hda.Constants.OPCHDA_CALCULATED) != 0)
            {
                aggregateBits |= AggregateBits.Calculated;
            }

            if ((hdaCode & OpcRcw.Hda.Constants.OPCHDA_PARTIAL) != 0)
            {
                aggregateBits |= AggregateBits.Partial;
            }

            if (aggregateBits != 0)
            {
                return code.SetAggregateBits(aggregateBits);
            }

            return code;
        }

Same methods

ComUtils::GetHdaQualityCode ( StatusCode input ) : uint