private void EngineClient_NewAlarmsFired(List <DbModel.Location.Alarm.LocationAlarm> obj) { var alarms = obj.ToTModel().ToArray(); AlarmHub.SendLocationAlarms(alarms); AreaCanvas1.ShowLocationAlarms(alarms); }
// Use this for initialization void Start() { RegisterImporter(); if (alarmHub == null) { alarmHub = new AlarmHub(); } if (echoHub == null) { echoHub = new EchoHubT(); } URI = new Uri(string.Format("http://{0}:{1}/realtime", Ip, Port)); // Create the SignalR connection, passing all the three hubs to it signalRConnection = new Connection(URI, alarmHub, echoHub); signalRConnection.JsonEncoder = new LitJsonEncoder(); signalRConnection.OnStateChanged += signalRConnection_OnStateChanged; signalRConnection.OnError += signalRConnection_OnError; signalRConnection.OnNonHubMessage += signaleRConnection_OnNoHubMsg; signalRConnection.OnConnected += (connection) => { // Call the demo functions echoHub.Send("Start Connect..."); }; // Start opening the signalR connection signalRConnection.Open(); }
private void BtnSendDevAlarms_Click(object sender, RoutedEventArgs e) { if (BtnSendDevAlarms.Content.ToString() == "逐个发送告警") { BtnSendDevAlarms.Content = "停止发送告警"; int interval = TxtSendDevAlarmInterval.Text.ToInt(); int onceCount = TxtOnceSendCount.Text.ToInt(); var currentDevAlarms = DataGridDeviceAlarms.ItemsSource as List <DeviceAlarm>; sendDevAlarmsWorker = Worker.Run(() => { List <DeviceAlarm> sendAlarms = new List <DeviceAlarm>(); for (int i = 0; i < currentDevAlarms.Count; i++) { var devAlarm = currentDevAlarms[i]; sendAlarms.Add(devAlarm); if ((i + 1) % onceCount == 0) { Log.Info(LogTags.EventTest, string.Format("发送告警:{0}({1}/{2})", devAlarm, i + 1, currentDevAlarms.Count)); AlarmHub.SendDeviceAlarms(devAlarm); Thread.Sleep(interval); } } }, null, null, "", true); } else { BtnSendDevAlarms.Content = "逐个发送告警"; sendDevAlarmsWorker.CancelAsync(); } }
private async void InitAlarmHub() { alarmHub = new AlarmHub(SignalRServerURI); alarmHub.GetDeviceAlarms += AlarmHub_GetDeviceAlarms; alarmHub.GetLocationAlarms += AlarmHub_GetLocationAlarms; await alarmHub.Start(); }
private void BtnRemoveAlarm_Click(object sender, RoutedEventArgs e) { var service = new LocationService(); var alarms = service.GetLocationAlarms(2, false); AlarmHub.SendLocationAlarms(alarms.ToArray()); }
private void BtnSendDevSimulateAlarms_Click(object sender, RoutedEventArgs e) { if (BtnSendDevSimulateAlarms.Content.ToString() == "逐个发送告警") { BtnSendDevSimulateAlarms.Content = "逐个发送告警"; int interval = TxtSendDevAlarmInterval.Text.ToInt(); int onceCount = TxtOnceSendCount.Text.ToInt(); var devList = DeviceListBox1.DeviceList; sendSimulateDevAlarmsWorker = Worker.Run(() => { List <DeviceAlarm> sendAlarms = new List <DeviceAlarm>(); for (int i = 0; i < devList.Count; i++) { var dev = devList[i]; DeviceAlarm devAlarm = CreateDevAlarm(dev);//创建设备告警 sendAlarms.Add(devAlarm); if ((i + 1) % onceCount == 0) { Log.Info(LogTags.EventTest, string.Format("发送告警:{0}({1}/{2})", devAlarm, i + 1, devList.Count)); AlarmHub.SendDeviceAlarms(devAlarm); Thread.Sleep(interval); } } }, null, null, "", true); } else { BtnSendDevSimulateAlarms.Content = "逐个发送告警"; sendSimulateDevAlarmsWorker.CancelAsync(); } }
private void BtnPushAlarm_OnClick(object sender, RoutedEventArgs e) { //LocationCallbackService.NotifyServiceStop(); var service = new LocationService(); var alarms = service.GetLocationAlarms(2); AlarmHub.SendLocationAlarms(alarms.ToArray()); }
/// <summary> /// 批量删除告警 /// </summary> /// <param name="idList"></param> /// <returns></returns> public bool DeleteLocationAlarm(List <int> idList) { BLL.Bll bll = new BLL.Bll(false, true, true); BLL.Buffers.AuthorizationBuffer ab = BLL.Buffers.AuthorizationBuffer.Instance(bll); List <DbModel.Location.Alarm.LocationAlarm> reviseAlarms = ab.DeleteSpecifiedLocationAlarm(idList); if (reviseAlarms == null || reviseAlarms.Count == 0) { return(false); } else { //新增,服务端消警后,把消警信息发给客户端 var alarms = reviseAlarms.ToTModel().ToArray(); AlarmHub.SendLocationAlarms(alarms); return(true); } }
public override bool TickFunction() { try { //每天清除进入区域记录 DateTime now = DateTime.Now; if (now.Hour == 23) { bool result = DeleteRecord(); } //产生告警 List <LocationAlarm> newAlarmList = new List <LocationAlarm>(); newAlarmList.AddRange(GetAlarmList()); dbAlarmList = db.LocationAlarms.ToList(); foreach (var item in dbAlarmList) { newAlarmList.RemoveAll(i => i.PersonnelId == item.PersonnelId && i.AreaId == item.AreaId && i.AlarmType == item.AlarmType); } if (newAlarmList != null && newAlarmList.Count > 0) { //dbAlarmList.AddRange(newAlarmList); List <LocationAlarm> boolList = new List <LocationAlarm>(); foreach (LocationAlarm alarm in newAlarmList) { bool result = db.LocationAlarms.Add(alarm); if (result) { boolList.Add(alarm); } } //db.LocationAlarms.AddRange(newAlarmList); AlarmHub.SendLocationAlarms(boolList.ToTModel().ToArray()); } } catch (Exception ex) { Log.Error("SignInAlarmThread:" + ex.ToString()); } return(true); }
private void LoadDevList() { LocationService service = new LocationService(); var devlist = service.GetAllDevInfos(); DeviceListBox1.LoadData(devlist); DeviceListBox1.AddMenu("告警", (se, arg) => { //MessageBox.Show("告警" + DeviceListBox1.CurrentDev.Name); //todo:告警事件推送 var dev = DeviceListBox1.CurrentDev; DeviceAlarm alarm = new DeviceAlarm() { Id = dev.Id, Level = Abutment_DevAlarmLevel.低, Title = "告警" + dev.Id, Message = GetAlarmMsg(dev), CreateTime = new DateTime(2018, 8, 28, 9, 5, 34) }.SetDev(dev); AlarmHub.SendDeviceAlarms(alarm); }); DeviceListBox1.AddMenu("消警", (se, arg) => { //MessageBox.Show("消警" + DeviceListBox1.CurrentDev.Name); var dev = DeviceListBox1.CurrentDev; DeviceAlarm alarm = new DeviceAlarm() { Id = dev.Id, Level = Abutment_DevAlarmLevel.无, Title = "消警" + dev.Id, Message = "设备消警", CreateTime = new DateTime(2018, 8, 28, 9, 5, 34) }.SetDev(dev); AlarmHub.SendDeviceAlarms(alarm); }); }
private void LoadDevList() { LocationService service = new LocationService(); var devlist = service.GetAllDevInfos(); DeviceListBox1.LoadData(devlist.ToList()); DeviceListBox1.AddMenu("告警", (se, arg) => { //MessageBox.Show("告警" + DeviceListBox1.CurrentDev.Name); //todo:告警事件推送 //var dev = DeviceListBox1.CurrentDev; //DeviceAlarm alarm = CreateDevAlarm(dev); //AlarmHub.SendDeviceAlarms(alarm); var dev = DeviceListBox1.CurrentDev; DeviceAlarm alarm = CreateDevAlarm(dev); Bll bll = Bll.NewBllNoRelation(); var hisItem = RemoveToHistory(alarm); bll.DevAlarmHistorys.Add(hisItem); AlarmHub.SendDeviceAlarms(alarm); }); DeviceListBox1.AddMenu("消警", (se, arg) => { //MessageBox.Show("消警" + DeviceListBox1.CurrentDev.Name); var dev = DeviceListBox1.CurrentDev; DeviceAlarm alarm = new DeviceAlarm() { Id = dev.Id, Level = Abutment_DevAlarmLevel.无, Title = "消警" + dev.Id, Message = "设备消警", CreateTime = new DateTime(2018, 8, 28, 9, 5, 34) }.SetDev(dev); AlarmHub.SendDeviceAlarms(alarm); }); }
private void MenuSendDeviceAlarm_Click(object sender, RoutedEventArgs e) { var alarm = DataGridDeviceAlarms.SelectedItem as DeviceAlarm; AlarmHub.SendDeviceAlarms(alarm); }
private void Mh_DevAlarmReceived(DbModel.Location.Alarm.DevAlarm obj) { AlarmHub.SendDeviceAlarms(obj.ToTModel()); }
private void EngineClient_NewAlarmsFired(List <DbModel.Location.Alarm.LocationAlarm> obj) { AlarmHub.SendLocationAlarms(obj.ToTModel().ToArray()); }
private void EngineClient_NewAlarmsFired(List <DbModel.Location.Alarm.LocationAlarm> obj) { Log.Info("LocationAlarm", "AlarmHub.SendLocationAlarms:" + obj.Count); AlarmHub.SendLocationAlarms(obj.ToTModel().ToArray()); }
private void SendAlarm() { try { //var count1 = bll.Archors.GetCount(); UDPArchorList list0 = GetOfflineList(); List <DevAlarm> alarms = GenerateNewAlarm(list0); using (Bll bll = Bll.NewBllNoRelation()) { if (currentAlarms == null) { var realAlarms = bll.DevAlarms.FindAll(i => i.Src == Abutment_DevAlarmSrc.人员定位);//拿到数据库中已经有的告警数据 currentAlarms = new DbUpdateSet <DevAlarm>(realAlarms); } var set = currentAlarms; set.Update(alarms);//更新告警 bll.DevAlarms.AddRange(set.AddList); bll.DevAlarms.EditRange(set.EditList); List <DevAlarmHistory> newHist = new List <DevAlarmHistory>(); foreach (var item in set.DeleteList) { var hisItem = item.RemoveToHistory(); newHist.Add(hisItem); var clone = item.Clone(); clone.Msg = clone.Msg.Replace("基站离线", "基站正常"); clone.Level = Abutment_DevAlarmLevel.无; set.SendList.Add(clone); set.CurrentList.Remove(item); } bll.DevAlarmHistorys.AddRange(newHist); bll.DevAlarms.RemoveList(set.DeleteList); if (set.IsChanged) { LocationService.RefreshDeviceAlarmBuffer(Name); } if (AppContext.AnchorScanSendMode == 1) { set.SendList.AddRange(set.CurrentList);//每次都发送当前的告警和恢复的告警 } var sendList = set.SendList; foreach (var item in sendList) { item.DictKey = item.Msg; if (devDict.ContainsKey(item.DevInfoId)) { var dev = devDict[item.DevInfoId]; item.DevInfo = dev; } else { Log.Error(Name, string.Format("未查到设备 devId:{0},code:{1}", item.DevInfoId, item.Code)); } } var alarmsM = sendList.ToTModel().ToArray(); //var count2 = bll.Archors.GetCount(); //if (count2 != count1) //{ // Log.Error(Name, count1 + "-" + count2); //} Log.Info(Name, string.Format("发送告警 当前离线数量:{0},新离线数量:{1},恢复数量:{2},发送数量:{3}", alarms.Count, set.AddList.Count, set.DeleteList.Count, alarmsM.Length)); AlarmHub.SendDeviceAlarms(alarmsM); } } catch (Exception ex) { Log.Error(Name, "Exception!!:" + ex); } }