예제 #1
0
        private void tESTToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string DiscoveryPassword = "******"; //sterownik1

            byte[] LogoDataBy = ASCIIEncoding.ASCII.GetBytes(DiscoveryPassword);

            // HF-A11SISTHREAD, port 44889
            //NetConfig netConfig = new NetConfig();
            //netConfig.IpAddr = "255.255.255.255";
            //netConfig.Port = 48899;
            //NetFunc NetInstance = new NetFunc(netConfig);
            //NetInstance.UDP_Sender(LogoDataBy);

            try
            {
                NetConfig netConfig = new NetConfig();
                netConfig.IpAddr = "255.255.255.255";// "192.168.0.255";
                netConfig.Port   = 48899;
                NetFunc NetInstance = new NetFunc(netConfig);
                NetInstance.UdpThreadRecv = new Thread(new ThreadStart(NetInstance.UDP_Listener));
                NetInstance.UdpThreadRecv.Start();
                NetInstance.UDP_Sender(LogoDataBy);
            }
            catch (Exception)
            {
            }
        }
예제 #2
0
        private void SendLampConfig()
        {
            string timeOnStr  = lampConfiguration.TimeOn.ToString();
            string timeOffStr = lampConfiguration.TimeOff.ToString();

            string commandStr = "";

            if (lampConfiguration.State == 1)
            {
                commandStr = "STA" + " " + "SL" + " " + timeOnStr + " " + timeOffStr + " " + "R" + " " + "END";
            }
            else if (lampConfiguration.State == 2)
            {
                commandStr = "STA" + " " + "SL" + " " + timeOnStr + " " + timeOffStr + " " + "S" + " " + "END";
            }
            else
            {
                commandStr = "STA" + " " + "SL" + " " + "END";
            }

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

            NetFunc netFunctional = new NetFunc(netConfiguration);

            netFunctional.UDP_Sender(commandByteArray);
            this.Close();
        }
예제 #3
0
        private void przywrócUstawieniaDomyślneToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string commandStr = "STA DEF SETT END";

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

            NetFunc netFunctional = new NetFunc(netConfiguration);

            netFunctional.UDP_Sender(cmdSetTemperature);
            netFunctional = null;
        }
예제 #4
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);
        }
        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);
            }
        }