diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d0749cc --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +BLV_Studio/obj +BLV_Studio/obj/Debug +.vs +BLV_Studio/bin +BLV_Studio/obj +BLV_Studio/publish +BLV_Studio/bin diff --git a/.vs/BLV_Studio/v16/.suo b/.vs/BLV_Studio/v16/.suo deleted file mode 100644 index 5ced96b..0000000 Binary files a/.vs/BLV_Studio/v16/.suo and /dev/null differ diff --git a/.vs/BLV_Studio/v16/Browse.VC.db b/.vs/BLV_Studio/v16/Browse.VC.db deleted file mode 100644 index 98a3d90..0000000 Binary files a/.vs/BLV_Studio/v16/Browse.VC.db and /dev/null differ diff --git a/.vs/BLV_Studio/v16/Browse.VC.db-shm b/.vs/BLV_Studio/v16/Browse.VC.db-shm deleted file mode 100644 index cdb1500..0000000 Binary files a/.vs/BLV_Studio/v16/Browse.VC.db-shm and /dev/null differ diff --git a/.vs/BLV_Studio/v16/Browse.VC.db-wal b/.vs/BLV_Studio/v16/Browse.VC.db-wal deleted file mode 100644 index e69de29..0000000 diff --git a/BLV_Studio/AddLoopInfo.Designer.vb b/BLV_Studio/AddLoopInfo.Designer.vb new file mode 100644 index 0000000..5bf9ce0 --- /dev/null +++ b/BLV_Studio/AddLoopInfo.Designer.vb @@ -0,0 +1,518 @@ + _ +Partial Class AddLoopInfo + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + 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 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + 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 diff --git a/BLV_Studio/AddLoopInfo.resx b/BLV_Studio/AddLoopInfo.resx new file mode 100644 index 0000000..fe5246d --- /dev/null +++ b/BLV_Studio/AddLoopInfo.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/BLV_Studio/AddLoopInfo.vb b/BLV_Studio/AddLoopInfo.vb new file mode 100644 index 0000000..f841aba --- /dev/null +++ b/BLV_Studio/AddLoopInfo.vb @@ -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 \ No newline at end of file diff --git a/BLV_Studio/BLV_Studio.vbproj b/BLV_Studio/BLV_Studio.vbproj index ce3fe51..483927a 100644 --- a/BLV_Studio/BLV_Studio.vbproj +++ b/BLV_Studio/BLV_Studio.vbproj @@ -35,7 +35,7 @@ 4.0.0.5 true index.html - 57 + 73 4.4.3.%2a false true diff --git a/BLV_Studio/EnergySavingAttribute.Designer.vb b/BLV_Studio/EnergySavingAttribute.Designer.vb new file mode 100644 index 0000000..07dc488 --- /dev/null +++ b/BLV_Studio/EnergySavingAttribute.Designer.vb @@ -0,0 +1,230 @@ + _ +Partial Class EnergySavingAttribute + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + 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 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + 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 diff --git a/BLV_Studio/EnergySavingAttribute.resx b/BLV_Studio/EnergySavingAttribute.resx new file mode 100644 index 0000000..4d46293 --- /dev/null +++ b/BLV_Studio/EnergySavingAttribute.resx @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + 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== + + + + 25 + + \ No newline at end of file diff --git a/BLV_Studio/EnergySavingAttribute.vb b/BLV_Studio/EnergySavingAttribute.vb new file mode 100644 index 0000000..a445eba --- /dev/null +++ b/BLV_Studio/EnergySavingAttribute.vb @@ -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 \ No newline at end of file diff --git a/BLV_Studio/FrmMain.Designer.vb b/BLV_Studio/FrmMain.Designer.vb index 25f6813..34b3dc1 100644 --- a/BLV_Studio/FrmMain.Designer.vb +++ b/BLV_Studio/FrmMain.Designer.vb @@ -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 diff --git a/BLV_Studio/FrmMain.resx b/BLV_Studio/FrmMain.resx index afc2107..068dd1c 100644 --- a/BLV_Studio/FrmMain.resx +++ b/BLV_Studio/FrmMain.resx @@ -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 @@ 512, 55 - - 685, 17 - - - 360, 17 - - - 624, 55 - - - 973, 55 - - - - 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= - - - - 188, 55 - - - 361, 55 - - - 512, 55 - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 @@ -1677,6 +1490,9 @@ 624, 55 + + 973, 55 + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 @@ -1747,4 +1563,176 @@ SUVORK5CYII= + + + 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= + + + + 188, 55 + + + 361, 55 + \ No newline at end of file diff --git a/BLV_Studio/FrmMain.vb b/BLV_Studio/FrmMain.vb index 307ec92..aecc5f3 100644 --- a/BLV_Studio/FrmMain.vb +++ b/BLV_Studio/FrmMain.vb @@ -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 diff --git a/BLV_Studio/My Project/AssemblyInfo.vb b/BLV_Studio/My Project/AssemblyInfo.vb index 294f543..45a7327 100644 --- a/BLV_Studio/My Project/AssemblyInfo.vb +++ b/BLV_Studio/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices '通过使用 "*",如下所示: ' - - + + diff --git a/BLV_Studio/SetLoopInformation.Designer.vb b/BLV_Studio/SetLoopInformation.Designer.vb new file mode 100644 index 0000000..9dfd2e5 --- /dev/null +++ b/BLV_Studio/SetLoopInformation.Designer.vb @@ -0,0 +1,142 @@ + _ +Partial Class SetLoopInformation + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + 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 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + 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 diff --git a/BLV_Studio/SetLoopInformation.resx b/BLV_Studio/SetLoopInformation.resx new file mode 100644 index 0000000..61a1c65 --- /dev/null +++ b/BLV_Studio/SetLoopInformation.resx @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + 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== + + + + + 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== + + + + + 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== + + + + + 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== + + + + + 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== + + + + 129, 17 + + \ No newline at end of file diff --git a/BLV_Studio/SetLoopInformation.vb b/BLV_Studio/SetLoopInformation.vb new file mode 100644 index 0000000..e9e5f3e --- /dev/null +++ b/BLV_Studio/SetLoopInformation.vb @@ -0,0 +1,754 @@ +Imports System.ComponentModel +Imports Newtonsoft.Json + +Public Class SetLoopInformation + Public Enum DeviceType + + Relay = 1 + + LVout = 3 + + ServiceInfo = 4 + + Curtain = 5 + + SwitchExpand = 6 + + AirConditioner = 7 + + InFrared = 8 + + AirDetect = 9 + + CardPower = 10 + + FloorHot = 11 + + Expand = 14 + + TV = 15 + + Dimmer = 16 + + Traic = 17 + + Strip = 18 + + PWMDimmer = 23 + + PWMExpand = 24 + + Music = 21 + + WXLock = 20 + + PBLED = 25 + + A9IORelay = 28 + + PB20 = 30 + + PB20_LD = 31 + + PB20_LS = 32 + + PB20_RELAY = 33 + + ColorTemp = 34 + + 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 IsNothing(G_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 \ No newline at end of file diff --git a/BLV_Studio/Test/GridTest/AddPeripherals.vb b/BLV_Studio/Test/GridTest/AddPeripherals.vb index 3e85403..e328e44 100644 --- a/BLV_Studio/Test/GridTest/AddPeripherals.vb +++ b/BLV_Studio/Test/GridTest/AddPeripherals.vb @@ -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 diff --git a/BLV_Studio/Test/GridTest/DrSeverGrid.vb b/BLV_Studio/Test/GridTest/DrSeverGrid.vb index 9a08271..5918d02 100644 --- a/BLV_Studio/Test/GridTest/DrSeverGrid.vb +++ b/BLV_Studio/Test/GridTest/DrSeverGrid.vb @@ -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 diff --git a/BLV_Studio/Test/GridTest/ExecutionCondition.vb b/BLV_Studio/Test/GridTest/ExecutionCondition.vb index 7654645..989f7a0 100644 --- a/BLV_Studio/Test/GridTest/ExecutionCondition.vb +++ b/BLV_Studio/Test/GridTest/ExecutionCondition.vb @@ -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" diff --git a/BLV_Studio/Test/GridTest/TableInteraction.vb b/BLV_Studio/Test/GridTest/TableInteraction.vb index 25621cf..9b40bb5 100644 --- a/BLV_Studio/Test/GridTest/TableInteraction.vb +++ b/BLV_Studio/Test/GridTest/TableInteraction.vb @@ -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) diff --git a/BLV_Studio/UpdataDevMode.Designer.vb b/BLV_Studio/UpdataDevMode.Designer.vb new file mode 100644 index 0000000..d63855b --- /dev/null +++ b/BLV_Studio/UpdataDevMode.Designer.vb @@ -0,0 +1,286 @@ + _ +Partial Class UpdataDevMode + Inherits System.Windows.Forms.Form + + 'Form 重写 Dispose,以清理组件列表。 + _ + 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 窗体设计器修改它。 + '不要使用代码编辑器修改它。 + _ + 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 diff --git a/BLV_Studio/UpdataDevMode.resx b/BLV_Studio/UpdataDevMode.resx new file mode 100644 index 0000000..f37b719 --- /dev/null +++ b/BLV_Studio/UpdataDevMode.resx @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 241, 17 + + + + + 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== + + + + + 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== + + + + 17, 17 + + + + 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== + + + + 129, 17 + + + + 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== + + + \ No newline at end of file diff --git a/BLV_Studio/UpdataDevMode.vb b/BLV_Studio/UpdataDevMode.vb new file mode 100644 index 0000000..f89c5b0 --- /dev/null +++ b/BLV_Studio/UpdataDevMode.vb @@ -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 \ No newline at end of file diff --git a/BLV_Studio/bin/Debug/BLV_Studio.application b/BLV_Studio/bin/Debug/BLV_Studio.application index 43e93d5..121f375 100644 --- a/BLV_Studio/bin/Debug/BLV_Studio.application +++ b/BLV_Studio/bin/Debug/BLV_Studio.application @@ -1,6 +1,6 @@  - + @@ -15,13 +15,13 @@ - + - b2j3yCptM/IwtDNZbmQ03eMqLtYypcflNOwAoIeuns4= + OYC1suCZ7Etako2+s/qGekuT+x0spnOHfhMkyeNgm/c= diff --git a/BLV_Studio/bin/Debug/BLV_Studio.exe b/BLV_Studio/bin/Debug/BLV_Studio.exe index 5ce432f..e66d516 100644 Binary files a/BLV_Studio/bin/Debug/BLV_Studio.exe and b/BLV_Studio/bin/Debug/BLV_Studio.exe differ diff --git a/BLV_Studio/bin/Debug/BLV_Studio.exe.manifest b/BLV_Studio/bin/Debug/BLV_Studio.exe.manifest index 5f9033c..b724168 100644 --- a/BLV_Studio/bin/Debug/BLV_Studio.exe.manifest +++ b/BLV_Studio/bin/Debug/BLV_Studio.exe.manifest @@ -1,10 +1,10 @@  - + - + @@ -102,14 +102,14 @@ - - + + - 2m6WD1RzapB2stzTiTxYYgrYUXuYOZOPy50mr2Xw2jI= + bZrPTZN1qeqsU5SeEhqhsBxl3BFsvhKxFNsWvjHSIsM= diff --git a/BLV_Studio/bin/Debug/BLV_Studio.pdb b/BLV_Studio/bin/Debug/BLV_Studio.pdb index 7e354c3..b59dcfb 100644 Binary files a/BLV_Studio/bin/Debug/BLV_Studio.pdb and b/BLV_Studio/bin/Debug/BLV_Studio.pdb differ diff --git a/BLV_Studio/bin/Debug/app.publish/BLV_Studio.exe b/BLV_Studio/bin/Debug/app.publish/BLV_Studio.exe index 5ce432f..e66d516 100644 Binary files a/BLV_Studio/bin/Debug/app.publish/BLV_Studio.exe and b/BLV_Studio/bin/Debug/app.publish/BLV_Studio.exe differ diff --git a/BLV_Studio/obj/Debug/BLV_Studio.FrmMain.resources b/BLV_Studio/obj/Debug/BLV_Studio.FrmMain.resources index 1d3495e..f714a6c 100644 Binary files a/BLV_Studio/obj/Debug/BLV_Studio.FrmMain.resources and b/BLV_Studio/obj/Debug/BLV_Studio.FrmMain.resources differ diff --git a/BLV_Studio/obj/Debug/BLV_Studio.application b/BLV_Studio/obj/Debug/BLV_Studio.application index 43e93d5..121f375 100644 --- a/BLV_Studio/obj/Debug/BLV_Studio.application +++ b/BLV_Studio/obj/Debug/BLV_Studio.application @@ -1,6 +1,6 @@  - + @@ -15,13 +15,13 @@ - + - b2j3yCptM/IwtDNZbmQ03eMqLtYypcflNOwAoIeuns4= + OYC1suCZ7Etako2+s/qGekuT+x0spnOHfhMkyeNgm/c= diff --git a/BLV_Studio/obj/Debug/BLV_Studio.exe b/BLV_Studio/obj/Debug/BLV_Studio.exe index 5ce432f..e66d516 100644 Binary files a/BLV_Studio/obj/Debug/BLV_Studio.exe and b/BLV_Studio/obj/Debug/BLV_Studio.exe differ diff --git a/BLV_Studio/obj/Debug/BLV_Studio.exe.manifest b/BLV_Studio/obj/Debug/BLV_Studio.exe.manifest index 5f9033c..b724168 100644 --- a/BLV_Studio/obj/Debug/BLV_Studio.exe.manifest +++ b/BLV_Studio/obj/Debug/BLV_Studio.exe.manifest @@ -1,10 +1,10 @@  - + - + @@ -102,14 +102,14 @@ - - + + - 2m6WD1RzapB2stzTiTxYYgrYUXuYOZOPy50mr2Xw2jI= + bZrPTZN1qeqsU5SeEhqhsBxl3BFsvhKxFNsWvjHSIsM= diff --git a/BLV_Studio/obj/Debug/BLV_Studio.pdb b/BLV_Studio/obj/Debug/BLV_Studio.pdb index 7e354c3..b59dcfb 100644 Binary files a/BLV_Studio/obj/Debug/BLV_Studio.pdb and b/BLV_Studio/obj/Debug/BLV_Studio.pdb differ diff --git a/BLV_Studio/obj/Debug/BLV_Studio.vbproj.AssemblyReference.cache b/BLV_Studio/obj/Debug/BLV_Studio.vbproj.AssemblyReference.cache index f5e894a..f22ec4d 100644 Binary files a/BLV_Studio/obj/Debug/BLV_Studio.vbproj.AssemblyReference.cache and b/BLV_Studio/obj/Debug/BLV_Studio.vbproj.AssemblyReference.cache differ diff --git a/BLV_Studio/obj/Debug/BLV_Studio.vbproj.CoreCompileInputs.cache b/BLV_Studio/obj/Debug/BLV_Studio.vbproj.CoreCompileInputs.cache index a0faa79..f34c65f 100644 --- a/BLV_Studio/obj/Debug/BLV_Studio.vbproj.CoreCompileInputs.cache +++ b/BLV_Studio/obj/Debug/BLV_Studio.vbproj.CoreCompileInputs.cache @@ -1 +1 @@ -ff0abe0868aa5b5063eea4701ba76290cbcc136d +ddb2e5772976c0c8c8eefdcf09f0bf1f90bfa111 diff --git a/BLV_Studio/obj/Debug/BLV_Studio.vbproj.FileListAbsolute.txt b/BLV_Studio/obj/Debug/BLV_Studio.vbproj.FileListAbsolute.txt index b97d2fa..fbe51c4 100644 --- a/BLV_Studio/obj/Debug/BLV_Studio.vbproj.FileListAbsolute.txt +++ b/BLV_Studio/obj/Debug/BLV_Studio.vbproj.FileListAbsolute.txt @@ -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 diff --git a/BLV_Studio/obj/Debug/BLV_Studio.vbproj.GenerateResource.cache b/BLV_Studio/obj/Debug/BLV_Studio.vbproj.GenerateResource.cache index 995052c..1183128 100644 Binary files a/BLV_Studio/obj/Debug/BLV_Studio.vbproj.GenerateResource.cache and b/BLV_Studio/obj/Debug/BLV_Studio.vbproj.GenerateResource.cache differ diff --git a/BLV_Studio/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/BLV_Studio/obj/Debug/DesignTimeResolveAssemblyReferences.cache index d19c66f..301b9ee 100644 Binary files a/BLV_Studio/obj/Debug/DesignTimeResolveAssemblyReferences.cache and b/BLV_Studio/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/BLV_Studio/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/BLV_Studio/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index ddad215..f48e286 100644 Binary files a/BLV_Studio/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/BLV_Studio/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/BLV_Studio/publish/BLV_Studio.application b/BLV_Studio/publish/BLV_Studio.application index 723801c..37dcd37 100644 --- a/BLV_Studio/publish/BLV_Studio.application +++ b/BLV_Studio/publish/BLV_Studio.application @@ -1,6 +1,6 @@  - + @@ -14,14 +14,14 @@ - - + + - 9WarJAykhF8iaz1LZ9StU7Dx35QmHU67H3/qnZ/4aBE= + zbPNYKPGfxmfv38h8sVhbBTqeYsOYJPAghcjQVEPpuY= diff --git a/BLV_Studio/publish/index.html b/BLV_Studio/publish/index.html index c7cf564..44e3a8f 100644 --- a/BLV_Studio/publish/index.html +++ b/BLV_Studio/publish/index.html @@ -126,7 +126,7 @@ function CompareVersions(v1, v2)
-
 
名称: 宝易逻辑配置软件
 
版本: 4.4.3.56
 
发行者: chenzhihao
 
+
 
名称: 宝易逻辑配置软件
 
版本: 4.4.3.72
 
发行者: chenzhihao
 
diff --git a/BLV_Studio/publish/setup.exe b/BLV_Studio/publish/setup.exe index 4c879f2..3c92dab 100644 Binary files a/BLV_Studio/publish/setup.exe and b/BLV_Studio/publish/setup.exe differ