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); } } }
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 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); } }