private static List <OpcTag> tagList; //List where we keep our tags for manipulation. private static void SubscribeTags() { DataOtrilaTableAdapters.TagsTableAdapter tagsTableAdapter = new DataOtrilaTableAdapters.TagsTableAdapter(); tagList = new List <OpcTag>(); DataOtrila data = new DataOtrila(); tagsTableAdapter.Fill(data.Tags); foreach (DataOtrila.TagsRow row in data.Tags.Rows) { TagTypeE tagTypeE = TagTypeE.Digital; if (row.Type == 2) { tagTypeE = TagTypeE.Analog; } OpcTag _tag = new OpcTag() { TagID = row.ID, Tag = row.Tag, TagName = row.Name, OpcServer = row.OpcServer, RefreshRate = row.RefreshTime, Scaling = row.Scale, Description = row.Description, Unit = row.Unit, TagType = tagTypeE, Archiving = row.Archive }; _tag.StartSubscription(); tagList.Add(_tag); } }
private void LoadData(int id) { this.Dispatcher.BeginInvoke(new Action(delegate() { DataOtrila dataOtrila = new DataOtrila(); (new DataOtrilaTableAdapters.OrariDiteTableAdapter()).FillDataByID(dataOtrila.OrariDite, id); foreach (DataOtrila.OrariDiteRow dite in dataOtrila.OrariDite.Rows) { txtOraF.Text = dite.OraFillimit.ToString(); txtMinF.Text = dite.MinutaFillimit.ToString(); txtOraM.Text = dite.OraMbarimit.ToString(); txtMinM.Text = dite.MinutaMbarimit.ToString(); cmbSezona.SelectedValue = dite.Sezona; txtAHUTemp.Text = dite.AHU_Temp.ToString(); txtAHUAir.Text = dite.AHU_Air.ToString(); txtAHUHum.Text = dite.AHU_Humid.ToString(); txtAHURecycle.Text = dite.AHU_Recycle.ToString(); txtTempSalla1.Text = dite.Salla_1_Temp.ToString(); txtPresSalla1.Text = dite.Salla_1_Pressure.ToString(); txtLagSalla1.Text = dite.Salla_1_Humid.ToString(); txtTempSalla2.Text = dite.Salla_2_Temp.ToString(); txtPresSalla2.Text = dite.Salla_2_Pressure.ToString(); txtLagSalla2.Text = dite.Salla_2_Humid.ToString(); txtTempSalla3.Text = dite.Salla_3_Temp.ToString(); txtPresSalla3.Text = dite.Salla_3_Pressure.ToString(); txtLagSalla3.Text = dite.Salla_3_Humid.ToString(); } })); }
private void CmbStatusi_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { if (listOrars.SelectedIndex != -1) { DataOtrilaTableAdapters.OraretTableAdapter orar_ta = new DataOtrilaTableAdapters.OraretTableAdapter(); DataOtrila dataOtrila = new DataOtrila(); orar_ta.Fill(dataOtrila.Oraret); if (keepStatus == false) { DataOtrila.OraretRow orariSelektuar = _listaOraret[listOrars.SelectedIndex]; if (cmbStatusi.SelectedValue.ToString() == "AKTIV") { //Make all of them deactive foreach (DataOtrila.OraretRow orar in dataOtrila.Oraret.Rows) { orar_ta.UpdateActiveStatus(false, orar.ID); } //Activated the selected one orar_ta.UpdateActiveStatus(true, orariSelektuar.ID); } else if (cmbStatusi.SelectedValue.ToString() == "JOAKTIV") { orar_ta.UpdateActiveStatus(false, orariSelektuar.ID); } Task.Factory.StartNew(() => LoadData()); } } } catch (Exception) { } }
private static void OpcTag_OpcItemHasChanged(object sender, OpcTag e) { //Everytime a tag changes this event is raised... DataOtrilaTableAdapters.TagLiveTableAdapter tagLiveTableAdapter = new DataOtrilaTableAdapters.TagLiveTableAdapter(); DataOtrila data = new DataOtrila(); tagLiveTableAdapter.Fill(data.TagLive); if (tagLiveTableAdapter.GetTagByName(e.TagName).Count == 0) { bool typ = false; if (e.TagType == TagTypeE.Analog) { typ = true; } tagLiveTableAdapter.Insert(e.TagID, e.TagName, e.NewValue, typ, false, DateTime.Now); tagList.Add(e); } else { tagLiveTableAdapter.UpdateValue(e.NewValue, DateTime.Now.ToString(), e.TagID); //Update table //Update the list also. for (int i = 0; i < tagList.Count; i++) { if (e.TagID == tagList[i].TagID) { tagList[i].NewValue = e.NewValue; } } } }
private static void OpcStackTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { try { opcStackTimer.Stop(); DataOtrila data = new DataOtrila(); DataOtrilaTableAdapters.OpcStackOtrilaTableAdapter stack_ta = new DataOtrilaTableAdapters.OpcStackOtrilaTableAdapter(); stack_ta.Fill(data.OpcStackOtrila); foreach (DataOtrila.OpcStackOtrilaRow row in data.OpcStackOtrila.Rows) { if (DateTime.Now.Minute == row.Time.Minute && DateTime.Now.Hour == row.Time.Hour) { if (WriteTag(row.OpcServer, row.Tag, row.NewValue)) { stack_ta.DeleteFromStack(row.ID); } } else //old un-successful command, delete it. { stack_ta.DeleteFromStack(row.ID); } } opcStackTimer.Start(); } catch { } }
void LoadData() { this.Dispatcher.BeginInvoke(new Action(delegate() { listDitet.Items.Clear(); DataOtrila dataOtrila = new DataOtrila(); (new DataOtrilaTableAdapters.OrariDiteTableAdapter()).Fill(dataOtrila.OrariDite); foreach (DataOtrila.OrariDiteRow dite in dataOtrila.OrariDite.Rows) { Label listLabel = new Label() { Content = dite.Emri, FontSize = 16, Width = listDitet.ActualWidth }; ditetLista.Add(dite); listDitet.Items.Add(listLabel); } })); }
private void LoadData() { PlotModel.Series.Clear(); DataOtrila dataOpc = new DataOtrila(); var lineSerie = new OxyPlot.Series.LineSeries { StrokeThickness = 1, CanTrackerInterpolatePoints = false, Title = Tags, Smooth = false }; trend_logs_ta.FillByDateTimeTag(dataOpc.TagArchives, _to, _from, Tags); foreach (DataOtrila.TagArchivesRow log in dataOpc.TagArchives.Rows) { lineSerie.Points.Add(new DataPoint(DateTimeAxis.ToDouble(log.DateTime), log.Value)); } PlotModel.Series.Add(lineSerie); }
/// <summary> /// Builds a "desktop" that can be attached to a window. This desktop contains the graphical interfaces /// of the physical elements in the building (lights, HVAC gauges, Access Control, SOS alarms, etc. /// The desktop loads it's definition from the configuration database - an XML control. /// </summary> /// <param name="id">ID (database key) of the desktop to be built</param> /// <returns>an UIElement to be attached to another control (Window, Page, Grid, etc.)</returns> /// <remarks>ELEMENTS</remarks> /// <remarks>VISUAL</remarks> /// <tag>ELEMENTS</tag> /// <tag>VISUAL</tag> public static UIElement BuildDesktop(int id) { UIElement dt = null; try { // Get the definition from the database DataOtrila ds = new DataOtrila(); DesktopsTableAdapter ta = new DesktopsTableAdapter(); ta.Fill(ds.Desktops); IEnumerable <DataOtrila.DesktopsRow> rows = from DataOtrila.DesktopsRow r in ds.Desktops.Rows where r.DesktopID == id select r; if (rows.Count() > 0) // there has to be one unique row ;) { string def = rows.ElementAt(0).Definition; // get the XML from the field. try { XElement xdef = XElement.Parse(def); dt = _buildDesktop(xdef); } catch (Exception ex) { //dump file } } } catch (Exception ex) { //dump file } return(dt); }
void LoadData() { this.Dispatcher.BeginInvoke(new Action(delegate() { listOrars.Items.Clear(); _listaOraret.Clear(); _listaDitet.Clear(); cmbStatusi.Items.Clear(); cmb1.Items.Clear(); cmb2.Items.Clear(); cmb3.Items.Clear(); cmb4.Items.Clear(); cmb5.Items.Clear(); cmb6.Items.Clear(); cmb7.Items.Clear(); cmb8.Items.Clear(); cmb9.Items.Clear(); cmb10.Items.Clear(); cmb11.Items.Clear(); cmb12.Items.Clear(); cmb13.Items.Clear(); cmb14.Items.Clear(); cmb15.Items.Clear(); cmb16.Items.Clear(); cmb1.Items.Add("JO"); cmb2.Items.Add("JO"); cmb3.Items.Add("JO"); cmb4.Items.Add("JO"); cmb5.Items.Add("JO"); cmb6.Items.Add("JO"); cmb7.Items.Add("JO"); cmb8.Items.Add("JO"); cmb9.Items.Add("JO"); cmb10.Items.Add("JO"); cmb11.Items.Add("JO"); cmb12.Items.Add("JO"); cmb13.Items.Add("JO"); cmb14.Items.Add("JO"); cmb15.Items.Add("JO"); cmb16.Items.Add("JO"); cmbStatusi.Items.Add("AKTIV"); cmbStatusi.Items.Add("JOAKTIV"); DataOtrila dataOtrila = new DataOtrila(); (new DataOtrilaTableAdapters.OraretTableAdapter()).Fill(dataOtrila.Oraret); (new DataOtrilaTableAdapters.OrariDiteTableAdapter()).Fill(dataOtrila.OrariDite); foreach (DataOtrila.OraretRow orar in dataOtrila.Oraret.Rows) { Label listLabel = new Label() { Content = orar.Emri, FontSize = 16, Width = listOrars.ActualWidth }; listOrars.Items.Add(listLabel); _listaOraret.Add(orar); } foreach (DataOtrila.OrariDiteRow dite in dataOtrila.OrariDite.Rows) { _listaDitet.Add(dite); cmb1.Items.Add(dite.Emri); cmb2.Items.Add(dite.Emri); cmb3.Items.Add(dite.Emri); cmb4.Items.Add(dite.Emri); cmb5.Items.Add(dite.Emri); cmb6.Items.Add(dite.Emri); cmb7.Items.Add(dite.Emri); cmb8.Items.Add(dite.Emri); cmb9.Items.Add(dite.Emri); cmb10.Items.Add(dite.Emri); cmb11.Items.Add(dite.Emri); cmb12.Items.Add(dite.Emri); cmb13.Items.Add(dite.Emri); cmb14.Items.Add(dite.Emri); cmb15.Items.Add(dite.Emri); cmb16.Items.Add(dite.Emri); } })); }
private void LoadData() { DataOtrila dataOpc = new DataOtrila(); PlotModel.Series.Clear(); var lineSerie1 = new OxyPlot.Series.LineSeries { StrokeThickness = 1, CanTrackerInterpolatePoints = false, Title = "Temperatura [*C]", Smooth = true }; var lineSerie2 = new OxyPlot.Series.LineSeries { StrokeThickness = 1, CanTrackerInterpolatePoints = false, Title = "Presioni [Pa]", Smooth = true }; var lineSerie3 = new OxyPlot.Series.LineSeries { StrokeThickness = 1, CanTrackerInterpolatePoints = false, Title = "Lagështia [%]", Smooth = true }; switch (_updateSall_id) { case 1: { tag1 = "c15842.hall_temp[0]"; tag2 = "c15842.hall_pressure[0]"; tag3 = "c15842.hall_humid[0]"; } break; case 2: { tag1 = "c15842.hall_temp[1]"; tag2 = "c15842.hall_pressure[1]"; tag3 = "c15842.hall_humid[1]"; } break; case 3: { tag1 = "c15842.hall_temp[2]"; tag2 = "c15842.hall_pressure[2]"; tag3 = "c15842.hall_humid[2]"; } break; default: break; } trend_logs_ta.FillByDateTimeTag(dataOpc.TagArchives, _to, _from, tag1); foreach (DataOtrila.TagArchivesRow log in dataOpc.TagArchives.Rows) { lineSerie1.Points.Add(new DataPoint(DateTimeAxis.ToDouble(log.DateTime), log.Value)); } trend_logs_ta.FillByDateTimeTag(dataOpc.TagArchives, _to, _from, tag2); foreach (DataOtrila.TagArchivesRow log in dataOpc.TagArchives.Rows) { lineSerie2.Points.Add(new DataPoint(DateTimeAxis.ToDouble(log.DateTime), log.Value)); } trend_logs_ta.FillByDateTimeTag(dataOpc.TagArchives, _to, _from, tag3); foreach (DataOtrila.TagArchivesRow log in dataOpc.TagArchives.Rows) { lineSerie3.Points.Add(new DataPoint(DateTimeAxis.ToDouble(log.DateTime), log.Value)); } PlotModel.Series.Add(lineSerie1); PlotModel.Series.Add(lineSerie2); PlotModel.Series.Add(lineSerie3); }