public static string ToString(DeviceValueFlag value)
 {
     if (value == DeviceValueFlag.Ok)
     {
         return("ok");
     }
     else if (value == DeviceValueFlag.Ongoing)
     {
         return("ongoing");
     }
     else if (value == DeviceValueFlag.Early)
     {
         return("early");
     }
     else if (value == DeviceValueFlag.Questionable)
     {
         return("questionable");
     }
     else if (value == DeviceValueFlag.Calibrating)
     {
         return("calibrating");
     }
     else if (value == DeviceValueFlag.Error)
     {
         return("error");
     }
     else if (value == DeviceValueFlag.Unknown)
     {
         return("unknown");
     }
     else if (value == DeviceValueFlag.Test)
     {
         return("test");
     }
     else if (value == DeviceValueFlag.Demo)
     {
         return("demo");
     }
     else if (value == DeviceValueFlag.Under)
     {
         return("under");
     }
     else if (value == DeviceValueFlag.Over)
     {
         return("over");
     }
     else if (value == DeviceValueFlag.Alarm)
     {
         return("alarm");
     }
     else if (value == DeviceValueFlag.AlarmOff)
     {
         return("alarm-off");
     }
     else
     {
         throw new ArgumentException("Unrecognized DeviceValueFlag value: " + value.ToString());
     }
 }
            public static bool TryParse(string value, out DeviceValueFlag result)
            {
                result = default(DeviceValueFlag);

                if (value == "ok")
                {
                    result = DeviceValueFlag.Ok;
                }
                else if (value == "ongoing")
                {
                    result = DeviceValueFlag.Ongoing;
                }
                else if (value == "early")
                {
                    result = DeviceValueFlag.Early;
                }
                else if (value == "questionable")
                {
                    result = DeviceValueFlag.Questionable;
                }
                else if (value == "calibrating")
                {
                    result = DeviceValueFlag.Calibrating;
                }
                else if (value == "error")
                {
                    result = DeviceValueFlag.Error;
                }
                else if (value == "unknown")
                {
                    result = DeviceValueFlag.Unknown;
                }
                else if (value == "test")
                {
                    result = DeviceValueFlag.Test;
                }
                else if (value == "demo")
                {
                    result = DeviceValueFlag.Demo;
                }
                else if (value == "under")
                {
                    result = DeviceValueFlag.Under;
                }
                else if (value == "over")
                {
                    result = DeviceValueFlag.Over;
                }
                else if (value == "alarm")
                {
                    result = DeviceValueFlag.Alarm;
                }
                else if (value == "alarm-off")
                {
                    result = DeviceValueFlag.AlarmOff;
                }
                else
                {
                    return(false);
                }

                return(true);
            }