コード例 #1
0
 private static void Print(ThermostatStatus tstat)
 {
     Console.WriteLine("Mode: " + tstat.Mode);
     Console.WriteLine("Fan: " + tstat.FanOperatingMode);
     Console.WriteLine("Current Temp: " + tstat.CurrentTemperature);
     Console.WriteLine("Target Heat: " + tstat.TargetTemperatureHeat);
     Console.WriteLine("Target Cool: " + tstat.TargetTemperatureCool);
     Console.WriteLine("Time: " + tstat.Time);
     Console.WriteLine("***********************************************");
 }
コード例 #2
0
        /// <summary>
        /// Sets the current status (temperature, mode, etc) of the thermostat.
        /// </summary>
        /// <param name="tstat"></param>
        /// <param name="ct">Cancellation token instance.</param>
        /// <returns></returns>
        public async Task <ThermostatStatus> SetThermostatStatus(ThermostatStatus tstat, CancellationToken ct)
        {
            var json     = Newtonsoft.Json.JsonConvert.SerializeObject(tstat.GetChangedProperties());
            var content  = new StringContent(json, Encoding.UTF8);
            var response = await this.PostAsync <ThermostatResponse>("tstat", ct, content);

            if (tstat.Mode == ThermostatModes.Off)
            {
                await Task.Delay(1000);
            }

            return(await this.GetThermostatStatus(ct));
        }
コード例 #3
0
ファイル: StartupTask.cs プロジェクト: adgroc/win-iot-core
 private void UpdateThermostat()
 {
     if (thermostatMode == ThermostatMode.Cool)
     {
         if (fahrenheitTemp > 25 && thermostatStatus == ThermostatStatus.Off)
         {
             Debug.WriteLine(string.Format("Temperature is {0} degrees fahrenheit. Turning AC on.", fahrenheitTemp));
             thermostatStatus = ThermostatStatus.Running;
         }
         else if (fahrenheitTemp <= 72 && thermostatStatus == ThermostatStatus.Running)
         {
             Debug.WriteLine(string.Format("Temperature is {0} degrees fahrenheit. Turning AC off.", fahrenheitTemp));
             thermostatStatus = ThermostatStatus.Off;
         }
     }
     else if (thermostatMode == ThermostatMode.Heat)
     {
         if (fahrenheitTemp < 100 && thermostatStatus == ThermostatStatus.Off)
         {
             Debug.WriteLine(string.Format("Temperature is {0} degrees fahrenheit. Turning furnance on.", fahrenheitTemp));
             thermostatStatus = ThermostatStatus.Running;
         }
         else if (fahrenheitTemp >= 68 && thermostatStatus == ThermostatStatus.Running)
         {
             Debug.WriteLine(string.Format("Temperature is {0} degrees fahrenheit. Turning furnance off.", fahrenheitTemp));
             thermostatStatus = ThermostatStatus.Off;
         }
     }
     else
     {
         Debug.WriteLine("Thermostate mode is set to Off. No action taken.");
     }
 }
コード例 #4
0
ファイル: StartupTask.cs プロジェクト: adgroc/win-iot-core
        private void pushButtonPin_ValueChanged(GpioPin sender, GpioPinValueChangedEventArgs args)
        {
            if (args.Edge == GpioPinEdge.FallingEdge)
            {
                if (thermostatStatus == ThermostatStatus.Running)
                {
                    thermostatStatus = ThermostatStatus.Off;
                    Debug.WriteLine("Thermostat status changed from Running to Off.");
                }

                switch (thermostatMode)
                {
                    case ThermostatMode.Off:
                        thermostatMode = ThermostatMode.Cool;
                        rgbLedStatus = RgbLedStatus.Blue;
                        SetRgbLedStatus(RgbLedStatus.Blue);
                        ReadADC();
                        UpdateThermostat();
                        Debug.WriteLine("Thermostat mode changed from Off to Cool.");
                        break;

                    case ThermostatMode.Cool:
                        thermostatMode = ThermostatMode.Heat;
                        rgbLedStatus = RgbLedStatus.Red;
                        SetRgbLedStatus(RgbLedStatus.Red);
                        ReadADC();
                        UpdateThermostat();
                        Debug.WriteLine("Thermostat mode changed from Cool to Heat.");
                        break;

                    case ThermostatMode.Heat:
                        thermostatMode = ThermostatMode.Off;
                        rgbLedStatus = RgbLedStatus.Off;
                        SetRgbLedStatus(RgbLedStatus.Off);
                        Debug.WriteLine("Thermostat mode changed from Heat to Off.");
                        break;
                }
            }
        }