Esempio n. 1
0
        private static void CloseAlarm(AlarmThreadManagerAlarm alarm, double value, int reason)
        {
            try
            {
                var dt2  = DateTime.Now;
                var dts2 = dt2.ToString(DtFormat);

                var rawVal   = value.ToString().Replace(',', '.');
                var alarmtab = context.Alarms.FirstOrDefault(u => u.Id == alarm.Id);


                //MyDB.sql_query_local("update alarms set ERes=" + reason + ", ETime='" + dts2 + "', EVal=" + rawVal + " WHERE Id=" + alarm.Id + ";");
                if (alarmtab != null)
                {
                    alarmtab.ERes  = reason;
                    alarmtab.ETime = dt2;
                    alarmtab.EVal  = (float)value;
                    context.SaveChanges();
                    alarm.ERes  = reason;
                    alarm.ETime = dt2;
                    alarm.EVal  = value;
                }
                logger.Logged("Info", "close alarm [" + alarm.TagId + "][" + reason + "] to alarmserver...", "AlarmThreadManager", "CloseAlarm");
            }
            catch (Exception ex)
            {
                logger.Logged("Error", "close alarm [" + alarm.TagId + "][" + reason + "] failed...", "AlarmThreadManager", "CloseAlarm");
            }
        }
Esempio n. 2
0
        private static void OpenAlarm(AlarmThreadManagerConfig alarmConfig, double value, int reason)
        {
            var dateTime       = DateTime.Now;
            var dateTimeString = dateTime.ToString(DtFormat);
            // Добавляем тревогу в базу.
            var rawVal = value.ToString().Replace(',', '.');

            var sysUser = context.Alarms.Create();

            sysUser.TagId = alarmConfig.TagId;
            sysUser.SRes  = reason;
            sysUser.STime = dateTime;
            sysUser.SVal  = (float)value;
            sysUser.ERes  = -10;
            logger.Logged("Info", "Add Alarm [tag:" + alarmConfig.Tag + ";sval:" + sysUser.SVal + ";  STime:" + dateTime + " ]...", "AlarmThreadManager", "LoadAlarmsLastStates");

            context.Alarms.Add(sysUser);
            // сохраняем
            context.SaveChanges();


            //MyDB.sql_query_local("insert into alarms (Tag, SRes, STime, SVal, ERes) values('" + alarmConfig.Tag + "'," + reason + ",'" + dateTimeString + "', " + rawVal + ", -10);");
            //var qres2 = MyDB.sql_query_local("select id from alarms where tag='" + alarmConfig.Tag + "' and STime='" + dateTimeString + "'");
            //int tid = -1;
            //if (qres2.count_rows > 0)
            //    tid = Convert.ToInt32(qres2.GetValue(0, 0));
            var z = (from ti in context.Alarms
                     where ti.TagId == alarmConfig.TagId //&& ti.STime == dateTime
                     orderby ti.STime descending
                     select ti.Id);

            // from al context.Alarms .Where(d => d.TagId == alarmConfig.TagId && d.STime == dateTime).ToList();
            var id     = z.ToList();// Создадим тревогу чтобы не дергать каждый раз базу.
            var result = new AlarmThreadManagerAlarm
            {
                Id    = id.First(),
                TagId = alarmConfig.TagId,
                SRes  = reason,
                STime = dateTime,
                SVal  = value,
                Qted  = null,
                ERes  = -10,
                ETime = DateTime.MinValue
            };

            _alarms.Add(result);
            logger.Logged("Info", "add alarm [" + alarmConfig.TagId + "][" + reason + "] to alarmserver...", "AlarmThreadManager", "OpenAlarm");
        }