private void CbFilterCodition2_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (_archorList == null) { return; } int id = CbFilterCodition2.SelectedIndex; UDPArchorList list = new UDPArchorList(); foreach (var item in subArchorList) { if (id == 0)//全部 { list.Add(item); } else if (id == 1)//有值 { if (!string.IsNullOrEmpty(item.Value)) { list.Add(item); } } else if (id == 2)//无值 { if (string.IsNullOrEmpty(item.Value)) { list.Add(item); } } } DataGrid3.ItemsSource = list; LbCount.Content = string.Format("{0}/{1}", list.GetConnectedCount(), list.Count); }
public UDPArchorList GetOfflineList() { UDPArchorList list0 = new UDPArchorList(); var allList = archorManager.GetResultArchorList(); //var existList = archorManager.GetMaxArchorList();//扫描到的当前的全部数量 var existList = allList.FindAll(i => i.Id != null && i.Id != ""); list0.AddRange(allList); //foreach (var item in existList) int k = 0; for (int j = 0; j < existList.Count; j++) { var item = existList[j]; var existItem = allList.Find(i => i.Client == item.Client); if (existItem != null) { //k++; //if (scanCount % 2 ==0 && k < 5) //{ //} //else { list0.Remove(existItem); } } } return(list0); }
public CommandResultGroup AddArchor(System.Net.IPEndPoint iep, byte[] data) { lock (resultList.Groups) { if (archorList == null) { archorList = new UDPArchorList(); //archorList.DataUpdated += (archor) => //{ //}; //archorList.DataAdded += (archor) => //{ // //if (ArchorListChanged != null) // //{ // // ArchorListChanged(archorList); // //} //}; } CommandResultGroup group = resultList.Add(iep, data); archorList = OnDataReceive(group); return(group); } }
internal void LoadList(ArchorDevList archors) { this.archors = archors; resultList = new CommandResultManager(); if (archors.ArchorList != null) { foreach (var item in archors.ArchorList) { var group = resultList.Add(item); //group.Archor.Ip = item.ArchorIp; group.Archor.Area = item.InstallArea; } } UDPArchorList list = new UDPArchorList(); foreach (var item in resultList.Groups) { list.Add(item.Archor); item.Archor.Num = list.Count; } archorList = list; if (ArchorListChanged != null) { ArchorListChanged(list, null); } }
private void PingEx_ProgressChanged(int arg1, PingResult arg2) { AddLog(arg2.Line); if (arg2.Type == 1) { var group = resultList.GetByIp(arg2.Ip); if (group == null) { group = resultList.Add(arg2.Ip + ":Ping"); group.Archor.Ping = arg2.GetResult(); } else { group.Archor.Ping = arg2.GetResult(); } //AddLog() archorList = OnDataReceive(group); } else { if (PercentChanged != null) { PercentChanged(arg1); } } }
public void ScanArchors(ScanArg arg, UDPArchorList list) { if (arg == null) { return; } this.arg = arg; var ips = arg.ipsText.Split(';'); archorPort = arg.port.ToInt(); if (resultList == null) { resultList = new CommandResultManager(); } StartTime(); List <string> localIps = GetLocalIps(ips); if (arg.OneIPS) { List <string> allIps = new List <string>(); foreach (var ip in localIps) { var ipList = IpHelper.GetIPS(ip); allIps.AddRange(ipList); } ScanArchors(arg.cmds, allIps.ToArray()); } else if (arg.ScanList) { List <string> allIps = new List <string>(); if (list != null) { foreach (var archor in list) { allIps.Add(archor.GetIp()); } } else if (archors != null) { foreach (var archor in archors.ArchorList) { allIps.Add(archor.ArchorIp); } } else if (archorList != null) { foreach (var archor in archorList) { allIps.Add(archor.GetClientIP()); } } ScanArchors(arg.cmds, allIps.ToArray()); } else { ScanArchors(arg.cmds, localIps.ToArray()); } }
public UDPArchorList GetMaxArchorList() { UDPArchorList list = new UDPArchorList(); foreach (var item in progressList) { list.Add(item.Value); } return(list); }
public void SendCmd(string cmd, int port, UDPArchorList list) { archorPort = port; ThreadTool.Start(() => { foreach (var archor in list) { SendCmd(cmd, archor); Thread.Sleep(100); } }); }
internal void LoadArchorList(string path) { archorList = XmlSerializeHelper.LoadFromFile <UDPArchorList>(path); resultList = new CommandResultManager(); foreach (var item in archorList) { var group = resultList.Add(item); } OnArchorListChanged(archorList, null); }
public UDPArchorList GetResultArchorList() { UDPArchorList list = new UDPArchorList(); foreach (var item in resultList.Groups) { list.Add(item.Archor); item.Archor.Num = list.Count; } return(list); }
private UDPArchorList OnDataReceive(CommandResultGroup group) { UDPArchorList list = GetResultArchorList(); //if (ArchorUpdated != null) //{ // ArchorUpdated(group.Archor); //} OnArchorListChanged(list, group.Archor); return(list); }
private List <DevAlarm> GenerateNewAlarm(UDPArchorList list1) { List <DevAlarm> alarms = new List <DevAlarm>(); foreach (var item in list1) { DevAlarm alarm = CreateDevAlarm(item); alarms.Add(alarm); } return(alarms); }
public UDPArchorList AddArchor(System.Net.IPEndPoint iep, byte[] data) { resultList.Add(iep, data); archorList = new UDPArchorList(); foreach (var item in resultList.Groups) { archorList.Add(item.Archor); item.Archor.Num = archorList.Count; } if (ArchorListChanged != null) { ArchorListChanged(); } return(archorList); }
private void Udp_DGramRecieved1(object sender, BUDPGram dgram) { if (resultList == null) { resultList = new CommandResultManager(); } var group = resultList.Add(dgram.iep, dgram.data); group.Archor.Value = ByteHelper.byteToHexStr(dgram.data); valueList.Add(dgram.iep, dgram.data); AddLog(string.Format("收到 :: {0}", group.ToString())); archorList = OnDataReceive(group); }
private void BtnNoDbInfo_Click(object sender, RoutedEventArgs e) { if (_archorList == null) { return; } int id = CbFilterCodition2.SelectedIndex; UDPArchorList list = new UDPArchorList(); foreach (var item in _archorList) { if (string.IsNullOrEmpty(item.DbInfo) && !string.IsNullOrEmpty(item.IsConnected)) { list.Add(item); } } DataGrid3.ItemsSource = list; LbCount.Content = string.Format("{0}/{1}", list.GetConnectedCount(), list.Count); }
private UDPArchorList OnDataReceive(CommandResultGroup group) { UDPArchorList list = new UDPArchorList(); foreach (var item in resultList.Groups) { list.Add(item.Archor); item.Archor.Num = list.Count; } //if (ArchorUpdated != null) //{ // ArchorUpdated(group.Archor); //} if (ArchorListChanged != null) { ArchorListChanged(list, group.Archor); } return(list); }
private void CbAreas_SelectionChanged(object sender, SelectionChangedEventArgs e) { var area = CbAreas.SelectedItem as string; string[] parts = area.Split(' '); subArchorList = new UDPArchorList(); foreach (var item in _archorList) { if (area == "全部") { subArchorList.Add(item); } else if (item.RealArea == area) { subArchorList.Add(item); } } DataGrid3.ItemsSource = subArchorList; LbCount.Content = string.Format("{0}/{1}", subArchorList.GetConnectedCount(), subArchorList.Count); }
private void OnArchorListChanged(UDPArchorList a, UDPArchor item) { if (item != null && item.Id != null) { //if(!progressList.Contains(item)) // progressList.Add(item); if (!progressList.ContainsKey(item.Id)) { progressList.Add(item.Id, item); //Log.Info(Name, string.Format("maxCount:{0}", progressList.Count)); } count++; //Log.Info(Name, "ArchorListChanged:" + count); } if (ArchorListChanged != null) { ArchorListChanged(a, item); } }
private void InitArchorManager() { if (archorManager == null) { DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromMilliseconds(100); timer.Tick += UpdateGridTimer_Tick; timer.Start(); updateGridTimer = timer; archorManager = new ArchorManager(); archorManager.ArchorListChanged += (list, item) => { UDPArchorList = list; //if (item != null) //{ // var id = list.IndexOf(item); // SetArchorList(archorManager, list, item, id); //} //else //{ // SetArchorList(archorManager, list); //} if (item != null) { progressList.Add(item); count++; } IsDirty = true; }; archorManager.LogChanged += ArchorManager_LogChanged; archorManager.PercentChanged += (p) => { ProgressBarEx1.Value = p; //if (p == 100) //{ // SetArchorList(archorManager, UDPArchorList); //} if (p == 100) { ThreadPool.QueueUserWorkItem(a => { Thread.Sleep(3000); //SaveResult(); SetArchorList(archorManager, UDPArchorList); archorManager.SaveArchorListResult(); //scanCount++; //if (scanCount > 1)//第一次启动扫描结果可能是不准的 //{ // Thread.Sleep(2000); // SendAlarm(); //} //IsBusySendAlarm = false; }); } }; //archorManager.NewArchorAdded += AddArchor; DataGrid3.archorManager = archorManager; archorManager.arg = GetScanArg(); } }
private void SetArchorList(ArchorManager archorManager, UDPArchorList list, UDPArchor item1 = null, int id = -1) { this.Dispatcher.Invoke(() => { if (archorManager == null) { TbConsole.Text = ""; DataGrid3.ItemsSource = null; LbCount.Content = ""; LbStatistics.Content = ""; } else { //IsDirty = true; LbTime.Content = archorManager.GetTimeSpan(); TbConsole.Text = archorManager.Log; if (DbArchorListDict != null) { //list.ClearInfo(); foreach (var item in list) { item.DbInfo = ""; item.RealArea = ""; var clientIP = item.GetClientIP(); //var ar = DbArchorList.Find(i => i.Ip == clientIP); if (DbArchorListDict.ContainsKey(clientIP)) { var ar = DbArchorListDict[clientIP]; if (ar != null) { item.RealArea = ar.Parent.Name; if (item.GetClientIP() != ar.Ip) { item.DbInfo = "IP:" + ar.Ip; } else { string code = ar.Code.Trim(); if (!string.IsNullOrEmpty(code)) { item.DbInfo = "有:" + code; } else { item.DbInfo = "有:" + ar.Ip; } } } } } } if (id > 0) { var item2 = list[id]; if (item2 != item1) { } int id2 = list.IndexOf(item1); } DataGrid3.ItemsSource = list; if (id > 0) { var item2 = list[id]; if (item2 != item1) { } int id2 = list.IndexOf(item1); } LbCount.Content = list.GetConnectedCount(); LbStatistics.Content = archorManager.GetStatistics(); LbServerIpList.Content = list.ServerList.GetText(); LbListenCount.Content = archorManager.valueList.Count; LbListenStatistics.Content = archorManager.valueList.GetStatistics(); } }); }
public void ResetAll(int port, UDPArchorList list) { AddLog(string.Format("开始重启")); archorPort = port; SendCmd(UDPCommands.Restart, port, list); }
private void ArchorManager_ArchorListChanged(UDPArchorList arg1, UDPArchor arg2) { ShowValue(arg2); }
public void Filter() { if (_archorList == null) { return; } int id = CbFilterCondition.SelectedIndex; subArchorList = new UDPArchorList(); foreach (var item in _archorList) { if (id == 0)//全部 { subArchorList.Add(item); } else if (id == 1)//连通 { if (!string.IsNullOrEmpty(item.IsConnected)) { subArchorList.Add(item); } } else if (id == 2)//不连通 { if (string.IsNullOrEmpty(item.IsConnected)) { subArchorList.Add(item); } } else if (id == 3)//Ping通 { if (!string.IsNullOrEmpty(item.Ping)) { subArchorList.Add(item); } } else if (id == 4)//不Ping通 { if (string.IsNullOrEmpty(item.Ping)) { subArchorList.Add(item); } } else if (id == 5)//3 { if (item.GetClientIP().StartsWith("192.168.3.")) { subArchorList.Add(item); } } else if (id == 6)//4 { if (item.GetClientIP().StartsWith("192.168.4.")) { subArchorList.Add(item); } } else if (id == 7)//5 { if (item.GetClientIP().StartsWith("192.168.5.")) { subArchorList.Add(item); } } else if (id == 8)//1999端口 { if (item.ServerPort == 1999) { subArchorList.Add(item); } } else if (id == 9)//有DbInfo { if (!string.IsNullOrEmpty(item.DbInfo)) { subArchorList.Add(item); } } else if (id == 10)//11222902 { if (item.SoftVersion == "11222902") { subArchorList.Add(item); } } else if (id == 11)//11222906 { if (item.SoftVersion == "11222906") { subArchorList.Add(item); } } else if (id == 12)//11222906 { if (item.SoftVersion == "11222907") { subArchorList.Add(item); } } else if (id == 13)//3506 { if (item.SoftVersion == "3156" || item.SoftVersion == "3157") { subArchorList.Add(item); } } else if (id == 14)//网关错误 { if (!string.IsNullOrEmpty(item.Ip) && !string.IsNullOrEmpty(item.Gateway) && !IpHelper.IsSameDomain(item.Ip, item.Gateway)) { subArchorList.Add(item); } } else if (id == 15)//IsChecked { if (item.IsChecked) { subArchorList.Add(item); } } else if (id == 16)//有DbInfo { if (!string.IsNullOrEmpty(item.DbInfo)) { subArchorList.Add(item); } } else if (id == 17)//无DbInfo { if (string.IsNullOrEmpty(item.DbInfo)) { subArchorList.Add(item); } } else if (id == 18)//非25IP { if (!string.IsNullOrEmpty(item.IsConnected) && item.ServerIp != "172.16.100.25") { subArchorList.Add(item); } } else if (id == 19)//ping有问题的 { if (string.IsNullOrEmpty(item.Ping) || item.Ping == "*") { subArchorList.Add(item); } else { string[] parts = item.Ping.Split('/'); if (parts[0] != parts[1]) { subArchorList.Add(item); } } } else if (id == 20)//ping空 { if (string.IsNullOrEmpty(item.Ping)) { subArchorList.Add(item); } } else if (id == 21)//ping失败 { if (item.Ping == "*") { subArchorList.Add(item); } } else if (id == 22)//ping丢包 { if (!string.IsNullOrEmpty(item.Ping)) { string[] parts = item.Ping.Split('/'); if (parts.Length == 2 && parts[0] != parts[1]) { subArchorList.Add(item); } } } } DataGrid3.ItemsSource = subArchorList; LbCount.Content = string.Format("{0}/{1}", subArchorList.GetConnectedCount(), subArchorList.Count); }
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); } }
private void SetArchorList(ArchorManager archorManager, UDPArchorList list, UDPArchor item1 = null, int id = -1) { if (DbArchorListDict != null) { //list.ClearInfo(); foreach (var item in list) { item.DbInfo = ""; item.RealArea = ""; var clientIP = item.GetClientIP(); //var ar = DbArchorList.Find(i => i.Ip == clientIP); if (DbArchorListDict.ContainsKey(clientIP)) { var ar = DbArchorListDict[clientIP]; if (ar != null) { item.RealArea = ar.Parent.Name; if (item.GetClientIP() != ar.Ip) { item.DbInfo = "IP:" + ar.Ip; } else { string code = ar.Code.Trim(); if (!string.IsNullOrEmpty(code)) { item.DbInfo = "有:" + code; } else { item.DbInfo = "有:" + ar.Ip; } } } } } if (id > 0) { var item2 = list[id]; if (item2 != item1) { } int id2 = list.IndexOf(item1); } if (UDPArchorList == null) { UDPArchorList = list; } else { //if(UDPArchorList!= list) //{ //} } if (id > 0) { var item2 = list[id]; if (item2 != item1) { } int id2 = list.IndexOf(item1); } } }