コード例 #1
0
        public ERROR_CODES GetPolledData(bool[] demodDataToFetch, int dataPointsToRead, out IDemodulatorDataPacket[] data)
        {
            lock (this)
            {
                data = new IDemodulatorDataPacket[zilockAmp.DEMODE_COUNT];
                for (int i = 0; i < zilockAmp.DEMODE_COUNT; i++)
                {
                    if (demodDataToFetch[i] == true)
                    {
                        data[i] = new DemodulatorDataPacket(i, demodulatorData[i], dataPointsToRead);

                    }
                    demodulatorData[i].Clear();
                }

            }
            return ERROR_CODES.AA_OK;
        }
コード例 #2
0
        public void AddNewvRMSIterationData(double[] inputSignal, IDemodulatorDataPacket[] demodulaorData, IHarmonicData maxHarmonic, double currentScale)
        {
            FrequencyDomainAlgorithmIterationData newData = new FrequencyDomainAlgorithmIterationData();
            newData.InputSingal = inputSignal;
            for (int i = 0; i < 8; i++)
            {
                newData.vRMSData[i] = demodulaorData[i].R.Mean;
            }
            newData.MaxHarmonic = maxHarmonic;
            newData.ScaleFactor = currentScale;
            newData.CurrentHarmonicValue = demodulaorData[CurrentHarmonic - 1].R.Mean;
            scaleValue.Add(currentScale);
            currentHarmonicValue.Add(newData.CurrentHarmonicValue);
            IterationData.Add(newData);
            if (BestIterationSoFar == null)
            {
                BestIterationSoFar = newData;
            }
            else
            {
                double currentR, bestR;

                currentR = newData.vRMSData[CurrentHarmonic - 1];
                bestR = BestIterationSoFar.vRMSData[CurrentHarmonic - 1];
                if (currentR < bestR )
                {
                    if (newData.MaxHarmonic.vRMS < BestIterationSoFar.MaxHarmonic.vRMS* 1.2)
                    {
                        BestIterationSoFar = newData;
                        bestScale = currentScale;
                    }
                }
            }
        }