internal void UpdateDtuConnection(ZYBEventArgs e) { this.IsOnline = e.DTU.IsOnline; this.PhoneNumber = e.DTU.PhoneNumber; this.LoginTime = e.DTU.LoginTime; this.RefreshTime = e.DTU.RefreshTime; this.IP = e.DTU.IP; this.SetReady(e.DTU.IsOnline); }
private DtuMsg EventToMsg(ZYBEventArgs e) { return(new DtuMsg { DtuId = e.DTU.ID, IsOnline = e.DTU.IsOnline, Logintime = e.DTU.LoginTime, Refreshtime = e.DTU.RefreshTime, Databuffer = e.DTU.DataByte }); }
/// <summary> /// 接收数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void server_ReceiveData(object sender, ZYBEventArgs e) { string dtuid = e.DTU.ID; var c = _connectPool[dtuid]; c.RefreshTime = e.DTU.RefreshTime; DtuMsg m = EventToMsg(e); m.IsWorking = true; c.OnDataReceived(m); // passthrough }
/// <summary> /// 接收数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> static void server_ReceiveData(object sender, ZYBEventArgs e) { string dtuid = e.DTU.ID; Connection c = (Connection)_connectPool[dtuid]; c.RefreshTime = e.DTU.RefreshTime; DtuMsg m = EventToMsg(e); m.IsWorking = true; c.onDataReceived(m); // passthrough }
private void server_ClientClose(object sender, ZYBEventArgs e) { lock (sender) { string dtuId = e.DTU.ID; if (!_connectPool.ContainsKey(dtuId)) { return; } var c = _connectPool[dtuId]; c.UpdateDtuConnection(e); FireConnectionStatusChanged(c, WorkingStatus.IDLE, WorkingStatus.NA); } }
/// <summary> /// Connect, 注册服务. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void server_ClientConnect(object sender, ZYBEventArgs e) { lock (sender) { bool isnewstate; GprsDtuConnection c = RegisterConnection(e.DTU.ID, out isnewstate); c.UpdateDtuConnection(e); if (!isnewstate) { _log.ErrorFormat("DTU {0} is online twice !!!", e.DTU.ID); return; } FireConnectionStatusChanged(c, WorkingStatus.NA, WorkingStatus.IDLE); } }
private void svr_ReceiveData(object sender, ZYBEventArgs e) { Monitor.Enter(sender); try { if (OnDataReceived != null) { OnDataReceived(new ReceiveDataInfo(e.DTU.ID, (byte[])e.DTU.DataByte.Clone())); } } finally { Monitor.Exit(sender); } }
void _svr_ClientConnect(object sender, ZYBEventArgs e) { Monitor.Enter(sender); try { if (ReceiveEvent != null) { ReceiveEvent(sender, new ComPacketEventArgs((byte)ReceiveType.Online, e)); } } finally { Monitor.Exit(sender); } }
/// <summary> /// Connect, 注册服务. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> static void server_ClientConnect(object sender, ZYBEventArgs e) { Connection c = registerConnection(e.DTU.ID, e.DTU.IP, e.DTU.PhoneNumber); c.IsOnline = e.DTU.IsOnline; c.PhoneNumber = e.DTU.PhoneNumber; c.LoginTime = e.DTU.LoginTime; c.RefreshTime = e.DTU.RefreshTime; c.SetReady(true); DtuMsg m = EventToMsg(e); m.IsWorking = false; c.onDataReceived(m); fireConnectionStatusChanged(c, WorkingStatus.NA, WorkingStatus.IDLE); Console.WriteLine(string.Format("Connection online: {0},{1}({2}) on {3}", c.DtuID, c.IP, c.PhoneNumber, c.LoginTime)); }
private void ClientClose(object sender, ZYBEventArgs e) { Monitor.Enter(sender); try { //_thread.Abort(); if (table.ContainsKey(e.DTU.ID)) { Thread t = (Thread)table[e.DTU.ID]; t.Abort(); table.Remove(e.DTU.ID); } logger.Info(string.Format("DTU {0} is offline", e.DTU.ID)); } finally { Monitor.Exit(sender); } }
static void server_ClientClose(object sender, ZYBEventArgs e) { string dtuId = e.DTU.ID; if (!_connectPool.Contains(dtuId)) { // DTU Not registered? system error. //log.Fatal(string.Format("System error, DTU '{0}' Not registered!!!", dtuId)); return; } var c = (Connection)_connectPool[dtuId]; DtuMsg m = EventToMsg(e); m.IsWorking = false; c.onDataReceived(m); c.SetReady(false); fireConnectionStatusChanged(c, WorkingStatus.IDLE, WorkingStatus.NA); Console.WriteLine("Client closed."); }
void _svr_ReceiveData(object sender, ZYBEventArgs e) { Monitor.Enter(sender); try { if (ReceiveEvent != null) { var dtuid = (string)e.DTU.ID.Clone(); var data = (byte[])e.DTU.DataByte.Clone(); ReceiveEvent(sender, new ComPacket((byte)ReceiveType.Data, data, dtuid)); // Log.Debug(dtuid + " @ @ : " + ValueHelper.ByteToHexStr(data)); } } finally { Monitor.Exit(sender); } }
private void ClientConnect(object sender, ZYBEventArgs e) { Monitor.Enter(sender); try { _deviceId = e.DTU.ID; logger.Info(string.Format("DTU {0} is online", e.DTU.ID)); //_thread = new Thread(Run); //_thread.Start(); _thread = new Thread(new ParameterizedThreadStart(Run)); _thread.Name = e.DTU.ID; if (!table.ContainsKey(e.DTU.ID)) { table.Add(e.DTU.ID, _thread); _thread.Start(e.DTU.ID); } } finally { Monitor.Exit(sender); } }
private void svr_ClientConnect(object sender, ZYBEventArgs e) { Monitor.Enter(sender); try { if (OnConnectionChangedHandler != null) { OnConnectionChangedHandler(new DTUConnectionEventArgs { DtuId = e.DTU.ID, Status = ReceiveType.Online, Time = DateTime.Now, Ip = e.DTU.IP, PhoneNumber = e.DTU.PhoneNumber, RefreshTime = e.DTU.RefreshTime, LoginTime = e.DTU.LoginTime }); } } finally { Monitor.Exit(sender); } }
public ComPacketEventArgs(byte type, ZYBEventArgs e) : this(type) { Arg = e; }