Files

1250 lines
53 KiB
VB.net
Raw Permalink Normal View History

2025-12-11 11:57:07 +08:00
Imports System.Text
Public Class Form1
Public Isoneload As Boolean = False
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'设置界面显示项目名称及版本
Me.Text = "NoCarPowerSupply_" & My.Application.Info.Version.ToString
Isoneload = False
InitIfGrid1()
InitPortTable1()
Isoneload = True
End Sub
Public isxiugai1 As Boolean = False
Public Sub InitPortTable1()
PortTable.NewFile()
PortTable.ExtendLastCol = False
PortTable.Cols = 9
PortTable.Rows = 6
PortTable.Cell(0, 0).Text = "端口"
PortTable.Cell(0, 1).Text = "别名"
PortTable.Cell(0, 2).Text = "输入端口(需要先在主页设置输入回路别名)"
PortTable.Cell(0, 3).Text = "无人->有人阈值(百分比)"
PortTable.Cell(0, 4).Text = "有人->无人阈值(百分比)"
PortTable.Cell(0, 5).Text = "启用"
PortTable.Cell(0, 6).Text = "检测时间"
PortTable.Cell(0, 7).Text = "检测时间单位"
PortTable.Cell(0, 8).Text = "数据"
PortTable.Row(0).Locked = True
PortTable.Column(0).Width = 100
PortTable.Column(1).Width = 80
PortTable.Column(2).Width = 250
PortTable.Column(3).Width = 150
PortTable.Column(4).Width = 150
PortTable.Column(5).Width = 30
PortTable.Column(6).Width = 60
PortTable.Column(7).Width = 80
PortTable.Column(8).Width = 20
' PortTable.Column(1).CellType = FlexCell.CellTypeEnum.ComboBox
'PortTable.Column(2).CellType = FlexCell.CellTypeEnum.ComboBox
PortTable.Column(3).CellType = FlexCell.CellTypeEnum.ComboBox
PortTable.Column(4).CellType = FlexCell.CellTypeEnum.ComboBox
PortTable.Column(5).CellType = FlexCell.CellTypeEnum.CheckBox
PortTable.Column(6).CellType = FlexCell.CellTypeEnum.ComboBox
PortTable.Column(7).CellType = FlexCell.CellTypeEnum.ComboBox
PortTable.Column(8).CellType = FlexCell.CellTypeEnum.Button
''PortTable.Column(1).Locked = True
'PortTable.ComboBox(2).Locked = True
'PortTable.ComboBox(3).Locked = True
'PortTable.ComboBox(4).Locked = True
''PortTable.ComboBox(5).Locked = True
'PortTable.ComboBox(6).Locked = True
'PortTable.ComboBox(7).Locked = True
PortTable.Column(0).Alignment = FlexCell.AlignmentEnum.CenterCenter
PortTable.Column(1).Alignment = FlexCell.AlignmentEnum.CenterCenter
PortTable.Column(2).Alignment = FlexCell.AlignmentEnum.CenterCenter
PortTable.Column(3).Alignment = FlexCell.AlignmentEnum.CenterCenter
PortTable.Column(7).Alignment = FlexCell.AlignmentEnum.CenterCenter
PortTable.Column(4).Alignment = FlexCell.AlignmentEnum.CenterCenter
PortTable.Column(5).Alignment = FlexCell.AlignmentEnum.CenterCenter
PortTable.Column(6).Alignment = FlexCell.AlignmentEnum.CenterCenter
PortTable.Column(7).Alignment = FlexCell.AlignmentEnum.CenterCenter
PortTable.Column(8).Alignment = FlexCell.AlignmentEnum.CenterCenter
isxiugai1 = False
Dim sbuf() As String
For i = 1 To 5
PortTable.Cell(i, 1).Text = " "
If i = 1 Then
PortTable.Cell(i, 0).Text = "有卡取电"
Else
PortTable.Cell(i, 0).Text = $"无卡取电 CH {i - 1}"
End If
PortTable.Cell(i, 1).Text = GetPortName(i)
PortTable.Cell(i, 2).Text = i
PortTable.Cell(i, 3).Text = 0
PortTable.Cell(i, 4).Text = 0
PortTable.Cell(i, 5).Text = 0
PortTable.Cell(i, 6).Text = 0
PortTable.Cell(i, 7).Text = ""
'If i < 4 Then
' PortTable.Cell(i, 3).Text = 0
' If i = 2 Or i = 3 Then
' PortTable.Cell(i, 4).Locked = True
' PortTable.Cell(i, 3).Locked = True
' End If
'Else
'PortTable.Cell(i, 3).Text = 50
'If i = 6 Then
' PortTable.Cell(i, 3).Text = 10
' End If
'End If
Next
isxiugai1 = True
End Sub
Public Function GetPortName(rowindex As Integer)
Dim result As String = String.Empty
Select Case rowindex
Case 1
result = "有卡取电"
Case 2
result = "开门磁"
Case 3
result = "门口红外"
Case 4
result = "卫红外"
Case 5
result = "浴红外"
Case 6
result = "床头红外"
Case 7
result = "镜前红外"
Case 8
result = "休闲红外"
Case 9
result = "客厅红外"
Case 10
result = "厅卫红外"
Case 11
result = "浴缸红外"
End Select
Return result
End Function
Private IfGridRowdic As Dictionary(Of String, List(Of String))
Public Sub InitIfGrid1()
IfGrid.NewFile()
IfGrid.ExtendLastCol = False
IfGrid.Cols = 21
IfGrid.Rows = 1
IfGrid.Cell(0, 1).Text = "条件组"
IfGrid.Cell(0, 2).Text = "条件序号"
IfGrid.Cell(0, 3).Text = "有无人标记"
IfGrid.Cell(0, 4).Text = "端口1"
IfGrid.Cell(0, 5).Text = "端口2"
IfGrid.Cell(0, 6).Text = "端口3"
IfGrid.Cell(0, 7).Text = "端口4"
IfGrid.Cell(0, 8).Text = "端口5"
IfGrid.Cell(0, 9).Text = "端口6"
IfGrid.Cell(0, 10).Text = "端口7"
IfGrid.Cell(0, 11).Text = "端口8"
IfGrid.Cell(0, 12).Text = "端口9"
IfGrid.Cell(0, 13).Text = "端口10"
IfGrid.Cell(0, 14).Text = "端口11"
IfGrid.Cell(0, 15).Text = "触发阈值"
IfGrid.Cell(0, 16).Text = "持续判定时间"
IfGrid.Cell(0, 17).Text = "持续判定时间单位"
IfGrid.Cell(0, 18).Text = "条件组超时时间"
IfGrid.Cell(0, 19).Text = "条件组超时时间单位"
IfGrid.Cell(0, 20).Text = "数据"
For n = 9 To 14
IfGrid.Column(n).Visible = False
Next
IfGrid.Column(3).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(4).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(5).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(6).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(7).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(8).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(9).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(10).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(11).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(12).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(13).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(14).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(15).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(16).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(17).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(18).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(19).CellType = FlexCell.CellTypeEnum.ComboBox
IfGrid.Column(20).CellType = FlexCell.CellTypeEnum.Button
IfGrid.Column(0).Width = 0
IfGrid.Column(1).Width = 50
IfGrid.Column(2).Width = 60
IfGrid.Column(3).Width = 60
IfGrid.Column(4).Width = 60
IfGrid.Column(5).Width = 60
IfGrid.Column(6).Width = 60
IfGrid.Column(7).Width = 60
IfGrid.Column(8).Width = 60
IfGrid.Column(9).Width = 60
IfGrid.Column(10).Width = 60
IfGrid.Column(11).Width = 60
IfGrid.Column(12).Width = 60
IfGrid.Column(13).Width = 60
IfGrid.Column(14).Width = 60
IfGrid.Column(15).Width = 60
IfGrid.Column(16).Width = 60
IfGrid.Column(17).Width = 60
IfGrid.Column(18).Width = 60
IfGrid.Column(19).Width = 60
IfGrid.Column(20).Width = 20
IfGrid.Column(0).Visible = True
'IfGrid.Column(1).Locked = True
'IfGrid.Column(2).Locked = True
'IfGrid.ComboBox(3).Locked = True
'IfGrid.ComboBox(5).Locked = True
'IfGrid.ComboBox(6).Locked = True
'IfGrid.ComboBox(7).Locked = True
'IfGrid.ComboBox(11).Locked = True
'IfGrid.ComboBox(12).Locked = True
'IfGrid.ComboBox(4).Locked = True
'IfGrid.ComboBox(8).Locked = True
'IfGrid.ComboBox(9).Locked = True
'IfGrid.ComboBox(10).Locked = True
'IfGrid.ComboBox(13).Locked = True
'IfGrid.ComboBox(14).Locked = True
'IfGrid.ComboBox(15).Locked = True
'IfGrid.ComboBox(16).Locked = True
'IfGrid.ComboBox(17).Locked = True
'IfGrid.ComboBox(18).Locked = True
'IfGrid.ComboBox(19).Locked = True
IfGrid.Column(0).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(1).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(2).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(3).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(4).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(5).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(6).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(7).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(8).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(9).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(10).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(11).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(12).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(13).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(14).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(15).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(16).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(17).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(18).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(19).Alignment = FlexCell.AlignmentEnum.CenterCenter
IfGrid.Column(15).Visible = False
' IfGrid.Column(18).Visible = False
BuildTableRow1()
End Sub
Public Sub BuildTableRow1()
IfGridRowdic = New Dictionary(Of String, List(Of String))
IfGrid.AddItem("")
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = 1
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = 1
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 1
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "无人至有人"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"开门"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"1"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
IfGrid.AddItem("")
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = 2
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = 1
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 1
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "无人至有人"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"关门"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"1"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
IfGrid.AddItem("")
Dim startR As Integer = IfGrid.Rows - 1
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = 3
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = 1
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 1
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "无人至有人"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"触发"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"1"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
IfGrid.AddItem("")
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = 3
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = 1
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 2
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "无人至有人"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"触发"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"1"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
IfGrid.AddItem("")
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = 3
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = 1
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 3
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "无人至有人"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"触发"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"1"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
IfGrid.AddItem("")
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = 3
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = 1
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 4
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "无人至有人"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"触发"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"1"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
IfGrid.AddItem("")
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = 3
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = 1
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 5
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "无人至有人"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"触发"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"1"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
IfGrid.AddItem("")
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = 3
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = 1
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 6
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "无人至有人"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"触发"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"1"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
IfGrid.AddItem("")
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = 3
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = 1
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 7
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "无人至有人"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"触发"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"1"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
IfGrid.AddItem("")
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = 3
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = 1
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 8
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "无人至有人"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"触发"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"1"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
IfGrid.AddItem("")
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = 3
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = 1
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 9
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "无人至有人"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"触发"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"1"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
IfGrid.Column(1).Locked = False
IfGrid.Range(startR, 1, IfGrid.Rows - 1, 1).Merge()
IfGrid.Range(startR, 18, IfGrid.Rows - 1, 18).Merge()
IfGrid.Range(startR, 19, IfGrid.Rows - 1, 19).Merge()
IfGrid.Column(1).Locked = True
IfGrid.AddItem("")
startR = IfGrid.Rows - 1
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = 4
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = 1
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 1
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "短暂离开"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"开至关"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"10"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
IfGrid.AddItem("")
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = 4
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = 1
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 2
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "短暂离开"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"关门"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"10"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
IfGrid.Column(1).Locked = False
IfGrid.Range(startR, 1, IfGrid.Rows - 1, 1).Merge()
IfGrid.Range(startR, 18, IfGrid.Rows - 1, 18).Merge()
IfGrid.Range(startR, 19, IfGrid.Rows - 1, 19).Merge()
IfGrid.Column(1).Locked = True
IfGrid.AddItem("")
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = 5
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = 1
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 1
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "长期离开"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"开门"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"10"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
IfGrid.AddItem("")
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = 6
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = 1
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 1
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "有人至无人"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"开门"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"释放"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"释放"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"释放"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"释放"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"释放"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"释放"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"释放"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"释放"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"释放"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"10"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
IfGridRowdic.Clear()
Dim headname As CtabRange
Dim keystr As String = String.Empty
Dim li As List(Of String)
For i = 1 To IfGrid.Rows - 1
headname = New CtabRange(IfGrid, i, 1) ' IfGrid.Cell(i, 1).Tag
If IfGridRowdic.ContainsKey(headname.devname) Then
li = IfGridRowdic.Item(headname.devname)
Else
li = New List(Of String)
IfGridRowdic.Add(headname.devname, li)
End If
For j = 2 To IfGrid.Cols - 1
'If IfGrid.Column(j).Locked Then
' Continue For
'End If
keystr = $"{keystr},{IfGrid.Cell(i, j).Text}"
Next
keystr = keystr.Remove(0, 1)
li.Add(keystr)
keystr = String.Empty
Next
End Sub
Private Sub PortTable_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles PortTable.CellChange
If e.Row > 0 AndAlso e.Col = 1 Then
Dim headname As String = PortTable.Cell(e.Row, e.Col).Text.Trim
IfGrid.Cell(0, e.Row + 3).Text = headname
If String.IsNullOrEmpty(headname) Then
IfGrid.Column(e.Row + 3).Locked = True
Else
IfGrid.Column(e.Row + 3).Locked = False
End If
ElseIf e.Row > 0 AndAlso e.Col = 2 Then
'Dim addr As String = PortTable.Cell(e.Row, e.Col).Text
'If String.IsNullOrEmpty(addr) Then
' PortTable.Cell(e.Row, e.Col).Tag = ""
'Else
' ParseDevDic.Item(PortTable.Cell(e.Row, e.Col - 1).Text).Item(addr).Values(0).ToArray()
'End If
'ElseIf e.Row > 0 AndAlso e.Col = 4 Then
' Dim typestr As String = PortTable.Cell(e.Row, e.Col - 2).Text
' Dim addr As String = PortTable.Cell(e.Row, e.Col - 1).Text
' Dim nloop As String = PortTable.Cell(e.Row, e.Col).Text
' If String.IsNullOrEmpty(addr) OrElse String.IsNullOrEmpty(typestr) Then
' PortTable.Cell(e.Row, e.Col).Text = ""
' MsgBox("请先选择端口类型!")
' Return
' End If
' For Each index In ParseDevDic.Item(typestr).Item(addr).Values(0).ToArray
' If index.Item1.Equals(nloop) AndAlso isxiugai1 Then
' PortTable.Cell(e.Row, 1).Text = index.Item2
' End If
' Next
End If
End Sub
Private Sub PortTable_ComboDropDown(Sender As Object, e As FlexCell.Grid.ComboDropDownEventArgs) Handles PortTable.ComboDropDown
Dim headname As String = PortTable.Cell(0, e.Col).Text
Select Case e.Col
'Case 2
' PortTable.ComboBox(e.Col).Items.Clear()
' PortTable.ComboBox(e.Col).Items.Add(" ")
' PortTable.ComboBox(e.Col).Items.AddRange({"1"})
'Case "端口地址"
' Dim addr As String = PortTable.Cell(e.Row, e.Col - 1).Text
' If String.IsNullOrEmpty(addr) Then
' MsgBox("请先选择端口类型!")
' Return
' End If
' PortTable.ComboBox(e.Col).Items.Clear()
' PortTable.ComboBox(e.Col).Items.AddRange(ParseDevDic.Item(addr).Keys.ToArray)
'Case "端口回路"
' Dim typestr As String = PortTable.Cell(e.Row, e.Col - 2).Text
' Dim addr As String = PortTable.Cell(e.Row, e.Col - 1).Text
' If String.IsNullOrEmpty(addr) OrElse String.IsNullOrEmpty(typestr) Then
' MsgBox("请先选择端口类型!")
' Return
' End If
' PortTable.ComboBox(e.Col).Items.Clear()
' For Each index In ParseDevDic.Item(typestr).Item(addr).Values(0).ToArray
' PortTable.ComboBox(e.Col).Items.Add(index.Item1)
' Next
' 'PortTable.ComboBox(e.Col).Items.AddRange(ParseDevDic.Item(typestr).Item(addr).Values(0).ToArray)
' PortTable.Cell(e.Row, e.Col).Tag = ParseDevDic.Item(typestr).Item(addr).Keys(0)
'PortTable.Cell(e.Row, 1).Text =
Case 3, 4
PortTable.ComboBox(e.Col).Items.Clear()
For i = 0 To 100
PortTable.ComboBox(e.Col).Items.Add(i)
Next
Case 6
PortTable.ComboBox(e.Col).Items.Clear()
For i = 0 To 255
PortTable.ComboBox(e.Col).Items.Add(i)
Next
Case 7
PortTable.ComboBox(e.Col).Items.Clear()
PortTable.ComboBox(e.Col).Items.AddRange({"", "", ""})
End Select
End Sub
Public IsnotCellChange As Boolean
Private Sub IfGrid_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles IfGrid.CellChange
If e.Row = 0 Then Return
Dim celltext As String = IfGrid.Cell(e.Row, e.Col).Text
If celltext.Contains("无人至有人") Then
IfGrid.Cell(e.Row, e.Col).ForeColor = Color.Blue
If IsnotCellChange Then Return
IsnotCellChange = True
Dim ta As CtabRange
ta = New CtabRange(IfGrid, e.Row, 1)
For i = ta.fr To ta.lr
IfGrid.Cell(i, e.Col).Text = "无人至有人"
Next
IsnotCellChange = False
ElseIf celltext.Contains("有人至无人") Then
IfGrid.Cell(e.Row, e.Col).ForeColor = Color.Orange
If IsnotCellChange Then Return
IsnotCellChange = True
Dim ta As CtabRange
ta = New CtabRange(IfGrid, e.Row, 1)
For i = ta.fr To ta.lr
IfGrid.Cell(i, e.Col).Text = "有人至无人"
Next
IsnotCellChange = False
ElseIf celltext.Contains("短暂离开") Then
IfGrid.Cell(e.Row, e.Col).ForeColor = Color.Brown
If IsnotCellChange Then Return
IsnotCellChange = True
Dim ta As CtabRange
ta = New CtabRange(IfGrid, e.Row, 1)
For i = ta.fr To ta.lr
IfGrid.Cell(i, e.Col).Text = "短暂离开"
Next
'从ta.fr 行往第一行查找
For i = ta.fr To 1 Step -1
If IfGrid.Cell(i, e.Col).Text.Trim.Equals("长期离开") OrElse IfGrid.Cell(i, e.Col).Text.Trim.Equals("有人至无人") Then
IfGrid.Cell(i, e.Col).Text = "短暂离开"
End If
Next
If Isoneload Then
If ta.lr = IfGrid.Rows - 1 Then
MsgBox("短暂离开不能作为最后一行,请以'有人至无人'作为最后一行!")
Return
End If
End If
For i = ta.lr To IfGrid.Rows - 1
If IfGrid.Cell(i, e.Col).Text.Trim.Equals("无人至有人") Then
IfGrid.Cell(i, e.Col).Text = "有人至无人"
End If
Next
IsnotCellChange = False
ElseIf celltext.Contains("长期离开") Then
IfGrid.Cell(e.Row, e.Col).ForeColor = Color.Violet
If IsnotCellChange Then Return
IsnotCellChange = True
Dim ta As CtabRange
ta = New CtabRange(IfGrid, e.Row, 1)
For i = ta.fr To ta.lr
IfGrid.Cell(i, e.Col).Text = "长期离开"
Next
'从ta.fr 行往第一行查找
For i = ta.fr To 1 Step -1
If IfGrid.Cell(i, e.Col).Text.Trim.Equals("有人至无人") Then
IfGrid.Cell(i, e.Col).Text = "长期离开"
End If
Next
If Isoneload Then
If ta.lr = IfGrid.Rows - 1 Then
MsgBox("长期离开 不能作为最后一行,请以'有人至无人'作为最后一行!")
Return
End If
End If
For i = ta.lr + 1 To IfGrid.Rows - 1
If IfGrid.Cell(i, e.Col).Text.Trim.Equals("短暂离开") OrElse IfGrid.Cell(i, e.Col).Text.Trim.Equals("无人至有人") OrElse IfGrid.Cell(i, e.Col).Text.Trim.Equals("长期离开") Then
IfGrid.Cell(i, e.Col).Text = "有人至无人"
End If
Next
IsnotCellChange = False
ElseIf celltext.Contains("释放") OrElse celltext.Contains("开门") Then
IfGrid.Cell(e.Row, e.Col).ForeColor = Color.Green
ElseIf celltext.Contains("不判断") Then
IfGrid.Cell(e.Row, e.Col).ForeColor = Color.LightGray
ElseIf celltext.Contains("触发") OrElse celltext.Contains("关门") Then
IfGrid.Cell(e.Row, e.Col).ForeColor = Color.OrangeRed
ElseIf celltext.Contains("关至开") Then
IfGrid.Cell(e.Row, e.Col).ForeColor = Color.MediumVioletRed
ElseIf celltext.Contains("开至关") Then
IfGrid.Cell(e.Row, e.Col).ForeColor = Color.LightGreen
End If
Dim na, nb As CtabRange
na = New CtabRange(IfGrid, e.Row, 18)
nb = New CtabRange(IfGrid, e.Row, 19)
If String.IsNullOrEmpty(IfGrid.Cell(e.Row, 16).Text) OrElse
String.IsNullOrEmpty(IfGrid.Cell(e.Row, 17).Text) OrElse
String.IsNullOrEmpty(na.devname) OrElse String.IsNullOrEmpty(nb.devname) Then
Else
Dim ct, nt As Double
IfGrid.Cell(e.Row, 16).BackColor = Color.White
IfGrid.Cell(e.Row, 17).BackColor = Color.White
IfGrid.Cell(e.Row, 18).BackColor = Color.White
IfGrid.Cell(e.Row, 19).BackColor = Color.White
ct = GetTableTimeUnit(IfGrid.Cell(e.Row, 16).Text, IfGrid.Cell(e.Row, 17).Text)
nt = GetTableTimeUnit(na.devname, nb.devname)
If nt = 0 Then
MsgBox("条件组超时时间不能为0")
IfGrid.Cell(e.Row, e.Col).BackColor = Color.OrangeRed
Return
End If
If ct > nt Then
MsgBox("条件延时时间不能大于条件组超时时间!")
IfGrid.Cell(e.Row, e.Col).BackColor = Color.OrangeRed
Return
End If
End If
End Sub
'将时间单位转换为秒、
Public Function GetTableTimeUnit(ntime As String, timeunit As String) As Integer
If ntime.Equals("") OrElse timeunit.Equals("") Then Return 0
'判断时间单位是 时、分、秒
If timeunit.Equals("") Then
Return CInt(ntime) * 3600
ElseIf timeunit.Equals("") Then
Return CInt(ntime) * 60
ElseIf timeunit.Equals("") Then
Return CInt(ntime)
End If
End Function
Private Sub IfGrid_ComboDropDown(Sender As Object, e As FlexCell.Grid.ComboDropDownEventArgs) Handles IfGrid.ComboDropDown
Dim headname As String = IfGrid.Cell(0, e.Col).Text
If e.Col = 3 Then
IfGrid.ComboBox(e.Col).Items.Clear()
IfGrid.ComboBox(e.Col).Items.AddRange({"无人至有人", "有人至无人", "短暂离开", "长期离开"})
ElseIf e.Col = 5 Then
IfGrid.ComboBox(e.Col).Items.Clear()
IfGrid.ComboBox(e.Col).Items.AddRange({"不判断", "开门", "关门", "关至开", "开至关"})
ElseIf e.Col = 4 OrElse (e.Col >= 6 AndAlso e.Col < 15) Then
IfGrid.ComboBox(e.Col).Items.Clear()
IfGrid.ComboBox(e.Col).Items.AddRange({"不判断", "触发", "释放"})
ElseIf e.Col = 15 OrElse e.Col = 16 OrElse e.Col = 18 Then
IfGrid.ComboBox(e.Col).Items.Clear()
For i = 0 To 255
IfGrid.ComboBox(e.Col).Items.Add(i)
Next
ElseIf e.Col = 17 OrElse e.Col = 19 Then
IfGrid.ComboBox(e.Col).Items.Clear()
IfGrid.ComboBox(e.Col).Items.AddRange({"", "", ""})
End If
End Sub
Private Sub PortTable_ButtonClick(Sender As Object, e As FlexCell.Grid.ButtonClickEventArgs) Handles PortTable.ButtonClick
Dim nt As Integer = -1
Integer.TryParse(PortTable.Cell(e.Row, 2).Text.Trim, nt)
If nt = -1 Then
MsgBox("请输入正确的端口地址!")
Return
End If
Dim Tstr As String = String.Empty
For c = 1 To PortTable.Cols - 2
If c = 2 Then
Tstr = $"{Tstr}{nt},"
Continue For
End If
Tstr = $"{Tstr}{PortTable.Cell(e.Row, c).Text.Trim},"
Next
' "有卡取电,插卡(1),0,0,0,0,秒,1,2,0"
Tstr = Tstr.Substring(0, Tstr.Length - 1)
Dim buf As Byte()
Try
buf = GetPortInformation1(e.Row, Tstr)
Catch ex As Exception
MsgBox("生成数据失败!")
Return
End Try
If buf Is Nothing OrElse buf.Length = 0 Then
MsgBox("生成数据失败!")
Return
End If
Dim data As New List(Of Byte())
data.Add(buf)
data = FillDataFrames(data)
Dim str As String = BytesToHexString(data(0))
Clipboard.SetText(str)
End Sub
Public Function BytesToHexString(ByVal bytes As Byte()) As String
If bytes Is Nothing OrElse bytes.Length = 0 Then
Return String.Empty
End If
Dim hex As New StringBuilder(bytes.Length * 3) ' 每个字节需要2个字符+1个空格
For i As Integer = 0 To bytes.Length - 1
' 如果不是第一个字节,先添加一个空格
If i > 0 Then
hex.Append(" ")
End If
hex.AppendFormat("{0:x2}", bytes(i))
Next
Return hex.ToString()
End Function
Public Function GetPortInformation1(LoopAddr As String nStr As String) As Byte()
Dim cmd As Byte = &H9
Dim Data = New List(Of Byte)
Dim strbuf() As String = nStr.Split(",")
Data.Add(cmd)
Data.Add(2)
Data.Add(1)
Data.AddRange(BitConverter.GetBytes(CShort(CInt(strbuf(1)))))
If String.IsNullOrEmpty(strbuf(2)) Then
Data.Add(0)
Else
Data.Add(CInt(strbuf(2)))
End If
Data.Add(CInt(LoopAddr)) '- 1) '增加了减1
If String.IsNullOrEmpty(strbuf(4)) OrElse strbuf(4).Equals("0") Then
Data.Add(0)
Else
Data.Add(1)
End If
If String.IsNullOrEmpty(strbuf(5)) OrElse strbuf(5).Equals("0") Then
Data.AddRange(BitConverter.GetBytes(CShort(0)))
Else
Data.AddRange(BitConverter.GetBytes(CShort(CInt(strbuf(5)))))
End If
Data.Add(GetGlossary8(strbuf(6)))
If String.IsNullOrEmpty(strbuf(3)) Then
Data.Add(0)
Else
Data.Add(CInt(strbuf(3)))
End If
Return Data.ToArray
End Function
Public Function GetGlossary8(sb As String) As Byte
Dim result As Byte = 0
Select Case sb
Case ""
result = 1
Case ""
result = 2
Case ""
result = 3
Case Else
result = 0
End Select
Return result
End Function
Public Function FillDataFrames(data As List(Of Byte())) As List(Of Byte())
Dim result As New List(Of Byte())
Dim index As Short = 1
Dim count As Short = data.Count
Dim frameBuf As List(Of Byte)
Dim num As Integer = 0
For Each buf As Byte() In data
num = num + buf.Length
frameBuf = New List(Of Byte)
'包头(2位)
frameBuf.Add(&HCC)
frameBuf.Add(&HC0)
'长度(2位)
Dim length As Short = buf.Length + 10
frameBuf.AddRange(BitConverter.GetBytes(length))
'CRC校验(2位)
frameBuf.AddRange(New Byte() {0, 0})
'帧号(2位)
frameBuf.AddRange(BitConverter.GetBytes(index))
'帧总数(2位)
frameBuf.AddRange(BitConverter.GetBytes(count))
''帧类型(1位)
'frameBuf.Add(type)
'帧参数(不定长)
frameBuf.AddRange(buf)
Dim crc() As Byte = GetCRC16CheckSum(frameBuf.ToArray, frameBuf.Count)
frameBuf(4) = crc(0)
frameBuf(5) = crc(1)
index += 1
result.Add(frameBuf.ToArray)
Next
'Dim themore As Integer = num Mod 4
'Console.WriteLine(num)
'For isnum As Integer = 1 To (4 - themore)
' result(result.Count -1).Add({0})
'Next
Return result
End Function
''' <summary>
''' CRC16校验
''' </summary>
''' <param name="dataBuff"></param>
''' <param name="length"></param>
''' <returns></returns>
Public Function GetCRC16CheckSum(dataBuff() As Byte, length As Integer) As Byte()
Dim crc16 As UInteger
Dim crcBytes() As Byte
crc16 = &HFFFF
For i = 0 To length - 1
crc16 = crc16 And &HFFFF
crc16 = crc16 Xor dataBuff(i)
For bit = 0 To 7
crc16 = IIf((crc16 And 1) = 0, crc16 >> 1, (crc16 >> 1) Xor &HA001)
Next
Next
crc16 = crc16 And &HFFFF
crcBytes = BitConverter.GetBytes(UShort.Parse(crc16))
Return crcBytes
End Function
Private Sub IfGrid_ButtonClick(Sender As Object, e As FlexCell.Grid.ButtonClickEventArgs) Handles IfGrid.ButtonClick
Dim buf As Byte()
Try
buf = GetConditionalInformation1(e)
Catch ex As Exception
MsgBox("生成数据失败!")
Return
End Try
If buf Is Nothing OrElse buf.Length = 0 Then
MsgBox("生成数据失败!")
Return
End If
Dim data As New List(Of Byte())
data.Add(buf)
data = FillDataFrames(data)
Dim str As String = BytesToHexString(data(0))
Clipboard.SetText(str)
End Sub
' IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
'IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
'IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $"秒"
'IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"10"
'IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $"分"
Public Function GetConditionalInformation1(e As FlexCell.Grid.ButtonClickEventArgs) As Byte()
Dim cmd As Byte = &H8
Dim Data = New List(Of Byte)
Dim headname = New CtabRange(IfGrid, e.Row, 1)
Data.Add(cmd)
Data.Add(GetNoCarDataKeyVal(IfGrid.Cell(e.Row, 3).Text.Trim))
Data.Add(CInt(headname.devname))
Data.Add(CInt(IfGrid.Cell(e.Row, 2).Text.Trim))
Data.AddRange(BitConverter.GetBytes(CShort(CInt(IfGrid.Cell(e.Row, 16).Text.Trim))))
Data.Add(GetGlossary8(IfGrid.Cell(e.Row, 17).Text.Trim))
For i = 4 To 8 '11变成10
'nbbuf = strbuf(i + 1).Split(":")
Data.Add(GetNoCarDataKeyVal(IfGrid.Cell(e.Row, i).Text.Trim)) 'i 加 1 编程 i+2
Next
headname = New CtabRange(IfGrid, e.Row, 18)
Data.AddRange(BitConverter.GetBytes(CShort(CInt(headname.devname.Trim))))
headname = New CtabRange(IfGrid, e.Row, 19)
Data.Add(GetGlossary8(headname.devname.Trim))
Return Data.ToArray
End Function
Public Shared Function GetNoCarDataKeyVal(keystr As String) As Integer
If keystr.Contains("无人至有人") Then
Return 1
ElseIf keystr.Contains("有人至无人") Then
Return 2
ElseIf keystr.Contains("释放") OrElse keystr.Contains("开门") Then
Return 2
ElseIf keystr.Contains("不判断") Then
Return 0
ElseIf keystr.Contains("触发") OrElse keystr.Contains("关门") Then
Return 1
ElseIf keystr.Contains("关至开") OrElse keystr.Contains("长期离开") Then
Return 4
ElseIf keystr.Contains("开至关") OrElse keystr.Contains("短暂离开") Then
Return 3
End If
Return 0
End Function
Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) Handles ToolStripButton4.Click
Dim headname As CtabRange = New CtabRange(IfGrid, IfGrid.ActiveCell.Row, 1)
Dim number As Integer = 0
Dim number1 As Integer = 1
Dim frow As CtabRange
For i = headname.fr To headname.lr
IfGrid.Row(headname.lr - number).Delete()
number = number + 1
Next
For i = 2 To IfGrid.Rows - 1
headname = New CtabRange(IfGrid, i, 1)
frow = New CtabRange(IfGrid, i - 1, 1)
If (CInt(headname.devname) - CInt(frow.devname) > 1) Then
number1 = CInt(headname.devname)
IfGrid.Cell(headname.fr, headname.fc).Text = (CInt(frow.devname) + 1)
Else
End If
Next
'Isoneload = False
' InitIfGrid1(UniqueDevice.Desc.DevDescription)
' Isoneload = True
End Sub
Private Sub ToolStripButton3_Click(sender As Object, e As EventArgs) Handles ToolStripButton3.Click
Dim headname As String = IfGrid.Cell(IfGrid.ActiveCell.Row, 2).Text
If headname.Equals("1") Then Return
Dim inrow As Integer = IfGrid.ActiveCell.Row
Dim Number = Integer.Parse(IfGrid.Cell(inrow, 2).Text)
Dim li As List(Of String)
Dim indexstr As CtabRange = New CtabRange(IfGrid, IfGrid.ActiveCell.Row, 1)
li = IfGridRowdic.Item(indexstr.devname)
li.RemoveAt(Number - 1)
IfGrid.Row(IfGrid.ActiveCell.Row).Delete()
For i = Number To li.Count
IfGrid.Cell(inrow, 2).Text = i
inrow = inrow + 1
Next
End Sub
Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click
Dim i As String = (CIntNew CtabRange(IfGrid, IfGrid.Rows - 1, 1).devname + 1
Dim li As List(Of String) = New List(Of String)
IfGrid.AddItem("")
IfGrid.Cell(IfGrid.Rows - 1, 1).Text = $"{i}"
IfGrid.Cell(IfGrid.Rows - 1, 1).Tag = $"{i}"
IfGrid.Cell(IfGrid.Rows - 1, 2).Text = 1
IfGrid.Cell(IfGrid.Rows - 1, 3).Text = "有人至无人"
IfGrid.Cell(IfGrid.Rows - 1, 4).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 5).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 6).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 7).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 8).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 9).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 10).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 11).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 12).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 13).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 14).Text = $"不判断"
IfGrid.Cell(IfGrid.Rows - 1, 15).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 16).Text = $"0"
IfGrid.Cell(IfGrid.Rows - 1, 17).Text = $""
IfGrid.Cell(IfGrid.Rows - 1, 18).Text = $"10"
IfGrid.Cell(IfGrid.Rows - 1, 19).Text = $""
li.Add($"{i},1,1,不判断,不判断,不判断,不判断,不判断,不判断,不判断,不判断,不判断,不判断,不判断,0,秒")
IfGridRowdic.Add(i, li)
End Sub
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
AddIfGridRow()
End Sub
Public Sub AddIfGridRow()
Dim inrow As Integer = IfGrid.ActiveCell.Row
IfGrid.InsertRow(inrow 1)
Dim li As List(Of String)
Dim nodestr As String = String.Empty
Dim number As Integer
For i = 0 To IfGrid.Cols - 1
Dim indexstr As String = (New CtabRange(IfGrid, inrow + 1, 1)).devname
li = IfGridRowdic.Item(indexstr)
IfGrid.Cell(inrow, i).Text = IfGrid.Cell(inrow + 1, i).Text
If i = 1 Then
IfGrid.Cell(inrow, i).Tag = (New CtabRange(IfGrid, inrow + 1, 1)).devname
ElseIf i = 2 Then
number = Integer.Parse(IfGrid.Cell(inrow + 1, 2).Text)
End If
nodestr = $"{nodestr},{ IfGrid.Cell(inrow + 1, i).Text}"
Next
IfGrid.Column(1).Locked = False
IfGrid.Range(inrow, 1, inrow + 1, 1).Merge()
If IfGrid.Cols > 19 Then
IfGrid.Range(inrow, 18, inrow + 1, 18).Merge()
IfGrid.Range(inrow, 19, inrow + 1, 19).Merge()
End If
IfGrid.Column(1).Locked = True
nodestr = nodestr.Remove(0, 1)
li.Add(nodestr)
For i = number To li.Count
IfGrid.Cell(inrow, 2).Text = i
inrow = inrow + 1
Next
End Sub
End Class