예제 #1
0
        private void GetSensorsValuesAndUpdate(DateTime dt)
        {
            Logging.LogEvent(0, "ControlPanelUpdater", $"Updating main sensors values... DT = {dt:dd.MM.yyyy,HH:mm}");
            try
            {
                label1.Text     = sensorsText[0];
                label2.Text     = sensorsText[1];
                label5.Text     = sensorsText[2];
                linkLabel1.Text = sensorsText[3];
                label3.Text     = sensorsText[4];

                System.Collections.Generic.Dictionary <string, object> reqResult = HomeSensor.GetMainSensorsValues(dt);

                if (reqResult.Count > 0)
                {
                    label1.Text =
                        Convert.ToDouble(reqResult["temperature"]).ToString() + " °C / " +
                        ((Convert.ToDouble(reqResult["temperature"]) * 9.00 / 5.00) + 32.00).ToString() + " °F";

                    sensorsToolTips[0].SetToolTip(
                        label1, sensorsToolTips[0].ToolTipTitle + reqResult["datetime"].ToString()
                        );

                    label2.Text = Convert.ToInt32(reqResult["humidity"]).ToString() + "%";

                    sensorsToolTips[1].SetToolTip(
                        label2, sensorsToolTips[1].ToolTipTitle + reqResult["datetime"].ToString()
                        );
                }
                else
                {
                    Logging.LogEvent(
                        2, "ControlPanelUpdater",
                        $"The server did not return sensors values. DT={dt:dd.MM.yyyy HH:mm:ss}"
                        );
                }

                System.Collections.Generic.List <object> sqlReqWateringResult =
                    DatabaseConnecting.ProcessSqlRequest(
                        $"SELECT id, valdatetime, flowernum, state FROM `watering` " +
                        $"WHERE valdatetime > ('{dt:yyyy-MM-dd}') " +
                        $"AND valdatetime < DATE_ADD('{dt:yyyy-MM-dd}', INTERVAL 1 DAY) " +
                        $"ORDER BY id DESC LIMIT 1"
                        );

                if (sqlReqWateringResult.Count > 0)
                {
                    label3.Text += $" {Convert.ToDateTime(sqlReqWateringResult[1]):dd.MM.yyyy HH:mm:ss}";
                }
            }
            catch (Exception ex)
            {
                Logging.LogEvent(
                    3, "ControlPanelUpdater",
                    $"An error happened while updating main sensors values!\n{ex}"
                    );
                MessageBox.Show($"Произошла ошибка!\n{ex.Message}");
            }
        }
예제 #2
0
        private void button3_Click(object sender, EventArgs e)
        {
            if (showMainSensors)
            {
                Logging.LogEvent(1, "OtherSensors", "Hiding main sensors...");
                GetSensorsValuesAndUpdate(dateTimePicker1.Value);
                showMainSensors = false;
                ChangeMainSensorsButtonToolTip();
            }
            else
            {
                Logging.LogEvent(1, "OtherSensors", "Showing main sensors...");
                try
                {
                    List <HomeSensor> mainSensors = new List <HomeSensor>();

                    Dictionary <string, object> reqResult = HomeSensor.GetMainSensorsValues(dateTimePicker1.Value);

                    mainSensors.Add(new HomeSensor(
                                        -1,
                                        Convert.ToDouble(reqResult["temperature"]),
                                        Convert.ToDateTime(reqResult["datetime"]),
                                        Languages.GetLocalizedString("Temperature", "Temperature")
                                        ));
                    mainSensors.Add(new HomeSensor(
                                        -2,
                                        Convert.ToDouble(reqResult["humidity"]),
                                        Convert.ToDateTime(reqResult["datetime"]),
                                        Languages.GetLocalizedString("Humidity", "Humidity")
                                        ));

                    dataGridView1.Rows.Clear();
                    foreach (HomeSensor shsensor in mainSensors)
                    {
                        string[] sensorValArr = new string[3]
                        {
                            shsensor.Dt.ToString(), shsensor.Name, shsensor.Value.ToString()
                        };
                        dataGridView1.Rows.Add(sensorValArr);
                    }
                    GetSensorsValuesAndUpdate(dateTimePicker1.Value, false);
                    showMainSensors = true;
                    ChangeMainSensorsButtonToolTip();
                }
                catch (Exception ex)
                {
                    Logging.LogEvent(
                        3, "OtherSensors",
                        $"An error happened while updating table with main and custom sensors!\n{ex}"
                        );
                }
            }
        }