Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
 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();
         }
     }));
 }
Ejemplo n.º 3
0
 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) { }
 }
Ejemplo n.º 4
0
        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;
                    }
                }
            }
        }
Ejemplo n.º 5
0
        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);
         }
     }));
 }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        /// <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);
        }
Ejemplo n.º 9
0
        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);
                }
            }));
        }
Ejemplo n.º 10
0
        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);
        }