static void TemperatureHumidityMeasured(object sender, SHT11Click.TemperatureHumidityEventArgs e) { string alarmsPresent = "SHT11Alarms Present : "; /* There are several ways in which to determine if there are any SHT11Alarms present */ // Method 1 - SHT11Alarms enumeration can be treated as a bit field using the XOr Operator as it has the [FlagsAttribute] set; //if ((e.SHT11Alarms ^ SHT11Click.SHT11Alarms.NoAlarm) == 0x00) alarmsPresent += "No SHT11Alarms present."; //if ((e.SHT11Alarms ^ SHT11Click.SHT11Alarms.TemperatureLow) == 0x00) alarmsPresent += "Low Temperature."; //if ((e.SHT11Alarms ^ SHT11Click.SHT11Alarms.TemperatureHigh) == 0x00) alarmsPresent += "High Temperature."; //if ((e.SHT11Alarms ^ SHT11Click.SHT11Alarms.HumidityLow) == 0x00) alarmsPresent += "Low Humidity."; //if ((e.SHT11Alarms ^ SHT11Click.SHT11Alarms.HumidityHigh) == 0x00) alarmsPresent += "High Humidity."; //if ((e.SHT11Alarms ^ SHT11Click.SHT11Alarms.TemperatureLowHumidityLow) == 0x00) alarmsPresent += "Low Temperature, Low Humidity."; //if ((e.SHT11Alarms ^ SHT11Click.SHT11Alarms.TemperatureLowHumidityHigh) == 0x00) alarmsPresent += "Low Temperature, High Temperature."; //if ((e.SHT11Alarms ^ SHT11Click.SHT11Alarms.TemperatureHighHumidityLow) == 0x00) alarmsPresent += "Temperature High, Low Humidity."; //if ((e.SHT11Alarms ^ SHT11Click.SHT11Alarms.TemperatureHighHumidityHigh) == 0x00) alarmsPresent += "Temperature High, High Humidity."; // Method 2 - Using the Enum Extension Method - ContainsFlag() if (e.SHT11Alarms.ContainsFlag(SHT11Click.SHT11Alarms.NoAlarm)) { alarmsPresent += "No SHT11Alarms present"; } if ((e.SHT11Alarms.ContainsFlag(SHT11Click.SHT11Alarms.TemperatureLow))) { alarmsPresent += "Low Temperature"; } if ((e.SHT11Alarms.ContainsFlag(SHT11Click.SHT11Alarms.TemperatureHigh))) { alarmsPresent += "High Temperature"; } if ((e.SHT11Alarms.ContainsFlag(SHT11Click.SHT11Alarms.HumidityLow))) { alarmsPresent += ", Low Humidity"; } if ((e.SHT11Alarms.ContainsFlag(SHT11Click.SHT11Alarms.HumidityHigh))) { alarmsPresent += ", High Humidity"; } // Method 3 - Using the Enum Extension Method - IsSet() //if (e.SHT11Alarms.IsSet(SHT11Click.SHT11Alarms.NoAlarm)) alarmsPresent += "No SHT11Alarms present"; //if (e.SHT11Alarms.IsSet(SHT11Click.SHT11Alarms.TemperatureLow)) alarmsPresent += "Low Temperature"; //if (e.SHT11Alarms.IsSet(SHT11Click.SHT11Alarms.TemperatureHigh)) alarmsPresent += "High Temperature"; //if (e.SHT11Alarms.IsSet(SHT11Click.SHT11Alarms.HumidityLow)) alarmsPresent += ", Low Humidity"; //if (e.SHT11Alarms.IsSet(SHT11Click.SHT11Alarms.HumidityHigh)) alarmsPresent += ", High Humidity"; // Method 4 - Using the Enum Extension Method - ContainsAny() if (e.SHT11Alarms.ContainsAnyFlag(SHT11Click.SHT11Alarms.TemperatureHigh, SHT11Click.SHT11Alarms.HumidityHigh)) { alarmsPresent += "SHT11Alarms preset."; // In this case I'm only looking for a high temperature alarm. } //Method 5 - Using a switch statement //switch (e.SHT11Alarms) //{ // case SHT11Click.SHT11Alarms.NoAlarm: // alarmsPresent += "No SHT11Alarms Present"; // break; // case SHT11Click.SHT11Alarms.TemperatureLow: // alarmsPresent += "Low Temperature."; // break; // case SHT11Click.SHT11Alarms.TemperatureHigh: // alarmsPresent += "High Temperature."; // break; // case SHT11Click.SHT11Alarms.HumidityLow: // alarmsPresent += "Low Humidity."; // break; // case SHT11Click.SHT11Alarms.HumidityHigh: // alarmsPresent += "High Humidity."; // break; // case SHT11Click.SHT11Alarms.TemperatureLowHumidityLow: // alarmsPresent += "Low Temperature and Low Humidity."; // break; // case SHT11Click.SHT11Alarms.TemperatureHighHumidityHigh: // alarmsPresent += "High Temperature and High Humidity."; // break; // case SHT11Click.SHT11Alarms.TemperatureLowHumidityHigh: // alarmsPresent += "Low Temperature and High Humidity."; // break; // case SHT11Click.SHT11Alarms.TemperatureHighHumidityLow: // alarmsPresent += "High Temperature and Low Humidity."; // break; //} Debug.Print("Temperature - " + Temperature.ConvertTo(TemperatureUnits.Celsius, TemperatureUnits.Fahrenheit, e.Temerature).ToString("f2") + " °F"); Debug.Print("Humidity - " + e.Humidity.ToString("f2") + " %RH"); Debug.Print("ReadRaw (Temperature) - " + (_sht11 as ITemperature).RawData); Debug.Print("ReadRaw (Humidity) - " + (_sht11 as ITemperature).RawData); Debug.Print("Dew Point - " + Temperature.ConvertTo(TemperatureUnits.Celsius, TemperatureUnits.Fahrenheit, Humidity.CalculateDewPoint(e.Temerature, e.Humidity)).ToString("f2") + " °F"); Debug.Print(alarmsPresent); Debug.Print("Heater is - " + (_sht11.GetHeaterStatus() == SHT11Click.HeaterStatus.On ? "On" : "Off\nSafe to end demo.")); Debug.Print("---------------------------------------------------\n"); }