初始化项目
This commit is contained in:
BIN
.vs/BLV_Studio/v16/.suo
Normal file
BIN
.vs/BLV_Studio/v16/.suo
Normal file
Binary file not shown.
BIN
.vs/BLV_Studio/v16/Browse.VC.db
Normal file
BIN
.vs/BLV_Studio/v16/Browse.VC.db
Normal file
Binary file not shown.
BIN
.vs/BLV_Studio/v16/Browse.VC.db-shm
Normal file
BIN
.vs/BLV_Studio/v16/Browse.VC.db-shm
Normal file
Binary file not shown.
0
.vs/BLV_Studio/v16/Browse.VC.db-wal
Normal file
0
.vs/BLV_Studio/v16/Browse.VC.db-wal
Normal file
25
BLV_Studio.sln
Normal file
25
BLV_Studio.sln
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.1.32228.430
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "BLV_Studio", "BLV_Studio\BLV_Studio.vbproj", "{B56BE927-D34D-48A8-B360-6F96DBBFD1D5}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{B56BE927-D34D-48A8-B360-6F96DBBFD1D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B56BE927-D34D-48A8-B360-6F96DBBFD1D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B56BE927-D34D-48A8-B360-6F96DBBFD1D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B56BE927-D34D-48A8-B360-6F96DBBFD1D5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {E038A379-3F97-47BC-A912-DAA0956932D9}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
236
BLV_Studio/.Designer.vb
generated
Normal file
236
BLV_Studio/.Designer.vb
generated
Normal file
@@ -0,0 +1,236 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class UCreatelabel
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form 重写 Dispose,以清理组件列表。
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows 窗体设计器所必需的
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||
'可以使用 Windows 窗体设计器修改它。
|
||||
'不要使用代码编辑器修改它。
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.TextBox1 = New System.Windows.Forms.TextBox()
|
||||
Me.ColorDialog1 = New System.Windows.Forms.ColorDialog()
|
||||
Me.Button1 = New System.Windows.Forms.Button()
|
||||
Me.Button2 = New System.Windows.Forms.Button()
|
||||
Me.Button3 = New System.Windows.Forms.Button()
|
||||
Me.Button4 = New System.Windows.Forms.Button()
|
||||
Me.Button5 = New System.Windows.Forms.Button()
|
||||
Me.Button8 = New System.Windows.Forms.Button()
|
||||
Me.Button6 = New System.Windows.Forms.Button()
|
||||
Me.Button7 = New System.Windows.Forms.Button()
|
||||
Me.Button9 = New System.Windows.Forms.Button()
|
||||
Me.Button10 = New System.Windows.Forms.Button()
|
||||
Me.Button11 = New System.Windows.Forms.Button()
|
||||
Me.Button12 = New System.Windows.Forms.Button()
|
||||
Me.Button13 = New System.Windows.Forms.Button()
|
||||
Me.Button14 = New System.Windows.Forms.Button()
|
||||
Me.Button15 = New System.Windows.Forms.Button()
|
||||
Me.SuspendLayout
|
||||
'
|
||||
'TextBox1
|
||||
'
|
||||
Me.TextBox1.Location = New System.Drawing.Point(28, 24)
|
||||
Me.TextBox1.Multiline = true
|
||||
Me.TextBox1.Name = "TextBox1"
|
||||
Me.TextBox1.Size = New System.Drawing.Size(360, 41)
|
||||
Me.TextBox1.TabIndex = 0
|
||||
'
|
||||
'Button1
|
||||
'
|
||||
Me.Button1.BackColor = System.Drawing.SystemColors.ControlLightLight
|
||||
Me.Button1.Location = New System.Drawing.Point(28, 93)
|
||||
Me.Button1.Name = "Button1"
|
||||
Me.Button1.Size = New System.Drawing.Size(35, 36)
|
||||
Me.Button1.TabIndex = 1
|
||||
Me.Button1.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button2
|
||||
'
|
||||
Me.Button2.BackColor = System.Drawing.Color.Coral
|
||||
Me.Button2.Location = New System.Drawing.Point(82, 93)
|
||||
Me.Button2.Name = "Button2"
|
||||
Me.Button2.Size = New System.Drawing.Size(35, 36)
|
||||
Me.Button2.TabIndex = 2
|
||||
Me.Button2.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button3
|
||||
'
|
||||
Me.Button3.BackColor = System.Drawing.SystemColors.ControlText
|
||||
Me.Button3.Location = New System.Drawing.Point(190, 93)
|
||||
Me.Button3.Name = "Button3"
|
||||
Me.Button3.Size = New System.Drawing.Size(35, 36)
|
||||
Me.Button3.TabIndex = 3
|
||||
Me.Button3.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button4
|
||||
'
|
||||
Me.Button4.BackColor = System.Drawing.Color.Crimson
|
||||
Me.Button4.Location = New System.Drawing.Point(244, 93)
|
||||
Me.Button4.Name = "Button4"
|
||||
Me.Button4.Size = New System.Drawing.Size(35, 36)
|
||||
Me.Button4.TabIndex = 4
|
||||
Me.Button4.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button5
|
||||
'
|
||||
Me.Button5.BackColor = System.Drawing.Color.Cornsilk
|
||||
Me.Button5.Location = New System.Drawing.Point(298, 93)
|
||||
Me.Button5.Name = "Button5"
|
||||
Me.Button5.Size = New System.Drawing.Size(35, 36)
|
||||
Me.Button5.TabIndex = 5
|
||||
Me.Button5.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button8
|
||||
'
|
||||
Me.Button8.BackColor = System.Drawing.Color.CornflowerBlue
|
||||
Me.Button8.Location = New System.Drawing.Point(136, 93)
|
||||
Me.Button8.Name = "Button8"
|
||||
Me.Button8.Size = New System.Drawing.Size(35, 36)
|
||||
Me.Button8.TabIndex = 8
|
||||
Me.Button8.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button6
|
||||
'
|
||||
Me.Button6.BackColor = System.Drawing.Color.Cyan
|
||||
Me.Button6.Location = New System.Drawing.Point(352, 93)
|
||||
Me.Button6.Name = "Button6"
|
||||
Me.Button6.Size = New System.Drawing.Size(35, 36)
|
||||
Me.Button6.TabIndex = 9
|
||||
Me.Button6.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button7
|
||||
'
|
||||
Me.Button7.BackColor = System.Drawing.Color.Chartreuse
|
||||
Me.Button7.Location = New System.Drawing.Point(352, 149)
|
||||
Me.Button7.Name = "Button7"
|
||||
Me.Button7.Size = New System.Drawing.Size(35, 36)
|
||||
Me.Button7.TabIndex = 16
|
||||
Me.Button7.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button9
|
||||
'
|
||||
Me.Button9.BackColor = System.Drawing.Color.DarkGreen
|
||||
Me.Button9.Location = New System.Drawing.Point(136, 149)
|
||||
Me.Button9.Name = "Button9"
|
||||
Me.Button9.Size = New System.Drawing.Size(35, 36)
|
||||
Me.Button9.TabIndex = 15
|
||||
Me.Button9.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button10
|
||||
'
|
||||
Me.Button10.BackColor = System.Drawing.Color.NavajoWhite
|
||||
Me.Button10.Location = New System.Drawing.Point(298, 149)
|
||||
Me.Button10.Name = "Button10"
|
||||
Me.Button10.Size = New System.Drawing.Size(35, 36)
|
||||
Me.Button10.TabIndex = 14
|
||||
Me.Button10.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button11
|
||||
'
|
||||
Me.Button11.BackColor = System.Drawing.Color.LightCoral
|
||||
Me.Button11.Location = New System.Drawing.Point(244, 149)
|
||||
Me.Button11.Name = "Button11"
|
||||
Me.Button11.Size = New System.Drawing.Size(35, 36)
|
||||
Me.Button11.TabIndex = 13
|
||||
Me.Button11.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button12
|
||||
'
|
||||
Me.Button12.BackColor = System.Drawing.Color.DarkMagenta
|
||||
Me.Button12.Location = New System.Drawing.Point(190, 149)
|
||||
Me.Button12.Name = "Button12"
|
||||
Me.Button12.Size = New System.Drawing.Size(35, 36)
|
||||
Me.Button12.TabIndex = 12
|
||||
Me.Button12.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button13
|
||||
'
|
||||
Me.Button13.BackColor = System.Drawing.Color.DarkCyan
|
||||
Me.Button13.Location = New System.Drawing.Point(82, 149)
|
||||
Me.Button13.Name = "Button13"
|
||||
Me.Button13.Size = New System.Drawing.Size(35, 36)
|
||||
Me.Button13.TabIndex = 11
|
||||
Me.Button13.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button14
|
||||
'
|
||||
Me.Button14.BackColor = System.Drawing.Color.DarkBlue
|
||||
Me.Button14.Location = New System.Drawing.Point(28, 149)
|
||||
Me.Button14.Name = "Button14"
|
||||
Me.Button14.Size = New System.Drawing.Size(35, 36)
|
||||
Me.Button14.TabIndex = 10
|
||||
Me.Button14.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button15
|
||||
'
|
||||
Me.Button15.Location = New System.Drawing.Point(28, 201)
|
||||
Me.Button15.Name = "Button15"
|
||||
Me.Button15.Size = New System.Drawing.Size(359, 51)
|
||||
Me.Button15.TabIndex = 17
|
||||
Me.Button15.Text = "创建标签"
|
||||
Me.Button15.UseVisualStyleBackColor = true
|
||||
'
|
||||
'UCreatelabel
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 12!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(408, 264)
|
||||
Me.Controls.Add(Me.Button15)
|
||||
Me.Controls.Add(Me.Button7)
|
||||
Me.Controls.Add(Me.Button9)
|
||||
Me.Controls.Add(Me.Button10)
|
||||
Me.Controls.Add(Me.Button11)
|
||||
Me.Controls.Add(Me.Button12)
|
||||
Me.Controls.Add(Me.Button13)
|
||||
Me.Controls.Add(Me.Button14)
|
||||
Me.Controls.Add(Me.Button6)
|
||||
Me.Controls.Add(Me.Button8)
|
||||
Me.Controls.Add(Me.Button5)
|
||||
Me.Controls.Add(Me.Button4)
|
||||
Me.Controls.Add(Me.Button3)
|
||||
Me.Controls.Add(Me.Button2)
|
||||
Me.Controls.Add(Me.Button1)
|
||||
Me.Controls.Add(Me.TextBox1)
|
||||
Me.MaximizeBox = false
|
||||
Me.MinimizeBox = false
|
||||
Me.Name = "UCreatelabel"
|
||||
Me.ShowInTaskbar = false
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
|
||||
Me.Text = "创建标签"
|
||||
Me.ResumeLayout(false)
|
||||
Me.PerformLayout
|
||||
|
||||
End Sub
|
||||
|
||||
Friend WithEvents TextBox1 As TextBox
|
||||
Friend WithEvents ColorDialog1 As ColorDialog
|
||||
Friend WithEvents Button1 As Button
|
||||
Friend WithEvents Button2 As Button
|
||||
Friend WithEvents Button3 As Button
|
||||
Friend WithEvents Button4 As Button
|
||||
Friend WithEvents Button5 As Button
|
||||
Friend WithEvents Button8 As Button
|
||||
Friend WithEvents Button6 As Button
|
||||
Friend WithEvents Button7 As Button
|
||||
Friend WithEvents Button9 As Button
|
||||
Friend WithEvents Button10 As Button
|
||||
Friend WithEvents Button11 As Button
|
||||
Friend WithEvents Button12 As Button
|
||||
Friend WithEvents Button13 As Button
|
||||
Friend WithEvents Button14 As Button
|
||||
Friend WithEvents Button15 As Button
|
||||
End Class
|
||||
131
BLV_Studio/AddMember.Designer.vb
generated
Normal file
131
BLV_Studio/AddMember.Designer.vb
generated
Normal file
@@ -0,0 +1,131 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class AddMember_frm
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form 重写 Dispose,以清理组件列表。
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows 窗体设计器所必需的
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||
'可以使用 Windows 窗体设计器修改它。
|
||||
'不要使用代码编辑器修改它。
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.ComboBox1 = New System.Windows.Forms.ComboBox()
|
||||
Me.Label1 = New System.Windows.Forms.Label()
|
||||
Me.Label3 = New System.Windows.Forms.Label()
|
||||
Me.ComboBox3 = New System.Windows.Forms.ComboBox()
|
||||
Me.Label4 = New System.Windows.Forms.Label()
|
||||
Me.ComboBox4 = New System.Windows.Forms.ComboBox()
|
||||
Me.Button1 = New System.Windows.Forms.Button()
|
||||
Me.SuspendLayout
|
||||
'
|
||||
'ComboBox1
|
||||
'
|
||||
Me.ComboBox1.Font = New System.Drawing.Font("宋体", 12!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
|
||||
Me.ComboBox1.FormattingEnabled = true
|
||||
Me.ComboBox1.Location = New System.Drawing.Point(142, 29)
|
||||
Me.ComboBox1.Name = "ComboBox1"
|
||||
Me.ComboBox1.Size = New System.Drawing.Size(216, 24)
|
||||
Me.ComboBox1.TabIndex = 0
|
||||
'
|
||||
'Label1
|
||||
'
|
||||
Me.Label1.BackColor = System.Drawing.SystemColors.ControlLight
|
||||
Me.Label1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
|
||||
Me.Label1.Location = New System.Drawing.Point(10, 27)
|
||||
Me.Label1.Name = "Label1"
|
||||
Me.Label1.Size = New System.Drawing.Size(131, 26)
|
||||
Me.Label1.TabIndex = 1
|
||||
Me.Label1.Text = "添加到团队的成员:"
|
||||
Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
|
||||
'
|
||||
'Label3
|
||||
'
|
||||
Me.Label3.BackColor = System.Drawing.SystemColors.ControlLight
|
||||
Me.Label3.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
|
||||
Me.Label3.Location = New System.Drawing.Point(10, 101)
|
||||
Me.Label3.Name = "Label3"
|
||||
Me.Label3.Size = New System.Drawing.Size(131, 26)
|
||||
Me.Label3.TabIndex = 5
|
||||
Me.Label3.Text = "添加到项目团队:"
|
||||
Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
|
||||
'
|
||||
'ComboBox3
|
||||
'
|
||||
Me.ComboBox3.Font = New System.Drawing.Font("宋体", 12!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
|
||||
Me.ComboBox3.FormattingEnabled = true
|
||||
Me.ComboBox3.Location = New System.Drawing.Point(142, 103)
|
||||
Me.ComboBox3.Name = "ComboBox3"
|
||||
Me.ComboBox3.Size = New System.Drawing.Size(216, 24)
|
||||
Me.ComboBox3.TabIndex = 4
|
||||
'
|
||||
'Label4
|
||||
'
|
||||
Me.Label4.BackColor = System.Drawing.SystemColors.ControlLight
|
||||
Me.Label4.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
|
||||
Me.Label4.Location = New System.Drawing.Point(10, 64)
|
||||
Me.Label4.Name = "Label4"
|
||||
Me.Label4.Size = New System.Drawing.Size(131, 26)
|
||||
Me.Label4.TabIndex = 7
|
||||
Me.Label4.Text = "成员权限:"
|
||||
Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
|
||||
'
|
||||
'ComboBox4
|
||||
'
|
||||
Me.ComboBox4.Font = New System.Drawing.Font("宋体", 12!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
|
||||
Me.ComboBox4.FormattingEnabled = true
|
||||
Me.ComboBox4.Location = New System.Drawing.Point(142, 66)
|
||||
Me.ComboBox4.Name = "ComboBox4"
|
||||
Me.ComboBox4.Size = New System.Drawing.Size(216, 24)
|
||||
Me.ComboBox4.TabIndex = 6
|
||||
'
|
||||
'Button1
|
||||
'
|
||||
Me.Button1.Location = New System.Drawing.Point(239, 154)
|
||||
Me.Button1.Name = "Button1"
|
||||
Me.Button1.Size = New System.Drawing.Size(119, 41)
|
||||
Me.Button1.TabIndex = 8
|
||||
Me.Button1.Text = "确认添加"
|
||||
Me.Button1.UseVisualStyleBackColor = true
|
||||
'
|
||||
'AddMember_frm
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 12!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(363, 217)
|
||||
Me.Controls.Add(Me.Button1)
|
||||
Me.Controls.Add(Me.Label4)
|
||||
Me.Controls.Add(Me.ComboBox4)
|
||||
Me.Controls.Add(Me.Label3)
|
||||
Me.Controls.Add(Me.ComboBox3)
|
||||
Me.Controls.Add(Me.Label1)
|
||||
Me.Controls.Add(Me.ComboBox1)
|
||||
Me.MaximizeBox = false
|
||||
Me.MinimizeBox = false
|
||||
Me.Name = "AddMember_frm"
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
|
||||
Me.Text = "添加成员"
|
||||
Me.ResumeLayout(false)
|
||||
|
||||
End Sub
|
||||
|
||||
Friend WithEvents ComboBox1 As ComboBox
|
||||
Friend WithEvents Label1 As Label
|
||||
Friend WithEvents Label3 As Label
|
||||
Friend WithEvents ComboBox3 As ComboBox
|
||||
Friend WithEvents Label4 As Label
|
||||
Friend WithEvents ComboBox4 As ComboBox
|
||||
Friend WithEvents Button1 As Button
|
||||
End Class
|
||||
120
BLV_Studio/AddMember.resx
Normal file
120
BLV_Studio/AddMember.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
30
BLV_Studio/AddMember.vb
Normal file
30
BLV_Studio/AddMember.vb
Normal file
@@ -0,0 +1,30 @@
|
||||
Public Class AddMember_frm
|
||||
Public AddUsercmb As List(Of Dictionary(Of String, String))
|
||||
Public Limitscmb As List(Of Dictionary(Of String, String))
|
||||
Public Pojercmb As List(Of Dictionary(Of String, String))
|
||||
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
||||
If ComboBox1.Text.Length < 1 Then
|
||||
MsgBox("未选择添加成员。")
|
||||
Return
|
||||
End If
|
||||
If ComboBox4.Text.Length < 1 Then
|
||||
MsgBox("未选择添加成员权限。")
|
||||
Return
|
||||
End If
|
||||
If ComboBox3.Text.Length < 1 Then
|
||||
MsgBox("未选择成员所属项目。")
|
||||
Return
|
||||
End If
|
||||
|
||||
Me.DialogResult = System.Windows.Forms.DialogResult.OK
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub AddMember_frm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
163
BLV_Studio/Aes128.vb
Normal file
163
BLV_Studio/Aes128.vb
Normal file
@@ -0,0 +1,163 @@
|
||||
Imports System.Security.Cryptography
|
||||
Imports System.Text
|
||||
|
||||
Public Class Aes128
|
||||
'todo:解密秘钥不应出现明文,考虑修改为十六进制数组
|
||||
''' <summary>服务器密钥</summary>
|
||||
Public Shared ReadOnly ServerAesKey As String = "^5GHo96tr5ff&*Hphg7665^fyu&uOhj0j[0[(#%$%%^#DDT#Y8h(*H&-987OygO8yg*yS$&G&aG9*&6g96*&7^RA65s76r*&&G(*(7(Gyg7#7Ff7F*&(*&&^"
|
||||
|
||||
''' <summary>
|
||||
''' 加密文本为Base64编码
|
||||
''' </summary>
|
||||
''' <param name="source">需要加密字符串</param>
|
||||
''' <param name="key">密钥</param>
|
||||
''' <returns></returns>
|
||||
''' <remarks></remarks>
|
||||
Public Shared Function EncryptStr(source As String, key As String) As String
|
||||
|
||||
Dim inBuff As Byte()
|
||||
Dim crypt As ICryptoTransform
|
||||
Dim msp As New MD5CryptoServiceProvider
|
||||
Using encrypt As Aes = Aes.Create("AES")
|
||||
Dim keyBytes() As Byte = msp.ComputeHash(Encoding.UTF8.GetBytes(key))
|
||||
encrypt.BlockSize = keyBytes.Length * 8
|
||||
encrypt.Key = keyBytes
|
||||
encrypt.IV = keyBytes
|
||||
encrypt.Mode = CipherMode.CBC
|
||||
encrypt.Padding = PaddingMode.PKCS7
|
||||
crypt = encrypt.CreateEncryptor()
|
||||
End Using
|
||||
inBuff = Encoding.UTF8.GetBytes(source)
|
||||
msp.Dispose()
|
||||
Return Convert.ToBase64String(crypt.TransformFinalBlock(inBuff, 0, inBuff.Length))
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 加密文本为Base64编码
|
||||
''' </summary>
|
||||
''' <param name="source">需要加密字符串</param>
|
||||
''' <param name="key">密钥</param>
|
||||
''' <returns></returns>
|
||||
Public Shared Function EncryptStr(ByVal source As String, key() As Byte) As String
|
||||
Dim inBuff As Byte()
|
||||
Dim crypt As ICryptoTransform
|
||||
Dim msp As New MD5CryptoServiceProvider
|
||||
Using encrypt As Aes = Aes.Create("AES")
|
||||
Dim keyBytes() As Byte = msp.ComputeHash(key)
|
||||
encrypt.BlockSize = keyBytes.Length * 8
|
||||
encrypt.Key = keyBytes
|
||||
encrypt.IV = keyBytes
|
||||
encrypt.Mode = CipherMode.CBC
|
||||
encrypt.Padding = PaddingMode.PKCS7
|
||||
crypt = encrypt.CreateEncryptor()
|
||||
End Using
|
||||
inBuff = Encoding.UTF8.GetBytes(source)
|
||||
msp.Dispose()
|
||||
Return Convert.ToBase64String(crypt.TransformFinalBlock(inBuff, 0, inBuff.Length))
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 加密文本为Base64编码
|
||||
''' </summary>
|
||||
''' <param name="source">需要加密字符串</param>
|
||||
''' <param name="key">密钥</param>
|
||||
''' <param name="encode">密钥转换字符编码</param>
|
||||
''' <returns></returns>
|
||||
''' <remarks></remarks>
|
||||
Public Shared Function EncryptStr(ByVal source As String, ByVal key As String, ByVal encode As Encoding) As String
|
||||
|
||||
Dim inBuff As Byte()
|
||||
Dim crypt As ICryptoTransform
|
||||
Dim msp As New MD5CryptoServiceProvider
|
||||
Using encrypt As Aes = Aes.Create("AES")
|
||||
Dim keyBytes() As Byte = msp.ComputeHash(encode.GetBytes(key))
|
||||
encrypt.BlockSize = keyBytes.Length * 8
|
||||
encrypt.Key = keyBytes
|
||||
encrypt.IV = keyBytes
|
||||
encrypt.Mode = CipherMode.CBC
|
||||
encrypt.Padding = PaddingMode.PKCS7
|
||||
crypt = encrypt.CreateEncryptor()
|
||||
End Using
|
||||
inBuff = encode.GetBytes(source)
|
||||
msp.Dispose()
|
||||
Return Convert.ToBase64String(crypt.TransformFinalBlock(inBuff, 0, inBuff.Length))
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 解密Base64编码的字符串
|
||||
''' </summary>
|
||||
''' <param name="encodedStr">需要解密字符串</param>
|
||||
''' <param name="key">密钥</param>
|
||||
''' <returns></returns>
|
||||
''' <remarks></remarks>
|
||||
Public Shared Function DecryptStr(ByVal encodedStr As String, ByVal key As String) As String
|
||||
Dim inBuff As Byte()
|
||||
Dim crypt As ICryptoTransform
|
||||
Dim msp As New MD5CryptoServiceProvider
|
||||
Using decrypt As Aes = Aes.Create("AES")
|
||||
Dim keyBytes() As Byte = msp.ComputeHash(Encoding.UTF8.GetBytes(key)) '设置密钥
|
||||
decrypt.BlockSize = keyBytes.Length * 8
|
||||
decrypt.Key = keyBytes
|
||||
decrypt.IV = keyBytes
|
||||
decrypt.Mode = CipherMode.CBC
|
||||
decrypt.Padding = PaddingMode.PKCS7
|
||||
crypt = decrypt.CreateDecryptor()
|
||||
End Using
|
||||
inBuff = Convert.FromBase64String(encodedStr)
|
||||
msp.Dispose()
|
||||
Return Encoding.UTF8.GetString(crypt.TransformFinalBlock(inBuff, 0, inBuff.Length))
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 解密Base64编码的字符串
|
||||
''' </summary>
|
||||
''' <param name="encodedStr">需要解密字符串</param>
|
||||
''' <param name="key">密钥</param>
|
||||
''' <returns></returns>
|
||||
Public Shared Function DecryptStr(encodedStr As String, key() As Byte) As String
|
||||
Dim inBuff As Byte()
|
||||
Dim crypt As ICryptoTransform
|
||||
Dim msp As New MD5CryptoServiceProvider
|
||||
Using decrypt As Aes = Aes.Create("AES")
|
||||
Dim keyBytes() As Byte = msp.ComputeHash(key)
|
||||
decrypt.BlockSize = keyBytes.Length * 8
|
||||
decrypt.Key = keyBytes
|
||||
decrypt.IV = keyBytes
|
||||
decrypt.Mode = CipherMode.CBC
|
||||
decrypt.Padding = PaddingMode.PKCS7
|
||||
crypt = decrypt.CreateDecryptor()
|
||||
End Using
|
||||
inBuff = Convert.FromBase64String(encodedStr)
|
||||
msp.Dispose()
|
||||
Return Encoding.UTF8.GetString(crypt.TransformFinalBlock(inBuff, 0, inBuff.Length))
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 解密Base64编码的字符串
|
||||
''' </summary>
|
||||
''' <param name="encodedStr">需要解密字符串</param>
|
||||
''' <param name="key">密钥</param>
|
||||
''' <param name="encode">密钥转换字符编码</param>
|
||||
''' <returns></returns>
|
||||
''' <remarks></remarks>
|
||||
Public Shared Function DecryptStr(ByVal encodedStr As String, ByVal key As String, ByVal encode As Encoding) As String
|
||||
Dim inBuff As Byte()
|
||||
Dim crypt As ICryptoTransform
|
||||
Dim msp As New MD5CryptoServiceProvider
|
||||
Using decrypt As Aes = Aes.Create("AES")
|
||||
Dim keyBytes() As Byte = msp.ComputeHash(encode.GetBytes(key)) '设置密钥
|
||||
decrypt.BlockSize = keyBytes.Length * 8
|
||||
decrypt.Key = keyBytes
|
||||
decrypt.IV = keyBytes
|
||||
decrypt.Mode = CipherMode.CBC
|
||||
decrypt.Padding = PaddingMode.PKCS7
|
||||
crypt = decrypt.CreateDecryptor()
|
||||
End Using
|
||||
inBuff = Convert.FromBase64String(encodedStr)
|
||||
msp.Dispose()
|
||||
Return encode.GetString(crypt.TransformFinalBlock(inBuff, 0, inBuff.Length))
|
||||
End Function
|
||||
End Class
|
||||
|
||||
|
||||
131
BLV_Studio/App.config
Normal file
131
BLV_Studio/App.config
Normal file
@@ -0,0 +1,131 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
|
||||
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<section name="BLV_Studio.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||
<section name="宝易逻辑配置软件.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<entityFramework>
|
||||
<providers>
|
||||
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
|
||||
<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
|
||||
</providers>
|
||||
</entityFramework>
|
||||
<system.data>
|
||||
<DbProviderFactories>
|
||||
<remove invariant="System.Data.SQLite.EF6" />
|
||||
<add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
|
||||
<remove invariant="System.Data.SQLite" /><add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /></DbProviderFactories>
|
||||
</system.data>
|
||||
<userSettings>
|
||||
<BLV_Studio.My.MySettings>
|
||||
<setting name="IsAutoLogin" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="IsRecordPassWord" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="UserAccount" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="UserPassword" serializeAs="String">
|
||||
<value>132146</value>
|
||||
</setting>
|
||||
<setting name="VerdorName" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="HotelName" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="HotelCode" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="HotelId" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="VenderIndex" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="LastEditXmlFile" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="HotelGroupId" serializeAs="String">
|
||||
<value>5949984</value>
|
||||
</setting>
|
||||
<setting name="RemoteIP" serializeAs="String">
|
||||
<value>192.168.0.23</value>
|
||||
</setting>
|
||||
<setting name="LocalPort1" serializeAs="String">
|
||||
<value>5533</value>
|
||||
</setting>
|
||||
<setting name="User" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="PassWord" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="ProjectCode" serializeAs="String">
|
||||
<value>项目编码</value>
|
||||
</setting>
|
||||
<setting name="UserName" serializeAs="String">
|
||||
<value>酒店名称</value>
|
||||
</setting>
|
||||
<setting name="CHotelName" serializeAs="String">
|
||||
<value>上一次登录的用户名</value>
|
||||
</setting>
|
||||
</BLV_Studio.My.MySettings>
|
||||
<宝易逻辑配置软件.My.MySettings>
|
||||
<setting name="IsAutoLogin" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="IsRecordPassWord" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="UserAccount" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="UserPassword" serializeAs="String">
|
||||
<value>132146</value>
|
||||
</setting>
|
||||
<setting name="VerdorName" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="HotelName" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="HotelCode" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="HotelId" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="VenderIndex" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="LastEditXmlFile" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="HotelGroupId" serializeAs="String">
|
||||
<value>5949984</value>
|
||||
</setting>
|
||||
</宝易逻辑配置软件.My.MySettings>
|
||||
</userSettings>
|
||||
</configuration>
|
||||
169
BLV_Studio/AppLog.vb
Normal file
169
BLV_Studio/AppLog.vb
Normal file
@@ -0,0 +1,169 @@
|
||||
Imports System.IO
|
||||
Imports System.Text
|
||||
|
||||
Public NotInheritable Class AppLog
|
||||
|
||||
''' <summary>日志文件所在父文件夹路径</summary>
|
||||
Private Shared _logPath As String = Application.StartupPath
|
||||
|
||||
''' <summary>日志文件名前缀</summary>
|
||||
Private Shared _logFilePrefix As String = Application.ProductName
|
||||
|
||||
''' <summary>日志文件所在路径</summary>
|
||||
Private Shared _logFilePath As String = $"{LogDirPath}{Path.DirectorySeparatorChar}{LogFilePrefix}_{Date.Now:yyyyMMdd}.Log"
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 保存日志的文件夹完整路径
|
||||
''' </summary>
|
||||
Public Shared Property LogDirPath As String
|
||||
Get
|
||||
If Equals(_logPath, String.Empty) Then
|
||||
_logPath = Application.StartupPath
|
||||
End If
|
||||
Return _logPath
|
||||
End Get
|
||||
Set(value As String)
|
||||
_logPath = value
|
||||
|
||||
_logFilePath = $"{LogDirPath}{Path.DirectorySeparatorChar}{LogFilePrefix}_{Date.Now:yyyyMMdd}.Log"
|
||||
End Set
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' 日志文件前缀
|
||||
''' </summary>
|
||||
Public Shared Property LogFilePrefix As String
|
||||
Get
|
||||
Return _logFilePrefix
|
||||
End Get
|
||||
Set(value As String)
|
||||
_logFilePrefix = value
|
||||
_logFilePath = $"{LogDirPath}{Path.DirectorySeparatorChar}{LogFilePrefix}_{Date.Now:yyyyMMdd}.Log"
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Shared ReadOnly Property LogFilePath() As String
|
||||
Get
|
||||
Return _logFilePath
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 写入错误信息记录日志
|
||||
''' </summary>
|
||||
''' <param name="ex"></param>
|
||||
Public Shared Sub WriteErrorLog(ex As Exception)
|
||||
Dim msg As New StringBuilder
|
||||
|
||||
msg.Append($"{ex.StackTrace} {ex.Message}")
|
||||
|
||||
WriteLog(LogTypes.Error, msg.ToString())
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 写入流程信息记录日志
|
||||
''' </summary>
|
||||
''' <param name="msg"></param>
|
||||
Public Shared Sub WriteDebugLog(msg As String)
|
||||
WriteLog(LogTypes.Debug, msg.ToString())
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 写入流程信息记录日志
|
||||
''' </summary>
|
||||
''' <param name="msg"></param>
|
||||
Public Shared Sub WriteInfoLog(msg As String)
|
||||
WriteLog(LogTypes.Info, msg.ToString())
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 写入警告信息记录日志
|
||||
''' </summary>
|
||||
''' <param name="msg"></param>
|
||||
Public Shared Sub WriteWarningLog(msg As String)
|
||||
WriteLog(LogTypes.Warn, msg.ToString())
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 写入错误信息记录日志
|
||||
''' </summary>
|
||||
''' <param name="msg"></param>
|
||||
Public Shared Sub WriteErrorLog(msg As String)
|
||||
WriteLog(LogTypes.Error, msg.ToString())
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 写入数据库信息记录日志
|
||||
''' </summary>
|
||||
''' <param name="msg"></param>
|
||||
Public Shared Sub WriteFatalLog(msg As String)
|
||||
WriteLog(LogTypes.Fatal, msg.ToString())
|
||||
End Sub
|
||||
|
||||
|
||||
Private Shared ReadOnly LogLock As New Object() '日志锁,防止多线程同时写日志导致冲突
|
||||
|
||||
''' <summary>
|
||||
''' 将信息入到日志
|
||||
''' </summary>
|
||||
''' <param name="logType">日志类型</param>
|
||||
''' <param name="msg">日志内容</param>
|
||||
Public Shared Sub WriteLog(logType As String, msg As String)
|
||||
'写入记录入日志文件
|
||||
SyncLock LogLock
|
||||
Try
|
||||
Dim logString As New StringBuilder
|
||||
|
||||
logString.Append($"[{Date.Now:yyyy-MM-dd HH:mm:ss:fff}]") '日志产生时间
|
||||
|
||||
logString.Append($"[{logType,-6}]") '日志类型
|
||||
|
||||
logString.Append($"[{Process.GetCurrentProcess.Id,-6}]") '日志的进程号
|
||||
|
||||
logString.Append($"[{Threading.Thread.CurrentThread.ManagedThreadId,-4}]") '日志的线程号
|
||||
|
||||
logString.Append(msg) '日志的消息主题
|
||||
|
||||
Using sw As StreamWriter = File.AppendText($"{LogDirPath}{Path.DirectorySeparatorChar}{LogFilePrefix}_{Date.Now:yyyyMMdd}.Log")
|
||||
sw.WriteLine(logString.ToString())
|
||||
End Using
|
||||
|
||||
Catch ex As Exception
|
||||
Console.WriteLine($"Uts WriteLog Error:{ex.Message}")
|
||||
End Try
|
||||
|
||||
End SyncLock
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 写日志
|
||||
''' </summary>
|
||||
Public Shared Sub WriteLog(type As LogTypes, ByVal msg As String)
|
||||
WriteLog(type.ToString(), msg)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 日志类型
|
||||
''' </summary>
|
||||
Public Enum LogTypes
|
||||
''' <summary>调试信息</summary>
|
||||
Debug
|
||||
|
||||
''' <summary>系统运行信息</summary>
|
||||
Info
|
||||
|
||||
''' <summary>警告信息</summary>
|
||||
Warn
|
||||
|
||||
''' <summary>错误信息应该包含对象名、发生错误点所在的方法名称、具体错误信息</summary>
|
||||
[Error]
|
||||
|
||||
''' <summary>致命信息</summary>
|
||||
Fatal
|
||||
End Enum
|
||||
End Class
|
||||
826
BLV_Studio/BLV_Studio.vbproj
Normal file
826
BLV_Studio/BLV_Studio.vbproj
Normal file
@@ -0,0 +1,826 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.props" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{B56BE927-D34D-48A8-B360-6F96DBBFD1D5}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<StartupObject>BLV_Studio.My.MyApplication</StartupObject>
|
||||
<RootNamespace>BLV_Studio</RootNamespace>
|
||||
<AssemblyName>BLV_Studio</AssemblyName>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<MyType>WindowsForms</MyType>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<TargetFrameworkProfile />
|
||||
<IsWebBootstrapper>true</IsWebBootstrapper>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Web</InstallFrom>
|
||||
<UpdateEnabled>true</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>true</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<InstallUrl>http://auth.blv-oa.com/Apps/BLV_Studio/</InstallUrl>
|
||||
<ProductName>宝易逻辑配置软件</ProductName>
|
||||
<PublisherName>chenzhihao</PublisherName>
|
||||
<MinimumRequiredVersion>4.0.0.5</MinimumRequiredVersion>
|
||||
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
|
||||
<WebPage>index.html</WebPage>
|
||||
<ApplicationRevision>8</ApplicationRevision>
|
||||
<ApplicationVersion>4.4.1.8</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<CreateDesktopShortcut>true</CreateDesktopShortcut>
|
||||
<PublishWizardCompleted>true</PublishWizardCompleted>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DocumentationFile>BLV_Studio.xml</DocumentationFile>
|
||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<DefineDebug>false</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DocumentationFile>BLV_Studio.xml</DocumentationFile>
|
||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionExplicit>On</OptionExplicit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionCompare>Text</OptionCompare>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionStrict>Off</OptionStrict>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionInfer>On</OptionInfer>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>favicon.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SignManifests>false</SignManifests>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ManifestCertificateThumbprint>944D26C2C1C1EF3340757489D0CAFE62F0F56E66</ManifestCertificateThumbprint>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<GenerateManifests>true</GenerateManifests>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Alternet.Common.v5, Version=5.1.0.0, Culture=neutral, PublicKeyToken=8032721e70924a63">
|
||||
<HintPath>..\..\..\SourceCode\BLV_Studio\bin\Debug\Alternet.Common.v5.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Alternet.Syntax.Parsers.Advanced.v5, Version=5.1.0.0, Culture=neutral, PublicKeyToken=8032721e70924a63, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\..\SourceCode\BLV_Studio\bin\Debug\Alternet.Syntax.Parsers.Advanced.v5.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Alternet.Syntax.v5, Version=5.1.0.0, Culture=neutral, PublicKeyToken=8032721e70924a63">
|
||||
<HintPath>..\..\..\SourceCode\BLV_Studio\bin\Debug\Alternet.Syntax.v5.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ARSoft.Tools.Net, Version=2.3.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ARSoft.Tools.Net.Dns.2.3.1\lib\netstandard2.0\ARSoft.Tools.Net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AutoFixture, Version=4.18.0.0, Culture=neutral, PublicKeyToken=b24654c590009d4f, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AutoFixture.4.18.1\lib\net452\AutoFixture.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="BouncyCastle.Crypto, Version=1.8.8.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\BouncyCastle.NetCore.1.8.10\lib\net20\BouncyCastle.Crypto.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DevComponents.DotNetBar2">
|
||||
<HintPath>..\..\..\SourceCode\BLV_Studio\bin\Debug\DevComponents.DotNetBar2.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DnsClient, Version=1.7.0.0, Culture=neutral, PublicKeyToken=4574bb5573c51424, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\DnsClient.1.7.0\lib\net471\DnsClient.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DotNetProjects.DhcpServer, Version=2.0.26.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\DotNetProjects.DhcpServer.2.0.26\lib\net40\DotNetProjects.DhcpServer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Fare, Version=2.1.0.0, Culture=neutral, PublicKeyToken=ea68d375bf33a7c8, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Fare.2.1.1\lib\net35\Fare.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="FlexCell, Version=4.4.5.0, Culture=neutral, PublicKeyToken=6f86587eb70ee309, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\UTS_Studio\src\UTS_Core\bin\Debug\FlexCell.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="FluentFTP">
|
||||
<HintPath>.\FluentFTP.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Google.Protobuf, Version=3.14.0.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Google.Protobuf.3.14.0\lib\net45\Google.Protobuf.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="K4os.Compression.LZ4, Version=1.2.6.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\K4os.Compression.LZ4.1.2.6\lib\net46\K4os.Compression.LZ4.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="K4os.Compression.LZ4.Streams, Version=1.2.6.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\K4os.Compression.LZ4.Streams.1.2.6\lib\net46\K4os.Compression.LZ4.Streams.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="K4os.Hash.xxHash, Version=1.0.6.0, Culture=neutral, PublicKeyToken=32cd54395057cec3, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\K4os.Hash.xxHash.1.0.6\lib\net46\K4os.Hash.xxHash.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MD5, Version=2.0.4.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MD5.2.0.4\lib\netstandard2.0\MD5.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Office.Interop.Excel.15.0.4795.1001\lib\net20\Microsoft.Office.Interop.Excel.dll</HintPath>
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Win32.Registry, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Win32.Registry.5.0.0\lib\net461\Microsoft.Win32.Registry.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MySql.Data, Version=8.0.28.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MySql.Data.8.0.28\lib\net48\MySql.Data.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ComponentModel" />
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Configuration.Install" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Data.Linq" />
|
||||
<Reference Include="System.Data.SQLite, Version=1.0.115.5, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\lib\net46\System.Data.SQLite.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Data.SQLite.EF6, Version=1.0.115.5, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Data.SQLite.EF6.1.0.115.5\lib\net46\System.Data.SQLite.EF6.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Data.SQLite.Linq, Version=1.0.115.5, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Data.SQLite.Linq.1.0.115.5\lib\net46\System.Data.SQLite.Linq.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.IO.Compression" />
|
||||
<Reference Include="System.Management" />
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.AccessControl.5.0.0\lib\net461\System.Security.AccessControl.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Transactions" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xaml" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="Ubiety.Dns.Core, Version=4.2.2.0, Culture=neutral, PublicKeyToken=62d65a2efdde5827, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Ubiety.Dns.Core.4.2.2\lib\netstandard2.0\Ubiety.Dns.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Ubiety.Logging.Core, Version=1.2.2.0, Culture=neutral, PublicKeyToken=133e143470e66433, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Ubiety.Logging.Core.1.2.2\lib\net452\Ubiety.Logging.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="UIAutomationProvider" />
|
||||
<Reference Include="WindowsBase" />
|
||||
<Reference Include="WindowsFormsIntegration" />
|
||||
<Reference Include="ZstdNet, Version=1.4.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MySql.Data.8.0.28\lib\net48\ZstdNet.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Import Include="Microsoft.VisualBasic" />
|
||||
<Import Include="System" />
|
||||
<Import Include="System.Collections" />
|
||||
<Import Include="System.Collections.Generic" />
|
||||
<Import Include="System.Data" />
|
||||
<Import Include="System.Drawing" />
|
||||
<Import Include="System.Diagnostics" />
|
||||
<Import Include="System.Windows.Forms" />
|
||||
<Import Include="System.Linq" />
|
||||
<Import Include="System.Xml.Linq" />
|
||||
<Import Include="System.Threading.Tasks" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Aes128.vb" />
|
||||
<Compile Include="AppLog.vb" />
|
||||
<Compile Include="ColorCelect.Designer.vb">
|
||||
<DependentUpon>ColorCelect.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ColorCelect.vb">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Control\BackstageDataSource\BackstageHostListBLL.vb" />
|
||||
<Compile Include="Control\BackstageDataSource\BackstageHostListResultBLL.vb" />
|
||||
<Compile Include="Control\BackstageDataSource\BackstageHotelListBLL.vb" />
|
||||
<Compile Include="Control\BackstageDataSource\BackstageHotelListResultBLL.vb" />
|
||||
<Compile Include="Control\BackstageDataSource\BackstageRoomTypeListBLL.vb" />
|
||||
<Compile Include="Control\BackstageDataSource\BackstageRoomTypeListResultBLL.vb" />
|
||||
<Compile Include="Control\BackstageDataSource\BackstageRoomTypeModalsListBLL.vb" />
|
||||
<Compile Include="Control\BackstageDataSource\BackstageSetHostMACBLL.vb" />
|
||||
<Compile Include="Control\DataClass\CommSocketBLL.vb" />
|
||||
<Compile Include="Control\DataClass\SearchHostsListBLL.vb" />
|
||||
<Compile Include="Control\DataClass\UpgradeBLL.vb" />
|
||||
<Compile Include="Control\DHCP\CxDnsServer.vb" />
|
||||
<Compile Include="Control\DHCP\DhcpServer.vb" />
|
||||
<Compile Include="Control\DHCP\NetworkHelp.vb" />
|
||||
<Compile Include="Control\FrmAboutDialog.Designer.vb">
|
||||
<DependentUpon>FrmAboutDialog.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmAboutDialog.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmAddDevice.Designer.vb">
|
||||
<DependentUpon>FrmAddDevice.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmAddDevice.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmCSeriesConfig.Designer.vb">
|
||||
<DependentUpon>FrmCSeriesConfig.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmCSeriesConfig.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmHotelList.Designer.vb">
|
||||
<DependentUpon>FrmHotelList.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmHotelList.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmMACBindingResults.Designer.vb">
|
||||
<DependentUpon>FrmMACBindingResults.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmMACBindingResults.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmMACDialog.Designer.vb">
|
||||
<DependentUpon>FrmMACDialog.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmMACDialog.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmSerialportSetting.Designer.vb">
|
||||
<DependentUpon>FrmSerialportSetting.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmSerialportSetting.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmTest_BLV-V9.designer.vb">
|
||||
<DependentUpon>FrmTest_BLV-V9.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmTest_BLV-V9.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmTest_C12.Designer.vb">
|
||||
<DependentUpon>FrmTest_C12.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmTest_C12.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmTest_C12_Dimming.Designer.vb">
|
||||
<DependentUpon>FrmTest_C12_Dimming.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmTest_C12_Dimming.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmTest_C5.Designer.vb">
|
||||
<DependentUpon>FrmTest_C5.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmTest_C5.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmTest_C8.Designer.vb">
|
||||
<DependentUpon>FrmTest_C8.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Control\FrmTest_C8.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Control\FTP\UtsFtp.vb" />
|
||||
<Compile Include="Control\HostConfig.vb" />
|
||||
<Compile Include="Control\Interface\IFrmTest.vb" />
|
||||
<Compile Include="Control\Language\MultiLanguageDAL.vb" />
|
||||
<Compile Include="Control\Login\LoginBLL.vb" />
|
||||
<Compile Include="Control\Login\LoginHotelBLL.vb" />
|
||||
<Compile Include="Control\Login\LoginHotelsAuthBLL.vb" />
|
||||
<Compile Include="Control\Login\LoginHotelsBLL.vb" />
|
||||
<Compile Include="Control\Login\LoginHotelsInfoBLL.vb" />
|
||||
<Compile Include="Control\Login\LoginReturnDataBLL.vb" />
|
||||
<Compile Include="Control\Login\LoginUserInfoBLL.vb" />
|
||||
<Compile Include="Control\ModelTest\C12Test_DimmingBLL.vb" />
|
||||
<Compile Include="Control\Module\FunctionModule.vb" />
|
||||
<Compile Include="Control\MsDataSource\BlvMySql.vb" />
|
||||
<Compile Include="Control\MsDataSource\SqlServerDAL.vb" />
|
||||
<Compile Include="Control\MsDataSource\UserInfoListDAL.vb" />
|
||||
<Compile Include="Control\RoomControlSystemAPI.vb" />
|
||||
<Compile Include="Database\MssqlCmdHelper.vb" />
|
||||
<Compile Include="Database\SqliteDataParam.vb" />
|
||||
<Compile Include="Database\MysqlDataParam.vb" />
|
||||
<Compile Include="Database\DbCmdHelper.vb" />
|
||||
<Compile Include="Database\DbExecutor.vb" />
|
||||
<Compile Include="Database\MysqlCmdHelper.vb" />
|
||||
<Compile Include="Database\SqliteCmdHelper.vb" />
|
||||
<Compile Include="Downoading.Designer.vb">
|
||||
<DependentUpon>Downoading.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Downoading.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include=".Designer.vb">
|
||||
<DependentUpon>UCreatelabel.vb</DependentUpon>
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="AddMember.Designer.vb">
|
||||
<DependentUpon>AddMember.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="AddMember.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form2.Designer.vb">
|
||||
<DependentUpon>Form2.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Form2.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LinkFrm.Designer.vb">
|
||||
<DependentUpon>LinkFrm.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="LinkFrm.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LogicalTable.vb" />
|
||||
<Compile Include="My Project\Resources.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Test\DeepCopyHelper.vb" />
|
||||
<Compile Include="Test\GeisControl\gridControl.vb" />
|
||||
<Compile Include="Test\GridTest\ActionParameter.Designer.vb">
|
||||
<DependentUpon>ActionParameter.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\ActionParameter.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\AddDeviceForm\NormalDev.Designer.vb">
|
||||
<DependentUpon>NormalDev.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\AddDeviceForm\NormalDev.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\AddPeripherals.Designer.vb">
|
||||
<DependentUpon>AddPeripherals.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\AddPeripherals.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\ReportingScenario.vb" />
|
||||
<Compile Include="Test\GridTest\CompileTable.vb" />
|
||||
<Compile Include="Test\GridTest\CompositeForm.vb" />
|
||||
<Compile Include="Test\GridTest\DeviceListFrom.Designer.vb">
|
||||
<DependentUpon>DeviceListFrom.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\DeviceListFrom.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\DrSeverGrid.vb" />
|
||||
<Compile Include="Test\GridTest\DTableConfigie.vb" />
|
||||
<Compile Include="Test\GridTest\ExecutionCondition.Designer.vb">
|
||||
<DependentUpon>ExecutionCondition.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\ExecutionCondition.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\PowerSupply.Designer.vb">
|
||||
<DependentUpon>PowerSupply.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\PowerSupply.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\MusicConfigt.Designer.vb">
|
||||
<DependentUpon>MusicConfigt.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\MusicConfigt.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\RuleDetection.vb" />
|
||||
<Compile Include="Test\GridTest\ServiceAttribute.Designer.vb">
|
||||
<DependentUpon>ServiceAttribute.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\ServiceAttribute.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\RuleChecking.vb" />
|
||||
<Compile Include="Test\GridTest\TableInteraction.vb" />
|
||||
<Compile Include="Test\GridTest\MusicArrangement.Designer.vb">
|
||||
<DependentUpon>MusicArrangement.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\MusicArrangement.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Test\GridTest\TableRowTag.vb" />
|
||||
<Compile Include="Test\GridTest\TableServer.vb" />
|
||||
<Compile Include="Test\ParameterTesting.vb" />
|
||||
<Compile Include="Test\TestForm1.designer.vb">
|
||||
<DependentUpon>TestForm1.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Test\TestForm1.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Test\TableCompile.vb" />
|
||||
<Compile Include="UserControl1.Designer.vb">
|
||||
<DependentUpon>UserControl1.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl1.vb">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UserCreateProject.Designer.vb">
|
||||
<DependentUpon>UserCreateProject.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserCreateProject.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UCreatelabel.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FrmReleaseFirmware2.Designer.vb">
|
||||
<DependentUpon>FrmReleaseFirmware2.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="FrmReleaseFirmware2.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FrmReleaseFirmware.Designer.vb">
|
||||
<DependentUpon>FrmReleaseFirmware.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="FrmReleaseFirmware.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="VersionHistory.Designer.vb">
|
||||
<DependentUpon>VersionHistory.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="VersionHistory.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frm_ProjectSync.Designer.vb">
|
||||
<DependentUpon>frm_ProjectSync.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="frm_ProjectSync.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FTP\blvFtpServer.vb" />
|
||||
<Compile Include="FTP\UtsFtp.vb" />
|
||||
<Compile Include="ModelGrid\Command\GridCommand.vb" />
|
||||
<Compile Include="ModelGrid\Command\MoveUpCommand.vb" />
|
||||
<Compile Include="ModelGrid\ConfigActionConcitons.vb" />
|
||||
<Compile Include="ModelGrid\RowNodeCompile.vb" />
|
||||
<Compile Include="ModelGrid\rsmTreeNode.vb" />
|
||||
<Compile Include="PermissionTypes.vb" />
|
||||
<Compile Include="UART\BLV_UartMdule.vb">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UART\Form1.Designer.vb">
|
||||
<DependentUpon>Form1.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UART\Form1.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UART\UartServer.vb" />
|
||||
<Compile Include="Undo\ICommand.vb" />
|
||||
<Compile Include="ModelGrid\DeviceModelInfo.vb" />
|
||||
<Compile Include="EnumExtender.vb" />
|
||||
<Compile Include="FrmChangeHotel.Designer.vb">
|
||||
<DependentUpon>FrmChangeHotel.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="FrmChangeHotel.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FrmLogin.Designer.vb">
|
||||
<DependentUpon>FrmLogin.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="FrmLogin.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FrmMain.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FrmMain.Designer.vb">
|
||||
<DependentUpon>FrmMain.vb</DependentUpon>
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ModelGrid\DeviceObjectClasses.vb" />
|
||||
<Compile Include="ModelGrid\DeviceEventModel.vb" />
|
||||
<Compile Include="HttpMothod.vb" />
|
||||
<Compile Include="LoginInfo\LoginReturn.vb" />
|
||||
<Compile Include="LoginInfo\AccountAuth.vb" />
|
||||
<Compile Include="LoginInfo\HotelAuth.vb" />
|
||||
<Compile Include="LoginInfo\HotelGroup.vb" />
|
||||
<Compile Include="LoginInfo\Hotel.vb" />
|
||||
<Compile Include="LoginInfo\UserInfo.vb" />
|
||||
<Compile Include="ModelGrid\RowNode.vb" />
|
||||
<Compile Include="ModelGrid\RowNodes.vb" />
|
||||
<Compile Include="ModelGrid\UsedDeviceTypes.vb" />
|
||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||
<Compile Include="My Project\Application.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Application.myapp</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Settings.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<Compile Include="ProjectInfo.vb" />
|
||||
<Compile Include="ModelGrid\RowNodeTag.vb" />
|
||||
<Compile Include="TreeViewEx.Designer.vb">
|
||||
<DependentUpon>TreeViewEx.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="TreeViewEx.vb">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Undo\CommandManager.vb" />
|
||||
<Compile Include="ReleaseControl.Designer.vb">
|
||||
<DependentUpon>ReleaseControl.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ReleaseControl.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="XmlSerializer.vb" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="ColorCelect.resx">
|
||||
<DependentUpon>ColorCelect.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Control\FrmAboutDialog.resx">
|
||||
<DependentUpon>FrmAboutDialog.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Control\FrmAddDevice.resx">
|
||||
<DependentUpon>FrmAddDevice.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Control\FrmCSeriesConfig.resx">
|
||||
<DependentUpon>FrmCSeriesConfig.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Control\FrmHotelList.resx">
|
||||
<DependentUpon>FrmHotelList.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Control\FrmMACBindingResults.resx">
|
||||
<DependentUpon>FrmMACBindingResults.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Control\FrmMACDialog.resx">
|
||||
<DependentUpon>FrmMACDialog.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Control\FrmSerialportSetting.resx">
|
||||
<DependentUpon>FrmSerialportSetting.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Control\FrmTest_BLV-V9.resx">
|
||||
<DependentUpon>FrmTest_BLV-V9.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Control\FrmTest_C12.resx">
|
||||
<DependentUpon>FrmTest_C12.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Control\FrmTest_C12_Dimming.resx">
|
||||
<DependentUpon>FrmTest_C12_Dimming.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Control\FrmTest_C5.resx">
|
||||
<DependentUpon>FrmTest_C5.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Control\FrmTest_C8.resx">
|
||||
<DependentUpon>FrmTest_C8.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Downoading.resx">
|
||||
<DependentUpon>Downoading.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="AddMember.resx">
|
||||
<DependentUpon>AddMember.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Form2.resx">
|
||||
<DependentUpon>Form2.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="LinkFrm.resx">
|
||||
<DependentUpon>LinkFrm.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Test\GridTest\ActionParameter.resx">
|
||||
<DependentUpon>ActionParameter.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Test\GridTest\AddDeviceForm\NormalDev.resx">
|
||||
<DependentUpon>NormalDev.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Test\GridTest\AddPeripherals.resx">
|
||||
<DependentUpon>AddPeripherals.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Test\GridTest\DeviceListFrom.resx">
|
||||
<DependentUpon>DeviceListFrom.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Test\GridTest\ExecutionCondition.resx">
|
||||
<DependentUpon>ExecutionCondition.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Test\GridTest\PowerSupply.resx">
|
||||
<DependentUpon>PowerSupply.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Test\GridTest\MusicConfigt.resx">
|
||||
<DependentUpon>MusicConfigt.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Test\GridTest\ServiceAttribute.resx">
|
||||
<DependentUpon>ServiceAttribute.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Test\GridTest\MusicArrangement.resx">
|
||||
<DependentUpon>MusicArrangement.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Test\TestForm1.resx">
|
||||
<DependentUpon>TestForm1.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="UserControl1.resx">
|
||||
<DependentUpon>UserControl1.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="UserCreateProject.resx">
|
||||
<DependentUpon>UserCreateProject.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="FrmReleaseFirmware2.resx">
|
||||
<DependentUpon>FrmReleaseFirmware2.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="FrmReleaseFirmware.resx">
|
||||
<DependentUpon>FrmReleaseFirmware.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="UCreatelabel.resx">
|
||||
<DependentUpon>UCreatelabel.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="VersionHistory.resx">
|
||||
<DependentUpon>VersionHistory.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="FrmChangeHotel.resx">
|
||||
<DependentUpon>FrmChangeHotel.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="FrmLogin.resx">
|
||||
<DependentUpon>FrmLogin.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="FrmMain.resx">
|
||||
<DependentUpon>FrmMain.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="frm_ProjectSync.resx">
|
||||
<DependentUpon>frm_ProjectSync.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="My Project\licenses.licx" />
|
||||
<EmbeddedResource Include="My Project\Resources.resx">
|
||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
<SubType>Designer</SubType>
|
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="UART\BLV_UartMdule.resx">
|
||||
<DependentUpon>BLV_UartMdule.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="UART\Form1.resx">
|
||||
<DependentUpon>Form1.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ReleaseControl.resx">
|
||||
<DependentUpon>ReleaseControl.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="LICENSE" />
|
||||
<None Include="My Project\app.manifest" />
|
||||
<None Include="My Project\Application.myapp">
|
||||
<Generator>MyApplicationCodeGenerator</Generator>
|
||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="My Project\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<CustomToolNamespace>My</CustomToolNamespace>
|
||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="App.config" />
|
||||
<None Include="NOTICE" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\.editorconfig" />
|
||||
<None Include="Resources\正确-绿色-64x64.png" />
|
||||
<None Include="Resources\01664.ico" />
|
||||
<None Include="Resources\01088.ico" />
|
||||
<None Include="bin\Debug\Images\Syncerror.png" />
|
||||
<None Include="bin\Debug\Images\Syncing.png" />
|
||||
<None Include="bin\Debug\Images\SyncTrue.png" />
|
||||
<Content Include="favicon.ico" />
|
||||
<Content Include="Icon1.ico" />
|
||||
<EmbeddedResource Include="Image1\Error.bmp">
|
||||
<CustomToolNamespace>BLV_Studio</CustomToolNamespace>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Image1\OK.bmp">
|
||||
<CustomToolNamespace>BLV_Studio</CustomToolNamespace>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Image1\Warning.bmp">
|
||||
<CustomToolNamespace>BLV_Studio</CustomToolNamespace>
|
||||
</EmbeddedResource>
|
||||
<Content Include="imageres.dll%28114%29.ico" />
|
||||
<None Include="Resources\0188.gif" />
|
||||
<None Include="Resources\01881.gif" />
|
||||
<None Include="Resources\1040.png" />
|
||||
<None Include="Resources\1041.png" />
|
||||
<None Include="Resources\10411.png" />
|
||||
<Content Include="logo.ico" />
|
||||
<None Include="Resources\6.png" />
|
||||
<None Include="Resources\5.png" />
|
||||
<Content Include="Resources\AlignmentCenterVertically_16x16.png" />
|
||||
<Content Include="Resources\AlignmentLeft_16x16.png" />
|
||||
<Content Include="Resources\AlignmentRight_16x16.png" />
|
||||
<Content Include="Resources\AttachmentObject_16x16.png" />
|
||||
<Content Include="Resources\Background_16x16.png" />
|
||||
<Content Include="Resources\Error.bmp" />
|
||||
<Content Include="Resources\FontBold_16.png" />
|
||||
<Content Include="Resources\FontItalic_16.png" />
|
||||
<Content Include="Resources\format_Bold_16xLG.png" />
|
||||
<Content Include="Resources\format_Italics_16xLG.png" />
|
||||
<Content Include="Resources\InsertImage_16x16.png" />
|
||||
<Content Include="Resources\Label.png" />
|
||||
<Content Include="Resources\ListBullets_16x16.png" />
|
||||
<Content Include="Resources\ListNumbers_16x16.png" />
|
||||
<None Include="Resources\login.png" />
|
||||
<None Include="Resources\login6.png" />
|
||||
<Content Include="Resources\OK.bmp" />
|
||||
<Content Include="Resources\Save_6530.png" />
|
||||
<Content Include="Resources\Strikeout_16x16.png" />
|
||||
<None Include="Resources\Syncerror.png" />
|
||||
<None Include="Resources\Syncing.png" />
|
||||
<None Include="Resources\SyncTrue.png" />
|
||||
<Content Include="Resources\VSO_FontColorPicker_withBar_16x.png" />
|
||||
<Content Include="Resources\Warning.bmp" />
|
||||
<None Include="宝易\1.png" />
|
||||
<None Include="宝易\2.png" />
|
||||
<None Include="宝易\3.png" />
|
||||
<None Include="宝易\4.png" />
|
||||
<None Include="宝易\5.png" />
|
||||
<None Include="宝易\6.png" />
|
||||
<None Include="宝易\LOGO图标.png" />
|
||||
<None Include="Resources\微信图片_20231124154349.png" />
|
||||
<Content Include="宝易\favicon.ico" />
|
||||
<Content Include="版本说明.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.8">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Microsoft .NET Framework 4.8 %28x86 和 x64%29</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="gif\" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.props'))" />
|
||||
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\EmptyLicensesLicx.3.0.0\build\EmptyLicensesLicx.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EmptyLicensesLicx.3.0.0\build\EmptyLicensesLicx.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
|
||||
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
|
||||
<Import Project="..\packages\EmptyLicensesLicx.3.0.0\build\EmptyLicensesLicx.targets" Condition="Exists('..\packages\EmptyLicensesLicx.3.0.0\build\EmptyLicensesLicx.targets')" />
|
||||
</Project>
|
||||
17
BLV_Studio/BLV_Studio.vbproj.user
Normal file
17
BLV_Studio/BLV_Studio.vbproj.user
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<PublishUrlHistory>publish\</PublishUrlHistory>
|
||||
<InstallUrlHistory>http://auth.blv-oa.com/Apps/BLV_Studio/</InstallUrlHistory>
|
||||
<SupportUrlHistory />
|
||||
<UpdateUrlHistory />
|
||||
<BootstrapperUrlHistory />
|
||||
<ErrorReportUrlHistory />
|
||||
<FallbackCulture>zh-CN</FallbackCulture>
|
||||
<VerifyUploadedFiles>false</VerifyUploadedFiles>
|
||||
<ProjectView>ShowAllFiles</ProjectView>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<EnableSecurityDebugging>false</EnableSecurityDebugging>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
BIN
BLV_Studio/BLV_Studio_TemporaryKey.pfx
Normal file
BIN
BLV_Studio/BLV_Studio_TemporaryKey.pfx
Normal file
Binary file not shown.
587
BLV_Studio/ColorCelect.Designer.vb
generated
Normal file
587
BLV_Studio/ColorCelect.Designer.vb
generated
Normal file
@@ -0,0 +1,587 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class ColorCelect
|
||||
Inherits System.Windows.Forms.UserControl
|
||||
|
||||
'UserControl 重写释放以清理组件列表。
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows 窗体设计器所必需的
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||
'可以使用 Windows 窗体设计器修改它。
|
||||
'不要使用代码编辑器修改它。
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.Button1 = New System.Windows.Forms.Button()
|
||||
Me.Button2 = New System.Windows.Forms.Button()
|
||||
Me.Button3 = New System.Windows.Forms.Button()
|
||||
Me.Button4 = New System.Windows.Forms.Button()
|
||||
Me.Button5 = New System.Windows.Forms.Button()
|
||||
Me.Button6 = New System.Windows.Forms.Button()
|
||||
Me.Button10 = New System.Windows.Forms.Button()
|
||||
Me.Button11 = New System.Windows.Forms.Button()
|
||||
Me.Button12 = New System.Windows.Forms.Button()
|
||||
Me.Button13 = New System.Windows.Forms.Button()
|
||||
Me.Button14 = New System.Windows.Forms.Button()
|
||||
Me.Button15 = New System.Windows.Forms.Button()
|
||||
Me.Button16 = New System.Windows.Forms.Button()
|
||||
Me.Button17 = New System.Windows.Forms.Button()
|
||||
Me.Button18 = New System.Windows.Forms.Button()
|
||||
Me.Button19 = New System.Windows.Forms.Button()
|
||||
Me.Button20 = New System.Windows.Forms.Button()
|
||||
Me.Button21 = New System.Windows.Forms.Button()
|
||||
Me.Button7 = New System.Windows.Forms.Button()
|
||||
Me.Button8 = New System.Windows.Forms.Button()
|
||||
Me.Button9 = New System.Windows.Forms.Button()
|
||||
Me.Button22 = New System.Windows.Forms.Button()
|
||||
Me.Button23 = New System.Windows.Forms.Button()
|
||||
Me.Button24 = New System.Windows.Forms.Button()
|
||||
Me.Button25 = New System.Windows.Forms.Button()
|
||||
Me.Button26 = New System.Windows.Forms.Button()
|
||||
Me.Button27 = New System.Windows.Forms.Button()
|
||||
Me.Button28 = New System.Windows.Forms.Button()
|
||||
Me.Button29 = New System.Windows.Forms.Button()
|
||||
Me.Button30 = New System.Windows.Forms.Button()
|
||||
Me.Button31 = New System.Windows.Forms.Button()
|
||||
Me.Button32 = New System.Windows.Forms.Button()
|
||||
Me.Button33 = New System.Windows.Forms.Button()
|
||||
Me.Button34 = New System.Windows.Forms.Button()
|
||||
Me.Button35 = New System.Windows.Forms.Button()
|
||||
Me.Button36 = New System.Windows.Forms.Button()
|
||||
Me.R_num = New System.Windows.Forms.NumericUpDown()
|
||||
Me.G_num = New System.Windows.Forms.NumericUpDown()
|
||||
Me.B_num = New System.Windows.Forms.NumericUpDown()
|
||||
Me.SelectColor = New System.Windows.Forms.Button()
|
||||
Me.Button38 = New System.Windows.Forms.Button()
|
||||
Me.Label1 = New System.Windows.Forms.Label()
|
||||
Me.Label2 = New System.Windows.Forms.Label()
|
||||
Me.Label3 = New System.Windows.Forms.Label()
|
||||
Me.Button37 = New System.Windows.Forms.Button()
|
||||
CType(Me.R_num,System.ComponentModel.ISupportInitialize).BeginInit
|
||||
CType(Me.G_num,System.ComponentModel.ISupportInitialize).BeginInit
|
||||
CType(Me.B_num,System.ComponentModel.ISupportInitialize).BeginInit
|
||||
Me.SuspendLayout
|
||||
'
|
||||
'Button1
|
||||
'
|
||||
Me.Button1.BackColor = System.Drawing.Color.White
|
||||
Me.Button1.Location = New System.Drawing.Point(3, 3)
|
||||
Me.Button1.Name = "Button1"
|
||||
Me.Button1.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button1.TabIndex = 0
|
||||
Me.Button1.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button2
|
||||
'
|
||||
Me.Button2.BackColor = System.Drawing.Color.FromArgb(CType(CType(255,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(192,Byte),Integer))
|
||||
Me.Button2.Location = New System.Drawing.Point(33, 3)
|
||||
Me.Button2.Name = "Button2"
|
||||
Me.Button2.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button2.TabIndex = 1
|
||||
Me.Button2.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button3
|
||||
'
|
||||
Me.Button3.BackColor = System.Drawing.Color.FromArgb(CType(CType(192,Byte),Integer), CType(CType(255,Byte),Integer), CType(CType(192,Byte),Integer))
|
||||
Me.Button3.Location = New System.Drawing.Point(63, 3)
|
||||
Me.Button3.Name = "Button3"
|
||||
Me.Button3.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button3.TabIndex = 2
|
||||
Me.Button3.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button4
|
||||
'
|
||||
Me.Button4.BackColor = System.Drawing.Color.FromArgb(CType(CType(192,Byte),Integer), CType(CType(255,Byte),Integer), CType(CType(255,Byte),Integer))
|
||||
Me.Button4.Location = New System.Drawing.Point(93, 3)
|
||||
Me.Button4.Name = "Button4"
|
||||
Me.Button4.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button4.TabIndex = 3
|
||||
Me.Button4.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button5
|
||||
'
|
||||
Me.Button5.BackColor = System.Drawing.Color.FromArgb(CType(CType(192,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(255,Byte),Integer))
|
||||
Me.Button5.Location = New System.Drawing.Point(123, 3)
|
||||
Me.Button5.Name = "Button5"
|
||||
Me.Button5.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button5.TabIndex = 4
|
||||
Me.Button5.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button6
|
||||
'
|
||||
Me.Button6.BackColor = System.Drawing.Color.FromArgb(CType(CType(255,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(255,Byte),Integer))
|
||||
Me.Button6.Location = New System.Drawing.Point(153, 3)
|
||||
Me.Button6.Name = "Button6"
|
||||
Me.Button6.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button6.TabIndex = 5
|
||||
Me.Button6.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button10
|
||||
'
|
||||
Me.Button10.BackColor = System.Drawing.Color.FromArgb(CType(CType(255,Byte),Integer), CType(CType(224,Byte),Integer), CType(CType(192,Byte),Integer))
|
||||
Me.Button10.Location = New System.Drawing.Point(183, 3)
|
||||
Me.Button10.Name = "Button10"
|
||||
Me.Button10.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button10.TabIndex = 9
|
||||
Me.Button10.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button11
|
||||
'
|
||||
Me.Button11.BackColor = System.Drawing.Color.FromArgb(CType(CType(128,Byte),Integer), CType(CType(64,Byte),Integer), CType(CType(64,Byte),Integer))
|
||||
Me.Button11.Location = New System.Drawing.Point(243, 3)
|
||||
Me.Button11.Name = "Button11"
|
||||
Me.Button11.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button11.TabIndex = 10
|
||||
Me.Button11.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button12
|
||||
'
|
||||
Me.Button12.BackColor = System.Drawing.Color.FromArgb(CType(CType(255,Byte),Integer), CType(CType(255,Byte),Integer), CType(CType(192,Byte),Integer))
|
||||
Me.Button12.Location = New System.Drawing.Point(213, 3)
|
||||
Me.Button12.Name = "Button12"
|
||||
Me.Button12.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button12.TabIndex = 11
|
||||
Me.Button12.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button13
|
||||
'
|
||||
Me.Button13.BackColor = System.Drawing.Color.FromArgb(CType(CType(255,Byte),Integer), CType(CType(255,Byte),Integer), CType(CType(128,Byte),Integer))
|
||||
Me.Button13.Location = New System.Drawing.Point(213, 34)
|
||||
Me.Button13.Name = "Button13"
|
||||
Me.Button13.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button13.TabIndex = 20
|
||||
Me.Button13.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button14
|
||||
'
|
||||
Me.Button14.BackColor = System.Drawing.Color.FromArgb(CType(CType(64,Byte),Integer), CType(CType(64,Byte),Integer), CType(CType(0,Byte),Integer))
|
||||
Me.Button14.Location = New System.Drawing.Point(243, 34)
|
||||
Me.Button14.Name = "Button14"
|
||||
Me.Button14.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button14.TabIndex = 19
|
||||
Me.Button14.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button15
|
||||
'
|
||||
Me.Button15.BackColor = System.Drawing.Color.FromArgb(CType(CType(255,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(128,Byte),Integer))
|
||||
Me.Button15.Location = New System.Drawing.Point(183, 34)
|
||||
Me.Button15.Name = "Button15"
|
||||
Me.Button15.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button15.TabIndex = 18
|
||||
Me.Button15.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button16
|
||||
'
|
||||
Me.Button16.BackColor = System.Drawing.Color.FromArgb(CType(CType(255,Byte),Integer), CType(CType(128,Byte),Integer), CType(CType(255,Byte),Integer))
|
||||
Me.Button16.Location = New System.Drawing.Point(153, 34)
|
||||
Me.Button16.Name = "Button16"
|
||||
Me.Button16.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button16.TabIndex = 17
|
||||
Me.Button16.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button17
|
||||
'
|
||||
Me.Button17.BackColor = System.Drawing.Color.FromArgb(CType(CType(128,Byte),Integer), CType(CType(128,Byte),Integer), CType(CType(255,Byte),Integer))
|
||||
Me.Button17.Location = New System.Drawing.Point(123, 34)
|
||||
Me.Button17.Name = "Button17"
|
||||
Me.Button17.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button17.TabIndex = 16
|
||||
Me.Button17.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button18
|
||||
'
|
||||
Me.Button18.BackColor = System.Drawing.Color.FromArgb(CType(CType(128,Byte),Integer), CType(CType(255,Byte),Integer), CType(CType(255,Byte),Integer))
|
||||
Me.Button18.Location = New System.Drawing.Point(93, 34)
|
||||
Me.Button18.Name = "Button18"
|
||||
Me.Button18.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button18.TabIndex = 15
|
||||
Me.Button18.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button19
|
||||
'
|
||||
Me.Button19.BackColor = System.Drawing.Color.FromArgb(CType(CType(128,Byte),Integer), CType(CType(255,Byte),Integer), CType(CType(128,Byte),Integer))
|
||||
Me.Button19.Location = New System.Drawing.Point(63, 34)
|
||||
Me.Button19.Name = "Button19"
|
||||
Me.Button19.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button19.TabIndex = 14
|
||||
Me.Button19.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button20
|
||||
'
|
||||
Me.Button20.BackColor = System.Drawing.Color.FromArgb(CType(CType(255,Byte),Integer), CType(CType(128,Byte),Integer), CType(CType(128,Byte),Integer))
|
||||
Me.Button20.Location = New System.Drawing.Point(33, 34)
|
||||
Me.Button20.Name = "Button20"
|
||||
Me.Button20.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button20.TabIndex = 13
|
||||
Me.Button20.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button21
|
||||
'
|
||||
Me.Button21.BackColor = System.Drawing.Color.Silver
|
||||
Me.Button21.Location = New System.Drawing.Point(3, 34)
|
||||
Me.Button21.Name = "Button21"
|
||||
Me.Button21.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button21.TabIndex = 12
|
||||
Me.Button21.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button7
|
||||
'
|
||||
Me.Button7.BackColor = System.Drawing.Color.Yellow
|
||||
Me.Button7.Location = New System.Drawing.Point(213, 65)
|
||||
Me.Button7.Name = "Button7"
|
||||
Me.Button7.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button7.TabIndex = 29
|
||||
Me.Button7.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button8
|
||||
'
|
||||
Me.Button8.BackColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(64,Byte),Integer), CType(CType(0,Byte),Integer))
|
||||
Me.Button8.Location = New System.Drawing.Point(243, 65)
|
||||
Me.Button8.Name = "Button8"
|
||||
Me.Button8.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button8.TabIndex = 28
|
||||
Me.Button8.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button9
|
||||
'
|
||||
Me.Button9.BackColor = System.Drawing.Color.FromArgb(CType(CType(255,Byte),Integer), CType(CType(128,Byte),Integer), CType(CType(0,Byte),Integer))
|
||||
Me.Button9.Location = New System.Drawing.Point(183, 65)
|
||||
Me.Button9.Name = "Button9"
|
||||
Me.Button9.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button9.TabIndex = 27
|
||||
Me.Button9.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button22
|
||||
'
|
||||
Me.Button22.BackColor = System.Drawing.Color.Magenta
|
||||
Me.Button22.Location = New System.Drawing.Point(153, 65)
|
||||
Me.Button22.Name = "Button22"
|
||||
Me.Button22.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button22.TabIndex = 26
|
||||
Me.Button22.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button23
|
||||
'
|
||||
Me.Button23.BackColor = System.Drawing.Color.Blue
|
||||
Me.Button23.Location = New System.Drawing.Point(123, 65)
|
||||
Me.Button23.Name = "Button23"
|
||||
Me.Button23.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button23.TabIndex = 25
|
||||
Me.Button23.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button24
|
||||
'
|
||||
Me.Button24.BackColor = System.Drawing.Color.Aqua
|
||||
Me.Button24.Location = New System.Drawing.Point(93, 65)
|
||||
Me.Button24.Name = "Button24"
|
||||
Me.Button24.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button24.TabIndex = 24
|
||||
Me.Button24.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button25
|
||||
'
|
||||
Me.Button25.BackColor = System.Drawing.Color.Lime
|
||||
Me.Button25.Location = New System.Drawing.Point(63, 65)
|
||||
Me.Button25.Name = "Button25"
|
||||
Me.Button25.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button25.TabIndex = 23
|
||||
Me.Button25.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button26
|
||||
'
|
||||
Me.Button26.BackColor = System.Drawing.Color.Red
|
||||
Me.Button26.Location = New System.Drawing.Point(33, 65)
|
||||
Me.Button26.Name = "Button26"
|
||||
Me.Button26.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button26.TabIndex = 22
|
||||
Me.Button26.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button27
|
||||
'
|
||||
Me.Button27.BackColor = System.Drawing.Color.FromArgb(CType(CType(64,Byte),Integer), CType(CType(64,Byte),Integer), CType(CType(64,Byte),Integer))
|
||||
Me.Button27.Location = New System.Drawing.Point(3, 65)
|
||||
Me.Button27.Name = "Button27"
|
||||
Me.Button27.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button27.TabIndex = 21
|
||||
Me.Button27.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button28
|
||||
'
|
||||
Me.Button28.BackColor = System.Drawing.Color.FromArgb(CType(CType(192,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
|
||||
Me.Button28.Location = New System.Drawing.Point(213, 96)
|
||||
Me.Button28.Name = "Button28"
|
||||
Me.Button28.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button28.TabIndex = 38
|
||||
Me.Button28.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button29
|
||||
'
|
||||
Me.Button29.BackColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(64,Byte),Integer), CType(CType(64,Byte),Integer))
|
||||
Me.Button29.Location = New System.Drawing.Point(243, 96)
|
||||
Me.Button29.Name = "Button29"
|
||||
Me.Button29.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button29.TabIndex = 37
|
||||
Me.Button29.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button30
|
||||
'
|
||||
Me.Button30.BackColor = System.Drawing.Color.FromArgb(CType(CType(192,Byte),Integer), CType(CType(64,Byte),Integer), CType(CType(0,Byte),Integer))
|
||||
Me.Button30.Location = New System.Drawing.Point(183, 96)
|
||||
Me.Button30.Name = "Button30"
|
||||
Me.Button30.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button30.TabIndex = 36
|
||||
Me.Button30.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button31
|
||||
'
|
||||
Me.Button31.BackColor = System.Drawing.Color.FromArgb(CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer))
|
||||
Me.Button31.Location = New System.Drawing.Point(153, 96)
|
||||
Me.Button31.Name = "Button31"
|
||||
Me.Button31.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button31.TabIndex = 35
|
||||
Me.Button31.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button32
|
||||
'
|
||||
Me.Button32.BackColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer))
|
||||
Me.Button32.Location = New System.Drawing.Point(123, 96)
|
||||
Me.Button32.Name = "Button32"
|
||||
Me.Button32.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button32.TabIndex = 34
|
||||
Me.Button32.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button33
|
||||
'
|
||||
Me.Button33.BackColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(192,Byte),Integer))
|
||||
Me.Button33.Location = New System.Drawing.Point(93, 96)
|
||||
Me.Button33.Name = "Button33"
|
||||
Me.Button33.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button33.TabIndex = 33
|
||||
Me.Button33.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button34
|
||||
'
|
||||
Me.Button34.BackColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
|
||||
Me.Button34.Location = New System.Drawing.Point(63, 96)
|
||||
Me.Button34.Name = "Button34"
|
||||
Me.Button34.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button34.TabIndex = 32
|
||||
Me.Button34.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button35
|
||||
'
|
||||
Me.Button35.BackColor = System.Drawing.Color.FromArgb(CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer), CType(CType(0,Byte),Integer))
|
||||
Me.Button35.Location = New System.Drawing.Point(33, 96)
|
||||
Me.Button35.Name = "Button35"
|
||||
Me.Button35.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button35.TabIndex = 31
|
||||
Me.Button35.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button36
|
||||
'
|
||||
Me.Button36.BackColor = System.Drawing.Color.Black
|
||||
Me.Button36.Location = New System.Drawing.Point(3, 96)
|
||||
Me.Button36.Name = "Button36"
|
||||
Me.Button36.Size = New System.Drawing.Size(25, 25)
|
||||
Me.Button36.TabIndex = 30
|
||||
Me.Button36.UseVisualStyleBackColor = false
|
||||
'
|
||||
'R_num
|
||||
'
|
||||
Me.R_num.AutoSize = true
|
||||
Me.R_num.Location = New System.Drawing.Point(64, 130)
|
||||
Me.R_num.Maximum = New Decimal(New Integer() {255, 0, 0, 0})
|
||||
Me.R_num.Name = "R_num"
|
||||
Me.R_num.Size = New System.Drawing.Size(50, 21)
|
||||
Me.R_num.TabIndex = 39
|
||||
Me.R_num.Value = New Decimal(New Integer() {200, 0, 0, 0})
|
||||
'
|
||||
'G_num
|
||||
'
|
||||
Me.G_num.AutoSize = true
|
||||
Me.G_num.Location = New System.Drawing.Point(137, 130)
|
||||
Me.G_num.Maximum = New Decimal(New Integer() {255, 0, 0, 0})
|
||||
Me.G_num.Name = "G_num"
|
||||
Me.G_num.Size = New System.Drawing.Size(50, 21)
|
||||
Me.G_num.TabIndex = 40
|
||||
Me.G_num.Value = New Decimal(New Integer() {100, 0, 0, 0})
|
||||
'
|
||||
'B_num
|
||||
'
|
||||
Me.B_num.AutoSize = true
|
||||
Me.B_num.Location = New System.Drawing.Point(210, 128)
|
||||
Me.B_num.Maximum = New Decimal(New Integer() {255, 0, 0, 0})
|
||||
Me.B_num.Name = "B_num"
|
||||
Me.B_num.Size = New System.Drawing.Size(50, 21)
|
||||
Me.B_num.TabIndex = 42
|
||||
Me.B_num.Value = New Decimal(New Integer() {10, 0, 0, 0})
|
||||
'
|
||||
'SelectColor
|
||||
'
|
||||
Me.SelectColor.BackColor = System.Drawing.Color.Black
|
||||
Me.SelectColor.Location = New System.Drawing.Point(3, 130)
|
||||
Me.SelectColor.Name = "SelectColor"
|
||||
Me.SelectColor.Size = New System.Drawing.Size(36, 40)
|
||||
Me.SelectColor.TabIndex = 43
|
||||
Me.SelectColor.UseVisualStyleBackColor = false
|
||||
'
|
||||
'Button38
|
||||
'
|
||||
Me.Button38.Location = New System.Drawing.Point(137, 155)
|
||||
Me.Button38.Name = "Button38"
|
||||
Me.Button38.Size = New System.Drawing.Size(59, 32)
|
||||
Me.Button38.TabIndex = 44
|
||||
Me.Button38.Text = "取色"
|
||||
Me.Button38.UseVisualStyleBackColor = true
|
||||
'
|
||||
'Label1
|
||||
'
|
||||
Me.Label1.AutoSize = true
|
||||
Me.Label1.Location = New System.Drawing.Point(44, 130)
|
||||
Me.Label1.Name = "Label1"
|
||||
Me.Label1.Size = New System.Drawing.Size(17, 12)
|
||||
Me.Label1.TabIndex = 45
|
||||
Me.Label1.Text = "R:"
|
||||
'
|
||||
'Label2
|
||||
'
|
||||
Me.Label2.AutoSize = true
|
||||
Me.Label2.Location = New System.Drawing.Point(117, 130)
|
||||
Me.Label2.Name = "Label2"
|
||||
Me.Label2.Size = New System.Drawing.Size(17, 12)
|
||||
Me.Label2.TabIndex = 46
|
||||
Me.Label2.Text = "G:"
|
||||
'
|
||||
'Label3
|
||||
'
|
||||
Me.Label3.AutoSize = true
|
||||
Me.Label3.Location = New System.Drawing.Point(190, 132)
|
||||
Me.Label3.Name = "Label3"
|
||||
Me.Label3.Size = New System.Drawing.Size(17, 12)
|
||||
Me.Label3.TabIndex = 47
|
||||
Me.Label3.Text = "B:"
|
||||
'
|
||||
'Button37
|
||||
'
|
||||
Me.Button37.Location = New System.Drawing.Point(210, 155)
|
||||
Me.Button37.Name = "Button37"
|
||||
Me.Button37.Size = New System.Drawing.Size(59, 32)
|
||||
Me.Button37.TabIndex = 48
|
||||
Me.Button37.Text = "确认"
|
||||
Me.Button37.UseVisualStyleBackColor = true
|
||||
'
|
||||
'ColorCelect
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 12!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.Controls.Add(Me.Button37)
|
||||
Me.Controls.Add(Me.Label3)
|
||||
Me.Controls.Add(Me.Label2)
|
||||
Me.Controls.Add(Me.Label1)
|
||||
Me.Controls.Add(Me.Button38)
|
||||
Me.Controls.Add(Me.SelectColor)
|
||||
Me.Controls.Add(Me.B_num)
|
||||
Me.Controls.Add(Me.G_num)
|
||||
Me.Controls.Add(Me.R_num)
|
||||
Me.Controls.Add(Me.Button28)
|
||||
Me.Controls.Add(Me.Button29)
|
||||
Me.Controls.Add(Me.Button30)
|
||||
Me.Controls.Add(Me.Button31)
|
||||
Me.Controls.Add(Me.Button32)
|
||||
Me.Controls.Add(Me.Button33)
|
||||
Me.Controls.Add(Me.Button34)
|
||||
Me.Controls.Add(Me.Button35)
|
||||
Me.Controls.Add(Me.Button36)
|
||||
Me.Controls.Add(Me.Button7)
|
||||
Me.Controls.Add(Me.Button8)
|
||||
Me.Controls.Add(Me.Button9)
|
||||
Me.Controls.Add(Me.Button22)
|
||||
Me.Controls.Add(Me.Button23)
|
||||
Me.Controls.Add(Me.Button24)
|
||||
Me.Controls.Add(Me.Button25)
|
||||
Me.Controls.Add(Me.Button26)
|
||||
Me.Controls.Add(Me.Button27)
|
||||
Me.Controls.Add(Me.Button13)
|
||||
Me.Controls.Add(Me.Button14)
|
||||
Me.Controls.Add(Me.Button15)
|
||||
Me.Controls.Add(Me.Button16)
|
||||
Me.Controls.Add(Me.Button17)
|
||||
Me.Controls.Add(Me.Button18)
|
||||
Me.Controls.Add(Me.Button19)
|
||||
Me.Controls.Add(Me.Button20)
|
||||
Me.Controls.Add(Me.Button21)
|
||||
Me.Controls.Add(Me.Button12)
|
||||
Me.Controls.Add(Me.Button11)
|
||||
Me.Controls.Add(Me.Button10)
|
||||
Me.Controls.Add(Me.Button6)
|
||||
Me.Controls.Add(Me.Button5)
|
||||
Me.Controls.Add(Me.Button4)
|
||||
Me.Controls.Add(Me.Button3)
|
||||
Me.Controls.Add(Me.Button2)
|
||||
Me.Controls.Add(Me.Button1)
|
||||
Me.Name = "ColorCelect"
|
||||
Me.Size = New System.Drawing.Size(273, 192)
|
||||
CType(Me.R_num,System.ComponentModel.ISupportInitialize).EndInit
|
||||
CType(Me.G_num,System.ComponentModel.ISupportInitialize).EndInit
|
||||
CType(Me.B_num,System.ComponentModel.ISupportInitialize).EndInit
|
||||
Me.ResumeLayout(false)
|
||||
Me.PerformLayout
|
||||
|
||||
End Sub
|
||||
|
||||
Friend WithEvents Button1 As Button
|
||||
Friend WithEvents Button2 As Button
|
||||
Friend WithEvents Button3 As Button
|
||||
Friend WithEvents Button4 As Button
|
||||
Friend WithEvents Button5 As Button
|
||||
Friend WithEvents Button6 As Button
|
||||
Friend WithEvents Button10 As Button
|
||||
Friend WithEvents Button11 As Button
|
||||
Friend WithEvents Button12 As Button
|
||||
Friend WithEvents Button13 As Button
|
||||
Friend WithEvents Button14 As Button
|
||||
Friend WithEvents Button15 As Button
|
||||
Friend WithEvents Button16 As Button
|
||||
Friend WithEvents Button17 As Button
|
||||
Friend WithEvents Button18 As Button
|
||||
Friend WithEvents Button19 As Button
|
||||
Friend WithEvents Button20 As Button
|
||||
Friend WithEvents Button21 As Button
|
||||
Friend WithEvents Button7 As Button
|
||||
Friend WithEvents Button8 As Button
|
||||
Friend WithEvents Button9 As Button
|
||||
Friend WithEvents Button22 As Button
|
||||
Friend WithEvents Button23 As Button
|
||||
Friend WithEvents Button24 As Button
|
||||
Friend WithEvents Button25 As Button
|
||||
Friend WithEvents Button26 As Button
|
||||
Friend WithEvents Button27 As Button
|
||||
Friend WithEvents Button28 As Button
|
||||
Friend WithEvents Button29 As Button
|
||||
Friend WithEvents Button30 As Button
|
||||
Friend WithEvents Button31 As Button
|
||||
Friend WithEvents Button32 As Button
|
||||
Friend WithEvents Button33 As Button
|
||||
Friend WithEvents Button34 As Button
|
||||
Friend WithEvents Button35 As Button
|
||||
Friend WithEvents Button36 As Button
|
||||
Friend WithEvents R_num As NumericUpDown
|
||||
Friend WithEvents G_num As NumericUpDown
|
||||
Friend WithEvents B_num As NumericUpDown
|
||||
Friend WithEvents SelectColor As Button
|
||||
Friend WithEvents Button38 As Button
|
||||
Friend WithEvents Label1 As Label
|
||||
Friend WithEvents Label2 As Label
|
||||
Friend WithEvents Label3 As Label
|
||||
Friend WithEvents Button37 As Button
|
||||
End Class
|
||||
120
BLV_Studio/ColorCelect.resx
Normal file
120
BLV_Studio/ColorCelect.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
52
BLV_Studio/ColorCelect.vb
Normal file
52
BLV_Studio/ColorCelect.vb
Normal file
@@ -0,0 +1,52 @@
|
||||
Public Class ColorCelect
|
||||
Private Sub Button28_Click(sender As Object, e As EventArgs) Handles Button9.Click, Button8.Click, Button7.Click, Button6.Click, Button5.Click, Button4.Click, Button36.Click, Button35.Click, Button34.Click, Button33.Click, Button32.Click, Button31.Click, Button30.Click, Button3.Click, Button29.Click, Button28.Click, Button27.Click, Button26.Click, Button25.Click, Button24.Click, Button23.Click, Button22.Click, Button21.Click, Button20.Click, Button2.Click, Button19.Click, Button18.Click, Button17.Click, Button16.Click, Button15.Click, Button14.Click, Button13.Click, Button12.Click, Button11.Click, Button10.Click, Button1.Click
|
||||
Dim btn As Button = sender
|
||||
SelectColor.BackColor = btn.BackColor
|
||||
'Me.DialogResult = System.Windows.Forms.DialogResult.OK
|
||||
Me.Visible = False
|
||||
End Sub
|
||||
|
||||
Private Sub Button38_Click(sender As Object, e As EventArgs) Handles Button38.Click
|
||||
|
||||
SelectColor.BackColor = Color.FromArgb(R_num.Value, G_num.Value, B_num.Value)
|
||||
|
||||
'Me.dia = System.Windows.Forms.DialogResult.OK
|
||||
End Sub
|
||||
|
||||
Private Sub ColorCelect_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
|
||||
End Sub
|
||||
Public Jflag As Boolean = False
|
||||
Public LFlag As Boolean = False
|
||||
Private Sub ColorCelect2_MouseEnter(sender As Object, e As EventArgs) Handles MyBase.MouseEnter
|
||||
Jflag = True
|
||||
End Sub
|
||||
'离开
|
||||
Private Sub ColorCelect2_MouseLeave(sender As Object, e As EventArgs) Handles MyBase.MouseLeave
|
||||
|
||||
'If Jflag And LFlag Then
|
||||
|
||||
' LFlag = False
|
||||
' Jflag = False
|
||||
' Me.Visible = False
|
||||
' Else
|
||||
LFlag = True
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub Button37_Click(sender As Object, e As EventArgs) Handles Button37.Click
|
||||
Me.Visible = False
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
'Private Sub ColorCelect2_Click(sender As Object, e As EventArgs) Handles MyBase.Click
|
||||
' If Jflag Then
|
||||
' If LFlag Then
|
||||
' Me.Visible =False
|
||||
' End If
|
||||
' Else
|
||||
' Me.Visible =False
|
||||
' End If
|
||||
'End Sub
|
||||
End Class
|
||||
@@ -0,0 +1,85 @@
|
||||
Public Class BackstageHostListBLL
|
||||
|
||||
Sub New()
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 主机ID
|
||||
''' </summary>
|
||||
Public ID As String
|
||||
|
||||
''' <summary>
|
||||
''' 所属酒店 ID
|
||||
''' </summary>
|
||||
Public HotelID As String
|
||||
|
||||
''' <summary>
|
||||
''' 所属酒店名称
|
||||
''' </summary>
|
||||
Public HotelName As String
|
||||
|
||||
''' <summary>
|
||||
''' 主机编号
|
||||
''' </summary>
|
||||
Public HostNumber As String
|
||||
|
||||
''' <summary>
|
||||
''' 房号
|
||||
''' </summary>
|
||||
Public RoomNumber As String
|
||||
|
||||
''' <summary>
|
||||
''' 状态:0 离线,1 在线
|
||||
''' </summary>
|
||||
Public Status As String
|
||||
|
||||
''' <summary>
|
||||
''' 注册日期
|
||||
''' </summary>
|
||||
Public RegisterDate As String
|
||||
|
||||
''' <summary>
|
||||
''' 房态 ID
|
||||
''' </summary>
|
||||
Public RoomStatusID As String
|
||||
|
||||
''' <summary>
|
||||
''' 房态名称
|
||||
''' </summary>
|
||||
Public RoomStatusName As String
|
||||
|
||||
''' <summary>
|
||||
''' 房型 ID
|
||||
''' </summary>
|
||||
Public RoomTypeID As String
|
||||
|
||||
''' <summary>
|
||||
''' 房型名称
|
||||
''' </summary>
|
||||
Public RoomTypeName As String
|
||||
|
||||
''' <summary>
|
||||
''' 主机 mac 地址
|
||||
''' </summary>
|
||||
Public MAC As String
|
||||
|
||||
''' <summary>
|
||||
''' mac 绑定时间
|
||||
''' </summary>
|
||||
Public MACBindDate As String
|
||||
|
||||
''' <summary>
|
||||
''' 主机 IP 地址
|
||||
''' </summary>
|
||||
Public IP As String
|
||||
|
||||
''' <summary>
|
||||
''' 备注
|
||||
''' </summary>
|
||||
Public Remark As String
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,18 @@
|
||||
Public Class BackstageHostListResultBLL
|
||||
|
||||
Sub New()
|
||||
Result = New List(Of BackstageHostListBLL)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 请求结果
|
||||
''' </summary>
|
||||
Public IsSuccess As Boolean
|
||||
|
||||
''' <summary>
|
||||
''' 后台主机列表
|
||||
''' </summary>
|
||||
Public Result As List(Of BackstageHostListBLL)
|
||||
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,85 @@
|
||||
Public Class BackstageHotelListBLL
|
||||
|
||||
Sub New()
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 酒店 ID
|
||||
''' </summary>
|
||||
Public ID As String
|
||||
|
||||
''' <summary>
|
||||
''' 酒店编号
|
||||
''' </summary>
|
||||
Public Code As String
|
||||
|
||||
''' <summary>
|
||||
''' 酒店名称-中文
|
||||
''' </summary>
|
||||
Public Name As String
|
||||
|
||||
''' <summary>
|
||||
''' 酒店名称-英文
|
||||
''' </summary>
|
||||
Public EName As String
|
||||
|
||||
''' <summary>
|
||||
''' 繁体名称
|
||||
''' </summary>
|
||||
Public TWName As String
|
||||
|
||||
''' <summary>
|
||||
''' 联系人
|
||||
''' </summary>
|
||||
Public Contact As String
|
||||
|
||||
''' <summary>
|
||||
''' 联系电话
|
||||
''' </summary>
|
||||
Public Phone As String
|
||||
|
||||
''' <summary>
|
||||
''' 地址
|
||||
''' </summary>
|
||||
Public Address As String
|
||||
|
||||
''' <summary>
|
||||
''' 酒店授权有效期
|
||||
''' </summary>
|
||||
Public ValidateDate As String
|
||||
|
||||
''' <summary>
|
||||
''' 酒店创建日期
|
||||
''' </summary>
|
||||
Public CreatDate As String
|
||||
|
||||
''' <summary>
|
||||
''' 备注
|
||||
''' </summary>
|
||||
Public Remark As String
|
||||
|
||||
''' <summary>
|
||||
''' 状态
|
||||
''' </summary>
|
||||
Public Status As String
|
||||
|
||||
''' <summary>
|
||||
''' 审批
|
||||
''' </summary>
|
||||
Public IsApprove As String
|
||||
|
||||
''' <summary>
|
||||
''' 酒店分组 ID
|
||||
''' </summary>
|
||||
Public SysHotelGroupID As String
|
||||
|
||||
''' <summary>
|
||||
''' 酒店分组名称
|
||||
''' </summary>
|
||||
Public SysHotelGroupName As String
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,18 @@
|
||||
Public Class BackstageHotelListResultBLL
|
||||
|
||||
Sub New()
|
||||
Result = New List(Of BackstageHotelListBLL)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 请求结果
|
||||
''' </summary>
|
||||
Public IsSuccess As Boolean
|
||||
|
||||
''' <summary>
|
||||
''' 后台酒店列表
|
||||
''' </summary>
|
||||
Public Result As List(Of BackstageHotelListBLL)
|
||||
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,31 @@
|
||||
Public Class BackstageRoomTypeListBLL
|
||||
|
||||
Sub New()
|
||||
Modals = New List(Of BackstageRoomTypeModalsListBLL)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 房型ID
|
||||
''' </summary>
|
||||
Public ID As String
|
||||
|
||||
''' <summary>
|
||||
''' 房型编号
|
||||
''' </summary>
|
||||
Public Code As String
|
||||
|
||||
''' <summary>
|
||||
''' 房型名称
|
||||
''' </summary>
|
||||
Public Name As String
|
||||
|
||||
''' <summary>
|
||||
''' 回路列表
|
||||
''' </summary>
|
||||
Public Modals As List(Of BackstageRoomTypeModalsListBLL)
|
||||
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,20 @@
|
||||
Public Class BackstageRoomTypeListResultBLL
|
||||
|
||||
Sub New()
|
||||
Result = New List(Of BackstageRoomTypeListBLL)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 请求结果
|
||||
''' </summary>
|
||||
Public IsSuccess As Boolean
|
||||
|
||||
''' <summary>
|
||||
''' 后台房型列表
|
||||
''' </summary>
|
||||
Public Result As List(Of BackstageRoomTypeListBLL)
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,37 @@
|
||||
Public Class BackstageRoomTypeModalsListBLL
|
||||
|
||||
|
||||
Sub New()
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 回路地址
|
||||
''' </summary>
|
||||
Public ModalAddress As String
|
||||
|
||||
''' <summary>
|
||||
''' 回路名称
|
||||
''' </summary>
|
||||
Public Name As String
|
||||
|
||||
''' <summary>
|
||||
''' 英文名称
|
||||
''' </summary>
|
||||
Public EnglishName As String
|
||||
|
||||
''' <summary>
|
||||
''' 繁体名称
|
||||
''' </summary>
|
||||
Public TWName As String
|
||||
|
||||
''' <summary>
|
||||
''' 类型名称
|
||||
''' </summary>
|
||||
Public TypeName As String
|
||||
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,18 @@
|
||||
Public Class BackstageSetHostMACBLL
|
||||
|
||||
Sub New()
|
||||
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 请求结果
|
||||
''' </summary>
|
||||
Public IsSuccess As Boolean
|
||||
|
||||
''' <summary>
|
||||
''' 操作返回
|
||||
''' </summary>
|
||||
Public Result As String
|
||||
|
||||
|
||||
End Class
|
||||
79
BLV_Studio/Control/DHCP/CxDnsServer.vb
Normal file
79
BLV_Studio/Control/DHCP/CxDnsServer.vb
Normal file
@@ -0,0 +1,79 @@
|
||||
|
||||
|
||||
Imports System.Net
|
||||
Imports System.Net.Sockets
|
||||
Imports System.Threading
|
||||
Imports ARSoft.Tools.Net
|
||||
Imports ARSoft.Tools.Net.Dns
|
||||
Imports AutoFixture
|
||||
Imports DnsClient
|
||||
|
||||
Public Class CxDnsServer
|
||||
Public QUERY_TIMEOUT As Integer = 1000
|
||||
Public dnsAddr As String
|
||||
Public domain As String
|
||||
Public G_DnsThread As Thread
|
||||
Public Sub New()
|
||||
' Dim dnsServer As DnsServer = New DnsServer
|
||||
'G_DnsThread = New Thread(New ThreadStart(AddressOf runingDnsClient))
|
||||
'G_DnsThread.Start()
|
||||
End Sub
|
||||
Public Sub runingDnsClient()
|
||||
If String.IsNullOrEmpty(domain) Then
|
||||
MsgBox("待解析的域名不可为空")
|
||||
Return
|
||||
End If
|
||||
If String.IsNullOrEmpty(dnsAddr) Then
|
||||
MessageBox.Show("DNS地址不可为空")
|
||||
End If
|
||||
Dim isDomainName As ARSoft.Tools.Net.DomainName = ARSoft.Tools.Net.DomainName.Parse(domain)
|
||||
Dim isdnsClient As ARSoft.Tools.Net.Dns.DnsClient = New ARSoft.Tools.Net.Dns.DnsClient(IPAddress.Parse(dnsAddr), QUERY_TIMEOUT)
|
||||
Dim isDnsMessage As DnsMessage = isdnsClient.Resolve(isDomainName, RecordType.A)
|
||||
If IsNothing(isDnsMessage) OrElse (isDnsMessage.ReturnCode <> ReturnCode.NoError And isDnsMessage.ReturnCode <> ReturnCode.NxDomain) Then
|
||||
MsgBox("没有解析成功")
|
||||
Else
|
||||
For Each tdnsRecord In isDnsMessage.AnswerRecords
|
||||
Dim taRecord As ARecord = TryCast(tdnsRecord, ARecord)
|
||||
If IsNothing(taRecord) Then
|
||||
MsgBox($"解析成功{taRecord.Address.ToString }{vbCrLf }")
|
||||
Else
|
||||
Continue For
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Public dnsServer As DnsServer
|
||||
Public Sub runingDnsServer(ipadd As IPAddress)
|
||||
If Not IsNothing(dnsServer) Then
|
||||
dnsServer.Stop()
|
||||
End If
|
||||
dnsServer = New DnsServer(ipadd, 50, 50)
|
||||
dnsServer.Start()
|
||||
End Sub
|
||||
|
||||
|
||||
Private Function ProcessQuery(ByVal message As DnsMessageBase, ByVal clientAddress As IPAddress, ByVal protocol As ProtocolType) As DnsMessageBase
|
||||
message.IsQuery = False
|
||||
Dim query As DnsMessage = TryCast(message, DnsMessage)
|
||||
|
||||
If query Is Nothing OrElse query.Questions.Count <= 0 Then
|
||||
message.ReturnCode = ReturnCode.ServerFailure
|
||||
Else
|
||||
|
||||
If query.Questions(0).RecordType = RecordType.A Then
|
||||
|
||||
For Each dnsQuestion As ARSoft.Tools.Net.Dns.DnsQuestion In query.Questions
|
||||
'Dim resolvedIp As String = Resolve(clientAddress.ToString(), dnsQuestion.Name)
|
||||
'Dim aRecord As ARecord = New ARecord(query.Questions(0).Name, 36000, IPAddress)
|
||||
'query.AnswerRecords.Add(aRecord)
|
||||
Next
|
||||
Else
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
Return message
|
||||
End Function
|
||||
End Class
|
||||
440
BLV_Studio/Control/DHCP/DhcpServer.vb
Normal file
440
BLV_Studio/Control/DHCP/DhcpServer.vb
Normal file
@@ -0,0 +1,440 @@
|
||||
Imports System.Management
|
||||
Imports System.Net
|
||||
Imports System.Net.NetworkInformation
|
||||
Imports System.Net.Sockets
|
||||
Imports System.Text
|
||||
Imports ARSoft.Tools.Net.Dns
|
||||
Imports DotNetProjects.DhcpServer
|
||||
Imports DotNetProjects.DhcpServer.DHCPRequest
|
||||
|
||||
Public Class DhcpServer
|
||||
Public Event OupPrintfDHCPlog(IPadd As String, mac As String, msgtype As Integer)
|
||||
Public Event IsOpenwifi(Iswifi As Boolean)
|
||||
Enum IPStateType
|
||||
NotAllocated = 1 ' 未分配
|
||||
Assigned ' 待分配
|
||||
TakeUp ' 占用
|
||||
Overdue ' 过期
|
||||
End Enum
|
||||
Public test As DotNetProjects.DhcpServer.DHCPServer
|
||||
Public _IndexIPDic As Dictionary(Of String, dhcpInfo)
|
||||
|
||||
|
||||
Sub New(Optional IPPoolMax As Integer = 10)
|
||||
_IndexIPDic = New Dictionary(Of String, dhcpInfo)
|
||||
sendReply = New DHCPReplyOptions
|
||||
iscnt = False
|
||||
isnumber = 0
|
||||
'GetMACAddress()
|
||||
init(IPPoolMax)
|
||||
End Sub
|
||||
|
||||
Public Sub init(Optional IPPoolMax As Integer = 10)
|
||||
Dim isNetworkInterfaces As NetworkInterface() = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()
|
||||
Dim ipProperties As IPInterfaceProperties
|
||||
Dim gateways As UnicastIPAddressInformationCollection
|
||||
Dim loadip As IPAddress = IPAddress.Parse("192.168.1.10")
|
||||
Dim mac As String = String.Empty
|
||||
For Each inten In isNetworkInterfaces
|
||||
If inten.NetworkInterfaceType = NetworkInterfaceType.Ethernet Then
|
||||
'SetIPAddress({192, 168, 1, 10}, {255, 255, 255, 0}, {192, 168, 1, 1}, {8, 8, 8, 8}, inten)
|
||||
'SetManagementBaseObject(inten)
|
||||
ipProperties = inten.GetIPProperties
|
||||
gateways = ipProperties.UnicastAddresses
|
||||
For Each tmp In gateways
|
||||
If tmp.Address.AddressFamily = AddressFamily.InterNetwork Then
|
||||
'loadip = tmp.Address
|
||||
mac = inten.GetPhysicalAddress.ToString
|
||||
End If
|
||||
Next
|
||||
test = New DotNetProjects.DhcpServer.DHCPServer(loadip)
|
||||
test.SendDhcpAnswerNetworkInterface = inten
|
||||
test.BroadcastAddress = IPAddress.Parse("255.255.255.255")
|
||||
SetsendReply(loadip.ToString)
|
||||
InitIPPool(loadip.ToString, IPPoolMax, mac)
|
||||
Try
|
||||
DHCPRuning()
|
||||
Catch ex As Exception
|
||||
'MsgBox($"{loadip.ToString }_{inten.Name }{ex}")
|
||||
init(IPPoolMax)
|
||||
End Try
|
||||
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Public Function GetMACAddress() As String
|
||||
Dim mac As String = String.Empty
|
||||
For Each nic In NetworkInterface.GetAllNetworkInterfaces
|
||||
Console.WriteLine(nic.GetPhysicalAddress.ToString)
|
||||
Next
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Public Sub DHCPRuning()
|
||||
|
||||
'InitIPPool(inten.GetIPProperties, IPPoolMax)
|
||||
AddHandler test.OnDataReceived, AddressOf UserDHCPDataReceivedEventHandler
|
||||
AddHandler test.OnDiscover, AddressOf UserDHCPDataReceivedEventHandler
|
||||
AddHandler test.OnRequest, AddressOf UserDHCPDataReceivedEventHandler
|
||||
AddHandler test.OnDecline, AddressOf UserDHCPDataReceivedEventHandler
|
||||
AddHandler test.OnReleased, AddressOf UserDHCPDataReceivedEventHandler
|
||||
AddHandler test.OnInform, AddressOf UserDHCPDataReceivedEventHandler
|
||||
test.Start()
|
||||
|
||||
End Sub
|
||||
Public Sub SetsendReply(txt_LoadIP As String)
|
||||
sendReply.SubnetMask = IPAddress.Parse("255.255.0.0")
|
||||
sendReply.ServerIpAddress = IPAddress.Parse(txt_LoadIP) '本机电脑iP
|
||||
sendReply.IPAddressLeaseTime = 86400
|
||||
sendReply.RenewalTimeValue_T1 = 86400
|
||||
sendReply.RebindingTimeValue_T2 = 86400
|
||||
sendReply.DomainName = "demo.pi"
|
||||
sendReply.ServerIdentifier = IPAddress.Parse(txt_LoadIP) '本机电脑iP
|
||||
sendReply.RouterIP = IPAddress.Parse("192.168.1.1")
|
||||
sendReply.DomainNameServers = GetDomainNameServers("8.8.8.8,8.4.4.4")
|
||||
'sendReply.LogServerIP = IPAddress.Parse(options_120.Text)
|
||||
IPfile = "/pxelinux.0"
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
Public Function GetDomainNameServers(theip As String) As IPAddress()
|
||||
Dim ipstr2() As String = theip.Split(",")
|
||||
Dim result As New List(Of IPAddress)
|
||||
For Each index2 In ipstr2
|
||||
result.Add(IPAddress.Parse(index2))
|
||||
Next
|
||||
Return result.ToArray
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Public Function SetManagementBaseObject(isNetworkInterfaces As NetworkInterface) As ManagementBaseObject
|
||||
Dim mos As ManagementObjectSearcher = New ManagementObjectSearcher("select * from Win32_NetworkAdapterConfiguration")
|
||||
For Each mo As ManagementObject In mos.Get()
|
||||
If mo("Description").ToString().Equals(isNetworkInterfaces.Description) Then
|
||||
Dim newIP As ManagementBaseObject = mo.GetMethodParameters("EnableStatic")
|
||||
Dim newGateway As ManagementBaseObject = mo.GetMethodParameters("SetGateways")
|
||||
Dim newDNS As ManagementBaseObject = mo.GetMethodParameters("SetDNSServerSearchOrder")
|
||||
newIP.Item("IPAddress") = New String() {192, 168, 1, 10}
|
||||
newIP.Item("SubnetMask") = New String() {255, 255, 255, 0}
|
||||
newGateway.Item("DefaultIPGateway") = New String() {192, 168, 1, 1}
|
||||
' newDNS.Item("DNSServerSearchOrder") = New String[] { info.DNS };
|
||||
Dim setIP As ManagementBaseObject = mo.InvokeMethod("EnableStatic", newIP, Nothing)
|
||||
Dim setGateways As ManagementBaseObject = mo.InvokeMethod("SetGateways", newGateway, Nothing)
|
||||
Dim setDNS As ManagementBaseObject = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, Nothing)
|
||||
'mo.InvokeMethod("SetDNSServerSearchOrder", Nothing);
|
||||
'//DNS的地址清
|
||||
' mo.InvokeMethod("EnableDHCP", Nothing)
|
||||
'//开启DHCP
|
||||
End If
|
||||
Next
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Public Shared Sub SetIPAddress(ByVal ip As String(), ByVal submask As String(), ByVal getway As String(), ByVal dns As String(), isNetworkInterfaces As NetworkInterface)
|
||||
Dim wmi As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
|
||||
Dim moc As ManagementObjectCollection = wmi.GetInstances()
|
||||
Dim inPar As ManagementBaseObject = Nothing
|
||||
Dim outPar As ManagementBaseObject = Nothing
|
||||
|
||||
For Each mo As ManagementObject In moc
|
||||
'/如果没有启用IP设置的网络设备则跳过
|
||||
Console.WriteLine($"{mo("Description").ToString()}")
|
||||
If Not mo("Description").ToString().Equals(isNetworkInterfaces.Description) Then Continue For
|
||||
' 设置IP地址和掩码
|
||||
If ip IsNot Nothing AndAlso submask IsNot Nothing Then
|
||||
inPar = mo.GetMethodParameters("EnableStatic")
|
||||
inPar("IPAddress") = ip
|
||||
inPar("SubnetMask") = submask
|
||||
outPar = mo.InvokeMethod("EnableStatic", inPar, Nothing)
|
||||
End If
|
||||
' //设置网关地址
|
||||
If getway IsNot Nothing Then
|
||||
inPar = mo.GetMethodParameters("SetGateways")
|
||||
inPar("DefaultIPGateway") = getway
|
||||
outPar = mo.InvokeMethod("SetGateways", inPar, Nothing)
|
||||
End If
|
||||
' //设置DNS地址
|
||||
If dns IsNot Nothing Then
|
||||
inPar = mo.GetMethodParameters("SetDNSServerSearchOrder")
|
||||
inPar("DNSServerSearchOrder") = dns
|
||||
outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, Nothing)
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Public Sub ClockDHCPServer()
|
||||
If IsNothing(test) Then Return
|
||||
test.BroadcastAddress = IPAddress.Parse("0.0.0.0")
|
||||
test.Dispose()
|
||||
' test.BroadcastAddress = IPAddress.Parse("0.0.0.0")
|
||||
End Sub
|
||||
|
||||
Public Sub UserDHCPDataReceivedEventHandler(dhcpRequest As DHCPRequest)
|
||||
AnalytischeGegevens(dhcpRequest) ' dhcpRequest.SendDHCPReply(,,)
|
||||
End Sub
|
||||
Public iscnt As Boolean
|
||||
Public isnumber As Integer
|
||||
Public Sub AnalytischeGegevens(dhcpRequest As DHCPRequest)
|
||||
|
||||
Select Case dhcpRequest.GetMsgType
|
||||
|
||||
Case DHCPMsgType.DHCPACK
|
||||
|
||||
Case DHCPMsgType.DHCPDECLINE
|
||||
|
||||
Case DHCPMsgType.DHCPDISCOVER '上线
|
||||
|
||||
'Dim ipinfo As NetworkInterface = test.SendDhcpAnswerNetworkInterface
|
||||
'If iscnt Then
|
||||
' RaiseEvent IsOpenwifi(False)
|
||||
' iscnt = False
|
||||
'End If
|
||||
|
||||
|
||||
|
||||
Dhcp_OFFER(dhcpRequest)
|
||||
Case DHCPMsgType.DHCPINFORM
|
||||
|
||||
Case DHCPMsgType.DHCPNAK
|
||||
|
||||
Case DHCPMsgType.DHCPOFFER
|
||||
|
||||
Case DHCPMsgType.DHCPRELEASE '下线
|
||||
|
||||
Case DHCPMsgType.DHCPREQUEST
|
||||
|
||||
Dhcp_ACK(dhcpRequest)
|
||||
|
||||
End Select
|
||||
|
||||
|
||||
End Sub
|
||||
Public Function GetByteIPToString(buff() As Byte) As String
|
||||
Dim result As String = ""
|
||||
For Each index In buff
|
||||
result = result & index & "."
|
||||
Next
|
||||
result = result.Substring(0, result.Length - 1)
|
||||
|
||||
Return result
|
||||
End Function
|
||||
Public Sub InitIPPool(startIP As String, ipMax As Integer, mac As String)
|
||||
Dim ipstrbuff() As String
|
||||
Dim number As Integer = 0
|
||||
ipstrbuff = startIP.Split(".")
|
||||
Dim cip As String = ""
|
||||
Dim ClientIP(3) As Byte
|
||||
_IndexIPDic.Clear()
|
||||
|
||||
For i = 0 To 3
|
||||
|
||||
Integer.TryParse(ipstrbuff(i), number)
|
||||
ClientIP(i) = number
|
||||
If i < 3 Then
|
||||
cip = cip & ClientIP(i) & "."
|
||||
End If
|
||||
|
||||
|
||||
Next
|
||||
If Not _IndexIPDic.ContainsKey(startIP) Then
|
||||
Dim newinfo As New dhcpInfo(ClientIP)
|
||||
newinfo.ChildState = IPStateType.Assigned
|
||||
newinfo.ChildMac = GetMacStr(mac)
|
||||
_IndexIPDic.Add(startIP, newinfo)
|
||||
|
||||
End If
|
||||
|
||||
For i As Integer = 1 To ipMax
|
||||
If ClientIP(3) + i > 255 Then Return
|
||||
Dim nClientIP(3) As Byte
|
||||
Array.Copy(ClientIP, nClientIP, ClientIP.Length)
|
||||
nClientIP(3) = ClientIP(3) + i
|
||||
If _IndexIPDic.ContainsKey(cip & nClientIP(3).ToString) Then Continue For
|
||||
_IndexIPDic.Add(cip & nClientIP(3).ToString, New dhcpInfo(nClientIP))
|
||||
Next
|
||||
|
||||
End Sub
|
||||
Public sendReply As DHCPReplyOptions
|
||||
Public IPfile As String
|
||||
Public Sub Dhcp_ACK(dhcpRequest As DHCPRequest)
|
||||
|
||||
|
||||
Dim sda As DHCPPacket = dhcpRequest.GetRawPacket
|
||||
Dim RequestedIP As IPAddress = dhcpRequest.GetRequestedIP
|
||||
Dim cmac As String = GetMacStr(sda.chaddr)
|
||||
Dim newinfo As dhcpInfo = CheckIsTakeUp(RequestedIP.ToString, cmac)
|
||||
|
||||
|
||||
Try
|
||||
If IsNothing(newinfo) Then
|
||||
dhcpRequest.SendDHCPReply(DHCPMsgType.DHCPNAK, IPAddress.Any, sendReply)
|
||||
RaiseEvent OupPrintfDHCPlog(RequestedIP.ToString, cmac, 4)
|
||||
Return
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Return
|
||||
End Try
|
||||
|
||||
|
||||
Dim IPstr As String = GetByteIPToString(newinfo.ChilIP)
|
||||
Dim ip As IPAddress = IPAddress.Parse(IPstr)
|
||||
|
||||
sda.op = &H2
|
||||
sda.htype = &H1
|
||||
sda.hlen = &H6
|
||||
sda.hops = &H0
|
||||
sda.flags = {&H0, &H1}
|
||||
sda.giaddr = {&H0, &H0, &H0, &H0}
|
||||
sda.yiaddr = newinfo.ChilIP
|
||||
sda.siaddr = newinfo.ChilIP
|
||||
Dim filebuff() As Byte = Encoding.UTF8.GetBytes(IPfile)
|
||||
|
||||
Array.Copy(filebuff, sda.file, filebuff.Length)
|
||||
|
||||
Try
|
||||
RaiseEvent OupPrintfDHCPlog(IPstr, cmac, 5)
|
||||
dhcpRequest.SendDHCPReply(DHCPMsgType.DHCPACK, ip, sendReply)
|
||||
Catch ex As Exception
|
||||
Console.WriteLine("发送异常:" & ex.ToString)
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
Public Sub Dhcp_OFFER(dhcpRequest As DHCPRequest)
|
||||
|
||||
Dim sda As DHCPPacket = dhcpRequest.GetRawPacket
|
||||
Dim cmac As String = GetMacStr(sda.chaddr)
|
||||
RaiseEvent OupPrintfDHCPlog("", cmac, 1)
|
||||
Dim newinfo As dhcpInfo = GetNewIPInfo(cmac)
|
||||
Dim dic As New Dictionary(Of DHCPOption, Byte())
|
||||
dic.Add(DHCPOption.NetBIOSoverTCPIPNameServer, {8, 8, 8, 8})
|
||||
dic.Add(DHCPOption.NetworkTimeProtocolServers, {&H58, &HBF, &HE4, &H8A})
|
||||
dic.Add(DHCPOption.TFTPServerName, {&H31, &H39, &H32, &H2E, &H31, &H36, &H38, &H2E, &H31, &H2E, &H31, &H30})
|
||||
dic.Add(DHCPOption.DomainName, {&H64, &H65, &H6D, &H6F, &H2E, &H70, &H69})
|
||||
dic.Add(DHCPOption.StaticRoutes, {&H78, &H30, &H42, &H41, &H43, &H31, &H30, &H43, &H30, &H41, &H38, &H30, &H31, &H46, &H45})
|
||||
sendReply.OtherRequestedOptions = dic
|
||||
If IsNothing(newinfo) Then
|
||||
dhcpRequest.SendDHCPReply(DHCPMsgType.DHCPNAK, IPAddress.Any, sendReply)
|
||||
RaiseEvent OupPrintfDHCPlog("", cmac, 2)
|
||||
Return
|
||||
End If
|
||||
|
||||
'Dim IPstr As String = GetByteIPToString(newinfo.ChilIP)
|
||||
'Dim ip As IPAddress = IPAddress.Parse(IPstr)
|
||||
Dim IPstr As String = GetByteIPToString(newinfo.ChilIP)
|
||||
Dim ip As IPAddress = IPAddress.Parse(IPstr)
|
||||
|
||||
|
||||
|
||||
newinfo.ChildMac = cmac
|
||||
|
||||
newinfo.ChildState = IPStateType.Assigned
|
||||
|
||||
sda.op = &H2
|
||||
sda.htype = &H1
|
||||
sda.hlen = &H6
|
||||
sda.hops = &H0
|
||||
sda.flags = {&H0, &H1}
|
||||
sda.giaddr = {&H0, &H0, &H0, &H0}
|
||||
sda.yiaddr = newinfo.ChilIP
|
||||
sda.siaddr = newinfo.ChilIP
|
||||
|
||||
Dim filebuff() As Byte = Encoding.UTF8.GetBytes(IPfile)
|
||||
|
||||
Array.Copy(filebuff, sda.file, filebuff.Length)
|
||||
|
||||
Try
|
||||
dhcpRequest.SendDHCPReply(DHCPMsgType.DHCPOFFER, ip, sendReply, dic)
|
||||
RaiseEvent OupPrintfDHCPlog(IPstr, cmac, 3)
|
||||
Catch ex As Exception
|
||||
Console.WriteLine("发送异常:" & ex.ToString)
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
Public Function GetMacStr(duff As String) As String
|
||||
Dim sresult As String = ""
|
||||
For i As Integer = 0 To 5
|
||||
sresult = sresult & duff.Substring(i * 2, 2) & ":"
|
||||
|
||||
Next
|
||||
Return sresult.Substring(0, sresult.Length - 1)
|
||||
End Function
|
||||
Public Function GetMacStr(duff() As Byte) As String
|
||||
Dim sresult As String = ""
|
||||
Dim locadMac(5) As Byte
|
||||
Array.Copy(duff, locadMac, locadMac.Length)
|
||||
For Each index In locadMac
|
||||
sresult = sresult & Hex(index) & ":"
|
||||
Next
|
||||
Return sresult.Substring(0, sresult.Length - 1)
|
||||
End Function
|
||||
|
||||
Public Function GetNewIPInfo(mac As String) As dhcpInfo
|
||||
Dim newdhcpInfo As dhcpInfo
|
||||
Dim olddhcpInfo As dhcpInfo
|
||||
|
||||
|
||||
For Each index In _IndexIPDic.Values
|
||||
If mac.Equals(index.ChildMac) Then Return index
|
||||
If IsNothing(newdhcpInfo) AndAlso index.ChildState = IPStateType.NotAllocated Then
|
||||
newdhcpInfo = index
|
||||
Exit For
|
||||
End If
|
||||
If IsNothing(olddhcpInfo) AndAlso index.ChildState = IPStateType.Overdue Then
|
||||
olddhcpInfo = index
|
||||
End If
|
||||
Next
|
||||
If Not IsNothing(newdhcpInfo) Then
|
||||
Return newdhcpInfo
|
||||
ElseIf Not IsNothing(olddhcpInfo) Then
|
||||
Return olddhcpInfo
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
End Function
|
||||
|
||||
Public Function CheckIsTakeUp(name As String, mac As String) As dhcpInfo
|
||||
|
||||
If _IndexIPDic.ContainsKey(name) Then
|
||||
Dim Index = _IndexIPDic.Item(name)
|
||||
'ip 被占用 且用户 Mac 地址一致
|
||||
If Index.ChildState <> IPStateType.NotAllocated AndAlso Index.ChildMac.Equals(mac) Then
|
||||
Index.ChildState = IPStateType.Assigned
|
||||
Return Index
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
End If
|
||||
Return Nothing
|
||||
End Function
|
||||
|
||||
End Class
|
||||
Public Class dhcpInfo
|
||||
Public ChilIP() As Byte
|
||||
|
||||
Public ChildMac As String = ""
|
||||
|
||||
Public ChildTime As Long = 0
|
||||
|
||||
Public ChildState As Integer = 1
|
||||
Sub New(ip() As Byte)
|
||||
ChilIP = ip
|
||||
ChildMac = ""
|
||||
ChildTime = 0
|
||||
ChildState = 1
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,423 @@
|
||||
Imports System.Management
|
||||
Imports System.Net
|
||||
Imports System.Net.NetworkInformation
|
||||
Imports System.Net.Sockets
|
||||
Imports System.Text
|
||||
Imports DotNetProjects.DhcpServer
|
||||
Imports DotNetProjects.DhcpServer.DHCPRequest
|
||||
|
||||
Public Class DhcpServer
|
||||
Public Event OupPrintfDHCPlog(IPadd As String, mac As String, msgtype As Integer)
|
||||
Public Event IsOpenwifi(Iswifi As Boolean)
|
||||
Enum IPStateType
|
||||
NotAllocated = 1 ' 未分配
|
||||
Assigned ' 待分配
|
||||
TakeUp ' 占用
|
||||
Overdue ' 过期
|
||||
End Enum
|
||||
Public test As DotNetProjects.DhcpServer.DHCPServer
|
||||
Public _IndexIPDic As Dictionary(Of String, dhcpInfo)
|
||||
Sub New(Optional IPPoolMax As Integer = 10)
|
||||
_IndexIPDic = New Dictionary(Of String, dhcpInfo)
|
||||
sendReply = New DHCPReplyOptions
|
||||
iscnt = False
|
||||
isnumber = 0
|
||||
'GetMACAddress()
|
||||
Dim isNetworkInterfaces As NetworkInterface() = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()
|
||||
Dim ipProperties As IPInterfaceProperties
|
||||
Dim gateways As UnicastIPAddressInformationCollection
|
||||
Dim loadip As IPAddress = IPAddress.Parse("192.168.1.10")
|
||||
Dim mac As String = String.Empty
|
||||
For Each inten In isNetworkInterfaces
|
||||
If inten.NetworkInterfaceType = NetworkInterfaceType.Ethernet Then
|
||||
'SetIPAddress({192, 168, 1, 10}, {255, 255, 255, 0}, {192, 168, 1, 1}, {8, 8, 8, 8}, inten)
|
||||
'SetManagementBaseObject(inten)
|
||||
ipProperties = inten.GetIPProperties
|
||||
gateways = ipProperties.UnicastAddresses
|
||||
For Each tmp In gateways
|
||||
If tmp.Address.AddressFamily = AddressFamily.InterNetwork Then
|
||||
loadip = tmp.Address
|
||||
mac = inten.GetPhysicalAddress.ToString
|
||||
End If
|
||||
Next
|
||||
test = New DotNetProjects.DhcpServer.DHCPServer(loadip)
|
||||
test.SendDhcpAnswerNetworkInterface = inten
|
||||
test.BroadcastAddress = IPAddress.Parse("255.255.255.255")
|
||||
SetsendReply(loadip.ToString)
|
||||
InitIPPool(loadip.ToString, IPPoolMax, mac)
|
||||
DHCPRuning()
|
||||
End If
|
||||
Next
|
||||
|
||||
End Sub
|
||||
Public Function GetMACAddress() As String
|
||||
Dim mac As String = String.Empty
|
||||
For Each nic In NetworkInterface.GetAllNetworkInterfaces
|
||||
Console.WriteLine(nic.GetPhysicalAddress.ToString)
|
||||
Next
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Public Sub DHCPRuning()
|
||||
|
||||
'InitIPPool(inten.GetIPProperties, IPPoolMax)
|
||||
AddHandler test.OnDataReceived, AddressOf UserDHCPDataReceivedEventHandler
|
||||
AddHandler test.OnDiscover, AddressOf UserDHCPDataReceivedEventHandler
|
||||
AddHandler test.OnRequest, AddressOf UserDHCPDataReceivedEventHandler
|
||||
AddHandler test.OnDecline, AddressOf UserDHCPDataReceivedEventHandler
|
||||
AddHandler test.OnReleased, AddressOf UserDHCPDataReceivedEventHandler
|
||||
AddHandler test.OnInform, AddressOf UserDHCPDataReceivedEventHandler
|
||||
test.Start()
|
||||
|
||||
End Sub
|
||||
Public Sub SetsendReply(txt_LoadIP As String)
|
||||
sendReply.SubnetMask = IPAddress.Parse("255.255.255.0")
|
||||
sendReply.ServerIpAddress = IPAddress.Parse(txt_LoadIP) '本机电脑iP
|
||||
sendReply.IPAddressLeaseTime = 86400
|
||||
sendReply.RenewalTimeValue_T1 = 86400
|
||||
sendReply.RebindingTimeValue_T2 = 86400
|
||||
sendReply.DomainName = "demo.pi"
|
||||
sendReply.ServerIdentifier = IPAddress.Parse(txt_LoadIP) '本机电脑iP
|
||||
sendReply.RouterIP = IPAddress.Parse("192.168.1.1")
|
||||
sendReply.DomainNameServers = GetDomainNameServers("8.8.8.8,8.4.4.4")
|
||||
'sendReply.LogServerIP = IPAddress.Parse(options_120.Text)
|
||||
IPfile = "/pxelinux.0"
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
Public Function GetDomainNameServers(theip As String) As IPAddress()
|
||||
Dim ipstr2() As String = theip.Split(",")
|
||||
Dim result As New List(Of IPAddress)
|
||||
For Each index2 In ipstr2
|
||||
result.Add(IPAddress.Parse(index2))
|
||||
Next
|
||||
Return result.ToArray
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Public Function SetManagementBaseObject(isNetworkInterfaces As NetworkInterface) As ManagementBaseObject
|
||||
Dim mos As ManagementObjectSearcher = New ManagementObjectSearcher("select * from Win32_NetworkAdapterConfiguration")
|
||||
For Each mo As ManagementObject In mos.Get()
|
||||
If mo("Description").ToString().Equals(isNetworkInterfaces.Description) Then
|
||||
Dim newIP As ManagementBaseObject = mo.GetMethodParameters("EnableStatic")
|
||||
Dim newGateway As ManagementBaseObject = mo.GetMethodParameters("SetGateways")
|
||||
Dim newDNS As ManagementBaseObject = mo.GetMethodParameters("SetDNSServerSearchOrder")
|
||||
newIP.Item("IPAddress") = New String() {192, 168, 1, 10}
|
||||
newIP.Item("SubnetMask") = New String() {255, 255, 255, 0}
|
||||
newGateway.Item("DefaultIPGateway") = New String() {192, 168, 1, 1}
|
||||
' newDNS.Item("DNSServerSearchOrder") = New String[] { info.DNS };
|
||||
Dim setIP As ManagementBaseObject = mo.InvokeMethod("EnableStatic", newIP, Nothing)
|
||||
Dim setGateways As ManagementBaseObject = mo.InvokeMethod("SetGateways", newGateway, Nothing)
|
||||
Dim setDNS As ManagementBaseObject = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, Nothing)
|
||||
'mo.InvokeMethod("SetDNSServerSearchOrder", Nothing);
|
||||
'//DNS的地址清
|
||||
' mo.InvokeMethod("EnableDHCP", Nothing)
|
||||
'//开启DHCP
|
||||
End If
|
||||
Next
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Public Shared Sub SetIPAddress(ByVal ip As String(), ByVal submask As String(), ByVal getway As String(), ByVal dns As String(), isNetworkInterfaces As NetworkInterface)
|
||||
Dim wmi As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
|
||||
Dim moc As ManagementObjectCollection = wmi.GetInstances()
|
||||
Dim inPar As ManagementBaseObject = Nothing
|
||||
Dim outPar As ManagementBaseObject = Nothing
|
||||
|
||||
For Each mo As ManagementObject In moc
|
||||
'/如果没有启用IP设置的网络设备则跳过
|
||||
Console.WriteLine($"{mo("Description").ToString()}")
|
||||
If Not mo("Description").ToString().Equals(isNetworkInterfaces.Description) Then Continue For
|
||||
' 设置IP地址和掩码
|
||||
If ip IsNot Nothing AndAlso submask IsNot Nothing Then
|
||||
inPar = mo.GetMethodParameters("EnableStatic")
|
||||
inPar("IPAddress") = ip
|
||||
inPar("SubnetMask") = submask
|
||||
outPar = mo.InvokeMethod("EnableStatic", inPar, Nothing)
|
||||
End If
|
||||
' //设置网关地址
|
||||
If getway IsNot Nothing Then
|
||||
inPar = mo.GetMethodParameters("SetGateways")
|
||||
inPar("DefaultIPGateway") = getway
|
||||
outPar = mo.InvokeMethod("SetGateways", inPar, Nothing)
|
||||
End If
|
||||
' //设置DNS地址
|
||||
If dns IsNot Nothing Then
|
||||
inPar = mo.GetMethodParameters("SetDNSServerSearchOrder")
|
||||
inPar("DNSServerSearchOrder") = dns
|
||||
outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, Nothing)
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Public Sub ClockDHCPServer()
|
||||
If IsNothing(test) Then Return
|
||||
test.BroadcastAddress = IPAddress.Parse("0.0.0.0")
|
||||
test.Dispose()
|
||||
' test.BroadcastAddress = IPAddress.Parse("0.0.0.0")
|
||||
End Sub
|
||||
|
||||
Public Sub UserDHCPDataReceivedEventHandler(dhcpRequest As DHCPRequest)
|
||||
AnalytischeGegevens(dhcpRequest) ' dhcpRequest.SendDHCPReply(,,)
|
||||
End Sub
|
||||
Public iscnt As Boolean
|
||||
Public isnumber As Integer
|
||||
Public Sub AnalytischeGegevens(dhcpRequest As DHCPRequest)
|
||||
|
||||
Select Case dhcpRequest.GetMsgType
|
||||
|
||||
Case DHCPMsgType.DHCPACK
|
||||
|
||||
Case DHCPMsgType.DHCPDECLINE
|
||||
|
||||
Case DHCPMsgType.DHCPDISCOVER '上线
|
||||
|
||||
'Dim ipinfo As NetworkInterface = test.SendDhcpAnswerNetworkInterface
|
||||
'If iscnt Then
|
||||
' RaiseEvent IsOpenwifi(False)
|
||||
' iscnt = False
|
||||
'End If
|
||||
|
||||
|
||||
|
||||
Dhcp_OFFER(dhcpRequest)
|
||||
Case DHCPMsgType.DHCPINFORM
|
||||
|
||||
Case DHCPMsgType.DHCPNAK
|
||||
|
||||
Case DHCPMsgType.DHCPOFFER
|
||||
|
||||
Case DHCPMsgType.DHCPRELEASE '下线
|
||||
|
||||
Case DHCPMsgType.DHCPREQUEST
|
||||
|
||||
Dhcp_ACK(dhcpRequest)
|
||||
|
||||
End Select
|
||||
|
||||
|
||||
End Sub
|
||||
Public Function GetByteIPToString(buff() As Byte) As String
|
||||
Dim result As String = ""
|
||||
For Each index In buff
|
||||
result = result & index & "."
|
||||
Next
|
||||
result = result.Substring(0, result.Length - 1)
|
||||
|
||||
Return result
|
||||
End Function
|
||||
Public Sub InitIPPool(startIP As String, ipMax As Integer, mac As String)
|
||||
Dim ipstrbuff() As String
|
||||
Dim number As Integer = 0
|
||||
ipstrbuff = startIP.Split(".")
|
||||
Dim cip As String = ""
|
||||
Dim ClientIP(3) As Byte
|
||||
_IndexIPDic.Clear()
|
||||
|
||||
For i = 0 To 3
|
||||
|
||||
Integer.TryParse(ipstrbuff(i), number)
|
||||
ClientIP(i) = number
|
||||
If i < 3 Then
|
||||
cip = cip & ClientIP(i) & "."
|
||||
End If
|
||||
|
||||
|
||||
Next
|
||||
If Not _IndexIPDic.ContainsKey(startIP) Then
|
||||
Dim newinfo As New dhcpInfo(ClientIP)
|
||||
newinfo.ChildState = IPStateType.Assigned
|
||||
newinfo.ChildMac = GetMacStr(mac)
|
||||
_IndexIPDic.Add(startIP, New dhcpInfo(ClientIP))
|
||||
|
||||
End If
|
||||
|
||||
For i As Integer = 1 To ipMax
|
||||
If ClientIP(3) + i > 255 Then Return
|
||||
Dim nClientIP(3) As Byte
|
||||
Array.Copy(ClientIP, nClientIP, ClientIP.Length)
|
||||
nClientIP(3) = ClientIP(3) + i
|
||||
If _IndexIPDic.ContainsKey(cip & nClientIP(3).ToString) Then Continue For
|
||||
_IndexIPDic.Add(cip & nClientIP(3).ToString, New dhcpInfo(nClientIP))
|
||||
Next
|
||||
|
||||
End Sub
|
||||
Public sendReply As DHCPReplyOptions
|
||||
Public IPfile As String
|
||||
Public Sub Dhcp_ACK(dhcpRequest As DHCPRequest)
|
||||
|
||||
|
||||
Dim sda As DHCPPacket = dhcpRequest.GetRawPacket
|
||||
Dim RequestedIP As IPAddress = dhcpRequest.GetRequestedIP
|
||||
Dim cmac As String = GetMacStr(sda.chaddr)
|
||||
Dim newinfo As dhcpInfo = CheckIsTakeUp(RequestedIP.ToString, cmac)
|
||||
|
||||
|
||||
Try
|
||||
If IsNothing(newinfo) Then
|
||||
dhcpRequest.SendDHCPReply(DHCPMsgType.DHCPNAK, IPAddress.Any, sendReply)
|
||||
RaiseEvent OupPrintfDHCPlog(RequestedIP.ToString, cmac, 4)
|
||||
Return
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Return
|
||||
End Try
|
||||
|
||||
|
||||
Dim IPstr As String = GetByteIPToString(newinfo.ChilIP)
|
||||
Dim ip As IPAddress = IPAddress.Parse(IPstr)
|
||||
|
||||
sda.op = &H2
|
||||
sda.htype = &H1
|
||||
sda.hlen = &H6
|
||||
sda.hops = &H0
|
||||
sda.flags = {&H0, &H1}
|
||||
sda.giaddr = {&H0, &H0, &H0, &H0}
|
||||
sda.yiaddr = newinfo.ChilIP
|
||||
sda.siaddr = newinfo.ChilIP
|
||||
Dim filebuff() As Byte = Encoding.UTF8.GetBytes(IPfile)
|
||||
|
||||
Array.Copy(filebuff, sda.file, filebuff.Length)
|
||||
|
||||
Try
|
||||
RaiseEvent OupPrintfDHCPlog(IPstr, cmac, 5)
|
||||
dhcpRequest.SendDHCPReply(DHCPMsgType.DHCPACK, ip, sendReply)
|
||||
Catch ex As Exception
|
||||
Console.WriteLine("发送异常:" & ex.ToString)
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
Public Sub Dhcp_OFFER(dhcpRequest As DHCPRequest)
|
||||
|
||||
Dim sda As DHCPPacket = dhcpRequest.GetRawPacket
|
||||
Dim cmac As String = GetMacStr(sda.chaddr)
|
||||
RaiseEvent OupPrintfDHCPlog("", cmac, 1)
|
||||
Dim newinfo As dhcpInfo = GetNewIPInfo(cmac)
|
||||
Dim dic As New Dictionary(Of DHCPOption, Byte())
|
||||
dic.Add(DHCPOption.NetBIOSoverTCPIPNameServer, {8, 8, 8, 8})
|
||||
dic.Add(DHCPOption.NetworkTimeProtocolServers, {&H58, &HBF, &HE4, &H8A})
|
||||
dic.Add(DHCPOption.TFTPServerName, {&H31, &H39, &H32, &H2E, &H31, &H36, &H38, &H2E, &H31, &H2E, &H31, &H30})
|
||||
dic.Add(DHCPOption.DomainName, {&H64, &H65, &H6D, &H6F, &H2E, &H70, &H69})
|
||||
dic.Add(DHCPOption.StaticRoutes, {&H78, &H30, &H42, &H41, &H43, &H31, &H30, &H43, &H30, &H41, &H38, &H30, &H31, &H46, &H45})
|
||||
sendReply.OtherRequestedOptions = dic
|
||||
If IsNothing(newinfo) Then
|
||||
dhcpRequest.SendDHCPReply(DHCPMsgType.DHCPNAK, IPAddress.Any, sendReply)
|
||||
RaiseEvent OupPrintfDHCPlog("", cmac, 2)
|
||||
Return
|
||||
End If
|
||||
|
||||
'Dim IPstr As String = GetByteIPToString(newinfo.ChilIP)
|
||||
'Dim ip As IPAddress = IPAddress.Parse(IPstr)
|
||||
Dim IPstr As String = GetByteIPToString(newinfo.ChilIP)
|
||||
Dim ip As IPAddress = IPAddress.Parse(IPstr)
|
||||
|
||||
|
||||
|
||||
newinfo.ChildMac = cmac
|
||||
|
||||
newinfo.ChildState = IPStateType.Assigned
|
||||
|
||||
sda.op = &H2
|
||||
sda.htype = &H1
|
||||
sda.hlen = &H6
|
||||
sda.hops = &H0
|
||||
sda.flags = {&H0, &H1}
|
||||
sda.giaddr = {&H0, &H0, &H0, &H0}
|
||||
sda.yiaddr = newinfo.ChilIP
|
||||
sda.siaddr = newinfo.ChilIP
|
||||
|
||||
Dim filebuff() As Byte = Encoding.UTF8.GetBytes(IPfile)
|
||||
|
||||
Array.Copy(filebuff, sda.file, filebuff.Length)
|
||||
|
||||
Try
|
||||
dhcpRequest.SendDHCPReply(DHCPMsgType.DHCPOFFER, ip, sendReply, dic)
|
||||
raiseEvent OupPrintfDHCPlog(IPstr, cmac, 3)
|
||||
Catch ex As Exception
|
||||
Console.WriteLine("发送异常:" & ex.ToString)
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
Public Function GetMacStr(duff As String) As String
|
||||
Dim sresult As String = ""
|
||||
For i As Integer = 0 To 4
|
||||
sresult = sresult & duff.Substring(i * 2, 2) & ":"
|
||||
|
||||
Next
|
||||
Return sresult.Substring(0, sresult.Length - 1)
|
||||
End Function
|
||||
Public Function GetMacStr(duff() As Byte) As String
|
||||
Dim sresult As String = ""
|
||||
Dim locadMac(5) As Byte
|
||||
Array.Copy(duff, locadMac, locadMac.Length)
|
||||
For Each index In locadMac
|
||||
sresult = sresult & Hex(index) & ":"
|
||||
Next
|
||||
Return sresult.Substring(0, sresult.Length - 1)
|
||||
End Function
|
||||
|
||||
Public Function GetNewIPInfo(mac As String) As dhcpInfo
|
||||
Dim newdhcpInfo As dhcpInfo
|
||||
Dim olddhcpInfo As dhcpInfo
|
||||
|
||||
|
||||
For Each index In _IndexIPDic.Values
|
||||
If mac.Equals(index.ChildMac) Then Return index
|
||||
If IsNothing(newdhcpInfo) AndAlso index.ChildState = IPStateType.NotAllocated Then
|
||||
newdhcpInfo = index
|
||||
Exit For
|
||||
End If
|
||||
If IsNothing(olddhcpInfo) AndAlso index.ChildState = IPStateType.Overdue Then
|
||||
olddhcpInfo = index
|
||||
End If
|
||||
Next
|
||||
If Not IsNothing(newdhcpInfo) Then
|
||||
Return newdhcpInfo
|
||||
ElseIf Not IsNothing(olddhcpInfo) Then
|
||||
Return olddhcpInfo
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
End Function
|
||||
|
||||
Public Function CheckIsTakeUp(name As String, mac As String) As dhcpInfo
|
||||
|
||||
If _IndexIPDic.ContainsKey(name) Then
|
||||
Dim Index = _IndexIPDic.Item(name)
|
||||
'ip 被占用 且用户 Mac 地址一致
|
||||
If Index.ChildState <> IPStateType.NotAllocated AndAlso Index.ChildMac.Equals(mac) Then
|
||||
Index.ChildState = IPStateType.Assigned
|
||||
Return Index
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
End If
|
||||
Return Nothing
|
||||
End Function
|
||||
|
||||
End Class
|
||||
Public Class dhcpInfo
|
||||
Public ChilIP() As Byte
|
||||
|
||||
Public ChildMac As String = ""
|
||||
|
||||
Public ChildTime As Long = 0
|
||||
|
||||
Public ChildState As Integer = 1
|
||||
Sub New(ip() As Byte)
|
||||
ChilIP = ip
|
||||
ChildMac = ""
|
||||
ChildTime = 0
|
||||
ChildState = 1
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
91
BLV_Studio/Control/DHCP/NetworkHelp.vb
Normal file
91
BLV_Studio/Control/DHCP/NetworkHelp.vb
Normal file
@@ -0,0 +1,91 @@
|
||||
Imports System.Collections.Generic
|
||||
Imports System.ComponentModel
|
||||
Imports System.Data
|
||||
Imports System.Drawing
|
||||
Imports System.Linq
|
||||
Imports System.Text
|
||||
Imports System.Threading.Tasks
|
||||
Imports System.Windows.Forms
|
||||
Imports System.Management
|
||||
Imports System.Net.NetworkInformation
|
||||
Imports System.Net.Sockets
|
||||
Imports System.Threading
|
||||
|
||||
Public Class NetworkHelp
|
||||
|
||||
|
||||
Public Shared Function SetNetworkAdapter() As Boolean
|
||||
Dim inPar As ManagementBaseObject = Nothing
|
||||
Dim outPar As ManagementBaseObject = Nothing
|
||||
Dim mc As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
|
||||
Dim moc As ManagementObjectCollection = mc.GetInstances()
|
||||
Dim isNetworkInterfaces As NetworkInterface() = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()
|
||||
Dim ipstr As String = String.Empty
|
||||
Dim ipProperties As IPInterfaceProperties
|
||||
Dim gateways As UnicastIPAddressInformationCollection
|
||||
|
||||
|
||||
For Each inten In isNetworkInterfaces
|
||||
If inten.NetworkInterfaceType = NetworkInterfaceType.Ethernet Then
|
||||
ipProperties = inten.GetIPProperties
|
||||
gateways = ipProperties.UnicastAddresses
|
||||
For Each tmp In gateways
|
||||
If tmp.Address.AddressFamily = AddressFamily.InterNetwork Then
|
||||
ipstr = tmp.Address.ToString
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
Next
|
||||
If String.IsNullOrEmpty(ipstr) Then
|
||||
MsgBox("以太网连接中断")
|
||||
Return False
|
||||
End If
|
||||
|
||||
Dim ipaddstr() As String
|
||||
Dim isflag As Boolean = True
|
||||
For Each mo As ManagementObject In moc
|
||||
ipaddstr = mo("IPAddress")
|
||||
If IsNothing(ipaddstr) Then Continue For
|
||||
For Each cipstr In ipaddstr
|
||||
If cipstr.Equals(ipstr) Then
|
||||
isflag = False
|
||||
End If
|
||||
Next
|
||||
If isflag Then Continue For
|
||||
'If Not CBool(mo("IPEnabled")) And isflag Then Continue For
|
||||
inPar = mo.GetMethodParameters("EnableStatic")
|
||||
inPar("IPAddress") = New String() {"192.168.1.10"}
|
||||
inPar("SubnetMask") = New String() {"255.255.0.0"}
|
||||
outPar = mo.InvokeMethod("EnableStatic", inPar, Nothing)
|
||||
inPar = mo.GetMethodParameters("SetGateways")
|
||||
inPar("DefaultIPGateway") = New String() {"192.168.1.1"}
|
||||
outPar = mo.InvokeMethod("SetGateways", inPar, Nothing)
|
||||
inPar = mo.GetMethodParameters("SetDNSServerSearchOrder")
|
||||
inPar("DNSServerSearchOrder") = New String() {"114.114.114.114", "223.5.5.5"}
|
||||
outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, Nothing)
|
||||
Return True
|
||||
Exit For
|
||||
Next
|
||||
|
||||
Thread.Sleep(100)
|
||||
Return False
|
||||
|
||||
|
||||
|
||||
|
||||
End Function
|
||||
Public Shared Sub SetNetworkAdapterDHCP()
|
||||
Dim mc As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
|
||||
Dim moc As ManagementObjectCollection = mc.GetInstances()
|
||||
|
||||
For Each mo As ManagementObject In moc
|
||||
If Not CBool(mo("IPEnabled")) Then Continue For
|
||||
mo.InvokeMethod("SetDNSServerSearchOrder", Nothing)
|
||||
mo.InvokeMethod("EnableStatic", Nothing)
|
||||
mo.InvokeMethod("SetGateways", Nothing)
|
||||
mo.InvokeMethod("EnableDHCP", Nothing)
|
||||
Exit For
|
||||
Next
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,92 @@
|
||||
Imports System.Collections.Generic
|
||||
Imports System.ComponentModel
|
||||
Imports System.Data
|
||||
Imports System.Drawing
|
||||
Imports System.Linq
|
||||
Imports System.Text
|
||||
Imports System.Threading.Tasks
|
||||
Imports System.Windows.Forms
|
||||
Imports System.Management
|
||||
Imports System.Net.NetworkInformation
|
||||
Imports System.Net.Sockets
|
||||
Imports System.Threading
|
||||
|
||||
Public Class NetworkHelp
|
||||
|
||||
|
||||
Public Shared Function SetNetworkAdapter() As Boolean
|
||||
Dim inPar As ManagementBaseObject = Nothing
|
||||
Dim outPar As ManagementBaseObject = Nothing
|
||||
Dim mc As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
|
||||
Dim moc As ManagementObjectCollection = mc.GetInstances()
|
||||
Dim isNetworkInterfaces As NetworkInterface() = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()
|
||||
Dim ipstr As String = String.Empty
|
||||
Dim ipProperties As IPInterfaceProperties
|
||||
Dim gateways As UnicastIPAddressInformationCollection
|
||||
|
||||
|
||||
For Each inten In isNetworkInterfaces
|
||||
If inten.NetworkInterfaceType = NetworkInterfaceType.Ethernet Then
|
||||
ipProperties = inten.GetIPProperties
|
||||
gateways = ipProperties.UnicastAddresses
|
||||
For Each tmp In gateways
|
||||
If tmp.Address.AddressFamily = AddressFamily.InterNetwork Then
|
||||
ipstr = tmp.Address.ToString
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
Next
|
||||
If String.IsNullOrEmpty(ipstr) Then
|
||||
MsgBox("以太网连接中断")
|
||||
Return False
|
||||
End If
|
||||
If ipstr.Equals("192.168.1.10") Then
|
||||
Return True
|
||||
Else
|
||||
Dim ipaddstr() As String
|
||||
Dim isflag As Boolean = True
|
||||
For Each mo As ManagementObject In moc
|
||||
ipaddstr = mo("IPAddress")
|
||||
If IsNothing(ipaddstr) Then Continue For
|
||||
For Each cipstr In ipaddstr
|
||||
If cipstr.Equals(ipstr) Then
|
||||
isflag = False
|
||||
End If
|
||||
Next
|
||||
If isflag Then Continue For
|
||||
'If Not CBool(mo("IPEnabled")) And isflag Then Continue For
|
||||
inPar = mo.GetMethodParameters("EnableStatic")
|
||||
inPar("IPAddress") = New String() {"192.168.1.10"}
|
||||
inPar("SubnetMask") = New String() {"255.255.0.0"}
|
||||
outPar = mo.InvokeMethod("EnableStatic", inPar, Nothing)
|
||||
inPar = mo.GetMethodParameters("SetGateways")
|
||||
inPar("DefaultIPGateway") = New String() {"172.17.123.254"}
|
||||
outPar = mo.InvokeMethod("SetGateways", inPar, Nothing)
|
||||
inPar = mo.GetMethodParameters("SetDNSServerSearchOrder")
|
||||
inPar("DNSServerSearchOrder") = New String() {"114.114.114.114", "202.97.224.69"}
|
||||
outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, Nothing)
|
||||
|
||||
Exit For
|
||||
Next
|
||||
Thread.Sleep(10)
|
||||
Return False
|
||||
|
||||
End If
|
||||
|
||||
|
||||
End Function
|
||||
Public Shared Sub SetNetworkAdapterDHCP()
|
||||
Dim mc As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
|
||||
Dim moc As ManagementObjectCollection = mc.GetInstances()
|
||||
|
||||
For Each mo As ManagementObject In moc
|
||||
If Not CBool(mo("IPEnabled")) Then Continue For
|
||||
mo.InvokeMethod("SetDNSServerSearchOrder", Nothing)
|
||||
mo.InvokeMethod("EnableStatic", Nothing)
|
||||
mo.InvokeMethod("SetGateways", Nothing)
|
||||
mo.InvokeMethod("EnableDHCP", Nothing)
|
||||
Exit For
|
||||
Next
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
169
BLV_Studio/Control/DataClass/AppLog.vb
Normal file
169
BLV_Studio/Control/DataClass/AppLog.vb
Normal file
@@ -0,0 +1,169 @@
|
||||
Imports System.IO
|
||||
Imports System.Text
|
||||
|
||||
Public NotInheritable Class AppLog
|
||||
|
||||
''' <summary>日志文件所在父文件夹路径</summary>
|
||||
Private Shared _logPath As String = Application.StartupPath
|
||||
|
||||
''' <summary>日志文件名前缀</summary>
|
||||
Private Shared _logFilePrefix As String = Application.ProductName
|
||||
|
||||
''' <summary>日志文件所在路径</summary>
|
||||
Private Shared _logFilePath As String = $"{LogDirPath}{Path.DirectorySeparatorChar}{LogFilePrefix}_{Date.Now:yyyyMMdd}.Log"
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 保存日志的文件夹完整路径
|
||||
''' </summary>
|
||||
Public Shared Property LogDirPath As String
|
||||
Get
|
||||
If Equals(_logPath, String.Empty) Then
|
||||
_logPath = Application.StartupPath
|
||||
End If
|
||||
Return _logPath
|
||||
End Get
|
||||
Set(value As String)
|
||||
_logPath = value
|
||||
|
||||
_logFilePath = $"{LogDirPath}{Path.DirectorySeparatorChar}{LogFilePrefix}_{Date.Now:yyyyMMdd}.Log"
|
||||
End Set
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' 日志文件前缀
|
||||
''' </summary>
|
||||
Public Shared Property LogFilePrefix As String
|
||||
Get
|
||||
Return _logFilePrefix
|
||||
End Get
|
||||
Set(value As String)
|
||||
_logFilePrefix = value
|
||||
_logFilePath = $"{LogDirPath}{Path.DirectorySeparatorChar}{LogFilePrefix}_{Date.Now:yyyyMMdd}.Log"
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Shared ReadOnly Property LogFilePath() As String
|
||||
Get
|
||||
Return _logFilePath
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 写入错误信息记录日志
|
||||
''' </summary>
|
||||
''' <param name="ex"></param>
|
||||
Public Shared Sub WriteErrorLog(ex As Exception)
|
||||
Dim msg As New StringBuilder
|
||||
|
||||
msg.Append($"{ex.StackTrace} {ex.Message}")
|
||||
|
||||
WriteLog(LogTypes.Error, msg.ToString())
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 写入流程信息记录日志
|
||||
''' </summary>
|
||||
''' <param name="msg"></param>
|
||||
Public Shared Sub WriteDebugLog(msg As String)
|
||||
WriteLog(LogTypes.Debug, msg.ToString())
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 写入流程信息记录日志
|
||||
''' </summary>
|
||||
''' <param name="msg"></param>
|
||||
Public Shared Sub WriteInfoLog(msg As String)
|
||||
WriteLog(LogTypes.Info, msg.ToString())
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 写入警告信息记录日志
|
||||
''' </summary>
|
||||
''' <param name="msg"></param>
|
||||
Public Shared Sub WriteWarningLog(msg As String)
|
||||
WriteLog(LogTypes.Warn, msg.ToString())
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 写入错误信息记录日志
|
||||
''' </summary>
|
||||
''' <param name="msg"></param>
|
||||
Public Shared Sub WriteErrorLog(msg As String)
|
||||
WriteLog(LogTypes.Error, msg.ToString())
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 写入数据库信息记录日志
|
||||
''' </summary>
|
||||
''' <param name="msg"></param>
|
||||
Public Shared Sub WriteFatalLog(msg As String)
|
||||
WriteLog(LogTypes.Fatal, msg.ToString())
|
||||
End Sub
|
||||
|
||||
|
||||
Private Shared ReadOnly LogLock As New Object() '日志锁,防止多线程同时写日志导致冲突
|
||||
|
||||
''' <summary>
|
||||
''' 将信息入到日志
|
||||
''' </summary>
|
||||
''' <param name="logType">日志类型</param>
|
||||
''' <param name="msg">日志内容</param>
|
||||
Public Shared Sub WriteLog(logType As String, msg As String)
|
||||
'写入记录入日志文件
|
||||
SyncLock LogLock
|
||||
Try
|
||||
Dim logString As New StringBuilder
|
||||
|
||||
logString.Append($"[{Date.Now:yyyy-MM-dd HH:mm:ss:fff}]") '日志产生时间
|
||||
|
||||
logString.Append($"[{logType,-6}]") '日志类型
|
||||
|
||||
logString.Append($"[{Process.GetCurrentProcess.Id,-6}]") '日志的进程号
|
||||
|
||||
logString.Append($"[{Threading.Thread.CurrentThread.ManagedThreadId,-4}]") '日志的线程号
|
||||
|
||||
logString.Append(msg) '日志的消息主题
|
||||
|
||||
Using sw As StreamWriter = File.AppendText($"{LogDirPath}{Path.DirectorySeparatorChar}{LogFilePrefix}_{Date.Now:yyyyMMdd}.Log")
|
||||
sw.WriteLine(logString.ToString())
|
||||
End Using
|
||||
|
||||
Catch ex As Exception
|
||||
Console.WriteLine($"Uts WriteLog Error:{ex.Message}")
|
||||
End Try
|
||||
|
||||
End SyncLock
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 写日志
|
||||
''' </summary>
|
||||
Public Shared Sub WriteLog(type As LogTypes, ByVal msg As String)
|
||||
WriteLog(type.ToString(), msg)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 日志类型
|
||||
''' </summary>
|
||||
Public Enum LogTypes
|
||||
''' <summary>调试信息</summary>
|
||||
Debug
|
||||
|
||||
''' <summary>系统运行信息</summary>
|
||||
Info
|
||||
|
||||
''' <summary>警告信息</summary>
|
||||
Warn
|
||||
|
||||
''' <summary>错误信息应该包含对象名、发生错误点所在的方法名称、具体错误信息</summary>
|
||||
[Error]
|
||||
|
||||
''' <summary>致命信息</summary>
|
||||
Fatal
|
||||
End Enum
|
||||
End Class
|
||||
33
BLV_Studio/Control/DataClass/CommSocketBLL.vb
Normal file
33
BLV_Studio/Control/DataClass/CommSocketBLL.vb
Normal file
@@ -0,0 +1,33 @@
|
||||
Imports System.Net
|
||||
Imports System.Net.Sockets
|
||||
Imports System.Threading
|
||||
|
||||
Public Class CommSocketBLL
|
||||
|
||||
''' <summary>
|
||||
''' 需要升级的IP和端口
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property Sockets As Socket
|
||||
|
||||
''' <summary>
|
||||
''' 本地IP和端口
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property LocalEP As IPEndPoint
|
||||
|
||||
''' <summary>
|
||||
''' 远程IP和端口
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property ReomteEP As IPEndPoint
|
||||
|
||||
''' <summary>
|
||||
''' Socket连接状态,默认非连接
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property ConnSocket As Boolean = False
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
273
BLV_Studio/Control/DataClass/SearchHostsListBLL.vb
Normal file
273
BLV_Studio/Control/DataClass/SearchHostsListBLL.vb
Normal file
@@ -0,0 +1,273 @@
|
||||
Public Class SearchHostsListBLL
|
||||
|
||||
''' <summary>
|
||||
''' 本机按键状态
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property BtnSatae As String
|
||||
|
||||
''' <summary>
|
||||
''' 机型编号
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property ModelNumber As String
|
||||
|
||||
''' <summary>
|
||||
''' IP地址
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property IPAddress As String
|
||||
|
||||
''' <summary>
|
||||
''' 服务器地址
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property ServiceAddress As String
|
||||
|
||||
''' <summary>
|
||||
''' 子网掩码
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property Subnet As String
|
||||
|
||||
''' <summary>
|
||||
''' 网关
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property Gateway As String
|
||||
|
||||
''' <summary>
|
||||
''' 端口
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property Port As String
|
||||
|
||||
''' <summary>
|
||||
''' DNS
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property DNS As String
|
||||
|
||||
''' <summary>
|
||||
''' 软件版本号
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property SoftwareVersion As String
|
||||
|
||||
''' <summary>
|
||||
''' 主机时间
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property HostsTime As String
|
||||
|
||||
''' <summary>
|
||||
''' MAC
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property MAC As String
|
||||
|
||||
''' <summary>
|
||||
''' 项目编号
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property ProjectCode As String
|
||||
|
||||
''' <summary>
|
||||
''' 房号ID
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property RoomNumberId As String
|
||||
|
||||
''' <summary>
|
||||
''' 房号备注
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property RoomNumber As String
|
||||
|
||||
''' <summary>
|
||||
''' 房型ID
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property RoomTypeId As String
|
||||
|
||||
''' <summary>
|
||||
''' 房型备注
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property RoomType As String
|
||||
|
||||
''' <summary>
|
||||
''' 配置版本号
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property ConfigVersion As String
|
||||
|
||||
''' <summary>
|
||||
''' 房态
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property RoomState As String
|
||||
|
||||
''' <summary>
|
||||
''' 季节
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property Season As String
|
||||
|
||||
''' <summary>
|
||||
''' 锁定
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property Lock As String
|
||||
|
||||
''' <summary>
|
||||
''' 授权时间
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property PrivilegedTime As String
|
||||
|
||||
''' <summary>
|
||||
''' 授权到期时间
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property PrivilegedDays As String
|
||||
|
||||
''' <summary>
|
||||
''' 房间备注
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property RoomRemarks As String
|
||||
|
||||
''' <summary>
|
||||
''' MCU机型名称
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property MCUName As String
|
||||
|
||||
''' <summary>
|
||||
''' 中控机型名称
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property CentralName As String
|
||||
|
||||
Public Property Launcher As String
|
||||
Public Property pzholtename As String
|
||||
Public Property pzroomname As String
|
||||
''' <summary>
|
||||
''' 初始化
|
||||
''' </summary>
|
||||
Sub New()
|
||||
BtnSatae = "" '本机按键状态
|
||||
ModelNumber = "" '机型编号
|
||||
IPAddress = "" 'IP地址
|
||||
ServiceAddress = "" '服务器地址
|
||||
Subnet = "" '子网掩码
|
||||
Gateway = "" '网关
|
||||
Port = "" '端口
|
||||
DNS = "" 'DNS
|
||||
SoftwareVersion = "" '软件版本号
|
||||
HostsTime = "" '主机时间
|
||||
MAC = "" 'MAC
|
||||
ProjectCode = "" '项目编号
|
||||
RoomNumberId = "" '房号ID
|
||||
RoomNumber = "" '房号备注
|
||||
RoomTypeId = "" '房型ID
|
||||
RoomType = "" '房型备注
|
||||
ConfigVersion = "" '配置版本号
|
||||
RoomState = "" '房态
|
||||
Season = "" '季节
|
||||
Lock = "" '锁定
|
||||
PrivilegedTime = "" '授权时间
|
||||
PrivilegedDays = "" '授权到期时间
|
||||
RoomRemarks = "" '房间备注
|
||||
MCUName = "" 'MCU机型名称
|
||||
CentralName = "" '中控机型名称
|
||||
|
||||
Launcher = ""
|
||||
pzholtename = ""
|
||||
pzroomname = ""
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 初始化
|
||||
''' </summary>
|
||||
Sub New(btnSatae As String,
|
||||
modelNumber As String,
|
||||
iPAddress As String,
|
||||
serviceAddr As String,
|
||||
subnet As String,
|
||||
gateway As String,
|
||||
port As String,
|
||||
dns As String,
|
||||
softwareVer As String,
|
||||
hostsTime As String,
|
||||
mac As String,
|
||||
projectCode As String,
|
||||
roomNumberId As String,
|
||||
roomNumber As String,
|
||||
roomTypeId As String,
|
||||
roomType As String,
|
||||
configVer As String,
|
||||
roomState As String,
|
||||
season As String,
|
||||
lock As String,
|
||||
privilegedTime As String,
|
||||
privilegedDays As String,
|
||||
roomRemarks As String,
|
||||
mcu As String,
|
||||
central As String,
|
||||
Launcher As String,
|
||||
pzholtename As String,
|
||||
pzroomname As String)
|
||||
Me.BtnSatae = btnSatae '本机按键状态
|
||||
Me.ModelNumber = modelNumber '机型编号
|
||||
Me.IPAddress = iPAddress 'IP地址
|
||||
Me.ServiceAddress = serviceAddr '服务器地址
|
||||
Me.Subnet = subnet '子网掩码
|
||||
Me.Gateway = gateway '网关
|
||||
Me.Port = port '端口
|
||||
Me.DNS = dns 'DNS
|
||||
Me.SoftwareVersion = softwareVer '软件版本号
|
||||
Me.HostsTime = hostsTime '主机时间
|
||||
Me.MAC = mac 'MAC
|
||||
Me.ProjectCode = projectCode '项目编号
|
||||
Me.RoomNumberId = roomNumberId '房号ID
|
||||
Me.RoomNumber = roomNumber '房号备注
|
||||
Me.RoomTypeId = roomTypeId '房型ID
|
||||
Me.RoomType = roomType '房型备注
|
||||
Me.ConfigVersion = configVer '配置版本号
|
||||
Me.RoomState = roomState '房态
|
||||
Me.Season = season '季节
|
||||
Me.Lock = lock '锁定
|
||||
Me.PrivilegedTime = privilegedTime '授权时间
|
||||
Me.PrivilegedDays = privilegedDays '授权到期时间
|
||||
Me.RoomRemarks = roomRemarks '房间备注
|
||||
Me.MCUName = mcu 'MCU机型名称
|
||||
Me.CentralName = central '中控机型名称
|
||||
|
||||
Me.Launcher = Launcher
|
||||
Me.pzholtename = pzholtename
|
||||
Me.pzroomname = pzroomname
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取设备名称
|
||||
''' </summary>
|
||||
''' <param name="mac">设备类型</param>
|
||||
''' <param name="ipAddr">设备地址</param>
|
||||
''' <returns></returns>
|
||||
Public Shared Function GetHostInfo(mac As String, ipAddr As String) As String
|
||||
|
||||
|
||||
Return $"{mac}_{ipAddr}"
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
31
BLV_Studio/Control/DataClass/UpgradeBLL.vb
Normal file
31
BLV_Studio/Control/DataClass/UpgradeBLL.vb
Normal file
@@ -0,0 +1,31 @@
|
||||
Imports System.Net
|
||||
Imports System.Net.Sockets
|
||||
|
||||
Public Class UpgradeBLL
|
||||
|
||||
''' <summary>
|
||||
''' 升级序号
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property Index As Integer
|
||||
|
||||
''' <summary>
|
||||
''' 需要升级的IP和端口
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property ReomteEP As IPEndPoint
|
||||
|
||||
''' <summary>
|
||||
''' 主机端口
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property port As Integer
|
||||
|
||||
''' <summary>
|
||||
''' 主机soket
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property socket As Socket
|
||||
|
||||
|
||||
End Class
|
||||
203
BLV_Studio/Control/FTP/UtsFtp.vb
Normal file
203
BLV_Studio/Control/FTP/UtsFtp.vb
Normal file
@@ -0,0 +1,203 @@
|
||||
Imports System.IO
|
||||
Imports System.Threading
|
||||
Imports FluentFTP
|
||||
|
||||
Namespace UTSModule
|
||||
Public Class CUtsFtp
|
||||
''' <summary>测试器句柄,全局唯一</summary>
|
||||
Private Shared _object As CUtsFtp
|
||||
|
||||
''' <summary>初始化测试器线程锁</summary>
|
||||
Private Shared ReadOnly InitLock As New Object()
|
||||
|
||||
Private Shared FtpPort As Integer
|
||||
Private Shared FtpUser As String
|
||||
Private Shared FtpPwd As String
|
||||
|
||||
Private _ftpUser As String
|
||||
Private _ftpPwd As String
|
||||
Private _ftpPort As Integer
|
||||
Private _ftpHost As String
|
||||
|
||||
Private Default_FTP_Host As String = "blv-oa.com"
|
||||
|
||||
''' <summary>
|
||||
''' 初始化FTP连接参数
|
||||
''' </summary>
|
||||
''' <param name="port">端口号</param>
|
||||
''' <param name="user">用户名</param>
|
||||
''' <param name="pwd">用户密码</param>
|
||||
Public Shared Sub InitConnectParams(port As Integer, user As String, pwd As String)
|
||||
FtpPort = port
|
||||
FtpUser = user
|
||||
FtpPwd = pwd
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 创建类单例对象
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Shared Function CreateObject() As CUtsFtp
|
||||
If _object Is Nothing Then
|
||||
SyncLock InitLock
|
||||
Thread.MemoryBarrier()
|
||||
If _object Is Nothing Then
|
||||
_object = New CUtsFtp("blv-oa.com", FtpPort, FtpUser, FtpPwd)
|
||||
End If
|
||||
End SyncLock
|
||||
End If
|
||||
Return _object
|
||||
End Function
|
||||
Public Function DownloadDir(loaddir As String, ftpDir As String) As Boolean
|
||||
Dim result As FtpListItem()
|
||||
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
|
||||
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
|
||||
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
|
||||
ftpClient.AutoConnect()
|
||||
Try
|
||||
DownloadFtpDirectory(ftpClient, ftpDir, loaddir)
|
||||
Catch ex As Exception
|
||||
ftpClient.Disconnect()
|
||||
Return False
|
||||
End Try
|
||||
|
||||
ftpClient.Disconnect()
|
||||
End Using
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Shared Sub DownloadFtpDirectory(ByVal ftpClient As FtpClient, ByVal remotePath As String, ByVal localPath As String)
|
||||
|
||||
For Each item In ftpClient.GetListing(remotePath)
|
||||
Dim localItemPath As String = Path.Combine(localPath, item.Name)
|
||||
Dim remoteimtePath As String = Path.Combine(remotePath, item.Name)
|
||||
If item.Type = FtpFileSystemObjectType.File Then
|
||||
|
||||
Dim state As FtpStatus = ftpClient.DownloadFile(localItemPath, remoteimtePath, FtpLocalExists.Overwrite)
|
||||
If Not state = FtpStatus.Success Then
|
||||
MsgBox($"download failed!!{vbCrLf }{localItemPath}")
|
||||
End If
|
||||
|
||||
ElseIf item.Type = FtpFileSystemObjectType.Directory Then
|
||||
|
||||
If Not Directory.Exists(localItemPath) Then
|
||||
Directory.CreateDirectory(localItemPath)
|
||||
End If
|
||||
|
||||
DownloadFtpDirectory(ftpClient, remoteimtePath, localItemPath)
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub New(host As String, port As Integer, user As String, pwd As String)
|
||||
_ftpHost = host
|
||||
_ftpPort = port
|
||||
_ftpUser = user
|
||||
_ftpPwd = pwd
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' Ftp服务器地址
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property FtpHost As String
|
||||
Get
|
||||
Return _ftpHost
|
||||
End Get
|
||||
Set(value As String)
|
||||
_ftpHost = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private Sub OnValidateCertificate(control As FtpClient, e As FtpSslValidationEventArgs)
|
||||
e.Accept = True
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 判断FTP文件是否存在
|
||||
''' </summary>
|
||||
''' <param name="path"></param>
|
||||
''' <returns></returns>
|
||||
Public Function FtpFileExists(path As String) As Boolean
|
||||
Dim result As Boolean
|
||||
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
|
||||
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
|
||||
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
|
||||
ftpClient.AutoConnect()
|
||||
result = ftpClient.FileExists(path)
|
||||
ftpClient.Disconnect()
|
||||
End Using
|
||||
|
||||
Return result
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 创建Ftp文件夹
|
||||
''' </summary>
|
||||
''' <param name="remoteDir">Ftp文件夹路径</param>
|
||||
''' <param name="force">创建所有不存在的文件夹路径</param>
|
||||
Public Sub CreateDir(remoteDir As String, Optional force As Boolean = False)
|
||||
Using ftpClient As FtpClient = New FtpClient(FtpHost, _ftpPort, _ftpUser, _ftpPwd)
|
||||
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
|
||||
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
|
||||
ftpClient.AutoConnect()
|
||||
ftpClient.CreateDirectory(remoteDir, force)
|
||||
ftpClient.Disconnect()
|
||||
End Using
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 上传本地文件至Ftp
|
||||
''' 将本地指定路径压缩包上传到FTP服务器上manager文件夹下
|
||||
''' </summary>
|
||||
Public Sub FtpUpload(remotePath As String, loadPath As String)
|
||||
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
|
||||
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
|
||||
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
|
||||
ftpClient.AutoConnect()
|
||||
ftpClient.UploadFile(loadPath, remotePath, FtpRemoteExists.Overwrite, True)
|
||||
ftpClient.Disconnect()
|
||||
End Using
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 从Ftp下载文件至本地
|
||||
''' 从FTP下载压缩包,到本地指定路径
|
||||
''' </summary>
|
||||
Public Overloads Function FtpDownload(remotePath As String, loadPath As String, Optional existMode As FtpLocalExists = FtpLocalExists.Overwrite) As FtpStatus
|
||||
Dim state As FtpStatus
|
||||
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
|
||||
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
|
||||
ftpClient.EncryptionMode = FtpEncryptionMode.None
|
||||
ftpClient.ConnectAsync()
|
||||
state = ftpClient.DownloadFile(loadPath, remotePath, existMode)
|
||||
ftpClient.Disconnect()
|
||||
|
||||
End Using
|
||||
Return state
|
||||
End Function
|
||||
|
||||
Public Overloads Sub FtpDownload(FtpDownloadfile As Dictionary(Of String, String), Optional existMode As FtpLocalExists = FtpLocalExists.Overwrite)
|
||||
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
|
||||
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
|
||||
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
|
||||
ftpClient.AutoConnect()
|
||||
For Each loadfile In FtpDownloadfile
|
||||
ftpClient.DownloadFile(loadfile.Value, loadfile.Key, existMode)
|
||||
Next
|
||||
ftpClient.Disconnect()
|
||||
|
||||
End Using
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
End Namespace
|
||||
|
||||
352
BLV_Studio/Control/FTP/blvFtpServer.vb
Normal file
352
BLV_Studio/Control/FTP/blvFtpServer.vb
Normal file
@@ -0,0 +1,352 @@
|
||||
|
||||
Imports BLV_Studio.UTSModule
|
||||
Imports FluentFTP
|
||||
Imports MD5Hash
|
||||
Imports System.IO
|
||||
Imports System.Security.Cryptography
|
||||
Imports System.Threading
|
||||
Public Class CblvFtpServer
|
||||
|
||||
|
||||
'Public password As String = MD5Hash.Hash.Content("123")
|
||||
''' <summary>
|
||||
''' 文件同步线程
|
||||
''' </summary>
|
||||
Public _syn_thread As Thread
|
||||
''' <summary>
|
||||
''' 本地同步文件夹路径
|
||||
''' </summary>
|
||||
Public _SyncLoadDirPath As String
|
||||
|
||||
''' <summary>
|
||||
''' 数据库登录
|
||||
''' </summary>
|
||||
Public _dbLoginStr As String
|
||||
|
||||
''' <summary>
|
||||
''' 数据库同步文件集 所在文件夹路径 *文件名
|
||||
''' </summary>
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 需要下载的文件集 相对路径文件名
|
||||
''' </summary>
|
||||
|
||||
''' <summary>
|
||||
''' FTP同步标志
|
||||
''' </summary>
|
||||
Private _startFlag As Integer = 0
|
||||
''' <summary>
|
||||
''' FTP同步间隔
|
||||
''' </summary>
|
||||
Private num As Integer = 30
|
||||
''' <summary>
|
||||
'''
|
||||
''' </summary>
|
||||
''' <param name="loadpath">同步文件夹本地路径</param>
|
||||
''' <param name="serverpath">同步云文件夹路径</param>
|
||||
Sub New(loadpath As String, dbLoginStr As String)
|
||||
_dbLoginStr = dbLoginStr
|
||||
If loadpath.Substring(loadpath.Length - 1, 1).Equals("\") Then
|
||||
_SyncLoadDirPath = loadpath
|
||||
Else
|
||||
_SyncLoadDirPath = loadpath & "\"
|
||||
End If
|
||||
|
||||
|
||||
End Sub
|
||||
Sub New()
|
||||
|
||||
End Sub
|
||||
Public Sub FtpfileMain()
|
||||
|
||||
'开启线程
|
||||
FtpfileThread()
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Public Sub FtpfileThread()
|
||||
Dim cnt As Integer = 50
|
||||
Dim _FilePath_li As List(Of String)
|
||||
Dim loadFilerow As List(Of Dictionary(Of String, String))
|
||||
Dim FileMysqlRow As List(Of Dictionary(Of String, String))
|
||||
Dim SyncToLoadFile As Dictionary(Of String, String)
|
||||
_startFlag = 0
|
||||
While True
|
||||
|
||||
If cnt > num Then
|
||||
cnt = 0
|
||||
_startFlag = 0
|
||||
RaiseEvent ParseUdpData(0)
|
||||
num = 30
|
||||
_FilePath_li = Enumerationdirectory(_SyncLoadDirPath)
|
||||
'本地文件信息储存
|
||||
loadFilerow = filetosqlfunction(_FilePath_li)
|
||||
' 获取数据库文件数据
|
||||
FileMysqlRow = GetMysqlfiledata(_dbLoginStr)
|
||||
' 文件比对
|
||||
SyncToLoadFile = Proofreadfile(loadFilerow, FileMysqlRow)
|
||||
|
||||
' FTP下载
|
||||
FTPDownloadFile(SyncToLoadFile)
|
||||
|
||||
|
||||
End If
|
||||
cnt += 1
|
||||
Thread.Sleep(60000)
|
||||
End While
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Public Function FtpfileDownload(dirpath As String, filename As String, md5 As String) As Boolean
|
||||
|
||||
CUtsFtp.InitConnectParams(FtpPort, FtpUser, FtpPwd)
|
||||
Dim ftp As CUtsFtp = CUtsFtp.CreateObject()
|
||||
ftp.FtpHost = FtpHost
|
||||
|
||||
|
||||
If ftp.FtpDownload(dirpath, filename) = FtpStatus.Success Then
|
||||
If VerifyFileMD5(filename, md5) Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
Public Function VerifyFileMD5(filePath As String, fileMd5 As String) As Boolean
|
||||
|
||||
If IO.File.Exists(filePath) Then
|
||||
Dim loadMD5 As String = GetStringMd5(filePath)
|
||||
fileMd5 = fileMd5.ToUpper
|
||||
loadMD5 = loadMD5.ToUpper
|
||||
If fileMd5.Equals(loadMD5) Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Function GetStringMd5(filePath As String) As String
|
||||
Dim dataFile() As Byte = File.ReadAllBytes(filePath)
|
||||
|
||||
Dim databuff As Byte() = MD5.Create().ComputeHash(dataFile)
|
||||
Dim MD5str As String = BitConverter.ToString(databuff)
|
||||
Return MD5str.Replace("-", "")
|
||||
'Console.WriteLine($"md5-1:{MD5str.Replace("-", "")}")
|
||||
End Function
|
||||
'''' <summary>
|
||||
'''' 获取指定文件夹下所有文件
|
||||
'''' 获取同步文件夹文件
|
||||
'''' </summary>
|
||||
'''' <param name="dirpath"></param>
|
||||
'Public Function Enumerationdirectory(dirpath As String) As List(Of String)
|
||||
' If IO.Directory.Exists(dirpath) Then
|
||||
' Dim filebufF() As String = IO.Directory.GetFiles(dirpath)
|
||||
' If filebufF.Length > 0 Then
|
||||
' _FilePath_li.AddRange(filebufF)
|
||||
' End If
|
||||
|
||||
' Dim dirbuff() As String = IO.Directory.GetDirectories(dirpath)
|
||||
' _DirPah_li.AddRange(dirbuff)
|
||||
' For Each partdir In dirbuff
|
||||
' Enumerationdirectory(partdir)
|
||||
' Next
|
||||
' Else
|
||||
' MessageBox.Show("同步文件夹不存在")
|
||||
' End If
|
||||
|
||||
'End Function
|
||||
|
||||
Public Function Enumerationdirectory(dirpath As String) As List(Of String)
|
||||
Dim filelist As New List(Of String)
|
||||
Dim dirlist As New List(Of String)
|
||||
If IO.Directory.Exists(dirpath) Then
|
||||
|
||||
Dim filebufF() As String = IO.Directory.GetFiles(dirpath)
|
||||
If filebufF.Length > 0 Then
|
||||
filelist.AddRange(filebufF)
|
||||
End If
|
||||
|
||||
Dim dirbuff() As String = IO.Directory.GetDirectories(dirpath)
|
||||
dirlist.AddRange(dirbuff)
|
||||
For Each partdir In dirbuff
|
||||
filelist.AddRange(Enumerationdirectory(partdir))
|
||||
Next
|
||||
Else
|
||||
MessageBox.Show("同步文件夹不存在")
|
||||
End If
|
||||
Return filelist
|
||||
End Function
|
||||
|
||||
|
||||
Public Function filetosqlfunction(_FilePath_li As List(Of String)) As List(Of Dictionary(Of String, String))
|
||||
Dim loadFilerow As New List(Of Dictionary(Of String, String))
|
||||
For Each filestr In _FilePath_li
|
||||
' Dim filedata As New FileToSqlVariable
|
||||
Dim clunm As New Dictionary(Of String, String)
|
||||
Dim md5 As String = Hash.Content(IO.File.ReadAllText(filestr))
|
||||
Dim filedir As String = filestr.Substring(0, filestr.LastIndexOf("\") + 1)
|
||||
|
||||
Dim filename As String = filestr.Substring(filedir.Length, filestr.Length - filedir.Length)
|
||||
clunm.Add("Directory", filedir)
|
||||
clunm.Add("Available", 1)
|
||||
clunm.Add("FileName", filename)
|
||||
clunm.Add("UploadDateTime", Now.ToString("yyyy-MM-dd HH:mm:ss.fff"))
|
||||
clunm.Add("MD5", md5)
|
||||
loadFilerow.Add(clunm)
|
||||
'filedata_li.Add(filedata)
|
||||
Next
|
||||
Return loadFilerow
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取数据库文件数据
|
||||
''' </summary>
|
||||
''' <param name="DbConnString"></param>
|
||||
''' <returns></returns>
|
||||
|
||||
Public Function GetMysqlfiledata(DbConnString As String) As List(Of Dictionary(Of String, String))
|
||||
'Dim sqlfile As New Dictionary(Of Integer, List(Of String))
|
||||
Dim FileMysqlRow As New List(Of Dictionary(Of String, String))
|
||||
Try
|
||||
Dim dt As DataTable
|
||||
|
||||
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
|
||||
db.Open()
|
||||
dt = db.ExecuteDataTable(db.CmdHelper.SearchAll("tbl_model_file_data", $"Available = '1'"))
|
||||
db.Close()
|
||||
End Using
|
||||
For Each dtrow As DataRow In dt.Rows
|
||||
Dim clunm As New Dictionary(Of String, String)
|
||||
For i As Integer = 0 To dt.Columns.Count - 1
|
||||
'Console.WriteLine("argRoomTypeNodeIdx = " & dtrow.Item(i))
|
||||
'If dtrow.Item(i).GetType = "DbNull" Then
|
||||
' clunm.Add(dt.Columns(i).ColumnName, "")
|
||||
' Continue For
|
||||
'End If
|
||||
clunm.Add(dt.Columns(i).ColumnName, dtrow.Item(i).ToString)
|
||||
Next
|
||||
FileMysqlRow.Add(clunm)
|
||||
Next
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
Return FileMysqlRow
|
||||
End Function
|
||||
''' <summary>
|
||||
''' 文件比对
|
||||
''' </summary>
|
||||
Public Function Proofreadfile(loadFilerow As List(Of Dictionary(Of String, String)), FileMysqlRow As List(Of Dictionary(Of String, String)))
|
||||
'下载标记 False 下载
|
||||
Dim SyncToLoadFile As New Dictionary(Of String, String)
|
||||
For i As Integer = 0 To FileMysqlRow.Count - 1
|
||||
Dim download_flag As Boolean = False
|
||||
Dim serverRow As Dictionary(Of String, String) = FileMysqlRow.Item(i)
|
||||
For j As Integer = 0 To loadFilerow.Count - 1
|
||||
Dim loadRow As Dictionary(Of String, String) = loadFilerow.Item(j)
|
||||
If Filecomparison(serverRow, loadRow) Then
|
||||
loadFilerow.RemoveAt(j)
|
||||
download_flag = True
|
||||
Exit For
|
||||
Else
|
||||
download_flag = False
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
|
||||
If download_flag Then
|
||||
Continue For
|
||||
Else
|
||||
'Dim syncfile As New Dictionary(Of String, String)
|
||||
''云文件完整路径
|
||||
'Dim Syncpath = _FileMysqlRow.Item(i).Item("Directory") & "\" & _FileMysqlRow.Item(i).Item("FileName")
|
||||
'云文件相对路径
|
||||
Dim filepath = FileMysqlRow.Item(i).Item("Directory") & "\" & FileMysqlRow.Item(i).Item("XML_FileName")
|
||||
'syncfile.Add(Syncpath, RelativePath)
|
||||
Dim Loadfilepath As String = filepath.Replace("\Data\Model\", "")
|
||||
SyncToLoadFile.Add(filepath, _SyncLoadDirPath & Loadfilepath)
|
||||
|
||||
End If
|
||||
|
||||
Next
|
||||
loadFilerow.Clear()
|
||||
FileMysqlRow.Clear()
|
||||
Return SyncToLoadFile
|
||||
End Function
|
||||
|
||||
Public Function Filecomparison(sqlfile As Dictionary(Of String, String), loadfile As Dictionary(Of String, String)) As Boolean
|
||||
|
||||
Dim loadpath = loadfile.Item("Directory").Replace(_SyncLoadDirPath, "_\") & loadfile.Item("FileName")
|
||||
Dim serverpath = sqlfile.Item("Directory").Replace("\Data\Model", "_") & "\" & sqlfile.Item("XML_FileName")
|
||||
|
||||
If loadpath.Equals(serverpath) AndAlso loadfile.Item("MD5").Equals(sqlfile.Item("XLM_MD5")) Then
|
||||
Return True
|
||||
End If
|
||||
Return False
|
||||
End Function
|
||||
Public FtpHost As String = "blv-oa.com"
|
||||
Public FtpPort As Integer = 50
|
||||
Public FtpUser As String = "BLV_Studio"
|
||||
Public FtpPwd As String = "37f5675t6R&5*"
|
||||
''' <summary>
|
||||
''' FTP下载
|
||||
''' </summary>
|
||||
Public Sub FTPDownloadFile(SyncToLoadFile As Dictionary(Of String, String))
|
||||
Try
|
||||
CUtsFtp.InitConnectParams(FtpPort, FtpUser, FtpPwd)
|
||||
Dim ftp As CUtsFtp = CUtsFtp.CreateObject()
|
||||
ftp.FtpHost = FtpHost
|
||||
'For Each filepath In _SyncToLoadFile
|
||||
|
||||
'ftp.FtpDownload("/Data/Model/485Model/3.txt", _SyncLoadDirPath & "3.txt")
|
||||
ftp.FtpDownload(SyncToLoadFile)
|
||||
SyncToLoadFile.Clear()
|
||||
' Next
|
||||
Catch ex As Exception
|
||||
_startFlag = 1
|
||||
num = 10
|
||||
RaiseEvent ParseUdpData(1)
|
||||
'AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||||
End Try
|
||||
_startFlag = 2
|
||||
num = 60
|
||||
RaiseEvent ParseUdpData(2)
|
||||
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Public Function Utf8ToGB2312(utf8str As String) As String
|
||||
Dim temp() As Byte
|
||||
temp = Text.Encoding.Default.GetBytes(utf8str)
|
||||
Text.Encoding.Convert(Text.Encoding.GetEncoding("utf-8"), Text.Encoding.GetEncoding("gb2312"), temp)
|
||||
Return Text.Encoding.Default.GetString(temp)
|
||||
End Function
|
||||
|
||||
Public Event ParseUdpData(ftpflag As Integer)
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
170
BLV_Studio/Control/FrmAboutDialog.Designer.vb
generated
Normal file
170
BLV_Studio/Control/FrmAboutDialog.Designer.vb
generated
Normal file
@@ -0,0 +1,170 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class FrmAboutDialog
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form 重写 Dispose,以清理组件列表。
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows 窗体设计器所必需的
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||
'可以使用 Windows 窗体设计器修改它。
|
||||
'不要使用代码编辑器修改它。
|
||||
<System.Diagnostics.DebuggerStepThrough()>
|
||||
Private Sub InitializeComponent()
|
||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FrmAboutDialog))
|
||||
Me.LogoPictureBox = New System.Windows.Forms.PictureBox()
|
||||
Me.TableLayoutPanel = New System.Windows.Forms.TableLayoutPanel()
|
||||
Me.LabelCompanyName = New System.Windows.Forms.Label()
|
||||
Me.LabelVersion = New System.Windows.Forms.Label()
|
||||
Me.LabelCopyright = New System.Windows.Forms.Label()
|
||||
Me.LabelProductName = New System.Windows.Forms.Label()
|
||||
Me.OKButton = New System.Windows.Forms.Button()
|
||||
CType(Me.LogoPictureBox,System.ComponentModel.ISupportInitialize).BeginInit
|
||||
Me.TableLayoutPanel.SuspendLayout
|
||||
Me.SuspendLayout
|
||||
'
|
||||
'LogoPictureBox
|
||||
'
|
||||
Me.LogoPictureBox.BackColor = System.Drawing.Color.Transparent
|
||||
Me.LogoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.LogoPictureBox.Location = New System.Drawing.Point(3, 3)
|
||||
Me.LogoPictureBox.Name = "LogoPictureBox"
|
||||
Me.TableLayoutPanel.SetRowSpan(Me.LogoPictureBox, 6)
|
||||
Me.LogoPictureBox.Size = New System.Drawing.Size(63, 189)
|
||||
Me.LogoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage
|
||||
Me.LogoPictureBox.TabIndex = 0
|
||||
Me.LogoPictureBox.TabStop = false
|
||||
'
|
||||
'TableLayoutPanel
|
||||
'
|
||||
Me.TableLayoutPanel.BackColor = System.Drawing.Color.Transparent
|
||||
Me.TableLayoutPanel.ColumnCount = 3
|
||||
Me.TableLayoutPanel.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 21.83544!))
|
||||
Me.TableLayoutPanel.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 78.16456!))
|
||||
Me.TableLayoutPanel.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 79!))
|
||||
Me.TableLayoutPanel.Controls.Add(Me.LabelCompanyName, 0, 5)
|
||||
Me.TableLayoutPanel.Controls.Add(Me.LogoPictureBox, 0, 0)
|
||||
Me.TableLayoutPanel.Controls.Add(Me.LabelVersion, 1, 3)
|
||||
Me.TableLayoutPanel.Controls.Add(Me.LabelCopyright, 1, 4)
|
||||
Me.TableLayoutPanel.Controls.Add(Me.LabelProductName, 1, 1)
|
||||
Me.TableLayoutPanel.Controls.Add(Me.OKButton, 2, 6)
|
||||
Me.TableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.TableLayoutPanel.Location = New System.Drawing.Point(9, 8)
|
||||
Me.TableLayoutPanel.Name = "TableLayoutPanel"
|
||||
Me.TableLayoutPanel.RowCount = 7
|
||||
Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 21.93878!))
|
||||
Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 53!))
|
||||
Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.02941!))
|
||||
Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.32258!))
|
||||
Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 27.09678!))
|
||||
Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 29.67742!))
|
||||
Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 41!))
|
||||
Me.TableLayoutPanel.Size = New System.Drawing.Size(396, 239)
|
||||
Me.TableLayoutPanel.TabIndex = 0
|
||||
'
|
||||
'LabelCompanyName
|
||||
'
|
||||
Me.LabelCompanyName.BackColor = System.Drawing.Color.Transparent
|
||||
Me.LabelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.LabelCompanyName.ForeColor = System.Drawing.Color.Aqua
|
||||
Me.LabelCompanyName.Location = New System.Drawing.Point(75, 152)
|
||||
Me.LabelCompanyName.Margin = New System.Windows.Forms.Padding(6, 0, 3, 0)
|
||||
Me.LabelCompanyName.MaximumSize = New System.Drawing.Size(0, 16)
|
||||
Me.LabelCompanyName.Name = "LabelCompanyName"
|
||||
Me.LabelCompanyName.Size = New System.Drawing.Size(238, 16)
|
||||
Me.LabelCompanyName.TabIndex = 4
|
||||
Me.LabelCompanyName.Text = "公司名称"
|
||||
Me.LabelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||
'
|
||||
'LabelVersion
|
||||
'
|
||||
Me.LabelVersion.BackColor = System.Drawing.Color.Transparent
|
||||
Me.LabelVersion.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.LabelVersion.ForeColor = System.Drawing.Color.Aqua
|
||||
Me.LabelVersion.Location = New System.Drawing.Point(75, 99)
|
||||
Me.LabelVersion.Margin = New System.Windows.Forms.Padding(6, 0, 3, 0)
|
||||
Me.LabelVersion.MaximumSize = New System.Drawing.Size(0, 16)
|
||||
Me.LabelVersion.Name = "LabelVersion"
|
||||
Me.LabelVersion.Size = New System.Drawing.Size(238, 14)
|
||||
Me.LabelVersion.TabIndex = 0
|
||||
Me.LabelVersion.Text = "版本 v2.2.10.25"
|
||||
Me.LabelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||
'
|
||||
'LabelCopyright
|
||||
'
|
||||
Me.LabelCopyright.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.LabelCopyright.ForeColor = System.Drawing.Color.Aqua
|
||||
Me.LabelCopyright.Location = New System.Drawing.Point(72, 113)
|
||||
Me.LabelCopyright.Name = "LabelCopyright"
|
||||
Me.LabelCopyright.Size = New System.Drawing.Size(241, 39)
|
||||
Me.LabelCopyright.TabIndex = 5
|
||||
Me.LabelCopyright.Text = "版权 BY"
|
||||
Me.LabelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||
'
|
||||
'LabelProductName
|
||||
'
|
||||
Me.LabelProductName.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.LabelProductName.Font = New System.Drawing.Font("宋体", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
|
||||
Me.LabelProductName.ForeColor = System.Drawing.Color.Aqua
|
||||
Me.LabelProductName.Location = New System.Drawing.Point(72, 31)
|
||||
Me.LabelProductName.Name = "LabelProductName"
|
||||
Me.LabelProductName.Size = New System.Drawing.Size(241, 53)
|
||||
Me.LabelProductName.TabIndex = 6
|
||||
Me.LabelProductName.Text = "C系列配置工具"
|
||||
Me.LabelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
|
||||
'
|
||||
'OKButton
|
||||
'
|
||||
Me.OKButton.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
|
||||
Me.OKButton.BackColor = System.Drawing.Color.FromArgb(CType(CType(192,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(255,Byte),Integer))
|
||||
Me.OKButton.DialogResult = System.Windows.Forms.DialogResult.Cancel
|
||||
Me.OKButton.ForeColor = System.Drawing.SystemColors.Control
|
||||
Me.OKButton.Location = New System.Drawing.Point(319, 206)
|
||||
Me.OKButton.Name = "OKButton"
|
||||
Me.OKButton.Size = New System.Drawing.Size(74, 30)
|
||||
Me.OKButton.TabIndex = 0
|
||||
Me.OKButton.Text = "确定(&O)"
|
||||
Me.OKButton.UseVisualStyleBackColor = false
|
||||
'
|
||||
'FrmAboutDialog
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 12!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.BackgroundImage = CType(resources.GetObject("$this.BackgroundImage"),System.Drawing.Image)
|
||||
Me.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
|
||||
Me.CancelButton = Me.OKButton
|
||||
Me.ClientSize = New System.Drawing.Size(414, 255)
|
||||
Me.Controls.Add(Me.TableLayoutPanel)
|
||||
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
|
||||
Me.MaximizeBox = false
|
||||
Me.MinimizeBox = false
|
||||
Me.Name = "FrmAboutDialog"
|
||||
Me.Padding = New System.Windows.Forms.Padding(9, 8, 9, 8)
|
||||
Me.ShowInTaskbar = false
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
|
||||
Me.Text = "关于C系列配置工具"
|
||||
Me.TopMost = true
|
||||
CType(Me.LogoPictureBox,System.ComponentModel.ISupportInitialize).EndInit
|
||||
Me.TableLayoutPanel.ResumeLayout(false)
|
||||
Me.ResumeLayout(false)
|
||||
|
||||
End Sub
|
||||
Friend WithEvents LogoPictureBox As PictureBox
|
||||
Friend WithEvents TableLayoutPanel As TableLayoutPanel
|
||||
Friend WithEvents LabelCompanyName As Label
|
||||
Friend WithEvents LabelVersion As Label
|
||||
Friend WithEvents LabelCopyright As Label
|
||||
Friend WithEvents OKButton As Button
|
||||
Friend WithEvents LabelProductName As Label
|
||||
End Class
|
||||
608
BLV_Studio/Control/FrmAboutDialog.resx
Normal file
608
BLV_Studio/Control/FrmAboutDialog.resx
Normal file
@@ -0,0 +1,608 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
fT//2Q==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
29
BLV_Studio/Control/FrmAboutDialog.vb
Normal file
29
BLV_Studio/Control/FrmAboutDialog.vb
Normal file
@@ -0,0 +1,29 @@
|
||||
Public NotInheritable Class FrmAboutDialog
|
||||
|
||||
Private Sub FrmAboutDialog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|
||||
' 设置此窗体的标题。
|
||||
Dim ApplicationTitle As String
|
||||
If My.Application.Info.Title <> "" Then
|
||||
ApplicationTitle = My.Application.Info.Title
|
||||
Else
|
||||
ApplicationTitle = System.IO.Path.GetFileNameWithoutExtension(My.Application.Info.AssemblyName)
|
||||
End If
|
||||
Me.Text = String.Format("关于 {0}", $"C系列配置工具")
|
||||
' 初始化“关于”对话框显示的所有文字。
|
||||
' 在项目的“应用程序”窗格中自定义此应用程序的程序集信息
|
||||
' 属性对话框(在“项目”菜单下)。
|
||||
Me.LabelProductName.Text = $"C系列配置工具" 'My.Application.Info.ProductName
|
||||
Me.LabelVersion.Text = String.Format(" 版本 v{0}", My.Application.Info.Version.ToString)
|
||||
Me.LabelCopyright.Text = $" 版权所属 白羽"
|
||||
Me.LabelCompanyName.Text = $"公司名称 深圳市宝来威智能科技有限公司"
|
||||
'Me.TextBoxDescription.Text = My.Application.Info.Description
|
||||
End Sub
|
||||
|
||||
Private Sub OKButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OKButton.Click
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
Private Sub TableLayoutPanel_Paint(sender As Object, e As PaintEventArgs) Handles TableLayoutPanel.Paint
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
233
BLV_Studio/Control/FrmAddDevice.Designer.vb
generated
Normal file
233
BLV_Studio/Control/FrmAddDevice.Designer.vb
generated
Normal file
@@ -0,0 +1,233 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
|
||||
Partial Class FrmAddDevice
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form 重写 Dispose,以清理组件列表。
|
||||
<System.Diagnostics.DebuggerNonUserCode()>
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows 窗体设计器所必需的
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||
'可以使用 Windows 窗体设计器修改它。
|
||||
'不要使用代码编辑器修改它。
|
||||
<System.Diagnostics.DebuggerStepThrough()>
|
||||
Private Sub InitializeComponent()
|
||||
Me.Label1 = New System.Windows.Forms.Label()
|
||||
Me.Label2 = New System.Windows.Forms.Label()
|
||||
Me.TextBox1 = New System.Windows.Forms.TextBox()
|
||||
Me.TextBox2 = New System.Windows.Forms.TextBox()
|
||||
Me.Label3 = New System.Windows.Forms.Label()
|
||||
Me.TextBox3 = New System.Windows.Forms.TextBox()
|
||||
Me.Label4 = New System.Windows.Forms.Label()
|
||||
Me.TextBox4 = New System.Windows.Forms.TextBox()
|
||||
Me.Label5 = New System.Windows.Forms.Label()
|
||||
Me.TextBox5 = New System.Windows.Forms.TextBox()
|
||||
Me.Label6 = New System.Windows.Forms.Label()
|
||||
Me.TextBox6 = New System.Windows.Forms.TextBox()
|
||||
Me.Label7 = New System.Windows.Forms.Label()
|
||||
Me.TextBox7 = New System.Windows.Forms.TextBox()
|
||||
Me.Label8 = New System.Windows.Forms.Label()
|
||||
Me.Button1 = New System.Windows.Forms.Button()
|
||||
Me.Button2 = New System.Windows.Forms.Button()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'Label1
|
||||
'
|
||||
Me.Label1.AutoSize = True
|
||||
Me.Label1.Font = New System.Drawing.Font("宋体", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label1.Location = New System.Drawing.Point(121, 23)
|
||||
Me.Label1.Name = "Label1"
|
||||
Me.Label1.Size = New System.Drawing.Size(123, 19)
|
||||
Me.Label1.TabIndex = 0
|
||||
Me.Label1.Text = "新增设备信息"
|
||||
'
|
||||
'Label2
|
||||
'
|
||||
Me.Label2.AutoSize = True
|
||||
Me.Label2.Location = New System.Drawing.Point(75, 72)
|
||||
Me.Label2.Name = "Label2"
|
||||
Me.Label2.Size = New System.Drawing.Size(53, 12)
|
||||
Me.Label2.TabIndex = 1
|
||||
Me.Label2.Text = "设备型号"
|
||||
'
|
||||
'TextBox1
|
||||
'
|
||||
Me.TextBox1.Location = New System.Drawing.Point(134, 69)
|
||||
Me.TextBox1.Name = "TextBox1"
|
||||
Me.TextBox1.Size = New System.Drawing.Size(159, 21)
|
||||
Me.TextBox1.TabIndex = 2
|
||||
'
|
||||
'TextBox2
|
||||
'
|
||||
Me.TextBox2.Location = New System.Drawing.Point(134, 96)
|
||||
Me.TextBox2.Name = "TextBox2"
|
||||
Me.TextBox2.Size = New System.Drawing.Size(159, 21)
|
||||
Me.TextBox2.TabIndex = 4
|
||||
'
|
||||
'Label3
|
||||
'
|
||||
Me.Label3.AutoSize = True
|
||||
Me.Label3.Location = New System.Drawing.Point(75, 99)
|
||||
Me.Label3.Name = "Label3"
|
||||
Me.Label3.Size = New System.Drawing.Size(53, 12)
|
||||
Me.Label3.TabIndex = 3
|
||||
Me.Label3.Text = "设备类型"
|
||||
'
|
||||
'TextBox3
|
||||
'
|
||||
Me.TextBox3.Location = New System.Drawing.Point(134, 123)
|
||||
Me.TextBox3.Name = "TextBox3"
|
||||
Me.TextBox3.Size = New System.Drawing.Size(159, 21)
|
||||
Me.TextBox3.TabIndex = 6
|
||||
'
|
||||
'Label4
|
||||
'
|
||||
Me.Label4.AutoSize = True
|
||||
Me.Label4.Location = New System.Drawing.Point(75, 126)
|
||||
Me.Label4.Name = "Label4"
|
||||
Me.Label4.Size = New System.Drawing.Size(53, 12)
|
||||
Me.Label4.TabIndex = 5
|
||||
Me.Label4.Text = "设备名称"
|
||||
'
|
||||
'TextBox4
|
||||
'
|
||||
Me.TextBox4.Location = New System.Drawing.Point(134, 150)
|
||||
Me.TextBox4.Name = "TextBox4"
|
||||
Me.TextBox4.Size = New System.Drawing.Size(159, 21)
|
||||
Me.TextBox4.TabIndex = 8
|
||||
'
|
||||
'Label5
|
||||
'
|
||||
Me.Label5.AutoSize = True
|
||||
Me.Label5.Location = New System.Drawing.Point(75, 153)
|
||||
Me.Label5.Name = "Label5"
|
||||
Me.Label5.Size = New System.Drawing.Size(53, 12)
|
||||
Me.Label5.TabIndex = 7
|
||||
Me.Label5.Text = "协议编号"
|
||||
'
|
||||
'TextBox5
|
||||
'
|
||||
Me.TextBox5.Location = New System.Drawing.Point(134, 177)
|
||||
Me.TextBox5.Name = "TextBox5"
|
||||
Me.TextBox5.Size = New System.Drawing.Size(159, 21)
|
||||
Me.TextBox5.TabIndex = 10
|
||||
'
|
||||
'Label6
|
||||
'
|
||||
Me.Label6.AutoSize = True
|
||||
Me.Label6.Location = New System.Drawing.Point(75, 180)
|
||||
Me.Label6.Name = "Label6"
|
||||
Me.Label6.Size = New System.Drawing.Size(41, 12)
|
||||
Me.Label6.TabIndex = 9
|
||||
Me.Label6.Text = "波特率"
|
||||
'
|
||||
'TextBox6
|
||||
'
|
||||
Me.TextBox6.Location = New System.Drawing.Point(134, 204)
|
||||
Me.TextBox6.Name = "TextBox6"
|
||||
Me.TextBox6.Size = New System.Drawing.Size(159, 21)
|
||||
Me.TextBox6.TabIndex = 12
|
||||
'
|
||||
'Label7
|
||||
'
|
||||
Me.Label7.AutoSize = True
|
||||
Me.Label7.Location = New System.Drawing.Point(75, 207)
|
||||
Me.Label7.Name = "Label7"
|
||||
Me.Label7.Size = New System.Drawing.Size(53, 12)
|
||||
Me.Label7.TabIndex = 11
|
||||
Me.Label7.Text = "功能说明"
|
||||
'
|
||||
'TextBox7
|
||||
'
|
||||
Me.TextBox7.Location = New System.Drawing.Point(134, 231)
|
||||
Me.TextBox7.Multiline = True
|
||||
Me.TextBox7.Name = "TextBox7"
|
||||
Me.TextBox7.Size = New System.Drawing.Size(159, 54)
|
||||
Me.TextBox7.TabIndex = 14
|
||||
'
|
||||
'Label8
|
||||
'
|
||||
Me.Label8.AutoSize = True
|
||||
Me.Label8.Location = New System.Drawing.Point(75, 234)
|
||||
Me.Label8.Name = "Label8"
|
||||
Me.Label8.Size = New System.Drawing.Size(29, 12)
|
||||
Me.Label8.TabIndex = 13
|
||||
Me.Label8.Text = "备注"
|
||||
'
|
||||
'Button1
|
||||
'
|
||||
Me.Button1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button1.Location = New System.Drawing.Point(174, 313)
|
||||
Me.Button1.Name = "Button1"
|
||||
Me.Button1.Size = New System.Drawing.Size(78, 37)
|
||||
Me.Button1.TabIndex = 15
|
||||
Me.Button1.Text = "保存"
|
||||
Me.Button1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button2
|
||||
'
|
||||
Me.Button2.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button2.Location = New System.Drawing.Point(277, 313)
|
||||
Me.Button2.Name = "Button2"
|
||||
Me.Button2.Size = New System.Drawing.Size(78, 37)
|
||||
Me.Button2.TabIndex = 16
|
||||
Me.Button2.Text = "取消"
|
||||
Me.Button2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'FrmAddDevice
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(371, 358)
|
||||
Me.Controls.Add(Me.Button2)
|
||||
Me.Controls.Add(Me.Button1)
|
||||
Me.Controls.Add(Me.TextBox7)
|
||||
Me.Controls.Add(Me.Label8)
|
||||
Me.Controls.Add(Me.TextBox6)
|
||||
Me.Controls.Add(Me.Label7)
|
||||
Me.Controls.Add(Me.TextBox5)
|
||||
Me.Controls.Add(Me.Label6)
|
||||
Me.Controls.Add(Me.TextBox4)
|
||||
Me.Controls.Add(Me.Label5)
|
||||
Me.Controls.Add(Me.TextBox3)
|
||||
Me.Controls.Add(Me.Label4)
|
||||
Me.Controls.Add(Me.TextBox2)
|
||||
Me.Controls.Add(Me.Label3)
|
||||
Me.Controls.Add(Me.TextBox1)
|
||||
Me.Controls.Add(Me.Label2)
|
||||
Me.Controls.Add(Me.Label1)
|
||||
Me.Name = "FrmAddDevice"
|
||||
Me.Text = "新增设备"
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
|
||||
Friend WithEvents Label1 As Label
|
||||
Friend WithEvents Label2 As Label
|
||||
Friend WithEvents TextBox1 As TextBox
|
||||
Friend WithEvents TextBox2 As TextBox
|
||||
Friend WithEvents Label3 As Label
|
||||
Friend WithEvents TextBox3 As TextBox
|
||||
Friend WithEvents Label4 As Label
|
||||
Friend WithEvents TextBox4 As TextBox
|
||||
Friend WithEvents Label5 As Label
|
||||
Friend WithEvents TextBox5 As TextBox
|
||||
Friend WithEvents Label6 As Label
|
||||
Friend WithEvents TextBox6 As TextBox
|
||||
Friend WithEvents Label7 As Label
|
||||
Friend WithEvents TextBox7 As TextBox
|
||||
Friend WithEvents Label8 As Label
|
||||
Friend WithEvents Button1 As Button
|
||||
Friend WithEvents Button2 As Button
|
||||
End Class
|
||||
120
BLV_Studio/Control/FrmAddDevice.resx
Normal file
120
BLV_Studio/Control/FrmAddDevice.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
49
BLV_Studio/Control/FrmAddDevice.vb
Normal file
49
BLV_Studio/Control/FrmAddDevice.vb
Normal file
@@ -0,0 +1,49 @@
|
||||
Public Class FrmAddDevice
|
||||
|
||||
''' <summary>
|
||||
''' 设备列表表名
|
||||
''' </summary>
|
||||
Private _DevLists As String = $"CSeries_DevLists"
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 保存按键
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
||||
If TextIsNull(TextBox1, "设备型号") = False Then Exit Sub
|
||||
If TextIsNull(TextBox2, "设备类型") = False Then Exit Sub
|
||||
If TextIsNull(TextBox3, "设备名称") = False Then Exit Sub
|
||||
If TextIsNull(TextBox4, "协议编号") = False Then Exit Sub
|
||||
If TextIsNull(TextBox5, "波特率") = False Then Exit Sub
|
||||
If TextIsNull(TextBox6, "功能说明") = False Then Exit Sub
|
||||
|
||||
Dim devTypeNumber As String = TextBox1.Text '设备型号
|
||||
Dim devType As String = TextBox2.Text '设备类型
|
||||
Dim devName As String = TextBox3.Text '设备名称
|
||||
Dim devxieyi As String = TextBox4.Text '协议编号
|
||||
Dim devBaud As String = TextBox5.Text '波特率
|
||||
Dim functionExplain As String = TextBox5.Text '功能说明
|
||||
Dim remarks As String = TextBox6.Text '备注
|
||||
|
||||
Dim conditions As String = $"(DevTypeNumber, DevType, DevName, DevProtocol, DevBaud, FunctionalExplain, Remarks) Values('{devTypeNumber}', '{devType}', '{devName}', '{devxieyi}', '{devBaud}', '{functionExplain}', '{remarks}')"
|
||||
_SqlServer.Add(_DevLists, conditions)
|
||||
|
||||
MsgBox($"新增完成")
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 关闭窗体按键
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
||||
Close()
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
114
BLV_Studio/Control/FrmAdvancedSettings.vb
Normal file
114
BLV_Studio/Control/FrmAdvancedSettings.vb
Normal file
@@ -0,0 +1,114 @@
|
||||
Imports System.ComponentModel
|
||||
|
||||
Public Class FrmAdvancedSettings
|
||||
|
||||
#Region "多语种信息"
|
||||
|
||||
''' <summary>
|
||||
''' 初始化界面控件文本
|
||||
''' </summary>
|
||||
Private Sub MultiLanguageInfo()
|
||||
Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.NetworkSettings)
|
||||
LblPort1.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.LocalPort)
|
||||
LblLongIP.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.RemoteIP)
|
||||
LbllongPort1.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.RemotePort)
|
||||
BtnNetworkConnect.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.CloseConnection)
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "初始化"
|
||||
|
||||
''' <summary>
|
||||
''' 初始化上一次关闭窗体前保存的配置数据
|
||||
''' </summary>
|
||||
Private Sub InitLastTimeConfig()
|
||||
CboLongIP.Text = My.Settings.RemoteIP
|
||||
If NudLocalPort.Value = 0 Then
|
||||
NudLocalPort.Value = GetRandomPort()
|
||||
End If
|
||||
'NudLocalPort.Value = My.Settings.LocalPort
|
||||
End Sub
|
||||
|
||||
|
||||
'''' <summary> Ip次数 </summary>
|
||||
'Private _ipCount As Integer = 0
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' 初始化网络信息
|
||||
'''' </summary>
|
||||
'Private Sub InitNetWorkInfo()
|
||||
' _ipCount += 1
|
||||
' FrmCSeriesConfig.CboLocalIPInfo.Items.Clear()
|
||||
' FrmCSeriesConfig.CboLocalIPInfo.Items.AddRange(GetLocalIp().ToArray)
|
||||
|
||||
' If _ipCount > 1 Then Return
|
||||
' If FrmCSeriesConfig.CboLocalIPInfo.Items.Count > 0 Then FrmCSeriesConfig.CboLocalIPInfo.SelectedIndex = 0
|
||||
'End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 窗体加载事件
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub FrmAdvancedSettings_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
InitLastTimeConfig()
|
||||
'InitNetWorkInfo()
|
||||
MultiLanguageInfo()
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 点击连接
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub BtnNetworkConnect_Click(sender As Object, e As EventArgs) Handles BtnNetworkConnect.Click
|
||||
NetworkConnect()
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 网络连接
|
||||
''' </summary>
|
||||
Public Sub NetworkConnect()
|
||||
_localIP = FrmCSeriesConfig.CboLocalIPInfo.Text
|
||||
_localPort = GetRandomPort()
|
||||
NudLocalPort.Value = _localPort
|
||||
If BtnNetworkConnect.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.OpenConnection)}" Then
|
||||
BtnNetworkConnect.ForeColor = Color.Red
|
||||
BtnNetworkConnect.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.CloseConnection)}"
|
||||
'FrmCSeriesConfig.NetworkConnectChange()
|
||||
'FrmCSeriesConfig.CboLocalIPInfo.Enabled = False
|
||||
NudLocalPort.Enabled = False
|
||||
ElseIf BtnNetworkConnect.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.CloseConnection)}" Then
|
||||
BtnNetworkConnect.ForeColor = Color.Green
|
||||
BtnNetworkConnect.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.OpenConnection)}"
|
||||
'FrmCSeriesConfig.NetworkConnectChange()
|
||||
'FrmCSeriesConfig.CboLocalIPInfo.Enabled = True
|
||||
NudLocalPort.Enabled = True
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 窗体关闭事件
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub FrmAdvancedSettings_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
|
||||
My.Settings.RemoteIP = CboLongIP.Text
|
||||
My.Settings.LocalPort = NudLocalPort.Value
|
||||
My.Settings.Save()
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
End Class
|
||||
5698
BLV_Studio/Control/FrmCSeriesConfig.Designer.vb
generated
Normal file
5698
BLV_Studio/Control/FrmCSeriesConfig.Designer.vb
generated
Normal file
File diff suppressed because it is too large
Load Diff
3083
BLV_Studio/Control/FrmCSeriesConfig.resx
Normal file
3083
BLV_Studio/Control/FrmCSeriesConfig.resx
Normal file
File diff suppressed because it is too large
Load Diff
13043
BLV_Studio/Control/FrmCSeriesConfig.vb
Normal file
13043
BLV_Studio/Control/FrmCSeriesConfig.vb
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
156
BLV_Studio/Control/FrmHotelList.Designer.vb
generated
Normal file
156
BLV_Studio/Control/FrmHotelList.Designer.vb
generated
Normal file
@@ -0,0 +1,156 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class FrmHotelList
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form 重写 Dispose,以清理组件列表。
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows 窗体设计器所必需的
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||
'可以使用 Windows 窗体设计器修改它。
|
||||
'不要使用代码编辑器修改它。
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.Panel3 = New System.Windows.Forms.Panel()
|
||||
Me.Button2 = New System.Windows.Forms.Button()
|
||||
Me.TextBox1 = New System.Windows.Forms.TextBox()
|
||||
Me.Button1 = New System.Windows.Forms.Button()
|
||||
Me.Button5 = New System.Windows.Forms.Button()
|
||||
Me.Grid5 = New FlexCell.Grid()
|
||||
Me.TreeView1 = New System.Windows.Forms.TreeView()
|
||||
Me.LblUserInfo = New System.Windows.Forms.Label()
|
||||
Me.Panel3.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'Panel3
|
||||
'
|
||||
Me.Panel3.Controls.Add(Me.Button2)
|
||||
Me.Panel3.Controls.Add(Me.TextBox1)
|
||||
Me.Panel3.Controls.Add(Me.Button1)
|
||||
Me.Panel3.Controls.Add(Me.Button5)
|
||||
Me.Panel3.Controls.Add(Me.Grid5)
|
||||
Me.Panel3.Controls.Add(Me.TreeView1)
|
||||
Me.Panel3.Controls.Add(Me.LblUserInfo)
|
||||
Me.Panel3.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.Panel3.Location = New System.Drawing.Point(0, 0)
|
||||
Me.Panel3.Name = "Panel3"
|
||||
Me.Panel3.Size = New System.Drawing.Size(718, 476)
|
||||
Me.Panel3.TabIndex = 1
|
||||
'
|
||||
'Button2
|
||||
'
|
||||
Me.Button2.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button2.ForeColor = System.Drawing.SystemColors.ControlText
|
||||
Me.Button2.Location = New System.Drawing.Point(556, 18)
|
||||
Me.Button2.Name = "Button2"
|
||||
Me.Button2.Size = New System.Drawing.Size(76, 26)
|
||||
Me.Button2.TabIndex = 12
|
||||
Me.Button2.Text = "Search"
|
||||
Me.Button2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'TextBox1
|
||||
'
|
||||
Me.TextBox1.Location = New System.Drawing.Point(316, 20)
|
||||
Me.TextBox1.Name = "TextBox1"
|
||||
Me.TextBox1.Size = New System.Drawing.Size(219, 21)
|
||||
Me.TextBox1.TabIndex = 11
|
||||
'
|
||||
'Button1
|
||||
'
|
||||
Me.Button1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button1.ForeColor = System.Drawing.SystemColors.ControlText
|
||||
Me.Button1.Location = New System.Drawing.Point(556, 111)
|
||||
Me.Button1.Name = "Button1"
|
||||
Me.Button1.Size = New System.Drawing.Size(76, 40)
|
||||
Me.Button1.TabIndex = 8
|
||||
Me.Button1.Text = "退出"
|
||||
Me.Button1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button5
|
||||
'
|
||||
Me.Button5.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button5.ForeColor = System.Drawing.Color.Green
|
||||
Me.Button5.Location = New System.Drawing.Point(556, 50)
|
||||
Me.Button5.Name = "Button5"
|
||||
Me.Button5.Size = New System.Drawing.Size(76, 40)
|
||||
Me.Button5.TabIndex = 5
|
||||
Me.Button5.Text = "选中"
|
||||
Me.Button5.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Grid5
|
||||
'
|
||||
Me.Grid5.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
|
||||
Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
||||
Me.Grid5.BackColorActiveCellSel = System.Drawing.Color.FromArgb(CType(CType(128, Byte), Integer), CType(CType(128, Byte), Integer), CType(CType(255, Byte), Integer))
|
||||
Me.Grid5.BackColorBkg = System.Drawing.SystemColors.Control
|
||||
Me.Grid5.BorderColor = System.Drawing.SystemColors.ScrollBar
|
||||
Me.Grid5.BorderStyle = FlexCell.BorderStyleEnum.Light3D
|
||||
Me.Grid5.CheckedImage = Nothing
|
||||
Me.Grid5.DefaultFont = New System.Drawing.Font("宋体", 12.0!)
|
||||
Me.Grid5.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Grid5.GridColor = System.Drawing.SystemColors.ActiveBorder
|
||||
Me.Grid5.Location = New System.Drawing.Point(280, 50)
|
||||
Me.Grid5.Name = "Grid5"
|
||||
Me.Grid5.ScrollBars = FlexCell.ScrollBarsEnum.Vertical
|
||||
Me.Grid5.Size = New System.Drawing.Size(255, 414)
|
||||
Me.Grid5.TabIndex = 7
|
||||
Me.Grid5.UncheckedImage = Nothing
|
||||
'
|
||||
'TreeView1
|
||||
'
|
||||
Me.TreeView1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
|
||||
Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
||||
Me.TreeView1.Font = New System.Drawing.Font("宋体", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.TreeView1.ForeColor = System.Drawing.Color.DarkCyan
|
||||
Me.TreeView1.LineColor = System.Drawing.Color.Gray
|
||||
Me.TreeView1.Location = New System.Drawing.Point(97, 50)
|
||||
Me.TreeView1.Name = "TreeView1"
|
||||
Me.TreeView1.Size = New System.Drawing.Size(184, 414)
|
||||
Me.TreeView1.TabIndex = 6
|
||||
'
|
||||
'LblUserInfo
|
||||
'
|
||||
Me.LblUserInfo.AutoSize = True
|
||||
Me.LblUserInfo.Font = New System.Drawing.Font("宋体", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblUserInfo.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer))
|
||||
Me.LblUserInfo.Location = New System.Drawing.Point(55, 22)
|
||||
Me.LblUserInfo.Name = "LblUserInfo"
|
||||
Me.LblUserInfo.Size = New System.Drawing.Size(89, 19)
|
||||
Me.LblUserInfo.TabIndex = 0
|
||||
Me.LblUserInfo.Text = "欢迎您!"
|
||||
'
|
||||
'FrmHotelList
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(718, 476)
|
||||
Me.Controls.Add(Me.Panel3)
|
||||
Me.Name = "FrmHotelList"
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
|
||||
Me.Text = "酒店列表"
|
||||
Me.Panel3.ResumeLayout(False)
|
||||
Me.Panel3.PerformLayout()
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
|
||||
Friend WithEvents Panel3 As Panel
|
||||
Friend WithEvents Button5 As Button
|
||||
Friend WithEvents Grid5 As FlexCell.Grid
|
||||
Friend WithEvents TreeView1 As TreeView
|
||||
Friend WithEvents LblUserInfo As Label
|
||||
Friend WithEvents Button1 As Button
|
||||
Friend WithEvents Button2 As Button
|
||||
Friend WithEvents TextBox1 As TextBox
|
||||
End Class
|
||||
120
BLV_Studio/Control/FrmHotelList.resx
Normal file
120
BLV_Studio/Control/FrmHotelList.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
456
BLV_Studio/Control/FrmHotelList.vb
Normal file
456
BLV_Studio/Control/FrmHotelList.vb
Normal file
@@ -0,0 +1,456 @@
|
||||
Imports System.ComponentModel
|
||||
|
||||
Public Class FrmHotelList
|
||||
|
||||
#Region "多语种信息"
|
||||
|
||||
''' <summary>
|
||||
''' 初始化界面控件文本
|
||||
''' </summary>
|
||||
Private Sub MultiLanguageInfo()
|
||||
Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.HotelList)
|
||||
Button5.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.Checked)
|
||||
Button1.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.HomeExit)
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "初始化信息"
|
||||
|
||||
Private _count As Integer = 0
|
||||
Public FCsConfig As FrmCSeriesConfig
|
||||
''' <summary>
|
||||
''' 初始化酒店列表
|
||||
''' </summary>
|
||||
''' <param name="match"></param>
|
||||
Public Sub InitHotelList(match As Boolean, mainfrom As FrmCSeriesConfig)
|
||||
FCsConfig = mainfrom
|
||||
If match = False Then
|
||||
TreeView1.Nodes.Clear()
|
||||
Grid5.NewFile()
|
||||
InitHotelTable()
|
||||
_count = 0
|
||||
Button5.ForeColor = Color.Green
|
||||
Button5.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Checked)}"
|
||||
TreeView1.Enabled = True
|
||||
Grid5.Enabled = True
|
||||
End If
|
||||
|
||||
LblUserInfo.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.WelcomeYou)}!{_userNames} {LanguageData.StringList(MultiLanguageDAL.StringEnum.PleaseSelectYourHotel)}!"
|
||||
_count += 1
|
||||
If _count = 1 Then
|
||||
MultiLanguageInfo()
|
||||
InitHotelInfo()
|
||||
End If
|
||||
InitLoadHotelInfo()
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "权限管理_酒店管理"
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 权限列表
|
||||
''' </summary>
|
||||
Enum EnAuthInfo
|
||||
|
||||
''' <summary> 空 </summary>
|
||||
Null
|
||||
''' <summary> 锁定权限 </summary>
|
||||
Lock
|
||||
''' <summary> 授权时间 </summary>
|
||||
AuthorizedTime
|
||||
|
||||
Auth3
|
||||
|
||||
Auth4
|
||||
|
||||
Auth5
|
||||
|
||||
Auth6
|
||||
|
||||
Auth7
|
||||
|
||||
Auth8
|
||||
|
||||
Auth9
|
||||
|
||||
''' <summary> 升级/房态/季节 </summary>
|
||||
UpdateAndRoomStateAndSeason
|
||||
|
||||
Auth11
|
||||
|
||||
Auth12
|
||||
|
||||
Auth13
|
||||
|
||||
Auth14
|
||||
|
||||
Auth15
|
||||
|
||||
Auth16
|
||||
|
||||
''' <summary> 研发管理 </summary>
|
||||
ResearchManage
|
||||
|
||||
Auth18
|
||||
|
||||
''' <summary> 批量下发 </summary>
|
||||
BatchIssued
|
||||
|
||||
End Enum
|
||||
|
||||
|
||||
Private Sub Grid5_Click(Sender As Object, e As EventArgs) Handles Grid5.Click
|
||||
If Grid5.ActiveCell.Row > 0 Then
|
||||
_projectNumber = Grid5.Cell(Grid5.ActiveCell.Row, HotelDataCol.ProjectNumber).Text
|
||||
_HotelName = Grid5.Cell(Grid5.ActiveCell.Row, HotelDataCol.HotelName).Text
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 选择酒店事件
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
|
||||
Buttin5click()
|
||||
End Sub
|
||||
Public Sub Buttin5click()
|
||||
FCsConfig.NoAuthority()
|
||||
If Button5.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Checked)}" Then
|
||||
If TipInfo() = False Then Return
|
||||
AddAuthorityInfo()
|
||||
|
||||
Button5.ForeColor = Color.Red
|
||||
Button5.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Loosen)}"
|
||||
|
||||
TreeView1.Enabled = False
|
||||
Grid5.Enabled = False
|
||||
ElseIf Button5.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Loosen)}" Then
|
||||
Button5.ForeColor = Color.Green
|
||||
Button5.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Checked)}"
|
||||
|
||||
TreeView1.Enabled = True
|
||||
Grid5.Enabled = True
|
||||
End If
|
||||
|
||||
FCsConfig.LblUserNames.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.TheCurrentHotel)}:{_projectNumber}-{_HotelName} | {_userNames} {LanguageData.StringList(MultiLanguageDAL.StringEnum.WelcomeYou)}! "
|
||||
FCsConfig.TextBox9.Text = _projectNumber
|
||||
'FCsConfig.ComboBox16.Text = ""
|
||||
FCsConfig.ComboBox16.Items.Clear()
|
||||
FCsConfig.ComboBox17.Text = ""
|
||||
FCsConfig.ComboBox17.Items.Clear()
|
||||
FCsConfig.CBoRoomTpRemark.Checked = False
|
||||
FCsConfig.CBoRoomNuRemark.Checked = False
|
||||
FCsConfig.CheckBox37.Checked = False
|
||||
FCsConfig.Network_cke.Checked = False
|
||||
FCsConfig.Iptype_txt.Text = ""
|
||||
FCsConfig.Loadip_txt.Text = ""
|
||||
FCsConfig.IPMask_txt.Text = ""
|
||||
FCsConfig.IPGateway_txt.Text = ""
|
||||
FCsConfig.ServerIP_txt.Text = ""
|
||||
FCsConfig.ipconfig_txt.Text = ""
|
||||
FCsConfig.IpDns_txt.Text = ""
|
||||
FCsConfig.IpPort_txt.Text = ""
|
||||
FCsConfig.TextBox25.Text = ""
|
||||
FCsConfig.TextBox21.Text = ""
|
||||
AuthorityInfo(FCsConfig)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 提示信息
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Private Function TipInfo() As Boolean
|
||||
If Grid5.Cell(Grid5.ActiveCell.Row, HotelDataCol.ProjectNumber).Text = Nothing Then
|
||||
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.PleaseSelectTheHotelUnderYourName)}!")
|
||||
Return False
|
||||
End If
|
||||
If _projectNumber = $"" Then
|
||||
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.PleaseSelectTheHotelUnderYourName)}!")
|
||||
Return False
|
||||
End If
|
||||
If _HotelName = $"" Then
|
||||
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.PleaseSelectTheHotelUnderYourName)}!")
|
||||
Return False
|
||||
End If
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 添加权限
|
||||
''' </summary>
|
||||
Public Sub AddAuthorityInfo()
|
||||
_authorityInfo.Clear()
|
||||
For index = 0 To _loginData.Values.Count - 1
|
||||
If _HotelName = _loginData.Values(index).HotelName AndAlso _projectNumber = _loginData.Values(index).Code Then
|
||||
_authorityInfo.Add(_loginData.Values(index).AuthorityId, _loginData.Values(index).AuthotypeId)
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 添加上一次保存的酒店权限
|
||||
''' </summary>
|
||||
Public Sub AddLastTimeAuthorityInfo()
|
||||
_authorityInfo.Clear()
|
||||
For index = 0 To _loginData.Values.Count - 1
|
||||
If My.Settings.HotelName = _loginData.Values(index).HotelName AndAlso My.Settings.ProjectCode = _loginData.Values(index).Code Then
|
||||
_authorityInfo.Add(_loginData.Values(index).AuthorityId, _loginData.Values(index).AuthotypeId)
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 权限管理_权限信息
|
||||
''' </summary>
|
||||
Public Sub AuthorityInfo(Config As FrmCSeriesConfig)
|
||||
FCsConfig = Config
|
||||
For index = 0 To _authorityInfo.Count - 1
|
||||
Select Case _authorityInfo.Keys(index)
|
||||
Case EnAuthInfo.Lock '锁定
|
||||
FCsConfig.LockAuth(_authorityInfo.Values(index))
|
||||
Case EnAuthInfo.AuthorizedTime '授权时间
|
||||
FCsConfig.AuthorizedTimeAuth(_authorityInfo.Values(index))
|
||||
Case EnAuthInfo.UpdateAndRoomStateAndSeason '升级&房态&季节
|
||||
FCsConfig.UpdateRoomStateSeasonAuth(_authorityInfo.Values(index))
|
||||
Case EnAuthInfo.ResearchManage '研发管理
|
||||
FCsConfig.UpdateResearchManageAuth(_authorityInfo.Values(index))
|
||||
Case EnAuthInfo.BatchIssued '批量下发
|
||||
FCsConfig.UpdateBatchIssuedAuth(_authorityInfo.Values(index))
|
||||
End Select
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' 选择页面
|
||||
'''' </summary>
|
||||
'''' <param name="sender"></param>
|
||||
'''' <param name="e"></param>
|
||||
'Private Sub TabControl1_Selecting(sender As Object, e As TabControlCancelEventArgs) Handles TabControl1.Selecting
|
||||
' If Button5.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Checked)}" Then
|
||||
' MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.PleaseSelectTheHotelUnderYourName)}!")
|
||||
' e.Cancel = True
|
||||
' End If
|
||||
'End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 初始化酒店区域信息
|
||||
''' </summary>
|
||||
Public Sub InitHotelInfo()
|
||||
InitHotelTable()
|
||||
Dim nodeOne As TreeNode = TreeView1.Nodes.Add($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.AllHotel)}")
|
||||
Dim dic As Dictionary(Of String, Integer) = AddHotelInfo()
|
||||
For index = 0 To dic.Count - 1
|
||||
nodeOne.Nodes.Add(dic.ElementAt(index).Key & "-(" & dic.ElementAt(index).Value & ")")
|
||||
Next
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Public Function AddHotelInfo()
|
||||
Dim dic As New Dictionary(Of String, Integer)
|
||||
dic.Clear()
|
||||
Dim txt As String
|
||||
For index = 0 To _loginData.Count - 1
|
||||
txt = _loginData.Values(index).HotelGroupsName
|
||||
If dic.ContainsKey(txt) Then
|
||||
dic(txt) += 1
|
||||
Else
|
||||
dic.Add(txt, 1)
|
||||
'nodeOne.Nodes.Add(txt)
|
||||
End If
|
||||
Next
|
||||
|
||||
Return dic
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 树状目录点击事件
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TreeView1_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
|
||||
'Console.WriteLine(e.Node.Text & " " & e.Node.Index & " " & e.Node.Level & " " & e.Node.FullPath)
|
||||
'Grid5.DisplayRowNumber = True
|
||||
Dim str As String() = e.Node.Text.Split($"-")
|
||||
'Console.WriteLine($"点击酒店:" & str(0))
|
||||
|
||||
Grid5.NewFile()
|
||||
InitHotelTable()
|
||||
|
||||
Dim rowCount As Integer = 0
|
||||
Dim dic As New Dictionary(Of String, Integer)
|
||||
For index = 0 To _loginData.Values.Count - 1
|
||||
If str(0) = _loginData.Values(index).HotelGroupsName Then
|
||||
'HotelGroupsName = _loginData.Values(index).HotelGroupsName
|
||||
If dic.ContainsKey(_loginData.Values(index).Code) = False Then
|
||||
dic.Add(_loginData.Values(index).Code, 1)
|
||||
Grid5.Rows += 1
|
||||
rowCount += 1
|
||||
Grid5.Cell(rowCount, 1).Text = _loginData.Values(index).Code
|
||||
|
||||
Grid5.Cell(rowCount, 2).Text = _loginData.Values(index).HotelName
|
||||
'Grid5.Cell(rowCount, 1).Text = _loginData.Values(_loginData.Values.Count - 1 - index).Code
|
||||
'Grid5.Cell(rowCount, 2).Text = _loginData.Values(_loginData.Values.Count - 1 - index).HotelName
|
||||
End If
|
||||
ElseIf str(0) = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.AllHotel)}" Then
|
||||
'HotelGroupsName = _loginData.Values(index).HotelGroupsName
|
||||
If dic.ContainsKey(_loginData.Values(index).Code) = False Then
|
||||
dic.Add(_loginData.Values(index).Code, 1)
|
||||
Grid5.Rows += 1
|
||||
rowCount += 1
|
||||
Grid5.Cell(rowCount, 1).Text = _loginData.Values(index).Code
|
||||
Grid5.Cell(rowCount, 2).Text = _loginData.Values(index).HotelName
|
||||
'Grid5.Cell(rowCount, 1).Text = _loginData.Values(_loginData.Values.Count - 1 - index).Code
|
||||
'Grid5.Cell(rowCount, 2).Text = _loginData.Values(_loginData.Values.Count - 1 - index).HotelName
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 酒店区域表列名_枚举
|
||||
''' </summary>
|
||||
Enum HotelDataCol
|
||||
''' <summary> 空 </summary>
|
||||
Null
|
||||
|
||||
''' <summary> 项目编码 </summary>
|
||||
ProjectNumber
|
||||
|
||||
''' <summary> 酒店名称 </summary>
|
||||
HotelName
|
||||
End Enum
|
||||
|
||||
''' <summary>
|
||||
''' 酒店区域表列名
|
||||
''' </summary>
|
||||
Private _hotelTable() As String = {$"0", $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.ProjectCode)}", $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.HotelName)}"}
|
||||
|
||||
''' <summary>
|
||||
''' 初始化酒店表格
|
||||
''' </summary>
|
||||
Private Sub InitHotelTable()
|
||||
Grid5.Column(0).Width = 0
|
||||
Grid5.Cols = _hotelTable.Length
|
||||
Grid5.Rows = 1
|
||||
|
||||
For index = 1 To Grid5.Cols - 1
|
||||
With Grid5.Cell(0, index)
|
||||
.ForeColor = Color.Blue
|
||||
.Text = _hotelTable(index)
|
||||
.ForeColor = Color.DarkCyan
|
||||
End With
|
||||
|
||||
With Grid5.Column(index)
|
||||
.Alignment = FlexCell.AlignmentEnum.CenterCenter
|
||||
If index = HotelDataCol.ProjectNumber Then
|
||||
.Width = 75
|
||||
Else
|
||||
.Width = 180
|
||||
End If
|
||||
End With
|
||||
Next
|
||||
Grid5.SelectionMode = FlexCell.SelectionModeEnum.ByRow '设置选中行
|
||||
Grid5.AllowUserSort = True
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub InitLoadHotelInfo()
|
||||
Dim amountGrpByDates = From row In _userData
|
||||
Group row By dateGroup = New With {
|
||||
Key .Code = row.Field(Of Integer)(_userData.Columns(8).ColumnName),
|
||||
Key .Name = row.Field(Of String)(_userData.Columns(7).ColumnName)
|
||||
} Into Group
|
||||
Select New With {
|
||||
Key .Code = dateGroup.Code,
|
||||
.Name = dateGroup.Name}
|
||||
Dim lst = amountGrpByDates.ToList
|
||||
|
||||
For index = 0 To lst.Count - 1
|
||||
Grid5.Rows += 1
|
||||
Grid5.Cell(index + 1, 1).Text = lst(index).Code '项目编码
|
||||
Grid5.Cell(index + 1, 2).Text = lst(index).Name '酒店名称
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 关闭窗体
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
||||
My.Settings.ProjectCode = _projectNumber
|
||||
My.Settings.HotelName = _HotelName
|
||||
My.Settings.UserName = _userNames
|
||||
My.Settings.Save()
|
||||
Close()
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "窗体关闭事件"
|
||||
|
||||
''' <summary>
|
||||
''' 窗体关闭事件
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub FrmHotelList_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
|
||||
My.Settings.ProjectCode = _projectNumber
|
||||
My.Settings.HotelName = _HotelName
|
||||
My.Settings.UserName = _userNames
|
||||
My.Settings.Save()
|
||||
End Sub
|
||||
|
||||
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
||||
If IsNothing(Grid5) AndAlso Grid5.Rows < 1 AndAlso String.IsNullOrEmpty(TextBox1.Text.Trim) Then Return
|
||||
Dim tabstr As String
|
||||
For index As Integer = 1 To Grid5.Rows - 1
|
||||
tabstr = Grid5.Cell(index, 1).Text.Trim & Grid5.Cell(index, 2).Text.Trim
|
||||
If tabstr.Contains(TextBox1.Text.Trim) Then
|
||||
Grid5.Row(index).Position = 1
|
||||
End If
|
||||
Next
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
End Class
|
||||
198
BLV_Studio/Control/FrmLogin.Designer.vb
generated
Normal file
198
BLV_Studio/Control/FrmLogin.Designer.vb
generated
Normal file
@@ -0,0 +1,198 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
<Global.System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1726")> _
|
||||
Partial Class FrmLogin
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form 重写 Dispose,以清理组件列表。
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
Friend WithEvents UsernameLabel As System.Windows.Forms.Label
|
||||
Friend WithEvents PasswordLabel As System.Windows.Forms.Label
|
||||
Friend WithEvents UsernameTextBox As System.Windows.Forms.TextBox
|
||||
Friend WithEvents PasswordTextBox As System.Windows.Forms.TextBox
|
||||
Friend WithEvents OK As System.Windows.Forms.Button
|
||||
Friend WithEvents Cancel As System.Windows.Forms.Button
|
||||
|
||||
'Windows 窗体设计器所必需的
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||
'可以使用 Windows 窗体设计器修改它。
|
||||
'不要使用代码编辑器修改它。
|
||||
<System.Diagnostics.DebuggerStepThrough()>
|
||||
Private Sub InitializeComponent()
|
||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FrmLogin))
|
||||
Me.UsernameLabel = New System.Windows.Forms.Label()
|
||||
Me.PasswordLabel = New System.Windows.Forms.Label()
|
||||
Me.UsernameTextBox = New System.Windows.Forms.TextBox()
|
||||
Me.PasswordTextBox = New System.Windows.Forms.TextBox()
|
||||
Me.OK = New System.Windows.Forms.Button()
|
||||
Me.Cancel = New System.Windows.Forms.Button()
|
||||
Me.CheckBox1 = New System.Windows.Forms.CheckBox()
|
||||
Me.CheckBox2 = New System.Windows.Forms.CheckBox()
|
||||
Me.LblLanguage = New System.Windows.Forms.Label()
|
||||
Me.ComboBox1 = New System.Windows.Forms.ComboBox()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'UsernameLabel
|
||||
'
|
||||
Me.UsernameLabel.BackColor = System.Drawing.Color.Transparent
|
||||
Me.UsernameLabel.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.UsernameLabel.ForeColor = System.Drawing.Color.White
|
||||
Me.UsernameLabel.Location = New System.Drawing.Point(259, 54)
|
||||
Me.UsernameLabel.Name = "UsernameLabel"
|
||||
Me.UsernameLabel.Size = New System.Drawing.Size(74, 21)
|
||||
Me.UsernameLabel.TabIndex = 0
|
||||
Me.UsernameLabel.Text = "用户名"
|
||||
Me.UsernameLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'PasswordLabel
|
||||
'
|
||||
Me.PasswordLabel.BackColor = System.Drawing.Color.Transparent
|
||||
Me.PasswordLabel.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.PasswordLabel.ForeColor = System.Drawing.Color.White
|
||||
Me.PasswordLabel.Location = New System.Drawing.Point(259, 82)
|
||||
Me.PasswordLabel.Name = "PasswordLabel"
|
||||
Me.PasswordLabel.Size = New System.Drawing.Size(74, 23)
|
||||
Me.PasswordLabel.TabIndex = 2
|
||||
Me.PasswordLabel.Text = "密 码"
|
||||
Me.PasswordLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'UsernameTextBox
|
||||
'
|
||||
Me.UsernameTextBox.BackColor = System.Drawing.SystemColors.ActiveCaption
|
||||
Me.UsernameTextBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.UsernameTextBox.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.UsernameTextBox.Location = New System.Drawing.Point(332, 54)
|
||||
Me.UsernameTextBox.Name = "UsernameTextBox"
|
||||
Me.UsernameTextBox.Size = New System.Drawing.Size(158, 23)
|
||||
Me.UsernameTextBox.TabIndex = 1
|
||||
'
|
||||
'PasswordTextBox
|
||||
'
|
||||
Me.PasswordTextBox.BackColor = System.Drawing.SystemColors.ActiveCaption
|
||||
Me.PasswordTextBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.PasswordTextBox.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.PasswordTextBox.Location = New System.Drawing.Point(332, 83)
|
||||
Me.PasswordTextBox.Name = "PasswordTextBox"
|
||||
Me.PasswordTextBox.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42)
|
||||
Me.PasswordTextBox.Size = New System.Drawing.Size(158, 23)
|
||||
Me.PasswordTextBox.TabIndex = 3
|
||||
'
|
||||
'OK
|
||||
'
|
||||
Me.OK.BackColor = System.Drawing.SystemColors.ActiveCaption
|
||||
Me.OK.Location = New System.Drawing.Point(279, 184)
|
||||
Me.OK.Name = "OK"
|
||||
Me.OK.Size = New System.Drawing.Size(94, 30)
|
||||
Me.OK.TabIndex = 4
|
||||
Me.OK.Text = "确定(&O)"
|
||||
Me.OK.UseVisualStyleBackColor = False
|
||||
'
|
||||
'Cancel
|
||||
'
|
||||
Me.Cancel.BackColor = System.Drawing.SystemColors.ActiveCaption
|
||||
Me.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
|
||||
Me.Cancel.Location = New System.Drawing.Point(396, 184)
|
||||
Me.Cancel.Name = "Cancel"
|
||||
Me.Cancel.Size = New System.Drawing.Size(94, 30)
|
||||
Me.Cancel.TabIndex = 5
|
||||
Me.Cancel.Text = "取消(&C)"
|
||||
Me.Cancel.UseVisualStyleBackColor = False
|
||||
'
|
||||
'CheckBox1
|
||||
'
|
||||
Me.CheckBox1.AutoSize = True
|
||||
Me.CheckBox1.Checked = True
|
||||
Me.CheckBox1.CheckState = System.Windows.Forms.CheckState.Checked
|
||||
Me.CheckBox1.FlatStyle = System.Windows.Forms.FlatStyle.Popup
|
||||
Me.CheckBox1.ForeColor = System.Drawing.Color.White
|
||||
Me.CheckBox1.Location = New System.Drawing.Point(289, 155)
|
||||
Me.CheckBox1.Name = "CheckBox1"
|
||||
Me.CheckBox1.Size = New System.Drawing.Size(70, 16)
|
||||
Me.CheckBox1.TabIndex = 31
|
||||
Me.CheckBox1.Text = "自动登录"
|
||||
Me.CheckBox1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
|
||||
Me.CheckBox1.UseVisualStyleBackColor = False
|
||||
'
|
||||
'CheckBox2
|
||||
'
|
||||
Me.CheckBox2.AutoSize = True
|
||||
Me.CheckBox2.Checked = True
|
||||
Me.CheckBox2.CheckState = System.Windows.Forms.CheckState.Checked
|
||||
Me.CheckBox2.FlatStyle = System.Windows.Forms.FlatStyle.Popup
|
||||
Me.CheckBox2.ForeColor = System.Drawing.Color.White
|
||||
Me.CheckBox2.Location = New System.Drawing.Point(396, 155)
|
||||
Me.CheckBox2.Name = "CheckBox2"
|
||||
Me.CheckBox2.Size = New System.Drawing.Size(70, 16)
|
||||
Me.CheckBox2.TabIndex = 32
|
||||
Me.CheckBox2.Text = "记住密码"
|
||||
Me.CheckBox2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
|
||||
Me.CheckBox2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'LblLanguage
|
||||
'
|
||||
Me.LblLanguage.BackColor = System.Drawing.Color.Transparent
|
||||
Me.LblLanguage.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblLanguage.ForeColor = System.Drawing.Color.White
|
||||
Me.LblLanguage.Location = New System.Drawing.Point(260, 122)
|
||||
Me.LblLanguage.Name = "LblLanguage"
|
||||
Me.LblLanguage.Size = New System.Drawing.Size(74, 21)
|
||||
Me.LblLanguage.TabIndex = 34
|
||||
Me.LblLanguage.Text = "语 言"
|
||||
Me.LblLanguage.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'ComboBox1
|
||||
'
|
||||
Me.ComboBox1.BackColor = System.Drawing.SystemColors.ActiveCaption
|
||||
Me.ComboBox1.FormattingEnabled = True
|
||||
Me.ComboBox1.Location = New System.Drawing.Point(332, 123)
|
||||
Me.ComboBox1.Name = "ComboBox1"
|
||||
Me.ComboBox1.Size = New System.Drawing.Size(158, 20)
|
||||
Me.ComboBox1.TabIndex = 35
|
||||
'
|
||||
'FrmLogin
|
||||
'
|
||||
Me.AcceptButton = Me.OK
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.BackColor = System.Drawing.Color.FromArgb(CType(CType(24, Byte), Integer), CType(CType(16, Byte), Integer), CType(CType(14, Byte), Integer))
|
||||
Me.BackgroundImage = CType(resources.GetObject("$this.BackgroundImage"), System.Drawing.Image)
|
||||
Me.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
|
||||
Me.CancelButton = Me.Cancel
|
||||
Me.ClientSize = New System.Drawing.Size(515, 272)
|
||||
Me.Controls.Add(Me.ComboBox1)
|
||||
Me.Controls.Add(Me.LblLanguage)
|
||||
Me.Controls.Add(Me.CheckBox2)
|
||||
Me.Controls.Add(Me.CheckBox1)
|
||||
Me.Controls.Add(Me.Cancel)
|
||||
Me.Controls.Add(Me.OK)
|
||||
Me.Controls.Add(Me.PasswordTextBox)
|
||||
Me.Controls.Add(Me.UsernameTextBox)
|
||||
Me.Controls.Add(Me.PasswordLabel)
|
||||
Me.Controls.Add(Me.UsernameLabel)
|
||||
Me.DoubleBuffered = True
|
||||
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow
|
||||
Me.MaximizeBox = False
|
||||
Me.MinimizeBox = False
|
||||
Me.Name = "FrmLogin"
|
||||
Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
|
||||
Me.Text = "登录"
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
Friend WithEvents CheckBox1 As CheckBox
|
||||
Friend WithEvents CheckBox2 As CheckBox
|
||||
Friend WithEvents LblLanguage As Label
|
||||
Friend WithEvents ComboBox1 As ComboBox
|
||||
End Class
|
||||
22186
BLV_Studio/Control/FrmLogin.resx
Normal file
22186
BLV_Studio/Control/FrmLogin.resx
Normal file
File diff suppressed because it is too large
Load Diff
453
BLV_Studio/Control/FrmLogin.vb
Normal file
453
BLV_Studio/Control/FrmLogin.vb
Normal file
@@ -0,0 +1,453 @@
|
||||
Imports System.Data.Common
|
||||
Imports System.Drawing.Drawing2D
|
||||
Imports System.IO
|
||||
Imports System.Net
|
||||
Imports System.Text
|
||||
Imports Newtonsoft.Json
|
||||
|
||||
Public Class FrmLogin
|
||||
|
||||
|
||||
#Region "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
''' <summary> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƺͰ汾<CDB0><E6B1BE>Ϣ </summary>
|
||||
Public dicNC As New Dictionary(Of String, Integer)
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
''' </summary>
|
||||
Private Sub InitmultiLanguage()
|
||||
Dim lag As DataTable = GetCloudVersionInfo()
|
||||
|
||||
For index = 0 To lag.Rows.Count - 1
|
||||
dicNC.Add(lag(index)(0), lag(index)(1))
|
||||
Next
|
||||
ComboBox1.Items.AddRange(dicNC.Keys.ToArray)
|
||||
If ComboBox1.Items.Count > 0 Then ComboBox1.SelectedIndex = 0
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' <20><>ȡ<EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>ݰ汾
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Private Function GetCloudVersionInfo() As DataTable
|
||||
Dim dtVer As DataTable = _SqlLogin.GetCloudVersionInfo()
|
||||
Return dtVer
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' <20><>ȡ<EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Private Function GetCloudDataInfo(languageName As String) As DataTable
|
||||
Dim dtData As DataTable = _SqlLogin.GetCloudDataInfo(languageName)
|
||||
Return dtData
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC>ı<EFBFBD>
|
||||
''' </summary>
|
||||
Private Sub InitMultiLanguageInfo()
|
||||
'If IsNothing(LanguageData) Then Return
|
||||
Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.Login) & $" v{Application.ProductVersion}"
|
||||
UsernameLabel.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.UserName)
|
||||
PasswordLabel.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.PassWord)
|
||||
CheckBox1.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.AutomaticLogin)
|
||||
LblLanguage.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.Language)
|
||||
CheckBox2.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.RememberPassWord)
|
||||
OK.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.LoginDetermine)
|
||||
Cancel.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.LoginCancel)
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "<22><>¼<EFBFBD>ӿ<EFBFBD>"
|
||||
|
||||
|
||||
Public _countIndex As Integer = 0
|
||||
|
||||
''' <summary>
|
||||
''' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>Ϣ
|
||||
''' </summary>
|
||||
Private Function DealLoginInfo() As Boolean
|
||||
Dim user As String = UsernameTextBox.Text
|
||||
Dim pwd As String = PasswordTextBox.Text
|
||||
user = user.Trim()
|
||||
pwd = pwd.Trim()
|
||||
' MsgBox("1.1")
|
||||
Dim jsonString As String = String.Empty
|
||||
Try
|
||||
jsonString = PostData("http://auth.blv-oa.com/OTApi/Login", $"Uid={user}&Pwd={pwd}&appid=1")
|
||||
'jsonString = PostData("http://47.119.147.104:90/OTApi/Login", $"Uid={user}&Pwd={pwd}&appid=1")
|
||||
' MsgBox("1.2")
|
||||
Catch ex As Exception
|
||||
MsgBox($"{ex.Message}<7D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>Ա")
|
||||
' MsgBox("1.3")
|
||||
End Try
|
||||
Console.WriteLine(jsonString)
|
||||
|
||||
If jsonString = Nothing Then
|
||||
Return False
|
||||
End If
|
||||
'MsgBox("1.4")
|
||||
Dim login As LoginBLL = JsonConvert.DeserializeObject(Of LoginBLL)(jsonString)
|
||||
If login Is Nothing Then
|
||||
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.LoginFailed)}<7D><>{LanguageData.StringList(MultiLanguageDAL.StringEnum.NoLoginInformationIsDisplayed)}<7D><>")
|
||||
Return False
|
||||
End If
|
||||
'MsgBox("1.5")
|
||||
Console.WriteLine($"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>{login.Status} {login.Message}")
|
||||
|
||||
If login.Status <> 200 Then
|
||||
MsgBox($"<EFBFBD><EFBFBD>½<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{login.Status}-" & login.Message)
|
||||
Return False
|
||||
End If
|
||||
' MsgBox("1.6")
|
||||
'ȡ<><C8A1><EFBFBD><EFBFBD>
|
||||
Dim index As Integer = 0
|
||||
_loginData.Clear()
|
||||
_countIndex = 0
|
||||
'MsgBox("1.7")
|
||||
For i = 0 To login.Data.HotelData.Count - 1
|
||||
'<27><>ID, <20><><EFBFBD><EFBFBD>
|
||||
For j = 0 To login.Data.HotelData.Item(i).Hotels.Count - 1
|
||||
'<27>Ƶ<EFBFBD>ID, <20>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>, <20>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
For k = 0 To login.Data.HotelData.Item(i).Hotels.Item(j).Auth.Count - 1
|
||||
'Ȩ<><C8A8>״̬<D7B4><CCAC>Ȩ<EFBFBD><C8A8>ID, Ȩ<><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
index += 1
|
||||
Dim data As New LoginReturnDataBLL
|
||||
data.HotelGroupsId = login.Data.HotelData.Item(i).HotelGroupsId
|
||||
data.HotelGroupsName = login.Data.HotelData.Item(i).HotelGroupsName
|
||||
|
||||
data.HotelId = login.Data.HotelData.Item(i).Hotels.Item(j).HotelId
|
||||
data.Code = login.Data.HotelData.Item(i).Hotels.Item(j).Code
|
||||
data.HotelName = login.Data.HotelData.Item(i).Hotels.Item(j).HotelName
|
||||
|
||||
data.AuthotypeId = login.Data.HotelData.Item(i).Hotels.Item(j).Auth(k).AuthotypeId
|
||||
data.AuthorityId = login.Data.HotelData.Item(i).Hotels.Item(j).Auth(k).AuthorityId
|
||||
data.AuthorityName = login.Data.HotelData.Item(i).Hotels.Item(j).Auth(k).AuthorityName
|
||||
|
||||
_countIndex += 1
|
||||
Dim key As String = $"{login.Data.HotelData.Item(i).Hotels.Item(j).HotelName}{login.Data.HotelData.Item(i).Hotels.Item(j).Code}-{_countIndex}"
|
||||
_loginData.Add(key, data)
|
||||
Next
|
||||
Next
|
||||
' MsgBox("1.8")
|
||||
Next
|
||||
'MsgBox("1.9")
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' Post<73><74><EFBFBD><EFBFBD>
|
||||
''' </summary>
|
||||
''' <param name="url"></param>
|
||||
''' <param name="data"></param>
|
||||
''' <returns></returns>
|
||||
Public Shared Function PostData(ByVal url As String, ByVal data As String) As String
|
||||
|
||||
ServicePointManager.Expect100Continue = False
|
||||
Dim request As HttpWebRequest = WebRequest.Create(url)
|
||||
'//Post<73><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
||||
request.Method = "POST"
|
||||
|
||||
'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
request.ContentType = "application/x-www-form-urlencoded"
|
||||
'<27><>URL<52><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ֽ<EFBFBD>
|
||||
Dim encoding As New UTF8Encoding()
|
||||
Dim bys As Byte() = encoding.GetBytes(data)
|
||||
'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ContentLength
|
||||
request.ContentLength = bys.Length
|
||||
'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
Dim newStream As Stream = request.GetRequestStream()
|
||||
newStream.Write(bys, 0, bys.Length)
|
||||
newStream.Close()
|
||||
'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>
|
||||
Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
|
||||
Return sr.ReadToEnd
|
||||
End Function
|
||||
|
||||
|
||||
'Public Shared Function GetData(url As String) As String
|
||||
' Dim str As String = $"http://47.119.147.104:90/OTApi/Login?Uid=AdminBlv&Pwd=123456&appid=1"
|
||||
|
||||
' Dim request As HttpWebRequest = CType(WebRequest.Create(str), HttpWebRequest)
|
||||
' request.Accept = "text/html,application/xhtml+xml,*/*"
|
||||
' request.ContentType = "application/json"
|
||||
' request.Method = "Post"
|
||||
|
||||
' Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
|
||||
' Return sr.ReadToEnd
|
||||
'End Function
|
||||
|
||||
|
||||
|
||||
'Public Shared Function GetData(ByVal url As String, ByVal data As String) As String
|
||||
|
||||
' Dim request As HttpWebRequest = WebRequest.Create(url + "?" + data)
|
||||
' request.Method = "GET"
|
||||
|
||||
' Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
|
||||
' Return sr.ReadToEnd
|
||||
'End Function
|
||||
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "<22><>¼"
|
||||
|
||||
''' <summary> <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڵ<EFBFBD>¼ </summary>
|
||||
Private _isLogging As Boolean
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' <20><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub FrmLogin_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
If ConnLoginDataSourse() = False Then
|
||||
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.DatabaseConnectionFailed)}<7D><>{LanguageData.StringList(MultiLanguageDAL.StringEnum.CheckWhetherTheNetworkConnectionIsSuccessful)}<7D><>")
|
||||
Return
|
||||
End If
|
||||
'<27><><EFBFBD>ӵ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ݿ<EFBFBD>
|
||||
InitmultiLanguage() '<27><><EFBFBD><EFBFBD><EFBFBD>ֳ<EFBFBD>ʼ<EFBFBD><CABC>
|
||||
InitMultiLanguageInfo()
|
||||
|
||||
UsernameTextBox.Text = My.Settings.User
|
||||
PasswordTextBox.Text = My.Settings.PassWord
|
||||
|
||||
'asdfghjkl()
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
|
||||
'MsgBox("0")
|
||||
DealHotelListInterfaceInfo()
|
||||
'DealHostListInterfaceInfo()
|
||||
'DealSetHostMACInterfaceInfo()
|
||||
'MsgBox("1")
|
||||
Static time As Date = Now
|
||||
While True
|
||||
If DealLoginInfo() = False Then
|
||||
Return
|
||||
Else
|
||||
Exit While
|
||||
End If
|
||||
If (Now - time).TotalMilliseconds > 2000 Then
|
||||
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.LoginTimeout)}<7D><>")
|
||||
Return
|
||||
End If
|
||||
Threading.Thread.Sleep(100)
|
||||
End While
|
||||
'MsgBox("2")
|
||||
Try
|
||||
_userNames = UsernameTextBox.Text
|
||||
'If AccountLogin() = False Then '<27><><EFBFBD>ƶ˻<C6B6>ȡ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ϣ
|
||||
' Exit Sub
|
||||
'End If
|
||||
DialogResult = DialogResult.OK
|
||||
FrmCSeriesConfig.Show()
|
||||
Me.Close() '<27><>¼<EFBFBD><C2BC><EFBFBD>ɹرյ<D8B1>¼ҳ<C2BC><D2B3>
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message, MsgBoxStyle.OkOnly, $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.LoginFailed)}") ''<27><>¼ʧ<C2BC><CAA7>
|
||||
End Try
|
||||
'MsgBox("3")
|
||||
_isLogging = False
|
||||
End Sub
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' ʹ<><CAB9><EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼
|
||||
'''' </summary>
|
||||
'Private Function AccountLogin() As Boolean
|
||||
' Dim userAccount As String = UsernameTextBox.Text
|
||||
' Dim userPassword As String = PasswordTextBox.Text
|
||||
' CheckUserAccount(userAccount)
|
||||
' CheckUserPassword(userPassword)
|
||||
|
||||
' Dim dtUser As DataTable = _SqlLogin.GetUserInfo(userAccount, userPassword)
|
||||
' If dtUser.Rows.Count = 0 Then
|
||||
' MessageBox.Show($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.NoSuchUser)}<7D><>") ''<27>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
' Return False
|
||||
' ElseIf dtUser.Rows.Count > 0 Then
|
||||
' Dim createTime As String = dtUser(0)(3)
|
||||
' createTime = createTime.Replace("/", "-")
|
||||
|
||||
' Dim userPass As String = $"{userAccount.ToUpper()}{userPassword}{createTime}"
|
||||
' Dim pwd As String = GetStringMd5(userPass)
|
||||
' Dim pwdcloud As String = dtUser(0)(2) '<27><>ȡ<EFBFBD><C8A1>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
|
||||
' _userNames = dtUser(0)(1) '<27><>ȡ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>
|
||||
|
||||
' 'Console.WriteLine($"<22>û<EFBFBD><C3BB><EFBFBD>{_userNames}")
|
||||
' 'Console.WriteLine($"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺{pwd}")
|
||||
' 'Console.WriteLine($"<22><>ѯ<EFBFBD><D1AF><EFBFBD>룺{pwdcloud}")
|
||||
|
||||
' _userData = dtUser
|
||||
' If GetPassWordCheck(pwd, pwdcloud) = True Then
|
||||
' MessageBox.Show($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.IncorrectPasswordPleaseTryAgain)}<7D><>") '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
' Return False
|
||||
' End If
|
||||
' End If
|
||||
' Return True
|
||||
'End Function
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' <20>û<EFBFBD>У<EFBFBD><D0A3>
|
||||
'''' </summary>
|
||||
'''' <param name="userAccount"></param>
|
||||
'Private Sub CheckUserAccount(userAccount As String)
|
||||
' If String.IsNullOrWhiteSpace(userAccount) Then
|
||||
' Throw New Exception($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.PleaseEnterYourUserAccount)}<7D><>") '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>˺ţ<CBBA>
|
||||
' End If
|
||||
'End Sub
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' <20><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
|
||||
'''' </summary>
|
||||
'''' <param name="userPassword"></param>
|
||||
'Private Sub CheckUserPassword(userPassword As String)
|
||||
' If String.IsNullOrWhiteSpace(userPassword) Then
|
||||
' Throw New Exception($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.PleaseEnterYourPassword)}<7D><>") '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룡
|
||||
' End If
|
||||
'End Sub
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
|
||||
'''' </summary>
|
||||
'''' <param name="pwd"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
||||
'''' <param name="pwdcloud"><3E>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD></param>
|
||||
'''' <returns></returns>
|
||||
'Private Function GetPassWordCheck(pwd As String, pwdcloud As String) As Boolean
|
||||
' If String.IsNullOrWhiteSpace(pwd) OrElse String.IsNullOrWhiteSpace(pwdcloud) Then Return False
|
||||
' If String.Compare(pwd, pwdcloud) = 0 Then Return False
|
||||
|
||||
' Return True
|
||||
'End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' ȡ<><C8A1><EFBFBD><EFBFBD>¼
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' <20><><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1>¼<EFBFBD>
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub FrmLogin_Closed(sender As Object, e As EventArgs) Handles Me.Closed
|
||||
If CheckBox2.Checked = True Then
|
||||
My.Settings.User = UsernameTextBox.Text
|
||||
My.Settings.PassWord = PasswordTextBox.Text
|
||||
My.Settings.Save()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' <20><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
|
||||
Dim SName As String = ComboBox1.Text
|
||||
Dim path As String = $"{ComboBox1.Text}.xml"
|
||||
|
||||
If String.IsNullOrEmpty(SName) Then Return
|
||||
If IO.File.Exists(path) Then
|
||||
LanguageData = MultiLanguageDAL.DeserializeFormXml(Of MultiLanguageDAL)(path)
|
||||
If LanguageData.Version <> dicNC(SName) Then
|
||||
LanguageData.Version = dicNC(SName)
|
||||
LanguageData.InitializeByDataTable(GetCloudDataInfo(SName))
|
||||
MultiLanguageDAL.SerializeToXml(Of MultiLanguageDAL)($"{SName}.xml", LanguageData)
|
||||
End If
|
||||
Else
|
||||
LanguageData = New MultiLanguageDAL
|
||||
LanguageData.Name = SName
|
||||
LanguageData.Version = dicNC(SName)
|
||||
LanguageData.InitializeByDataTable(GetCloudDataInfo(SName))
|
||||
MultiLanguageDAL.SerializeToXml(Of MultiLanguageDAL)($"{SName}.xml", LanguageData)
|
||||
End If
|
||||
|
||||
'<27><><EFBFBD>õ<EFBFBD><C3B5>ؼ<EFBFBD><D8BC><EFBFBD>
|
||||
InitMultiLanguageInfo()
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
|
||||
Private Sub asdfghjkl()
|
||||
|
||||
''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
'Dim picture As Image
|
||||
'If My.Computer.Clipboard.ContainsImage() Then
|
||||
' picture = My.Computer.Clipboard.GetImage
|
||||
'End If
|
||||
|
||||
''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
'My.Computer.Audio.Play("SoundFile.wav", AudioPlayMode.BackgroundLoop)
|
||||
|
||||
''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
'Dim italicFont As New Font("Courier New", 12, FontStyle.Italic)
|
||||
|
||||
''<27>ؼ<EFBFBD>&<26><><EFBFBD><EFBFBD>
|
||||
'' For more information on the rich text format characters, see: http://www.microsoft.com/downloads/details.aspx?FamilyID=e5b8ebc2-6ad6-49f0-8c90-e4f763e3f04f&DisplayLang=en
|
||||
'RichTextBox1.Rtf = "{\rtf1\ansi This is in \b bold\b0.}"
|
||||
|
||||
''<27><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
||||
'Dim tooltip As New ToolTip()
|
||||
'tooltip.SetToolTip(OK, "<22><><EFBFBD><EFBFBD>")
|
||||
|
||||
'With ProgressBar1
|
||||
' .Minimum = 1
|
||||
' .Maximum = 100000
|
||||
' .Value = 1
|
||||
' .Step = 1
|
||||
|
||||
' For i As Integer = .Minimum To .Maximum
|
||||
' ' Perform one step of the action being tracked.
|
||||
' .PerformStep()
|
||||
' Next i
|
||||
|
||||
'End With
|
||||
|
||||
''<27><>ͼ
|
||||
'Dim path As New GraphicsPath()
|
||||
'Dim points() As Point = {
|
||||
' New Point(0, 0),
|
||||
' New Point(100, 0),
|
||||
' New Point(100, 100),
|
||||
' New Point(0, 0)}
|
||||
'path.AddLines(points)
|
||||
|
||||
'Dim surface As Graphics = PictureBox1.CreateGraphics
|
||||
'surface.DrawPath(Pens.Black, path)
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
130
BLV_Studio/Control/FrmMACBindingResults.Designer.vb
generated
Normal file
130
BLV_Studio/Control/FrmMACBindingResults.Designer.vb
generated
Normal file
@@ -0,0 +1,130 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class FrmMACBindingResults
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form 重写 Dispose,以清理组件列表。
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows 窗体设计器所必需的
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||
'可以使用 Windows 窗体设计器修改它。
|
||||
'不要使用代码编辑器修改它。
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel()
|
||||
Me.Button1 = New System.Windows.Forms.Button()
|
||||
Me.Cancel_Button = New System.Windows.Forms.Button()
|
||||
Me.OK_Button = New System.Windows.Forms.Button()
|
||||
Me.Label1 = New System.Windows.Forms.Label()
|
||||
Me.TBoBindingTxt = New System.Windows.Forms.TextBox()
|
||||
Me.TableLayoutPanel1.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'TableLayoutPanel1
|
||||
'
|
||||
Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.TableLayoutPanel1.ColumnCount = 3
|
||||
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle())
|
||||
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle())
|
||||
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
|
||||
Me.TableLayoutPanel1.Controls.Add(Me.Button1, 0, 0)
|
||||
Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 2, 0)
|
||||
Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 1, 0)
|
||||
Me.TableLayoutPanel1.Location = New System.Drawing.Point(226, 212)
|
||||
Me.TableLayoutPanel1.Name = "TableLayoutPanel1"
|
||||
Me.TableLayoutPanel1.RowCount = 1
|
||||
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
|
||||
Me.TableLayoutPanel1.Size = New System.Drawing.Size(224, 37)
|
||||
Me.TableLayoutPanel1.TabIndex = 0
|
||||
'
|
||||
'Button1
|
||||
'
|
||||
Me.Button1.Anchor = System.Windows.Forms.AnchorStyles.None
|
||||
Me.Button1.Location = New System.Drawing.Point(3, 4)
|
||||
Me.Button1.Name = "Button1"
|
||||
Me.Button1.Size = New System.Drawing.Size(67, 28)
|
||||
Me.Button1.TabIndex = 1
|
||||
Me.Button1.Text = "重试"
|
||||
Me.Button1.Visible = False
|
||||
'
|
||||
'Cancel_Button
|
||||
'
|
||||
Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None
|
||||
Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel
|
||||
Me.Cancel_Button.Location = New System.Drawing.Point(151, 4)
|
||||
Me.Cancel_Button.Name = "Cancel_Button"
|
||||
Me.Cancel_Button.Size = New System.Drawing.Size(67, 28)
|
||||
Me.Cancel_Button.TabIndex = 1
|
||||
Me.Cancel_Button.Text = "取消"
|
||||
'
|
||||
'OK_Button
|
||||
'
|
||||
Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None
|
||||
Me.OK_Button.Enabled = False
|
||||
Me.OK_Button.Location = New System.Drawing.Point(76, 4)
|
||||
Me.OK_Button.Name = "OK_Button"
|
||||
Me.OK_Button.Size = New System.Drawing.Size(67, 28)
|
||||
Me.OK_Button.TabIndex = 0
|
||||
Me.OK_Button.Text = "解绑"
|
||||
'
|
||||
'Label1
|
||||
'
|
||||
Me.Label1.AutoSize = True
|
||||
Me.Label1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label1.ForeColor = System.Drawing.Color.Red
|
||||
Me.Label1.Location = New System.Drawing.Point(36, 46)
|
||||
Me.Label1.Name = "Label1"
|
||||
Me.Label1.Size = New System.Drawing.Size(77, 14)
|
||||
Me.Label1.TabIndex = 1
|
||||
Me.Label1.Text = "绑定失败:"
|
||||
'
|
||||
'TBoBindingTxt
|
||||
'
|
||||
Me.TBoBindingTxt.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.TBoBindingTxt.ForeColor = System.Drawing.Color.Red
|
||||
Me.TBoBindingTxt.Location = New System.Drawing.Point(65, 74)
|
||||
Me.TBoBindingTxt.Multiline = True
|
||||
Me.TBoBindingTxt.Name = "TBoBindingTxt"
|
||||
Me.TBoBindingTxt.Size = New System.Drawing.Size(304, 132)
|
||||
Me.TBoBindingTxt.TabIndex = 3
|
||||
'
|
||||
'FrmMACBindingResults
|
||||
'
|
||||
Me.AcceptButton = Me.OK_Button
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.CancelButton = Me.Cancel_Button
|
||||
Me.ClientSize = New System.Drawing.Size(462, 261)
|
||||
Me.Controls.Add(Me.TBoBindingTxt)
|
||||
Me.Controls.Add(Me.Label1)
|
||||
Me.Controls.Add(Me.TableLayoutPanel1)
|
||||
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
|
||||
Me.MaximizeBox = False
|
||||
Me.MinimizeBox = False
|
||||
Me.Name = "FrmMACBindingResults"
|
||||
Me.ShowInTaskbar = False
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
|
||||
Me.Text = "绑定MAC"
|
||||
Me.TableLayoutPanel1.ResumeLayout(False)
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel
|
||||
Friend WithEvents OK_Button As System.Windows.Forms.Button
|
||||
Friend WithEvents Cancel_Button As System.Windows.Forms.Button
|
||||
Friend WithEvents Button1 As Button
|
||||
Friend WithEvents Label1 As Label
|
||||
Friend WithEvents TBoBindingTxt As TextBox
|
||||
End Class
|
||||
141
BLV_Studio/Control/FrmMACBindingResults.resx
Normal file
141
BLV_Studio/Control/FrmMACBindingResults.resx
Normal file
@@ -0,0 +1,141 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="TableLayoutPanel1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Cancel_Button.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="OK_Button.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="TBoBindingTxt.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
||||
44
BLV_Studio/Control/FrmMACBindingResults.vb
Normal file
44
BLV_Studio/Control/FrmMACBindingResults.vb
Normal file
@@ -0,0 +1,44 @@
|
||||
Imports System.Windows.Forms
|
||||
|
||||
Public Class FrmMACBindingResults
|
||||
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 重试按键
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
||||
_isMACRetry = True
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 解绑
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
|
||||
_isMACUnbundle = True
|
||||
Me.DialogResult = System.Windows.Forms.DialogResult.OK
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 取消
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
|
||||
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
112
BLV_Studio/Control/FrmMACDialog.Designer.vb
generated
Normal file
112
BLV_Studio/Control/FrmMACDialog.Designer.vb
generated
Normal file
@@ -0,0 +1,112 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class FrmMACDialog
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form 重写 Dispose,以清理组件列表。
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows 窗体设计器所必需的
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||
'可以使用 Windows 窗体设计器修改它。
|
||||
'不要使用代码编辑器修改它。
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel()
|
||||
Me.OK_Button = New System.Windows.Forms.Button()
|
||||
Me.Cancel_Button = New System.Windows.Forms.Button()
|
||||
Me.TextBox5 = New System.Windows.Forms.TextBox()
|
||||
Me.Label49 = New System.Windows.Forms.Label()
|
||||
Me.TableLayoutPanel1.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'TableLayoutPanel1
|
||||
'
|
||||
Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.TableLayoutPanel1.ColumnCount = 2
|
||||
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
|
||||
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
|
||||
Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0)
|
||||
Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0)
|
||||
Me.TableLayoutPanel1.Location = New System.Drawing.Point(232, 178)
|
||||
Me.TableLayoutPanel1.Name = "TableLayoutPanel1"
|
||||
Me.TableLayoutPanel1.RowCount = 1
|
||||
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
|
||||
Me.TableLayoutPanel1.Size = New System.Drawing.Size(167, 41)
|
||||
Me.TableLayoutPanel1.TabIndex = 0
|
||||
'
|
||||
'OK_Button
|
||||
'
|
||||
Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None
|
||||
Me.OK_Button.Location = New System.Drawing.Point(3, 5)
|
||||
Me.OK_Button.Name = "OK_Button"
|
||||
Me.OK_Button.Size = New System.Drawing.Size(77, 30)
|
||||
Me.OK_Button.TabIndex = 0
|
||||
Me.OK_Button.Text = "确定"
|
||||
'
|
||||
'Cancel_Button
|
||||
'
|
||||
Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None
|
||||
Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel
|
||||
Me.Cancel_Button.Location = New System.Drawing.Point(87, 5)
|
||||
Me.Cancel_Button.Name = "Cancel_Button"
|
||||
Me.Cancel_Button.Size = New System.Drawing.Size(76, 30)
|
||||
Me.Cancel_Button.TabIndex = 1
|
||||
Me.Cancel_Button.Text = "取消"
|
||||
'
|
||||
'TextBox5
|
||||
'
|
||||
Me.TextBox5.Font = New System.Drawing.Font("宋体", 15.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.TextBox5.Location = New System.Drawing.Point(150, 76)
|
||||
Me.TextBox5.Name = "TextBox5"
|
||||
Me.TextBox5.Size = New System.Drawing.Size(201, 30)
|
||||
Me.TextBox5.TabIndex = 21
|
||||
'
|
||||
'Label49
|
||||
'
|
||||
Me.Label49.AutoSize = True
|
||||
Me.Label49.Font = New System.Drawing.Font("宋体", 15.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label49.Location = New System.Drawing.Point(65, 79)
|
||||
Me.Label49.Name = "Label49"
|
||||
Me.Label49.Size = New System.Drawing.Size(79, 20)
|
||||
Me.Label49.TabIndex = 20
|
||||
Me.Label49.Text = "MAC地址"
|
||||
'
|
||||
'FrmMACDialog
|
||||
'
|
||||
Me.AcceptButton = Me.OK_Button
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.CancelButton = Me.Cancel_Button
|
||||
Me.ClientSize = New System.Drawing.Size(411, 230)
|
||||
Me.Controls.Add(Me.TextBox5)
|
||||
Me.Controls.Add(Me.Label49)
|
||||
Me.Controls.Add(Me.TableLayoutPanel1)
|
||||
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
|
||||
Me.MaximizeBox = False
|
||||
Me.MinimizeBox = False
|
||||
Me.Name = "FrmMACDialog"
|
||||
Me.ShowInTaskbar = False
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
|
||||
Me.Text = "MAC"
|
||||
Me.TableLayoutPanel1.ResumeLayout(False)
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel
|
||||
Friend WithEvents OK_Button As System.Windows.Forms.Button
|
||||
Friend WithEvents Cancel_Button As System.Windows.Forms.Button
|
||||
Friend WithEvents TextBox5 As TextBox
|
||||
Friend WithEvents Label49 As Label
|
||||
End Class
|
||||
120
BLV_Studio/Control/FrmMACDialog.resx
Normal file
120
BLV_Studio/Control/FrmMACDialog.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
102
BLV_Studio/Control/FrmMACDialog.vb
Normal file
102
BLV_Studio/Control/FrmMACDialog.vb
Normal file
@@ -0,0 +1,102 @@
|
||||
Imports System.Windows.Forms
|
||||
|
||||
Public Class FrmMACDialog
|
||||
Public FCsConfig As FrmCSeriesConfig
|
||||
Sub New(pathme As FrmCSeriesConfig)
|
||||
|
||||
' 此调用是设计器所必需的。
|
||||
InitializeComponent()
|
||||
FCsConfig = pathme
|
||||
' 在 InitializeComponent() 调用之后添加任何初始化。
|
||||
|
||||
End Sub
|
||||
Private Sub FrmMACDialog_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
Label49.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.MAC)
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
Private Sub FrmMACDialog_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
||||
TextBox5.Text = Nothing
|
||||
TextBox5.Focus() '设置焦点
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
|
||||
Dim mac As String = TextBox5.Text
|
||||
If mac = Nothing Then
|
||||
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.PleaseScanTheMACAddress)}!")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
mac = mac.Replace(" ", "").Replace("-", "").Replace("_", "").Replace(" ", "")
|
||||
If mac.Length <> 12 Then
|
||||
MsgBox($"MAC数据长度不匹配!")
|
||||
Return
|
||||
End If
|
||||
For index = 0 To mac.Length - 1 Step 2
|
||||
Try
|
||||
Dim b1 As Byte = $"&H{mac.Substring(index, 2)}"
|
||||
Catch ex As Exception
|
||||
MsgBox($"MAC数据不合法!")
|
||||
Return
|
||||
End Try
|
||||
Next
|
||||
|
||||
Me.DialogResult = System.Windows.Forms.DialogResult.OK
|
||||
FCsConfig._IsOK = True
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 显示窗体
|
||||
''' </summary>
|
||||
Public Sub ShowMyDialog()
|
||||
ShowDialog()
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取MAC地址
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Function GetMACAddress() As Byte()
|
||||
Dim data As String = TextBox5.Text
|
||||
data = data.Replace(" ", "").Replace("-", "").Replace("_", "").Replace(" ", "")
|
||||
|
||||
Dim databuff As Byte() = GetStringToDataByte(data)
|
||||
Dim dbyte(3) As Byte
|
||||
Array.Copy(databuff, databuff.Length - 4, dbyte, 0, dbyte.Length)
|
||||
'Console.WriteLine($"MAC取出来的数据:{ByteToString(dbyte)}")
|
||||
|
||||
Return dbyte
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 字符串转换Byte数组
|
||||
''' </summary>
|
||||
''' <param name="data"></param>
|
||||
''' <returns></returns>
|
||||
Public Function GetStringToDataByte(data As String) As Byte()
|
||||
Dim dataList As New List(Of Byte)
|
||||
|
||||
For index As Integer = 0 To data.Length - 1 Step 2
|
||||
dataList.Add($"&H{data.Substring(index, 2)}")
|
||||
Next
|
||||
Console.WriteLine($"取位: {ByteToString(dataList.ToArray)}")
|
||||
|
||||
Return dataList.ToArray
|
||||
End Function
|
||||
|
||||
|
||||
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
|
||||
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
|
||||
FCsConfig._IsOK = False
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
|
||||
End Class
|
||||
106
BLV_Studio/Control/FrmSerialportSetting.Designer.vb
generated
Normal file
106
BLV_Studio/Control/FrmSerialportSetting.Designer.vb
generated
Normal file
@@ -0,0 +1,106 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class FrmSerialportSetting
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form 重写 Dispose,以清理组件列表。
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows 窗体设计器所必需的
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||
'可以使用 Windows 窗体设计器修改它。
|
||||
'不要使用代码编辑器修改它。
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.LblSerialPortName = New System.Windows.Forms.Label()
|
||||
Me.LblSerialPortBaud = New System.Windows.Forms.Label()
|
||||
Me.ComboBox8 = New System.Windows.Forms.ComboBox()
|
||||
Me.ComboBox9 = New System.Windows.Forms.ComboBox()
|
||||
Me.Button19 = New System.Windows.Forms.Button()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'LblSerialPortName
|
||||
'
|
||||
Me.LblSerialPortName.AutoSize = True
|
||||
Me.LblSerialPortName.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblSerialPortName.Location = New System.Drawing.Point(19, 48)
|
||||
Me.LblSerialPortName.Name = "LblSerialPortName"
|
||||
Me.LblSerialPortName.Size = New System.Drawing.Size(63, 14)
|
||||
Me.LblSerialPortName.TabIndex = 7
|
||||
Me.LblSerialPortName.Text = "串口名称"
|
||||
Me.LblSerialPortName.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'LblSerialPortBaud
|
||||
'
|
||||
Me.LblSerialPortBaud.AutoSize = True
|
||||
Me.LblSerialPortBaud.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblSerialPortBaud.Location = New System.Drawing.Point(232, 48)
|
||||
Me.LblSerialPortBaud.Name = "LblSerialPortBaud"
|
||||
Me.LblSerialPortBaud.Size = New System.Drawing.Size(49, 14)
|
||||
Me.LblSerialPortBaud.TabIndex = 8
|
||||
Me.LblSerialPortBaud.Text = "波特率"
|
||||
Me.LblSerialPortBaud.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'ComboBox8
|
||||
'
|
||||
Me.ComboBox8.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.ComboBox8.FormattingEnabled = True
|
||||
Me.ComboBox8.Location = New System.Drawing.Point(84, 45)
|
||||
Me.ComboBox8.Name = "ComboBox8"
|
||||
Me.ComboBox8.Size = New System.Drawing.Size(121, 22)
|
||||
Me.ComboBox8.TabIndex = 9
|
||||
'
|
||||
'ComboBox9
|
||||
'
|
||||
Me.ComboBox9.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.ComboBox9.FormattingEnabled = True
|
||||
Me.ComboBox9.Location = New System.Drawing.Point(284, 44)
|
||||
Me.ComboBox9.Name = "ComboBox9"
|
||||
Me.ComboBox9.Size = New System.Drawing.Size(121, 22)
|
||||
Me.ComboBox9.TabIndex = 11
|
||||
'
|
||||
'Button19
|
||||
'
|
||||
Me.Button19.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button19.ForeColor = System.Drawing.Color.Green
|
||||
Me.Button19.Location = New System.Drawing.Point(446, 39)
|
||||
Me.Button19.Name = "Button19"
|
||||
Me.Button19.Size = New System.Drawing.Size(81, 33)
|
||||
Me.Button19.TabIndex = 10
|
||||
Me.Button19.Text = "打开串口"
|
||||
Me.Button19.UseVisualStyleBackColor = True
|
||||
'
|
||||
'FrmSerialportSetting
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(569, 127)
|
||||
Me.Controls.Add(Me.LblSerialPortName)
|
||||
Me.Controls.Add(Me.LblSerialPortBaud)
|
||||
Me.Controls.Add(Me.ComboBox8)
|
||||
Me.Controls.Add(Me.ComboBox9)
|
||||
Me.Controls.Add(Me.Button19)
|
||||
Me.Name = "FrmSerialportSetting"
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
|
||||
Me.Text = "串口设置"
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
|
||||
Friend WithEvents LblSerialPortName As Label
|
||||
Friend WithEvents LblSerialPortBaud As Label
|
||||
Friend WithEvents ComboBox8 As ComboBox
|
||||
Friend WithEvents ComboBox9 As ComboBox
|
||||
Friend WithEvents Button19 As Button
|
||||
End Class
|
||||
120
BLV_Studio/Control/FrmSerialportSetting.resx
Normal file
120
BLV_Studio/Control/FrmSerialportSetting.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
171
BLV_Studio/Control/FrmSerialportSetting.vb
Normal file
171
BLV_Studio/Control/FrmSerialportSetting.vb
Normal file
@@ -0,0 +1,171 @@
|
||||
Imports System.ComponentModel
|
||||
Imports System.IO
|
||||
|
||||
Public Class FrmSerialportSetting
|
||||
Public FCsConfig As FrmCSeriesConfig
|
||||
Sub New(pathme As FrmCSeriesConfig)
|
||||
|
||||
' 此调用是设计器所必需的。
|
||||
InitializeComponent()
|
||||
FCsConfig = pathme
|
||||
' 在 InitializeComponent() 调用之后添加任何初始化。
|
||||
|
||||
End Sub
|
||||
|
||||
#Region "多语种信息"
|
||||
|
||||
''' <summary>
|
||||
''' 初始化界面控件文本
|
||||
''' </summary>
|
||||
Private Sub MultiLanguageInfo()
|
||||
''LblIP.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.LocalIP)
|
||||
Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.SerialportSettings)
|
||||
LblSerialPortName.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.SerialPortName)
|
||||
LblSerialPortBaud.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.Baud)
|
||||
Button19.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.OpenTheSerialPort)
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "初始化"
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 串口波特率
|
||||
''' </summary>
|
||||
Private _baudItme() As String = {"4800", "9600", "14400", "19200", "38400", "56000", "57600", "115200", "256000", "512000", "600000", "750000"}
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 窗体加载事件
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub FrmSerialportSetting_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
MultiLanguageInfo()
|
||||
GetSerialPort()
|
||||
InitSerialPortBaud()
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取可用串口
|
||||
''' </summary>
|
||||
Private Sub GetSerialPort()
|
||||
Dim portNames As String() = Ports.SerialPort.GetPortNames '获得可用串口
|
||||
Array.Sort(portNames)
|
||||
ComboBox8.Items.Clear()
|
||||
ComboBox8.Items.AddRange(portNames)
|
||||
End Sub
|
||||
|
||||
''' <summary> port次数 </summary>
|
||||
Private _portCount As Integer = 0
|
||||
|
||||
''' <summary>
|
||||
''' 初始化串口波特率
|
||||
''' </summary>
|
||||
Private Sub InitSerialPortBaud()
|
||||
_portCount += 1
|
||||
ComboBox9.Items.Clear()
|
||||
ComboBox9.Items.AddRange(_baudItme)
|
||||
|
||||
If _portCount > 1 Then Return
|
||||
If ComboBox9.Items.Count > 1 Then ComboBox9.SelectedIndex = 1
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 串口点击按键
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button19_Click(sender As Object, e As EventArgs) Handles Button19.Click
|
||||
If String.IsNullOrWhiteSpace(ComboBox8.Text) Then
|
||||
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SelectAValidSerialPortFirst)}!")
|
||||
Exit Sub
|
||||
End If
|
||||
If String.IsNullOrWhiteSpace(ComboBox9.Text) Then
|
||||
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SelectTheValidBaudRateFirst)}!")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
SerialPortCommSwitch(ComboBox8.Text, ComboBox9.Text)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 串口通讯开关
|
||||
''' </summary>
|
||||
''' <param name="portName"></param>
|
||||
''' <param name="portBaud"></param>
|
||||
Private Sub SerialPortCommSwitch(portName As String, portBaud As String)
|
||||
If FCsConfig.SerialPort.IsOpen Then
|
||||
FCsConfig.SerialPort.Close()
|
||||
CloseSerialPort()
|
||||
Else
|
||||
ConfigSerialPort(portName, portBaud)
|
||||
Try
|
||||
FCsConfig.SerialPort.Open()
|
||||
_isSerialPort = True
|
||||
OpenSerialPort()
|
||||
Catch ex As Exception
|
||||
Console.WriteLine($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SerialPortOpenTheFailedReason)}:{ex.Message}" & vbCrLf, Color.Red)
|
||||
MsgBox($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SerialPortOpenTheFailedReason)}:{ex.Message}")
|
||||
FCsConfig.SerialPort.Close()
|
||||
_isSerialPort = False
|
||||
CloseSerialPort()
|
||||
End Try
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 关闭串口
|
||||
''' </summary>
|
||||
Private Sub CloseSerialPort()
|
||||
ComboBox8.Enabled = True
|
||||
ComboBox9.Enabled = True
|
||||
Button19.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.OpenTheSerialPort)}"
|
||||
Button19.ForeColor = Color.Green
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 打开串口
|
||||
''' </summary>
|
||||
Private Sub OpenSerialPort()
|
||||
ComboBox8.Enabled = False
|
||||
ComboBox9.Enabled = False
|
||||
Button19.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.CloseTheSerialPort)}"
|
||||
Button19.ForeColor = Color.Red
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 配置串口
|
||||
''' </summary>
|
||||
''' <param name="portName">串口名</param>
|
||||
''' <param name="portBaud">串口波特率</param>
|
||||
Public Sub ConfigSerialPort(portName As String, portBaud As String)
|
||||
With FCsConfig.SerialPort
|
||||
.PortName = portName '串口名
|
||||
.BaudRate = CInt(portBaud) '波特率
|
||||
.DataBits = 8 '数据位
|
||||
.StopBits = Ports.StopBits.One '停止位
|
||||
.Parity = Ports.Parity.None '偶校验
|
||||
.RtsEnable = True
|
||||
.ReceivedBytesThreshold = 1
|
||||
End With
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
663
BLV_Studio/Control/FrmTest_BLV-V9.Designer.vb
generated
Normal file
663
BLV_Studio/Control/FrmTest_BLV-V9.Designer.vb
generated
Normal file
@@ -0,0 +1,663 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class FrmTest_BLV_V9
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form 重写 Dispose,以清理组件列表。
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows 窗体设计器所必需的
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||
'可以使用 Windows 窗体设计器修改它。
|
||||
'不要使用代码编辑器修改它。
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.BtnDimming = New System.Windows.Forms.Button()
|
||||
Me.Label7 = New System.Windows.Forms.Label()
|
||||
Me.LblInput13 = New System.Windows.Forms.Label()
|
||||
Me.LblInput12 = New System.Windows.Forms.Label()
|
||||
Me.LblInput11 = New System.Windows.Forms.Label()
|
||||
Me.LblInput10 = New System.Windows.Forms.Label()
|
||||
Me.LblInput9 = New System.Windows.Forms.Label()
|
||||
Me.LblInput8 = New System.Windows.Forms.Label()
|
||||
Me.Label48 = New System.Windows.Forms.Label()
|
||||
Me.LblInput7 = New System.Windows.Forms.Label()
|
||||
Me.LblInput6 = New System.Windows.Forms.Label()
|
||||
Me.LblInput5 = New System.Windows.Forms.Label()
|
||||
Me.LblInput4 = New System.Windows.Forms.Label()
|
||||
Me.LblInput3 = New System.Windows.Forms.Label()
|
||||
Me.LblInput2 = New System.Windows.Forms.Label()
|
||||
Me.LblInput1 = New System.Windows.Forms.Label()
|
||||
Me.Label40 = New System.Windows.Forms.Label()
|
||||
Me.Button23 = New System.Windows.Forms.Button()
|
||||
Me.BtnInputTest = New System.Windows.Forms.Button()
|
||||
Me.Button21 = New System.Windows.Forms.Button()
|
||||
Me.Label39 = New System.Windows.Forms.Label()
|
||||
Me.NumericUpDown1 = New System.Windows.Forms.NumericUpDown()
|
||||
Me.Label38 = New System.Windows.Forms.Label()
|
||||
Me.ComboBox10 = New System.Windows.Forms.ComboBox()
|
||||
Me.Label37 = New System.Windows.Forms.Label()
|
||||
Me.Label36 = New System.Windows.Forms.Label()
|
||||
Me.BtnOutput5 = New System.Windows.Forms.Button()
|
||||
Me.BtnOutput4 = New System.Windows.Forms.Button()
|
||||
Me.BtnOutput3 = New System.Windows.Forms.Button()
|
||||
Me.BtnOutput2 = New System.Windows.Forms.Button()
|
||||
Me.BtnOutput1 = New System.Windows.Forms.Button()
|
||||
Me.Label35 = New System.Windows.Forms.Label()
|
||||
Me.BtnRelay13 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay12 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay11 = New System.Windows.Forms.Button()
|
||||
Me.Label34 = New System.Windows.Forms.Label()
|
||||
Me.BtnRelay10 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay9 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay7 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay6 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay8 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay5 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay4 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay3 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay2 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay1 = New System.Windows.Forms.Button()
|
||||
CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'BtnDimming
|
||||
'
|
||||
Me.BtnDimming.Location = New System.Drawing.Point(99, 10)
|
||||
Me.BtnDimming.Name = "BtnDimming"
|
||||
Me.BtnDimming.Size = New System.Drawing.Size(62, 24)
|
||||
Me.BtnDimming.TabIndex = 180
|
||||
Me.BtnDimming.Text = "调光测试"
|
||||
Me.BtnDimming.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label7
|
||||
'
|
||||
Me.Label7.AutoSize = True
|
||||
Me.Label7.Location = New System.Drawing.Point(20, 10)
|
||||
Me.Label7.Name = "Label7"
|
||||
Me.Label7.Size = New System.Drawing.Size(47, 12)
|
||||
Me.Label7.TabIndex = 179
|
||||
Me.Label7.Text = "V9 调光"
|
||||
'
|
||||
'LblInput13
|
||||
'
|
||||
Me.LblInput13.AutoSize = True
|
||||
Me.LblInput13.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput13.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput13.Location = New System.Drawing.Point(510, 145)
|
||||
Me.LblInput13.Name = "LblInput13"
|
||||
Me.LblInput13.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput13.TabIndex = 178
|
||||
Me.LblInput13.Text = " 13 "
|
||||
'
|
||||
'LblInput12
|
||||
'
|
||||
Me.LblInput12.AutoSize = True
|
||||
Me.LblInput12.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput12.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput12.Location = New System.Drawing.Point(465, 145)
|
||||
Me.LblInput12.Name = "LblInput12"
|
||||
Me.LblInput12.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput12.TabIndex = 177
|
||||
Me.LblInput12.Text = " 12 "
|
||||
'
|
||||
'LblInput11
|
||||
'
|
||||
Me.LblInput11.AutoSize = True
|
||||
Me.LblInput11.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput11.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput11.Location = New System.Drawing.Point(420, 145)
|
||||
Me.LblInput11.Name = "LblInput11"
|
||||
Me.LblInput11.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput11.TabIndex = 176
|
||||
Me.LblInput11.Text = " 11 "
|
||||
'
|
||||
'LblInput10
|
||||
'
|
||||
Me.LblInput10.AutoSize = True
|
||||
Me.LblInput10.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput10.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput10.Location = New System.Drawing.Point(375, 145)
|
||||
Me.LblInput10.Name = "LblInput10"
|
||||
Me.LblInput10.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput10.TabIndex = 175
|
||||
Me.LblInput10.Text = " 10 "
|
||||
'
|
||||
'LblInput9
|
||||
'
|
||||
Me.LblInput9.AutoSize = True
|
||||
Me.LblInput9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput9.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput9.Location = New System.Drawing.Point(337, 145)
|
||||
Me.LblInput9.Name = "LblInput9"
|
||||
Me.LblInput9.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput9.TabIndex = 174
|
||||
Me.LblInput9.Text = " 9 "
|
||||
'
|
||||
'LblInput8
|
||||
'
|
||||
Me.LblInput8.AutoSize = True
|
||||
Me.LblInput8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput8.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput8.Location = New System.Drawing.Point(299, 145)
|
||||
Me.LblInput8.Name = "LblInput8"
|
||||
Me.LblInput8.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput8.TabIndex = 173
|
||||
Me.LblInput8.Text = " 8 "
|
||||
'
|
||||
'Label48
|
||||
'
|
||||
Me.Label48.AutoSize = True
|
||||
Me.Label48.Font = New System.Drawing.Font("宋体", 21.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label48.Location = New System.Drawing.Point(204, 217)
|
||||
Me.Label48.Name = "Label48"
|
||||
Me.Label48.Size = New System.Drawing.Size(125, 29)
|
||||
Me.Label48.TabIndex = 172
|
||||
Me.Label48.Text = "Test..."
|
||||
'
|
||||
'LblInput7
|
||||
'
|
||||
Me.LblInput7.AutoSize = True
|
||||
Me.LblInput7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput7.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput7.Location = New System.Drawing.Point(261, 145)
|
||||
Me.LblInput7.Name = "LblInput7"
|
||||
Me.LblInput7.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput7.TabIndex = 171
|
||||
Me.LblInput7.Text = " 7 "
|
||||
'
|
||||
'LblInput6
|
||||
'
|
||||
Me.LblInput6.AutoSize = True
|
||||
Me.LblInput6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput6.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput6.Location = New System.Drawing.Point(223, 145)
|
||||
Me.LblInput6.Name = "LblInput6"
|
||||
Me.LblInput6.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput6.TabIndex = 170
|
||||
Me.LblInput6.Text = " 6 "
|
||||
'
|
||||
'LblInput5
|
||||
'
|
||||
Me.LblInput5.AutoSize = True
|
||||
Me.LblInput5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput5.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput5.Location = New System.Drawing.Point(185, 145)
|
||||
Me.LblInput5.Name = "LblInput5"
|
||||
Me.LblInput5.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput5.TabIndex = 169
|
||||
Me.LblInput5.Text = " 5 "
|
||||
'
|
||||
'LblInput4
|
||||
'
|
||||
Me.LblInput4.AutoSize = True
|
||||
Me.LblInput4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput4.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput4.Location = New System.Drawing.Point(147, 145)
|
||||
Me.LblInput4.Name = "LblInput4"
|
||||
Me.LblInput4.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput4.TabIndex = 168
|
||||
Me.LblInput4.Text = " 4 "
|
||||
'
|
||||
'LblInput3
|
||||
'
|
||||
Me.LblInput3.AutoSize = True
|
||||
Me.LblInput3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput3.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput3.Location = New System.Drawing.Point(109, 145)
|
||||
Me.LblInput3.Name = "LblInput3"
|
||||
Me.LblInput3.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput3.TabIndex = 167
|
||||
Me.LblInput3.Text = " 3 "
|
||||
'
|
||||
'LblInput2
|
||||
'
|
||||
Me.LblInput2.AutoSize = True
|
||||
Me.LblInput2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput2.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput2.Location = New System.Drawing.Point(71, 145)
|
||||
Me.LblInput2.Name = "LblInput2"
|
||||
Me.LblInput2.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput2.TabIndex = 166
|
||||
Me.LblInput2.Text = " 2 "
|
||||
'
|
||||
'LblInput1
|
||||
'
|
||||
Me.LblInput1.AutoSize = True
|
||||
Me.LblInput1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput1.Location = New System.Drawing.Point(33, 145)
|
||||
Me.LblInput1.Name = "LblInput1"
|
||||
Me.LblInput1.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput1.TabIndex = 165
|
||||
Me.LblInput1.Text = " 1 "
|
||||
'
|
||||
'Label40
|
||||
'
|
||||
Me.Label40.AutoSize = True
|
||||
Me.Label40.Location = New System.Drawing.Point(20, 217)
|
||||
Me.Label40.Name = "Label40"
|
||||
Me.Label40.Size = New System.Drawing.Size(71, 12)
|
||||
Me.Label40.TabIndex = 164
|
||||
Me.Label40.Text = "V9 巡回测试"
|
||||
'
|
||||
'Button23
|
||||
'
|
||||
Me.Button23.Location = New System.Drawing.Point(116, 217)
|
||||
Me.Button23.Name = "Button23"
|
||||
Me.Button23.Size = New System.Drawing.Size(68, 25)
|
||||
Me.Button23.TabIndex = 163
|
||||
Me.Button23.Text = "巡回测试"
|
||||
Me.Button23.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnInputTest
|
||||
'
|
||||
Me.BtnInputTest.Location = New System.Drawing.Point(577, 141)
|
||||
Me.BtnInputTest.Name = "BtnInputTest"
|
||||
Me.BtnInputTest.Size = New System.Drawing.Size(62, 24)
|
||||
Me.BtnInputTest.TabIndex = 162
|
||||
Me.BtnInputTest.Text = "输入检测"
|
||||
Me.BtnInputTest.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button21
|
||||
'
|
||||
Me.Button21.Location = New System.Drawing.Point(575, 190)
|
||||
Me.Button21.Name = "Button21"
|
||||
Me.Button21.Size = New System.Drawing.Size(62, 21)
|
||||
Me.Button21.TabIndex = 161
|
||||
Me.Button21.Text = "播放"
|
||||
Me.Button21.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label39
|
||||
'
|
||||
Me.Label39.AutoSize = True
|
||||
Me.Label39.BackColor = System.Drawing.SystemColors.Control
|
||||
Me.Label39.Location = New System.Drawing.Point(278, 194)
|
||||
Me.Label39.Name = "Label39"
|
||||
Me.Label39.Size = New System.Drawing.Size(77, 12)
|
||||
Me.Label39.TabIndex = 160
|
||||
Me.Label39.Text = "播放文件序号"
|
||||
Me.Label39.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'NumericUpDown1
|
||||
'
|
||||
Me.NumericUpDown1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.NumericUpDown1.Location = New System.Drawing.Point(361, 190)
|
||||
Me.NumericUpDown1.Maximum = New Decimal(New Integer() {10, 0, 0, 0})
|
||||
Me.NumericUpDown1.Minimum = New Decimal(New Integer() {1, 0, 0, 0})
|
||||
Me.NumericUpDown1.Name = "NumericUpDown1"
|
||||
Me.NumericUpDown1.Size = New System.Drawing.Size(86, 23)
|
||||
Me.NumericUpDown1.TabIndex = 159
|
||||
Me.NumericUpDown1.Value = New Decimal(New Integer() {1, 0, 0, 0})
|
||||
'
|
||||
'Label38
|
||||
'
|
||||
Me.Label38.AutoSize = True
|
||||
Me.Label38.Location = New System.Drawing.Point(45, 194)
|
||||
Me.Label38.Name = "Label38"
|
||||
Me.Label38.Size = New System.Drawing.Size(65, 12)
|
||||
Me.Label38.TabIndex = 158
|
||||
Me.Label38.Text = "播放文件夹"
|
||||
Me.Label38.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'ComboBox10
|
||||
'
|
||||
Me.ComboBox10.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
|
||||
Me.ComboBox10.FormattingEnabled = True
|
||||
Me.ComboBox10.Location = New System.Drawing.Point(116, 191)
|
||||
Me.ComboBox10.Name = "ComboBox10"
|
||||
Me.ComboBox10.Size = New System.Drawing.Size(138, 20)
|
||||
Me.ComboBox10.TabIndex = 157
|
||||
'
|
||||
'Label37
|
||||
'
|
||||
Me.Label37.AutoSize = True
|
||||
Me.Label37.Location = New System.Drawing.Point(20, 171)
|
||||
Me.Label37.Name = "Label37"
|
||||
Me.Label37.Size = New System.Drawing.Size(53, 12)
|
||||
Me.Label37.TabIndex = 156
|
||||
Me.Label37.Text = "V9 MUSIC"
|
||||
'
|
||||
'Label36
|
||||
'
|
||||
Me.Label36.AutoSize = True
|
||||
Me.Label36.Location = New System.Drawing.Point(20, 85)
|
||||
Me.Label36.Name = "Label36"
|
||||
Me.Label36.Size = New System.Drawing.Size(65, 12)
|
||||
Me.Label36.TabIndex = 155
|
||||
Me.Label36.Text = "V9 IO 输出"
|
||||
'
|
||||
'BtnOutput5
|
||||
'
|
||||
Me.BtnOutput5.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnOutput5.Location = New System.Drawing.Point(189, 100)
|
||||
Me.BtnOutput5.Name = "BtnOutput5"
|
||||
Me.BtnOutput5.Size = New System.Drawing.Size(31, 26)
|
||||
Me.BtnOutput5.TabIndex = 154
|
||||
Me.BtnOutput5.Tag = "4"
|
||||
Me.BtnOutput5.Text = "5"
|
||||
Me.BtnOutput5.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnOutput4
|
||||
'
|
||||
Me.BtnOutput4.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnOutput4.Location = New System.Drawing.Point(150, 100)
|
||||
Me.BtnOutput4.Name = "BtnOutput4"
|
||||
Me.BtnOutput4.Size = New System.Drawing.Size(31, 26)
|
||||
Me.BtnOutput4.TabIndex = 153
|
||||
Me.BtnOutput4.Tag = "3"
|
||||
Me.BtnOutput4.Text = "4"
|
||||
Me.BtnOutput4.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnOutput3
|
||||
'
|
||||
Me.BtnOutput3.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnOutput3.Location = New System.Drawing.Point(111, 100)
|
||||
Me.BtnOutput3.Name = "BtnOutput3"
|
||||
Me.BtnOutput3.Size = New System.Drawing.Size(31, 26)
|
||||
Me.BtnOutput3.TabIndex = 152
|
||||
Me.BtnOutput3.Tag = "2"
|
||||
Me.BtnOutput3.Text = "3"
|
||||
Me.BtnOutput3.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnOutput2
|
||||
'
|
||||
Me.BtnOutput2.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnOutput2.Location = New System.Drawing.Point(72, 100)
|
||||
Me.BtnOutput2.Name = "BtnOutput2"
|
||||
Me.BtnOutput2.Size = New System.Drawing.Size(31, 26)
|
||||
Me.BtnOutput2.TabIndex = 151
|
||||
Me.BtnOutput2.Tag = "1"
|
||||
Me.BtnOutput2.Text = "2"
|
||||
Me.BtnOutput2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnOutput1
|
||||
'
|
||||
Me.BtnOutput1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnOutput1.Location = New System.Drawing.Point(33, 100)
|
||||
Me.BtnOutput1.Name = "BtnOutput1"
|
||||
Me.BtnOutput1.Size = New System.Drawing.Size(31, 26)
|
||||
Me.BtnOutput1.TabIndex = 150
|
||||
Me.BtnOutput1.Tag = "0"
|
||||
Me.BtnOutput1.Text = "1"
|
||||
Me.BtnOutput1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label35
|
||||
'
|
||||
Me.Label35.AutoSize = True
|
||||
Me.Label35.Location = New System.Drawing.Point(20, 129)
|
||||
Me.Label35.Name = "Label35"
|
||||
Me.Label35.Size = New System.Drawing.Size(65, 12)
|
||||
Me.Label35.TabIndex = 149
|
||||
Me.Label35.Text = "V9 IO 输入"
|
||||
'
|
||||
'BtnRelay13
|
||||
'
|
||||
Me.BtnRelay13.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay13.Location = New System.Drawing.Point(501, 55)
|
||||
Me.BtnRelay13.Name = "BtnRelay13"
|
||||
Me.BtnRelay13.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay13.TabIndex = 148
|
||||
Me.BtnRelay13.Tag = "12"
|
||||
Me.BtnRelay13.Text = "13"
|
||||
Me.BtnRelay13.UseVisualStyleBackColor = True
|
||||
Me.BtnRelay13.Visible = False
|
||||
'
|
||||
'BtnRelay12
|
||||
'
|
||||
Me.BtnRelay12.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay12.Location = New System.Drawing.Point(462, 55)
|
||||
Me.BtnRelay12.Name = "BtnRelay12"
|
||||
Me.BtnRelay12.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay12.TabIndex = 146
|
||||
Me.BtnRelay12.Tag = "11"
|
||||
Me.BtnRelay12.Text = "12"
|
||||
Me.BtnRelay12.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay11
|
||||
'
|
||||
Me.BtnRelay11.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay11.Location = New System.Drawing.Point(423, 55)
|
||||
Me.BtnRelay11.Name = "BtnRelay11"
|
||||
Me.BtnRelay11.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay11.TabIndex = 147
|
||||
Me.BtnRelay11.Tag = "10"
|
||||
Me.BtnRelay11.Text = "11"
|
||||
Me.BtnRelay11.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label34
|
||||
'
|
||||
Me.Label34.AutoSize = True
|
||||
Me.Label34.Location = New System.Drawing.Point(20, 40)
|
||||
Me.Label34.Name = "Label34"
|
||||
Me.Label34.Size = New System.Drawing.Size(101, 12)
|
||||
Me.Label34.TabIndex = 145
|
||||
Me.Label34.Text = "V9 IO 继电器控制"
|
||||
'
|
||||
'BtnRelay10
|
||||
'
|
||||
Me.BtnRelay10.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay10.Location = New System.Drawing.Point(384, 55)
|
||||
Me.BtnRelay10.Name = "BtnRelay10"
|
||||
Me.BtnRelay10.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay10.TabIndex = 144
|
||||
Me.BtnRelay10.Tag = "9"
|
||||
Me.BtnRelay10.Text = "10"
|
||||
Me.BtnRelay10.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay9
|
||||
'
|
||||
Me.BtnRelay9.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay9.Location = New System.Drawing.Point(345, 55)
|
||||
Me.BtnRelay9.Name = "BtnRelay9"
|
||||
Me.BtnRelay9.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay9.TabIndex = 143
|
||||
Me.BtnRelay9.Tag = "8"
|
||||
Me.BtnRelay9.Text = "9"
|
||||
Me.BtnRelay9.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay7
|
||||
'
|
||||
Me.BtnRelay7.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay7.Location = New System.Drawing.Point(267, 55)
|
||||
Me.BtnRelay7.Name = "BtnRelay7"
|
||||
Me.BtnRelay7.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay7.TabIndex = 142
|
||||
Me.BtnRelay7.Tag = "6"
|
||||
Me.BtnRelay7.Text = "7"
|
||||
Me.BtnRelay7.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay6
|
||||
'
|
||||
Me.BtnRelay6.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay6.Location = New System.Drawing.Point(228, 55)
|
||||
Me.BtnRelay6.Name = "BtnRelay6"
|
||||
Me.BtnRelay6.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay6.TabIndex = 141
|
||||
Me.BtnRelay6.Tag = "5"
|
||||
Me.BtnRelay6.Text = "6"
|
||||
Me.BtnRelay6.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay8
|
||||
'
|
||||
Me.BtnRelay8.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay8.Location = New System.Drawing.Point(306, 55)
|
||||
Me.BtnRelay8.Name = "BtnRelay8"
|
||||
Me.BtnRelay8.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay8.TabIndex = 140
|
||||
Me.BtnRelay8.Tag = "7"
|
||||
Me.BtnRelay8.Text = "8"
|
||||
Me.BtnRelay8.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay5
|
||||
'
|
||||
Me.BtnRelay5.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay5.Location = New System.Drawing.Point(189, 55)
|
||||
Me.BtnRelay5.Name = "BtnRelay5"
|
||||
Me.BtnRelay5.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay5.TabIndex = 139
|
||||
Me.BtnRelay5.Tag = "4"
|
||||
Me.BtnRelay5.Text = "5"
|
||||
Me.BtnRelay5.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay4
|
||||
'
|
||||
Me.BtnRelay4.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay4.Location = New System.Drawing.Point(150, 55)
|
||||
Me.BtnRelay4.Name = "BtnRelay4"
|
||||
Me.BtnRelay4.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay4.TabIndex = 138
|
||||
Me.BtnRelay4.Tag = "3"
|
||||
Me.BtnRelay4.Text = "4"
|
||||
Me.BtnRelay4.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay3
|
||||
'
|
||||
Me.BtnRelay3.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay3.Location = New System.Drawing.Point(111, 55)
|
||||
Me.BtnRelay3.Name = "BtnRelay3"
|
||||
Me.BtnRelay3.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay3.TabIndex = 137
|
||||
Me.BtnRelay3.Tag = "2"
|
||||
Me.BtnRelay3.Text = "3"
|
||||
Me.BtnRelay3.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay2
|
||||
'
|
||||
Me.BtnRelay2.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay2.Location = New System.Drawing.Point(72, 55)
|
||||
Me.BtnRelay2.Name = "BtnRelay2"
|
||||
Me.BtnRelay2.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay2.TabIndex = 136
|
||||
Me.BtnRelay2.Tag = "1"
|
||||
Me.BtnRelay2.Text = "2"
|
||||
Me.BtnRelay2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay1
|
||||
'
|
||||
Me.BtnRelay1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay1.Location = New System.Drawing.Point(33, 55)
|
||||
Me.BtnRelay1.Name = "BtnRelay1"
|
||||
Me.BtnRelay1.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay1.TabIndex = 135
|
||||
Me.BtnRelay1.Tag = "0"
|
||||
Me.BtnRelay1.Text = "1"
|
||||
Me.BtnRelay1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'FrmTest_BLV_V9
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(658, 256)
|
||||
Me.Controls.Add(Me.BtnDimming)
|
||||
Me.Controls.Add(Me.Label7)
|
||||
Me.Controls.Add(Me.LblInput13)
|
||||
Me.Controls.Add(Me.LblInput12)
|
||||
Me.Controls.Add(Me.LblInput11)
|
||||
Me.Controls.Add(Me.LblInput10)
|
||||
Me.Controls.Add(Me.LblInput9)
|
||||
Me.Controls.Add(Me.LblInput8)
|
||||
Me.Controls.Add(Me.Label48)
|
||||
Me.Controls.Add(Me.LblInput7)
|
||||
Me.Controls.Add(Me.LblInput6)
|
||||
Me.Controls.Add(Me.LblInput5)
|
||||
Me.Controls.Add(Me.LblInput4)
|
||||
Me.Controls.Add(Me.LblInput3)
|
||||
Me.Controls.Add(Me.LblInput2)
|
||||
Me.Controls.Add(Me.LblInput1)
|
||||
Me.Controls.Add(Me.Label40)
|
||||
Me.Controls.Add(Me.Button23)
|
||||
Me.Controls.Add(Me.BtnInputTest)
|
||||
Me.Controls.Add(Me.Button21)
|
||||
Me.Controls.Add(Me.Label39)
|
||||
Me.Controls.Add(Me.NumericUpDown1)
|
||||
Me.Controls.Add(Me.Label38)
|
||||
Me.Controls.Add(Me.ComboBox10)
|
||||
Me.Controls.Add(Me.Label37)
|
||||
Me.Controls.Add(Me.Label36)
|
||||
Me.Controls.Add(Me.BtnOutput5)
|
||||
Me.Controls.Add(Me.BtnOutput4)
|
||||
Me.Controls.Add(Me.BtnOutput3)
|
||||
Me.Controls.Add(Me.BtnOutput2)
|
||||
Me.Controls.Add(Me.BtnOutput1)
|
||||
Me.Controls.Add(Me.Label35)
|
||||
Me.Controls.Add(Me.BtnRelay13)
|
||||
Me.Controls.Add(Me.BtnRelay12)
|
||||
Me.Controls.Add(Me.BtnRelay11)
|
||||
Me.Controls.Add(Me.Label34)
|
||||
Me.Controls.Add(Me.BtnRelay10)
|
||||
Me.Controls.Add(Me.BtnRelay9)
|
||||
Me.Controls.Add(Me.BtnRelay7)
|
||||
Me.Controls.Add(Me.BtnRelay6)
|
||||
Me.Controls.Add(Me.BtnRelay8)
|
||||
Me.Controls.Add(Me.BtnRelay5)
|
||||
Me.Controls.Add(Me.BtnRelay4)
|
||||
Me.Controls.Add(Me.BtnRelay3)
|
||||
Me.Controls.Add(Me.BtnRelay2)
|
||||
Me.Controls.Add(Me.BtnRelay1)
|
||||
Me.ForeColor = System.Drawing.SystemColors.ControlText
|
||||
Me.Name = "FrmTest_BLV_V9"
|
||||
Me.Text = "FrmTest_BLV_V9"
|
||||
CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
|
||||
Friend WithEvents BtnDimming As Button
|
||||
Friend WithEvents Label7 As Label
|
||||
Friend WithEvents LblInput13 As Label
|
||||
Friend WithEvents LblInput12 As Label
|
||||
Friend WithEvents LblInput11 As Label
|
||||
Friend WithEvents LblInput10 As Label
|
||||
Friend WithEvents LblInput9 As Label
|
||||
Friend WithEvents LblInput8 As Label
|
||||
Friend WithEvents Label48 As Label
|
||||
Friend WithEvents LblInput7 As Label
|
||||
Friend WithEvents LblInput6 As Label
|
||||
Friend WithEvents LblInput5 As Label
|
||||
Friend WithEvents LblInput4 As Label
|
||||
Friend WithEvents LblInput3 As Label
|
||||
Friend WithEvents LblInput2 As Label
|
||||
Friend WithEvents LblInput1 As Label
|
||||
Friend WithEvents Label40 As Label
|
||||
Friend WithEvents Button23 As Button
|
||||
Friend WithEvents BtnInputTest As Button
|
||||
Friend WithEvents Button21 As Button
|
||||
Friend WithEvents Label39 As Label
|
||||
Friend WithEvents NumericUpDown1 As NumericUpDown
|
||||
Friend WithEvents Label38 As Label
|
||||
Friend WithEvents ComboBox10 As ComboBox
|
||||
Friend WithEvents Label37 As Label
|
||||
Friend WithEvents Label36 As Label
|
||||
Friend WithEvents BtnOutput5 As Button
|
||||
Friend WithEvents BtnOutput4 As Button
|
||||
Friend WithEvents BtnOutput3 As Button
|
||||
Friend WithEvents BtnOutput2 As Button
|
||||
Friend WithEvents BtnOutput1 As Button
|
||||
Friend WithEvents Label35 As Label
|
||||
Friend WithEvents BtnRelay13 As Button
|
||||
Friend WithEvents BtnRelay12 As Button
|
||||
Friend WithEvents BtnRelay11 As Button
|
||||
Friend WithEvents Label34 As Label
|
||||
Friend WithEvents BtnRelay10 As Button
|
||||
Friend WithEvents BtnRelay9 As Button
|
||||
Friend WithEvents BtnRelay7 As Button
|
||||
Friend WithEvents BtnRelay6 As Button
|
||||
Friend WithEvents BtnRelay8 As Button
|
||||
Friend WithEvents BtnRelay5 As Button
|
||||
Friend WithEvents BtnRelay4 As Button
|
||||
Friend WithEvents BtnRelay3 As Button
|
||||
Friend WithEvents BtnRelay2 As Button
|
||||
Friend WithEvents BtnRelay1 As Button
|
||||
End Class
|
||||
120
BLV_Studio/Control/FrmTest_BLV-V9.resx
Normal file
120
BLV_Studio/Control/FrmTest_BLV-V9.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
392
BLV_Studio/Control/FrmTest_BLV-V9.vb
Normal file
392
BLV_Studio/Control/FrmTest_BLV-V9.vb
Normal file
@@ -0,0 +1,392 @@
|
||||
Public Class FrmTest_BLV_V9
|
||||
|
||||
Implements IFrmTest
|
||||
Public FCsConfig As FrmCSeriesConfig
|
||||
Sub New(pathme As FrmCSeriesConfig)
|
||||
|
||||
' 此调用是设计器所必需的。
|
||||
InitializeComponent()
|
||||
FCsConfig = pathme
|
||||
' 在 InitializeComponent() 调用之后添加任何初始化。
|
||||
|
||||
End Sub
|
||||
#Region "多语种信息"
|
||||
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 初始化界面控件文本
|
||||
''' </summary>
|
||||
Private Sub MultiLanguageInfo()
|
||||
'控件.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.RelayControl)
|
||||
Label7.Text = "V9" & LanguageData.StringList(MultiLanguageDAL.StringEnum.Dimming)
|
||||
BtnDimming.Text = "V9" & LanguageData.StringList(MultiLanguageDAL.StringEnum.DimmingTest)
|
||||
Label34.Text = "V9" & LanguageData.StringList(MultiLanguageDAL.StringEnum.RelayControl)
|
||||
Label36.Text = "V9" & LanguageData.StringList(MultiLanguageDAL.StringEnum.IOOutput)
|
||||
Label35.Text = "V9" & LanguageData.StringList(MultiLanguageDAL.StringEnum.IOInput)
|
||||
Label40.Text = "V9" & LanguageData.StringList(MultiLanguageDAL.StringEnum.ItinerateTest)
|
||||
Label37.Text = "V9" & LanguageData.StringList(MultiLanguageDAL.StringEnum.Music)
|
||||
BtnInputTest.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.TheInputTest)
|
||||
Label38.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.PlayFolder)
|
||||
Label39.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.PlayFileNumber)
|
||||
Button21.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.Play)
|
||||
Button23.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.ItinerateTest)
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "窗体"
|
||||
|
||||
''' <summary>
|
||||
''' 窗体加载事件
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub FrmTest_C5_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
MultiLanguageInfo()
|
||||
InitFolderItems()
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 显示窗体事件
|
||||
''' 实现接口
|
||||
''' </summary>
|
||||
''' <param name="parentControl"></param>
|
||||
Public Sub ShowForm(parentControl As Control) Implements IFrmTest.ShowForm
|
||||
FormBorderStyle = FormBorderStyle.None '无边框
|
||||
TopLevel = False
|
||||
Dock = DockStyle.Fill '填满大小
|
||||
Parent = parentControl '父容器
|
||||
|
||||
Show()
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 发送函数
|
||||
''' </summary>
|
||||
''' <param name="sendPacket"></param>
|
||||
Public Sub SendData(sendPacket() As Byte)
|
||||
FCsConfig.SendTestData(sendPacket)
|
||||
FCsConfig.AppendTipText($"TX:{ByteToString(sendPacket)}{vbCrLf}", Color.Green)
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "C12测试"
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器序号
|
||||
''' </summary>
|
||||
Private relayNumber(4) As Byte
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 发送组包
|
||||
''' </summary>
|
||||
''' <param name="cmd"></param>
|
||||
''' <param name="dataBuff"></param>
|
||||
''' <returns></returns>
|
||||
Public Function FillPacket(cmd As Byte, dataBuff() As Byte) As Byte()
|
||||
If _connectStatus = True Then
|
||||
cmd = &HD3 '网络测试Cmd
|
||||
dataBuff = FCsConfig.FillSendData(cmd, dataBuff) '网络数据
|
||||
Else
|
||||
cmd = &H7 '串口测试Cmd
|
||||
dataBuff = FillModelsSerialPortTest(cmd, dataBuff) '串口数据
|
||||
End If
|
||||
|
||||
Return dataBuff
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 1-13路继电器
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub BtnRelay13_Click(sender As Object, e As EventArgs) Handles BtnRelay9.Click, BtnRelay8.Click, BtnRelay7.Click, BtnRelay6.Click, BtnRelay5.Click, BtnRelay4.Click, BtnRelay3.Click, BtnRelay2.Click, BtnRelay13.Click, BtnRelay12.Click, BtnRelay11.Click, BtnRelay10.Click, BtnRelay1.Click
|
||||
Dim cmd As Byte
|
||||
Dim btn As Button = sender
|
||||
Dim index As Integer = sender.tag
|
||||
Dim flg As Boolean = Not GetRelayStatus(index)
|
||||
Dim param() As Byte = GetRelayNumber(index, flg)
|
||||
|
||||
Dim testState As Byte = &H2
|
||||
Dim devType As Byte = &HF1
|
||||
Dim devAddr As Byte = &H0
|
||||
Dim devCmd As Byte = &H21
|
||||
|
||||
'组包
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"C12继电器测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
|
||||
If flg Then
|
||||
btn.BackColor = Color.Green
|
||||
Else
|
||||
btn.BackColor = Color.Transparent
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器状态
|
||||
''' </summary>
|
||||
''' <param name="index"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetRelayStatus(index As Integer) As Boolean
|
||||
Dim bt As Byte = relayNumber(index \ 4) >> ((index Mod 4) * 2) And 3
|
||||
|
||||
If bt = 1 Then Return True
|
||||
Return False
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器序号
|
||||
''' </summary>
|
||||
''' <param name="number"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetRelayNumber(number As Integer, start As Boolean) As Byte()
|
||||
If start Then '置位01
|
||||
relayNumber(number \ 4) = (relayNumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (1 << ((number Mod 4) * 2))
|
||||
Else
|
||||
relayNumber(number \ 4) = (relayNumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (2 << ((number Mod 4) * 2))
|
||||
End If
|
||||
|
||||
Return relayNumber
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 1-5路输出
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub BtnOutput1_Click(sender As Object, e As EventArgs) Handles BtnOutput5.Click, BtnOutput4.Click, BtnOutput3.Click, BtnOutput2.Click, BtnOutput1.Click
|
||||
Dim cmd As Byte
|
||||
Dim btn As Button = sender
|
||||
Dim index As Integer = sender.tag
|
||||
Dim flg As Boolean = Not GetC12DOStatus(index)
|
||||
Dim param() As Byte = GetC12DONumber(index, flg)
|
||||
|
||||
'组包
|
||||
Dim testState As Byte = &H2 '测试状态
|
||||
Dim devType As Byte = &HF1 '设备类型
|
||||
Dim devAddr As Byte = &H0 '设备地址默认为0
|
||||
Dim devCmd As Byte = &H23 '测试命令字
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"C12输出测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
|
||||
If flg Then
|
||||
btn.BackColor = Color.Green
|
||||
Else
|
||||
btn.BackColor = Color.Transparent
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取C12测试输出序号
|
||||
''' </summary>
|
||||
Private C12DONumber(1) As Byte
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器状态
|
||||
''' </summary>
|
||||
''' <param name="index"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetC12DOStatus(index As Integer) As Boolean
|
||||
Dim bt As Byte = C12DONumber(index \ 4) >> ((index Mod 4) * 2) And 3
|
||||
If bt = 1 Then Return True
|
||||
Return False
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取输入序号
|
||||
''' </summary>
|
||||
''' <param name="number"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetC12DONumber(number As Integer, start As Boolean) As Byte()
|
||||
If start Then '置位01
|
||||
C12DONumber(number \ 4) = (C12DONumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (1 << ((number Mod 4) * 2))
|
||||
Else '置位10
|
||||
C12DONumber(number \ 4) = (C12DONumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (2 << ((number Mod 4) * 2))
|
||||
End If
|
||||
|
||||
Return C12DONumber
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C12输入测试
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub BtnInputTest_Click(sender As Object, e As EventArgs) Handles BtnInputTest.Click
|
||||
Dim cmd As Byte
|
||||
Dim testState As Byte = &H1 '测试状态
|
||||
Dim devType As Byte = &HF1 '设备类型
|
||||
Dim devAddr As Byte = &H0 '设备地址默认为0
|
||||
Dim devCmd As Byte = &H3 '测试时间——3分钟
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd)
|
||||
|
||||
'组包
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"C12输入测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C12音乐测试
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button21_Click(sender As Object, e As EventArgs) Handles Button21.Click
|
||||
Dim cmd As Byte
|
||||
'组包
|
||||
Dim testState As Byte = &H2 '测试状态
|
||||
Dim devType As Byte = &H15 '设备类型
|
||||
Dim devAddr As Byte = &H1 '设备地址默认为0
|
||||
Dim devCmd As Byte = &H22 '测试命令字
|
||||
Dim param() As Byte = C5MusicTest()
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"音频测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C5测试音频播放文件下
|
||||
''' </summary>
|
||||
Private _PlayFolder() As String = {$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.MusicFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SoundPromptFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepingFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.DoorbellFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.WelcomeMessageFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder1Meditate)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder2SeaWave)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder3Forest)}"}
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 初始化文件夹可选项
|
||||
''' </summary>
|
||||
Private Sub InitFolderItems()
|
||||
ComboBox10.Items.Clear()
|
||||
ComboBox10.Items.AddRange(_PlayFolder)
|
||||
If ComboBox10.Items.Count > 4 Then ComboBox10.SelectedIndex = 4
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C5音频测试
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Private Function C5MusicTest()
|
||||
Dim playFolder As Byte = GetPlayFolder(ComboBox10.Text)
|
||||
Dim playFile As Byte = $"&H{Hex(NumericUpDown1.Value)}"
|
||||
|
||||
Dim databuff As New List(Of Byte)
|
||||
databuff.Add(&H7) '播放音乐状态
|
||||
databuff.Add(playFolder) '播放音乐文件夹
|
||||
databuff.Add(playFile) '播放音乐文件
|
||||
|
||||
Return databuff.ToArray
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取播放文件夹
|
||||
''' </summary>
|
||||
''' <param name="text"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetPlayFolder(text As String) As Byte
|
||||
Dim palyFolder As Byte
|
||||
Select Case text
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.MusicFolder)}"
|
||||
palyFolder = &H0
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SoundPromptFolder)}"
|
||||
palyFolder = &H1
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepingFolder)}"
|
||||
palyFolder = &H2
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.DoorbellFolder)}"
|
||||
palyFolder = &H3
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.WelcomeMessageFolder)}"
|
||||
palyFolder = &H4
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder1Meditate)}"
|
||||
palyFolder = &H5
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder2SeaWave)}"
|
||||
palyFolder = &H6
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder3Forest)}"
|
||||
palyFolder = &H7
|
||||
End Select
|
||||
|
||||
Return palyFolder
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 巡回测试
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button23_Click(sender As Object, e As EventArgs) Handles Button23.Click
|
||||
Label48.ForeColor = Color.Black
|
||||
Label48.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Test)}..."
|
||||
Dim cmd As Byte
|
||||
'组包
|
||||
Dim data(0) As Byte
|
||||
data(0) = &H3
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"C12巡回测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C12调光
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub BtnDimming_Click(sender As Object, e As EventArgs) Handles BtnDimming.Click
|
||||
Dim frmtestc12diming As New FrmTest_C12_Dimming(FCsConfig, "V9调光")
|
||||
frmtestc12diming.ShowDialog()
|
||||
End Sub
|
||||
|
||||
Public Sub ShowForm1(parentControl As Control, ftext As String) Implements IFrmTest.ShowForm1
|
||||
Throw New NotImplementedException()
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
660
BLV_Studio/Control/FrmTest_C12.Designer.vb
generated
Normal file
660
BLV_Studio/Control/FrmTest_C12.Designer.vb
generated
Normal file
@@ -0,0 +1,660 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class FrmTest_C12
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form 重写 Dispose,以清理组件列表。
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows 窗体设计器所必需的
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||
'可以使用 Windows 窗体设计器修改它。
|
||||
'不要使用代码编辑器修改它。
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.Label48 = New System.Windows.Forms.Label()
|
||||
Me.LblInput7 = New System.Windows.Forms.Label()
|
||||
Me.LblInput6 = New System.Windows.Forms.Label()
|
||||
Me.LblInput5 = New System.Windows.Forms.Label()
|
||||
Me.LblInput4 = New System.Windows.Forms.Label()
|
||||
Me.LblInput3 = New System.Windows.Forms.Label()
|
||||
Me.LblInput2 = New System.Windows.Forms.Label()
|
||||
Me.LblInput1 = New System.Windows.Forms.Label()
|
||||
Me.Label40 = New System.Windows.Forms.Label()
|
||||
Me.Button23 = New System.Windows.Forms.Button()
|
||||
Me.BtnInputTest = New System.Windows.Forms.Button()
|
||||
Me.Button21 = New System.Windows.Forms.Button()
|
||||
Me.Label39 = New System.Windows.Forms.Label()
|
||||
Me.NumericUpDown1 = New System.Windows.Forms.NumericUpDown()
|
||||
Me.Label38 = New System.Windows.Forms.Label()
|
||||
Me.ComboBox10 = New System.Windows.Forms.ComboBox()
|
||||
Me.Label37 = New System.Windows.Forms.Label()
|
||||
Me.Label36 = New System.Windows.Forms.Label()
|
||||
Me.BtnOutput5 = New System.Windows.Forms.Button()
|
||||
Me.BtnOutput4 = New System.Windows.Forms.Button()
|
||||
Me.BtnOutput3 = New System.Windows.Forms.Button()
|
||||
Me.BtnOutput2 = New System.Windows.Forms.Button()
|
||||
Me.BtnOutput1 = New System.Windows.Forms.Button()
|
||||
Me.Label35 = New System.Windows.Forms.Label()
|
||||
Me.BtnRelay13 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay12 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay11 = New System.Windows.Forms.Button()
|
||||
Me.Label34 = New System.Windows.Forms.Label()
|
||||
Me.BtnRelay10 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay9 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay7 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay6 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay8 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay5 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay4 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay3 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay2 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay1 = New System.Windows.Forms.Button()
|
||||
Me.LblInput13 = New System.Windows.Forms.Label()
|
||||
Me.LblInput12 = New System.Windows.Forms.Label()
|
||||
Me.LblInput11 = New System.Windows.Forms.Label()
|
||||
Me.LblInput10 = New System.Windows.Forms.Label()
|
||||
Me.LblInput9 = New System.Windows.Forms.Label()
|
||||
Me.LblInput8 = New System.Windows.Forms.Label()
|
||||
Me.Label7 = New System.Windows.Forms.Label()
|
||||
Me.BtnDimming = New System.Windows.Forms.Button()
|
||||
CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'Label48
|
||||
'
|
||||
Me.Label48.AutoSize = True
|
||||
Me.Label48.Font = New System.Drawing.Font("宋体", 21.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label48.Location = New System.Drawing.Point(196, 216)
|
||||
Me.Label48.Name = "Label48"
|
||||
Me.Label48.Size = New System.Drawing.Size(125, 29)
|
||||
Me.Label48.TabIndex = 123
|
||||
Me.Label48.Text = "Test..."
|
||||
'
|
||||
'LblInput7
|
||||
'
|
||||
Me.LblInput7.AutoSize = True
|
||||
Me.LblInput7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput7.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput7.Location = New System.Drawing.Point(253, 144)
|
||||
Me.LblInput7.Name = "LblInput7"
|
||||
Me.LblInput7.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput7.TabIndex = 122
|
||||
Me.LblInput7.Text = " 7 "
|
||||
'
|
||||
'LblInput6
|
||||
'
|
||||
Me.LblInput6.AutoSize = True
|
||||
Me.LblInput6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput6.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput6.Location = New System.Drawing.Point(215, 144)
|
||||
Me.LblInput6.Name = "LblInput6"
|
||||
Me.LblInput6.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput6.TabIndex = 121
|
||||
Me.LblInput6.Text = " 6 "
|
||||
'
|
||||
'LblInput5
|
||||
'
|
||||
Me.LblInput5.AutoSize = True
|
||||
Me.LblInput5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput5.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput5.Location = New System.Drawing.Point(177, 144)
|
||||
Me.LblInput5.Name = "LblInput5"
|
||||
Me.LblInput5.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput5.TabIndex = 120
|
||||
Me.LblInput5.Text = " 5 "
|
||||
'
|
||||
'LblInput4
|
||||
'
|
||||
Me.LblInput4.AutoSize = True
|
||||
Me.LblInput4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput4.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput4.Location = New System.Drawing.Point(139, 144)
|
||||
Me.LblInput4.Name = "LblInput4"
|
||||
Me.LblInput4.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput4.TabIndex = 119
|
||||
Me.LblInput4.Text = " 4 "
|
||||
'
|
||||
'LblInput3
|
||||
'
|
||||
Me.LblInput3.AutoSize = True
|
||||
Me.LblInput3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput3.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput3.Location = New System.Drawing.Point(101, 144)
|
||||
Me.LblInput3.Name = "LblInput3"
|
||||
Me.LblInput3.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput3.TabIndex = 118
|
||||
Me.LblInput3.Text = " 3 "
|
||||
'
|
||||
'LblInput2
|
||||
'
|
||||
Me.LblInput2.AutoSize = True
|
||||
Me.LblInput2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput2.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput2.Location = New System.Drawing.Point(63, 144)
|
||||
Me.LblInput2.Name = "LblInput2"
|
||||
Me.LblInput2.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput2.TabIndex = 117
|
||||
Me.LblInput2.Text = " 2 "
|
||||
'
|
||||
'LblInput1
|
||||
'
|
||||
Me.LblInput1.AutoSize = True
|
||||
Me.LblInput1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput1.Location = New System.Drawing.Point(25, 144)
|
||||
Me.LblInput1.Name = "LblInput1"
|
||||
Me.LblInput1.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput1.TabIndex = 116
|
||||
Me.LblInput1.Text = " 1 "
|
||||
'
|
||||
'Label40
|
||||
'
|
||||
Me.Label40.AutoSize = True
|
||||
Me.Label40.Location = New System.Drawing.Point(12, 216)
|
||||
Me.Label40.Name = "Label40"
|
||||
Me.Label40.Size = New System.Drawing.Size(77, 12)
|
||||
Me.Label40.TabIndex = 115
|
||||
Me.Label40.Text = "C12 巡回测试"
|
||||
'
|
||||
'Button23
|
||||
'
|
||||
Me.Button23.Location = New System.Drawing.Point(108, 216)
|
||||
Me.Button23.Name = "Button23"
|
||||
Me.Button23.Size = New System.Drawing.Size(68, 25)
|
||||
Me.Button23.TabIndex = 114
|
||||
Me.Button23.Text = "巡回测试"
|
||||
Me.Button23.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnInputTest
|
||||
'
|
||||
Me.BtnInputTest.Location = New System.Drawing.Point(569, 140)
|
||||
Me.BtnInputTest.Name = "BtnInputTest"
|
||||
Me.BtnInputTest.Size = New System.Drawing.Size(62, 24)
|
||||
Me.BtnInputTest.TabIndex = 113
|
||||
Me.BtnInputTest.Text = "输入检测"
|
||||
Me.BtnInputTest.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button21
|
||||
'
|
||||
Me.Button21.Location = New System.Drawing.Point(567, 189)
|
||||
Me.Button21.Name = "Button21"
|
||||
Me.Button21.Size = New System.Drawing.Size(62, 21)
|
||||
Me.Button21.TabIndex = 112
|
||||
Me.Button21.Text = "播放"
|
||||
Me.Button21.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label39
|
||||
'
|
||||
Me.Label39.AutoSize = True
|
||||
Me.Label39.BackColor = System.Drawing.SystemColors.Control
|
||||
Me.Label39.Location = New System.Drawing.Point(270, 193)
|
||||
Me.Label39.Name = "Label39"
|
||||
Me.Label39.Size = New System.Drawing.Size(77, 12)
|
||||
Me.Label39.TabIndex = 111
|
||||
Me.Label39.Text = "播放文件序号"
|
||||
Me.Label39.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'NumericUpDown1
|
||||
'
|
||||
Me.NumericUpDown1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.NumericUpDown1.Location = New System.Drawing.Point(353, 189)
|
||||
Me.NumericUpDown1.Maximum = New Decimal(New Integer() {10, 0, 0, 0})
|
||||
Me.NumericUpDown1.Minimum = New Decimal(New Integer() {1, 0, 0, 0})
|
||||
Me.NumericUpDown1.Name = "NumericUpDown1"
|
||||
Me.NumericUpDown1.Size = New System.Drawing.Size(86, 23)
|
||||
Me.NumericUpDown1.TabIndex = 110
|
||||
Me.NumericUpDown1.Value = New Decimal(New Integer() {1, 0, 0, 0})
|
||||
'
|
||||
'Label38
|
||||
'
|
||||
Me.Label38.AutoSize = True
|
||||
Me.Label38.Location = New System.Drawing.Point(37, 193)
|
||||
Me.Label38.Name = "Label38"
|
||||
Me.Label38.Size = New System.Drawing.Size(65, 12)
|
||||
Me.Label38.TabIndex = 109
|
||||
Me.Label38.Text = "播放文件夹"
|
||||
Me.Label38.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'ComboBox10
|
||||
'
|
||||
Me.ComboBox10.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
|
||||
Me.ComboBox10.FormattingEnabled = True
|
||||
Me.ComboBox10.Location = New System.Drawing.Point(108, 190)
|
||||
Me.ComboBox10.Name = "ComboBox10"
|
||||
Me.ComboBox10.Size = New System.Drawing.Size(138, 20)
|
||||
Me.ComboBox10.TabIndex = 108
|
||||
'
|
||||
'Label37
|
||||
'
|
||||
Me.Label37.AutoSize = True
|
||||
Me.Label37.Location = New System.Drawing.Point(12, 170)
|
||||
Me.Label37.Name = "Label37"
|
||||
Me.Label37.Size = New System.Drawing.Size(59, 12)
|
||||
Me.Label37.TabIndex = 107
|
||||
Me.Label37.Text = "C12 MUSIC"
|
||||
'
|
||||
'Label36
|
||||
'
|
||||
Me.Label36.AutoSize = True
|
||||
Me.Label36.Location = New System.Drawing.Point(12, 84)
|
||||
Me.Label36.Name = "Label36"
|
||||
Me.Label36.Size = New System.Drawing.Size(71, 12)
|
||||
Me.Label36.TabIndex = 106
|
||||
Me.Label36.Text = "C12 IO 输出"
|
||||
'
|
||||
'BtnOutput5
|
||||
'
|
||||
Me.BtnOutput5.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnOutput5.Location = New System.Drawing.Point(181, 99)
|
||||
Me.BtnOutput5.Name = "BtnOutput5"
|
||||
Me.BtnOutput5.Size = New System.Drawing.Size(31, 26)
|
||||
Me.BtnOutput5.TabIndex = 105
|
||||
Me.BtnOutput5.Tag = "4"
|
||||
Me.BtnOutput5.Text = "5"
|
||||
Me.BtnOutput5.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnOutput4
|
||||
'
|
||||
Me.BtnOutput4.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnOutput4.Location = New System.Drawing.Point(142, 99)
|
||||
Me.BtnOutput4.Name = "BtnOutput4"
|
||||
Me.BtnOutput4.Size = New System.Drawing.Size(31, 26)
|
||||
Me.BtnOutput4.TabIndex = 104
|
||||
Me.BtnOutput4.Tag = "3"
|
||||
Me.BtnOutput4.Text = "4"
|
||||
Me.BtnOutput4.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnOutput3
|
||||
'
|
||||
Me.BtnOutput3.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnOutput3.Location = New System.Drawing.Point(103, 99)
|
||||
Me.BtnOutput3.Name = "BtnOutput3"
|
||||
Me.BtnOutput3.Size = New System.Drawing.Size(31, 26)
|
||||
Me.BtnOutput3.TabIndex = 103
|
||||
Me.BtnOutput3.Tag = "2"
|
||||
Me.BtnOutput3.Text = "3"
|
||||
Me.BtnOutput3.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnOutput2
|
||||
'
|
||||
Me.BtnOutput2.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnOutput2.Location = New System.Drawing.Point(64, 99)
|
||||
Me.BtnOutput2.Name = "BtnOutput2"
|
||||
Me.BtnOutput2.Size = New System.Drawing.Size(31, 26)
|
||||
Me.BtnOutput2.TabIndex = 102
|
||||
Me.BtnOutput2.Tag = "1"
|
||||
Me.BtnOutput2.Text = "2"
|
||||
Me.BtnOutput2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnOutput1
|
||||
'
|
||||
Me.BtnOutput1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnOutput1.Location = New System.Drawing.Point(25, 99)
|
||||
Me.BtnOutput1.Name = "BtnOutput1"
|
||||
Me.BtnOutput1.Size = New System.Drawing.Size(31, 26)
|
||||
Me.BtnOutput1.TabIndex = 101
|
||||
Me.BtnOutput1.Tag = "0"
|
||||
Me.BtnOutput1.Text = "1"
|
||||
Me.BtnOutput1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label35
|
||||
'
|
||||
Me.Label35.AutoSize = True
|
||||
Me.Label35.Location = New System.Drawing.Point(12, 128)
|
||||
Me.Label35.Name = "Label35"
|
||||
Me.Label35.Size = New System.Drawing.Size(71, 12)
|
||||
Me.Label35.TabIndex = 100
|
||||
Me.Label35.Text = "C12 IO 输入"
|
||||
'
|
||||
'BtnRelay13
|
||||
'
|
||||
Me.BtnRelay13.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay13.Location = New System.Drawing.Point(493, 54)
|
||||
Me.BtnRelay13.Name = "BtnRelay13"
|
||||
Me.BtnRelay13.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay13.TabIndex = 99
|
||||
Me.BtnRelay13.Tag = "12"
|
||||
Me.BtnRelay13.Text = "13"
|
||||
Me.BtnRelay13.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay12
|
||||
'
|
||||
Me.BtnRelay12.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay12.Location = New System.Drawing.Point(454, 54)
|
||||
Me.BtnRelay12.Name = "BtnRelay12"
|
||||
Me.BtnRelay12.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay12.TabIndex = 97
|
||||
Me.BtnRelay12.Tag = "11"
|
||||
Me.BtnRelay12.Text = "12"
|
||||
Me.BtnRelay12.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay11
|
||||
'
|
||||
Me.BtnRelay11.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay11.Location = New System.Drawing.Point(415, 54)
|
||||
Me.BtnRelay11.Name = "BtnRelay11"
|
||||
Me.BtnRelay11.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay11.TabIndex = 98
|
||||
Me.BtnRelay11.Tag = "10"
|
||||
Me.BtnRelay11.Text = "11"
|
||||
Me.BtnRelay11.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label34
|
||||
'
|
||||
Me.Label34.AutoSize = True
|
||||
Me.Label34.Location = New System.Drawing.Point(12, 39)
|
||||
Me.Label34.Name = "Label34"
|
||||
Me.Label34.Size = New System.Drawing.Size(107, 12)
|
||||
Me.Label34.TabIndex = 96
|
||||
Me.Label34.Text = "C12 IO 继电器控制"
|
||||
'
|
||||
'BtnRelay10
|
||||
'
|
||||
Me.BtnRelay10.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay10.Location = New System.Drawing.Point(376, 54)
|
||||
Me.BtnRelay10.Name = "BtnRelay10"
|
||||
Me.BtnRelay10.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay10.TabIndex = 95
|
||||
Me.BtnRelay10.Tag = "9"
|
||||
Me.BtnRelay10.Text = "10"
|
||||
Me.BtnRelay10.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay9
|
||||
'
|
||||
Me.BtnRelay9.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay9.Location = New System.Drawing.Point(337, 54)
|
||||
Me.BtnRelay9.Name = "BtnRelay9"
|
||||
Me.BtnRelay9.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay9.TabIndex = 94
|
||||
Me.BtnRelay9.Tag = "8"
|
||||
Me.BtnRelay9.Text = "9"
|
||||
Me.BtnRelay9.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay7
|
||||
'
|
||||
Me.BtnRelay7.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay7.Location = New System.Drawing.Point(259, 54)
|
||||
Me.BtnRelay7.Name = "BtnRelay7"
|
||||
Me.BtnRelay7.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay7.TabIndex = 93
|
||||
Me.BtnRelay7.Tag = "6"
|
||||
Me.BtnRelay7.Text = "7"
|
||||
Me.BtnRelay7.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay6
|
||||
'
|
||||
Me.BtnRelay6.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay6.Location = New System.Drawing.Point(220, 54)
|
||||
Me.BtnRelay6.Name = "BtnRelay6"
|
||||
Me.BtnRelay6.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay6.TabIndex = 92
|
||||
Me.BtnRelay6.Tag = "5"
|
||||
Me.BtnRelay6.Text = "6"
|
||||
Me.BtnRelay6.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay8
|
||||
'
|
||||
Me.BtnRelay8.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay8.Location = New System.Drawing.Point(298, 54)
|
||||
Me.BtnRelay8.Name = "BtnRelay8"
|
||||
Me.BtnRelay8.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay8.TabIndex = 91
|
||||
Me.BtnRelay8.Tag = "7"
|
||||
Me.BtnRelay8.Text = "8"
|
||||
Me.BtnRelay8.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay5
|
||||
'
|
||||
Me.BtnRelay5.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay5.Location = New System.Drawing.Point(181, 54)
|
||||
Me.BtnRelay5.Name = "BtnRelay5"
|
||||
Me.BtnRelay5.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay5.TabIndex = 90
|
||||
Me.BtnRelay5.Tag = "4"
|
||||
Me.BtnRelay5.Text = "5"
|
||||
Me.BtnRelay5.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay4
|
||||
'
|
||||
Me.BtnRelay4.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay4.Location = New System.Drawing.Point(142, 54)
|
||||
Me.BtnRelay4.Name = "BtnRelay4"
|
||||
Me.BtnRelay4.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay4.TabIndex = 89
|
||||
Me.BtnRelay4.Tag = "3"
|
||||
Me.BtnRelay4.Text = "4"
|
||||
Me.BtnRelay4.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay3
|
||||
'
|
||||
Me.BtnRelay3.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay3.Location = New System.Drawing.Point(103, 54)
|
||||
Me.BtnRelay3.Name = "BtnRelay3"
|
||||
Me.BtnRelay3.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay3.TabIndex = 88
|
||||
Me.BtnRelay3.Tag = "2"
|
||||
Me.BtnRelay3.Text = "3"
|
||||
Me.BtnRelay3.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay2
|
||||
'
|
||||
Me.BtnRelay2.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay2.Location = New System.Drawing.Point(64, 54)
|
||||
Me.BtnRelay2.Name = "BtnRelay2"
|
||||
Me.BtnRelay2.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay2.TabIndex = 87
|
||||
Me.BtnRelay2.Tag = "1"
|
||||
Me.BtnRelay2.Text = "2"
|
||||
Me.BtnRelay2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay1
|
||||
'
|
||||
Me.BtnRelay1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay1.Location = New System.Drawing.Point(25, 54)
|
||||
Me.BtnRelay1.Name = "BtnRelay1"
|
||||
Me.BtnRelay1.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay1.TabIndex = 86
|
||||
Me.BtnRelay1.Tag = "0"
|
||||
Me.BtnRelay1.Text = "1"
|
||||
Me.BtnRelay1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'LblInput13
|
||||
'
|
||||
Me.LblInput13.AutoSize = True
|
||||
Me.LblInput13.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput13.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput13.Location = New System.Drawing.Point(502, 144)
|
||||
Me.LblInput13.Name = "LblInput13"
|
||||
Me.LblInput13.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput13.TabIndex = 132
|
||||
Me.LblInput13.Text = " 13 "
|
||||
'
|
||||
'LblInput12
|
||||
'
|
||||
Me.LblInput12.AutoSize = True
|
||||
Me.LblInput12.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput12.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput12.Location = New System.Drawing.Point(457, 144)
|
||||
Me.LblInput12.Name = "LblInput12"
|
||||
Me.LblInput12.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput12.TabIndex = 131
|
||||
Me.LblInput12.Text = " 12 "
|
||||
'
|
||||
'LblInput11
|
||||
'
|
||||
Me.LblInput11.AutoSize = True
|
||||
Me.LblInput11.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput11.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput11.Location = New System.Drawing.Point(412, 144)
|
||||
Me.LblInput11.Name = "LblInput11"
|
||||
Me.LblInput11.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput11.TabIndex = 130
|
||||
Me.LblInput11.Text = " 11 "
|
||||
'
|
||||
'LblInput10
|
||||
'
|
||||
Me.LblInput10.AutoSize = True
|
||||
Me.LblInput10.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput10.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput10.Location = New System.Drawing.Point(367, 144)
|
||||
Me.LblInput10.Name = "LblInput10"
|
||||
Me.LblInput10.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput10.TabIndex = 129
|
||||
Me.LblInput10.Text = " 10 "
|
||||
'
|
||||
'LblInput9
|
||||
'
|
||||
Me.LblInput9.AutoSize = True
|
||||
Me.LblInput9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput9.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput9.Location = New System.Drawing.Point(329, 144)
|
||||
Me.LblInput9.Name = "LblInput9"
|
||||
Me.LblInput9.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput9.TabIndex = 128
|
||||
Me.LblInput9.Text = " 9 "
|
||||
'
|
||||
'LblInput8
|
||||
'
|
||||
Me.LblInput8.AutoSize = True
|
||||
Me.LblInput8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput8.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput8.Location = New System.Drawing.Point(291, 144)
|
||||
Me.LblInput8.Name = "LblInput8"
|
||||
Me.LblInput8.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput8.TabIndex = 127
|
||||
Me.LblInput8.Text = " 8 "
|
||||
'
|
||||
'Label7
|
||||
'
|
||||
Me.Label7.AutoSize = True
|
||||
Me.Label7.Location = New System.Drawing.Point(12, 9)
|
||||
Me.Label7.Name = "Label7"
|
||||
Me.Label7.Size = New System.Drawing.Size(53, 12)
|
||||
Me.Label7.TabIndex = 133
|
||||
Me.Label7.Text = "C12 调光"
|
||||
'
|
||||
'BtnDimming
|
||||
'
|
||||
Me.BtnDimming.Location = New System.Drawing.Point(91, 9)
|
||||
Me.BtnDimming.Name = "BtnDimming"
|
||||
Me.BtnDimming.Size = New System.Drawing.Size(62, 24)
|
||||
Me.BtnDimming.TabIndex = 134
|
||||
Me.BtnDimming.Text = "调光测试"
|
||||
Me.BtnDimming.UseVisualStyleBackColor = True
|
||||
'
|
||||
'FrmTest_C12
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(658, 256)
|
||||
Me.Controls.Add(Me.BtnDimming)
|
||||
Me.Controls.Add(Me.Label7)
|
||||
Me.Controls.Add(Me.LblInput13)
|
||||
Me.Controls.Add(Me.LblInput12)
|
||||
Me.Controls.Add(Me.LblInput11)
|
||||
Me.Controls.Add(Me.LblInput10)
|
||||
Me.Controls.Add(Me.LblInput9)
|
||||
Me.Controls.Add(Me.LblInput8)
|
||||
Me.Controls.Add(Me.Label48)
|
||||
Me.Controls.Add(Me.LblInput7)
|
||||
Me.Controls.Add(Me.LblInput6)
|
||||
Me.Controls.Add(Me.LblInput5)
|
||||
Me.Controls.Add(Me.LblInput4)
|
||||
Me.Controls.Add(Me.LblInput3)
|
||||
Me.Controls.Add(Me.LblInput2)
|
||||
Me.Controls.Add(Me.LblInput1)
|
||||
Me.Controls.Add(Me.Label40)
|
||||
Me.Controls.Add(Me.Button23)
|
||||
Me.Controls.Add(Me.BtnInputTest)
|
||||
Me.Controls.Add(Me.Button21)
|
||||
Me.Controls.Add(Me.Label39)
|
||||
Me.Controls.Add(Me.NumericUpDown1)
|
||||
Me.Controls.Add(Me.Label38)
|
||||
Me.Controls.Add(Me.ComboBox10)
|
||||
Me.Controls.Add(Me.Label37)
|
||||
Me.Controls.Add(Me.Label36)
|
||||
Me.Controls.Add(Me.BtnOutput5)
|
||||
Me.Controls.Add(Me.BtnOutput4)
|
||||
Me.Controls.Add(Me.BtnOutput3)
|
||||
Me.Controls.Add(Me.BtnOutput2)
|
||||
Me.Controls.Add(Me.BtnOutput1)
|
||||
Me.Controls.Add(Me.Label35)
|
||||
Me.Controls.Add(Me.BtnRelay13)
|
||||
Me.Controls.Add(Me.BtnRelay12)
|
||||
Me.Controls.Add(Me.BtnRelay11)
|
||||
Me.Controls.Add(Me.Label34)
|
||||
Me.Controls.Add(Me.BtnRelay10)
|
||||
Me.Controls.Add(Me.BtnRelay9)
|
||||
Me.Controls.Add(Me.BtnRelay7)
|
||||
Me.Controls.Add(Me.BtnRelay6)
|
||||
Me.Controls.Add(Me.BtnRelay8)
|
||||
Me.Controls.Add(Me.BtnRelay5)
|
||||
Me.Controls.Add(Me.BtnRelay4)
|
||||
Me.Controls.Add(Me.BtnRelay3)
|
||||
Me.Controls.Add(Me.BtnRelay2)
|
||||
Me.Controls.Add(Me.BtnRelay1)
|
||||
Me.Name = "FrmTest_C12"
|
||||
Me.Text = "FrmTest_C12"
|
||||
CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
Friend WithEvents Label48 As Label
|
||||
Friend WithEvents LblInput7 As Label
|
||||
Friend WithEvents LblInput6 As Label
|
||||
Friend WithEvents LblInput5 As Label
|
||||
Friend WithEvents LblInput4 As Label
|
||||
Friend WithEvents LblInput3 As Label
|
||||
Friend WithEvents LblInput2 As Label
|
||||
Friend WithEvents LblInput1 As Label
|
||||
Friend WithEvents Label40 As Label
|
||||
Friend WithEvents Button23 As Button
|
||||
Friend WithEvents BtnInputTest As Button
|
||||
Friend WithEvents Button21 As Button
|
||||
Friend WithEvents Label39 As Label
|
||||
Friend WithEvents NumericUpDown1 As NumericUpDown
|
||||
Friend WithEvents Label38 As Label
|
||||
Friend WithEvents ComboBox10 As ComboBox
|
||||
Friend WithEvents Label37 As Label
|
||||
Friend WithEvents Label36 As Label
|
||||
Friend WithEvents BtnOutput5 As Button
|
||||
Friend WithEvents BtnOutput4 As Button
|
||||
Friend WithEvents BtnOutput3 As Button
|
||||
Friend WithEvents BtnOutput2 As Button
|
||||
Friend WithEvents BtnOutput1 As Button
|
||||
Friend WithEvents Label35 As Label
|
||||
Friend WithEvents BtnRelay13 As Button
|
||||
Friend WithEvents BtnRelay12 As Button
|
||||
Friend WithEvents BtnRelay11 As Button
|
||||
Friend WithEvents Label34 As Label
|
||||
Friend WithEvents BtnRelay10 As Button
|
||||
Friend WithEvents BtnRelay9 As Button
|
||||
Friend WithEvents BtnRelay7 As Button
|
||||
Friend WithEvents BtnRelay6 As Button
|
||||
Friend WithEvents BtnRelay8 As Button
|
||||
Friend WithEvents BtnRelay5 As Button
|
||||
Friend WithEvents BtnRelay4 As Button
|
||||
Friend WithEvents BtnRelay3 As Button
|
||||
Friend WithEvents BtnRelay2 As Button
|
||||
Friend WithEvents BtnRelay1 As Button
|
||||
Friend WithEvents LblInput13 As Label
|
||||
Friend WithEvents LblInput12 As Label
|
||||
Friend WithEvents LblInput11 As Label
|
||||
Friend WithEvents LblInput10 As Label
|
||||
Friend WithEvents LblInput9 As Label
|
||||
Friend WithEvents LblInput8 As Label
|
||||
Friend WithEvents Label7 As Label
|
||||
Friend WithEvents BtnDimming As Button
|
||||
End Class
|
||||
120
BLV_Studio/Control/FrmTest_C12.resx
Normal file
120
BLV_Studio/Control/FrmTest_C12.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
390
BLV_Studio/Control/FrmTest_C12.vb
Normal file
390
BLV_Studio/Control/FrmTest_C12.vb
Normal file
@@ -0,0 +1,390 @@
|
||||
Public Class FrmTest_C12
|
||||
Implements IFrmTest
|
||||
Public FCsConfig As FrmCSeriesConfig
|
||||
Sub New(pathme As FrmCSeriesConfig)
|
||||
|
||||
' 此调用是设计器所必需的。
|
||||
InitializeComponent()
|
||||
FCsConfig = pathme
|
||||
' 在 InitializeComponent() 调用之后添加任何初始化。
|
||||
|
||||
End Sub
|
||||
#Region "多语种信息"
|
||||
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 初始化界面控件文本
|
||||
''' </summary>
|
||||
Private Sub MultiLanguageInfo()
|
||||
'控件.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.RelayControl)
|
||||
Label7.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.Dimming)
|
||||
BtnDimming.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.DimmingTest)
|
||||
Label34.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.RelayControl)
|
||||
Label36.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.IOOutput)
|
||||
Label35.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.IOInput)
|
||||
Label40.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.ItinerateTest)
|
||||
Label37.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.Music)
|
||||
BtnInputTest.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.TheInputTest)
|
||||
Label38.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.PlayFolder)
|
||||
Label39.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.PlayFileNumber)
|
||||
Button21.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.Play)
|
||||
Button23.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.ItinerateTest)
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "窗体"
|
||||
|
||||
''' <summary>
|
||||
''' 窗体加载事件
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub FrmTest_C5_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
MultiLanguageInfo()
|
||||
InitFolderItems()
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 显示窗体事件
|
||||
''' 实现接口
|
||||
''' </summary>
|
||||
''' <param name="parentControl"></param>
|
||||
Public Sub ShowForm(parentControl As Control) Implements IFrmTest.ShowForm
|
||||
FormBorderStyle = FormBorderStyle.None '无边框
|
||||
TopLevel = False
|
||||
Dock = DockStyle.Fill '填满大小
|
||||
Parent = parentControl '父容器
|
||||
|
||||
Show()
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 发送函数
|
||||
''' </summary>
|
||||
''' <param name="sendPacket"></param>
|
||||
Public Sub SendData(sendPacket() As Byte)
|
||||
FCsConfig.SendTestData(sendPacket)
|
||||
FCsConfig.AppendTipText($"TX:{ByteToString(sendPacket)}{vbCrLf}", Color.Green)
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "C12测试"
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器序号
|
||||
''' </summary>
|
||||
Private relayNumber(4) As Byte
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 发送组包
|
||||
''' </summary>
|
||||
''' <param name="cmd"></param>
|
||||
''' <param name="dataBuff"></param>
|
||||
''' <returns></returns>
|
||||
Public Function FillPacket(cmd As Byte, dataBuff() As Byte) As Byte()
|
||||
If _connectStatus = True Then
|
||||
cmd = &HD3 '网络测试Cmd
|
||||
dataBuff = FCsConfig.FillSendData(cmd, dataBuff) '网络数据
|
||||
Else
|
||||
cmd = &H7 '串口测试Cmd
|
||||
dataBuff = FillModelsSerialPortTest(cmd, dataBuff) '串口数据
|
||||
End If
|
||||
|
||||
Return dataBuff
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 1-13路继电器
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub BtnRelay13_Click(sender As Object, e As EventArgs) Handles BtnRelay9.Click, BtnRelay8.Click, BtnRelay7.Click, BtnRelay6.Click, BtnRelay5.Click, BtnRelay4.Click, BtnRelay3.Click, BtnRelay2.Click, BtnRelay13.Click, BtnRelay12.Click, BtnRelay11.Click, BtnRelay10.Click, BtnRelay1.Click
|
||||
Dim cmd As Byte
|
||||
Dim btn As Button = sender
|
||||
Dim index As Integer = sender.tag
|
||||
Dim flg As Boolean = Not GetRelayStatus(index)
|
||||
Dim param() As Byte = GetRelayNumber(index, flg)
|
||||
|
||||
Dim testState As Byte = &H2
|
||||
Dim devType As Byte = &HF1
|
||||
Dim devAddr As Byte = &H0
|
||||
Dim devCmd As Byte = &H21
|
||||
|
||||
'组包
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"C12继电器测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
|
||||
If flg Then
|
||||
btn.BackColor = Color.Green
|
||||
Else
|
||||
btn.BackColor = Color.Transparent
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器状态
|
||||
''' </summary>
|
||||
''' <param name="index"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetRelayStatus(index As Integer) As Boolean
|
||||
Dim bt As Byte = relayNumber(index \ 4) >> ((index Mod 4) * 2) And 3
|
||||
|
||||
If bt = 1 Then Return True
|
||||
Return False
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器序号
|
||||
''' </summary>
|
||||
''' <param name="number"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetRelayNumber(number As Integer, start As Boolean) As Byte()
|
||||
If start Then '置位01
|
||||
relayNumber(number \ 4) = (relayNumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (1 << ((number Mod 4) * 2))
|
||||
Else
|
||||
relayNumber(number \ 4) = (relayNumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (2 << ((number Mod 4) * 2))
|
||||
End If
|
||||
|
||||
Return relayNumber
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 1-5路输出
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub BtnOutput1_Click(sender As Object, e As EventArgs) Handles BtnOutput5.Click, BtnOutput4.Click, BtnOutput3.Click, BtnOutput2.Click, BtnOutput1.Click
|
||||
Dim cmd As Byte
|
||||
Dim btn As Button = sender
|
||||
Dim index As Integer = sender.tag
|
||||
Dim flg As Boolean = Not GetC12DOStatus(index)
|
||||
Dim param() As Byte = GetC12DONumber(index, flg)
|
||||
|
||||
'组包
|
||||
Dim testState As Byte = &H2 '测试状态
|
||||
Dim devType As Byte = &HF1 '设备类型
|
||||
Dim devAddr As Byte = &H0 '设备地址默认为0
|
||||
Dim devCmd As Byte = &H23 '测试命令字
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"C12输出测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
|
||||
If flg Then
|
||||
btn.BackColor = Color.Green
|
||||
Else
|
||||
btn.BackColor = Color.Transparent
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取C12测试输出序号
|
||||
''' </summary>
|
||||
Private C12DONumber(1) As Byte
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器状态
|
||||
''' </summary>
|
||||
''' <param name="index"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetC12DOStatus(index As Integer) As Boolean
|
||||
Dim bt As Byte = C12DONumber(index \ 4) >> ((index Mod 4) * 2) And 3
|
||||
If bt = 1 Then Return True
|
||||
Return False
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取输入序号
|
||||
''' </summary>
|
||||
''' <param name="number"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetC12DONumber(number As Integer, start As Boolean) As Byte()
|
||||
If start Then '置位01
|
||||
C12DONumber(number \ 4) = (C12DONumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (1 << ((number Mod 4) * 2))
|
||||
Else '置位10
|
||||
C12DONumber(number \ 4) = (C12DONumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (2 << ((number Mod 4) * 2))
|
||||
End If
|
||||
|
||||
Return C12DONumber
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C12输入测试
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub BtnInputTest_Click(sender As Object, e As EventArgs) Handles BtnInputTest.Click
|
||||
Dim cmd As Byte
|
||||
Dim testState As Byte = &H1 '测试状态
|
||||
Dim devType As Byte = &HF1 '设备类型
|
||||
Dim devAddr As Byte = &H0 '设备地址默认为0
|
||||
Dim devCmd As Byte = &H3 '测试时间——3分钟
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd)
|
||||
|
||||
'组包
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"C12输入测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C12音乐测试
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button21_Click(sender As Object, e As EventArgs) Handles Button21.Click
|
||||
Dim cmd As Byte
|
||||
'组包
|
||||
Dim testState As Byte = &H2 '测试状态
|
||||
Dim devType As Byte = &H15 '设备类型
|
||||
Dim devAddr As Byte = &H1 '设备地址默认为0
|
||||
Dim devCmd As Byte = &H22 '测试命令字
|
||||
Dim param() As Byte = C5MusicTest()
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"音频测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C5测试音频播放文件下
|
||||
''' </summary>
|
||||
Private _PlayFolder() As String = {$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.MusicFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SoundPromptFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepingFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.DoorbellFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.WelcomeMessageFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder1Meditate)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder2SeaWave)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder3Forest)}"}
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 初始化文件夹可选项
|
||||
''' </summary>
|
||||
Private Sub InitFolderItems()
|
||||
ComboBox10.Items.Clear()
|
||||
ComboBox10.Items.AddRange(_PlayFolder)
|
||||
If ComboBox10.Items.Count > 4 Then ComboBox10.SelectedIndex = 4
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C5音频测试
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Private Function C5MusicTest()
|
||||
Dim playFolder As Byte = GetPlayFolder(ComboBox10.Text)
|
||||
Dim playFile As Byte = $"&H{Hex(NumericUpDown1.Value)}"
|
||||
|
||||
Dim databuff As New List(Of Byte)
|
||||
databuff.Add(&H7) '播放音乐状态
|
||||
databuff.Add(playFolder) '播放音乐文件夹
|
||||
databuff.Add(playFile) '播放音乐文件
|
||||
|
||||
Return databuff.ToArray
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取播放文件夹
|
||||
''' </summary>
|
||||
''' <param name="text"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetPlayFolder(text As String) As Byte
|
||||
Dim palyFolder As Byte
|
||||
Select Case text
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.MusicFolder)}"
|
||||
palyFolder = &H0
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SoundPromptFolder)}"
|
||||
palyFolder = &H1
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepingFolder)}"
|
||||
palyFolder = &H2
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.DoorbellFolder)}"
|
||||
palyFolder = &H3
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.WelcomeMessageFolder)}"
|
||||
palyFolder = &H4
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder1Meditate)}"
|
||||
palyFolder = &H5
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder2SeaWave)}"
|
||||
palyFolder = &H6
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder3Forest)}"
|
||||
palyFolder = &H7
|
||||
End Select
|
||||
|
||||
Return palyFolder
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 巡回测试
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button23_Click(sender As Object, e As EventArgs) Handles Button23.Click
|
||||
Label48.ForeColor = Color.Black
|
||||
Label48.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Test)}..."
|
||||
Dim cmd As Byte
|
||||
'组包
|
||||
Dim data(0) As Byte
|
||||
data(0) = &H3
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"C12巡回测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C12调光
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub BtnDimming_Click(sender As Object, e As EventArgs) Handles BtnDimming.Click
|
||||
Dim frmtestc12diming As New FrmTest_C12_Dimming(FCsConfig)
|
||||
|
||||
frmtestc12diming.ShowDialog()
|
||||
|
||||
End Sub
|
||||
|
||||
Public Sub ShowForm1(parentControl As Control, ftext As String) Implements IFrmTest.ShowForm1
|
||||
Throw New NotImplementedException()
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
93
BLV_Studio/Control/FrmTest_C12_Dimming.Designer.vb
generated
Normal file
93
BLV_Studio/Control/FrmTest_C12_Dimming.Designer.vb
generated
Normal file
@@ -0,0 +1,93 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
|
||||
Partial Class FrmTest_C12_Dimming
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form 重写 Dispose,以清理组件列表。
|
||||
<System.Diagnostics.DebuggerNonUserCode()>
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows 窗体设计器所必需的
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||
'可以使用 Windows 窗体设计器修改它。
|
||||
'不要使用代码编辑器修改它。
|
||||
<System.Diagnostics.DebuggerStepThrough()>
|
||||
Private Sub InitializeComponent()
|
||||
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
|
||||
Me.Label16 = New System.Windows.Forms.Label()
|
||||
Me.Label15 = New System.Windows.Forms.Label()
|
||||
Me.Label14 = New System.Windows.Forms.Label()
|
||||
Me.GroupBox1.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'GroupBox1
|
||||
'
|
||||
Me.GroupBox1.Controls.Add(Me.Label16)
|
||||
Me.GroupBox1.Controls.Add(Me.Label15)
|
||||
Me.GroupBox1.Controls.Add(Me.Label14)
|
||||
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(430, 427)
|
||||
Me.GroupBox1.TabIndex = 4
|
||||
Me.GroupBox1.TabStop = False
|
||||
Me.GroupBox1.Text = "Dimming"
|
||||
'
|
||||
'Label16
|
||||
'
|
||||
Me.Label16.AutoSize = True
|
||||
Me.Label16.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label16.Location = New System.Drawing.Point(310, 35)
|
||||
Me.Label16.Name = "Label16"
|
||||
Me.Label16.Size = New System.Drawing.Size(31, 14)
|
||||
Me.Label16.TabIndex = 32
|
||||
Me.Label16.Text = "Val"
|
||||
'
|
||||
'Label15
|
||||
'
|
||||
Me.Label15.AutoSize = True
|
||||
Me.Label15.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label15.Location = New System.Drawing.Point(179, 35)
|
||||
Me.Label15.Name = "Label15"
|
||||
Me.Label15.Size = New System.Drawing.Size(31, 14)
|
||||
Me.Label15.TabIndex = 31
|
||||
Me.Label15.Text = "Val"
|
||||
'
|
||||
'Label14
|
||||
'
|
||||
Me.Label14.AutoSize = True
|
||||
Me.Label14.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label14.Location = New System.Drawing.Point(35, 35)
|
||||
Me.Label14.Name = "Label14"
|
||||
Me.Label14.Size = New System.Drawing.Size(23, 14)
|
||||
Me.Label14.TabIndex = 30
|
||||
Me.Label14.Text = "SN"
|
||||
'
|
||||
'FrmTest_C12_Dimming
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(430, 427)
|
||||
Me.Controls.Add(Me.GroupBox1)
|
||||
Me.Name = "FrmTest_C12_Dimming"
|
||||
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
|
||||
Me.Text = "C12调光"
|
||||
Me.GroupBox1.ResumeLayout(False)
|
||||
Me.GroupBox1.PerformLayout()
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
Friend WithEvents GroupBox1 As GroupBox
|
||||
Friend WithEvents Label16 As Label
|
||||
Friend WithEvents Label15 As Label
|
||||
Friend WithEvents Label14 As Label
|
||||
End Class
|
||||
135
BLV_Studio/Control/FrmTest_C12_Dimming.resx
Normal file
135
BLV_Studio/Control/FrmTest_C12_Dimming.resx
Normal file
@@ -0,0 +1,135 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="GroupBox1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label16.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label15.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label14.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
||||
231
BLV_Studio/Control/FrmTest_C12_Dimming.vb
Normal file
231
BLV_Studio/Control/FrmTest_C12_Dimming.vb
Normal file
@@ -0,0 +1,231 @@
|
||||
Imports System.ComponentModel
|
||||
|
||||
Public Class FrmTest_C12_Dimming
|
||||
|
||||
Public FCsConfig As FrmCSeriesConfig
|
||||
Sub New(pathme As FrmCSeriesConfig, Optional frtile As String = "C12调光")
|
||||
Text = frtile
|
||||
' 此调用是设计器所必需的。
|
||||
InitializeComponent()
|
||||
FCsConfig = pathme
|
||||
' 在 InitializeComponent() 调用之后添加任何初始化。
|
||||
Text = frtile
|
||||
End Sub
|
||||
#Region "多语种信息"
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 初始化界面控件文本
|
||||
''' </summary>
|
||||
Private Sub MultiLanguageInfo()
|
||||
'控件.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.RelayControl)
|
||||
Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.Dimming)
|
||||
GroupBox1.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.Dimming)
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "窗体"
|
||||
|
||||
''' <summary>
|
||||
''' 窗体加载
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub FrmTest_C12_Dimming_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
InitDimmingLoadInfo()
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 发送函数
|
||||
''' </summary>
|
||||
''' <param name="sendPacket"></param>
|
||||
Public Sub SendData(sendPacket() As Byte)
|
||||
FCsConfig.SendTestData(sendPacket)
|
||||
FCsConfig.AppendTipText($"TX:{ByteToString(sendPacket)}{vbCrLf}", Color.Green)
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "C12调光"
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 调光
|
||||
''' </summary>
|
||||
Private _Dimming As New Dictionary(Of Integer, C12Test_DimmingBLL)
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 初始化调光信息
|
||||
''' </summary>
|
||||
Private Sub InitDimmingLoadInfo()
|
||||
If _Dimming.Count > 0 Then Return
|
||||
'_Dimming.Clear()
|
||||
Dim number As Integer = 12
|
||||
If Text.Equals("C12调光") Then
|
||||
number = 12
|
||||
Else
|
||||
number = 4
|
||||
End If
|
||||
For index = 0 To number
|
||||
Dim a As New Label
|
||||
a.Name = "LED_Tip" & index
|
||||
a.Parent = GroupBox1
|
||||
a.Size = New Size(30, 12)
|
||||
a.Location = New Point(36, 60 + index * (a.Height + 12))
|
||||
a.Font = New Font("Arial", 9, FontStyle.Bold)
|
||||
a.ForeColor = Color.Green
|
||||
If index = 0 Then
|
||||
a.Text = $"ALL"
|
||||
a.Visible = False
|
||||
Else
|
||||
a.Text = $"L{index}"
|
||||
End If
|
||||
|
||||
a.Tag = index
|
||||
'a.BringToFront()
|
||||
|
||||
Dim b As New HScrollBar
|
||||
If index = 0 Then
|
||||
b.Visible = False
|
||||
End If
|
||||
b.Name = "LED_Bar" & index
|
||||
b.Parent = GroupBox1
|
||||
b.Size = New Size(215, 20)
|
||||
b.Location = New Point(75, 56 + index * (a.Height + 12))
|
||||
b.Tag = index
|
||||
b.Maximum = 109
|
||||
AddHandler b.ValueChanged, AddressOf HScrollBar1_ValueChanged
|
||||
|
||||
Dim c As New NumericUpDown
|
||||
If index = 0 Then
|
||||
c.Visible = False
|
||||
End If
|
||||
c.Name = "LED_Num" & index
|
||||
c.Parent = GroupBox1
|
||||
c.Size = New Size(45, 21)
|
||||
c.Location = New Point(304, 58 + index * (a.Height + 12))
|
||||
c.Tag = index
|
||||
AddHandler c.ValueChanged, AddressOf NumericUpDown1_ValueChanged
|
||||
|
||||
_Dimming.Add(index, New C12Test_DimmingBLL With {.Dimming = a, .DimmingVal = b, .DimmingInputVal = c})
|
||||
Next
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub NumericUpDown1_ValueChanged(sender As Object, e As EventArgs)
|
||||
Dim hsb As NumericUpDown = sender
|
||||
Dim index As Integer = sender.tag
|
||||
|
||||
If _Dimming.ContainsKey(index) = False Then Return
|
||||
_Dimming(index).DimmingVal.Value = hsb.Value
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub HScrollBar1_ValueChanged(sender As Object, e As EventArgs)
|
||||
Dim hsb As HScrollBar = sender
|
||||
Dim index As Integer = sender.tag
|
||||
|
||||
If _Dimming.ContainsKey(index) = False Then Return
|
||||
_Dimming(index).DimmingInputVal.Value = hsb.Value
|
||||
|
||||
'Threading.ThreadPool.QueueUserWorkItem(AddressOf Demo, index)
|
||||
SendDimming(index)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 调光发送
|
||||
''' </summary>
|
||||
''' <param name="Index"></param>
|
||||
Private Sub SendDimming(Index As Integer)
|
||||
Static time As Date
|
||||
'If (Now - time).TotalMilliseconds < 200 Then
|
||||
' Return
|
||||
'End If
|
||||
|
||||
Threading.Thread.Sleep(200)
|
||||
|
||||
If _Dimming.ContainsKey(Index) = False Then Return
|
||||
DimmingDataBuff(Index)
|
||||
|
||||
'Console.WriteLine($"Text:{_Dimming(Index).Dimming.Text} Value:{_Dimming(Index).DimmingVal.Value}")
|
||||
time = Now
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 调光数据
|
||||
''' </summary>
|
||||
''' <param name="Index"></param>
|
||||
Private Sub DimmingDataBuff(Index As Integer)
|
||||
Dim cmd As Byte
|
||||
Dim testState As Byte = &H2 '测试状态
|
||||
Dim devType As Byte = &H18 '设备类型
|
||||
Dim devAddr As Byte = &H0 '设备地址默认为0
|
||||
Dim devCmd As Byte = &H21 '测试Cmd
|
||||
Dim param() As Byte = DimmingParam(Index)
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||||
Dim sendDatas() As Byte
|
||||
'组包
|
||||
If Text.Equals("C12调光") Then
|
||||
sendDatas = FCsConfig._blvC12TestForm.FillPacket(cmd, data)
|
||||
Console.WriteLine($"C12调光测试:{ByteToString(sendDatas)}")
|
||||
Else
|
||||
sendDatas = FCsConfig._blvC8TestForm.FillPacket(cmd, data)
|
||||
Console.WriteLine($"C12调光测试:{ByteToString(sendDatas)}")
|
||||
|
||||
End If
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 调光参数
|
||||
''' </summary>
|
||||
''' <param name="Index"></param>
|
||||
''' <returns></returns>
|
||||
Private Function DimmingParam(Index As Integer) As Byte()
|
||||
Dim data(2) As Byte
|
||||
data(0) = Index
|
||||
data(1) = _Dimming(Index).DimmingInputVal.Value
|
||||
data(2) = &H1
|
||||
|
||||
Return data
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "窗体关闭"
|
||||
|
||||
''' <summary>
|
||||
''' 窗体关闭事件
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub FrmTest_C12_Dimming_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
|
||||
'Close()
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
843
BLV_Studio/Control/FrmTest_C5.Designer.vb
generated
Normal file
843
BLV_Studio/Control/FrmTest_C5.Designer.vb
generated
Normal file
@@ -0,0 +1,843 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class FrmTest_C5
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form 重写 Dispose,以清理组件列表。
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows 窗体设计器所必需的
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||
'可以使用 Windows 窗体设计器修改它。
|
||||
'不要使用代码编辑器修改它。
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.Panel2 = New System.Windows.Forms.Panel()
|
||||
Me.Button1 = New System.Windows.Forms.Button()
|
||||
Me.Button2 = New System.Windows.Forms.Button()
|
||||
Me.Button3 = New System.Windows.Forms.Button()
|
||||
Me.Button4 = New System.Windows.Forms.Button()
|
||||
Me.Label51 = New System.Windows.Forms.Label()
|
||||
Me.Label50 = New System.Windows.Forms.Label()
|
||||
Me.Button20 = New System.Windows.Forms.Button()
|
||||
Me.Label48 = New System.Windows.Forms.Label()
|
||||
Me.Label47 = New System.Windows.Forms.Label()
|
||||
Me.Label46 = New System.Windows.Forms.Label()
|
||||
Me.Label45 = New System.Windows.Forms.Label()
|
||||
Me.Label44 = New System.Windows.Forms.Label()
|
||||
Me.Label43 = New System.Windows.Forms.Label()
|
||||
Me.Label42 = New System.Windows.Forms.Label()
|
||||
Me.Label41 = New System.Windows.Forms.Label()
|
||||
Me.Label40 = New System.Windows.Forms.Label()
|
||||
Me.Button23 = New System.Windows.Forms.Button()
|
||||
Me.Button22 = New System.Windows.Forms.Button()
|
||||
Me.Button21 = New System.Windows.Forms.Button()
|
||||
Me.Label39 = New System.Windows.Forms.Label()
|
||||
Me.NumericUpDown1 = New System.Windows.Forms.NumericUpDown()
|
||||
Me.Label38 = New System.Windows.Forms.Label()
|
||||
Me.ComboBox10 = New System.Windows.Forms.ComboBox()
|
||||
Me.Label37 = New System.Windows.Forms.Label()
|
||||
Me.Label36 = New System.Windows.Forms.Label()
|
||||
Me.Button83 = New System.Windows.Forms.Button()
|
||||
Me.Button82 = New System.Windows.Forms.Button()
|
||||
Me.Button81 = New System.Windows.Forms.Button()
|
||||
Me.Button80 = New System.Windows.Forms.Button()
|
||||
Me.Button79 = New System.Windows.Forms.Button()
|
||||
Me.Label35 = New System.Windows.Forms.Label()
|
||||
Me.Button63 = New System.Windows.Forms.Button()
|
||||
Me.Button64 = New System.Windows.Forms.Button()
|
||||
Me.Button65 = New System.Windows.Forms.Button()
|
||||
Me.Button66 = New System.Windows.Forms.Button()
|
||||
Me.Button67 = New System.Windows.Forms.Button()
|
||||
Me.Button68 = New System.Windows.Forms.Button()
|
||||
Me.Button69 = New System.Windows.Forms.Button()
|
||||
Me.Button70 = New System.Windows.Forms.Button()
|
||||
Me.Button71 = New System.Windows.Forms.Button()
|
||||
Me.Button72 = New System.Windows.Forms.Button()
|
||||
Me.Label34 = New System.Windows.Forms.Label()
|
||||
Me.Button62 = New System.Windows.Forms.Button()
|
||||
Me.Button61 = New System.Windows.Forms.Button()
|
||||
Me.Button60 = New System.Windows.Forms.Button()
|
||||
Me.Button59 = New System.Windows.Forms.Button()
|
||||
Me.Button58 = New System.Windows.Forms.Button()
|
||||
Me.Button57 = New System.Windows.Forms.Button()
|
||||
Me.Button56 = New System.Windows.Forms.Button()
|
||||
Me.Button55 = New System.Windows.Forms.Button()
|
||||
Me.Button54 = New System.Windows.Forms.Button()
|
||||
Me.Button47 = New System.Windows.Forms.Button()
|
||||
Me.LblInput13 = New System.Windows.Forms.Label()
|
||||
Me.LblInput12 = New System.Windows.Forms.Label()
|
||||
Me.LblInput11 = New System.Windows.Forms.Label()
|
||||
Me.LblInput10 = New System.Windows.Forms.Label()
|
||||
Me.LblInput9 = New System.Windows.Forms.Label()
|
||||
Me.LblInput8 = New System.Windows.Forms.Label()
|
||||
Me.Panel2.SuspendLayout()
|
||||
CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'Panel2
|
||||
'
|
||||
Me.Panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.Panel2.Controls.Add(Me.LblInput13)
|
||||
Me.Panel2.Controls.Add(Me.LblInput12)
|
||||
Me.Panel2.Controls.Add(Me.LblInput11)
|
||||
Me.Panel2.Controls.Add(Me.LblInput10)
|
||||
Me.Panel2.Controls.Add(Me.LblInput9)
|
||||
Me.Panel2.Controls.Add(Me.LblInput8)
|
||||
Me.Panel2.Controls.Add(Me.Button1)
|
||||
Me.Panel2.Controls.Add(Me.Button2)
|
||||
Me.Panel2.Controls.Add(Me.Button3)
|
||||
Me.Panel2.Controls.Add(Me.Button4)
|
||||
Me.Panel2.Controls.Add(Me.Label51)
|
||||
Me.Panel2.Controls.Add(Me.Label50)
|
||||
Me.Panel2.Controls.Add(Me.Button20)
|
||||
Me.Panel2.Controls.Add(Me.Label48)
|
||||
Me.Panel2.Controls.Add(Me.Label47)
|
||||
Me.Panel2.Controls.Add(Me.Label46)
|
||||
Me.Panel2.Controls.Add(Me.Label45)
|
||||
Me.Panel2.Controls.Add(Me.Label44)
|
||||
Me.Panel2.Controls.Add(Me.Label43)
|
||||
Me.Panel2.Controls.Add(Me.Label42)
|
||||
Me.Panel2.Controls.Add(Me.Label41)
|
||||
Me.Panel2.Controls.Add(Me.Label40)
|
||||
Me.Panel2.Controls.Add(Me.Button23)
|
||||
Me.Panel2.Controls.Add(Me.Button22)
|
||||
Me.Panel2.Controls.Add(Me.Button21)
|
||||
Me.Panel2.Controls.Add(Me.Label39)
|
||||
Me.Panel2.Controls.Add(Me.NumericUpDown1)
|
||||
Me.Panel2.Controls.Add(Me.Label38)
|
||||
Me.Panel2.Controls.Add(Me.ComboBox10)
|
||||
Me.Panel2.Controls.Add(Me.Label37)
|
||||
Me.Panel2.Controls.Add(Me.Label36)
|
||||
Me.Panel2.Controls.Add(Me.Button83)
|
||||
Me.Panel2.Controls.Add(Me.Button82)
|
||||
Me.Panel2.Controls.Add(Me.Button81)
|
||||
Me.Panel2.Controls.Add(Me.Button80)
|
||||
Me.Panel2.Controls.Add(Me.Button79)
|
||||
Me.Panel2.Controls.Add(Me.Label35)
|
||||
Me.Panel2.Controls.Add(Me.Button63)
|
||||
Me.Panel2.Controls.Add(Me.Button64)
|
||||
Me.Panel2.Controls.Add(Me.Button65)
|
||||
Me.Panel2.Controls.Add(Me.Button66)
|
||||
Me.Panel2.Controls.Add(Me.Button67)
|
||||
Me.Panel2.Controls.Add(Me.Button68)
|
||||
Me.Panel2.Controls.Add(Me.Button69)
|
||||
Me.Panel2.Controls.Add(Me.Button70)
|
||||
Me.Panel2.Controls.Add(Me.Button71)
|
||||
Me.Panel2.Controls.Add(Me.Button72)
|
||||
Me.Panel2.Controls.Add(Me.Label34)
|
||||
Me.Panel2.Controls.Add(Me.Button62)
|
||||
Me.Panel2.Controls.Add(Me.Button61)
|
||||
Me.Panel2.Controls.Add(Me.Button60)
|
||||
Me.Panel2.Controls.Add(Me.Button59)
|
||||
Me.Panel2.Controls.Add(Me.Button58)
|
||||
Me.Panel2.Controls.Add(Me.Button57)
|
||||
Me.Panel2.Controls.Add(Me.Button56)
|
||||
Me.Panel2.Controls.Add(Me.Button55)
|
||||
Me.Panel2.Controls.Add(Me.Button54)
|
||||
Me.Panel2.Controls.Add(Me.Button47)
|
||||
Me.Panel2.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.Panel2.Location = New System.Drawing.Point(0, 0)
|
||||
Me.Panel2.Name = "Panel2"
|
||||
Me.Panel2.Size = New System.Drawing.Size(730, 246)
|
||||
Me.Panel2.TabIndex = 1
|
||||
'
|
||||
'Button1
|
||||
'
|
||||
Me.Button1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button1.Location = New System.Drawing.Point(657, 55)
|
||||
Me.Button1.Name = "Button1"
|
||||
Me.Button1.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button1.TabIndex = 89
|
||||
Me.Button1.Tag = "23"
|
||||
Me.Button1.Text = "24"
|
||||
Me.Button1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button2
|
||||
'
|
||||
Me.Button2.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button2.Location = New System.Drawing.Point(623, 55)
|
||||
Me.Button2.Name = "Button2"
|
||||
Me.Button2.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button2.TabIndex = 88
|
||||
Me.Button2.Tag = "22"
|
||||
Me.Button2.Text = "23"
|
||||
Me.Button2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button3
|
||||
'
|
||||
Me.Button3.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button3.Location = New System.Drawing.Point(555, 55)
|
||||
Me.Button3.Name = "Button3"
|
||||
Me.Button3.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button3.TabIndex = 87
|
||||
Me.Button3.Tag = "20"
|
||||
Me.Button3.Text = "21"
|
||||
Me.Button3.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button4
|
||||
'
|
||||
Me.Button4.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button4.Location = New System.Drawing.Point(589, 55)
|
||||
Me.Button4.Name = "Button4"
|
||||
Me.Button4.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button4.TabIndex = 86
|
||||
Me.Button4.Tag = "21"
|
||||
Me.Button4.Text = "22"
|
||||
Me.Button4.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label51
|
||||
'
|
||||
Me.Label51.AutoSize = True
|
||||
Me.Label51.Font = New System.Drawing.Font("宋体", 21.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label51.Location = New System.Drawing.Point(469, 198)
|
||||
Me.Label51.Name = "Label51"
|
||||
Me.Label51.Size = New System.Drawing.Size(125, 29)
|
||||
Me.Label51.TabIndex = 85
|
||||
Me.Label51.Text = "Test..."
|
||||
'
|
||||
'Label50
|
||||
'
|
||||
Me.Label50.AutoSize = True
|
||||
Me.Label50.Location = New System.Drawing.Point(361, 187)
|
||||
Me.Label50.Name = "Label50"
|
||||
Me.Label50.Size = New System.Drawing.Size(53, 12)
|
||||
Me.Label50.TabIndex = 84
|
||||
Me.Label50.Text = "MAC 地址"
|
||||
Me.Label50.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||
'
|
||||
'Button20
|
||||
'
|
||||
Me.Button20.Location = New System.Drawing.Point(385, 202)
|
||||
Me.Button20.Name = "Button20"
|
||||
Me.Button20.Size = New System.Drawing.Size(68, 25)
|
||||
Me.Button20.TabIndex = 83
|
||||
Me.Button20.Text = "设置MAC"
|
||||
Me.Button20.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label48
|
||||
'
|
||||
Me.Label48.AutoSize = True
|
||||
Me.Label48.Font = New System.Drawing.Font("宋体", 21.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label48.Location = New System.Drawing.Point(189, 187)
|
||||
Me.Label48.Name = "Label48"
|
||||
Me.Label48.Size = New System.Drawing.Size(125, 29)
|
||||
Me.Label48.TabIndex = 82
|
||||
Me.Label48.Text = "Test..."
|
||||
'
|
||||
'Label47
|
||||
'
|
||||
Me.Label47.AutoSize = True
|
||||
Me.Label47.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.Label47.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label47.Location = New System.Drawing.Point(227, 115)
|
||||
Me.Label47.Name = "Label47"
|
||||
Me.Label47.Size = New System.Drawing.Size(30, 16)
|
||||
Me.Label47.TabIndex = 81
|
||||
Me.Label47.Text = " 7 "
|
||||
'
|
||||
'Label46
|
||||
'
|
||||
Me.Label46.AutoSize = True
|
||||
Me.Label46.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.Label46.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label46.Location = New System.Drawing.Point(191, 115)
|
||||
Me.Label46.Name = "Label46"
|
||||
Me.Label46.Size = New System.Drawing.Size(30, 16)
|
||||
Me.Label46.TabIndex = 80
|
||||
Me.Label46.Text = " 6 "
|
||||
'
|
||||
'Label45
|
||||
'
|
||||
Me.Label45.AutoSize = True
|
||||
Me.Label45.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.Label45.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label45.Location = New System.Drawing.Point(155, 115)
|
||||
Me.Label45.Name = "Label45"
|
||||
Me.Label45.Size = New System.Drawing.Size(30, 16)
|
||||
Me.Label45.TabIndex = 79
|
||||
Me.Label45.Text = " 5 "
|
||||
'
|
||||
'Label44
|
||||
'
|
||||
Me.Label44.AutoSize = True
|
||||
Me.Label44.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.Label44.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label44.Location = New System.Drawing.Point(119, 115)
|
||||
Me.Label44.Name = "Label44"
|
||||
Me.Label44.Size = New System.Drawing.Size(30, 16)
|
||||
Me.Label44.TabIndex = 78
|
||||
Me.Label44.Text = " 4 "
|
||||
'
|
||||
'Label43
|
||||
'
|
||||
Me.Label43.AutoSize = True
|
||||
Me.Label43.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.Label43.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label43.Location = New System.Drawing.Point(83, 115)
|
||||
Me.Label43.Name = "Label43"
|
||||
Me.Label43.Size = New System.Drawing.Size(30, 16)
|
||||
Me.Label43.TabIndex = 77
|
||||
Me.Label43.Text = " 3 "
|
||||
'
|
||||
'Label42
|
||||
'
|
||||
Me.Label42.AutoSize = True
|
||||
Me.Label42.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.Label42.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label42.Location = New System.Drawing.Point(47, 115)
|
||||
Me.Label42.Name = "Label42"
|
||||
Me.Label42.Size = New System.Drawing.Size(30, 16)
|
||||
Me.Label42.TabIndex = 76
|
||||
Me.Label42.Text = " 2 "
|
||||
'
|
||||
'Label41
|
||||
'
|
||||
Me.Label41.AutoSize = True
|
||||
Me.Label41.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.Label41.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label41.Location = New System.Drawing.Point(11, 115)
|
||||
Me.Label41.Name = "Label41"
|
||||
Me.Label41.Size = New System.Drawing.Size(30, 16)
|
||||
Me.Label41.TabIndex = 75
|
||||
Me.Label41.Text = " 1 "
|
||||
'
|
||||
'Label40
|
||||
'
|
||||
Me.Label40.AutoSize = True
|
||||
Me.Label40.Location = New System.Drawing.Point(7, 187)
|
||||
Me.Label40.Name = "Label40"
|
||||
Me.Label40.Size = New System.Drawing.Size(71, 12)
|
||||
Me.Label40.TabIndex = 74
|
||||
Me.Label40.Text = "C5 巡回测试"
|
||||
'
|
||||
'Button23
|
||||
'
|
||||
Me.Button23.Location = New System.Drawing.Point(103, 187)
|
||||
Me.Button23.Name = "Button23"
|
||||
Me.Button23.Size = New System.Drawing.Size(68, 25)
|
||||
Me.Button23.TabIndex = 73
|
||||
Me.Button23.Text = "巡回测试"
|
||||
Me.Button23.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button22
|
||||
'
|
||||
Me.Button22.Location = New System.Drawing.Point(532, 111)
|
||||
Me.Button22.Name = "Button22"
|
||||
Me.Button22.Size = New System.Drawing.Size(62, 24)
|
||||
Me.Button22.TabIndex = 72
|
||||
Me.Button22.Text = "输入检测"
|
||||
Me.Button22.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button21
|
||||
'
|
||||
Me.Button21.Location = New System.Drawing.Point(532, 160)
|
||||
Me.Button21.Name = "Button21"
|
||||
Me.Button21.Size = New System.Drawing.Size(62, 21)
|
||||
Me.Button21.TabIndex = 71
|
||||
Me.Button21.Text = "播放"
|
||||
Me.Button21.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label39
|
||||
'
|
||||
Me.Label39.AutoSize = True
|
||||
Me.Label39.BackColor = System.Drawing.SystemColors.Control
|
||||
Me.Label39.Location = New System.Drawing.Point(265, 164)
|
||||
Me.Label39.Name = "Label39"
|
||||
Me.Label39.Size = New System.Drawing.Size(77, 12)
|
||||
Me.Label39.TabIndex = 70
|
||||
Me.Label39.Text = "播放文件序号"
|
||||
Me.Label39.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'NumericUpDown1
|
||||
'
|
||||
Me.NumericUpDown1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.NumericUpDown1.Location = New System.Drawing.Point(348, 160)
|
||||
Me.NumericUpDown1.Maximum = New Decimal(New Integer() {10, 0, 0, 0})
|
||||
Me.NumericUpDown1.Minimum = New Decimal(New Integer() {1, 0, 0, 0})
|
||||
Me.NumericUpDown1.Name = "NumericUpDown1"
|
||||
Me.NumericUpDown1.Size = New System.Drawing.Size(86, 23)
|
||||
Me.NumericUpDown1.TabIndex = 69
|
||||
Me.NumericUpDown1.Value = New Decimal(New Integer() {1, 0, 0, 0})
|
||||
'
|
||||
'Label38
|
||||
'
|
||||
Me.Label38.AutoSize = True
|
||||
Me.Label38.Location = New System.Drawing.Point(32, 164)
|
||||
Me.Label38.Name = "Label38"
|
||||
Me.Label38.Size = New System.Drawing.Size(65, 12)
|
||||
Me.Label38.TabIndex = 68
|
||||
Me.Label38.Text = "播放文件夹"
|
||||
Me.Label38.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'ComboBox10
|
||||
'
|
||||
Me.ComboBox10.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
|
||||
Me.ComboBox10.FormattingEnabled = True
|
||||
Me.ComboBox10.Location = New System.Drawing.Point(103, 161)
|
||||
Me.ComboBox10.Name = "ComboBox10"
|
||||
Me.ComboBox10.Size = New System.Drawing.Size(138, 20)
|
||||
Me.ComboBox10.TabIndex = 67
|
||||
'
|
||||
'Label37
|
||||
'
|
||||
Me.Label37.AutoSize = True
|
||||
Me.Label37.Location = New System.Drawing.Point(7, 141)
|
||||
Me.Label37.Name = "Label37"
|
||||
Me.Label37.Size = New System.Drawing.Size(53, 12)
|
||||
Me.Label37.TabIndex = 66
|
||||
Me.Label37.Text = "C5 MUSIC"
|
||||
'
|
||||
'Label36
|
||||
'
|
||||
Me.Label36.AutoSize = True
|
||||
Me.Label36.Location = New System.Drawing.Point(3, 55)
|
||||
Me.Label36.Name = "Label36"
|
||||
Me.Label36.Size = New System.Drawing.Size(71, 12)
|
||||
Me.Label36.TabIndex = 65
|
||||
Me.Label36.Text = "C5IO IO输出"
|
||||
'
|
||||
'Button83
|
||||
'
|
||||
Me.Button83.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button83.Location = New System.Drawing.Point(147, 70)
|
||||
Me.Button83.Name = "Button83"
|
||||
Me.Button83.Size = New System.Drawing.Size(31, 26)
|
||||
Me.Button83.TabIndex = 63
|
||||
Me.Button83.Tag = "4"
|
||||
Me.Button83.Text = "5"
|
||||
Me.Button83.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button82
|
||||
'
|
||||
Me.Button82.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button82.Location = New System.Drawing.Point(113, 70)
|
||||
Me.Button82.Name = "Button82"
|
||||
Me.Button82.Size = New System.Drawing.Size(31, 26)
|
||||
Me.Button82.TabIndex = 62
|
||||
Me.Button82.Tag = "3"
|
||||
Me.Button82.Text = "4"
|
||||
Me.Button82.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button81
|
||||
'
|
||||
Me.Button81.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button81.Location = New System.Drawing.Point(79, 70)
|
||||
Me.Button81.Name = "Button81"
|
||||
Me.Button81.Size = New System.Drawing.Size(31, 26)
|
||||
Me.Button81.TabIndex = 61
|
||||
Me.Button81.Tag = "2"
|
||||
Me.Button81.Text = "3"
|
||||
Me.Button81.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button80
|
||||
'
|
||||
Me.Button80.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button80.Location = New System.Drawing.Point(45, 70)
|
||||
Me.Button80.Name = "Button80"
|
||||
Me.Button80.Size = New System.Drawing.Size(31, 26)
|
||||
Me.Button80.TabIndex = 60
|
||||
Me.Button80.Tag = "1"
|
||||
Me.Button80.Text = "2"
|
||||
Me.Button80.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button79
|
||||
'
|
||||
Me.Button79.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button79.Location = New System.Drawing.Point(11, 70)
|
||||
Me.Button79.Name = "Button79"
|
||||
Me.Button79.Size = New System.Drawing.Size(31, 26)
|
||||
Me.Button79.TabIndex = 59
|
||||
Me.Button79.Tag = "0"
|
||||
Me.Button79.Text = "1"
|
||||
Me.Button79.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label35
|
||||
'
|
||||
Me.Label35.AutoSize = True
|
||||
Me.Label35.Location = New System.Drawing.Point(3, 99)
|
||||
Me.Label35.Name = "Label35"
|
||||
Me.Label35.Size = New System.Drawing.Size(71, 12)
|
||||
Me.Label35.TabIndex = 57
|
||||
Me.Label35.Text = "C5IO IO输入"
|
||||
'
|
||||
'Button63
|
||||
'
|
||||
Me.Button63.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button63.Location = New System.Drawing.Point(657, 25)
|
||||
Me.Button63.Name = "Button63"
|
||||
Me.Button63.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button63.TabIndex = 51
|
||||
Me.Button63.Tag = "19"
|
||||
Me.Button63.Text = "20"
|
||||
Me.Button63.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button64
|
||||
'
|
||||
Me.Button64.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button64.Location = New System.Drawing.Point(623, 25)
|
||||
Me.Button64.Name = "Button64"
|
||||
Me.Button64.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button64.TabIndex = 50
|
||||
Me.Button64.Tag = "18"
|
||||
Me.Button64.Text = "19"
|
||||
Me.Button64.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button65
|
||||
'
|
||||
Me.Button65.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button65.Location = New System.Drawing.Point(555, 25)
|
||||
Me.Button65.Name = "Button65"
|
||||
Me.Button65.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button65.TabIndex = 49
|
||||
Me.Button65.Tag = "16"
|
||||
Me.Button65.Text = "17"
|
||||
Me.Button65.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button66
|
||||
'
|
||||
Me.Button66.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button66.Location = New System.Drawing.Point(521, 25)
|
||||
Me.Button66.Name = "Button66"
|
||||
Me.Button66.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button66.TabIndex = 47
|
||||
Me.Button66.Tag = "15"
|
||||
Me.Button66.Text = "16"
|
||||
Me.Button66.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button67
|
||||
'
|
||||
Me.Button67.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button67.Location = New System.Drawing.Point(589, 25)
|
||||
Me.Button67.Name = "Button67"
|
||||
Me.Button67.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button67.TabIndex = 48
|
||||
Me.Button67.Tag = "017"
|
||||
Me.Button67.Text = "18"
|
||||
Me.Button67.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button68
|
||||
'
|
||||
Me.Button68.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button68.Location = New System.Drawing.Point(487, 25)
|
||||
Me.Button68.Name = "Button68"
|
||||
Me.Button68.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button68.TabIndex = 46
|
||||
Me.Button68.Tag = "14"
|
||||
Me.Button68.Text = "15"
|
||||
Me.Button68.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button69
|
||||
'
|
||||
Me.Button69.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button69.Location = New System.Drawing.Point(453, 25)
|
||||
Me.Button69.Name = "Button69"
|
||||
Me.Button69.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button69.TabIndex = 45
|
||||
Me.Button69.Tag = "13"
|
||||
Me.Button69.Text = "14"
|
||||
Me.Button69.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button70
|
||||
'
|
||||
Me.Button70.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button70.Location = New System.Drawing.Point(419, 25)
|
||||
Me.Button70.Name = "Button70"
|
||||
Me.Button70.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button70.TabIndex = 44
|
||||
Me.Button70.Tag = "12"
|
||||
Me.Button70.Text = "13"
|
||||
Me.Button70.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button71
|
||||
'
|
||||
Me.Button71.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button71.Location = New System.Drawing.Point(385, 25)
|
||||
Me.Button71.Name = "Button71"
|
||||
Me.Button71.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button71.TabIndex = 42
|
||||
Me.Button71.Tag = "11"
|
||||
Me.Button71.Text = "12"
|
||||
Me.Button71.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button72
|
||||
'
|
||||
Me.Button72.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button72.Location = New System.Drawing.Point(351, 25)
|
||||
Me.Button72.Name = "Button72"
|
||||
Me.Button72.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button72.TabIndex = 43
|
||||
Me.Button72.Tag = "10"
|
||||
Me.Button72.Text = "11"
|
||||
Me.Button72.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label34
|
||||
'
|
||||
Me.Label34.AutoSize = True
|
||||
Me.Label34.Location = New System.Drawing.Point(3, 10)
|
||||
Me.Label34.Name = "Label34"
|
||||
Me.Label34.Size = New System.Drawing.Size(95, 12)
|
||||
Me.Label34.TabIndex = 41
|
||||
Me.Label34.Text = "C5IO 继电器控制"
|
||||
'
|
||||
'Button62
|
||||
'
|
||||
Me.Button62.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button62.Location = New System.Drawing.Point(317, 25)
|
||||
Me.Button62.Name = "Button62"
|
||||
Me.Button62.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button62.TabIndex = 40
|
||||
Me.Button62.Tag = "9"
|
||||
Me.Button62.Text = "10"
|
||||
Me.Button62.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button61
|
||||
'
|
||||
Me.Button61.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button61.Location = New System.Drawing.Point(283, 25)
|
||||
Me.Button61.Name = "Button61"
|
||||
Me.Button61.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button61.TabIndex = 39
|
||||
Me.Button61.Tag = "8"
|
||||
Me.Button61.Text = "9"
|
||||
Me.Button61.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button60
|
||||
'
|
||||
Me.Button60.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button60.Location = New System.Drawing.Point(215, 25)
|
||||
Me.Button60.Name = "Button60"
|
||||
Me.Button60.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button60.TabIndex = 38
|
||||
Me.Button60.Tag = "6"
|
||||
Me.Button60.Text = "7"
|
||||
Me.Button60.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button59
|
||||
'
|
||||
Me.Button59.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button59.Location = New System.Drawing.Point(181, 25)
|
||||
Me.Button59.Name = "Button59"
|
||||
Me.Button59.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button59.TabIndex = 37
|
||||
Me.Button59.Tag = "5"
|
||||
Me.Button59.Text = "6"
|
||||
Me.Button59.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button58
|
||||
'
|
||||
Me.Button58.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button58.Location = New System.Drawing.Point(249, 25)
|
||||
Me.Button58.Name = "Button58"
|
||||
Me.Button58.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button58.TabIndex = 37
|
||||
Me.Button58.Tag = "7"
|
||||
Me.Button58.Text = "8"
|
||||
Me.Button58.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button57
|
||||
'
|
||||
Me.Button57.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button57.Location = New System.Drawing.Point(147, 25)
|
||||
Me.Button57.Name = "Button57"
|
||||
Me.Button57.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button57.TabIndex = 36
|
||||
Me.Button57.Tag = "4"
|
||||
Me.Button57.Text = "5"
|
||||
Me.Button57.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button56
|
||||
'
|
||||
Me.Button56.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button56.Location = New System.Drawing.Point(113, 25)
|
||||
Me.Button56.Name = "Button56"
|
||||
Me.Button56.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button56.TabIndex = 35
|
||||
Me.Button56.Tag = "3"
|
||||
Me.Button56.Text = "4"
|
||||
Me.Button56.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button55
|
||||
'
|
||||
Me.Button55.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button55.Location = New System.Drawing.Point(79, 25)
|
||||
Me.Button55.Name = "Button55"
|
||||
Me.Button55.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button55.TabIndex = 34
|
||||
Me.Button55.Tag = "2"
|
||||
Me.Button55.Text = "3"
|
||||
Me.Button55.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button54
|
||||
'
|
||||
Me.Button54.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button54.Location = New System.Drawing.Point(45, 25)
|
||||
Me.Button54.Name = "Button54"
|
||||
Me.Button54.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button54.TabIndex = 33
|
||||
Me.Button54.Tag = "1"
|
||||
Me.Button54.Text = "2"
|
||||
Me.Button54.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button47
|
||||
'
|
||||
Me.Button47.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Button47.Location = New System.Drawing.Point(11, 25)
|
||||
Me.Button47.Name = "Button47"
|
||||
Me.Button47.Size = New System.Drawing.Size(31, 27)
|
||||
Me.Button47.TabIndex = 33
|
||||
Me.Button47.Tag = "0"
|
||||
Me.Button47.Text = "1"
|
||||
Me.Button47.UseVisualStyleBackColor = True
|
||||
'
|
||||
'LblInput13
|
||||
'
|
||||
Me.LblInput13.AutoSize = True
|
||||
Me.LblInput13.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput13.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput13.Location = New System.Drawing.Point(474, 115)
|
||||
Me.LblInput13.Name = "LblInput13"
|
||||
Me.LblInput13.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput13.TabIndex = 138
|
||||
Me.LblInput13.Text = " 13 "
|
||||
'
|
||||
'LblInput12
|
||||
'
|
||||
Me.LblInput12.AutoSize = True
|
||||
Me.LblInput12.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput12.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput12.Location = New System.Drawing.Point(429, 115)
|
||||
Me.LblInput12.Name = "LblInput12"
|
||||
Me.LblInput12.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput12.TabIndex = 137
|
||||
Me.LblInput12.Text = " 12 "
|
||||
'
|
||||
'LblInput11
|
||||
'
|
||||
Me.LblInput11.AutoSize = True
|
||||
Me.LblInput11.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput11.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput11.Location = New System.Drawing.Point(384, 115)
|
||||
Me.LblInput11.Name = "LblInput11"
|
||||
Me.LblInput11.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput11.TabIndex = 136
|
||||
Me.LblInput11.Text = " 11 "
|
||||
'
|
||||
'LblInput10
|
||||
'
|
||||
Me.LblInput10.AutoSize = True
|
||||
Me.LblInput10.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput10.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput10.Location = New System.Drawing.Point(339, 115)
|
||||
Me.LblInput10.Name = "LblInput10"
|
||||
Me.LblInput10.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput10.TabIndex = 135
|
||||
Me.LblInput10.Text = " 10 "
|
||||
'
|
||||
'LblInput9
|
||||
'
|
||||
Me.LblInput9.AutoSize = True
|
||||
Me.LblInput9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput9.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput9.Location = New System.Drawing.Point(301, 115)
|
||||
Me.LblInput9.Name = "LblInput9"
|
||||
Me.LblInput9.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput9.TabIndex = 134
|
||||
Me.LblInput9.Text = " 9 "
|
||||
'
|
||||
'LblInput8
|
||||
'
|
||||
Me.LblInput8.AutoSize = True
|
||||
Me.LblInput8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput8.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput8.Location = New System.Drawing.Point(263, 115)
|
||||
Me.LblInput8.Name = "LblInput8"
|
||||
Me.LblInput8.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput8.TabIndex = 133
|
||||
Me.LblInput8.Text = " 8 "
|
||||
'
|
||||
'FrmTest_C5
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(730, 246)
|
||||
Me.Controls.Add(Me.Panel2)
|
||||
Me.Name = "FrmTest_C5"
|
||||
Me.Text = "FrmTest_C5"
|
||||
Me.Panel2.ResumeLayout(False)
|
||||
Me.Panel2.PerformLayout()
|
||||
CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
|
||||
Friend WithEvents Panel2 As Panel
|
||||
Friend WithEvents Label51 As Label
|
||||
Friend WithEvents Label50 As Label
|
||||
Friend WithEvents Button20 As Button
|
||||
Friend WithEvents Label48 As Label
|
||||
Friend WithEvents Label47 As Label
|
||||
Friend WithEvents Label46 As Label
|
||||
Friend WithEvents Label45 As Label
|
||||
Friend WithEvents Label44 As Label
|
||||
Friend WithEvents Label43 As Label
|
||||
Friend WithEvents Label42 As Label
|
||||
Friend WithEvents Label41 As Label
|
||||
Friend WithEvents Label40 As Label
|
||||
Friend WithEvents Button23 As Button
|
||||
Friend WithEvents Button22 As Button
|
||||
Friend WithEvents Button21 As Button
|
||||
Friend WithEvents Label39 As Label
|
||||
Friend WithEvents NumericUpDown1 As NumericUpDown
|
||||
Friend WithEvents Label38 As Label
|
||||
Friend WithEvents ComboBox10 As ComboBox
|
||||
Friend WithEvents Label37 As Label
|
||||
Friend WithEvents Label36 As Label
|
||||
Friend WithEvents Button83 As Button
|
||||
Friend WithEvents Button82 As Button
|
||||
Friend WithEvents Button81 As Button
|
||||
Friend WithEvents Button80 As Button
|
||||
Friend WithEvents Button79 As Button
|
||||
Friend WithEvents Label35 As Label
|
||||
Friend WithEvents Button63 As Button
|
||||
Friend WithEvents Button64 As Button
|
||||
Friend WithEvents Button65 As Button
|
||||
Friend WithEvents Button66 As Button
|
||||
Friend WithEvents Button67 As Button
|
||||
Friend WithEvents Button68 As Button
|
||||
Friend WithEvents Button69 As Button
|
||||
Friend WithEvents Button70 As Button
|
||||
Friend WithEvents Button71 As Button
|
||||
Friend WithEvents Button72 As Button
|
||||
Friend WithEvents Label34 As Label
|
||||
Friend WithEvents Button62 As Button
|
||||
Friend WithEvents Button61 As Button
|
||||
Friend WithEvents Button60 As Button
|
||||
Friend WithEvents Button59 As Button
|
||||
Friend WithEvents Button58 As Button
|
||||
Friend WithEvents Button57 As Button
|
||||
Friend WithEvents Button56 As Button
|
||||
Friend WithEvents Button55 As Button
|
||||
Friend WithEvents Button54 As Button
|
||||
Friend WithEvents Button47 As Button
|
||||
Friend WithEvents Button1 As Button
|
||||
Friend WithEvents Button2 As Button
|
||||
Friend WithEvents Button3 As Button
|
||||
Friend WithEvents Button4 As Button
|
||||
Friend WithEvents LblInput13 As Label
|
||||
Friend WithEvents LblInput12 As Label
|
||||
Friend WithEvents LblInput11 As Label
|
||||
Friend WithEvents LblInput10 As Label
|
||||
Friend WithEvents LblInput9 As Label
|
||||
Friend WithEvents LblInput8 As Label
|
||||
End Class
|
||||
300
BLV_Studio/Control/FrmTest_C5.resx
Normal file
300
BLV_Studio/Control/FrmTest_C5.resx
Normal file
@@ -0,0 +1,300 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="Panel2.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="LblInput13.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="LblInput12.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="LblInput11.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="LblInput10.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="LblInput9.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="LblInput8.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button2.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button3.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button4.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label51.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label50.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button20.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label48.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label47.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label46.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label45.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label44.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label43.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label42.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label41.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label40.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button23.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button22.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button21.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label39.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="NumericUpDown1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label38.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ComboBox10.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label37.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label36.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button83.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button82.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button81.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button80.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button79.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label35.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button63.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button64.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button65.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button66.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button67.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button68.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button69.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button70.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button71.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button72.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Label34.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button62.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button61.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button60.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button59.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button58.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button57.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button56.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button55.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button54.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Button47.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
||||
481
BLV_Studio/Control/FrmTest_C5.vb
Normal file
481
BLV_Studio/Control/FrmTest_C5.vb
Normal file
@@ -0,0 +1,481 @@
|
||||
Public Class FrmTest_C5
|
||||
Implements IFrmTest
|
||||
Public FCsConfig As FrmCSeriesConfig
|
||||
Sub New(pathme As FrmCSeriesConfig)
|
||||
|
||||
' 此调用是设计器所必需的。
|
||||
InitializeComponent()
|
||||
FCsConfig = pathme
|
||||
' 在 InitializeComponent() 调用之后添加任何初始化。
|
||||
|
||||
End Sub
|
||||
#Region "多语种信息"
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 初始化界面控件文本
|
||||
''' </summary>
|
||||
Private Sub MultiLanguageInfo()
|
||||
'Label34.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C5) & LanguageData.StringList(MultiLanguageDAL.StringEnum.RelayControl)
|
||||
'Label36.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C5) & LanguageData.StringList(MultiLanguageDAL.StringEnum.IOOutput)
|
||||
'Label35.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C5) & LanguageData.StringList(MultiLanguageDAL.StringEnum.IOInput)
|
||||
'Label37.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C5) & LanguageData.StringList(MultiLanguageDAL.StringEnum.Music)
|
||||
'Label40.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C5) & LanguageData.StringList(MultiLanguageDAL.StringEnum.ItinerateTest)
|
||||
Label34.Text = Text & LanguageData.StringList(MultiLanguageDAL.StringEnum.RelayControl)
|
||||
Label36.Text = Text & LanguageData.StringList(MultiLanguageDAL.StringEnum.IOOutput)
|
||||
Label35.Text = Text & LanguageData.StringList(MultiLanguageDAL.StringEnum.IOInput)
|
||||
Label37.Text = Text & LanguageData.StringList(MultiLanguageDAL.StringEnum.Music)
|
||||
Label40.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C5) & LanguageData.StringList(MultiLanguageDAL.StringEnum.ItinerateTest)
|
||||
Button22.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.TheInputTest)
|
||||
Label38.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.PlayFolder)
|
||||
Label39.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.PlayFileNumber)
|
||||
Button21.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.Play)
|
||||
Button23.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.ItinerateTest)
|
||||
Label50.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.MAC)
|
||||
Button20.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.SetMAC)
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "窗体"
|
||||
|
||||
''' <summary>
|
||||
''' 窗体加载事件
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub FrmTest_C5_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
MultiLanguageInfo()
|
||||
InitFolderItems()
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 显示窗体事件
|
||||
''' 实现接口
|
||||
''' </summary>
|
||||
''' <param name="parentControl"></param>
|
||||
Public Sub ShowForm(parentControl As Control) Implements IFrmTest.ShowForm
|
||||
FormBorderStyle = FormBorderStyle.None '无边框
|
||||
TopLevel = False
|
||||
Dock = DockStyle.Fill '填满大小
|
||||
Parent = parentControl '父容器
|
||||
|
||||
Show()
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 发送函数
|
||||
''' </summary>
|
||||
''' <param name="sendPacket"></param>
|
||||
Public Sub SendData(sendPacket() As Byte)
|
||||
FCsConfig.SendTestData(sendPacket)
|
||||
FCsConfig.AppendTipText($"TX:{ByteToString(sendPacket)}{vbCrLf}", Color.Green)
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "C5测试"
|
||||
|
||||
''' <summary>
|
||||
''' 发送组包
|
||||
''' </summary>
|
||||
''' <param name="cmd"></param>
|
||||
''' <param name="dataBuff"></param>
|
||||
''' <returns></returns>
|
||||
Public Function FillPacket(cmd As Byte, dataBuff() As Byte) As Byte()
|
||||
If _connectStatus = True Then
|
||||
cmd = &HD3 '网络测试Cmd
|
||||
dataBuff = FCsConfig.FillSendData(cmd, dataBuff) '网络数据
|
||||
Else
|
||||
cmd = &H7 '串口测试Cmd
|
||||
dataBuff = FillModelsSerialPortTest(cmd, dataBuff) '串口数据
|
||||
End If
|
||||
|
||||
Return dataBuff
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器序号
|
||||
''' </summary>
|
||||
Private _relayNumber(5) As Byte
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' 1-20路继电器
|
||||
'''' </summary>
|
||||
'''' <param name="sender"></param>
|
||||
'''' <param name="e"></param>
|
||||
'Private Sub Button63_Click_1(sender As Object, e As EventArgs) Handles Button72.Click, Button71.Click, Button70.Click, Button69.Click, Button68.Click, Button67.Click, Button66.Click, Button65.Click, Button64.Click, Button63.Click, Button62.Click, Button61.Click, Button60.Click, Button59.Click, Button58.Click, Button57.Click, Button56.Click, Button55.Click, Button54.Click, Button47.Click
|
||||
' Dim cmd As Byte
|
||||
' Dim btn As Button = sender
|
||||
' Dim index As Integer = sender.tag
|
||||
' Dim flg As Boolean = Not GetRelayStatus(index)
|
||||
' Dim param() As Byte = GetRelayNumber(index, flg)
|
||||
|
||||
' '组包
|
||||
' Dim testState As Byte = &H2 '测试状态
|
||||
' Dim devType As Byte = &HF1 '设备类型
|
||||
' Dim devAddr As Byte = &H0 '设备地址默认为0
|
||||
' Dim devCmd As Byte = &H21 '测试设备Cmd
|
||||
' Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||||
' Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
' Console.WriteLine($"继电器测试:{ByteToString(sendDatas)}")
|
||||
|
||||
' '发送
|
||||
' SendData(sendDatas)
|
||||
|
||||
' If flg Then
|
||||
' btn.BackColor = Color.Green
|
||||
' Else
|
||||
' btn.BackColor = Color.Transparent
|
||||
' End If
|
||||
'End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 1-24路继电器
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button63_Click(sender As Object, e As EventArgs) Handles Button72.Click, Button71.Click, Button70.Click, Button69.Click, Button68.Click, Button67.Click, Button66.Click, Button65.Click, Button64.Click, Button63.Click, Button62.Click, Button61.Click, Button60.Click, Button59.Click, Button58.Click, Button57.Click, Button56.Click, Button55.Click, Button54.Click, Button47.Click, Button4.Click, Button3.Click, Button2.Click, Button1.Click
|
||||
Dim cmd As Byte
|
||||
Dim btn As Button = sender
|
||||
Dim index As Integer = sender.tag
|
||||
Dim flg As Boolean = Not GetRelayStatus(index)
|
||||
Dim param() As Byte = GetRelayNumber(index, flg)
|
||||
|
||||
'组包
|
||||
Dim testState As Byte = &H2 '测试状态
|
||||
Dim devType As Byte = &HF1 '设备类型
|
||||
Dim devAddr As Byte = &H0 '设备地址默认为0
|
||||
Dim devCmd As Byte = &H21 '测试设备Cmd
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"继电器测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
|
||||
If flg Then
|
||||
btn.BackColor = Color.Green
|
||||
Else
|
||||
btn.BackColor = Color.Transparent
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器序号
|
||||
''' </summary>
|
||||
''' <param name="number"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetRelayNumber(number As Integer, start As Boolean) As Byte()
|
||||
If start Then '置位01
|
||||
'relayNumber(number \ 4) = relayNumber(number \ 4) Or (1 << ((number Mod 4) * 2))
|
||||
_relayNumber(number \ 4) = (_relayNumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (1 << ((number Mod 4) * 2))
|
||||
Else '置位10
|
||||
_relayNumber(number \ 4) = (_relayNumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (2 << ((number Mod 4) * 2))
|
||||
End If
|
||||
Return _relayNumber
|
||||
|
||||
'relayNumber(number \ 4) = 1 << ((number Mod 4) * 2)
|
||||
'For index = 0 To 19
|
||||
' relayNumber(index \ 4) = relayNumber(index \ 4) Or (1 << (index Mod 4 * 2))
|
||||
'Next
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器状态
|
||||
''' </summary>
|
||||
''' <param name="index"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetRelayStatus(index As Integer) As Boolean
|
||||
Dim bt As Byte = _relayNumber(index \ 4) >> ((index Mod 4) * 2) And 3
|
||||
|
||||
If bt = 1 Then Return True
|
||||
Return False
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C5-IO 检测输入
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button22_Click_1(sender As Object, e As EventArgs) Handles Button22.Click
|
||||
Dim cmd As Byte
|
||||
Dim testState As Byte = &H1 '测试状态
|
||||
Dim devType As Byte = &HF1 '设备类型
|
||||
Dim devAddr As Byte = &H0 '设备地址默认为0
|
||||
Dim devCmd As Byte = &H3 '测试时间——3分钟
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd)
|
||||
|
||||
'组包
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"输入测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 输出测试
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button79_Click_1(sender As Object, e As EventArgs) Handles Button83.Click, Button82.Click, Button81.Click, Button80.Click, Button79.Click
|
||||
Dim cmd As Byte
|
||||
Dim btn As Button = sender
|
||||
Dim index As Integer = sender.tag
|
||||
Dim flg As Boolean = Not GetC5DOStatus(index)
|
||||
Dim param() As Byte = GetC5DONumber(index, flg)
|
||||
|
||||
'组包
|
||||
Dim testState As Byte = &H2 '测试状态
|
||||
Dim devType As Byte = &HF1 '设备类型
|
||||
Dim devAddr As Byte = &H0 '设备地址默认为0
|
||||
Dim devCmd As Byte = &H23 '测试命令字
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"输出测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
|
||||
If flg Then
|
||||
btn.BackColor = Color.Green
|
||||
Else
|
||||
btn.BackColor = Color.Transparent
|
||||
End If
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 获取C5测试输出序号
|
||||
''' </summary>
|
||||
Private C5DONumber(1) As Byte
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器状态
|
||||
''' </summary>
|
||||
''' <param name="index"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetC5DOStatus(index As Integer) As Boolean
|
||||
Dim bt As Byte = C5DONumber(index \ 4) >> ((index Mod 4) * 2) And 3
|
||||
If bt = 1 Then Return True
|
||||
Return False
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取输入序号
|
||||
''' </summary>
|
||||
''' <param name="number"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetC5DONumber(number As Integer, start As Boolean) As Byte()
|
||||
If start Then '置位01
|
||||
C5DONumber(number \ 4) = (C5DONumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (1 << ((number Mod 4) * 2))
|
||||
Else '置位10
|
||||
C5DONumber(number \ 4) = (C5DONumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (2 << ((number Mod 4) * 2))
|
||||
End If
|
||||
|
||||
Return C5DONumber
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C5测试音频播放文件下
|
||||
''' </summary>
|
||||
Private _PlayFolder() As String = {$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.MusicFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SoundPromptFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepingFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.DoorbellFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.WelcomeMessageFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder1Meditate)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder2SeaWave)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder3Forest)}"}
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 初始化文件夹可选项
|
||||
''' </summary>
|
||||
Private Sub InitFolderItems()
|
||||
ComboBox10.Items.Clear()
|
||||
ComboBox10.Items.AddRange(_PlayFolder)
|
||||
If ComboBox10.Items.Count > 4 Then ComboBox10.SelectedIndex = 4
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 音乐播放
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button21_Click_1(sender As Object, e As EventArgs) Handles Button21.Click
|
||||
Dim cmd As Byte
|
||||
'组包
|
||||
Dim testState As Byte = &H2 '测试状态
|
||||
Dim devType As Byte = &H15 '设备类型
|
||||
Dim devAddr As Byte = &H1 '设备地址默认为0
|
||||
Dim devCmd As Byte = &H22 '测试命令字
|
||||
Dim param() As Byte = C5MusicTest()
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"音频测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C5音频测试
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Private Function C5MusicTest()
|
||||
Dim playFolder As Byte = GetPlayFolder(ComboBox10.Text)
|
||||
Dim playFile As Byte = $"&H{Hex(NumericUpDown1.Value)}"
|
||||
|
||||
Dim databuff As New List(Of Byte)
|
||||
databuff.Add(&H7) '播放音乐状态
|
||||
databuff.Add(playFolder) '播放音乐文件夹
|
||||
databuff.Add(playFile) '播放音乐文件
|
||||
|
||||
Return databuff.ToArray
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取播放文件夹
|
||||
''' </summary>
|
||||
''' <param name="text"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetPlayFolder(text As String) As Byte
|
||||
Dim palyFolder As Byte
|
||||
Select Case text
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.MusicFolder)}"
|
||||
palyFolder = &H0
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SoundPromptFolder)}"
|
||||
palyFolder = &H1
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepingFolder)}"
|
||||
palyFolder = &H2
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.DoorbellFolder)}"
|
||||
palyFolder = &H3
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.WelcomeMessageFolder)}"
|
||||
palyFolder = &H4
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder1Meditate)}"
|
||||
palyFolder = &H5
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder2SeaWave)}"
|
||||
palyFolder = &H6
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder3Forest)}"
|
||||
palyFolder = &H7
|
||||
End Select
|
||||
|
||||
Return palyFolder
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 起始时间
|
||||
''' </summary>
|
||||
Private _startTime As Date
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C5_巡回测试
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button23_Click_1(sender As Object, e As EventArgs) Handles Button23.Click
|
||||
Label48.ForeColor = Color.Black
|
||||
Label48.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Test)}..."
|
||||
Dim cmd As Byte
|
||||
'组包
|
||||
Dim data(0) As Byte
|
||||
data(0) = &H3
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"巡回测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
|
||||
'_isTourRealy = Fals
|
||||
'WaitInfraredForRelay()
|
||||
'If _isTourRealy = False Then
|
||||
' AppendTipText($"巡回测试失败!", Color.Red)
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 设置MAC地址
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button20_Click_1(sender As Object, e As EventArgs) Handles Button20.Click
|
||||
Dim frmmacdia As New FrmMACDialog(FCsConfig)
|
||||
frmmacdia.ShowMyDialog()
|
||||
Label51.ForeColor = Color.Black
|
||||
Label51.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Test)}..."
|
||||
|
||||
If FCsConfig._IsOK = True Then
|
||||
Dim data() As Byte = frmmacdia.GetMACAddress()
|
||||
Dim cmd As Byte = &H6
|
||||
'发送
|
||||
Dim databuff As Byte() = FCsConfig.FillMACIssuedData(data)
|
||||
Dim sendDatas As Byte() = FillSetMACPacket(cmd, databuff)
|
||||
Console.WriteLine($"串口设置MAC:{ByteToString(sendDatas)}")
|
||||
SendData(sendDatas)
|
||||
FCsConfig._IsOK = False
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 发送MAC
|
||||
''' </summary>
|
||||
''' <param name="cmd"></param>
|
||||
''' <param name="dataBuff"></param>
|
||||
''' <returns></returns>
|
||||
Public Function FillSetMACPacket(cmd As Byte, dataBuff() As Byte) As Byte()
|
||||
If _connectStatus = True Then
|
||||
cmd = &H31 '网络测试Cmd
|
||||
dataBuff = FCsConfig.FillSendData(cmd, dataBuff)
|
||||
Else
|
||||
dataBuff = FillModelsSerialPortTest(cmd, dataBuff)
|
||||
End If
|
||||
|
||||
Return dataBuff
|
||||
End Function
|
||||
|
||||
Public Sub ShowForm1(parentControl As Control, ftext As String) Implements IFrmTest.ShowForm1
|
||||
FormBorderStyle = FormBorderStyle.None '无边框
|
||||
TopLevel = False
|
||||
Dock = DockStyle.Fill '填满大小
|
||||
Parent = parentControl '父容器
|
||||
If Not String.IsNullOrEmpty(ftext) Then
|
||||
Text = ftext
|
||||
End If
|
||||
Show()
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
End Class
|
||||
670
BLV_Studio/Control/FrmTest_C8.Designer.vb
generated
Normal file
670
BLV_Studio/Control/FrmTest_C8.Designer.vb
generated
Normal file
@@ -0,0 +1,670 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class FrmTest_C8
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form 重写 Dispose,以清理组件列表。
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Windows 窗体设计器所必需的
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||
'可以使用 Windows 窗体设计器修改它。
|
||||
'不要使用代码编辑器修改它。
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.BtnDimming = New System.Windows.Forms.Button()
|
||||
Me.Label7 = New System.Windows.Forms.Label()
|
||||
Me.LblInput13 = New System.Windows.Forms.Label()
|
||||
Me.LblInput12 = New System.Windows.Forms.Label()
|
||||
Me.LblInput11 = New System.Windows.Forms.Label()
|
||||
Me.LblInput10 = New System.Windows.Forms.Label()
|
||||
Me.LblInput9 = New System.Windows.Forms.Label()
|
||||
Me.LblInput8 = New System.Windows.Forms.Label()
|
||||
Me.Label48 = New System.Windows.Forms.Label()
|
||||
Me.LblInput7 = New System.Windows.Forms.Label()
|
||||
Me.LblInput6 = New System.Windows.Forms.Label()
|
||||
Me.LblInput5 = New System.Windows.Forms.Label()
|
||||
Me.LblInput4 = New System.Windows.Forms.Label()
|
||||
Me.LblInput3 = New System.Windows.Forms.Label()
|
||||
Me.LblInput2 = New System.Windows.Forms.Label()
|
||||
Me.LblInput1 = New System.Windows.Forms.Label()
|
||||
Me.Label40 = New System.Windows.Forms.Label()
|
||||
Me.Button23 = New System.Windows.Forms.Button()
|
||||
Me.BtnInputTest = New System.Windows.Forms.Button()
|
||||
Me.Button21 = New System.Windows.Forms.Button()
|
||||
Me.Label39 = New System.Windows.Forms.Label()
|
||||
Me.NumericUpDown1 = New System.Windows.Forms.NumericUpDown()
|
||||
Me.Label38 = New System.Windows.Forms.Label()
|
||||
Me.ComboBox10 = New System.Windows.Forms.ComboBox()
|
||||
Me.Label37 = New System.Windows.Forms.Label()
|
||||
Me.Label36 = New System.Windows.Forms.Label()
|
||||
Me.BtnOutput5 = New System.Windows.Forms.Button()
|
||||
Me.BtnOutput4 = New System.Windows.Forms.Button()
|
||||
Me.BtnOutput3 = New System.Windows.Forms.Button()
|
||||
Me.BtnOutput2 = New System.Windows.Forms.Button()
|
||||
Me.BtnOutput1 = New System.Windows.Forms.Button()
|
||||
Me.Label35 = New System.Windows.Forms.Label()
|
||||
Me.BtnRelay13 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay12 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay11 = New System.Windows.Forms.Button()
|
||||
Me.Label34 = New System.Windows.Forms.Label()
|
||||
Me.BtnRelay10 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay9 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay7 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay6 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay8 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay5 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay4 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay3 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay2 = New System.Windows.Forms.Button()
|
||||
Me.BtnRelay1 = New System.Windows.Forms.Button()
|
||||
CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'BtnDimming
|
||||
'
|
||||
Me.BtnDimming.Location = New System.Drawing.Point(99, 8)
|
||||
Me.BtnDimming.Name = "BtnDimming"
|
||||
Me.BtnDimming.Size = New System.Drawing.Size(62, 24)
|
||||
Me.BtnDimming.TabIndex = 180
|
||||
Me.BtnDimming.Text = "调光测试"
|
||||
Me.BtnDimming.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label7
|
||||
'
|
||||
Me.Label7.AutoSize = True
|
||||
Me.Label7.Location = New System.Drawing.Point(20, 10)
|
||||
Me.Label7.Name = "Label7"
|
||||
Me.Label7.Size = New System.Drawing.Size(47, 12)
|
||||
Me.Label7.TabIndex = 179
|
||||
Me.Label7.Text = "C8 调光"
|
||||
'
|
||||
'LblInput13
|
||||
'
|
||||
Me.LblInput13.AutoSize = True
|
||||
Me.LblInput13.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput13.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput13.Location = New System.Drawing.Point(510, 145)
|
||||
Me.LblInput13.Name = "LblInput13"
|
||||
Me.LblInput13.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput13.TabIndex = 178
|
||||
Me.LblInput13.Text = " 13 "
|
||||
'
|
||||
'LblInput12
|
||||
'
|
||||
Me.LblInput12.AutoSize = True
|
||||
Me.LblInput12.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput12.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput12.Location = New System.Drawing.Point(465, 145)
|
||||
Me.LblInput12.Name = "LblInput12"
|
||||
Me.LblInput12.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput12.TabIndex = 177
|
||||
Me.LblInput12.Text = " 12 "
|
||||
'
|
||||
'LblInput11
|
||||
'
|
||||
Me.LblInput11.AutoSize = True
|
||||
Me.LblInput11.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput11.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput11.Location = New System.Drawing.Point(420, 145)
|
||||
Me.LblInput11.Name = "LblInput11"
|
||||
Me.LblInput11.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput11.TabIndex = 176
|
||||
Me.LblInput11.Text = " 11 "
|
||||
'
|
||||
'LblInput10
|
||||
'
|
||||
Me.LblInput10.AutoSize = True
|
||||
Me.LblInput10.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput10.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput10.Location = New System.Drawing.Point(375, 145)
|
||||
Me.LblInput10.Name = "LblInput10"
|
||||
Me.LblInput10.Size = New System.Drawing.Size(37, 16)
|
||||
Me.LblInput10.TabIndex = 175
|
||||
Me.LblInput10.Text = " 10 "
|
||||
'
|
||||
'LblInput9
|
||||
'
|
||||
Me.LblInput9.AutoSize = True
|
||||
Me.LblInput9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput9.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput9.Location = New System.Drawing.Point(337, 145)
|
||||
Me.LblInput9.Name = "LblInput9"
|
||||
Me.LblInput9.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput9.TabIndex = 174
|
||||
Me.LblInput9.Text = " 9 "
|
||||
'
|
||||
'LblInput8
|
||||
'
|
||||
Me.LblInput8.AutoSize = True
|
||||
Me.LblInput8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput8.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput8.Location = New System.Drawing.Point(299, 145)
|
||||
Me.LblInput8.Name = "LblInput8"
|
||||
Me.LblInput8.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput8.TabIndex = 173
|
||||
Me.LblInput8.Text = " 8 "
|
||||
'
|
||||
'Label48
|
||||
'
|
||||
Me.Label48.AutoSize = True
|
||||
Me.Label48.Font = New System.Drawing.Font("宋体", 21.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.Label48.Location = New System.Drawing.Point(204, 217)
|
||||
Me.Label48.Name = "Label48"
|
||||
Me.Label48.Size = New System.Drawing.Size(125, 29)
|
||||
Me.Label48.TabIndex = 172
|
||||
Me.Label48.Text = "Test..."
|
||||
'
|
||||
'LblInput7
|
||||
'
|
||||
Me.LblInput7.AutoSize = True
|
||||
Me.LblInput7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput7.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput7.Location = New System.Drawing.Point(261, 145)
|
||||
Me.LblInput7.Name = "LblInput7"
|
||||
Me.LblInput7.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput7.TabIndex = 171
|
||||
Me.LblInput7.Text = " 7 "
|
||||
'
|
||||
'LblInput6
|
||||
'
|
||||
Me.LblInput6.AutoSize = True
|
||||
Me.LblInput6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput6.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput6.Location = New System.Drawing.Point(223, 145)
|
||||
Me.LblInput6.Name = "LblInput6"
|
||||
Me.LblInput6.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput6.TabIndex = 170
|
||||
Me.LblInput6.Text = " 6 "
|
||||
'
|
||||
'LblInput5
|
||||
'
|
||||
Me.LblInput5.AutoSize = True
|
||||
Me.LblInput5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput5.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput5.Location = New System.Drawing.Point(185, 145)
|
||||
Me.LblInput5.Name = "LblInput5"
|
||||
Me.LblInput5.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput5.TabIndex = 169
|
||||
Me.LblInput5.Text = " 5 "
|
||||
'
|
||||
'LblInput4
|
||||
'
|
||||
Me.LblInput4.AutoSize = True
|
||||
Me.LblInput4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput4.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput4.Location = New System.Drawing.Point(147, 145)
|
||||
Me.LblInput4.Name = "LblInput4"
|
||||
Me.LblInput4.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput4.TabIndex = 168
|
||||
Me.LblInput4.Text = " 4 "
|
||||
'
|
||||
'LblInput3
|
||||
'
|
||||
Me.LblInput3.AutoSize = True
|
||||
Me.LblInput3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput3.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput3.Location = New System.Drawing.Point(109, 145)
|
||||
Me.LblInput3.Name = "LblInput3"
|
||||
Me.LblInput3.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput3.TabIndex = 167
|
||||
Me.LblInput3.Text = " 3 "
|
||||
'
|
||||
'LblInput2
|
||||
'
|
||||
Me.LblInput2.AutoSize = True
|
||||
Me.LblInput2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput2.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput2.Location = New System.Drawing.Point(71, 145)
|
||||
Me.LblInput2.Name = "LblInput2"
|
||||
Me.LblInput2.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput2.TabIndex = 166
|
||||
Me.LblInput2.Text = " 2 "
|
||||
'
|
||||
'LblInput1
|
||||
'
|
||||
Me.LblInput1.AutoSize = True
|
||||
Me.LblInput1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.LblInput1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.LblInput1.Location = New System.Drawing.Point(33, 145)
|
||||
Me.LblInput1.Name = "LblInput1"
|
||||
Me.LblInput1.Size = New System.Drawing.Size(30, 16)
|
||||
Me.LblInput1.TabIndex = 165
|
||||
Me.LblInput1.Text = " 1 "
|
||||
'
|
||||
'Label40
|
||||
'
|
||||
Me.Label40.AutoSize = True
|
||||
Me.Label40.Location = New System.Drawing.Point(20, 217)
|
||||
Me.Label40.Name = "Label40"
|
||||
Me.Label40.Size = New System.Drawing.Size(71, 12)
|
||||
Me.Label40.TabIndex = 164
|
||||
Me.Label40.Text = "C8 巡回测试"
|
||||
'
|
||||
'Button23
|
||||
'
|
||||
Me.Button23.Location = New System.Drawing.Point(116, 217)
|
||||
Me.Button23.Name = "Button23"
|
||||
Me.Button23.Size = New System.Drawing.Size(68, 25)
|
||||
Me.Button23.TabIndex = 163
|
||||
Me.Button23.Text = "巡回测试"
|
||||
Me.Button23.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnInputTest
|
||||
'
|
||||
Me.BtnInputTest.Location = New System.Drawing.Point(577, 141)
|
||||
Me.BtnInputTest.Name = "BtnInputTest"
|
||||
Me.BtnInputTest.Size = New System.Drawing.Size(62, 24)
|
||||
Me.BtnInputTest.TabIndex = 162
|
||||
Me.BtnInputTest.Text = "输入检测"
|
||||
Me.BtnInputTest.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button21
|
||||
'
|
||||
Me.Button21.Location = New System.Drawing.Point(575, 190)
|
||||
Me.Button21.Name = "Button21"
|
||||
Me.Button21.Size = New System.Drawing.Size(62, 21)
|
||||
Me.Button21.TabIndex = 161
|
||||
Me.Button21.Text = "播放"
|
||||
Me.Button21.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label39
|
||||
'
|
||||
Me.Label39.AutoSize = True
|
||||
Me.Label39.BackColor = System.Drawing.SystemColors.Control
|
||||
Me.Label39.Location = New System.Drawing.Point(278, 194)
|
||||
Me.Label39.Name = "Label39"
|
||||
Me.Label39.Size = New System.Drawing.Size(77, 12)
|
||||
Me.Label39.TabIndex = 160
|
||||
Me.Label39.Text = "播放文件序号"
|
||||
Me.Label39.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'NumericUpDown1
|
||||
'
|
||||
Me.NumericUpDown1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.NumericUpDown1.Location = New System.Drawing.Point(361, 190)
|
||||
Me.NumericUpDown1.Maximum = New Decimal(New Integer() {10, 0, 0, 0})
|
||||
Me.NumericUpDown1.Minimum = New Decimal(New Integer() {1, 0, 0, 0})
|
||||
Me.NumericUpDown1.Name = "NumericUpDown1"
|
||||
Me.NumericUpDown1.Size = New System.Drawing.Size(86, 23)
|
||||
Me.NumericUpDown1.TabIndex = 159
|
||||
Me.NumericUpDown1.Value = New Decimal(New Integer() {1, 0, 0, 0})
|
||||
'
|
||||
'Label38
|
||||
'
|
||||
Me.Label38.AutoSize = True
|
||||
Me.Label38.Location = New System.Drawing.Point(45, 194)
|
||||
Me.Label38.Name = "Label38"
|
||||
Me.Label38.Size = New System.Drawing.Size(65, 12)
|
||||
Me.Label38.TabIndex = 158
|
||||
Me.Label38.Text = "播放文件夹"
|
||||
Me.Label38.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'ComboBox10
|
||||
'
|
||||
Me.ComboBox10.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
|
||||
Me.ComboBox10.FormattingEnabled = True
|
||||
Me.ComboBox10.Location = New System.Drawing.Point(116, 191)
|
||||
Me.ComboBox10.Name = "ComboBox10"
|
||||
Me.ComboBox10.Size = New System.Drawing.Size(138, 20)
|
||||
Me.ComboBox10.TabIndex = 157
|
||||
'
|
||||
'Label37
|
||||
'
|
||||
Me.Label37.AutoSize = True
|
||||
Me.Label37.Location = New System.Drawing.Point(20, 171)
|
||||
Me.Label37.Name = "Label37"
|
||||
Me.Label37.Size = New System.Drawing.Size(53, 12)
|
||||
Me.Label37.TabIndex = 156
|
||||
Me.Label37.Text = "C8 MUSIC"
|
||||
'
|
||||
'Label36
|
||||
'
|
||||
Me.Label36.AutoSize = True
|
||||
Me.Label36.Location = New System.Drawing.Point(20, 85)
|
||||
Me.Label36.Name = "Label36"
|
||||
Me.Label36.Size = New System.Drawing.Size(65, 12)
|
||||
Me.Label36.TabIndex = 155
|
||||
Me.Label36.Text = "C8 IO 输出"
|
||||
'
|
||||
'BtnOutput5
|
||||
'
|
||||
Me.BtnOutput5.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnOutput5.Location = New System.Drawing.Point(189, 100)
|
||||
Me.BtnOutput5.Name = "BtnOutput5"
|
||||
Me.BtnOutput5.Size = New System.Drawing.Size(31, 26)
|
||||
Me.BtnOutput5.TabIndex = 154
|
||||
Me.BtnOutput5.Tag = "4"
|
||||
Me.BtnOutput5.Text = "5"
|
||||
Me.BtnOutput5.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnOutput4
|
||||
'
|
||||
Me.BtnOutput4.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnOutput4.Location = New System.Drawing.Point(150, 100)
|
||||
Me.BtnOutput4.Name = "BtnOutput4"
|
||||
Me.BtnOutput4.Size = New System.Drawing.Size(31, 26)
|
||||
Me.BtnOutput4.TabIndex = 153
|
||||
Me.BtnOutput4.Tag = "3"
|
||||
Me.BtnOutput4.Text = "4"
|
||||
Me.BtnOutput4.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnOutput3
|
||||
'
|
||||
Me.BtnOutput3.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnOutput3.Location = New System.Drawing.Point(111, 100)
|
||||
Me.BtnOutput3.Name = "BtnOutput3"
|
||||
Me.BtnOutput3.Size = New System.Drawing.Size(31, 26)
|
||||
Me.BtnOutput3.TabIndex = 152
|
||||
Me.BtnOutput3.Tag = "2"
|
||||
Me.BtnOutput3.Text = "3"
|
||||
Me.BtnOutput3.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnOutput2
|
||||
'
|
||||
Me.BtnOutput2.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnOutput2.Location = New System.Drawing.Point(72, 100)
|
||||
Me.BtnOutput2.Name = "BtnOutput2"
|
||||
Me.BtnOutput2.Size = New System.Drawing.Size(31, 26)
|
||||
Me.BtnOutput2.TabIndex = 151
|
||||
Me.BtnOutput2.Tag = "1"
|
||||
Me.BtnOutput2.Text = "2"
|
||||
Me.BtnOutput2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnOutput1
|
||||
'
|
||||
Me.BtnOutput1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnOutput1.Location = New System.Drawing.Point(33, 100)
|
||||
Me.BtnOutput1.Name = "BtnOutput1"
|
||||
Me.BtnOutput1.Size = New System.Drawing.Size(31, 26)
|
||||
Me.BtnOutput1.TabIndex = 150
|
||||
Me.BtnOutput1.Tag = "0"
|
||||
Me.BtnOutput1.Text = "1"
|
||||
Me.BtnOutput1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label35
|
||||
'
|
||||
Me.Label35.AutoSize = True
|
||||
Me.Label35.Location = New System.Drawing.Point(20, 129)
|
||||
Me.Label35.Name = "Label35"
|
||||
Me.Label35.Size = New System.Drawing.Size(65, 12)
|
||||
Me.Label35.TabIndex = 149
|
||||
Me.Label35.Text = "C8 IO 输入"
|
||||
'
|
||||
'BtnRelay13
|
||||
'
|
||||
Me.BtnRelay13.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay13.Location = New System.Drawing.Point(501, 55)
|
||||
Me.BtnRelay13.Name = "BtnRelay13"
|
||||
Me.BtnRelay13.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay13.TabIndex = 148
|
||||
Me.BtnRelay13.Tag = "12"
|
||||
Me.BtnRelay13.Text = "13"
|
||||
Me.BtnRelay13.UseVisualStyleBackColor = True
|
||||
Me.BtnRelay13.Visible = False
|
||||
'
|
||||
'BtnRelay12
|
||||
'
|
||||
Me.BtnRelay12.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay12.Location = New System.Drawing.Point(462, 55)
|
||||
Me.BtnRelay12.Name = "BtnRelay12"
|
||||
Me.BtnRelay12.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay12.TabIndex = 146
|
||||
Me.BtnRelay12.Tag = "11"
|
||||
Me.BtnRelay12.Text = "12"
|
||||
Me.BtnRelay12.UseVisualStyleBackColor = True
|
||||
Me.BtnRelay12.Visible = False
|
||||
'
|
||||
'BtnRelay11
|
||||
'
|
||||
Me.BtnRelay11.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay11.Location = New System.Drawing.Point(423, 55)
|
||||
Me.BtnRelay11.Name = "BtnRelay11"
|
||||
Me.BtnRelay11.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay11.TabIndex = 147
|
||||
Me.BtnRelay11.Tag = "10"
|
||||
Me.BtnRelay11.Text = "11"
|
||||
Me.BtnRelay11.UseVisualStyleBackColor = True
|
||||
Me.BtnRelay11.Visible = False
|
||||
'
|
||||
'Label34
|
||||
'
|
||||
Me.Label34.AutoSize = True
|
||||
Me.Label34.Location = New System.Drawing.Point(20, 40)
|
||||
Me.Label34.Name = "Label34"
|
||||
Me.Label34.Size = New System.Drawing.Size(101, 12)
|
||||
Me.Label34.TabIndex = 145
|
||||
Me.Label34.Text = "C8 IO 继电器控制"
|
||||
'
|
||||
'BtnRelay10
|
||||
'
|
||||
Me.BtnRelay10.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay10.Location = New System.Drawing.Point(384, 55)
|
||||
Me.BtnRelay10.Name = "BtnRelay10"
|
||||
Me.BtnRelay10.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay10.TabIndex = 144
|
||||
Me.BtnRelay10.Tag = "9"
|
||||
Me.BtnRelay10.Text = "10"
|
||||
Me.BtnRelay10.UseVisualStyleBackColor = True
|
||||
Me.BtnRelay10.Visible = False
|
||||
'
|
||||
'BtnRelay9
|
||||
'
|
||||
Me.BtnRelay9.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay9.Location = New System.Drawing.Point(345, 55)
|
||||
Me.BtnRelay9.Name = "BtnRelay9"
|
||||
Me.BtnRelay9.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay9.TabIndex = 143
|
||||
Me.BtnRelay9.Tag = "8"
|
||||
Me.BtnRelay9.Text = "9"
|
||||
Me.BtnRelay9.UseVisualStyleBackColor = True
|
||||
Me.BtnRelay9.Visible = False
|
||||
'
|
||||
'BtnRelay7
|
||||
'
|
||||
Me.BtnRelay7.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay7.Location = New System.Drawing.Point(267, 55)
|
||||
Me.BtnRelay7.Name = "BtnRelay7"
|
||||
Me.BtnRelay7.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay7.TabIndex = 142
|
||||
Me.BtnRelay7.Tag = "6"
|
||||
Me.BtnRelay7.Text = "7"
|
||||
Me.BtnRelay7.UseVisualStyleBackColor = True
|
||||
Me.BtnRelay7.Visible = False
|
||||
'
|
||||
'BtnRelay6
|
||||
'
|
||||
Me.BtnRelay6.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay6.Location = New System.Drawing.Point(228, 55)
|
||||
Me.BtnRelay6.Name = "BtnRelay6"
|
||||
Me.BtnRelay6.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay6.TabIndex = 141
|
||||
Me.BtnRelay6.Tag = "5"
|
||||
Me.BtnRelay6.Text = "6"
|
||||
Me.BtnRelay6.UseVisualStyleBackColor = True
|
||||
Me.BtnRelay6.Visible = False
|
||||
'
|
||||
'BtnRelay8
|
||||
'
|
||||
Me.BtnRelay8.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay8.Location = New System.Drawing.Point(306, 55)
|
||||
Me.BtnRelay8.Name = "BtnRelay8"
|
||||
Me.BtnRelay8.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay8.TabIndex = 140
|
||||
Me.BtnRelay8.Tag = "7"
|
||||
Me.BtnRelay8.Text = "8"
|
||||
Me.BtnRelay8.UseVisualStyleBackColor = True
|
||||
Me.BtnRelay8.Visible = False
|
||||
'
|
||||
'BtnRelay5
|
||||
'
|
||||
Me.BtnRelay5.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay5.Location = New System.Drawing.Point(189, 55)
|
||||
Me.BtnRelay5.Name = "BtnRelay5"
|
||||
Me.BtnRelay5.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay5.TabIndex = 139
|
||||
Me.BtnRelay5.Tag = "4"
|
||||
Me.BtnRelay5.Text = "5"
|
||||
Me.BtnRelay5.UseVisualStyleBackColor = True
|
||||
Me.BtnRelay5.Visible = False
|
||||
'
|
||||
'BtnRelay4
|
||||
'
|
||||
Me.BtnRelay4.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay4.Location = New System.Drawing.Point(150, 55)
|
||||
Me.BtnRelay4.Name = "BtnRelay4"
|
||||
Me.BtnRelay4.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay4.TabIndex = 138
|
||||
Me.BtnRelay4.Tag = "3"
|
||||
Me.BtnRelay4.Text = "4"
|
||||
Me.BtnRelay4.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay3
|
||||
'
|
||||
Me.BtnRelay3.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay3.Location = New System.Drawing.Point(111, 55)
|
||||
Me.BtnRelay3.Name = "BtnRelay3"
|
||||
Me.BtnRelay3.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay3.TabIndex = 137
|
||||
Me.BtnRelay3.Tag = "2"
|
||||
Me.BtnRelay3.Text = "3"
|
||||
Me.BtnRelay3.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay2
|
||||
'
|
||||
Me.BtnRelay2.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay2.Location = New System.Drawing.Point(72, 55)
|
||||
Me.BtnRelay2.Name = "BtnRelay2"
|
||||
Me.BtnRelay2.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay2.TabIndex = 136
|
||||
Me.BtnRelay2.Tag = "1"
|
||||
Me.BtnRelay2.Text = "2"
|
||||
Me.BtnRelay2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'BtnRelay1
|
||||
'
|
||||
Me.BtnRelay1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||
Me.BtnRelay1.Location = New System.Drawing.Point(33, 55)
|
||||
Me.BtnRelay1.Name = "BtnRelay1"
|
||||
Me.BtnRelay1.Size = New System.Drawing.Size(31, 27)
|
||||
Me.BtnRelay1.TabIndex = 135
|
||||
Me.BtnRelay1.Tag = "0"
|
||||
Me.BtnRelay1.Text = "1"
|
||||
Me.BtnRelay1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'FrmTest_C8
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(658, 256)
|
||||
Me.Controls.Add(Me.BtnDimming)
|
||||
Me.Controls.Add(Me.Label7)
|
||||
Me.Controls.Add(Me.LblInput13)
|
||||
Me.Controls.Add(Me.LblInput12)
|
||||
Me.Controls.Add(Me.LblInput11)
|
||||
Me.Controls.Add(Me.LblInput10)
|
||||
Me.Controls.Add(Me.LblInput9)
|
||||
Me.Controls.Add(Me.LblInput8)
|
||||
Me.Controls.Add(Me.Label48)
|
||||
Me.Controls.Add(Me.LblInput7)
|
||||
Me.Controls.Add(Me.LblInput6)
|
||||
Me.Controls.Add(Me.LblInput5)
|
||||
Me.Controls.Add(Me.LblInput4)
|
||||
Me.Controls.Add(Me.LblInput3)
|
||||
Me.Controls.Add(Me.LblInput2)
|
||||
Me.Controls.Add(Me.LblInput1)
|
||||
Me.Controls.Add(Me.Label40)
|
||||
Me.Controls.Add(Me.Button23)
|
||||
Me.Controls.Add(Me.BtnInputTest)
|
||||
Me.Controls.Add(Me.Button21)
|
||||
Me.Controls.Add(Me.Label39)
|
||||
Me.Controls.Add(Me.NumericUpDown1)
|
||||
Me.Controls.Add(Me.Label38)
|
||||
Me.Controls.Add(Me.ComboBox10)
|
||||
Me.Controls.Add(Me.Label37)
|
||||
Me.Controls.Add(Me.Label36)
|
||||
Me.Controls.Add(Me.BtnOutput5)
|
||||
Me.Controls.Add(Me.BtnOutput4)
|
||||
Me.Controls.Add(Me.BtnOutput3)
|
||||
Me.Controls.Add(Me.BtnOutput2)
|
||||
Me.Controls.Add(Me.BtnOutput1)
|
||||
Me.Controls.Add(Me.Label35)
|
||||
Me.Controls.Add(Me.BtnRelay13)
|
||||
Me.Controls.Add(Me.BtnRelay12)
|
||||
Me.Controls.Add(Me.BtnRelay11)
|
||||
Me.Controls.Add(Me.Label34)
|
||||
Me.Controls.Add(Me.BtnRelay10)
|
||||
Me.Controls.Add(Me.BtnRelay9)
|
||||
Me.Controls.Add(Me.BtnRelay7)
|
||||
Me.Controls.Add(Me.BtnRelay6)
|
||||
Me.Controls.Add(Me.BtnRelay8)
|
||||
Me.Controls.Add(Me.BtnRelay5)
|
||||
Me.Controls.Add(Me.BtnRelay4)
|
||||
Me.Controls.Add(Me.BtnRelay3)
|
||||
Me.Controls.Add(Me.BtnRelay2)
|
||||
Me.Controls.Add(Me.BtnRelay1)
|
||||
Me.Name = "FrmTest_C8"
|
||||
Me.Text = "FrmTest_C8"
|
||||
CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
|
||||
Friend WithEvents BtnDimming As Button
|
||||
Friend WithEvents Label7 As Label
|
||||
Friend WithEvents LblInput13 As Label
|
||||
Friend WithEvents LblInput12 As Label
|
||||
Friend WithEvents LblInput11 As Label
|
||||
Friend WithEvents LblInput10 As Label
|
||||
Friend WithEvents LblInput9 As Label
|
||||
Friend WithEvents LblInput8 As Label
|
||||
Friend WithEvents Label48 As Label
|
||||
Friend WithEvents LblInput7 As Label
|
||||
Friend WithEvents LblInput6 As Label
|
||||
Friend WithEvents LblInput5 As Label
|
||||
Friend WithEvents LblInput4 As Label
|
||||
Friend WithEvents LblInput3 As Label
|
||||
Friend WithEvents LblInput2 As Label
|
||||
Friend WithEvents LblInput1 As Label
|
||||
Friend WithEvents Label40 As Label
|
||||
Friend WithEvents Button23 As Button
|
||||
Friend WithEvents BtnInputTest As Button
|
||||
Friend WithEvents Button21 As Button
|
||||
Friend WithEvents Label39 As Label
|
||||
Friend WithEvents NumericUpDown1 As NumericUpDown
|
||||
Friend WithEvents Label38 As Label
|
||||
Friend WithEvents ComboBox10 As ComboBox
|
||||
Friend WithEvents Label37 As Label
|
||||
Friend WithEvents Label36 As Label
|
||||
Friend WithEvents BtnOutput5 As Button
|
||||
Friend WithEvents BtnOutput4 As Button
|
||||
Friend WithEvents BtnOutput3 As Button
|
||||
Friend WithEvents BtnOutput2 As Button
|
||||
Friend WithEvents BtnOutput1 As Button
|
||||
Friend WithEvents Label35 As Label
|
||||
Friend WithEvents BtnRelay13 As Button
|
||||
Friend WithEvents BtnRelay12 As Button
|
||||
Friend WithEvents BtnRelay11 As Button
|
||||
Friend WithEvents Label34 As Label
|
||||
Friend WithEvents BtnRelay10 As Button
|
||||
Friend WithEvents BtnRelay9 As Button
|
||||
Friend WithEvents BtnRelay7 As Button
|
||||
Friend WithEvents BtnRelay6 As Button
|
||||
Friend WithEvents BtnRelay8 As Button
|
||||
Friend WithEvents BtnRelay5 As Button
|
||||
Friend WithEvents BtnRelay4 As Button
|
||||
Friend WithEvents BtnRelay3 As Button
|
||||
Friend WithEvents BtnRelay2 As Button
|
||||
Friend WithEvents BtnRelay1 As Button
|
||||
End Class
|
||||
120
BLV_Studio/Control/FrmTest_C8.resx
Normal file
120
BLV_Studio/Control/FrmTest_C8.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
390
BLV_Studio/Control/FrmTest_C8.vb
Normal file
390
BLV_Studio/Control/FrmTest_C8.vb
Normal file
@@ -0,0 +1,390 @@
|
||||
Public Class FrmTest_C8
|
||||
|
||||
Implements IFrmTest
|
||||
Public FCsConfig As FrmCSeriesConfig
|
||||
Sub New(pathme As FrmCSeriesConfig)
|
||||
|
||||
' 此调用是设计器所必需的。
|
||||
InitializeComponent()
|
||||
FCsConfig = pathme
|
||||
' 在 InitializeComponent() 调用之后添加任何初始化。
|
||||
|
||||
End Sub
|
||||
#Region "多语种信息"
|
||||
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 初始化界面控件文本
|
||||
''' </summary>
|
||||
Private Sub MultiLanguageInfo()
|
||||
'控件.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.RelayControl)
|
||||
'Label7.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.Dimming)
|
||||
'BtnDimming.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.DimmingTest)
|
||||
'Label34.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.RelayControl)
|
||||
'Label36.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.IOOutput)
|
||||
'Label35.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.IOInput)
|
||||
'Label40.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.ItinerateTest)
|
||||
'Label37.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.Music)
|
||||
'BtnInputTest.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.TheInputTest)
|
||||
'Label38.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.PlayFolder)
|
||||
'Label39.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.PlayFileNumber)
|
||||
'Button21.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.Play)
|
||||
'Button23.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.ItinerateTest)
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "窗体"
|
||||
|
||||
''' <summary>
|
||||
''' 窗体加载事件
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub FrmTest_C5_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
MultiLanguageInfo()
|
||||
InitFolderItems()
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 显示窗体事件
|
||||
''' 实现接口
|
||||
''' </summary>
|
||||
''' <param name="parentControl"></param>
|
||||
Public Sub ShowForm(parentControl As Control) Implements IFrmTest.ShowForm
|
||||
FormBorderStyle = FormBorderStyle.None '无边框
|
||||
TopLevel = False
|
||||
Dock = DockStyle.Fill '填满大小
|
||||
Parent = parentControl '父容器
|
||||
|
||||
Show()
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 发送函数
|
||||
''' </summary>
|
||||
''' <param name="sendPacket"></param>
|
||||
Public Sub SendData(sendPacket() As Byte)
|
||||
FCsConfig.SendTestData(sendPacket)
|
||||
FCsConfig.AppendTipText($"TX:{ByteToString(sendPacket)}{vbCrLf}", Color.Green)
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "C12测试"
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器序号
|
||||
''' </summary>
|
||||
Private relayNumber(4) As Byte
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 发送组包
|
||||
''' </summary>
|
||||
''' <param name="cmd"></param>
|
||||
''' <param name="dataBuff"></param>
|
||||
''' <returns></returns>
|
||||
Public Function FillPacket(cmd As Byte, dataBuff() As Byte) As Byte()
|
||||
If _connectStatus = True Then
|
||||
cmd = &HD3 '网络测试Cmd
|
||||
dataBuff = FCsConfig.FillSendData(cmd, dataBuff) '网络数据
|
||||
Else
|
||||
cmd = &H7 '串口测试Cmd
|
||||
dataBuff = FillModelsSerialPortTest(cmd, dataBuff) '串口数据
|
||||
End If
|
||||
|
||||
Return dataBuff
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 1-13路继电器
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub BtnRelay13_Click(sender As Object, e As EventArgs) Handles BtnRelay9.Click, BtnRelay8.Click, BtnRelay7.Click, BtnRelay6.Click, BtnRelay5.Click, BtnRelay4.Click, BtnRelay3.Click, BtnRelay2.Click, BtnRelay13.Click, BtnRelay12.Click, BtnRelay11.Click, BtnRelay10.Click, BtnRelay1.Click
|
||||
Dim cmd As Byte
|
||||
Dim btn As Button = sender
|
||||
Dim index As Integer = sender.tag
|
||||
Dim flg As Boolean = Not GetRelayStatus(index)
|
||||
Dim param() As Byte = GetRelayNumber(index, flg)
|
||||
|
||||
Dim testState As Byte = &H2
|
||||
Dim devType As Byte = &HF1
|
||||
Dim devAddr As Byte = &H0
|
||||
Dim devCmd As Byte = &H21
|
||||
|
||||
'组包
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"C12继电器测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
|
||||
If flg Then
|
||||
btn.BackColor = Color.Green
|
||||
Else
|
||||
btn.BackColor = Color.Transparent
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器状态
|
||||
''' </summary>
|
||||
''' <param name="index"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetRelayStatus(index As Integer) As Boolean
|
||||
Dim bt As Byte = relayNumber(index \ 4) >> ((index Mod 4) * 2) And 3
|
||||
|
||||
If bt = 1 Then Return True
|
||||
Return False
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器序号
|
||||
''' </summary>
|
||||
''' <param name="number"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetRelayNumber(number As Integer, start As Boolean) As Byte()
|
||||
If start Then '置位01
|
||||
relayNumber(number \ 4) = (relayNumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (1 << ((number Mod 4) * 2))
|
||||
Else
|
||||
relayNumber(number \ 4) = (relayNumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (2 << ((number Mod 4) * 2))
|
||||
End If
|
||||
|
||||
Return relayNumber
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 1-5路输出
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub BtnOutput1_Click(sender As Object, e As EventArgs) Handles BtnOutput5.Click, BtnOutput4.Click, BtnOutput3.Click, BtnOutput2.Click, BtnOutput1.Click
|
||||
Dim cmd As Byte
|
||||
Dim btn As Button = sender
|
||||
Dim index As Integer = sender.tag
|
||||
Dim flg As Boolean = Not GetC12DOStatus(index)
|
||||
Dim param() As Byte = GetC12DONumber(index, flg)
|
||||
|
||||
'组包
|
||||
Dim testState As Byte = &H2 '测试状态
|
||||
Dim devType As Byte = &HF1 '设备类型
|
||||
Dim devAddr As Byte = &H0 '设备地址默认为0
|
||||
Dim devCmd As Byte = &H23 '测试命令字
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"C12输出测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
|
||||
If flg Then
|
||||
btn.BackColor = Color.Green
|
||||
Else
|
||||
btn.BackColor = Color.Transparent
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取C12测试输出序号
|
||||
''' </summary>
|
||||
Private C12DONumber(1) As Byte
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取继电器状态
|
||||
''' </summary>
|
||||
''' <param name="index"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetC12DOStatus(index As Integer) As Boolean
|
||||
Dim bt As Byte = C12DONumber(index \ 4) >> ((index Mod 4) * 2) And 3
|
||||
If bt = 1 Then Return True
|
||||
Return False
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取输入序号
|
||||
''' </summary>
|
||||
''' <param name="number"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetC12DONumber(number As Integer, start As Boolean) As Byte()
|
||||
If start Then '置位01
|
||||
C12DONumber(number \ 4) = (C12DONumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (1 << ((number Mod 4) * 2))
|
||||
Else '置位10
|
||||
C12DONumber(number \ 4) = (C12DONumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (2 << ((number Mod 4) * 2))
|
||||
End If
|
||||
|
||||
Return C12DONumber
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C12输入测试
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub BtnInputTest_Click(sender As Object, e As EventArgs) Handles BtnInputTest.Click
|
||||
Dim cmd As Byte
|
||||
Dim testState As Byte = &H1 '测试状态
|
||||
Dim devType As Byte = &HF1 '设备类型
|
||||
Dim devAddr As Byte = &H0 '设备地址默认为0
|
||||
Dim devCmd As Byte = &H3 '测试时间——3分钟
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd)
|
||||
|
||||
'组包
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"C12输入测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C12音乐测试
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button21_Click(sender As Object, e As EventArgs) Handles Button21.Click
|
||||
Dim cmd As Byte
|
||||
'组包
|
||||
Dim testState As Byte = &H2 '测试状态
|
||||
Dim devType As Byte = &H15 '设备类型
|
||||
Dim devAddr As Byte = &H1 '设备地址默认为0
|
||||
Dim devCmd As Byte = &H22 '测试命令字
|
||||
Dim param() As Byte = C5MusicTest()
|
||||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"音频测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C5测试音频播放文件下
|
||||
''' </summary>
|
||||
Private _PlayFolder() As String = {$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.MusicFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SoundPromptFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepingFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.DoorbellFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.WelcomeMessageFolder)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder1Meditate)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder2SeaWave)}",
|
||||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder3Forest)}"}
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 初始化文件夹可选项
|
||||
''' </summary>
|
||||
Private Sub InitFolderItems()
|
||||
ComboBox10.Items.Clear()
|
||||
ComboBox10.Items.AddRange(_PlayFolder)
|
||||
If ComboBox10.Items.Count > 4 Then ComboBox10.SelectedIndex = 4
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C5音频测试
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Private Function C5MusicTest()
|
||||
Dim playFolder As Byte = GetPlayFolder(ComboBox10.Text)
|
||||
Dim playFile As Byte = $"&H{Hex(NumericUpDown1.Value)}"
|
||||
|
||||
Dim databuff As New List(Of Byte)
|
||||
databuff.Add(&H7) '播放音乐状态
|
||||
databuff.Add(playFolder) '播放音乐文件夹
|
||||
databuff.Add(playFile) '播放音乐文件
|
||||
|
||||
Return databuff.ToArray
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取播放文件夹
|
||||
''' </summary>
|
||||
''' <param name="text"></param>
|
||||
''' <returns></returns>
|
||||
Private Function GetPlayFolder(text As String) As Byte
|
||||
Dim palyFolder As Byte
|
||||
Select Case text
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.MusicFolder)}"
|
||||
palyFolder = &H0
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SoundPromptFolder)}"
|
||||
palyFolder = &H1
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepingFolder)}"
|
||||
palyFolder = &H2
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.DoorbellFolder)}"
|
||||
palyFolder = &H3
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.WelcomeMessageFolder)}"
|
||||
palyFolder = &H4
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder1Meditate)}"
|
||||
palyFolder = &H5
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder2SeaWave)}"
|
||||
palyFolder = &H6
|
||||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder3Forest)}"
|
||||
palyFolder = &H7
|
||||
End Select
|
||||
|
||||
Return palyFolder
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 巡回测试
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub Button23_Click(sender As Object, e As EventArgs) Handles Button23.Click
|
||||
Label48.ForeColor = Color.Black
|
||||
Label48.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Test)}..."
|
||||
Dim cmd As Byte
|
||||
'组包
|
||||
Dim data(0) As Byte
|
||||
data(0) = &H3
|
||||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||||
Console.WriteLine($"C12巡回测试:{ByteToString(sendDatas)}")
|
||||
|
||||
'发送
|
||||
SendData(sendDatas)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C12调光
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub BtnDimming_Click(sender As Object, e As EventArgs) Handles BtnDimming.Click
|
||||
Dim frmtestc12diming As New FrmTest_C12_Dimming(FCsConfig, "C8调光")
|
||||
|
||||
frmtestc12diming.ShowDialog()
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Public Sub ShowForm1(parentControl As Control, ftext As String) Implements IFrmTest.ShowForm1
|
||||
Throw New NotImplementedException()
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
End Class
|
||||
35
BLV_Studio/Control/HostConfig.vb
Normal file
35
BLV_Studio/Control/HostConfig.vb
Normal file
@@ -0,0 +1,35 @@
|
||||
Public Class HostConfig
|
||||
Public Ischeck As Boolean =False
|
||||
Public LoadIP As String
|
||||
Public IPType As String
|
||||
Public IPMask As String '掩码
|
||||
Public IPGateway As String '网关
|
||||
Public IPDNS As String
|
||||
Public Port As String
|
||||
Public Remark As String '备注
|
||||
Public ServerIP As String
|
||||
Public ServerPort As String
|
||||
|
||||
|
||||
Public Function IFNetworkFormat(ByRef attribute As String, val As String) As Boolean
|
||||
|
||||
If String.IsNullOrEmpty(val) Then Return False
|
||||
Dim buff() As String = val.Trim.Split(".")
|
||||
If buff.Length <> 4 Then Return False
|
||||
For Each index In buff
|
||||
If Not IsNumeric(index) Then Return False
|
||||
If index < 0 OrElse index > 255 Then Return False
|
||||
Next
|
||||
attribute = val.Trim
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Public Function IFPortisNumber(ByRef attribute As String, val As String) As Boolean
|
||||
If String.IsNullOrEmpty(val) Then Return False
|
||||
If Not IsNumeric(val.Trim) Then Return False
|
||||
If CInt(val.Trim) < 0 OrElse CInt(val.Trim) > 65535 Then Return False
|
||||
attribute = val
|
||||
Return True
|
||||
End Function
|
||||
|
||||
End Class
|
||||
10
BLV_Studio/Control/Interface/IFrmTest.vb
Normal file
10
BLV_Studio/Control/Interface/IFrmTest.vb
Normal file
@@ -0,0 +1,10 @@
|
||||
Public Interface IFrmTest
|
||||
''' <summary>
|
||||
''' 显示测试窗体接口
|
||||
''' 测试窗体为各测试机型
|
||||
''' </summary>
|
||||
''' <param name="parentControl"></param>
|
||||
Sub ShowForm(parentControl As Control)
|
||||
Sub ShowForm1(parentControl As Control, ftext As String)
|
||||
|
||||
End Interface
|
||||
1336
BLV_Studio/Control/Language/MultiLanguageDAL.vb
Normal file
1336
BLV_Studio/Control/Language/MultiLanguageDAL.vb
Normal file
File diff suppressed because it is too large
Load Diff
27
BLV_Studio/Control/Login/LoginBLL.vb
Normal file
27
BLV_Studio/Control/Login/LoginBLL.vb
Normal file
@@ -0,0 +1,27 @@
|
||||
Public Class LoginBLL
|
||||
|
||||
''' <summary>
|
||||
''' 初始化
|
||||
''' </summary>
|
||||
Sub New()
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 登录数据
|
||||
''' </summary>
|
||||
Public Data As LoginHotelBLL
|
||||
|
||||
''' <summary>
|
||||
''' 登录状态
|
||||
''' </summary>
|
||||
Public Status As String
|
||||
|
||||
''' <summary>
|
||||
''' 登录提示
|
||||
''' </summary>
|
||||
Public Message As String
|
||||
|
||||
|
||||
End Class
|
||||
20
BLV_Studio/Control/Login/LoginHotelBLL.vb
Normal file
20
BLV_Studio/Control/Login/LoginHotelBLL.vb
Normal file
@@ -0,0 +1,20 @@
|
||||
Public Class LoginHotelBLL
|
||||
|
||||
Sub New()
|
||||
HotelData = New List(Of LoginHotelsBLL)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 用户信息
|
||||
''' </summary>
|
||||
Public Userinfo As LoginUserInfoBLL
|
||||
|
||||
''' <summary>
|
||||
''' 酒店数据
|
||||
''' </summary>
|
||||
Public HotelData As List(Of LoginHotelsBLL)
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
27
BLV_Studio/Control/Login/LoginHotelsAuthBLL.vb
Normal file
27
BLV_Studio/Control/Login/LoginHotelsAuthBLL.vb
Normal file
@@ -0,0 +1,27 @@
|
||||
Public Class LoginHotelsAuthBLL
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 初始化酒店权限
|
||||
''' </summary>
|
||||
Sub New()
|
||||
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 权限状态ID
|
||||
''' </summary>
|
||||
Public AuthotypeId As Integer
|
||||
|
||||
''' <summary>
|
||||
''' 权限ID
|
||||
''' </summary>
|
||||
Public AuthorityId As Integer
|
||||
|
||||
''' <summary>
|
||||
''' 权限名称
|
||||
''' </summary>
|
||||
Public AuthorityName As String
|
||||
|
||||
|
||||
End Class
|
||||
27
BLV_Studio/Control/Login/LoginHotelsBLL.vb
Normal file
27
BLV_Studio/Control/Login/LoginHotelsBLL.vb
Normal file
@@ -0,0 +1,27 @@
|
||||
Public Class LoginHotelsBLL
|
||||
|
||||
''' <summary>
|
||||
''' 初始化酒店组
|
||||
''' </summary>
|
||||
Sub New()
|
||||
Hotels = New List(Of LoginHotelsInfoBLL)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 酒店组ID
|
||||
''' </summary>
|
||||
Public HotelGroupsId As String
|
||||
|
||||
''' <summary>
|
||||
''' 酒店组名称
|
||||
''' </summary>
|
||||
Public HotelGroupsName As String
|
||||
|
||||
''' <summary>
|
||||
''' 酒店组
|
||||
''' </summary>
|
||||
Public Hotels As List(Of LoginHotelsInfoBLL)
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
32
BLV_Studio/Control/Login/LoginHotelsInfoBLL.vb
Normal file
32
BLV_Studio/Control/Login/LoginHotelsInfoBLL.vb
Normal file
@@ -0,0 +1,32 @@
|
||||
Public Class LoginHotelsInfoBLL
|
||||
|
||||
''' <summary>
|
||||
''' 初始化酒店信息
|
||||
''' </summary>
|
||||
Sub New()
|
||||
Auth = New List(Of LoginHotelsAuthBLL)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 酒店ID
|
||||
''' </summary>
|
||||
Public HotelId As String
|
||||
|
||||
''' <summary>
|
||||
''' 项目编码
|
||||
''' </summary>
|
||||
Public Code As String
|
||||
|
||||
''' <summary>
|
||||
''' 酒店名称
|
||||
''' </summary>
|
||||
Public HotelName As String
|
||||
|
||||
''' <summary>
|
||||
''' 酒店权限
|
||||
''' </summary>
|
||||
Public Auth As List(Of LoginHotelsAuthBLL)
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
49
BLV_Studio/Control/Login/LoginReturnDataBLL.vb
Normal file
49
BLV_Studio/Control/Login/LoginReturnDataBLL.vb
Normal file
@@ -0,0 +1,49 @@
|
||||
Public Class LoginReturnDataBLL
|
||||
|
||||
|
||||
Sub New()
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 酒店组ID
|
||||
''' </summary>
|
||||
Public HotelGroupsId As String
|
||||
|
||||
''' <summary>
|
||||
''' 酒店组名
|
||||
''' </summary>
|
||||
Public HotelGroupsName As String
|
||||
|
||||
''' <summary>
|
||||
''' 酒店ID
|
||||
''' </summary>
|
||||
Public HotelId As String
|
||||
|
||||
''' <summary>
|
||||
''' 项目编码
|
||||
''' </summary>
|
||||
Public Code As String
|
||||
|
||||
''' <summary>
|
||||
''' 酒店名称
|
||||
''' </summary>
|
||||
Public HotelName As String
|
||||
|
||||
''' <summary>
|
||||
''' 权限状态
|
||||
''' </summary>
|
||||
Public AuthotypeId As String
|
||||
|
||||
''' <summary>
|
||||
''' 权限ID
|
||||
''' </summary>
|
||||
Public AuthorityId As String
|
||||
|
||||
''' <summary>
|
||||
''' 权限名称
|
||||
''' </summary>
|
||||
Public AuthorityName As String
|
||||
|
||||
End Class
|
||||
10
BLV_Studio/Control/Login/LoginUserInfoBLL.vb
Normal file
10
BLV_Studio/Control/Login/LoginUserInfoBLL.vb
Normal file
@@ -0,0 +1,10 @@
|
||||
Public Class LoginUserInfoBLL
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 用户头像
|
||||
''' </summary>
|
||||
Public HeadImg As String
|
||||
|
||||
|
||||
End Class
|
||||
21
BLV_Studio/Control/ModelTest/C12Test_DimmingBLL.vb
Normal file
21
BLV_Studio/Control/ModelTest/C12Test_DimmingBLL.vb
Normal file
@@ -0,0 +1,21 @@
|
||||
Public Class C12Test_DimmingBLL
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 调光
|
||||
''' </summary>
|
||||
Public Dimming As Label
|
||||
|
||||
''' <summary>
|
||||
''' 调光滑动值
|
||||
''' </summary>
|
||||
Public DimmingVal As HScrollBar
|
||||
|
||||
''' <summary>
|
||||
''' 调光输入值
|
||||
''' </summary>
|
||||
Public DimmingInputVal As NumericUpDown
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
975
BLV_Studio/Control/Module/FunctionModule.vb
Normal file
975
BLV_Studio/Control/Module/FunctionModule.vb
Normal file
@@ -0,0 +1,975 @@
|
||||
Imports System.IO
|
||||
Imports System.Net
|
||||
Imports System.Net.NetworkInformation
|
||||
Imports System.Net.Sockets
|
||||
Imports System.Security.Cryptography
|
||||
Imports System.Text
|
||||
Imports System.Threading
|
||||
Imports Newtonsoft.Json
|
||||
|
||||
Module FunctionModule
|
||||
|
||||
|
||||
#Region "发送模式"
|
||||
|
||||
''' <summary>
|
||||
''' 是否是网络发送
|
||||
''' </summary>
|
||||
Public _isNetWork As Boolean
|
||||
|
||||
''' <summary>
|
||||
''' 是否是串口发送
|
||||
''' </summary>
|
||||
Public _isSerialPort As Boolean
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "权限管理"
|
||||
|
||||
''' <summary>
|
||||
''' 查询到的酒店编码
|
||||
''' </summary>
|
||||
Public _projectNumber As String
|
||||
|
||||
''' <summary>
|
||||
''' 查询到的酒店名称
|
||||
''' </summary>
|
||||
Public _HotelName As String
|
||||
|
||||
''' <summary>
|
||||
''' 查询到权限
|
||||
''' </summary>
|
||||
Public _authorityInfo As New Dictionary(Of String, String)
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "数据库操作"
|
||||
|
||||
''' <summary>
|
||||
''' 登录返回数据
|
||||
''' json序列号
|
||||
''' </summary>
|
||||
Public _loginData As New Dictionary(Of String, LoginReturnDataBLL)
|
||||
|
||||
''' <summary>
|
||||
''' 后台接口返回酒店列表数据
|
||||
''' </summary>
|
||||
Public _hotelListData As New Dictionary(Of String, BackstageHotelListBLL)
|
||||
|
||||
''' <summary>
|
||||
''' 后台接口返回房型列表数据
|
||||
''' </summary>
|
||||
Public _roomTypeListData As New Dictionary(Of String, BackstageRoomTypeListBLL)
|
||||
|
||||
''' <summary>
|
||||
''' 后台接口返回主机列表数据
|
||||
''' </summary>
|
||||
Public _hostListData As New Dictionary(Of String, BackstageHostListBLL)
|
||||
|
||||
''' <summary>
|
||||
''' 语言数据
|
||||
''' </summary>
|
||||
Public LanguageData As MultiLanguageDAL
|
||||
|
||||
''' <summary>
|
||||
''' SqlServer
|
||||
''' </summary>
|
||||
Public _SqlServer As New SqlServerDAL
|
||||
|
||||
''' <summary>
|
||||
''' 登录数据库
|
||||
''' </summary>
|
||||
Public _SqlLogin As New BlvMySql("blv-cloud-db.mysql.rds.aliyuncs.com", 3307, "blv_rcu_config", "blv_rcu", "fnadiaJDIJ7546")
|
||||
|
||||
|
||||
Public Function ConnLoginDataSourse() As Boolean
|
||||
If _SqlLogin.ConnMySQLBase() = False Then
|
||||
MsgBox($"")
|
||||
Return False
|
||||
End If
|
||||
Console.WriteLine($"登录_权限数据库连接成功!")
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 用户名
|
||||
''' </summary>
|
||||
Public _userNames As String
|
||||
|
||||
''' <summary>
|
||||
''' 用户表格
|
||||
''' </summary>
|
||||
Public _userData As New DataTable
|
||||
|
||||
'''' <summary>
|
||||
'''' 后台数据
|
||||
'''' </summary>
|
||||
'Public _backstageData As New SqlServerDAL
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' 连接后台数据源
|
||||
'''' </summary>
|
||||
'Public Sub ConnBackstageData()
|
||||
' _backstageData.ConnDataBase($"boonlive-rcu.com", "", False, "blw", "blw@123")
|
||||
|
||||
' If _backstageData._isConn = True Then
|
||||
' Console.WriteLine($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Background)}{LanguageData.StringList(MultiLanguageDAL.StringEnum.DatabaseConnectionSuccessful)}!")
|
||||
' Else
|
||||
' Console.WriteLine($"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Background)}{LanguageData.StringList(MultiLanguageDAL.StringEnum.DatabaseConnectionFailed)}!")
|
||||
' End If
|
||||
'End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' 获取匹配的用户信息
|
||||
'''' </summary>
|
||||
'''' <param name="userAccount">用户账号</param>
|
||||
'''' <param name="userPassword">用户密码</param>
|
||||
'''' <returns></returns>
|
||||
'Public Function UtsGetUserInfo(userAccount As String, userPassword As String) As DataTable
|
||||
' Dim dtUser As DataTable
|
||||
' Dim dbParam As DbExecutorInitParam = GetDbInitParam()
|
||||
|
||||
' Using db As New DbExecutor(dbParam.Type, dbParam.ConnectionString)
|
||||
' db.Open()
|
||||
|
||||
' Dim tableName As String = DbTableModel.Manage.UserListTable.TableName
|
||||
' Dim condition As String = $"`{DbTableModel.Manage.UserListTable.ColNamesEnum.UserName}` = @user and `{DbTableModel.Manage.UserListTable.ColNamesEnum.Password}` = @pwd"
|
||||
' db.AddDbParameter(DbType.AnsiString, "user", userAccount)
|
||||
' db.AddDbParameter(DbType.AnsiString, "pwd", MD5.GetStringMd5(MD5.GetStringMd5(userPassword)))
|
||||
|
||||
' If dbParam.Type = DbExecutor.DbTypeEnum.Sqlite Then
|
||||
' dtUser = db.ExecuteDataTable(db.CmdHelper.SearchAll(tableName, condition))
|
||||
' Else
|
||||
' dtUser = db.ExecuteDataTable(db.CmdHelper.DbSearchAll(UtsDb.RemotePublicDb, tableName, condition))
|
||||
' End If
|
||||
|
||||
' db.Close()
|
||||
' End Using
|
||||
|
||||
' Return dtUser
|
||||
'End Function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "功能模块"
|
||||
|
||||
''' <summary>
|
||||
''' 本地IP
|
||||
''' </summary>
|
||||
Public _localIP As String
|
||||
|
||||
''' <summary>
|
||||
''' 本地端口号
|
||||
''' </summary>
|
||||
Public _localPort As Integer
|
||||
|
||||
''' <summary>
|
||||
''' 远程IP地址
|
||||
''' </summary>
|
||||
Public _RemoteIP As IPAddress = IPAddress.Parse($"192.168.0.23")
|
||||
|
||||
''' <summary>
|
||||
''' 远程端口号
|
||||
''' </summary>
|
||||
Public _RemotePort As Integer = 3341
|
||||
|
||||
''' <summary>
|
||||
''' 连接状态,默认非连接
|
||||
''' </summary>
|
||||
Public _connectStatus As Boolean = False
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 是否通过UDP发送数据
|
||||
''' </summary>
|
||||
Public _isSendByUdp As Boolean
|
||||
|
||||
''' <summary>
|
||||
''' 回复超时
|
||||
''' </summary>
|
||||
Public ReadOnly _relayTimeout As Integer = 50
|
||||
|
||||
''' <summary>
|
||||
''' 是否重试绑定MAC
|
||||
''' </summary>
|
||||
Public _isMACRetry As Boolean
|
||||
|
||||
''' <summary>
|
||||
''' 是否解绑MAC
|
||||
''' </summary>
|
||||
Public _isMACUnbundle As Boolean
|
||||
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取本地可用IP
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Function GetLocalIp() As List(Of IPAddress)
|
||||
Dim address() As IPAddress
|
||||
Dim destAddress As New List(Of IPAddress)
|
||||
address = Dns.GetHostEntry(Dns.GetHostName()).AddressList
|
||||
For Each pAddress As IPAddress In address
|
||||
If pAddress.AddressFamily = AddressFamily.InterNetwork Then
|
||||
destAddress.Add(pAddress)
|
||||
End If
|
||||
Next
|
||||
Return destAddress
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' Byte数组转字符串
|
||||
''' </summary>
|
||||
''' <param name="databuff"></param>
|
||||
''' <returns></returns>
|
||||
Public Function ByteToString(databuff() As Byte)
|
||||
Dim strData As String = String.Empty
|
||||
For i = 0 To databuff.Length - 1
|
||||
strData &= $" {Hex(databuff(i)).PadLeft(2, "0"c)}"
|
||||
Next
|
||||
Return strData
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 判断文本不能为空
|
||||
''' 文本框
|
||||
''' </summary>
|
||||
''' <param name="txt"></param>
|
||||
''' <returns></returns>
|
||||
Public Function TextIsNull(txt As TextBox, Tip As String) As Boolean
|
||||
If txt.Text = Nothing Or txt.Text = "" Then
|
||||
MsgBox($"{Tip}{LanguageData.StringList(MultiLanguageDAL.StringEnum.NOTNULL)}!")
|
||||
Return False
|
||||
End If
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 判断文本不能为空
|
||||
''' 下拉框
|
||||
''' </summary>
|
||||
''' <param name="txt"></param>
|
||||
''' <returns></returns>
|
||||
Public Function TextIsNull(txt As ComboBox, Tip As String) As Boolean
|
||||
If txt.Text = Nothing Or txt.Text = "" Then
|
||||
MsgBox($"{Tip} {LanguageData.StringList(MultiLanguageDAL.StringEnum.NOTNULL)}!")
|
||||
Return False
|
||||
End If
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 等待回复
|
||||
''' </summary>
|
||||
''' <param name="isReply">是否回复标志位</param>
|
||||
''' <param name="TimeOut">超时时间</param>
|
||||
Public Sub WaitReply(isReply As Boolean, TimeOut As Integer) 'ByRef
|
||||
Dim tick As Integer
|
||||
Dim startTick As Integer = My.Computer.Clock.TickCount
|
||||
isReply = False
|
||||
While isReply = False AndAlso tick <= TimeOut
|
||||
Thread.Sleep(3)
|
||||
tick = My.Computer.Clock.TickCount - startTick
|
||||
Application.DoEvents()
|
||||
End While
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 延时N秒
|
||||
''' </summary>
|
||||
''' <param name="HowLong">延时时间值</param>
|
||||
Public Sub PauseWait(ByVal HowLong As Long)
|
||||
Dim tick As Long
|
||||
tick = My.Computer.Clock.TickCount
|
||||
Do
|
||||
My.Application.DoEvents()
|
||||
Loop Until tick + HowLong < My.Computer.Clock.TickCount
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' IP地址转换为Byte数组
|
||||
''' </summary>
|
||||
''' <param name="addr"></param>
|
||||
''' <returns></returns>
|
||||
Public Function GetAddressToBytes(addr As String)
|
||||
Dim iadd() As String = addr.Split(New Char() {"."c}, StringSplitOptions.RemoveEmptyEntries)
|
||||
Dim address(3) As Byte
|
||||
address(0) = iadd(0) '例:192
|
||||
address(1) = iadd(1) '例:168
|
||||
address(2) = iadd(2)
|
||||
address(3) = iadd(3)
|
||||
|
||||
Return address
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 端口号转换为Byte数组
|
||||
''' </summary>
|
||||
''' <param name="port"></param>
|
||||
''' <returns></returns>
|
||||
Public Function GetPortToBytes(port As String)
|
||||
Dim bport As Integer = CInt(port)
|
||||
Dim ports() As Byte = IntToByteLB(bport)
|
||||
|
||||
Return ports
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' Int转2个字节Byte
|
||||
''' 低字节在前,高字节在后
|
||||
''' </summary>
|
||||
''' <param name="i"></param>
|
||||
''' <returns></returns>
|
||||
Public Function IntToByteLB(ByVal i As Integer) As Byte()
|
||||
Dim btemp() As Byte = {0, 0}
|
||||
Dim b() As Byte = BitConverter.GetBytes(i)
|
||||
btemp(0) = b(1)
|
||||
btemp(1) = b(0)
|
||||
Return btemp
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' Int转2个字节Byte
|
||||
''' 高字节在前,低字节在后
|
||||
''' </summary>
|
||||
''' <param name="i"></param>
|
||||
''' <returns></returns>
|
||||
Public Function IntToByteHB(ByVal i As Integer) As Byte()
|
||||
Dim btemp() As Byte = {0, 0}
|
||||
Dim b() As Byte = BitConverter.GetBytes(i)
|
||||
btemp(0) = b(0)
|
||||
btemp(1) = b(1)
|
||||
Return btemp
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取文件的MD5值
|
||||
''' 返回Byte数组值
|
||||
''' </summary>
|
||||
''' <param name="filepath">文件路径</param>
|
||||
''' <returns></returns>
|
||||
Public Function GetMd5(filepath As String) As Byte()
|
||||
Dim FileStr As FileStream = New FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.Read)
|
||||
Dim data(FileStr.Length - 1) As Byte
|
||||
FileStr.Read(data, 0, data.Length)
|
||||
|
||||
Dim md5s As Byte() = MD5.Create().ComputeHash(data)
|
||||
'Dim fileMd5 As New StringBuilder()
|
||||
'Dim i As Integer
|
||||
'For i = 0 To md5s.Length - 1
|
||||
' fileMd5.Append(md5s(i).ToString("x2"))
|
||||
'Next
|
||||
|
||||
'Console.WriteLine($"MD5:{fileMd5}")
|
||||
|
||||
Return md5s
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取文件的MD5值
|
||||
''' 返回String字符串
|
||||
''' </summary>
|
||||
''' <param name="filepath">文件路径</param>
|
||||
''' <returns></returns>
|
||||
Public Function GetMd5String(filepath As String) As String
|
||||
Dim FileStr As FileStream = New FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.Read)
|
||||
Dim data(FileStr.Length) As Byte
|
||||
FileStr.Read(data, 0, data.Length)
|
||||
|
||||
Dim md5s As Byte() = MD5.Create().ComputeHash(data)
|
||||
Dim fileMd5 As New StringBuilder()
|
||||
Dim i As Integer
|
||||
For i = 0 To md5s.Length - 1
|
||||
fileMd5.Append(md5s(i).ToString("x2"))
|
||||
Next
|
||||
|
||||
Console.WriteLine($"MD5:{fileMd5}")
|
||||
|
||||
Return fileMd5.ToString()
|
||||
End Function
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' 获取文件的MD5值
|
||||
'''' </summary>
|
||||
'''' <param name="filepath">文件路径</param>
|
||||
'''' <returns></returns>
|
||||
'Public Function GetFileMd5String(filepath As String) As String
|
||||
' 'Dim data As Byte() = MD5.Create().ComputeHash(filepath)
|
||||
' Dim md5Hasher As New MD5CryptoServiceProvider()
|
||||
' Dim data As Byte() = md5Hasher.ComputeHash(IO.File.ReadAllBytes(filepath))
|
||||
' Dim fileMd5 As New StringBuilder()
|
||||
' Dim i As Integer
|
||||
' For i = 0 To data.Length - 1
|
||||
' fileMd5.Append(data(i).ToString("x2"))
|
||||
' Next
|
||||
|
||||
' Return fileMd5.ToString()
|
||||
'End Function
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' 获取文件的MD5值
|
||||
'''' </summary>
|
||||
'''' <param name="filepath">文件路径</param>
|
||||
'''' <returns></returns>
|
||||
'Public Function GetFileMd5Byte(filepath As String) As Byte()
|
||||
' Dim md5Hasher As New MD5CryptoServiceProvider()
|
||||
' Dim data As Byte() = md5Hasher.ComputeHash(IO.File.ReadAllBytes(filepath))
|
||||
' 'Dim fileMd5 As New StringBuilder()
|
||||
' 'Dim i As Integer
|
||||
' 'For i = 0 To data.Length - 1
|
||||
' ' fileMd5.Append(data(i).ToString("X2"))
|
||||
' 'Next
|
||||
' 'Return fileMd5.ToString()
|
||||
' Return data
|
||||
'End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取数据的MD5值
|
||||
''' 返回MD5校验的Byte数组
|
||||
''' </summary>
|
||||
''' <param name="data">文件数据</param>
|
||||
''' <returns></returns>
|
||||
Public Function GetDataMd5Byte(data As Byte()) As Byte()
|
||||
Dim databuff As Byte() = MD5.Create().ComputeHash(data)
|
||||
|
||||
Return databuff
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取数据的MD5值
|
||||
''' 返回MD5校验的Byte数组
|
||||
''' </summary>
|
||||
''' <param name="data">文件数据</param>
|
||||
''' <returns></returns>
|
||||
Public Function GetDataMd5String(data As Byte()) As String
|
||||
Dim databuff As Byte() = MD5.Create().ComputeHash(data)
|
||||
Dim strData As String = BitConverter.ToString(databuff)
|
||||
|
||||
Return strData
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取字符串的MD5值
|
||||
''' </summary>
|
||||
''' <param name="str">需要求MD5的原文字符串</param>
|
||||
''' <returns></returns>
|
||||
Public Function GetStringMd5(str As String) As String
|
||||
Dim md5Hasher As New MD5CryptoServiceProvider()
|
||||
Dim data As Byte() = md5Hasher.ComputeHash(Encoding.UTF8.GetBytes(str))
|
||||
Dim fileMd5 As New StringBuilder()
|
||||
Dim i As Integer
|
||||
For i = 0 To data.Length - 1
|
||||
fileMd5.Append(data(i).ToString("X2"))
|
||||
Next
|
||||
|
||||
Return fileMd5.ToString()
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 分块函数
|
||||
''' 计算Byte数组的块数
|
||||
''' </summary>
|
||||
''' <param name="databuff"></param>
|
||||
''' <param name="size"></param>
|
||||
''' <returns></returns>
|
||||
Public Function GetBlocks(databuff As Byte(), size As Integer) As Integer
|
||||
Dim blockCount As Integer = databuff.Length \ size
|
||||
If databuff.Length Mod size > 0 Then
|
||||
blockCount += 1
|
||||
End If
|
||||
Return blockCount
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 字符串转换Byte数组
|
||||
''' 字符串为连续且不包含任意字符的字符串
|
||||
''' </summary>
|
||||
''' <param name="str"></param>
|
||||
''' <returns></returns>
|
||||
Public Function GetStringToDataByte(str As String) As Byte()
|
||||
Dim dataList As New List(Of Byte)
|
||||
|
||||
For index As Integer = 0 To str.Length - 1 Step 2
|
||||
dataList.Add($"&H{str.Substring(index, 2)}")
|
||||
Next
|
||||
|
||||
Return dataList.ToArray
|
||||
End Function
|
||||
|
||||
|
||||
''参数:strTime:要转换的时间;intTimeZone:该时间对应的时区
|
||||
''返回值:strTime相对于1970年1月1日午夜0点经过的秒数
|
||||
''示例:ToUnixTime("2008-5-23 10:51:0", +8),返回值为1211511060
|
||||
'Public Function ToUnixTime(strTime, intTimeZone)
|
||||
' If strTime Is Nothing Or Not IsDate(strTime) Then strTime = Now
|
||||
' If intTimeZone Is Nothing Or Not IsNumeric(intTimeZone) Then intTimeZone = 0
|
||||
' ToUnixTime = DateAdd("h", -intTimeZone, strTime)
|
||||
' ToUnixTime = DateDiff("s", "1970-1-1 0:0:0", ToUnixTime)
|
||||
'End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 把UNIX时间戳转换为标准时间
|
||||
''' </summary>
|
||||
''' <param name="intTime">要转换的UNIX时间戳</param>
|
||||
''' <param name="ime">时区</param>
|
||||
''' <returns>intTime所代表的标准时间</returns>
|
||||
Public Function FromUnixTime(intTime As Long, ime As Long) As Date
|
||||
'If intTime Is Nothing Or Not IsNumeric(intTime) Then
|
||||
' FromUnixTime = Now()
|
||||
' Exit Function
|
||||
'End If
|
||||
'If intTime Is Nothing Or Not IsNumeric(intTimeZone) Then intTimeZone = 0
|
||||
'FromUnixTime = DateAdd("s", intTime, "1970-1-1 0:0:0")
|
||||
'FromUnixTime = DateAdd("h", intTimeZone, FromUnixTime)
|
||||
|
||||
Dim a As Date = DateTime.Parse("1970-1-1 0:0:0")
|
||||
a = a.AddSeconds(intTime)
|
||||
a = a.AddHours(ime)
|
||||
|
||||
Return a
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 判断网络信息是否合法
|
||||
''' </summary>
|
||||
''' <param name="text"></param>
|
||||
''' <param name="Tip"></param>
|
||||
''' <returns></returns>
|
||||
Public Function GetNetworkInfoIsLegal(text As String, Tip As String) As Boolean
|
||||
If GetTxStringIsLegal(text) = False Then
|
||||
MsgBox($"{Tip} 输入不合法!")
|
||||
Return False
|
||||
End If
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 判断文本输入控件输入是否合法
|
||||
''' </summary>
|
||||
''' <param name="text"></param>
|
||||
''' <returns></returns>
|
||||
Public Function GetTxStringIsLegal(text As String) As Boolean
|
||||
If IsNumeric(text) = True AndAlso text <> "" Then
|
||||
Return True
|
||||
End If
|
||||
|
||||
Return False
|
||||
End Function
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' 两个字节Byte转Int
|
||||
'''' </summary>
|
||||
'''' <param name="datas"></param>
|
||||
'''' <returns></returns>
|
||||
'Private Function GetByteToInt(datas() As Byte)
|
||||
' 'Dim ints As Integer = CInt(datas(0)) + CInt(datas(1) * 256)
|
||||
' Dim ints As Integer = BitConverter.ToUInt16(datas, 0)
|
||||
|
||||
' Return ints
|
||||
'End Function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "后台接口"
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' Post请求
|
||||
''' </summary>
|
||||
''' <param name="url"></param>
|
||||
''' <param name="data"></param>
|
||||
''' <returns></returns>
|
||||
Public Function PostData(ByVal url As String, ByVal data As String) As String
|
||||
ServicePointManager.Expect100Continue = False
|
||||
Dim request As HttpWebRequest = WebRequest.Create(url)
|
||||
'//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
|
||||
'获得请 求流
|
||||
'MsgBox("0.0.1")
|
||||
Dim newStream As Stream = request.GetRequestStream()
|
||||
' MsgBox("0.0.2")
|
||||
newStream.Write(bys, 0, bys.Length)
|
||||
newStream.Close()
|
||||
'获得响应流
|
||||
Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
|
||||
' MsgBox("0.0.3")
|
||||
Return sr.ReadToEnd
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 处理酒店列表接口信息
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Function DealHotelListInterfaceInfo() As Boolean
|
||||
Dim key As String = "blw_ws@2015"
|
||||
''https://www.boonlive-rcu.com/api/GetHotelList?jsonData={"key":"blw_ws@2015"}
|
||||
Dim jsonString As String = PostData("https://www.boonlive-rcu.com/api/GetHotelList", $"jsonData={{""key"":""{key}""}}")
|
||||
Console.WriteLine($"后台接口_获取酒店列表:" & jsonString)
|
||||
'MsgBox("0.1")
|
||||
Dim hotelList As BackstageHotelListResultBLL = JsonConvert.DeserializeObject(Of BackstageHotelListResultBLL)(jsonString)
|
||||
'MsgBox("0.2")
|
||||
If hotelList.IsSuccess = False Then
|
||||
MsgBox($"解析酒店列表接口错误!")
|
||||
Return False
|
||||
End If
|
||||
'MsgBox("0.3")
|
||||
_hotelListData.Clear()
|
||||
For i = 0 To hotelList.Result.Count - 1
|
||||
Dim datalist As New BackstageHotelListBLL
|
||||
datalist.ID = hotelList.Result(i).ID
|
||||
datalist.Code = hotelList.Result(i).Code
|
||||
datalist.Name = hotelList.Result(i).Name
|
||||
datalist.EName = hotelList.Result(i).EName
|
||||
datalist.TWName = hotelList.Result(i).TWName
|
||||
datalist.Contact = hotelList.Result(i).Contact
|
||||
datalist.Phone = hotelList.Result(i).Phone
|
||||
datalist.Address = hotelList.Result(i).Address
|
||||
datalist.ValidateDate = hotelList.Result(i).ValidateDate
|
||||
datalist.CreatDate = hotelList.Result(i).CreatDate
|
||||
datalist.Remark = hotelList.Result(i).Remark
|
||||
datalist.Status = hotelList.Result(i).Status
|
||||
datalist.IsApprove = hotelList.Result(i).IsApprove
|
||||
datalist.SysHotelGroupID = hotelList.Result(i).SysHotelGroupID
|
||||
datalist.SysHotelGroupName = hotelList.Result(i).SysHotelGroupName
|
||||
|
||||
_hotelListData.Add(datalist.Code, datalist)
|
||||
Next
|
||||
' MsgBox("0.4")
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 处理主机列表接口信息
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Function DealRoomTypeListInterfaceInfo(code As String, creatDate As String) As Boolean
|
||||
Console.WriteLine($"code:{code}————creatDate:{creatDate}")
|
||||
Dim jsonString As String = PostData("https://www.boonlive-rcu.com/api/GetRoomTypeAndModalsList", $"jsonData={{""code"":""{code}"", ""creatDate"":""{creatDate}""}}")
|
||||
Console.WriteLine($"后台接口_获取房型列表:" & jsonString)
|
||||
|
||||
Dim roomTypeList As BackstageRoomTypeListResultBLL = JsonConvert.DeserializeObject(Of BackstageRoomTypeListResultBLL)(jsonString)
|
||||
If roomTypeList.IsSuccess = False Then
|
||||
MsgBox($"解析房型列表接口错误!")
|
||||
Return False
|
||||
End If
|
||||
|
||||
_roomTypeListData.Clear()
|
||||
For i = 0 To roomTypeList.Result.Count - 1
|
||||
Dim datalist As New BackstageRoomTypeListBLL
|
||||
datalist.ID = roomTypeList.Result(i).ID
|
||||
datalist.Code = roomTypeList.Result(i).Code
|
||||
datalist.Name = roomTypeList.Result(i).Name
|
||||
datalist.Modals = roomTypeList.Result(i).Modals
|
||||
|
||||
_roomTypeListData.Add(i, datalist)
|
||||
Next
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 处理主机列表接口信息
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Function DealHostListInterfaceInfo(code As String, creatDate As String) As Boolean
|
||||
'Dim codes As String = _hotelListData.Keys(1)
|
||||
'Dim creatDates As String = _hotelListData.Values(1).CreatDate
|
||||
Console.WriteLine($"code:{code}————creatDate:{creatDate}")
|
||||
|
||||
Dim jsonString As String = PostData("https://www.boonlive-rcu.com/api/GetHostList", $"jsonData={{""code"":""{code}"", ""creatDate"":""{creatDate}""}}")
|
||||
Console.WriteLine($"后台接口_获取主机列表:" & jsonString)
|
||||
|
||||
Dim hostList As BackstageHostListResultBLL = JsonConvert.DeserializeObject(Of BackstageHostListResultBLL)(jsonString)
|
||||
If hostList.IsSuccess = False Then
|
||||
MsgBox($"解析主机列表接口错误!")
|
||||
Return False
|
||||
End If
|
||||
|
||||
_hostListData.Clear()
|
||||
For i = 0 To hostList.Result.Count - 1
|
||||
Dim datalist As New BackstageHostListBLL
|
||||
datalist.ID = hostList.Result(i).ID
|
||||
datalist.HotelID = hostList.Result(i).HotelID
|
||||
datalist.HotelName = hostList.Result(i).HotelName
|
||||
datalist.HostNumber = hostList.Result(i).HostNumber
|
||||
datalist.RoomNumber = hostList.Result(i).RoomNumber
|
||||
datalist.Status = hostList.Result(i).Status
|
||||
datalist.RegisterDate = hostList.Result(i).RegisterDate
|
||||
datalist.RoomStatusID = hostList.Result(i).RoomStatusID
|
||||
datalist.RoomStatusName = hostList.Result(i).RoomStatusName
|
||||
datalist.RoomTypeID = hostList.Result(i).RoomTypeID
|
||||
datalist.RoomTypeName = hostList.Result(i).RoomTypeName
|
||||
datalist.MAC = hostList.Result(i).MAC
|
||||
datalist.MACBindDate = hostList.Result(i).MACBindDate
|
||||
datalist.IP = hostList.Result(i).IP
|
||||
datalist.Remark = hostList.Result(i).Remark
|
||||
|
||||
_hostListData.Add(i, datalist)
|
||||
Next
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 设置MAC地址返回结果
|
||||
''' </summary>
|
||||
Public _setResult As String
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 处理设置主机MAC接口信息
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Function DealSetHostMACInterfaceInfo(code As String, creatDate As String, roomNumber As String, mac As String) As Boolean
|
||||
'code As String, creatDate As String, roomNumber As String, mac As String
|
||||
'Dim code As String = _hotelListData.Keys(2)
|
||||
'Dim creatDate As String = _hotelListData.Values(2).CreatDate
|
||||
'Dim roomNumber As String = _hostListData.Values(1).RoomNumber
|
||||
'Dim mac As String = _hostListData.Values(1).MAC
|
||||
Console.WriteLine($"code:{code}——creatDate:{creatDate}——roomNumber:{roomNumber}——mac:{mac}")
|
||||
|
||||
Dim jsonString As String = PostData("https://www.boonlive-rcu.com/api/SetHostMAC", $"jsonData={{""code"":""{code}"", ""creatDate"":""{creatDate}"", ""roomNumber"":""{roomNumber}"", ""mac"":""{mac}""}}")
|
||||
Console.WriteLine($"后台接口_设置主机MAC:" & jsonString)
|
||||
|
||||
Dim setHostMAC As BackstageSetHostMACBLL = JsonConvert.DeserializeObject(Of BackstageSetHostMACBLL)(jsonString)
|
||||
'If setHostMAC.IsSuccess = False Then
|
||||
' 'MsgBox($"解析主机MAC接口错误!")
|
||||
' Return False
|
||||
'End If
|
||||
|
||||
_setResult = setHostMAC.Result
|
||||
Return setHostMAC.IsSuccess
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "获取端口随机数"
|
||||
|
||||
''' <summary>
|
||||
''' 获取操作系统已用的端口号
|
||||
''' </summary>
|
||||
Public Function PortIsUsed()
|
||||
'获取本地计算机的网络连接和通信统计数据的信息
|
||||
Dim ipGlobal As IPGlobalProperties = IPGlobalProperties.GetIPGlobalProperties()
|
||||
|
||||
'返回本地计算机上的所有Tcp监听程序
|
||||
Dim ipsTcp As IPEndPoint() = ipGlobal.GetActiveTcpListeners()
|
||||
|
||||
'返回本地计算机上的所有UDP监听程序
|
||||
Dim ipsUdp As IPEndPoint() = ipGlobal.GetActiveUdpListeners()
|
||||
|
||||
'返回本地计算机上的Internet协议版本4(IPV4 传输控制协议(TCP)连接的信息
|
||||
Dim tcpConn As TcpConnectionInformation() = ipGlobal.GetActiveTcpConnections()
|
||||
|
||||
Dim allports As IList = New ArrayList()
|
||||
For Each ep As IPEndPoint In ipsTcp
|
||||
allports.Add(ep.Port)
|
||||
Next
|
||||
|
||||
For Each ep As IPEndPoint In ipsUdp
|
||||
allports.Add(ep.Port)
|
||||
Next
|
||||
|
||||
For Each conn As TcpConnectionInformation In tcpConn
|
||||
allports.Add(conn.LocalEndPoint.Port)
|
||||
Next
|
||||
Return allports
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取随机端口号
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Function GetRandomPort()
|
||||
Dim port As Integer = 0
|
||||
Dim hasUserdPort As IList = PortIsUsed()
|
||||
Dim isRandomOk As Boolean = True
|
||||
Dim random As Random = New Random(Date.Now.Millisecond)
|
||||
|
||||
While isRandomOk
|
||||
port = random.Next(1024, 65535)
|
||||
isRandomOk = hasUserdPort.Contains(port)
|
||||
End While
|
||||
|
||||
Return port
|
||||
End Function
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "机型测试"
|
||||
|
||||
''' <summary>发送测试数据序号</summary>
|
||||
Public _dataNumber As Byte = 0
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 填充C5串口测试
|
||||
''' </summary>
|
||||
''' <param name="data"></param>
|
||||
''' <returns></returns>
|
||||
Public Function FillModelsSerialPortTest(cmd As Byte, data As Byte()) As Byte()
|
||||
Dim ourAddress As Byte = &H0 '己方地址
|
||||
Dim sendNumber As Byte = GetSendNumber() '发送序号
|
||||
Dim devType As Byte = &HF2 '设备类型
|
||||
Dim putAddress As Byte = &H0 '收方地址
|
||||
Dim len(1) As Byte '数据长度,占2个字节
|
||||
Dim dataSum As Byte '校验和
|
||||
Dim length As Integer = 8 + data.Length
|
||||
len = IntToByteHB(length)
|
||||
|
||||
Dim databuff As New List(Of Byte)
|
||||
databuff.Add(ourAddress)
|
||||
databuff.Add(sendNumber)
|
||||
databuff.Add(devType)
|
||||
databuff.Add(putAddress)
|
||||
databuff.AddRange(len)
|
||||
databuff.Add(cmd)
|
||||
databuff.AddRange(data)
|
||||
|
||||
dataSum = GetSumCheckMod(databuff.ToArray)
|
||||
databuff.Insert(6, dataSum)
|
||||
|
||||
Return databuff.ToArray
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取发送序号
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Function GetSendNumber()
|
||||
_dataNumber += 1
|
||||
If _dataNumber > 15 Then
|
||||
_dataNumber = 1
|
||||
End If
|
||||
|
||||
Return _dataNumber
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 和校验取余数
|
||||
''' 求Byte数组的和校验取余数
|
||||
''' </summary>
|
||||
''' <param name="dataPacket">Byte数组</param>
|
||||
''' <returns></returns>
|
||||
Public Function GetSumCheckMod(dataPacket As Byte()) As Byte
|
||||
Dim sum As Integer
|
||||
For idx = 0 To dataPacket.Length - 1
|
||||
sum += dataPacket(idx)
|
||||
sum = sum And &HFF
|
||||
Next
|
||||
Dim sumMod As Byte = &HFF - sum
|
||||
Return sumMod
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 填充测试数据参数
|
||||
''' </summary>
|
||||
''' <param name="testState">测试状态</param>
|
||||
''' <param name="devType">设备类型</param>
|
||||
''' <param name="devAddr">设备地址-默认为0</param>
|
||||
''' <param name="devCmd">测试设备Cmd</param>
|
||||
''' <param name="param">参数</param>
|
||||
''' <returns></returns>
|
||||
Public Function FillTestDatabuff(testState As Byte, devType As Byte, devAddr As Byte, devCmd As Byte, param As Byte()) As Byte()
|
||||
Dim data As New List(Of Byte)
|
||||
data.Add(testState)
|
||||
data.Add(devType)
|
||||
data.Add(devAddr)
|
||||
data.Add(devCmd)
|
||||
data.AddRange(param)
|
||||
|
||||
Return data.ToArray
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 填充测试数据参数
|
||||
''' </summary>
|
||||
''' <param name="testState">测试状态</param>
|
||||
''' <param name="devType">设备类型</param>
|
||||
''' <param name="devAddr">设备地址-默认为0</param>
|
||||
''' <param name="devCmd">测试设备Cmd</param>
|
||||
''' <returns></returns>
|
||||
Public Function FillTestDatabuff(testState As Byte, devType As Byte, devAddr As Byte, devCmd As Byte) As Byte()
|
||||
Dim data As New List(Of Byte)
|
||||
data.Add(testState)
|
||||
data.Add(devType)
|
||||
data.Add(devAddr)
|
||||
data.Add(devCmd)
|
||||
|
||||
Return data.ToArray
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
|
||||
|
||||
End Module
|
||||
183
BLV_Studio/Control/MsDataSource/BlvMySql.vb
Normal file
183
BLV_Studio/Control/MsDataSource/BlvMySql.vb
Normal file
@@ -0,0 +1,183 @@
|
||||
Imports System.Data.SqlClient
|
||||
Imports MySql.Data.MySqlClient
|
||||
|
||||
Public Class BlvMySql
|
||||
|
||||
''' <summary>
|
||||
''' 连接字符串
|
||||
''' </summary>
|
||||
Private _ConnString As MySqlConnectionStringBuilder = New MySqlConnectionStringBuilder()
|
||||
|
||||
''' <summary>
|
||||
''' MySQL 连接器
|
||||
''' </summary>
|
||||
Public _mySqlConn As New MySqlConnection
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 初始化 MySQL 连接对象
|
||||
''' </summary>
|
||||
''' <param name="ServerAddress"></param>
|
||||
''' <param name="port"></param>
|
||||
''' <param name="DataBaseName"></param>
|
||||
''' <param name="User"></param>
|
||||
''' <param name="Password"></param>
|
||||
Sub New(ServerAddress As String, port As UInteger, DataBaseName As String, User As String, Password As String)
|
||||
_ConnString.Server = ServerAddress
|
||||
_ConnString.Port = port
|
||||
_ConnString.Database = DataBaseName
|
||||
_ConnString.UserID = User
|
||||
_ConnString.Password = Password
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 连接My SQL数据库
|
||||
''' </summary>
|
||||
Public Function ConnMySQLBase() As Boolean
|
||||
Try
|
||||
_mySqlConn = New MySqlConnection(_ConnString.ConnectionString)
|
||||
_mySqlConn.Open()
|
||||
Catch ex As Exception
|
||||
Console.WriteLine($"Error Message:{ex.Message}")
|
||||
Return False
|
||||
End Try
|
||||
Return True
|
||||
End Function
|
||||
|
||||
#Region "MySQL增删改查"
|
||||
|
||||
''' <summary>
|
||||
''' 插入MySQL数据
|
||||
''' </summary>
|
||||
''' <param name="strInsert"></param>
|
||||
''' <returns></returns>
|
||||
Public Function InsertMySql(strInsert As String)
|
||||
Try
|
||||
Dim cmd As New MySqlCommand(strInsert, _mySqlConn)
|
||||
cmd.ExecuteNonQuery()
|
||||
_mySqlConn.Close()
|
||||
_mySqlConn.Dispose()
|
||||
Catch ex As Exception
|
||||
Console.WriteLine($"MySql Error:{ex.Message}")
|
||||
Return False
|
||||
End Try
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 修改MySQL数据
|
||||
''' </summary>
|
||||
''' <param name="strUpdate"></param>
|
||||
''' <returns></returns>
|
||||
Public Function UpdateMySql(strUpdate As String)
|
||||
Dim result As Integer
|
||||
Try
|
||||
Dim cmd As New MySqlCommand(strUpdate, _mySqlConn)
|
||||
result = cmd.ExecuteNonQuery()
|
||||
_mySqlConn.Close()
|
||||
_mySqlConn.Dispose()
|
||||
Catch ex As Exception
|
||||
Console.WriteLine($"MySql Error:{ex.Message}")
|
||||
End Try
|
||||
Return result
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 查询MySQL数据
|
||||
''' </summary>
|
||||
''' <param name="queryString">需要查询的列</param>
|
||||
''' <returns></returns>
|
||||
Public Function Query(queryString As String) As DataTable
|
||||
Dim sda As MySqlDataAdapter = New MySqlDataAdapter(queryString, _ConnString.ConnectionString)
|
||||
Dim sqlDataSet As DataTable = New DataTable()
|
||||
|
||||
Try
|
||||
sda.Fill(sqlDataSet)
|
||||
Catch ex As Exception
|
||||
MsgBox($"######{Now} - MySQL查询错误: {ex.Message} 查询语句: {queryString}")
|
||||
End Try
|
||||
|
||||
Return sqlDataSet
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 查询MySQL数据
|
||||
''' </summary>
|
||||
''' <param name="queryCol">需要查询的列</param>
|
||||
''' <param name="TableName">需要查询的数据表名</param>
|
||||
''' <param name="Conditions">需要查询的条件,默认为空</param>
|
||||
''' <returns></returns>
|
||||
Public Function Query(queryCol As String, TableName As String, Optional Conditions As String = "") As DataTable
|
||||
Dim sql As String = $"select {queryCol} from {TableName} {Conditions}"
|
||||
Dim sda As MySqlDataAdapter = New MySqlDataAdapter(sql, _ConnString.ConnectionString)
|
||||
Dim sqlDataSet As DataTable = New DataTable()
|
||||
|
||||
Try
|
||||
sda.Fill(sqlDataSet)
|
||||
Catch ex As Exception
|
||||
MsgBox($"######{Now} - MySQL查询错误: {ex.Message} 查询语句: {sql}")
|
||||
End Try
|
||||
|
||||
Return sqlDataSet
|
||||
End Function
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "多语种信息"
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取多语种版本信息
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Function GetCloudVersionInfo() As DataTable
|
||||
Dim dtUser As DataTable = New DataTable()
|
||||
Dim queryStr As String = $"Select a.Language, a.Version from tbl_multilingual a
|
||||
Left Join tbl_multilingual_apps b on a.ApplicationID = b.ID
|
||||
where b.Application = 'C系列配置工具'"
|
||||
Console.WriteLine($"获取多语种版本信息查询语句:{queryStr}")
|
||||
|
||||
Dim sda As MySqlDataAdapter = New MySqlDataAdapter(queryStr, _ConnString.ConnectionString)
|
||||
Try
|
||||
sda.Fill(dtUser)
|
||||
Catch ex As Exception
|
||||
MsgBox($"######{Now} - MySQL查询错误: {ex.Message} 查询语句: ")
|
||||
End Try
|
||||
|
||||
Return dtUser
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取云端数据信息
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Function GetCloudDataInfo(languageName As String) As DataTable
|
||||
Dim dtUser As DataTable = New DataTable()
|
||||
Dim queryStr As String = $"Select a.{languageName} from tbl_multilingual_data a
|
||||
left join tbl_multilingual b on a.ApplicationID = b.ApplicationID
|
||||
left join tbl_multilingual_apps c on b.ApplicationID = c.ID
|
||||
where c.Application = 'C系列配置工具' And b.Language = '{languageName}';"
|
||||
|
||||
Console.WriteLine($"获取云端数据信息查询语句:{queryStr}")
|
||||
Dim sda As MySqlDataAdapter = New MySqlDataAdapter(queryStr, _ConnString.ConnectionString)
|
||||
Try
|
||||
sda.Fill(dtUser)
|
||||
Catch ex As Exception
|
||||
MsgBox($"######{Now} - MySQL查询错误: {ex.Message} 查询语句: {queryStr}")
|
||||
End Try
|
||||
|
||||
Return dtUser
|
||||
End Function
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
470
BLV_Studio/Control/MsDataSource/SqlServerDAL.vb
Normal file
470
BLV_Studio/Control/MsDataSource/SqlServerDAL.vb
Normal file
@@ -0,0 +1,470 @@
|
||||
Imports System.Data.SqlClient
|
||||
|
||||
Public Class SqlServerDAL
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' SQL连接
|
||||
''' </summary>
|
||||
Public _sqlConn As New SqlConnection
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' SQL适配器
|
||||
''' </summary>
|
||||
Public _sqlDateAdap As New SqlDataAdapter
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' SQL数据集
|
||||
''' </summary>
|
||||
Public _sqlDataSet As DataSet
|
||||
|
||||
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;"
|
||||
|
||||
''' <summary>
|
||||
''' 是否连接数据库
|
||||
''' </summary>
|
||||
Public _isConn As Boolean
|
||||
|
||||
''' <summary>
|
||||
''' 初始化
|
||||
''' </summary>
|
||||
Sub New()
|
||||
|
||||
End Sub
|
||||
|
||||
Public Function SelectTable(sqlstr As String) As Dictionary(Of String, String)
|
||||
Dim dic As New Dictionary(Of String, String)
|
||||
Dim dt As New DataTable
|
||||
Try
|
||||
|
||||
'Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mssql, DbConnString)
|
||||
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
|
||||
db.Open()
|
||||
dt = db.ExecuteDataTable(sqlstr)
|
||||
db.Close()
|
||||
End Using
|
||||
If Not IsNothing(dt) Then
|
||||
For Each dtrow As DataRow In dt.Rows
|
||||
For i As Integer = 0 To dt.Columns.Count - 1
|
||||
|
||||
dic.Add(dt.Columns(i).ColumnName, dtrow.Item(i).ToString)
|
||||
Next
|
||||
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
Return dic
|
||||
End Function
|
||||
|
||||
#Region "数据源连接"
|
||||
|
||||
''' <summary>
|
||||
''' 连接数据库
|
||||
''' </summary>
|
||||
''' <param name="IPAddress">IP地址或计算名</param>
|
||||
''' <param name="DataBaseName">数据库名</param>
|
||||
''' <param name="Conn">安全连接情况(真或假),若是Windows验证方式则为真,若是用户名及密码登录则为假</param>
|
||||
''' <param name="User">上项为假时,提供用户名</param>
|
||||
''' <param name="Password">上项为假时,提供密码</param>
|
||||
Public Sub ConnDataBase(IPAddress As String, DataBaseName As String, Conn As Boolean, User As String, Password As String)
|
||||
Dim cnStr As String = $"Data Source={IPAddress};Initial Catalog={DataBaseName};Integrated Security={Conn};User ID={User};Password={Password};"
|
||||
Try
|
||||
_sqlConn = New SqlConnection(cnStr)
|
||||
_sqlConn.Open()
|
||||
_isConn = True
|
||||
Catch ex As SqlException
|
||||
_isConn = False
|
||||
MsgBox($"Error SqlConn! {ex.Message}")
|
||||
Catch ex As Exception
|
||||
_isConn = False
|
||||
MsgBox($"Error Message! {ex.Message}")
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "多语种信息"
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取多语种版本信息
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Function GetCloudVersionInfo() As DataTable
|
||||
Dim dtUser As DataTable = New DataTable()
|
||||
Dim queryStr As String = $"Select a.Language, a.Version from TBL_Multilingual a
|
||||
Left Join TBL_MultilingualApps b on a.ApplicationID = b.ID
|
||||
where b.Application = '{Application.ProductName}'"
|
||||
|
||||
_sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
|
||||
'Console.WriteLine($"查询语种版本:{queryStr}")
|
||||
_sqlDateAdap.Fill(dtUser)
|
||||
|
||||
Return dtUser
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取多语种版本信息
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Function GetCloudDataInfo(languageName As String) As DataTable
|
||||
Dim dtUser As DataTable = New DataTable()
|
||||
Dim queryStr As String = $"Select a.{languageName} from TBL_MultilingualData a
|
||||
left join TBL_Multilingual b on a.ApplicationID = b.ApplicationID
|
||||
left join TBL_MultilingualApps c on b.ApplicationID = c.ID
|
||||
where c.Application = '{Application.ProductName}' And b.Language = '{languageName}'"
|
||||
|
||||
_sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
|
||||
Console.WriteLine($"查询语种数据:{queryStr}")
|
||||
_sqlDateAdap.Fill(dtUser)
|
||||
|
||||
Return dtUser
|
||||
End Function
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "本地_数据源"
|
||||
|
||||
''' <summary>
|
||||
''' SqlServer查询
|
||||
''' </summary>
|
||||
''' <param name="TableName">需要查询的数据表名</param>
|
||||
''' <param name="grd">要显示的表格控件</param>
|
||||
''' <param name="Conditions">需要查询的条件,默认为空</param>
|
||||
Public Sub Query(TableName As String, grd As FlexCell.Grid, Optional Conditions As String = "")
|
||||
_sqlDateAdap = New SqlDataAdapter($"select * from {TableName} {Conditions}", _sqlConn)
|
||||
_sqlDataSet = New DataSet()
|
||||
_sqlDateAdap.Fill(_sqlDataSet, $"{TableName}")
|
||||
Console.WriteLine($"查询语句:select * from {TableName} {Conditions}")
|
||||
grd.DataSource = _sqlDataSet.Tables($"{TableName}")
|
||||
grd.DisplayRowNumber = True
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' SqlServer查询
|
||||
''' </summary>
|
||||
''' <param name="queryCol">要查询的列</param>
|
||||
''' <param name="TableName">需要查询的数据表名</param>
|
||||
''' <param name="grd">要显示的表格控件</param>
|
||||
''' <param name="Conditions">需要查询的条件,默认为空</param>
|
||||
Public Sub Query(queryCol As String, TableName As String, grd As FlexCell.Grid, Optional Conditions As String = "")
|
||||
_sqlDateAdap = New SqlDataAdapter($"select {queryCol} from {TableName} {Conditions}", _sqlConn)
|
||||
_sqlDataSet = New DataSet()
|
||||
Console.WriteLine($"查询语句:select * from {TableName} {Conditions}")
|
||||
_sqlDateAdap.Fill(_sqlDataSet, $"{TableName}")
|
||||
grd.DataSource = _sqlDataSet.Tables($"{TableName}")
|
||||
grd.DisplayRowNumber = True
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' SqlServer查询
|
||||
''' </summary>
|
||||
''' <param name="TableName">需要查询的数据表名</param>
|
||||
''' <param name="Conditions">需要查询的条件,默认为空</param>
|
||||
Public Function Query(TableName As String, Optional Conditions As String = "") As DataTable
|
||||
_sqlDateAdap = New SqlDataAdapter($"select * from {TableName} {Conditions}", _sqlConn)
|
||||
Dim sqlDataSet As DataTable = New DataTable()
|
||||
|
||||
Console.WriteLine($"查询语句:select * from {TableName} {Conditions}")
|
||||
_sqlDateAdap.Fill(sqlDataSet)
|
||||
|
||||
Return sqlDataSet
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' SqlServer查询
|
||||
''' </summary>
|
||||
''' <param name="queryCol">需要查询的列</param>
|
||||
''' <param name="TableName">需要查询的数据表名</param>
|
||||
''' <param name="Conditions">需要查询的条件,默认为空</param>
|
||||
''' <returns></returns>
|
||||
Public Function Query(queryCol As String, TableName As String, Optional Conditions As String = "") As DataTable
|
||||
_sqlDateAdap = New SqlDataAdapter($"select {queryCol} from {TableName} {Conditions}", _sqlConn)
|
||||
Dim sqlDataSet As DataTable = New DataTable()
|
||||
|
||||
Console.WriteLine($"查询语句:select {queryCol} from {TableName} {Conditions}")
|
||||
_sqlDateAdap.Fill(sqlDataSet)
|
||||
|
||||
Return sqlDataSet
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' SqlServer添加
|
||||
''' </summary>
|
||||
''' <param name="TableName">需要添加的数据表名</param>
|
||||
''' <param name="grd">要显示的表格控件</param>
|
||||
''' <param name="Conditions">需要添加的数据条件,(字段1,字段2,字段3) values(字段1值,字段2值,字段3值)</param>
|
||||
''' (条件中若是包含中文,则用N'{值}'表示)
|
||||
Public Sub Add(TableName As String, grd As FlexCell.Grid, Optional Conditions As String = "")
|
||||
Dim insert As String = $"insert into {TableName} {Conditions}"
|
||||
_sqlDateAdap = New SqlDataAdapter(insert, _sqlConn)
|
||||
_sqlDateAdap.Fill(_sqlDataSet, $"{TableName}")
|
||||
Console.WriteLine($"插入语句:{insert}")
|
||||
grd.DataSource = _sqlDataSet.Tables($"{TableName}")
|
||||
grd.DisplayRowNumber = True
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' SqlServer添加
|
||||
''' </summary>
|
||||
''' <param name="TableName">需要添加的数据表名</param>
|
||||
''' <param name="Conditions">需要添加的数据条件,(字段1,字段2,字段3) values(字段1值,字段2值,字段3值)</param>
|
||||
''' (条件中若是包含中文,则用N'{值}'表示)
|
||||
Public Sub Add(TableName As String, Optional Conditions As String = "")
|
||||
Dim insert As String = $"insert into {TableName} {Conditions}"
|
||||
_sqlDateAdap = New SqlDataAdapter(insert, _sqlConn)
|
||||
Dim sqlDataSet As DataTable = New DataTable()
|
||||
|
||||
Console.WriteLine($"插入语句:{insert}")
|
||||
_sqlDateAdap.Fill(sqlDataSet)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' SqlServer修改
|
||||
''' </summary>
|
||||
''' <param name="TableName">需要修改的数据表名</param>
|
||||
''' <param name="grd">要显示的表格控件</param>
|
||||
''' <param name="Conditions">需要修改的数据条件,Set 字段1 = 修改后的值 Where 字段1 = 修改前的值</param>
|
||||
''' (条件中若是包含中文,则用N'{值}'表示)
|
||||
Public Sub Modify(TableName As String, grd As FlexCell.Grid, Optional Conditions As String = "")
|
||||
Dim modify As String = $"update {TableName} {Conditions}"
|
||||
_sqlDateAdap = New SqlDataAdapter(modify, _sqlConn)
|
||||
Console.WriteLine($"修改语句:{modify}")
|
||||
_sqlDateAdap.Fill(_sqlDataSet, $"{TableName}")
|
||||
grd.DataSource = _sqlDataSet.Tables($"{TableName}")
|
||||
grd.DisplayRowNumber = True
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' SqlServer删除
|
||||
''' </summary>
|
||||
''' <param name="TableName">需要删除的数据表名</param>
|
||||
''' <param name="grd">要显示的表格控件</param>
|
||||
''' <param name="Conditions">需要删除的数据条件,Where 字段1 = 字段1值 And 字段2 = 字段2值 And 字段3...</param>
|
||||
''' (条件中若是包含中文,则用N'{值}'表示)
|
||||
Public Sub Delete(TableName As String, grd As FlexCell.Grid, Optional Conditions As String = "")
|
||||
Dim delete As String = $"delete From {TableName} {Conditions}"
|
||||
_sqlDateAdap = New SqlDataAdapter(delete, _sqlConn)
|
||||
Console.WriteLine($"删除语句:{delete}")
|
||||
_sqlDateAdap.Fill(_sqlDataSet, $"{TableName}")
|
||||
grd.DataSource = _sqlDataSet.Tables($"{TableName}")
|
||||
grd.DisplayRowNumber = True
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "登录_数据源"
|
||||
|
||||
''' <summary>
|
||||
''' 获取匹配的用户信息
|
||||
''' </summary>
|
||||
''' <param name="userAccount">用户账号</param>
|
||||
''' <param name="userPassword">用户密码</param>
|
||||
''' <returns></returns>
|
||||
Public Function GetUserInfo(userAccount As String, userPassword As String) As DataTable
|
||||
Dim userInfo As String = UserInfoListDAL.UserInfo
|
||||
Dim userAuthoes As String = UserInfoListDAL.UserAuthoes
|
||||
Dim appAutho As String = UserInfoListDAL.AppAutho
|
||||
Dim authority As String = UserInfoListDAL.Authority
|
||||
Dim dtUser As DataTable = New DataTable()
|
||||
|
||||
Dim queryCol As String = $"Uid, Pwd"
|
||||
|
||||
|
||||
Dim queryStr As String = $"Select a.Id, a.Uid, a.Pwd, a.CreateTime, b.AuthorityId, c.AuthorityName, b.HotelId, d.Name, d.Code, d.GroupId, e.Name from {userInfo} a
|
||||
left join {userAuthoes} b on a.Id = b.UserId
|
||||
left join {authority} c on b.AuthorityId = c.Id
|
||||
left join dbo.Hotels d on b.HotelId = d.Id
|
||||
left join dbo.HotelGroups e on d.GroupId = e.Id
|
||||
left join dbo.AppAutho aa on c.id = aa.AuthorityId
|
||||
where a.Uid = '{userAccount}' and b.AuthotypeId <> '1' and aa.AppId = '1'"
|
||||
|
||||
_sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
|
||||
'_sqlDateAdap = New SqlDataAdapter($"select {queryCol} from {userInfo} Where Uid = '{userAccount}'", _sqlConn)
|
||||
Console.WriteLine($"查询语句:{queryStr}")
|
||||
_sqlDateAdap.Fill(dtUser)
|
||||
|
||||
Return dtUser
|
||||
End Function
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "后台_数据源"
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' 获取后台数据源的房型
|
||||
'''' </summary>
|
||||
'''' <param name="projectNumber">项目编号</param>
|
||||
'''' <returns></returns>
|
||||
'Public Function GetProjectRoomTypeInfo(projectNumber As String) As DataTable
|
||||
' Dim dtUser As DataTable = New DataTable()
|
||||
|
||||
' Dim queryStr As String = $"select a.ID, a.Code, a.Name, b.HostName, b.ID from tb_Sys_Hotels a
|
||||
' left join dbo.tb_RoomType b
|
||||
' on b.HotelID = a.ID
|
||||
' where a.Code = '{projectNumber}'"
|
||||
|
||||
' _sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
|
||||
' Console.WriteLine($"查询语句:{queryStr}")
|
||||
' _sqlDateAdap.Fill(dtUser)
|
||||
|
||||
' Return dtUser
|
||||
'End Function
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' 获取后台数据源的房号
|
||||
'''' </summary>
|
||||
'''' <param name="projectNumber">项目编号</param>
|
||||
'''' <param name="roomType">房型</param>
|
||||
'''' <returns></returns>
|
||||
'Public Function GetProjectRoomNumberInfo(projectNumber As String, roomType As String) As DataTable
|
||||
' Dim dtUser As DataTable = New DataTable()
|
||||
' Dim queryStr As String
|
||||
|
||||
' If roomType = $"全部" Then
|
||||
' queryStr = $"select a.HotelID, b.Code, b.Name, c.HostName, a.RoomNumber, a.ID, c.ID from tb_Hosts a
|
||||
' left join tb_Sys_Hotels b on b.ID = a.HotelID
|
||||
' left join tb_RoomType c on c.ID = a.RoomTypeID
|
||||
' where b.code = '{projectNumber}' and a.IsSyncRoomNumber = '1'
|
||||
' order by a.RoomNumber asc"
|
||||
' Else
|
||||
' queryStr = $"select a.HotelID, b.Code, b.Name, c.HostName, a.RoomNumber, a.ID, c.ID from tb_Hosts a
|
||||
' left join tb_Sys_Hotels b on b.ID = a.HotelID
|
||||
' left join tb_RoomType c on c.ID = a.RoomTypeID
|
||||
' where b.code = '{projectNumber}' and HostName = '{roomType}' and a.IsSyncRoomNumber = '1'
|
||||
' order by a.RoomNumber asc"
|
||||
' End If
|
||||
|
||||
' _sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
|
||||
' Console.WriteLine($"查询语句:{queryStr}")
|
||||
' _sqlDateAdap.Fill(dtUser)
|
||||
|
||||
' Return dtUser
|
||||
'End Function
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' 获取后台数据源的房型
|
||||
'''' 已知项目编号和房号
|
||||
'''' </summary>
|
||||
'''' <param name="projectNumber">项目编号</param>
|
||||
'''' <param name="roomNumber">房号</param>
|
||||
'''' <returns></returns>
|
||||
'Public Function GetProjectRoomNumberTypeInfo(projectNumber As String, roomNumber As String) As DataTable
|
||||
' Dim dtUser As DataTable = New DataTable()
|
||||
' Dim queryStr As String = $"select a.HotelID, b.Code, b.Name, c.HostName, a.RoomNumber, a.RoomTypeID from tb_Hosts a
|
||||
' left join tb_Sys_Hotels b on b.ID = a.HotelID
|
||||
' left join tb_RoomType c on c.ID = a.RoomTypeID
|
||||
' where b.code = '{projectNumber}' and a.RoomNumber = '{roomNumber}' and a.IsSyncRoomNumber = '1'
|
||||
' order by a.RoomNumber asc"
|
||||
' _sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
|
||||
' Console.WriteLine($"房号查询语句:{queryStr}")
|
||||
' _sqlDateAdap.Fill(dtUser)
|
||||
|
||||
' Return dtUser
|
||||
'End Function
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' 获取后台数据源的房号
|
||||
'''' </summary>
|
||||
'''' <param name="projectNumber">项目编号</param>
|
||||
'''' <returns></returns>
|
||||
'Public Function GetMatchingInfo(projectNumber As String) As DataTable
|
||||
' Dim dtUser As DataTable = New DataTable()
|
||||
' Dim queryStr As String = $"select a.HotelID, b.Code, b.Name, a.ID, a.RoomNumber, c.ID, c.HostName, a.MAC from tb_Hosts a
|
||||
' left join tb_Sys_Hotels b on b.ID = a.HotelID
|
||||
' left join tb_RoomType c on c.ID = a.RoomTypeID
|
||||
' where b.code = '{projectNumber}' and a.IsSyncRoomNumber = '1'
|
||||
' order by a.RoomNumber asc"
|
||||
|
||||
' _sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
|
||||
' Console.WriteLine($"查询语句:{queryStr}")
|
||||
' _sqlDateAdap.Fill(dtUser)
|
||||
|
||||
' Return dtUser
|
||||
'End Function
|
||||
|
||||
|
||||
'''' <summary>
|
||||
'''' 获取后台数据源的批量数据
|
||||
'''' 已知项目编码
|
||||
'''' </summary>
|
||||
'''' <param name="projectNumber">项目编号</param>
|
||||
'''' <returns></returns>
|
||||
'Public Function GetBatchDataInfo(projectNumber As String) As DataTable
|
||||
' Dim dtUser As DataTable = New DataTable()
|
||||
' Dim queryStr As String = $"select a.RoomNumber, a.MAC, a.IP, a.Remark, a.ID, a.RoomTypeID, a.Port, a.Gateway, a.SubnetMask, a.DNS, a.LockStatus, a.AuthorizedHours from tb_Hosts a
|
||||
' left join tb_Sys_Hotels b on a.HotelID = b.ID
|
||||
' where b.Code = '{projectNumber}';"
|
||||
' _sqlDateAdap = New SqlDataAdapter(queryStr, _sqlConn)
|
||||
' Console.WriteLine($"批量数据查询结果:{queryStr}")
|
||||
' _sqlDateAdap.Fill(dtUser)
|
||||
|
||||
' Return dtUser
|
||||
'End Function
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "更新绑定信息"
|
||||
|
||||
'''' <summary>
|
||||
'''' 更新绑定信息
|
||||
'''' </summary>
|
||||
'''' <param name="projectNumber">项目编号</param>
|
||||
'''' <param name="roomNumber">房号</param>
|
||||
'''' <param name="mac">MAC</param>
|
||||
'''' <returns></returns>
|
||||
'Public Function UpdateMACInfo(projectNumber As String, roomNumber As String, mac As String) As Boolean
|
||||
' Dim count As Integer = 0
|
||||
' Dim dtUser As DataTable = New DataTable()
|
||||
' Dim updateStr As String = $"update dbo.tb_Hosts set MAC = '{mac}' where RoomNumber='{roomNumber}' and HotelID=(select ID from tb_Sys_Hotels where Code='{projectNumber}');"
|
||||
' Console.WriteLine($"更新语句:{updateStr}")
|
||||
' _sqlDateAdap = New SqlDataAdapter(updateStr, _sqlConn)
|
||||
' _sqlDateAdap.Fill(dtUser)
|
||||
' Try
|
||||
' count = _sqlDateAdap.Update(dtUser)
|
||||
' Catch ex As Exception
|
||||
' Return False
|
||||
' End Try
|
||||
|
||||
' Return True
|
||||
'End Function
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "关闭连接"
|
||||
|
||||
''' <summary>
|
||||
''' 关闭连接
|
||||
''' </summary>
|
||||
Public Sub ConnClose()
|
||||
If _sqlConn IsNot Nothing AndAlso _sqlConn.State <> ConnectionState.Closed Then
|
||||
_sqlConn.Close()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
End Class
|
||||
55
BLV_Studio/Control/MsDataSource/UserInfoListDAL.vb
Normal file
55
BLV_Studio/Control/MsDataSource/UserInfoListDAL.vb
Normal file
@@ -0,0 +1,55 @@
|
||||
Public Class UserInfoListDAL
|
||||
|
||||
Enum ColNamesEnum
|
||||
''' <summary>
|
||||
''' 用户Uid唯一索引_用户名
|
||||
''' </summary>
|
||||
UserID
|
||||
''' <summary>
|
||||
''' 用户密码
|
||||
''' </summary>
|
||||
Password
|
||||
''' <summary>
|
||||
''' 创建日期
|
||||
''' </summary>
|
||||
CreateTime
|
||||
''' <summary>
|
||||
''' 是否有效
|
||||
''' </summary>
|
||||
IsValid
|
||||
End Enum
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' C系列配置工具权限所属域ID
|
||||
''' </summary>
|
||||
Public Shared Property _appAuthorityId As Integer = 1 'C系列配置工具
|
||||
|
||||
''' <summary>
|
||||
''' 用户表名称
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Shared Property UserInfo() As String = "UserInfo"
|
||||
|
||||
''' <summary>
|
||||
''' 用户表-权限关联表名称
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Shared Property UserAuthoes() As String = "UserAuthoes"
|
||||
|
||||
''' <summary>
|
||||
''' 域-权限关联表名称
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Shared Property AppAutho() As String = "AppAutho"
|
||||
|
||||
''' <summary>
|
||||
''' 权限表名称
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Shared Property Authority() As String = "Authority"
|
||||
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
89
BLV_Studio/Control/RoomControlSystemAPI.vb
Normal file
89
BLV_Studio/Control/RoomControlSystemAPI.vb
Normal file
@@ -0,0 +1,89 @@
|
||||
Imports System.IO
|
||||
Imports System.Net
|
||||
Imports System.Text
|
||||
Imports Newtonsoft.Json
|
||||
|
||||
Public Class RoomControlSystemAPI
|
||||
|
||||
Public Shared Function API_AllocationBarCode(roomNumber As String, hotelID As String) As APIRoomNode
|
||||
Dim jsonString As String = String.Empty
|
||||
Dim dic As New Dictionary(Of String, String)
|
||||
dic.Add("roomNumber", roomNumber)
|
||||
dic.Add("key", "blw_ws@2015")
|
||||
dic.Add("hotelID", hotelID)
|
||||
Try
|
||||
jsonString = PostData("https://www.boonlive-rcu.com/api/GetHostByRoomNumber", $"jsonData={JsonConvert.SerializeObject(dic)}")
|
||||
Catch ex As Exception
|
||||
MsgBox($"网络API调用错误,请联系管理员。")
|
||||
Return Nothing
|
||||
End Try
|
||||
'Console.WriteLine(jsonString)
|
||||
|
||||
If jsonString = Nothing Then
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
Dim login As APIRoomNode = Nothing
|
||||
Try
|
||||
login = JsonConvert.DeserializeObject(Of APIRoomNode)(jsonString)
|
||||
If login.IsSuccess.ToLower.Equals("true") Then
|
||||
Return login
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
Catch ex As Exception
|
||||
'MsgBox($"Json数据转换错误,请联系管理员。详情 :Json data to AllocationAPI error")
|
||||
Return Nothing
|
||||
End Try
|
||||
|
||||
End Function
|
||||
Public Shared Function URLEncode(strInput As String) As String
|
||||
Dim strOutput As String
|
||||
Dim intAscii As Integer
|
||||
Dim i As Integer
|
||||
|
||||
|
||||
For i = 1 To Len(strInput)
|
||||
intAscii = Asc(Mid(strInput, i, 1))
|
||||
If ((intAscii < 58) And (intAscii > 47)) Or
|
||||
((intAscii < 91) And (intAscii > 64)) Or
|
||||
((intAscii < 123) And (intAscii > 96)) Then
|
||||
strOutput = strOutput & Chr(intAscii)
|
||||
Else
|
||||
strOutput = strOutput &
|
||||
IIf(intAscii < 16, "%0", "%") &
|
||||
Trim$(Hex$(intAscii))
|
||||
End If
|
||||
Next
|
||||
URLEncode = strOutput
|
||||
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
|
||||
End Class
|
||||
Public Class APIRoomNode
|
||||
Public IsSuccess As String
|
||||
Public Result As List(Of Dictionary(Of String, String))
|
||||
End Class
|
||||
15
BLV_Studio/Database/Base/ColumnSchema.vb
Normal file
15
BLV_Studio/Database/Base/ColumnSchema.vb
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
Namespace Database.Base
|
||||
''' <summary>
|
||||
''' Contains the schema of a single DB column.
|
||||
''' </summary>
|
||||
Public Class ColumnSchema
|
||||
Public ColumnName As String
|
||||
Public ColumnType As String
|
||||
Public Length As Integer
|
||||
Public IsNullable As Boolean
|
||||
Public DefaultValue As String
|
||||
Public IsIdentity As Boolean
|
||||
Public IsCaseSensitivity As Boolean? = Nothing
|
||||
End Class
|
||||
End NameSpace
|
||||
297
BLV_Studio/Database/Base/CommandHelpers.vb
Normal file
297
BLV_Studio/Database/Base/CommandHelpers.vb
Normal file
@@ -0,0 +1,297 @@
|
||||
Imports System.Text
|
||||
|
||||
Namespace Database.Base
|
||||
|
||||
Public MustInherit Class CommandHelpers
|
||||
Public Overridable Function Search(param As SearchParams) As String
|
||||
Dim searchString As New StringBuilder
|
||||
|
||||
'基础查询
|
||||
searchString.Append("Select")
|
||||
searchString.Append(" ")
|
||||
searchString.Append($"{String.Join(",", param.SearchColNames)}")
|
||||
searchString.Append(" ")
|
||||
searchString.Append("From")
|
||||
searchString.Append(" ")
|
||||
searchString.Append($"`{param.TableName}`")
|
||||
|
||||
'筛选条件
|
||||
If param.SearchCondition IsNot Nothing Then
|
||||
If param.SearchCondition.Count > 0 Then
|
||||
searchString.Append(" ")
|
||||
searchString.Append("Where")
|
||||
For i As Integer = 0 To param.SearchCondition.Count - 1
|
||||
If i > 0 Then
|
||||
searchString.Append(" ")
|
||||
searchString.Append(param.SearchCondition(i).LogicPrevious.ToString())
|
||||
End If
|
||||
searchString.Append(param.SearchCondition(i).ToString())
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
|
||||
'排序与排序方式
|
||||
If param.OrderType <> SearchParams.OrderTypeEnum.None Then
|
||||
searchString.Append($" Order By {param.OrderColName} {param.OrderType}")
|
||||
End If
|
||||
|
||||
'返回结果行数
|
||||
If param.Limit > -1 Then
|
||||
searchString.Append($" Limit {param.Limit}")
|
||||
End If
|
||||
|
||||
searchString.Append(";")
|
||||
Return searchString.ToString()
|
||||
End Function
|
||||
|
||||
|
||||
Public Overridable Function SearchAll(tableName As String) As String
|
||||
Return $"Select * FROM `{tableName}`;"
|
||||
End Function
|
||||
|
||||
Public Overridable Function SearchAll(tableName As String, condition As String) As String
|
||||
Return $"Select * FROM `{tableName}` WHERE {condition};"
|
||||
End Function
|
||||
|
||||
Public Overridable Function Search(columnName As List(Of String), tableName As String) As String
|
||||
Dim colNameString As New StringBuilder
|
||||
For i As Integer = 0 To columnName.Count - 1
|
||||
If i = 0 Then
|
||||
colNameString.Append($"`{columnName(i)}`")
|
||||
Else
|
||||
colNameString.Append($",`{columnName(i)}`")
|
||||
End If
|
||||
Next
|
||||
|
||||
Return $"Select {colNameString} FROM `{tableName}`;"
|
||||
End Function
|
||||
|
||||
Public Overridable Function Search(columnName As String, tableName As String) As String
|
||||
Return $"Select {columnName} FROM `{tableName}`;"
|
||||
End Function
|
||||
|
||||
Public Overridable Function Search(columnName As String, tableName As String, condition As String) As String
|
||||
Return $"Select {columnName} FROM `{tableName}` WHERE {condition};"
|
||||
End Function
|
||||
|
||||
Public Overridable Function Search(columnName As String, tableName As String, condition As String, limit As Integer) As String
|
||||
Return $"Select {columnName} FROM `{tableName}` WHERE {condition} Limit {limit};"
|
||||
End Function
|
||||
|
||||
Public Overridable Function SearchDistinct(columnName As String, tableName As String) As String
|
||||
Return $"Select Distinct {columnName} FROM `{tableName}`;"
|
||||
End Function
|
||||
|
||||
Public Overridable Function SearchDistinct(columnName As String, tableName As String, condition As String) As String
|
||||
Return $"Select Distinct {columnName} FROM `{tableName}` WHERE {condition};"
|
||||
End Function
|
||||
|
||||
Public Overridable Function SearchDescOrder(columnName As String, tableName As String, orderCol As String) As String
|
||||
Return $"Select {columnName} FROM `{tableName}` Order By {orderCol} Desc;"
|
||||
End Function
|
||||
|
||||
Public Overridable Function SearchDescOrder(columnName As String, tableName As String, orderCol As String, limit As Integer) As String
|
||||
Return $"Select {columnName} FROM `{tableName}` Order By {orderCol} Desc Limit {limit};"
|
||||
End Function
|
||||
|
||||
Public Overridable Function SearchDescOrder(columnName As String, ByVal tableName As String, ByVal condition As String, ByVal orderCol As String) As String
|
||||
Return $"Select {columnName} FROM `{tableName}` WHERE {condition} Order By `{orderCol}` Desc;"
|
||||
End Function
|
||||
|
||||
Public Overridable Function SearchDescOrder(columnName As String, ByVal tableName As String, ByVal condition As String, ByVal orderCol As String, limit As Integer) As String
|
||||
Return $"Select {columnName} FROM `{tableName}` WHERE {condition} Order By `{orderCol}` Desc Limit {limit};"
|
||||
End Function
|
||||
|
||||
Public Overridable Function SearchAscOrder(ByVal columnName As String, ByVal tableName As String, ByVal orderCol As String) As String
|
||||
Return $"Select {columnName} FROM `{tableName}` Order By {orderCol} Asc;"
|
||||
End Function
|
||||
|
||||
|
||||
Public Overridable Function SearchAscOrder(ByVal columnName As String, ByVal tableName As String, ByVal condition As String, ByVal orderCol As String) As String
|
||||
Return $"Select {columnName} FROM `{tableName}` WHERE {condition} Order By {orderCol} Asc;"
|
||||
End Function
|
||||
|
||||
Public Overridable Function SearchNullTable(tableName As String) As String
|
||||
Return $"Select * FROM `{tableName}` Where Limit 0;"
|
||||
End Function
|
||||
|
||||
|
||||
Public Overridable Function Insert(ByVal tableName As String, ByVal values As String) As String
|
||||
Return $"Insert into `{tableName}` Values ( {values} );"
|
||||
End Function
|
||||
|
||||
Public Overridable Function Insert(ByVal tableName As String, ByVal colNames As String, ByVal values As String) As String
|
||||
Return $"Insert into `{tableName}` ({colNames}) Values ( {values} );"
|
||||
End Function
|
||||
|
||||
Public Overridable Function Insert(tableName As String, dicNameValues As Dictionary(Of String, String)) As String
|
||||
Dim colNames As New StringBuilder
|
||||
Dim values As New StringBuilder
|
||||
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
|
||||
If colNames.Length = 0 Then
|
||||
colNames.Append($"`{keyValuePair.Key}`")
|
||||
values.Append($"'{keyValuePair.Value}'")
|
||||
Else
|
||||
colNames.Append($",`{keyValuePair.Key}`")
|
||||
values.Append($",'{keyValuePair.Value}'")
|
||||
End If
|
||||
Next
|
||||
Return Insert(tableName, colNames.ToString(), values.ToString())
|
||||
End Function
|
||||
|
||||
Public Overridable Function InsertByParameters(tableName As String, dicNameValues As Dictionary(Of String, String)) As String
|
||||
Dim colNames As New StringBuilder
|
||||
Dim values As New StringBuilder
|
||||
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
|
||||
If colNames.Length = 0 Then
|
||||
colNames.Append($"`{keyValuePair.Key}`")
|
||||
values.Append($"{keyValuePair.Value}")
|
||||
Else
|
||||
colNames.Append($",`{keyValuePair.Key}`")
|
||||
values.Append($",{keyValuePair.Value}")
|
||||
End If
|
||||
Next
|
||||
Return Insert(tableName, colNames.ToString(), values.ToString())
|
||||
End Function
|
||||
|
||||
|
||||
Public Overridable Function AddCol(ByVal tableName As String, ByVal colName As String, ByVal colType As String, Optional isNull As Boolean = True) As String
|
||||
Return $"Alter Table `{tableName}` Add `{colName}` {colType} {IIf(isNull, "Default Null", "Not Null")};"
|
||||
End Function
|
||||
|
||||
Public Overridable Function AddCol(ByVal tableName As String, colParam As DatabaseData) As String
|
||||
Dim sb As New StringBuilder
|
||||
sb.Append($"Alter Table `{tableName}` ")
|
||||
sb.Append("Add ")
|
||||
sb.Append(colParam.ToAddColString())
|
||||
Return sb.ToString()
|
||||
End Function
|
||||
|
||||
|
||||
Public Overridable Function AddCols(tableName As String, colList As List(Of DatabaseData)) As String
|
||||
Dim sb As New StringBuilder
|
||||
sb.Append($"Alter Table `{tableName}` ")
|
||||
sb.Append("Add ")
|
||||
sb.Append("( ")
|
||||
|
||||
sb.Append(colList(0).ToAddColString())
|
||||
For i As Integer = 1 To colList.Count - 1
|
||||
sb.Append($",{colList(i).ToAddColString()}")
|
||||
Next
|
||||
|
||||
sb.Append(");")
|
||||
|
||||
Return sb.ToString()
|
||||
End Function
|
||||
|
||||
|
||||
Public Overridable Function Update(ByVal tableName As String, ByVal destStr As String, ByVal condition As String) As String
|
||||
Return $"Update `{tableName}` Set {destStr} Where {condition};"
|
||||
End Function
|
||||
|
||||
Public Overridable Function Update(ByVal tableName As String, dicNameValues As Dictionary(Of String, String), ByVal condition As String) As String
|
||||
Dim destStr As New StringBuilder
|
||||
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
|
||||
If destStr.Length = 0 Then
|
||||
destStr.Append($"`{keyValuePair.Key}` = '{keyValuePair.Value}'")
|
||||
Else
|
||||
destStr.Append($",`{keyValuePair.Key}` = '{keyValuePair.Value}'")
|
||||
End If
|
||||
Next
|
||||
Return Update(tableName, destStr.ToString(), condition)
|
||||
End Function
|
||||
|
||||
Public Overridable Function Update(ByVal tableName As String, names() As String, values() As String, condition As String) As String
|
||||
Dim destStr As New StringBuilder
|
||||
If names.Length <> values.Length Then
|
||||
Throw New Exception("DBHelpers_Update:names.Length <> values.Length")
|
||||
End If
|
||||
|
||||
For i As Integer = 0 To names.Length - 1
|
||||
If i = 0 Then
|
||||
destStr.Append($"{names(i)} = '{values(i)}'")
|
||||
Else
|
||||
destStr.Append($",{names(i)} = '{values(i)}'")
|
||||
End If
|
||||
Next
|
||||
|
||||
Return Update(tableName, destStr.ToString(), condition)
|
||||
End Function
|
||||
|
||||
Public Overridable Function DeleteRows(ByVal tableName As String, ByVal condition As String) As String
|
||||
Return $"Delete From `{tableName}` Where {condition};"
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 清空数据表
|
||||
''' </summary>
|
||||
''' <param name="tableName">数据表名</param>
|
||||
''' <returns></returns>
|
||||
Public Overridable Function DeleteTable(ByVal tableName As String) As String
|
||||
Return $"Delete From `{tableName}`;"
|
||||
End Function
|
||||
|
||||
Public Overridable Function DropCol(ByVal tableName As String, ByVal colName As String) As String
|
||||
Return $"Alter Table `{tableName}` Drop Column `{colName}`;"
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 删除数据表
|
||||
''' </summary>
|
||||
''' <param name="tableName">数据表名</param>
|
||||
''' <returns></returns>
|
||||
Public Overridable Function DropTable(ByVal tableName As String) As String
|
||||
Return $"Drop Table `{tableName}`;"
|
||||
End Function
|
||||
|
||||
Public Overridable Function CreateTable(ByVal tableName As String, ByVal createStr As String) As String
|
||||
Return $"Create Table `{tableName}` ( {createStr} );"
|
||||
End Function
|
||||
|
||||
Public Overridable Function CreateTableWhenNotExists(tableName As String, createStr As String) As String
|
||||
Return $"Create Table if not exists `{tableName}` ( {createStr} );"
|
||||
End Function
|
||||
|
||||
|
||||
Public Overridable Function CreateLikeTable(tableName As String, baseTableName As String) As String
|
||||
Return $"create table `{tableName}` like `{baseTableName}`;"
|
||||
End Function
|
||||
|
||||
Public Overridable Function CreateLikeTableNotExists(tableName As String, baseTableName As String) As String
|
||||
Return $"create table if not exists `{tableName}` like `{baseTableName}`;"
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 创建表,同时复制基础表数据(不包含原表索引与主键)
|
||||
''' 若想复制表结构加数据,则先复制表结构创建表,再拷贝数据
|
||||
''' </summary>
|
||||
''' <param name="tableName">表名</param>
|
||||
''' <param name="baseTableName">基础表名</param>
|
||||
''' <returns></returns>
|
||||
Public Overridable Function CreateCopyTable(tableName As String, baseTableName As String) As String
|
||||
Return $"create table `{tableName}` as select * from `{baseTableName}`;"
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 不存在表时即创建表,同时复制基础表数据(不包含原表索引与主键)
|
||||
''' 若想复制表结构加数据,则先复制表结构创建表,再拷贝数据
|
||||
''' </summary>
|
||||
''' <param name="tableName">表名</param>
|
||||
''' <param name="baseTableName">基础表名</param>
|
||||
''' <returns></returns>
|
||||
Public Overridable Function CreateCopyTableNotExists(tableName As String, baseTableName As String) As String
|
||||
Return $"create table if not exists `{tableName}` as select * from `{baseTableName}`;"
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 复制基础表数据到新表中
|
||||
''' </summary>
|
||||
''' <param name="tableName">表名</param>
|
||||
''' <param name="baseTableName">基础表名</param>
|
||||
''' <returns></returns>
|
||||
Public Overridable Function InsertCopyTable(tableName As String, baseTableName As String) As String
|
||||
Return $"insert into `{tableName}` select * from `{baseTableName}`;"
|
||||
End Function
|
||||
End Class
|
||||
End Namespace
|
||||
94
BLV_Studio/Database/Base/DatabaseData.vb
Normal file
94
BLV_Studio/Database/Base/DatabaseData.vb
Normal file
@@ -0,0 +1,94 @@
|
||||
Imports System.Text
|
||||
|
||||
Namespace Database.Base
|
||||
Public Class DatabaseData
|
||||
Enum TypeEnum
|
||||
[Bit]
|
||||
[Char]
|
||||
[Date]
|
||||
[DateTime]
|
||||
[Double]
|
||||
[Enum]
|
||||
[Float]
|
||||
[Int]
|
||||
[IntUnsigned]
|
||||
[Json]
|
||||
[Text]
|
||||
[Time]
|
||||
Varchar
|
||||
[Year]
|
||||
End Enum
|
||||
|
||||
''' <summary>
|
||||
''' 列名
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property ColumnName() As String
|
||||
|
||||
''' <summary>
|
||||
''' 当前值
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property Value() As String
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 默认值
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property DefaultValue() As String
|
||||
|
||||
''' <summary>
|
||||
''' 数据类型
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property DataType() As TypeEnum
|
||||
|
||||
''' <summary>
|
||||
''' 数据类型长度
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property DataTypeLength() As Integer
|
||||
|
||||
''' <summary>
|
||||
''' 是否允许为空
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property IsNull() As Boolean = True
|
||||
|
||||
''' <summary>
|
||||
''' 是否自动增长
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property IsAutoIncrement() As Boolean
|
||||
|
||||
''' <summary>
|
||||
''' 是否为主键
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Property IsPrimaryKey() As Boolean
|
||||
|
||||
Public Function ToAddColString() As String
|
||||
Dim sb As New StringBuilder
|
||||
sb.Append($"`{ColumnName}`")
|
||||
|
||||
Select Case DataType
|
||||
Case TypeEnum.Char, TypeEnum.Varchar
|
||||
sb.Append($" {DataType}({DataTypeLength}) ")
|
||||
Case TypeEnum.Int
|
||||
sb.Append($" {DataType}")
|
||||
If IsAutoIncrement Then sb.Append($" AUTO_INCREMENT")
|
||||
Case Else
|
||||
sb.Append($" {DataType}")
|
||||
End Select
|
||||
|
||||
sb.Append(IIf(IsNull, " Default Null", " Not Null"))
|
||||
|
||||
If IsPrimaryKey Then
|
||||
sb.Append($" PRIMARY KEY")
|
||||
End If
|
||||
|
||||
Return sb.ToString()
|
||||
End Function
|
||||
End Class
|
||||
End Namespace
|
||||
12
BLV_Studio/Database/Base/DatabaseSchema.vb
Normal file
12
BLV_Studio/Database/Base/DatabaseSchema.vb
Normal file
@@ -0,0 +1,12 @@
|
||||
Imports System.Collections.Generic
|
||||
|
||||
Namespace Database.Base
|
||||
|
||||
''' <summary>
|
||||
''' Contains the entire database schema
|
||||
''' </summary>
|
||||
Public Class DatabaseSchema
|
||||
Public Tables As List(Of TableSchema) = New List(Of TableSchema)()
|
||||
Public Views As List(Of ViewSchema) = New List(Of ViewSchema)()
|
||||
End Class
|
||||
End NameSpace
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user