void rp_RealSignalUpdated(object sender, RealSignalArgs args) { foreach (RealSignal Rs in args.ActiveSignals) { SetRealValueToSinal(Rs.DBHostIdx, Rs.TagID, Rs); } }
private void OnRealSignalUpdated(object sender, RealSignalArgs args) { if (this.RealSignalUpdated != null) { this.RealSignalUpdated(this, args); } else { PageLogger.RecordInfoLog("there are no one listen RealSignalUpdated"); } }
protected override void onReceived(StateObject so, int len) { if (len <= 12)//心跳包或没有接收到数据时,直接返回 return; Console.WriteLine("Recieve {0} bytes from server.", len); Byte[] resultData = so.buffer.Take<Byte>(len).ToArray<Byte>(); int ContentLen = BitConverter.ToInt32(resultData, 8); Byte[] content = new Byte[ContentLen]; Array.Copy(resultData, 12, content, 0, ContentLen); Guid g = new Guid(string.Join("", Encoding.ASCII.GetChars(content, 0, 38))); DateTime time = DateTime.Parse("1900-1-1 00:00:00").AddDays(BitConverter.ToDouble(content, 39) - 2); lastUpateTime = BitConverter.ToDouble(content, 39); int ContentBeforeCompressLen = BitConverter.ToInt16(content, 39 + 8); Byte[] ContentDecompress = new Byte[ContentBeforeCompressLen]; Byte[] ContentCompress = new Byte[ContentLen - 51]; Array.Copy(content, 51, ContentCompress, 0, ContentCompress.Length); ContentDecompress = ZLibProvider.DecompressBytes(ContentCompress); List<RealSignal> signals = new List<RealSignal>(); for (int i = 0; i < ContentDecompress.Length; i += 94) { Byte[] aSignal = new Byte[94]; Array.Copy(ContentDecompress, i, aSignal, 0, 94); signals.Add(RealSignal.FromBytes(aSignal)); } RealSignalArgs esa = new RealSignalArgs(); esa.ActiveSignals = signals; esa.RealHostID = tCacheHost.Id; OnRealSignalUpdated(this, esa); }