protected void ShowDiagButton_Click(object sender, EventArgs e) { if (Session["SelectedData"] == null) { ViewState["ErrorMsg"] = Language.Selected["Alert_SelData"]; //Response.Write("<script>$(function(){$('#ErrorMsg p').innerText='" + Language.Selected["Alert_SelData"] + "';$('#ErrorMsg').show();})</script>"); //Response.Write("<script>alert(" + Language.Selected["Alert_SelData"] + "')</script>"); return; } if (Session["SelectedAbs"] == null) { ViewState["ErrorMsg"] = Language.Selected["Alert_SelAbs"]; //Response.Write("<script>alert(" + Language.Selected["Alert_SelAbs"] + "')</script>"); return; } if (Session["SelectedRel"] == null) { ViewState["ErrorMsg"] = Language.Selected["Alert_SelRel"]; //Response.Write("<script>alert(" + Language.Selected["Alert_SelRel"] + "')</script>"); return; } ContentData data = (ContentData)Session["SelectedData"]; ContentData abs = (ContentData)Session["SelectedAbs"]; ContentData rel = (ContentData)Session["SelectedRel"]; if (data.ReadDate <= abs.ReadDate) { ViewState["ErrorMsg"] = Language.Selected["Alert_TimeErr1"]; //Response.Write("<script>alert('" + Language.Selected["Alert_TimeErr1"] + "')</script>"); return; } if (data.ReadDate <= rel.ReadDate) { ViewState["ErrorMsg"] = Language.Selected["Alert_TimeErr2"]; //Response.Write("<script>alert('" + Language.Selected["Alert_TimeErr2"] + "')</script>"); return; } ViewState["ErrorMsg"] = ""; switch (ShowDiagDrop.SelectedValue) { case "大卫三角形法": Session["DiagType"] = "DavidDiag"; break; case "立体图示法": Session["DiagType"] = "ThreeShow"; break; } AnlyInformation anlyInfo = null; List <AlarmMsgAll> alarmList = null; MongoHelper <Config> _cfg = new MongoHelper <Config>(); Expression <Func <Config, bool> > ex = p => p.DevID == devId && p.Alarm != null; Expression <Func <Config, bool> > ex1 = p => p.DevID == devId && p.AnalyPara.EnviSet != null; Config cfg = _cfg.FindOneBy(ex); if (cfg == null || cfg.Alarm == null || cfg.AnalyPara.EnviSet == null) { //。。。。。。。。。。。。。从下位机取。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 } AlarmAll hold = cfg.Alarm; EnvironmentSetting setting = cfg.AnalyPara.EnviSet; if (hold == null || setting == null) { //从下位机取。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 } //告警信息 alarmList = Diagnose.GasAlarm(data, abs, rel, setting, hold); ////故障分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 anlyInfo = Diagnose.GasDiagnose(devId, data, abs, rel, setting, hold.DiagSet); DiagnoseResult dr = Diagnose.WrapperAnlyResult(devId, 2, anlyInfo); TB_Result.Text = ""; //TB_Result.Text += "\r\n------告警信息(" + alarmList.Length.ToString() + ")条------\r\n";//ljb:alarmList为空的时候不知道有没有Length这个属性(这个地方一直没法运行下去,估计这就是问题) TB_Result.Text += "\r\n------告警信息------\r\n";//ljb //有告警信息 if (alarmList != null && alarmList.Count() != 0) { TB_Result.Text += "\r\n------告警信息(" + alarmList.Count().ToString() + ")条------\r\n";//ljb for (int i = 0; i < alarmList.Count(); i++) { string msg = ""; msg += Language.Selected["Alarm_Device"] + devId + "\r\n"; msg += Language.Selected["Alarm_Gas"] + alarmList[i].GasName + "\r\n"; string msgType = ""; switch (alarmList[i].Type) { case 0: msgType = Language.Selected["Alarm_Type_Content"]; break; case 1: msgType = Language.Selected["Alarm_Type_Abs"]; break; case 2: msgType = Language.Selected["Alarm_Type_Rel"]; break; default: msgType = Language.Selected["Alarm_Type_Content"]; break; } msg += Language.Selected["Alarm_Type"] + msgType + "\r\n"; msg += Language.Selected["Alarm_Value"] + alarmList[i].AlarmValue.ToString("F1") + ", " + Language.Selected["Alarm_RealValue"] + alarmList[i].RealValue.ToString("F3") + "\r\n"; msg += Language.Selected["Alarm_Level"] + WarringLevel[alarmList[i].Level] + "\r\n"; TB_Result.Text += msg + "\r\n"; } } else { TB_Result.Text += "\r\n------无信息------\r\n"; } //有故障信息 TB_Result.Text += "\r\n------故障诊断信息------\r\n"; if (anlyInfo != null) { //最终 诊断结果 TB_Result.Text += "\r\n" + Language.Selected["Diag_Result"] + "\r\n" + dr.Result + "\r\n"; //其它诊断中间数据,三比值、大卫三角形、立体图示 TB_Result.Text += "\r\n" + Language.Selected["ThreeRatio_Diag_Result"] + "\r\n" + dr.ThreeRatioCode + "(" + dr.ThreeRatioResult + ")\r\n"; TB_Result.Text += "\r\n" + Language.Selected["David_Result"] + "\r\n" + dr.DevidCode + "(" + dr.DevidResult + ")\r\n"; TB_Result.Text += "\r\n" + Language.Selected["Cube_Diag_Result"] + "\r\n" + dr.CubeCode + "\r\n"; // LB_Ratio.Text = dr.ThreeRatioCode; //大卫三角形数据 //"C2H2:10%, C2H4:20%, CH4:30%" string sr = dr.DevidCode; string[] str = sr.Split(','); for (int i = 0; i < str.Length; i++) { string[] temp = str[i].Split(':'); if (temp[0] == "C2H2" || temp[0] == "C2H4" || temp[0] == "CH4") { Session[temp[0]] = temp[1]; } } if (Session["C2H2"] != null & Session["C2H4"] != null && Session["CH4"] != null) { get_temp_Map(); Timer1.Enabled = true; } else { Response.Write("<script>alert(" + "session出错,请重新诊断!" + "')</script>"); } //dr = dr.Replace('%', ' '); //dr = dr.Replace(',', '&'); //dr = dr.Replace(":", "="); //dr = dr.Replace(" ", ""); //string str = "javascript:showPopWin('" + Language.Selected["Title_Sample"] + "', 'DevidShow.aspx?"; //str += dr; //str += "', 620, 330, null, true, true);return false;"; //BT_Devid.OnClientClick = str; //BT_Devid.Enabled = true; //string str1 = "javascript:showPopWin('" + Language.Selected["CubeShow"] + "', 'ThreeShow.aspx?"; //str1 += dr; //str1 += "', 900, 440, null, true, true);return false;"; //BT_Cube.OnClientClick = str1; //BT_Cube.Enabled = true; ////立体图 命令参数 ////"C2H2/C2H4=1, C2H4/C2H6=1, CH4/H2=1" //#if false // //dr = anlyInfo._cubecode; // //string cmd = anlyInfo.Value.ratio.CH4_H2.ToString() + ","; // //cmd += anlyInfo.Value.ratio.C2H2_C2H4.ToString() + ","; // //cmd += anlyInfo.Value.ratio.C2H4_C2H6.ToString(); // //ViewState["CMD"] = cmd; //#else // ViewState["CMD"] = null;//这是谁改的?它和else里面的一样,那ViewState["CMD"]永远为null了,上面这段为什么注释掉?--ljb //#endif } else { TB_Result.Text += "\r\n------无信息------\r\n"; //ljb //BT_Devid.Enabled = true; //BT_Devid.Enabled = false; //BT_Cube.Enabled = false; ViewState["CMD"] = null; } }