Example #1
0
        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;
            }
        }