/// <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); } }