// ------------------------------------------------------------------------------------------------------------------
        //protected void readLiveData(object pState)
        protected void readLiveData(object sender,
                                    GraphismVAS0.Services.MicroLibrary.MicroTimerEventArgs timerEventArgs)
        {
            lock (this)
            {
                try {
                    if (mcvManager != null)
                    {
                        SingleFeatureTrackerWSecondaryPt tracker = new SingleFeatureTrackerWSecondaryPt();
                        mcvManager.getFrameProcessor(tracker);
                        if (tracker != null)
                        {
                            Point2D pt  = tracker.getNormalizedTrackingPoint();
                            Point2D atc = tracker.getNormalizedDeltaSecondaryPoint();

                            lock (mtxBuffer)
                            {
                                mBuffer.Add(TimerServices.MicroStopwatch.ElapsedMicroseconds, new Points()
                                {
                                    Pt = pt, SPt = atc
                                });
                            }
                        }
                    }
                }
                catch  {
                }
            }
        }
        // ------------------------------------------------------------------------------------------------------------------
        private void sendToVIZ(object sender, GraphismVAS0.Services.MicroLibrary.MicroTimerEventArgs timerEventArgs)
        {
            try
            {
                Point2D pt  = null;
                Point2D atc = null;

                long now    = TimerServices.MicroStopwatch.ElapsedMicroseconds;
                long nowDel = now - GraphismVAS2015_0.SendDataDelay * 100; // 100 microseconds

                lock (mtxBuffer)
                {
                    var samples = mBuffer.Where(x => x.Key < nowDel);
                    if (samples.Any())
                    {
                        var kv = samples.First();
                        pt  = kv.Value.Pt;
                        atc = kv.Value.SPt;
                        mBuffer.Remove(kv.Key);
                        //foreach (var samtodel in samples)
                        //{
                        //    mBuffer.Remove(samtodel.Key);
                        //}
                    }
                }

                if (pt != null && atc != null)
                {
                    IGCOutput GCOutput = mActionManager.GetGraphicControllerOutputOrDefault(mTheInfo.NameOutput);
                    Dictionary <string, string> Tags = new Dictionary <string, string>();
                    if (GCOutput != null)
                    {
                        GCOutput._AddTag(mTheInfo, GraphismVAS0KeyWords.Data, pt.ToString("N4", ";") + ";" + atc.ToString("N4", ";"), null, ref Tags);
                        foreach (var tag in Tags)
                        {
                            mRenderEngine.NewValueHandler(this, new NewOutValueArgs()
                            {
                                Name   = tag.Key,
                                Output = new OutputDesc()
                                {
                                    Name = mTheInfo.NameOutput
                                },
                                Value = tag.Value
                            });
                        }
                    }
                }
            }
            catch (Exception e)
            {
            }
        }