public static void ScanTag(string tagId) { Tag tag = new Tag(); while (true) { lock (locker) { tag.Info = TagConfig[tagId]; tag.Value = TagCurrentValues[tagId]; } double currentValue = tag.Info.GetValue(); if (currentValue != tag.Value) { lock (locker) { TagCurrentValues[tag.Info.TagId] = currentValue; } if (tag.Info.OnScan) { TrendingService.TrendingService.FireEvent(tag.Info.TagId, currentValue); } // samo ako je analogni if (tag.Info is AITag) { AITag ai = (AITag)tag.Info; // aktiviraj alarm i upisi u bazu if (AlarmConfing.ContainsKey(ai.TagId)) { if (AlarmConfing[ai.TagId].Time > DateTime.Now) { if (!AlarmConfing[ai.TagId].Activated) { AlarmConfing[ai.TagId].Activated = true; alarmdb.Alarms.Add(AlarmConfing[ai.TagId]); alarmdb.SaveChanges(); AlarmDisplayService.AlarmDisplayService.Notify(ai.TagId, AlarmConfing[ai.TagId].Priority, AlarmConfing[ai.TagId].Time); UpdateAlarmConfig(); } } } } } Thread.Sleep(tag.Info.ScanTime); } }