public void SendAlarmMail(string recipient, AlarmType type)//Send alarm mailen med en tekst for hver alarm { string melding; switch (type) { case AlarmType.Temp: melding = "Du har en alarm på temperatur, sjekk systemet ASAP"; break; case AlarmType.Movement: melding = "Du har en alarm på bevegelse, sjekk systemet ASAP"; break; case AlarmType.Fire: melding = "Du har en alarm på brann, sjekk systemet ASAP"; break; case AlarmType.Batteri: melding = "Du har en alarm på batteri, sjekk systemet ASAP"; break; case AlarmType.Com: melding = "Du har en alarm på kommunikasjon, sjekk systemet ASAP"; break; default: melding = "Du har en alarm på ukjent, sjekk systemet eller kontakt leverandør"; break; } this.SendMail(recipient, (type.ToString() + " alarm"), melding); }
public static string GetDescriptionFromEnumValue(AlarmType alarm) { var type = typeof(AlarmType); var memInfo = type.GetMember(alarm.ToString()); var attributes = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false); var description = ((DescriptionAttribute)attributes[0]).Description; return(description.ToString()); }
public string WriteMsg() { UserData = ""; UserData += SerialNumber.ToString("X").PadLeft(4, '0'); UserData += SendTime.ToString("yyMMddHHmmss").PadLeft(12, '0'); UserData += AlarmType.ToString("X").PadLeft(2, '0'); UserData += AlarmValue.ToString("X").PadLeft(2, '0'); UserDataBytes = HexStringUtility.HexStringToByteArray(UserData); return(WriteMsgBase()); }
public void CreateDocument(bool openDoc)//Lager et PDF DOKUMENT med MigraDoc biblioteket { Document doc = new Document(); Section section = doc.AddSection(); Table table = section.AddTable(); table.Borders.Width = 0.25; table.Rows.LeftIndent = 0; Column columnA = table.AddColumn("3cm"); Column columnB = table.AddColumn("7cm"); Column columnC = table.AddColumn("3cm"); columnA.Format.Alignment = ParagraphAlignment.Center; columnB.Format.Alignment = ParagraphAlignment.Center; columnC.Format.Alignment = ParagraphAlignment.Center; Row row = table.AddRow(); row.Cells[0].AddParagraph("Alarmtype"); row.Cells[1].AddParagraph("Dato"); row.Cells[2].AddParagraph("Verdi"); for (int i = 0; i < dt.Rows.Count; i++)//en løkke som itererer igjennom alarm datatable og skriver alle aktive alarmer i et rutenett { row = table.AddRow(); for (int j = 0; j < dt.Columns.Count; j++) { if (j == 0) //Hvis det er første kolonne { AlarmType at = (AlarmType)Convert.ToInt32(dt.Rows[i][j]); //henter alarmtype med casting row.Cells[j].AddParagraph(at.ToString()); } else { row.Cells[j].AddParagraph(dt.Rows[i][j].ToString()); } } } PdfDocumentRenderer renderer = new PdfDocumentRenderer(false); renderer.Document = doc; renderer.RenderDocument(); filename = $"Alarmer{DateTime.Today.Day}_{DateTime.Today.TimeOfDay.Hours}.pdf";//Lager et filnavn renderer.PdfDocument.Save(filename); if (openDoc) { Process.Start(filename);//åpner dokumentet } }
/// <summary> /// 增加告警到数据库 /// </summary> /// <param name="lpszDbVarName"></param> /// <param name="lpszVal"></param> /// <param name="lpszdateTime"></param> /// <param name="errCode"></param> /// <param name="errTxt"></param> public static void DbAddAlarm(CommandVModel command, string lpszVal, DateTime lpszdateTime, AlarmType errCode, string errTxt, bool isSend) { DataProcessBLL bll = new DataProcessBLL(command.Ledger, Config.Uid); StringBuilder strContent = new StringBuilder(); DataTable dtSource = bll.GetMapInfo(command.LpszDbVarName); int ccc = dtSource.Rows.Count; if (ccc == 0) { FileLog.WriteLog("告警模块变量:" + command.LpszDbVarName + "不存在映射表中"); return; } if (ccc > 1) { FileLog.WriteLog("告警模块变量:" + command.LpszDbVarName + "在映射表中存在多个"); return; } int module_id = CommFunc.ConvertDBNullToInt32(dtSource.Rows[0]["Module_id"]); int co_id = CommFunc.ConvertDBNullToInt32(dtSource.Rows[0]["Co_id"]); int fun_id = CommFunc.ConvertDBNullToInt32(dtSource.Rows[0]["Fun_id"]); string moduleAddr = CommFunc.ConvertDBNullToString(dtSource.Rows[0]["ModuleAddr"]); string funType = CommFunc.ConvertDBNullToString(dtSource.Rows[0]["FunType"]); if (funType.Equals(V0Fun.LeakAlarm.ToString())) { if (lpszVal.Substring(0, 12).Contains("1")) { int cnt = 0; foreach (char c in lpszVal.Substring(0, 12).ToCharArray()) { string content = ""; ++cnt; if (c.ToString().Equals("1")) { if (cnt <= 8) { content = "漏电流" + cnt + "发生告警"; } else { content = "温度" + (cnt - 8) + "发生告警"; } } if (!string.IsNullOrEmpty(content)) { if (!string.IsNullOrEmpty(strContent.ToString())) { strContent.Append(";"); } strContent.Append(content); } } } } else { string content = ""; System.Reflection.FieldInfo info = typeof(V0Fun).GetField(funType); if (info != null) { var obj = info.GetCustomAttributes(typeof(DisplayAttribute), false); if (obj != null) { foreach (DisplayAttribute md in obj) { content = md.Name; } } } strContent.Append(content); } long log_id = bll.AddAlarm(co_id, module_id, moduleAddr, errCode.ToString(), fun_id, strContent.ToString(), lpszVal, lpszdateTime, (int)errCode, errTxt); if (isSend == true) {/*发送告警*/ SendHd(command.Ledger, log_id, errCode, HdType.AL_Sms, errTxt, module_id); SendHd(command.Ledger, log_id, errCode, HdType.AL_Email, errTxt, module_id); } }
public new string ToString() { return($"{AlarmType.ToString().PadRight(15)} {Node?.Name.PadRight(15) ?? Network?.Name.PadRight(20) ?? ""} {Opened} {Message}"); }