Пример #1
0
        public Jacuzzi(JacuzziParameters parameters, string host)
        {
            _parameters = parameters;

            Client = new ModbusClientTcp();
            Host   = host;

            /*TempsActivation = 5;
             * TempsDesactivation = 15;*/

            _pompeTimer = new DownTimer(TimeSpan.FromMinutes(TempsActivation));

            PompeMode   = true;
            PompeManuel = false;

            Projecteur = false;
            LumiereSol = false;

            WaterMain   = false;
            WaterRefill = false;

            /*HistoriqueCountMax = 144;
             * IntervalSecondsMesureTemperature = 600;*/

            _measureTimer = new DownTimer(TimeSpan.Zero);

            /*HistoriqueTemperatureEau = new List<MesureTemperature>(HistoriqueCountMax);
            *  HistoriqueTemperatureAir = new List<MesureTemperature>(HistoriqueCountMax);*/
            CleanHistorique();
        }
Пример #2
0
        public void UpdateHistoriqueTemperature()
        {
            if (_measureTimer.Elapsed)
            {
                _measureTimer.SetTimeout(TimeSpan.FromSeconds(IntervalSecondsMesureTemperature));
                _measureTimer.Restart();

                HistoriqueTemperatureAir.Add(new MesureTemperature()
                {
                    x = DateTime.Now.ToString(DateTimeFormat), y = TemperatureAir
                });
                HistoriqueTemperatureEau.Add(new MesureTemperature()
                {
                    x = DateTime.Now.ToString(DateTimeFormat), y = TemperatureEau
                });

                CleanHistorique();

                /*
                 * while (HistoriqueTemperatureAir.Count >= HistoriqueCountMax)
                 * {
                 *  HistoriqueTemperatureAir.RemoveAt(0);
                 * }
                 *
                 * while (HistoriqueTemperatureEau.Count >= HistoriqueCountMax)
                 * {
                 *  HistoriqueTemperatureEau.RemoveAt(0);
                 * }*/

                JacuzziParameters.Serialize(_parameters);
            }
        }
Пример #3
0
        public static void Serialize(JacuzziParameters param)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(JacuzziParameters));

            using (StreamWriter writer = new StreamWriter("Jacuzzi.xml"))
            {
                serializer.Serialize(writer, param);
            }
        }
Пример #4
0
        static void Main(string[] args)
        {
            int refresh = ManageRefreshArg(args);

            VerboseMode = ManageVerboseArg(args);

            try
            {
                JacuzziParameters parameters = JacuzziParameters.DeSerializeOrCreate();
                Jacuzzi           root       = new Jacuzzi(parameters, ManageHostArg(args));
                using (WoopsaServer woopsaServer = new WoopsaServer(root, 10001))
                {
                    woopsaServer.BeforeWoopsaModelAccess += (object sender, EventArgs e) => { Monitor.Enter(root.locker); };
                    woopsaServer.AfterWoopsaModelAccess  += (object sender, EventArgs e) => { Monitor.Exit(root.locker); };

                    woopsaServer.WebServer.Routes.Add("web", HTTPMethod.GET, new RouteHandlerEmbeddedResources("HTML", Assembly.GetEntryAssembly()));
                    woopsaServer.WebServer.Routes.Add("web", HTTPMethod.GET, new RouteHandlerEmbeddedResources("HTML.index.html", Assembly.GetEntryAssembly()));

                    Console.WriteLine("Woopsa server started. Client at http://localhost:10001/web/");

                    for (;;)
                    {
                        try
                        {
                            lock (root.locker)
                                root.CyclicUpdate();
                        }
                        catch (Exception e)
                        {
                            ManageException(e);
                            Thread.Sleep(refresh * 3);
                        }
                        Thread.Sleep(refresh);
                    }
                }
            }
            catch (Exception e)
            {
                ManageException(e);
            }
        }
Пример #5
0
        public static JacuzziParameters DeSerializeOrCreate()
        {
            try
            {
                XmlSerializer serializer = new XmlSerializer(typeof(JacuzziParameters));
                using (StreamReader reader = new StreamReader("Jacuzzi.xml"))
                {
                    return(serializer.Deserialize(reader) as JacuzziParameters);
                }
            }
            catch
            {
                JacuzziParameters param = new JacuzziParameters();

                param.HistoriqueCountMax = 144;
                param.IntervalSecondsMesureTemperature = 600;
                param.TempsActivation    = 10;
                param.TempsDesactivation = 20;

                return(param);
            }
        }