Exemple #1
0
        private void SetRef_Click(object sender, EventArgs e)
        {
            BacnetObjectId b;
            BacnetValue    bv;

            for (int i = 0; i < 3; i++)
            {
                if (sender != Bts[i])
                {
                    Bts[i].BackColor = SystemColors.Control;
                    Lbs[i].ForeColor = SystemColors.ControlDark;
                }
                else
                {
                    NiveauChoisi     = i;
                    Bts[i].BackColor = Color.Red;
                    Lbs[i].ForeColor = SystemColors.ControlText;
                    if (Remoteconsigne == false)
                    {
                        b  = new BacnetObjectId(BacnetObjectTypes.OBJECT_ANALOG_VALUE, (uint)(NiveauChoisi + 1));
                        bv = BacnetActivity.GetBacObjectPresentValue(b);
                        BacnetActivity.SetBacObjectPresentValue(Bac_ConsigneTemp, bv);
                    }
                }
            }
        }
Exemple #2
0
        private void AdaptationFarenheit()
        {
            BacnetObjectId b;
            BacnetValue    bv;

            if (Application.CurrentCulture.ToString() != "en-US")
            {
                return;
            }

            for (int i = 0; i < 4; i++)
            {
                b  = new BacnetObjectId(BacnetObjectTypes.OBJECT_ANALOG_VALUE, (uint)(i));
                bv = BacnetActivity.GetBacObjectPresentValue(b);

                BacnetActivity.SetBacObjectPresentValue(b, new BacnetValue((float)Math.Round(TempDegre2Value((float)bv.Value))));

                IList <BacnetValue> val = new BacnetValue[1] {
                    new BacnetValue(64)
                };
                BacnetActivity.m_storage.WriteProperty(b, BacnetPropertyIds.PROP_UNITS, 1, val, true);
            }

            for (int i = 0; i < 3; i++)
            {
                b = new BacnetObjectId(BacnetObjectTypes.OBJECT_ANALOG_INPUT, (uint)(i));
                IList <BacnetValue> val = new BacnetValue[1] {
                    new BacnetValue(64)
                };
                BacnetActivity.m_storage.WriteProperty(b, BacnetPropertyIds.PROP_UNITS, 1, val, true);
            }
        }
Exemple #3
0
        private void UpdateIhm()
        {
            BacnetObjectId b;
            BacnetValue    bv;
            float          f;

            // Les labels associés aux Bp pour choisir la temperature
            b              = new BacnetObjectId(BacnetObjectTypes.OBJECT_CHARACTERSTRING_VALUE, 1);
            bv             = BacnetActivity.GetBacObjectPresentValue(b);
            Set1Label.Text = (string)bv.Value;
            b              = new BacnetObjectId(BacnetObjectTypes.OBJECT_CHARACTERSTRING_VALUE, 2);
            bv             = BacnetActivity.GetBacObjectPresentValue(b);
            Set2Label.Text = (string)bv.Value;
            b              = new BacnetObjectId(BacnetObjectTypes.OBJECT_CHARACTERSTRING_VALUE, 3);
            bv             = BacnetActivity.GetBacObjectPresentValue(b);
            Set3Label.Text = (string)bv.Value;

            // Les temperatures

            bv           = BacnetActivity.GetBacObjectPresentValue(Bac_TempInt);
            f            = (float)bv.Value;
            TempInt.Text = TempDegre2Text(f);

            bv           = BacnetActivity.GetBacObjectPresentValue(Bac_ConsigneTemp);
            f            = (float)bv.Value;
            TempSet.Text = "T Set : " + f.ToString() + "°";

            bv           = BacnetActivity.GetBacObjectPresentValue(Bac_TempExterieure);
            f            = (float)bv.Value;
            TempExt.Text = "T Ext : " + f.ToString() + "°";
        }
Exemple #4
0
        public void SetPointTapped(object value)
        {
            SetTemp += 1;

            var b  = new BacnetObjectId(BacnetObjectTypes.OBJECT_ANALOG_VALUE, SetTemp);
            var bv = BacnetActivity.GetBacObjectPresentValue(b);

            BacnetActivity.SetBacObjectPresentValue(Bac_SetTemp, bv);
        }
Exemple #5
0
        private void _timer_Tick(object sender, object e)
        {
            // Si consigne_Effective OutofService alors l'écriture de Present_Value à lieu via Bacnet
            // sinon on remet à jour ici la valeur choisie 'au clavier' par l'utilisateur
            IList <BacnetValue> val = null;

            BacnetActivity.Storage.ReadProperty(Bac_SetTemp, BacnetPropertyIds.PROP_OUT_OF_SERVICE, 1, out val);
            RemoteSetPoint = (bool)val[0].Value;

            // Copie de la valeur utilisateur
            if (RemoteSetPoint == false)
            {
                var b  = new BacnetObjectId(BacnetObjectTypes.OBJECT_ANALOG_VALUE, (uint)(SetPointIndex + 1));
                var bv = BacnetActivity.GetBacObjectPresentValue(b);
                BacnetActivity.SetBacObjectPresentValue(Bac_SetTemp, bv);
            }
        }
Exemple #6
0
        private void TmrUpdate_Tick(object sender, EventArgs e)
        {
            // Si consigne_Effective OutofService alors l'écriture de Present_Value à lieu via Bacnet
            // sinon on remet à jour ici la valeur choisie 'au clavier' par l'utilisateur
            IList <BacnetValue> val = null;

            BacnetActivity.m_storage.ReadProperty(Bac_ConsigneTemp, BacnetPropertyIds.PROP_OUT_OF_SERVICE, 1, out val);
            Remoteconsigne = (bool)val[0].Value;

            // Copie de la valeur utilisateur
            if (Remoteconsigne == false)
            {
                BacnetObjectId b;
                BacnetValue    bv;
                b  = new BacnetObjectId(BacnetObjectTypes.OBJECT_ANALOG_VALUE, (uint)(NiveauChoisi + 1));
                bv = BacnetActivity.GetBacObjectPresentValue(b);
                BacnetActivity.SetBacObjectPresentValue(Bac_ConsigneTemp, bv);
            }

            // Animation
            AnimateData();
            UpdateIhm();
        }
Exemple #7
0
        void InitBacnetDictionary()
        {
            uint deviceId;

            if (UInt32.TryParse(BacnetDeviceId, out deviceId) == false)
            {
                deviceId = 12345; // default value
            }
            device = new DeviceObject(deviceId, "Weather2 to Bacnet ", "Weather2 data", false);

            if ((UserAccessKey != null) && (Latitude != null) && (Longitude != null))
            {
                Temp = new AnalogInput <float>
                       (
                    0,
                    "Temperature",
                    "Temperature",
                    0,
                    BacnetUnitsId.UNITS_DEGREES_CELSIUS
                       );

                // 24h trendlog
                TrendTemp = new TrendLog(0, "Temperature Trend", "Temperature Trend", 6 * 24, BacnetTrendLogValueType.TL_TYPE_SIGN);

                Windspeed = new AnalogInput <float>
                            (
                    1,
                    "Windspeed",
                    "Wind speed",
                    0,
                    BacnetUnitsId.UNITS_KILOMETERS_PER_HOUR
                            );
                Humidity = new AnalogInput <float>
                           (
                    2,
                    "Humidity",
                    "Humidity",
                    0,
                    BacnetUnitsId.UNITS_PERCENT
                           );
                Pressure = new AnalogInput <float>
                           (
                    3,
                    "Pressure",
                    "Pressure",
                    0,
                    BacnetUnitsId.UNITS_HECTOPASCALS
                           );

                DewPoint = new AnalogInput <float>
                           (
                    4,
                    "DewPoint",
                    "Dew Point",
                    0,
                    BacnetUnitsId.UNITS_DEGREES_CELSIUS
                           );

                VaporPressure = new AnalogInput <float>
                                (
                    5,
                    "VaporPressure",
                    "Equilibrium Vapor Pressure",
                    0,
                    BacnetUnitsId.UNITS_HECTOPASCALS
                                );

                Windsdir = new CharacterString
                               (0, "Winddir", "Wind Direction", "Not available", false);

                WeatherDescr = new CharacterString
                                   (1, "WeatherDescr", "Weather Description", "Not available", false);

                SunRise        = new BacnetDateTime(0, "Sunrise", "Sun up time");
                SunSet         = new BacnetDateTime(1, "Sunset", "Sun down time");
                Updatetime     = new BacnetDateTime(2, "Updatetime", "Date & Time of the current values");
                NextUpdatetime = new BacnetDateTime(3, "NextUpdatetime", "Date & Time of the next request");

                device.AddBacnetObject(Temp);
                device.AddBacnetObject(TrendTemp);
                device.AddBacnetObject(Windspeed);
                device.AddBacnetObject(Humidity);
                device.AddBacnetObject(Pressure);
                device.AddBacnetObject(DewPoint);
                device.AddBacnetObject(VaporPressure);
                device.AddBacnetObject(Windsdir);
                device.AddBacnetObject(WeatherDescr);
                device.AddBacnetObject(SunRise);
                device.AddBacnetObject(SunSet);
                device.AddBacnetObject(Updatetime);
                device.AddBacnetObject(NextUpdatetime);
                device.AddBacnetObject(new NotificationClass(0, "Notification", "Notification"));
            }
            else
            {
                device.m_PROP_SYSTEM_STATUS = BacnetDeviceStatus.NON_OPERATIONAL;
            }

            // Force the JIT compiler to make some job before network access
            device.Cli2Native();
            BacnetActivity.StartActivity(device);
        }
Exemple #8
0
        private void AnimateData()
        {
            BacnetValue bv1, bv2;
            double      TempCons;
            double      TempInt = 0;
            double      TempEau = 0;
            double      TempExt = 0;
            bool        ModeChauf = false, ModeClim = false;

            for (int i = 0; i < 3; i++)
            {
                NivClim[i].BackColor = Color.White;
            }
            for (int i = 0; i < 3; i++)
            {
                NivChauf[i].BackColor = Color.White;
            }

            RollingCounter += 2 * random.NextDouble();

            // Récupération de la consigne de temperature
            bv1      = BacnetActivity.GetBacObjectPresentValue(Bac_ConsigneTemp);
            TempCons = Temp2Degree((float)bv1.Value);

            // Récupération du mode choisi
            bv2 = BacnetActivity.GetBacObjectPresentValue(Bac_Mode);
            uint mode = (uint)bv2.Value;

            if (mode > 3)
            {
                mode = 1;
                BacnetActivity.SetBacObjectPresentValue(Bac_Mode, new BacnetValue(mode));
            }

            switch (mode)
            {
            case 1:     // Mode arret
                TempEau = 20.0 + 3 * Math.Cos(RollingCounter / 10.0);
                TempExt = 20.0;
                TempInt = Room.GetNextTemp(TempEau, TempExt, (int)Niveausoufflage);

                Niveausoufflage          = 0;
                ModeChauf                = ModeClim = false;
                pictureModeArret.Visible = true;
                pictureModeChaud.Visible = false;
                pictureModeFroid.Visible = false;

                break;

            case 2:     // Mode chauffage
                TempEau = 37.0 + 3 * Math.Cos(RollingCounter / 10.0);
                TempExt = 12.0;
                TempInt = Room.GetNextTemp(TempEau, TempExt, (int)Niveausoufflage);

                ModeClim = false;

                if (TempInt >= TempCons)
                {
                    Niveausoufflage = 0;
                    ModeChauf       = false;
                }
                else
                {
                    Niveausoufflage = (uint)(1 + (TempCons - TempInt) * 4);
                    if (Niveausoufflage > 3)
                    {
                        Niveausoufflage = 3;
                    }
                    ModeChauf = true;
                }

                pictureModeArret.Visible = false;
                pictureModeChaud.Visible = true;
                pictureModeFroid.Visible = false;

                break;

            case 3:     // Mode clim
                TempEau = 5.0 + 3 * Math.Cos(RollingCounter / 10.0);
                TempExt = 30.0;
                TempInt = Room.GetNextTemp(TempEau, TempExt, (int)Niveausoufflage);

                ModeChauf = false;

                if (TempInt <= TempCons)
                {
                    Niveausoufflage = 0;
                    ModeClim        = false;
                }
                else
                {
                    Niveausoufflage = (uint)(1 + (TempInt - TempCons) * 4);
                    if (Niveausoufflage > 3)
                    {
                        Niveausoufflage = 3;
                    }

                    ModeClim = true;
                }
                pictureModeArret.Visible = false;
                pictureModeChaud.Visible = false;
                pictureModeFroid.Visible = true;
                break;
            }

            if (ModeChauf == true)
            {
                for (int i = 0; i < 3; i++)
                {
                    if (i < Niveausoufflage)
                    {
                        NivChauf[i].BackColor = Color.Red;
                    }
                }
            }
            if (ModeClim == true)
            {
                for (int i = 0; i < 3; i++)
                {
                    if (i < Niveausoufflage)
                    {
                        NivClim[i].BackColor = Color.Blue;
                    }
                }
            }

            BacnetActivity.SetBacObjectPresentValue(Bac_TempEau, new BacnetValue(TempDegre2Value(TempEau)));
            BacnetActivity.SetBacObjectPresentValue(Bac_TempInt, new BacnetValue(TempDegre2Value(TempInt)));
            BacnetActivity.SetBacObjectPresentValue(Bac_TempExterieure, new BacnetValue(TempDegre2Value(TempExt)));
            BacnetActivity.SetBacObjectPresentValue(Bac_Niveausoufflage, new BacnetValue(Niveausoufflage + 1));

            BacnetActivity.SetBacObjectPresentValue(Bac_Cmdchauffage, new BacnetValue(BacnetApplicationTags.BACNET_APPLICATION_TAG_ENUMERATED, Convert.ToUInt32(ModeChauf)));
            BacnetActivity.SetBacObjectPresentValue(Bac_CmdClim, new BacnetValue(BacnetApplicationTags.BACNET_APPLICATION_TAG_ENUMERATED, Convert.ToUInt32(ModeClim)));
        }