Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
 public void OnConnectionChangedEvevt(DTUConnectionEventArgs args)
 {
     if (DtuOnOffLineLogEventArgs != null)
     {
         DtuOnOffLineLogEventArgs(args);
     }
     SqlDal.UpdateDTUStatus(args);
     updateonlineDtus(args);
 }
Esempio n. 3
0
 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);
         }
     }
 }
Esempio n. 4
0
        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;
                }
            }
        }
Esempio n. 5
0
        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));
            }
        }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
 /// <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();
         }
     }
 }