示例#1
0
        static void Main(string[] args)
        {
            int reponse;
            double luminosite;
            double temperature;
            double temperatureEx;
            double humidite;
            int id_profil;
            int id_reglage;
            DateTime date_profil;
            ConnectionSQL cs = new ConnectionSQL();
            Reglage reglage;

            while (true)
            {

                reponse = cs.Reponse();
                if (reponse == 1)
                {

                    InterfaceKit ifKit;
                    InterfaceKit ifKitRelay;

                    try
                    {
                        //Initialize the InterfaceKit object
                        ifKit = new InterfaceKit();
                        ifKitRelay = new InterfaceKit();

                        //Hook the basica event handlers
                        ifKit.Attach += new AttachEventHandler(ifKit_Attach);
                        ifKit.Detach += new DetachEventHandler(ifKit_Detach);
                        ifKit.Error += new ErrorEventHandler(ifKit_Error);

                        //Hook the phidget spcific event handlers
                        ifKit.InputChange += new InputChangeEventHandler(ifKit_InputChange);
                        ifKit.OutputChange += new OutputChangeEventHandler(ifKit_OutputChange);
                        ifKit.SensorChange += new SensorChangeEventHandler(ifKit_SensorChange);

                        //Open the object for device connections
                        ifKit.open(174971);
                        ifKitRelay.open(87522);

                        //Wait for an InterfaceKit phidget to be attached
                        Console.WriteLine("Waiting for InterfaceKit to be attached...");
                        ifKit.waitForAttachment();

                        // conversion des valeurs réupérer par les capteurs pour avoir des valeurs justes
                        humidite = Math.Round((((ifKit.sensors[7].Value) * 0.1909) - 40.2), 1);
                        temperature = Math.Round((((ifKit.sensors[6].Value) * 0.22222) - 61.11), 1);
                        temperatureEx = Math.Round((((ifKit.sensors[4].Value) * 0.22222) - 61.11), 1);
                        luminosite = ifKit.sensors[5].Value;

                        Console.WriteLine("humidite :"+humidite);
                        Console.WriteLine("temperature :"+temperature);

                        // on récupère l'id la date du profil actuel et l'id du réglage pour ajouter les valeurs recueillis par les capteurs à la table historique
                        id_profil = cs.Profil_Actuel_Id();
                        date_profil = cs.Profil_Actuel_Date();
                        id_reglage = cs.Id_Reglage(id_profil, luminosite, date_profil);
                        cs.AjoutHistorique(DateTime.Now, luminosite, temperature, temperatureEx, humidite, id_profil, id_reglage);



                       reglage = cs.SelectionnerReglage(id_profil, luminosite, DateTime.Now);
                        if (reglage != null)
                        {
                            // on met plusieurs conditions pour savoir quel actionneurs allumer ou éteindre selon le réglage précédamment sélectionner
                            //inversement des true et false
                            if (reglage.Humidite < humidite)
                            {
                                ifKitRelay.outputs[0] = false;
                                ifKitRelay.outputs[1] = true;
                                //allumer ventilateur
                                //allumer vanne d'arrosage
                            }
                            else
                            {
                                ifKitRelay.outputs[0] = true;
                                ifKitRelay.outputs[1] = false;
                                //allumer vanne d'arrosage
                                //allumer ventilateur
                            }

                            if (reglage.TemperatureInterieur < temperature)
                            {
                                ifKitRelay.outputs[0] = false;
                                ifKitRelay.outputs[2] = true;
                                //allumer ventilateur
                                //eteindre chauffage
                            }
                            else
                            {
                                ifKitRelay.outputs[0] = true;
                                ifKitRelay.outputs[2] = false;
                                //allumer chauffage
                                //eteindre ventilateur
                            }

                            if (luminosite <= 20)
                            {
                                ifKitRelay.outputs[3] = false;
                            }
                            else
                            {
                                ifKitRelay.outputs[3] = true;
                            }
                        }
                        //User input was rad so we'll terminate the program, so close the object
                        ifKit.close();
                        ifKitRelay.close();

                        //set the object to null to get it out of memory
                        ifKit = null;
                        ifKitRelay = null;

                    }
                    catch (PhidgetException ex)
                    {
                        Console.WriteLine(ex.Description);
                    }
                }
                //TIMER de 10s actuellment
                Thread.Sleep(10000);
            }

           
        }
示例#2
0
        static void Main(string[] args)
        {
            int           reponse;
            double        luminosite;
            double        temperature;
            double        temperatureEx;
            double        humidite;
            int           id_profil;
            int           id_reglage;
            DateTime      date_profil;
            ConnectionSQL cs = new ConnectionSQL();
            Reglage       reglage;

            while (true)
            {
                reponse = cs.Reponse();
                if (reponse == 1)
                {
                    InterfaceKit ifKit;
                    InterfaceKit ifKitRelay;

                    try
                    {
                        //Initialize the InterfaceKit object
                        ifKit      = new InterfaceKit();
                        ifKitRelay = new InterfaceKit();

                        //Hook the basica event handlers
                        ifKit.Attach += new AttachEventHandler(ifKit_Attach);
                        ifKit.Detach += new DetachEventHandler(ifKit_Detach);
                        ifKit.Error  += new ErrorEventHandler(ifKit_Error);

                        //Hook the phidget spcific event handlers
                        ifKit.InputChange  += new InputChangeEventHandler(ifKit_InputChange);
                        ifKit.OutputChange += new OutputChangeEventHandler(ifKit_OutputChange);
                        ifKit.SensorChange += new SensorChangeEventHandler(ifKit_SensorChange);

                        //Open the object for device connections
                        ifKit.open(174971);
                        ifKitRelay.open(87522);

                        //Wait for an InterfaceKit phidget to be attached
                        Console.WriteLine("Waiting for InterfaceKit to be attached...");
                        ifKit.waitForAttachment();

                        // conversion des valeurs réupérer par les capteurs pour avoir des valeurs justes
                        humidite      = Math.Round((((ifKit.sensors[7].Value) * 0.1909) - 40.2), 1);
                        temperature   = Math.Round((((ifKit.sensors[6].Value) * 0.22222) - 61.11), 1);
                        temperatureEx = Math.Round((((ifKit.sensors[4].Value) * 0.22222) - 61.11), 1);
                        luminosite    = ifKit.sensors[5].Value;

                        Console.WriteLine("humidite :" + humidite);
                        Console.WriteLine("temperature :" + temperature);

                        // on récupère l'id la date du profil actuel et l'id du réglage pour ajouter les valeurs recueillis par les capteurs à la table historique
                        id_profil   = cs.Profil_Actuel_Id();
                        date_profil = cs.Profil_Actuel_Date();
                        id_reglage  = cs.Id_Reglage(id_profil, luminosite, date_profil);
                        cs.AjoutHistorique(DateTime.Now, luminosite, temperature, temperatureEx, humidite, id_profil, id_reglage);



                        reglage = cs.SelectionnerReglage(id_profil, luminosite, DateTime.Now);
                        if (reglage != null)
                        {
                            // on met plusieurs conditions pour savoir quel actionneurs allumer ou éteindre selon le réglage précédamment sélectionner
                            //inversement des true et false
                            if (reglage.Humidite < humidite)
                            {
                                ifKitRelay.outputs[0] = false;
                                ifKitRelay.outputs[1] = true;
                                //allumer ventilateur
                                //allumer vanne d'arrosage
                            }
                            else
                            {
                                ifKitRelay.outputs[0] = true;
                                ifKitRelay.outputs[1] = false;
                                //allumer vanne d'arrosage
                                //allumer ventilateur
                            }

                            if (reglage.TemperatureInterieur < temperature)
                            {
                                ifKitRelay.outputs[0] = false;
                                ifKitRelay.outputs[2] = true;
                                //allumer ventilateur
                                //eteindre chauffage
                            }
                            else
                            {
                                ifKitRelay.outputs[0] = true;
                                ifKitRelay.outputs[2] = false;
                                //allumer chauffage
                                //eteindre ventilateur
                            }

                            if (luminosite <= 20)
                            {
                                ifKitRelay.outputs[3] = false;
                            }
                            else
                            {
                                ifKitRelay.outputs[3] = true;
                            }
                        }
                        //User input was rad so we'll terminate the program, so close the object
                        ifKit.close();
                        ifKitRelay.close();

                        //set the object to null to get it out of memory
                        ifKit      = null;
                        ifKitRelay = null;
                    }
                    catch (PhidgetException ex)
                    {
                        Console.WriteLine(ex.Description);
                    }
                }
                //TIMER de 10s actuellment
                Thread.Sleep(10000);
            }
        }