private void timerAwekas_Tick(object sender, EventArgs e)
{
string str_not_corr_sensor = "Not correct sensor selected!";
int sensor_num;
try
{
sensor_num = AppContext.PersistentState.StationSensorIndexAw;
ISensor[] sensors = _deviceConnection.ToArray();
if (sensors[sensor_num].IsValid)
{
if (labelControlAwekas.Text == str_not_corr_sensor)
{
labelControlAwekas.SetPropertyThreadSafe(() => labelControlAwekas.Text, "Correct sensor selected");
}
}
else
{
// CancelAwekas("Not correct sensor selected!");
labelControlAwekas.SetPropertyThreadSafe(() => labelControlAwekas.Text, str_not_corr_sensor);
return;
}
pom_inverval_aw++;
var reading = sensors[sensor_num].GetCurrentReading();
DateTime current = DateTime.Now;
//System.Diagnostics.Debug.WriteLine(current.ToShortTimeString() + "Timer prerusenie - AWEKAS: " + pom_inverval_aw.ToString() );
if (pom_inverval_aw < (AppContext.PersistentState.StationIntervalAW * 6)) return;
pom_inverval_aw = 0;
DateTime utcStamp = reading.TimeStamp.ToUniversalTime();
string str_temp = "";
if (reading.IsTemperatureValid)
{
var tempConverter = ReadingValuesConverterCache<Reading>.TemperatureCache
.Get(sensors[sensor_num].TemperatureUnit, TemperatureUnit.Celsius);
var temperature = tempConverter.Convert(reading.Temperature);
str_temp = temperature.ToString();
}
string str_hum = "";
if (reading.IsHumidityValid)
{
str_hum = (reading.Humidity * 100.0).ToString();
}
string str_press = "";
if (reading.IsPressureValid)
{
var pressConverter = ReadingValuesConverterCache<Reading>.PressCache
.Get(sensors[sensor_num].PressureUnit, PressureUnit.Pascals);
var pressure = pressConverter.Convert(reading.Pressure)/100;
str_press = pressure.ToString();
}
string str_windspeed = "";
if (reading.IsWindSpeedValid)
{
var speedConverter = ReadingValuesConverterCache<Reading>.SpeedCache
.Get(sensors[sensor_num].SpeedUnit, SpeedUnit.MetersPerSec);
var speed = speedConverter.Convert(reading.WindSpeed / 3.6);
str_windspeed = speed.ToString();
}
string str_windir = "";
if (reading.IsWindDirectionValid && reading.WindDirection >= 0 && reading.WindDirection <= 360.0)
{
str_windir = ((int)(reading.WindDirection)).ToString();
}
var builder = new UriBuilder("http://www.awekas.at/extern/eingabe_pruefung.php?val=" + AppContext.PersistentState.StationNameAw.ToString() + ";" +
CalculateMD5Hash(AppContext.PersistentState.StationPasswordAw.ToString()) + ";" +
utcStamp.ToString("dd.MM.yyyy") + ";" +
utcStamp.ToString("hh:mm") + ";" +
str_temp + ";" +
str_hum + ";" +
str_press + ";" +
";" + // precipiation
str_windspeed + ";" +
str_windir + ";" +
";" + // 11
";" + // 12
";" + // 13
"en" + ";" +//14
"0" + ";" +//15
"0" + ";" //16
);
current = DateTime.Now;
System.Diagnostics.Debug.WriteLine(current.ToShortTimeString() + "Poslane AWEKAS: " + builder.Uri);
try
{
var reqSent = HttpWebRequest.Create(builder.Uri);
reqSent.BeginGetResponse(HandleAwResult, reqSent);
}
catch (Exception ex)
{
Log.Warn("Awekas failure.", ex );
}
}
catch (Exception exmain)
{
Log.Warn("Awekas failure main: ", exmain );
}
}