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); } } } }
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); } }
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() + "°"; }
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); }
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); } }
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(); }
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); }
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))); }