443 lines
22 KiB
VB.net
443 lines
22 KiB
VB.net
|
|
Imports FlexCell
|
|||
|
|
Public Class ReportingScenario
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
Sub New(_UserName As String, _HotleID As String, _RoomTypeID As String, filename As String, Version As String, grd As FlexCell.Grid, Devicemodel As Dictionary(Of String, DeviceModel), ActionConfiguration As List(Of TableRowTag))
|
|||
|
|
UserName = _UserName
|
|||
|
|
RoomTypeID = _RoomTypeID
|
|||
|
|
HotleID = _HotleID
|
|||
|
|
DevColList = New List(Of MTableSet)
|
|||
|
|
' DevRowList = New List(Of MTableSet)
|
|||
|
|
ConfigurationName = filename
|
|||
|
|
ConfigurationVersion = Version
|
|||
|
|
Tgrd = grd
|
|||
|
|
TDevicemodel = Devicemodel
|
|||
|
|
'Runing(grd, Devicemodel, ActionConfiguration)
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
Sub New(grd As FlexCell.Grid, Devicemodel As Dictionary(Of String, DeviceModel))
|
|||
|
|
Tgrd = grd
|
|||
|
|
TDevicemodel = Devicemodel
|
|||
|
|
End Sub
|
|||
|
|
'配置名称
|
|||
|
|
Public ConfigurationName As String
|
|||
|
|
'配置版本
|
|||
|
|
Public ConfigurationVersion As String
|
|||
|
|
Public HotleID As String
|
|||
|
|
Public RoomTypeID As String
|
|||
|
|
Public UserName As String
|
|||
|
|
Public Tgrd As FlexCell.Grid
|
|||
|
|
Public DevColList As List(Of MTableSet)
|
|||
|
|
Public TDevicemodel As Dictionary(Of String, DeviceModel)
|
|||
|
|
'列集合
|
|||
|
|
'{
|
|||
|
|
' 设备名
|
|||
|
|
' 设备节点集合
|
|||
|
|
' { 节点类型
|
|||
|
|
' 节点名
|
|||
|
|
' 节点下属回路集合 键值对 k:回路 v : 回路别名
|
|||
|
|
|
|||
|
|
' }
|
|||
|
|
|
|||
|
|
''}
|
|||
|
|
Public DevRowList As List(Of MTableSet)
|
|||
|
|
'行集合
|
|||
|
|
'{
|
|||
|
|
' 设备名
|
|||
|
|
'' 设备节点集合
|
|||
|
|
'' { 节点类型
|
|||
|
|
'' 节点名
|
|||
|
|
'' 节点下属回路集合 键值对 k:回路 v : 回路别名
|
|||
|
|
|
|||
|
|
'' }
|
|||
|
|
'}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#Region "数据处理"
|
|||
|
|
Public Function getDateDisposeRuning() As List(Of MDevNodeMessage)
|
|||
|
|
Return DateDisposeRuning(Tgrd, TDevicemodel)
|
|||
|
|
End Function
|
|||
|
|
Public Function DateDisposeRuning(_grd As FlexCell.Grid, _Devicemodel As Dictionary(Of String, DeviceModel)) As List(Of MDevNodeMessage)
|
|||
|
|
If IsNothing(_grd) Then Return Nothing
|
|||
|
|
Dim ACtabRange As CtabRange
|
|||
|
|
Dim rt As New RoomTypeConfig(RoomTypeID)
|
|||
|
|
Dim ot As String = "1"
|
|||
|
|
Dim result As New List(Of MDevNodeMessage)
|
|||
|
|
Dim dic As New Dictionary(Of String, MDevNodeMessage)
|
|||
|
|
Dim NodeLoopname As String
|
|||
|
|
Dim NCtabRange As CtabRange
|
|||
|
|
Dim NodeLoop As String = String.Empty
|
|||
|
|
For Each Dev In _Devicemodel '遍历设备
|
|||
|
|
|
|||
|
|
For Each DevNode In Dev.Value.Nodes '遍历设备下属子节点
|
|||
|
|
Dim devAddr As String = GetActionDeviceAddr(Dev.Value, DevNode.Name).ToString
|
|||
|
|
If DevNode.Interface.Equals("DO") OrElse DevNode.Interface.Equals("LIGHT") Then '判断是否为输出设备
|
|||
|
|
If DevNode.DEV_TYPE_DATA.Equals("4") Then '服务设备节点特殊处理
|
|||
|
|
|
|||
|
|
For ni As Integer = 0 To 14
|
|||
|
|
NodeLoopname = DevNode.Nodes.Item(ni).Name
|
|||
|
|
NodeLoop = DevNode.Nodes.Item(ni).LoopAddr
|
|||
|
|
NodeLoop = $"{DevNode.DEV_TYPE_DATA.PadLeft(3, "0")}{devAddr.PadLeft(3, "0")}{NodeLoop.PadLeft(3, "0")}"
|
|||
|
|
If dic.ContainsKey(NodeLoop) Then Continue For
|
|||
|
|
ot = Dev.Value.Name
|
|||
|
|
ot = ot.Replace(vbLf, "").Replace(vbCr, "").Replace(":", "").Replace("\", "").Replace("/", "").Replace("|", "").Replace("'", "").Replace("'", "").Replace("?", "").Replace("!", "").Replace("`", "")
|
|||
|
|
Dim datenode As New MDevNodeMessage(result.Count, NodeLoop, ot, NodeLoopname, DevNode.DEV_TYPE_DATA, rt)
|
|||
|
|
dic.Add(NodeLoop, datenode)
|
|||
|
|
result.Add(datenode)
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
For ri As Integer = TableInteraction.TableRowNumber.Max To _grd.Rows - 1 ' 遍历每行找到服务起始行
|
|||
|
|
ACtabRange = New CtabRange(_grd, ri, TableInteraction.TableColNumber.DeviceName)
|
|||
|
|
If ACtabRange.devname.Equals("HOSTSERVICE") Then '找到服务集合
|
|||
|
|
|
|||
|
|
For cj As Integer = ACtabRange.fr To ACtabRange.lr
|
|||
|
|
NodeLoopname = _grd.Cell(cj, TableInteraction.TableColNumber.KeyName).Text.Replace(vbLf, "").Replace(vbCr, "").Replace(":", "").Replace("\", "").Replace("/", "").Replace("|", "").Replace("'", "").Replace("'", "").Replace("?", "").Replace("!", "").Replace("`", "")
|
|||
|
|
|
|||
|
|
NodeLoop = _grd.Cell(cj, TableInteraction.TableColNumber.KeyVal).Text
|
|||
|
|
NodeLoop = $"{DevNode.DEV_TYPE_DATA.PadLeft(3, "0")}{devAddr.PadLeft(3, "0")}{NodeLoop.PadLeft(3, "0")}"
|
|||
|
|
If dic.ContainsKey(NodeLoop) Then Continue For
|
|||
|
|
ot = Dev.Value.Name
|
|||
|
|
ot = ot.Replace(vbLf, "").Replace(vbCr, "").Replace(":", "").Replace("\", "").Replace("/", "").Replace("|", "").Replace("'", "").Replace("'", "").Replace("?", "").Replace("!", "").Replace("`", "")
|
|||
|
|
Dim datenode As New MDevNodeMessage(result.Count, NodeLoop, ot, NodeLoopname, DevNode.DEV_TYPE_DATA, rt)
|
|||
|
|
dic.Add(NodeLoop, datenode)
|
|||
|
|
result.Add(datenode)
|
|||
|
|
Next
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
Exit For '完成遍历退出服务输出的处理
|
|||
|
|
Else '正常输出节点
|
|||
|
|
For i As Integer = TableInteraction.TableColNumber.InsertColumn To _grd.Cols - 2
|
|||
|
|
ACtabRange = New CtabRange(_grd, TableInteraction.TableRowNumber.DeviceName, i)
|
|||
|
|
If ACtabRange.devname.Equals(Dev.Key) Then '在表格找到对应设备
|
|||
|
|
For j As Integer = ACtabRange.fc To ACtabRange.lc '遍历设备下属节点集合
|
|||
|
|
NCtabRange = New CtabRange(_grd, TableInteraction.TableRowNumber.FunctionName, j)
|
|||
|
|
If NCtabRange.devname.ToUpper.Equals("LIGHT") Then
|
|||
|
|
NCtabRange.devname = "DO"
|
|||
|
|
End If
|
|||
|
|
If NCtabRange.devname.ToUpper.Equals("DRY_CURTAIN") Then
|
|||
|
|
NCtabRange.devname = "CURTAIN"
|
|||
|
|
End If
|
|||
|
|
If DevNode.Name.ToUpper.Equals(NCtabRange.devname.ToUpper) Then '找到当前设备的当前节点
|
|||
|
|
For k = NCtabRange.fc To NCtabRange.lc '遍历当前节点下属回路集合
|
|||
|
|
If _grd.Column(k).Visible = True Then '过滤隐藏的回路
|
|||
|
|
NodeLoopname = _grd.Cell(TableInteraction.TableRowNumber.FunctionChildNodeAnother, k).Text.Replace(vbLf, "").Replace(vbCr, "").Replace(":", "").Replace("\", "").Replace("/", "").Replace("|", "").Replace("'", "").Replace("'", "").Replace("?", "").Replace("!", "").Replace("`", "")
|
|||
|
|
If DevNode.Nodes.Count = 1 Then
|
|||
|
|
NodeLoop = 0
|
|||
|
|
Else
|
|||
|
|
NodeLoop = _grd.Cell(TableInteraction.TableRowNumber.FunctionChildNodeID, k).Text
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
NodeLoop = $"{DevNode.DEV_TYPE_DATA.PadLeft(3, "0")}{devAddr.PadLeft(3, "0")}{NodeLoop.PadLeft(3, "0")}"
|
|||
|
|
If dic.ContainsKey(NodeLoop) Then Continue For
|
|||
|
|
ot = Dev.Value.Name
|
|||
|
|
ot = ot.Replace(vbLf, "").Replace(vbCr, "").Replace(":", "").Replace("\", "").Replace("/", "").Replace("|", "").Replace("'", "").Replace("'", "").Replace("`", "").Replace("?", "").Replace("!", "").Replace(" ", "")
|
|||
|
|
Dim datenode As New MDevNodeMessage(result.Count, NodeLoop, ot, NodeLoopname, DevNode.DEV_TYPE_DATA, rt)
|
|||
|
|
dic.Add(NodeLoop, datenode)
|
|||
|
|
result.Add(datenode)
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
Exit For
|
|||
|
|
End If
|
|||
|
|
j = NCtabRange.lc
|
|||
|
|
Next
|
|||
|
|
Exit For
|
|||
|
|
End If
|
|||
|
|
i = ACtabRange.lc
|
|||
|
|
Next
|
|||
|
|
End If
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
Next
|
|||
|
|
Return result
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
'Public Sub Runing(_grd As FlexCell.Grid, _Devicemodel As Dictionary(Of String, DeviceModel), _ActionConfiguration As List(Of TableRowTag))
|
|||
|
|
|
|||
|
|
' If IsNothing(_grd) Then Return
|
|||
|
|
' Dim nodename As String = String.Empty
|
|||
|
|
|
|||
|
|
' Dim ACtabRange As CtabRange
|
|||
|
|
' Dim NCtabRange As CtabRange
|
|||
|
|
' Dim CdevMode As DeviceModel
|
|||
|
|
' Dim CdevModeNode As DeviceChildNodeClass
|
|||
|
|
' Dim AnotherName As String = String.Empty
|
|||
|
|
' Dim Result As String = String.Empty
|
|||
|
|
' Dim NodeLoop As String = String.Empty
|
|||
|
|
' Dim NodeLoopname As String = String.Empty
|
|||
|
|
' Dim scene As String = String.Empty
|
|||
|
|
' For i As Integer = TableInteraction.TableColNumber.InsertColumn To _grd.Cols - 2
|
|||
|
|
' ACtabRange = New CtabRange(_grd, TableInteraction.TableRowNumber.DeviceName, i)
|
|||
|
|
' '遍历设备
|
|||
|
|
' If Not String.IsNullOrEmpty(ACtabRange.devname) AndAlso _Devicemodel.ContainsKey(ACtabRange.devname) Then
|
|||
|
|
' CdevMode = _Devicemodel.Item(ACtabRange.devname)
|
|||
|
|
' Dim nMTableSet As New MTableSet(ACtabRange.devname)
|
|||
|
|
' DevColList.Add(nMTableSet)
|
|||
|
|
' '遍历设备节点
|
|||
|
|
' For j As Integer = ACtabRange.fc To ACtabRange.lc
|
|||
|
|
' NCtabRange = New CtabRange(_grd, TableInteraction.TableRowNumber.FunctionName, j)
|
|||
|
|
' CdevModeNode = Nothing
|
|||
|
|
' For Each index In CdevMode.Nodes
|
|||
|
|
' If index.Name.Equals(NCtabRange.devname) Then
|
|||
|
|
' CdevModeNode = index
|
|||
|
|
' Exit For
|
|||
|
|
' End If
|
|||
|
|
' Next
|
|||
|
|
' If Not IsNothing(CdevModeNode) Then
|
|||
|
|
' Result = CdevModeNode.DEV_TYPE_DATA.PadLeft(3, "0")
|
|||
|
|
|
|||
|
|
' Dim Mdnm As New MDevNodeMessage(CdevModeNode.Name, Result)
|
|||
|
|
' nMTableSet.DevNode.Add(Mdnm)
|
|||
|
|
' '遍历遍历设备节点下属回路
|
|||
|
|
' For k = NCtabRange.fc To NCtabRange.lc
|
|||
|
|
' If _grd.Column(k).Visible = True Then
|
|||
|
|
' Dim dic As New Dictionary(Of String, String)
|
|||
|
|
' NodeLoop = _grd.Cell(TableInteraction.TableRowNumber.FunctionChildNodeID, k).Text
|
|||
|
|
' NodeLoopname = _grd.Cell(TableInteraction.TableRowNumber.FunctionChildNodeAnother, k).Text
|
|||
|
|
' If Mdnm.DevNodeDic.ContainsKey(NodeLoop) Then
|
|||
|
|
' Continue For
|
|||
|
|
' Else
|
|||
|
|
' dic.Add("回路别名", NodeLoopname)
|
|||
|
|
' Mdnm.DevNodeDic.Add(NodeLoop, dic)
|
|||
|
|
' End If
|
|||
|
|
' End If
|
|||
|
|
' Next
|
|||
|
|
' End If
|
|||
|
|
' j = NCtabRange.lc
|
|||
|
|
' Next
|
|||
|
|
|
|||
|
|
' End If
|
|||
|
|
' i = ACtabRange.lc
|
|||
|
|
' Next
|
|||
|
|
' Dim rowtag As TableRowTag
|
|||
|
|
' For i As Integer = TableInteraction.TableRowNumber.Max To _grd.Rows - 1
|
|||
|
|
' ACtabRange = New CtabRange(_grd, i, TableInteraction.TableColNumber.DeviceName)
|
|||
|
|
' If ACtabRange.devname.Equals("HOSTSERVICE") Then
|
|||
|
|
' ACtabRange.devname = _Devicemodel.Keys(0)
|
|||
|
|
' End If
|
|||
|
|
|
|||
|
|
' If Not String.IsNullOrEmpty(ACtabRange.devname) AndAlso (_Devicemodel.ContainsKey(ACtabRange.devname)) Then
|
|||
|
|
' CdevMode = _Devicemodel.Item(ACtabRange.devname)
|
|||
|
|
' Dim nMTableSet As New MTableSet(ACtabRange.devname)
|
|||
|
|
' DevRowList.Add(nMTableSet)
|
|||
|
|
' '遍历设备
|
|||
|
|
' For j As Integer = ACtabRange.fr To ACtabRange.lr
|
|||
|
|
|
|||
|
|
' If j >= TableInteraction.TableRowNumber.Max AndAlso (i - TableInteraction.TableRowNumber.Max < _ActionConfiguration.Count) Then
|
|||
|
|
' rowtag = _ActionConfiguration.Item(j - TableInteraction.TableRowNumber.Max)
|
|||
|
|
' CdevModeNode = Nothing
|
|||
|
|
' For Each index In CdevMode.Nodes
|
|||
|
|
' If index.Name.Equals(rowtag.G_DevNodeName) Then
|
|||
|
|
' CdevModeNode = index
|
|||
|
|
' Exit For
|
|||
|
|
' End If
|
|||
|
|
' Next
|
|||
|
|
' If Not IsNothing(CdevModeNode) Then
|
|||
|
|
' Result = CdevModeNode.DEV_TYPE_DATA.PadLeft(3, "0")
|
|||
|
|
' NodeLoop = _grd.Cell(j, TableInteraction.TableColNumber.KeyVal).Text
|
|||
|
|
' Dim Tisbol As Boolean = True
|
|||
|
|
' For Each Tindex In nMTableSet.DevNode
|
|||
|
|
' If Tindex.DevNodeName.Equals(CdevModeNode.Name) AndAlso Tindex.DevNodeDic.ContainsKey(NodeLoop) Then
|
|||
|
|
' Tisbol = False
|
|||
|
|
' Continue For
|
|||
|
|
' End If
|
|||
|
|
' Next
|
|||
|
|
' If Tisbol = False Then Continue For
|
|||
|
|
|
|||
|
|
' Dim Mdnm As New MDevNodeMessage(CdevModeNode.Name, Result)
|
|||
|
|
' nMTableSet.DevNode.Add(Mdnm)
|
|||
|
|
' '遍历遍历设备节点下属回路
|
|||
|
|
|
|||
|
|
' If _grd.Row(j).Visible = True Then
|
|||
|
|
' Dim dic As New Dictionary(Of String, String)
|
|||
|
|
|
|||
|
|
' NodeLoopname = _grd.Cell(j, TableInteraction.TableColNumber.KeyName).Text
|
|||
|
|
' scene = _grd.Cell(j, TableInteraction.TableColNumber.SceneID).Text
|
|||
|
|
' If Mdnm.DevNodeDic.ContainsKey(NodeLoop) Then
|
|||
|
|
' Continue For
|
|||
|
|
' Else
|
|||
|
|
' dic.Add("回路别名", NodeLoopname)
|
|||
|
|
' dic.Add("场景号", scene)
|
|||
|
|
' Mdnm.DevNodeDic.Add(NodeLoop, dic)
|
|||
|
|
' End If
|
|||
|
|
' End If
|
|||
|
|
|
|||
|
|
' End If
|
|||
|
|
' End If
|
|||
|
|
|
|||
|
|
' Next
|
|||
|
|
|
|||
|
|
' End If
|
|||
|
|
' i = ACtabRange.lr
|
|||
|
|
' Next
|
|||
|
|
|
|||
|
|
|
|||
|
|
'End Sub
|
|||
|
|
|
|||
|
|
'Public Sub Runing(_grd As FlexCell.Grid, _Devicemodel As Dictionary(Of String, DeviceModel), _ActionConfiguration As List(Of TableRowTag))
|
|||
|
|
' If IsNothing(_grd) Then Return
|
|||
|
|
' Dim ACtabRange As CtabRange
|
|||
|
|
' Dim NCtabRange As CtabRange
|
|||
|
|
' Dim NodeLoopname As String
|
|||
|
|
' Dim NodeLoop As String = String.Empty
|
|||
|
|
' For Each Dev In _Devicemodel '遍历设备
|
|||
|
|
' Dim nMTableSet As New MTableSet(Dev.Key)
|
|||
|
|
' DevColList.Add(nMTableSet)
|
|||
|
|
' For Each DevNode In Dev.Value.Nodes '遍历设备下属子节点
|
|||
|
|
' If DevNode.Interface.Equals("DO") Then '判断是否为输出设备
|
|||
|
|
' If DevNode.DEV_TYPE_DATA.Equals("4") Then '服务设备节点特殊处理
|
|||
|
|
' For ri As Integer = TableInteraction.TableRowNumber.Max To _grd.Rows - 1 ' 遍历每行找到服务起始行
|
|||
|
|
' ACtabRange = New CtabRange(_grd, ri, TableInteraction.TableColNumber.DeviceName)
|
|||
|
|
' If ACtabRange.devname.Equals("HOSTSERVICE") Then '找到服务集合
|
|||
|
|
' Dim devAddr As String = GetActionDeviceAddr(Dev.Value, DevNode.Name).ToString
|
|||
|
|
' Dim devnodename As String = TableInteraction.GetAnotherName(DevNode.Name)
|
|||
|
|
' Dim MDevNode As New MDevNodeMessage(devAddr, devnodename, DevNode.DEV_TYPE_DATA)
|
|||
|
|
' nMTableSet.DevNode.Add(MDevNode)
|
|||
|
|
' For cj As Integer = ACtabRange.fr To ACtabRange.lr '遍历服务集合
|
|||
|
|
' NodeLoopname = _grd.Cell(cj, TableInteraction.TableColNumber.KeyName).Text
|
|||
|
|
' NodeLoop = _grd.Cell(cj, TableInteraction.TableColNumber.KeyVal).Text
|
|||
|
|
' If MDevNode.DevNodeDic.ContainsKey(NodeLoop) Then
|
|||
|
|
' Continue For
|
|||
|
|
' Else
|
|||
|
|
' Dim dic As New Dictionary(Of String, String)
|
|||
|
|
' dic.Add("回路别名", NodeLoopname)
|
|||
|
|
' dic.Add("回路地址", NodeLoop)
|
|||
|
|
' MDevNode.DevNodeDic.Add(NodeLoop, dic)
|
|||
|
|
' End If
|
|||
|
|
|
|||
|
|
|
|||
|
|
' Next
|
|||
|
|
' Exit For '完成遍历退出服务输出的处理
|
|||
|
|
' End If
|
|||
|
|
' Next
|
|||
|
|
' Else '正常输出节点
|
|||
|
|
' For i As Integer = TableInteraction.TableColNumber.InsertColumn To _grd.Cols - 2
|
|||
|
|
' ACtabRange = New CtabRange(_grd, TableInteraction.TableRowNumber.DeviceName, i)
|
|||
|
|
' If ACtabRange.devname.Equals(Dev.Key) Then '在表格找到对应设备
|
|||
|
|
' For j As Integer = ACtabRange.fc To ACtabRange.lc '遍历设备下属节点集合
|
|||
|
|
' NCtabRange = New CtabRange(_grd, TableInteraction.TableRowNumber.FunctionName, j)
|
|||
|
|
' If DevNode.Name.Equals(NCtabRange.devname) Then '找到当前设备的当前节点
|
|||
|
|
' Dim devAddr As String = GetActionDeviceAddr(Dev.Value, DevNode.Name).ToString
|
|||
|
|
' Dim devnodename As String = TableInteraction.GetAnotherName(DevNode.Name)
|
|||
|
|
' Dim MDevNode As New MDevNodeMessage(devAddr, devnodename, DevNode.DEV_TYPE_DATA)
|
|||
|
|
' nMTableSet.DevNode.Add(MDevNode)
|
|||
|
|
' For k = NCtabRange.fc To NCtabRange.lc '遍历当前节点下属回路集合
|
|||
|
|
' NodeLoopname = String.Empty
|
|||
|
|
' If _grd.Column(k).Visible = True Then '过滤隐藏的回路
|
|||
|
|
' NodeLoopname = _grd.Cell(TableInteraction.TableRowNumber.FunctionChildNodeAnother, k).Text
|
|||
|
|
' NodeLoop = _grd.Cell(TableInteraction.TableRowNumber.FunctionChildNodeID, k).Text
|
|||
|
|
' Dim dic As New Dictionary(Of String, String)
|
|||
|
|
' dic.Add("回路别名", NodeLoopname)
|
|||
|
|
' dic.Add("回路地址", NodeLoop)
|
|||
|
|
' MDevNode.DevNodeDic.Add(NodeLoop, dic)
|
|||
|
|
|
|||
|
|
|
|||
|
|
' End If
|
|||
|
|
' Next
|
|||
|
|
|
|||
|
|
|
|||
|
|
' Exit For
|
|||
|
|
' End If
|
|||
|
|
' j = NCtabRange.lc
|
|||
|
|
' Next
|
|||
|
|
' Exit For
|
|||
|
|
' End If
|
|||
|
|
' i = ACtabRange.lc
|
|||
|
|
' Next
|
|||
|
|
' End If
|
|||
|
|
' End If
|
|||
|
|
' Next
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
' Next
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
'End Sub
|
|||
|
|
|
|||
|
|
Private Function GetActionDeviceAddr(Dev As DeviceModel, DevNodeName As String) As Integer
|
|||
|
|
|
|||
|
|
For Each index In Dev.Config
|
|||
|
|
|
|||
|
|
If index.Name.Equals($"{DevNodeName }设备组信息") Then
|
|||
|
|
For Each node In index.Attributes
|
|||
|
|
If node.Name.Equals("DeviceAddr") Then
|
|||
|
|
Return CInt(node.DataDefault)
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
If index.Name.Equals($"设备存在") Then
|
|||
|
|
For Each node In index.Attributes
|
|||
|
|
If node.Name.Equals("拨码地址") Then
|
|||
|
|
Return CInt(node.Value)
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
Return -1
|
|||
|
|
End Function
|
|||
|
|
#End Region
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
End Class
|
|||
|
|
|
|||
|
|
Public Class MTableSet
|
|||
|
|
|
|||
|
|
Public Sub New(name As String)
|
|||
|
|
DevNode = New List(Of MDevNodeMessage)
|
|||
|
|
DevName = name
|
|||
|
|
End Sub
|
|||
|
|
' 设备名
|
|||
|
|
Public DevName As String
|
|||
|
|
' 设备下所有输出节点
|
|||
|
|
Public DevNode As List(Of MDevNodeMessage)
|
|||
|
|
End Class
|
|||
|
|
Public Class MDevNodeMessage
|
|||
|
|
Public Sub New(addr As String, NodeName As String, NodeType As String)
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
Public Sub New(yid As Integer, Ma As String, ol As String, Nm As String, Ty As String, RTy As RoomTypeConfig)
|
|||
|
|
ID = yid
|
|||
|
|
ModalAddress = Ma
|
|||
|
|
outlet = ol
|
|||
|
|
Name = Nm
|
|||
|
|
Type = Ty
|
|||
|
|
RoomType = RTy
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
'序号
|
|||
|
|
Dim ID As Integer
|
|||
|
|
' 设备地址
|
|||
|
|
Public ModalAddress As String
|
|||
|
|
'设备输出节点名
|
|||
|
|
Public outlet As String
|
|||
|
|
'设备输出节点类型
|
|||
|
|
Public Name As String
|
|||
|
|
'设备输出节点下所有回路和相关信息
|
|||
|
|
Public Type As String
|
|||
|
|
Public RoomType As RoomTypeConfig
|
|||
|
|
End Class
|
|||
|
|
Public Class RoomTypeConfig
|
|||
|
|
Sub New(tID As String)
|
|||
|
|
ID = tID
|
|||
|
|
End Sub
|
|||
|
|
Public ID As String
|
|||
|
|
|
|||
|
|
End Class
|