public void UpdateAmpel(bool pRed, bool pYellow, bool pGreen, bool pHorn, string pDat, string pTime, string pABCD, bool pbtime, bool pbABCD, int pAmpelID) { if (!this.bg_Worker.IsBusy) { CAmpelButton.Parameter parameter = new CAmpelButton.Parameter(); parameter.Red = pRed; parameter.Yellow = pYellow; parameter.Green = pGreen; parameter.Horn = pHorn; parameter.Data = pDat; parameter.Time = pTime; parameter.ABCD = pABCD; parameter.B_TIME = pbtime; parameter.B_ABCD = pbABCD; parameter.AmpelID = pAmpelID; this.bg_Worker.RunWorkerAsync(parameter); this.upsBuffer++; this.Refresh(); } }
private void bg_Worker_DoWork(object sender, DoWorkEventArgs e) { CAmpelButton.Parameter parameter = (CAmpelButton.Parameter)e.Argument; try { string response = ""; using (WebClient webClient = new WebClient()) { response = Encoding.UTF8.GetString(webClient.UploadValues("http://" + this.address.ToString() + "/ampel.php", new NameValueCollection() { { "act", "set" }, { "r" + parameter.AmpelID, parameter.Red.ToString() }, { "g" + parameter.AmpelID, parameter.Green.ToString() }, { "y" + parameter.AmpelID, parameter.Yellow.ToString() }, { "da", parameter.Data.ToString() }, { "ho", parameter.Horn.ToString() }, { "t" + parameter.AmpelID, parameter.Time.ToString() }, { "ab", parameter.ABCD.ToString() }, { "bt", parameter.B_TIME.ToString() }, { "ba", parameter.B_ABCD.ToString() } })); } Dictionary <string, string> resp = JsonConvert.DeserializeObject <Dictionary <string, string> >(response); if (resp["STATUS"] == "OK") { using (WebClient webClient = new WebClient()) { Dictionary <string, List <string> > getReg = new Dictionary <string, List <string> >(); List <string> args = new List <string>(); args.Add("r" + parameter.AmpelID); args.Add("g" + parameter.AmpelID); args.Add("y" + parameter.AmpelID); args.Add("da"); args.Add("ho"); args.Add("ab"); args.Add("bt"); args.Add("ba"); args.Add("t" + parameter.AmpelID); getReg.Add("q", args); response = Encoding.UTF8.GetString(webClient.UploadValues("http://" + this.address.ToString() + "/ampel.php", new NameValueCollection() { { "act", "get" }, { "q", JsonConvert.SerializeObject(getReg) }, })); } resp = JsonConvert.DeserializeObject <Dictionary <string, string> >(response); this.red = Convert.ToBoolean(resp["r" + parameter.AmpelID]); this.green = Convert.ToBoolean(resp["g" + parameter.AmpelID]); this.yellow = Convert.ToBoolean(resp["y" + parameter.AmpelID]); this.str = ""; if (Convert.ToBoolean(resp["bt"])) { this.str += resp["t" + parameter.AmpelID]; } if (Convert.ToBoolean(resp["ba"])) { this.str += resp["ab"]; } if (str.Equals("")) { this.str = resp["da"]; } this.horn = Convert.ToBoolean(resp["ho"]); } } catch { } }