Atmo.UI.DevEx.MainForm.timerWindFinder_Tick C# (CSharp) Method

timerWindFinder_Tick() public method

public timerWindFinder_Tick ( object sender, EventArgs e ) : void
sender object
e EventArgs
return void
        public void timerWindFinder_Tick(object sender, EventArgs e)
        {
            int sensor_num;
            sensor_num = AppContext.PersistentState.StationSensorIndexWF;

            string str_not_corr_sensor = "Not correct sensor selected!";

            try
            {

                ISensor[] sensors = _deviceConnection.ToArray();

                if (sensors[sensor_num].IsValid)
                {
                    if (labelControlWindFinder.Text == str_not_corr_sensor)
                    {
                       //labelControlWindFinder.Text = "Correct sensor selected";
                       labelControlWindFinder.SetPropertyThreadSafe(() => labelControlWindFinder.Text, "Correct sensor selected");
                    }
                }
                else
                {
                    // CancelWindFinder("Not correct sensor selected!");
                    labelControlWindFinder.SetPropertyThreadSafe(() => labelControlWindFinder.Text, str_not_corr_sensor);
                    return;
                }

                pom_inverval++;
                if (pom_inverval < AppContext.PersistentState.StationIntervalWF * 6) return;

                pom_inverval = 0;

                var reading = sensors[sensor_num].GetCurrentReading();

                // Log.DebugFormat("readed from sensor: " + reading.ToString() );
                //   System.Diagnostics.Debug.WriteLine("readed from sensor: " + reading.Humidity.ToString() + " " + reading.Temperature.ToString() +
                //     " " + reading.Pressure.ToString() + " " + reading.TimeStamp.ToString() + " " + reading.WindDirection.ToString() + " " + reading.WindSpeed.ToString());

                Dictionary<string, string> queryParams = new Dictionary<string, string>();
                queryParams.Add("sender_id", AppContext.PersistentState.StationNameWF);
                queryParams.Add("password", AppContext.PersistentState.StationPasswordWF);
                DateTime utcStamp = reading.TimeStamp.ToUniversalTime();
                //queryParams.Add("date", utcStamp.ToString("yyyy-MM-dd hh:mm:ss"));

                queryParams.Add("date", utcStamp.ToString("dd.MM.yyyy"));
                queryParams.Add("time", utcStamp.ToString("hh:mm"));

                if (reading.IsTemperatureValid)
                {
                    var tempConverter = ReadingValuesConverterCache<Reading>.TemperatureCache
                        .Get(sensors[sensor_num].TemperatureUnit, TemperatureUnit.Celsius);
                    var temperature = tempConverter.Convert(reading.Temperature);
                    queryParams.Add("airtemp", temperature.ToString());
                }

                if (reading.IsWindSpeedValid)
                {
                    var speedConverter = ReadingValuesConverterCache<Reading>.SpeedCache
                        .Get(sensors[sensor_num].SpeedUnit, SpeedUnit.MetersPerSec);
                    var speed = speedConverter.Convert(reading.WindSpeed / 3.6);
                    queryParams.Add("windspeed", speed.ToString());
                }

                if (reading.IsWindDirectionValid && reading.WindDirection >= 0 && reading.WindDirection <= 360.0)
                {
                    queryParams.Add("winddir", ((int)(reading.WindDirection)).ToString());
                }

                if (reading.IsPressureValid)
                {
                    var pressConverter = ReadingValuesConverterCache<Reading>.PressCache
                        .Get(sensors[sensor_num].PressureUnit, PressureUnit.KiloPascals);
                    var pressure = pressConverter.Convert(reading.Pressure);
                    queryParams.Add("pressure", pressure.ToString());
                }

                /*
                if (reading.IsHumidityValid)
                {
                    queryParams.Add("humidity", (reading.Humidity * 100.0).ToString());
                }

                if (reading.IsHumidityValid && reading.IsTemperatureValid)
                {
                    var tempConverterCelcius = ReadingValuesConverterCache<Reading>.TemperatureCache
                        .Get(sensors[sensor_num].TemperatureUnit, TemperatureUnit.Celsius);
                    var tempConverterCToF = ReadingValuesConverterCache<Reading>.TemperatureCache
                        .Get(TemperatureUnit.Celsius, TemperatureUnit.Fahrenheit);

                    var tempC = tempConverterCelcius.Convert(reading.Temperature);
                    var dewPointC = DewPointCalculator.DewPoint(tempC, reading.Humidity);
                    var dewPointF = tempConverterCToF.Convert(dewPointC);
                    queryParams.Add("dewptf", dewPointF.ToString());
                }

               */

                var builder = new UriBuilder("http://www.windfinder.com/wind-cgi/httpload.pl?");

                //sender_id="++"&password=&date=19.5.2011&time=17:13&airtemp=20&windspeed=12&gust=14&winddir=180&pressure=1012&rain=5");

                builder.Query = String.Join(
                    "&",
                    queryParams
                        .Select(kvp => String.Concat(Uri.EscapeDataString(kvp.Key), '=', Uri.EscapeDataString(kvp.Value)))
                        .ToArray()
                );
                try
                {
                    var reqSent = HttpWebRequest.Create(builder.Uri);
                    reqSent.BeginGetResponse(HandlWFResult, reqSent);

                    System.Diagnostics.Debug.WriteLine("\r\nRiadok: " + builder.Uri);

                }
                catch (Exception ex)
                {
                    Log.Warn("WindFinder failure.", ex);
                }

            }
            catch (Exception mainex)
            {
                Log.Warn("WindFinder failure main: ", mainex);
            }
        }
MainForm