private bool stopReading; // indicates that a read operation should stop /// <summary> /// Initializes a new instance of the class. /// </summary> public TopicReader(MqttConnectionOptions mqttConnectionOptions, RichTextBoxHelper logHelper) { connOptions = mqttConnectionOptions ?? throw new ArgumentNullException(nameof(mqttConnectionOptions)); this.logHelper = logHelper ?? throw new ArgumentNullException(nameof(logHelper)); mqttLock = new object(); tokenSource = null; messageDT = DateTime.MinValue; stopReading = false; ReadResult = false; WirenBoardModel = new WirenBoardModel(); }
/// <summary> /// Shows the data model. /// </summary> public void ShowModel(WirenBoardModel wirenBoardModel) { ArgumentNullException.ThrowIfNull(wirenBoardModel, nameof(wirenBoardModel)); try { treeView.BeginUpdate(); treeView.Nodes.Clear(); foreach (DeviceModel deviceModel in wirenBoardModel.Devices) { TreeNode deviceNode = TreeViewExtensions.CreateNode(deviceModel.Code, "device.png", deviceModel); treeView.Nodes.Add(deviceNode); foreach (ControlModel controlModel in deviceModel.Controls) { TreeNode controlNode = TreeViewExtensions.CreateNode(controlModel.Code, "elem.png", controlModel); deviceNode.Nodes.Add(controlNode); } if (deviceNode.Nodes.Count > 0) { deviceNode.Checked = true; } } if (treeView.Nodes.Count > 0) { treeView.SelectedNode = treeView.Nodes[0]; } treeView.CollapseAll(); } finally { treeView.EndUpdate(); } }