public void EditFunctionProperty(FunctionProperties functionProperty, int connectionNumber, int functionNumber) { connectionPropertiesList[connectionNumber].FunctionPropertiesList[functionNumber] = functionProperty; if (connectionPropertiesListChanged != null) { connectionPropertiesListChanged(this); } }
public void AddFunctionProperty(FunctionProperties functionProperty, int connectionNumber) { connectionPropertiesList[connectionNumber].FunctionPropertiesList.Add(functionProperty); if (connectionPropertiesListChanged != null) { connectionPropertiesListChanged(this); } }
public void AddFunctionProperty(FunctionProperties functionProperty, int connectionNumber) { // create link to connection functionProperty.Connection = connectionPropertiesList[connectionNumber]; // add to list connectionPropertiesList[connectionNumber].FunctionPropertiesList.Add(functionProperty); if (connectionPropertiesListChanged != null) { connectionPropertiesListChanged(this); } }
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) { // check if we are in column value if (e.ColumnIndex == 4) { int idx = e.RowIndex; FunctionProperties functionProperties = easyModbusManager.FindPropertyFromGrid(idx); if (functionProperties != null) { string str = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); int[] values = EasyModbusManager.StrToValues(functionProperties, str); easyModbusManager.WriteToServer(functionProperties, values); } } }
public void WriteToServer(FunctionProperties prop, int[] values) { /* * string text = ""; * text += "property " + prop.StartingAdress + "\n" + "type " + prop.FunctionCodeWrite.ToString() + "\n" + "new value: " + values.ToString() + "\n"; * text += "connection " + prop.Connection.ConnectionName; * MessageBox.Show(text, "updating register"); */ int startingAddress = prop.StartingAdress; switch (prop.FunctionCodeWrite) { case FunctionCodeWr.WriteHoldingRegisters: prop.Connection.modbusClient.WriteMultipleRegisters(startingAddress, values); break; } }
public static int[] StrToValues(FunctionProperties functionProperties, string str) { int[] values = { }; switch (functionProperties.FunctionCodeWrite) { case FunctionCodeWr.WriteHoldingRegisters: int value = 0; if (Int32.TryParse(str, out value)) { // add int[] x = { value }; return(x); } break; } return(values); }
void Button2Click(object sender, EventArgs e) { if (treeView1.SelectedNode == null) { return; } if (treeView1.SelectedNode.Level == 2) { FunctionProperties functionProperty = easyModbusManager.connectionPropertiesList[treeView1.SelectedNode.Parent.Index].FunctionPropertiesList[treeView1.SelectedNode.Index]; ConnectionProperties connectionProperty = easyModbusManager.connectionPropertiesList[treeView1.SelectedNode.Parent.Index]; dataGridView1.AllowUserToAddRows = false; for (int i = 0; i < functionProperty.Quantity; i++) { dataGridView1.Rows.Add(); dataGridView1[0, dataGridView1.Rows.Count - 1].Value = connectionProperty.ConnectionName; dataGridView1.ClearSelection(); dataGridView1.CurrentCell = null; DataGridView1CellClick(null, null); // DataGridViewComboBoxCell cbCell = (DataGridViewComboBoxCell)dataGridView1.Rows[row].Cells[1]; switch (functionProperty.FunctionCode) { case FunctionCode.ReadCoils: dataGridView1[1, dataGridView1.Rows.Count - 1].Value = "0x" + (functionProperty.StartingAdress + i + 1).ToString(); break; case FunctionCode.ReadDiscreteInputs: dataGridView1[1, dataGridView1.Rows.Count - 1].Value = "1x" + (functionProperty.StartingAdress + i + 1).ToString(); break; case FunctionCode.ReadHoldingRegisters: dataGridView1[1, dataGridView1.Rows.Count - 1].Value = "4x" + (functionProperty.StartingAdress + i + 1).ToString(); break; case FunctionCode.ReadInputRegisters: dataGridView1[1, dataGridView1.Rows.Count - 1].Value = "3x" + (functionProperty.StartingAdress + i + 1).ToString(); break; default: break; } } dataGridView1.AllowUserToAddRows = true; } }
public void ReadXML(DataGridView dataGridView) { XmlNodeList xmlNodeList, xmlNodeList2; XmlNode xmlNode3; System.Xml.XmlDocument xmlDocument = new System.Xml.XmlDocument(); xmlDocument.Load("textWriter.xml"); xmlNodeList = xmlDocument.GetElementsByTagName("connection"); connectionPropertiesList = new List <ConnectionProperties>(); foreach (XmlNode xmlNode in xmlNodeList) { ConnectionProperties connectionProperty = new ConnectionProperties(); connectionProperty.ConnectionName = (xmlNode["connectionName"].InnerText); connectionProperty.ModbusTCPAddress = (xmlNode["ipAddress"].InnerText); connectionProperty.Port = Int32.Parse(xmlNode["port"].InnerText); connectionProperty.CyclicFlag = bool.Parse(xmlNode["cyclicFlag"].InnerText); connectionProperty.CycleTime = Int32.Parse(xmlNode["cycleTime"].InnerText); xmlNode3 = xmlNode["functionCodes"]; while (xmlNode3 != null) { xmlNodeList2 = xmlNode3.ChildNodes; FunctionProperties functionProperty = new FunctionProperties(); foreach (XmlNode xmlNode2 in xmlNodeList2) { if (xmlNode2.Name == "functionCode") { switch (xmlNode2.InnerText) { case "ReadCoils": functionProperty.FunctionCode = FunctionCode.ReadCoils; break; case "ReadDiscreteInputs": functionProperty.FunctionCode = FunctionCode.ReadDiscreteInputs; break; case "ReadHoldingRegisters": functionProperty.FunctionCode = FunctionCode.ReadHoldingRegisters; break; case "ReadInputRegisters": functionProperty.FunctionCode = FunctionCode.ReadInputRegisters; break; } } if (xmlNode2.Name == "startingAddress") { functionProperty.StartingAdress = Int32.Parse(xmlNode2.InnerText); } if (xmlNode2.Name == "quantity") { functionProperty.Quantity = Int32.Parse(xmlNode2.InnerText); } } connectionProperty.FunctionPropertiesList.Add(functionProperty); xmlNode3 = xmlNode3.NextSibling; } connectionPropertiesList.Add(connectionProperty); } if (connectionPropertiesListChanged != null) { connectionPropertiesListChanged(this); } xmlNodeList = xmlDocument.GetElementsByTagName("dataGridViewLines"); dataGridView.Rows.Clear(); dataGridView.AllowUserToAddRows = false; foreach (XmlNode xmlNode in xmlNodeList) { dataGridView.Rows.Add(); if (xmlNode["columnConnection"] != null) { dataGridView[0, dataGridView.Rows.Count - 1].Value = xmlNode["columnConnection"].InnerText; } dataGridView.ClearSelection(); dataGridView.CurrentCell = null; if (xmlNode["columnAddress"] != null) { dataGridView[1, dataGridView.Rows.Count - 1].Value = xmlNode["columnAddress"].InnerText; } if (dataGridViewChanged != null) { dataGridViewChanged(this); } if (xmlNode["columnTag"] != null) { dataGridView[2, dataGridView.Rows.Count - 1].Value = xmlNode["columnTag"].InnerText; } if (xmlNode["columnDataType"] != null) { dataGridView[3, dataGridView.Rows.Count - 1].Value = xmlNode["columnDataType"].InnerText; } } dataGridView.AllowUserToAddRows = true; }