diff --git a/Correlator/ViewModel/HomePageProViewModel.cs b/Correlator/ViewModel/HomePageProViewModel.cs index dc26224..2ec458e 100644 --- a/Correlator/ViewModel/HomePageProViewModel.cs +++ b/Correlator/ViewModel/HomePageProViewModel.cs @@ -539,23 +539,36 @@ manager.Insert(configModel); } + // CalculateData(it); + // + // var fileName = _locateDataDir + "\\测试数据." + _locateTimes + "." + + // DateTime.Now.ToString("HHmmss") + ".txt"; + // StringUtil.SaveLocateData(it, fileName); + // "HomePageViewModel".WriteLog("定位数据路径:" + fileName); + // + // _snapShotPath = _locateDataDir + "\\快照." + _locateTimes + "." + + // DateTime.Now.ToString("HHmmss") + ".png"; + // _snapShotTimer.Start(); + // + // _runningTimer.Stop(); + // StartButtonEnabled = true; + // FlowStatus.RedSensorIsEnable = false; + // FlowStatus.BlueSensorIsEnable = false; + // DialogHub.Get.DismissLoadingDialog(); + //计算 //异步计算数据 - var backgroundScheduler = TaskScheduler.Default; - var uiScheduler = TaskScheduler.Current; Task.Factory - .StartNew(delegate { CalculateData(it); }, backgroundScheduler) + .StartNew(() => CalculateData(it)) .ContinueWith(delegate { - //计算结束保存定位数据 + //保存数据 var fileName = _locateDataDir + "\\测试数据." + _locateTimes + "." + DateTime.Now.ToString("HHmmss") + ".txt"; StringUtil.SaveLocateData(it, fileName); "HomePageViewModel".WriteLog("定位数据路径:" + fileName); - }, backgroundScheduler) - .ContinueWith(delegate - { - //计算结束保存截图,需要等待Task出结果并且渲染完成,才能保存截图 + + //保存了数据之后5s再截图 _snapShotPath = _locateDataDir + "\\快照." + _locateTimes + "." + DateTime.Now.ToString("HHmmss") + ".png"; _snapShotTimer.Start(); @@ -565,7 +578,7 @@ FlowStatus.RedSensorIsEnable = false; FlowStatus.BlueSensorIsEnable = false; DialogHub.Get.DismissLoadingDialog(); - }, uiScheduler, TaskContinuationOptions.OnlyOnRanToCompletion); + }, TaskContinuationOptions.OnlyOnRanToCompletion); } /// @@ -574,32 +587,64 @@ /// private void CalculateData(CorrelatorDataModel dataModel) { - var array = _correlator.locating(11, - (MWNumericArray)dataModel.LeftDeviceDataArray, (MWNumericArray)dataModel.RightDeviceDataArray, - Constant.SamplingRate, - 150, 1130, - 0, 0, - 0, 0, - "铸铁", - 300, 300, - 1, -1, - -1, -1, - 10, 300); + if (dataModel.LeftDeviceDataArray.Any() && dataModel.RightDeviceDataArray.Any()) + { + Debug.WriteLine("HomePageProViewModel => 开始计算"); + var array = _correlator.locating(11, + (MWNumericArray)dataModel.LeftDeviceDataArray, (MWNumericArray)dataModel.RightDeviceDataArray, + Constant.SamplingRate, + 150, 1130, + 0, 0, + 0, 0, + "铸铁", + 300, 300, + 1, -1, + -1, -1, + 10, 300); + Debug.WriteLine("HomePageProViewModel => 计算结束"); - //数据绑定 - var snr = Convert.ToDouble(array[0].ToString()); //信噪比 - Snr = snr.ToString("0.0") + ":1"; - RedTransmitterDistance = Convert.ToDouble(array[1].ToString()); //距离A - BlueTransmitterDistance = Convert.ToDouble(array[2].ToString()); //距离B + //数据绑定 + var snr = Convert.ToDouble(array[0].ToString()); //信噪比 + Snr = snr.ToString("0.0") + ":1"; + RedTransmitterDistance = Convert.ToDouble(array[1].ToString()); //距离A + BlueTransmitterDistance = Convert.ToDouble(array[2].ToString()); //距离B - var maxFreLowOut = Convert.ToInt32(array[6].ToString()); //低频 - var maxFreHighOut = Convert.ToInt32(array[7].ToString()); //高频 + var maxFreLowOut = Convert.ToInt32(array[6].ToString()); //低频 + var maxFreHighOut = Convert.ToInt32(array[7].ToString()); //高频 - FilterValue = maxFreLowOut + " ~ " + maxFreHighOut + "Hz"; + FilterValue = maxFreLowOut + " ~ " + maxFreHighOut + "Hz"; - Messenger.Default.Send(array, MessengerToken.RenderOscillogram); + Messenger.Default.Send(array, MessengerToken.RenderOscillogram); + } + else + { + Debug.WriteLine("HomePageProViewModel => CorrelatorDataModel数据未收集完整"); + } } + // private MWArray[] CalculateData(CorrelatorDataModel dataModel) + // { + // if (dataModel.LeftDeviceDataArray.Any() && dataModel.RightDeviceDataArray.Any()) + // { + // Debug.WriteLine("HomePageProViewModel => 开始计算"); + // var array = _correlator.locating(11, + // (MWNumericArray)dataModel.LeftDeviceDataArray, (MWNumericArray)dataModel.RightDeviceDataArray, + // Constant.SamplingRate, + // 150, 1130, + // 0, 0, + // 0, 0, + // "铸铁", + // 300, 300, + // 1, -1, + // -1, -1, + // 10, 300); + // Debug.WriteLine("HomePageProViewModel => 计算结束"); + // return array; + // } + // + // return null; + // } + /// /// 各种定时器 ///