@@ -54,6 +54,19 @@ public void AddConnection(ConnectionProperties connectionProperties)
54
54
throw new Exception ( "Duplicate connection Name detected" ) ;
55
55
}
56
56
}
57
+
58
+ // create modbus client accordingly
59
+ if ( connectionProperties . ModbusTypeProperty == ModbusType . ModbusTCP )
60
+ {
61
+ connectionProperties . modbusClient = new EasyModbus . ModbusClient ( ) ;
62
+ connectionProperties . modbusClient . UnitIdentifier = ( byte ) connectionProperties . SlaveID ;
63
+ }
64
+ else
65
+ {
66
+ connectionProperties . modbusClient = new EasyModbus . ModbusClient ( connectionProperties . ComPort ) ;
67
+ connectionProperties . modbusClient . UnitIdentifier = ( byte ) connectionProperties . SlaveID ;
68
+ }
69
+
57
70
connectionPropertiesList . Add ( connectionProperties ) ;
58
71
if ( connectionPropertiesListChanged != null )
59
72
connectionPropertiesListChanged ( this ) ;
@@ -195,67 +208,74 @@ public void WriteXML(DataGridView dataGridView)
195
208
{
196
209
XmlDocument xmlDocument = new XmlDocument ( ) ;
197
210
XmlNode xmlRoot ;
198
- XmlNode xmlChild1 ;
199
- XmlNode xmlChild2 , xmlChild3 ;
211
+ XmlNode xmlNodeConnection , xmlNodeConnectionProp ;
212
+ XmlNode xmlNodeFunctionCodes , xmlNodeFunctionCodesProp ;
213
+ XmlNode xmlNodeDataGrid , xmlNodeDataGridLines , xmlNodeDataGridLinesProp ;
200
214
xmlRoot = xmlDocument . CreateElement ( "ModbusConfiguration" ) ;
201
215
for ( int i = 0 ; i < this . connectionPropertiesList . Count ; i ++ )
202
216
{
203
- xmlChild1 = xmlDocument . CreateElement ( "connection" ) ;
204
- xmlChild2 = xmlDocument . CreateElement ( "connectionName" ) ;
205
- xmlChild2 . InnerText = this . connectionPropertiesList [ i ] . ConnectionName ;
206
- xmlChild1 . AppendChild ( xmlChild2 ) ;
207
- xmlChild2 = xmlDocument . CreateElement ( "ipAddress" ) ;
208
- xmlChild2 . InnerText = this . connectionPropertiesList [ i ] . ModbusTCPAddress ;
209
- xmlChild1 . AppendChild ( xmlChild2 ) ;
210
- xmlChild2 = xmlDocument . CreateElement ( "port" ) ;
211
- xmlChild2 . InnerText = this . connectionPropertiesList [ i ] . Port . ToString ( ) ;
212
- xmlChild1 . AppendChild ( xmlChild2 ) ;
213
- xmlChild2 = xmlDocument . CreateElement ( "cyclicFlag" ) ;
214
- xmlChild2 . InnerText = this . connectionPropertiesList [ i ] . CyclicFlag . ToString ( ) ;
215
- xmlChild1 . AppendChild ( xmlChild2 ) ;
216
- xmlChild2 = xmlDocument . CreateElement ( "cycleTime" ) ;
217
- xmlChild2 . InnerText = this . connectionPropertiesList [ i ] . CycleTime . ToString ( ) ;
218
- xmlChild1 . AppendChild ( xmlChild2 ) ;
217
+ xmlNodeConnection = xmlDocument . CreateElement ( "connection" ) ;
218
+ xmlNodeConnectionProp = xmlDocument . CreateElement ( "connectionName" ) ;
219
+ xmlNodeConnectionProp . InnerText = this . connectionPropertiesList [ i ] . ConnectionName ;
220
+ xmlNodeConnection . AppendChild ( xmlNodeConnectionProp ) ;
221
+ xmlNodeConnectionProp = xmlDocument . CreateElement ( "ipAddress" ) ;
222
+ xmlNodeConnectionProp . InnerText = this . connectionPropertiesList [ i ] . ModbusTCPAddress ;
223
+ xmlNodeConnection . AppendChild ( xmlNodeConnectionProp ) ;
224
+ xmlNodeConnectionProp = xmlDocument . CreateElement ( "port" ) ;
225
+ xmlNodeConnectionProp . InnerText = this . connectionPropertiesList [ i ] . Port . ToString ( ) ;
226
+ xmlNodeConnection . AppendChild ( xmlNodeConnectionProp ) ;
227
+ xmlNodeConnectionProp = xmlDocument . CreateElement ( "cyclicFlag" ) ;
228
+ xmlNodeConnectionProp . InnerText = this . connectionPropertiesList [ i ] . CyclicFlag . ToString ( ) ;
229
+ xmlNodeConnection . AppendChild ( xmlNodeConnectionProp ) ;
230
+ xmlNodeConnectionProp = xmlDocument . CreateElement ( "cycleTime" ) ;
231
+ xmlNodeConnectionProp . InnerText = this . connectionPropertiesList [ i ] . CycleTime . ToString ( ) ;
232
+ xmlNodeConnection . AppendChild ( xmlNodeConnectionProp ) ;
219
233
for ( int j = 0 ; j < this . connectionPropertiesList [ i ] . FunctionPropertiesList . Count ; j ++ )
220
234
{
221
- xmlChild2 = xmlDocument . CreateElement ( "functionCodes" ) ;
222
- xmlChild3 = xmlDocument . CreateElement ( "functionCode" ) ;
223
- xmlChild3 . InnerText = this . connectionPropertiesList [ i ] . FunctionPropertiesList [ j ] . FunctionCode . ToString ( ) ;
224
- xmlChild2 . AppendChild ( xmlChild3 ) ;
225
- xmlChild3 = xmlDocument . CreateElement ( "quantity" ) ;
226
- xmlChild3 . InnerText = this . connectionPropertiesList [ i ] . FunctionPropertiesList [ j ] . Quantity . ToString ( ) ;
227
- xmlChild2 . AppendChild ( xmlChild3 ) ;
228
- xmlChild3 = xmlDocument . CreateElement ( "startingAddress" ) ;
229
- xmlChild3 . InnerText = this . connectionPropertiesList [ i ] . FunctionPropertiesList [ j ] . StartingAdress . ToString ( ) ;
230
- xmlChild2 . AppendChild ( xmlChild3 ) ;
231
- xmlChild1 . AppendChild ( xmlChild2 ) ;
235
+ xmlNodeFunctionCodes = xmlDocument . CreateElement ( "functionCodes" ) ;
236
+ xmlNodeFunctionCodesProp = xmlDocument . CreateElement ( "functionCode" ) ;
237
+ xmlNodeFunctionCodesProp . InnerText = this . connectionPropertiesList [ i ] . FunctionPropertiesList [ j ] . FunctionCode . ToString ( ) ;
238
+ xmlNodeFunctionCodes . AppendChild ( xmlNodeFunctionCodesProp ) ;
239
+ xmlNodeFunctionCodesProp = xmlDocument . CreateElement ( "quantity" ) ;
240
+ xmlNodeFunctionCodesProp . InnerText = this . connectionPropertiesList [ i ] . FunctionPropertiesList [ j ] . Quantity . ToString ( ) ;
241
+ xmlNodeFunctionCodes . AppendChild ( xmlNodeFunctionCodesProp ) ;
242
+ xmlNodeFunctionCodesProp = xmlDocument . CreateElement ( "startingAddress" ) ;
243
+ xmlNodeFunctionCodesProp . InnerText = this . connectionPropertiesList [ i ] . FunctionPropertiesList [ j ] . StartingAdress . ToString ( ) ;
244
+ xmlNodeFunctionCodes . AppendChild ( xmlNodeFunctionCodesProp ) ;
245
+ xmlNodeConnection . AppendChild ( xmlNodeFunctionCodes ) ;
232
246
}
233
- xmlRoot . AppendChild ( xmlChild1 ) ;
234
- xmlChild1 = xmlDocument . CreateElement ( "dataGridView" ) ;
247
+ xmlRoot . AppendChild ( xmlNodeConnection ) ;
248
+ xmlNodeDataGrid = xmlDocument . CreateElement ( "dataGridView" ) ;
235
249
for ( int j = 0 ; j < dataGridView . Rows . Count ; j ++ )
236
250
{
237
- if ( dataGridView [ 0 , j ] . Value != null & dataGridView [ 1 , j ] . Value != null & dataGridView [ 2 , j ] . Value != null & dataGridView [ 3 , j ] . Value != null )
238
- xmlChild2 = xmlDocument . CreateElement ( "dataGridViewLines" ) ;
239
- xmlChild3 = xmlDocument . CreateElement ( "columnConnection" ) ;
240
- if ( dataGridView [ 0 , j ] . Value != null )
241
- xmlChild3 . InnerText = dataGridView [ 0 , j ] . Value . ToString ( ) ;
242
- xmlChild2 . AppendChild ( xmlChild3 ) ;
243
- xmlChild3 = xmlDocument . CreateElement ( "columnAddress" ) ;
244
- if ( dataGridView [ 1 , j ] . Value != null )
245
- xmlChild3 . InnerText = dataGridView [ 1 , j ] . Value . ToString ( ) ;
246
- xmlChild2 . AppendChild ( xmlChild3 ) ;
247
- xmlChild3 = xmlDocument . CreateElement ( "columnTag" ) ;
248
- if ( dataGridView [ 2 , j ] . Value != null )
249
- xmlChild3 . InnerText = dataGridView [ 2 , j ] . Value . ToString ( ) ;
250
- xmlChild2 . AppendChild ( xmlChild3 ) ;
251
- xmlChild3 = xmlDocument . CreateElement ( "columnDataType" ) ;
252
- if ( dataGridView [ 3 , j ] . Value != null )
253
- xmlChild3 . InnerText = dataGridView [ 3 , j ] . Value . ToString ( ) ;
254
- xmlChild2 . AppendChild ( xmlChild3 ) ;
255
- xmlChild1 . AppendChild ( xmlChild2 ) ;
251
+ if ( dataGridView [ 0 , j ] . Value != null & dataGridView [ 1 , j ] . Value != null & dataGridView [ 3 , j ] . Value != null )
252
+ {
253
+ xmlNodeDataGridLines = xmlDocument . CreateElement ( "dataGridViewLines" ) ;
254
+
255
+ xmlNodeDataGridLinesProp = xmlDocument . CreateElement ( "columnConnection" ) ;
256
+ xmlNodeDataGridLinesProp . InnerText = dataGridView [ 0 , j ] . Value . ToString ( ) ;
257
+ xmlNodeDataGridLines . AppendChild ( xmlNodeDataGridLinesProp ) ;
256
258
259
+ xmlNodeDataGridLinesProp = xmlDocument . CreateElement ( "columnAddress" ) ;
260
+ xmlNodeDataGridLinesProp . InnerText = dataGridView [ 1 , j ] . Value . ToString ( ) ;
261
+ xmlNodeDataGridLines . AppendChild ( xmlNodeDataGridLinesProp ) ;
262
+
263
+ xmlNodeDataGridLinesProp = xmlDocument . CreateElement ( "columnTag" ) ;
264
+ if ( dataGridView [ 2 , j ] . Value != null )
265
+ xmlNodeDataGridLinesProp . InnerText = dataGridView [ 2 , j ] . Value . ToString ( ) ;
266
+ else
267
+ xmlNodeDataGridLinesProp . InnerText = "n.a." ;
268
+ xmlNodeDataGridLines . AppendChild ( xmlNodeDataGridLinesProp ) ;
269
+
270
+ xmlNodeDataGridLinesProp = xmlDocument . CreateElement ( "columnDataType" ) ;
271
+ xmlNodeDataGridLinesProp . InnerText = dataGridView [ 3 , j ] . Value . ToString ( ) ;
272
+ xmlNodeDataGridLines . AppendChild ( xmlNodeDataGridLinesProp ) ;
273
+
274
+ xmlNodeDataGrid . AppendChild ( xmlNodeDataGridLines ) ;
275
+ }
257
276
}
258
- xmlRoot . AppendChild ( xmlChild1 ) ;
277
+ xmlRoot . AppendChild ( xmlNodeDataGrid ) ;
278
+
259
279
xmlDocument . AppendChild ( xmlRoot ) ;
260
280
xmlDocument . Save ( "textWriter.xml" ) ;
261
281
}
@@ -273,7 +293,9 @@ public void ReadXML(DataGridView dataGridView)
273
293
System . Xml . XmlDocument xmlDocument = new System . Xml . XmlDocument ( ) ;
274
294
xmlDocument . Load ( "textWriter.xml" ) ;
275
295
xmlNodeList = xmlDocument . GetElementsByTagName ( "connection" ) ;
276
- connectionPropertiesList = new List < ConnectionProperties > ( ) ;
296
+ //connectionPropertiesList = new List<ConnectionProperties>();
297
+ this . connectionPropertiesList . Clear ( ) ;
298
+
277
299
foreach ( XmlNode xmlNode in xmlNodeList )
278
300
{
279
301
ConnectionProperties connectionProperty = new ConnectionProperties ( ) ;
@@ -313,10 +335,12 @@ public void ReadXML(DataGridView dataGridView)
313
335
connectionProperty . FunctionPropertiesList . Add ( functionProperty ) ;
314
336
xmlNode3 = xmlNode3 . NextSibling ;
315
337
}
316
- connectionPropertiesList . Add ( connectionProperty ) ;
338
+ AddConnection ( connectionProperty ) ;
339
+ //this.connectionPropertiesList.Add(connectionProperty);
317
340
}
318
341
if ( connectionPropertiesListChanged != null )
319
342
connectionPropertiesListChanged ( this ) ;
343
+
320
344
xmlNodeList = xmlDocument . GetElementsByTagName ( "dataGridViewLines" ) ;
321
345
dataGridView . Rows . Clear ( ) ;
322
346
dataGridView . AllowUserToAddRows = false ;
0 commit comments