From a597da1e1841223c4518a8e7e9a98b80790a80e8 Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Fri, 1 Aug 2014 10:54:38 +0200 Subject: [PATCH] Waits 15sec after setting the initial flow before detection starts --- .../CombinedWithDetectionSeq.cs | 123 +++++++++--------- 1 file changed, 64 insertions(+), 59 deletions(-) diff --git a/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs b/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs index 3a3873b78..43dada310 100644 --- a/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs +++ b/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs @@ -205,6 +205,8 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection bool targetReached = false; float detectedFlow = 0; + int detectionStartTime = StateMachine.Time; + do { //-------------------------------- @@ -247,67 +249,70 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection pulseFreqsForDetection[0] = (float)diff / (float)(time - lastTime); lastTime = StateMachine.Time; - if ((flowsForDetection[0] > 0) && (flowsForDetection[DetectionBufferSize - 1] > 0)) - { - float[] flowBefore = new float[DetectionKernelSize]; - float[] flowAfter = new float[DetectionKernelSize]; - float[] freqBefore = new float[DetectionKernelSize]; - float[] freqAfter = new float[DetectionKernelSize]; - for (int i = 0; i < DetectionKernelSize; i++) - { - flowBefore[i] = flowsForDetection[DetectionBufferSize - DetectionKernelSize + i]; - freqBefore[i] = pulseFreqsForDetection[DetectionBufferSize - DetectionKernelSize + i]; - flowAfter[i] = flowsForDetection[i]; - freqAfter[i] = pulseFreqsForDetection[i]; - } - Array.Sort(flowBefore); - Array.Sort(flowAfter); - Array.Sort(freqBefore); - Array.Sort(freqAfter); - flowBefore[0] = 0; - flowAfter[0] = 0; - //freqBefore[0] = 0; - //freqAfter[0] = 0; - flowBefore[DetectionKernelSize - 1] = 0; - flowAfter[DetectionKernelSize - 1] = 0; - //freqBefore[DetectionKernelSize - 1] = 0; - //freqAfter[DetectionKernelSize - 1] = 0; - float aveFlowBefore = 0; - float aveFlowAfter = 0; - float aveFreqBefore = 0; - float aveFreqAfter = 0; - foreach (var f in flowBefore) aveFlowBefore += f; - foreach (var f in flowAfter) aveFlowAfter += f; - foreach (var f in freqBefore) aveFreqBefore += f; - foreach (var f in freqAfter) aveFreqAfter += f; - aveFlowBefore /= (float)(DetectionKernelSize - 2); - aveFlowAfter /= (float)(DetectionKernelSize - 2); - aveFreqBefore /= (float)(DetectionKernelSize); - aveFreqAfter /= (float)(DetectionKernelSize); + if (StateMachine.Time - detectionStartTime > 15) + { + if ((flowsForDetection[0] > 0) && (flowsForDetection[DetectionBufferSize - 1] > 0)) + { + float[] flowBefore = new float[DetectionKernelSize]; + float[] flowAfter = new float[DetectionKernelSize]; + float[] freqBefore = new float[DetectionKernelSize]; + float[] freqAfter = new float[DetectionKernelSize]; + for (int i = 0; i < DetectionKernelSize; i++) + { + flowBefore[i] = flowsForDetection[DetectionBufferSize - DetectionKernelSize + i]; + freqBefore[i] = pulseFreqsForDetection[DetectionBufferSize - DetectionKernelSize + i]; + flowAfter[i] = flowsForDetection[i]; + freqAfter[i] = pulseFreqsForDetection[i]; + } + Array.Sort(flowBefore); + Array.Sort(flowAfter); + Array.Sort(freqBefore); + Array.Sort(freqAfter); + flowBefore[0] = 0; + flowAfter[0] = 0; + //freqBefore[0] = 0; + //freqAfter[0] = 0; + flowBefore[DetectionKernelSize - 1] = 0; + flowAfter[DetectionKernelSize - 1] = 0; + //freqBefore[DetectionKernelSize - 1] = 0; + //freqAfter[DetectionKernelSize - 1] = 0; + float aveFlowBefore = 0; + float aveFlowAfter = 0; + float aveFreqBefore = 0; + float aveFreqAfter = 0; + foreach (var f in flowBefore) aveFlowBefore += f; + foreach (var f in flowAfter) aveFlowAfter += f; + foreach (var f in freqBefore) aveFreqBefore += f; + foreach (var f in freqAfter) aveFreqAfter += f; + aveFlowBefore /= (float)(DetectionKernelSize - 2); + aveFlowAfter /= (float)(DetectionKernelSize - 2); + aveFreqBefore /= (float)(DetectionKernelSize); + aveFreqAfter /= (float)(DetectionKernelSize); - UiBridge.Bridge.OnLog(this, string.Format("time={0}, flow{1}, aveFlowB={2}, aveFlowA={3}, pulseFreq={4}, aveFreqB={5}, aveFreqA={6}\r\n", - time - startTime, - flowsForDetection[0].ToString("F2"), - aveFlowBefore.ToString("F2"), - aveFlowAfter.ToString("F2"), - pulseFreqsForDetection[0].ToString("F2"), - aveFreqBefore.ToString("F2"), - aveFreqAfter.ToString("F2"))); - - //detectedFlow = (aveFlowBefore + aveFlowAfter) / 2.0f; - detectedFlow = aveFlowBefore; + UiBridge.Bridge.OnLog(this, string.Format("time={0}, flow{1}, aveFlowB={2}, aveFlowA={3}, pulseFreq={4}, aveFreqB={5}, aveFreqA={6}\r\n", + time - startTime, + flowsForDetection[0].ToString("F2"), + aveFlowBefore.ToString("F2"), + aveFlowAfter.ToString("F2"), + pulseFreqsForDetection[0].ToString("F2"), + aveFreqBefore.ToString("F2"), + aveFreqAfter.ToString("F2"))); - if (rvPulse > 0) - { - detected = (aveFreqAfter < aveFreqBefore * (1.0f - testParams.DetectionThreshold)); - targetReached = ((aveFlowAfter + aveFlowBefore) / 2.0f) > testParams.TargetQ; - } - else - { - detected = (aveFreqAfter > aveFreqBefore * (1.0f + testParams.DetectionThreshold)); - targetReached = ((aveFlowAfter + aveFlowBefore) / 2.0f) < testParams.TargetQ; - } - } + //detectedFlow = (aveFlowBefore + aveFlowAfter) / 2.0f; + detectedFlow = aveFlowBefore; + + if (rvPulse > 0) + { + detected = (aveFreqAfter < aveFreqBefore * (1.0f - testParams.DetectionThreshold)); + targetReached = ((aveFlowAfter + aveFlowBefore) / 2.0f) > testParams.TargetQ; + } + else + { + detected = (aveFreqAfter > aveFreqBefore * (1.0f + testParams.DetectionThreshold)); + targetReached = ((aveFlowAfter + aveFlowBefore) / 2.0f) < testParams.TargetQ; + } + } + } } while (!detected && !targetReached);