/// <summary> /// 开始连续采集 /// </summary> public void StartSerialSampple() { var thread = new Thread(() => { int sampleCount = 10 * 96 * 1000; int packetDataLength = 96 * 1000 / 20; double[] channelData1 = new double[sampleCount]; double[] channelData2 = new double[sampleCount]; double[] currentChannel1 = new double[packetDataLength]; double[] currentChannel2 = new double[packetDataLength]; int totalPacket = sampleCount / packetDataLength; int currentPacket = 0; double value1 = 0.5; double value2 = 0.5; while (true) { for (int i = 0; i < currentChannel1.Length; i++) { value1 += (randomNumber.NextDouble() / 1000) - 0.0005; if (value1 > 1) { value1 = 1; } else if (value1 < 0) { value1 = 0; } currentChannel1[i] = value1; } for (int i = 0; i < currentChannel2.Length; i++) { value2 += (randomNumber.NextDouble() / 1000) - 0.0005; if (value2 > 1) { value2 = 1; } else if (value2 < 0) { value2 = 0; } currentChannel2[i] = value2; } ScopeReadDataCompleted?.Invoke(this, new ScopeReadDataCompletedEventArgs(channelData1, channelData2, currentChannel1, currentChannel2, totalPacket, currentPacket % totalPacket + 1)); Thread.Sleep(1000 / 20); currentPacket++; } }); thread.IsBackground = true; thread.Start(); }
protected void OnScopeReadDataCompleted(double[] globalChannel1, double[] globalChannel2, double[] currentChannel1, double[] currentChannel2, int totalPacket, int currentPacket) { ScopeReadDataCompleted?.Invoke(this, new ScopeReadDataCompletedEventArgs(globalChannel1, globalChannel2, currentChannel1, currentChannel2, totalPacket, currentPacket)); }