1500 lines
61 KiB
VB.net
1500 lines
61 KiB
VB.net
|
|
Imports System.ComponentModel
|
|||
|
|
Imports BLV_Studio.TableInteraction
|
|||
|
|
Imports FlexCell
|
|||
|
|
Imports Newtonsoft.Json
|
|||
|
|
|
|||
|
|
Public Class ExecutionCondition
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
'条件基类
|
|||
|
|
Public G_ConfigActionConcitons As ConfigActionConcitons
|
|||
|
|
Public g_BasicClasses As DeviceObjectClasses
|
|||
|
|
Public DicDevicemodel As Dictionary(Of String, DeviceModel)
|
|||
|
|
'输入输出值
|
|||
|
|
Public G_input As String
|
|||
|
|
Public G_Result As String
|
|||
|
|
Public G_celltag As Dictionary(Of String, String)
|
|||
|
|
|
|||
|
|
Public G_Row As Integer = 0
|
|||
|
|
Public G_grid As FlexCell.Grid
|
|||
|
|
Private Gr_Row As Integer = 0
|
|||
|
|
Public G_ActionConfiguration As List(Of TableRowTag)
|
|||
|
|
'基类数据
|
|||
|
|
Public G_ModeDevType() As String
|
|||
|
|
Private Dic_2 As Dictionary(Of String, List(Of String))
|
|||
|
|
'条件列表
|
|||
|
|
Private g_DicDragDrop As Dictionary(Of String, String)
|
|||
|
|
|
|||
|
|
Public Shared joinway() As String = {"7 clear", "8 Do not disturb", "9 Later on", "10 Check out"}
|
|||
|
|
|
|||
|
|
|
|||
|
|
#Region "条件值"
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Property 动作输出使能 As UInt64
|
|||
|
|
Private Property 房态 As UInt64
|
|||
|
|
Private Property 控制取电服务 As UInt64
|
|||
|
|
Private Property 取电状态 As UInt64
|
|||
|
|
Private Property 勿扰状态 As UInt64
|
|||
|
|
Private Property 清理状态 As UInt64
|
|||
|
|
Private Property 呼叫状态 As UInt64
|
|||
|
|
Private Property 洗衣状态 As UInt64
|
|||
|
|
Private Property 退房状态 As UInt64
|
|||
|
|
Private Property 稍后状态 As UInt64
|
|||
|
|
Private Property SOS状态 As UInt64
|
|||
|
|
Private Property 预约待租状态 As UInt64
|
|||
|
|
Private Property 开锁状态 As UInt64
|
|||
|
|
Private Property 行李状态 As UInt64
|
|||
|
|
Private Property 保险箱状态 As UInt64
|
|||
|
|
Private Property 门磁状态 As UInt64
|
|||
|
|
Private Property 提示音状态 As UInt64
|
|||
|
|
Private Property 背光状态 As UInt64
|
|||
|
|
Private Property 季节状态 As UInt64
|
|||
|
|
Private Property 时间状态 As UInt64
|
|||
|
|
Private Property 起夜状态 As UInt64
|
|||
|
|
Private Property 锁定状态 As UInt64
|
|||
|
|
#End Region
|
|||
|
|
Enum colname
|
|||
|
|
<Description("rowid")>
|
|||
|
|
rowid = 0
|
|||
|
|
<Description("describe")>
|
|||
|
|
condition
|
|||
|
|
<Description("Execution mode")>
|
|||
|
|
switch
|
|||
|
|
|
|||
|
|
max
|
|||
|
|
End Enum
|
|||
|
|
|
|||
|
|
Private Sub ExecutionCondition_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|||
|
|
Gr_Row = G_Row
|
|||
|
|
Dic_2 = New Dictionary(Of String, List(Of String))
|
|||
|
|
SceneNumber = New Dictionary(Of String, String)
|
|||
|
|
g_DicDragDrop = New Dictionary(Of String, String)
|
|||
|
|
If Init_Cob_CarryOutType() Then
|
|||
|
|
Init_Cob_KeyType()
|
|||
|
|
InitGrid1()
|
|||
|
|
End If
|
|||
|
|
LoadInputText(G_input)
|
|||
|
|
|
|||
|
|
isloadok = True
|
|||
|
|
GetG_Result()
|
|||
|
|
GetNodeClass()
|
|||
|
|
End Sub
|
|||
|
|
Public Sub GetNodeClass()
|
|||
|
|
|
|||
|
|
If IsNothing(G_grid) And Gr_Row = 0 Then Return
|
|||
|
|
Dim loadtag As TableRowTag = G_ActionConfiguration(Gr_Row - 7)
|
|||
|
|
Dim selectstr As String = String.Empty
|
|||
|
|
ComboBox2.Items.Clear()
|
|||
|
|
If DicDevicemodel.ContainsKey(loadtag.G_DevModeName) Then
|
|||
|
|
Dim devmodw As DeviceModel = DicDevicemodel.Item(loadtag.G_DevModeName)
|
|||
|
|
For Each node In devmodw.Nodes
|
|||
|
|
If node.Name.Equals(loadtag.G_DevNodeName) Then
|
|||
|
|
For Each index In node.Nodes
|
|||
|
|
If index.LoopAddr.Equals(loadtag.G_DevNodeIndex.ToString) Then
|
|||
|
|
selectstr = index.DefaultClass
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
Select Case selectstr
|
|||
|
|
Case "KEY", "PIR", "DRY"
|
|||
|
|
If devmodw.Desc.Name.Equals("BLV_C12") Then
|
|||
|
|
ComboBox2.Items.AddRange({"KEY", "PIR", "DRY"})
|
|||
|
|
Else
|
|||
|
|
ComboBox2.Items.AddRange({"KEY"})
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Case "RKEY"
|
|||
|
|
ComboBox2.Items.Add("RKEY")
|
|||
|
|
Case "Virtual_Card"
|
|||
|
|
ComboBox2.Items.Add("Virtual_Card")
|
|||
|
|
Case "SLIDER"
|
|||
|
|
ComboBox2.Items.Add("SLIDER")
|
|||
|
|
Case "CARD"
|
|||
|
|
ComboBox2.Items.Add("CARD")
|
|||
|
|
Case "Carbon_Device"
|
|||
|
|
ComboBox2.Items.Add("Carbon_Device")
|
|||
|
|
Case "Scene_Restore"
|
|||
|
|
ComboBox2.Items.Add("Scene_Restore")
|
|||
|
|
Case Else
|
|||
|
|
|
|||
|
|
|
|||
|
|
End Select
|
|||
|
|
End If
|
|||
|
|
If ComboBox2.Items.Count > 0 Then
|
|||
|
|
'判断下拉选项中有没有符合 selectstr
|
|||
|
|
If ComboBox2.Items.Contains(selectstr) Then
|
|||
|
|
ComboBox2.Text = selectstr
|
|||
|
|
Else
|
|||
|
|
ComboBox2.Text = ComboBox2.Items(0)
|
|||
|
|
End If
|
|||
|
|
'ComboBox2.Text = ComboBox2.Items(0)
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
#Region "控件初始化"
|
|||
|
|
Private Sub Init_Cob_KeyType()
|
|||
|
|
If IsNothing(G_ModeDevType) OrElse G_ModeDevType.Length = 0 Then
|
|||
|
|
Return
|
|||
|
|
End If
|
|||
|
|
Cob_KeyType.Items.AddRange(G_ModeDevType)
|
|||
|
|
Cob_KeyType.SelectedIndex = 0
|
|||
|
|
End Sub
|
|||
|
|
Private Function Init_Cob_CarryOutType() As Boolean
|
|||
|
|
Cob_CarryOutType.Items.Clear()
|
|||
|
|
If IsNothing(G_ConfigActionConcitons) Then
|
|||
|
|
MsgBox("Conditional base class loading failed. Please contact the developer!")
|
|||
|
|
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
|
|||
|
|
Me.Close()
|
|||
|
|
Return False
|
|||
|
|
End If
|
|||
|
|
Cob_CarryOutType.Items.AddRange(G_ConfigActionConcitons.ExeMode(0).DataRange.Split(","))
|
|||
|
|
|
|||
|
|
Cob_CarryOutType.SelectedIndex = 0
|
|||
|
|
Return True
|
|||
|
|
End Function
|
|||
|
|
Private Function InitGrid1()
|
|||
|
|
initTable(G_ConfigActionConcitons.Conction)
|
|||
|
|
'InitTableTow(G_ConfigActionConcitons.Conction)
|
|||
|
|
End Function
|
|||
|
|
Public Shared Function CheckDataIsOk(datastr As String, ConfigActionConcitons As ConfigActionConcitons, ModeDevType() As String, mytag As TableRowTag, ActionConfiguration As List(Of TableRowTag), Optional Tgrid As Grid = Nothing) As Boolean
|
|||
|
|
If mytag.G_DevNodeName.Equals("Voice") AndAlso String.IsNullOrEmpty(datastr) Then Return True
|
|||
|
|
If String.IsNullOrEmpty(datastr) Then Return False
|
|||
|
|
Dim buf() As String = datastr.Split(",")
|
|||
|
|
Dim dicKeyType = ComboBox1DateDropDown(Tgrid, mytag, ActionConfiguration)
|
|||
|
|
If Not IsNothing(dicKeyType) AndAlso dicKeyType.ContainsKey(datastr) Then Return True
|
|||
|
|
If buf.Length <> 3 Then Return False
|
|||
|
|
Dim intbuf(2) As UInt64
|
|||
|
|
If Not (UInt64.TryParse(buf(0), intbuf(0)) And UInt64.TryParse(buf(1), intbuf(1)) And UInt64.TryParse(buf(2), intbuf(2))) Then Return False
|
|||
|
|
|
|||
|
|
If IsNothing(ConfigActionConcitons) Then Return False
|
|||
|
|
If IsNothing(ModeDevType) And ModeDevType.Length = 0 Then Return False
|
|||
|
|
|
|||
|
|
Dim abuf() As String = ConfigActionConcitons.ExeMode(0).DataRange.Split(",")
|
|||
|
|
Dim li As New List(Of String)
|
|||
|
|
li.AddRange(abuf)
|
|||
|
|
li.AddRange(joinway)
|
|||
|
|
For Each astr In li
|
|||
|
|
If astr.IndexOf(intbuf(1).ToString) = 0 Then
|
|||
|
|
For Each bstr In ModeDevType
|
|||
|
|
If bstr.IndexOf(intbuf(0).ToString) = 0 Then
|
|||
|
|
Return CheckStatusValue(intbuf(2), ConfigActionConcitons.Conction)
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
Else
|
|||
|
|
Continue For
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
Return False
|
|||
|
|
|
|||
|
|
End Function
|
|||
|
|
Public Sub initTablechushen_Grid()
|
|||
|
|
chushen_Grid.NewFile()
|
|||
|
|
chushen_Grid.Rows = 1
|
|||
|
|
chushen_Grid.Cols = 3
|
|||
|
|
chushen_Grid.ExtendLastCol = True
|
|||
|
|
chushen_Grid.Cell(0, 1).Text = "Function name"
|
|||
|
|
chushen_Grid.Cell(0, 2).Text = "Functional approach"
|
|||
|
|
chushen_Grid.Column(2).CellType = CellTypeEnum.ComboBox
|
|||
|
|
chushen_Grid.Column(1).Width = 100
|
|||
|
|
chushen_Grid.Column(0).Visible = False
|
|||
|
|
chushen_Grid.Column(1).Locked = True
|
|||
|
|
chushen_Grid.Column(0).Locked = True
|
|||
|
|
chushen_Grid.Column(1).Alignment = FlexCell.AlignmentEnum.CenterCenter
|
|||
|
|
chushen_Grid.Column(2).Alignment = FlexCell.AlignmentEnum.CenterCenter
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Public Sub AddChushen_GridRow(strvalue As String)
|
|||
|
|
|
|||
|
|
|
|||
|
|
Select Case strvalue
|
|||
|
|
|
|||
|
|
Case "1 Click"
|
|||
|
|
DevEvenPar("DIMMING", "Control lighting", 0, "1 Open,2 Close,")
|
|||
|
|
SplitContainer4.Panel2Collapsed = False
|
|||
|
|
Cob_CarryOutType.Items.AddRange(joinway.ToArray)
|
|||
|
|
Case "3 Long press"
|
|||
|
|
DevEvenPar("DIMMING", "Cyclic dimming", 0, "9 Stop Dimming,")
|
|||
|
|
SplitContainer4.Panel2Collapsed = False
|
|||
|
|
For Each index In joinway
|
|||
|
|
Try
|
|||
|
|
Cob_CarryOutType.Items.Remove(index)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
|
|||
|
|
End Try
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
Case "2 Long press release"
|
|||
|
|
DevEvenPar("DIMMING", "Cyclic dimming", 0, "7 Loop Up,8 Loop Down,", ",28 Loop up to the upper limit (light only),29 Loop down to the lower limit (light only)")
|
|||
|
|
SplitContainer4.Panel2Collapsed = False
|
|||
|
|
For Each index In joinway
|
|||
|
|
Try
|
|||
|
|
Cob_CarryOutType.Items.Remove(index)
|
|||
|
|
Catch ex As Exception
|
|||
|
|
|
|||
|
|
End Try
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
Case Else
|
|||
|
|
Return
|
|||
|
|
|
|||
|
|
End Select
|
|||
|
|
Setingchushen_Grid()
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Public Sub Setingchushen_Grid()
|
|||
|
|
If SplitContainer4.Panel2Collapsed = False AndAlso chushen_Grid.Rows > 0 AndAlso G_celltag.Count > 0 Then
|
|||
|
|
Dim key As String = String.Empty
|
|||
|
|
|
|||
|
|
|
|||
|
|
For r = 1 To chushen_Grid.Rows - 1
|
|||
|
|
For Each node In G_celltag
|
|||
|
|
If G_Row = 7 Then
|
|||
|
|
If chushen_Grid.Cell(r, 2).Text.Equals(node.Key) Then
|
|||
|
|
|
|||
|
|
If node.Key.Contains("Dimming gradient time") Then
|
|||
|
|
chushen_Grid.Cell(r, 3).Text = NumberTOchushenGridText(node.Value)
|
|||
|
|
Else
|
|||
|
|
chushen_Grid.Cell(r, 3).Text = node.Value
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
Else
|
|||
|
|
key = FunctionalTransformation(True, node.Key)
|
|||
|
|
|
|||
|
|
If chushen_Grid.Cell(r, 1).Text.Equals(key) Then
|
|||
|
|
chushen_Grid.Cell(r, 2).Text = node.Value
|
|||
|
|
End If
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
End Sub
|
|||
|
|
Public Function FunctionalTransformation(GTotype As Boolean, val As String) As String
|
|||
|
|
Dim result As String = String.Empty
|
|||
|
|
If GTotype Then
|
|||
|
|
Select Case val
|
|||
|
|
Case "DIMMING"
|
|||
|
|
result = "DIMMING"
|
|||
|
|
End Select
|
|||
|
|
|
|||
|
|
Else
|
|||
|
|
Select Case val
|
|||
|
|
Case "调光"
|
|||
|
|
result = "DIMMING"
|
|||
|
|
End Select
|
|||
|
|
End If
|
|||
|
|
Return result
|
|||
|
|
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
Public Sub DevEvenPar(g_nodename As String, nodename As String, parindex As Integer, ParamArray delebuf() As String)
|
|||
|
|
For Each node In g_BasicClasses.DeviceClass
|
|||
|
|
If node.Name.ToUpper.Equals(g_nodename) Then
|
|||
|
|
For Each Anode In node.Methods
|
|||
|
|
If Anode.Name.Equals(nodename) Then
|
|||
|
|
chushen_Grid.AddItem("")
|
|||
|
|
Dim key As String = FunctionalTransformation(True, g_nodename.ToUpper)
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 1).Text = key
|
|||
|
|
If Anode.Params.Count < parindex Then Return
|
|||
|
|
Dim Index = Anode.Params(parindex)
|
|||
|
|
Dim li As New List(Of String)
|
|||
|
|
li.Add("")
|
|||
|
|
If Index.Name.Equals("Null") Then
|
|||
|
|
li.Add(0)
|
|||
|
|
Else
|
|||
|
|
If Index.DataType.Equals("List") Then
|
|||
|
|
Dim DataRange As String = Index.DataRange
|
|||
|
|
If Not IsNothing(delebuf) And delebuf.Length > 0 Then
|
|||
|
|
For Each delstr In delebuf
|
|||
|
|
DataRange = DataRange.Replace(delstr, "")
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
Dim tbuf() As String = DataRange.Split(",")
|
|||
|
|
li.AddRange(tbuf)
|
|||
|
|
'li.Remove(tbuf(0))
|
|||
|
|
'li.Insert(0, tbuf(0))
|
|||
|
|
|
|||
|
|
|
|||
|
|
ElseIf Index.DataType.Equals("Integer") Then
|
|||
|
|
Dim buf() As String = Index.DataRange.Split(",")
|
|||
|
|
Dim startint As Integer = 0
|
|||
|
|
Dim endint As Integer = 1
|
|||
|
|
Integer.TryParse(buf(0), startint)
|
|||
|
|
Integer.TryParse(buf(1), endint)
|
|||
|
|
li.Add(startint)
|
|||
|
|
For i = startint To endint
|
|||
|
|
li.Add(i)
|
|||
|
|
Next
|
|||
|
|
'li.Remove(Index.DataDefault)
|
|||
|
|
'li.Insert(0, Index.DataDefault)
|
|||
|
|
End If
|
|||
|
|
End If
|
|||
|
|
If Dic_2.ContainsKey(node.Name.ToUpper) Then
|
|||
|
|
Dic_2.Remove(node.Name.ToUpper)
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Dic_2.Add(node.Name.ToUpper, li)
|
|||
|
|
'chushen_Grid.Cell(chushen_Grid.Rows - 1, 2).Text = Index.DataDefault
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
Public Sub initTable(Conction As List(Of Conction))
|
|||
|
|
|
|||
|
|
Table_Grid1.Rows = 1
|
|||
|
|
Table_Grid1.Cols = colname.max
|
|||
|
|
Table_Grid1.ExtendLastCol = True
|
|||
|
|
For i = 0 To colname.max - 1
|
|||
|
|
Table_Grid1.Cell(0, i).Text = [Enum].GetName(GetType(colname), i)
|
|||
|
|
|
|||
|
|
Select Case i
|
|||
|
|
Case colname.rowid
|
|||
|
|
With Table_Grid1.Column(i)
|
|||
|
|
.Width = 0
|
|||
|
|
.Visible = True
|
|||
|
|
End With
|
|||
|
|
|
|||
|
|
Case colname.condition
|
|||
|
|
With Table_Grid1.Column(i)
|
|||
|
|
.Width = 110
|
|||
|
|
.Alignment = FlexCell.AlignmentEnum.CenterCenter
|
|||
|
|
.Locked = True
|
|||
|
|
End With
|
|||
|
|
Case colname.switch
|
|||
|
|
With Table_Grid1.Column(i)
|
|||
|
|
.Width = 70
|
|||
|
|
.Alignment = FlexCell.AlignmentEnum.CenterCenter
|
|||
|
|
'.Locked = True
|
|||
|
|
.CellType = CellTypeEnum.ComboBox
|
|||
|
|
End With
|
|||
|
|
Case Else
|
|||
|
|
Exit For
|
|||
|
|
End Select
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
AddGrid1RowDragDrop(Conction)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Sub LoadInputText(inputstr As String)
|
|||
|
|
If String.IsNullOrEmpty(inputstr) Then Return
|
|||
|
|
|
|||
|
|
Dim buf() As String = inputstr.Split(",")
|
|||
|
|
If buf.Length > 0 Then
|
|||
|
|
For i As Integer = 0 To Cob_KeyType.Items.Count - 1
|
|||
|
|
If Cob_KeyType.Items(i).ToString.Contains(buf(0)) Then
|
|||
|
|
Cob_KeyType.SelectedIndex = i
|
|||
|
|
Exit For
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
ComboBox1_DropDown(Nothing, Nothing)
|
|||
|
|
If Not String.IsNullOrEmpty(buf(0)) AndAlso SceneNumber.ContainsKey(buf(0)) Then
|
|||
|
|
ComboBox1.Text = buf(0)
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
If buf.Length > 1 Then
|
|||
|
|
For i As Integer = 0 To Cob_CarryOutType.Items.Count - 1
|
|||
|
|
If Cob_CarryOutType.Items(i).ToString.Contains(buf(1)) Then
|
|||
|
|
Cob_CarryOutType.SelectedIndex = i
|
|||
|
|
Exit For
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
End If
|
|||
|
|
If buf.Length > 2 Then
|
|||
|
|
GetStatusValue(buf(2))
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
Public Sub AddGrid1RowDragDrop(Conction As List(Of Conction))
|
|||
|
|
g_DicDragDrop.Clear()
|
|||
|
|
For Each node In Conction
|
|||
|
|
Table_Grid1.AddItem("")
|
|||
|
|
Table_Grid1.Cell(Table_Grid1.Rows - 1, colname.condition).Text = node.Name
|
|||
|
|
Table_Grid1.Cell(Table_Grid1.Rows - 1, colname.switch).Text = node.DataDefault
|
|||
|
|
If g_DicDragDrop.ContainsKey(node.Name) Then
|
|||
|
|
g_DicDragDrop.Item(node.Name) = node.Desc
|
|||
|
|
Else
|
|||
|
|
g_DicDragDrop.Add(node.Name, node.Desc)
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
#End Region
|
|||
|
|
|
|||
|
|
|
|||
|
|
#Region "控件赋值"
|
|||
|
|
Public Sub SetControlVal()
|
|||
|
|
|
|||
|
|
If String.IsNullOrEmpty(G_input) Then
|
|||
|
|
Cob_CarryOutType.SelectedIndex = 0
|
|||
|
|
Else
|
|||
|
|
Dim bufstr() As String = G_input.Split(",")
|
|||
|
|
Dim u64 As UInt64 = 0
|
|||
|
|
For index As Integer = 0 To Cob_CarryOutType.Items.Count - 1
|
|||
|
|
Dim name() As String = Cob_CarryOutType.Items(index).ToString.Split(":")
|
|||
|
|
If name(0).Equals(bufstr(0)) Then
|
|||
|
|
Cob_CarryOutType.SelectedIndex = index
|
|||
|
|
Exit For
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
GetStatusValue(bufstr(1))
|
|||
|
|
End If
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
#End Region
|
|||
|
|
|
|||
|
|
Private Sub Grid1_ComboDropDown(Sender As Object, e As Grid.ComboDropDownEventArgs) Handles Table_Grid1.ComboDropDown
|
|||
|
|
If e.Row > 0 And e.Col = colname.switch Then
|
|||
|
|
'Console.WriteLine(Grid1.Cell(e.Row, colname.condition).Text.Trim)
|
|||
|
|
If g_DicDragDrop.ContainsKey(Table_Grid1.Cell(e.Row, colname.condition).Text) Then
|
|||
|
|
Dim buf() As String = g_DicDragDrop.Item(Table_Grid1.Cell(e.Row, colname.condition).Text).Split(",")
|
|||
|
|
Me.Table_Grid1.ComboBox(colname.switch).Items.Clear()
|
|||
|
|
Dim cob_text As FlexCell.ComboBox = Me.Table_Grid1.ComboBox(colname.switch)
|
|||
|
|
For Each index In buf
|
|||
|
|
cob_text.Items.Add(index)
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
End If
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Function Getresult() As UInt64
|
|||
|
|
|
|||
|
|
|
|||
|
|
For i = 1 To Table_Grid1.Rows - 1
|
|||
|
|
Select Case Table_Grid1.Cell(i, colname.condition).Text
|
|||
|
|
Case " 1 Action output enable"
|
|||
|
|
动作输出使能 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case " 2 Judging room status"
|
|||
|
|
房态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case " 3 Control card holder services"
|
|||
|
|
控制取电服务 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case " 4 Determine the card holder status"
|
|||
|
|
取电状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case " 5 Determine Do Not Disturb Status"
|
|||
|
|
勿扰状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case " 6 Determine the cleaning status"
|
|||
|
|
清理状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case " 7 Determine call status"
|
|||
|
|
呼叫状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case " 8 Determine laundry status"
|
|||
|
|
洗衣状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case " 9 Determine check-out status"
|
|||
|
|
退房状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case "10 Determine later status"
|
|||
|
|
稍后状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case "11 Determine SOS status"
|
|||
|
|
SOS状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
' Case "12 判断预约待租状态"
|
|||
|
|
Case "12 Determine the delivery status"
|
|||
|
|
预约待租状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case "13 Determine unlocking status"
|
|||
|
|
开锁状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case "14 Determine luggage status"
|
|||
|
|
行李状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case "15 Determine the status of the safe box"
|
|||
|
|
保险箱状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case "16 Determine the door magnetic state"
|
|||
|
|
门磁状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case "17 Determine the status of the prompt sound"
|
|||
|
|
提示音状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case "18 Determine backlight status"
|
|||
|
|
背光状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case "19 Determine seasonal status"
|
|||
|
|
季节状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case "20 Determine time status"
|
|||
|
|
时间状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case "21 Determine the state of waking up at night"
|
|||
|
|
起夜状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case "22 Determine lock status"
|
|||
|
|
锁定状态 = CInt(GetNodeSelectStringValue(Table_Grid1.Cell(i, colname.switch).Text))
|
|||
|
|
Case Else
|
|||
|
|
'Throw New Exception($"未知条件属性名:{node.Name}")
|
|||
|
|
End Select
|
|||
|
|
Next
|
|||
|
|
Return GetConditionData()
|
|||
|
|
End Function
|
|||
|
|
Private Shared Function CheckStatusValue(u64str As String, Conction As List(Of Conction)) As Boolean
|
|||
|
|
Dim u64 As UInt64 = 0
|
|||
|
|
UInt64.TryParse(u64str, u64)
|
|||
|
|
Dim cu64 As UInt64 = 0
|
|||
|
|
|
|||
|
|
For Each aenunindex In Conction
|
|||
|
|
Dim index As Integer = -1
|
|||
|
|
Dim buf() As String = aenunindex.Desc.Split(",")
|
|||
|
|
Select Case aenunindex.Name
|
|||
|
|
Case " 1 Action output enable"
|
|||
|
|
index = Getrowu64Val(1, u64, ConditionBits.动作输出使能)
|
|||
|
|
|
|||
|
|
Case " 2 Judging room status"
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.房态)
|
|||
|
|
Case " 3 Control card holder services"
|
|||
|
|
index = Getrowu64Val(1, u64, ConditionBits.控制取电服务)
|
|||
|
|
Case " 4 Determine the card holder status"
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.取电状态)
|
|||
|
|
Case " 5 Determine Do Not Disturb Status"
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.勿扰状态)
|
|||
|
|
Case " 6 Determine the cleaning status"
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.清理状态)
|
|||
|
|
Case " 7 Determine call status"
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.呼叫状态)
|
|||
|
|
Case " 8 Determine laundry status"
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.洗衣状态)
|
|||
|
|
Case " 9 Determine check-out status"
|
|||
|
|
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.退房状态)
|
|||
|
|
Case "10 Determine later status"
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.稍后状态)
|
|||
|
|
Case "11 Determine SOS status"
|
|||
|
|
|
|||
|
|
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.SOS状态)
|
|||
|
|
' Case "12 判断预约待租状态"
|
|||
|
|
Case "12 Determine the delivery status"
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.预约待租状态)
|
|||
|
|
Case "13 Determine unlocking status"
|
|||
|
|
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.开锁状态)
|
|||
|
|
Case "14 Determine luggage status"
|
|||
|
|
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.行李状态)
|
|||
|
|
Case "15 Determine the status of the safe box"
|
|||
|
|
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.保险箱状态)
|
|||
|
|
Case "16 Determine the door magnetic state"
|
|||
|
|
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.门磁状态)
|
|||
|
|
Case "17 Determine the status of the prompt sound"
|
|||
|
|
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.提示音状态)
|
|||
|
|
Case "18 Determine backlight status"
|
|||
|
|
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.背光状态)
|
|||
|
|
Case "19 Determine seasonal status"
|
|||
|
|
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.季节状态)
|
|||
|
|
Case "20 Determine time status"
|
|||
|
|
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.时间状态)
|
|||
|
|
Case "21 Determine the state of waking up at night"
|
|||
|
|
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.起夜状态)
|
|||
|
|
Case "22 Determine lock status"
|
|||
|
|
|
|||
|
|
index = Getrowu64Val(7, u64, ConditionBits.锁定状态)
|
|||
|
|
Case Else
|
|||
|
|
Continue For
|
|||
|
|
'Throw New Exception($"未知条件属性名:{node.Name}")
|
|||
|
|
End Select
|
|||
|
|
If Isinspect(buf, index) Then
|
|||
|
|
Continue For
|
|||
|
|
End If
|
|||
|
|
Return False
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
|
|||
|
|
Return True
|
|||
|
|
|
|||
|
|
End Function
|
|||
|
|
Public Shared Function Isinspect(buf() As String, index As Integer) As Boolean
|
|||
|
|
For Each bstr In buf
|
|||
|
|
If bstr.IndexOf(index.ToString) = 0 Then
|
|||
|
|
Return True
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
Return False
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Sub GetStatusValue(u64str As String)
|
|||
|
|
Dim u64 As UInt64 = 0
|
|||
|
|
UInt64.TryParse(u64str, u64)
|
|||
|
|
Dim cu64 As UInt64 = 0
|
|||
|
|
For i = 1 To Table_Grid1.Rows - 1
|
|||
|
|
Dim index As Integer = 0
|
|||
|
|
Select Case Table_Grid1.Cell(i, colname.condition).Text
|
|||
|
|
Case " 1 Action output enable"
|
|||
|
|
SetTablecolnameswitch(i, 1, u64, ConditionBits.动作输出使能)
|
|||
|
|
Case " 2 Judging room status"
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.房态)
|
|||
|
|
Case " 3 Control card holder services"
|
|||
|
|
SetTablecolnameswitch(i, 1, u64, ConditionBits.控制取电服务)
|
|||
|
|
Case " 4 Determine the card holder status"
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.取电状态)
|
|||
|
|
Case " 5 Determine Do Not Disturb Status"
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.勿扰状态)
|
|||
|
|
Case " 6 Determine the cleaning status"
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.清理状态)
|
|||
|
|
Case " 7 Determine call status"
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.呼叫状态)
|
|||
|
|
Case " 8 Determine laundry status"
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.洗衣状态)
|
|||
|
|
Case " 9 Determine check-out status"
|
|||
|
|
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.退房状态)
|
|||
|
|
Case "10 Determine later status"
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.稍后状态)
|
|||
|
|
Case "11 Determine SOS status"
|
|||
|
|
|
|||
|
|
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.SOS状态)
|
|||
|
|
' Case "12 判断预约待租状态"
|
|||
|
|
Case "12 Determine the delivery status"
|
|||
|
|
|
|||
|
|
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.预约待租状态)
|
|||
|
|
Case "13 Determine unlocking status"
|
|||
|
|
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.开锁状态)
|
|||
|
|
Case "14 Determine luggage status"
|
|||
|
|
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.行李状态)
|
|||
|
|
Case "15 Determine the status of the safe box"
|
|||
|
|
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.保险箱状态)
|
|||
|
|
Case "16 Determine the door magnetic state"
|
|||
|
|
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.门磁状态)
|
|||
|
|
Case "17 Determine the status of the prompt sound"
|
|||
|
|
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.提示音状态)
|
|||
|
|
Case "18 Determine backlight status"
|
|||
|
|
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.背光状态)
|
|||
|
|
Case "19 Determine seasonal status"
|
|||
|
|
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.季节状态)
|
|||
|
|
Case "20 Determine time status"
|
|||
|
|
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.时间状态)
|
|||
|
|
Case "21 Determine the state of waking up at night"
|
|||
|
|
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.起夜状态)
|
|||
|
|
Case "22 Determine lock status"
|
|||
|
|
SetTablecolnameswitch(i, 7, u64, ConditionBits.锁定状态)
|
|||
|
|
Case Else
|
|||
|
|
'Throw New Exception($"未知条件属性名:{node.Name}")
|
|||
|
|
End Select
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Sub SetTablecolnameswitch(rowid As Integer, cu64 As UInt64, u64 As UInt64, number As ConditionBits)
|
|||
|
|
u64 = u64 >> number
|
|||
|
|
Dim index As Integer = 0
|
|||
|
|
index = u64 And cu64
|
|||
|
|
For Each nameStr In g_DicDragDrop.Item(Table_Grid1.Cell(rowid, colname.condition).Text).Split(",")
|
|||
|
|
Dim strbuf() As String = nameStr.Split(":")
|
|||
|
|
If strbuf(0).Equals(index.ToString) Then
|
|||
|
|
Table_Grid1.Cell(rowid, colname.switch).Text = nameStr
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
Private Shared Function Getrowu64Val(cu64 As UInt64, u64 As UInt64, number As ConditionBits) As Integer
|
|||
|
|
u64 = u64 >> number
|
|||
|
|
Dim index As Integer = 0
|
|||
|
|
index = u64 And cu64
|
|||
|
|
Return index
|
|||
|
|
|
|||
|
|
End Function
|
|||
|
|
''' <summary>
|
|||
|
|
''' 获取节点选择项对应的数值
|
|||
|
|
''' </summary>
|
|||
|
|
''' <param name="node"></param>
|
|||
|
|
''' <returns></returns>
|
|||
|
|
Private Function GetNodeSelectStringValue(node As String) As String
|
|||
|
|
Dim result() As String
|
|||
|
|
If node.Contains(":") Then
|
|||
|
|
result = node.Trim.Split(":")
|
|||
|
|
ElseIf node.Contains(" ") Then
|
|||
|
|
result = node.Trim.Split(" ")
|
|||
|
|
Else
|
|||
|
|
Return ""
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Return result(0)
|
|||
|
|
End Function
|
|||
|
|
Public Function GetConditionData() As UInt64
|
|||
|
|
Dim num As UInt64 = 0
|
|||
|
|
|
|||
|
|
num = num Or (动作输出使能 << ConditionBits.动作输出使能)
|
|||
|
|
num = num Or (房态 << ConditionBits.房态)
|
|||
|
|
num = num Or (控制取电服务 << ConditionBits.控制取电服务)
|
|||
|
|
num = num Or (取电状态 << ConditionBits.取电状态)
|
|||
|
|
|
|||
|
|
num = num Or (勿扰状态 << ConditionBits.勿扰状态)
|
|||
|
|
num = num Or (清理状态 << ConditionBits.清理状态)
|
|||
|
|
num = num Or (呼叫状态 << ConditionBits.呼叫状态)
|
|||
|
|
num = num Or (洗衣状态 << ConditionBits.洗衣状态)
|
|||
|
|
|
|||
|
|
num = num Or (退房状态 << ConditionBits.退房状态)
|
|||
|
|
num = num Or (稍后状态 << ConditionBits.稍后状态)
|
|||
|
|
num = num Or (SOS状态 << ConditionBits.SOS状态)
|
|||
|
|
num = num Or (预约待租状态 << ConditionBits.预约待租状态)
|
|||
|
|
|
|||
|
|
|
|||
|
|
num = num Or (开锁状态 << ConditionBits.开锁状态)
|
|||
|
|
num = num Or (行李状态 << ConditionBits.行李状态)
|
|||
|
|
num = num Or (保险箱状态 << ConditionBits.保险箱状态)
|
|||
|
|
num = num Or (门磁状态 << ConditionBits.门磁状态)
|
|||
|
|
|
|||
|
|
|
|||
|
|
num = num Or (提示音状态 << ConditionBits.提示音状态)
|
|||
|
|
num = num Or (背光状态 << ConditionBits.背光状态)
|
|||
|
|
num = num Or (季节状态 << ConditionBits.季节状态)
|
|||
|
|
num = num Or (时间状态 << ConditionBits.时间状态)
|
|||
|
|
num = num Or (起夜状态 << ConditionBits.起夜状态)
|
|||
|
|
|
|||
|
|
|
|||
|
|
num = num Or (锁定状态 << ConditionBits.锁定状态)
|
|||
|
|
|
|||
|
|
Return num
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
Enum ConditionBits
|
|||
|
|
''' <summary>动作输出使能</summary>
|
|||
|
|
动作输出使能 = 0
|
|||
|
|
|
|||
|
|
''' <summary>房态</summary>
|
|||
|
|
房态 = 1
|
|||
|
|
|
|||
|
|
''' <summary>控制取电服务</summary>
|
|||
|
|
控制取电服务 = 4
|
|||
|
|
|
|||
|
|
''' <summary>取电状态</summary>
|
|||
|
|
取电状态 = 5
|
|||
|
|
|
|||
|
|
''' <summary>勿扰状态</summary>
|
|||
|
|
勿扰状态 = 8
|
|||
|
|
|
|||
|
|
''' <summary>清理状态</summary>
|
|||
|
|
清理状态 = 11
|
|||
|
|
|
|||
|
|
''' <summary>呼叫状态</summary>
|
|||
|
|
呼叫状态 = 14
|
|||
|
|
|
|||
|
|
''' <summary>洗衣状态</summary>
|
|||
|
|
洗衣状态 = 17
|
|||
|
|
|
|||
|
|
''' <summary>退房状态</summary>
|
|||
|
|
退房状态 = 20
|
|||
|
|
|
|||
|
|
''' <summary>稍后状态</summary>
|
|||
|
|
稍后状态 = 23
|
|||
|
|
|
|||
|
|
''' <summary>SOS状态</summary>
|
|||
|
|
SOS状态 = 26
|
|||
|
|
|
|||
|
|
''' <summary>预约待租状态</summary>
|
|||
|
|
预约待租状态 = 29
|
|||
|
|
|
|||
|
|
''' <summary>开锁状态</summary>
|
|||
|
|
开锁状态 = 32
|
|||
|
|
|
|||
|
|
''' <summary>行李状态</summary>
|
|||
|
|
行李状态 = 35
|
|||
|
|
|
|||
|
|
''' <summary>保险箱状态</summary>
|
|||
|
|
保险箱状态 = 38
|
|||
|
|
|
|||
|
|
''' <summary>门磁状态</summary>
|
|||
|
|
门磁状态 = 41
|
|||
|
|
|
|||
|
|
''' <summary>提示音状态</summary>
|
|||
|
|
提示音状态 = 44
|
|||
|
|
|
|||
|
|
''' <summary>背光状态</summary>
|
|||
|
|
背光状态 = 47
|
|||
|
|
|
|||
|
|
''' <summary>季节状态</summary>
|
|||
|
|
季节状态 = 50
|
|||
|
|
|
|||
|
|
''' <summary>时间状态</summary>
|
|||
|
|
时间状态 = 53
|
|||
|
|
|
|||
|
|
''' <summary>起夜状态</summary>
|
|||
|
|
起夜状态 = 56
|
|||
|
|
|
|||
|
|
''' <summary>锁定状态</summary>
|
|||
|
|
锁定状态 = 59
|
|||
|
|
|
|||
|
|
''' <summary>保留字段</summary>
|
|||
|
|
保留字段 = 62
|
|||
|
|
End Enum
|
|||
|
|
Private isloadok As Boolean = False
|
|||
|
|
Public Sub GetG_Result()
|
|||
|
|
If isloadok Then
|
|||
|
|
G_Result = String.Empty
|
|||
|
|
Dim strbuf() As String = Cob_CarryOutType.Text.Trim.Split(" ")
|
|||
|
|
Dim u64 As UInt64 = Getresult()
|
|||
|
|
Dim kettypebuf() As String = Cob_KeyType.Text.Trim.Split(" ")
|
|||
|
|
G_Result = $"{kettypebuf(0)},{strbuf(0)},{u64}"
|
|||
|
|
Label3.Text = $"{kettypebuf(1)},{strbuf(1)},Execution condition {vbCrLf }({G_Result})"
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
Public Sub GetGTcelltag()
|
|||
|
|
Dim number() As String = ComboBox1.Text.Split(" ")
|
|||
|
|
|
|||
|
|
If IsNothing(G_celltag) OrElse IsNothing(SceneNumber) OrElse String.IsNullOrEmpty(ComboBox1.Text) Then
|
|||
|
|
SetMasterMask(G_Row, number(0))
|
|||
|
|
If G_celltag.ContainsKey("CallRow") Then
|
|||
|
|
G_celltag.Remove("CallRow")
|
|||
|
|
End If
|
|||
|
|
Return
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
If SceneNumber.ContainsKey(ComboBox1.Text) Then
|
|||
|
|
clearcelltext(G_Row)
|
|||
|
|
If G_celltag.ContainsKey("CallRow") Then
|
|||
|
|
G_celltag.Item("CallRow") = number(0)
|
|||
|
|
|
|||
|
|
Else
|
|||
|
|
G_celltag.Add("CallRow", number(0))
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
G_Result = ComboBox1.Text
|
|||
|
|
End If
|
|||
|
|
SetMasterMask(G_Row, number(0))
|
|||
|
|
End Sub
|
|||
|
|
Public Sub SetMasterMask(inrow As Integer, newcallrow As String)
|
|||
|
|
'获取旧模板行
|
|||
|
|
If G_celltag.ContainsKey("CallRow") Then
|
|||
|
|
Dim s As String = G_celltag.Item("CallRow")
|
|||
|
|
'旧模板行清空与本行相关反馈灯设置
|
|||
|
|
For r = 7 To G_grid.Rows - 1
|
|||
|
|
If G_grid.Cell(r, 3).Text.Equals(s) Then
|
|||
|
|
Dim rowtag As Dictionary(Of String, String) = JsonConvert.DeserializeObject(Of Dictionary(Of String, String))(G_grid.Cell(r, 6).Tag)
|
|||
|
|
If Not IsNothing(rowtag) AndAlso rowtag.ContainsKey("CallRowA") Then
|
|||
|
|
Dim buf() As String = rowtag.Item("CallRowA").Split(",")
|
|||
|
|
Dim rtag As String = String.Empty
|
|||
|
|
For Each index In buf
|
|||
|
|
If index.Equals(G_grid.Cell(inrow, 3).Text) Then
|
|||
|
|
Continue For
|
|||
|
|
Else
|
|||
|
|
If String.IsNullOrEmpty(index) Then
|
|||
|
|
Continue For
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
If String.IsNullOrEmpty(rtag) Then
|
|||
|
|
rtag = $"{index},"
|
|||
|
|
Else
|
|||
|
|
rtag = $"{rtag}{index},"
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
Console.WriteLine(rtag)
|
|||
|
|
If rtag.Length > 0 Then
|
|||
|
|
rtag = rtag.Substring(0, rtag.Length - 1)
|
|||
|
|
End If
|
|||
|
|
Console.WriteLine(rtag)
|
|||
|
|
rowtag.Item("CallRowA") = rtag
|
|||
|
|
G_grid.Cell(r, 6).Tag = JsonConvert.SerializeObject(rowtag)
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
Console.WriteLine(G_grid.Cell(r, 3).Text)
|
|||
|
|
If G_grid.Cell(r, 3).Text.Equals(newcallrow) Then
|
|||
|
|
Dim rowtag As Dictionary(Of String, String) = JsonConvert.DeserializeObject(Of Dictionary(Of String, String))(G_grid.Cell(r, 6).Tag)
|
|||
|
|
If IsNothing(rowtag) Then
|
|||
|
|
rowtag = New Dictionary(Of String, String)
|
|||
|
|
End If
|
|||
|
|
If Not IsNothing(rowtag) AndAlso rowtag.ContainsKey("CallRowA") Then
|
|||
|
|
Console.WriteLine(rowtag.Item("CallRowA"))
|
|||
|
|
If Not String.IsNullOrEmpty(rowtag.Item("CallRowA")) Then
|
|||
|
|
rowtag.Item("CallRowA") = $"{ rowtag.Item("CallRowA")},{G_grid.Cell(inrow, 3).Text}"
|
|||
|
|
Else
|
|||
|
|
rowtag.Item("CallRowA") = $"{G_grid.Cell(inrow, 3).Text}"
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
|
|||
|
|
Else
|
|||
|
|
rowtag.Add("CallRowA", G_grid.Cell(inrow, 3).Text)
|
|||
|
|
End If
|
|||
|
|
'rowtag.Item("CallRowA") = rtag
|
|||
|
|
G_grid.Cell(r, 6).Tag = JsonConvert.SerializeObject(rowtag)
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Public Function chushenGridTextTONumber(text As String) As Integer
|
|||
|
|
Dim result As Integer = 0
|
|||
|
|
Integer.TryParse(text, result)
|
|||
|
|
If result = 0 Then Return result
|
|||
|
|
result = ((result - 1) * 10) + 1
|
|||
|
|
Return result
|
|||
|
|
End Function
|
|||
|
|
Public Function NumberTOchushenGridText(text As String) As String
|
|||
|
|
If String.IsNullOrEmpty(text) Then Return String.Empty
|
|||
|
|
Dim result As Integer = 0
|
|||
|
|
Integer.TryParse(text, result)
|
|||
|
|
If result = 0 Then Return result
|
|||
|
|
result = result / 10
|
|||
|
|
If result = 0 Then
|
|||
|
|
Return 1
|
|||
|
|
Else
|
|||
|
|
result = result + 1
|
|||
|
|
End If
|
|||
|
|
Return result
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
|
|||
|
|
Public Sub GetG_celltag()
|
|||
|
|
If SplitContainer4.Panel2Collapsed = False AndAlso chushen_Grid.Rows > 0 Then
|
|||
|
|
'G_celltag.Clear()
|
|||
|
|
If G_Row = 7 Then
|
|||
|
|
For r = 1 To chushen_Grid.Rows - 1
|
|||
|
|
If String.IsNullOrEmpty(chushen_Grid.Cell(r, 1).Text) Then
|
|||
|
|
Dim key As String = chushen_Grid.Cell(r, 2).Text
|
|||
|
|
If key.Contains("Dimming gradient time") Then
|
|||
|
|
If G_celltag.ContainsKey(key) Then
|
|||
|
|
G_celltag.Item(key) = chushenGridTextTONumber(chushen_Grid.Cell(r, 3).Text)
|
|||
|
|
Else
|
|||
|
|
G_celltag.Add(key, chushenGridTextTONumber(chushen_Grid.Cell(r, 3).Text))
|
|||
|
|
End If
|
|||
|
|
Else
|
|||
|
|
If G_celltag.ContainsKey(key) Then
|
|||
|
|
G_celltag.Item(key) = chushen_Grid.Cell(r, 3).Text
|
|||
|
|
Else
|
|||
|
|
G_celltag.Add(key, chushen_Grid.Cell(r, 3).Text)
|
|||
|
|
End If
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
Else
|
|||
|
|
For r = 1 To chushen_Grid.Rows - 1
|
|||
|
|
'If String.IsNullOrEmpty(chushen_Grid.Cell(r, 2).Text) Then Continue For
|
|||
|
|
Dim key As String = FunctionalTransformation(False, chushen_Grid.Cell(r, 1).Text)
|
|||
|
|
' G_celltag.Add(key, chushen_Grid.Cell(r, 2).Text)
|
|||
|
|
If G_celltag.ContainsKey(key) Then
|
|||
|
|
G_celltag.Item(key) = chushen_Grid.Cell(r, 2).Text
|
|||
|
|
Else
|
|||
|
|
G_celltag.Add(key, chushen_Grid.Cell(r, 2).Text)
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
End Sub
|
|||
|
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
|||
|
|
|
|||
|
|
GetG_Result()
|
|||
|
|
GetG_celltag()
|
|||
|
|
GetGTcelltag()
|
|||
|
|
GetNodeResult()
|
|||
|
|
Me.DialogResult = System.Windows.Forms.DialogResult.OK
|
|||
|
|
Me.Close()
|
|||
|
|
Return
|
|||
|
|
End Sub
|
|||
|
|
Public Sub GetNodeResult()
|
|||
|
|
If IsNothing(DicDevicemodel) OrElse DicDevicemodel.Count = 0 Then
|
|||
|
|
Return
|
|||
|
|
End If
|
|||
|
|
If IsNothing(G_grid) And G_Row = 0 Then Return
|
|||
|
|
Dim cta = New CtabRange(G_grid, G_Row, TableColNumber.DeviceName)
|
|||
|
|
If String.IsNullOrEmpty(cta.devname) Then Return
|
|||
|
|
Dim loadtag As TableRowTag = G_ActionConfiguration(G_Row - 7)
|
|||
|
|
If DicDevicemodel.ContainsKey(cta.devname) Then
|
|||
|
|
Dim devmodw As DeviceModel = DicDevicemodel.Item(cta.devname)
|
|||
|
|
For Each node In devmodw.Nodes
|
|||
|
|
If node.Name.Equals(loadtag.G_DevNodeName) Then
|
|||
|
|
For Each index In node.Nodes
|
|||
|
|
If index.LoopAddr.Equals(loadtag.G_DevNodeIndex.ToString) Then
|
|||
|
|
index.DefaultClass = ComboBox2.Text
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub Cob_KeyType_TextChanged(sender As Object, e As EventArgs) Handles Cob_KeyType.TextChanged
|
|||
|
|
GetG_Result()
|
|||
|
|
|
|||
|
|
SplitContainer4.Panel2Collapsed = True
|
|||
|
|
Select Case Cob_KeyType.Text
|
|||
|
|
Case "1365 All cards inserted", "2730 All cards pulled out", "1 Guest card inserted", "2 Guest card pulled out", "4 Waiter card inserted",
|
|||
|
|
"8 Waiter card pulled out", "256 Manager card inserted", "512 Manager cardpulled out", "1024 Engineering card inserted", "2048 Engineering card pulled out",
|
|||
|
|
"4096 Master card inserted", "8192 Master card pulled out", "16384 High frequency card inserted", "32768 High frequency card pulled out"
|
|||
|
|
' G_Row = 7
|
|||
|
|
End Select
|
|||
|
|
|
|||
|
|
If G_Row = 7 Then
|
|||
|
|
initTablechushen_Grid1()
|
|||
|
|
Setingchushen_Grid()
|
|||
|
|
Else
|
|||
|
|
initTablechushen_Grid()
|
|||
|
|
AddChushen_GridRow(Cob_KeyType.Text)
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
ComboBox1_DropDown(Nothing, Nothing)
|
|||
|
|
ComboBox1.Text = ""
|
|||
|
|
ComboBox1.Enabled = True
|
|||
|
|
If G_celltag.ContainsKey("CallRowA") Then
|
|||
|
|
Label5.Text = G_celltag.Item("CallRowA")
|
|||
|
|
ComboBox1.Enabled = False
|
|||
|
|
End If
|
|||
|
|
If G_celltag.ContainsKey("CallRow") Then
|
|||
|
|
Dim callrow As String = G_celltag.Item("CallRow")
|
|||
|
|
Dim buf() As String
|
|||
|
|
For Each index In SceneNumber.Keys
|
|||
|
|
buf = index.Split(" ")
|
|||
|
|
If buf(0).Equals(callrow) Then
|
|||
|
|
ComboBox1.Text = index
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Public Sub initTablechushen_Grid1()
|
|||
|
|
SplitContainer4.Panel2Collapsed = False
|
|||
|
|
With chushen_Grid
|
|||
|
|
.NewFile()
|
|||
|
|
.Rows = 1
|
|||
|
|
.Cols = 4
|
|||
|
|
.ExtendLastCol = True
|
|||
|
|
'.Cell(0, 1).Text = "功能名稱"
|
|||
|
|
'.Cell(0, 2).Text = "功能方法"
|
|||
|
|
.Column(3).CellType = CellTypeEnum.ComboBox
|
|||
|
|
.Column(1).Width = 100
|
|||
|
|
.Column(2).Width = 200
|
|||
|
|
.Row(0).Visible = True
|
|||
|
|
.Column(0).Visible = True
|
|||
|
|
.Column(0).Visible = False
|
|||
|
|
.Column(1).Locked = True
|
|||
|
|
.Column(2).Locked = True
|
|||
|
|
.Column(0).Locked = True
|
|||
|
|
.Column(1).Alignment = FlexCell.AlignmentEnum.CenterCenter
|
|||
|
|
.Column(2).Alignment = FlexCell.AlignmentEnum.CenterCenter
|
|||
|
|
.Column(3).Alignment = FlexCell.AlignmentEnum.CenterCenter
|
|||
|
|
End With
|
|||
|
|
|
|||
|
|
Dim li As New List(Of (String, String))
|
|||
|
|
li.Add(("DIMMING", "Dimming gradient time"))
|
|||
|
|
li.Add(("MUSIC", "Set playback volume"))
|
|||
|
|
addchushen_Gridrow(li)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
Public Sub addchushen_Gridrow(li As List(Of (String, String)))
|
|||
|
|
For Each node In g_BasicClasses.DeviceClass
|
|||
|
|
For Each index In li
|
|||
|
|
If index.Item1.Equals(node.Name.ToUpper) Then
|
|||
|
|
Select Case node.Name.ToUpper
|
|||
|
|
Case "DIMMING"
|
|||
|
|
chushen_Grid.AddItem("")
|
|||
|
|
chushen_Grid.Row(chushen_Grid.Rows - 1).Locked = False
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 1).Locked = True
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 2).Text = "50 Adjustable Lower limit Settings (0-100)"
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 2).Locked = True
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 3).Text = 10
|
|||
|
|
|
|||
|
|
chushen_Grid.AddItem("")
|
|||
|
|
chushen_Grid.Row(chushen_Grid.Rows - 1).Locked = False
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 1).Locked = True
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 2).Text = "49 Adjustable Upper limit Settings (0-100)"
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 2).Locked = True
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 3).Text = 90
|
|||
|
|
|
|||
|
|
chushen_Grid.AddItem("")
|
|||
|
|
chushen_Grid.Row(chushen_Grid.Rows - 1).Locked = False
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 1).Locked = True
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 2).Text = "48 Host dimming percentage (0-100)"
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 2).Locked = True
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 3).Text = 80
|
|||
|
|
Dim Nhradrow As Integer = chushen_Grid.Rows
|
|||
|
|
For Each Anode In node.Methods
|
|||
|
|
Select Case Anode.Name
|
|||
|
|
Case "Dimming gradient time"
|
|||
|
|
chushen_Grid.AddItem("")
|
|||
|
|
Dim hradrow As Integer = chushen_Grid.Rows - 1
|
|||
|
|
chushen_Grid.Cell(hradrow, 1).Text = index.Item2
|
|||
|
|
|
|||
|
|
Dim valLi() As String
|
|||
|
|
For i = 0 To Anode.Params.Count - 1
|
|||
|
|
If i > 1 Then Return
|
|||
|
|
Dim par As DeviceChildNodeMethodParam = Anode.Params(i)
|
|||
|
|
If i = 1 Then
|
|||
|
|
chushen_Grid.Cell(hradrow, 2 + i).Text = $"{par.Name}( 1(fast)-10 (slow) )"
|
|||
|
|
Else
|
|||
|
|
chushen_Grid.Cell(hradrow, 2 + i).Text = par.Name
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
If par.Name.Equals("Set Status") Then
|
|||
|
|
valLi = par.DataRange.Split(",")
|
|||
|
|
For Each parval In valLi
|
|||
|
|
|
|||
|
|
chushen_Grid.AddItem("")
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 2).Text = parval
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 3).Mask = MaskEnum.Digital
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 3).Text = 3
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
chushen_Grid.Column(1).Locked = False
|
|||
|
|
chushen_Grid.Range(hradrow, 1, chushen_Grid.Rows - 1, 1).MergeCells = True
|
|||
|
|
chushen_Grid.Column(1).Locked = True
|
|||
|
|
chushen_Grid.Row(hradrow).Locked = True
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
|
|||
|
|
End Select
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
chushen_Grid.AddItem("")
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 2).Text = "C8PLC comes with constant pressure dimming gradient time"
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 3).Text = 3
|
|||
|
|
chushen_Grid.AddItem("")
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 2).Text = "C8PLC peripheral constant voltage dimming gradient time"
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 3).Text = 3
|
|||
|
|
chushen_Grid.Row(Nhradrow).Locked = False
|
|||
|
|
chushen_Grid.Column(1).Locked = False
|
|||
|
|
chushen_Grid.Range(Nhradrow, 1, chushen_Grid.Rows - 1, 1).MergeCells = True
|
|||
|
|
chushen_Grid.Column(1).Locked = True
|
|||
|
|
chushen_Grid.Row(Nhradrow).Locked = True
|
|||
|
|
|
|||
|
|
|
|||
|
|
Case "MUSIC"
|
|||
|
|
For Each Anode In node.Methods
|
|||
|
|
Select Case Anode.Name
|
|||
|
|
Case "Set playback volume"
|
|||
|
|
chushen_Grid.AddItem("")
|
|||
|
|
Dim hradrow As Integer = chushen_Grid.Rows - 1
|
|||
|
|
chushen_Grid.Cell(hradrow, 1).Text = index.Item2
|
|||
|
|
|
|||
|
|
|
|||
|
|
Dim valLi() As String
|
|||
|
|
For i = 0 To Anode.Params.Count - 1
|
|||
|
|
If i > 1 Then Return
|
|||
|
|
Dim par As DeviceChildNodeMethodParam = Anode.Params(i)
|
|||
|
|
If i = 1 Then
|
|||
|
|
chushen_Grid.Cell(hradrow, 2 + i).Text = $"{par.Name}(1(small)-10(big))"
|
|||
|
|
Else
|
|||
|
|
chushen_Grid.Cell(hradrow, 2 + i).Text = par.Name
|
|||
|
|
End If
|
|||
|
|
'
|
|||
|
|
If par.Name.Equals("Function settings") Then
|
|||
|
|
valLi = par.DataRange.Split(",")
|
|||
|
|
For Each parval In valLi
|
|||
|
|
If parval.Contains("Volume +") OrElse parval.Contains("Volume -") Then Continue For
|
|||
|
|
chushen_Grid.AddItem("")
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 2).Text = parval
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 3).Mask = MaskEnum.Digital
|
|||
|
|
|
|||
|
|
chushen_Grid.Cell(chushen_Grid.Rows - 1, 3).Text = 6
|
|||
|
|
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
chushen_Grid.Column(1).Locked = False
|
|||
|
|
chushen_Grid.Range(hradrow, 1, chushen_Grid.Rows - 1, 1).MergeCells = True
|
|||
|
|
chushen_Grid.Column(1).Locked = True
|
|||
|
|
chushen_Grid.Row(hradrow).Locked = True
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
End Select
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
End Select
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Sub Cob_CarryOutType_TextChanged(sender As Object, e As EventArgs) Handles Cob_CarryOutType.TextChanged
|
|||
|
|
GetG_Result()
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub Table_Grid1_CellChange(Sender As Object, e As Grid.CellChangeEventArgs) Handles Table_Grid1.CellChange
|
|||
|
|
GetG_Result()
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub Table_Grid1_SetCellText(Sender As Object, e As Grid.SetCellTextEventArgs) Handles Table_Grid1.SetCellText
|
|||
|
|
GetG_Result()
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub chushen_Grid_ComboDropDown(Sender As Object, e As Grid.ComboDropDownEventArgs) Handles chushen_Grid.ComboDropDown
|
|||
|
|
If e.Row > 0 Then
|
|||
|
|
Me.chushen_Grid.ComboBox(e.Col).Items.Clear()
|
|||
|
|
If G_Row = 7 Then
|
|||
|
|
|
|||
|
|
If e.Row = 1 Then
|
|||
|
|
For index = 1 To 100
|
|||
|
|
Me.chushen_Grid.ComboBox(e.Col).Items.Add(index)
|
|||
|
|
Next
|
|||
|
|
Else
|
|||
|
|
|
|||
|
|
'If chushen_Grid.Cell(e.Col, 2).Text.Contains("音量") Then
|
|||
|
|
|
|||
|
|
|
|||
|
|
'ElseIf chushen_Grid.Cell(e.Col, 2).Text.Contains("时间") Then
|
|||
|
|
' Me.chushen_Grid.ComboBox(e.Col).Items.AddRange({"5", "10", "20", "50", "80"})
|
|||
|
|
If chushen_Grid.Cell(e.Row, e.Col - 1).Text.Equals("10 Set global volume limit") Then
|
|||
|
|
Me.chushen_Grid.ComboBox(e.Col).Items.AddRange({"4", "5", "6", "7", "8", "9", "10"})
|
|||
|
|
Else
|
|||
|
|
Me.chushen_Grid.ComboBox(e.Col).Items.AddRange({"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"})
|
|||
|
|
End If
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Else
|
|||
|
|
|
|||
|
|
Dim liname As String = chushen_Grid.Cell(e.Row, 1).Text
|
|||
|
|
Dim key As String = FunctionalTransformation(False, liname)
|
|||
|
|
If Dic_2.ContainsKey(key) Then
|
|||
|
|
Dim li As List(Of String) = Dic_2.Item(key)
|
|||
|
|
|
|||
|
|
Me.chushen_Grid.ComboBox(e.Col).Items.AddRange(li.ToArray)
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
'Public Sub IsckeckCelltag(kettype String)
|
|||
|
|
|
|||
|
|
' Select Case kettype
|
|||
|
|
|
|||
|
|
' Case "1 点按"
|
|||
|
|
' DevEvenPar("DIMMING", "控制灯光", 0)
|
|||
|
|
' SplitContainer4.Panel2Collapsed = False
|
|||
|
|
' Case "3 长按"
|
|||
|
|
' DevEvenPar("DIMMING", "循环调光", 0)
|
|||
|
|
' SplitContainer4.Panel2Collapsed = False
|
|||
|
|
' Case "2 长按释放"
|
|||
|
|
' End Select
|
|||
|
|
|
|||
|
|
|
|||
|
|
'End Sub
|
|||
|
|
|
|||
|
|
Private Sub chushen_Grid_CellChange(Sender As Object, e As Grid.CellChangeEventArgs) Handles chushen_Grid.CellChange
|
|||
|
|
Dim liname As String = chushen_Grid.Cell(e.Row, 2).Text
|
|||
|
|
Dim linamekey As String = chushen_Grid.Cell(e.Row, 1).Text
|
|||
|
|
|
|||
|
|
Dim cvalint As Integer = -1
|
|||
|
|
If e.Col = 2 Then
|
|||
|
|
Dim key As String = FunctionalTransformation(False, linamekey)
|
|||
|
|
If String.IsNullOrEmpty(liname) Then Return
|
|||
|
|
If Dic_2.ContainsKey(key) Then
|
|||
|
|
Dim li As List(Of String) = Dic_2.Item(key)
|
|||
|
|
For Each index In li
|
|||
|
|
If index.Equals(liname) Then
|
|||
|
|
|
|||
|
|
Return
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
chushen_Grid.Cell(e.Row, 2).Text = ""
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
If e.Col = 3 Then
|
|||
|
|
Dim linameval As String = chushen_Grid.Cell(e.Row, 3).Text
|
|||
|
|
If Integer.TryParse(linameval, cvalint) Then
|
|||
|
|
If cvalint < 1 Then
|
|||
|
|
chushen_Grid.Cell(e.Row, 3).Text = 1
|
|||
|
|
End If
|
|||
|
|
Dim ctx As String = chushen_Grid.Cell(e.Row, 2).Text
|
|||
|
|
|
|||
|
|
If chushen_Grid.Cell(e.Row, 2).Text.Equals("48 Host dimming percentage (0-100)") AndAlso cvalint > 100 Then
|
|||
|
|
chushen_Grid.Cell(e.Row, 3).Text = 100
|
|||
|
|
ElseIf chushen_Grid.Cell(e.Row, 2).Text.Equals("49 Adjustable Upper limit Settings (0-100)") AndAlso cvalint > 100 Then
|
|||
|
|
chushen_Grid.Cell(e.Row, 3).Text = 100
|
|||
|
|
ElseIf chushen_Grid.Cell(e.Row, 2).Text.Equals("50 Adjustable Lower limit Settings (0-100)") AndAlso cvalint > 100 Then
|
|||
|
|
chushen_Grid.Cell(e.Row, 3).Text = 100
|
|||
|
|
End If
|
|||
|
|
If Not chushen_Grid.Cell(e.Row, 2).Text.Equals("48 Host dimming percentage (0-100)") AndAlso Not chushen_Grid.Cell(e.Row, 2).Text.Equals("50 可调下限设置(0-100)") AndAlso Not chushen_Grid.Cell(e.Row, 2).Text.Equals("49 可调上限设置(0-100)") AndAlso cvalint > 10 Then
|
|||
|
|
chushen_Grid.Cell(e.Row, 3).Text = 10
|
|||
|
|
End If
|
|||
|
|
Else
|
|||
|
|
If Me.chushen_Grid.ComboBox(e.Col).Items.Count > 0 Then
|
|||
|
|
If Me.chushen_Grid.ComboBox(e.Col).Items.Contains(linameval) Then
|
|||
|
|
Else
|
|||
|
|
chushen_Grid.Cell(e.Row, 3).Text = Me.chushen_Grid.ComboBox(e.Col).Items(0)
|
|||
|
|
End If
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
Public SceneNumber As Dictionary(Of String, String)
|
|||
|
|
Private Sub ComboBox1_DropDown(sender As Object, e As EventArgs) Handles ComboBox1.DropDown
|
|||
|
|
ComboBox1.Items.Clear()
|
|||
|
|
|
|||
|
|
SceneNumber.Clear()
|
|||
|
|
If IsNothing(G_grid) And G_Row = 0 Then Return
|
|||
|
|
Dim kettypebuf() As String = Cob_KeyType.Text.Trim.Split(" ")
|
|||
|
|
Dim loadtag As TableRowTag = G_ActionConfiguration(G_Row - 7)
|
|||
|
|
ComboBox1.Items.Add("")
|
|||
|
|
For r = 7 To G_grid.Rows - 1
|
|||
|
|
If r = G_Row OrElse G_grid.Row(r).Locked Then Continue For
|
|||
|
|
Dim rowtag As TableRowTag = G_ActionConfiguration(r - 7)
|
|||
|
|
Dim buf() As String = rowtag.G_DicRow(6).Trim.Split(",")
|
|||
|
|
If loadtag.G_DevNodeName.Equals(rowtag.G_DevNodeName) AndAlso rowtag.G_KeyType.Contains(Cob_KeyType.Text) AndAlso kettypebuf(0).Equals(buf(0)) Then
|
|||
|
|
Dim sval As String = $"{G_grid.Cell(r, 3).Text } {G_grid.Cell(r, 5).Text}"
|
|||
|
|
If Not SceneNumber.ContainsKey(sval) Then
|
|||
|
|
ComboBox1.Items.Add(sval)
|
|||
|
|
SceneNumber.Add($"{sval}", r)
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
Public Shared Function ComboBox1DateDropDown(Tgrid As Grid, mytag As TableRowTag, ActionConfiguration As List(Of TableRowTag)) As Dictionary(Of String, String)
|
|||
|
|
Dim dic As New Dictionary(Of String, String)
|
|||
|
|
dic.Clear()
|
|||
|
|
If IsNothing(Tgrid) Then Return dic
|
|||
|
|
|
|||
|
|
|
|||
|
|
For r = 7 To Tgrid.Rows - 1
|
|||
|
|
If Tgrid.Row(r).Locked Then Continue For
|
|||
|
|
Dim rowtag As TableRowTag = ActionConfiguration(r - 7)
|
|||
|
|
|
|||
|
|
Dim kettypebuf() As String = mytag.G_DicRow(6).Trim.Split(",")
|
|||
|
|
Dim buf() As String = rowtag.G_DicRow(6).Trim.Split(",")
|
|||
|
|
Dim zhixin As String = ""
|
|||
|
|
For Each nindex In rowtag.G_KeyType
|
|||
|
|
If buf(0).Equals(nindex.Substring(0, 1)) Then
|
|||
|
|
zhixin = nindex
|
|||
|
|
Exit For
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
If kettypebuf.Length > 1 Then
|
|||
|
|
If mytag.G_DevNodeName.Equals(rowtag.G_DevNodeName) AndAlso mytag.G_KeyType.Contains(zhixin) AndAlso kettypebuf(0).Equals(buf(0)) Then
|
|||
|
|
|
|||
|
|
dic.Add($"{Tgrid.Cell(r, 3).Text } {Tgrid.Cell(r, 5).Text}", r)
|
|||
|
|
End If
|
|||
|
|
Else
|
|||
|
|
dic.Add($"{Tgrid.Cell(r, 3).Text } {Tgrid.Cell(r, 5).Text}", r)
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Next
|
|||
|
|
Return dic
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
Public Sub EnableFrom(isbool As Boolean)
|
|||
|
|
Cob_KeyType.Enabled = isbool
|
|||
|
|
Cob_CarryOutType.Enabled = isbool
|
|||
|
|
SplitContainer4.Enabled = isbool
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub ComboBox1_TextChanged(sender As Object, e As EventArgs) Handles ComboBox1.TextChanged
|
|||
|
|
If isloadok Then
|
|||
|
|
If IsNothing(SceneNumber) OrElse SceneNumber.Count = 0 OrElse String.IsNullOrEmpty(ComboBox1.Text) Then
|
|||
|
|
G_grid.Row(G_Row).Locked = False
|
|||
|
|
EnableFrom(True)
|
|||
|
|
Return
|
|||
|
|
End If
|
|||
|
|
If SceneNumber.ContainsKey(ComboBox1.Text) Then
|
|||
|
|
Console.WriteLine(ComboBox1.Text)
|
|||
|
|
' MsgBox("启用并联设置,将清除本行所有设置。请确认!!!", MsgBoxStyle.OkCancel)
|
|||
|
|
|
|||
|
|
Dim row As Integer = SceneNumber.Item(ComboBox1.Text)
|
|||
|
|
If MsgBox("If parallel Settings are enabled, all Settings of this row are cleared. Please confirm!!!", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
|
|||
|
|
' G_grid.Range(G_Row, 7, G_Row, G_grid.Cols - 5).ClearAll()
|
|||
|
|
|
|||
|
|
G_grid.Row(G_Row).Locked = True
|
|||
|
|
EnableFrom(False)
|
|||
|
|
Else
|
|||
|
|
ComboBox1.SelectedIndex = 0
|
|||
|
|
G_grid.Row(G_Row).Locked = False
|
|||
|
|
EnableFrom(True)
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
Console.WriteLine(ComboBox1.Text)
|
|||
|
|
Else
|
|||
|
|
EnableFrom(True)
|
|||
|
|
End If
|
|||
|
|
Else
|
|||
|
|
If String.IsNullOrEmpty(ComboBox1.Text) Then
|
|||
|
|
EnableFrom(True)
|
|||
|
|
Else
|
|||
|
|
EnableFrom(False)
|
|||
|
|
End If
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
Public Sub clearcelltext(r As Integer)
|
|||
|
|
For c = 6 To G_grid.Cols - 1
|
|||
|
|
If G_grid.Column(c).Visible = False Then Continue For
|
|||
|
|
G_grid.Cell(r, c).Text = ""
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
End Class
|
|||
|
|
|
|||
|
|
|
|||
|
|
|