Example #1
0
 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();
     }
 }
Example #2
0
        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
            {
            }
        }