/// <summary> /// 构造函数 /// </summary> /// <param name="defaultInputStreamParser">输入流默认解析器</param> /// <param name="defaultOutputStreamParser">输出流默认解析器</param> /// <param name="remoteDeviceCodes">需要监视的设备编号集合。</param> /// <param name="timeout">事件的刷新周期,0表示立即刷新。</param> /// <param name="warningThreshold">指定一个值,当缓存池中的数据超过此值时将打印警告日志。</param> public GenericMonitorControl( IStreamFrameParser <byte> defaultInputStreamParser = null, IStreamFrameParser <byte> defaultOutputStreamParser = null, IEnumerable <string> remoteDeviceCodes = null, uint timeout = 500, uint warningThreshold = 50) { InitializeComponent(); this.CreateHandle(); _inputStreamDefaultParser = defaultInputStreamParser; _outputStreamDefaultParser = defaultOutputStreamParser; this.MaxSummaryCount = 100; // 更新UI this.InitializeUI(); // 初始化需要监控的远程设备编号。 if (remoteDeviceCodes != null) { remoteDeviceCodes.ToList().ForEach(p => this.SetConnectionState(p, false)); } // 创建缓存池。 CreateProductCache(timeout, warningThreshold); }
public OutgoingData(string remoteDeviceID, byte[] stream, object frame, IStreamFrameParser <byte> parser, FrameSentResult result, string toolTipText) : base(remoteDeviceID, stream, frame, parser) { this.Result = result; this.ToolTipText = toolTipText; }
public DataCached(string remoteDeviceID, byte[] stream, object frame, IStreamFrameParser <byte> parser) { this.CreationTime = DateTime.Now; this.RemoteDeviceID = remoteDeviceID; this.Stream = stream; this.Frame = frame; this.Parser = parser; }
public TreeNodeTag(object frame, byte[] stream, IStreamFrameParser <byte> parser = null) { if (stream == null) { throw new ArgumentNullException(); } this.Frame = frame; this.Stream = stream; this.Parser = parser; }
/// <summary> /// 添加一条发送出去的字节流 /// </summary> /// <param name="remoteDeviceID">远程设备编号</param> /// <param name="stream">数据流</param> /// <param name="frame">数据流对应的协议帧对象。</param> /// <param name="parser">数据流对应的解析器</param> /// <param name="result">发送结果</param> /// <param name="toolTipText">当鼠标悬停在TreeNode之上时显示的文字。</param> public void AddOutgoingStream(string remoteDeviceID, byte[] stream, object frame = null, IStreamFrameParser <byte> parser = null, FrameSentResult result = FrameSentResult.Unknown, string toolTipText = null) { if (!_OutgoingStreamVisable) { return; } var data = new Tuple <bool, DataCached>(false, new OutgoingData(remoteDeviceID, stream, frame, parser, result, toolTipText)); _productCache.AddProduct(data); }
/// <summary> /// 添加一条接收到的流 /// </summary> /// <param name="remoteDeviceID">远程设备编号</param> /// <param name="stream">数据流</param> /// <param name="frame">数据流对应的协议帧对象。</param> /// <param name="parser">数据流对应的解析器</param> public void AddIncomingStream(string remoteDeviceID, byte[] stream, object frame = null, IStreamFrameParser <byte> parser = null) { if (!_IncomingStreamVisable) { return; } var data = new Tuple <bool, DataCached>(true, new IncomingData(remoteDeviceID, stream, frame, parser)); _productCache.AddProduct(data); }
public IncomingData(string remoteDeviceID, byte[] stream, object frame, IStreamFrameParser <byte> parser) : base(remoteDeviceID, stream, frame, parser) { }