Ejemplo n.º 1
0
        /// <summary>
        /// Provides the time since the sensor value was last updated
        /// </summary>
        /// <param name="PropertyName">Name of the property whose time since last update Is required</param>
        /// <returns>Time in seconds since the last sensor update for this property</returns>
        /// <remarks>
        /// PropertyName should be one of the sensor properties Or empty string to get
        /// the last update of any parameter. A negative value indicates no valid value
        /// ever received.
        /// </remarks>
        public double TimeSinceLastUpdate(string PropertyName)
        {
            if (MyDriverType == 0)
            {
                return(MySSObservingConditions.TimeSinceLastUpdate(PropertyName));
            }
            else
            {
                // the checks can be removed if all properties have the same time.
                if (!string.IsNullOrEmpty(PropertyName))
                {
                    switch (PropertyName.Trim().ToLowerInvariant())
                    {
                    // break or return the time on the properties that are implemented
                    case "averageperiod":
                    case "dewpoint":
                    case "humidity":
                    case "pressure":
                    case "rainrate":
                    case "skybrightness":
                    case "skyquality":
                    case "starfwhm":
                    case "skytemperature":
                    case "temperature":
                    case "winddirection":
                    case "windgust":
                    case "windspeed":
                        // throw an exception on the properties that are not implemented
                        LogMessage("TimeSinceLastUpdate", "{0} - not implemented", PropertyName);
                        throw new MethodNotImplementedException("SensorDescription(" + PropertyName + ")");

                    default:
                        LogMessage("TimeSinceLastUpdate", "{0} - unrecognised", PropertyName);
                        throw new ASCOM.InvalidValueException("SensorDescription(" + PropertyName + ")");
                    }
                }
            }
            // return the time
            LogMessage("TimeSinceLastUpdate", "{0} - not implemented", PropertyName);
            throw new MethodNotImplementedException("TimeSinceLastUpdate(" + PropertyName + ")");
        }
        private void GetDataButton_Click(object sender, EventArgs e)
        {
            try
            {
                UpdateValue(CloudCoverValue, () =>
                {
                    CloudCoverValue.Text       = driver.CloudCover.ToString(CultureInfo.InvariantCulture);
                    CloudCoverDateTime.Text    = driver.TimeSinceLastUpdate("CloudCover").ToString(CultureInfo.InvariantCulture);
                    CloudCoverDescription.Text = driver.SensorDescription("CloudCover");
                });

                UpdateValue(DewPointValue, () =>
                {
                    DewPointValue.Text       = driver.DewPoint.ToString(CultureInfo.InvariantCulture);
                    DewPointDateTime.Text    = driver.TimeSinceLastUpdate("DewPoint").ToString(CultureInfo.InvariantCulture);
                    DewPointDescription.Text = driver.SensorDescription("DewPoint");
                });
                UpdateValue(HumidityValue, () =>
                {
                    HumidityValue.Text       = driver.Humidity.ToString(CultureInfo.InvariantCulture);
                    HumidityDateTime.Text    = driver.TimeSinceLastUpdate("Humidity").ToString(CultureInfo.InvariantCulture);
                    HumidityDescription.Text = driver.SensorDescription("Humidity");
                });
                UpdateValue(PressureValue, () =>
                {
                    PressureValue.Text       = driver.Pressure.ToString(CultureInfo.InvariantCulture);
                    PressureDateTime.Text    = driver.TimeSinceLastUpdate("Pressure").ToString(CultureInfo.InvariantCulture);
                    PressureDescription.Text = driver.SensorDescription("Pressure");
                });
                UpdateValue(RainRateValue, () =>
                {
                    RainRateValue.Text       = driver.RainRate.ToString(CultureInfo.InvariantCulture);
                    RainRateDateTime.Text    = driver.TimeSinceLastUpdate("RainRate").ToString(CultureInfo.InvariantCulture);
                    RainRateDescription.Text = driver.SensorDescription("RainRate");
                });
                UpdateValue(SkyBrightnessValue, () =>
                {
                    SkyBrightnessValue.Text       = driver.SkyBrightness.ToString(CultureInfo.InvariantCulture);
                    SkyBrightnessDateTime.Text    = driver.TimeSinceLastUpdate("SkyBrightness").ToString(CultureInfo.InvariantCulture);
                    SkyBrightnessDescription.Text = driver.SensorDescription("SkyBrightness");
                });
                UpdateValue(SkyQualityValue, () =>
                {
                    SkyQualityValue.Text       = driver.SkyQuality.ToString(CultureInfo.InvariantCulture);
                    SkyQualityDateTime.Text    = driver.TimeSinceLastUpdate("SkyQuality").ToString(CultureInfo.InvariantCulture);
                    SkyQualityDescription.Text = driver.SensorDescription("SkyQuality");
                });
                UpdateValue(StarFwhmValue, () =>
                {
                    StarFwhmValue.Text       = driver.StarFWHM.ToString(CultureInfo.InvariantCulture);
                    StarFwhmDateTime.Text    = driver.TimeSinceLastUpdate("StarFwhm").ToString(CultureInfo.InvariantCulture);
                    StarFwhmDescription.Text = driver.SensorDescription("StarFwhm");
                });
                UpdateValue(SkyTemperatureValue, () =>
                {
                    SkyTemperatureValue.Text       = driver.SkyTemperature.ToString(CultureInfo.InvariantCulture);
                    SkyTemperatureDateTime.Text    = driver.TimeSinceLastUpdate("SkyTemperature").ToString(CultureInfo.InvariantCulture);
                    SkyTemperatureDescription.Text = driver.SensorDescription("SkyTemperature");
                });
                UpdateValue(TemperatureValue, () =>
                {
                    TemperatureValue.Text       = driver.Temperature.ToString(CultureInfo.InvariantCulture);
                    TemperatureDateTime.Text    = driver.TimeSinceLastUpdate("Temperature").ToString(CultureInfo.InvariantCulture);
                    TemperatureDescription.Text = driver.SensorDescription("Temperature");
                });
                UpdateValue(WindDirectionValue, () =>
                {
                    WindDirectionValue.Text       = driver.WindDirection.ToString(CultureInfo.InvariantCulture);
                    WindDirectionDateTime.Text    = driver.TimeSinceLastUpdate("WindDirection").ToString(CultureInfo.InvariantCulture);
                    WindDirectionDescription.Text = driver.SensorDescription("WindDirection");
                });
                UpdateValue(WindGustValue, () =>
                {
                    WindGustValue.Text       = driver.WindGust.ToString(CultureInfo.InvariantCulture);
                    WindGustDateTime.Text    = driver.TimeSinceLastUpdate("WindGust").ToString(CultureInfo.InvariantCulture);
                    WindGustDescription.Text = driver.SensorDescription("WindGust");
                });
                UpdateValue(WindSpeedValue, () =>
                {
                    WindSpeedValue.Text       = driver.WindSpeed.ToString(CultureInfo.InvariantCulture);
                    WindSpeedDateTime.Text    = driver.TimeSinceLastUpdate("WindSpeed").ToString(CultureInfo.InvariantCulture);
                    WindSpeedDescription.Text = driver.SensorDescription("WindSpeed");
                });
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }