Пример #1
0
        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);
        }
Пример #2
0
        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());
        }
Пример #3
0
        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());
        }
Пример #4
0
        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
            }
        }
Пример #5
0
        /// <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);
            }
        }
Пример #6
0
 public new string ToString()
 {
     return($"{AlarmType.ToString().PadRight(15)} {Node?.Name.PadRight(15) ?? Network?.Name.PadRight(20) ?? ""} {Opened} {Message}");
 }