コード例 #1
0
ファイル: Program.cs プロジェクト: valoni/NETMF44
        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");
        }