private void FillDieselResult(GetCYDynoLoadGlideCheckRealTimeDataAckParams ackParams) { _dtResult.Rows[0]["PLHP"] = ackParams.PLHP90_30kw; _dtResult.Rows[0]["CCDT"] = ackParams.CCDT90_30kw; _dtResult.Rows[0]["ACDT"] = ackParams.ACDT90_30kw; _dtResult.Rows[0]["滑行误差(%)"] = ackParams.Error90_30kw; _dtResult.Rows[1]["PLHP"] = ackParams.PLHP80_30kw; _dtResult.Rows[1]["CCDT"] = ackParams.CCDT80_30kw; _dtResult.Rows[1]["ACDT"] = ackParams.ACDT80_30kw; _dtResult.Rows[1]["滑行误差(%)"] = ackParams.Error80_30kw; _dtResult.Rows[2]["PLHP"] = ackParams.PLHP70_30kw; _dtResult.Rows[2]["CCDT"] = ackParams.CCDT70_30kw; _dtResult.Rows[2]["ACDT"] = ackParams.ACDT70_30kw; _dtResult.Rows[2]["滑行误差(%)"] = ackParams.Error70_30kw; _dtResult.Rows[3]["PLHP"] = ackParams.PLHP60_30kw; _dtResult.Rows[3]["CCDT"] = ackParams.CCDT60_30kw; _dtResult.Rows[3]["ACDT"] = ackParams.ACDT60_30kw; _dtResult.Rows[3]["滑行误差(%)"] = ackParams.Error60_30kw; _dtResult.Rows[4]["PLHP"] = ackParams.PLHP50_30kw; _dtResult.Rows[4]["CCDT"] = ackParams.CCDT50_30kw; _dtResult.Rows[4]["ACDT"] = ackParams.ACDT50_30kw; _dtResult.Rows[4]["滑行误差(%)"] = ackParams.Error50_30kw; _dtResult.Rows[5]["PLHP"] = ackParams.PLHP40_30kw; _dtResult.Rows[5]["CCDT"] = ackParams.CCDT40_30kw; _dtResult.Rows[5]["ACDT"] = ackParams.ACDT40_30kw; _dtResult.Rows[5]["滑行误差(%)"] = ackParams.Error40_30kw; _dtResult.Rows[6]["PLHP"] = ackParams.PLHP30_30kw; _dtResult.Rows[6]["CCDT"] = ackParams.CCDT30_30kw; _dtResult.Rows[6]["ACDT"] = ackParams.ACDT30_30kw; _dtResult.Rows[6]["滑行误差(%)"] = ackParams.Error30_30kw; _dtResult.Rows[7]["PLHP"] = ackParams.PLHP20_30kw; _dtResult.Rows[7]["CCDT"] = ackParams.CCDT20_30kw; _dtResult.Rows[7]["ACDT"] = ackParams.ACDT20_30kw; _dtResult.Rows[7]["滑行误差(%)"] = ackParams.Error20_30kw; _dtResult.Rows[8]["PLHP"] = ackParams.PLHP90_20kw; _dtResult.Rows[8]["CCDT"] = ackParams.CCDT90_20kw; _dtResult.Rows[8]["ACDT"] = ackParams.ACDT90_20kw; _dtResult.Rows[8]["滑行误差(%)"] = ackParams.Error90_20kw; _dtResult.Rows[9]["PLHP"] = ackParams.PLHP80_20kw; _dtResult.Rows[9]["CCDT"] = ackParams.CCDT80_20kw; _dtResult.Rows[9]["ACDT"] = ackParams.ACDT80_20kw; _dtResult.Rows[9]["滑行误差(%)"] = ackParams.Error80_20kw; _dtResult.Rows[10]["PLHP"] = ackParams.PLHP70_20kw; _dtResult.Rows[10]["CCDT"] = ackParams.CCDT70_20kw; _dtResult.Rows[10]["ACDT"] = ackParams.ACDT70_20kw; _dtResult.Rows[10]["滑行误差(%)"] = ackParams.Error70_20kw; _dtResult.Rows[11]["PLHP"] = ackParams.PLHP60_20kw; _dtResult.Rows[11]["CCDT"] = ackParams.CCDT60_20kw; _dtResult.Rows[11]["ACDT"] = ackParams.ACDT60_20kw; _dtResult.Rows[11]["滑行误差(%)"] = ackParams.Error60_20kw; _dtResult.Rows[12]["PLHP"] = ackParams.PLHP50_20kw; _dtResult.Rows[12]["CCDT"] = ackParams.CCDT50_20kw; _dtResult.Rows[12]["ACDT"] = ackParams.ACDT50_20kw; _dtResult.Rows[12]["滑行误差(%)"] = ackParams.Error50_20kw; _dtResult.Rows[13]["PLHP"] = ackParams.PLHP40_20kw; _dtResult.Rows[13]["CCDT"] = ackParams.CCDT40_20kw; _dtResult.Rows[13]["ACDT"] = ackParams.ACDT40_20kw; _dtResult.Rows[13]["滑行误差(%)"] = ackParams.Error40_20kw; _dtResult.Rows[14]["PLHP"] = ackParams.PLHP30_20kw; _dtResult.Rows[14]["CCDT"] = ackParams.CCDT30_20kw; _dtResult.Rows[14]["ACDT"] = ackParams.ACDT30_20kw; _dtResult.Rows[14]["滑行误差(%)"] = ackParams.Error30_20kw; _dtResult.Rows[15]["PLHP"] = ackParams.PLHP20_20kw; _dtResult.Rows[15]["CCDT"] = ackParams.CCDT20_20kw; _dtResult.Rows[15]["ACDT"] = ackParams.ACDT20_20kw; _dtResult.Rows[15]["滑行误差(%)"] = ackParams.Error20_20kw; _dtResult.Rows[16]["PLHP"] = ackParams.PLHP90_10kw; _dtResult.Rows[16]["CCDT"] = ackParams.CCDT90_10kw; _dtResult.Rows[16]["ACDT"] = ackParams.ACDT90_10kw; _dtResult.Rows[16]["滑行误差(%)"] = ackParams.Error90_10kw; _dtResult.Rows[17]["PLHP"] = ackParams.PLHP80_10kw; _dtResult.Rows[17]["CCDT"] = ackParams.CCDT80_10kw; _dtResult.Rows[17]["ACDT"] = ackParams.ACDT80_10kw; _dtResult.Rows[17]["滑行误差(%)"] = ackParams.Error80_10kw; _dtResult.Rows[18]["PLHP"] = ackParams.PLHP70_10kw; _dtResult.Rows[18]["CCDT"] = ackParams.CCDT70_10kw; _dtResult.Rows[18]["ACDT"] = ackParams.ACDT70_10kw; _dtResult.Rows[18]["滑行误差(%)"] = ackParams.Error70_10kw; _dtResult.Rows[19]["PLHP"] = ackParams.PLHP60_10kw; _dtResult.Rows[19]["CCDT"] = ackParams.CCDT60_10kw; _dtResult.Rows[19]["ACDT"] = ackParams.ACDT60_10kw; _dtResult.Rows[19]["滑行误差(%)"] = ackParams.Error60_10kw; _dtResult.Rows[20]["PLHP"] = ackParams.PLHP50_10kw; _dtResult.Rows[20]["CCDT"] = ackParams.CCDT50_10kw; _dtResult.Rows[20]["ACDT"] = ackParams.ACDT50_10kw; _dtResult.Rows[20]["滑行误差(%)"] = ackParams.Error50_10kw; _dtResult.Rows[21]["PLHP"] = ackParams.PLHP40_10kw; _dtResult.Rows[21]["CCDT"] = ackParams.CCDT40_10kw; _dtResult.Rows[21]["ACDT"] = ackParams.ACDT40_10kw; _dtResult.Rows[21]["滑行误差(%)"] = ackParams.Error40_10kw; _dtResult.Rows[22]["PLHP"] = ackParams.PLHP30_10kw; _dtResult.Rows[22]["CCDT"] = ackParams.CCDT30_10kw; _dtResult.Rows[22]["ACDT"] = ackParams.ACDT30_10kw; _dtResult.Rows[22]["滑行误差(%)"] = ackParams.Error30_10kw; _dtResult.Rows[23]["PLHP"] = ackParams.PLHP20_10kw; _dtResult.Rows[23]["CCDT"] = ackParams.CCDT20_10kw; _dtResult.Rows[23]["ACDT"] = ackParams.ACDT20_10kw; _dtResult.Rows[23]["滑行误差(%)"] = ackParams.Error20_10kw; }
private void OnTimer(object source, System.Timers.ElapsedEventArgs e) { if (_bDiesel) { double IHP = 0; switch (_dieselIHP) { case DieselIHP.IHP30kW: IHP = 30; break; case DieselIHP.IHP20kW: IHP = 20; break; case DieselIHP.IHP10kW: IHP = 10; break; } GetCYDynoLoadGlideCheckRealTimeDataAckParams ackParams = new GetCYDynoLoadGlideCheckRealTimeDataAckParams(); if (_dynoCmd.GetCYDynoLoadGlideCheckRealTimeDataCmd(IHP, ref ackParams, out string errMsg) && ackParams != null) { if (_timer != null && _timer.Enabled) { try { DataRow dr = _dtRTData.NewRow(); TimeSpan interval = DateTime.Now - _startTime; if (interval.TotalSeconds < 0.001) { interval = TimeSpan.Zero; } dr["TimeSN"] = interval.TotalSeconds.ToString("F1"); dr["Power"] = ackParams.power; dr["Speed"] = ackParams.speed; dr["TorqueF"] = ackParams.torquef; _dtRTData.Rows.Add(dr); FillDieselResult(ackParams); if (ackParams.step == 7) { _dieselIHP = DieselIHP.IHP20kW; } else if (ackParams.step == 15) { _dieselIHP = DieselIHP.IHP10kW; } Invoke((EventHandler) delegate { lblPower.Text = ackParams.power.ToString("F"); lblSpeed.Text = ackParams.speed.ToString("F"); lblTorqueF.Text = ackParams.torquef.ToString("F"); chart1.DataBind(); switch (_dieselIHP) { case DieselIHP.IHP30kW: txtBoxIHP.Text = "30"; break; case DieselIHP.IHP20kW: txtBoxIHP.Text = "20"; break; case DieselIHP.IHP10kW: txtBoxIHP.Text = "10"; break; } // 柴油无法仅用step来判断滑行检查是否已结束 if (ackParams.step >= 23 && ackParams.result != null && ackParams.result.Length > 0) { lblResult.Text = ackParams.result; if (ackParams.result.Contains("不")) { lblResult.BackColor = Color.Red; } _timer.Enabled = false; } }); } catch (ObjectDisposedException) { // 关闭窗口后仍有一定几率会进入主UI线程,此时访问界面元素会引发此异常,直接忽略即可 } } } } else { GetQYDynoLoadGlideCheckRealTimeDataAckParams ackParams = new GetQYDynoLoadGlideCheckRealTimeDataAckParams(); if (_dynoCmd.GetQYDynoLoadGlideCheckRealTimeDataCmd(ref ackParams, out string errMsg) && ackParams != null) { if (_timer != null && _timer.Enabled) { try { DataRow dr = _dtRTData.NewRow(); TimeSpan interval = DateTime.Now - _startTime; if (interval.TotalSeconds < 0.001) { interval = TimeSpan.Zero; } dr["TimeSN"] = interval.TotalSeconds.ToString("F1"); dr["Power"] = ackParams.power; dr["Speed"] = ackParams.speed; dr["TorqueF"] = ackParams.torquef; _dtRTData.Rows.Add(dr); _dtResult.Rows[0]["ACDT"] = ackParams.ACDT25_11kw; _dtResult.Rows[0]["滑行误差(%)"] = ackParams.Error25_11kw; _dtResult.Rows[1]["ACDT"] = ackParams.ACDT40_11kw; _dtResult.Rows[1]["滑行误差(%)"] = ackParams.Error40_11kw; Invoke((EventHandler) delegate { lblPower.Text = ackParams.power.ToString("F"); lblSpeed.Text = ackParams.speed.ToString("F"); lblTorqueF.Text = ackParams.torquef.ToString("F"); chart1.DataBind(); if (ackParams.result != null && ackParams.result.Length > 0) { lblResult.Text = ackParams.result; if (ackParams.result.Contains("不")) { lblResult.BackColor = Color.Red; } } }); // 汽油可以用step来判断滑行检查是否已结束 if (ackParams.step < 0) { _timer.Enabled = false; } } catch (ObjectDisposedException) { // 关闭窗口后仍有一定几率会进入主UI线程,此时访问界面元素会引发此异常,直接忽略即可 } } } } }