增加对 设备 无线锁_杨格无线锁_(RS485-主动) 的支持

This commit is contained in:
zhihao
2025-12-25 15:55:38 +08:00
parent f6cfed9a05
commit 5e9358ffb9
45 changed files with 4298 additions and 264 deletions

7
.gitignore vendored Normal file
View File

@@ -0,0 +1,7 @@
BLV_Studio/obj
BLV_Studio/obj/Debug
.vs
BLV_Studio/bin
BLV_Studio/obj
BLV_Studio/publish
BLV_Studio/bin

Binary file not shown.

Binary file not shown.

Binary file not shown.

518
BLV_Studio/AddLoopInfo.Designer.vb generated Normal file
View File

@@ -0,0 +1,518 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class AddLoopInfo
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.SqLiteCommandBuilder1 = New System.Data.SQLite.SQLiteCommandBuilder()
Me.Label1 = New System.Windows.Forms.Label()
Me.TextBox1 = New System.Windows.Forms.TextBox()
Me.TextBox2 = New System.Windows.Forms.TextBox()
Me.Label2 = New System.Windows.Forms.Label()
Me.TextBox3 = New System.Windows.Forms.TextBox()
Me.Label3 = New System.Windows.Forms.Label()
Me.TextBox4 = New System.Windows.Forms.TextBox()
Me.Label4 = New System.Windows.Forms.Label()
Me.TextBox5 = New System.Windows.Forms.TextBox()
Me.Label5 = New System.Windows.Forms.Label()
Me.TextBox6 = New System.Windows.Forms.TextBox()
Me.Label6 = New System.Windows.Forms.Label()
Me.DomainUpDown1 = New System.Windows.Forms.DomainUpDown()
Me.Label7 = New System.Windows.Forms.Label()
Me.ComboBox1 = New System.Windows.Forms.ComboBox()
Me.Label8 = New System.Windows.Forms.Label()
Me.Label9 = New System.Windows.Forms.Label()
Me.DomainUpDown2 = New System.Windows.Forms.DomainUpDown()
Me.Label10 = New System.Windows.Forms.Label()
Me.ComboBox2 = New System.Windows.Forms.ComboBox()
Me.Button1 = New System.Windows.Forms.Button()
Me.SuspendLayout()
'
'SqLiteCommandBuilder1
'
Me.SqLiteCommandBuilder1.DataAdapter = Nothing
Me.SqLiteCommandBuilder1.QuoteSuffix = "]"
'
'Label1
'
Me.Label1.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label1.Location = New System.Drawing.Point(2, 21)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(103, 21)
Me.Label1.TabIndex = 0
Me.Label1.Tag = ""
Me.Label1.Text = "回路地址"
Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'TextBox1
'
Me.TextBox1.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TextBox1.Location = New System.Drawing.Point(121, 17)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(205, 31)
Me.TextBox1.TabIndex = 1
'
'TextBox2
'
Me.TextBox2.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TextBox2.Location = New System.Drawing.Point(121, 69)
Me.TextBox2.Name = "TextBox2"
Me.TextBox2.Size = New System.Drawing.Size(205, 31)
Me.TextBox2.TabIndex = 3
'
'Label2
'
Me.Label2.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label2.Location = New System.Drawing.Point(2, 71)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(103, 21)
Me.Label2.TabIndex = 2
Me.Label2.Tag = ""
Me.Label2.Text = "名称"
Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'TextBox3
'
Me.TextBox3.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TextBox3.Location = New System.Drawing.Point(121, 120)
Me.TextBox3.Name = "TextBox3"
Me.TextBox3.Size = New System.Drawing.Size(205, 31)
Me.TextBox3.TabIndex = 5
'
'Label3
'
Me.Label3.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label3.Location = New System.Drawing.Point(2, 121)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(103, 21)
Me.Label3.TabIndex = 4
Me.Label3.Tag = ""
Me.Label3.Text = "英文名称"
Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'TextBox4
'
Me.TextBox4.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TextBox4.Location = New System.Drawing.Point(121, 171)
Me.TextBox4.Name = "TextBox4"
Me.TextBox4.Size = New System.Drawing.Size(205, 31)
Me.TextBox4.TabIndex = 7
'
'Label4
'
Me.Label4.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label4.Location = New System.Drawing.Point(2, 171)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(103, 21)
Me.Label4.TabIndex = 6
Me.Label4.Tag = ""
Me.Label4.Text = "繁体名称"
Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'TextBox5
'
Me.TextBox5.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TextBox5.Location = New System.Drawing.Point(121, 222)
Me.TextBox5.Name = "TextBox5"
Me.TextBox5.Size = New System.Drawing.Size(205, 31)
Me.TextBox5.TabIndex = 9
'
'Label5
'
Me.Label5.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label5.Location = New System.Drawing.Point(2, 221)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(103, 21)
Me.Label5.TabIndex = 8
Me.Label5.Tag = ""
Me.Label5.Text = "别名"
Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'TextBox6
'
Me.TextBox6.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TextBox6.Location = New System.Drawing.Point(121, 273)
Me.TextBox6.Name = "TextBox6"
Me.TextBox6.Size = New System.Drawing.Size(205, 31)
Me.TextBox6.TabIndex = 11
Me.TextBox6.Text = "0"
'
'Label6
'
Me.Label6.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label6.Location = New System.Drawing.Point(2, 271)
Me.Label6.Name = "Label6"
Me.Label6.Size = New System.Drawing.Size(103, 21)
Me.Label6.TabIndex = 10
Me.Label6.Tag = ""
Me.Label6.Text = "功率(瓦)"
Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'DomainUpDown1
'
Me.DomainUpDown1.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.DomainUpDown1.Items.Add("1")
Me.DomainUpDown1.Items.Add("2")
Me.DomainUpDown1.Items.Add("3")
Me.DomainUpDown1.Items.Add("4")
Me.DomainUpDown1.Items.Add("5")
Me.DomainUpDown1.Items.Add("6")
Me.DomainUpDown1.Items.Add("7")
Me.DomainUpDown1.Items.Add("8")
Me.DomainUpDown1.Items.Add("9")
Me.DomainUpDown1.Items.Add("10")
Me.DomainUpDown1.Items.Add("11")
Me.DomainUpDown1.Items.Add("12")
Me.DomainUpDown1.Items.Add("13")
Me.DomainUpDown1.Items.Add("14")
Me.DomainUpDown1.Items.Add("15")
Me.DomainUpDown1.Items.Add("16")
Me.DomainUpDown1.Items.Add("17")
Me.DomainUpDown1.Items.Add("18")
Me.DomainUpDown1.Items.Add("19")
Me.DomainUpDown1.Items.Add("20")
Me.DomainUpDown1.Items.Add("21")
Me.DomainUpDown1.Items.Add("22")
Me.DomainUpDown1.Items.Add("23")
Me.DomainUpDown1.Items.Add("24")
Me.DomainUpDown1.Items.Add("25")
Me.DomainUpDown1.Items.Add("26")
Me.DomainUpDown1.Items.Add("27")
Me.DomainUpDown1.Items.Add("28")
Me.DomainUpDown1.Items.Add("29")
Me.DomainUpDown1.Items.Add("30")
Me.DomainUpDown1.Items.Add("31")
Me.DomainUpDown1.Items.Add("32")
Me.DomainUpDown1.Items.Add("33")
Me.DomainUpDown1.Items.Add("34")
Me.DomainUpDown1.Items.Add("35")
Me.DomainUpDown1.Items.Add("36")
Me.DomainUpDown1.Items.Add("37")
Me.DomainUpDown1.Items.Add("38")
Me.DomainUpDown1.Items.Add("39")
Me.DomainUpDown1.Items.Add("40")
Me.DomainUpDown1.Items.Add("41")
Me.DomainUpDown1.Items.Add("42")
Me.DomainUpDown1.Items.Add("43")
Me.DomainUpDown1.Items.Add("44")
Me.DomainUpDown1.Items.Add("45")
Me.DomainUpDown1.Items.Add("46")
Me.DomainUpDown1.Items.Add("47")
Me.DomainUpDown1.Items.Add("48")
Me.DomainUpDown1.Items.Add("49")
Me.DomainUpDown1.Items.Add("50")
Me.DomainUpDown1.Items.Add("51")
Me.DomainUpDown1.Items.Add("52")
Me.DomainUpDown1.Items.Add("53")
Me.DomainUpDown1.Items.Add("54")
Me.DomainUpDown1.Items.Add("55")
Me.DomainUpDown1.Items.Add("56")
Me.DomainUpDown1.Items.Add("57")
Me.DomainUpDown1.Items.Add("58")
Me.DomainUpDown1.Items.Add("59")
Me.DomainUpDown1.Items.Add("60")
Me.DomainUpDown1.Items.Add("61")
Me.DomainUpDown1.Items.Add("62")
Me.DomainUpDown1.Items.Add("63")
Me.DomainUpDown1.Items.Add("64")
Me.DomainUpDown1.Items.Add("65")
Me.DomainUpDown1.Items.Add("66")
Me.DomainUpDown1.Items.Add("67")
Me.DomainUpDown1.Items.Add("68")
Me.DomainUpDown1.Items.Add("69")
Me.DomainUpDown1.Items.Add("70")
Me.DomainUpDown1.Items.Add("71")
Me.DomainUpDown1.Items.Add("72")
Me.DomainUpDown1.Items.Add("73")
Me.DomainUpDown1.Items.Add("74")
Me.DomainUpDown1.Items.Add("75")
Me.DomainUpDown1.Items.Add("76")
Me.DomainUpDown1.Items.Add("77")
Me.DomainUpDown1.Items.Add("78")
Me.DomainUpDown1.Items.Add("79")
Me.DomainUpDown1.Items.Add("80")
Me.DomainUpDown1.Items.Add("81")
Me.DomainUpDown1.Items.Add("82")
Me.DomainUpDown1.Items.Add("83")
Me.DomainUpDown1.Items.Add("84")
Me.DomainUpDown1.Items.Add("85")
Me.DomainUpDown1.Items.Add("86")
Me.DomainUpDown1.Items.Add("87")
Me.DomainUpDown1.Items.Add("88")
Me.DomainUpDown1.Items.Add("89")
Me.DomainUpDown1.Items.Add("90")
Me.DomainUpDown1.Items.Add("91")
Me.DomainUpDown1.Items.Add("92")
Me.DomainUpDown1.Items.Add("93")
Me.DomainUpDown1.Items.Add("94")
Me.DomainUpDown1.Items.Add("95")
Me.DomainUpDown1.Items.Add("96")
Me.DomainUpDown1.Items.Add("97")
Me.DomainUpDown1.Items.Add("98")
Me.DomainUpDown1.Items.Add("99")
Me.DomainUpDown1.Items.Add("100")
Me.DomainUpDown1.Location = New System.Drawing.Point(122, 316)
Me.DomainUpDown1.Name = "DomainUpDown1"
Me.DomainUpDown1.Size = New System.Drawing.Size(205, 31)
Me.DomainUpDown1.TabIndex = 12
Me.DomainUpDown1.Text = "1"
'
'Label7
'
Me.Label7.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label7.Location = New System.Drawing.Point(2, 321)
Me.Label7.Name = "Label7"
Me.Label7.Size = New System.Drawing.Size(103, 21)
Me.Label7.TabIndex = 13
Me.Label7.Tag = ""
Me.Label7.Text = "排序"
Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'ComboBox1
'
Me.ComboBox1.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.ComboBox1.FormattingEnabled = True
Me.ComboBox1.Items.AddRange(New Object() {"R-红", "G-绿", "B-蓝"})
Me.ComboBox1.Location = New System.Drawing.Point(122, 374)
Me.ComboBox1.Name = "ComboBox1"
Me.ComboBox1.Size = New System.Drawing.Size(205, 29)
Me.ComboBox1.TabIndex = 14
'
'Label8
'
Me.Label8.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label8.Location = New System.Drawing.Point(2, 371)
Me.Label8.Name = "Label8"
Me.Label8.Size = New System.Drawing.Size(103, 21)
Me.Label8.TabIndex = 15
Me.Label8.Tag = ""
Me.Label8.Text = "TCL设备名"
Me.Label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Label9
'
Me.Label9.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label9.Location = New System.Drawing.Point(2, 421)
Me.Label9.Name = "Label9"
Me.Label9.Size = New System.Drawing.Size(119, 21)
Me.Label9.TabIndex = 17
Me.Label9.Tag = ""
Me.Label9.Text = "组设备编号"
Me.Label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'DomainUpDown2
'
Me.DomainUpDown2.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.DomainUpDown2.Items.Add("0")
Me.DomainUpDown2.Items.Add("1")
Me.DomainUpDown2.Items.Add("2")
Me.DomainUpDown2.Items.Add("3")
Me.DomainUpDown2.Items.Add("4")
Me.DomainUpDown2.Items.Add("5")
Me.DomainUpDown2.Items.Add("6")
Me.DomainUpDown2.Items.Add("7")
Me.DomainUpDown2.Items.Add("8")
Me.DomainUpDown2.Items.Add("9")
Me.DomainUpDown2.Items.Add("10")
Me.DomainUpDown2.Items.Add("11")
Me.DomainUpDown2.Items.Add("12")
Me.DomainUpDown2.Items.Add("13")
Me.DomainUpDown2.Items.Add("14")
Me.DomainUpDown2.Items.Add("15")
Me.DomainUpDown2.Items.Add("16")
Me.DomainUpDown2.Items.Add("17")
Me.DomainUpDown2.Items.Add("18")
Me.DomainUpDown2.Items.Add("19")
Me.DomainUpDown2.Items.Add("20")
Me.DomainUpDown2.Items.Add("21")
Me.DomainUpDown2.Items.Add("22")
Me.DomainUpDown2.Items.Add("23")
Me.DomainUpDown2.Items.Add("24")
Me.DomainUpDown2.Items.Add("25")
Me.DomainUpDown2.Items.Add("26")
Me.DomainUpDown2.Items.Add("27")
Me.DomainUpDown2.Items.Add("28")
Me.DomainUpDown2.Items.Add("29")
Me.DomainUpDown2.Items.Add("30")
Me.DomainUpDown2.Items.Add("31")
Me.DomainUpDown2.Items.Add("32")
Me.DomainUpDown2.Items.Add("33")
Me.DomainUpDown2.Items.Add("34")
Me.DomainUpDown2.Items.Add("35")
Me.DomainUpDown2.Items.Add("36")
Me.DomainUpDown2.Items.Add("37")
Me.DomainUpDown2.Items.Add("38")
Me.DomainUpDown2.Items.Add("39")
Me.DomainUpDown2.Items.Add("40")
Me.DomainUpDown2.Items.Add("41")
Me.DomainUpDown2.Items.Add("42")
Me.DomainUpDown2.Items.Add("43")
Me.DomainUpDown2.Items.Add("44")
Me.DomainUpDown2.Items.Add("45")
Me.DomainUpDown2.Items.Add("46")
Me.DomainUpDown2.Items.Add("47")
Me.DomainUpDown2.Items.Add("48")
Me.DomainUpDown2.Items.Add("49")
Me.DomainUpDown2.Items.Add("50")
Me.DomainUpDown2.Items.Add("51")
Me.DomainUpDown2.Items.Add("52")
Me.DomainUpDown2.Items.Add("53")
Me.DomainUpDown2.Items.Add("54")
Me.DomainUpDown2.Items.Add("55")
Me.DomainUpDown2.Items.Add("56")
Me.DomainUpDown2.Items.Add("57")
Me.DomainUpDown2.Items.Add("58")
Me.DomainUpDown2.Items.Add("59")
Me.DomainUpDown2.Items.Add("60")
Me.DomainUpDown2.Items.Add("61")
Me.DomainUpDown2.Items.Add("62")
Me.DomainUpDown2.Items.Add("63")
Me.DomainUpDown2.Items.Add("64")
Me.DomainUpDown2.Items.Add("65")
Me.DomainUpDown2.Items.Add("66")
Me.DomainUpDown2.Items.Add("67")
Me.DomainUpDown2.Items.Add("68")
Me.DomainUpDown2.Items.Add("69")
Me.DomainUpDown2.Items.Add("70")
Me.DomainUpDown2.Items.Add("71")
Me.DomainUpDown2.Items.Add("72")
Me.DomainUpDown2.Items.Add("73")
Me.DomainUpDown2.Items.Add("74")
Me.DomainUpDown2.Items.Add("75")
Me.DomainUpDown2.Items.Add("76")
Me.DomainUpDown2.Items.Add("77")
Me.DomainUpDown2.Items.Add("78")
Me.DomainUpDown2.Items.Add("79")
Me.DomainUpDown2.Items.Add("80")
Me.DomainUpDown2.Items.Add("81")
Me.DomainUpDown2.Items.Add("82")
Me.DomainUpDown2.Items.Add("83")
Me.DomainUpDown2.Items.Add("84")
Me.DomainUpDown2.Items.Add("85")
Me.DomainUpDown2.Items.Add("86")
Me.DomainUpDown2.Items.Add("87")
Me.DomainUpDown2.Items.Add("88")
Me.DomainUpDown2.Items.Add("89")
Me.DomainUpDown2.Items.Add("90")
Me.DomainUpDown2.Items.Add("91")
Me.DomainUpDown2.Items.Add("92")
Me.DomainUpDown2.Items.Add("93")
Me.DomainUpDown2.Items.Add("94")
Me.DomainUpDown2.Items.Add("95")
Me.DomainUpDown2.Items.Add("96")
Me.DomainUpDown2.Items.Add("97")
Me.DomainUpDown2.Items.Add("98")
Me.DomainUpDown2.Items.Add("99")
Me.DomainUpDown2.Items.Add("100")
Me.DomainUpDown2.Location = New System.Drawing.Point(122, 417)
Me.DomainUpDown2.Name = "DomainUpDown2"
Me.DomainUpDown2.Size = New System.Drawing.Size(205, 31)
Me.DomainUpDown2.TabIndex = 16
Me.DomainUpDown2.Text = "1"
'
'Label10
'
Me.Label10.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label10.Location = New System.Drawing.Point(2, 471)
Me.Label10.Name = "Label10"
Me.Label10.Size = New System.Drawing.Size(103, 21)
Me.Label10.TabIndex = 19
Me.Label10.Tag = ""
Me.Label10.Text = "组设备"
Me.Label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'ComboBox2
'
Me.ComboBox2.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.ComboBox2.FormattingEnabled = True
Me.ComboBox2.Items.AddRange(New Object() {"灯带"})
Me.ComboBox2.Location = New System.Drawing.Point(121, 467)
Me.ComboBox2.Name = "ComboBox2"
Me.ComboBox2.Size = New System.Drawing.Size(205, 29)
Me.ComboBox2.TabIndex = 20
'
'Button1
'
Me.Button1.Font = New System.Drawing.Font("宋体", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Button1.Location = New System.Drawing.Point(339, 455)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(120, 47)
Me.Button1.TabIndex = 21
Me.Button1.Text = "确定"
Me.Button1.UseVisualStyleBackColor = True
'
'AddLoopInfo
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(471, 514)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.ComboBox2)
Me.Controls.Add(Me.Label10)
Me.Controls.Add(Me.Label9)
Me.Controls.Add(Me.DomainUpDown2)
Me.Controls.Add(Me.Label8)
Me.Controls.Add(Me.ComboBox1)
Me.Controls.Add(Me.Label7)
Me.Controls.Add(Me.DomainUpDown1)
Me.Controls.Add(Me.TextBox6)
Me.Controls.Add(Me.Label6)
Me.Controls.Add(Me.TextBox5)
Me.Controls.Add(Me.Label5)
Me.Controls.Add(Me.TextBox4)
Me.Controls.Add(Me.Label4)
Me.Controls.Add(Me.TextBox3)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.TextBox2)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.TextBox1)
Me.Controls.Add(Me.Label1)
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "AddLoopInfo"
Me.Text = "添加回路信息"
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents SqLiteCommandBuilder1 As SQLite.SQLiteCommandBuilder
Friend WithEvents Label1 As Label
Friend WithEvents TextBox1 As TextBox
Friend WithEvents TextBox2 As TextBox
Friend WithEvents Label2 As Label
Friend WithEvents TextBox3 As TextBox
Friend WithEvents Label3 As Label
Friend WithEvents TextBox4 As TextBox
Friend WithEvents Label4 As Label
Friend WithEvents TextBox5 As TextBox
Friend WithEvents Label5 As Label
Friend WithEvents TextBox6 As TextBox
Friend WithEvents Label6 As Label
Friend WithEvents DomainUpDown1 As DomainUpDown
Friend WithEvents Label7 As Label
Friend WithEvents ComboBox1 As ComboBox
Friend WithEvents Label8 As Label
Friend WithEvents Label9 As Label
Friend WithEvents DomainUpDown2 As DomainUpDown
Friend WithEvents Label10 As Label
Friend WithEvents ComboBox2 As ComboBox
Friend WithEvents Button1 As Button
End Class

123
BLV_Studio/AddLoopInfo.resx Normal file
View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="SqLiteCommandBuilder1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

85
BLV_Studio/AddLoopInfo.vb Normal file
View File

@@ -0,0 +1,85 @@
Imports System.IO
Imports System.Runtime.InteropServices
Imports BLV_Studio.JpWordCheckForTTL
Imports ExcelLibrary.SpreadSheet
Imports Microsoft.Office.Interop.Excel
Public Class AddLoopInfo
Public LoopInfodic As List(Of String)
Private Sub AddLoopInfo_Load(sender As Object, e As EventArgs) Handles MyBase.Load
LoopInfodic = New List(Of String)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'判断所有的输入框是否为空
If String.IsNullOrEmpty(TextBox1.Text) AndAlso TextBox1.Text.Trim.Length <> 9 Then
MsgBox("回路地址异常!")
Return
End If
If String.IsNullOrEmpty(TextBox2.Text) Then
MsgBox("回路名称为空!")
Return
End If
If String.IsNullOrEmpty(TextBox6.Text) Then
MsgBox("功率数值为空!")
Return
End If
If String.IsNullOrEmpty(DomainUpDown1.Text) Then
MsgBox("排序数值为空!")
Return
End If
'If String.IsNullOrEmpty(ComboBox1.Text) Then
' MsgBox("TCL设备为空")
' Return
'End If
If String.IsNullOrEmpty(DomainUpDown2.Text) Then
MsgBox("设备组编号为空!")
Return
End If
'If String.IsNullOrEmpty(ComboBox2.Text) Then
' MsgBox("设备组为空!")
' Return
'End If
'Grid1.Cell(0 1).Text = "回路地址"
'Grid1.Cell(0 2).Text = "回路名称"
'Grid1.Cell(0 3).Text = "英文名称"
'Grid1.Cell(0 4).Text = "繁体名称"
'Grid1.Cell(0 5).Text = "别名"
'Grid1.Cell(0 6).Text = "功率"
'Grid1.Cell(0 7).Text = "低电值"
'Grid1.Cell(0 8).Text = "显示"
'Grid1.Cell(0 9).Text = "离线"
'Grid1.Cell(0 10).Text = "低电"
'Grid1.Cell(0 11).Text = "声报"
'Grid1.Cell(0 12).Text = "异常"
'Grid1.Cell(0 13).Text = "排序"
'Grid1.Cell(0 14).Text = "TCL设备名"
'Grid1.Cell(0 15).Text = "组设备编号"
'Grid1.Cell(0 16).Text = "组设备名"
LoopInfodic.Add(0)
LoopInfodic.Add(TextBox1.Text.Trim)
LoopInfodic.Add(TextBox2.Text.Trim)
LoopInfodic.Add("")
LoopInfodic.Add("")
LoopInfodic.Add(TextBox3.Text.Trim)
LoopInfodic.Add(TextBox4.Text.Trim)
LoopInfodic.Add(TextBox5.Text.Trim)
LoopInfodic.Add(TextBox6.Text.Trim)
LoopInfodic.Add(0)
LoopInfodic.Add(1)
LoopInfodic.Add(0)
LoopInfodic.Add(0)
LoopInfodic.Add(0)
LoopInfodic.Add(0)
LoopInfodic.Add(DomainUpDown1.Text.Trim)
LoopInfodic.Add(ComboBox1.Text.Trim)
LoopInfodic.Add(DomainUpDown2.Text.Trim)
LoopInfodic.Add(ComboBox2.Text.Trim)
Me.DialogResult = System.Windows.Forms.DialogResult.OK
End Sub
End Class

View File

@@ -35,7 +35,7 @@
<MinimumRequiredVersion>4.0.0.5</MinimumRequiredVersion>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>index.html</WebPage>
<ApplicationRevision>57</ApplicationRevision>
<ApplicationRevision>73</ApplicationRevision>
<ApplicationVersion>4.4.3.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut>

View File

@@ -0,0 +1,230 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class EnergySavingAttribute
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(EnergySavingAttribute))
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer2 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer3 = New System.Windows.Forms.SplitContainer()
Me.CheckBox1 = New System.Windows.Forms.CheckBox()
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
Me.ToolStripButton3 = New System.Windows.Forms.ToolStripButton()
Me.ToolStripLabel1 = New System.Windows.Forms.ToolStripLabel()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.PowerInit = New FlexCell.Grid()
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
Me.RatioInit = New FlexCell.Grid()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer2.Panel1.SuspendLayout()
Me.SplitContainer2.Panel2.SuspendLayout()
Me.SplitContainer2.SuspendLayout()
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer3.Panel1.SuspendLayout()
Me.SplitContainer3.Panel2.SuspendLayout()
Me.SplitContainer3.SuspendLayout()
Me.ToolStrip1.SuspendLayout()
Me.GroupBox1.SuspendLayout()
Me.GroupBox2.SuspendLayout()
Me.SuspendLayout()
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.GroupBox2)
Me.SplitContainer1.Size = New System.Drawing.Size(1200, 804)
Me.SplitContainer1.SplitterDistance = 340
Me.SplitContainer1.TabIndex = 0
'
'SplitContainer2
'
Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer2.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer2.Name = "SplitContainer2"
Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer2.Panel1
'
Me.SplitContainer2.Panel1.Controls.Add(Me.SplitContainer3)
'
'SplitContainer2.Panel2
'
Me.SplitContainer2.Panel2.Controls.Add(Me.GroupBox1)
Me.SplitContainer2.Size = New System.Drawing.Size(1200, 340)
Me.SplitContainer2.SplitterDistance = 26
Me.SplitContainer2.TabIndex = 1
'
'SplitContainer3
'
Me.SplitContainer3.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer3.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer3.Name = "SplitContainer3"
'
'SplitContainer3.Panel1
'
Me.SplitContainer3.Panel1.Controls.Add(Me.CheckBox1)
'
'SplitContainer3.Panel2
'
Me.SplitContainer3.Panel2.Controls.Add(Me.ToolStrip1)
Me.SplitContainer3.Size = New System.Drawing.Size(1200, 26)
Me.SplitContainer3.SplitterDistance = 442
Me.SplitContainer3.TabIndex = 1
'
'CheckBox1
'
Me.CheckBox1.AutoSize = True
Me.CheckBox1.Dock = System.Windows.Forms.DockStyle.Left
Me.CheckBox1.Location = New System.Drawing.Point(0, 0)
Me.CheckBox1.Name = "CheckBox1"
Me.CheckBox1.Size = New System.Drawing.Size(48, 26)
Me.CheckBox1.TabIndex = 0
Me.CheckBox1.Text = "全选"
Me.CheckBox1.UseVisualStyleBackColor = True
'
'ToolStrip1
'
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripButton3, Me.ToolStripLabel1})
Me.ToolStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.RightToLeft = System.Windows.Forms.RightToLeft.Yes
Me.ToolStrip1.Size = New System.Drawing.Size(754, 25)
Me.ToolStrip1.TabIndex = 0
Me.ToolStrip1.Text = "ToolStrip1"
'
'ToolStripButton3
'
Me.ToolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
Me.ToolStripButton3.Image = CType(resources.GetObject("ToolStripButton3.Image"), System.Drawing.Image)
Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton3.Name = "ToolStripButton3"
Me.ToolStripButton3.Size = New System.Drawing.Size(84, 22)
Me.ToolStripButton3.Text = "上传回路功率"
'
'ToolStripLabel1
'
Me.ToolStripLabel1.Name = "ToolStripLabel1"
Me.ToolStripLabel1.Size = New System.Drawing.Size(12, 22)
Me.ToolStripLabel1.Text = " "
'
'GroupBox1
'
Me.GroupBox1.Controls.Add(Me.PowerInit)
Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox1.Location = New System.Drawing.Point(0, 0)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(1200, 310)
Me.GroupBox1.TabIndex = 0
Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "回路和额定功率"
'
'PowerInit
'
Me.PowerInit.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
Me.PowerInit.DisplayRowNumber = True
Me.PowerInit.Dock = System.Windows.Forms.DockStyle.Fill
Me.PowerInit.Location = New System.Drawing.Point(3, 17)
Me.PowerInit.MouseWheelSpeed = CType(3, Short)
Me.PowerInit.Name = "PowerInit"
Me.PowerInit.SelectionMode = FlexCell.SelectionModeEnum.ByRow
Me.PowerInit.Size = New System.Drawing.Size(1194, 290)
Me.PowerInit.TabIndex = 1
'
'GroupBox2
'
Me.GroupBox2.Controls.Add(Me.RatioInit)
Me.GroupBox2.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox2.Location = New System.Drawing.Point(0, 0)
Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(1200, 460)
Me.GroupBox2.TabIndex = 1
Me.GroupBox2.TabStop = False
Me.GroupBox2.Text = "空调节能比例"
'
'RatioInit
'
Me.RatioInit.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
Me.RatioInit.DisplayRowNumber = True
Me.RatioInit.Dock = System.Windows.Forms.DockStyle.Fill
Me.RatioInit.Location = New System.Drawing.Point(3, 17)
Me.RatioInit.MouseWheelSpeed = CType(3, Short)
Me.RatioInit.Name = "RatioInit"
Me.RatioInit.Size = New System.Drawing.Size(1194, 440)
Me.RatioInit.TabIndex = 2
'
'EnergySavingAttribute
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(1200, 804)
Me.Controls.Add(Me.SplitContainer1)
Me.Name = "EnergySavingAttribute"
Me.Text = "节能属性"
Me.SplitContainer1.Panel1.ResumeLayout(False)
Me.SplitContainer1.Panel2.ResumeLayout(False)
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer1.ResumeLayout(False)
Me.SplitContainer2.Panel1.ResumeLayout(False)
Me.SplitContainer2.Panel2.ResumeLayout(False)
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer2.ResumeLayout(False)
Me.SplitContainer3.Panel1.ResumeLayout(False)
Me.SplitContainer3.Panel1.PerformLayout()
Me.SplitContainer3.Panel2.ResumeLayout(False)
Me.SplitContainer3.Panel2.PerformLayout()
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer3.ResumeLayout(False)
Me.ToolStrip1.ResumeLayout(False)
Me.ToolStrip1.PerformLayout()
Me.GroupBox1.ResumeLayout(False)
Me.GroupBox2.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents GroupBox1 As GroupBox
Friend WithEvents ToolStrip1 As ToolStrip
Friend WithEvents GroupBox2 As GroupBox
Friend WithEvents RatioInit As FlexCell.Grid
Friend WithEvents SplitContainer2 As SplitContainer
Friend WithEvents SplitContainer3 As SplitContainer
Friend WithEvents ToolStripButton3 As ToolStripButton
Friend WithEvents ToolStripLabel1 As ToolStripLabel
Private WithEvents PowerInit As FlexCell.Grid
Friend WithEvents CheckBox1 As CheckBox
End Class

View File

@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="ToolStripButton3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>
</root>

View File

@@ -0,0 +1,748 @@
Imports System.IO
Imports System.Net
Imports System.Text
Imports Newtonsoft.Json
Public Class EnergySavingAttribute
Public G_ReportingScenario As ReportingScenario
Public G_loopNameAddr As Dictionary(Of String, String)
Public G_roomtypeid As Integer
Public G_Hotelid As Integer
Public G_Uploaduser As String
Public G_roomtypename As String
Public G_DateStr As Dictionary(Of String, List(Of (String String)))
Public IsLoadServer As Integer = 0
Public g_Oldloopinfo As String = ""
Public DbConnString As String = "Server=blv-cloud-db.mysql.rds.aliyuncs.com;Port=3307;Database=blv_rcu_db;Uid=blv_rcu;Pwd=fnadiaJDIJ7546;charset=utf8;"
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
PowerGridInit()
RatioGridInit()
LoadPowerInit()
End Sub
'给页面加载数据
Sub New(nReportingScenario As ReportingScenario, roomtypeid As Integer, hotelid As Integer, uploaduser As String, datestr As String, roomtypename As String)
' 此调用是设计器所必需的。
InitializeComponent()
G_roomtypeid = roomtypeid
G_roomtypename = roomtypename
G_Hotelid = hotelid
G_Uploaduser = uploaduser
G_loopNameAddr = New Dictionary(Of String, String)
G_ReportingScenario = nReportingScenario
Dim li As List(Of MDevNodeMessage) = nReportingScenario.getDateDisposeRuning
For Each item In li
If G_loopNameAddr.ContainsKey(item.ModalAddress) Then
Continue For
Else
G_loopNameAddr.Add(item.ModalAddress, item.Name)
End If
Next
G_DateStr = New Dictionary(Of String, List(Of (String String)))
Dim tnli As List(Of (String String))
Dim strbuf As String() = datestr.Split(vbLf)
Dim cstrbutf As String()
For Each item In strbuf
cstrbutf = item.Trim().Split(",")
If G_DateStr.ContainsKey(cstrbutf(2)) Then
tnli = G_DateStr(cstrbutf(2))
tnli.Add((cstrbutf(3), cstrbutf(4)))
Else
tnli = New List(Of (String String))
tnli.Add((cstrbutf(3), cstrbutf(4)))
G_DateStr.Add(cstrbutf(2), tnli)
End If
Next
' 在 InitializeComponent() 调用之后添加任何初始化。
End Sub
Public Sub PowerGridInit()
PowerInit.NewFile()
PowerInit.DisplayRowNumber = True
PowerInit.Cols = 9
PowerInit.Rows = 1
PowerInit.ExtendLastCol = True
PowerInit.Cell(0, 0).Text = "ID"
PowerInit.Cell(0, 1).Text = "启用"
PowerInit.Cell(0, 2).Text = "酒店编号"
PowerInit.Cell(0, 3).Text = "房型"
PowerInit.Cell(0, 4).Text = "本地回路名称"
PowerInit.Cell(0, 5).Text = "回路地址"
PowerInit.Cell(0, 6).Text = "功率"
PowerInit.Cell(0, 7).Text = "节能比例(%"
PowerInit.Cell(0, 8).Text = "备注"
PowerInit.Column(0).Width = 40
PowerInit.Column(1).Width = 20
PowerInit.Column(2).Width = 60
PowerInit.Column(3).Width = 200
PowerInit.Column(4).Width = 100
PowerInit.Column(5).Width = 80
PowerInit.Column(6).Width = 50
PowerInit.Column(7).Width = 80
PowerInit.Column(1).CellType = FlexCell.CellTypeEnum.CheckBox
PowerInit.Column(7).CellType = FlexCell.CellTypeEnum.ComboBox
PowerInit.Column(0).Alignment = FlexCell.AlignmentEnum.CenterCenter
PowerInit.Column(1).Alignment = FlexCell.AlignmentEnum.CenterCenter
PowerInit.Column(2).Alignment = FlexCell.AlignmentEnum.CenterCenter
PowerInit.Column(3).Alignment = FlexCell.AlignmentEnum.CenterCenter
PowerInit.Column(4).Alignment = FlexCell.AlignmentEnum.CenterCenter
PowerInit.Column(5).Alignment = FlexCell.AlignmentEnum.CenterCenter
PowerInit.Column(6).Alignment = FlexCell.AlignmentEnum.CenterCenter
PowerInit.Column(7).Alignment = FlexCell.AlignmentEnum.CenterCenter
PowerInit.Column(8).Alignment = FlexCell.AlignmentEnum.CenterCenter
'设置1到4列不可编辑
For i As Integer = 2 To 5
PowerInit.Column(i).Locked = True
Next
End Sub
'加载PowerInit表
Public Sub LoadPowerInit()
If IsNothing(G_loopNameAddr) OrElse G_loopNameAddr.Count = 0 Then Return
Dim dic As Dictionary(Of String, Dictionary(Of String, String)) = GetholteloopVAl(G_Hotelid, G_roomtypeid)
Dim ncdic As Dictionary(Of String, String)
Dim li As List(Of (String String))
Dim Gcstr As String
Dim Ginttype As Integer = -1
For i As Integer = 0 To G_loopNameAddr.Keys.Count - 1
Gcstr = G_loopNameAddr.Keys(i).Substring(0, 3)
Integer.TryParse(Gcstr, Ginttype)
Select Case Ginttype
Case 24 'pwm调光
li = G_DateStr(2.ToString)
PowerInit.AddItem("")
PowerInit.Cell(PowerInit.Rows - 1, 2).Text = G_Hotelid
PowerInit.Cell(PowerInit.Rows - 1, 3).Text = G_roomtypename
PowerInit.Cell(PowerInit.Rows - 1, 4).Text = G_loopNameAddr.Values(i)
PowerInit.Cell(PowerInit.Rows - 1, 5).Text = G_loopNameAddr.Keys(i)
PowerInit.Cell(PowerInit.Rows - 1, 6).Text = "0"
If li.Count > 0 Then
PowerInit.Cell(PowerInit.Rows - 1, 7).Text = li(0).Item1
Else
PowerInit.Cell(PowerInit.Rows - 1, 7).Text = "0"
End If
If Not IsNothing(dic) AndAlso dic.ContainsKey(G_loopNameAddr.Keys(i)) Then
ncdic = dic(G_loopNameAddr.Keys(i))
PowerInit.Cell(PowerInit.Rows - 1, 1).Text = ncdic.Item("push_state")
PowerInit.Cell(PowerInit.Rows - 1, 6).Text = ncdic.Item("power")
PowerInit.Cell(PowerInit.Rows - 1, 8).Text = ncdic.Item("remark")
End If
Case 52 '色温
li = G_DateStr(2.ToString)
PowerInit.AddItem("")
PowerInit.Cell(PowerInit.Rows - 1, 2).Text = G_Hotelid
PowerInit.Cell(PowerInit.Rows - 1, 3).Text = G_roomtypename
PowerInit.Cell(PowerInit.Rows - 1, 4).Text = G_loopNameAddr.Values(i)
PowerInit.Cell(PowerInit.Rows - 1, 5).Text = G_loopNameAddr.Keys(i)
PowerInit.Cell(PowerInit.Rows - 1, 6).Text = "0"
If li.Count > 0 Then
PowerInit.Cell(PowerInit.Rows - 1, 7).Text = li(0).Item1
Else
PowerInit.Cell(PowerInit.Rows - 1, 7).Text = "0"
End If
If Not IsNothing(dic) AndAlso dic.ContainsKey(G_loopNameAddr.Keys(i)) Then
ncdic = dic(G_loopNameAddr.Keys(i))
'PowerInit.Cell(PowerInit.Rows - 1, 3).Text = ncdic.Item("name")
PowerInit.Cell(PowerInit.Rows - 1, 1).Text = ncdic.Item("push_state")
PowerInit.Cell(PowerInit.Rows - 1, 6).Text = ncdic.Item("power")
PowerInit.Cell(PowerInit.Rows - 1, 8).Text = ncdic.Item("remark")
End If
Case 50 'pwm调光
li = G_DateStr(2.ToString)
PowerInit.AddItem("")
PowerInit.Cell(PowerInit.Rows - 1, 2).Text = G_Hotelid
PowerInit.Cell(PowerInit.Rows - 1, 3).Text = G_roomtypename
PowerInit.Cell(PowerInit.Rows - 1, 4).Text = G_loopNameAddr.Values(i)
PowerInit.Cell(PowerInit.Rows - 1, 5).Text = G_loopNameAddr.Keys(i)
PowerInit.Cell(PowerInit.Rows - 1, 6).Text = "0"
If li.Count > 0 Then
PowerInit.Cell(PowerInit.Rows - 1, 7).Text = li(0).Item1
Else
PowerInit.Cell(PowerInit.Rows - 1, 7).Text = "0"
End If
If Not IsNothing(dic) AndAlso dic.ContainsKey(G_loopNameAddr.Keys(i)) Then
ncdic = dic(G_loopNameAddr.Keys(i))
'PowerInit.Cell(PowerInit.Rows - 1, 3).Text = ncdic.Item("name")
PowerInit.Cell(PowerInit.Rows - 1, 1).Text = ncdic.Item("push_state")
PowerInit.Cell(PowerInit.Rows - 1, 6).Text = ncdic("power")
PowerInit.Cell(PowerInit.Rows - 1, 8).Text = ncdic("remark")
End If
Case 7 '温控
li = G_DateStr(3.ToString)
RatioInit.AddItem("")
RatioInit.Cell(RatioInit.Rows - 1, 2).Text = G_Hotelid
RatioInit.Cell(RatioInit.Rows - 1, 3).Text = G_roomtypename
RatioInit.Cell(RatioInit.Rows - 1, 4).Text = G_loopNameAddr.Values(i)
RatioInit.Cell(RatioInit.Rows - 1, 5).Text = G_loopNameAddr.Keys(i)
If li.Count > 0 Then
'取回路地址第4到6位转成int类型
Dim Ginttype2 As Integer = Integer.Parse(G_loopNameAddr.Keys(i).Substring(3, 3))
'使用linq查询li中Item2为Ginttype2的项 取其Item1
Dim Gstr As String = (From x In li Where x.Item1 = Ginttype2 Select x.Item2).FirstOrDefault
RatioInit.Cell(RatioInit.Rows - 1, 9).Text = Gstr
Else
RatioInit.Cell(RatioInit.Rows - 1, 9).Text = "0"
End If
If Not IsNothing(dic) AndAlso dic.ContainsKey(G_loopNameAddr.Keys(i)) Then
ncdic = dic(G_loopNameAddr.Keys(i))
'RatioInit.Cell(0, 1).Text = "酒店编号"
'RatioInit.Cell(0, 2).Text = "房型"
'RatioInit.Cell(0, 3).Text = "空调名称"
'RatioInit.Cell(0, 4).Text = "空调回路"
'RatioInit.Cell(0, 5).Text = "空调类型"
'RatioInit.Cell(0, 6).Text = "厂牌"
'RatioInit.Cell(0, 7).Text = "型号"
'RatioInit.Cell(0, 8).Text = "空调节能温差"
'RatioInit.Cell(0, 9).Text = "房间高度"
'RatioInit.Cell(0, 10).Text = "房间面积"
'RatioInit.Cell(0, 11).Text = "热损失系数"
'RatioInit.Cell(0, 12).Text = "备注"
RatioInit.Cell(RatioInit.Rows - 1, 1).Text = ncdic.Item("push_state")
RatioInit.Cell(RatioInit.Rows - 1, 6).Text = ncdic("air_type")
RatioInit.Cell(RatioInit.Rows - 1, 7).Text = ncdic("air_brand")
RatioInit.Cell(RatioInit.Rows - 1, 8).Text = ncdic("air_model")
RatioInit.Cell(RatioInit.Rows - 1, 10).Text = ncdic("height")
RatioInit.Cell(RatioInit.Rows - 1, 11).Text = ncdic("area")
RatioInit.Cell(RatioInit.Rows - 1, 12).Text = ncdic("heat_loss")
RatioInit.Cell(RatioInit.Rows - 1, 13).Text = ncdic("remark")
End If
End Select
Next
End Sub
Public Function GetholteloopVAl(hotelID As String roomtypeid As String) As Dictionary(Of String, Dictionary(Of String, String))
If String.IsNullOrEmpty(hotelID) AndAlso String.IsNullOrEmpty(roomtypeid) Then Return Nothing
Dim dic As Dictionary(Of String, Dictionary(Of String, String)) = New Dictionary(Of String, Dictionary(Of String, String))
Dim dt As DataTable
Dim indexDci As Dictionary(Of String, String)
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
db.Open()
dt = db.ExecuteDataTable(db.CmdHelper.DbSearchAll("blv_rcu_db", "tbl_room_type_circuit_powers", $"`hotel_rcu_code`='{hotelID}' and `room_type_code`='{roomtypeid}'"))
db.Close()
End Using
If IsNothing(dt) OrElse dt.Rows.Count = 0 Then Return Nothing
For Each row As DataRow In dt.Rows
If dic.ContainsKey(row("address")) Then
indexDci = dic(row("address"))
indexDci("push_state") = row("push_state")
indexDci("type") = row("type")
indexDci("name") = row("name")
indexDci("power") = row("power")
indexDci("rate") = row("rate")
indexDci("temperature") = row("temperature")
If Not IsDBNull(row("air_type")) Then
indexDci("air_type") = row("air_type")
End If
If Not IsDBNull(row("air_brand")) Then
indexDci("air_brand") = row("air_brand")
End If
If Not IsDBNull(row("air_model")) Then
indexDci("air_model") = row("air_model")
End If
indexDci("height") = row("height")
indexDci("area") = row("area")
indexDci("heat_loss") = row("heat_loss")
indexDci("remark") = row("remark")
Else
indexDci = New Dictionary(Of String, String)
indexDci.Add("type", row("type"))
indexDci.Add("push_state", row("push_state"))
indexDci.Add("name", row("name"))
indexDci.Add("power", row("power"))
indexDci.Add("rate", row("rate"))
indexDci.Add("temperature", row("temperature"))
If Not IsDBNull(row("air_type")) Then
indexDci.Add("air_type", row("air_type"))
End If
If Not IsDBNull(row("air_brand")) Then
indexDci.Add("air_brand", row("air_brand"))
End If
If Not IsDBNull(row("air_model")) Then
indexDci.Add("air_model", row("air_model"))
End If
indexDci.Add("height", row("height"))
indexDci.Add("area", row("area"))
indexDci.Add("heat_loss", row("heat_loss"))
indexDci.Add("remark", row("remark"))
dic.Add(row("address"), indexDci)
End If
Next
Return dic
End Function
Public Sub RatioGridInit()
RatioInit.NewFile()
RatioInit.DisplayRowNumber = True
RatioInit.Cols = 14
RatioInit.Rows = 1
RatioInit.ExtendLastCol = True
RatioInit.Cell(0, 0).Text = "ID"
'酒店编号 房间号 空调回路 空调类型 厂牌 型号 空调节能温差 备注
RatioInit.Cell(0, 1).Text = "启用"
RatioInit.Cell(0, 2).Text = "酒店编号"
RatioInit.Cell(0, 3).Text = "房型"
RatioInit.Cell(0, 4).Text = "空调名称"
RatioInit.Cell(0, 5).Text = "空调回路"
RatioInit.Cell(0, 6).Text = "空调类型"
RatioInit.Cell(0, 7).Text = "厂牌"
RatioInit.Cell(0, 8).Text = "型号"
RatioInit.Cell(0, 9).Text = "空调节能温差"
RatioInit.Cell(0, 10).Text = "房间高度"
RatioInit.Cell(0, 11).Text = "房间面积"
RatioInit.Cell(0, 12).Text = "热损失系数"
RatioInit.Cell(0, 13).Text = "备注"
RatioInit.Column(0).Width = 40
RatioInit.Column(1).Width = 20
RatioInit.Column(2).Width = 60
RatioInit.Column(3).Width = 200
RatioInit.Column(4).Width = 100
RatioInit.Column(5).Width = 80
RatioInit.Column(6).Width = 50
RatioInit.Column(7).Width = 100
RatioInit.Column(8).Width = 80
RatioInit.Column(9).Width = 80
RatioInit.Column(10).Width = 80
RatioInit.Column(11).Width = 80
RatioInit.Column(12).Width = 80
RatioInit.Column(1).CellType = FlexCell.CellTypeEnum.CheckBox
RatioInit.Column(9).CellType = FlexCell.CellTypeEnum.ComboBox
RatioInit.Column(0).Alignment = FlexCell.AlignmentEnum.CenterCenter
RatioInit.Column(1).Alignment = FlexCell.AlignmentEnum.CenterCenter
RatioInit.Column(2).Alignment = FlexCell.AlignmentEnum.CenterCenter
RatioInit.Column(3).Alignment = FlexCell.AlignmentEnum.CenterCenter
RatioInit.Column(4).Alignment = FlexCell.AlignmentEnum.CenterCenter
RatioInit.Column(5).Alignment = FlexCell.AlignmentEnum.CenterCenter
RatioInit.Column(6).Alignment = FlexCell.AlignmentEnum.CenterCenter
RatioInit.Column(7).Alignment = FlexCell.AlignmentEnum.CenterCenter
RatioInit.Column(8).Alignment = FlexCell.AlignmentEnum.CenterCenter
RatioInit.Column(9).Alignment = FlexCell.AlignmentEnum.CenterCenter
RatioInit.Column(10).Alignment = FlexCell.AlignmentEnum.CenterCenter
RatioInit.Column(11).Alignment = FlexCell.AlignmentEnum.CenterCenter
RatioInit.Column(12).Alignment = FlexCell.AlignmentEnum.CenterCenter
'设置 1到2 列为只读
For i As Integer = 2 To 3
RatioInit.Column(i).Locked = True
Next
End Sub
'Private Function ToolStripButton1_Click(sender As Object, e As EventArgs) As List(Of Dictionary(Of String, Object))
Private Function GetRatioInitLi() As List(Of Dictionary(Of String, Object))
'判断PowerInit 是否为空
If RatioInit.Rows = 1 Then
'MsgBox("请先添加完整的温控数据!")
Return Nothing
End If
''遍历PowerInit
Dim li As New List(Of Dictionary(Of String, Object))
Dim dic As Dictionary(Of String, Object)
Dim fnumber As Double = 0
For i As Integer = 1 To RatioInit.Rows - 1
'遍历每一列
dic = New Dictionary(Of String, Object)
dic.Add("type", 1)
If RatioInit.Cell(i, 1).Text.Equals("1") Then
dic.Add("push_state", 1)
Else
dic.Add("push_state", 0)
End If
For j As Integer = 4 To RatioInit.Cols - 1
'判断是否为空
Dim str As String = RatioInit.Cell(i, j).Text
If String.IsNullOrEmpty(RatioInit.Cell(i, j).Text) AndAlso j <> RatioInit.Cols - 1 Then
MsgBox($"温控 第{RatioInit.Cell(i, 0).Text}行数据缺失请补全数据再进行上传!")
Return Nothing
End If
'RatioInit.Cell(0, 1).Text = "酒店编号"
'RatioInit.Cell(0, 2).Text = "房型"
'RatioInit.Cell(0, 3).Text = "空调名称"
'RatioInit.Cell(0, 4).Text = "空调回路"
'RatioInit.Cell(0, 5).Text = "空调类型"
'RatioInit.Cell(0, 6).Text = "厂牌"
'RatioInit.Cell(0, 7).Text = "型号"
'RatioInit.Cell(0, 8).Text = "空调节能温差"
'RatioInit.Cell(0, 9).Text = "备注"
'判断各列
Select Case j
Case 3
dic.Add("room_type_code", G_roomtypeid)
Case 4
dic.Add("name", RatioInit.Cell(i, j).Text.Trim)
Case 5
dic.Add("address", RatioInit.Cell(i, j).Text.Trim)
Case 6
dic.Add("air_type", RatioInit.Cell(i, j).Text.Trim)
Case 7
dic.Add("air_brand", RatioInit.Cell(i, j).Text.Trim)
Case 8
dic.Add("air_model", RatioInit.Cell(i, j).Text.Trim)
Case 9
If Not Double.TryParse(RatioInit.Cell(i, j).Text.Trim, fnumber) Then
MsgBox($"温控第{RatioInit.Cell(i, 0).Text}行,【空调节能温差】 数据异常!")
Return Nothing
Else
If fnumber >= 15 Or fnumber < 0 Then
MsgBox($"温控第{RatioInit.Cell(i, 0).Text}行,【功率】 数据异常!数值范围为 1到15")
Return Nothing
End If
End If
dic.Add("temperature", fnumber)
Case 10
If Not Double.TryParse(RatioInit.Cell(i, j).Text.Trim, fnumber) Then
MsgBox($"温控第{RatioInit.Cell(i, 0).Text}行,【房间高度】 数据异常!")
Return Nothing
End If
dic.Add("height", fnumber)
Case 11
If Not Double.TryParse(RatioInit.Cell(i, j).Text.Trim, fnumber) Then
MsgBox($"温控第{RatioInit.Cell(i, 0).Text}行,【房间面积】 数据异常!")
Return Nothing
End If
dic.Add("area", fnumber)
Case 12
If Not Double.TryParse(RatioInit.Cell(i, j).Text.Trim, fnumber) Then
MsgBox($"温控第{RatioInit.Cell(i, 0).Text}行,【热损失系数】 数据异常!")
Return Nothing
End If
dic.Add("heat_loss", fnumber)
Case 13
dic.Add("remark", RatioInit.Cell(i, j).Text.Trim)
End Select
Next
li.Add(dic)
Next
'Dim params As String = JsonConvert.SerializeObject(li)
'API_AllocationBarCode(G_Hotelid li)
Return li
End Function
Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton3.Click
'判断PowerInit 是否为空
If PowerInit.Rows = 1 Then
MsgBox("请先添加数据")
Return
End If
''遍历PowerInit
Dim li As New List(Of Dictionary(Of String, Object))
Dim dic As Dictionary(Of String, Object)
Dim fnumber As Double = 0
For i As Integer = 1 To PowerInit.Rows - 1
'遍历每一列
dic = New Dictionary(Of String, Object)
dic.Add("type", 0)
If PowerInit.Cell(i, 1).Text.Equals("1") Then
dic.Add("push_state", 1)
Else
dic.Add("push_state", 0)
End If
For j As Integer = 4 To PowerInit.Cols - 1
'判断是否为空
Dim str As String = PowerInit.Cell(i, j).Text
If String.IsNullOrEmpty(PowerInit.Cell(i, j).Text) AndAlso j <> PowerInit.Cols - 1 Then
MsgBox($"第{i}行{j}数据缺失请补全数据再进行上传!")
Return
End If
'判断各列
Select Case j
Case 3
dic.Add("room_type_code", G_roomtypeid)
Case 4
dic.Add("name", PowerInit.Cell(i, j).Text.Trim)
Case 5
dic.Add("address", PowerInit.Cell(i, j).Text.Trim)
Case 6
If Not Double.TryParse(PowerInit.Cell(i, j).Text.Trim, fnumber) Then
MsgBox($"第{PowerInit.Cell(i, 0).Text}行,【功率】 数据异常!")
Return
Else
If fnumber >= 10000 Or fnumber < 0 Then
MsgBox($"第{PowerInit.Cell(i, 0).Text}行,【功率】 数据异常!数值范围为 1到10000")
Return
End If
End If
dic.Add("power", fnumber)
Case 7
If Not Double.TryParse(PowerInit.Cell(i, j).Text.Trim, fnumber) Then
MsgBox($"第{PowerInit.Cell(i, 0).Text}行,【节能比例(%)】 数据异常!")
Return
Else
If fnumber > 100 Or fnumber < 0 Then
MsgBox($"第{PowerInit.Cell(i, 0).Text}行,【节能比例(%)】 数据异常!数值范围为 1到100")
Return
End If
End If
dic.Add("rate", fnumber)
Case 8
dic.Add("remark", PowerInit.Cell(i, j).Text.Trim)
End Select
Next
li.Add(dic)
Next
Dim strInputMsg As String = InputBox("请输入密码", "密码确认")
If strInputMsg <> "123456" Then Return
Dim Tli As List(Of Dictionary(Of String, Object)) = GetRatioInitLi()
If IsNothing(Tli) Then
'MsgBox("上传失败")
'Returneks
Else
'将tli 添加到li中
li.AddRange(Tli)
End If
'插入数据到数据库
Deletetbl_room_type_circuit_powers(G_Hotelid, G_roomtypeid li)
GenerateTransactionInsertionStatements(G_Hotelid, G_roomtypeid li)
If API_AllocationBarCode(G_Hotelid, G_roomtypeid li) Then
MsgBox("上传成功")
Else
MsgBox("上传失败")
End If
End Sub
'插入数据到数据库
Public Function Deletetbl_room_type_circuit_powers(hotelID As String roomtypeid As String, insertClunm As List(Of Dictionary(Of String, Object))) As Boolean
If IsNothing(insertClunm) AndAlso insertClunm.Count = 0 Then Return False
Dim dt As DataTable
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
db.Open()
dt = db.ExecuteDataTable(db.CmdHelper.DeleteRows("tbl_room_type_circuit_powers", $"`hotel_rcu_code`='{hotelID}' and `room_type_code`='{roomtypeid}'"))
db.Close()
End Using
Return True
End Function
'生成事务插入语句
Public Function GenerateTransactionInsertionStatements(hotelID As String roomtypeid As String, insertClunm As List(Of Dictionary(Of String, Object))) As Boolean
If IsNothing(insertClunm) AndAlso insertClunm.Count = 0 Then Return False
'遍历insertClunm
Dim colNames As New StringBuilder
Dim db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
Dim str As String = String.Empty
For Each dic As Dictionary(Of String, Object) In insertClunm
dic.Add("hotel_rcu_code", hotelID)
dic.Add("room_type_code", roomtypeid)
str = db.CmdHelper.Insert2("tbl_room_type_circuit_powers", dic)
colNames.Append(str & vbCrLf)
Next
Return Add_room_type_circuit_powers(colNames.ToString)
End Function
Public Function Add_room_type_circuit_powers(insertClunm As String) As Boolean
If String.IsNullOrEmpty(insertClunm) Then Return False
Dim dt As DataTable
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
db.Open()
Try
db.BeginTransaction()
dt = db.ExecuteDataTable(insertClunm)
db.CommitTransaction()
Catch ex As Exception
db.RollbackTransaction()
db.Close()
Return False
End Try
db.Close()
End Using
Return True
End Function
Public Shared Function API_AllocationBarCode(hotelID As String roomtypeid As String params As List(Of Dictionary(Of String, Object))) As Boolean
Dim jsonString As String = String.Empty
Dim dic As New Dictionary(Of String Object
'获取秒级时间戳
Dim timeStamp As String = (DateTime.Now - New DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds.ToString("0")
Dim md5key As String = GetStringMd5("BLV@blv-oa.com")
Dim filepath As String = $"hotel_code={hotelID}&time={timeStamp}&key={md5key.ToLower}"
Dim md5 As String = GetStringMd5(filepath)
dic.Add("hotel_code", hotelID)
dic.Add("room_type_code", roomtypeid)
dic.Add("time", timeStamp)
dic.Add("sign", md5.ToLower)
dic.Add("params", params)
Dim jsonDatastr As String = JsonConvert.SerializeObject(dic)
Try
jsonString = HttpMothod.PostData2("https://f-xcx.blv-oa.com/rcu/v1/circuit/power", jsonDatastr)
Catch ex As Exception
MsgBox($"网络API调用错误请联系管理员。")
Return Nothing
End Try
'Console.WriteLine(jsonString)
If jsonString = Nothing Then
Return False
End If
Dim login As Dictionary(Of String String)
Try
login = JsonConvert.DeserializeObject(Of Dictionary(Of String String))(jsonString)
If Not IsNothing(login) AndAlso login.ContainsKey("code") Then
If login.Item("code").Equals("200") Then
Return True
Else
Return False
End If
Return False
Else
Return False
End If
Catch ex As Exception
'MsgBox($"Json数据转换错误请联系管理员。详情 Json data to AllocationAPI error")
Return False
End Try
End Function
Public Shared Function PostData(ByVal url As String, ByVal data As String) As String
ServicePointManager.Expect100Continue = False
Dim request As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
'//Post请求方式
request.Method = "POST"
'内容类型
request.ContentType = "application/x-www-form-urlencoded"
'将URL编码后的字符串转化为字节
Dim encoding As New UTF8Encoding()
Dim bys As Byte() = encoding.GetBytes(data)
'设置请求的 ContentLength
request.ContentLength = bys.Length
'获得请 求流
Dim newStream As Stream = request.GetRequestStream()
newStream.Write(bys, 0, bys.Length)
newStream.Close()
'获得响应流
Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
Return sr.ReadToEnd
End Function
Private Sub PowerInit_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles PowerInit.CellChange
If e.Row = 0 Then Return
If e.Col = 6 Or e.Col = 7 Then
Dim fnumber As Double
If Double.TryParse(PowerInit.Cell(e.Row, e.Col).Text.Trim, fnumber) Then
If (fnumber > 100 Or fnumber < 0) AndAlso e.Col = 7 Then
MsgBox($"第{PowerInit.Cell(e.Row, 0).Text}行,【节能比例(%)】 数据异常!数值范围为 1到100")
Return
End If
Else
MsgBox($"第{PowerInit.Cell(e.Row, 0).Text} 行 【公路】或节能比例 数据格式不正确,请输入数字!")
Return
End If
End If
End Sub
Private Sub PowerInit_ComboDropDown(Sender As Object, e As FlexCell.Grid.ComboDropDownEventArgs) Handles PowerInit.ComboDropDown
If e.Row = 0 Then Return
If e.Col = 7 Then
PowerInit.ComboBox(e.Col).Items.Clear()
'设置选项为 1到100
For i As Integer = 1 To 100
PowerInit.ComboBox(e.Col).Items.Add(i.ToString())
Next
End If
End Sub
Private Sub RatioInit_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles RatioInit.CellChange
If e.Row = 0 Then Return
If e.Col = 9 Then
Dim fnumber As Double
If Double.TryParse(RatioInit.Cell(e.Row, e.Col).Text.Trim, fnumber) Then
If fnumber >= 1 And fnumber <= 15 Then
Else
MsgBox($"第{RatioInit.Cell(e.Row, 0).Text}行,【空调节能温差】 数据异常,【空调节能温差】数值范围为 1到15")
End If
Else
MsgBox($"第{RatioInit.Cell(e.Row, 0).Text}行,【空调节能温差】 数据异常!")
Return
End If
End If
End Sub
Private Sub RatioInit_ComboDropDown(Sender As Object, e As FlexCell.Grid.ComboDropDownEventArgs) Handles RatioInit.ComboDropDown
If e.Row = 0 Then Return
If e.Col = 9 Then
RatioInit.ComboBox(e.Col).Items.Clear()
'设置选项为 1到100
For i As Integer = 1 To 15
RatioInit.ComboBox(e.Col).Items.Add(i.ToString())
Next
End If
End Sub
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
'当勾选时CheckBox1时将PowerInit表和RatioInit表中各行启用列设置为1
If CheckBox1.Checked Then
For i As Integer = 1 To PowerInit.Rows - 1
PowerInit.Cell(i, 1).Text = "1"
Next
For i As Integer = 1 To RatioInit.Rows - 1
RatioInit.Cell(i, 1).Text = "1"
Next
Else
'当取消勾选时CheckBox1时将PowerInit表和RatioInit表中各行启用列设置为0
For i As Integer = 1 To PowerInit.Rows - 1
PowerInit.Cell(i, 1).Text = "0"
Next
For i As Integer = 1 To RatioInit.Rows - 1
RatioInit.Cell(i, 1).Text = "0"
Next
End If
End Sub
End Class

View File

@@ -24,19 +24,19 @@ Partial Class FrmMain
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FrmMain))
Dim TreeNode14 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点2")
Dim TreeNode15 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点3")
Dim TreeNode16 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点4")
Dim TreeNode17 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点1", New System.Windows.Forms.TreeNode() {TreeNode14, TreeNode15, TreeNode16})
Dim TreeNode18 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点5")
Dim TreeNode19 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点6")
Dim TreeNode20 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点7")
Dim TreeNode21 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点0", New System.Windows.Forms.TreeNode() {TreeNode18, TreeNode19, TreeNode20})
Dim TreeNode22 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点8")
Dim TreeNode23 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点9")
Dim TreeNode24 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点10")
Dim TreeNode25 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点1", New System.Windows.Forms.TreeNode() {TreeNode22, TreeNode23, TreeNode24})
Dim TreeNode26 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("酒店-房型", New System.Windows.Forms.TreeNode() {TreeNode17, TreeNode21, TreeNode25})
Dim TreeNode1 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点2")
Dim TreeNode2 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点3")
Dim TreeNode3 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点4")
Dim TreeNode4 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点1", New System.Windows.Forms.TreeNode() {TreeNode1, TreeNode2, TreeNode3})
Dim TreeNode5 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点5")
Dim TreeNode6 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点6")
Dim TreeNode7 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点7")
Dim TreeNode8 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点0", New System.Windows.Forms.TreeNode() {TreeNode5, TreeNode6, TreeNode7})
Dim TreeNode9 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点8")
Dim TreeNode10 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点9")
Dim TreeNode11 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点10")
Dim TreeNode12 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("节点1", New System.Windows.Forms.TreeNode() {TreeNode9, TreeNode10, TreeNode11})
Dim TreeNode13 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("酒店-房型", New System.Windows.Forms.TreeNode() {TreeNode4, TreeNode8, TreeNode12})
Me.MsMain = New System.Windows.Forms.MenuStrip()
Me.账户ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiChangeUser = New System.Windows.Forms.ToolStripMenuItem()
@@ -871,33 +871,33 @@ Partial Class FrmMain
Me.tv_ResourceTree.ItemHeight = 60
Me.tv_ResourceTree.Location = New System.Drawing.Point(3, 3)
Me.tv_ResourceTree.Name = "tv_ResourceTree"
TreeNode14.Name = "节点2"
TreeNode14.Text = "节点2"
TreeNode15.Name = "节点3"
TreeNode15.Text = "节点3"
TreeNode16.Name = "节点4"
TreeNode16.Text = "节点4"
TreeNode17.Name = "动作"
TreeNode17.Text = "节点1"
TreeNode18.Name = "节点5"
TreeNode18.Text = "节点5"
TreeNode19.Name = "节点6"
TreeNode19.Text = "节点6"
TreeNode20.Name = "节点7"
TreeNode20.Text = "节点7"
TreeNode21.Name = "节点0"
TreeNode21.Text = "节点0"
TreeNode22.Name = "节点8"
TreeNode22.Text = "节点8"
TreeNode23.Name = "节点9"
TreeNode23.Text = "节点9"
TreeNode24.Name = "节点10"
TreeNode24.Text = "节点10"
TreeNode25.Name = "节点1"
TreeNode25.Text = "节点1"
TreeNode26.Name = "节点0"
TreeNode26.Text = "酒店-房型"
Me.tv_ResourceTree.Nodes.AddRange(New System.Windows.Forms.TreeNode() {TreeNode26})
TreeNode1.Name = "节点2"
TreeNode1.Text = "节点2"
TreeNode2.Name = "节点3"
TreeNode2.Text = "节点3"
TreeNode3.Name = "节点4"
TreeNode3.Text = "节点4"
TreeNode4.Name = "动作"
TreeNode4.Text = "节点1"
TreeNode5.Name = "节点5"
TreeNode5.Text = "节点5"
TreeNode6.Name = "节点6"
TreeNode6.Text = "节点6"
TreeNode7.Name = "节点7"
TreeNode7.Text = "节点7"
TreeNode8.Name = "节点0"
TreeNode8.Text = "节点0"
TreeNode9.Name = "节点8"
TreeNode9.Text = "节点8"
TreeNode10.Name = "节点9"
TreeNode10.Text = "节点9"
TreeNode11.Name = "节点10"
TreeNode11.Text = "节点10"
TreeNode12.Name = "节点1"
TreeNode12.Text = "节点1"
TreeNode13.Name = "节点0"
TreeNode13.Text = "酒店-房型"
Me.tv_ResourceTree.Nodes.AddRange(New System.Windows.Forms.TreeNode() {TreeNode13})
Me.tv_ResourceTree.SelectedImageIndex = 42
Me.tv_ResourceTree.Size = New System.Drawing.Size(231, 616)
Me.tv_ResourceTree.TabIndex = 1

View File

@@ -179,7 +179,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABS
PgAAAk1TRnQBSQFMAgEBQgEAAVgBIwFYASMBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
PgAAAk1TRnQBSQFMAgEBQgEAAWABIwFgASMBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARABAQIAAQEBAAEIBgABRBgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHc
AcABAAHwAcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEA
AzkBAAGAAXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEz
@@ -966,193 +966,6 @@
<metadata name="ToolStrip4.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>512, 55</value>
</metadata>
<metadata name="ToolStrip3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>685, 17</value>
</metadata>
<metadata name="ToolStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>360, 17</value>
</metadata>
<metadata name="ToolStrip5.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>624, 55</value>
</metadata>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>973, 55</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAACQAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAgpcAAIWaAByFmgBchZoAkYWaAL2FmgDbhZoA8YWaAPuFmgD7hZoA8YWaANuFmgC9hZoAk4Wa
AFyFmgAcgZcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIWZABSFmgBwhZoAy4WaAP2FmgD/hpoA/4aaAP+FmgD/hpoA/4WaAP2FmgDZhZoAp4Wa
AIGFmgBuhZoAaIWaAHCFmgCDhZoAeoWaAFSFmgAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACFmgAahZoAk4WaAPOGmwD/hpsA/4abAP+GmwD/hpsA/4abAP+FmgDXhZoAcoWa
ACCEmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIOZAAKFmQAghJkAFn2SAAIAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAhJkABoWaAHqFmgDzhpsA/4WbAP+GmwD/hpsA/4abAP+GmwD/hZoA24Wa
AFaDmQACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgAqhZoAz4WaAP+FmgD/hZoA/4WaAP+FmgD/hpoA/4Wa
AP2FmgCPhZkACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFKFmgDzhZsA/4abAP+GmwD/hZsA/4ab
AP+GmwD/hZoA94WaAFZtkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgAAhZoAaoWaAP2FmgD/hpsA/4Wb
AP+FmgD/hpsA/4WbAP+FmgD3hZoARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgBqhZoA/YWa
AP+FmgD/hZoA/4WaAP+FmgD/hZoA/4WaAP+FmgBYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISW
AACFmgAuhZoAeoWaALGFmgDPhZoA2YWaAMuFmgCrhZoAcIWaACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFKFmgD9hpsA/4abAP+GmwD/hZsA/4abAP+GmwD/hZsA/4WaAJcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAhZoAOoWaAMGFmgD9hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4WbAPuFmgCthZoAKAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAhZoAKoWaAPGFmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+FmgD/hZoA44WaAA4AAAAAAAAAAAAA
AAAAAAAAAAAAAIOZAASFmgCLhZoA/YabAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4aa
AP+GmwD/hZoA94WaAGyDmQAAAAAAAAAAAAAAAAAAAAAAAAAAAACAlgACg5gADgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACEmgAGhZoAzYaaAP+GmgD/hZoA/4WaAP+FmgD/hZoA/4WaAP+FmgD/hZoAZgAA
AAAAAAAAAAAAAAAAAAAAAAAAhJkABoWaAK+FmgD/hpoA/4aaAP+FmgD/hpoA/4aaAP+FmgD/hpoA/4aa
AP+FmgD/hpsA/4WaAP+FmgD/hpsA/4aaAP+FmgCLg5kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhZoALoWZ
AAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgB6hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hZsA/4ab
AP+FmgDnhJoACAAAAAAAAAAAAAAAAAAAAAAAAAAAhZoAi4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+FmgD/hZoAcAAAAAAAAAAAAAAAAAAA
AAAAAAAAg5gABIWaAFYAAAAAAAAAAAAAAAAAAAAAAAAAAIWaABqFmgDzhpsA/4abAP+FmgD/hpsA/4Wb
AP+FmgD/hpsA/4WbAP+FmgCPAAAAAAAAAAAAAAAAAAAAAAAAAACFmgAmhZoA+4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4aaAP+GmwD/hpsA/4aaAP+GmwD/hZoA+YWa
AC4AAAAAAAAAAAAAAAAAAAAAAAAAAIWaAGiFmgAaAAAAAAAAAAAAAAAAAAAAAIWaAJOGmgD/hpoA/4aa
AP+GmgD/hZoA/4WaAP+FmgD/hZoA/4WaAP+FmgBAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgCNhpoA/4aa
AP+FmgD/hpoA/4aaAP+FmgD/hpoA/4aaAP+FmgD/hpoA/4aaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4Wa
AP+FmgD/hpsA/4WaALmOjgAAAAAAAAAAAAAAAAAAAAAAAIWaAByFmgCTAAAAAAAAAAAAAAAAhJoAFIWa
APOGmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hZsA/4WaAPeDmQAGAAAAAAAAAAAAAAAAAAAAAAAA
AACFmgDZhpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4WaAP+FmgAsAAAAAAAAAAAAAAAAAAAAAAAAAACFmgDFhZoAFAAA
AAAAAAAAhZoAcIWaAP+FmgD/hpsA/4abAP+FmgD/hpsA/4WbAP+FmgD/hpsA/4WaAM0AAAAAAAAAAAAA
AAAAAAAAAAAAAIWaABKGmgD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4aaAP+GmwD/hpsA/4aaAP+GmwD/hpsA/4aaAP+FmgCBAAAAAAAAAAAAAAAAAAAAAAAA
AACFmgCdhZoAcAAAAACDlQAAhZoAy4aaAP+GmgD/hpoA/4aaAP+GmgD/hZoA/4WaAP+FmgD/hZoA/4Wa
AKkAAAAAAAAAAAAAAAAAAAAAAAAAAIWaADiFmgD/hpoA/4aaAP+FmgD/hpoA/4aaAP+FmgD/hpoA/4aa
AP+FmgD/hpoA/4aaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgC/AAAAAAAA
AAAAAAAAAAAAAAAAAACFmgBwhZoAy4GaAACFmgAahZoA/YabAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hZsA/4WaAJcAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAEyGmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+FmgDjgJMAAAAAAAAAAAAAAAAAAAAAAACFmgBYhZoA/YWaAByFmgBahpoA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4WaAI0AAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFiFmgD/hpsA/4Wa
AP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+GmwD/hZsA/4abAP+GmwD/hZsA/4ab
AP+GmwD/hZsA/4abAP+FmgDvg5UAAgAAAAAAAAAAAAAAAAAAAACFmgBQhZsA/4WaAFyFmgCRhpoA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4WaAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFyFmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+GmgD/hpsA/4ab
AP+GmgD/hpsA/4abAP+GmgD/hpsA/4abAP+FmgDpgZEAAAAAAAAAAAAAAAAAAAAAAACFmgBUhpsA/4Wa
AJOFmgC9hpoA/4abAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4abAIsAAAAAAAAAAAAA
AAAAAAAAAAAAAIWaAFyGmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aa
AP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+FmgDPAAAAAAAAAAAAAAAAAAAAAAAA
AACFmgBmhZsA/4WaAL2FmgDZhpoA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4Wa
AP+FmgD/hpsA/4WaAP+GmwD/hZsA/4abAP+GmwD/hZsA/4abAP+GmwD/hZsA/4abAP+FmgCXAAAAAAAA
AAAAAAAAAAAAAAAAAACFmgCNhZsA/4WaANuFmgDvhpoA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4WbAP+FmgD/hpsA/4Wb
AP+FmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+GmgD/hpsA/4abAP+GmgD/hpsA/4abAP+GmgD/hpsA/4ab
AP+FmgBMAAAAAAAAAAAAAAAAAAAAAAAAAACFmgC9hpsA/4WaAPGFmgD7hpoA/4abAP+GmgD/hpsA/4aa
AP+GmgD/hpsA/4aaAP+GmgD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyGmgD/hZsA/4aa
AP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aa
AP+GmgD/hZsA/4WaAN+EmQAEAAAAAAAAAAAAAAAAAAAAAIWbAAqFmgD1hZsA/4WaAPuFmgD7hpoA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFyFmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+GmwD/hZsA/4ab
AP+GmwD/hZsA/4abAP+GmwD/hpsA/4WaAF4AAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFKGmwD/hZsA/4Wa
APuFmgDvhpoA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAA
AAAAAAAAAAAAAIWaAFyFmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+FmgD/hpsA/4Wb
AP+GmgD/hpsA/4abAP+GmgD/hpsA/4abAP+GmgD/hZoAs4OZAAIAAAAAAAAAAAAAAAAAAAAAgJ8AAIWa
ALeGmgD/hpsA/4WaAPGFmgDZhpoA/4abAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4ab
AIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyGmgD/hZsA/4WaAPWGmgD/hZsA/4aaAP+GmgD/hZsA/4aa
AP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+FmgDPhZoAEAAAAAAAAAAAAAAAAAAA
AAAAAAAAhZoAMoWaAP2GmgD/hZsA/4WaANuFmgC9hpoA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4WaAEyFmgDXhpsA/4Wa
AP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+GmwD/hZsA/4abAP+GmwD/hpoA/4WaAL+FmgASAAAAAAAA
AAAAAAAAAAAAAAAAAACDmgAChZoAu4abAP+GmwD/hZsA/4WaAL2FmgCRhpoA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4Sa
ACiFmQAMhZoAkYWaAPmFmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+GmgD/hpsA/4abAP+FmgDxhZoAdoWa
AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgBihZsA/4abAP+GmgD/hpsA/4WaAJGFmgBahpoA/4ab
AP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFyGmgD/hZsA/4SaACgAAAAAAAAAAIWaACCFmgCFhZoA04WaAP2GmgD/hZsA/4aaAP+FmgD5hZoAyYWa
AHSFmgAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWaACyFmgDzhZsA/4aaAP+GmgD/hZsA/4Wa
AFyFmQAahZoA/YabAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAA
AAAAAAAAAAAAAIWaAFyFmgD/hpsA/4SaACgAAAAAAAAAAAAAAAAAAAAAAAAAAISZAAyFmgAshZoANIWa
ACiEmQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhZoAIIWaAOGGmwD/hZsA/4ab
AP+GmwD/hZoA/YWaAByDmQAAhZoAyYabAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4SaACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgAohZoA3Yab
AP+GmgD/hpsA/4abAP+GmgD/hZoAy4KZAAAAAAAAhZoAcIabAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aa
AP+GmgD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyGmgD/hZsA/4SaACgAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AE6FmgDthZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZoAcAAAAAAAAAAAhJoAFIWaAPOFmgD/hpsA/4Wa
AP+FmgD/hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4Wa
AC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACFmgAchZoAo4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmwDzhZoAFAAAAAAAAAAAAAAAAIWa
AJGFmgD/hZsA/4WbAP+FmgD/hpsA/4abAP+FmgD/hpoA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFyGmgD/hpsA/4WaAOuFmgCBhZoAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAB8mAAAhZoAKoWaAJOFmgD1hZsA/4aaAP+FmgD/hZsA/4aaAP+FmgD/hZsA/4aaAP+FmgCTAAAAAAAA
AAAAAAAAAAAAAIWaABqFmgDzhpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAA
AAAAAAAAAAAAAIWaAFyGmgD/hpsA/4aaAP+GmgD/hZoA+4WaAMWFmgCBhZoAToWaACyEmgAUhJkADoWa
ABiFmgAwhZoAVIWaAIuFmgDRhZoA/YabAP+GmwD/hZsA/4abAP+GmwD/hZsA/4abAP+GmwD/hZsA/4Wa
APOFmgAaAAAAAAAAAAAAAAAAAAAAAAAAAACFmgB4hpsA/4WaAP+FmgD/hpsA/4abAP+GmwD/hpsA/4ab
AIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+FmgD/hpsA/4aa
AP+FmgD/hpsA/4aaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4Wa
AP+FmgD/hpsA/4WaAHoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmQAGhZoAzYWbAP+FmgD/hpsA/4ab
AP+FmgD/hpoA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyGmgD/hpsA/4WaAP+GmgD/hpsA/4Wa
AP+GmgD/hpsA/4WaAP+GmgD/hpsA/4WaAP+FmgD/hZsA/4aaAP+FmgD/hZsA/4aaAP+FmgD/hZsA/4aa
AP+FmgD/hZsA/4aaAP+FmgD/hZoAzYSZAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhZoAKIWa
APGGmwD/hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyGmgD/hpsA/4aa
AP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmwD/hZsA/4abAP+GmwD/hZsA/4ab
AP+GmwD/hZsA/4abAP+GmwD/hZsA/4abAP+FmgDzhZoAKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIWaAFCFmgD7hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFyFmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+FmgD/hpsA/4Wa
AP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP2FmgBSAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgBqhZoA/YaaAP+FmgD/hpoA/4abAIsAAAAAAAAAAAAA
AAAAAAAAAAAAAIWaAFyGmgD/hpsA/4WaAP+GmgD/hpsA/4WaAP+GmgD/hpsA/4WaAP+GmgD/hpsA/4Wa
AP+FmgD/hZsA/4aaAP+FmgD/hZsA/4aaAP+FmgD/hZsA/4aaAP+FmgD/hZsA/YWaAGoAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCmQAAhZoAaIWaAPuFmgD/hZsA/4ab
AIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyGmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aa
AP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+FmgD9hZoAaoOb
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFCFmgDxhpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4aaAP+FmgD/hpsA/4aa
AP+FmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+GmwD/hZsA/4abAP+GmwD/hZsA/4abAP+GmwD/hZsA/4Wa
APGFmgBSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACFmgAohZoAzYabAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyGmgD/hpsA/4Wa
AP+GmgD/hpsA/4WaAP+GmgD/hpsA/4WaAP+GmgD/hpsA/4WaAP+FmwD/hZsA/4abAP+FmwD/hZsA/4ab
AP+FmwD/hZoAzYWaACoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhZoABoWaAC4AAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFyGmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aa
AP+GmgD/hpsA/4WaAPOFmgB6hJkABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIWaAFyFmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+FmgD/hpsA/4aa
AP+GmgD/hZsA/4aaAP+FmgDzhZoAk4WaABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+FmgD/hpsA/4aa
AP+FmgD/hpsA/4aaAP+FmgD9hZoAy4WaAHCFmgAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWaABCFmgBahZoAkYWaALuFmgDZhZoA74Wa
APuFmgD7hZoA74WaANmFmgC9hZoAkYWaAFqFmgAag5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//+AH//8AAP//AB3//wAA//gD////
AAD/8A////8AAP/AH////wAA/4B/////AAD/AP////8AAP4B/8H//wAA/AH+AD//AAD4A/gAH/8AAPAH
8AAH/wAA8AfgAAf/AADgB+AAA/8AAMAPwAAB+wAAwA/AAAH7AADAD8AAAPsAAIAPwAAA/QAAgA/AAAD9
AACAD8AAAP0AAAAPwAAA/AAAAA/AAAD8AAAAD8AAAPgAAAAPwAAB+AAAAA/AAAH4AAAAD8AAA/gAAAAP
wAAD8AAAAA/AAAfwAAAAD8gAD+AAAAAPzAA/4AAAgA/PAP/BAACAD8///4EAAIAPz///AQAAwA/P//4D
AADAD8//+AMAAMAPw//gAwAA4A/AfwAHAADwD8AAAA8AAPAPwAAADwAA+A/AAAAfAAD8D8AAAD8AAP4P
wAAAfwAA/w/AAAD/AAD/j8AAAf8AAP/PwAAD/wAA///AAA//AAD//8AAH/8AAP//wAD//wAA///gB///
AAA=
</value>
</data>
<metadata name="BackgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>188, 55</value>
</metadata>
<metadata name="CustomInstaller2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>361, 55</value>
</metadata>
<metadata name="ToolStrip4.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>512, 55</value>
</metadata>
<data name="ToolStripSplitButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -1677,6 +1490,9 @@
<metadata name="ToolStrip5.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>624, 55</value>
</metadata>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>973, 55</value>
</metadata>
<data name="tsb_SetTreeViewVisableOrNot.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -1747,4 +1563,176 @@
SUVORK5CYII=
</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAACQAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAgpcAAIWaAByFmgBchZoAkYWaAL2FmgDbhZoA8YWaAPuFmgD7hZoA8YWaANuFmgC9hZoAk4Wa
AFyFmgAcgZcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIWZABSFmgBwhZoAy4WaAP2FmgD/hpoA/4aaAP+FmgD/hpoA/4WaAP2FmgDZhZoAp4Wa
AIGFmgBuhZoAaIWaAHCFmgCDhZoAeoWaAFSFmgAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACFmgAahZoAk4WaAPOGmwD/hpsA/4abAP+GmwD/hpsA/4abAP+FmgDXhZoAcoWa
ACCEmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIOZAAKFmQAghJkAFn2SAAIAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAhJkABoWaAHqFmgDzhpsA/4WbAP+GmwD/hpsA/4abAP+GmwD/hZoA24Wa
AFaDmQACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgAqhZoAz4WaAP+FmgD/hZoA/4WaAP+FmgD/hpoA/4Wa
AP2FmgCPhZkACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFKFmgDzhZsA/4abAP+GmwD/hZsA/4ab
AP+GmwD/hZoA94WaAFZtkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgAAhZoAaoWaAP2FmgD/hpsA/4Wb
AP+FmgD/hpsA/4WbAP+FmgD3hZoARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgBqhZoA/YWa
AP+FmgD/hZoA/4WaAP+FmgD/hZoA/4WaAP+FmgBYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISW
AACFmgAuhZoAeoWaALGFmgDPhZoA2YWaAMuFmgCrhZoAcIWaACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFKFmgD9hpsA/4abAP+GmwD/hZsA/4abAP+GmwD/hZsA/4WaAJcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAhZoAOoWaAMGFmgD9hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4WbAPuFmgCthZoAKAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAhZoAKoWaAPGFmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+FmgD/hZoA44WaAA4AAAAAAAAAAAAA
AAAAAAAAAAAAAIOZAASFmgCLhZoA/YabAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4aa
AP+GmwD/hZoA94WaAGyDmQAAAAAAAAAAAAAAAAAAAAAAAAAAAACAlgACg5gADgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACEmgAGhZoAzYaaAP+GmgD/hZoA/4WaAP+FmgD/hZoA/4WaAP+FmgD/hZoAZgAA
AAAAAAAAAAAAAAAAAAAAAAAAhJkABoWaAK+FmgD/hpoA/4aaAP+FmgD/hpoA/4aaAP+FmgD/hpoA/4aa
AP+FmgD/hpsA/4WaAP+FmgD/hpsA/4aaAP+FmgCLg5kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhZoALoWZ
AAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgB6hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hZsA/4ab
AP+FmgDnhJoACAAAAAAAAAAAAAAAAAAAAAAAAAAAhZoAi4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+FmgD/hZoAcAAAAAAAAAAAAAAAAAAA
AAAAAAAAg5gABIWaAFYAAAAAAAAAAAAAAAAAAAAAAAAAAIWaABqFmgDzhpsA/4abAP+FmgD/hpsA/4Wb
AP+FmgD/hpsA/4WbAP+FmgCPAAAAAAAAAAAAAAAAAAAAAAAAAACFmgAmhZoA+4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4aaAP+GmwD/hpsA/4aaAP+GmwD/hZoA+YWa
AC4AAAAAAAAAAAAAAAAAAAAAAAAAAIWaAGiFmgAaAAAAAAAAAAAAAAAAAAAAAIWaAJOGmgD/hpoA/4aa
AP+GmgD/hZoA/4WaAP+FmgD/hZoA/4WaAP+FmgBAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgCNhpoA/4aa
AP+FmgD/hpoA/4aaAP+FmgD/hpoA/4aaAP+FmgD/hpoA/4aaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4Wa
AP+FmgD/hpsA/4WaALmOjgAAAAAAAAAAAAAAAAAAAAAAAIWaAByFmgCTAAAAAAAAAAAAAAAAhJoAFIWa
APOGmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hZsA/4WaAPeDmQAGAAAAAAAAAAAAAAAAAAAAAAAA
AACFmgDZhpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4WaAP+FmgAsAAAAAAAAAAAAAAAAAAAAAAAAAACFmgDFhZoAFAAA
AAAAAAAAhZoAcIWaAP+FmgD/hpsA/4abAP+FmgD/hpsA/4WbAP+FmgD/hpsA/4WaAM0AAAAAAAAAAAAA
AAAAAAAAAAAAAIWaABKGmgD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4aaAP+GmwD/hpsA/4aaAP+GmwD/hpsA/4aaAP+FmgCBAAAAAAAAAAAAAAAAAAAAAAAA
AACFmgCdhZoAcAAAAACDlQAAhZoAy4aaAP+GmgD/hpoA/4aaAP+GmgD/hZoA/4WaAP+FmgD/hZoA/4Wa
AKkAAAAAAAAAAAAAAAAAAAAAAAAAAIWaADiFmgD/hpoA/4aaAP+FmgD/hpoA/4aaAP+FmgD/hpoA/4aa
AP+FmgD/hpoA/4aaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgC/AAAAAAAA
AAAAAAAAAAAAAAAAAACFmgBwhZoAy4GaAACFmgAahZoA/YabAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hZsA/4WaAJcAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAEyGmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+FmgDjgJMAAAAAAAAAAAAAAAAAAAAAAACFmgBYhZoA/YWaAByFmgBahpoA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4WaAI0AAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFiFmgD/hpsA/4Wa
AP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+GmwD/hZsA/4abAP+GmwD/hZsA/4ab
AP+GmwD/hZsA/4abAP+FmgDvg5UAAgAAAAAAAAAAAAAAAAAAAACFmgBQhZsA/4WaAFyFmgCRhpoA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4WaAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFyFmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+GmgD/hpsA/4ab
AP+GmgD/hpsA/4abAP+GmgD/hpsA/4abAP+FmgDpgZEAAAAAAAAAAAAAAAAAAAAAAACFmgBUhpsA/4Wa
AJOFmgC9hpoA/4abAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4abAIsAAAAAAAAAAAAA
AAAAAAAAAAAAAIWaAFyGmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aa
AP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+FmgDPAAAAAAAAAAAAAAAAAAAAAAAA
AACFmgBmhZsA/4WaAL2FmgDZhpoA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4Wa
AP+FmgD/hpsA/4WaAP+GmwD/hZsA/4abAP+GmwD/hZsA/4abAP+GmwD/hZsA/4abAP+FmgCXAAAAAAAA
AAAAAAAAAAAAAAAAAACFmgCNhZsA/4WaANuFmgDvhpoA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4WbAP+FmgD/hpsA/4Wb
AP+FmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+GmgD/hpsA/4abAP+GmgD/hpsA/4abAP+GmgD/hpsA/4ab
AP+FmgBMAAAAAAAAAAAAAAAAAAAAAAAAAACFmgC9hpsA/4WaAPGFmgD7hpoA/4abAP+GmgD/hpsA/4aa
AP+GmgD/hpsA/4aaAP+GmgD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyGmgD/hZsA/4aa
AP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aa
AP+GmgD/hZsA/4WaAN+EmQAEAAAAAAAAAAAAAAAAAAAAAIWbAAqFmgD1hZsA/4WaAPuFmgD7hpoA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFyFmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+GmwD/hZsA/4ab
AP+GmwD/hZsA/4abAP+GmwD/hpsA/4WaAF4AAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFKGmwD/hZsA/4Wa
APuFmgDvhpoA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAA
AAAAAAAAAAAAAIWaAFyFmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+FmgD/hpsA/4Wb
AP+GmgD/hpsA/4abAP+GmgD/hpsA/4abAP+GmgD/hZoAs4OZAAIAAAAAAAAAAAAAAAAAAAAAgJ8AAIWa
ALeGmgD/hpsA/4WaAPGFmgDZhpoA/4abAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4ab
AIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyGmgD/hZsA/4WaAPWGmgD/hZsA/4aaAP+GmgD/hZsA/4aa
AP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZsA/4aaAP+FmgDPhZoAEAAAAAAAAAAAAAAAAAAA
AAAAAAAAhZoAMoWaAP2GmgD/hZsA/4WaANuFmgC9hpoA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4WaAEyFmgDXhpsA/4Wa
AP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+GmwD/hZsA/4abAP+GmwD/hpoA/4WaAL+FmgASAAAAAAAA
AAAAAAAAAAAAAAAAAACDmgAChZoAu4abAP+GmwD/hZsA/4WaAL2FmgCRhpoA/4abAP+GmwD/hpsA/4ab
AP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4Sa
ACiFmQAMhZoAkYWaAPmFmgD/hpsA/4WbAP+FmgD/hpsA/4WbAP+GmgD/hpsA/4abAP+FmgDxhZoAdoWa
AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgBihZsA/4abAP+GmgD/hpsA/4WaAJGFmgBahpoA/4ab
AP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFyGmgD/hZsA/4SaACgAAAAAAAAAAIWaACCFmgCFhZoA04WaAP2GmgD/hZsA/4aaAP+FmgD5hZoAyYWa
AHSFmgAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWaACyFmgDzhZsA/4aaAP+GmgD/hZsA/4Wa
AFyFmQAahZoA/YabAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAA
AAAAAAAAAAAAAIWaAFyFmgD/hpsA/4SaACgAAAAAAAAAAAAAAAAAAAAAAAAAAISZAAyFmgAshZoANIWa
ACiEmQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhZoAIIWaAOGGmwD/hZsA/4ab
AP+GmwD/hZoA/YWaAByDmQAAhZoAyYabAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4ab
AIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4SaACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgAohZoA3Yab
AP+GmgD/hpsA/4abAP+GmgD/hZoAy4KZAAAAAAAAhZoAcIabAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aa
AP+GmgD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyGmgD/hZsA/4SaACgAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AE6FmgDthZsA/4aaAP+GmgD/hZsA/4aaAP+GmgD/hZoAcAAAAAAAAAAAhJoAFIWaAPOFmgD/hpsA/4Wa
AP+FmgD/hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4Wa
AC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACFmgAchZoAo4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmwDzhZoAFAAAAAAAAAAAAAAAAIWa
AJGFmgD/hZsA/4WbAP+FmgD/hpsA/4abAP+FmgD/hpoA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFyGmgD/hpsA/4WaAOuFmgCBhZoAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAB8mAAAhZoAKoWaAJOFmgD1hZsA/4aaAP+FmgD/hZsA/4aaAP+FmgD/hZsA/4aaAP+FmgCTAAAAAAAA
AAAAAAAAAAAAAIWaABqFmgDzhpsA/4abAP+GmwD/hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAA
AAAAAAAAAAAAAIWaAFyGmgD/hpsA/4aaAP+GmgD/hZoA+4WaAMWFmgCBhZoAToWaACyEmgAUhJkADoWa
ABiFmgAwhZoAVIWaAIuFmgDRhZoA/YabAP+GmwD/hZsA/4abAP+GmwD/hZsA/4abAP+GmwD/hZsA/4Wa
APOFmgAaAAAAAAAAAAAAAAAAAAAAAAAAAACFmgB4hpsA/4WaAP+FmgD/hpsA/4abAP+GmwD/hpsA/4ab
AIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+FmgD/hpsA/4aa
AP+FmgD/hpsA/4aaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4Wa
AP+FmgD/hpsA/4WaAHoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmQAGhZoAzYWbAP+FmgD/hpsA/4ab
AP+FmgD/hpoA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyGmgD/hpsA/4WaAP+GmgD/hpsA/4Wa
AP+GmgD/hpsA/4WaAP+GmgD/hpsA/4WaAP+FmgD/hZsA/4aaAP+FmgD/hZsA/4aaAP+FmgD/hZsA/4aa
AP+FmgD/hZsA/4aaAP+FmgD/hZoAzYSZAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhZoAKIWa
APGGmwD/hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyGmgD/hpsA/4aa
AP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmwD/hZsA/4abAP+GmwD/hZsA/4ab
AP+GmwD/hZsA/4abAP+GmwD/hZsA/4abAP+FmgDzhZoAKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIWaAFCFmgD7hpsA/4abAP+GmwD/hpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFyFmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+FmgD/hpsA/4Wa
AP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP+FmgD/hpsA/4WaAP2FmgBSAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFmgBqhZoA/YaaAP+FmgD/hpoA/4abAIsAAAAAAAAAAAAA
AAAAAAAAAAAAAIWaAFyGmgD/hpsA/4WaAP+GmgD/hpsA/4WaAP+GmgD/hpsA/4WaAP+GmgD/hpsA/4Wa
AP+FmgD/hZsA/4aaAP+FmgD/hZsA/4aaAP+FmgD/hZsA/4aaAP+FmgD/hZsA/YWaAGoAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCmQAAhZoAaIWaAPuFmgD/hZsA/4ab
AIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyGmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aa
AP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+FmgD9hZoAaoOb
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFCFmgDxhpsA/4abAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4aaAP+FmgD/hpsA/4aa
AP+FmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+GmwD/hZsA/4abAP+GmwD/hZsA/4abAP+GmwD/hZsA/4Wa
APGFmgBSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACFmgAohZoAzYabAIsAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyGmgD/hpsA/4Wa
AP+GmgD/hpsA/4WaAP+GmgD/hpsA/4WaAP+GmgD/hpsA/4WaAP+FmwD/hZsA/4abAP+FmwD/hZsA/4ab
AP+FmwD/hZoAzYWaACoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhZoABoWaAC4AAAAAAAAAAAAAAAAAAAAAAAAAAIWa
AFyGmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aaAP+GmgD/hpsA/4aa
AP+GmgD/hpsA/4WaAPOFmgB6hJkABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIWaAFyFmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+FmgD/hpsA/4aa
AP+GmgD/hZsA/4aaAP+FmgDzhZoAk4WaABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWaAFyFmgD/hpsA/4aaAP+FmgD/hpsA/4aaAP+FmgD/hpsA/4aa
AP+FmgD/hpsA/4aaAP+FmgD9hZoAy4WaAHCFmgAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWaABCFmgBahZoAkYWaALuFmgDZhZoA74Wa
APuFmgD7hZoA74WaANmFmgC9hZoAkYWaAFqFmgAag5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//+AH//8AAP//AB3//wAA//gD////
AAD/8A////8AAP/AH////wAA/4B/////AAD/AP////8AAP4B/8H//wAA/AH+AD//AAD4A/gAH/8AAPAH
8AAH/wAA8AfgAAf/AADgB+AAA/8AAMAPwAAB+wAAwA/AAAH7AADAD8AAAPsAAIAPwAAA/QAAgA/AAAD9
AACAD8AAAP0AAAAPwAAA/AAAAA/AAAD8AAAAD8AAAPgAAAAPwAAB+AAAAA/AAAH4AAAAD8AAA/gAAAAP
wAAD8AAAAA/AAAfwAAAAD8gAD+AAAAAPzAA/4AAAgA/PAP/BAACAD8///4EAAIAPz///AQAAwA/P//4D
AADAD8//+AMAAMAPw//gAwAA4A/AfwAHAADwD8AAAA8AAPAPwAAADwAA+A/AAAAfAAD8D8AAAD8AAP4P
wAAAfwAA/w/AAAD/AAD/j8AAAf8AAP/PwAAD/wAA///AAA//AAD//8AAH/8AAP//wAD//wAA///gB///
AAA=
</value>
</data>
<metadata name="BackgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>188, 55</value>
</metadata>
<metadata name="CustomInstaller2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>361, 55</value>
</metadata>
</root>

View File

@@ -1563,8 +1563,9 @@ Public Class FrmMain
'Me.Hide()
' Dic_Devicemodel.Add(model.Name, model) ' hostname = model.Name
If ReleaseControlFrom.ShowDialog() <> DialogResult.OK Then Return
_TableInteraction.TestReportingScenario(Account, _project.HotelCode, _project.RoomType(g_CurrentTreeNodeRoomTypeItemIndex).structRoomType_ID, tmpXmlName, _TableInteraction.ConfigInfo.CfgFileVersion)
_TableInteraction.TestReportingScenario(Account, _project.HotelCode, _project.RoomType(g_CurrentTreeNodeRoomTypeItemIndex).structRoomType_ID, tmpXmlName, _TableInteraction.ConfigInfo.CfgFileVersion)
_TableInteraction.UploadConfiguredDevicesList(_project.HotelCode, _project.RoomType(g_CurrentTreeNodeRoomTypeItemIndex).structRoomType_ID, DbConnString)
Dim ReleasePassword As String = ReleaseControlFrom.ReleasePassword_txt.Text
Dim ReleaseNote As String = ReleaseControlFrom.ReleaseNotes_txt.Text
Dim Firmwarefilename = ReleaseControlFrom.FromDic

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
'通过使用 "*",如下所示:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("4.4.5.21")>
<Assembly: AssemblyFileVersion("4.4.5.21")>
<Assembly: AssemblyVersion("4.4.5.29")>
<Assembly: AssemblyFileVersion("4.4.5.29")>

142
BLV_Studio/SetLoopInformation.Designer.vb generated Normal file
View File

@@ -0,0 +1,142 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class SetLoopInformation
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(SetLoopInformation))
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
Me.ToolStripButton7 = New System.Windows.Forms.ToolStripButton()
Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton()
Me.ToolStripButton5 = New System.Windows.Forms.ToolStripButton()
Me.ToolStripButton4 = New System.Windows.Forms.ToolStripButton()
Me.ToolStripButton6 = New System.Windows.Forms.ToolStripButton()
Me.ToolStripLabel1 = New System.Windows.Forms.ToolStripLabel()
Me.Grid1 = New FlexCell.Grid()
Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
Me.ToolStrip1.SuspendLayout()
Me.SuspendLayout()
'
'ToolStrip1
'
Me.ToolStrip1.AutoSize = False
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripButton7, Me.ToolStripButton1, Me.ToolStripButton5, Me.ToolStripButton4, Me.ToolStripButton6, Me.ToolStripLabel1})
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(1169, 56)
Me.ToolStrip1.TabIndex = 0
Me.ToolStrip1.Text = "ToolStrip1"
'
'ToolStripButton7
'
Me.ToolStripButton7.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
Me.ToolStripButton7.Image = CType(resources.GetObject("ToolStripButton7.Image"), System.Drawing.Image)
Me.ToolStripButton7.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton7.Name = "ToolStripButton7"
Me.ToolStripButton7.Size = New System.Drawing.Size(84, 53)
Me.ToolStripButton7.Text = "加载配置回路"
'
'ToolStripButton1
'
Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image)
Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton1.Name = "ToolStripButton1"
Me.ToolStripButton1.Size = New System.Drawing.Size(96, 53)
Me.ToolStripButton1.Text = "加载已上传回路"
'
'ToolStripButton5
'
Me.ToolStripButton5.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
Me.ToolStripButton5.Image = CType(resources.GetObject("ToolStripButton5.Image"), System.Drawing.Image)
Me.ToolStripButton5.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton5.Name = "ToolStripButton5"
Me.ToolStripButton5.Size = New System.Drawing.Size(60, 53)
Me.ToolStripButton5.Text = "删除回路"
'
'ToolStripButton4
'
Me.ToolStripButton4.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
Me.ToolStripButton4.Image = CType(resources.GetObject("ToolStripButton4.Image"), System.Drawing.Image)
Me.ToolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton4.Name = "ToolStripButton4"
Me.ToolStripButton4.Size = New System.Drawing.Size(60, 53)
Me.ToolStripButton4.Text = "添加回路"
'
'ToolStripButton6
'
Me.ToolStripButton6.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
Me.ToolStripButton6.Image = CType(resources.GetObject("ToolStripButton6.Image"), System.Drawing.Image)
Me.ToolStripButton6.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton6.Name = "ToolStripButton6"
Me.ToolStripButton6.Size = New System.Drawing.Size(60, 53)
Me.ToolStripButton6.Text = "上传回路"
'
'ToolStripLabel1
'
Me.ToolStripLabel1.ActiveLinkColor = System.Drawing.Color.Red
Me.ToolStripLabel1.Font = New System.Drawing.Font("Microsoft YaHei UI", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.ToolStripLabel1.ForeColor = System.Drawing.Color.Red
Me.ToolStripLabel1.Name = "ToolStripLabel1"
Me.ToolStripLabel1.Size = New System.Drawing.Size(759, 53)
Me.ToolStripLabel1.Text = "云端回路地址和云端回路名称仅供配置对照参考上传以本地回路地址和本地回路名称为准!"
'
'Grid1
'
Me.Grid1.BackColor2 = System.Drawing.Color.WhiteSmoke
Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
Me.Grid1.Dock = System.Windows.Forms.DockStyle.Fill
Me.Grid1.Location = New System.Drawing.Point(0, 56)
Me.Grid1.MouseWheelSpeed = CType(3, Short)
Me.Grid1.Name = "Grid1"
Me.Grid1.Size = New System.Drawing.Size(1169, 624)
Me.Grid1.TabIndex = 1
'
'Timer1
'
Me.Timer1.Interval = 1000
'
'SetLoopInformation
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(1169, 680)
Me.Controls.Add(Me.Grid1)
Me.Controls.Add(Me.ToolStrip1)
Me.Name = "SetLoopInformation"
Me.Text = "SetLoopInformation"
Me.ToolStrip1.ResumeLayout(False)
Me.ToolStrip1.PerformLayout()
Me.ResumeLayout(False)
End Sub
Friend WithEvents ToolStrip1 As ToolStrip
Friend WithEvents ToolStripButton7 As ToolStripButton
Friend WithEvents ToolStripButton6 As ToolStripButton
Friend WithEvents ToolStripButton5 As ToolStripButton
Friend WithEvents ToolStripButton4 As ToolStripButton
Friend WithEvents ToolStripButton1 As ToolStripButton
Friend WithEvents Grid1 As FlexCell.Grid
Friend WithEvents ToolStripLabel1 As ToolStripLabel
Friend WithEvents Timer1 As Timer
End Class

View File

@@ -0,0 +1,202 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="ToolStripButton7.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolStripButton5.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolStripButton4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolStripButton6.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="Timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>129, 17</value>
</metadata>
</root>

View File

@@ -0,0 +1,754 @@
Imports System.ComponentModel
Imports Newtonsoft.Json
Public Class SetLoopInformation
Public Enum DeviceType
<Description("主机继电器")>
Relay = 1
<Description("弱电输出")>
LVout = 3
<Description("服务信息")>
ServiceInfo = 4
<Description("窗帘")>
Curtain = 5
<Description("开关扩展")>
SwitchExpand = 6
<Description("空调")>
AirConditioner = 7
<Description("红外感应")>
InFrared = 8
<Description("空气质量检测")>
AirDetect = 9
<Description("插卡取电")>
CardPower = 10
<Description("地暖")>
FloorHot = 11
<Description("扩展继电器")>
Expand = 14
<Description("电视")>
TV = 15
<Description("LED调光")>
Dimmer = 16
<Description("可控硅调光")>
Traic = 17
<Description("灯带调光")>
Strip = 18
<Description("PWM调光")>
PWMDimmer = 23
<Description("PWM扩展")>
PWMExpand = 24
<Description("音乐")>
Music = 21
<Description("微信锁")>
WXLock = 20
<Description("PB LED")>
PBLED = 25
<Description("485A9IO继电器")>
A9IORelay = 28
<Description("PB20")>
PB20 = 30
<Description("PB20-LD")>
PB20_LD = 31
<Description("PB20-LS")>
PB20_LS = 32
<Description("PB20-RELAY")>
PB20_RELAY = 33
<Description("色温")>
ColorTemp = 34
<Description("碳达人")>
CarbonVIP = 54
End Enum
Public G_ReportingScenario As ReportingScenario
Public G_loopNameAddr As Dictionary(Of String, String)
Public G_roomtypeid As Integer
Public G_Hotelid As Integer
Public G_Uploaduser As String
Public IsLoadServer As Integer = 0
Public g_Oldloopinfo As String = ""
Public DbConnString As String = "Server=blv-cloud-db.mysql.rds.aliyuncs.com;Port=3307;Database=blv_rcu_db;Uid=blv_rcu;Pwd=fnadiaJDIJ7546;charset=utf8;"
Sub New(nReportingScenario As ReportingScenario, roomtypeid As Integer, hotelid As Integer, uploaduser As String)
' 此调用是设计器所必需的。
InitializeComponent()
G_roomtypeid = roomtypeid
G_Hotelid = hotelid
G_Uploaduser = uploaduser
G_loopNameAddr = New Dictionary(Of String, String)
G_ReportingScenario = nReportingScenario
Dim li As List(Of MDevNodeMessage) = nReportingScenario.getDateDisposeRuning
For Each item In li
If G_loopNameAddr.ContainsKey(item.ModalAddress) Then
Continue For
Else
G_loopNameAddr.Add(item.ModalAddress, item.Name)
End If
Next
' 在 InitializeComponent() 调用之后添加任何初始化。
End Sub
Private Sub SetLoopInformation_Load(sender As Object, e As EventArgs) Handles MyBase.Load
initTable()
End Sub
'初始化表格
Private Sub initTable()
Grid1.Cols = 21
Grid1.Rows = 1
Grid1.Column(0).Locked = True
Grid1.Cell(0 0).Text = "序号"
Grid1.Cell(0 1).Text = "启用"
Grid1.Cell(0 2).Text = "类型"
Grid1.Cell(0 3).Text = "回路地址"
Grid1.Column(3).Locked = True
Grid1.Column(4).Locked = True
Grid1.Cell(0 4).Text = "本地回路名称"
Grid1.Cell(0 5).Text = "云端回路地址"
Grid1.Cell(0 6).Text = "云端回路名称"
Grid1.Cell(0 7).Text = "英文名称"
Grid1.Cell(0 8).Text = "繁体名称"
Grid1.Cell(0 9).Text = "别名"
Grid1.Cell(0 10).Text = "功率"
Grid1.Cell(0 11).Text = "低电值"
Grid1.Cell(0 12).Text = "显示"
Grid1.Cell(0 13).Text = "离线"
Grid1.Cell(0 14).Text = "低电"
Grid1.Cell(0 15).Text = "声报"
Grid1.Cell(0 16).Text = "异常"
Grid1.Cell(0 17).Text = "排序"
Grid1.Cell(0 18).Text = "TCL设备名"
Grid1.Cell(0 19).Text = "组设备编号"
Grid1.Cell(0 20).Text = "组设备名"
Grid1.Column(1).CellType = FlexCell.CellTypeEnum.CheckBox
Grid1.Column(1).Width = 25
Grid1.Column(12).CellType = FlexCell.CellTypeEnum.CheckBox
Grid1.Column(12).Width = 45
Grid1.Column(13).CellType = FlexCell.CellTypeEnum.CheckBox
Grid1.Column(13).Width = 45
Grid1.Column(14).CellType = FlexCell.CellTypeEnum.CheckBox
Grid1.Column(14).Width = 45
Grid1.Column(15).CellType = FlexCell.CellTypeEnum.CheckBox
Grid1.Column(15).Width = 45
Grid1.Column(16).CellType = FlexCell.CellTypeEnum.CheckBox
Grid1.Column(16).Width = 45
Grid1.Column(18).CellType = FlexCell.CellTypeEnum.ComboBox
Grid1.Column(18).Width = 45
For i As Integer = 0 To 20
Grid1.Column(i).Alignment = FlexCell.AlignmentEnum.CenterCenter
Next
Grid1.SelectionMode = FlexCell.SelectionModeEnum.ByRow
'LoadTheLocalLoop(G_loopNameAddr)
End Sub
Private Sub Grid1_ComboDropDown(Sender As Object, e As FlexCell.Grid.ComboDropDownEventArgs) Handles Grid1.ComboDropDown
If e.Row > 0 Then
Grid1.ComboBox(18).Items.Clear()
Grid1.ComboBox(18).Items.Add("R-红")
Grid1.ComboBox(18).Items.Add("G-绿")
Grid1.ComboBox(18).Items.Add("B-蓝")
End If
End Sub
Private Sub AddRowGrid1(bufarry As String(), Optional istag As Boolean = False)
If bufarry.Length <> 19 Then
MsgBox("数据不完整")
Return
End If
Dim LoopType As String = bufarry(0)
If istag Then
LoopType = GetLoopType(bufarry(1))
End If
With Grid1
.AddItem("")
.Cell(.Rows - 1, 0).Text = .Rows - 1
.Cell(.Rows - 1, 2).Text = LoopType
For i As Integer = 3 To .Cols - 1
.Cell(.Rows - 1, i).Text = bufarry(i - 2)
If istag Then
.Cell(.Rows - 1, i).Tag = bufarry(i - 2)
Else
.Range(.Rows - 1, 1, .Rows - 1, .Cols - 1).ForeColor = Color.Red
End If
Next
End With
End Sub
Public Function GetLoopType1(addr As String) As String
Dim result As String
If addr.Length > 2 Then
Dim typestr As String = addr.Substring(0, 3)
Dim type As Integer = Convert.ToInt32(typestr)
' "Relay",
'"LVout",
'"ServiceInfo",
'"Curtain",
'"SwitchExpand",
'"AirConditioner",
'"InFrared",
'"AirDetect",
'"CardPower",
'"FloorHot",
'"Expand",
'"TV",
'"Dimmer",
'"Traic",
'"Strip",
'"WXLock",
'"Music",
'"PWMDimmer",
'"PWMExpand",
'"PBLED",
'"A9IORelay",
'"PB20",
'"PB20_LD",
'"PB20_LS",
'"PB20_RELAY",
'"ColorTemp",
'"CarbonVIP",
'"Curtain485"
Select Case type
Case DeviceType.Relay
result = "Relay"
Case DeviceType.LVout
result = "LVout"
Case DeviceType.ServiceInfo
result = "ServiceInfo"
Case DeviceType.Curtain
result = "Curtain"
Case DeviceType.SwitchExpand
result = "SwitchExpand"
Case DeviceType.AirConditioner
result = "AirConditioner"
Case DeviceType.InFrared
result = "InFrared"
Case DeviceType.AirDetect
result = "AirDetect"
Case DeviceType.CardPower
result = "CardPower"
Case DeviceType.FloorHot
result = "FloorHot"
Case DeviceType.Expand
result = "Expand"
Case DeviceType.TV
result = "TV"
Case DeviceType.Dimmer
result = "Dimmer"
Case DeviceType.Traic
result = "Traic"
Case DeviceType.Strip
result = "Strip"
Case DeviceType.PWMDimmer
result = "PWMDimmer"
Case DeviceType.PWMExpand
result = "PWMExpand"
Case DeviceType.Music
result = "Music"
Case DeviceType.WXLock
result = "微信锁"
Case DeviceType.PBLED
result = "PB LED"
Case DeviceType.A9IORelay
result = "485A9IO继电器"
Case DeviceType.PB20
result = "PB20"
Case DeviceType.PB20_LD
result = "PB20-LD"
Case DeviceType.PB20_LS
result = "PB20-LS"
Case DeviceType.PB20_RELAY
result = "PB20-RELAY"
Case DeviceType.ColorTemp
result = "ColorTemp"
Case DeviceType.CarbonVIP
result = "CarbonVIP"
Case Else
result = "Curtain485"
End Select
Return result
Else
Return result
End If
End Function
Public Function GetLoopType(addr As String) As String
Dim result As String
If addr.Length > 2 Then
Dim typestr As String = addr.Substring(0, 3)
Dim type As Integer = Convert.ToInt32(typestr)
Select Case type
Case DeviceType.Relay
result = "主机继电器"
Case DeviceType.LVout
result = "弱电输出"
Case DeviceType.ServiceInfo
result = "服务信息"
Case DeviceType.Curtain
result = "窗帘"
Case DeviceType.SwitchExpand
result = "开关扩展"
Case DeviceType.AirConditioner
result = "空调"
Case DeviceType.InFrared
result = "红外感应"
Case DeviceType.AirDetect
result = "空气质量检测"
Case DeviceType.CardPower
result = "插卡取电"
Case DeviceType.FloorHot
result = "地暖"
Case DeviceType.Expand
result = "扩展继电器"
Case DeviceType.TV
result = "电视"
Case DeviceType.Dimmer
result = "LED调光"
Case DeviceType.Traic
result = "可控硅调光"
Case DeviceType.Strip
result = "灯带调光"
Case DeviceType.PWMDimmer
result = "PWM调光"
Case DeviceType.PWMExpand
result = "PWM扩展"
Case DeviceType.Music
result = "音乐"
Case DeviceType.WXLock
result = "微信锁"
Case DeviceType.PBLED
result = "PB LED"
Case DeviceType.A9IORelay
result = "485A9IO继电器"
Case DeviceType.PB20
result = "PB20"
Case DeviceType.PB20_LD
result = "PB20-LD"
Case DeviceType.PB20_LS
result = "PB20-LS"
Case DeviceType.PB20_RELAY
result = "PB20-RELAY"
Case DeviceType.ColorTemp
result = "色温"
Case DeviceType.CarbonVIP
result = "碳达人"
Case Else
result = "未知设备"
End Select
Return result
Else
Return result
End If
End Function
Private Sub ToolStripButton5_Click(sender As Object, e As EventArgs) Handles ToolStripButton5.Click
Dim ew As Integer = Grid1.ActiveCell.Row
If ew > 0 Then
If MsgBox("是否删除第" & ew & "", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
Grid1.RemoveItem(ew)
End If
End If
End Sub
Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) Handles ToolStripButton4.Click
Dim Nfrom As AddLoopInfo = New AddLoopInfo()
If Nfrom.ShowDialog() = DialogResult.OK Then
AddRowGrid1(Nfrom.LoopInfodic.ToArray, True)
End If
End Sub
Private Sub ToolStripButton7_Click(sender As Object, e As EventArgs) Handles ToolStripButton7.Click
If IsNothingG_loopNameAddr OrElse G_loopNameAddr.Count = 0 Then
MsgBox("本地配置没有回路信息!")
Return
End If
Dim isaddrow As Boolean = True
Grid1.AutoRedraw = False
Dim name As String
initTable()
For Each item In G_loopNameAddr
isaddrow = True
'For i = 1 To Grid1.Rows - 1
' If item.Key.Equals(Grid1.Cell(i, 2).Text) Then
' isaddrow = False
' name = Grid1.Cell(i, 3).Text
' If item.Value.Equals(name) Then
' Else
' Console.WriteLine($"{i}——{item.Value}——{name}")
' Grid1.Cell(i, 3).Text = item.Value
' Grid1.Cell(i, 3).ForeColor = Color.Red
' End If
' Exit For
' End If
'Next
'If isaddrow Then
AddRowGrid1({"", item.Key, item.Value, "", "", "", "", "", "0", "0", "1", "0", "0", "0", "0", "1", "", "0", ""}, True)
'End If
Next
Grid1.AutoRedraw = True
Grid1.Refresh()
IsLoadServer = 1
End Sub
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
If IsLoadServer = 1 Then
g_Oldloopinfo = ""
Dim jsonString As String = HttpMothod.PostData("https://www.boonlive-rcu.com/api/LoadRoomTypeModalsWithPage", $"roomTypeID={G_roomtypeid}")
If String.IsNullOrWhiteSpace(jsonString) Then
MsgBox("获取服务器回路信息失败!")
Return
End If
Dim login As RoomDeviceResponse = JsonConvert.DeserializeObject(Of RoomDeviceResponse)(jsonString)
If login Is Nothing Then
MsgBox("获取服务器回路信息异常!")
Return
End If
g_Oldloopinfo = jsonString
If login.total > 0 Then
Dim bufarry As String()
Grid1.AutoRedraw = False
Dim isaddrow As Boolean = True
For Each row As RoomDevice In login.rows
isaddrow = True
For i = 1 To Grid1.Rows - 1
If row.ModalAddress.Equals(Grid1.Cell(i, 3).Text) Then
isaddrow = False
Name = Grid1.Cell(i, 4).Text
If row.Name.Equals(Name) Then
If row.IsUploadBaoJing Then
Grid1.Cell(i, 1).Text = 1
Else
Grid1.Cell(i, 1).Text = 0
End If
Grid1.Cell(i, 5).Text = row.ModalAddress
Grid1.Cell(i, 6).Text = row.Name
Grid1.Cell(i, 6).ForeColor = Color.Black
Grid1.Cell(i, 4).ForeColor = Color.Black
Grid1.Cell(i, 7).Text = row.EnglishName
Grid1.Cell(i, 8).Text = row.TWName
Grid1.Cell(i, 9).Text = row.AliasName
Grid1.Cell(i, 10).Text = row.Power
Grid1.Cell(i, 11).Text = row.LowPower
Grid1.Cell(i, 12).Text = row.ActiveIndicator
Grid1.Cell(i, 13).Text = row.OfflineDisplay
Grid1.Cell(i, 14).Text = row.LowPowerDisplay
Grid1.Cell(i, 15).Text = row.Beep
Grid1.Cell(i, 16).Text = row.Abnormal
Grid1.Cell(i, 17).Text = row.Sort
Grid1.Cell(i, 18).Text = row.TCLDeviceName
Grid1.Cell(i, 19).Text = row.MultipleGroupID
Grid1.Cell(i, 20).Text = row.MultipleTCLName
Else
Console.WriteLine($"{i}——{row.Name}——{Name}")
Grid1.Cell(i, 5).Text = row.ModalAddress
Grid1.Cell(i, 6).Text = row.Name
Grid1.Cell(i, 7).ForeColor = Color.Red
Grid1.Cell(i, 3).ForeColor = Color.Red
End If
Exit For
End If
Next
If isaddrow Then
Dim LoopType = GetLoopType(row.ModalAddress)
bufarry = {LoopType, "", "", row.ModalAddress, row.Name, row.EnglishName, row.TWName, row.AliasName, row.Power, row.LowPower, row.ActiveIndicator, row.OfflineDisplay, row.LowPowerDisplay, row.Beep, row.Abnormal, row.Sort, row.TCLDeviceName, row.MultipleGroupID, row.MultipleTCLName}
AddRowGrid1(bufarry)
End If
Next
Grid1.AutoRedraw = True
Grid1.Refresh()
IsLoadServer = 2
Else
MsgBox("获取服务器回路信息为空!")
Return
End If
ElseIf IsLoadServer = 2 Then
MsgBox("已加载服务器回路信息,请勿重复加载!")
Else
MsgBox("请先加载本地回路信息!")
End If
End Sub
Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs)
End Sub
Private Sub Grid1_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles Grid1.CellChange
If e.Row = 0 OrElse e.Col = 0 Then Return
If String.IsNullOrEmpty(Grid1.Cell(e.Row, e.Col).Tag) Then
Return
Else
If Grid1.Cell(e.Row, e.Col).Tag.Equals(Grid1.Cell(e.Row, e.Col).Text) Then
Grid1.Cell(e.Row, e.Col).ForeColor = Color.Black
Else
Grid1.Cell(e.Row, e.Col).ForeColor = Color.Red
End If
End If
End Sub
Private Sub ToolStripButton6_Click(sender As Object, e As EventArgs) Handles ToolStripButton6.Click
If IsLoadServer = 2 Then
'判断当前时间是否超过9月15号超过则禁止保存并弹窗 提示
'Dim now As DateTime = DateTime.Now
'If now.Month = 9 AndAlso now.Day >= 15 Then
' MsgBox("本功能为测试功能,当前已禁用!")
' Return
'End If
If MsgBox("保存本地回路信息将覆盖云端回路信息,这将导致云端回路信息永久丢失,请确定是否要保存修改?", MsgBoxStyle.YesNo, "提示") = MsgBoxResult.Yes Then
Dim strInputMsg As String = InputBox("请输入回路发布密码", "密码确认")
If strInputMsg <> "Cc2022OK" Then Return
ToolStripButton6.Enabled = False
Dim mSaveRoomTypeModal As SaveRoomTypeModal
Dim mSaveRoomTypeModalList As New List(Of SaveRoomTypeModal)
For i = 1 To Grid1.Rows - 1
If String.IsNullOrEmpty(Grid1.Cell(i, 3).Text) Then Continue For
mSaveRoomTypeModal = New SaveRoomTypeModal
mSaveRoomTypeModal.id = 0
mSaveRoomTypeModal.roomTypeID = G_roomtypeid
mSaveRoomTypeModal.modalAddress = Grid1.Cell(i, 3).Text
mSaveRoomTypeModal.name = Grid1.Cell(i, 4).Text
mSaveRoomTypeModal.englishName = Grid1.Cell(i, 7).Text
mSaveRoomTypeModal.twName = Grid1.Cell(i, 8).Text
mSaveRoomTypeModal.aliasName = Grid1.Cell(i, 9).Text
mSaveRoomTypeModal.power = CInt(Grid1.Cell(i, 10).Text)
mSaveRoomTypeModal.LowPower = CInt(Grid1.Cell(i, 11).Text)
mSaveRoomTypeModal.ActiveIndicator = CBool(Grid1.Cell(i, 12).Text)
mSaveRoomTypeModal.OfflineDisplay = CBool(Grid1.Cell(i, 13).Text)
mSaveRoomTypeModal.LowPowerDisplay = CBool(Grid1.Cell(i, 14).Text)
mSaveRoomTypeModal.Beep = CBool(Grid1.Cell(i, 15).Text)
mSaveRoomTypeModal.Abnormal = CBool(Grid1.Cell(i, 16).Text)
mSaveRoomTypeModal.sort = CInt(Grid1.Cell(i, 17).Text)
mSaveRoomTypeModal.TCLDeviceName = Grid1.Cell(i, 18).Text
mSaveRoomTypeModal.MultipleGroupID = CInt(Grid1.Cell(i, 19).Text)
mSaveRoomTypeModal.MultipleTCLName = Grid1.Cell(i, 20).Text
Dim str As String = Grid1.Cell(i, 1).Text
Console.WriteLine(str)
If str.Equals("True") OrElse str.Equals("1") Then
mSaveRoomTypeModal.IsUploadBaoJing = True
Else
mSaveRoomTypeModal.IsUploadBaoJing = False
End If
mSaveRoomTypeModal.outlet = ""
mSaveRoomTypeModal.type = GetLoopType1(mSaveRoomTypeModal.modalAddress)
mSaveRoomTypeModal.color = ""
mSaveRoomTypeModalList.Add(mSaveRoomTypeModal)
Next
Dim Data As String = JsonConvert.SerializeObject(mSaveRoomTypeModalList)
Dim url As String = "http://www.boonlive-rcu.com:7000/api/BaoYi/SaveRoomTypeModal"
Dim jsonString As String = HttpMothod.PostData2(url, Data)
If String.IsNullOrWhiteSpace(jsonString) OrElse jsonString.ToUpper.Contains("False".ToUpper) Then
MsgBox("保存失败!")
Else
UploadOLdloopLog(G_Hotelid, G_roomtypeid, 0, g_Oldloopinfo, G_Uploaduser)
MsgBox("保存成功!")
End If
Updatatime = Now
Timer1.Start()
'Return True
Else
MsgBox("保存失败!")
End If
Else
MsgBox("请先加载服务器回路信息!")
End If
End Sub
'上传回路日志
Public Function UploadOLdloopLog(HotelID As String, RoomTypeID As String, ConfigVersion As String, Note As String, UploadUser As String) As Boolean
Dim result As Boolean = False
Dim dbstr As String = $"INSERT INTO `blv_rcu_db`.`tbl_loopupdata_log`
(`HotelID`
,`RoomTypeID`
,`ConfigVersion`
,`UploadUser`)
VALUES
('{HotelID}'
,'{RoomTypeID}'
,'{ConfigVersion}'
,'{UploadUser}')"
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
db.Open()
Try
db.ExecuteDataTable(dbstr)
Catch ex As Exception
db.Close()
result = False
End Try
db.Close()
' Return True
End Using
result = True
Return result
End Function
Public Updatatime As DateTime
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If Now - Updatatime < TimeSpan.FromSeconds(60) Then
ToolStripButton6.Text = $"上传回路{60 - (Now - Updatatime).Seconds}"
ToolStripButton6.Enabled = False
Else
ToolStripButton6.Text = "上传回路"
ToolStripButton6.Enabled = True
Timer1.Stop()
End If
End Sub
Private Sub SetLoopInformation_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
Timer1.Stop()
End Sub
End Class
Public Class RoomDevice
Public Property ID As Integer
Public Property RoomTypeID As Integer
Public Property ModalAddress As String
Public Property Outlet As String
Public Property Name As String
Public Property EnglishName As String
Public Property TWName As String
Public Property AliasName As String
Public Property Power As Integer
Public Property LowPower As Integer
Public Property [Default] As Boolean
Public Property Type As Integer
Public Property TypeName As String
Public Property Sort As Integer
Public Property ActiveIndicator As Boolean
Public Property OfflineDisplay As Boolean
Public Property LowPowerDisplay As Boolean
Public Property Beep As Boolean
Public Property Abnormal As Boolean
Public Property Color As String
Public Property TCLDeviceName As String
Public Property MultipleTCLName As String
Public Property MultipleGroupID As Integer
Public Property IsUploadBaoJing As Boolean
End Class
Public Class RoomDeviceResponse
Public Property total As Integer
Public Property rows As List(Of RoomDevice)
End Class
Public Class SaveRoomTypeModal
'id 更新的时候, 传入ID号 。如果是新增id 写成0
'roomTypeID 房型编号
'modalAddress 设备地址
'outlet 输出口
'name 名字
'englishName 英文名字
'power 功率 单位瓦 数字Int
'twName 繁体名
'aliasName 别名
'type 类型 举例Reply 是主机继电器 。类型数据 从接口4 来获取。
'sort 排序
'color 显示的时候的颜色值 RGB值#FFFFFF
'WXActiveIndicator 微信启用
'ActiveIndicator 启用
'LowPower 低电值判断值 数字
'OfflineDisplay 离线保存显示 bool值
'LowPowerDisplay 是否低电保存显示 bool值
'Beep 是否声音报警 bool值
'Abnormal 是否异常判断 bool值
'MultipleGroupID TCL设备组ID Int 数字
'MultipleTCLName TCL设备组名字
'TCLDeviceName TCL设备组具体名字 22
Public Property id As Integer
Public Property roomTypeID As Integer
Public Property modalAddress As String
Public Property outlet As String
Public Property name As String
Public Property englishName As String
Public Property power As Integer
Public Property twName As String
Public Property aliasName As String
Public Property type As String
Public Property sort As Integer
Public Property color As String
Public Property WXActiveIndicator As Boolean
Public Property ActiveIndicator As Boolean
Public Property LowPower As Integer
Public Property OfflineDisplay As Boolean
Public Property LowPowerDisplay As Boolean
Public Property Beep As Boolean
Public Property Abnormal As Boolean
Public Property MultipleGroupID As Integer
Public Property MultipleTCLName As String
Public Property TCLDeviceName As String
Public Property IsUploadBaoJing As Boolean
End Class

View File

@@ -3181,9 +3181,12 @@ Public Class AddPeripherals
End Sub
Private Sub AddPeripherals_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
If Me.DialogResult = System.Windows.Forms.DialogResult.OK Then
Else
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End If
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub

View File

@@ -516,6 +516,8 @@ Public Class DrSeverGrid
End If
Case "BLEMUSIC", "HOPO_Curtain", "Scene_Restore"
result = cellstr
Case "LOCK"
result = cellstr
Case "MUSIC", "Dev_VirtualGlobalSet"
result = cellstr
'Case

View File

@@ -108,9 +108,10 @@ Public Class ExecutionCondition
Else
ComboBox2.Items.AddRange({"KEY"})
End If
Case "RKEY"
ComboBox2.Items.Add("RKEY")
Case "LOCK"
ComboBox2.Items.Add("LOCK")
Case "Virtual_Card"
ComboBox2.Items.Add("Virtual_Card")
Case "SLIDER"

View File

@@ -347,7 +347,7 @@ Public Class TableInteraction
Dim buf() As String = cbuf(cbuf.Length - 1).Split("*")
Dim result As String = String.Empty
Select Case nodename
Case "RKEY"
Case "RKEY","lock"
result = cellstr
Case "CLED_FRESHAIR"
result = cellstr
@@ -820,8 +820,8 @@ Public Class TableInteraction
g_DO = ModuleFre
ElseIf ModuleFre.Name.Equals("MUSIC") AndAlso ModuleFre.PROTOCOL_VER.Equals("1") Then
g_MUSIC = ModuleFre
ElseIf ModuleFre.Name.Equals("Lock") Then
g_Lock = ModuleFre
'ElseIf ModuleFre.Name.Equals("Lock") Then
' g_Lock = ModuleFre
ElseIf ModuleFre.Name.Equals("485MUSIC") Then
g_485MUSIC = ModuleFre
ElseIf ModuleFre.Name.Equals("RS485_Curtain") Then
@@ -1164,6 +1164,7 @@ Public Class TableInteraction
ElseIf ModuleFre.Nodes(i).DefaultClass.Equals("RKEY") Then
gTableRowTag.Set_G_Attributes(ModuleFre.Nodes(i).DefaultClass, BasicClasses)
SceneAttri = "4,12,1152921504606847008"
Else
gTableRowTag.Set_G_Attributes(ModuleFre.Nodes(i).DefaultClass, BasicClasses)
SceneAttri = "1,1,1152921504606846976"
@@ -1852,6 +1853,7 @@ Public Class TableInteraction
g_devname.devname.ToUpper.Equals("Scene_Restore".ToUpper) OrElse
g_devname.devname.ToUpper.Equals("Dev_VirtualGlobalSet".ToUpper) OrElse
g_devname.devname.ToUpper.Equals("HOPO_Curtain".ToUpper) OrElse
g_devname.devname.ToUpper.Equals("lock".ToUpper) OrElse
g_devname.devname.ToUpper.Equals("MUSIC".ToUpper) Then
If ActionParameter.CheckDataIsOk(g_devname.devname.ToUpper, highpric, BasicClasses) Then
_grd.Cell(e.Row, e.Col).BackColor = Color.White
@@ -2056,7 +2058,7 @@ Public Class TableInteraction
Dim typeInten() As String = {"RELAY", "RS485_Curtain".ToUpper, "LIGHT", "CURTAIN", "DRY_CURTAIN" "DIMMING" "TEMP", "DO",
"INFRARED_FORWARD", "CLED_FRESHAIR", "CLEDFLOORHEAT", "485FreshAir".ToUpper, "485FloorHeat".ToUpper, "PB_LINE_CONTROL",
"PB_LED_DEVICE", "PB_STRIP_DEVICE", "PB_RELAY_DEVICE", "DRY_NoCard".ToUpper, "Dev_ColorTemp".ToUpper "RKEY".ToUpper,"Dev_Energy_Monitor".ToUpper,
"BLEMUSIC".ToUpper, "Carbon_Device".ToUpper "HOPO_Curtain".ToUpper, "Scene_Restore".ToUpper,"Dev_VirtualGlobalSet".ToUpper}
"BLEMUSIC".ToUpper, "Carbon_Device".ToUpper "HOPO_Curtain".ToUpper, "Scene_Restore".ToUpper,"Dev_VirtualGlobalSet".ToUpper,"LOCK".ToUpper}
For Each index In typeInten
Dim li As New List(Of String
@@ -2087,7 +2089,7 @@ Public Class TableInteraction
End Select
If li.Count > 0 OrElse index.Equals("DRY_NoCard".ToUpper) OrElse index.Equals("HOPO_Curtain".ToUpper) OrElse index.Equals("Dev_ColorTemp".ToUpper) OrElse
index.Equals("Carbon_Device".ToUpper) OrElse index.Equals("RKEY".ToUpper) OrElse index.Equals("BLEMUSIC".ToUpper) OrElse index.Equals("Scene_Restore".ToUpper)OrElse
index.Equals("Dev_VirtualGlobalSet".ToUpper) OrElse index.Equals("Dev_Energy_Monitor".ToUpper) Then
index.Equals("Dev_VirtualGlobalSet".ToUpper) OrElse index.Equals("Dev_Energy_Monitor".ToUpper)OrElse index.Equals("LOCK".ToUpper) Then
li.Add("高级")
End If
dic.Add(index, li)
@@ -3267,6 +3269,9 @@ Public Class TableInteraction
Dim aliasbuf(31) As Byte
'场景编号
Dim sceneIndex As UShort = CUShort(rowtag.G_DicRow.Item(TableColNumber.SceneID))
If sceneIndex = 23 Then
Console.WriteLine($"FillDeviceObject 2597 ")
End If
Dim sceneNum() As Byte = BitConverter.GetBytes(sceneIndex)
'30位保留字段
Dim keepBuf(31) As Byte
@@ -5514,7 +5519,7 @@ Public Class TableInteraction
If (parstr.Count - 3) > 0 Then result(1) = parstr(3)
li.Add(result)
End If
Case "RELAY", "PB_RELAY_DEVICE"
Case "RELAY", "PB_RELAY_DEVICE","LOCK"
If parstr.Length = 1 Then
parCasre = parstr(0) '快速设置
Select Case parCasre
@@ -6791,7 +6796,7 @@ Public Class TableInteraction
buf = {3, 2, 2, 0}
Case "SLIDER"
buf = {2, 2, 2, 0}
Case "CARD","BLV_CARD" 250904 CZH 增加 BLV_CARD
Case "CARD","BLV_CARD","LOCK" 250904 CZH 增加 BLV_CARD
buf = {0, 1, 0, 0}
Case "Virtual_Card"
buf = {2, 0, 0, 0}
@@ -7212,7 +7217,161 @@ ON DUPLICATE KEY UPDATE {updatastr};"
Return result
End Function
Public Sub UploadConfiguredDevicesList(HotelID As String, RoomTypeID As String,DbConnString As String)
'删除配置表
Dim sql As String = $"DELETE FROM tbl_configured_devlist WHERE HotelID = '{HotelID}' AND RoomTypeID = '{RoomTypeID}'"
Add_room_type_circuit_powers(DbConnString,sql)
'遍历设备列表
Dim dev As DeviceModel
Dim typeindex As Integer = 0
'获取酒店id和房型id
Dim g_devname As CtabRange
Dim dic As Dictionary(Of string, string) = New Dictionary(Of string, string)
Dim insert As String = ""
Dim devAddr As String = ""
Dim Server() As String
Dim devdatetype As Integer
Dim devname As String()
For i=0 To Dic_Devicemodel.Count-1
dev = Dic_Devicemodel.Values(i)
If dev.Desc.DevInterface.Equals("VirtualObject") Then Continue For
If i=0 Then
typeindex=0
g_devname = GetCoLDevNametabRange(dev.Name, TableRowNumber.Max,TableColNumber.DeviceName)
For gr As Integer = g_devname.fr To g_devname.lr
If _grd.Cell(gr,TableColNumber.KeyName).Text.Contains("红外") OrElse _grd.Cell(gr,TableColNumber.KeyName).Text.Contains("雷达")OrElse _grd.Cell(gr,TableColNumber.KeyName).Text.Contains("门磁") Then
Server= _grd.Cell(gr,TableColNumber.ServerAttribute).Text.Trim.Split(",")
If IsNothing(Server) OrElse Server.Count=0 OrElse string.IsNullOrEmpty(Server(0)) Then Continue For
devAddr =$"00400000{Server(0).ToString.Trim}"
insert= INSERTtbl_configured_devlist(HotelID,RoomTypeID,_grd.Cell(gr,TableColNumber.KeyName).Text,devAddr)
If dic.ContainsKey(devAddr) Then
Else
dic.Add(devAddr,insert)
End If
Elseif _grd.Cell(gr,TableColNumber.KeyName).Text.Contains("插卡")
Server= _grd.Cell(gr,TableColNumber.ServerAttribute).Text.Trim.Split(",")
If IsNothing(Server) OrElse Server.Count=0 OrElse string.IsNullOrEmpty(Server(0)) Then Continue For
devAddr =$"004000001"
insert= INSERTtbl_configured_devlist(HotelID,RoomTypeID,_grd.Cell(gr,TableColNumber.KeyName).Text,devAddr)
If dic.ContainsKey(devAddr) Then
Else
dic.Add(devAddr,insert)
End If
End If
Next
Else
'取dev.Desc.Name 按照如下格式截取出设备地址
' 485(轮询)1
'设备地址:9
'A9恒压调光_(RS485_轮询
Dim str As String = dev.Desc.Name
Dim strbuf() As String = str.Split(vbLf)
If strbuf.Count > 1 Then
Dim strbuf1() As String = strbuf(1).Trim.Split(":")
If strbuf1.Count > 1 Then
typeindex = cint (strbuf1(1).Trim)
End If
End If
End If
'遍历设备节点
For Each node In dev.Nodes
'判断节点类型DEV_TYPE_DATA是否为空
If string.IsNullOrEmpty(node.DEV_TYPE_DATA) Then
Continue For
Else
'将node.DEV_TYPE_DATA 转int
devdatetype = cint(node.DEV_TYPE_DATA)
devAddr= devdatetype.ToString().PadLeft(3, "0"c)
devAddr=devAddr & typeindex.ToString().PadLeft(3, "0"c)
devAddr=devAddr &"001"
If i=0 Then
insert= INSERTtbl_configured_devlist(HotelID,RoomTypeID,dev.Name.Replace(vbLf,"_")&"_主机",devAddr)
Else
devname=dev.Name.Split (vbLf)
insert= INSERTtbl_configured_devlist(HotelID,RoomTypeID,devname(2),devAddr)
End If
If dic.ContainsKey(devAddr) Then
Else
dic.Add(devAddr,insert)
End If
End If
Next
Next
''遍历dic集合 将数据插入字符串平接成事务插入语句
insert=""
For Each item In dic
insert = insert & item.Value
Next
'执行插入语句
Add_room_type_circuit_powers(DbConnString,insert)
End Sub
Public Function Add_room_type_circuit_powers(DbConnString As String, insertClunm As String) As Boolean
If String.IsNullOrEmpty(insertClunm) Then Return False
Dim dt As DataTable
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
db.Open()
Try
db.BeginTransaction()
dt = db.ExecuteDataTable(insertClunm)
db.CommitTransaction()
Catch ex As Exception
db.RollbackTransaction()
db.Close()
Return False
End Try
db.Close()
End Using
Return True
End Function
Public Function INSERTtbl_configured_devlist(HotelID As String, RoomTypeID As String,DevName As String,DevAddr As String) As String
' 主机显示在线仅表示其与服务器通讯正常,不代表主机端口功能完好,端口异常时需按异常按钮填报主机功能故障信息。
'开关显示在线仅表示其与主机通讯正常,不代表按键功能正常,按键异常时需按异常按钮填报开关功能故障信息。
'人在传感器范围内时,显示在线为正常,显示不在线为异常,需填报异常信息。
'开门能打开灯为正常,显示不在线为异常,需填报异常信息
Dim Process As String = "待定"
If DevName.Contains("主机") Then
Process = "主机显示在线仅表示其与服务器通讯正常,不代表主机端口功能完好,端口异常时需按异常按钮填报主机功能故障信息。"
Else If DevName.Contains("雷达") OrElse DevName.Contains("红外") then
Process = "人在传感器范围内时,显示在线为正常,显示不在线为异常,需填报异常信息。"
Else If DevName.Contains("门磁") Then
Process = "开门能打开灯为正常,显示不在线为异常,需填报异常信息。"
Else
Process = "开关显示在线仅表示其与主机通讯正常,不代表按键功能正常,按键异常时需按异常按钮填报开关功能故障信息。"
End If
Dim insert As String = $"INSERT INTO `blv_rcu_db`.`tbl_configured_devlist`
(`UpdateTime`
,`HotelID`
,`RoomTypeID`
,`Process`
,`DevName`
,`DevAddr`)
VALUES
( '{Now.ToString("yyyy-MM-dd HH:mm:ss")}'
,{HotelID}
,{RoomTypeID}
,'{Process}'
,'{DevName}'
,'{DevAddr}');{vbLf}"
return insert
End Function
Public Function TestReportingScenario(_UserName As String, _HotleID As String, _RoomTypeID As String, filename As String, Version As String) As ReportingScenario
Dim aaa As New ReportingScenario(_UserName, _HotleID, _RoomTypeID, filename, Version, _grd, Dic_Devicemodel, Dic_ActionConfiguration)

286
BLV_Studio/UpdataDevMode.Designer.vb generated Normal file
View File

@@ -0,0 +1,286 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class UpdataDevMode
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(UpdataDevMode))
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.Grid1 = New FlexCell.Grid()
Me.ToolStrip3 = New System.Windows.Forms.ToolStrip()
Me.ToolStripSeparator7 = New System.Windows.Forms.ToolStripSeparator()
Me.ToolStripButton4 = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator8 = New System.Windows.Forms.ToolStripSeparator()
Me.ToolStripButton6 = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator9 = New System.Windows.Forms.ToolStripSeparator()
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
Me.ToolStripLabel1 = New System.Windows.Forms.ToolStripLabel()
Me.ToolStripLabel3 = New System.Windows.Forms.ToolStripLabel()
Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
Me.ToolStripComboBox1 = New System.Windows.Forms.ToolStripComboBox()
Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator()
Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator()
Me.Grid2 = New FlexCell.Grid()
Me.ToolStrip2 = New System.Windows.Forms.ToolStrip()
Me.ToolStripLabel2 = New System.Windows.Forms.ToolStripLabel()
Me.ToolStripLabel4 = New System.Windows.Forms.ToolStripLabel()
Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator()
Me.ToolStripButton5 = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
Me.ToolStrip3.SuspendLayout()
Me.ToolStrip1.SuspendLayout()
Me.ToolStrip2.SuspendLayout()
Me.SuspendLayout()
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.Grid1)
Me.SplitContainer1.Panel1.Controls.Add(Me.ToolStrip3)
Me.SplitContainer1.Panel1.Controls.Add(Me.ToolStrip1)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.Grid2)
Me.SplitContainer1.Panel2.Controls.Add(Me.ToolStrip2)
Me.SplitContainer1.Size = New System.Drawing.Size(853, 536)
Me.SplitContainer1.SplitterDistance = 400
Me.SplitContainer1.TabIndex = 0
'
'Grid1
'
Me.Grid1.ClearBlankArea = True
Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
Me.Grid1.DisplayRowNumber = True
Me.Grid1.Dock = System.Windows.Forms.DockStyle.Fill
Me.Grid1.Location = New System.Drawing.Point(0, 50)
Me.Grid1.MouseWheelSpeed = CType(3, Short)
Me.Grid1.Name = "Grid1"
Me.Grid1.SelectionMode = FlexCell.SelectionModeEnum.ByRow
Me.Grid1.Size = New System.Drawing.Size(400, 486)
Me.Grid1.TabIndex = 3
'
'ToolStrip3
'
Me.ToolStrip3.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripSeparator7, Me.ToolStripButton4, Me.ToolStripSeparator8, Me.ToolStripButton6, Me.ToolStripSeparator9})
Me.ToolStrip3.Location = New System.Drawing.Point(0, 25)
Me.ToolStrip3.Name = "ToolStrip3"
Me.ToolStrip3.RightToLeft = System.Windows.Forms.RightToLeft.Yes
Me.ToolStrip3.Size = New System.Drawing.Size(400, 25)
Me.ToolStrip3.TabIndex = 1
Me.ToolStrip3.Text = "ToolStrip3"
'
'ToolStripSeparator7
'
Me.ToolStripSeparator7.Name = "ToolStripSeparator7"
Me.ToolStripSeparator7.Size = New System.Drawing.Size(6, 25)
'
'ToolStripButton4
'
Me.ToolStripButton4.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
Me.ToolStripButton4.Image = CType(resources.GetObject("ToolStripButton4.Image"), System.Drawing.Image)
Me.ToolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton4.Name = "ToolStripButton4"
Me.ToolStripButton4.Size = New System.Drawing.Size(60, 22)
Me.ToolStripButton4.Text = "添加文件"
'
'ToolStripSeparator8
'
Me.ToolStripSeparator8.Name = "ToolStripSeparator8"
Me.ToolStripSeparator8.Size = New System.Drawing.Size(6, 25)
'
'ToolStripButton6
'
Me.ToolStripButton6.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
Me.ToolStripButton6.Image = CType(resources.GetObject("ToolStripButton6.Image"), System.Drawing.Image)
Me.ToolStripButton6.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton6.Name = "ToolStripButton6"
Me.ToolStripButton6.Size = New System.Drawing.Size(84, 22)
Me.ToolStripButton6.Text = "移除选中文件"
'
'ToolStripSeparator9
'
Me.ToolStripSeparator9.Name = "ToolStripSeparator9"
Me.ToolStripSeparator9.Size = New System.Drawing.Size(6, 25)
'
'ToolStrip1
'
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripLabel1, Me.ToolStripLabel3, Me.ToolStripSeparator3, Me.ToolStripComboBox1, Me.ToolStripSeparator1, Me.ToolStripButton1, Me.ToolStripSeparator2})
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(400, 25)
Me.ToolStrip1.TabIndex = 0
Me.ToolStrip1.Text = "ToolStrip1"
'
'ToolStripLabel1
'
Me.ToolStripLabel1.Name = "ToolStripLabel1"
Me.ToolStripLabel1.Size = New System.Drawing.Size(92, 22)
Me.ToolStripLabel1.Text = "待上传文件列表"
'
'ToolStripLabel3
'
Me.ToolStripLabel3.Name = "ToolStripLabel3"
Me.ToolStripLabel3.Size = New System.Drawing.Size(20, 22)
Me.ToolStripLabel3.Text = " "
'
'ToolStripSeparator3
'
Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 25)
'
'ToolStripComboBox1
'
Me.ToolStripComboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.ToolStripComboBox1.Items.AddRange(New Object() {"485Model", "RCUModel", "BaseModel"})
Me.ToolStripComboBox1.Name = "ToolStripComboBox1"
Me.ToolStripComboBox1.Size = New System.Drawing.Size(121, 25)
'
'ToolStripSeparator1
'
Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25)
'
'ToolStripButton1
'
Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image)
Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton1.Name = "ToolStripButton1"
Me.ToolStripButton1.Size = New System.Drawing.Size(60, 22)
Me.ToolStripButton1.Text = "上传文件"
'
'ToolStripSeparator2
'
Me.ToolStripSeparator2.Name = "ToolStripSeparator2"
Me.ToolStripSeparator2.Size = New System.Drawing.Size(6, 25)
'
'Grid2
'
Me.Grid2.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
Me.Grid2.Dock = System.Windows.Forms.DockStyle.Fill
Me.Grid2.Location = New System.Drawing.Point(0, 25)
Me.Grid2.MouseWheelSpeed = CType(3, Short)
Me.Grid2.Name = "Grid2"
Me.Grid2.SelectionMode = FlexCell.SelectionModeEnum.ByRow
Me.Grid2.Size = New System.Drawing.Size(449, 511)
Me.Grid2.TabIndex = 2
'
'ToolStrip2
'
Me.ToolStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripLabel2, Me.ToolStripLabel4, Me.ToolStripSeparator6, Me.ToolStripButton5, Me.ToolStripSeparator5})
Me.ToolStrip2.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip2.Name = "ToolStrip2"
Me.ToolStrip2.Size = New System.Drawing.Size(449, 25)
Me.ToolStrip2.TabIndex = 1
Me.ToolStrip2.Text = "ToolStrip2"
'
'ToolStripLabel2
'
Me.ToolStripLabel2.Name = "ToolStripLabel2"
Me.ToolStripLabel2.Size = New System.Drawing.Size(92, 22)
Me.ToolStripLabel2.Text = "已上传文件列表"
'
'ToolStripLabel4
'
Me.ToolStripLabel4.Name = "ToolStripLabel4"
Me.ToolStripLabel4.Size = New System.Drawing.Size(24, 22)
Me.ToolStripLabel4.Text = " "
'
'ToolStripSeparator6
'
Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
Me.ToolStripSeparator6.Size = New System.Drawing.Size(6, 25)
'
'ToolStripButton5
'
Me.ToolStripButton5.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
Me.ToolStripButton5.Image = CType(resources.GetObject("ToolStripButton5.Image"), System.Drawing.Image)
Me.ToolStripButton5.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton5.Name = "ToolStripButton5"
Me.ToolStripButton5.Size = New System.Drawing.Size(60, 22)
Me.ToolStripButton5.Text = "删除文件"
'
'ToolStripSeparator5
'
Me.ToolStripSeparator5.Name = "ToolStripSeparator5"
Me.ToolStripSeparator5.Size = New System.Drawing.Size(6, 25)
'
'UpdataDevMode
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(853, 536)
Me.Controls.Add(Me.SplitContainer1)
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "UpdataDevMode"
Me.Text = "UpdataDevMode"
Me.SplitContainer1.Panel1.ResumeLayout(False)
Me.SplitContainer1.Panel1.PerformLayout()
Me.SplitContainer1.Panel2.ResumeLayout(False)
Me.SplitContainer1.Panel2.PerformLayout()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer1.ResumeLayout(False)
Me.ToolStrip3.ResumeLayout(False)
Me.ToolStrip3.PerformLayout()
Me.ToolStrip1.ResumeLayout(False)
Me.ToolStrip1.PerformLayout()
Me.ToolStrip2.ResumeLayout(False)
Me.ToolStrip2.PerformLayout()
Me.ResumeLayout(False)
End Sub
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents ToolStrip1 As ToolStrip
Friend WithEvents Grid2 As FlexCell.Grid
Friend WithEvents ToolStrip2 As ToolStrip
Friend WithEvents ToolStripLabel2 As ToolStripLabel
Friend WithEvents ToolStripLabel4 As ToolStripLabel
Friend WithEvents ToolStripSeparator6 As ToolStripSeparator
Friend WithEvents ToolStripButton5 As ToolStripButton
Friend WithEvents ToolStripSeparator5 As ToolStripSeparator
Friend WithEvents Grid1 As FlexCell.Grid
Friend WithEvents ToolStrip3 As ToolStrip
Friend WithEvents ToolStripSeparator7 As ToolStripSeparator
Friend WithEvents ToolStripButton4 As ToolStripButton
Friend WithEvents ToolStripSeparator8 As ToolStripSeparator
Friend WithEvents ToolStripButton6 As ToolStripButton
Friend WithEvents ToolStripSeparator9 As ToolStripSeparator
Friend WithEvents ToolStripLabel1 As ToolStripLabel
Friend WithEvents ToolStripLabel3 As ToolStripLabel
Friend WithEvents ToolStripComboBox1 As ToolStripComboBox
Friend WithEvents ToolStripSeparator1 As ToolStripSeparator
Friend WithEvents ToolStripButton1 As ToolStripButton
Friend WithEvents ToolStripSeparator2 As ToolStripSeparator
Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
End Class

View File

@@ -0,0 +1,190 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="ToolStrip3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>241, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="ToolStripButton4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolStripButton6.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="ToolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="ToolStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>129, 17</value>
</metadata>
<data name="ToolStripButton5.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
</root>

336
BLV_Studio/UpdataDevMode.vb Normal file
View File

@@ -0,0 +1,336 @@
Imports System.IO
Imports BLV_Studio.UTSModule
Public Class UpdataDevMode
Public DbConnString As String = "Server=blv-cloud-db.mysql.rds.aliyuncs.com;Port=3307;Database=blv_rcu_db;Uid=blv_rcu;Pwd=fnadiaJDIJ7546;charset=utf8;"
Public Author As String
Private Sub UpdataDevMode_Load(sender As Object, e As EventArgs) Handles MyBase.Load
UploadFileList = New Dictionary(Of String, String)
InitGrid()
InitGrid2()
End Sub
Public Sub InitGrid()
Grid1.Rows = 1
Grid1.Cols = 5
Grid1.DisplayRowNumber = True
Grid1.ExtendLastCol = True
For i = 0 To 4
Select Case i
Case 0
Grid1.Cell(0, i).Text = "ID"
Case 1
Grid1.Cell(0, i).Text = "Name"
Case 2
Grid1.Cell(0, i).Text = "MD5"
Case 3
Grid1.Cell(0, i).Text = "Size"
Case 4
Grid1.Cell(0, i).Text = "PATH"
End Select
Grid1.Column(i).Locked = True
Next
End Sub
Public rmodedevtablenode As Dictionary(Of String, modedevtablenode)
Public Sub InitGrid2()
Grid2.Rows = 1
Grid2.Cols = 5
Grid2.DisplayRowNumber = True
Grid2.ExtendLastCol = True
For i = 0 To 4
Select Case i
Case 0
Grid2.Cell(0, i).Text = "ID"
Case 1
Grid2.Cell(0, i).Text = "UPdataTime"
Case 2
Grid2.Cell(0, i).Text = "Name"
Case 3
Grid2.Cell(0, i).Text = "MD5"
Case 4
Grid2.Cell(0, i).Text = "PATH"
' Grid2.Cell(0, i).Text = "Size"
Case 5
End Select
Grid2.Column(i).Locked = True
Next
rmodedevtablenode = GetServerFile()
For Each item In rmodedevtablenode
Grid2.AddItem("")
Grid2.Cell(Grid2.Rows - 1, 1).Text = item.Value.UploadDateTime
Grid2.Cell(Grid2.Rows - 1, 4).Text = item.Value.Directory
Grid2.Cell(Grid2.Rows - 1, 3).Text = item.Value.XLM_MD5
Grid2.Cell(Grid2.Rows - 1, 2).Text = item.Value.XML_FileName
Next
End Sub
Public Function GetServerFile()
Dim result As New Dictionary(Of String, modedevtablenode)
Dim selectstr As String = $"SELECT * FROM `blv_rcu_db`.`tbl_model_file_data` ORDER BY `MFD_ID` DESC"
'Dim delete As String = $"DELETE FROM {tablename} WHERE HotelID ='{HotelID}' and RoomID='{RoomID}'"
Dim dt As DataTable
Dim mdtn As modedevtablenode
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
db.Open()
Try
dt = db.ExecuteDataTable(selectstr)
If IsNothing(dt) Then Return result
For i As Integer = 0 To dt.Rows.Count - 1
mdtn = New modedevtablenode
mdtn.MFD_ID = dt(i)("MFD_ID")
mdtn.Available = dt(i)("Available")
'mdtn.Brand = dt(i)("Brand")
'mdtn.ModelNo = dt(i)("ModelNo")
'mdtn.ModelName = dt(i)("ModelName")
'mdtn.Description = dt(i)("Description")
'mdtn.Image = dt(i)("Image")
mdtn.Directory = dt(i)("Directory")
mdtn.XML_FileName = dt(i)("XML_FileName")
'mdtn.DAT_FileName = dt(i)("DAT_FileName")
'mdtn.Version = dt(i)("Version")
mdtn.UploadDateTime = dt(i)("UploadDateTime")
'判读Author 是否为dbnull
If IsDBNull(dt(i)("Author")) Then
mdtn.Author = ""
Else
mdtn.Author = dt(i)("Author")
End If
mdtn.XLM_MD5 = dt(i)("XLM_MD5")
'mdtn.DAT_MD5 = dt(i)("DAT_MD5")
'mdtn.PartNumber = dt(i)("PartNumber")
'mdtn.Remark = dt(i)("Remark")
result.Add($"{dt(i)("XML_FileName")}", mdtn)
Next
db.Close()
Catch ex As Exception
db.Close()
End Try
End Using
Return result
End Function
Public Function deleteServerFile(XML_FileName As String) As Boolean
Dim result As Boolean = False
Dim selectstr As String = $"DELETE FROM `blv_rcu_db`.`tbl_model_file_data` where XML_FileName='{XML_FileName}' "
'Dim delete As String = $"DELETE FROM {tablename} WHERE HotelID ='{HotelID}' and RoomID='{RoomID}'"
Dim dt As Integer = 0
Dim mdtn As modedevtablenode
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
db.Open()
Try
dt = db.ExecuteNonQuery(selectstr)
If IsNothing(dt) OrElse dt = 0 Then Return result
result = True
db.Close()
Catch ex As Exception
db.Close()
End Try
End Using
Return result
End Function
Private Sub ToolStripButton6_Click(sender As Object, e As EventArgs) Handles ToolStripButton6.Click
'获取Grid1选中的行
Dim selectedRow As Integer = Grid1.ActiveCell.Row
'获取选中的文件名称
Dim selectedFileName As String = Grid1.Cell(selectedRow, 1).Text
'判断是否选中了有效行
If selectedRow > 0 Then
'删除Grid1选中行(selectedRow)
Grid1.RemoveItem(selectedRow)
'判断文件在不在键值对
If UploadFileList.ContainsKey(selectedFileName) Then
'删除键值对
UploadFileList.Remove(selectedFileName)
End If
End If
End Sub
'待上传文件列表变量
Public UploadFileList As Dictionary(Of String, String)
Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) Handles ToolStripButton4.Click
'打开文件选择器 设置打开的路径为根目录下BLV_Studio\Data\Model
Dim OpenFileDialog1 As New OpenFileDialog()
OpenFileDialog1.Filter = "XML Files (*.xml)|*.xml"
OpenFileDialog1.InitialDirectory = Application.StartupPath & "\Data\Model"
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
'将选中的文件名和文件路径填充键值对
If rmodedevtablenode.ContainsKey(OpenFileDialog1.SafeFileName) Then
MsgBox("服务器已存在该文件!")
Return
End If
If UploadFileList.ContainsKey(OpenFileDialog1.SafeFileName) Then
MsgBox("文件已存在")
Else
'将选中的文件名和文件路径填充键值对
UploadFileList.Add(OpenFileDialog1.SafeFileName, OpenFileDialog1.FileName)
End If
End If
'Case 0
'Grid1.Cell(0, i).Text = "ID"
'Case 1
'Grid1.Cell(0, i).Text = "Name"
'Case 2
'Grid1.Cell(0, i).Text = "MD5"
'Case 3
'Grid1.Cell(0, i).Text = "Size"
'Case 4
'Grid1.Cell(0, i).Text = "PATH"
Dim xmlmd5 As String
Dim fileInfo As FileInfo
Dim fileSize As Long
Grid1.Rows = 1
For Each item In UploadFileList
Grid1.AddItem("")
Grid1.Cell(Grid1.Rows - 1, 1).Text = item.Key
xmlmd5 = GetStringMd5(item.Value)
Grid1.Cell(Grid1.Rows - 1, 2).Text = xmlmd5
'获取文件大小
fileInfo = New FileInfo(item.Value)
fileSize = fileInfo.Length
Grid1.Cell(Grid1.Rows - 1, 3).Text = fileSize
Grid1.Cell(Grid1.Rows - 1, 4).Text = item.Value
Next
End Sub
Private Sub UpdataDevMode_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
Return
End Sub
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
If String.IsNullOrEmpty(ToolStripComboBox1.Text) Then
MsgBox("请选择上传的文件类型!")
Return
End If
If UploadFileList.Count = 0 Then
MsgBox("请选择上传的文件!")
Return
End If
Dim strInputMsg As String = InputBox("请输入上传设备模型密码", "密码确认")
If strInputMsg <> "Cc2022OK" Then Return
'遍历UploadFileList
Dim serverpath = $"\Data\Model\{ToolStripComboBox1.Text}"
Dim tmp_FTP_Xml_FullName As String = ""
Dim sqlstr As String = ""
Dim insertstr As String = ""
Dim dt As Integer = 0
For Each item In UploadFileList
tmp_FTP_Xml_FullName = serverpath & "\" & item.Key
If UtsFtp.CreateObject.FtpUploadBlv(tmp_FTP_Xml_FullName, item.Value) = 1 Then
'插入一条数据库记录
insertstr = getInsertStr(serverpath, item.Key, item.Value)
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
db.Open()
Try
dt = db.ExecuteNonQuery(insertstr)
db.Close()
Catch ex As Exception
db.Close()
End Try
End Using
Else
MsgBox("上传文件错误!")
Return
End If
Next
MsgBox("上传完成!")
UpdataDevMode_Load(Nothing Nothing)
End Sub
'生成插入一条数据库记录函数
Public Function getInsertStr(serverpath As String, filename As String filepath As String)
Dim md5 As String = GetStringMd5(filepath)
Dim result As String = $"INSERT INTO `blv_rcu_db`.`tbl_model_file_data`
(`Available`
,`Directory`
,`XML_FileName`
,`UploadDateTime`
,`Author`
,`XLM_MD5`
,`Remark`)
VALUES
(1,'{serverpath.Replace("\", "\\")}','{filename}','{Now}','{Author}','{md5}','配置上传~')"
Return result
End Function
Private Sub ToolStripButton5_Click(sender As Object, e As EventArgs) Handles ToolStripButton5.Click
Dim strInputMsg As String = InputBox("请输入删除设备模型密码", "密码确认")
If strInputMsg <> "Cc2022OK" Then Return
'获取Gri2的选择文件名
Dim selectedRow As Integer = Grid2.ActiveCell.Row
Dim selectedFileName As String = Grid2.Cell(selectedRow, 2).Text
'判断是否选中了有效行
If selectedRow > 0 Then
If deleteServerFile(selectedFileName) Then
'删除Grid2选中行(selectedRow)
Grid2.RemoveItem(selectedRow)
'判断文件在不在键值对
If rmodedevtablenode.ContainsKey(selectedFileName) Then
'删除键值对
rmodedevtablenode.Remove(selectedFileName)
End If
Else
MsgBox("删除失败!")
End If
End If
End Sub
End Class
Public Class modedevtablenode
Public MFD_ID As Integer
Public Available As String
Public Brand As String
Public ModelNo As String
Public ModelName As String
Public Description As String
Public Image As String
Public Directory As String
Public XML_FileName As String
Public DAT_FileName As String
Public Version As String
Public UploadDateTime As String
Public Author As String
Public XLM_MD5 As String
Public DAT_MD5 As String
Public PartNumber As String
Public Remark As String
End Class

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<assemblyIdentity name="BLV_Studio.application" version="4.4.3.57" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
<assemblyIdentity name="BLV_Studio.application" version="4.4.3.73" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
<description asmv2:publisher="chenzhihao" asmv2:product="宝易逻辑配置软件" xmlns="urn:schemas-microsoft-com:asm.v1" />
<deployment install="true" mapFileExtensions="true" minimumRequiredVersion="4.0.0.5" co.v1:createDesktopShortcut="true">
<subscription>
@@ -15,13 +15,13 @@
</compatibleFrameworks>
<dependency>
<dependentAssembly dependencyType="install" codebase="BLV_Studio.exe.manifest" size="37872">
<assemblyIdentity name="BLV_Studio.exe" version="4.4.3.57" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<assemblyIdentity name="BLV_Studio.exe" version="4.4.3.73" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>b2j3yCptM/IwtDNZbmQ03eMqLtYypcflNOwAoIeuns4=</dsig:DigestValue>
<dsig:DigestValue>OYC1suCZ7Etako2+s/qGekuT+x0spnOHfhMkyeNgm/c=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>

Binary file not shown.

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<asmv1:assemblyIdentity name="BLV_Studio.exe" version="4.4.3.57" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<asmv1:assemblyIdentity name="BLV_Studio.exe" version="4.4.3.73" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<description asmv2:iconFile="favicon.ico" xmlns="urn:schemas-microsoft-com:asm.v1" />
<application />
<entryPoint>
<assemblyIdentity name="BLV_Studio" version="4.4.5.21" language="neutral" processorArchitecture="msil" />
<assemblyIdentity name="BLV_Studio" version="4.4.5.29" language="neutral" processorArchitecture="msil" />
<commandLine file="BLV_Studio.exe" parameters="" />
</entryPoint>
<trustInfo>
@@ -102,14 +102,14 @@
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="BLV_Studio.exe" size="2582016">
<assemblyIdentity name="BLV_Studio" version="4.4.5.21" language="neutral" processorArchitecture="msil" />
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="BLV_Studio.exe" size="2587648">
<assemblyIdentity name="BLV_Studio" version="4.4.5.29" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>2m6WD1RzapB2stzTiTxYYgrYUXuYOZOPy50mr2Xw2jI=</dsig:DigestValue>
<dsig:DigestValue>bZrPTZN1qeqsU5SeEhqhsBxl3BFsvhKxFNsWvjHSIsM=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>

Binary file not shown.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<assemblyIdentity name="BLV_Studio.application" version="4.4.3.57" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
<assemblyIdentity name="BLV_Studio.application" version="4.4.3.73" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
<description asmv2:publisher="chenzhihao" asmv2:product="宝易逻辑配置软件" xmlns="urn:schemas-microsoft-com:asm.v1" />
<deployment install="true" mapFileExtensions="true" minimumRequiredVersion="4.0.0.5" co.v1:createDesktopShortcut="true">
<subscription>
@@ -15,13 +15,13 @@
</compatibleFrameworks>
<dependency>
<dependentAssembly dependencyType="install" codebase="BLV_Studio.exe.manifest" size="37872">
<assemblyIdentity name="BLV_Studio.exe" version="4.4.3.57" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<assemblyIdentity name="BLV_Studio.exe" version="4.4.3.73" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>b2j3yCptM/IwtDNZbmQ03eMqLtYypcflNOwAoIeuns4=</dsig:DigestValue>
<dsig:DigestValue>OYC1suCZ7Etako2+s/qGekuT+x0spnOHfhMkyeNgm/c=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>

Binary file not shown.

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<asmv1:assemblyIdentity name="BLV_Studio.exe" version="4.4.3.57" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<asmv1:assemblyIdentity name="BLV_Studio.exe" version="4.4.3.73" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<description asmv2:iconFile="favicon.ico" xmlns="urn:schemas-microsoft-com:asm.v1" />
<application />
<entryPoint>
<assemblyIdentity name="BLV_Studio" version="4.4.5.21" language="neutral" processorArchitecture="msil" />
<assemblyIdentity name="BLV_Studio" version="4.4.5.29" language="neutral" processorArchitecture="msil" />
<commandLine file="BLV_Studio.exe" parameters="" />
</entryPoint>
<trustInfo>
@@ -102,14 +102,14 @@
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="BLV_Studio.exe" size="2582016">
<assemblyIdentity name="BLV_Studio" version="4.4.5.21" language="neutral" processorArchitecture="msil" />
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="BLV_Studio.exe" size="2587648">
<assemblyIdentity name="BLV_Studio" version="4.4.5.29" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>2m6WD1RzapB2stzTiTxYYgrYUXuYOZOPy50mr2Xw2jI=</dsig:DigestValue>
<dsig:DigestValue>bZrPTZN1qeqsU5SeEhqhsBxl3BFsvhKxFNsWvjHSIsM=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>

Binary file not shown.

View File

@@ -1 +1 @@
ff0abe0868aa5b5063eea4701ba76290cbcc136d
ddb2e5772976c0c8c8eefdcf09f0bf1f90bfa111

View File

@@ -1274,3 +1274,120 @@ E:\Sync\BLV_Studio\BLV_Studio\BLV_Studio_20241206_合并配置下发工具\Sourc
E:\Sync\BLV_Studio\BLV_Studio\BLV_Studio_20241206_合并配置下发工具\SourceCode\BLV_Studio\obj\Debug\BLV_Studio.xml
E:\Sync\BLV_Studio\BLV_Studio\BLV_Studio_20241206_合并配置下发工具\SourceCode\BLV_Studio\obj\Debug\BLV_Studio.pdb
E:\Sync\BLV_Studio\BLV_Studio\BLV_Studio_20241206_合并配置下发工具\SourceCode\BLV_Studio\obj\Debug\BLV_Studio.vbproj.AssemblyReference.cache
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\BLV_Studio.exe.config
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\BLV_Studio.exe.manifest
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\BLV_Studio.application
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\BLV_Studio.exe
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\BLV_Studio.pdb
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\BLV_Studio.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\ARSoft.Tools.Net.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\AutoFixture.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\BouncyCastle.Crypto.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\DnsClient.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\DotNetProjects.DhcpServer.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\EntityFramework.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\EntityFramework.SqlServer.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\Fare.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\FlexCell.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\FluentFTP.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\Google.Protobuf.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\K4os.Compression.LZ4.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\K4os.Compression.LZ4.Streams.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\K4os.Hash.xxHash.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\MD5.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\Microsoft.Win32.Registry.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\MySql.Data.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\Newtonsoft.Json.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Buffers.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Data.SQLite.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Data.SQLite.EF6.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Data.SQLite.Linq.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Memory.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Numerics.Vectors.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Security.AccessControl.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Security.Principal.Windows.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\Ubiety.Dns.Core.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\Ubiety.Logging.Core.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\ZstdNet.dll
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\AutoFixture.pdb
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\AutoFixture.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\BouncyCastle.Crypto.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\DnsClient.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\EntityFramework.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\EntityFramework.SqlServer.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\Fare.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\Google.Protobuf.pdb
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\Google.Protobuf.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\K4os.Compression.LZ4.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\K4os.Compression.LZ4.Streams.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\K4os.Hash.xxHash.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\Microsoft.Win32.Registry.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\MySql.Data.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\Newtonsoft.Json.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Buffers.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Data.SQLite.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Memory.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Numerics.Vectors.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Security.AccessControl.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\System.Security.Principal.Windows.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\Ubiety.Dns.Core.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\bin\Debug\Ubiety.Logging.Core.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.vbproj.AssemblyReference.cache
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.ColorCelect.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.FrmAboutDialog.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.FrmAddDevice.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.FrmCSeriesConfig.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.FrmHotelList.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.FrmMACBindingResults.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.FrmMACDialog.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.FrmSerialportSetting.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.FrmTest_BLV_V9.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.FrmTest_C12.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.FrmTest_C12_Dimming.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.FrmTest_C5.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.FrmTest_C8.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.LogInformation.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.Downoading.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.AddMember_frm.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.AddLoopInfo.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.EnergySavingAttribute.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.link_frm.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.PowerSupplyMainForm.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.PowerSupplyForm.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.SetLoopInformation.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.ActionParameter.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.NormalDev.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.AddPeripherals.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.DeviceListFrom.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.ExecutionCondition.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.PowerSupply.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.MusicConfigt.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.ServiceAttribute.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.MusicArrangement.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.TestForm1.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.UpdataDevMode.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.UserControl1.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.CreateProject.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.FrmReleaseFirmware2.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.HotelConfigurationLogic.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.UCreatelabel.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.VersionHistory.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.FrmChangeHotel.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.BFrmLogin.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.FrmMain.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.frm_ProjectSync.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.Resources.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.BLV_UartMdule.Blv_Uart.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.UartForm1.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.ReleaseControl_frn.resources
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.vbproj.GenerateResource.cache
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.exe.licenses
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.vbproj.CoreCompileInputs.cache
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.exe.manifest
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.application
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.vbproj.CopyComplete
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.exe
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.xml
E:\ForkSync\Desktop_BLVStudio\BLV_Studio\obj\Debug\BLV_Studio.pdb

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
<assemblyIdentity name="BLV_Studio.application" version="4.4.3.56" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
<assemblyIdentity name="BLV_Studio.application" version="4.4.3.72" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
<description asmv2:publisher="chenzhihao" asmv2:product="宝易逻辑配置软件" xmlns="urn:schemas-microsoft-com:asm.v1" />
<deployment install="true" mapFileExtensions="true" minimumRequiredVersion="4.0.0.5" co.v1:createDesktopShortcut="true">
<subscription>
@@ -14,14 +14,14 @@
<framework targetVersion="4.8" profile="Full" supportedRuntime="4.0.30319" />
</compatibleFrameworks>
<dependency>
<dependentAssembly dependencyType="install" codebase="Application Files\BLV_Studio_4_4_3_56\BLV_Studio.exe.manifest" size="37872">
<assemblyIdentity name="BLV_Studio.exe" version="4.4.3.56" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<dependentAssembly dependencyType="install" codebase="Application Files\BLV_Studio_4_4_3_72\BLV_Studio.exe.manifest" size="37872">
<assemblyIdentity name="BLV_Studio.exe" version="4.4.3.72" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>9WarJAykhF8iaz1LZ9StU7Dx35QmHU67H3/qnZ/4aBE=</dsig:DigestValue>
<dsig:DigestValue>zbPNYKPGfxmfv38h8sVhbBTqeYsOYJPAghcjQVEPpuY=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>

View File

@@ -126,7 +126,7 @@ function CompareVersions(v1, v2)
<TR><TD ALIGN="LEFT"><TABLE CELLPADDING="2" CELLSPACING="0" BORDER="0" WIDTH="540"><TR><TD WIDTH="496">
<!-- Begin AppInfo -->
<TABLE><TR><TD COLSPAN="3">&nbsp;</TD></TR><TR><TD><B>名称: </B></TD><TD WIDTH="5"><SPACER TYPE="block" WIDTH="10" /></TD><TD>宝易逻辑配置软件</TD></TR><TR><TD COLSPAN="3">&nbsp;</TD></TR><TR><TD><B>版本: </B></TD><TD WIDTH="5"><SPACER TYPE="block" WIDTH="10" /></TD><TD>4.4.3.56</TD></TR><TR><TD COLSPAN="3">&nbsp;</TD></TR><TR><TD><B>发行者: </B></TD><TD WIDTH="5"><SPACER TYPE="block" WIDTH="10" /></TD><TD>chenzhihao</TD></TR><tr><td colspan="3">&nbsp;</td></tr></TABLE>
<TABLE><TR><TD COLSPAN="3">&nbsp;</TD></TR><TR><TD><B>名称: </B></TD><TD WIDTH="5"><SPACER TYPE="block" WIDTH="10" /></TD><TD>宝易逻辑配置软件</TD></TR><TR><TD COLSPAN="3">&nbsp;</TD></TR><TR><TD><B>版本: </B></TD><TD WIDTH="5"><SPACER TYPE="block" WIDTH="10" /></TD><TD>4.4.3.72</TD></TR><TR><TD COLSPAN="3">&nbsp;</TD></TR><TR><TD><B>发行者: </B></TD><TD WIDTH="5"><SPACER TYPE="block" WIDTH="10" /></TD><TD>chenzhihao</TD></TR><tr><td colspan="3">&nbsp;</td></tr></TABLE>
<!-- End AppInfo -->

Binary file not shown.