Exemplo n.º 1
0
        public SearchHpicGraphView ShowSearchHpicGraphView(ListViewPanel panel, DataListener dataListener)
        {
            SearchHpicGraphView graphView = new SearchHpicGraphView();

            graphView.Interval = 30;

            var    columnInfoList = dataListener.GetColumnsInfo();
            string deviceKey      = dataListener.DeviceKey;

            foreach (var columnInfo in columnInfoList)
            {
                // Time would be deal as a Chart.
                if (columnInfo.BindingName.ToLower() == "time")
                {
                    continue;
                }

                if (columnInfo.DisplayInChart)
                {
                    graphView.AddLineName(deviceKey, columnInfo.BindingName, columnInfo.Header);
                }
            }

            return(graphView);
        }
Exemplo n.º 2
0
        // Real time graph
        public GraphView ShowGraphView(ListViewPanel panel, DataListener dataListener)
        {
            GraphView graphView = new GraphView();

            graphView.Interval = 30;
            if (dataListener.DeviceKey == "scada.naidevice")
            {
                graphView.Interval = 60 * 5;
            }
            graphView.AddDataListener(dataListener);

            var    columnInfoList = dataListener.GetColumnsInfo();
            string deviceKey      = dataListener.DeviceKey;

            foreach (var columnInfo in columnInfoList)
            {
                // Time would be deal as a Chart.
                if (columnInfo.BindingName.ToLower() == "time")
                {
                    continue; // Do nothing would be OK.
                }

                if (columnInfo.DisplayInChart)
                {
                    graphView.AddLineName(deviceKey, columnInfo.BindingName, columnInfo.Header);
                }
            }

            return(graphView);
        }
Exemplo n.º 3
0
        public void TestAntlr()
        {
            var listener = new DataListener();

            listener.Created = x =>
            {
                Assert.AreEqual("PFF", x.T);
                var label = x.Label as SimpleLabel;
                Assert.AreEqual(0.521144, label.Label, 1e-5);
                Assert.AreEqual(1, label.Initial);

                Assert.AreEqual(13, x.F.Count);
                Assert.AreEqual("t1", x.F[0].Key);
                Assert.AreEqual(-0.0236849, x.F[0].Value, 1e-5);
            };

            var line1 = "0.521144 1 PFF/20091028|T PFF |f t1:-0.0236849 t5:-0.10215 r5:0.727735 t10:-0.0387662 r10:0.911208 t20:-0.00777943 r20:0.952668 t40:0.014542 r40:0.832479 t60:0.00395449 r60:0.724504 t90:0.0281418 r90:0.784653";

            VWTestHelper.ParseInput(new MemoryStream(Encoding.UTF8.GetBytes(line1)), listener);

            listener.Created = x =>
            {
                var label = x.Label as SimpleLabel;
                Assert.AreEqual(1, label.Label, 1e-5);

                Assert.AreEqual(49, x.F.Count);
            };

            var line2 = "1 |f 13:3.9656971e-02 24:3.4781646e-02 69:4.6296168e-02 85:6.1853945e-02 140:3.2349996e-02 156:1.0290844e-01 175:6.8493910e-02 188:2.8366476e-02 229:7.4871540e-02 230:9.1505975e-02 234:5.4200061e-02 236:4.4855952e-02 238:5.3422898e-02 387:1.4059304e-01 394:7.5131744e-02 433:1.1118756e-01 434:1.2540409e-01 438:6.5452829e-02 465:2.2644201e-01 468:8.5926279e-02 518:1.0214076e-01 534:9.4191484e-02 613:7.0990764e-02 646:8.7701865e-02 660:7.2289191e-02 709:9.0660661e-02 752:1.0580081e-01 757:6.7965068e-02 812:2.2685185e-01 932:6.8250686e-02 1028:4.8203137e-02 1122:1.2381379e-01 1160:1.3038123e-01 1189:7.1542501e-02 1530:9.2655659e-02 1664:6.5160148e-02 1865:8.5823394e-02 2524:1.6407280e-01 2525:1.1528353e-01 2526:9.7131468e-02 2536:5.7415009e-01 2543:1.4978983e-01 2848:1.0446861e-01 3370:9.2423186e-02 3960:1.5554591e-01 7052:1.2632671e-01 16893:1.9762035e-01 24036:3.2674628e-01 24303:2.2660980e-010";

            VWTestHelper.ParseInput(new MemoryStream(Encoding.UTF8.GetBytes(line2)), listener);
        }
Exemplo n.º 4
0
        public Property(PluginProperty pluginProperty)
        {
            this.pluginProperty = pluginProperty;

            ClearValueCommand = new DelegateCommand(parameter => HasOwnValue, parameter => Value = null);
            callback = new DataListener(this);
            DisplayFileChooserCommand = new DelegateCommand(null, parameter =>
            {
                DialogService.ShowFileChooserDialog((result, pathName) =>
                {
                    if (result == true)
                    {
                        string fileName = System.IO.Path.GetFileName(pathName);

                        if (!Workspace.Instance.Project.HasAssetWithFileName(fileName))
                        {
                            Notify(new AssetUsed(pathName));
                            Value = new Value("\"" + fileName + "\"");
                        }
                        else
                        {
                            Workspace.Instance.DialogService.Warn("Asset Already Exists", "This project already contains an asset named " + fileName + ".", System.Windows.MessageBoxButton.OK);
                        }
                    }
                }, this.PluginProperty.FileFilter, this.PluginProperty.FileChooserTitle);
            });
        }
Exemplo n.º 5
0
        public void TestAntlr()
        {
            var listener = new DataListener();
            listener.Created = (x, plabel) =>
            {
                Assert.AreEqual("PFF", x.T);
                var label = plabel as SimpleLabel;
                Assert.AreEqual(0.521144, label.Label, 1e-5);
                Assert.AreEqual(1, label.Initial);

                Assert.AreEqual(13, x.F.Count);
                Assert.AreEqual("t1", x.F[0].Key);
                Assert.AreEqual(-0.0236849, x.F[0].Value, 1e-5);
            };

            var line1 = "0.521144 1 PFF/20091028|T PFF |f t1:-0.0236849 t5:-0.10215 r5:0.727735 t10:-0.0387662 r10:0.911208 t20:-0.00777943 r20:0.952668 t40:0.014542 r40:0.832479 t60:0.00395449 r60:0.724504 t90:0.0281418 r90:0.784653";
            VWTestHelper.ParseInput(new MemoryStream(Encoding.UTF8.GetBytes(line1)), listener);

            listener.Created = (x, plabel) =>
            {
                var label = plabel as SimpleLabel;
                Assert.AreEqual(1, label.Label, 1e-5);

                Assert.AreEqual(49, x.F.Count);
            };

            var line2 = "1 |f 13:3.9656971e-02 24:3.4781646e-02 69:4.6296168e-02 85:6.1853945e-02 140:3.2349996e-02 156:1.0290844e-01 175:6.8493910e-02 188:2.8366476e-02 229:7.4871540e-02 230:9.1505975e-02 234:5.4200061e-02 236:4.4855952e-02 238:5.3422898e-02 387:1.4059304e-01 394:7.5131744e-02 433:1.1118756e-01 434:1.2540409e-01 438:6.5452829e-02 465:2.2644201e-01 468:8.5926279e-02 518:1.0214076e-01 534:9.4191484e-02 613:7.0990764e-02 646:8.7701865e-02 660:7.2289191e-02 709:9.0660661e-02 752:1.0580081e-01 757:6.7965068e-02 812:2.2685185e-01 932:6.8250686e-02 1028:4.8203137e-02 1122:1.2381379e-01 1160:1.3038123e-01 1189:7.1542501e-02 1530:9.2655659e-02 1664:6.5160148e-02 1865:8.5823394e-02 2524:1.6407280e-01 2525:1.1528353e-01 2526:9.7131468e-02 2536:5.7415009e-01 2543:1.4978983e-01 2848:1.0446861e-01 3370:9.2423186e-02 3960:1.5554591e-01 7052:1.2632671e-01 16893:1.9762035e-01 24036:3.2674628e-01 24303:2.2660980e-010";
            VWTestHelper.ParseInput(new MemoryStream(Encoding.UTF8.GetBytes(line2)), listener);
        }
Exemplo n.º 6
0
        public ListViewPanel CreateDataViewPanel(DBDataProvider dataProvider, ConfigEntry entry, bool showList = true)
        {
            string deviceKey   = entry.DeviceKey;
            string displayName = entry.DisplayName;

            if (this.panelDict.ContainsKey(deviceKey))
            {
                ListViewPanel panel = this.panelDict[deviceKey];
                if (this.currentPanel != panel)
                {
                    this.currentPanel.Visibility = Visibility.Hidden;
                }
                panel.Visibility  = Visibility.Visible;
                this.currentPanel = panel;
                return(panel);
            }
            else
            {
                // !
                ListViewPanel panel        = new ListViewPanel(dataProvider, entry);
                DataListener  dataListener = dataProvider.GetDataListener(deviceKey);
                panel.SetIcon(entry.Icon);
                panel.AddDataListener(dataListener);
                if (showList)
                {
                    panel.ListView        = this.ShowListView(panel, dataListener);
                    panel.SearchView      = this.ShowListView(panel, dataListener);
                    panel.GraphView       = this.ShowGraphView(panel, dataListener);
                    panel.GraphSearchView = this.ShowSearchGraphView(panel, dataListener);

                    // Notice; Comment 4-7.
                    // panel.ListRecentData();
                    // 是否显示 控制面板
                    if (deviceKey == DataProvider.DeviceKey_MDS)
                    {
                        panel.ControlPanel = this.ShowControlView(DataProvider.DeviceKey_MDS);
                    }
                    else if (deviceKey == DataProvider.DeviceKey_AIS)
                    {
                        panel.ControlPanel = this.ShowControlView(DataProvider.DeviceKey_AIS);
                    }
                    else if (deviceKey == DataProvider.DeviceKey_NaI)
                    {
                        panel.SetupContextMenu((ListView)panel.ListView);
                        panel.SetupContextMenu((ListView)panel.SearchView);
                        panel.EnergyPanel = this.ShowEnergyView(DataProvider.DeviceKey_NaI);
                    }
                }

                if (this.currentPanel != null)
                {
                    this.currentPanel.Visibility = Visibility.Hidden;
                }
                this.currentPanel = panel;

                this.panelDict.Add(deviceKey, panel);
                return(panel);
            }
        }
Exemplo n.º 7
0
 //添加监听
 public override void AddListener(DataListener listener)
 {
     base.AddListener(listener);
     if (mDataList != null && mDataList.Count > 0 && listener.FullUpdateFirst)
     {
         listener.FireEventForListener(mDataList);
     }
 }
 public virtual void removeDataListener(DataListener l)
 {
     if (l == null)
     {
         return;
     }
     this.listeners.remove(l);
 }
 public virtual void addDataListener(DataListener l)
 {
     if (l == null)
     {
         return;
     }
     this.listeners.add(l);
 }
Exemplo n.º 10
0
 //添加监听事件
 public virtual void AddListener(DataListener listener)
 {
     mListenerList.Add(listener);
     //如果holder是IAutoObservable类型,则调用AddObservableData接口将该data记录
     if (listener.Holder != null && listener.Holder is IAutoObserver)
     {
         (listener.Holder as IAutoObserver).AddObservableData(this);
     }
 }
Exemplo n.º 11
0
        private void reloadChkdData()
        {
            DataListener.SuspendListen();

            if (objStudent.Class != null)
            {
                cboClass.Text = objStudent.Class.Name;
                cboClass.Items.Add(objStudent.Class.Name);
                this._DefaultClassName = objStudent.Class.Name;
            }
            else
            {
                cboClass.Text = string.Empty;
            }


            cboSeatNo.Text      = string.Empty;
            this._DefaultSeatNo = string.Empty;

            // 當有座號
            if (objStudent.SeatNo.HasValue)
            {
                if (objStudent.SeatNo.Value > 0)
                {
                    string strSeatNo = objStudent.SeatNo.Value + "";
                    cboSeatNo.Text = strSeatNo;
                    cboSeatNo.Items.Add(strSeatNo);
                    this._DefaultSeatNo = strSeatNo;
                }
            }


            // 當有學號
            if (string.IsNullOrEmpty(objStudent.StudentNumber))
            {
                this._DefaultStudNum  = string.Empty;
                txtStudentNumber.Text = string.Empty;
            }
            else
            {
                txtStudentNumber.Text = objStudent.StudentNumber;
                this._DefaultStudNum  = objStudent.StudentNumber;
            }

            prlp.SetBeforeSaveText("班級", cboClass.Text);
            prlp.SetBeforeSaveText("座號", cboSeatNo.Text);
            prlp.SetBeforeSaveText("學號", txtStudentNumber.Text);

            tmpClassName = cboClass.Text;
            setClassName();
            setClassNo();

            DataListener.Reset();
            DataListener.ResumeListen();
            this.Loading = false;
        }
Exemplo n.º 12
0
        static public InsertDataListenerStack operator -(InsertDataListenerStack stack, DataListener listener)
        {
            DataListener value = stack._listeners.FirstOrDefault(x => x.Method.Name == listener.Method.Name);

            if (value != null)
            {
                stack._listeners.Remove(value);
            }
            return(stack);
        }
Exemplo n.º 13
0
 public void AddDataListener(DataListener listener)
 {
     this.dataListener = listener;
     if (this.dataListener != null)
     {
         this.dataListener.OnDataArrivalBegin += this.OnDataArrivalBegin;
         this.dataListener.OnDataArrival      += this.OnDataArrival;
         this.dataListener.OnDataArrivalEnd   += this.OnDataArrivalEnd;
     }
 }
        private void reloadChkdData()
        {
            DataListener.SuspendListen();

            if (objStudent != null)
            {
                if (objStudent.Class != null)
                {
                    lblClassName.Text = objStudent.Class.Name;

                    this._DefaultClassName = objStudent.Class.Name;
                }
                else
                {
                    lblClassName.Text = string.Empty;
                }


                lblSeatNo.Text      = string.Empty;
                this._DefaultSeatNo = string.Empty;

                // 當有座號
                if (objStudent.SeatNo.HasValue)
                {
                    if (objStudent.SeatNo.Value > 0)
                    {
                        string strSeatNo = objStudent.SeatNo.Value.ToString();
                        lblSeatNo.Text      = strSeatNo;
                        this._DefaultSeatNo = strSeatNo;
                    }
                }


                // 當有學號
                if (string.IsNullOrEmpty(objStudent.StudentNumber))
                {
                    this._DefaultStudNum  = string.Empty;
                    txtStudentNumber.Text = string.Empty;
                }
                else
                {
                    txtStudentNumber.Text = objStudent.StudentNumber;
                    this._DefaultStudNum  = objStudent.StudentNumber;
                }

                prlp.SetBeforeSaveText("班級", lblClassName.Text);
                prlp.SetBeforeSaveText("座號", lblSeatNo.Text);
                prlp.SetBeforeSaveText("學號", txtStudentNumber.Text);

                tmpClassName = lblClassName.Text;
            }
            DataListener.Reset();
            DataListener.ResumeListen();
            this.Loading = false;
        }
Exemplo n.º 15
0
        public override Data getData()
        {
            Data     data     = this.getPredecessor().getData();
            Iterator iterator = this.listeners.iterator();

            while (iterator.hasNext())
            {
                DataListener dataListener = (DataListener)iterator.next();
                dataListener.processDataFrame(data);
            }
            return(data);
        }
Exemplo n.º 16
0
     Data ClientData; //Contains all temporary data within the GUI
 
     public frmMain()
     {
          ClientData = new Data();
          DataListener dataListener = new DataListener();
          // Add an event handler
          dataListener.somethingReceivedHandler += 
              (object sender, SomethingData packet)              
              {
                 if (someContext) ClientData.SomeList.Add(packet); 
              };
          InitializeComponent();
     }
Exemplo n.º 17
0
 // No need.
 public void AddDataListener(DataListener listener)
 {
     /*
      * this.dataListener = listener;
      * if (this.dataListener != null)
      * {
      *  this.dataListener.OnDataArrivalBegin += this.OnDataArrivalBegin;
      *  this.dataListener.OnDataArrival += this.OnDataArrival;
      *  this.dataListener.OnDataArrivalEnd += this.OnDataArrivalEnd;
      * }
      */
 }
Exemplo n.º 18
0
        private void item_Click(object sender, EventArgs e)
        {
            ButtonItem item = sender as ButtonItem;

            CardPanelEnabled = true;
            LabelNameText    = item.Text;

            SelectedItem = item;
            DataListener.SuspendListen();
            SetContent((item.Tag as ScoreCalcRuleRecord).Content);
            DataListener.Reset();
            DataListener.ResumeListen();
        }
Exemplo n.º 19
0
        public ListViewPanel CreateDataViewPanel(DataProvider dataProvider, ConfigEntry entry, bool showList = true)
        {
            string deviceKey   = entry.DeviceKey;
            string displayName = entry.DisplayName;

            if (this.panelDict.ContainsKey(deviceKey))
            {
                ListViewPanel panel = this.panelDict[deviceKey];
                if (this.currentPanel != panel)
                {
                    this.currentPanel.Visibility = Visibility.Hidden;
                }
                panel.Visibility  = Visibility.Visible;
                this.currentPanel = panel;
                return(panel);
            }
            else
            {
                // !
                ListViewPanel panel        = new ListViewPanel(dataProvider, entry);
                DataListener  dataListener = dataProvider.GetDataListener(deviceKey);
                panel.AddDataListener(dataListener);
                if (showList)
                {
                    panel.ListView        = this.ShowListView(panel, dataListener);
                    panel.SearchView      = this.ShowListView(panel, dataListener);
                    panel.GraphView       = this.ShowGraphView(panel, dataListener, true);
                    panel.GraphSearchView = this.ShowSearchGraphView(panel, dataListener, false);

                    panel.ListRecentData();
                    // 是否显示 控制面板
                    if (deviceKey == DataProvider.DeviceKey_HvSampler)
                    {
                        panel.ControlPanel = this.ShowControlView(DataProvider.DeviceKey_HvSampler);
                    }
                    else if (deviceKey == DataProvider.DeviceKey_ISampler)
                    {
                        panel.ControlPanel = this.ShowControlView(DataProvider.DeviceKey_ISampler);
                    }
                }

                if (this.currentPanel != null)
                {
                    this.currentPanel.Visibility = Visibility.Hidden;
                }
                this.currentPanel = panel;

                this.panelDict.Add(deviceKey, panel);
                return(panel);
            }
        }
Exemplo n.º 20
0
        public virtual void processDataFrame(Data data)
        {
            this.featureBuffer.add(data);
            Iterator iterator = this.dataListeners.iterator();

            while (iterator.hasNext())
            {
                DataListener dataListener = (DataListener)iterator.next();
                dataListener.processDataFrame(data);
            }
            while (this.featureBuffer.size() > this.maxBufferSize)
            {
                this.featureBuffer.remove(0);
            }
        }
Exemplo n.º 21
0
        public void AddDataListener(DataListener listener)
        {
            this.dataListener = listener;
            if (this.dataListener != null)
            {
                this.dataListener.OnDataArrivalBegin += this.OnDataArrivalBegin;
                this.dataListener.OnDataArrival      += this.OnDataArrival;
                this.dataListener.OnDataArrivalEnd   += this.OnDataArrivalEnd;
            }

            // TODO: !!
            this.dataSource = new List <Dictionary <string, object> >();

            this.searchDataSource = new List <Dictionary <string, object> >();
        }
Exemplo n.º 22
0
        public void SendObject_SingleObjectIsSentSuccessfully_ReceivedObjectIsCorrect(int port, bool useProtobuf)
        {
            var messageListener = new DataListener <SimpleObject>(port, useProtobuf);

            messageListener.Listen();

            var server = new StreamingServer(port, useProtobuf);

            server.SendObject("John");
            Thread.Sleep(2000);

            var receivedMessages = messageListener.ReceivedObjects.Cast <SimpleObject>();

            receivedMessages.Should().BeEquivalentTo(new SimpleObject
            {
                Name = "John"
            });
        }
Exemplo n.º 23
0
        /*
         * dotnet run {1234}
         * or
         * dotnet .\Sample.dll {1234}
         * or
         * .\Sample.exe {1234}
         * or
         * .\Sample {1234}
         *
         * depending on how you built/published
         */

        public static async Task <int> Main(string[] args)
        {
            int port = TrySetPortNumber(args, out int p) ? p : DataListener.DefaultPort;

            IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, port);

            using DataListener listener = new DataListener(endPoint);
            using CancellationTokenSource tokenSource = new CancellationTokenSource();

            Console.CancelKeyPress += (s, e) =>
            {
                e.Cancel = true;

                Console.Write("exiting...");

                tokenSource.Cancel();
            };

            Console.WriteLine($"begin listening for data on port {port}");

            StringBuilder sb = new StringBuilder();

            await foreach (Packet packet in listener.ListenAsync(tokenSource.Token))
            {
                if (packet.EndPoint is null ||
                    packet.Dash is null)
                {
                    continue;
                }

                sb.Append($"{packet.EndPoint.Address}:{packet.EndPoint.Port} - ");
                sb.Append($"pos.: {packet.Dash.RacePosition} - ");
                sb.Append($"lap: {packet.Dash.LapNumber} - ");
                sb.Append($"cur. race time: {packet.Dash.CurrentRaceTime}");

                Console.WriteLine(sb.ToString());

                sb.Clear();
            }

            Console.WriteLine(" - exited!");

            return(0);
        }
Exemplo n.º 24
0
    static void Main()
    {
        DataSource source1     = new DataSource("Source 1"),
                   source2     = new DataSource("Source 2");
        DataListener listener1 = new DataListener("Listener 1"),
                     listener2 = new DataListener("Listener 2");

        listener1.Subscribe(source1);
        listener2.Subscribe(source2);
        // now we'll release one source and one listener, and force a collect
        source1   = null;
        listener2 = null;
        GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced);
        GC.WaitForPendingFinalizers();     // source 1 gets collected, ONLY
        Console.WriteLine("Done");
        Console.ReadLine();
        GC.KeepAlive(source2);     // prevents collection due to optimisation
        GC.KeepAlive(listener1);   // prevents collection due to optimisation
    }
Exemplo n.º 25
0
        public ListView ShowListView(ListViewPanel panel, DataListener dataListener)
        {
            // ListView
            ListView listView = new ListView();
            GridView gridView = new GridView();

            listView.View = gridView;

            var columnInfoList = dataListener.GetColumnsInfo(); // new List<ColumnInfo>();

            foreach (var columnInfo in columnInfoList)
            {
                GridViewColumn col = new GridViewColumn();
                col.Header = columnInfo.Header;
                string bindingName = string.Format("[{0}]", columnInfo.BindingName);
                col.DisplayMemberBinding = new Binding(bindingName.ToLower());
                col.Width = columnInfo.Width;
                gridView.Columns.Add(col);
            }
            return(listView);
        }
Exemplo n.º 26
0
        /// <summary>
        /// Handles the <see cref="DataListener.DataExtracted"/> event for all the <see cref="Listeners"/>.
        /// </summary>
        /// <param name="sender"><see cref="DataListener"/> object that raised the event.</param>
        /// <param name="e"><see cref="EventArgs{T}"/> object where <see cref="EventArgs{T}.Argument"/> is the collection of real-time time-sereis data received.</param>
        protected virtual void ProcessRealTimeData(object sender, EventArgs <IList <IDataPoint> > e)
        {
            DataListener  listener    = (DataListener)sender;
            List <Export> exportsList = new List <Export>();

            // Get a local copy of all the exports associated with this exporter.
            lock (m_exports)
            {
                exportsList.AddRange(m_exports);
            }

            // Process all the exports.
            foreach (Export export in exportsList)
            {
                if (export.Type == ExportType.RealTime && export.FindRecords(listener.ID).Count > 0)
                {
                    // This export is configured to be processed in real-time and has one or more records
                    // from this listener to be exported, so we'll queue the real-time data for processing.
                    m_realTimeExportQueue.Add(new RealTimeData(export, listener, e.Argument));
                }
            }

            // We prevent flooding the queue by allowing a fixed number of request to queued at a given time.
            // Doing so also prevents running out-of-memory that could be caused by exporters taking longer than
            // normal to process its exports. Longer than normal processing time will back-log processing to a
            // point that it might become impossible to catch-up because of the rate at which data may be parsed.
            int          drops = 0;
            RealTimeData data;

            while (m_realTimeExportQueue.Count > MaximumQueuedRequest)
            {
                m_realTimeExportQueue.TryTake(out data);
                drops++;
            }

            if (drops > 0)
            {
                OnStatusUpdate(string.Format("Dropped {0} time-series data points to prevent flooding.", drops));
            }
        }
Exemplo n.º 27
0
 /// <summary>
 /// Listens for connections and creates a thread for each client
 /// </summary>
 private void Listen()
 {
     try
     {
         while (ServerStatus)
         {
             TcpClient clientData = DataListener?.AcceptTcpClient();
             if (clientData != null)
             {
                 Application.Current.Dispatcher.Invoke((Action) delegate // <--- HERE
                 {
                     ConnectedClients.Add(new NetworkClient(clientData.Client.RemoteEndPoint.ToString()));
                 });
                 Task.Run(() => ClientHandler(clientData));
             }
         }
     }
     catch // server went offline
     {
         MessageBox.Show("Server is offline, connection listening stopped", "Message");
     }
 }
Exemplo n.º 28
0
        /// <summary>
        /// Handles the <see cref="DataListener.DataExtracted"/> event for all the <see cref="ExporterBase.Listeners"/>.
        /// </summary>
        /// <param name="sender"><see cref="DataListener"/> object that raised the event.</param>
        /// <param name="e"><see cref="EventArgs{T}"/> object where <see cref="EventArgs{T}.Argument"/> is the collection of real-time time-sereis data received.</param>
        protected override void ProcessRealTimeData(object sender, EventArgs <IList <IDataPoint> > e)
        {
            DataListener  listener    = (DataListener)sender;
            List <Export> exportsList = new List <Export>();

            lock (Exports)
            {
                // Get a local copy of all the exports this exporter is responsible for.
                exportsList.AddRange(Exports);
            }

            // Queue the export and parsed data for processing if:
            // - Export has records that are from the listener whose data we have received
            // - Export is not "Real-Time", since real-time exports are not supported by this exporter
            foreach (Export export in exportsList)
            {
                if (export.FindRecords(listener.ID).Count > 0 && export.Type != ExportType.RealTime)
                {
                    RealTimeExportQueue.Add(new RealTimeData(export, listener, e.Argument));
                }
            }
        }
 public static StackLayout BindTo <TModel, TView>(
     this StackLayout stackLayout,
     DataListener <IEnumerable <TModel> > listener,
     Func <TModel, TView> createView,
     bool requiresAppend = false
     )
     where TView : View
 {
     listener.OnSet = list => {
         if (list == null)
         {
             return;
         }
         if (!requiresAppend)
         {
             stackLayout.Children.Clear();
         }
         foreach (var m in list)
         {
             stackLayout.Children.Add(createView(m));
         }
     };
     return(stackLayout);
 }
Exemplo n.º 30
0
 protected override void ProcessRealTimeExport(Export export, DataListener listener, IList <IDataPoint> data)
 {
     throw new NotSupportedException();  // Real-Time exports not supported.
 }
Exemplo n.º 31
0
 /// <summary>
 /// When overridden in a derived class, processes the <paramref name="export"/> using the real-time <paramref name="data"/>.
 /// </summary>
 /// <param name="export"><see cref="Export"/> to be processed.</param>
 /// <param name="listener"><see cref="DataListener"/> that provided the <paramref name="data"/>.</param>
 /// <param name="data">Real-time time-series data received by the <paramref name="listener"/>.</param>
 protected abstract void ProcessRealTimeExport(Export export, DataListener listener, IList<IDataPoint> data);
Exemplo n.º 32
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RealTimeData"/> class.
 /// </summary>
 /// <param name="export">The <see cref="Export"/> to which the <paramref name="data"/> belongs.</param>
 /// <param name="listener">The <see cref="DataListener"/> that provided the <paramref name="data"/>.</param>
 /// <param name="data">The real-time time-series data received by the <paramref name="listener"/>.</param>
 public RealTimeData(Export export, DataListener listener, IList<IDataPoint> data)
 {
     this.Export = export;
     this.Listener = listener;
     this.Data = data;
 }
Exemplo n.º 33
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RealTimeData"/> class.
 /// </summary>
 /// <param name="export">The <see cref="Export"/> to which the <paramref name="data"/> belongs.</param>
 /// <param name="listener">The <see cref="DataListener"/> that provided the <paramref name="data"/>.</param>
 /// <param name="data">The real-time time-series data received by the <paramref name="listener"/>.</param>
 public RealTimeData(Export export, DataListener listener, IList <IDataPoint> data)
 {
     this.Export   = export;
     this.Listener = listener;
     this.Data     = data;
 }
Exemplo n.º 34
0
 /// <summary>
 /// When overridden in a derived class, processes the <paramref name="export"/> using the real-time <paramref name="data"/>.
 /// </summary>
 /// <param name="export"><see cref="Export"/> to be processed.</param>
 /// <param name="listener"><see cref="DataListener"/> that provided the <paramref name="data"/>.</param>
 /// <param name="data">Real-time time-series data received by the <paramref name="listener"/>.</param>
 protected abstract void ProcessRealTimeExport(Export export, DataListener listener, IList <IDataPoint> data);
Exemplo n.º 35
0
 protected override void ProcessRealTimeExport(Export export, DataListener listener, IList<IDataPoint> data)
 {
     throw new NotSupportedException();  // Real-Time exports not supported.
 }
Exemplo n.º 36
0
 /// <summary>
 /// Processes the <paramref name="export"/> using the real-time <paramref name="data"/>.
 /// </summary>
 /// <param name="export"><see cref="Export"/> to be processed.</param>
 /// <param name="listener"><see cref="DataListener"/> that provided the <paramref name="data"/>.</param>
 /// <param name="data">Real-time time-series data received by the <paramref name="listener"/>.</param>
 protected override void ProcessRealTimeExport(Export export, DataListener listener, IList<IDataPoint> data)
 {
     // In case of real-time export, immediately transmit the received data.
     TransmitData(export, data);
 }