初始化
This commit is contained in:
563
BLV_Studio/Test/GridTest/DrSeverGrid.vb
Normal file
563
BLV_Studio/Test/GridTest/DrSeverGrid.vb
Normal file
@@ -0,0 +1,563 @@
|
||||
Imports System.Text
|
||||
Imports System.Xml
|
||||
Imports BLV_Studio.TableInteraction
|
||||
Imports FlexCell
|
||||
Imports Newtonsoft.Json
|
||||
|
||||
Public Class DrSeverGrid
|
||||
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 设备键值对 设备名-设备信息集合 主机=主机名 外设=外设名+播马地址
|
||||
''' </summary>
|
||||
Public Dic_Devicemodel As Dictionary(Of String, DeviceModel)
|
||||
''' <summary>
|
||||
''' 设备动作信息 设备名-动作信息集合
|
||||
''' </summary>
|
||||
Public Dic_ActionConfiguration As List(Of TableRowTag)
|
||||
|
||||
Public Dic_Dgrid As Grid
|
||||
|
||||
Public Dic_Bname As String
|
||||
Public Dic_TimeZone As String
|
||||
Public Dic_Cname As String
|
||||
Public G_SceneID As Integer
|
||||
Public ColumnAnothername As Dictionary(Of String, String)
|
||||
Sub New(devlList As Dictionary(Of String, DeviceModel), ActionConfiguration As List(Of TableRowTag), Dgrid As Grid, bname As String, Cname As String)
|
||||
Dic_Devicemodel = devlList
|
||||
Dic_ActionConfiguration = ActionConfiguration
|
||||
Dic_Dgrid = Dgrid
|
||||
Dic_Bname = bname
|
||||
Dic_Cname = Cname
|
||||
ColumnAnothername = New Dictionary(Of String, String)
|
||||
'保存----------
|
||||
'保存基类名称
|
||||
'保存设备类对象
|
||||
'保存动作
|
||||
'提交-----
|
||||
'下载-----
|
||||
'解析到类对象
|
||||
'加载设备对象
|
||||
'加载设备对象约束
|
||||
'加载动作
|
||||
End Sub
|
||||
#Region "Save"
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 保存模型信息至Xml文件
|
||||
''' </summary>
|
||||
''' <param name="OuputFullName">xml完整路径</param>
|
||||
''' <returns></returns>
|
||||
Public Function Save(OuputFullName As String) As Boolean
|
||||
Dim xws As New XmlWriterSettings
|
||||
Dim xmlpath As String = OuputFullName.Replace(".blv", ".xml")
|
||||
Try
|
||||
With xws
|
||||
.Indent = True
|
||||
.NewLineOnAttributes = False
|
||||
.Encoding = New UTF8Encoding(False)
|
||||
End With
|
||||
IO.Directory.CreateDirectory(xmlpath.Substring(0, xmlpath.LastIndexOf("\")))
|
||||
Using xw As XmlWriter = XmlWriter.Create(xmlpath, xws)
|
||||
xw.WriteStartDocument()
|
||||
xw.WriteStartElement($"RcuConfig") '创建跟节点
|
||||
|
||||
'新建基类文件名节点
|
||||
xw.WriteStartElement($"BasicClassFilename") '创建表属性节点
|
||||
xw.WriteString(Dic_Bname)
|
||||
xw.WriteEndElement()
|
||||
xw.WriteStartElement($"TimeZone") '创建表属性节点
|
||||
xw.WriteString(Dic_Dgrid.Cell(TableRowNumber.FunctionAnotherName, TableColNumber.ServerAttribute).Text)
|
||||
xw.WriteEndElement()
|
||||
|
||||
|
||||
'新建条件文件名节点
|
||||
xw.WriteStartElement($"ConctionFilename") '创建表属性节点
|
||||
xw.WriteString(Dic_Cname)
|
||||
xw.WriteEndElement()
|
||||
|
||||
xw.WriteStartElement($"DevNodes") '创建表属性节点
|
||||
'For Each node In Dic_Devicemodel
|
||||
xw.WriteString($"{JsonConvert.SerializeObject(Dic_Devicemodel)}")
|
||||
'WriteRowNodeToXml(xw, node.Value)
|
||||
' Next
|
||||
xw.WriteEndElement()
|
||||
|
||||
xw.WriteStartElement($"Cols") '创建表属性节点
|
||||
WriteColNodeToXml(xw)
|
||||
xw.WriteEndElement()
|
||||
|
||||
xw.WriteStartElement($"Rows") '创建表属性节点
|
||||
WriteRowNodeToXml(xw)
|
||||
xw.WriteEndElement()
|
||||
|
||||
|
||||
|
||||
xw.WriteEndElement()
|
||||
xw.WriteEndDocument()
|
||||
End Using
|
||||
|
||||
If IO.File.Exists(OuputFullName) Then
|
||||
IO.File.Delete(OuputFullName)
|
||||
End If
|
||||
Rename(xmlpath, OuputFullName)
|
||||
' _isCellChanged = False '复位文件修改标记
|
||||
Return True
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox($"保存文件失败,{ex.Message}")
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Function
|
||||
Public Sub WriteRowNodeToXml(xw As XmlWriter)
|
||||
Dim row As Integer = 7
|
||||
Dim li As New List(Of Integer)
|
||||
For Each node In Dic_ActionConfiguration
|
||||
xw.WriteStartElement($"DevName")
|
||||
'xw.WriteString($"{node.G_DevModeName}")
|
||||
xw.WriteAttributeString("DevName", $"{node.G_DevModeName}")
|
||||
xw.WriteAttributeString("DataType", $"{node.G_DevNodeName}")
|
||||
xw.WriteAttributeString("Name", $"{node.G_DevNodeIndex }")
|
||||
xw.WriteAttributeString("KeyType", $"{JsonConvert.SerializeObject(node.G_KeyType) }")
|
||||
xw.WriteAttributeString("DicRow", $"{JsonConvert.SerializeObject(node.G_DicRow) }")
|
||||
li.Clear()
|
||||
For Each index In node.G_DicRow.Keys
|
||||
If Dic_Dgrid.Cell(row, index).ForeColor = Color.DarkRed Then
|
||||
li.Add(index)
|
||||
End If
|
||||
Next
|
||||
xw.WriteAttributeString("DicRowCheck", $"{JsonConvert.SerializeObject(li) }")
|
||||
|
||||
xw.WriteAttributeString("Tag", JsonConvert.SerializeObject(Dic_Dgrid.Cell(row, 6).Tag))
|
||||
row += 1
|
||||
|
||||
xw.WriteEndElement()
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Public Sub WriteColNodeToXml(xw As XmlWriter)
|
||||
Dim fr, lr, fc, lc As Integer
|
||||
For i = 8 To Dic_Dgrid.Cols - 1
|
||||
With Dic_Dgrid.Range(1, i, 1, i)
|
||||
fr = .FirstRow
|
||||
lr = .LastRow
|
||||
fc = .FirstCol
|
||||
lc = .LastCol
|
||||
If String.IsNullOrEmpty(Dic_Dgrid.Cell(fr, fc).Text) Then
|
||||
i = lc
|
||||
Continue For
|
||||
End If
|
||||
xw.WriteStartElement($"DevName")
|
||||
xw.WriteAttributeString("DevName", $"{Dic_Dgrid.Cell(fr, fc).Text }")
|
||||
|
||||
i = lc
|
||||
|
||||
For j = fc To i
|
||||
With Dic_Dgrid.Range(2, j, 2, j)
|
||||
fr = .FirstRow
|
||||
lr = .LastRow
|
||||
fc = .FirstCol
|
||||
lc = .LastCol
|
||||
xw.WriteStartElement($"Function")
|
||||
xw.WriteAttributeString("DataType", $"{Dic_Dgrid.Cell(fr, fc).Text }")
|
||||
xw.WriteAttributeString("Name", $"{Dic_Dgrid.Cell(fr + 1, fc).Text }")
|
||||
|
||||
For cj = fc To lc
|
||||
xw.WriteStartElement($"ID")
|
||||
xw.WriteAttributeString("Val", $"{Dic_Dgrid.Cell(fr + 2, cj).Text }")
|
||||
xw.WriteAttributeString("Name", $"{Dic_Dgrid.Cell(fr + 3, cj).Text }")
|
||||
xw.WriteAttributeString("LockCol", Dic_Dgrid.Column(cj).Visible)
|
||||
|
||||
xw.WriteEndElement()
|
||||
Next
|
||||
xw.WriteEndElement()
|
||||
j = lc
|
||||
End With
|
||||
Next
|
||||
|
||||
|
||||
End With
|
||||
xw.WriteEndElement()
|
||||
Next
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
#Region "LoadFile"
|
||||
Public InsertColumn As Integer
|
||||
Public Function LoadFile(OuputFullName As String)
|
||||
|
||||
Dim ts As DateTime = Now
|
||||
Dim st As TimeSpan
|
||||
'解析到类对象
|
||||
Dim xd As New XmlDocument()
|
||||
|
||||
xd.Load(OuputFullName)
|
||||
InsertColumn = 8
|
||||
Dim xe, axe, bxe, cxe As XmlElement
|
||||
Dim nodeList As XmlNodeList = xd.SelectSingleNode($"RcuConfig").ChildNodes
|
||||
|
||||
For Each node As XmlNode In nodeList
|
||||
xe = CType(node, XmlElement)
|
||||
Select Case xe.LocalName
|
||||
Case "TimeZone"
|
||||
Dic_TimeZone = xe.InnerText
|
||||
Dic_Dgrid.Cell(TableRowNumber.FunctionAnotherName, TableColNumber.ServerAttribute).Text = Dic_TimeZone
|
||||
Case "BasicClassFilename"
|
||||
Dic_Bname = xe.InnerText
|
||||
Case "ConctionFilename"
|
||||
Dic_Cname = xe.InnerText
|
||||
Case "DevNodes"
|
||||
Dic_Devicemodel = JsonConvert.DeserializeObject(Of Dictionary(Of String, DeviceModel))(xe.InnerText)
|
||||
Case "Cols"
|
||||
Dim DevName As String = String.Empty
|
||||
Dim DataType As String = String.Empty
|
||||
Dim Name As String = String.Empty
|
||||
ColumnAnothername.Clear()
|
||||
Dim startColumn = 8
|
||||
For Each Index In xe.ChildNodes
|
||||
axe = CType(Index, XmlElement)
|
||||
DevName = axe.Attributes.GetNamedItem("DevName").InnerText
|
||||
|
||||
For Each aIndex In axe.ChildNodes
|
||||
bxe = CType(aIndex, XmlElement)
|
||||
DataType = bxe.Attributes.GetNamedItem("DataType").InnerText
|
||||
Name = bxe.Attributes.GetNamedItem("Name").InnerText
|
||||
|
||||
Dic_Dgrid.InsertCol(InsertColumn, bxe.ChildNodes.Count)
|
||||
|
||||
Dic_Dgrid.Cell(1, startColumn).Text = DevName
|
||||
With Dic_Dgrid.Range(1, startColumn, 1, InsertColumn + bxe.ChildNodes.Count - 1)
|
||||
.Locked = False
|
||||
.Merge()
|
||||
.Locked = True
|
||||
End With
|
||||
|
||||
|
||||
Dic_Dgrid.Cell(3, InsertColumn).Text = Name
|
||||
With Dic_Dgrid.Range(3, InsertColumn, 3, InsertColumn + bxe.ChildNodes.Count - 1)
|
||||
.Locked = False
|
||||
.Merge()
|
||||
.Locked = True
|
||||
End With
|
||||
Dic_Dgrid.Cell(2, InsertColumn).Text = DataType
|
||||
With Dic_Dgrid.Range(2, InsertColumn, 2, InsertColumn + bxe.ChildNodes.Count - 1)
|
||||
.Locked = False
|
||||
.Merge()
|
||||
.Locked = True
|
||||
End With
|
||||
For Each bIndex In bxe.ChildNodes
|
||||
cxe = CType(bIndex, XmlElement)
|
||||
Dic_Dgrid.Column(InsertColumn).Width = 30
|
||||
With Dic_Dgrid.Range(5, InsertColumn, 6, InsertColumn)
|
||||
.Locked = False
|
||||
.WrapText = True
|
||||
.Merge()
|
||||
End With
|
||||
|
||||
Dic_Dgrid.Cell(4, InsertColumn).Text = cxe.Attributes.GetNamedItem("Val").InnerText
|
||||
Dic_Dgrid.Cell(5, InsertColumn).Text = cxe.Attributes.GetNamedItem("Name").InnerText
|
||||
Dic_Dgrid.Column(InsertColumn).Visible = cxe.Attributes.GetNamedItem("LockCol").InnerText
|
||||
|
||||
Dim val As String = $"{DevName }*{Dic_Dgrid.Cell(4, InsertColumn).Text }*{DataType }"
|
||||
Dim key As String = $"{DevName}_{ Dic_Dgrid.Cell(5, InsertColumn).Text}"
|
||||
If ColumnAnothername.ContainsKey(key) Then
|
||||
Else
|
||||
For Each strval In ColumnAnothername
|
||||
If strval.Value.Equals(val) Then
|
||||
ColumnAnothername.Remove(strval.Key)
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
ColumnAnothername.Add(key, val)
|
||||
|
||||
|
||||
End If
|
||||
|
||||
InsertColumn += 1
|
||||
Next
|
||||
Next
|
||||
startColumn = InsertColumn
|
||||
Next
|
||||
|
||||
Dic_Dgrid.Column(InsertColumn).Width = 0
|
||||
Dic_Dgrid.Range(1, 8, 5, Dic_Dgrid.Cols - 1).Alignment = AlignmentEnum.CenterCenter
|
||||
'--------------设置列绑定
|
||||
|
||||
Case "Rows"
|
||||
Dic_ActionConfiguration.Clear()
|
||||
Dim rowlockli As New List(Of Integer)
|
||||
Dim DicRowCheckli As New List(Of Integer)
|
||||
|
||||
Dim cin As Integer = 0
|
||||
Try
|
||||
For Each Index In xe.ChildNodes
|
||||
cin = cin + 1
|
||||
If cin = 57 Then
|
||||
Console.WriteLine(cin)
|
||||
End If
|
||||
axe = CType(Index, XmlElement)
|
||||
Dim rowTag As New TableRowTag
|
||||
rowTag.G_DevModeName = axe.Attributes.GetNamedItem("DevName").InnerText
|
||||
rowTag.G_DevNodeName = axe.Attributes.GetNamedItem("DataType").InnerText
|
||||
rowTag.G_DevNodeIndex = axe.Attributes.GetNamedItem("Name").InnerText
|
||||
rowTag.G_KeyType = JsonConvert.DeserializeObject(Of List(Of String))(axe.Attributes.GetNamedItem("KeyType").InnerText)
|
||||
rowTag.G_DicRow = JsonConvert.DeserializeObject(Of Dictionary(Of Integer, String))(axe.Attributes.GetNamedItem("DicRow").InnerText)
|
||||
If axe.Attributes.Count = 7 Then
|
||||
DicRowCheckli = JsonConvert.DeserializeObject(Of List(Of Integer))(axe.Attributes.GetNamedItem("DicRowCheck").InnerText)
|
||||
End If
|
||||
|
||||
Dic_ActionConfiguration.Add(rowTag)
|
||||
|
||||
Dic_Dgrid.AddItem("")
|
||||
For Each coltxt In rowTag.G_DicRow
|
||||
|
||||
If coltxt.Key = 6 Then
|
||||
Dic_Dgrid.Cell(Dic_Dgrid.Rows - 1, coltxt.Key).Tag = JsonConvert.DeserializeObject(Of String)(axe.Attributes.GetNamedItem("Tag").InnerText)
|
||||
Dim celltag As Dictionary(Of String, String) = JsonConvert.DeserializeObject(Of Dictionary(Of String, String))(Dic_Dgrid.Cell(Dic_Dgrid.Rows - 1, coltxt.Key).Tag)
|
||||
If Not IsNothing(celltag) AndAlso celltag.ContainsKey("CallRow") AndAlso Not String.IsNullOrEmpty(celltag.Item("CallRow")) Then
|
||||
' Dic_Dgrid.Row(Dic_Dgrid.Rows - 1)
|
||||
rowlockli.Add(Dic_Dgrid.Rows - 1)
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
If coltxt.Key = 3 Then
|
||||
Dim maxSceneID = CInt(coltxt.Value)
|
||||
If G_SceneID < maxSceneID Then
|
||||
G_SceneID = maxSceneID
|
||||
End If
|
||||
End If
|
||||
If coltxt.Value.Contains("*") Then
|
||||
Dim g_devname As New CtabRange(Dic_Dgrid, 2, coltxt.Key)
|
||||
Dic_Dgrid.Cell(Dic_Dgrid.Rows - 1, coltxt.Key).Text = EstimateFilag(coltxt.Value, g_devname.devname)
|
||||
Else
|
||||
Dic_Dgrid.Cell(Dic_Dgrid.Rows - 1, coltxt.Key).Text = coltxt.Value
|
||||
End If
|
||||
Dic_Dgrid.Cell(Dic_Dgrid.Rows - 1, coltxt.Key).ForeColor = Color.Black
|
||||
Next
|
||||
|
||||
Dim rname As String = GetgrdRange(Dic_Dgrid, Dic_Dgrid.Rows - 2, 1, 1)
|
||||
|
||||
If rowTag.G_DevNodeName.Equals("HOSTSERVICE") Then
|
||||
If rname.Equals(rowTag.G_DevNodeName) Then
|
||||
With Dic_Dgrid.Range(Dic_Dgrid.Rows - 2, 1, Dic_Dgrid.Rows - 1, 1)
|
||||
.WrapText = True
|
||||
.Locked = False
|
||||
.Merge()
|
||||
.Locked = True
|
||||
End With
|
||||
Else
|
||||
Dic_Dgrid.Cell(Dic_Dgrid.Rows - 1, 1).Text = "HOSTSERVICE"
|
||||
End If
|
||||
|
||||
Else
|
||||
|
||||
If rname.Equals(rowTag.G_DevModeName) Then
|
||||
With Dic_Dgrid.Range(Dic_Dgrid.Rows - 2, 1, Dic_Dgrid.Rows - 1, 1)
|
||||
.WrapText = True
|
||||
.Locked = False
|
||||
Dic_Dgrid.Cell(Dic_Dgrid.Rows - 1, 1).Text = rowTag.G_DevModeName
|
||||
|
||||
.Merge()
|
||||
Dic_Dgrid.Cell(Dic_Dgrid.Rows - 1, 1).Text = rowTag.G_DevModeName
|
||||
|
||||
.Locked = True
|
||||
End With
|
||||
Dic_Dgrid.Cell(Dic_Dgrid.Rows - 1, 1).Text = rowTag.G_DevModeName
|
||||
|
||||
Else
|
||||
Dic_Dgrid.Cell(Dic_Dgrid.Rows - 1, 1).Text = rowTag.G_DevModeName
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
If rowTag.G_DevNodeName.Equals("语音") Then
|
||||
Dic_Dgrid.Row(Dic_Dgrid.Rows - 1).Locked = True
|
||||
End If
|
||||
|
||||
For Each cIndex In DicRowCheckli
|
||||
Dic_Dgrid.Cell(Dic_Dgrid.Rows - 1, cIndex).BackColor = Color.OrangeRed
|
||||
Dic_Dgrid.Cell(Dic_Dgrid.Rows - 1, cIndex).ForeColor = Color.DarkRed
|
||||
Next
|
||||
|
||||
Next
|
||||
|
||||
Catch ex As Exception
|
||||
Console.WriteLine(cin)
|
||||
End Try
|
||||
|
||||
For Each index In rowlockli
|
||||
Dic_Dgrid.Row(index).Locked = True
|
||||
Next
|
||||
|
||||
|
||||
|
||||
|
||||
Dic_Dgrid.Range(6, 0, Dic_Dgrid.Rows - 1, Dic_Dgrid.Cols - 1).Alignment = AlignmentEnum.CenterCenter
|
||||
Dic_Dgrid.Range(7, 6, Dic_Dgrid.Rows - 1, Dic_Dgrid.Cols - 1).CellType = CellTypeEnum.ComboBox
|
||||
Dic_Dgrid.Range(7, 2, Dic_Dgrid.Rows - 1, 2).CellType = CellTypeEnum.CheckBox
|
||||
G_SceneID = G_SceneID + 1
|
||||
|
||||
Case Else
|
||||
Throw New Exception($"LoadXml untreated localName:{xe.LocalName}")
|
||||
End Select
|
||||
Next
|
||||
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
Public Function EstimateFilag(cellstr As String, nodename As String) As String
|
||||
|
||||
If String.IsNullOrEmpty(cellstr) OrElse String.IsNullOrEmpty(nodename) Then Return String.Empty
|
||||
Dim tbuf() As String = cellstr.Split(vbLf)
|
||||
Dim cbuf() As String = tbuf(0).Split(",")
|
||||
If cbuf.Length < 2 Then Return String.Empty
|
||||
Dim buf() As String = cbuf(cbuf.Length - 1).Split("*")
|
||||
Dim result As String = String.Empty
|
||||
Select Case nodename
|
||||
Case "CLED_FRESHAIR"
|
||||
'result = "CLED新风"
|
||||
Case "CLEDFLOORHEAT"
|
||||
'result = $"{buf(3)}"
|
||||
Case "485FloorHeat", "485FreshAir"
|
||||
If buf.Length > 3 Then
|
||||
cbuf = buf(3).Split(" ")
|
||||
result = $"{cbuf(cbuf.Length - 1)}"
|
||||
End If
|
||||
|
||||
'Case
|
||||
'result = $"{buf(3)}"
|
||||
Case "485MUSIC"
|
||||
result = cellstr
|
||||
Case "Carbon_Device", "Dev_Energy_Monitor"
|
||||
result = cellstr
|
||||
'Case
|
||||
Case "DRY_NoCard"
|
||||
result = cellstr
|
||||
Case "Dev_ColorTemp"
|
||||
result = cellstr
|
||||
' result = $"{buf(3)}"
|
||||
Case "INFRARED_FORWARD"
|
||||
If buf.Length = 3 Then
|
||||
|
||||
cbuf = buf(2).Split(" ")
|
||||
result = $"{cbuf(cbuf.Length - 1)}"
|
||||
ElseIf buf.Length > 3 Then
|
||||
cbuf = buf(2).Split(" ")
|
||||
result = $"{cbuf(cbuf.Length - 1)}"
|
||||
cbuf = buf(3).Split(" ")
|
||||
'result = $"{cbuf(cbuf.Length - 1)}"
|
||||
result = $"{result}:{cbuf(cbuf.Length - 1)}"
|
||||
End If
|
||||
|
||||
'Case
|
||||
Case "RELAY"
|
||||
|
||||
If buf.Length > 2 Then
|
||||
cbuf = buf(2).Split(" ")
|
||||
result = $"{cbuf(cbuf.Length - 1)}"
|
||||
If result.Equals("开") Then
|
||||
result = Chr(TableColSwitchKeyDate.TurnOn).ToString()
|
||||
ElseIf result.Equals("关") Then
|
||||
result = Chr(TableColSwitchKeyDate.TurnDrown).ToString()
|
||||
End If
|
||||
End If
|
||||
Case "Dimming"
|
||||
|
||||
result = cellstr
|
||||
If buf.Length > 2 AndAlso cellstr.Contains("控制灯光") AndAlso (Not cellstr.Contains("调光")) AndAlso (Not cellstr.Contains("控制灯光 - 仅")) Then
|
||||
If buf.Length > 3 Then
|
||||
cbuf = buf(3).Split(" ")
|
||||
Else
|
||||
cbuf = buf(2).Split(" ")
|
||||
End If
|
||||
|
||||
result = $"{cbuf(cbuf.Length - 1)}"
|
||||
|
||||
If result.Equals("80") AndAlso buf(2).Contains("开") Then
|
||||
result = Chr(TableColSwitchKeyDate.TurnOn).ToString()
|
||||
ElseIf result.Equals("0") OrElse buf(2).Contains("关") Then
|
||||
result = Chr(TableColSwitchKeyDate.TurnDrown).ToString()
|
||||
Else
|
||||
result = $"{cbuf(cbuf.Length - 1)}"
|
||||
End If
|
||||
End If
|
||||
Case "PB_LINE_CONTROL", "PB_STRIP_DEVICE", "PB_LED_DEVICE"
|
||||
result = cellstr
|
||||
If buf.Length > 3 AndAlso tbuf(0).Contains("PB灯带亮度控制") Then
|
||||
cbuf = buf(3).Split(" ")
|
||||
result = $"{cbuf(cbuf.Length - 1)}"
|
||||
If result.Equals("80") Then
|
||||
result = Chr(TableColSwitchKeyDate.TurnOn).ToString()
|
||||
ElseIf result.Equals("0") Then
|
||||
result = Chr(TableColSwitchKeyDate.TurnDrown).ToString()
|
||||
End If
|
||||
End If
|
||||
|
||||
Case "DO", "LIGHT", "DRY_CURTAIN", "CURTAIN"
|
||||
If buf.Length > 2 Then
|
||||
cbuf = buf(2).Split(" ")
|
||||
result = $"{cbuf(cbuf.Length - 1)}"
|
||||
End If
|
||||
Case "RS485_Curtain"
|
||||
result = cellstr
|
||||
If buf.Length = 3 Then
|
||||
cbuf = buf(2).Split(" ")
|
||||
result = $"{cbuf(cbuf.Length - 1)}"
|
||||
End If
|
||||
Case "BLEMUSIC", "HOPO_Curtain", "Scene_Restore"
|
||||
result = cellstr
|
||||
Case "MUSIC", "Dev_VirtualGlobalSet"
|
||||
result = cellstr
|
||||
'Case
|
||||
' result = $"{buf(2)}"
|
||||
'Case
|
||||
' result = $"{buf(2)}"
|
||||
Case "Temp"
|
||||
If buf.Length > 5 Then
|
||||
'cbuf = buf(3).Split(" ")
|
||||
'result = $"{cbuf(cbuf.Length - 1)}"
|
||||
cbuf = buf(4).Split(" ")
|
||||
result = $"{cbuf(cbuf.Length - 1)}"
|
||||
cbuf = buf(5).Split(" ")
|
||||
result = $"{result}{cbuf(cbuf.Length - 1)}"
|
||||
End If
|
||||
|
||||
Case Else
|
||||
|
||||
End Select
|
||||
Return result
|
||||
End Function
|
||||
|
||||
Public Function GetgrdRange(grd As Grid, r As Integer, c As Integer, selectstr As Integer) As String
|
||||
Dim result As String = String.Empty
|
||||
With grd.Range(r, c, r, c)
|
||||
Select Case selectstr
|
||||
Case 1
|
||||
result = grd.Cell(.FirstRow, .FirstCol).Text
|
||||
Case 2
|
||||
result = .FirstCol
|
||||
Case 3
|
||||
result = .LastCol
|
||||
Case 4
|
||||
result = .FirstRow
|
||||
Case 5
|
||||
result = .LastRow
|
||||
End Select
|
||||
Return result
|
||||
|
||||
End With
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user