Exemplo n.º 1
0
        private void SetLightControlSettings_btn_Click(object sender, EventArgs e)
        {
            byte timeON  = CheckAndConvertSetTime(TimeON_tbx, "świecenia lampy");
            byte timeOFF = CheckAndConvertSetTime(TimeOFF_tbx, "wyłączenia lampy");

            if (timeOFF == 24)
            {
                lampConfiguration.State   = 1; //off
                lampConfiguration.TimeOn  = timeON;
                lampConfiguration.TimeOff = timeOFF;

                SendLampConfig();
                INIConfig iniCfg = new INIConfig();
                iniCfg.SetLampConfig(lampConfiguration);
            }
            else if (timeON == 24)
            {
                lampConfiguration.State   = 2; //on
                lampConfiguration.TimeOn  = timeON;
                lampConfiguration.TimeOff = timeOFF;

                SendLampConfig();
                INIConfig iniCfg = new INIConfig();
                iniCfg.SetLampConfig(lampConfiguration);
            }
            else
            {
                if (timeON + timeOFF == 24)
                {
                    if (TurnOffState.Checked)
                    {
                        lampConfiguration.State   = 1; //off
                        lampConfiguration.TimeOn  = timeON;
                        lampConfiguration.TimeOff = timeOFF;

                        SendLampConfig();
                        INIConfig iniCfg = new INIConfig();
                        iniCfg.SetLampConfig(lampConfiguration);
                    }
                    else if (TurnOnState.Checked)
                    {
                        lampConfiguration.State   = 2; //on
                        lampConfiguration.TimeOn  = timeON;
                        lampConfiguration.TimeOff = timeOFF;

                        SendLampConfig();
                        INIConfig iniCfg = new INIConfig();
                        iniCfg.SetLampConfig(lampConfiguration);
                    }
                    else if (!TurnOnState.Checked && !TurnOffState.Checked)
                    {
                        MessageBox.Show("Określ początkowy stan oświetlenia.", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show("Podano złą liczbę czasów. Suma czasów musi być równa 24 (cykl dobowy)", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Exemplo n.º 2
0
        public MainForm()
        {
            InitializeComponent();
            this.trayMenu.Visible = false;
            this.tray.Visible     = false;
            this.Closing         += new CancelEventHandler(this.AppClosing);

            INIConfig iniConf = new INIConfig();

            netConfiguration = iniConf.GetNetworkConfig();
            //netConfiguration.IpAddr = "255.255.255.255";
            //netConfiguration.Port = 48899;
            errLog        = new ErrorLogger();
            netFunctional = new NetFunc(netConfiguration);
            dispDta       = new DisplayData(receivedConsole_tbx);
        }
Exemplo n.º 3
0
        private void ActualSettings_submenuitem_Click(object sender, EventArgs e)
        {
            string     IpAddrInfo  = null;
            string     UdpPortInfo = null;
            INIConfig  iniCfg      = new INIConfig();
            TempConfig tempCfg     = iniCfg.GetTempConfig();
            IrrConfig  irrCfg      = iniCfg.GetIrrigationConfig();
            LampConfig lampCfg     = iniCfg.GetLampConfig();

            if (netConfiguration.IpAddr == "" || netConfiguration.IpAddr == null)
            {
                IpAddrInfo = "Brak/nieskonfigurowano";
            }
            else
            {
                IpAddrInfo = netConfiguration.IpAddr;
            }

            if (netConfiguration.Port == (-1))
            {
                UdpPortInfo = "Brak/nieskonfigurowano";
            }
            else
            {
                UdpPortInfo = netConfiguration.Port.ToString();
            }

            string lampState = null;

            if (lampCfg.State == 1)
            {
                lampState = "wyłączona";
            }
            else if (lampCfg.State == 2)
            {
                lampState = "włączona";
            }

            string fansString = null;

            fansString  = "Wentylator wciągający powietrze: " + tempCfg.FanPull + "% mocy" + Environment.NewLine;
            fansString += "Wentylatory wyciągające powietrze: " + tempCfg.FanPush + "% mocy" + Environment.NewLine;

            string tempMode = null;

            if (tempCfg.Mode == 1) //manual
            {
                tempMode = "manualny";
            }
            else if (tempCfg.Mode == 2) //auto
            {
                tempMode = "automatyczny (tryb max)";
            }

            MessageBox.Show("Ustawione parametry: " + Environment.NewLine +
                            "Lampa włączona: " + lampCfg.TimeOn + "h" + Environment.NewLine +
                            "Lampa wyłączona: " + lampCfg.TimeOff + "h" + Environment.NewLine +
                            "Stan lampy: " + lampState + Environment.NewLine +
                            "Tryb sterowania temperaturą powietrza: " + tempMode + Environment.NewLine +
                            fansString +
                            "Temperatura powietrza (max): " + tempCfg.TempValue + "°C" + Environment.NewLine +
                            "Adres IP: " + IpAddrInfo + Environment.NewLine +
                            "Port nasłuchu UDP: " + UdpPortInfo, "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        private void netConfBtn_Click(object sender, EventArgs e)
        {
            bool   IsProper = false;
            string ipAddr   = ipAddrTbx.Text;
            string portStr  = portTbx.Text;

            try
            {
                NetFunc netFunc = new NetFunc(netCfgForm);
                if (netFunc.IsIpV4AddressValid(ipAddr))
                {
                    IsProper = true;
                }
                else
                {
                    MessageBox.Show("Podano zły adres IP!",
                                    "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    ipAddrTbx.Clear();
                    IsProper = false;
                }

                if (IsProper)
                {
                    try
                    {
                        int port = Convert.ToInt32(portStr);
                        if (netFunc.IsNetworkPortValid(port))
                        {
                            netCfgForm.IpAddr = ipAddr;
                            netCfgForm.Port   = port;
                            if (!netFunc.UdpThreadRecv.IsAlive)
                            {
                                netFunc.UdpThreadRecv = new Thread(new ThreadStart(netFunc.UDP_Listener));
                                netFunc.UdpThreadRecv.Start();
                            }
                            else
                            {
                                netFunc.UdpThreadRecv.Abort();
                                netFunc.UdpThreadRecv = new Thread(new ThreadStart(netFunc.UDP_Listener));
                                netFunc.UdpThreadRecv.Start();
                            }

                            INIConfig iniCfg = new INIConfig();
                            iniCfg.SetNetworkConfig(netCfgForm);
                            Close();
                        }
                        else
                        {
                            IsProper = false;
                            MessageBox.Show("Numer portu z poza puli liczbowej! Wpisz liczbę od 0 do 65535",
                                            "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            portTbx.Clear();
                        }
                    }
                    catch (FormatException)
                    {
                        IsProper = false;
                        MessageBox.Show("Nie określono portu lub port jest literą! Wpisz liczbę od 0 do 65535",
                                        "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        portTbx.Clear();
                    }
                }
            }
            catch (Exception err)
            {
                if (err.InnerException == null)
                {
                    InnerException = "None";
                    errLog.SaveLogToTxt(err.StackTrace, err.Message, InnerException);
                }
                else
                {
                    errLog.SaveLogToTxt(err.StackTrace, err.Message, err.InnerException.ToString());
                }
            }
        }
        private void Irrigation_btn_Click(object sender, EventArgs e)
        {
            if (TimeMode_rbtn.Checked == true) //auto czasowe
            {
                irrigationConfig.Mode = autoTimeMode;
                try
                {
                    FreqByte = Convert.ToByte(Freq_tbx.Text);

                    if (FreqByte < 1)
                    {
                        MessageBox.Show("Podano złą wartość częstotliwości podlewania. Minimalna częstotliwość to 1 raz na dobę.",
                                        "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    {
                        acceptParameters      = true;
                        irrigationConfig.Freq = FreqByte;
                    }
                }
                catch (FormatException)
                {
                    acceptParameters = false;
                    MessageBox.Show("Nie podano częstotliwości podlewania lub częstotliwośc podlewania nie jest cyfrą.",
                                    "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                catch (Exception)
                {
                    acceptParameters = false;
                    MessageBox.Show("Podano złą wartość częstotliwości podlewania. Minimalna częstotliwość to 1 raz na dobę.",
                                    "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else if (SoilMode_rbtn.Checked == true) //auto względem wilgotności gleby
            {
                irrigationConfig.Mode = autoSoilHumidityMode;
                acceptParameters      = true;
            }
            else if (ManualMode_rbtn.Checked == true)
            {
                irrigationConfig.Mode = manualMode;
                acceptParameters      = true;
            }
            else if (TimeMode_rbtn.Checked == false && SoilMode_rbtn.Checked == false && ManualMode_rbtn.Checked == false)
            {
                acceptParameters = false;
                MessageBox.Show("Nie wybrałeś żadnego trybu nawadniania.", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            try
            {
                WaterStr = IrrigationWater_tbx.Text;
                WaterInt = Convert.ToInt32(WaterStr);

                if (WaterInt < 50 && WaterInt >= 2500)
                {
                    acceptParameters = false;
                    MessageBox.Show("Podano złą wartość ilości wody. Podaj liczbę w mililitrach od 50 do 2500.",
                                    "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    acceptParameters        = true;
                    WaterByte               = (byte)(WaterInt / 10); //scaled last zero, for example 2500ml / 10 = 250ml - byte range
                    irrigationConfig.Number = (uint)WaterByte;
                }
            }
            catch (FormatException)
            {
                acceptParameters = false;
                MessageBox.Show("Nie podano ilości wody lub ilośc wody nie jest cyfrą.", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception)
            {
                acceptParameters = false;
                MessageBox.Show("Podano złą wartość ilości wody. Podaj liczbę w mililitrach od 50 do 2500.", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            if (acceptParameters == true)
            {
                Byte[] cmdIrrigation = new byte[11];

                cmdIrrigation[0]  = 83; //S
                cmdIrrigation[1]  = 84; //T
                cmdIrrigation[2]  = 65; //A
                cmdIrrigation[3]  = 83; //S
                cmdIrrigation[4]  = 73; //I - irrigation
                cmdIrrigation[5]  = irrigationConfig.Mode;
                cmdIrrigation[6]  = irrigationConfig.Freq;
                cmdIrrigation[7]  = (byte)irrigationConfig.Number;
                cmdIrrigation[8]  = 69; //E
                cmdIrrigation[9]  = 78; //N
                cmdIrrigation[10] = 68; //D

                NetFunc netFunctional = new NetFunc(netConfiguration);
                netFunctional.UDP_Sender(cmdIrrigation);
                netFunctional = null;
                INIConfig iniCfg = new INIConfig();
                iniCfg.SetIrrigationConfig(irrigationConfig);
            }

            this.Close();
        }
        private void SetTemperature_btn_Click(object sender, EventArgs e)
        {
            try
            {
                if (AutoTempControl_rbtn.Checked == true)
                {
                    tempCfg.Mode = 2;
                    byte tempByte = Convert.ToByte(Temperature_tbx.Text);
                    if (tempByte > 20 && tempByte < 33)
                    {
                        tempCfg.TempValue = tempByte;

                        string tempValueStr = tempCfg.TempValue.ToString();

                        string commandStr = "";
                        commandStr = "STA" + " " + "ST" + " " + tempValueStr + " " + "END";

                        byte[] cmdSetTemperature = Encoding.ASCII.GetBytes(commandStr);

                        NetFunc netFunctional = new NetFunc(netConfiguration);
                        netFunctional.UDP_Sender(cmdSetTemperature);
                        netFunctional = null;
                        INIConfig iniCfg = new INIConfig();
                        iniCfg.SetTempConfig(tempCfg);
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Podano złą temperaturę. Zakres regulacji temperatury od 20 do 33°C",
                                        "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        Temperature_tbx.Clear();
                    }
                }
                else if (ManualTempControl_rbtn.Checked == true)
                {
                    int fanPull = trackBar1.Value;
                    int fanPush = trackBar2.Value;

                    tempCfg.Mode    = 1;
                    tempCfg.FanPull = Convert.ToByte(fanPull);
                    tempCfg.FanPush = Convert.ToByte(fanPush);

                    string commandStr = "";
                    commandStr = "STA" + " " + "SF" + " " + fanPull + " " + fanPush + " " + "END";

                    byte[] cmdSetTemperature = Encoding.ASCII.GetBytes(commandStr);

                    NetFunc netFunctional = new NetFunc(netConfiguration);
                    netFunctional.UDP_Sender(cmdSetTemperature);
                    netFunctional = null;
                    INIConfig iniCfg = new INIConfig();
                    iniCfg.SetTempConfig(tempCfg);
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Nie zaznaczono żadnej opcji sterowania", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                    Temperature_tbx.Clear();
                    this.Close();
                }
            }
            catch (FormatException)
            {
                Temperature_tbx.Clear();
                MessageBox.Show("Nie podano temperatury lub temperatura jest literą.", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }