修复xml设备链表上传缺失设备类型问题

This commit is contained in:
2026-03-10 14:15:53 +08:00
parent c26c2bf49c
commit beb052dcb7

View File

@@ -5397,7 +5397,7 @@ Public Class FrmMain
updataDevnode.DevName = node.Text updataDevnode.DevName = node.Text
updataDevnode.DevAttr = New Dictionary(Of String, Dictionary(Of String, Dictionary(Of String, String))) updataDevnode.DevAttr = New Dictionary(Of String, Dictionary(Of String, Dictionary(Of String, String)))
updataDevnode.DevFunc = New Dictionary(Of String, (String, Dictionary(Of String, (String, String)))) updataDevnode.DevFunc = New Dictionary(Of String, Dictionary(Of String, Dictionary(Of String, Dictionary(Of String, (String, String)))))
''遍历节点默认第一个节点为设备属性 ''遍历节点默认第一个节点为设备属性
For i As Integer = 0 To node.Nodes.Count - 1 For i As Integer = 0 To node.Nodes.Count - 1
@@ -5406,10 +5406,10 @@ Public Class FrmMain
updataDevnode.DevAttr.Add(node.Nodes(i).Text, attr) updataDevnode.DevAttr.Add(node.Nodes(i).Text, attr)
For j As Integer = 0 To node.Nodes(i).Nodes.Count - 1 For j As Integer = 0 To node.Nodes(i).Nodes.Count - 1
Dim attr2 As Dictionary(Of String, String) = New Dictionary(Of String, String) Dim attr2 As Dictionary(Of String, String) = New Dictionary(Of String, String)
attr.Add(node.Nodes(i).Nodes(j).Text, attr2) attr.Add(node.Nodes(i).Nodes(j).name, attr2)
'继续遍历子节点 '继续遍历子节点
For k As Integer = 0 To node.Nodes(i).Nodes(j).Nodes.Count - 1 For k As Integer = 0 To node.Nodes(i).Nodes(j).Nodes.Count - 1
attr2.Add(node.Nodes(i).Nodes(j).Nodes(k).Text, node.Nodes(i).Nodes(j).Nodes(k).devicetype.ToString) attr2.Add(node.Nodes(i).Nodes(j).Nodes(k).name, node.Nodes(i).Nodes(j).Nodes(k).devicetype.ToString)
Next Next
Next Next
Else Else
@@ -5417,31 +5417,44 @@ Public Class FrmMain
If node.Nodes(i).name <> "RS485" AndAlso node.Nodes(i).name <> "VirtualObject" Then If node.Nodes(i).name <> "RS485" AndAlso node.Nodes(i).name <> "VirtualObject" Then
'遍历节点的子节点 '遍历节点的子节点
Dim devtype As String = "0" Dim devtype As String = "0"
Dim tnodename As String Dim addr As String = "0"
Dim tnodename As String
If isRoot Then If isRoot Then
'"设备存在组:DO设备组信息" '"设备存在组:DO设备组信息"
tnodename = $"设备存在组:{node.Nodes(i).name}设备组信息" tnodename = $"{node.Nodes(i).name}设备组信息"
If updataDevnode.DevAttr.Values(0).ContainsKey(tnodename) Then If updataDevnode.DevAttr.Values(0).ContainsKey(tnodename) Then
If updataDevnode.DevAttr.Values(0)(tnodename).ContainsKey("存在:DeviceType") Then If updataDevnode.DevAttr.Values(0)(tnodename).ContainsKey("DeviceType") Then
devtype = updataDevnode.DevAttr.Values(0).Item(tnodename).Item("存在:DeviceType") devtype = updataDevnode.DevAttr.Values(0).Item(tnodename).Item("DeviceType")
End If End If
If updataDevnode.DevAttr.Values(0)(tnodename).ContainsKey("DeviceAddr") Then
addr = updataDevnode.DevAttr.Values(0).Item(tnodename).Item("DeviceAddr")
End If
End If End If
Else Else
devtype = node.Nodes(i).DEV_TYPE_DATA devtype = node.Nodes(i).DEV_TYPE_DATA
tnodename = "设备存在"
If updataDevnode.DevAttr.Values(0)(tnodename).ContainsKey("拨码地址") Then
addr = updataDevnode.DevAttr.Values(0).Item(tnodename).Item("拨码地址")
End If
End If End If
Dim func1 As New Dictionary(Of String, Dictionary(Of String, Dictionary(Of String, (String, String))))
Dim func As Dictionary(Of String, (String, String)) = New Dictionary(Of String, (String, String)) Dim func2 As New Dictionary(Of String, Dictionary(Of String, (String, String)))
' 功能块名 ,类型值 ,别名,序号 Dim func As New Dictionary(Of String, (String, String))
' Dictionary(Of String, (String, Dictionary(Of String, String))) ' 功能块名 类型值 功能块地址 别名,序号
updataDevnode.DevFunc.Add(node.Nodes(i).Text, (devtype, func)) ' Dictionary(Of String, Dictionary(Of String, Dictionary(Of String, Dictionary(Of String, String)))
func2.Add(addr, func)
func1.Add(devtype, func2)
updataDevnode.DevFunc.Add(node.Nodes(i).Text, func1) ' (devtype, func))
'Dim tag As AttributeRowNodeTag = node.Tag 'Dim tag As AttributeRowNodeTag = node.Tag
For j As Integer = 0 To node.Nodes(i).Nodes.Count - 1 For j As Integer = 0 To node.Nodes(i).Nodes.Count - 1
func.Add(node.Nodes(i).Nodes(j).Text, (node.Nodes(i).Nodes(j).index + 1, node.Nodes(i).Nodes(j).deviceAlias)) func.Add(node.Nodes(i).Nodes(j).index + 1, (node.Nodes(i).Nodes(j).Text, node.Nodes(i).Nodes(j).deviceAlias))
Next Next
End If End If
@@ -5549,8 +5562,8 @@ Public Class UpdataDevnode
Public Property DevName As String Public Property DevName As String
'设备属性列表 '设备属性列表
Public Property DevAttr As Dictionary(Of String, Dictionary(Of String, Dictionary(Of String, String))) Public Property DevAttr As Dictionary(Of String, Dictionary(Of String, Dictionary(Of String, String)))
'设备功能模块列表 功能块名称,功能模块回路别名和回路序号 《设备功能名称,《设备类型 ,设备回路集合《回路名称,回路序号》》》 ' 功能块名 类型值 功能块地址 序号 回路名 别名
Public Property DevFunc As Dictionary(Of String, (String, Dictionary(Of String, (String, String)))) Public Property DevFunc As Dictionary(Of String, Dictionary(Of String, Dictionary(Of String, Dictionary(Of String, (String, String)))))
End Class End Class