public static void UpdateDTUStatus(DTUConnectionEventArgs args) { try { DataSet ds = DbHelperSQL.Query(string.Format("(select ID from T_DIM_REMOTE_DTU where REMOTE_DTU_NUMBER ='{0}')", args.DtuId)); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { Log.InfoFormat("DTU {0} 不是一个有效的DTU", args.DtuId); } else { string sqlstr = string.Format( "insert into T_DIM_DTU_STATUS (DtuId,Status,[Time]) values ({0},{1},'{2:yyyy-MM-dd HH:mm:ss.fff}')", (string.Format("(select ID from T_DIM_REMOTE_DTU where REMOTE_DTU_NUMBER ='{0}')", args.DtuId)), args.Status == ReceiveType.Online ? 1 : 0, args.Time); DbHelperSQL.ExecuteSql(sqlstr); } } catch (Exception ex) { Log.ErrorFormat("Up dtu status error : {0}", ex.Message); } }
public void OnConnectionChangedEvevt(DTUConnectionEventArgs args) { if (DtuOnOffLineLogEventArgs != null) { DtuOnOffLineLogEventArgs(args); } SqlDal.UpdateDTUStatus(args); updateonlineDtus(args); }
private void updateonlineDtus(DTUConnectionEventArgs args) { if (args.Status == ReceiveType.Online) { if (!onlinedtus.Contains(args.DtuId)) { onlinedtus.Add(args.DtuId); } } else { if (onlinedtus.Contains(args.DtuId)) { var dtu = args.DtuId; onlinedtus.TryTake(out dtu); } } }
void CollectThread_DtuOnOffLineLog(DTUConnectionEventArgs e) { if (e != null) { switch (e.Status) { case ReceiveType.Online: this.svr_ClientConnect(e); break; case ReceiveType.Offline: this.svr_ClientClose(e); break; default: break; } } }
private void svr_ClientClose(DTUConnectionEventArgs e) { if (DtuList.ContainsKey(e.DtuId)) { var lvi = DtuList[e.DtuId].Lvi; lvi.BackColor = Color.Pink; try { var dtuId = int.Parse(e.DtuId); DtuList[e.DtuId].IsOnline = false; } catch (Exception ex) { Console.WriteLine(ex.Message); Log.Error(ex.Message); } SetLogText(string.Format("{0}下线", e.DtuId)); Log.Info(string.Format("{0}下线", e.DtuId)); } }
private void svr_ClientConnect(DTUConnectionEventArgs e) { if (e == null) { return; } var dtu = e; if (DtuList.ContainsKey(dtu.DtuId)) //如果列表中已含有该ID号的DTU { var lvi = DtuList[dtu.DtuId].Lvi; SetListView(lvi, dtu); DtuList[dtu.DtuId].IsOnline = true; } else { var lvi = new ListViewItem(new[] { dtu.DtuId, dtu.Ip, dtu.PhoneNumber, dtu.LoginTime.ToString(), dtu.RefreshTime.ToString() }) { BackColor = Color.LightGreen }; SetListView(lvi, null); var dinf = new DtuInfo { Lvi = lvi, IsOnline = true }; DtuList.Add(dtu.DtuId, dinf); } try { var dtuId = int.Parse(dtu.DtuId); } catch (Exception ex) { Log.Warn(ex.Message); } SetLogText(string.Format("{0}上线", dtu.DtuId)); Log.Info(string.Format("{0}上线", dtu.DtuId)); }
/// <summary> /// 登陆信息 /// </summary> /// <param name="lvi"></param> private void SetListView(ListViewItem lvi, DTUConnectionEventArgs dtu) { if (listView1.InvokeRequired) { listView1.Invoke(new SetListViewHandler(SetListView), new object[] { lvi, dtu }); } else { if (dtu == null) { listView1.Items.Add(lvi); } else { lvi.BackColor = Color.LightGreen; lvi.SubItems[0].Text = dtu.DtuId; lvi.SubItems[1].Text = dtu.Ip; lvi.SubItems[2].Text = dtu.PhoneNumber; lvi.SubItems[3].Text = dtu.LoginTime.ToString(); lvi.SubItems[4].Text = dtu.RefreshTime.ToString(); } } }