Files

361 lines
7.7 KiB
VB.net
Raw Permalink Normal View History

2025-12-11 10:06:44 +08:00
Imports System.Xml.Serialization
<Serializable>
<XmlRoot(ElementName:="DeviceModeInfo")>
Public Class DeviceModel
''' <summary>
''' 客户名称
''' </summary>
''' <returns></returns>
<XmlIgnore> '忽略,字段不参与序列号和反序列化
Public Property VerdorName As String
''' <summary>
''' 设备文件名
''' </summary>
Public filename As String
''' <summary>
''' 酒店名称
''' </summary>
''' <returns></returns>
<XmlIgnore>
Public Property HotelName As String
''' <summary>
''' 酒店房型
''' </summary>
''' <returns></returns>
<XmlIgnore>
Public Property HotelRoomType As String
''' <summary>
''' 模型名称
''' </summary>
<XmlAttribute>
Public Name As String
''' <summary>
''' 模型说明
''' </summary>
<XmlElement("Description")>
Public Desc As DeviceDescription
''' <summary>
''' 模型配置信息
''' </summary>
<XmlArray("Common_Configuration"), XmlArrayItem("ConfigurationGroup", GetType(DeviceModelConfigGroup))>
Public Config As List(Of DeviceModelConfigGroup)
''' <summary>
''' 模型子节点
''' </summary>
<XmlArray("DeviceObjectNodes"), XmlArrayItem("DeviceClass", GetType(DeviceChildNodeClass))>
Public Nodes As List(Of DeviceChildNodeClass)
Sub New()
Desc = New DeviceDescription
Config = New List(Of DeviceModelConfigGroup)
Nodes = New List(Of DeviceChildNodeClass)
End Sub
End Class
<XmlRoot(ElementName:="Description")>
Public Class DeviceDescription
''' <summary>
''' 设备名称
''' </summary>
''' <returns></returns>
<XmlElement("DEV_NAME")>
Public Property Name As String
''' <summary>
''' 设备商标
''' </summary>
''' <returns></returns>
<XmlElement("DEV_BRAND")>
Public Property Brand As String
''' <summary>
''' 设备模型
''' </summary>
''' <returns></returns>
<XmlElement("DEV_MN")>
Public Property Model As String
''' <summary>
''' 协议
''' </summary>
''' <returns></returns>
<XmlElement("PROTOCOL")>
Public Property Protocol As String
''' <summary>
''' 协议数据
''' </summary>
''' <returns></returns>
<XmlElement("PROTOCOL_DATA")>
Public Property ProtocolData As String
''' <summary>
''' 协议版本
''' </summary>
''' <returns></returns>
<XmlElement("PROTOCOL_VER")>
Public Property ProtocolVer As String
''' <summary>
''' 设备接口
''' </summary>
''' <returns></returns>
<XmlElement("DEV_INTERFACE")>
Public Property DevInterface As String
''' <summary>
''' 设备类型数据
''' </summary>
''' <returns></returns>
<XmlElement("DEV_TYPE_DATA")>
Public Property DevTypeData As String
''' <summary>
''' 设备数据模型版本
''' </summary>
''' <returns></returns>
<XmlElement("DEV_DATA_MODEL_VER")>
Public Property DevDataModelVer As String
''' <summary>
''' 设备说明
''' </summary>
''' <returns></returns>
<XmlElement("DEV_DESCRIPTION")>
Public Property DevDescription As String
''' <summary>
''' 设备说明
''' </summary>
''' <returns></returns>
<XmlElement("IconKey")>
Public Property IconKey As String
''' <summary>
''' 引用基类的名称
''' </summary>
''' <returns></returns>
<XmlElement("DEV_BASIC_CLASS_FILENAME")>
Public Property DevBasicClassFilename As String
''' <summary>
''' 引用条件的名称
''' </summary>
''' <returns></returns>
<XmlElement("DEV_CONDICTION_FILENAME")>
Public Property DevCondictionFilename As String
Sub New()
End Sub
End Class
Public Class DeviceChildNodeClass
<XmlAttribute>
Public Property Name As String
<XmlAttribute>
Public Property [Interface] As String
<XmlAttribute>
Public Property DEV_TYPE_DATA As String
<XmlAttribute>
Public Property PROTOCOL_VER As String
<XmlElement("Node")>
Public Nodes As List(Of DeviceChildNode)
Sub New()
Nodes = New List(Of DeviceChildNode)
End Sub
End Class
Public Class DeviceChildNode
<XmlAttribute>
Public Property Name As String
<XmlAttribute>
Public Property DefaultAliasName As String
<XmlAttribute>
Public Property [Interface] As String
<XmlAttribute>
Public Property LoopAddr As String
<XmlAttribute>
Public Property DefaultClass As String
<XmlAttribute>
Public Property Description As String
''' <summary>
''' 设备对象类型可选对象类型集合
''' </summary>
''' <returns></returns>
<XmlElement("BaseClassSelect")>
Public Property BaseClasses As BaseClasses
Sub New()
End Sub
End Class
Public Class BaseClasses
<XmlElement("BaseClass")>
Public Classes As List(Of BaseClass)
<XmlIgnore> '忽略字段不参与序列号和反序列化Classes的元素个数
Public ClassesLstCnt As Integer
Sub New()
Classes = New List(Of BaseClass)
ClassesLstCnt = 0
End Sub
Public Function GetAllClassName() As String()
Dim s As New List(Of String)
For Each base As BaseClass In Classes
s.Add(base.Name)
Next
ClassesLstCnt = s.Count
Return s.ToArray
End Function
End Class
Public Class BaseClass
<XmlAttribute>
Public Property Name As String
<XmlAttribute>
Public Property [Interface] As String
<XmlText>
Public Property Value As String
End Class
Public Class DeviceModelConfigGroup
<XmlAttribute>
Public Property Name As String
<XmlAttribute>
Public Property CFG_Type As String
<XmlAttribute>
Public Property CFG_Value As String
<XmlElement("Configuration")>
Public Attributes As List(Of DeviceChildNodeAttribute)
Sub New()
Attributes = New List(Of DeviceChildNodeAttribute)
End Sub
End Class
Public Class DeviceChildNodeAttribute
<XmlAttribute("Name")>
Public Property Name As String
<XmlAttribute("DataType")>
Public Property DataType As String
<XmlAttribute("DataRange")>
Public Property DataRange As String
<XmlAttribute("DataRangeValue")>
Public Property DataRangeValue As String
<XmlAttribute("DataDefault")>
Public Property DataDefault As String
<XmlAttribute("Desc")>
Public Property Desc As String
<XmlText>
Public Property Value As String
Sub New()
DataRangeValue = ""
End Sub
End Class
Public Class DeviceChildNodeEvent
<XmlAttribute("Name")>
Public Property Name As String
<XmlAttribute("DataValue")>
Public Property DataValue As String
<XmlAttribute("Desc")>
Public Property Desc As String
<XmlText>
Public Property Value As String
End Class
Public Class DeviceChildNodeMethod
<XmlAttribute("Name")>
Public Property Name As String
<XmlAttribute("Desc")>
Public Property Desc As String
<XmlArray("Params"), XmlArrayItem("Param", GetType(DeviceChildNodeMethodParam))>
Public Params As List(Of DeviceChildNodeMethodParam)
Sub New()
Params = New List(Of DeviceChildNodeMethodParam)
End Sub
End Class
Public Class DeviceChildNodeMethodParam
<XmlAttribute("Name")>
Public Property Name As String
<XmlAttribute("DataType")>
Public Property DataType As String
<XmlAttribute("DataRange")>
Public Property DataRange As String
<XmlAttribute("DataRangeValue")>
Public Property DataRangeValue As String
<XmlAttribute("DataDefault")>
Public Property DataDefault As String
<XmlAttribute("Desc")>
Public Property Desc As String
<XmlText>
Public Property Value As String
Sub New()
DataRangeValue = ""
End Sub
End Class