コード例 #1
0
        public Double CheckSpliceLoss()
        {
            IniciaAquisicao();

            double spliceLoss = -1;
            EventTableAnalyzer eventTable = new EventTableAnalyzer();

            try
            {
                eventTable.BufferedEventTable.FiberParams.EndLossThresh = 3;
                //eventTable.BufferedEventTable.FiberEventTable.ComputeTable(_sig);
                eventTable.BufferedEventTable.Compute(_sig);
                eventTable.Analyze(_sig);
            }
            catch (Exception ex)
            {
                throw new FrontPanelException(ex.Message);
            }

            if (eventTable.BufferedEventTable.FiberEventTable.Count == 0)
            {
                throw new Exception("Não foi possível verificar a medida da perda na fibra de lançamento.");
            }
            else if (eventTable.BufferedEventTable.FiberEventTable.Count == 1)
            {
                throw new FrontPanelException("Apenas um evento foi detectado.");
            }

            spliceLoss = eventTable.BufferedEventTable.FiberEventTable[0].Loss;

            return spliceLoss;
        }
コード例 #2
0
        public double MeasureFiberLength()
        {
            try
            {
                IniciaAquisicao();

                double fiberLength = 0;

                EventTableAnalyzer eventTable = new EventTableAnalyzer();

                _sig = _clsRemote.CurrentSignature;
<<<<<<< HEAD

                eventTable.BufferedEventTable.FiberParams.EndLossThresh = 3;
                eventTable.BufferedEventTable.FiberParams.Sensitivity = 0.003;
                //eventTable.BufferedEventTable.FiberEventTable.ComputeTable(_sig);
                eventTable.BufferedEventTable.Compute(_sig);
                eventTable.Analyze(_sig);

                if (eventTable.BufferedEventTable.FiberEventTable.Count > 1)
                {
                    IOTDRTrace trace = _sig.Trace;

                    double offset = trace.FPOffset * 100000000;
                    double pointSpacing = trace.PointSpacing * GetFiberCoef();
                    double totalFiberLength = eventTable.FiberLength.Value * GetFiberCoef();
                    double refFiberLength = eventTable.BufferedEventTable[0].Loc * GetFiberCoef();
                    fiberLength = totalFiberLength - refFiberLength;
                }

                return fiberLength;
            }