private void tvDPTName_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { DatapointType selectedNode = e.Node as DatapointType; this.btnDPTName.Text = selectedNode.Text; this.tvDPTName.Visible = false; }
private void tvDPTName_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { DatapointType selectedNode = e.Node as DatapointType; this.dataGridView.CurrentCell.Value = selectedNode.Text; this.tvDPTName.Visible = false; }
private void treeViewDefaultActions_AfterSelect(object sender, TreeViewEventArgs e) { TreeNode currentNode = e.Node; DatapointType actionNode = currentNode as DatapointType; if (null != actionNode) { if ((Address.KnxMainNumber == actionNode.KNXMainNumber) && (Address.KnxSubNumber == actionNode.KNXSubNumber)) { this.buttonAddAction.Enabled = true; } else if (Address.Type == actionNode.Type) { this.buttonAddAction.Enabled = true; } else { this.buttonAddAction.Enabled = false; } } else { this.buttonAddAction.Enabled = false; } this.buttonDeleteAction.Enabled = false; }
/// <summary> /// 解析组地址列表中各组地址的数据点类型。主号、次号、大小、类型名 /// </summary> /// <param name="addressList"></param> public static void parseDatapointType(ImGroupAddr address) { if (null == address) { return; } string dpst = address.DPTName; if ((null != dpst) && ((dpst.Length) > 0) && (dpst.Substring(0, 4).Equals("DPST"))) { var index1 = dpst.IndexOf("-"); // 第一个"-"的位置 var index2 = dpst.IndexOf("-", index1 + 1); // 第二个"-"的位置 var index3 = dpst.IndexOf(" ", index2 + 1); // 空格的位置 int mainNum = -1; int subNum = -1; if (index1 >= 4) { if (index2 > (index1 + 1)) { mainNum = Convert.ToInt32(dpst.Substring(index1 + 1, index2 - index1 - 1)); // 获取主号 if (index3 > (index2 + 1)) // 表示有多个数据类型。只取第一个 { subNum = Convert.ToInt32(dpst.Substring(index2 + 1, index3 - index2)); // 整型子号 } else { subNum = Convert.ToInt32(dpst.Substring(index2 + 1, dpst.Length - index2 - 1)); // 整型子号 } } else { mainNum = Convert.ToInt32(dpst.Substring(index1 + 1, dpst.Length - index1 - 1)); // 获取主号 } } if (MyCache.DicMainNumber.ContainsKey(mainNum)) { string knxMainNum = MyCache.DicMainNumber[mainNum]; string knxSubNum = DatapointType.DPST_ANY; if (MyCache.DicSubNumber.ContainsKey(subNum)) { knxSubNum = MyCache.DicSubNumber[subNum]; } address.DPTName = DatapointType.GetDPTName(knxMainNum, knxSubNum); if (address.DPTName.Length > 0) { address.IsSelected = true; address.DPTNameIsDetermined = true; } } } }
private void tvDPTName_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { DatapointType selectedNode = e.Node as DatapointType; this.btnDPTName.Text = selectedNode.Text; this.tvDPTName.Visible = false; Address.KnxMainNumber = selectedNode.KNXMainNumber; Address.KnxSubNumber = selectedNode.KNXSubNumber; Address.Type = selectedNode.Type; }
private void btnOK_Click(object sender, EventArgs e) { Address.Name = this.txtName.Text.Trim(); try { KNXAddressHelper.StringToAddress(this.txtWriteAddress.Text.Trim()); } catch (Exception ex) { MessageBox.Show(ex.Message, UIResMang.GetString("Message6"), MessageBoxButtons.OK, MessageBoxIcon.Error); this.txtWriteAddress.Focus(); return; } Address.KnxAddress = this.txtWriteAddress.Text.Trim(); // 数据类型 if (string.IsNullOrWhiteSpace(this.btnDPTName.Text)) { MessageBox.Show(UIResMang.GetString("Message46"), UIResMang.GetString("Message6"), MessageBoxButtons.OK, MessageBoxIcon.Error); this.btnDPTName.Focus(); return; } DatapointType dpt = DPTHelper.GetTypeNode(this.btnDPTName.Text); //this.tvDPTName.SelectedNode as DatapointType; if (null != dpt) { Address.KnxMainNumber = dpt.KNXMainNumber; Address.KnxSubNumber = dpt.KNXSubNumber; Address.DPTName = dpt.Text; Address.Type = dpt.Type; } // 优先级 var selectedTextPriority = this.cmbPriority.SelectedItem; if (selectedTextPriority != null) { KNXPriority priority = KNXPriority.Low; Enum.TryParse(selectedTextPriority.ToString(), out priority); Address.Priority = priority; } Address.IsCommunication = this.cbxCommunication.Checked; Address.IsRead = this.cbxRead.Checked; Address.IsWrite = this.cbxWrite.Checked; Address.IsTransmit = this.cbxTransmit.Checked; Address.IsUpgrade = this.cbxUpgrade.Checked; this.DialogResult = DialogResult.OK; }
public static void Reply(this KnxNetIpClient client, IKnxMessage replyTo, DatapointType data, MessagePriority priority = MessagePriority.Auto) { var request = replyTo; var message = new KnxMessage { MessageCode = MessageCode.Confirmation, MessageType = replyTo.MessageType, SourceAddress = client.DeviceAddress, DestinationAddress = request.SourceAddress, Payload = data.Payload, Priority = priority, }; client.SendMessage(message); }
private void tvDPTName_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { DatapointType selectedNode = e.Node as DatapointType; this.dataGridView.CurrentCell.Value = selectedNode.Text; this.tvDPTName.Visible = false; int rowIndex = this.dataGridView.CurrentCell.RowIndex; string id = (string)this.dataGridView.Rows[rowIndex].Cells["Id"].Value; ImGroupAddr address = GetGroupAddress(id); if (null != address) { address.DPTName = selectedNode.Text; } }
private void btnOK_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(this.btnDPTName.Text)) { MessageBox.Show(ResourceMng.GetString("Message46"), ResourceMng.GetString("Message6"), MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Address.Name = this.txtName.Text.Trim(); Address.KnxAddress = this.txtWriteAddress.Text.Trim(); // 数据类型 DatapointType dpt = DatapointType.GetTypeNode(this.btnDPTName.Text); //this.tvDPTName.SelectedNode as DatapointType; if (null != dpt) { Address.KnxMainNumber = dpt.KNXMainNumber; Address.KnxSubNumber = dpt.KNXSubNumber; Address.DPTName = dpt.Text; Address.Type = dpt.Type; } // 默认值 Address.DefaultValue = this.txtDefaultValue.Text.Trim(); // 优先级 var selectedTextPriority = this.cmbPriority.SelectedItem; if (selectedTextPriority != null) { KNXPriority priority = KNXPriority.Low; Enum.TryParse(selectedTextPriority.ToString(), out priority); Address.Priority = priority; } //Address.WireNumber = this.txtWireNumber.Text.Trim(); Address.ReadTimeSpan = Convert.ToInt32(txtReadTimespan.Text); Address.IsCommunication = this.cbxCommunication.Checked; Address.IsRead = this.cbxRead.Checked; Address.IsWrite = this.cbxWrite.Checked; Address.IsTransmit = this.cbxTransmit.Checked; Address.IsUpgrade = this.cbxUpgrade.Checked; //Address.Tip = this.textBoxTip.Text; this.DialogResult = DialogResult.OK; }
public void addDatapoint(double value, DatapointType type) { if (this.m_nextFreeDatapoint == null) { if (Application.isEditor) { Debug.LogWarning("Trying to add more datapoints than max capacity, skipping.."); } } else { this.m_nextFreeDatapoint.Timer = this.m_windowWidthSeconds; this.m_nextFreeDatapoint.Value = value; this.m_nextFreeDatapoint.Type = type; this.m_nextFreeDatapoint = this.getNextFreeOrOldestDatapoint(); } }
private void backWorkerSave_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; int len = this.dataGridView.RowCount; //float i = 0; for (int i = 0; i < len; i++) { float f = (float)i / (len - 1); worker.ReportProgress((int)(f * 100)); DataGridViewRow row = this.dataGridView.Rows[i]; bool isSelected = (bool)row.Cells["IsSelected"].Value; if (isSelected) { EdGroupAddress addr = new EdGroupAddress(); addr.Id = row.Cells["Id"].Value as string; addr.Name = row.Cells["Name"].Value as string; addr.KnxAddress = row.Cells["KnxAddress"].Value as string; addr.DPTName = row.Cells["DPTName"].Value as string; DatapointType dpt = DatapointType.GetTypeNode(addr.DPTName); if (null != dpt) { addr.KnxMainNumber = dpt.KNXMainNumber; addr.KnxSubNumber = dpt.KNXSubNumber; addr.Type = dpt.Type; } addr.IsCommunication = (bool)row.Cells["IsCommunication"].Value; addr.IsRead = (bool)row.Cells["IsRead"].Value; addr.IsWrite = (bool)row.Cells["IsWrite"].Value; addr.IsTransmit = (bool)row.Cells["IsTransmit"].Value; addr.IsUpgrade = (bool)row.Cells["IsUpgrade"].Value; addr.Priority = (KNXPriority)row.Cells["Priority"].Value; addr.Actions = DatapointType.GetActionNodes(addr.DPTName); MyCache.GroupAddressTable.Add(addr); } } }
private static string GetDPTName(TreeNode node, string m, string s) { string text = ""; DatapointType dpt = node as DatapointType; if ((m == dpt.KNXMainNumber) && (s == dpt.KNXSubNumber)) { text = dpt.Text; } else if (dpt.Nodes.Count > 0) { foreach (TreeNode n in dpt.Nodes) { text = GetDPTName(n, m, s); if (text.Length > 0) { break; } } } return(text); }
private void backWorkerSave_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; //int len = this.dataGridView.RowCount; //for (int i = 0; i < len; i++) int len = listAddress.Count; for (int i = 0; i < len; i++) { float f = (float)i / (len - 1); worker.ReportProgress((int)(f * 100)); //DataGridViewRow row = this.dataGridView.Rows[i]; //bool isSelected = (bool)row.Cells["IsSelected"].Value; //if (isSelected) //{ // EdGroupAddress addr = new EdGroupAddress(); // addr.Id = row.Cells["Id"].Value as string; // addr.Name = row.Cells["Name"].Value as string; // addr.KnxAddress = row.Cells["KnxAddress"].Value as string; // addr.DPTName = row.Cells["DPTName"].Value as string; // DatapointType dpt = DPTHelper.GetTypeNode(addr.DPTName); // if (null != dpt) // { // addr.KnxMainNumber = dpt.KNXMainNumber; // addr.KnxSubNumber = dpt.KNXSubNumber; // addr.Type = dpt.Type; // } // addr.IsCommunication = (bool)row.Cells["IsCommunication"].Value; // addr.IsRead = (bool)row.Cells["IsRead"].Value; // addr.IsWrite = (bool)row.Cells["IsWrite"].Value; // addr.IsTransmit = (bool)row.Cells["IsTransmit"].Value; // addr.IsUpgrade = (bool)row.Cells["IsUpgrade"].Value; // addr.Priority = (KNXPriority)row.Cells["Priority"].Value; // addr.Actions = DPTHelper.GetActionNodes(addr.DPTName); // MyCache.GroupAddressTable.Add(addr); //} ImGroupAddr imAddr = listAddress[i]; if (imAddr.IsSelected) { MgGroupAddress addr = new MgGroupAddress(); addr.Id = imAddr.Id; addr.Name = imAddr.Name; addr.KnxAddress = imAddr.KnxAddress; addr.DPTName = imAddr.DPTName; DatapointType dpt = DPTHelper.GetTypeNode(imAddr.DPTName); if (null != dpt) { addr.KnxMainNumber = dpt.KNXMainNumber; addr.KnxSubNumber = dpt.KNXSubNumber; addr.Type = dpt.Type; } addr.IsCommunication = imAddr.IsCommunication; addr.IsRead = imAddr.IsRead; addr.IsWrite = imAddr.IsWrite; addr.IsTransmit = imAddr.IsTransmit; addr.IsUpgrade = imAddr.IsUpgrade; addr.Priority = imAddr.Priority; //addr.Actions = DPTHelper.GetActionNodes(addr.DPTName); addr.Actions = new GroupAddressActions(DPTHelper.GetActionNodes(addr.DPTName)); //MyCache.GroupAddressTable.Add(addr); var formName = typeof(FrmGroupAddressMgt).Name; if (Application.OpenForms[formName] != null) { var frm = Application.OpenForms[formName] as FrmGroupAddressMgt; if (frm != null) { frm.AddMgAddress(addr); } } } } }
public static void parseComObject(ImGroupAddr address, XElement comObject) { var refId = comObject.Attribute(attrRefId); var text = comObject.Attribute(attrText); var priority = comObject.Attribute(attrPriority); var objectSize = comObject.Attribute(attrObjectSize); var readFlag = comObject.Attribute(attrReadFlag); var writeFlag = comObject.Attribute(attrWriteFlag); var communicationFlag = comObject.Attribute(attrCommunicationFlag); var transmitFlag = comObject.Attribute(attrTransmitFlag); var updateFlag = comObject.Attribute(attrUpdateFlag); var datapointType = comObject.Attribute(attrDatapointType); // //if (null != text) //{ //address.Name = text.Value; //} if (null != priority) { address.Priority = KNXAddressHelper.GetKNXPriority(priority.Value); } if (objectSize != null) { // 数据类型 address.DPTName = DatapointType.GetDPTMainName(KNXAddressHelper.GetKnxDataType(objectSize.Value)); if (address.DPTName.Length > 0) { address.IsSelected = true; address.DPTNameIsDetermined = false; } } if (null != readFlag && null != readFlag.Value) { if ("Disabled" == readFlag.Value) { address.IsRead = false; } else if ("Enabled" == readFlag.Value) { address.IsRead = true; } } if (null != writeFlag && null != writeFlag.Value) { if ("Disabled" == writeFlag.Value) { address.IsWrite = false; } else if ("Enabled" == writeFlag.Value) { address.IsWrite = true; } } if (null != communicationFlag && null != communicationFlag.Value) { if ("Disabled" == communicationFlag.Value) { address.IsCommunication = false; } else if ("Enabled" == communicationFlag.Value) { address.IsCommunication = true; } } if (null != transmitFlag && null != transmitFlag.Value) { if ("Disabled" == transmitFlag.Value) { address.IsTransmit = false; } else if ("Enabled" == transmitFlag.Value) { address.IsTransmit = true; } } if (null != updateFlag && null != updateFlag.Value) { if ("Disabled" == updateFlag.Value) { address.IsUpgrade = false; } else if ("Enabled" == updateFlag.Value) { address.IsUpgrade = true; } } if (null != datapointType && null != datapointType.Value) { address.DPTName = datapointType.Value; } }
public Datapoint(string name, DatapointType type) { Name = name; Type = type; }
public static void Write(this KnxNetIpClient client, KnxLogicalAddress destination, DatapointType data, MessagePriority priority = MessagePriority.Auto) { var message = new KnxMessage { MessageCode = MessageCode.Request, MessageType = MessageType.Write, SourceAddress = client.DeviceAddress, DestinationAddress = destination, Payload = data.Payload, Priority = priority, }; client.SendMessage(message); }