初始化提交

仓库转移到Gitea,初始化提交,可能丢失以前的git版本日志
This commit is contained in:
2025-11-27 16:41:05 +08:00
commit 027d0f8024
663 changed files with 171319 additions and 0 deletions

View File

@@ -0,0 +1,428 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Mars_P1_FrmStationPlan
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ZQ_Mars_P1_FrmStationPlan))
Me.ToolStripSeparator7 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugEnd = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStep = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugContinue = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator8 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugSetup = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugMain = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugPass = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugFail = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugCleanup = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator9 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugNode = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugNodeBegin = New System.Windows.Forms.ToolStripMenuItem()
Me.DlgOpenFile = New System.Windows.Forms.OpenFileDialog()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
Me.LblDesc = New System.Windows.Forms.Label()
Me.GrdStationPlan = New FlexCell.Grid()
Me.CmsPlanGrid = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.MsiCopyNode = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiCutNode = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiNodePaste = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiUndo = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiRedo = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiSaveNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiLoadNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStart = New System.Windows.Forms.ToolStripMenuItem()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.TsBtnOpen = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSave = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator()
Me.TsBtnLoad = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSaveAs = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
Me.StuMain = New System.Windows.Forms.StatusStrip()
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
CType(Me.SplitContainer1,System.ComponentModel.ISupportInitialize).BeginInit
Me.SplitContainer1.Panel1.SuspendLayout
Me.SplitContainer1.Panel2.SuspendLayout
Me.SplitContainer1.SuspendLayout
Me.GroupBox2.SuspendLayout
Me.CmsPlanGrid.SuspendLayout
Me.ToolStrip1.SuspendLayout
Me.SuspendLayout
'
'ToolStripSeparator7
'
Me.ToolStripSeparator7.Name = "ToolStripSeparator7"
Me.ToolStripSeparator7.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugEnd
'
Me.TsmiDebugEnd.Name = "TsmiDebugEnd"
Me.TsmiDebugEnd.ShortcutKeys = System.Windows.Forms.Keys.F2
Me.TsmiDebugEnd.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugEnd.Text = "退出执行"
'
'TsmiDebugStep
'
Me.TsmiDebugStep.Name = "TsmiDebugStep"
Me.TsmiDebugStep.ShortcutKeys = System.Windows.Forms.Keys.F3
Me.TsmiDebugStep.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStep.Text = "单步执行"
'
'TsmiDebugContinue
'
Me.TsmiDebugContinue.Name = "TsmiDebugContinue"
Me.TsmiDebugContinue.ShortcutKeys = System.Windows.Forms.Keys.F4
Me.TsmiDebugContinue.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugContinue.Text = "继续执行"
'
'ToolStripSeparator8
'
Me.ToolStripSeparator8.Name = "ToolStripSeparator8"
Me.ToolStripSeparator8.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugSetup
'
Me.TsmiDebugSetup.Name = "TsmiDebugSetup"
Me.TsmiDebugSetup.ShortcutKeys = System.Windows.Forms.Keys.F5
Me.TsmiDebugSetup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugSetup.Text = "Setup模块执行"
'
'TsmiDebugMain
'
Me.TsmiDebugMain.Name = "TsmiDebugMain"
Me.TsmiDebugMain.ShortcutKeys = System.Windows.Forms.Keys.F6
Me.TsmiDebugMain.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugMain.Text = "Main模块执行"
'
'TsmiDebugPass
'
Me.TsmiDebugPass.Name = "TsmiDebugPass"
Me.TsmiDebugPass.ShortcutKeys = System.Windows.Forms.Keys.F7
Me.TsmiDebugPass.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugPass.Text = "Pass模块执行"
'
'TsmiDebugFail
'
Me.TsmiDebugFail.Name = "TsmiDebugFail"
Me.TsmiDebugFail.ShortcutKeys = System.Windows.Forms.Keys.F8
Me.TsmiDebugFail.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugFail.Text = "Fail模块执行"
'
'TsmiDebugCleanup
'
Me.TsmiDebugCleanup.Name = "TsmiDebugCleanup"
Me.TsmiDebugCleanup.ShortcutKeys = System.Windows.Forms.Keys.F9
Me.TsmiDebugCleanup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugCleanup.Text = "Cleanup模块执行"
'
'ToolStripSeparator9
'
Me.ToolStripSeparator9.Name = "ToolStripSeparator9"
Me.ToolStripSeparator9.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugNode
'
Me.TsmiDebugNode.Name = "TsmiDebugNode"
Me.TsmiDebugNode.ShortcutKeys = System.Windows.Forms.Keys.F10
Me.TsmiDebugNode.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNode.Text = "节点测试"
'
'TsmiDebugNodeBegin
'
Me.TsmiDebugNodeBegin.Name = "TsmiDebugNodeBegin"
Me.TsmiDebugNodeBegin.ShortcutKeys = System.Windows.Forms.Keys.F11
Me.TsmiDebugNodeBegin.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNodeBegin.Text = "节点开始测试"
'
'DlgOpenFile
'
Me.DlgOpenFile.FileName = "OpenFileDialog1"
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 36)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.GroupBox2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.GroupBox1)
Me.SplitContainer1.Size = New System.Drawing.Size(800, 392)
Me.SplitContainer1.SplitterDistance = 361
Me.SplitContainer1.TabIndex = 6
'
'GroupBox2
'
Me.GroupBox2.Controls.Add(Me.LblDesc)
Me.GroupBox2.Controls.Add(Me.GrdStationPlan)
Me.GroupBox2.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox2.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.GroupBox2.Location = New System.Drawing.Point(0, 0)
Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(361, 392)
Me.GroupBox2.TabIndex = 0
Me.GroupBox2.TabStop = false
Me.GroupBox2.Text = "流程参数"
'
'LblDesc
'
Me.LblDesc.Dock = System.Windows.Forms.DockStyle.Bottom
Me.LblDesc.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.LblDesc.Location = New System.Drawing.Point(3, 328)
Me.LblDesc.Name = "LblDesc"
Me.LblDesc.Size = New System.Drawing.Size(355, 61)
Me.LblDesc.TabIndex = 6
'
'GrdStationPlan
'
Me.GrdStationPlan.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
Me.GrdStationPlan.BorderStyle = FlexCell.BorderStyleEnum.None
Me.GrdStationPlan.CheckedImage = Nothing
Me.GrdStationPlan.ContextMenuStrip = Me.CmsPlanGrid
Me.GrdStationPlan.DefaultFont = New System.Drawing.Font("宋体", 9!)
Me.GrdStationPlan.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.GrdStationPlan.GridColor = System.Drawing.Color.FromArgb(CType(CType(192,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(192,Byte),Integer))
Me.GrdStationPlan.Location = New System.Drawing.Point(0, 24)
Me.GrdStationPlan.Name = "GrdStationPlan"
Me.GrdStationPlan.Size = New System.Drawing.Size(358, 301)
Me.GrdStationPlan.TabIndex = 4
Me.GrdStationPlan.UncheckedImage = Nothing
'
'CmsPlanGrid
'
Me.CmsPlanGrid.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MsiCopyNode, Me.MsiCutNode, Me.MsiNodePaste, Me.ToolStripSeparator5, Me.MsiUndo, Me.MsiRedo, Me.ToolStripSeparator6, Me.MsiSaveNodeFile, Me.MsiLoadNodeFile, Me.ToolStripSeparator7, Me.TsmiDebugStart, Me.TsmiDebugEnd, Me.TsmiDebugStep, Me.TsmiDebugContinue, Me.ToolStripSeparator8, Me.TsmiDebugSetup, Me.TsmiDebugMain, Me.TsmiDebugPass, Me.TsmiDebugFail, Me.TsmiDebugCleanup, Me.ToolStripSeparator9, Me.TsmiDebugNode, Me.TsmiDebugNodeBegin})
Me.CmsPlanGrid.Name = "CmsMain"
Me.CmsPlanGrid.Size = New System.Drawing.Size(193, 430)
'
'MsiCopyNode
'
Me.MsiCopyNode.Enabled = false
Me.MsiCopyNode.Name = "MsiCopyNode"
Me.MsiCopyNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCopyNode.Text = "复制"
'
'MsiCutNode
'
Me.MsiCutNode.Enabled = false
Me.MsiCutNode.Name = "MsiCutNode"
Me.MsiCutNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCutNode.Text = "剪切"
'
'MsiNodePaste
'
Me.MsiNodePaste.Enabled = false
Me.MsiNodePaste.Name = "MsiNodePaste"
Me.MsiNodePaste.Size = New System.Drawing.Size(192, 22)
Me.MsiNodePaste.Text = "粘贴"
'
'ToolStripSeparator5
'
Me.ToolStripSeparator5.Name = "ToolStripSeparator5"
Me.ToolStripSeparator5.Size = New System.Drawing.Size(189, 6)
'
'MsiUndo
'
Me.MsiUndo.Enabled = false
Me.MsiUndo.Name = "MsiUndo"
Me.MsiUndo.Size = New System.Drawing.Size(192, 22)
Me.MsiUndo.Text = "撤销"
'
'MsiRedo
'
Me.MsiRedo.Enabled = false
Me.MsiRedo.Name = "MsiRedo"
Me.MsiRedo.Size = New System.Drawing.Size(192, 22)
Me.MsiRedo.Text = "重做"
'
'ToolStripSeparator6
'
Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
Me.ToolStripSeparator6.Size = New System.Drawing.Size(189, 6)
'
'MsiSaveNodeFile
'
Me.MsiSaveNodeFile.Name = "MsiSaveNodeFile"
Me.MsiSaveNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiSaveNodeFile.Text = "另存为节点文件"
'
'MsiLoadNodeFile
'
Me.MsiLoadNodeFile.Name = "MsiLoadNodeFile"
Me.MsiLoadNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiLoadNodeFile.Text = "加载节点文件"
'
'TsmiDebugStart
'
Me.TsmiDebugStart.Name = "TsmiDebugStart"
Me.TsmiDebugStart.ShortcutKeys = System.Windows.Forms.Keys.F1
Me.TsmiDebugStart.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStart.Text = "开始执行"
'
'GroupBox1
'
Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox1.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.GroupBox1.Location = New System.Drawing.Point(0, 0)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(435, 392)
Me.GroupBox1.TabIndex = 0
Me.GroupBox1.TabStop = false
Me.GroupBox1.Text = "常规预览"
'
'TsBtnOpen
'
Me.TsBtnOpen.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnOpen.Image = CType(resources.GetObject("TsBtnOpen.Image"),System.Drawing.Image)
Me.TsBtnOpen.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnOpen.Name = "TsBtnOpen"
Me.TsBtnOpen.Size = New System.Drawing.Size(35, 33)
Me.TsBtnOpen.Text = "打开"
Me.TsBtnOpen.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSave
'
Me.TsBtnSave.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnSave.Image = CType(resources.GetObject("TsBtnSave.Image"),System.Drawing.Image)
Me.TsBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSave.Name = "TsBtnSave"
Me.TsBtnSave.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSave.Text = "保存"
Me.TsBtnSave.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator4
'
Me.ToolStripSeparator4.Name = "ToolStripSeparator4"
Me.ToolStripSeparator4.Size = New System.Drawing.Size(6, 36)
'
'TsBtnLoad
'
Me.TsBtnLoad.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnLoad.Image = CType(resources.GetObject("TsBtnLoad.Image"),System.Drawing.Image)
Me.TsBtnLoad.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnLoad.Name = "TsBtnLoad"
Me.TsBtnLoad.Size = New System.Drawing.Size(35, 33)
Me.TsBtnLoad.Text = "重载"
Me.TsBtnLoad.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSaveAs
'
Me.TsBtnSaveAs.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnSaveAs.Image = CType(resources.GetObject("TsBtnSaveAs.Image"),System.Drawing.Image)
Me.TsBtnSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSaveAs.Name = "TsBtnSaveAs"
Me.TsBtnSaveAs.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSaveAs.Text = "导出"
Me.TsBtnSaveAs.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator3
'
Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 36)
'
'StuMain
'
Me.StuMain.Location = New System.Drawing.Point(0, 428)
Me.StuMain.Name = "StuMain"
Me.StuMain.Size = New System.Drawing.Size(800, 22)
Me.StuMain.TabIndex = 5
Me.StuMain.Text = "StatusStrip1"
'
'ToolStrip1
'
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TsBtnOpen, Me.TsBtnSave, Me.ToolStripSeparator4, Me.TsBtnLoad, Me.TsBtnSaveAs, Me.ToolStripSeparator3})
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(800, 36)
Me.ToolStrip1.TabIndex = 4
Me.ToolStrip1.Text = "ToolStrip1"
'
'ZQ_Mars_P1_FrmStationPlan
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 12!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Controls.Add(Me.SplitContainer1)
Me.Controls.Add(Me.StuMain)
Me.Controls.Add(Me.ToolStrip1)
Me.Name = "ZQ_Mars_P1_FrmStationPlan"
Me.Text = "ZQ_Mars_P1_FrmStationPlan"
Me.SplitContainer1.Panel1.ResumeLayout(false)
Me.SplitContainer1.Panel2.ResumeLayout(false)
CType(Me.SplitContainer1,System.ComponentModel.ISupportInitialize).EndInit
Me.SplitContainer1.ResumeLayout(false)
Me.GroupBox2.ResumeLayout(false)
Me.CmsPlanGrid.ResumeLayout(false)
Me.ToolStrip1.ResumeLayout(false)
Me.ToolStrip1.PerformLayout
Me.ResumeLayout(false)
Me.PerformLayout
End Sub
Friend WithEvents ToolStripSeparator7 As ToolStripSeparator
Friend WithEvents TsmiDebugEnd As ToolStripMenuItem
Friend WithEvents TsmiDebugStep As ToolStripMenuItem
Friend WithEvents TsmiDebugContinue As ToolStripMenuItem
Friend WithEvents ToolStripSeparator8 As ToolStripSeparator
Friend WithEvents TsmiDebugSetup As ToolStripMenuItem
Friend WithEvents TsmiDebugMain As ToolStripMenuItem
Friend WithEvents TsmiDebugPass As ToolStripMenuItem
Friend WithEvents TsmiDebugFail As ToolStripMenuItem
Friend WithEvents TsmiDebugCleanup As ToolStripMenuItem
Friend WithEvents ToolStripSeparator9 As ToolStripSeparator
Friend WithEvents TsmiDebugNode As ToolStripMenuItem
Friend WithEvents TsmiDebugNodeBegin As ToolStripMenuItem
Friend WithEvents DlgOpenFile As OpenFileDialog
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents GroupBox2 As GroupBox
Friend WithEvents LblDesc As Label
Friend WithEvents GrdStationPlan As FlexCell.Grid
Friend WithEvents CmsPlanGrid As ContextMenuStrip
Friend WithEvents MsiCopyNode As ToolStripMenuItem
Friend WithEvents MsiCutNode As ToolStripMenuItem
Friend WithEvents MsiNodePaste As ToolStripMenuItem
Friend WithEvents ToolStripSeparator5 As ToolStripSeparator
Friend WithEvents MsiUndo As ToolStripMenuItem
Friend WithEvents MsiRedo As ToolStripMenuItem
Friend WithEvents ToolStripSeparator6 As ToolStripSeparator
Friend WithEvents MsiSaveNodeFile As ToolStripMenuItem
Friend WithEvents MsiLoadNodeFile As ToolStripMenuItem
Friend WithEvents TsmiDebugStart As ToolStripMenuItem
Friend WithEvents GroupBox1 As GroupBox
Friend WithEvents TsBtnOpen As ToolStripButton
Friend WithEvents TsBtnSave As ToolStripButton
Friend WithEvents ToolStripSeparator4 As ToolStripSeparator
Friend WithEvents TsBtnLoad As ToolStripButton
Friend WithEvents TsBtnSaveAs As ToolStripButton
Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
Friend WithEvents StuMain As StatusStrip
Friend WithEvents ToolStrip1 As ToolStrip
End Class

View File

@@ -0,0 +1,185 @@
<?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="DlgOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>482, 17</value>
</metadata>
<metadata name="CmsPlanGrid.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>607, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="TsBtnOpen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHqSURBVGhD7Zm9Tt1AEEYvNDxCArwSXZDSpAwiFQ+HEA2Q
dPmpeAl4AaALEnxTXDSate/xeHcvkeIjnerzN97F9rWEVwsLC6PsyFP5Rz7Jl07ey0+yKQfyuxw6YQ//
ys+yCbvyhxw6UU+f5RdZzTc5dIJt2ORK2D3vh17ID3KNz8wabLG2aD+vehOP0g/8KD0+M2tpvgk/yIxQ
PodjGTcx+5nwQ8wI5XNptgk/wIxQXkOTTfiyGaG8lupN+KIZiflc7Q18JIcYe7AnvbF9yYzEvMY7OcbQ
JjYd/4YvmBEbEo+ZKy3INhE7CBXsstvlj8dl3XQLeWIPSRc6k15PutCZ9HrShc6k15MudCa9nnShM+n1
pAudSa+HCq1+RqNjP6vxOIQKLV9k0aEXWzwGoULMWxuhvIAKMW9thPICKlCeheZRXkAFyrPQPMoLqEB5
FppHeQEVKM9C8ygvoALlWWge5QVUoDwLzaO8gAqUZ6F5lBdQgfIsNI/yAipQnoXmUV5ABcqz0DzKCx6k
L/j/TBs+M2vZNM8+tPjM1ob8lr50LvflGp+ZtYzNs3NeSp/9ksiZ9KV/ya8S2ZO3cmjAe3ol7cPjJA7l
jRwa9B5eS38bT8J2eyJ/yvjVZhvaA2vntttm8l9+YeH/YrV6BfNWMy9RUhK1AAAAAElFTkSuQmCC
</value>
</data>
<data name="TsBtnLoad.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSaveAs.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADQSURBVEhL5ZYxDgFBGEbnCE4gjuAcCnEER3AER9BpVWqV
QqcTlSOIUkVFx/fWSMYsyfx/FCu+5CX7ZWfmTbKT3Q1J+mLnYCmKMhQ3sRKLQg5iL4ryFHSqVpaZ+H3B
UQwy2qIWr4A5OaxVi0fATrsJPfFVQR7m/pGA42eBmARc8yrgpMxj38aewhjuEbNg/LgMLUEfVe01jGmu
4CpO4hz7JfYUxrgFGzER09jXsacwxi34/WdggZgE7MwCMQk8aYbA8tHPYe5Hgfe35R2spYRwB61XwcSY
NxMjAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="StuMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 55</value>
</metadata>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>118, 55</value>
</metadata>
</root>

View File

@@ -0,0 +1,494 @@
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Imports UTS_Core.UTSModule.Station.StationPackagePlan
Imports UTS_Core.UTSModule.Test.StatusMonitor
Public Class ZQ_Mars_P1_FrmStationPlan
' Implements IProcessFileChanged
Implements IProcessStation
Implements IProductionLine
Private _utsApp As UtsAppForm
Private _stationPlan As StationPackagePlan
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
Public Sub utsbctfilechanged
'For Each observer As IProcessStation In _observerList
' observer.StationChanged()
' Next
End Sub
''' <summary>
''' 站位变更代码
''' </summary>
Public Sub Station_Changed() Implements IProcessStation.StationChanged
ApplicationLog.WriteInfoLog($"编辑页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
Try
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
Catch ex As Exception
MsgBox($"加载项目流程失败,{ex.Message}")
End Try
InitGrid(_stationPlan)
ApplicationLog.WriteInfoLog($"编辑页面站位变更完成。")
End Sub
''' <summary>
''' 产线变化代码
''' </summary>
Public Sub ProductionLineChanged() Implements IProductionLine.ProductionLineChanged
ApplicationLog.WriteInfoLog($"编辑页面生产线变更中。")
ApplicationLog.WriteInfoLog($"编辑页面生产线变更完成。")
End Sub
Private Sub FrmStationPlan_Load(sender As Object, e As EventArgs) Handles Me.Load
ApplicationLog.WriteInfoLog($"编辑页面加载中。")
'初始化UTS窗体信息,失败则关闭窗体
If InitializeUtsApp() = False Then Return
'初始化窗体页面
InitializeForm()
ApplicationLog.WriteInfoLog($"编辑页面加载完成。")
End Sub
Private Function InitializeUtsApp() As Boolean
_utsApp = UtsAppForm.CreateSingleton()
_utsApp.AddStatisticsObserver(Me)
Try
If _utsApp.IsInitialized = False Then
_utsApp.Initialize(ProcessStation.StationTypeEnum.Package) 'Todo:可根据需要限定可选站位
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"初始化窗体失败,原因:{ex.Message}!")
MsgBox($"初始化窗体失败,原因:{ex.Message}")
Close()
Return False
End Try
Return True
End Function
Private Sub InitializeForm()
InitGrid(_stationPlan)
End Sub
Private Sub TsBtnOpen_Click(sender As Object, e As EventArgs) Handles TsBtnOpen.Click
Using xml As New OpenFileDialog
xml.Filter = $"流程文件(*.xml)|*.xml"
If xml.ShowDialog() = DialogResult.OK Then
ApplicationLog.WriteInfoLog($"编辑页面执行流程正在加载{xml.FileName}")
LoadTreeViewFormXml(xml.FileName)
ApplicationLog.WriteInfoLog($"编辑页面执行流程加载完成。")
End If
End Using
End Sub
Private Sub TsBtnLoad_Click(sender As Object, e As EventArgs) Handles TsBtnLoad.Click
If MsgBox("重载会将流程返回为上一次保存的流程状态,是否继续", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
ApplicationLog.WriteInfoLog($"编辑页面执行流程重载中。")
LoadTreeViewFormXml()
ApplicationLog.WriteInfoLog($"编辑页面执行流程重载完成。")
End If
End Sub
Private Sub TsBtnSave_Click(sender As Object, e As EventArgs) Handles TsBtnSave.Click
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存中。")
UpdateGrid(_stationPlan)
ExportTreeViewToXml()
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存完成。")
End Sub
''' <summary>
''' 读取XML,加载树状视图
''' </summary>
Private Sub LoadTreeViewFormXml()
Dim revStationPlanPath As String = $"{UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)}\Main.xml"
Try
_stationPlan.LoadFile(revStationPlanPath)
InitGrid(_stationPlan)
If StationEditStatusMonitor.StationEditStatus <> StationEditStatusMonitor.StationEditStatusEnum.Saved Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"加载测试站流程发生错误,原因:{ex.Message}")
MsgBox($"加载测试站流程发生错误,原因:{ex.Message}")
_stationPlan.CreateStationPlan()
End Try
End Sub
''' <summary>
''' 读取XML,加载树状视图
''' </summary>
Private Sub LoadTreeViewFormXml(revStationPlanPath As String)
Try
_stationPlan.LoadFile(revStationPlanPath)
InitGrid(_stationPlan)
If StationEditStatusMonitor.StationEditStatus <> StationEditStatusMonitor.StationEditStatusEnum.Saved Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"加载测试站流程发生错误,原因:{ex.Message}")
MsgBox($"加载测试站流程发生错误,原因:{ex.Message}")
_stationPlan.CreateStationPlan()
End Try
End Sub
''' <summary>
''' 将树状视图导出为Xml
''' </summary>
Private Sub ExportTreeViewToXml()
'保存至项目文件
Dim revStationPlanPath As String = $"{UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)}\Main.xml"
_stationPlan.SaveFile(revStationPlanPath)
'备份至临时文件
Dim tempPath As String = $"{UtsPath.StationDesignDirPath()}\Main.xml"
_stationPlan.SaveFile(tempPath)
If StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
End Sub
Private Sub TsBtnSaveAs_Click(sender As Object, e As EventArgs) Handles TsBtnSaveAs.Click
Using dlg As New SaveFileDialog
dlg.Filter = "Excel 文件(*.xls)|*.xls|CSV 文件(*.csv)|*.csv|PDF 文件(*.pdf)|*.pdf"
dlg.AddExtension = True
If dlg.ShowDialog <> DialogResult.OK Then Return
Cursor = Cursors.WaitCursor
ApplicationLog.WriteInfoLog($"编辑页面执行流程导出中。")
Try
Select Case dlg.FilterIndex
Case 1
GrdStationPlan.ExportToExcel(dlg.FileName, True, True)
Case 2
GrdStationPlan.ExportToCSV(dlg.FileName, True, True)
Case 3
GrdStationPlan.ExportToPDF(dlg.FileName)
End Select
ApplicationLog.WriteInfoLog($"编辑页面执行流程导出完成。")
Catch ex As Exception
ApplicationLog.WriteErrorLog($"编辑页面执行流程导出失败,原因:{ex.Message}")
MsgBox($"编辑页面执行流程导出失败,原因:{ex.Message}")
End Try
Cursor = Cursors.Arrow
End Using
End Sub
#Region "Package表格"
Private Sub InitGrid(Optional stationplan As StationPackagePlan = Nothing)
With GrdStationPlan
.AutoRedraw = False
.NewFile()
.BorderStyle = FlexCell.BorderStyleEnum.None
.Cols = ColNames.Max
.Rows = RowItems.Max
.ExtendLastCol = True
.DisplayRowNumber = True
.Cell(0, ColNames.Item).Text = "Item"
.Cell(0, ColNames.Value).Text = "Value"
.Column(ColNames.Item).Width = 200
.Column(ColNames.Item).Locked = True
.DefaultRowHeight = 20
.DefaultFont = New Font("微软雅黑", 10)
For i As Integer = 1 To RowItems.Max - 1
.Cell(i, ColNames.Item).Text = [Enum].GetName(GetType(RowItems), i)
Next
'.Cell(RowItems.CheckSnTested, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.CheckSnPackaged, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.CheckSnMO, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.MissingQuantity, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.BarCodeType, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
.Cell(RowItems.AutoPrint, ColNames.Value).CellType = FlexCell.CellTypeEnum.CheckBox
'.Cell(RowItems.ErrorSound, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
.Cell(RowItems.TemplateFile, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
.Cell(RowItems.CompanyLogo, ColNames.Value).CellType = FlexCell.CellTypeEnum.TextBox
.Cell(RowItems.CompanyLogo, ColNames.Item).Text = "ControlFile"
.Cell(RowItems.BoxMumEditKey, ColNames.Item).Text = "ColorBoxCodeLabel"
.Cell(RowItems.CompanyName, ColNames.Item).Text = "DevBodyCodeLabel"
FillGrid(stationplan)
.AutoRedraw = True
.Refresh()
End With
End Sub
Private Sub FillGrid(stationplan As StationPackagePlan)
If stationplan Is Nothing Then Return
With GrdStationPlan
'.Cell(RowItems.CheckSnTested, ColNames.Value).Text = stationplan.CheckSnTested.ToString
'.Cell(RowItems.CheckSnPackaged, ColNames.Value).Text = stationplan.CheckSnPackaged.ToString
'.Cell(RowItems.CheckSnMO, ColNames.Value).Text = stationplan.CheckSnMO.ToString
'.Cell(RowItems.PictureCount, ColNames.Value).Text = stationplan.PictureCount.ToString
'.Cell(RowItems.UnlockKey, ColNames.Value).Text = stationplan.UnlockKey
'.Cell(RowItems.BarCodeType, ColNames.Value).Text = stationplan.BarCodeType.ToString
'.Cell(RowItems.MissingQuantity, ColNames.Value).Text = stationplan.MissingQuantity.ToString
'.Cell(RowItems.MissingQuantityKey, ColNames.Value).Text = stationplan.MissingQuantityKey
.Cell(RowItems.AutoPrint, ColNames.Value).Text = stationplan.AutoPrint.ToString
'.Cell(RowItems.ErrorSound, ColNames.Value).Text = stationplan.ErrorSound
.Cell(RowItems.TemplateFile, ColNames.Value).Text = stationplan.TemplateFile
.Cell(RowItems.BoxMumEditKey, ColNames.Value).Text = stationplan.BoxMumEditKey
.Cell(RowItems.CompanyLogo, ColNames.Value).Text = stationplan.CompanyLogo
.Cell(RowItems.CompanyName, ColNames.Value).Text = stationplan.CompanyName
'.Cell(RowItems.BoxNumText, ColNames.Value).Text = stationplan.BoxNumText
'.Cell(RowItems.BoxBarCode, ColNames.Value).Text = stationplan.BoxBarCode
End With
If StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
End Sub
Private Sub UpdateGrid(stationplan As StationPackagePlan)
If _stationPlan Is Nothing Then Return
With GrdStationPlan
'If [Enum].TryParse(.Cell(RowItems.CheckSnTested, ColNames.Value).Text, stationplan.CheckSnTested) = False Then
' MsgBox("更新CheckSnTested失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.CheckSnPackaged, ColNames.Value).Text, stationplan.CheckSnPackaged) = False Then
' MsgBox("更新CheckSnPackaged失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.CheckSnMO, ColNames.Value).Text, stationplan.CheckSnMO) = False Then
' MsgBox("更新CheckSnMO失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.BarCodeType, ColNames.Value).Text, stationplan.BarCodeType) = False Then
' MsgBox("更新BarCodeType失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.MissingQuantity, ColNames.Value).Text, stationplan.MissingQuantity) = False Then
' MsgBox("更新MissingQuantity失败!")
' Return
'End If
'stationplan.PictureCount = .Cell(RowItems.PictureCount, ColNames.Value).IntegerValue
'stationplan.UnlockKey = .Cell(RowItems.UnlockKey, ColNames.Value).Text
'stationplan.MissingQuantityKey = .Cell(RowItems.MissingQuantityKey, ColNames.Value).Text
stationplan.AutoPrint = .Cell(RowItems.AutoPrint, ColNames.Value).BooleanValue
'stationplan.ErrorSound = .Cell(RowItems.ErrorSound, ColNames.Value).Text
stationplan.TemplateFile = .Cell(RowItems.TemplateFile, ColNames.Value).Text
stationplan.BoxMumEditKey = .Cell(RowItems.BoxMumEditKey, ColNames.Value).Text
stationplan.CompanyLogo = .Cell(RowItems.CompanyLogo, ColNames.Value).Text
stationplan.CompanyName = .Cell(RowItems.CompanyName, ColNames.Value).Text
'stationplan.BoxNumText = .Cell(RowItems.BoxNumText, ColNames.Value).Text
'stationplan.BoxBarCode = .Cell(RowItems.BoxBarCode, ColNames.Value).Text
End With
End Sub
Private Sub GrdStationPlan_ButtonClick(Sender As Object, e As FlexCell.Grid.ButtonClickEventArgs) Handles GrdStationPlan.ButtonClick
Select Case e.Row
'Case RowItems.ErrorSound
' DlgOpenFile.Filter = "图像资源 (*.jpg;*.png;*.gif;*.ico)|*.jpg;*.png;*.gif;*.ico"
Case RowItems.TemplateFile
DlgOpenFile.Filter = "模板资源 (*.btw)|*.btw"
Case RowItems.CompanyLogo
DlgOpenFile.Filter = "控制台程序 (*.exe)|*.exe"
End Select
DlgOpenFile.CheckFileExists = True
DlgOpenFile.CheckPathExists = True
If DlgOpenFile.ShowDialog() <> DialogResult.OK Then Return
Dim fileName As String = $"{DlgOpenFile.SafeFileName}"
Dim fileDir As String = UtsPath.GetStationPacketResourceDirPath(_stationPlan.ParentPacket.Name)
Dim fliePath As String = $"{fileDir}\{fileName}"
GrdStationPlan.Cell(e.Row, ColNames.Value).Text = fileName
'导入文件
Try
IO.File.Copy(DlgOpenFile.FileName, fliePath, True)
Catch ex As Exception
MsgBox($"导入资源文件失败,{ex.Message}")
End Try
End Sub
Private Sub GrdStationPlan_ComboDropDown(Sender As Object, e As FlexCell.Grid.ComboDropDownEventArgs) Handles GrdStationPlan.ComboDropDown
GrdStationPlan.ComboBox(0).Items.Clear()
Select Case e.Row
'Case RowItems.CheckSnTested
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.CheckSnPackaged
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.CheckSnMO
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.MissingQuantity
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(MissCountStatus)))
'Case RowItems.BarCodeType
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(BarcodeTypes)))
End Select
End Sub
Private Sub GrdStationPlan_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles GrdStationPlan.CellChange
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed
End Sub
Enum ColNames
SN
Item
Value
Max
End Enum
Enum RowItems
''' <summary>固定行</summary>
<System.ComponentModel.Description("固定行")>
SN
'''' <summary>校验条码未测试后处理方式</summary>
'<System.ComponentModel.Description("校验条码未测试后处理方式")>
'CheckSnTested
'''' <summary>校验条码已参与包装后处理方式</summary>
'<System.ComponentModel.Description("校验条码已参与包装后处理方式")>
'CheckSnPackaged
'''' <summary>校验条码不属于指定MO后处理方式</summary>
'<System.ComponentModel.Description("校验条码不属于指定MO后处理方式")>
'CheckSnMO
'''' <summary>拍摄保存图像的数量</summary>
'<System.ComponentModel.Description("拍摄保存图像的数量")>
'PictureCount
'''' <summary>解锁密码</summary>
'<System.ComponentModel.Description("解锁密码")>
'UnlockKey
'''' <summary>条码类型</summary>
'<System.ComponentModel.Description("条码类型")>
'BarCodeType
'''' <summary>缺失条码数量后的处理方式</summary>
'<System.ComponentModel.Description("缺失条码数量后的处理方式")>
'MissingQuantity
'''' <summary>缺失条码数量后的解锁密码</summary>
'<System.ComponentModel.Description("缺失条码数量后的解锁密码")>
'MissingQuantityKey
''' <summary>是否自动打印</summary>
<System.ComponentModel.Description("是否自动打印")>
AutoPrint
'''' <summary>发生错误后报警文件</summary>
'<System.ComponentModel.Description("发生错误后报警文件")>
'ErrorSound
''' <summary>模板文件名</summary>
<System.ComponentModel.Description("模板文件名,需要把文件添加到 C:\AUTS\Barcode\Mars\")>
TemplateFile
''' <summary>箱号编辑密码</summary>
<System.ComponentModel.Description("机身码打印模板标签名")>
BoxMumEditKey
''' <summary>公司名称</summary>
<System.ComponentModel.Description("彩盒码打印模板标签名")>
CompanyName
'''' <summary>公司Logo文件</summary>
<System.ComponentModel.Description("控制台程序文件")>
CompanyLogo
'''' <summary>箱号规则</summary>
'<System.ComponentModel.Description("箱号规则")>
'BoxNumText
'''' <summary>箱号条码</summary>
'<System.ComponentModel.Description("箱号条码")>
'BoxBarCode
Max
End Enum
Private Sub GrdStationPlan_SelChange(Sender As Object, e As FlexCell.Grid.SelChangeEventArgs) Handles GrdStationPlan.SelChange
If e.FirstRow <= RowItems.SN OrElse e.FirstRow > GrdStationPlan.Rows - 1 Then Return
Dim row As Integer = e.FirstRow
Dim a As RowItems
If [Enum].TryParse(row.ToString, a) Then
LblDesc.Text = $"Row:{row}{vbCrLf}Desc:{GetEnumDescription(a)}"
Else
LblDesc.Text = $"Row:{row}{vbCrLf}Desc:无说明"
End If
End Sub
Public Function GetEnumDescription(enumValue As RowItems) As String
Dim str As String = enumValue.ToString()
Dim field As System.Reflection.FieldInfo = enumValue.GetType().GetField(str)
Dim objs() As Object = field.GetCustomAttributes(GetType(System.ComponentModel.DescriptionAttribute), False)
If objs Is Nothing OrElse objs.Length = 0 Then Return str
Dim da As System.ComponentModel.DescriptionAttribute = CType(objs(0), ComponentModel.DescriptionAttribute)
Return da.Description
End Function
#End Region
End Class

View File

@@ -0,0 +1,435 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class ZQ_Mars_P1_FrmStationTest
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ZQ_Mars_P1_FrmStationTest))
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer2 = New System.Windows.Forms.SplitContainer()
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
Me.SplitContainer3 = New System.Windows.Forms.SplitContainer()
Me.Label4 = New System.Windows.Forms.Label()
Me.txt_template = New System.Windows.Forms.TextBox()
Me.Label3 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.EnclosureCode_txt = New System.Windows.Forms.TextBox()
Me.TextBox1 = New System.Windows.Forms.TextBox()
Me.DevCode_txt = New System.Windows.Forms.TextBox()
Me.Button2 = New System.Windows.Forms.Button()
Me.Button1 = New System.Windows.Forms.Button()
Me.btn_Print = New System.Windows.Forms.Button()
Me.Label6 = New System.Windows.Forms.Label()
Me.ListBox1 = New System.Windows.Forms.ListBox()
Me.btn_FindDutPort = New System.Windows.Forms.Button()
Me.tb_MAC_sent_to_ezCAD = New System.Windows.Forms.TextBox()
Me.tb_DUT_Msg = New System.Windows.Forms.TextBox()
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
Me.tsl_DUT_PortSataus = New System.Windows.Forms.ToolStripStatusLabel()
Me.tsl_dut_msg_cnt = New System.Windows.Forms.ToolStripStatusLabel()
Me.TIM_DUT_TASK = New System.Windows.Forms.Timer(Me.components)
Me.TIM_Find_DUT_Port = New System.Windows.Forms.Timer(Me.components)
Me.tips = New System.Windows.Forms.ToolTip(Me.components)
Me.Commport_DUT = New System.IO.Ports.SerialPort(Me.components)
Me.TIM_CNT_CLEAR = New System.Windows.Forms.Timer(Me.components)
Me.TIM_PRINT_LABEL_TASK = New System.Windows.Forms.Timer(Me.components)
Me.lab_Processed_Unit_Cnt = New System.Windows.Forms.Label()
Me.lab_Processed_Unit_Cnt_ThisCycle = New System.Windows.Forms.Label()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer2.Panel1.SuspendLayout()
Me.SplitContainer2.Panel2.SuspendLayout()
Me.SplitContainer2.SuspendLayout()
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer3.Panel1.SuspendLayout()
Me.SplitContainer3.Panel2.SuspendLayout()
Me.SplitContainer3.SuspendLayout()
Me.StatusStrip1.SuspendLayout()
Me.SuspendLayout()
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.SplitContainer3)
Me.SplitContainer1.Size = New System.Drawing.Size(906, 535)
Me.SplitContainer1.SplitterDistance = 311
Me.SplitContainer1.TabIndex = 2
'
'SplitContainer2
'
Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer2.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer2.Name = "SplitContainer2"
Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer2.Panel1
'
Me.SplitContainer2.Panel1.Controls.Add(Me.lab_Processed_Unit_Cnt_ThisCycle)
Me.SplitContainer2.Panel1.Controls.Add(Me.lab_Processed_Unit_Cnt)
Me.SplitContainer2.Panel1.Controls.Add(Me.Label6)
'
'SplitContainer2.Panel2
'
Me.SplitContainer2.Panel2.Controls.Add(Me.ListBox1)
Me.SplitContainer2.Panel2.Controls.Add(Me.RichTextBox1)
Me.SplitContainer2.Size = New System.Drawing.Size(311, 535)
Me.SplitContainer2.SplitterDistance = 261
Me.SplitContainer2.TabIndex = 0
'
'RichTextBox1
'
Me.RichTextBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.RichTextBox1.Location = New System.Drawing.Point(0, 0)
Me.RichTextBox1.Name = "RichTextBox1"
Me.RichTextBox1.Size = New System.Drawing.Size(311, 270)
Me.RichTextBox1.TabIndex = 0
Me.RichTextBox1.Text = ""
Me.RichTextBox1.Visible = False
'
'SplitContainer3
'
Me.SplitContainer3.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer3.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer3.Name = "SplitContainer3"
Me.SplitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer3.Panel1
'
Me.SplitContainer3.Panel1.Controls.Add(Me.Label4)
Me.SplitContainer3.Panel1.Controls.Add(Me.txt_template)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label3)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label2)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label1)
Me.SplitContainer3.Panel1.Controls.Add(Me.EnclosureCode_txt)
Me.SplitContainer3.Panel1.Controls.Add(Me.TextBox1)
Me.SplitContainer3.Panel1.Controls.Add(Me.DevCode_txt)
'
'SplitContainer3.Panel2
'
Me.SplitContainer3.Panel2.Controls.Add(Me.tb_DUT_Msg)
Me.SplitContainer3.Panel2.Controls.Add(Me.StatusStrip1)
Me.SplitContainer3.Panel2.Controls.Add(Me.btn_FindDutPort)
Me.SplitContainer3.Panel2.Controls.Add(Me.tb_MAC_sent_to_ezCAD)
Me.SplitContainer3.Panel2.Controls.Add(Me.Button2)
Me.SplitContainer3.Panel2.Controls.Add(Me.Button1)
Me.SplitContainer3.Panel2.Controls.Add(Me.btn_Print)
Me.SplitContainer3.Size = New System.Drawing.Size(591, 535)
Me.SplitContainer3.SplitterDistance = 261
Me.SplitContainer3.TabIndex = 0
'
'Label4
'
Me.Label4.AutoSize = True
Me.Label4.Font = New System.Drawing.Font("宋体", 15.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label4.Location = New System.Drawing.Point(7, 206)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(79, 20)
Me.Label4.TabIndex = 9
Me.Label4.Text = "DUT_SN:"
'
'txt_template
'
Me.txt_template.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_template.Location = New System.Drawing.Point(89, 53)
Me.txt_template.Name = "txt_template"
Me.txt_template.ReadOnly = True
Me.txt_template.Size = New System.Drawing.Size(499, 23)
Me.txt_template.TabIndex = 7
'
'Label3
'
Me.Label3.AutoSize = True
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(8, 57)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(70, 14)
Me.Label3.TabIndex = 6
Me.Label3.Text = "打印模板:"
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Font = New System.Drawing.Font("宋体", 15.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label2.Location = New System.Drawing.Point(6, 163)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(79, 20)
Me.Label2.TabIndex = 3
Me.Label2.Text = "彩盒码:"
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Font = New System.Drawing.Font("宋体", 15.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label1.Location = New System.Drawing.Point(7, 113)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(79, 20)
Me.Label1.TabIndex = 2
Me.Label1.Text = "机身码:"
'
'EnclosureCode_txt
'
Me.EnclosureCode_txt.Font = New System.Drawing.Font("宋体", 24.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.EnclosureCode_txt.ForeColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(64, Byte), Integer), CType(CType(0, Byte), Integer))
Me.EnclosureCode_txt.Location = New System.Drawing.Point(89, 149)
Me.EnclosureCode_txt.Name = "EnclosureCode_txt"
Me.EnclosureCode_txt.ReadOnly = True
Me.EnclosureCode_txt.Size = New System.Drawing.Size(499, 44)
Me.EnclosureCode_txt.TabIndex = 1
Me.EnclosureCode_txt.Text = "CTHM08711382252484637"
Me.EnclosureCode_txt.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'TextBox1
'
Me.TextBox1.Font = New System.Drawing.Font("宋体", 18.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TextBox1.ForeColor = System.Drawing.Color.BlanchedAlmond
Me.TextBox1.Location = New System.Drawing.Point(89, 199)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.ReadOnly = True
Me.TextBox1.Size = New System.Drawing.Size(499, 35)
Me.TextBox1.TabIndex = 0
Me.TextBox1.Text = "10007857400271"
Me.TextBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'DevCode_txt
'
Me.DevCode_txt.Font = New System.Drawing.Font("宋体", 24.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.DevCode_txt.ForeColor = System.Drawing.Color.Blue
Me.DevCode_txt.Location = New System.Drawing.Point(89, 99)
Me.DevCode_txt.Name = "DevCode_txt"
Me.DevCode_txt.Size = New System.Drawing.Size(499, 44)
Me.DevCode_txt.TabIndex = 0
Me.DevCode_txt.Text = "10007857400271/A092087BE5AF"
Me.DevCode_txt.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Button2
'
Me.Button2.Location = New System.Drawing.Point(444, 119)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(140, 53)
Me.Button2.TabIndex = 6
Me.Button2.Text = "Button2"
Me.Button2.UseVisualStyleBackColor = True
Me.Button2.Visible = False
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(295, 191)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(142, 64)
Me.Button1.TabIndex = 4
Me.Button1.Text = "打印预览"
Me.Button1.UseVisualStyleBackColor = True
Me.Button1.Visible = False
'
'btn_Print
'
Me.btn_Print.Location = New System.Drawing.Point(443, 191)
Me.btn_Print.Name = "btn_Print"
Me.btn_Print.Size = New System.Drawing.Size(142, 64)
Me.btn_Print.TabIndex = 5
Me.btn_Print.Text = "打印"
Me.btn_Print.UseVisualStyleBackColor = True
Me.btn_Print.Visible = False
'
'Label6
'
Me.Label6.BackColor = System.Drawing.SystemColors.ActiveCaption
Me.Label6.Dock = System.Windows.Forms.DockStyle.Top
Me.Label6.Font = New System.Drawing.Font("宋体", 29.0!)
Me.Label6.ForeColor = System.Drawing.Color.Cornsilk
Me.Label6.Location = New System.Drawing.Point(0, 0)
Me.Label6.Name = "Label6"
Me.Label6.Size = New System.Drawing.Size(311, 160)
Me.Label6.TabIndex = 14
Me.Label6.Text = "图片"
Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'ListBox1
'
Me.ListBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.ListBox1.FormattingEnabled = True
Me.ListBox1.ItemHeight = 12
Me.ListBox1.Location = New System.Drawing.Point(0, 0)
Me.ListBox1.Name = "ListBox1"
Me.ListBox1.Size = New System.Drawing.Size(311, 270)
Me.ListBox1.TabIndex = 11
'
'btn_FindDutPort
'
Me.btn_FindDutPort.Location = New System.Drawing.Point(492, 5)
Me.btn_FindDutPort.Name = "btn_FindDutPort"
Me.btn_FindDutPort.Size = New System.Drawing.Size(93, 34)
Me.btn_FindDutPort.TabIndex = 13
Me.btn_FindDutPort.Text = "连接DUT"
Me.btn_FindDutPort.UseVisualStyleBackColor = True
'
'tb_MAC_sent_to_ezCAD
'
Me.tb_MAC_sent_to_ezCAD.Font = New System.Drawing.Font("Consolas", 18.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.tb_MAC_sent_to_ezCAD.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(0, Byte), Integer))
Me.tb_MAC_sent_to_ezCAD.Location = New System.Drawing.Point(11, 3)
Me.tb_MAC_sent_to_ezCAD.Name = "tb_MAC_sent_to_ezCAD"
Me.tb_MAC_sent_to_ezCAD.Size = New System.Drawing.Size(475, 36)
Me.tb_MAC_sent_to_ezCAD.TabIndex = 12
Me.tb_MAC_sent_to_ezCAD.Text = "1AEDD8CD"
Me.tb_MAC_sent_to_ezCAD.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'tb_DUT_Msg
'
Me.tb_DUT_Msg.Dock = System.Windows.Forms.DockStyle.Bottom
Me.tb_DUT_Msg.Font = New System.Drawing.Font("Consolas", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.tb_DUT_Msg.Location = New System.Drawing.Point(0, 53)
Me.tb_DUT_Msg.Multiline = True
Me.tb_DUT_Msg.Name = "tb_DUT_Msg"
Me.tb_DUT_Msg.Size = New System.Drawing.Size(591, 195)
Me.tb_DUT_Msg.TabIndex = 15
Me.tb_DUT_Msg.Text = resources.GetString("tb_DUT_Msg.Text")
'
'StatusStrip1
'
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsl_DUT_PortSataus, Me.tsl_dut_msg_cnt})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 248)
Me.StatusStrip1.Name = "StatusStrip1"
Me.StatusStrip1.Size = New System.Drawing.Size(591, 22)
Me.StatusStrip1.TabIndex = 14
Me.StatusStrip1.Text = "StatusStrip1"
'
'tsl_DUT_PortSataus
'
Me.tsl_DUT_PortSataus.AutoSize = False
Me.tsl_DUT_PortSataus.Name = "tsl_DUT_PortSataus"
Me.tsl_DUT_PortSataus.Size = New System.Drawing.Size(134, 17)
Me.tsl_DUT_PortSataus.Text = "COM1"
Me.tsl_DUT_PortSataus.ToolTipText = "DUT 串口确认设备与PC连接后双击进行自动寻找"
'
'tsl_dut_msg_cnt
'
Me.tsl_dut_msg_cnt.AutoSize = False
Me.tsl_dut_msg_cnt.ForeColor = System.Drawing.Color.Green
Me.tsl_dut_msg_cnt.Name = "tsl_dut_msg_cnt"
Me.tsl_dut_msg_cnt.Size = New System.Drawing.Size(134, 17)
Me.tsl_dut_msg_cnt.Text = "0"
'
'Commport_DUT
'
Me.Commport_DUT.BaudRate = 115200
'
'lab_Processed_Unit_Cnt
'
Me.lab_Processed_Unit_Cnt.BackColor = System.Drawing.SystemColors.ActiveCaptionText
Me.lab_Processed_Unit_Cnt.Dock = System.Windows.Forms.DockStyle.Left
Me.lab_Processed_Unit_Cnt.Font = New System.Drawing.Font("Calibri", 20.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lab_Processed_Unit_Cnt.ForeColor = System.Drawing.Color.White
Me.lab_Processed_Unit_Cnt.Location = New System.Drawing.Point(0, 160)
Me.lab_Processed_Unit_Cnt.Name = "lab_Processed_Unit_Cnt"
Me.lab_Processed_Unit_Cnt.Size = New System.Drawing.Size(149, 101)
Me.lab_Processed_Unit_Cnt.TabIndex = 15
Me.lab_Processed_Unit_Cnt.Tag = "本次生产总统计数量连击5次清零"
Me.lab_Processed_Unit_Cnt.Text = "0"
Me.lab_Processed_Unit_Cnt.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'lab_Processed_Unit_Cnt_ThisCycle
'
Me.lab_Processed_Unit_Cnt_ThisCycle.BackColor = System.Drawing.SystemColors.ActiveCaptionText
Me.lab_Processed_Unit_Cnt_ThisCycle.Dock = System.Windows.Forms.DockStyle.Right
Me.lab_Processed_Unit_Cnt_ThisCycle.Font = New System.Drawing.Font("Calibri", 20.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lab_Processed_Unit_Cnt_ThisCycle.ForeColor = System.Drawing.Color.White
Me.lab_Processed_Unit_Cnt_ThisCycle.Location = New System.Drawing.Point(148, 160)
Me.lab_Processed_Unit_Cnt_ThisCycle.Name = "lab_Processed_Unit_Cnt_ThisCycle"
Me.lab_Processed_Unit_Cnt_ThisCycle.Size = New System.Drawing.Size(163, 101)
Me.lab_Processed_Unit_Cnt_ThisCycle.TabIndex = 16
Me.lab_Processed_Unit_Cnt_ThisCycle.Text = "0"
Me.lab_Processed_Unit_Cnt_ThisCycle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'ZQ_Mars_P1_FrmStationTest
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(906, 535)
Me.Controls.Add(Me.SplitContainer1)
Me.Name = "ZQ_Mars_P1_FrmStationTest"
Me.Text = "Form1"
Me.SplitContainer1.Panel1.ResumeLayout(False)
Me.SplitContainer1.Panel2.ResumeLayout(False)
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer1.ResumeLayout(False)
Me.SplitContainer2.Panel1.ResumeLayout(False)
Me.SplitContainer2.Panel2.ResumeLayout(False)
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer2.ResumeLayout(False)
Me.SplitContainer3.Panel1.ResumeLayout(False)
Me.SplitContainer3.Panel1.PerformLayout()
Me.SplitContainer3.Panel2.ResumeLayout(False)
Me.SplitContainer3.Panel2.PerformLayout()
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer3.ResumeLayout(False)
Me.StatusStrip1.ResumeLayout(False)
Me.StatusStrip1.PerformLayout()
Me.ResumeLayout(False)
End Sub
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents SplitContainer2 As SplitContainer
Friend WithEvents RichTextBox1 As RichTextBox
Friend WithEvents SplitContainer3 As SplitContainer
Friend WithEvents Label4 As Label
Friend WithEvents txt_template As TextBox
Friend WithEvents Label3 As Label
Friend WithEvents Label2 As Label
Friend WithEvents Label1 As Label
Friend WithEvents EnclosureCode_txt As TextBox
Friend WithEvents TextBox1 As TextBox
Friend WithEvents DevCode_txt As TextBox
Friend WithEvents Button1 As Button
Friend WithEvents btn_Print As Button
Friend WithEvents Button2 As Button
Friend WithEvents Label6 As Label
Friend WithEvents ListBox1 As ListBox
Friend WithEvents tb_DUT_Msg As TextBox
Public WithEvents StatusStrip1 As StatusStrip
Friend WithEvents tsl_DUT_PortSataus As ToolStripStatusLabel
Friend WithEvents tsl_dut_msg_cnt As ToolStripStatusLabel
Friend WithEvents btn_FindDutPort As Button
Friend WithEvents tb_MAC_sent_to_ezCAD As TextBox
Friend WithEvents TIM_DUT_TASK As Timer
Friend WithEvents TIM_Find_DUT_Port As Timer
Friend WithEvents tips As ToolTip
Public WithEvents Commport_DUT As IO.Ports.SerialPort
Friend WithEvents TIM_CNT_CLEAR As Timer
Friend WithEvents TIM_PRINT_LABEL_TASK As Timer
Friend WithEvents lab_Processed_Unit_Cnt_ThisCycle As Label
Friend WithEvents lab_Processed_Unit_Cnt As Label
End Class

View File

@@ -0,0 +1,153 @@
<?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>
<data name="tb_DUT_Msg.Text" xml:space="preserve">
<value>******************************* START *******************************
[MAC] -&gt; [PHO10961AEDD8CD]
[Version] -&gt; [0.2.18]
[Voltage] -&gt; [1071] mV
[Humiture] -&gt; Temperature:[80.23]F, Humidity:[68.7]%RH
[PIR] -&gt; [0]
[KeyLeft] -&gt; [0]
[KeyRight] -&gt; [0]
******************************** END ********************************</value>
</data>
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="TIM_DUT_TASK.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>818, 17</value>
</metadata>
<metadata name="TIM_Find_DUT_Port.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>960, 17</value>
</metadata>
<metadata name="tips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1127, 17</value>
</metadata>
<metadata name="Commport_DUT.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1200, 17</value>
</metadata>
<metadata name="TIM_CNT_CLEAR.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>211, 56</value>
</metadata>
<metadata name="TIM_PRINT_LABEL_TASK.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>360, 56</value>
</metadata>
</root>

View File

@@ -0,0 +1,949 @@

Imports System.Drawing.Printing
Imports System.Globalization
Imports System.IO.Ports
Imports System.IO
Imports System.Net
Imports System.Text
Imports System.Threading
Imports Newtonsoft.Json
Imports OpenCvSharp
Imports OpenCvSharp.Extensions
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.DbConnect
Imports UTS_Core.UTSModule.DbTableModel.Customer
Imports UTS_Core.UTSModule.Station
Imports UTS_Core.UTSModule.Test
Imports UTS_Core.UTSModule.Test.Command
Imports UTS_Core.UTSModule.Test.Command.ProcessCommand
Imports UTS_Core.UTSModule.Test.Controls
Imports UTS_Core.UTSModule.Test.StatusMonitor
Public Class ZQ_Mars_P1_FrmStationTest
' Implements IProcessfilechanged
Implements IProcessStation
Private _utsApp As UtsAppForm
Private _stationPlan As StationPackagePlan
Private PrintfNum As Integer = 0
Private Printfcnt As Integer = 0
Private _DummyVardic As Dictionary(Of String, Integer
Dim g_TotolCnt As UInt64 = 0
Dim g_ThisTimeCnt As UInt64 = 0
Dim g_DUT_PortName As String = ""
' Private g_FileNameWsFullPatch As String = Application.StartupPath & "\Template\"
'Private g_FileName As String
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
CheckForIllegalCrossThreadCalls = False '禁用跨线程检查,简化跨线程操作’
g_ThisTimeCnt = 0
My.Settings.Reload()
g_TotolCnt = CType(My.Settings.Total_Cnt UInt64)
g_DUT_PortName = My.Settings.DUT_PortName
lab_Processed_Unit_Cnt.Text = g_TotolCnt.ToString
tsl_DUT_PortSataus.Text = g_DUT_PortName
tb_DUT_Msg.Text = ""
tb_MAC_sent_to_ezCAD.Text = ""
lab_Processed_Unit_Cnt_ThisCycle.Text = g_ThisTimeCnt.ToString
ListBox1.Items.Clear()
If String.IsNullOrEmpty(g_DUT_PortName) = False Then
Open_Comport(Commport_DUT, g_DUT_PortName)
End If
UpdateDutPortStatus()
TIM_DUT_TASK.Enabled = True
TIM_Find_DUT_Port.Enabled = True
TIM_CNT_CLEAR.Enabled = True
TIM_PRINT_LABEL_TASK.Enabled = True
TIM_DUT_TASK.Start()
TIM_Find_DUT_Port.Stop()
TIM_CNT_CLEAR.Start()
TIM_PRINT_LABEL_TASK.Start()
tips.SetToolTip(lab_Processed_Unit_Cnt, "本次生产累计打标数量,连续点击 5 次清零!")
tips.SetToolTip(lab_Processed_Unit_Cnt_ThisCycle, "本次启动程序累计打标数量,连续点击 5 次清零!")
ApplicationLog.WriteInfoLog($"测试页面加载中。")
'创建资源文件夹
If Not IO.Directory.Exists("C:\AUTS\Barcode\Mars\") Then
IO.Directory.CreateDirectory("C:\AUTS\Barcode\Mars\")
End If
'If Not IO.Directory.Exists(g_FileNameWsFullPatch) Then
' IO.Directory.CreateDirectory(g_FileNameWsFullPatch)
'End If
'初始化UTS窗体信息,失败则关闭窗体
If InitializeUtsApp() = False Then Return
InitializeForm()
End Sub
Private Sub RichTextBox1_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox1.TextChanged
RichTextBox1.SelectionStart = RichTextBox1.TextLength
RichTextBox1.ScrollToCaret()
End Sub
Delegate Sub IPSetRichTextBox1Text(TextBox1 As RichTextBox, text As String txtcolor As Color)
Private Sub SetRichTextBox1Text(TextBox1 As RichTextBox, text As String txtcolor As Color)
If InvokeRequired = True Then
Dim dev As New IPSetRichTextBox1Text(AddressOf SetRichTextBox1Text)
Me.Invoke(dev, New Object() {TextBox1, text, txtcolor})
Else
With TextBox1
.SuspendLayout()
.SelectionColor = txtcolor
.AppendText(text & vbCrLf)
.ResumeLayout(False)
End With
End If
End Sub
Public Function AccessApipwd As String code As String, dbName As String, ProjectID As String As String
Dim jsonString As String = String.Empty
Try
jsonString = PostData("http://uts-data.com/CommonApi/AllocationBarcode", $"Pwd={pwd}&Barcode={code}&DBName={dbName}&ProjectID={ProjectID}")
Catch ex As Exception
MsgBox($"{ex.Message}!请联系管理员")
End Try
Console.WriteLine(jsonString)
If jsonString = Nothing Then
Return "False"
End If
Dim login As JsonAccessApi = JsonConvert.DeserializeObject(Of JsonAccessApi)(jsonString)
Return login.Mars_ColorBox_BarCode
End Function
''' <summary>
''' Post请求
''' </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 = CType(WebRequest.Create(url), HttpWebRequest)
'//Post请求方式
request.Method = "POST"
'内容类型
request.ContentType = "application/x-www-form-urlencoded"
'将URL编码后的字符串转化为字节
Dim encoding As New UTF8Encoding()
Dim bys As Byte() = encoding.GetBytes(data)
'设置请求的 ContentLength
request.ContentLength = bys.Length
'获得请 求流
Dim newStream As Stream = request.GetRequestStream()
newStream.Write(bys, 0, bys.Length)
newStream.Close()
'获得响应流
Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
Return sr.ReadToEnd
End Function
Private Sub InitializeForm()
'Todo:初始化窗体代码
InitBarcodeGrid()
End Sub
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
''' <summary>
''' 站位变化
''' </summary>
Public Sub Station_Changed() Implements IProcessStation.StationChanged
'Todo:站位变化代码
ApplicationLog.WriteInfoLog($"测试页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
' lab_imger.Image = Nothing
Dim revStationPlanPath As String = UtsPath.GetStationPacketResourceDirPath(_stationPlan.ParentPacket.Name)
Select Case _utsApp.ProcessStation.ParentProject.Index
Case 1
'lab_imger.Image = Image.FromFile(revStationPlanPath & "\Mars.png")
If File.Exists(revStationPlanPath & "\Mars.png") Then
'lab_imger.Image = Image.FromFile(revStationPlanPath & "\Mars.png")
End If
Case 2
If File.Exists(revStationPlanPath & "\Phobos.png") Then
'lab_imger.Image = Image.FromFile(revStationPlanPath & "\Phobos.png")
End If
End Select
'清除表格数据
InitBarcodeGrid()
ApplicationLog.WriteInfoLog($"测试页面站位变更完成!")
End Sub
Public DicBarTender As Dictionary(Of String, Integer())
Private Sub InitBarcodeGrid()
'GrdPriview = New FlexCell.Grid
If IsNothing(_stationPlan) Then
Return
End If
'Dim tmpPath As String = Application.StartupPath & "\Template\" & _stationPlan.TemplateFile
Dim tmpPath As String = $"C:\AUTS\Barcode\Phobos\{_stationPlan.TemplateFile}"
If IO.File.Exists(tmpPath) Then
txt_template.Text = tmpPath
'If GrdPriview.OpenFile(tmpPath) Then
' DicBarTender = ReplaceCelltext(GrdPriview)
'Else
' MsgBox("文件打开失败")
'End If
End If
End Sub
Private Function InitializeUtsApp() As Boolean
'_utsApp.ProcessStation.Packet.StationPlan
_utsApp = UtsAppForm.CreateSingleton()
_utsApp.AddStatisticsObserver(Me)
Try
If _utsApp.IsInitialized = False Then
_utsApp.Initialize(ProcessStation.StationTypeEnum.Package) 'Todo:可根据需要限定可选站位
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"初始化窗体失败,原因:{ex.Message}!")
MsgBox($"初始化窗体失败,原因:{ex.Message}")
Close()
Return False
End Try
Return True
End Function
'获取模板伪变量
Public Function ReplaceCelltext(ByRef gird As FlexCell.Grid) As Dictionary(Of String, Integer())
Dim BarTender As New Dictionary(Of String, Integer())
For rowid As Integer = 1 To gird.Rows - 1
For colid As Integer = 1 To gird.Cols - 1
If gird.Cell(rowid, colid).MergeCell Then
If String.IsNullOrEmpty(gird.Cell(rowid, colid).Text.Trim) Then Continue For
If BarTender.ContainsKey(gird.Cell(rowid, colid).Text.Trim) Then
MsgBox("警告:模板伪变量重复命名,设置将忽视靠后变量。")
Continue For
End If
BarTender.Add(gird.Cell(rowid, colid).Text.Trim.ToLower, {rowid, colid})
End If
Next
Next
Return BarTender
End Function
Public Sub SetBarTendertoGridByRef gird As FlexCell.Grid, BarTender As Dictionary(Of String, Integer()
'Dim cellxy() As Integer
'If BarTender.ContainsKey("{QRCode1}".ToLower ) Then
' cellxy = BarTender.Item("{QRCode1}".ToLower)
' gird.Cell(cellxy(0), cellxy(0)).Text = DevCode_txt.Text
' 'gird.Selection.CellType = FlexCell.CellTypeEnum.QRCode
'End If
'If BarTender.ContainsKey("{BarCode1}".ToLower) Then
' cellxy = BarTender.Item("{BarCode1}".ToLower)
' 'cellxy = BarTender.Item("{BarCode1}".ToLower)
' gird.Cell(cellxy(0), cellxy(0)).Text = EnclosureCode_txt.Text
' 'gird.Selection.CellType = FlexCell.CellTypeEnum.BarCode
'End If
'GrdPriview.Print
End Sub
Public Function TestPrintf(filepath As String dic As Dictionary(Of String String), devname As String) As String
'Try
' Dim btEngine As Engine = New Engine(True)
' btEngine.Start()
' Dim btFormat As LabelFormatDocument = btEngine.Documents.Open(filepath)
' ' btFormat.SubStrings("QRcode".Value = "98654613" '对模版相应字段进行赋值e
' For Each keyval As KeyValuePairOf String String In dic
' Try
' btFormat.SubStrings(keyval.Key.Value = keyval.Key '对模版相应字段进行赋值e
' Catch ex As Exception
' MsgBox$"False:未找到 {keyval.Key} 的打印索引位置,打印失败。请检查参数与打印模板标签是否一致。"
' Return $"False:未找到 {keyval.Key} 的打印索引位置,打印失败。请检查参数与打印模板标签是否一致。"
' End Try
' Next
' btFormat.PrintSetup.PrinterName = devname ' //寻找打印机
' Dim snames As PrinterSettings.StringCollection = PrinterSettings.InstalledPrinters
' Dim PrintIsExist As Boolean = False
' Dim logPringter As String = ""
' For Each Name As String In snames
' logPringter = logPringter & Name & ";"
' If Name.ToLower.Trim = devname.ToLower().Trim() Then
' PrintIsExist = True
' Exit For
' End If
' Next
' 'Console.WriteLine("搜索的打印机有" + logPringter)
' If Not PrintIsExist Then
' MsgBox("False:未找到打印机打印失败!")
' Return "False:未找到打印机打印失败!"
' Else
' ' Console.WriteLine("开始打印")
' If btFormat.Print() <> 0 Then
' MsgBox("False:打印失败!")
' Return "False:打印失败!"
' End If
' ' Console.WriteLine("打印成功,开始关闭引擎")
' btEngine.Stop()
' 'Console.WriteLine("开始关闭引擎")
' End If
'Catch ex As Exception
' MsgBox("打印异常退出," & ex.Message)
' Return "False:打印异常退出," & ex.Message
' 'Console.WriteLine("打印异常退出," & ex.Message)
'End Try
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'GrdPriview.PrintPreview()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btn_Print.Click
If _utsApp.ProcessStation Is Nothing Then
MsgBox($"请选择项目与测试站后再尝试录入!")
Return
End If
If String.IsNullOrEmpty(txt_template.Text) Then
MsgBox($"未选择打印模板,请先选择打印模板在测试")
Return
End If
If String.IsNullOrEmpty(DevCode_txt.Text) Then
MsgBox($"无效的机身码[{DevCode_txt.Text}],请重新录入")
Return
End If
ApplicationLog.WriteInfoLog($"打印条码完成,机身码:{DevCode_txt.Text }")
'设置焦点
DevCode_txt.Focus()
DevCode_txt.SelectAll()
Dim theE As New PreviewKeyDownEventArgsKeys.Enter
DevCode_txt_PreviewKeyDown(Nothing, theE)
'btn_Print.Enabled = True
''打印
'If _stationPlan.AutoPrint Then
' GrdPriview.Print()
'End If
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs)
'Try
' Dim dlg As New OpenFileDialog
' dlg.InitialDirectory = Application.StartupPath
' dlg.Filter = "uts BarCode Template File (*.utsbct)|*.utsbct| All Files|*.*||"
' If System.IO.File.Exists(g_FileNameWsFullPatch) Then
' dlg.InitialDirectory = System.IO.Path.GetDirectoryName(g_FileNameWsFullPatch)
' dlg.FileName = g_FileNameWsFullPatch
' Else
' dlg.InitialDirectory = Application.StartupPath
' End If
' If dlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
' 'g_FileNameWsFullPatch = dlg.FileName '& ".utsbct"
' txt_template.Text = dlg.FileName
' Grid1.OpenFile(dlg.FileName)
' g_FileName = dlg.FileName
' End If
'Catch ex As Exception
' MsgBox("打开文件失败!")
'End Try
'' updateWindowTitle()
'_DummyVardic = ReplaceCelltext(Grid1)
End Sub
Private Sub DevCode_txt_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles DevCode_txt.PreviewKeyDown, TextBox1.PreviewKeyDown
Dim buff() As String
Dim Customfield As New Dictionary(Of String String)
Dim ColorBox As String = ""
Dim node As New RowNode
Dim Dut_SN As String = ""
Dim datenow As Date = Now
Dim exepath As String = $"{UtsPath.GetStationPacketResourceDirPath(_stationPlan.ParentPacket.Name)}\{_stationPlan.CompanyLogo}"
Dim codelab As String = ""
If e.KeyData = Keys.Enter Then
' buff = DevCode_txt.Text.Trim.Split(CType("/", Char))
If DevCode_txt.Text.Length = 12 Then
ColorBox = AccessApi("actop00803", DevCode_txt.Text.Trim, "uts_zongqing", _utsApp.ProcessStation.ParentProject.Index.ToString)
EnclosureCode_txt.Text = ColorBox
TextBox1.Text = DevCode_txt.Text.Trim
'If GetTheColorBoxCode(DevCode_txt.Text Dut_SN) Then
If Not String.IsNullOrEmpty(_stationPlan.CompanyName) Then
codelab = codelab & $"{_stationPlan.CompanyName}={EnclosureCode_txt.Text },"
End If
If Not String.IsNullOrEmpty(_stationPlan.BoxMumEditKey) Then
codelab = codelab & $"{_stationPlan.BoxMumEditKey}={DevCode_txt.Text },"
End If
codelab = codelab.Substring(0, codelab.Length - 1)
If String.IsNullOrEmpty(codelab) Then
node.RowListIndex = 1
node.Description = "模板标签未找到,请查看配置标签与模板标签是否一致!"
SetRichTextBox1Text(RichTextBox1, "模板标签未找到,请查看配置标签与模板标签是否一致!" & vbCrLf, Color.Red)
TheTestResults(Dut_SN, TestResult.TestResultEnum.Fail, datenow, node)
Return
End If
Dim exeArgs As String = $"0 {txt_template.Text} {codelab} 1 0 10000"
If Not ColorBox.Equals("False") Then
'TestPrintf(,,)
SetRichTextBox1Text(RichTextBox1, "正在打印中" & vbCrLf, Color.ForestGreen)
SetRichTextBox1Text(RichTextBox1, codelab & vbCrLf, Color.ForestGreen)
If CallConsoleexepath exeArgs "20000" "0", "Pass" Then
Customfield.Clear()
Customfield.Add("MacCode", buff(1).Trim)
Customfield.Add("SnCode", buff(0).Trim)
Customfield.Add("ColorBoxCode", ColorBox)
Customfield.Add("label_string", DevCode_txt.Text.Trim)
PrintfNum = PrintfNum + 1
'lab_test_num.Text = PrintfNum.ToString & "个"
Printfcnt = My.Settings.P1_cnt + PrintfNum
'lab_Test_cnt.Text = Printfcnt.ToString & "个"
My.Settings.Save()
SetRichTextBox1Text(RichTextBox1, "调用打印机打印成功!" & vbCrLf, Color.Blue)
TheTestResults(buff(0).Trim, TestResult.TestResultEnum.Pass, datenow, Nothing, Customfield)
Else
node.RowListIndex = 1
node.Description = "打印失败!"
SetRichTextBox1Text(RichTextBox1, "打印失败" & vbCrLf, Color.Red)
TheTestResults(Dut_SN, TestResult.TestResultEnum.Fail, datenow, node)
End If
Else
node.RowListIndex = 1
node.Description = "机身码绑定失败"
SetRichTextBox1Text(RichTextBox1, "机身码绑定失败" & vbCrLf, Color.Red)
TheTestResults(Dut_SN, TestResult.TestResultEnum.Fail, datenow, node)
End If
Else
node.RowListIndex = 1
node.Description = "机身码错误"
SetRichTextBox1Text(RichTextBox1, "机身码错误" & vbCrLf, Color.Red)
TheTestResults(Dut_SN, TestResult.TestResultEnum.Fail, datenow, node)
End If
End If
If _stationPlan.AutoPrint Then
DevCode_txt.Focus()
DevCode_txt.SelectAll()
End If
End Sub
Private Function GetTheColorBoxCode(devcode As String, ByRef DutSN As String) As String
End Function
Public Function CallConsole(exePath As String, exeArgs As String, timeout As String stream As String destSrc As String) As Boolean
Dim Command As New TestCommand()
Command.Parameter.Add(exePath
Command.Parameter.Add(exeArgs
Command.Parameter.Add(timeout)
Command.Parameter.Add(stream)
Command.Parameter.Add(destSrc)
Dim executor As New ProcessExecuteExecutor(Command)
Dim result As TestCommandReturn = executor.Execute()
Return result.ExecuteResult
End Function
Private Sub TheTestResults(dutSn As String, ispass As TestResult.TestResultEnum, datenow As Date, Optional FailMsg As RowNode = Nothing, Optional Customfield As Dictionary(Of String String) = Nothing)
'重置信息
_utsApp.TestResult.ResetTestResult()
'产线索引
_utsApp.TestResult.ProductionLineID = -1
'测试开始时间
_utsApp.TestResult.StartTime = Now
_utsApp.TestResult.DUT_SN = dutSn
_utsApp.TestResult.TestResult = ispass
_utsApp.TestResult.UsedTime = Now - datenow
If Not IsNothing(FailMsg) Then
_utsApp.TestResult.FailSteps.Add(FailMsg)
End If
If Not IsNothing(Customfield) Then
For indexptr As Integer = 0 To Customfield.Count - 1
_utsApp.TestResult.AddCustomRecord($"{Customfield.Keys(indexptr)}", $"{Customfield.Values(indexptr)}")
Next
End If
Try
'提交测试记录,缺省参数默认为FalseTrue则测试记录唯一,覆盖相同条码记录
_utsApp.CommitTestResult(True)
If ispass = TestResult.TestResultEnum.Pass Then
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestPass
Else
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestFail
End If
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestPass
Catch ex As Exception
ApplicationLog.WriteErrorLog($"绑定彩盒码信息失败:{ex.Message}")
MsgBox($"绑定彩盒码信息失败:{ex.Message}")
'LblResult.Text = "FAIL"
'LblResult.ForeColor = Color.Red
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestFail
Return
End Try
End Sub
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs)
'If CheckBox1.Checked Then
' btn_Print.Enabled = False
'Else
' btn_Print.Enabled = True
'End If
End Sub
#Region "串口基础操作"
Private Sub UpdateDutPortStatus()
tsl_DUT_PortSataus.Text = Commport_DUT.PortName
If Commport_DUT.IsOpen Then
tsl_DUT_PortSataus.ForeColor = Color.Green
Else
tsl_DUT_PortSataus.ForeColor = Color.Red
End If
End Sub
''' <summary>
''' 关闭串口
''' </summary>
Private Sub Close_Comport(objComPort As SerialPort)
Try
If objComPort.IsOpen Then
objComPort.Close() '关闭commport
objComPort.DiscardInBuffer()
End If
Catch ex As Exception
objComPort.Close()
End Try
End Sub
''' <summary>
''' 打开串口,如果端口当前状态是打开状态,则先关闭串口,然后重新打开串口
''' </summary>
''' <param name="objComPort">打开目标串口的串口对象</param>
''' <returns>返回串口状态</returns>
Private Function Open_Comport(objComPort As SerialPort, strPortName As String) As Boolean
Try
If objComPort.IsOpen Then
objComPort.Close() '关闭commport
End If
objComPort.PortName = strPortName '串口编号赋值’
objComPort.BaudRate = 115200
objComPort.Open() '打开串口’
Return objComPort.IsOpen '返回打开状态true=打开成功’
Catch ex As Exception
objComPort.Close()
Return False
End Try
End Function
''' <summary>
''' 获取可用串口列表
''' </summary>
''' <returns></returns>
Private Function Get_Comport_list() As List(Of String
Dim lstComportName As List(Of String) = New List(Of String)
lstComportName.Clear()
Dim portNames() As String = SerialPort.GetPortNames()
Array.Sort(portNames)
lstComportName.AddRange(portNames)
Return lstComportName
End Function
#End Region
#Region "DUT 任务操作"
Dim g_DutData As Dut_Data_Struct
Dim g_tmpStrRcvd As String = "" '临时保持接收到的串口数据
Dim g_RcvdData_Fm_DUT As String = "" '串口接收完成后,将临时数据复制一份出来,确保不耽误下一包接收
Dim g_Str_tobe_Sent_To_ezCAD As String = ""
Dim g_Find_Dut_Status As enum_Find_Dut_Status = enum_Find_Dut_Status.enum_DUT_ComPort_Status_UnKnow
Dim g_Find_Dut_Status_Last As enum_Find_Dut_Status = enum_Find_Dut_Status.enum_DUT_ComPort_Status_UnKnow
Structure Dut_Data_Struct
Dim dev_Mac_Str As String
Dim Dev_Mac As String
Dim Dev_Version As String
Dim Dev_Voltage As UInt16
Dim Dev_Humiture As Double
Dim Dev_Temprature_F As Double
Dim Dev_Temprature_C As Double
Dim Dev_PIR As Boolean
Dim Dev_KeyLeft As Boolean
Dim Dev_KeyRight As Boolean
Dim Dev_Info_Count As ULong
Dim Dev_DataReady As Boolean
Dim Dev_IsPrinted As Boolean
Dim Dev_LastUpate As DateTime
Dim Dev_Info_Count_Last As ULong
Dim Dev_Info_NoUpdate_Cnt As ULong
Dim Dev_PortReady As Boolean
Dim KeyVal_Left_Last As Boolean
Dim KeyVal_Right_Last As Boolean
Dim PirVal_Last As Boolean
Dim KeyPressCnt_Left As Integer
Dim KeyPressCnt_Right As Integer
Dim PirTrigCnt As Integer
End Structure
''' <summary>
''' DUT串口任务状态机标记位
''' </summary>
Public Enum enum_Find_Dut_Status
enum_DUT_ComPort_Status_UnKnow
enum_DUT_ComPort_Status_GetPortList
enum_DUT_ComPort_Status_ChangePort
enum_DUT_ComPort_Status_Connected
enum_DUT_ComPort_Status_WaitData
End Enum
''' <summary>
''' 双击DUT串口标签启动串口自动匹配
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub tsl_DUT_PortSataus_DoubleClick(sender As Object, e As EventArgs) Handles tsl_DUT_PortSataus.DoubleClick
'TIM_DUT_TASK.Stop()
End Sub
''' <summary>
''' DUT 串口接收事件
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub Commport_DUT_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles Commport_DUT.DataReceived
End Sub
Private Function paser_RcvData(strRcvData As String) As Boolean
'**************************** START ********************************
'[MAC] -> [PHOD03E7DA4ADE8]
'[Version] -> [0.2.17]
'[Voltate] -> [2023] mV
'[Humiture] -> Temperature: [80.11]F, Humidity:[56.1]%H
'[PIR] -> [0]
'[KeyLeft] -> [1]
'[KeyRight] -> [0]
'**************************** END ********************************
Dim tmpPossition As Integer = 0
Clear_Dut_Data()
If InStr(strRcvData, "START") > 0 AndAlso InStr(strRcvData, "END") > 0 Then
'>>>>>>> MAC
tmpPossition = InStr(strRcvData, "MAC")
If tmpPossition > 0 Then
g_DutData.dev_Mac_Str = Microsoft.VisualBasic.Mid(strRcvData, tmpPossition + 9, 15)
g_DutData.Dev_Mac = Microsoft.VisualBasic.Mid(strRcvData, tmpPossition + 12, 12)
If InStr(g_DutData.Dev_Mac, ":") <= 0 Then
g_Str_tobe_Sent_To_ezCAD = g_DutData.Dev_Mac
tb_MAC_sent_to_ezCAD.Text = g_Str_tobe_Sent_To_ezCAD
g_DutData.Dev_Info_Count = CULng(g_DutData.Dev_Info_Count + 1)
g_DutData.Dev_DataReady = True
'g_DutData.Dev_PortReady = True
'g_DutData.Dev_LastUpate = Date.Now
tsl_dut_msg_cnt.Text = g_DutData.Dev_Info_Count.ToString
tb_DUT_Msg.Text = strRcvData
End If
'MsgBox(g_DutData.dev_Mac_Str & "," & g_DutData.Dev_Mac)
End If
' '>>>>>>> Version
' tmpPossition = InStr(strRcvData, "Version")
'If tmpPossition > 0 Then
' g_DutData.Dev_Version = Microsoft.VisualBasic.Mid(strRcvData, tmpPossition + 13, 6)
' 'MsgBox(g_DutData.Dev_Version)
'End If
''>>>>>>> Voltage
'tmpPossition = InStr(strRcvData, "Voltage")
'If tmpPossition > 0 Then
' g_DutData.Dev_Voltage = CTypeMicrosoft.VisualBasic.Mid(strRcvData, tmpPossition + 13, 4) UInt16)
' 'MsgBox(g_DutData.Dev_Voltage)
'End If
''>>>>>>> Humiture
'tmpPossition = InStr(strRcvData, "Humidity:")
'If tmpPossition > 0 Then
' g_DutData.Dev_Humiture = CDbl(Microsoft.VisualBasic.Mid(strRcvData, tmpPossition + 10, 4))
' 'MsgBox(g_DutData.Dev_Humiture)
'End If
''>>>>>>> Temperature
'tmpPossition = InStr(strRcvData, "Temperature:")
'If tmpPossition > 0 Then
' g_DutData.Dev_Temprature_F = CDbl(Microsoft.VisualBasic.Mid(strRcvData, tmpPossition + 13, 5))
' g_DutData.Dev_Temprature_C = (g_DutData.Dev_Temprature_F - 32) / 1.8
' 'MsgBox(g_DutData.Dev_Temprature_F & " , " & g_DutData.Dev_Temprature_C)
'End If
''>>>>>>> PIR
'tmpPossition = InStr(strRcvData, "PIR")
'If tmpPossition > 0 Then
' g_DutData.Dev_PIR = CType(Microsoft.VisualBasic.Mid(strRcvData, tmpPossition + 9, 1), Boolean)
' 'MsgBox(g_DutData.Dev_PIR)
' If g_DutData.Dev_PIR <> g_DutData.PirVal_Last Then
' If g_DutData.Dev_PIR = True Then
' g_DutData.PirTrigCnt += 1
' End If
' g_DutData.PirVal_Last = g_DutData.Dev_PIR
' End If
'End If
''>>>>>>> KeyLeft
'tmpPossition = InStr(strRcvData, "KeyLeft")
'If tmpPossition > 0 Then
' g_DutData.Dev_KeyLeft = CType(Microsoft.VisualBasic.Mid(strRcvData, tmpPossition + 13, 1), Boolean)
' 'lab_KeyLeft.Visible = g_DutData.Dev_KeyLeft
' 'MsgBox(g_DutData.Dev_KeyLeft)
' If g_DutData.Dev_KeyLeft <> g_DutData.KeyVal_Left_Last Then
' If g_DutData.Dev_KeyLeft = True Then
' g_DutData.KeyPressCnt_Left += 1
' End If
' g_DutData.KeyVal_Left_Last = g_DutData.Dev_KeyLeft
' End If
'End If
''>>>>>>> KeyRight
'tmpPossition = InStr(strRcvData, "KeyRight")
'If tmpPossition > 0 Then
' g_DutData.Dev_KeyRight = CType(Microsoft.VisualBasic.Mid(strRcvData, tmpPossition + 14, 1), Boolean)
' 'MsgBox(g_DutData.Dev_KeyRight)
' If g_DutData.Dev_KeyRight <> g_DutData.KeyVal_Right_Last Then
' If g_DutData.Dev_KeyRight = True Then
' g_DutData.KeyPressCnt_Right += 1
' End If
' g_DutData.KeyVal_Right_Last = g_DutData.Dev_KeyRight
' End If
'End If
'g_DutData.Dev_Info_Count = CULng(g_DutData.Dev_Info_Count + 1)
'g_DutData.Dev_DataReady = True
''g_DutData.Dev_PortReady = True
''g_DutData.Dev_LastUpate = Date.Now
'tsl_dut_msg_cnt.Text = g_DutData.Dev_Info_Count
'tb_DUT_Msg.Text = strRcvData
Else
Return False
End If
Return True
End Function
''' <summary>
''' 清空DUT数据通常在发生新数据时调用
''' </summary>
Private Sub Clear_Dut_Data(Optional ByVal isClearAll As Boolean = False)
g_DutData.dev_Mac_Str = ""
g_DutData.Dev_Mac = ""
g_DutData.Dev_Version = ""
g_DutData.Dev_Voltage = 0
g_DutData.Dev_Humiture = 0
g_DutData.Dev_Temprature_F = 0
g_DutData.Dev_Temprature_C = 0
g_DutData.Dev_PIR = False
g_DutData.Dev_KeyLeft = False
g_DutData.Dev_KeyRight = False
'g_Auts_RunData.Ble_Mac = ""
'g_Auts_RunData.Ble_Rssi = -127
If isClearAll Then
g_DutData.KeyVal_Left_Last = False
g_DutData.KeyVal_Right_Last = False
g_DutData.PirVal_Last = False
g_DutData.KeyPressCnt_Left = 0
g_DutData.KeyPressCnt_Right = 0
g_DutData.PirTrigCnt = 0
g_DutData.Dev_DataReady = False
End If
End Sub
Dim g_dut_find_portList As List(Of String) = New List(Of String) '保存搜索到的串口列表
Dim g_dut_find_portidx As Integer = 0 '当前列表指针
Dim g_dut_find_port_WaitCnt_100mS As Integer = 0 '串口打开后,等待一段时间看有没有数据上来
Dim g_dut_task_data_nochange_cnt_100mS As Integer = 0 '串口任务中对数据未更新进行计时超过2.5秒钟无更新则清楚数据
''' <summary>
''' 自动匹配串口
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub TIM_Find_DUT_Port_Tick(sender As Object, e As EventArgs) Handles TIM_Find_DUT_Port.Tick
End Sub
Private Sub btn_FindDutPort_Click(sender As Object, e As EventArgs) Handles btn_FindDutPort.Click
TIM_Find_DUT_Port.Start()
End Sub
Private Sub TIM_DUT_TASK_Tick(sender As Object, e As EventArgs) Handles TIM_DUT_TASK.Tick
End Sub
#End Region
#Region "计数值管理"
Dim g_totalcnt_Press_Cnt As Integer = 0
Dim g_thistimecnt_Press_Cnt As Integer = 0
Dim g_lastTimePoint As DateTime
Private Sub TIM_CNT_CLEAR_Tick(sender As Object, e As EventArgs) Handles TIM_CNT_CLEAR.Tick
End Sub
Private Sub lab_Processed_Unit_Cnt_MouseDown(sender As Object, e As MouseEventArgs) Handles lab_Processed_Unit_Cnt.MouseDown
End Sub
Private Sub lab_Processed_Unit_Cnt_ThisCycle_MouseDown(sender As Object, e As MouseEventArgs) Handles lab_Processed_Unit_Cnt_ThisCycle.MouseDown
End Sub
Dim g_isLabelPrinted As Boolean = False
Private Sub TIM_PRINT_LABEL_TASK_Tick(sender As Object, e As EventArgs) Handles TIM_PRINT_LABEL_TASK.Tick
End Sub
#End Region
End Class
Public Class JsonAccessApi
''' <summary>
''' 初始化
''' </summary>
Sub New()
End Sub
Public Mars_ColorBox_BarCode As String
Public Message As String
Public Barcodeas As String
End Class

View File

@@ -0,0 +1,37 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Mars_P2_FrmStationPlan
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.SuspendLayout()
'
'ZQ_Mars_P2_FrmStationPlan
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Name = "ZQ_Mars_P2_FrmStationPlan"
Me.Text = "ZQ_Mars_P2_FrmStationPlan"
Me.ResumeLayout(False)
End Sub
End Class

View 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>

View File

@@ -0,0 +1,15 @@
Public Class ZQ_Mars_P2_FrmStationPlan
Private Sub ZQ_Mars_P2_FrmStationPlan_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
End Class

View File

@@ -0,0 +1,316 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Mars_P2_FrmStationTest
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.SerialPort1 = New System.IO.Ports.SerialPort(Me.components)
Me.SplitContainer2 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.lab_Pass = New System.Windows.Forms.Label()
Me.TextBox3 = New System.Windows.Forms.TextBox()
Me.TextBox2 = New System.Windows.Forms.TextBox()
Me.Label5 = New System.Windows.Forms.Label()
Me.Label4 = New System.Windows.Forms.Label()
Me.Button1 = New System.Windows.Forms.Button()
Me.btn_OK = New System.Windows.Forms.Button()
Me.txt_UpNum = New System.Windows.Forms.TextBox()
Me.txt_testnum = New System.Windows.Forms.TextBox()
Me.Label3 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
Me.txt_LooadNum = New System.Windows.Forms.TextBox()
Me.Btn_IsOpenSerialPort = New System.Windows.Forms.Button()
Me.Cbo_SerialPort = New System.Windows.Forms.ComboBox()
Me.Label1 = New System.Windows.Forms.Label()
Me.Txt_BaudRate = New System.Windows.Forms.TextBox()
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer2.Panel1.SuspendLayout()
Me.SplitContainer2.Panel2.SuspendLayout()
Me.SplitContainer2.SuspendLayout()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
Me.SuspendLayout()
'
'SplitContainer2
'
Me.SplitContainer2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer2.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer2.Name = "SplitContainer2"
'
'SplitContainer2.Panel1
'
Me.SplitContainer2.Panel1.Controls.Add(Me.SplitContainer1)
'
'SplitContainer2.Panel2
'
Me.SplitContainer2.Panel2.Controls.Add(Me.TextBox3)
Me.SplitContainer2.Panel2.Controls.Add(Me.TextBox2)
Me.SplitContainer2.Panel2.Controls.Add(Me.Label5)
Me.SplitContainer2.Panel2.Controls.Add(Me.Label4)
Me.SplitContainer2.Panel2.Controls.Add(Me.Button1)
Me.SplitContainer2.Panel2.Controls.Add(Me.btn_OK)
Me.SplitContainer2.Panel2.Controls.Add(Me.txt_UpNum)
Me.SplitContainer2.Panel2.Controls.Add(Me.txt_testnum)
Me.SplitContainer2.Panel2.Controls.Add(Me.Label3)
Me.SplitContainer2.Panel2.Controls.Add(Me.Label2)
Me.SplitContainer2.Panel2.Controls.Add(Me.txt_LooadNum)
Me.SplitContainer2.Panel2.Controls.Add(Me.Btn_IsOpenSerialPort)
Me.SplitContainer2.Panel2.Controls.Add(Me.Cbo_SerialPort)
Me.SplitContainer2.Panel2.Controls.Add(Me.Label1)
Me.SplitContainer2.Panel2.Controls.Add(Me.Txt_BaudRate)
Me.SplitContainer2.Size = New System.Drawing.Size(984, 562)
Me.SplitContainer2.SplitterDistance = 353
Me.SplitContainer2.TabIndex = 1
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.lab_Pass)
Me.SplitContainer1.Panel1.Font = New System.Drawing.Font("宋体", 28.0!)
Me.SplitContainer1.Size = New System.Drawing.Size(351, 560)
Me.SplitContainer1.SplitterDistance = 224
Me.SplitContainer1.TabIndex = 0
'
'lab_Pass
'
Me.lab_Pass.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lab_Pass.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_Pass.Location = New System.Drawing.Point(0, 0)
Me.lab_Pass.Name = "lab_Pass"
Me.lab_Pass.Size = New System.Drawing.Size(351, 224)
Me.lab_Pass.TabIndex = 0
Me.lab_Pass.Text = "Pass"
Me.lab_Pass.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'TextBox3
'
Me.TextBox3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.TextBox3.Font = New System.Drawing.Font("宋体", 24.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TextBox3.Location = New System.Drawing.Point(19, 176)
Me.TextBox3.Name = "TextBox3"
Me.TextBox3.ReadOnly = True
Me.TextBox3.Size = New System.Drawing.Size(420, 44)
Me.TextBox3.TabIndex = 28
Me.TextBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'TextBox2
'
Me.TextBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.TextBox2.Font = New System.Drawing.Font("宋体", 24.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TextBox2.Location = New System.Drawing.Point(16, 119)
Me.TextBox2.Name = "TextBox2"
Me.TextBox2.Size = New System.Drawing.Size(420, 44)
Me.TextBox2.TabIndex = 27
Me.TextBox2.Text = "CTHM08711382252033277"
Me.TextBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Label5
'
Me.Label5.AutoSize = True
Me.Label5.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label5.Location = New System.Drawing.Point(445, 176)
Me.Label5.Name = "Label5"
Me.Label5.RightToLeft = System.Windows.Forms.RightToLeft.Yes
Me.Label5.Size = New System.Drawing.Size(150, 37)
Me.Label5.TabIndex = 26
Me.Label5.Text = "DUT_SN:"
Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Label4
'
Me.Label4.AutoSize = True
Me.Label4.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label4.Location = New System.Drawing.Point(442, 119)
Me.Label4.Name = "Label4"
Me.Label4.RightToLeft = System.Windows.Forms.RightToLeft.Yes
Me.Label4.Size = New System.Drawing.Size(147, 37)
Me.Label4.TabIndex = 25
Me.Label4.Text = "彩盒码:"
Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Button1
'
Me.Button1.Font = New System.Drawing.Font("宋体", 27.75!)
Me.Button1.Location = New System.Drawing.Point(430, 3)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(174, 45)
Me.Button1.TabIndex = 24
Me.Button1.Text = "刷新串口"
Me.Button1.UseVisualStyleBackColor = True
Me.Button1.Visible = False
'
'btn_OK
'
Me.btn_OK.Font = New System.Drawing.Font("宋体", 27.75!)
Me.btn_OK.Location = New System.Drawing.Point(374, 455)
Me.btn_OK.Name = "btn_OK"
Me.btn_OK.Size = New System.Drawing.Size(208, 65)
Me.btn_OK.TabIndex = 23
Me.btn_OK.Text = "确认写入"
Me.btn_OK.UseVisualStyleBackColor = True
Me.btn_OK.Visible = False
'
'txt_UpNum
'
Me.txt_UpNum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_UpNum.Font = New System.Drawing.Font("宋体", 27.0!)
Me.txt_UpNum.Location = New System.Drawing.Point(359, 287)
Me.txt_UpNum.Name = "txt_UpNum"
Me.txt_UpNum.ReadOnly = True
Me.txt_UpNum.Size = New System.Drawing.Size(110, 49)
Me.txt_UpNum.TabIndex = 22
Me.txt_UpNum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'txt_testnum
'
Me.txt_testnum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_testnum.Font = New System.Drawing.Font("宋体", 27.0!)
Me.txt_testnum.Location = New System.Drawing.Point(201, 287)
Me.txt_testnum.Name = "txt_testnum"
Me.txt_testnum.Size = New System.Drawing.Size(110, 49)
Me.txt_testnum.TabIndex = 21
Me.txt_testnum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label3.Location = New System.Drawing.Point(317, 293)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(36, 37)
Me.Label3.TabIndex = 20
Me.Label3.Text = ">"
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label2.Location = New System.Drawing.Point(159, 293)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(36, 37)
Me.Label2.TabIndex = 19
Me.Label2.Text = "<"
'
'txt_LooadNum
'
Me.txt_LooadNum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_LooadNum.Font = New System.Drawing.Font("宋体", 27.0!)
Me.txt_LooadNum.Location = New System.Drawing.Point(43, 287)
Me.txt_LooadNum.Name = "txt_LooadNum"
Me.txt_LooadNum.ReadOnly = True
Me.txt_LooadNum.Size = New System.Drawing.Size(110, 49)
Me.txt_LooadNum.TabIndex = 18
Me.txt_LooadNum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Btn_IsOpenSerialPort
'
Me.Btn_IsOpenSerialPort.Font = New System.Drawing.Font("宋体", 27.75!)
Me.Btn_IsOpenSerialPort.Location = New System.Drawing.Point(442, 65)
Me.Btn_IsOpenSerialPort.Name = "Btn_IsOpenSerialPort"
Me.Btn_IsOpenSerialPort.Size = New System.Drawing.Size(173, 45)
Me.Btn_IsOpenSerialPort.TabIndex = 17
Me.Btn_IsOpenSerialPort.Text = "打开串口"
Me.Btn_IsOpenSerialPort.UseVisualStyleBackColor = True
'
'Cbo_SerialPort
'
Me.Cbo_SerialPort.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.Cbo_SerialPort.Font = New System.Drawing.Font("宋体", 27.75!)
Me.Cbo_SerialPort.FormattingEnabled = True
Me.Cbo_SerialPort.Location = New System.Drawing.Point(201, 65)
Me.Cbo_SerialPort.Name = "Cbo_SerialPort"
Me.Cbo_SerialPort.Size = New System.Drawing.Size(235, 45)
Me.Cbo_SerialPort.TabIndex = 16
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label1.Location = New System.Drawing.Point(277, 7)
Me.Label1.Name = "Label1"
Me.Label1.RightToLeft = System.Windows.Forms.RightToLeft.Yes
Me.Label1.Size = New System.Drawing.Size(147, 37)
Me.Label1.TabIndex = 15
Me.Label1.Text = "波特率:"
Me.Label1.Visible = False
'
'Txt_BaudRate
'
Me.Txt_BaudRate.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.Txt_BaudRate.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Txt_BaudRate.Location = New System.Drawing.Point(138, 7)
Me.Txt_BaudRate.Name = "Txt_BaudRate"
Me.Txt_BaudRate.ReadOnly = True
Me.Txt_BaudRate.Size = New System.Drawing.Size(133, 50)
Me.Txt_BaudRate.TabIndex = 14
Me.Txt_BaudRate.Text = "9600"
Me.Txt_BaudRate.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
Me.Txt_BaudRate.Visible = False
'
'ZQ_Mars_P2_FrmStationTest
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(984, 562)
Me.Controls.Add(Me.SplitContainer2)
Me.Name = "ZQ_Mars_P2_FrmStationTest"
Me.Text = "ZQ_Mars_P2_FrmStationTest"
Me.SplitContainer2.Panel1.ResumeLayout(False)
Me.SplitContainer2.Panel2.ResumeLayout(False)
Me.SplitContainer2.Panel2.PerformLayout()
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer2.ResumeLayout(False)
Me.SplitContainer1.Panel1.ResumeLayout(False)
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer1.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
Friend WithEvents SerialPort1 As IO.Ports.SerialPort
Friend WithEvents SplitContainer2 As SplitContainer
Friend WithEvents txt_UpNum As TextBox
Friend WithEvents txt_testnum As TextBox
Friend WithEvents Label3 As Label
Friend WithEvents Label2 As Label
Friend WithEvents txt_LooadNum As TextBox
Friend WithEvents Btn_IsOpenSerialPort As Button
Friend WithEvents Cbo_SerialPort As ComboBox
Friend WithEvents Label1 As Label
Friend WithEvents Txt_BaudRate As TextBox
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents lab_Pass As Label
Friend WithEvents Button1 As Button
Friend WithEvents Label5 As Label
Friend WithEvents Label4 As Label
Friend WithEvents TextBox3 As TextBox
Friend WithEvents TextBox2 As TextBox
Friend WithEvents btn_OK As Button
End Class

View File

@@ -0,0 +1,126 @@
<?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="SerialPort1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>
</root>

View File

@@ -0,0 +1,515 @@
Imports System.IO
Imports System.Net
Imports System.Text
Imports System.Threading
Imports Newtonsoft.Json
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Imports UTS_Core.UTSModule.Test
Imports UTS_Core.UTSModule.Test.StatusMonitor
Public Class ZQ_Mars_P2_FrmStationTest
Implements IProcessStation
Public Isopenflag As Boolean = False
Private _stationPlan As StationPackagePlan
Private Stnum As Integer = 0
Private Utnum As Integer = 0
Private Stnum_cnt As Integer = 0
Public _Uart1Tack As Thread
Private _utsApp As UtsAppForm
Public Sub ConfigSerialPort(Serial As IO.Ports.SerialPort, BaudRate As Integer, portName As String)
With Serial
.PortName = portName '串口名
.BaudRate = BaudRate ' _BaudRate '波特率
.DataBits = 8 '数据位
.StopBits = Ports.StopBits.One '停止位
.Parity = Ports.Parity.None '偶校验
.RtsEnable = True
.ReceivedBytesThreshold = 1
End With
End Sub
Private Sub ZQ_Mars_P2_FrmStationTest_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ApplicationLog.WriteInfoLog($"测试页面加载中。")
If InitializeUtsApp() = False Then Return
'InitializeForm()
_Uart1Tack = New Thread(AddressOf ReadUart1DataThread)
_Uart1Tack.Start()
End Sub
Private Function InitializeUtsApp() As Boolean
_utsApp = UtsAppForm.CreateSingleton()
_utsApp.AddStatisticsObserver(CType(Me, IProcessStation))
Try
If _utsApp.IsInitialized = False Then
_utsApp.Initialize(ProcessStation.StationTypeEnum.Package) 'Todo:可根据需要限定可选站位
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"初始化窗体失败,原因:{ex.Message}!")
MsgBox($"初始化窗体失败,原因:{ex.Message}")
Close()
Return False
End Try
Return True
End Function
Public Sub Station_Changed() Implements IProcessStation.StationChanged
'Todo:站位变化代码
ApplicationLog.WriteInfoLog($"测试页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
'清除表格数据
'InitBarcodeGrid()
ApplicationLog.WriteInfoLog($"测试页面站位变更完成!")
End Sub
Public Sub ReadUart1DataThread()
Dim readStr As String
Dim bufflen As Integer = 0
Dim readUartStr As String = ""
Dim uartport As IO.Ports.SerialPort = SerialPort1
While True
Try
If uartport.IsOpen Then
bufflen = uartport.BytesToRead
If uartport.BytesToRead > 0 Then
Dim therecvBuffer(bufflen) As Byte
uartport.Read(therecvBuffer, 0, bufflen)
readStr = Encoding.GetEncoding("GBK").GetString(therecvBuffer)
If readStr.Equals(vbNullChar) Then Continue While
readUartStr = readUartStr & readStr
readUartStr = readUartStr.ReplacevbNullChar, ""
If readUartStr.Substring(readUartStr.Length - 2).Equals(vbCrLf) Then
UartGetNumber(readUartStr)
Else
Continue While
End If
readUartStr = ""
Else
Continue While
End If
Else
Continue While
End If
Catch ex As Exception
MsgBox("串口线程错误,请重新打开软件。")
Return
End Try
Thread.Sleep(100)
End While
End Sub
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
Public Sub UartGetNumber(number As String)
Dim buff() As String = number.Trim.Split(CType" " Char)
If buff.Length = 4 Then Return
If number.ToLower.Contains"US".ToLower Then
Settxt_testnum(number, Color.Blue)
Stnum_cnt = 0
ElseIf number.ToLower.Contains"ST".ToLower Then
If Stnum_cnt > 5 Then
Settxt_testnum(number, Color.Green)
Else
Stnum_cnt = Stnum_cnt + 1
End If
End If
End Sub
Public Function ConvertDAta(ptr As String) As String
If ptr(4).ToLower.Equals("kg") Then
Dim num As Integer = 0
Integer.TryParse(ptr(3), num)
Return CType(num * 1000, String)
ElseIf ptr(4).ToLower.Equals("g") Then
Return ptr(3)
Else
Return "-1"
End If
End Function
Delegate Sub Settxttestnum(txt As String, thecolor As Color)
Public Sub Settxt_testnum(txt As String, thecolor As Color)
If Me.InvokeRequired Then '判断是否需要开委托
'StuMain.Invoke(New Action(Of NetWorkStatusEnum)(AddressOf UpdateNetWorkStatus), New Object() {netStatus})
Me.Invoke(New SettxttestnumAddressOf Settxt_testnum, {txt, thecolor})
Return
End If
Dim buff() As String = txt.Trim.Split(CType" " Char)
txt_testnum.Text = ConvertDAtabuff
If txt_testnum.Text.Equals("-1") Then
txt_testnum.ForeColor = Color.Red
Return
End If
txt_testnum.ForeColor = thecolor
End Sub
Private Sub Btn_IsOpenSerialPort_Click(sender As Object, e As EventArgs) Handles Btn_IsOpenSerialPort.Click
Dim BaudRate As Integer
If Isopenflag Then
SerialPort1.Close()
Btn_IsOpenSerialPort.Text = "关闭串口"
Btn_IsOpenSerialPort.BackColor = Color.LightGray
Btn_IsOpenSerialPort.Enabled = False
_Uart1Tack.Abort()
Else
If String.IsNullOrEmpty(Txt_BaudRate.Text.Trim) Then
MsgBox("串口为空,请选择串口")
Return
End If
Integer.TryParse(Txt_BaudRate.Text.Trim, BaudRate)
ConfigSerialPort(SerialPort1, BaudRate, Cbo_SerialPort.Text.Trim)
Try
SerialPort1.Open()
Catch ex As Exception
MsgBox($"串口打开失败,详情:{ex.Message}")
SerialPort1.Close()
Return
End Try
_Uart1Tack = New Thread(AddressOf ReadUart1DataThread)
_Uart1Tack.Start()
Btn_IsOpenSerialPort.Text = "关闭串口"
Btn_IsOpenSerialPort.BackColor = Color.Green
Btn_IsOpenSerialPort.Enabled = True
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Cbo_SerialPort.Items.Clear()
Dim portNames As String() = Ports.SerialPort.GetPortNames
Cbo_SerialPort.Items.AddRangeportNames
End Sub
Private Sub Cbo_SerialPort_DropDown(sender As Object, e As EventArgs) Handles Cbo_SerialPort.DropDown
Cbo_SerialPort.Items.Clear()
Dim portNames As String() = Ports.SerialPort.GetPortNames
Cbo_SerialPort.Items.AddRangeportNames
End Sub
Private Sub ZQ_Mars_P2_FrmStationTest_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
If IsNothing(testGrid) Then
Else
testGrid.SaveFile("E:\Mars_Edvt1_CodeTable.flx")
End If
If IsNothing(_Uart1Tack) Then
Else
If _Uart1Tack.IsAlive Then
_Uart1Tack.Abort()
End If
End If
End Sub
Public testGrid As FlexCell.Grid
Public Sub datalist()
Dim dic As New Dictionary(Of String String())
testGrid = New FlexCell.Grid
testGrid.OpenFile("E:\\Mars_Edvt1_CodeTable.flx")
End Sub
Public Function getAutSN(grid As FlexCell.Grid, colorode As String) As Dictionary(Of String, String)
Dim dic As Dictionary(Of String, String)
For rowid As Integer = 1 To grid.Rows - 1
If grid.Cell(rowid, 6).Text.ToLower.Equals(colorode.ToLower) Then
dic = New Dictionary(Of String, String)
For colid As Integer = 1 To grid.Cols - 1
dic.Add(grid.Cell(0, colid).Text, grid.Cell(rowid, colid).Text)
Next
End If
Next
Return dic
dic.Add(dic.Keys(3), dic.Values(3))
dic.Add(dic.Keys(6), dic.Values(6))
dic.Add(dic.Keys(7), dic.Values(7))
dic.Add(dic.Keys(8), dic.Values(8))
dic.Add(dic.Keys(9), dic.Values(9))
End Function
Private Sub btn_OK_Click(sender As Object, e As EventArgs) Handles btn_OK.Click
'Dim jsonString As JsonPtr = AccessApi2("123", "uts_zongqing", "Barcode", "1",,)
datalist()
End Sub
Public Function AccessApi2pwd As String dbName As String, theKey As String Optional Barcode As String = "", Optional ColorBox_BarCode As String = "", Optional OutBoxCode As String = "" As JsonPtr
Dim jsonString As String = String.Empty
Dim ptr As String = $"Pwd={pwd}&DBName={dbName}&Key={theKey}"
If Not String.IsNullOrEmptyBarcode Then
ptr = ptr & $"&Barcode={Barcode}"
End If
If Not String.IsNullOrEmptyColorBox_BarCode Then
ptr = ptr & $"&ColorBox_BarCode={ColorBox_BarCode}"
End If
If Not String.IsNullOrEmptyOutBoxCode Then
ptr = ptr & $"&OutBoxCode={OutBoxCode}"
End If
'/http://uts-data.com/CommonApi/Combind_Sn_Info? Pwd%3D%26*$@%23235%26DBName%3Duts_zongqing%26Key%3DBarcode%26Barcode%3D1
Try
jsonString = PostData("http://uts-data.com/CommonApi/Combind_Sn_Info", ptr)
'jsonString = PostData("http://47.119.147.104:90/OTApi/Login", $"Uid={user}&Pwd={pwd}&appid=1")
Catch ex As Exception
MsgBox($"{ex.Message}!盒码获取失败请联系管理员")
Return Nothing
End Try
Console.WriteLine(jsonString)
If jsonString = Nothing Then
Return Nothing
End If
Dim login As JsonPtr = JsonConvert.DeserializeObject(Of JsonPtr)(jsonString)
Return login
End Function
Public Shared Function PostData(ByVal url As String, ByVal data As String) As String
ServicePointManager.Expect100Continue = False
Dim request As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
'//Post请求方式
request.Method = "post"
'内容类型
request.ContentType = "application/x-www-form-urlencoded"
'将URL编码后的字符串转化为字节
Dim encoding As New UTF8Encoding()
Dim bys As Byte() = encoding.GetBytes(data)
'设置请求的 ContentLength
request.ContentLength = bys.Length
'获得请 求流
Dim newStream As Stream = request.GetRequestStream()
newStream.Write(bys, 0, bys.Length)
newStream.Close()
'获得响应流
Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
Return sr.ReadToEnd
End Function
Private Sub DevCode_txt_PreviewKeyDown()
Dim buff() As String
Dim Customfield As New Dictionary(Of String String)
Dim ColorBox As String = ""
Dim node As New RowNode
Dim Dut_SN As String = ""
Dim datenow As Date = Now
If String.IsNullOrEmpty(txt_testnum.Text) Then
MsgBox("未获取测量数据")
Return
End If
If String.IsNullOrEmpty(TextBox2.Text) AndAlso String.IsNullOrEmpty(TextBox3.Text) Then
MsgBox("未获取条码数据")
Return
End If
Dim testresuli As String = CopmareTheSize()
If Not testresuli.Equals("False") Then
Dim jsonString As JsonPtr = AccessApi2("123", "uts_zongqing", "Barcode", "1",,)
If IsNothing(jsonString) Then
node.RowListIndex = 1
node.Description = "获取DUT_SN失败"
TheTestResults(Dut_SN, TestResult.TestResultEnum.Fail, datenow, node)
End If
TheTestResults("", TestResult.TestResultEnum.Pass, datenow, Nothing, Customfield)
Else
node.RowListIndex = 1
node.Description = "称量数据校准失败!"
TheTestResults(Dut_SN, TestResult.TestResultEnum.Fail, datenow, node)
End If
'ColorBox = AccessApi("$%@132", buff(0).Trim, "uts_zongqing")
' EnclosureCode_txt.Text = ColorBox
' TextBox1.Text = buff(0).Trim
' 'If GetTheColorBoxCode(DevCode_txt.Text Dut_SN) Then
' If Not ColorBox.Equals("False") Then
' SetBarTendertoGridGrdPriview, DicBarTender
' Customfield.Clear()
' Customfield.Add("MacCode", buff(1).Trim)
' Customfield.Add("SnCode", buff(0).Trim)
' Customfield.Add("ColorBoxCode", ColorBox)
' TheTestResults(buff(0).Trim, TestResult.TestResultEnum.Pass, datenow, Nothing, Customfield)
' Else
' node.RowListIndex = 1
' node.Description = "机身码绑定失败"
' TheTestResults(Dut_SN, TestResult.TestResultEnum.Fail, datenow, node)
' End If
' Else
' node.RowListIndex = 1
' node.Description = "机身码错误"
' TheTestResults(Dut_SN, TestResult.TestResultEnum.Fail, datenow, node)
' End If
End Sub
Private Sub TheTestResults(dutSn As String, ispass As TestResult.TestResultEnum, datenow As Date, Optional FailMsg As RowNode = Nothing, Optional Customfield As Dictionary(Of String String) = Nothing)
'重置信息
_utsApp.TestResult.ResetTestResult()
'产线索引
_utsApp.TestResult.ProductionLineID = -1
'测试开始时间
_utsApp.TestResult.StartTime = Now
_utsApp.TestResult.DUT_SN = dutSn
_utsApp.TestResult.TestResult = ispass
_utsApp.TestResult.UsedTime = Now - datenow
If Not IsNothing(FailMsg) Then
_utsApp.TestResult.FailSteps.Add(FailMsg)
End If
If Not IsNothing(Customfield) Then
For indexptr As Integer = 0 To Customfield.Count - 1
_utsApp.TestResult.AddCustomRecord($"{Customfield.Keys(indexptr)}", $"{Customfield.Values(indexptr)}")
Next
End If
Try
'提交测试记录,缺省参数默认为FalseTrue则测试记录唯一,覆盖相同条码记录
_utsApp.CommitTestResult(True)
If ispass = TestResult.TestResultEnum.Pass Then
TestStatusMonitor.TestStatus = StatusMonitor.TestStatusMonitor.TestStatusEnum.TestPass
Else
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestFail
End If
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestPass
Catch ex As Exception
ApplicationLog.WriteErrorLog($"写入称量数据失败:{ex.Message}")
MsgBox($"写入称量数据失败:{ex.Message}")
'LblResult.Text = "FAIL"
'LblResult.ForeColor = Color.Red
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestFail
Return
End Try
End Sub
Public Function CopmareTheSize() As String
Dim loadnum As Integer = 0
Dim upnum As Integer = 0
Dim connum As Integer = 0
If Integer.TryParse(txt_LooadNum.Text, loadnum) AndAlso Integer.TryParse(txt_testnum.Text, connum) AndAlso Integer.TryParse(txt_UpNum.Text, upnum) Then
If loadnum < connum AndAlso connum < upnum Then
Return CStr(connum)
Else
Return "False"
End If
Else
Return "False"
End If
End Function
Private Sub TextBox2_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles TextBox2.PreviewKeyDown
If e.KeyData = Keys.Enter Then
End If
End Sub
Private Sub SplitContainer2_Panel2_Paint(sender As Object, e As PaintEventArgs) Handles SplitContainer2.Panel2.Paint
End Sub
End Class
Public Class JsonPtr
Public Data As List(Of jsonrusil)
Public Message As String
End Class
Public Class jsonrusil
Public ID As String
Public Project As String
Public importdateTime As Date
Public updatetime As Date
Public mars_colorBoxcode As String
Public mars_outboxcode As String
Public mars_MacCode As String
Public mars_Unitweight As String
End Class

View File

@@ -0,0 +1,446 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Mars_T2_FrmStationPlan
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ZQ_Mars_T2_FrmStationPlan))
Me.MsiCopyNode = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiNodePaste = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiUndo = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiRedo = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiSaveNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiLoadNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStart = New System.Windows.Forms.ToolStripMenuItem()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.TsBtnOpen = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSave = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator()
Me.TsBtnLoad = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSaveAs = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiCutNode = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
Me.CmsPlanGrid = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.ToolStripSeparator7 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugEnd = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStep = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugContinue = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator8 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugSetup = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugMain = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugPass = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugFail = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugCleanup = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator9 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugNode = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugNodeBegin = New System.Windows.Forms.ToolStripMenuItem()
Me.StuMain = New System.Windows.Forms.StatusStrip()
Me.DlgOpenFile = New System.Windows.Forms.OpenFileDialog()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
Me.LblDesc = New System.Windows.Forms.Label()
Me.GrdStationPlan = New FlexCell.Grid()
Me.Grid1 = New FlexCell.Grid()
Me.ToolStrip1.SuspendLayout()
Me.CmsPlanGrid.SuspendLayout()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
Me.GroupBox2.SuspendLayout()
Me.SuspendLayout()
'
'MsiCopyNode
'
Me.MsiCopyNode.Enabled = False
Me.MsiCopyNode.Name = "MsiCopyNode"
Me.MsiCopyNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCopyNode.Text = "复制"
'
'MsiNodePaste
'
Me.MsiNodePaste.Enabled = False
Me.MsiNodePaste.Name = "MsiNodePaste"
Me.MsiNodePaste.Size = New System.Drawing.Size(192, 22)
Me.MsiNodePaste.Text = "粘贴"
'
'ToolStripSeparator5
'
Me.ToolStripSeparator5.Name = "ToolStripSeparator5"
Me.ToolStripSeparator5.Size = New System.Drawing.Size(189, 6)
'
'MsiUndo
'
Me.MsiUndo.Enabled = False
Me.MsiUndo.Name = "MsiUndo"
Me.MsiUndo.Size = New System.Drawing.Size(192, 22)
Me.MsiUndo.Text = "撤销"
'
'MsiRedo
'
Me.MsiRedo.Enabled = False
Me.MsiRedo.Name = "MsiRedo"
Me.MsiRedo.Size = New System.Drawing.Size(192, 22)
Me.MsiRedo.Text = "重做"
'
'ToolStripSeparator6
'
Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
Me.ToolStripSeparator6.Size = New System.Drawing.Size(189, 6)
'
'MsiSaveNodeFile
'
Me.MsiSaveNodeFile.Name = "MsiSaveNodeFile"
Me.MsiSaveNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiSaveNodeFile.Text = "另存为节点文件"
'
'MsiLoadNodeFile
'
Me.MsiLoadNodeFile.Name = "MsiLoadNodeFile"
Me.MsiLoadNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiLoadNodeFile.Text = "加载节点文件"
'
'TsmiDebugStart
'
Me.TsmiDebugStart.Name = "TsmiDebugStart"
Me.TsmiDebugStart.ShortcutKeys = System.Windows.Forms.Keys.F1
Me.TsmiDebugStart.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStart.Text = "开始执行"
'
'GroupBox1
'
Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox1.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.GroupBox1.Location = New System.Drawing.Point(0, 0)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(536, 561)
Me.GroupBox1.TabIndex = 0
Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "常规预览"
'
'TsBtnOpen
'
Me.TsBtnOpen.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnOpen.Image = CType(resources.GetObject("TsBtnOpen.Image"), System.Drawing.Image)
Me.TsBtnOpen.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnOpen.Name = "TsBtnOpen"
Me.TsBtnOpen.Size = New System.Drawing.Size(35, 33)
Me.TsBtnOpen.Text = "打开"
Me.TsBtnOpen.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSave
'
Me.TsBtnSave.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnSave.Image = CType(resources.GetObject("TsBtnSave.Image"), System.Drawing.Image)
Me.TsBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSave.Name = "TsBtnSave"
Me.TsBtnSave.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSave.Text = "保存"
Me.TsBtnSave.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator4
'
Me.ToolStripSeparator4.Name = "ToolStripSeparator4"
Me.ToolStripSeparator4.Size = New System.Drawing.Size(6, 36)
'
'TsBtnLoad
'
Me.TsBtnLoad.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnLoad.Image = CType(resources.GetObject("TsBtnLoad.Image"), System.Drawing.Image)
Me.TsBtnLoad.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnLoad.Name = "TsBtnLoad"
Me.TsBtnLoad.Size = New System.Drawing.Size(35, 33)
Me.TsBtnLoad.Text = "重载"
Me.TsBtnLoad.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSaveAs
'
Me.TsBtnSaveAs.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnSaveAs.Image = CType(resources.GetObject("TsBtnSaveAs.Image"), System.Drawing.Image)
Me.TsBtnSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSaveAs.Name = "TsBtnSaveAs"
Me.TsBtnSaveAs.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSaveAs.Text = "导出"
Me.TsBtnSaveAs.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator3
'
Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 36)
'
'MsiCutNode
'
Me.MsiCutNode.Enabled = False
Me.MsiCutNode.Name = "MsiCutNode"
Me.MsiCutNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCutNode.Text = "剪切"
'
'ToolStrip1
'
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TsBtnOpen, Me.TsBtnSave, Me.ToolStripSeparator4, Me.TsBtnLoad, Me.TsBtnSaveAs, Me.ToolStripSeparator3})
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(984, 36)
Me.ToolStrip1.TabIndex = 7
Me.ToolStrip1.Text = "ToolStrip1"
'
'CmsPlanGrid
'
Me.CmsPlanGrid.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MsiCopyNode, Me.MsiCutNode, Me.MsiNodePaste, Me.ToolStripSeparator5, Me.MsiUndo, Me.MsiRedo, Me.ToolStripSeparator6, Me.MsiSaveNodeFile, Me.MsiLoadNodeFile, Me.ToolStripSeparator7, Me.TsmiDebugStart, Me.TsmiDebugEnd, Me.TsmiDebugStep, Me.TsmiDebugContinue, Me.ToolStripSeparator8, Me.TsmiDebugSetup, Me.TsmiDebugMain, Me.TsmiDebugPass, Me.TsmiDebugFail, Me.TsmiDebugCleanup, Me.ToolStripSeparator9, Me.TsmiDebugNode, Me.TsmiDebugNodeBegin})
Me.CmsPlanGrid.Name = "CmsMain"
Me.CmsPlanGrid.Size = New System.Drawing.Size(193, 430)
'
'ToolStripSeparator7
'
Me.ToolStripSeparator7.Name = "ToolStripSeparator7"
Me.ToolStripSeparator7.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugEnd
'
Me.TsmiDebugEnd.Name = "TsmiDebugEnd"
Me.TsmiDebugEnd.ShortcutKeys = System.Windows.Forms.Keys.F2
Me.TsmiDebugEnd.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugEnd.Text = "退出执行"
'
'TsmiDebugStep
'
Me.TsmiDebugStep.Name = "TsmiDebugStep"
Me.TsmiDebugStep.ShortcutKeys = System.Windows.Forms.Keys.F3
Me.TsmiDebugStep.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStep.Text = "单步执行"
'
'TsmiDebugContinue
'
Me.TsmiDebugContinue.Name = "TsmiDebugContinue"
Me.TsmiDebugContinue.ShortcutKeys = System.Windows.Forms.Keys.F4
Me.TsmiDebugContinue.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugContinue.Text = "继续执行"
'
'ToolStripSeparator8
'
Me.ToolStripSeparator8.Name = "ToolStripSeparator8"
Me.ToolStripSeparator8.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugSetup
'
Me.TsmiDebugSetup.Name = "TsmiDebugSetup"
Me.TsmiDebugSetup.ShortcutKeys = System.Windows.Forms.Keys.F5
Me.TsmiDebugSetup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugSetup.Text = "Setup模块执行"
'
'TsmiDebugMain
'
Me.TsmiDebugMain.Name = "TsmiDebugMain"
Me.TsmiDebugMain.ShortcutKeys = System.Windows.Forms.Keys.F6
Me.TsmiDebugMain.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugMain.Text = "Main模块执行"
'
'TsmiDebugPass
'
Me.TsmiDebugPass.Name = "TsmiDebugPass"
Me.TsmiDebugPass.ShortcutKeys = System.Windows.Forms.Keys.F7
Me.TsmiDebugPass.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugPass.Text = "Pass模块执行"
'
'TsmiDebugFail
'
Me.TsmiDebugFail.Name = "TsmiDebugFail"
Me.TsmiDebugFail.ShortcutKeys = System.Windows.Forms.Keys.F8
Me.TsmiDebugFail.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugFail.Text = "Fail模块执行"
'
'TsmiDebugCleanup
'
Me.TsmiDebugCleanup.Name = "TsmiDebugCleanup"
Me.TsmiDebugCleanup.ShortcutKeys = System.Windows.Forms.Keys.F9
Me.TsmiDebugCleanup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugCleanup.Text = "Cleanup模块执行"
'
'ToolStripSeparator9
'
Me.ToolStripSeparator9.Name = "ToolStripSeparator9"
Me.ToolStripSeparator9.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugNode
'
Me.TsmiDebugNode.Name = "TsmiDebugNode"
Me.TsmiDebugNode.ShortcutKeys = System.Windows.Forms.Keys.F10
Me.TsmiDebugNode.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNode.Text = "节点测试"
'
'TsmiDebugNodeBegin
'
Me.TsmiDebugNodeBegin.Name = "TsmiDebugNodeBegin"
Me.TsmiDebugNodeBegin.ShortcutKeys = System.Windows.Forms.Keys.F11
Me.TsmiDebugNodeBegin.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNodeBegin.Text = "节点开始测试"
'
'StuMain
'
Me.StuMain.Location = New System.Drawing.Point(0, 539)
Me.StuMain.Name = "StuMain"
Me.StuMain.Size = New System.Drawing.Size(984, 22)
Me.StuMain.TabIndex = 8
Me.StuMain.Text = "StatusStrip1"
'
'DlgOpenFile
'
Me.DlgOpenFile.FileName = "OpenFileDialog1"
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.GroupBox2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.GroupBox1)
Me.SplitContainer1.Size = New System.Drawing.Size(984, 561)
Me.SplitContainer1.SplitterDistance = 444
Me.SplitContainer1.TabIndex = 9
'
'GroupBox2
'
Me.GroupBox2.Controls.Add(Me.LblDesc)
Me.GroupBox2.Controls.Add(Me.GrdStationPlan)
Me.GroupBox2.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox2.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.GroupBox2.Location = New System.Drawing.Point(0, 0)
Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(444, 561)
Me.GroupBox2.TabIndex = 0
Me.GroupBox2.TabStop = False
Me.GroupBox2.Text = "流程参数"
'
'LblDesc
'
Me.LblDesc.Dock = System.Windows.Forms.DockStyle.Bottom
Me.LblDesc.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.LblDesc.Location = New System.Drawing.Point(3, 497)
Me.LblDesc.Name = "LblDesc"
Me.LblDesc.Size = New System.Drawing.Size(438, 61)
Me.LblDesc.TabIndex = 6
'
'GrdStationPlan
'
Me.GrdStationPlan.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.GrdStationPlan.BorderStyle = FlexCell.BorderStyleEnum.None
Me.GrdStationPlan.CheckedImage = Nothing
Me.GrdStationPlan.ContextMenuStrip = Me.CmsPlanGrid
Me.GrdStationPlan.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
Me.GrdStationPlan.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.GrdStationPlan.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer))
Me.GrdStationPlan.Location = New System.Drawing.Point(0, 24)
Me.GrdStationPlan.Name = "GrdStationPlan"
Me.GrdStationPlan.Size = New System.Drawing.Size(441, 470)
Me.GrdStationPlan.TabIndex = 4
Me.GrdStationPlan.UncheckedImage = Nothing
'
'Grid1
'
Me.Grid1.BorderStyle = FlexCell.BorderStyleEnum.None
Me.Grid1.CheckedImage = Nothing
Me.Grid1.ContextMenuStrip = Me.CmsPlanGrid
Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
Me.Grid1.Dock = System.Windows.Forms.DockStyle.Top
Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer))
Me.Grid1.Location = New System.Drawing.Point(0, 36)
Me.Grid1.Name = "Grid1"
Me.Grid1.Size = New System.Drawing.Size(984, 424)
Me.Grid1.TabIndex = 10
Me.Grid1.UncheckedImage = Nothing
'
'ZQ_Mars_T2_FrmStationPlan
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(984, 561)
Me.Controls.Add(Me.Grid1)
Me.Controls.Add(Me.ToolStrip1)
Me.Controls.Add(Me.StuMain)
Me.Controls.Add(Me.SplitContainer1)
Me.Name = "ZQ_Mars_T2_FrmStationPlan"
Me.Text = "ZQ_Mars_P2_FrmStationPlan"
Me.ToolStrip1.ResumeLayout(false)
Me.ToolStrip1.PerformLayout
Me.CmsPlanGrid.ResumeLayout(false)
Me.SplitContainer1.Panel1.ResumeLayout(false)
Me.SplitContainer1.Panel2.ResumeLayout(false)
CType(Me.SplitContainer1,System.ComponentModel.ISupportInitialize).EndInit
Me.SplitContainer1.ResumeLayout(false)
Me.GroupBox2.ResumeLayout(false)
Me.ResumeLayout(false)
Me.PerformLayout
End Sub
Friend WithEvents MsiCopyNode As ToolStripMenuItem
Friend WithEvents MsiNodePaste As ToolStripMenuItem
Friend WithEvents ToolStripSeparator5 As ToolStripSeparator
Friend WithEvents MsiUndo As ToolStripMenuItem
Friend WithEvents MsiRedo As ToolStripMenuItem
Friend WithEvents ToolStripSeparator6 As ToolStripSeparator
Friend WithEvents MsiSaveNodeFile As ToolStripMenuItem
Friend WithEvents MsiLoadNodeFile As ToolStripMenuItem
Friend WithEvents TsmiDebugStart As ToolStripMenuItem
Friend WithEvents GroupBox1 As GroupBox
Friend WithEvents TsBtnOpen As ToolStripButton
Friend WithEvents TsBtnSave As ToolStripButton
Friend WithEvents ToolStripSeparator4 As ToolStripSeparator
Friend WithEvents TsBtnLoad As ToolStripButton
Friend WithEvents TsBtnSaveAs As ToolStripButton
Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
Friend WithEvents MsiCutNode As ToolStripMenuItem
Friend WithEvents ToolStrip1 As ToolStrip
Friend WithEvents CmsPlanGrid As ContextMenuStrip
Friend WithEvents ToolStripSeparator7 As ToolStripSeparator
Friend WithEvents TsmiDebugEnd As ToolStripMenuItem
Friend WithEvents TsmiDebugStep As ToolStripMenuItem
Friend WithEvents TsmiDebugContinue As ToolStripMenuItem
Friend WithEvents ToolStripSeparator8 As ToolStripSeparator
Friend WithEvents TsmiDebugSetup As ToolStripMenuItem
Friend WithEvents TsmiDebugMain As ToolStripMenuItem
Friend WithEvents TsmiDebugPass As ToolStripMenuItem
Friend WithEvents TsmiDebugFail As ToolStripMenuItem
Friend WithEvents TsmiDebugCleanup As ToolStripMenuItem
Friend WithEvents ToolStripSeparator9 As ToolStripSeparator
Friend WithEvents TsmiDebugNode As ToolStripMenuItem
Friend WithEvents TsmiDebugNodeBegin As ToolStripMenuItem
Friend WithEvents StuMain As StatusStrip
Friend WithEvents DlgOpenFile As OpenFileDialog
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents GroupBox2 As GroupBox
Friend WithEvents LblDesc As Label
Friend WithEvents GrdStationPlan As FlexCell.Grid
Friend WithEvents Grid1 As FlexCell.Grid
End Class

View File

@@ -0,0 +1,185 @@
<?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="TsBtnOpen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHqSURBVGhD7Zm9Tt1AEEYvNDxCArwSXZDSpAwiFQ+HEA2Q
dPmpeAl4AaALEnxTXDSate/xeHcvkeIjnerzN97F9rWEVwsLC6PsyFP5Rz7Jl07ey0+yKQfyuxw6YQ//
ys+yCbvyhxw6UU+f5RdZzTc5dIJt2ORK2D3vh17ID3KNz8wabLG2aD+vehOP0g/8KD0+M2tpvgk/yIxQ
PodjGTcx+5nwQ8wI5XNptgk/wIxQXkOTTfiyGaG8lupN+KIZiflc7Q18JIcYe7AnvbF9yYzEvMY7OcbQ
JjYd/4YvmBEbEo+ZKy3INhE7CBXsstvlj8dl3XQLeWIPSRc6k15PutCZ9HrShc6k15MudCa9nnShM+n1
pAudSa+HCq1+RqNjP6vxOIQKLV9k0aEXWzwGoULMWxuhvIAKMW9thPICKlCeheZRXkAFyrPQPMoLqEB5
FppHeQEVKM9C8ygvoALlWWge5QVUoDwLzaO8gAqUZ6F5lBdQgfIsNI/yAipQnoXmUV5ABcqz0DzKCx6k
L/j/TBs+M2vZNM8+tPjM1ob8lr50LvflGp+ZtYzNs3NeSp/9ksiZ9KV/ya8S2ZO3cmjAe3ol7cPjJA7l
jRwa9B5eS38bT8J2eyJ/yvjVZhvaA2vntttm8l9+YeH/YrV6BfNWMy9RUhK1AAAAAElFTkSuQmCC
</value>
</data>
<data name="TsBtnLoad.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSaveAs.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADQSURBVEhL5ZYxDgFBGEbnCE4gjuAcCnEER3AER9BpVWqV
QqcTlSOIUkVFx/fWSMYsyfx/FCu+5CX7ZWfmTbKT3Q1J+mLnYCmKMhQ3sRKLQg5iL4ryFHSqVpaZ+H3B
UQwy2qIWr4A5OaxVi0fATrsJPfFVQR7m/pGA42eBmARc8yrgpMxj38aewhjuEbNg/LgMLUEfVe01jGmu
4CpO4hz7JfYUxrgFGzER09jXsacwxi34/WdggZgE7MwCMQk8aYbA8tHPYe5Hgfe35R2spYRwB61XwcSY
NxMjAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>230, 55</value>
</metadata>
<metadata name="CmsPlanGrid.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>342, 55</value>
</metadata>
<metadata name="StuMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>469, 55</value>
</metadata>
<metadata name="DlgOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>570, 55</value>
</metadata>
</root>

View File

@@ -0,0 +1,492 @@
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Imports UTS_Core.UTSModule.Station.StationPackagePlan
Imports UTS_Core.UTSModule.Test.StatusMonitor
Public Class ZQ_Mars_T2_FrmStationPlan
' Implements IProcessFileChanged
Implements IProcessStation
Implements IProductionLine
Private _utsApp As UtsAppForm
Private _stationPlan As StationPackagePlan
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
Public Sub utsbctfilechanged
'For Each observer As IProcessStation In _observerList
' observer.StationChanged()
' Next
End Sub
''' <summary>
''' 站位变更代码
''' </summary>
Public Sub Station_Changed() Implements IProcessStation.StationChanged
ApplicationLog.WriteInfoLog($"编辑页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
Try
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
Catch ex As Exception
MsgBox($"加载项目流程失败,{ex.Message}")
End Try
InitGrid(_stationPlan)
ApplicationLog.WriteInfoLog($"编辑页面站位变更完成。")
End Sub
''' <summary>
''' 产线变化代码
''' </summary>
Public Sub ProductionLineChanged() Implements IProductionLine.ProductionLineChanged
ApplicationLog.WriteInfoLog($"编辑页面生产线变更中。")
ApplicationLog.WriteInfoLog($"编辑页面生产线变更完成。")
End Sub
Private Sub FrmStationPlan_Load(sender As Object, e As EventArgs) Handles Me.Load
ApplicationLog.WriteInfoLog($"编辑页面加载中。")
'初始化UTS窗体信息,失败则关闭窗体
If InitializeUtsApp() = False Then Return
'初始化窗体页面
InitializeForm()
ApplicationLog.WriteInfoLog($"编辑页面加载完成。")
End Sub
Private Function InitializeUtsApp() As Boolean
_utsApp = UtsAppForm.CreateSingleton()
_utsApp.AddStatisticsObserver(Me)
Try
If _utsApp.IsInitialized = False Then
_utsApp.Initialize(ProcessStation.StationTypeEnum.Package) 'Todo:可根据需要限定可选站位
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"初始化窗体失败,原因:{ex.Message}!")
MsgBox($"初始化窗体失败,原因:{ex.Message}")
Close()
Return False
End Try
Return True
End Function
Private Sub InitializeForm()
InitGrid(_stationPlan)
End Sub
Private Sub TsBtnOpen_Click(sender As Object, e As EventArgs) Handles TsBtnOpen.Click
Using xml As New OpenFileDialog
xml.Filter = $"流程文件(*.xml)|*.xml"
If xml.ShowDialog() = DialogResult.OK Then
ApplicationLog.WriteInfoLog($"编辑页面执行流程正在加载{xml.FileName}")
LoadTreeViewFormXml(xml.FileName)
ApplicationLog.WriteInfoLog($"编辑页面执行流程加载完成。")
End If
End Using
End Sub
Private Sub TsBtnLoad_Click(sender As Object, e As EventArgs) Handles TsBtnLoad.Click
If MsgBox("重载会将流程返回为上一次保存的流程状态,是否继续", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
ApplicationLog.WriteInfoLog($"编辑页面执行流程重载中。")
LoadTreeViewFormXml()
ApplicationLog.WriteInfoLog($"编辑页面执行流程重载完成。")
End If
End Sub
Private Sub TsBtnSave_Click(sender As Object, e As EventArgs) Handles TsBtnSave.Click
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存中。")
UpdateGrid(_stationPlan)
ExportTreeViewToXml()
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存完成。")
End Sub
''' <summary>
''' 读取XML,加载树状视图
''' </summary>
Private Sub LoadTreeViewFormXml()
Dim revStationPlanPath As String = $"{UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)}\Main.xml"
Try
_stationPlan.LoadFile(revStationPlanPath)
InitGrid(_stationPlan)
If StationEditStatusMonitor.StationEditStatus <> StationEditStatusMonitor.StationEditStatusEnum.Saved Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"加载测试站流程发生错误,原因:{ex.Message}")
MsgBox($"加载测试站流程发生错误,原因:{ex.Message}")
_stationPlan.CreateStationPlan()
End Try
End Sub
''' <summary>
''' 读取XML,加载树状视图
''' </summary>
Private Sub LoadTreeViewFormXml(revStationPlanPath As String)
Try
_stationPlan.LoadFile(revStationPlanPath)
InitGrid(_stationPlan)
If StationEditStatusMonitor.StationEditStatus <> StationEditStatusMonitor.StationEditStatusEnum.Saved Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"加载测试站流程发生错误,原因:{ex.Message}")
MsgBox($"加载测试站流程发生错误,原因:{ex.Message}")
_stationPlan.CreateStationPlan()
End Try
End Sub
''' <summary>
''' 将树状视图导出为Xml
''' </summary>
Private Sub ExportTreeViewToXml()
'保存至项目文件
Dim revStationPlanPath As String = $"{UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)}\Main.xml"
_stationPlan.SaveFile(revStationPlanPath)
'备份至临时文件
Dim tempPath As String = $"{UtsPath.StationDesignDirPath()}\Main.xml"
_stationPlan.SaveFile(tempPath)
If StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
End Sub
Private Sub TsBtnSaveAs_Click(sender As Object, e As EventArgs) Handles TsBtnSaveAs.Click
Using dlg As New SaveFileDialog
dlg.Filter = "Excel 文件(*.xls)|*.xls|CSV 文件(*.csv)|*.csv|PDF 文件(*.pdf)|*.pdf"
dlg.AddExtension = True
If dlg.ShowDialog <> DialogResult.OK Then Return
Cursor = Cursors.WaitCursor
ApplicationLog.WriteInfoLog($"编辑页面执行流程导出中。")
Try
Select Case dlg.FilterIndex
Case 1
GrdStationPlan.ExportToExcel(dlg.FileName, True, True)
Case 2
GrdStationPlan.ExportToCSV(dlg.FileName, True, True)
Case 3
GrdStationPlan.ExportToPDF(dlg.FileName)
End Select
ApplicationLog.WriteInfoLog($"编辑页面执行流程导出完成。")
Catch ex As Exception
ApplicationLog.WriteErrorLog($"编辑页面执行流程导出失败,原因:{ex.Message}")
MsgBox($"编辑页面执行流程导出失败,原因:{ex.Message}")
End Try
Cursor = Cursors.Arrow
End Using
End Sub
#Region "Package表格"
Private Sub InitGrid(Optional stationplan As StationPackagePlan = Nothing)
With GrdStationPlan
.AutoRedraw = False
.NewFile()
.BorderStyle = FlexCell.BorderStyleEnum.None
.Cols = ColNames.Max
.Rows = RowItems.Max
.ExtendLastCol = True
.DisplayRowNumber = True
.Cell(0, ColNames.Item).Text = "Item"
.Cell(0, ColNames.Value).Text = "Value"
.Column(ColNames.Item).Width = 200
.Column(ColNames.Item).Locked = True
.DefaultRowHeight = 20
.DefaultFont = New Font("微软雅黑", 10)
For i As Integer = 1 To RowItems.Max - 1
.Cell(i, ColNames.Item).Text = [Enum].GetName(GetType(RowItems), i)
Next
'.Cell(RowItems.CheckSnTested, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.CheckSnPackaged, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.CheckSnMO, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.MissingQuantity, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.BarCodeType, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
.Cell(RowItems.AutoPrint, ColNames.Value).CellType = FlexCell.CellTypeEnum.CheckBox
.Cell(RowItems.BoxMumEditKey, ColNames.Item).Text = "uperLimit"
.Cell(RowItems.CompanyName, ColNames.Item).Text = "LowerLimit
"
'.Cell(RowItems.ErrorSound, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
'.Cell(RowItems.TemplateFile, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
'.Cell(RowItems.CompanyLogo, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
FillGrid(stationplan)
.AutoRedraw = True
.Refresh()
End With
End Sub
Private Sub FillGrid(stationplan As StationPackagePlan)
If stationplan Is Nothing Then Return
With GrdStationPlan
'.Cell(RowItems.CheckSnTested, ColNames.Value).Text = stationplan.CheckSnTested.ToString
'.Cell(RowItems.CheckSnPackaged, ColNames.Value).Text = stationplan.CheckSnPackaged.ToString
'.Cell(RowItems.CheckSnMO, ColNames.Value).Text = stationplan.CheckSnMO.ToString
'.Cell(RowItems.PictureCount, ColNames.Value).Text = stationplan.PictureCount.ToString
'.Cell(RowItems.UnlockKey, ColNames.Value).Text = stationplan.UnlockKey
'.Cell(RowItems.BarCodeType, ColNames.Value).Text = stationplan.BarCodeType.ToString
'.Cell(RowItems.MissingQuantity, ColNames.Value).Text = stationplan.MissingQuantity.ToString
'.Cell(RowItems.MissingQuantityKey, ColNames.Value).Text = stationplan.MissingQuantityKey
.Cell(RowItems.AutoPrint, ColNames.Value).Text = stationplan.AutoPrint.ToString
'.Cell(RowItems.ErrorSound, ColNames.Value).Text = stationplan.ErrorSound
'.Cell(RowItems.TemplateFile, ColNames.Value).Text = stationplan.TemplateFile
.Cell(RowItems.BoxMumEditKey, ColNames.Value).Text = stationplan.BoxMumEditKey
'.Cell(RowItems.CompanyLogo, ColNames.Value).Text = stationplan.CompanyLogo
.Cell(RowItems.CompanyName, ColNames.Value).Text = stationplan.CompanyName
'.Cell(RowItems.BoxNumText, ColNames.Value).Text = stationplan.BoxNumText
'.Cell(RowItems.BoxBarCode, ColNames.Value).Text = stationplan.BoxBarCode
End With
If StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
End Sub
Private Sub UpdateGrid(stationplan As StationPackagePlan)
If _stationPlan Is Nothing Then Return
With GrdStationPlan
'If [Enum].TryParse(.Cell(RowItems.CheckSnTested, ColNames.Value).Text, stationplan.CheckSnTested) = False Then
' MsgBox("更新CheckSnTested失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.CheckSnPackaged, ColNames.Value).Text, stationplan.CheckSnPackaged) = False Then
' MsgBox("更新CheckSnPackaged失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.CheckSnMO, ColNames.Value).Text, stationplan.CheckSnMO) = False Then
' MsgBox("更新CheckSnMO失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.BarCodeType, ColNames.Value).Text, stationplan.BarCodeType) = False Then
' MsgBox("更新BarCodeType失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.MissingQuantity, ColNames.Value).Text, stationplan.MissingQuantity) = False Then
' MsgBox("更新MissingQuantity失败!")
' Return
'End If
'stationplan.PictureCount = .Cell(RowItems.PictureCount, ColNames.Value).IntegerValue
'stationplan.UnlockKey = .Cell(RowItems.UnlockKey, ColNames.Value).Text
'stationplan.MissingQuantityKey = .Cell(RowItems.MissingQuantityKey, ColNames.Value).Text
stationplan.AutoPrint = .Cell(RowItems.AutoPrint, ColNames.Value).BooleanValue
'stationplan.ErrorSound = .Cell(RowItems.ErrorSound, ColNames.Value).Text
'stationplan.TemplateFile = .Cell(RowItems.TemplateFile, ColNames.Value).Text
stationplan.BoxMumEditKey = .Cell(RowItems.BoxMumEditKey, ColNames.Value).Text
'stationplan.CompanyLogo = .Cell(RowItems.CompanyLogo, ColNames.Value).Text
stationplan.CompanyName = .Cell(RowItems.CompanyName, ColNames.Value).Text
'stationplan.BoxNumText = .Cell(RowItems.BoxNumText, ColNames.Value).Text
'stationplan.BoxBarCode = .Cell(RowItems.BoxBarCode, ColNames.Value).Text
End With
End Sub
Private Sub GrdStationPlan_ButtonClick(Sender As Object, e As FlexCell.Grid.ButtonClickEventArgs) Handles GrdStationPlan.ButtonClick
Select Case e.Row
'Case RowItems.ErrorSound
' DlgOpenFile.Filter = "图像资源 (*.jpg;*.png;*.gif;*.ico)|*.jpg;*.png;*.gif;*.ico"
'Case RowItems.TemplateFile
' DlgOpenFile.Filter = "模板资源 (*.btw)|*.btw"
'Case RowItems.CompanyLogo
' DlgOpenFile.Filter = "图像资源 (*.jpg;*.png;*.gif;*.ico)|*.jpg;*.png;*.gif;*.ico"
End Select
DlgOpenFile.CheckFileExists = True
DlgOpenFile.CheckPathExists = True
If DlgOpenFile.ShowDialog() <> DialogResult.OK Then Return
Dim fileName As String = $"{DlgOpenFile.SafeFileName}"
Dim fileDir As String = UtsPath.GetStationPacketResourceDirPath(_stationPlan.ParentPacket.Name)
Dim fliePath As String = $"{fileDir}\{fileName}"
GrdStationPlan.Cell(e.Row, ColNames.Value).Text = fileName
'导入文件
Try
IO.File.Copy(DlgOpenFile.FileName, fliePath, True)
Catch ex As Exception
MsgBox($"导入资源文件失败,{ex.Message}")
End Try
End Sub
Private Sub GrdStationPlan_ComboDropDown(Sender As Object, e As FlexCell.Grid.ComboDropDownEventArgs) Handles GrdStationPlan.ComboDropDown
GrdStationPlan.ComboBox(0).Items.Clear()
Select Case e.Row
'Case RowItems.CheckSnTested
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.CheckSnPackaged
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.CheckSnMO
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.MissingQuantity
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(MissCountStatus)))
'Case RowItems.BarCodeType
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(BarcodeTypes)))
End Select
End Sub
Private Sub GrdStationPlan_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles GrdStationPlan.CellChange
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed
End Sub
Enum ColNames
SN
Item
Value
Max
End Enum
Enum RowItems
''' <summary>固定行</summary>
<System.ComponentModel.Description("固定行")>
SN
'''' <summary>校验条码未测试后处理方式</summary>
'<System.ComponentModel.Description("校验条码未测试后处理方式")>
'CheckSnTested
'''' <summary>校验条码已参与包装后处理方式</summary>
'<System.ComponentModel.Description("校验条码已参与包装后处理方式")>
'CheckSnPackaged
'''' <summary>校验条码不属于指定MO后处理方式</summary>
'<System.ComponentModel.Description("校验条码不属于指定MO后处理方式")>
'CheckSnMO
'''' <summary>拍摄保存图像的数量</summary>
'<System.ComponentModel.Description("拍摄保存图像的数量")>
'PictureCount
'''' <summary>解锁密码</summary>
'<System.ComponentModel.Description("解锁密码")>
'UnlockKey
'''' <summary>条码类型</summary>
'<System.ComponentModel.Description("条码类型")>
'BarCodeType
'''' <summary>缺失条码数量后的处理方式</summary>
'<System.ComponentModel.Description("缺失条码数量后的处理方式")>
'MissingQuantity
'''' <summary>缺失条码数量后的解锁密码</summary>
'<System.ComponentModel.Description("缺失条码数量后的解锁密码")>
'MissingQuantityKey
''' <summary>是否自动打印</summary>
<System.ComponentModel.Description("是否自动记录")>
AutoPrint
'''' <summary>发生错误后报警文件</summary>
'<System.ComponentModel.Description("发生错误后报警文件")>
'ErrorSound
'''' <summary>模板文件名</summary>
'<System.ComponentModel.Description("模板文件名")>
'TemplateFile
''' <summary>箱号编辑密码</summary>
<System.ComponentModel.Description("箱号编辑密码")>
BoxMumEditKey
'''' <summary>公司Logo文件</summary>
'<System.ComponentModel.Description("公司Logo文件")>
'CompanyLogo
''' <summary>公司名称</summary>
<System.ComponentModel.Description("公司名称")>
CompanyName
'''' <summary>箱号规则</summary>
'<System.ComponentModel.Description("箱号规则")>
'BoxNumText
'''' <summary>箱号条码</summary>
'<System.ComponentModel.Description("箱号条码")>
'BoxBarCode
Max
End Enum
Private Sub GrdStationPlan_SelChange(Sender As Object, e As FlexCell.Grid.SelChangeEventArgs) Handles GrdStationPlan.SelChange
If e.FirstRow <= RowItems.SN OrElse e.FirstRow > GrdStationPlan.Rows - 1 Then Return
Dim row As Integer = e.FirstRow
Dim a As RowItems
If [Enum].TryParse(row.ToString, a) Then
LblDesc.Text = $"Row:{row}{vbCrLf}Desc:{GetEnumDescription(a)}"
Else
LblDesc.Text = $"Row:{row}{vbCrLf}Desc:无说明"
End If
End Sub
Public Function GetEnumDescription(enumValue As RowItems) As String
Dim str As String = enumValue.ToString()
Dim field As System.Reflection.FieldInfo = enumValue.GetType().GetField(str)
Dim objs() As Object = field.GetCustomAttributes(GetType(System.ComponentModel.DescriptionAttribute), False)
If objs Is Nothing OrElse objs.Length = 0 Then Return str
Dim da As System.ComponentModel.DescriptionAttribute = CType(objs(0), ComponentModel.DescriptionAttribute)
Return da.Description
End Function
#End Region
End Class

View File

@@ -0,0 +1,438 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Mars_T2_FrmStationTest
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.SerialPort1 = New System.IO.Ports.SerialPort(Me.components)
Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
Me.timer_Rcvd_Timeout = New System.Windows.Forms.Timer(Me.components)
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
Me.tss_CommPort = New System.Windows.Forms.ToolStripStatusLabel()
Me.timer_AutoFindCommPort = New System.Windows.Forms.Timer(Me.components)
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer2 = New System.Windows.Forms.SplitContainer()
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
Me.SplitContainer3 = New System.Windows.Forms.SplitContainer()
Me.txt_BosCode = New System.Windows.Forms.TextBox()
Me.Label9 = New System.Windows.Forms.Label()
Me.OpenUart_btn = New System.Windows.Forms.Button()
Me.UartPort_cob = New System.Windows.Forms.ComboBox()
Me.Label6 = New System.Windows.Forms.Label()
Me.devbox = New System.Windows.Forms.TextBox()
Me.Label3 = New System.Windows.Forms.Label()
Me.colorbox = New System.Windows.Forms.TextBox()
Me.Label2 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.TextBox1 = New System.Windows.Forms.TextBox()
Me.txt_testnum = New System.Windows.Forms.TextBox()
Me.txt_LooadNum = New System.Windows.Forms.TextBox()
Me.Label5 = New System.Windows.Forms.Label()
Me.txt_UpNum = New System.Windows.Forms.TextBox()
Me.Label4 = New System.Windows.Forms.Label()
Me.lab_Processed_Unit_Cnt_ThisCycle = New System.Windows.Forms.Label()
Me.lab_Processed_Unit_Cnt = New System.Windows.Forms.Label()
Me.lab_imger = New System.Windows.Forms.Label()
Me.StatusStrip1.SuspendLayout()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer2.Panel1.SuspendLayout()
Me.SplitContainer2.Panel2.SuspendLayout()
Me.SplitContainer2.SuspendLayout()
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer3.Panel1.SuspendLayout()
Me.SplitContainer3.Panel2.SuspendLayout()
Me.SplitContainer3.SuspendLayout()
Me.SuspendLayout()
'
'SerialPort1
'
'
'Timer1
'
Me.Timer1.Enabled = True
'
'timer_Rcvd_Timeout
'
Me.timer_Rcvd_Timeout.Enabled = True
Me.timer_Rcvd_Timeout.Interval = 1
'
'StatusStrip1
'
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tss_CommPort})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 549)
Me.StatusStrip1.Name = "StatusStrip1"
Me.StatusStrip1.Size = New System.Drawing.Size(985, 22)
Me.StatusStrip1.TabIndex = 0
Me.StatusStrip1.Text = "StatusStrip1"
'
'tss_CommPort
'
Me.tss_CommPort.AutoSize = False
Me.tss_CommPort.Font = New System.Drawing.Font("微软雅黑", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.tss_CommPort.Name = "tss_CommPort"
Me.tss_CommPort.Size = New System.Drawing.Size(80, 17)
Me.tss_CommPort.Text = "COM1"
'
'timer_AutoFindCommPort
'
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.SplitContainer3)
Me.SplitContainer1.Size = New System.Drawing.Size(985, 549)
Me.SplitContainer1.SplitterDistance = 325
Me.SplitContainer1.TabIndex = 1
'
'SplitContainer2
'
Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer2.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer2.Name = "SplitContainer2"
Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer2.Panel1
'
Me.SplitContainer2.Panel1.Controls.Add(Me.lab_Processed_Unit_Cnt_ThisCycle)
Me.SplitContainer2.Panel1.Controls.Add(Me.lab_Processed_Unit_Cnt)
Me.SplitContainer2.Panel1.Controls.Add(Me.lab_imger)
'
'SplitContainer2.Panel2
'
Me.SplitContainer2.Panel2.Controls.Add(Me.RichTextBox1)
Me.SplitContainer2.Size = New System.Drawing.Size(325, 549)
Me.SplitContainer2.SplitterDistance = 228
Me.SplitContainer2.TabIndex = 0
'
'RichTextBox1
'
Me.RichTextBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.RichTextBox1.Location = New System.Drawing.Point(0, 0)
Me.RichTextBox1.Name = "RichTextBox1"
Me.RichTextBox1.Size = New System.Drawing.Size(325, 317)
Me.RichTextBox1.TabIndex = 2
Me.RichTextBox1.Text = ""
'
'SplitContainer3
'
Me.SplitContainer3.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer3.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer3.Name = "SplitContainer3"
Me.SplitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer3.Panel1
'
Me.SplitContainer3.Panel1.Controls.Add(Me.txt_BosCode)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label9)
Me.SplitContainer3.Panel1.Controls.Add(Me.OpenUart_btn)
Me.SplitContainer3.Panel1.Controls.Add(Me.UartPort_cob)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label6)
Me.SplitContainer3.Panel1.Controls.Add(Me.devbox)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label3)
Me.SplitContainer3.Panel1.Controls.Add(Me.colorbox)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label2)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label1)
Me.SplitContainer3.Panel1.Controls.Add(Me.TextBox1)
'
'SplitContainer3.Panel2
'
Me.SplitContainer3.Panel2.Controls.Add(Me.txt_testnum)
Me.SplitContainer3.Panel2.Controls.Add(Me.txt_LooadNum)
Me.SplitContainer3.Panel2.Controls.Add(Me.Label5)
Me.SplitContainer3.Panel2.Controls.Add(Me.txt_UpNum)
Me.SplitContainer3.Panel2.Controls.Add(Me.Label4)
Me.SplitContainer3.Size = New System.Drawing.Size(656, 549)
Me.SplitContainer3.SplitterDistance = 346
Me.SplitContainer3.TabIndex = 0
'
'txt_BosCode
'
Me.txt_BosCode.Font = New System.Drawing.Font("宋体", 28.0!)
Me.txt_BosCode.Location = New System.Drawing.Point(192, 59)
Me.txt_BosCode.Name = "txt_BosCode"
Me.txt_BosCode.Size = New System.Drawing.Size(450, 50)
Me.txt_BosCode.TabIndex = 46
Me.txt_BosCode.Text = "CTHM08711382252604947"
'
'Label9
'
Me.Label9.AutoSize = True
Me.Label9.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label9.Location = New System.Drawing.Point(11, 71)
Me.Label9.Name = "Label9"
Me.Label9.Size = New System.Drawing.Size(188, 27)
Me.Label9.TabIndex = 45
Me.Label9.Text = "请输入箱体码:"
Me.Label9.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'OpenUart_btn
'
Me.OpenUart_btn.Location = New System.Drawing.Point(16, 3)
Me.OpenUart_btn.Name = "OpenUart_btn"
Me.OpenUart_btn.Size = New System.Drawing.Size(156, 47)
Me.OpenUart_btn.TabIndex = 43
Me.OpenUart_btn.Text = "打开串口"
Me.OpenUart_btn.UseVisualStyleBackColor = True
'
'UartPort_cob
'
Me.UartPort_cob.AllowDrop = True
Me.UartPort_cob.Font = New System.Drawing.Font("宋体", 25.0!)
Me.UartPort_cob.FormattingEnabled = True
Me.UartPort_cob.Location = New System.Drawing.Point(192, 3)
Me.UartPort_cob.Name = "UartPort_cob"
Me.UartPort_cob.Size = New System.Drawing.Size(450, 41)
Me.UartPort_cob.TabIndex = 44
'
'Label6
'
Me.Label6.AutoSize = True
Me.Label6.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label6.Location = New System.Drawing.Point(11, 297)
Me.Label6.Name = "Label6"
Me.Label6.Size = New System.Drawing.Size(161, 27)
Me.Label6.TabIndex = 42
Me.Label6.Text = "请确认称重:"
Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'devbox
'
Me.devbox.Font = New System.Drawing.Font("宋体", 28.0!)
Me.devbox.Location = New System.Drawing.Point(192, 220)
Me.devbox.Name = "devbox"
Me.devbox.ReadOnly = True
Me.devbox.Size = New System.Drawing.Size(450, 50)
Me.devbox.TabIndex = 36
Me.devbox.Text = "CTHM08711382252604947"
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label3.Location = New System.Drawing.Point(5, 232)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(191, 27)
Me.Label3.TabIndex = 35
Me.Label3.Text = "请确认DUT_SN:"
Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'colorbox
'
Me.colorbox.Font = New System.Drawing.Font("宋体", 28.0!)
Me.colorbox.Location = New System.Drawing.Point(192, 143)
Me.colorbox.Name = "colorbox"
Me.colorbox.Size = New System.Drawing.Size(450, 50)
Me.colorbox.TabIndex = 34
Me.colorbox.Text = "CTHM08711382252604947"
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label2.Location = New System.Drawing.Point(11, 155)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(188, 27)
Me.Label2.TabIndex = 33
Me.Label2.Text = "请输入彩盒码:"
Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(14, 32)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(83, 12)
Me.Label1.TabIndex = 32
Me.Label1.Text = "打印模板路径:"
Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight
Me.Label1.Visible = False
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(98, 29)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.ReadOnly = True
Me.TextBox1.Size = New System.Drawing.Size(547, 21)
Me.TextBox1.TabIndex = 31
Me.TextBox1.Visible = False
'
'txt_testnum
'
Me.txt_testnum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_testnum.Font = New System.Drawing.Font("宋体", 27.0!)
Me.txt_testnum.Location = New System.Drawing.Point(244, 12)
Me.txt_testnum.Name = "txt_testnum"
Me.txt_testnum.ReadOnly = True
Me.txt_testnum.Size = New System.Drawing.Size(183, 49)
Me.txt_testnum.TabIndex = 40
Me.txt_testnum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'txt_LooadNum
'
Me.txt_LooadNum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_LooadNum.Font = New System.Drawing.Font("宋体", 27.0!)
Me.txt_LooadNum.Location = New System.Drawing.Point(13, 12)
Me.txt_LooadNum.Name = "txt_LooadNum"
Me.txt_LooadNum.ReadOnly = True
Me.txt_LooadNum.Size = New System.Drawing.Size(183, 49)
Me.txt_LooadNum.TabIndex = 37
Me.txt_LooadNum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Label5
'
Me.Label5.AutoSize = True
Me.Label5.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label5.Location = New System.Drawing.Point(202, 18)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(36, 37)
Me.Label5.TabIndex = 38
Me.Label5.Text = "<"
'
'txt_UpNum
'
Me.txt_UpNum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_UpNum.Font = New System.Drawing.Font("宋体", 27.0!)
Me.txt_UpNum.Location = New System.Drawing.Point(466, 12)
Me.txt_UpNum.Name = "txt_UpNum"
Me.txt_UpNum.ReadOnly = True
Me.txt_UpNum.Size = New System.Drawing.Size(176, 49)
Me.txt_UpNum.TabIndex = 41
Me.txt_UpNum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Label4
'
Me.Label4.AutoSize = True
Me.Label4.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label4.Location = New System.Drawing.Point(433, 18)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(36, 37)
Me.Label4.TabIndex = 39
Me.Label4.Text = ">"
'
'lab_Processed_Unit_Cnt_ThisCycle
'
Me.lab_Processed_Unit_Cnt_ThisCycle.BackColor = System.Drawing.SystemColors.ActiveCaptionText
Me.lab_Processed_Unit_Cnt_ThisCycle.Dock = System.Windows.Forms.DockStyle.Right
Me.lab_Processed_Unit_Cnt_ThisCycle.Font = New System.Drawing.Font("Calibri", 20.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lab_Processed_Unit_Cnt_ThisCycle.ForeColor = System.Drawing.Color.White
Me.lab_Processed_Unit_Cnt_ThisCycle.Location = New System.Drawing.Point(161, 173)
Me.lab_Processed_Unit_Cnt_ThisCycle.Name = "lab_Processed_Unit_Cnt_ThisCycle"
Me.lab_Processed_Unit_Cnt_ThisCycle.Size = New System.Drawing.Size(164, 55)
Me.lab_Processed_Unit_Cnt_ThisCycle.TabIndex = 35
Me.lab_Processed_Unit_Cnt_ThisCycle.Text = "0"
Me.lab_Processed_Unit_Cnt_ThisCycle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'lab_Processed_Unit_Cnt
'
Me.lab_Processed_Unit_Cnt.BackColor = System.Drawing.SystemColors.ActiveCaptionText
Me.lab_Processed_Unit_Cnt.Dock = System.Windows.Forms.DockStyle.Left
Me.lab_Processed_Unit_Cnt.Font = New System.Drawing.Font("Calibri", 20.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lab_Processed_Unit_Cnt.ForeColor = System.Drawing.Color.White
Me.lab_Processed_Unit_Cnt.Location = New System.Drawing.Point(0, 173)
Me.lab_Processed_Unit_Cnt.Name = "lab_Processed_Unit_Cnt"
Me.lab_Processed_Unit_Cnt.Size = New System.Drawing.Size(163, 55)
Me.lab_Processed_Unit_Cnt.TabIndex = 34
Me.lab_Processed_Unit_Cnt.Tag = "本次生产总统计数量连击5次清零"
Me.lab_Processed_Unit_Cnt.Text = "0"
Me.lab_Processed_Unit_Cnt.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'lab_imger
'
Me.lab_imger.Dock = System.Windows.Forms.DockStyle.Top
Me.lab_imger.Location = New System.Drawing.Point(0, 0)
Me.lab_imger.Name = "lab_imger"
Me.lab_imger.Size = New System.Drawing.Size(325, 173)
Me.lab_imger.TabIndex = 33
'
'ZQ_Mars_T2_FrmStationTest
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(985, 571)
Me.Controls.Add(Me.SplitContainer1)
Me.Controls.Add(Me.StatusStrip1)
Me.Name = "ZQ_Mars_T2_FrmStationTest"
Me.Text = "ZQ_Mars_P2_FrmStationTest"
Me.StatusStrip1.ResumeLayout(False)
Me.StatusStrip1.PerformLayout()
Me.SplitContainer1.Panel1.ResumeLayout(False)
Me.SplitContainer1.Panel2.ResumeLayout(False)
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer1.ResumeLayout(False)
Me.SplitContainer2.Panel1.ResumeLayout(False)
Me.SplitContainer2.Panel2.ResumeLayout(False)
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer2.ResumeLayout(False)
Me.SplitContainer3.Panel1.ResumeLayout(False)
Me.SplitContainer3.Panel1.PerformLayout()
Me.SplitContainer3.Panel2.ResumeLayout(False)
Me.SplitContainer3.Panel2.PerformLayout()
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer3.ResumeLayout(False)
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents SerialPort1 As IO.Ports.SerialPort
Friend WithEvents Timer1 As Timer
Friend WithEvents timer_Rcvd_Timeout As Timer
Friend WithEvents StatusStrip1 As StatusStrip
Friend WithEvents tss_CommPort As ToolStripStatusLabel
Friend WithEvents timer_AutoFindCommPort As Timer
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents SplitContainer2 As SplitContainer
Friend WithEvents RichTextBox1 As RichTextBox
Friend WithEvents SplitContainer3 As SplitContainer
Friend WithEvents OpenUart_btn As Button
Friend WithEvents UartPort_cob As ComboBox
Friend WithEvents Label6 As Label
Friend WithEvents devbox As TextBox
Friend WithEvents Label3 As Label
Friend WithEvents colorbox As TextBox
Friend WithEvents Label2 As Label
Friend WithEvents Label1 As Label
Friend WithEvents TextBox1 As TextBox
Friend WithEvents txt_testnum As TextBox
Friend WithEvents txt_LooadNum As TextBox
Friend WithEvents Label5 As Label
Friend WithEvents txt_UpNum As TextBox
Friend WithEvents Label4 As Label
Friend WithEvents txt_BosCode As TextBox
Friend WithEvents Label9 As Label
Friend WithEvents lab_Processed_Unit_Cnt_ThisCycle As Label
Friend WithEvents lab_Processed_Unit_Cnt As Label
Friend WithEvents lab_imger As Label
End Class

View File

@@ -0,0 +1,138 @@
<?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="SerialPort1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="Timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>133, 17</value>
</metadata>
<metadata name="timer_Rcvd_Timeout.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>225, 17</value>
</metadata>
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>396, 17</value>
</metadata>
<metadata name="timer_AutoFindCommPort.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>519, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>105</value>
</metadata>
</root>

View File

@@ -0,0 +1,798 @@
Imports System.IO
Imports System.IO.Ports
Imports System.Net
Imports System.Text
Imports Newtonsoft.Json
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Imports UTS_Core.UTSModule.Test
Imports UTS_Core.UTSModule.Test.Command
Imports UTS_Core.UTSModule.Test.StatusMonitor
Public Class ZQ_Mars_T2_FrmStationTest
Implements IProcessStation
Private _utsApp As UtsAppForm
Private _stationPlan As StationPackagePlan
Private PrintfNum As Integer = 0
Private Printfcnt As Integer = 0
#Region "UTS Produce"
''' <summary>
''' 窗口加载事件
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub ZQ_Mars_P2_FrmStationTest_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' lp_label.BackColor = Color.Transparent
ApplicationLog.WriteInfoLog($"测试页面加载中。")
If InitializeUtsApp() = False Then Return
'InitializeForm()
'timer_AutoFindCommPort.Enabled = True
'timer_AutoFindCommPort.Start()
End Sub
''' <summary>
''' 初始化App
''' </summary>
''' <returns></returns>
Private Function InitializeUtsApp() As Boolean
_utsApp = UtsAppForm.CreateSingleton()
_utsApp.AddStatisticsObserver(CType(Me, IProcessStation))
Try
If _utsApp.IsInitialized = False Then
_utsApp.Initialize(ProcessStation.StationTypeEnum.Package) 'Todo:可根据需要限定可选站位
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"初始化窗体失败,原因:{ex.Message}!")
MsgBox($"初始化窗体失败,原因:{ex.Message}")
Close()
Return False
End Try
Return True
End Function
''' <summary>
''' 站位改变事件
''' </summary>
Public Sub Station_Changed() Implements IProcessStation.StationChanged
'Todo:站位变化代码
ApplicationLog.WriteInfoLog($"测试页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
'清除表格数据
'InitBarcodeGrid()
txt_LooadNum.Text = _stationPlan.CompanyName
txt_UpNum.Text = _stationPlan.BoxMumEditKey
ApplicationLog.WriteInfoLog($"测试页面站位变更完成!")
End Sub
''' <summary>
''' 加载窗体
''' </summary>
''' <param name="parentControl"></param>
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
Private Sub TheTestResults(dutSn As String, ispass As TestResult.TestResultEnum, datenow As Date, Optional FailMsg As RowNode = Nothing, Optional Customfield As Dictionary(Of String String) = Nothing)
'重置信息
_utsApp.TestResult.ResetTestResult()
'产线索引
_utsApp.TestResult.ProductionLineID = -1
'测试开始时间
_utsApp.TestResult.StartTime = Now
_utsApp.TestResult.DUT_SN = dutSn
_utsApp.TestResult.TestResult = ispass
_utsApp.TestResult.UsedTime = Now - datenow
If Not IsNothing(FailMsg) Then
_utsApp.TestResult.FailSteps.Add(FailMsg)
End If
If Not IsNothing(Customfield) Then
For indexptr As Integer = 0 To Customfield.Count - 1
_utsApp.TestResult.AddCustomRecord($"{Customfield.Keys(indexptr)}", $"{Customfield.Values(indexptr)}")
Next
End If
Try
'提交测试记录,缺省参数默认为FalseTrue则测试记录唯一,覆盖相同条码记录
_utsApp.CommitTestResult(True)
If ispass = TestResult.TestResultEnum.Pass Then
TestStatusMonitor.TestStatus = StatusMonitor.TestStatusMonitor.TestStatusEnum.TestPass
Else
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestFail
End If
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestPass
Catch ex As Exception
ApplicationLog.WriteErrorLog($"写入称量数据失败:{ex.Message}")
MsgBox($"写入称量数据失败:{ex.Message}")
'LblResult.Text = "FAIL"
'LblResult.ForeColor = Color.Red
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestFail
Return
End Try
End Sub
#End Region
#Region "SerialPort"
''' <summary>
''' 电子秤数据结构体
''' </summary>
Private Structure ScaleData_Strut
Dim isStable As ScaleIsStable_Enum '是否稳定
Dim weight_g As Double '重量,以 g 为单位
Dim weight_unit As ScaleUnit_Enum '重量单位
Dim isDataReady As Boolean '数据是否可用
Dim updateCnt As ULong '更新计数
End Structure
''' <summary>
''' 电子秤读回数据是否稳定枚举
''' </summary>
Private Enum ScaleIsStable_Enum
stable
unstable
End Enum
''' <summary>
''' 电子秤读回数据单位枚举
''' </summary>
Private Enum ScaleUnit_Enum
g
kg
End Enum
''' <summary>
''' 串口打开关闭状态枚举
''' </summary>
Private Enum OpenClose_Enum
Close
Open
End Enum
''' <summary>
''' 自动重连状态机枚举
''' </summary>
Private Enum AutoConnectComportStatus_Enum
Unknow
Connected
Disconnected
reConnecting
End Enum
Dim g_ScaleData As ScaleData_Strut '电子秤数据
Dim g_strRcvd As String = "" '当前串口接收到的数据
Dim g_isScal_Connected As Boolean = False '电子秤是连接到主机
Dim g_LastRcvdData_TimePoint As DateTime
Dim g_LastRcvdDataCnt As ULong '保存上一次串口数据接收计数,用于判断是否收到新的串口数据
Dim g_NoRcvdData_Cnt As Integer = 0 '未收到串口数据计数每100mS更新一次
Dim g_LstCommPort As List(Of String) = New List(Of String) '用于保存串口列表
Dim g_port_pointer_for_AutoConnect As Integer = 0 '在自动连接时,逐个串口尝试连接
Dim g_Current_AutoConnectStatus As AutoConnectComportStatus_Enum = AutoConnectComportStatus_Enum.Unknow '当前自动连接状态
''' <summary>
''' 100mS 时钟,用于维护串口连接状态
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub timer_AutoFindCommPort_Tick(sender As Object, e As EventArgs) Handles timer_AutoFindCommPort.Tick
Select Case g_Current_AutoConnectStatus
Case AutoConnectComportStatus_Enum.Unknow '未知连接状态
If g_isScal_Connected Then
g_Current_AutoConnectStatus = AutoConnectComportStatus_Enum.Connected '连接状态
Else
Dim tmpCommPortCnt As Integer = UpdateCommportList(g_LstCommPort) '重新刷新可用串口列表’
g_Current_AutoConnectStatus = AutoConnectComportStatus_Enum.reConnecting '重连状态
End If
Case AutoConnectComportStatus_Enum.Connected '连接状态
If g_ScaleData.updateCnt = g_LastRcvdDataCnt Then '判断是否收到新数据
g_NoRcvdData_Cnt += 1
If g_NoRcvdData_Cnt >= 10 Then '连续1000mS没有收到新数据
g_ScaleData.isDataReady = False '电子秤数据不可用
g_isScal_Connected = False '复位连接状态
tss_CommPort.BackColor = Color.Crimson
If SerialPort1.IsOpen Then SerialPort1.Close() '关闭当前串口’
Dim tmpCommPortCnt As Integer = UpdateCommportList(g_LstCommPort) '重新刷新可用串口列表’
g_port_pointer_for_AutoConnect = 0 '寻找串口指针
g_Current_AutoConnectStatus = AutoConnectComportStatus_Enum.Disconnected '断开连接状态
End If
Else
'两次计数不同说明收到新数据
If SerialPort1.IsOpen Then tss_CommPort.Text = SerialPort1.PortName
tss_CommPort.BackColor = Color.LightGreen
g_LastRcvdDataCnt = g_ScaleData.updateCnt
g_NoRcvdData_Cnt = 0
End If
Case AutoConnectComportStatus_Enum.Disconnected '断开连接状态
Dim tmpLstCommportCnt As Integer = g_LstCommPort.Count
If tmpLstCommportCnt > 0 And g_port_pointer_for_AutoConnect <= tmpLstCommportCnt - 1 Then
OpenClose_CommPort(g_LstCommPort(g_port_pointer_for_AutoConnect), OpenClose_Enum.Open)
If SerialPort1.IsOpen Then
tss_CommPort.Text = SerialPort1.PortName
tss_CommPort.BackColor = Color.Khaki
End If
g_NoRcvdData_Cnt = 0
g_Current_AutoConnectStatus = AutoConnectComportStatus_Enum.reConnecting
End If
Case AutoConnectComportStatus_Enum.reConnecting '重连中
If g_ScaleData.updateCnt = g_LastRcvdDataCnt Then '判断是否收到新数据
g_NoRcvdData_Cnt += 1
If g_NoRcvdData_Cnt >= 10 Then '连续1000mS没有收到新数据
If g_port_pointer_for_AutoConnect < g_LstCommPort.Count - 1 Then
g_port_pointer_for_AutoConnect += 1
Else
Dim tmpCommPortCnt As Integer = UpdateCommportList(g_LstCommPort) '重新刷新可用串口列表’
g_port_pointer_for_AutoConnect = 0 '寻找串口指针
End If
g_Current_AutoConnectStatus = AutoConnectComportStatus_Enum.Disconnected '断开连接状态
End If
Else
If SerialPort1.IsOpen Then tss_CommPort.Text = SerialPort1.PortName
tss_CommPort.BackColor = Color.LightGreen
g_LastRcvdDataCnt = g_ScaleData.updateCnt
g_NoRcvdData_Cnt = 0
g_Current_AutoConnectStatus = AutoConnectComportStatus_Enum.Connected
End If
Case Else
g_Current_AutoConnectStatus = AutoConnectComportStatus_Enum.Unknow
End Select
End Sub
''' <summary>
''' 更新可用串口列表
''' </summary>
''' <param name="lstPortName">返回串口列表</param>
''' <returns>返回寻找可用串口数量</returns>
Private Function UpdateCommportList(ByRef lstPortName As List(Of String)) As Integer
lstPortName.Clear()
Dim portNames As String() = Ports.SerialPort.GetPortNames
lstPortName.AddRangeportNames
Return lstPortName.Count
End Function
''' <summary>
''' 打开或关闭串口
''' </summary>
''' <param name="comportName"> 串口名称</param>
''' <param name="openClose">打开或关闭串口</param>
''' <returns>操作成功返回true否则返回false </returns>
Private Function OpenClose_CommPort(comportName As String, openClose As OpenClose_Enum) As Boolean
'关闭串口
If SerialPort1.IsOpen = True Then
SerialPort1.Close()
End If
If openClose = OpenClose_Enum.Close Then
Return Not SerialPort1.IsOpen
Else
'打开串口
SerialPort1.PortName = comportName
SerialPort1.Open()
Return SerialPort1.IsOpen
End If
End Function
''' <summary>
''' 串口接收事件
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub SerialPort1_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
'收到数据
Dim rcvd As String = ""
Dim bufflen As Integer = SerialPort1.BytesToRead
If SerialPort1.BytesToRead > 0 Then
Dim therecvBuffer(bufflen) As Byte
SerialPort1.Read(therecvBuffer, 0, bufflen)
Dim readStr As String = Encoding.GetEncoding("GBK").GetString(therecvBuffer)
If readStr.Equals(vbNullChar) Then Return
rcvd = rcvd & readStr
rcvd = rcvd.ReplacevbNullChar, ""
g_strRcvd = g_strRcvd & readStr
g_strRcvd = g_strRcvd.ReplacevbNullChar, ""
g_LastRcvdData_TimePoint = DateTime.Now
End If
'ST,NT,+ 197.9 g
'US,NT,+ 197.4 g
'US,NT,+ 197.4 g
'收到换行符号或长度大于=18
If rcvd.Length < 1 Then
Return
End If
Dim listr As String = rcvd.Substring(rcvd.Length - 2)
If listr.Equals(vbCrLf) Then
listr = rcvd.Trim
Console.WriteLine($"listr:{listr}")
If listr.Length >= 10 Then
If listr.Length >= 10 Then
'判断稳定状态
' Dim tmpStableStr As String = Microsoft.VisualBasic.Mid(listr, 6, 2).Trim
Dim tmpUnit() As String = listr.Split(CChar("+"))
If tmpUnit.Length <> 2 Then
Return
End If
Dim tmpUnit1() As String = tmpUnit1.Trim.Split(CChar(" "))
If tmpUnit.Length <> 2 Then
Return
End If
If tmpUnit(0).Contains("ST") Then
'稳定
g_ScaleData.isStable = ScaleIsStable_Enum.stable
g_ScaleData.isDataReady = False
ElseIf tmpUnit(0).Contains("US") Then
'不稳定
g_ScaleData.isStable = ScaleIsStable_Enum.unstable
g_ScaleData.isDataReady = False
Else
'非法数据
g_strRcvd = ""
Return
End If
'判断单位
If tmpUnit1(1).Trim.Equals("kg") Then
g_ScaleData.weight_unit = ScaleUnit_Enum.g
ElseIf tmpUnit1(1).Trim.Equals("g") Then
g_ScaleData.weight_unit = ScaleUnit_Enum.kg
Else
'非法数据
g_strRcvd = ""
Return
End If
'计算重量
If Double.TryParse(tmpUnit1(0).Trim, g_ScaleData.weight_g) Then
If g_ScaleData.weight_unit = ScaleUnit_Enum.kg Then
g_ScaleData.weight_g = g_ScaleData.weight_g * 1000
End If
If g_ScaleData.weight_g > 5 Then
If g_ScaleData.isStable = ScaleIsStable_Enum.stable Then
loadedWeight(txt_testnum, g_ScaleData.weight_g.ToString, Color.Green)
ElseIf g_ScaleData.isStable = ScaleIsStable_Enum.unstable Then
loadedWeight(txt_testnum, g_ScaleData.weight_g.ToString, Color.Blue)
Else
loadedWeight(txt_testnum, "----", Color.Gray)
End If
Else
loadedWeight(txt_testnum, "----", Color.Gray)
End If
Else
'非法数据
g_strRcvd = ""
Return
End If
g_ScaleData.updateCnt = CULng(g_ScaleData.updateCnt + 1) '有效计数 +1
g_ScaleData.isDataReady = True '数据就绪
g_isScal_Connected = True '电子秤已连接
End If
g_strRcvd = ""
End If
End If
End Sub
Delegate Sub theSetopenUartshow(btn As TextBox txt As String bcolor As Color)
Public Sub loadedWeight(testnum As TextBox txt As String txtcolor As Color)
If testnum.InvokeRequired Then
Dim dev As New theSetopenUartshow(AddressOf loadedWeight)
testnum.Invoke(dev, New Object() {testnum, txt, txtcolor})
Else
testnum.Text = txt
testnum.ReadOnly = False
testnum.ForeColor = txtcolor
End If
End Sub
''' <summary>
''' 串口接收超时计数每1mS中断判断一次超时大于80mS就将缓冲区数据抛弃
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub timer_Rcvd_Timeout_Tick(sender As Object, e As EventArgs) Handles timer_Rcvd_Timeout.Tick
'ticks 1unit = 100nS
Dim rcvTimespan As Long = DateTime.Now.Ticks - g_LastRcvdData_TimePoint.Ticks
If rcvTimespan >= 80 * 10000 Then
g_strRcvd = ""
End If
End Sub
#End Region
#Region "Web 数据接口"
Public Function AccessApi2dbName As String, theKey As String dic As Dictionary(Of String, String) As JsonPtr
Dim jsonString As String = String.Empty
Dim ptr As String = $"Pwd=actop00803&DBName={dbName}&Key={theKey}&JsonData={JsonConvert.SerializeObject(dic)}"
'/http://uts-data.com/CommonApi/Combind_Sn_Info? Pwd%3D%26*$@%23235%26DBName%3Duts_zongqing%26Key%3DBarcode%26Barcode%3D1
Try
jsonString = PostData("http://uts-data.com/CommonApi/Combind_Sn_Info", ptr)
Console.WriteLine(jsonString)
If jsonString = Nothing Then
Return Nothing
End If
Dim login As JsonPtr = JsonConvert.DeserializeObject(Of JsonPtr)(jsonString)
If login.Message.Contains"成功" Then
Return login
Else
Return Nothing
End If
Catch ex As Exception
MsgBox($"{ex.Message}!盒码获取失败请联系管理员")
Return Nothing
End Try
End Function
Public Shared Function PostData(ByVal url As String, ByVal data As String) As String
ServicePointManager.Expect100Continue = False
Dim request As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
'//Post请求方式
request.Method = "post"
'内容类型
request.ContentType = "application/x-www-form-urlencoded"
'将URL编码后的字符串转化为字节
Dim encoding As New UTF8Encoding()
Dim bys As Byte() = encoding.GetBytes(data)
'设置请求的 ContentLength
request.ContentLength = bys.Length
'获得请 求流
Dim newStream As Stream = request.GetRequestStream()
newStream.Write(bys, 0, bys.Length)
newStream.Close()
'获得响应流
Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
Return sr.ReadToEnd
End Function
#End Region
#Region "UIEven"
Private Sub RichTextBox1_TextChanged(sender As Object, e As EventArgs)
RichTextBox1.SelectionStart = RichTextBox1.TextLength
RichTextBox1.ScrollToCaret()
End Sub
Delegate Sub IPSetRichTextBox1Text(TextBox1 As RichTextBox, text As String txtcolor As Color)
Private Sub SetRichTextBox1Text(TextBox1 As RichTextBox, text As String txtcolor As Color)
If InvokeRequired = True Then
Dim dev As New IPSetRichTextBox1Text(AddressOf SetRichTextBox1Text)
Me.Invoke(dev, New Object() {TextBox1, text, txtcolor})
Else
With TextBox1
.SuspendLayout()
.SelectionColor = txtcolor
.AppendText(text & vbCrLf)
.ResumeLayout(False)
End With
End If
End Sub
Public Function ObtainWeighingValue() As String
Dim Whileint As Integer = 0
While Whileint < 200
If txt_LooadNum.ForeColor = Color.Green Then
Return txt_LooadNum.Text
Exit While
Else
Whileint = Whileint + 1
delayms100
End If
End While
If txt_LooadNum.ForeColor = Color.Green Then
Else
Return "False"
End If
End Function
Private Sub TextBox2_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles colorbox.PreviewKeyDown
Dim buff() As String
Dim Customfield As New Dictionary(Of String String)
Dim ColorBox As String = ""
Dim node As New RowNode
Dim Dut_SN As String = ""
Dim datenow As Date = Now
Dim exepath As String = "C:\Debug\AUTS_Ext_BarTenderConsole.exe"
If e.KeyData = Keys.Enter Then
If IsBoxReady Then
If Entering_Cnt > 10 Then
MsgBox("箱体已满载,请更换箱体码再进行录入。")
Me.txt_BosCode.Focus()
Me.txt_BosCode.SelectAll()
Me.txt_BosCode.Enabled = True
Else
Dim dic As New Dictionary(Of String, String
Dim weightval As String = ObtainWeighingValue()
If weightval.Equals("False") Then
dic.Add("Mars_UnitWeigth" txt_testnum.Text) '称重值
Else
dic.Add("Mars_UnitWeigth" weightval) '称重值
End If
dic.Add("Mars_ColorBox_BarCode" Me.colorbox.Text)
Dim apidata As JsonPtr = AccessApi2("uts_zongqing", "Mars_ColorBox_BarCode" dic)
If Not IsNothingapidata Then
Dut_SN = apidata.Data.Barcode.Trim
devbox.Text = apidata.Data.Barcode
Customfield.Clear()
Customfield.Add("MacCode", apidata.Data.Mars_MacCodeP)
Customfield.Add("SnCode", Dut_SN)
Customfield.Add("ColorBoxCode", Me.colorbox.Text.Trim)
Customfield.Add("label_string", Dut_SN & "/" & apidata.Data.Mars_MacCodeP)
Customfield.Add("mars_OutBoxCode", txt_BosCode.Text.Trim)
Dim testresuli As String
If weightval.Equals("False") Then
Customfield.Add("Mars_UnitWeigth", txt_testnum.Text)
testresuli = CopmareTheSize(txt_LooadNum.Text, txt_testnum.Text, txt_UpNum.Text) '比较范围
Else
Customfield.Add("Mars_UnitWeigth", weightval)
testresuli = CopmareTheSize(txt_LooadNum.Text, weightval, txt_UpNum.Text) '比较范围
End If
If testresuli.Equals("False") Then
node.RowListIndex = 1
node.Description = "称重不在预设阈值内!"
node.TestReturn = New TestCommandReturn
node.TestReturn.LowerLimit = ""
node.TestReturn.UpperLimit = ""
node.TestReturn.RecordValue = "Fail"
TheTestResults("", TestResult.TestResultEnum.Fail, datenow, node, Customfield)
SetRichTextBox1Text(RichTextBox1, "称重不在预设阈值内!" & vbCrLf, Color.Red)
Else
TheTestResults(Dut_SN, TestResult.TestResultEnum.Pass, datenow, Nothing, Customfield)
PrintfNum = PrintfNum + 1
'Label7.Text = PrintfNum.ToString & "个"
' lab_test_num.Text = PrintfNum.ToString & "个"
Printfcnt = My.Settings.P2_cnt + PrintfNum
'lab_Test_cnt.Text = Printfcnt.ToString & "个"
My.Settings.Save()
SetRichTextBox1Text(RichTextBox1, "数据录入成功!" & vbCrLf, Color.Blue)
End If
Me.colorbox.Focus()
Me.colorbox.SelectAll()
Else
node.RowListIndex = 1
node.Description = "获取彩盒码关联条码错误!"
node.TestReturn.LowerLimit = ""
node.TestReturn.UpperLimit = ""
node.TestReturn.RecordValue = "Fail"
TheTestResults(Dut_SN, TestResult.TestResultEnum.Fail, datenow, node)
SetRichTextBox1Text(RichTextBox1, "获取彩盒码关联条码错误!" & vbCrLf, Color.Red)
End If
End If
Else
MsgBox("箱体码未就绪,请先扫箱体码再进行录入。")
Me.txt_BosCode.Focus()
Me.txt_BosCode.SelectAll()
Me.txt_BosCode.Enabled = True
End If
End If
End Sub
Public Function CopmareTheSize(loadint As String, numint As String, upint As String) As String
Dim loadnum As Integer = 0
Dim upnum As Integer = 0
Dim connum As Integer = 0
If Integer.TryParse(loadint, loadnum) AndAlso Integer.TryParse(numint, connum) AndAlso Integer.TryParse(upint, upnum) Then
If loadnum < connum AndAlso connum < upnum Then
Return CStr(connum)
Else
Return "False"
End If
Else
Return "False"
End If
End Function
Public Sub delayms(ms As Integer)
Dim start As Integer = Environment.TickCount
While (Math.Abs(Environment.TickCount - start) < ms)
Application.DoEvents()
End While
End Sub
Private Sub OpenUart_btn_Click(sender As Object, e As EventArgs) Handles OpenUart_btn.Click
Dim Btn As Button = CType(sender, Button)
If IsNothing(UartPort_cob) OrElse String.IsNullOrEmpty(UartPort_cob.Text) Then Return
SerialPortCommSwitch(SerialPort1, UartPort_cob.Text, Btn)
End Sub
Private Sub SerialPortCommSwitch(Serial As IO.Ports.SerialPort, portName As String, btn As Button)
If Serial.IsOpen Then
Serial.Close()
btn.Text = "打开串口"
btn.BackColor = Color.LightGray
btn.Enabled = True
Else
If String.IsNullOrEmpty(portName) Then
MsgBox("串口为空,请选择串口")
Return
End If
ConfigSerialPort(Serial, portName)
Try
Serial.Open()
Catch ex As Exception
MsgBox($"串口打开失败,详情:{ex.Message}")
Serial.Close()
Return
End Try
'SerialPort1.Close()
btn.Text = "关闭串口"
btn.BackColor = Color.SlateGray
btn.Enabled = True
End If
End Sub
Public Sub ConfigSerialPort(Serial As IO.Ports.SerialPort, portName As String)
With Serial
.PortName = portName '串口名
.BaudRate = 9600 ' _BaudRate '波特率
.DataBits = 8 '数据位
.StopBits = Ports.StopBits.One '停止位
.Parity = Ports.Parity.None '偶校验
.RtsEnable = True
.ReceivedBytesThreshold = 1
End With
End Sub
Private Sub UartPort_cob_DropDown(sender As Object, e As EventArgs) Handles UartPort_cob.DropDown
Dim portNames As String() = System.IO.Ports.SerialPort.GetPortNames '获得可用串口
Array.Sort(portNames)
UartPort_cob.Items.Clear()
UartPort_cob.Items.AddRange(portNames)
If Not SerialPort1.IsOpen Then
UartPort_cob.SelectedIndex = 0
End If
End Sub
Public IsBoxReady As Boolean = False
Public Entering_Cnt As Integer = 0
Private Sub txt_BosCode_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles txt_BosCode.PreviewKeyDown
If e.KeyData = Keys.Enter Then
IsBoxReady = True
Entering_Cnt = 0
Me.txt_BosCode.Enabled = False
End If
End Sub
#End Region
#Region "测试流程"
#End Region
End Class
Public Class JsonPtr
Public Data As jsonrusil
Public Message As String
End Class
Public Class jsonrusil
Public ID As String
Public ProjectID As String
Public Barcode As String
Public ImportDateTime As Date
Public UpdateTime As Date
Public Mars_ColorBox_BarCode As String
Public Mars_OutBoxCode As String
Public Mars_MacCodeP As String
Public Mars_UnitWeigth As String
End Class

View File

@@ -0,0 +1,425 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Mars_P3_FrmStationPlan
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ZQ_Mars_P3_FrmStationPlan))
Me.ToolStripSeparator7 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugStep = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugContinue = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator8 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugSetup = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugMain = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugPass = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugFail = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugCleanup = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator9 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugNode = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugNodeBegin = New System.Windows.Forms.ToolStripMenuItem()
Me.StuMain = New System.Windows.Forms.StatusStrip()
Me.DlgOpenFile = New System.Windows.Forms.OpenFileDialog()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
Me.LblDesc = New System.Windows.Forms.Label()
Me.GrdStationPlan = New FlexCell.Grid()
Me.CmsPlanGrid = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.MsiCopyNode = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiCutNode = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiNodePaste = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiUndo = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiRedo = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiSaveNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiLoadNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStart = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugEnd = New System.Windows.Forms.ToolStripMenuItem()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.TsBtnOpen = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSave = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator()
Me.TsBtnLoad = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSaveAs = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
CType(Me.SplitContainer1,System.ComponentModel.ISupportInitialize).BeginInit
Me.SplitContainer1.Panel1.SuspendLayout
Me.SplitContainer1.Panel2.SuspendLayout
Me.SplitContainer1.SuspendLayout
Me.GroupBox2.SuspendLayout
Me.CmsPlanGrid.SuspendLayout
Me.ToolStrip1.SuspendLayout
Me.SuspendLayout
'
'ToolStripSeparator7
'
Me.ToolStripSeparator7.Name = "ToolStripSeparator7"
Me.ToolStripSeparator7.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugStep
'
Me.TsmiDebugStep.Name = "TsmiDebugStep"
Me.TsmiDebugStep.ShortcutKeys = System.Windows.Forms.Keys.F3
Me.TsmiDebugStep.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStep.Text = "单步执行"
'
'TsmiDebugContinue
'
Me.TsmiDebugContinue.Name = "TsmiDebugContinue"
Me.TsmiDebugContinue.ShortcutKeys = System.Windows.Forms.Keys.F4
Me.TsmiDebugContinue.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugContinue.Text = "继续执行"
'
'ToolStripSeparator8
'
Me.ToolStripSeparator8.Name = "ToolStripSeparator8"
Me.ToolStripSeparator8.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugSetup
'
Me.TsmiDebugSetup.Name = "TsmiDebugSetup"
Me.TsmiDebugSetup.ShortcutKeys = System.Windows.Forms.Keys.F5
Me.TsmiDebugSetup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugSetup.Text = "Setup模块执行"
'
'TsmiDebugMain
'
Me.TsmiDebugMain.Name = "TsmiDebugMain"
Me.TsmiDebugMain.ShortcutKeys = System.Windows.Forms.Keys.F6
Me.TsmiDebugMain.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugMain.Text = "Main模块执行"
'
'TsmiDebugPass
'
Me.TsmiDebugPass.Name = "TsmiDebugPass"
Me.TsmiDebugPass.ShortcutKeys = System.Windows.Forms.Keys.F7
Me.TsmiDebugPass.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugPass.Text = "Pass模块执行"
'
'TsmiDebugFail
'
Me.TsmiDebugFail.Name = "TsmiDebugFail"
Me.TsmiDebugFail.ShortcutKeys = System.Windows.Forms.Keys.F8
Me.TsmiDebugFail.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugFail.Text = "Fail模块执行"
'
'TsmiDebugCleanup
'
Me.TsmiDebugCleanup.Name = "TsmiDebugCleanup"
Me.TsmiDebugCleanup.ShortcutKeys = System.Windows.Forms.Keys.F9
Me.TsmiDebugCleanup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugCleanup.Text = "Cleanup模块执行"
'
'ToolStripSeparator9
'
Me.ToolStripSeparator9.Name = "ToolStripSeparator9"
Me.ToolStripSeparator9.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugNode
'
Me.TsmiDebugNode.Name = "TsmiDebugNode"
Me.TsmiDebugNode.ShortcutKeys = System.Windows.Forms.Keys.F10
Me.TsmiDebugNode.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNode.Text = "节点测试"
'
'TsmiDebugNodeBegin
'
Me.TsmiDebugNodeBegin.Name = "TsmiDebugNodeBegin"
Me.TsmiDebugNodeBegin.ShortcutKeys = System.Windows.Forms.Keys.F11
Me.TsmiDebugNodeBegin.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNodeBegin.Text = "节点开始测试"
'
'StuMain
'
Me.StuMain.Location = New System.Drawing.Point(0, 539)
Me.StuMain.Name = "StuMain"
Me.StuMain.Size = New System.Drawing.Size(984, 22)
Me.StuMain.TabIndex = 11
Me.StuMain.Text = "StatusStrip1"
'
'DlgOpenFile
'
Me.DlgOpenFile.FileName = "OpenFileDialog1"
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 36)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.GroupBox2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.GroupBox1)
Me.SplitContainer1.Size = New System.Drawing.Size(984, 525)
Me.SplitContainer1.SplitterDistance = 444
Me.SplitContainer1.TabIndex = 12
'
'GroupBox2
'
Me.GroupBox2.Controls.Add(Me.LblDesc)
Me.GroupBox2.Controls.Add(Me.GrdStationPlan)
Me.GroupBox2.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox2.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.GroupBox2.Location = New System.Drawing.Point(0, 0)
Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(444, 525)
Me.GroupBox2.TabIndex = 0
Me.GroupBox2.TabStop = false
Me.GroupBox2.Text = "流程参数"
'
'LblDesc
'
Me.LblDesc.Dock = System.Windows.Forms.DockStyle.Bottom
Me.LblDesc.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.LblDesc.Location = New System.Drawing.Point(3, 461)
Me.LblDesc.Name = "LblDesc"
Me.LblDesc.Size = New System.Drawing.Size(438, 61)
Me.LblDesc.TabIndex = 6
'
'GrdStationPlan
'
Me.GrdStationPlan.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
Me.GrdStationPlan.BorderStyle = FlexCell.BorderStyleEnum.None
Me.GrdStationPlan.CheckedImage = Nothing
Me.GrdStationPlan.ContextMenuStrip = Me.CmsPlanGrid
Me.GrdStationPlan.DefaultFont = New System.Drawing.Font("宋体", 9!)
Me.GrdStationPlan.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.GrdStationPlan.GridColor = System.Drawing.Color.FromArgb(CType(CType(192,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(192,Byte),Integer))
Me.GrdStationPlan.Location = New System.Drawing.Point(0, 24)
Me.GrdStationPlan.Name = "GrdStationPlan"
Me.GrdStationPlan.Size = New System.Drawing.Size(441, 434)
Me.GrdStationPlan.TabIndex = 4
Me.GrdStationPlan.UncheckedImage = Nothing
'
'CmsPlanGrid
'
Me.CmsPlanGrid.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MsiCopyNode, Me.MsiCutNode, Me.MsiNodePaste, Me.ToolStripSeparator5, Me.MsiUndo, Me.MsiRedo, Me.ToolStripSeparator6, Me.MsiSaveNodeFile, Me.MsiLoadNodeFile, Me.ToolStripSeparator7, Me.TsmiDebugStart, Me.TsmiDebugEnd, Me.TsmiDebugStep, Me.TsmiDebugContinue, Me.ToolStripSeparator8, Me.TsmiDebugSetup, Me.TsmiDebugMain, Me.TsmiDebugPass, Me.TsmiDebugFail, Me.TsmiDebugCleanup, Me.ToolStripSeparator9, Me.TsmiDebugNode, Me.TsmiDebugNodeBegin})
Me.CmsPlanGrid.Name = "CmsMain"
Me.CmsPlanGrid.Size = New System.Drawing.Size(193, 430)
'
'MsiCopyNode
'
Me.MsiCopyNode.Enabled = false
Me.MsiCopyNode.Name = "MsiCopyNode"
Me.MsiCopyNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCopyNode.Text = "复制"
'
'MsiCutNode
'
Me.MsiCutNode.Enabled = false
Me.MsiCutNode.Name = "MsiCutNode"
Me.MsiCutNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCutNode.Text = "剪切"
'
'MsiNodePaste
'
Me.MsiNodePaste.Enabled = false
Me.MsiNodePaste.Name = "MsiNodePaste"
Me.MsiNodePaste.Size = New System.Drawing.Size(192, 22)
Me.MsiNodePaste.Text = "粘贴"
'
'ToolStripSeparator5
'
Me.ToolStripSeparator5.Name = "ToolStripSeparator5"
Me.ToolStripSeparator5.Size = New System.Drawing.Size(189, 6)
'
'MsiUndo
'
Me.MsiUndo.Enabled = false
Me.MsiUndo.Name = "MsiUndo"
Me.MsiUndo.Size = New System.Drawing.Size(192, 22)
Me.MsiUndo.Text = "撤销"
'
'MsiRedo
'
Me.MsiRedo.Enabled = false
Me.MsiRedo.Name = "MsiRedo"
Me.MsiRedo.Size = New System.Drawing.Size(192, 22)
Me.MsiRedo.Text = "重做"
'
'ToolStripSeparator6
'
Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
Me.ToolStripSeparator6.Size = New System.Drawing.Size(189, 6)
'
'MsiSaveNodeFile
'
Me.MsiSaveNodeFile.Name = "MsiSaveNodeFile"
Me.MsiSaveNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiSaveNodeFile.Text = "另存为节点文件"
'
'MsiLoadNodeFile
'
Me.MsiLoadNodeFile.Name = "MsiLoadNodeFile"
Me.MsiLoadNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiLoadNodeFile.Text = "加载节点文件"
'
'TsmiDebugStart
'
Me.TsmiDebugStart.Name = "TsmiDebugStart"
Me.TsmiDebugStart.ShortcutKeys = System.Windows.Forms.Keys.F1
Me.TsmiDebugStart.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStart.Text = "开始执行"
'
'TsmiDebugEnd
'
Me.TsmiDebugEnd.Name = "TsmiDebugEnd"
Me.TsmiDebugEnd.ShortcutKeys = System.Windows.Forms.Keys.F2
Me.TsmiDebugEnd.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugEnd.Text = "退出执行"
'
'GroupBox1
'
Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox1.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.GroupBox1.Location = New System.Drawing.Point(0, 0)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(536, 525)
Me.GroupBox1.TabIndex = 0
Me.GroupBox1.TabStop = false
Me.GroupBox1.Text = "常规预览"
'
'TsBtnOpen
'
Me.TsBtnOpen.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnOpen.Image = CType(resources.GetObject("TsBtnOpen.Image"),System.Drawing.Image)
Me.TsBtnOpen.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnOpen.Name = "TsBtnOpen"
Me.TsBtnOpen.Size = New System.Drawing.Size(35, 33)
Me.TsBtnOpen.Text = "打开"
Me.TsBtnOpen.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSave
'
Me.TsBtnSave.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnSave.Image = CType(resources.GetObject("TsBtnSave.Image"),System.Drawing.Image)
Me.TsBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSave.Name = "TsBtnSave"
Me.TsBtnSave.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSave.Text = "保存"
Me.TsBtnSave.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator4
'
Me.ToolStripSeparator4.Name = "ToolStripSeparator4"
Me.ToolStripSeparator4.Size = New System.Drawing.Size(6, 36)
'
'TsBtnLoad
'
Me.TsBtnLoad.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnLoad.Image = CType(resources.GetObject("TsBtnLoad.Image"),System.Drawing.Image)
Me.TsBtnLoad.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnLoad.Name = "TsBtnLoad"
Me.TsBtnLoad.Size = New System.Drawing.Size(35, 33)
Me.TsBtnLoad.Text = "重载"
Me.TsBtnLoad.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSaveAs
'
Me.TsBtnSaveAs.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnSaveAs.Image = CType(resources.GetObject("TsBtnSaveAs.Image"),System.Drawing.Image)
Me.TsBtnSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSaveAs.Name = "TsBtnSaveAs"
Me.TsBtnSaveAs.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSaveAs.Text = "导出"
Me.TsBtnSaveAs.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator3
'
Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 36)
'
'ToolStrip1
'
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TsBtnOpen, Me.TsBtnSave, Me.ToolStripSeparator4, Me.TsBtnLoad, Me.TsBtnSaveAs, Me.ToolStripSeparator3})
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(984, 36)
Me.ToolStrip1.TabIndex = 10
Me.ToolStrip1.Text = "ToolStrip1"
'
'ZQ_Mars_P3_FrmStationPlan
'
Me.ClientSize = New System.Drawing.Size(984, 561)
Me.Controls.Add(Me.StuMain)
Me.Controls.Add(Me.SplitContainer1)
Me.Controls.Add(Me.ToolStrip1)
Me.Name = "ZQ_Mars_P3_FrmStationPlan"
Me.SplitContainer1.Panel1.ResumeLayout(false)
Me.SplitContainer1.Panel2.ResumeLayout(false)
CType(Me.SplitContainer1,System.ComponentModel.ISupportInitialize).EndInit
Me.SplitContainer1.ResumeLayout(false)
Me.GroupBox2.ResumeLayout(false)
Me.CmsPlanGrid.ResumeLayout(false)
Me.ToolStrip1.ResumeLayout(false)
Me.ToolStrip1.PerformLayout
Me.ResumeLayout(false)
Me.PerformLayout
End Sub
Friend WithEvents ToolStripSeparator7 As ToolStripSeparator
Friend WithEvents TsmiDebugStep As ToolStripMenuItem
Friend WithEvents TsmiDebugContinue As ToolStripMenuItem
Friend WithEvents ToolStripSeparator8 As ToolStripSeparator
Friend WithEvents TsmiDebugSetup As ToolStripMenuItem
Friend WithEvents TsmiDebugMain As ToolStripMenuItem
Friend WithEvents TsmiDebugPass As ToolStripMenuItem
Friend WithEvents TsmiDebugFail As ToolStripMenuItem
Friend WithEvents TsmiDebugCleanup As ToolStripMenuItem
Friend WithEvents ToolStripSeparator9 As ToolStripSeparator
Friend WithEvents TsmiDebugNode As ToolStripMenuItem
Friend WithEvents TsmiDebugNodeBegin As ToolStripMenuItem
Friend WithEvents StuMain As StatusStrip
Friend WithEvents DlgOpenFile As OpenFileDialog
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents GroupBox2 As GroupBox
Friend WithEvents LblDesc As Label
Friend WithEvents GrdStationPlan As FlexCell.Grid
Friend WithEvents CmsPlanGrid As ContextMenuStrip
Friend WithEvents MsiCopyNode As ToolStripMenuItem
Friend WithEvents MsiCutNode As ToolStripMenuItem
Friend WithEvents MsiNodePaste As ToolStripMenuItem
Friend WithEvents ToolStripSeparator5 As ToolStripSeparator
Friend WithEvents MsiUndo As ToolStripMenuItem
Friend WithEvents MsiRedo As ToolStripMenuItem
Friend WithEvents ToolStripSeparator6 As ToolStripSeparator
Friend WithEvents MsiSaveNodeFile As ToolStripMenuItem
Friend WithEvents MsiLoadNodeFile As ToolStripMenuItem
Friend WithEvents TsmiDebugStart As ToolStripMenuItem
Friend WithEvents TsmiDebugEnd As ToolStripMenuItem
Friend WithEvents GroupBox1 As GroupBox
Friend WithEvents TsBtnOpen As ToolStripButton
Friend WithEvents TsBtnSave As ToolStripButton
Friend WithEvents ToolStripSeparator4 As ToolStripSeparator
Friend WithEvents TsBtnLoad As ToolStripButton
Friend WithEvents TsBtnSaveAs As ToolStripButton
Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
Friend WithEvents ToolStrip1 As ToolStrip
End Class

View File

@@ -0,0 +1,185 @@
<?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="StuMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 93</value>
</metadata>
<metadata name="DlgOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>118, 93</value>
</metadata>
<metadata name="CmsPlanGrid.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>243, 93</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="TsBtnOpen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHqSURBVGhD7Zm9Tt1AEEYvNDxCArwSXZDSpAwiFQ+HEA2Q
dPmpeAl4AaALEnxTXDSate/xeHcvkeIjnerzN97F9rWEVwsLC6PsyFP5Rz7Jl07ey0+yKQfyuxw6YQ//
ys+yCbvyhxw6UU+f5RdZzTc5dIJt2ORK2D3vh17ID3KNz8wabLG2aD+vehOP0g/8KD0+M2tpvgk/yIxQ
PodjGTcx+5nwQ8wI5XNptgk/wIxQXkOTTfiyGaG8lupN+KIZiflc7Q18JIcYe7AnvbF9yYzEvMY7OcbQ
JjYd/4YvmBEbEo+ZKy3INhE7CBXsstvlj8dl3XQLeWIPSRc6k15PutCZ9HrShc6k15MudCa9nnShM+n1
pAudSa+HCq1+RqNjP6vxOIQKLV9k0aEXWzwGoULMWxuhvIAKMW9thPICKlCeheZRXkAFyrPQPMoLqEB5
FppHeQEVKM9C8ygvoALlWWge5QVUoDwLzaO8gAqUZ6F5lBdQgfIsNI/yAipQnoXmUV5ABcqz0DzKCx6k
L/j/TBs+M2vZNM8+tPjM1ob8lr50LvflGp+ZtYzNs3NeSp/9ksiZ9KV/ya8S2ZO3cmjAe3ol7cPjJA7l
jRwa9B5eS38bT8J2eyJ/yvjVZhvaA2vntttm8l9+YeH/YrV6BfNWMy9RUhK1AAAAAElFTkSuQmCC
</value>
</data>
<data name="TsBtnLoad.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSaveAs.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADQSURBVEhL5ZYxDgFBGEbnCE4gjuAcCnEER3AER9BpVWqV
QqcTlSOIUkVFx/fWSMYsyfx/FCu+5CX7ZWfmTbKT3Q1J+mLnYCmKMhQ3sRKLQg5iL4ryFHSqVpaZ+H3B
UQwy2qIWr4A5OaxVi0fATrsJPfFVQR7m/pGA42eBmARc8yrgpMxj38aewhjuEbNg/LgMLUEfVe01jGmu
4CpO4hz7JfYUxrgFGzER09jXsacwxi34/WdggZgE7MwCMQk8aYbA8tHPYe5Hgfe35R2spYRwB61XwcSY
NxMjAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>370, 93</value>
</metadata>
</root>

View File

@@ -0,0 +1,489 @@
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Imports UTS_Core.UTSModule.Station.StationPackagePlan
Imports UTS_Core.UTSModule.Test.StatusMonitor
Public Class ZQ_Mars_P3_FrmStationPlan
' Implements IProcessFileChanged
Implements IProcessStation
Implements IProductionLine
Private _utsApp As UtsAppForm
Private _stationPlan As StationPackagePlan
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
Public Sub utsbctfilechanged
'For Each observer As IProcessStation In _observerList
' observer.StationChanged()
' Next
End Sub
''' <summary>
''' 站位变更代码
''' </summary>
Public Sub Station_Changed() Implements IProcessStation.StationChanged
ApplicationLog.WriteInfoLog($"编辑页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
Try
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
Catch ex As Exception
MsgBox($"加载项目流程失败,{ex.Message}")
End Try
InitGrid(_stationPlan)
ApplicationLog.WriteInfoLog($"编辑页面站位变更完成。")
End Sub
''' <summary>
''' 产线变化代码
''' </summary>
Public Sub ProductionLineChanged() Implements IProductionLine.ProductionLineChanged
ApplicationLog.WriteInfoLog($"编辑页面生产线变更中。")
ApplicationLog.WriteInfoLog($"编辑页面生产线变更完成。")
End Sub
Private Sub FrmStationPlan_Load(sender As Object, e As EventArgs) Handles Me.Load
ApplicationLog.WriteInfoLog($"编辑页面加载中。")
'初始化UTS窗体信息,失败则关闭窗体
If InitializeUtsApp() = False Then Return
'初始化窗体页面
InitializeForm()
ApplicationLog.WriteInfoLog($"编辑页面加载完成。")
End Sub
Private Function InitializeUtsApp() As Boolean
_utsApp = UtsAppForm.CreateSingleton()
_utsApp.AddStatisticsObserver(Me)
Try
If _utsApp.IsInitialized = False Then
_utsApp.Initialize(ProcessStation.StationTypeEnum.Package) 'Todo:可根据需要限定可选站位
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"初始化窗体失败,原因:{ex.Message}!")
MsgBox($"初始化窗体失败,原因:{ex.Message}")
Close()
Return False
End Try
Return True
End Function
Private Sub InitializeForm()
InitGrid(_stationPlan)
End Sub
Private Sub TsBtnOpen_Click(sender As Object, e As EventArgs) Handles TsBtnOpen.Click
Using xml As New OpenFileDialog
xml.Filter = $"流程文件(*.xml)|*.xml"
If xml.ShowDialog() = DialogResult.OK Then
ApplicationLog.WriteInfoLog($"编辑页面执行流程正在加载{xml.FileName}")
LoadTreeViewFormXml(xml.FileName)
ApplicationLog.WriteInfoLog($"编辑页面执行流程加载完成。")
End If
End Using
End Sub
Private Sub TsBtnLoad_Click(sender As Object, e As EventArgs) Handles TsBtnLoad.Click
If MsgBox("重载会将流程返回为上一次保存的流程状态,是否继续", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
ApplicationLog.WriteInfoLog($"编辑页面执行流程重载中。")
LoadTreeViewFormXml()
ApplicationLog.WriteInfoLog($"编辑页面执行流程重载完成。")
End If
End Sub
Private Sub TsBtnSave_Click(sender As Object, e As EventArgs) Handles TsBtnSave.Click
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存中。")
UpdateGrid(_stationPlan)
ExportTreeViewToXml()
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存完成。")
End Sub
''' <summary>
''' 读取XML,加载树状视图
''' </summary>
Private Sub LoadTreeViewFormXml()
Dim revStationPlanPath As String = $"{UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)}\Main.xml"
Try
_stationPlan.LoadFile(revStationPlanPath)
InitGrid(_stationPlan)
If StationEditStatusMonitor.StationEditStatus <> StationEditStatusMonitor.StationEditStatusEnum.Saved Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"加载测试站流程发生错误,原因:{ex.Message}")
MsgBox($"加载测试站流程发生错误,原因:{ex.Message}")
_stationPlan.CreateStationPlan()
End Try
End Sub
''' <summary>
''' 读取XML,加载树状视图
''' </summary>
Private Sub LoadTreeViewFormXml(revStationPlanPath As String)
Try
_stationPlan.LoadFile(revStationPlanPath)
InitGrid(_stationPlan)
If StationEditStatusMonitor.StationEditStatus <> StationEditStatusMonitor.StationEditStatusEnum.Saved Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"加载测试站流程发生错误,原因:{ex.Message}")
MsgBox($"加载测试站流程发生错误,原因:{ex.Message}")
_stationPlan.CreateStationPlan()
End Try
End Sub
''' <summary>
''' 将树状视图导出为Xml
''' </summary>
Private Sub ExportTreeViewToXml()
'保存至项目文件
Dim revStationPlanPath As String = $"{UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)}\Main.xml"
_stationPlan.SaveFile(revStationPlanPath)
'备份至临时文件
Dim tempPath As String = $"{UtsPath.StationDesignDirPath()}\Main.xml"
_stationPlan.SaveFile(tempPath)
If StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
End Sub
Private Sub TsBtnSaveAs_Click(sender As Object, e As EventArgs) Handles TsBtnSaveAs.Click
Using dlg As New SaveFileDialog
dlg.Filter = "Excel 文件(*.xls)|*.xls|CSV 文件(*.csv)|*.csv|PDF 文件(*.pdf)|*.pdf"
dlg.AddExtension = True
If dlg.ShowDialog <> DialogResult.OK Then Return
Cursor = Cursors.WaitCursor
ApplicationLog.WriteInfoLog($"编辑页面执行流程导出中。")
Try
Select Case dlg.FilterIndex
Case 1
GrdStationPlan.ExportToExcel(dlg.FileName, True, True)
Case 2
GrdStationPlan.ExportToCSV(dlg.FileName, True, True)
Case 3
GrdStationPlan.ExportToPDF(dlg.FileName)
End Select
ApplicationLog.WriteInfoLog($"编辑页面执行流程导出完成。")
Catch ex As Exception
ApplicationLog.WriteErrorLog($"编辑页面执行流程导出失败,原因:{ex.Message}")
MsgBox($"编辑页面执行流程导出失败,原因:{ex.Message}")
End Try
Cursor = Cursors.Arrow
End Using
End Sub
#Region "Package表格"
Private Sub InitGrid(Optional stationplan As StationPackagePlan = Nothing)
With GrdStationPlan
.AutoRedraw = False
.NewFile()
.BorderStyle = FlexCell.BorderStyleEnum.None
.Cols = ColNames.Max
.Rows = RowItems.Max
.ExtendLastCol = True
.DisplayRowNumber = True
.Cell(0, ColNames.Item).Text = "Item"
.Cell(0, ColNames.Value).Text = "Value"
.Column(ColNames.Item).Width = 200
.Column(ColNames.Item).Locked = True
.DefaultRowHeight = 20
.DefaultFont = New Font("微软雅黑", 10)
For i As Integer = 1 To RowItems.Max - 1
.Cell(i, ColNames.Item).Text = [Enum].GetName(GetType(RowItems), i)
Next
'.Cell(RowItems.CheckSnTested, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.CheckSnPackaged, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.CheckSnMO, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.MissingQuantity, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.BarCodeType, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
.Cell(RowItems.AutoPrint, ColNames.Value).CellType = FlexCell.CellTypeEnum.CheckBox
.Cell(RowItems.BoxMumEditKey, ColNames.Item).Text = "MaxNum"
'.Cell(RowItems.ErrorSound, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
'.Cell(RowItems.TemplateFile, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
'.Cell(RowItems.CompanyLogo, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
FillGrid(stationplan)
.AutoRedraw = True
.Refresh()
End With
End Sub
Private Sub FillGrid(stationplan As StationPackagePlan)
If stationplan Is Nothing Then Return
With GrdStationPlan
'.Cell(RowItems.CheckSnTested, ColNames.Value).Text = stationplan.CheckSnTested.ToString
'.Cell(RowItems.CheckSnPackaged, ColNames.Value).Text = stationplan.CheckSnPackaged.ToString
'.Cell(RowItems.CheckSnMO, ColNames.Value).Text = stationplan.CheckSnMO.ToString
'.Cell(RowItems.PictureCount, ColNames.Value).Text = stationplan.PictureCount.ToString
'.Cell(RowItems.UnlockKey, ColNames.Value).Text = stationplan.UnlockKey
'.Cell(RowItems.BarCodeType, ColNames.Value).Text = stationplan.BarCodeType.ToString
'.Cell(RowItems.MissingQuantity, ColNames.Value).Text = stationplan.MissingQuantity.ToString
'.Cell(RowItems.MissingQuantityKey, ColNames.Value).Text = stationplan.MissingQuantityKey
.Cell(RowItems.AutoPrint, ColNames.Value).Text = stationplan.AutoPrint.ToString
'.Cell(RowItems.ErrorSound, ColNames.Value).Text = stationplan.ErrorSound
'.Cell(RowItems.TemplateFile, ColNames.Value).Text = stationplan.TemplateFile
.Cell(RowItems.BoxMumEditKey, ColNames.Value).Text = stationplan.BoxMumEditKey
'.Cell(RowItems.CompanyLogo, ColNames.Value).Text = stationplan.CompanyLogo
'.Cell(RowItems.CompanyName, ColNames.Value).Text = stationplan.CompanyName
'.Cell(RowItems.BoxNumText, ColNames.Value).Text = stationplan.BoxNumText
'.Cell(RowItems.BoxBarCode, ColNames.Value).Text = stationplan.BoxBarCode
End With
If StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
End Sub
Private Sub UpdateGrid(stationplan As StationPackagePlan)
If _stationPlan Is Nothing Then Return
With GrdStationPlan
'If [Enum].TryParse(.Cell(RowItems.CheckSnTested, ColNames.Value).Text, stationplan.CheckSnTested) = False Then
' MsgBox("更新CheckSnTested失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.CheckSnPackaged, ColNames.Value).Text, stationplan.CheckSnPackaged) = False Then
' MsgBox("更新CheckSnPackaged失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.CheckSnMO, ColNames.Value).Text, stationplan.CheckSnMO) = False Then
' MsgBox("更新CheckSnMO失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.BarCodeType, ColNames.Value).Text, stationplan.BarCodeType) = False Then
' MsgBox("更新BarCodeType失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.MissingQuantity, ColNames.Value).Text, stationplan.MissingQuantity) = False Then
' MsgBox("更新MissingQuantity失败!")
' Return
'End If
'stationplan.PictureCount = .Cell(RowItems.PictureCount, ColNames.Value).IntegerValue
'stationplan.UnlockKey = .Cell(RowItems.UnlockKey, ColNames.Value).Text
'stationplan.MissingQuantityKey = .Cell(RowItems.MissingQuantityKey, ColNames.Value).Text
stationplan.AutoPrint = .Cell(RowItems.AutoPrint, ColNames.Value).BooleanValue
'stationplan.ErrorSound = .Cell(RowItems.ErrorSound, ColNames.Value).Text
' stationplan.TemplateFile = .Cell(RowItems.TemplateFile, ColNames.Value).Text
stationplan.BoxMumEditKey = .Cell(RowItems.BoxMumEditKey, ColNames.Value).Text
'stationplan.CompanyLogo = .Cell(RowItems.CompanyLogo, ColNames.Value).Text
'stationplan.CompanyName = .Cell(RowItems.CompanyName, ColNames.Value).Text
'stationplan.BoxNumText = .Cell(RowItems.BoxNumText, ColNames.Value).Text
'stationplan.BoxBarCode = .Cell(RowItems.BoxBarCode, ColNames.Value).Text
End With
End Sub
Private Sub GrdStationPlan_ButtonClick(Sender As Object, e As FlexCell.Grid.ButtonClickEventArgs) Handles GrdStationPlan.ButtonClick
Select Case e.Row
'Case RowItems.ErrorSound
' DlgOpenFile.Filter = "图像资源 (*.jpg;*.png;*.gif;*.ico)|*.jpg;*.png;*.gif;*.ico"
'Case RowItems.TemplateFile
' DlgOpenFile.Filter = "模板资源 (*.btw)|*.btw"
' 'Case RowItems.CompanyLogo
' DlgOpenFile.Filter = "图像资源 (*.jpg;*.png;*.gif;*.ico)|*.jpg;*.png;*.gif;*.ico"
End Select
DlgOpenFile.CheckFileExists = True
DlgOpenFile.CheckPathExists = True
If DlgOpenFile.ShowDialog() <> DialogResult.OK Then Return
Dim fileName As String = $"{DlgOpenFile.SafeFileName}"
Dim fileDir As String = UtsPath.GetStationPacketResourceDirPath(_stationPlan.ParentPacket.Name)
Dim fliePath As String = $"{fileDir}\{fileName}"
GrdStationPlan.Cell(e.Row, ColNames.Value).Text = fileName
'导入文件
Try
IO.File.Copy(DlgOpenFile.FileName, fliePath, True)
Catch ex As Exception
MsgBox($"导入资源文件失败,{ex.Message}")
End Try
End Sub
Private Sub GrdStationPlan_ComboDropDown(Sender As Object, e As FlexCell.Grid.ComboDropDownEventArgs) Handles GrdStationPlan.ComboDropDown
GrdStationPlan.ComboBox(0).Items.Clear()
Select Case e.Row
'Case RowItems.CheckSnTested
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.CheckSnPackaged
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.CheckSnMO
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.MissingQuantity
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(MissCountStatus)))
'Case RowItems.BarCodeType
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(BarcodeTypes)))
End Select
End Sub
Private Sub GrdStationPlan_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles GrdStationPlan.CellChange
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed
End Sub
Enum ColNames
SN
Item
Value
Max
End Enum
Enum RowItems
''' <summary>固定行</summary>
<System.ComponentModel.Description("固定行")>
SN
'''' <summary>校验条码未测试后处理方式</summary>
'<System.ComponentModel.Description("校验条码未测试后处理方式")>
'CheckSnTested
'''' <summary>校验条码已参与包装后处理方式</summary>
'<System.ComponentModel.Description("校验条码已参与包装后处理方式")>
'CheckSnPackaged
'''' <summary>校验条码不属于指定MO后处理方式</summary>
'<System.ComponentModel.Description("校验条码不属于指定MO后处理方式")>
'CheckSnMO
'''' <summary>拍摄保存图像的数量</summary>
'<System.ComponentModel.Description("拍摄保存图像的数量")>
'PictureCount
'''' <summary>解锁密码</summary>
'<System.ComponentModel.Description("解锁密码")>
'UnlockKey
'''' <summary>条码类型</summary>
'<System.ComponentModel.Description("条码类型")>
'BarCodeType
'''' <summary>缺失条码数量后的处理方式</summary>
'<System.ComponentModel.Description("缺失条码数量后的处理方式")>
'MissingQuantity
'''' <summary>缺失条码数量后的解锁密码</summary>
'<System.ComponentModel.Description("缺失条码数量后的解锁密码")>
'MissingQuantityKey
''' <summary>是否自动打印</summary>
<System.ComponentModel.Description("是否自动录入")>
AutoPrint
'''' <summary>发生错误后报警文件</summary>
'<System.ComponentModel.Description("发生错误后报警文件")>
'ErrorSound
'''' <summary>模板文件名</summary>
'<System.ComponentModel.Description("模板文件名")>
'TemplateFile
''' <summary>箱号编辑密码</summary>
<System.ComponentModel.Description("箱号编辑密码")>
BoxMumEditKey
'''' <summary>公司Logo文件</summary>
'<System.ComponentModel.Description("公司Logo文件")>
'CompanyLogo
'''' <summary>公司名称</summary>
'<System.ComponentModel.Description("公司名称")>
'CompanyName
'''' <summary>箱号规则</summary>
'<System.ComponentModel.Description("箱号规则")>
'BoxNumText
'''' <summary>箱号条码</summary>
'<System.ComponentModel.Description("箱号条码")>
'BoxBarCode
Max
End Enum
Private Sub GrdStationPlan_SelChange(Sender As Object, e As FlexCell.Grid.SelChangeEventArgs) Handles GrdStationPlan.SelChange
If e.FirstRow <= RowItems.SN OrElse e.FirstRow > GrdStationPlan.Rows - 1 Then Return
Dim row As Integer = e.FirstRow
Dim a As RowItems
If [Enum].TryParse(row.ToString, a) Then
LblDesc.Text = $"Row:{row}{vbCrLf}Desc:{GetEnumDescription(a)}"
Else
LblDesc.Text = $"Row:{row}{vbCrLf}Desc:无说明"
End If
End Sub
Public Function GetEnumDescription(enumValue As RowItems) As String
Dim str As String = enumValue.ToString()
Dim field As System.Reflection.FieldInfo = enumValue.GetType().GetField(str)
Dim objs() As Object = field.GetCustomAttributes(GetType(System.ComponentModel.DescriptionAttribute), False)
If objs Is Nothing OrElse objs.Length = 0 Then Return str
Dim da As System.ComponentModel.DescriptionAttribute = CType(objs(0), ComponentModel.DescriptionAttribute)
Return da.Description
End Function
#End Region
End Class

View File

@@ -0,0 +1,485 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Mars_P3_FrmStationTest
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.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer2 = New System.Windows.Forms.SplitContainer()
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
Me.SplitContainer3 = New System.Windows.Forms.SplitContainer()
Me.Label2 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.TextBox2 = New System.Windows.Forms.TextBox()
Me.TextBox1 = New System.Windows.Forms.TextBox()
Me.SplitContainer4 = New System.Windows.Forms.SplitContainer()
Me.TreeViewEx1 = New UTS_Core.UTSModule.Station.TreeViewEx()
Me.lab1 = New System.Windows.Forms.Label()
Me.txt_inputnum = New System.Windows.Forms.TextBox()
Me.Button2 = New System.Windows.Forms.Button()
Me.Button1 = New System.Windows.Forms.Button()
Me.Label8 = New System.Windows.Forms.Label()
Me.txt_unitweight = New System.Windows.Forms.TextBox()
Me.Label7 = New System.Windows.Forms.Label()
Me.txt_labstring = New System.Windows.Forms.TextBox()
Me.Label6 = New System.Windows.Forms.Label()
Me.txt_SnCode = New System.Windows.Forms.TextBox()
Me.Label5 = New System.Windows.Forms.Label()
Me.txt_colorbox = New System.Windows.Forms.TextBox()
Me.Label4 = New System.Windows.Forms.Label()
Me.txt_MacCode = New System.Windows.Forms.TextBox()
Me.SplitContainer5 = New System.Windows.Forms.SplitContainer()
Me.lab_Test_cnt = New System.Windows.Forms.Label()
Me.Label3 = New System.Windows.Forms.Label()
Me.lab_test_num = New System.Windows.Forms.Label()
Me.Label9 = New System.Windows.Forms.Label()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer2.Panel1.SuspendLayout()
Me.SplitContainer2.Panel2.SuspendLayout()
Me.SplitContainer2.SuspendLayout()
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer3.Panel1.SuspendLayout()
Me.SplitContainer3.Panel2.SuspendLayout()
Me.SplitContainer3.SuspendLayout()
CType(Me.SplitContainer4, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer4.Panel1.SuspendLayout()
Me.SplitContainer4.Panel2.SuspendLayout()
Me.SplitContainer4.SuspendLayout()
CType(Me.SplitContainer5, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer5.Panel1.SuspendLayout()
Me.SplitContainer5.Panel2.SuspendLayout()
Me.SplitContainer5.SuspendLayout()
Me.SuspendLayout()
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.SplitContainer3)
Me.SplitContainer1.Size = New System.Drawing.Size(984, 561)
Me.SplitContainer1.SplitterDistance = 307
Me.SplitContainer1.TabIndex = 0
'
'SplitContainer2
'
Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer2.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer2.Name = "SplitContainer2"
Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer2.Panel1
'
Me.SplitContainer2.Panel1.Controls.Add(Me.SplitContainer5)
'
'SplitContainer2.Panel2
'
Me.SplitContainer2.Panel2.Controls.Add(Me.RichTextBox1)
Me.SplitContainer2.Size = New System.Drawing.Size(307, 561)
Me.SplitContainer2.SplitterDistance = 177
Me.SplitContainer2.TabIndex = 0
'
'RichTextBox1
'
Me.RichTextBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.RichTextBox1.Location = New System.Drawing.Point(0, 0)
Me.RichTextBox1.Name = "RichTextBox1"
Me.RichTextBox1.Size = New System.Drawing.Size(307, 380)
Me.RichTextBox1.TabIndex = 1
Me.RichTextBox1.Text = ""
'
'SplitContainer3
'
Me.SplitContainer3.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer3.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer3.Name = "SplitContainer3"
Me.SplitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer3.Panel1
'
Me.SplitContainer3.Panel1.Controls.Add(Me.Label2)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label1)
Me.SplitContainer3.Panel1.Controls.Add(Me.TextBox2)
Me.SplitContainer3.Panel1.Controls.Add(Me.TextBox1)
'
'SplitContainer3.Panel2
'
Me.SplitContainer3.Panel2.Controls.Add(Me.SplitContainer4)
Me.SplitContainer3.Size = New System.Drawing.Size(673, 561)
Me.SplitContainer3.SplitterDistance = 177
Me.SplitContainer3.TabIndex = 0
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label2.Location = New System.Drawing.Point(3, 107)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(107, 27)
Me.Label2.TabIndex = 3
Me.Label2.Text = "彩盒码:"
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label1.Location = New System.Drawing.Point(3, 32)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(107, 27)
Me.Label1.TabIndex = 2
Me.Label1.Text = "装箱码:"
'
'TextBox2
'
Me.TextBox2.Font = New System.Drawing.Font("宋体", 29.0!)
Me.TextBox2.Location = New System.Drawing.Point(116, 90)
Me.TextBox2.Name = "TextBox2"
Me.TextBox2.Size = New System.Drawing.Size(525, 52)
Me.TextBox2.TabIndex = 1
'
'TextBox1
'
Me.TextBox1.Font = New System.Drawing.Font("宋体", 29.0!)
Me.TextBox1.Location = New System.Drawing.Point(116, 32)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(525, 52)
Me.TextBox1.TabIndex = 0
'
'SplitContainer4
'
Me.SplitContainer4.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer4.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer4.Name = "SplitContainer4"
'
'SplitContainer4.Panel1
'
Me.SplitContainer4.Panel1.Controls.Add(Me.TreeViewEx1)
'
'SplitContainer4.Panel2
'
Me.SplitContainer4.Panel2.Controls.Add(Me.lab1)
Me.SplitContainer4.Panel2.Controls.Add(Me.txt_inputnum)
Me.SplitContainer4.Panel2.Controls.Add(Me.Button2)
Me.SplitContainer4.Panel2.Controls.Add(Me.Button1)
Me.SplitContainer4.Panel2.Controls.Add(Me.Label8)
Me.SplitContainer4.Panel2.Controls.Add(Me.txt_unitweight)
Me.SplitContainer4.Panel2.Controls.Add(Me.Label7)
Me.SplitContainer4.Panel2.Controls.Add(Me.txt_labstring)
Me.SplitContainer4.Panel2.Controls.Add(Me.Label6)
Me.SplitContainer4.Panel2.Controls.Add(Me.txt_SnCode)
Me.SplitContainer4.Panel2.Controls.Add(Me.Label5)
Me.SplitContainer4.Panel2.Controls.Add(Me.txt_colorbox)
Me.SplitContainer4.Panel2.Controls.Add(Me.Label4)
Me.SplitContainer4.Panel2.Controls.Add(Me.txt_MacCode)
Me.SplitContainer4.Size = New System.Drawing.Size(673, 380)
Me.SplitContainer4.SplitterDistance = 320
Me.SplitContainer4.TabIndex = 0
'
'TreeViewEx1
'
Me.TreeViewEx1.Dock = System.Windows.Forms.DockStyle.Fill
Me.TreeViewEx1.Location = New System.Drawing.Point(0, 0)
Me.TreeViewEx1.Name = "TreeViewEx1"
Me.TreeViewEx1.Size = New System.Drawing.Size(320, 380)
Me.TreeViewEx1.TabIndex = 0
'
'lab1
'
Me.lab1.AutoSize = True
Me.lab1.Font = New System.Drawing.Font("宋体", 10.0!)
Me.lab1.Location = New System.Drawing.Point(32, 21)
Me.lab1.Name = "lab1"
Me.lab1.Size = New System.Drawing.Size(70, 14)
Me.lab1.TabIndex = 21
Me.lab1.Text = "装载数量:"
Me.lab1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_inputnum
'
Me.txt_inputnum.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_inputnum.Location = New System.Drawing.Point(108, 18)
Me.txt_inputnum.Name = "txt_inputnum"
Me.txt_inputnum.ReadOnly = True
Me.txt_inputnum.Size = New System.Drawing.Size(236, 23)
Me.txt_inputnum.TabIndex = 20
'
'Button2
'
Me.Button2.Location = New System.Drawing.Point(232, 285)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(89, 52)
Me.Button2.TabIndex = 19
Me.Button2.Text = "录入箱体信息"
Me.Button2.UseVisualStyleBackColor = True
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(80, 285)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(89, 52)
Me.Button1.TabIndex = 18
Me.Button1.Text = "删除节点信息"
Me.Button1.UseVisualStyleBackColor = True
'
'Label8
'
Me.Label8.AutoSize = True
Me.Label8.Font = New System.Drawing.Font("宋体", 10.0!)
Me.Label8.Location = New System.Drawing.Point(18, 212)
Me.Label8.Name = "Label8"
Me.Label8.Size = New System.Drawing.Size(84, 14)
Me.Label8.TabIndex = 17
Me.Label8.Text = "UnitWeigth:"
Me.Label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_unitweight
'
Me.txt_unitweight.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_unitweight.Location = New System.Drawing.Point(108, 209)
Me.txt_unitweight.Name = "txt_unitweight"
Me.txt_unitweight.ReadOnly = True
Me.txt_unitweight.Size = New System.Drawing.Size(236, 23)
Me.txt_unitweight.TabIndex = 16
'
'Label7
'
Me.Label7.AutoSize = True
Me.Label7.Font = New System.Drawing.Font("宋体", 10.0!)
Me.Label7.Location = New System.Drawing.Point(4, 176)
Me.Label7.Name = "Label7"
Me.Label7.Size = New System.Drawing.Size(98, 14)
Me.Label7.TabIndex = 15
Me.Label7.Text = "label_string:"
Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_labstring
'
Me.txt_labstring.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_labstring.Location = New System.Drawing.Point(110, 173)
Me.txt_labstring.Name = "txt_labstring"
Me.txt_labstring.ReadOnly = True
Me.txt_labstring.Size = New System.Drawing.Size(236, 23)
Me.txt_labstring.TabIndex = 14
'
'Label6
'
Me.Label6.AutoSize = True
Me.Label6.Font = New System.Drawing.Font("宋体", 10.0!)
Me.Label6.Location = New System.Drawing.Point(46, 98)
Me.Label6.Name = "Label6"
Me.Label6.Size = New System.Drawing.Size(56, 14)
Me.Label6.TabIndex = 13
Me.Label6.Text = "SnCode:"
Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_SnCode
'
Me.txt_SnCode.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_SnCode.Location = New System.Drawing.Point(110, 95)
Me.txt_SnCode.Name = "txt_SnCode"
Me.txt_SnCode.ReadOnly = True
Me.txt_SnCode.Size = New System.Drawing.Size(236, 23)
Me.txt_SnCode.TabIndex = 12
'
'Label5
'
Me.Label5.AutoSize = True
Me.Label5.Font = New System.Drawing.Font("宋体", 10.0!)
Me.Label5.Location = New System.Drawing.Point(4, 137)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(98, 14)
Me.Label5.TabIndex = 11
Me.Label5.Text = "ColorBoxCode:"
Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_colorbox
'
Me.txt_colorbox.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_colorbox.Location = New System.Drawing.Point(110, 134)
Me.txt_colorbox.Name = "txt_colorbox"
Me.txt_colorbox.ReadOnly = True
Me.txt_colorbox.Size = New System.Drawing.Size(236, 23)
Me.txt_colorbox.TabIndex = 10
'
'Label4
'
Me.Label4.AutoSize = True
Me.Label4.Font = New System.Drawing.Font("宋体", 10.0!)
Me.Label4.Location = New System.Drawing.Point(39, 59)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(63, 14)
Me.Label4.TabIndex = 9
Me.Label4.Text = "MacCode:"
Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_MacCode
'
Me.txt_MacCode.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_MacCode.Location = New System.Drawing.Point(110, 56)
Me.txt_MacCode.Name = "txt_MacCode"
Me.txt_MacCode.ReadOnly = True
Me.txt_MacCode.Size = New System.Drawing.Size(236, 23)
Me.txt_MacCode.TabIndex = 4
'
'SplitContainer5
'
Me.SplitContainer5.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer5.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer5.Name = "SplitContainer5"
'
'SplitContainer5.Panel1
'
Me.SplitContainer5.Panel1.Controls.Add(Me.lab_Test_cnt)
Me.SplitContainer5.Panel1.Controls.Add(Me.Label3)
'
'SplitContainer5.Panel2
'
Me.SplitContainer5.Panel2.Controls.Add(Me.lab_test_num)
Me.SplitContainer5.Panel2.Controls.Add(Me.Label9)
Me.SplitContainer5.Size = New System.Drawing.Size(307, 177)
Me.SplitContainer5.SplitterDistance = 136
Me.SplitContainer5.TabIndex = 2
'
'lab_Test_cnt
'
Me.lab_Test_cnt.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lab_Test_cnt.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_Test_cnt.Font = New System.Drawing.Font("宋体", 36.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.lab_Test_cnt.Location = New System.Drawing.Point(0, 71)
Me.lab_Test_cnt.Name = "lab_Test_cnt"
Me.lab_Test_cnt.Size = New System.Drawing.Size(136, 106)
Me.lab_Test_cnt.TabIndex = 14
Me.lab_Test_cnt.Text = "0个"
Me.lab_Test_cnt.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Label3
'
Me.Label3.BackColor = System.Drawing.SystemColors.ActiveCaption
Me.Label3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.Label3.Dock = System.Windows.Forms.DockStyle.Top
Me.Label3.Font = New System.Drawing.Font("宋体", 16.0!, System.Drawing.FontStyle.Bold)
Me.Label3.Location = New System.Drawing.Point(0, 0)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(136, 71)
Me.Label3.TabIndex = 13
Me.Label3.Text = "总测试数量"
Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'lab_test_num
'
Me.lab_test_num.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lab_test_num.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_test_num.Font = New System.Drawing.Font("宋体", 36.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.lab_test_num.Location = New System.Drawing.Point(0, 71)
Me.lab_test_num.Name = "lab_test_num"
Me.lab_test_num.Size = New System.Drawing.Size(167, 106)
Me.lab_test_num.TabIndex = 15
Me.lab_test_num.Text = "0个"
Me.lab_test_num.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Label9
'
Me.Label9.BackColor = System.Drawing.SystemColors.GradientActiveCaption
Me.Label9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.Label9.Dock = System.Windows.Forms.DockStyle.Top
Me.Label9.Font = New System.Drawing.Font("宋体", 16.0!, System.Drawing.FontStyle.Bold)
Me.Label9.Location = New System.Drawing.Point(0, 0)
Me.Label9.Name = "Label9"
Me.Label9.Size = New System.Drawing.Size(167, 71)
Me.Label9.TabIndex = 14
Me.Label9.Text = "本次启动测试数量"
Me.Label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'ZQ_Mars_P3_FrmStationTest
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(984, 561)
Me.Controls.Add(Me.SplitContainer1)
Me.Name = "ZQ_Mars_P3_FrmStationTest"
Me.Text = "ZQ_Mars_P3_FrmStationTest"
Me.SplitContainer1.Panel1.ResumeLayout(False)
Me.SplitContainer1.Panel2.ResumeLayout(False)
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer1.ResumeLayout(False)
Me.SplitContainer2.Panel1.ResumeLayout(False)
Me.SplitContainer2.Panel2.ResumeLayout(False)
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer2.ResumeLayout(False)
Me.SplitContainer3.Panel1.ResumeLayout(False)
Me.SplitContainer3.Panel1.PerformLayout()
Me.SplitContainer3.Panel2.ResumeLayout(False)
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer3.ResumeLayout(False)
Me.SplitContainer4.Panel1.ResumeLayout(False)
Me.SplitContainer4.Panel2.ResumeLayout(False)
Me.SplitContainer4.Panel2.PerformLayout()
CType(Me.SplitContainer4, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer4.ResumeLayout(False)
Me.SplitContainer5.Panel1.ResumeLayout(False)
Me.SplitContainer5.Panel2.ResumeLayout(False)
CType(Me.SplitContainer5, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer5.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents SplitContainer2 As SplitContainer
Friend WithEvents SplitContainer3 As SplitContainer
Friend WithEvents TextBox2 As TextBox
Friend WithEvents TextBox1 As TextBox
Friend WithEvents Label2 As Label
Friend WithEvents Label1 As Label
Friend WithEvents SplitContainer4 As SplitContainer
Friend WithEvents TreeViewEx1 As UTS_Core.UTSModule.Station.TreeViewEx
Friend WithEvents Label4 As Label
Friend WithEvents txt_MacCode As TextBox
Friend WithEvents Label7 As Label
Friend WithEvents txt_labstring As TextBox
Friend WithEvents Label6 As Label
Friend WithEvents txt_SnCode As TextBox
Friend WithEvents Label5 As Label
Friend WithEvents txt_colorbox As TextBox
Friend WithEvents Button2 As Button
Friend WithEvents Button1 As Button
Friend WithEvents Label8 As Label
Friend WithEvents txt_unitweight As TextBox
Friend WithEvents lab1 As Label
Friend WithEvents txt_inputnum As TextBox
Friend WithEvents RichTextBox1 As RichTextBox
Friend WithEvents SplitContainer5 As SplitContainer
Friend WithEvents lab_Test_cnt As Label
Friend WithEvents Label3 As Label
Friend WithEvents lab_test_num As Label
Friend WithEvents Label9 As Label
End Class

View 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>

View File

@@ -0,0 +1,444 @@
Imports System.IO
Imports System.Net
Imports System.Text
Imports Newtonsoft.Json
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Imports UTS_Core.UTSModule.Test
Imports UTS_Core.UTSModule.Test.StatusMonitor
Public Class ZQ_Mars_P3_FrmStationTest
Implements IProcessStation
Private _utsApp As UtsAppForm
Private _stationPlan As StationPackagePlan
Private NodePtr As TreeNode
'最大装载数量 赋值需要减一
Private Max_Loading As Integer = 10
Private PrintfNum As Integer = 0
Private Printfcnt As Integer = 0
#Region "UTS框架"
''' <summary>
''' 站位改变事件
''' </summary>
Public Sub Station_Changed() Implements IProcessStation.StationChanged
'Todo:站位变化代码
ApplicationLog.WriteInfoLog($"测试页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
Integer.TryParse(_stationPlan.BoxMumEditKey, Max_Loading)
Max_Loading = Max_Loading - 1
'清除表格数据
'InitBarcodeGrid()
ApplicationLog.WriteInfoLog($"测试页面站位变更完成!")
End Sub
''' <summary>
''' 初始化App
''' </summary>
''' <returns></returns>
Private Function InitializeUtsApp() As Boolean
_utsApp = UtsAppForm.CreateSingleton()
_utsApp.AddStatisticsObserver(CType(Me, IProcessStation))
Try
If _utsApp.IsInitialized = False Then
_utsApp.Initialize(ProcessStation.StationTypeEnum.Package) 'Todo:可根据需要限定可选站位
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"初始化窗体失败,原因:{ex.Message}!")
MsgBox($"初始化窗体失败,原因:{ex.Message}")
Close()
Return False
End Try
Return True
End Function
''' <summary>
''' 加载窗体
''' </summary>
''' <param name="parentControl"></param>
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
Private Sub TheTestResults(dutSn As String, ispass As TestResult.TestResultEnum, datenow As Date, Optional FailMsg As RowNode = Nothing, Optional Customfield As Dictionary(Of String String) = Nothing)
'重置信息
_utsApp.TestResult.ResetTestResult()
'产线索引
_utsApp.TestResult.ProductionLineID = -1
'测试开始时间
_utsApp.TestResult.StartTime = datenow
_utsApp.TestResult.DUT_SN = dutSn
_utsApp.TestResult.TestResult = ispass
_utsApp.TestResult.UsedTime = Now - datenow
If Not IsNothing(FailMsg) Then
_utsApp.TestResult.FailSteps.Add(FailMsg)
End If
If Not IsNothing(Customfield) Then
For indexptr As Integer = 0 To Customfield.Count - 1
_utsApp.TestResult.AddCustomRecord($"{Customfield.Keys(indexptr)}", $"{Customfield.Values(indexptr)}")
Next
End If
Try
'提交测试记录,缺省参数默认为FalseTrue则测试记录唯一,覆盖相同条码记录
_utsApp.CommitTestResult(True)
If ispass = TestResult.TestResultEnum.Pass Then
TestStatusMonitor.TestStatus = StatusMonitor.TestStatusMonitor.TestStatusEnum.TestPass
Else
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestFail
End If
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestPass
Catch ex As Exception
ApplicationLog.WriteErrorLog($"写入称量数据失败:{ex.Message}")
MsgBox($"写入称量数据失败:{ex.Message}")
'LblResult.Text = "FAIL"
'LblResult.ForeColor = Color.Red
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestFail
Return
End Try
End Sub
#End Region
#Region "Web 数据接口"
Public Function AccessApi2(uart As String, dbName As String, theKey As String Optional dic As Dictionary(Of String, String) = Nothing) As JsonPtr
Dim jsonString As String = String.Empty
Dim ptr As String = $"Pwd=actop00803&DBName={dbName}&Key={theKey}"
If Not IsNothingdic Then
ptr = ptr & $"&JsonData={JsonConvert.SerializeObject(dic)}"
End If
'/http://uts-data.com/CommonApi/Combind_Sn_Info? Pwd%3D%26*$@%23235%26DBName%3Duts_zongqing%26Key%3DBarcode%26Barcode%3D1
Try
jsonString = PostData(uart, ptr)
Console.WriteLine(jsonString)
If jsonString = Nothing Then
Return Nothing
End If
Dim login As JsonPtr = JsonConvert.DeserializeObject(Of JsonPtr)(jsonString)
If login.Message.Contains"成功" Then
Return login
Else
Return Nothing
End If
Catch ex As Exception
MsgBox($"{ex.Message}!盒码获取失败请联系管理员")
Return Nothing
End Try
End Function
Public Shared Function PostData(ByVal url As String, ByVal data As String) As String
ServicePointManager.Expect100Continue = False
Dim request As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
'//Post请求方式
request.Method = "post"
'内容类型
request.ContentType = "application/x-www-form-urlencoded"
'将URL编码后的字符串转化为字节
Dim encoding As New UTF8Encoding()
Dim bys As Byte() = encoding.GetBytes(data)
'设置请求的 ContentLength
request.ContentLength = bys.Length
'获得请 求流
Dim newStream As Stream = request.GetRequestStream()
newStream.Write(bys, 0, bys.Length)
newStream.Close()
'获得响应流
Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
Return sr.ReadToEnd
End Function
#End Region
#Region "UIEven"
Private Sub RichTextBox1_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox1.TextChanged
RichTextBox1.SelectionStart = RichTextBox1.TextLength
RichTextBox1.ScrollToCaret()
End Sub
Delegate Sub IPSetRichTextBox1Text(TextBox1 As RichTextBox, text As String txtcolor As Color)
Private Sub SetRichTextBox1Text(TextBox1 As RichTextBox, text As String txtcolor As Color)
If InvokeRequired = True Then
Dim dev As New IPSetRichTextBox1Text(AddressOf SetRichTextBox1Text)
Me.Invoke(dev, New Object() {TextBox1, text, txtcolor})
Else
With TextBox1
.SuspendLayout()
.SelectionColor = txtcolor
.AppendText(text & vbCrLf)
.ResumeLayout(False)
End With
End If
End Sub
Public Sub initTreeViewEx1()
TreeViewEx1.Nodes.Clear()
TreeViewEx1.ItemHeight = 21
TreeViewEx1.CheckBoxes = False
TreeViewEx1.HideSelection = True
TreeViewEx1.SelectedImageKey = TreeViewEx1.ImageKey
End Sub
Private Sub TextBox1_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles TextBox1.PreviewKeyDown
If e.KeyData = Keys.Enter Then
If String.IsNullOrWhiteSpace(TextBox1.Text) Then
MsgBox("箱号为空,请输入箱号!")
Return
End If
Dim jsonclass As JsonPtr = AccessApi2("http://uts-data.com/CommonApi/Get_Sn_Info" "uts_zongqing", TextBox1.Text.Trim)
If IsNothing(jsonclass) Then
NodePtr = New TreeNode
NodePtr.Text = "箱体码:" & TextBox1.Text.Trim
NodePtr.Tag = Now
TextBox2.Focus()
TextBox2.SelectAll()
TextBox1.ReadOnly = True
TreeViewEx1.Nodes.Clear()
TreeViewEx1.Nodes.Add(NodePtr)
TreeViewEx1.Nodes(0).Expand()
Else
MsgBox("该箱号已使用,请更换箱号!")
TextBox1.Focus()
TextBox1.SelectAll()
Return
End If
End If
End Sub
Private Sub TextBox2_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles TextBox2.PreviewKeyDown
If e.KeyData = Keys.Enter Then
If String.IsNullOrWhiteSpace(TextBox2.Text) Then
MsgBox("彩盒码为空,请输入箱号!")
TextBox2.Focus()
TextBox2.SelectAll()
Return
End If
If IsNothing(NodePtr) Then
MsgBox("箱号为空,请输入箱号再进行录入")
TextBox1.Focus()
TextBox1.SelectAll()
TextBox1.ReadOnly = False
Return
End If
If NodePtr.Nodes.Count < Max_Loading Then
Dim jsonclass As JsonPtr = AccessApi2("http://uts-data.com/CommonApi/Get_Sn_Info", "uts_zongqing", TextBox2.Text.Trim)
If IsNothing(jsonclass) Then
MsgBox("未查询到彩盒码关联数据,请核实彩盒码!")
TextBox2.Focus()
TextBox2.SelectAll()
Return
End If
If DuplicateChecking(NodePtr, TextBox2.Text.Trim) Then
Dim node As New TreeNode
node.Text = "彩盒码:" & TextBox2.Text.Trim
node.Tag = jsonclass
NodePtr.Nodes.Add(node)
NodePtr.ExpandAll()
TextBox2.Focus()
TextBox2.SelectAll()
If _stationPlan.AutoPrint Then
If NodePtr.Nodes.Count = Max_Loading Then
TextBox1.Focus()
TextBox1.SelectAll()
TextBox1.ReadOnly = False
Button2.PerformClick()
Return
End If
End If
Else
MsgBox("彩盒码已记录,请输入箱号!")
TextBox2.Focus()
TextBox2.SelectAll()
Return
End If
Else
MsgBox($"装箱数已满,最大装载量为:{Max_Loading}")
TextBox1.Focus()
TextBox1.SelectAll()
TextBox1.ReadOnly = False
Return
End If
End If
End Sub
Public Function DuplicateChecking(node As TreeNode txt As String) As Boolean
For Each index As TreeNode In node.Nodes
If index.Text.Equals(txt.Trim) Then
Return False
End If
Next
Return True
End Function
Private Sub ZQ_Mars_P3_FrmStationTest_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ApplicationLog.WriteInfoLog($"测试页面加载中。")
If InitializeUtsApp() = False Then Return
initTreeViewEx1()
End Sub
Private Sub TreeViewEx1_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles TreeViewEx1.NodeMouseClick
If e.Button <> MouseButtons.Left Then Return
Dim node As TreeNode = TreeViewEx1.SelectedNode
If node Is Nothing Then Return
If node.Level = 0 Then
txt_inputnum.Text = node.Nodes.Count.ToString
txt_MacCode.Text = "------"
txt_colorbox.Text = "------"
txt_labstring.Text = "------"
txt_SnCode.Text = "------"
txt_unitweight.Text = "------"
Return
End If
Dim jsonclass As JsonPtr = CType(node.Tag, JsonPtr)
txt_MacCode.Text = jsonclass.Data.Mars_MacCodeP
txt_colorbox.Text = jsonclass.Data.Mars_ColorBox_BarCode
txt_inputnum.Text = "1"
txt_labstring.Text = jsonclass.Data.Barcode & "/" & jsonclass.Data.Mars_MacCodeP
txt_SnCode.Text = jsonclass.Data.Barcode
txt_unitweight.Text = jsonclass.Data.Mars_UnitWeigth
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If IsNothing(TreeViewEx1) Then Return
Dim node As TreeNode = TreeViewEx1.SelectedNode
If TreeViewEx1.Nodes(0).Equalsnode.Text Then
If MsgBox("该节点为箱体节点,删除将丢失已存在该箱体的记录。是否删除?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
TreeViewEx1.Nodes.RemoveAt(0)
TreeViewEx1.Nodes.Clear()
TextBox1.Text = ""
TextBox1.Focus()
TextBox1.SelectAll()
TextBox1.ReadOnly = False
End If
Else
TreeViewEx1.Nodes(0).Nodes.Remove(node)
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If TreeViewEx1.Nodes.Count = 0 Then
MsgBox("未添加箱体码信息,请先添加箱体码信息再进行数据录入!")
Return
ElseIf TreeViewEx1.Nodes.Count = 1 Then
If TreeViewEx1.Nodes(0).Nodes.Count < Max_Loading Then
If MsgBox("该箱体未满。是否继续装载?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
Return
End If
End If
InputBoxInformation(TreeViewEx1)
Else
MsgBox("箱体码信息异常,请联系开发者")
End If
End Sub
Public Sub InputBoxInformation(TreeView As UTS_Core.UTSModule.Station.TreeViewEx)
Dim Customfield As New Dictionary(Of String String)
Dim headnode As TreeNode = TreeView.Nodes(0)
Dim jsonclass As JsonPtr
Dim ricttxt As String = $"{Now:yyyy:HH:mm:ss:fff}箱体号:{headnode.Text} {vbCrLf }"
Dim datenow As Date = CDate(headnode.Tag)
Dim strbuff() As String = headnode.Text.Split(CChar(":"))
For i As Integer = 0 To headnode.Nodes.Count - 1
Dim index As TreeNode = headnode.Nodes(i)
jsonclass = CType(index.Tag, JsonPtr)
Customfield.Clear()
Customfield.Add("Mars_OutBoxCode", strbuff(1))
Customfield.Add("MacCode", jsonclass.Data.Mars_MacCodeP)
Customfield.Add("SnCode", jsonclass.Data.Barcode)
Customfield.Add("ColorBoxCode", jsonclass.Data.Mars_ColorBox_BarCode)
Customfield.Add("label_string", jsonclass.Data.Barcode & "/" & jsonclass.Data.Mars_MacCodeP)
Customfield.Add("Mars_UnitWeigth", jsonclass.Data.Mars_UnitWeigth)
If Not SetMars_OutBoxCode(strbuff(1), jsonclass.Data.Mars_ColorBox_BarCode) Then
MsgBox($"第{i}个彩盒码录入数据库失败,请联系开发者。彩盒码:{jsonclass.Data.Mars_ColorBox_BarCode}")
End If
TheTestResults(jsonclass.Data.Barcode, TestResult.TestResultEnum.Pass, datenow, Nothing, Customfield)
ricttxt = $"{ricttxt}{i}:{index.Text }{vbCrLf }"
Next
ricttxt = $"{ricttxt}-----------------{vbCrLf}"
SetRichTextBox1Text(RichTextBox1, ricttxt, Color.Blue)
'TestBoxnum = TestBoxnum + 1
'Label3.Text = TestBoxnum.ToString & "箱"
PrintfNum = PrintfNum + 1
'Label7.Text = PrintfNum.ToString & "个"
lab_test_num.Text = PrintfNum.ToString & ""
Printfcnt = My.Settings.P1_cnt + PrintfNum
lab_Test_cnt.Text = Printfcnt.ToString & ""
My.Settings.Save()
End Sub
Public Function SetMars_OutBoxCode(BoxCode As String, colorcode As String) As Boolean
Dim dic As New Dictionary(Of String, String
dic.Add("Mars_OutBoxCode" BoxCode) '称重值
dic.Add("Mars_ColorBox_BarCode" colorcode)
Dim Writesql As JsonPtr = AccessApi2("http://uts-data.com/CommonApi/Combind_Sn_Info", "uts_zongqing", "Mars_ColorBox_BarCode" dic)
If IsNothing(Writesql) Then
Return False
End If
Return True
End Function
#End Region
End Class

View File

@@ -0,0 +1,428 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Mars_P1_FrmStationPlan
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ZQ_Mars_P1_FrmStationPlan))
Me.ToolStripSeparator7 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugEnd = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStep = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugContinue = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator8 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugSetup = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugMain = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugPass = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugFail = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugCleanup = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator9 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugNode = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugNodeBegin = New System.Windows.Forms.ToolStripMenuItem()
Me.DlgOpenFile = New System.Windows.Forms.OpenFileDialog()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
Me.LblDesc = New System.Windows.Forms.Label()
Me.GrdStationPlan = New FlexCell.Grid()
Me.CmsPlanGrid = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.MsiCopyNode = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiCutNode = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiNodePaste = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiUndo = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiRedo = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiSaveNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiLoadNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStart = New System.Windows.Forms.ToolStripMenuItem()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.TsBtnOpen = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSave = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator()
Me.TsBtnLoad = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSaveAs = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
Me.StuMain = New System.Windows.Forms.StatusStrip()
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
CType(Me.SplitContainer1,System.ComponentModel.ISupportInitialize).BeginInit
Me.SplitContainer1.Panel1.SuspendLayout
Me.SplitContainer1.Panel2.SuspendLayout
Me.SplitContainer1.SuspendLayout
Me.GroupBox2.SuspendLayout
Me.CmsPlanGrid.SuspendLayout
Me.ToolStrip1.SuspendLayout
Me.SuspendLayout
'
'ToolStripSeparator7
'
Me.ToolStripSeparator7.Name = "ToolStripSeparator7"
Me.ToolStripSeparator7.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugEnd
'
Me.TsmiDebugEnd.Name = "TsmiDebugEnd"
Me.TsmiDebugEnd.ShortcutKeys = System.Windows.Forms.Keys.F2
Me.TsmiDebugEnd.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugEnd.Text = "退出执行"
'
'TsmiDebugStep
'
Me.TsmiDebugStep.Name = "TsmiDebugStep"
Me.TsmiDebugStep.ShortcutKeys = System.Windows.Forms.Keys.F3
Me.TsmiDebugStep.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStep.Text = "单步执行"
'
'TsmiDebugContinue
'
Me.TsmiDebugContinue.Name = "TsmiDebugContinue"
Me.TsmiDebugContinue.ShortcutKeys = System.Windows.Forms.Keys.F4
Me.TsmiDebugContinue.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugContinue.Text = "继续执行"
'
'ToolStripSeparator8
'
Me.ToolStripSeparator8.Name = "ToolStripSeparator8"
Me.ToolStripSeparator8.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugSetup
'
Me.TsmiDebugSetup.Name = "TsmiDebugSetup"
Me.TsmiDebugSetup.ShortcutKeys = System.Windows.Forms.Keys.F5
Me.TsmiDebugSetup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugSetup.Text = "Setup模块执行"
'
'TsmiDebugMain
'
Me.TsmiDebugMain.Name = "TsmiDebugMain"
Me.TsmiDebugMain.ShortcutKeys = System.Windows.Forms.Keys.F6
Me.TsmiDebugMain.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugMain.Text = "Main模块执行"
'
'TsmiDebugPass
'
Me.TsmiDebugPass.Name = "TsmiDebugPass"
Me.TsmiDebugPass.ShortcutKeys = System.Windows.Forms.Keys.F7
Me.TsmiDebugPass.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugPass.Text = "Pass模块执行"
'
'TsmiDebugFail
'
Me.TsmiDebugFail.Name = "TsmiDebugFail"
Me.TsmiDebugFail.ShortcutKeys = System.Windows.Forms.Keys.F8
Me.TsmiDebugFail.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugFail.Text = "Fail模块执行"
'
'TsmiDebugCleanup
'
Me.TsmiDebugCleanup.Name = "TsmiDebugCleanup"
Me.TsmiDebugCleanup.ShortcutKeys = System.Windows.Forms.Keys.F9
Me.TsmiDebugCleanup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugCleanup.Text = "Cleanup模块执行"
'
'ToolStripSeparator9
'
Me.ToolStripSeparator9.Name = "ToolStripSeparator9"
Me.ToolStripSeparator9.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugNode
'
Me.TsmiDebugNode.Name = "TsmiDebugNode"
Me.TsmiDebugNode.ShortcutKeys = System.Windows.Forms.Keys.F10
Me.TsmiDebugNode.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNode.Text = "节点测试"
'
'TsmiDebugNodeBegin
'
Me.TsmiDebugNodeBegin.Name = "TsmiDebugNodeBegin"
Me.TsmiDebugNodeBegin.ShortcutKeys = System.Windows.Forms.Keys.F11
Me.TsmiDebugNodeBegin.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNodeBegin.Text = "节点开始测试"
'
'DlgOpenFile
'
Me.DlgOpenFile.FileName = "OpenFileDialog1"
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 36)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.GroupBox2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.GroupBox1)
Me.SplitContainer1.Size = New System.Drawing.Size(800, 392)
Me.SplitContainer1.SplitterDistance = 361
Me.SplitContainer1.TabIndex = 6
'
'GroupBox2
'
Me.GroupBox2.Controls.Add(Me.LblDesc)
Me.GroupBox2.Controls.Add(Me.GrdStationPlan)
Me.GroupBox2.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox2.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.GroupBox2.Location = New System.Drawing.Point(0, 0)
Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(361, 392)
Me.GroupBox2.TabIndex = 0
Me.GroupBox2.TabStop = false
Me.GroupBox2.Text = "流程参数"
'
'LblDesc
'
Me.LblDesc.Dock = System.Windows.Forms.DockStyle.Bottom
Me.LblDesc.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.LblDesc.Location = New System.Drawing.Point(3, 328)
Me.LblDesc.Name = "LblDesc"
Me.LblDesc.Size = New System.Drawing.Size(355, 61)
Me.LblDesc.TabIndex = 6
'
'GrdStationPlan
'
Me.GrdStationPlan.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
Me.GrdStationPlan.BorderStyle = FlexCell.BorderStyleEnum.None
Me.GrdStationPlan.CheckedImage = Nothing
Me.GrdStationPlan.ContextMenuStrip = Me.CmsPlanGrid
Me.GrdStationPlan.DefaultFont = New System.Drawing.Font("宋体", 9!)
Me.GrdStationPlan.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.GrdStationPlan.GridColor = System.Drawing.Color.FromArgb(CType(CType(192,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(192,Byte),Integer))
Me.GrdStationPlan.Location = New System.Drawing.Point(0, 24)
Me.GrdStationPlan.Name = "GrdStationPlan"
Me.GrdStationPlan.Size = New System.Drawing.Size(358, 301)
Me.GrdStationPlan.TabIndex = 4
Me.GrdStationPlan.UncheckedImage = Nothing
'
'CmsPlanGrid
'
Me.CmsPlanGrid.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MsiCopyNode, Me.MsiCutNode, Me.MsiNodePaste, Me.ToolStripSeparator5, Me.MsiUndo, Me.MsiRedo, Me.ToolStripSeparator6, Me.MsiSaveNodeFile, Me.MsiLoadNodeFile, Me.ToolStripSeparator7, Me.TsmiDebugStart, Me.TsmiDebugEnd, Me.TsmiDebugStep, Me.TsmiDebugContinue, Me.ToolStripSeparator8, Me.TsmiDebugSetup, Me.TsmiDebugMain, Me.TsmiDebugPass, Me.TsmiDebugFail, Me.TsmiDebugCleanup, Me.ToolStripSeparator9, Me.TsmiDebugNode, Me.TsmiDebugNodeBegin})
Me.CmsPlanGrid.Name = "CmsMain"
Me.CmsPlanGrid.Size = New System.Drawing.Size(193, 430)
'
'MsiCopyNode
'
Me.MsiCopyNode.Enabled = false
Me.MsiCopyNode.Name = "MsiCopyNode"
Me.MsiCopyNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCopyNode.Text = "复制"
'
'MsiCutNode
'
Me.MsiCutNode.Enabled = false
Me.MsiCutNode.Name = "MsiCutNode"
Me.MsiCutNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCutNode.Text = "剪切"
'
'MsiNodePaste
'
Me.MsiNodePaste.Enabled = false
Me.MsiNodePaste.Name = "MsiNodePaste"
Me.MsiNodePaste.Size = New System.Drawing.Size(192, 22)
Me.MsiNodePaste.Text = "粘贴"
'
'ToolStripSeparator5
'
Me.ToolStripSeparator5.Name = "ToolStripSeparator5"
Me.ToolStripSeparator5.Size = New System.Drawing.Size(189, 6)
'
'MsiUndo
'
Me.MsiUndo.Enabled = false
Me.MsiUndo.Name = "MsiUndo"
Me.MsiUndo.Size = New System.Drawing.Size(192, 22)
Me.MsiUndo.Text = "撤销"
'
'MsiRedo
'
Me.MsiRedo.Enabled = false
Me.MsiRedo.Name = "MsiRedo"
Me.MsiRedo.Size = New System.Drawing.Size(192, 22)
Me.MsiRedo.Text = "重做"
'
'ToolStripSeparator6
'
Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
Me.ToolStripSeparator6.Size = New System.Drawing.Size(189, 6)
'
'MsiSaveNodeFile
'
Me.MsiSaveNodeFile.Name = "MsiSaveNodeFile"
Me.MsiSaveNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiSaveNodeFile.Text = "另存为节点文件"
'
'MsiLoadNodeFile
'
Me.MsiLoadNodeFile.Name = "MsiLoadNodeFile"
Me.MsiLoadNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiLoadNodeFile.Text = "加载节点文件"
'
'TsmiDebugStart
'
Me.TsmiDebugStart.Name = "TsmiDebugStart"
Me.TsmiDebugStart.ShortcutKeys = System.Windows.Forms.Keys.F1
Me.TsmiDebugStart.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStart.Text = "开始执行"
'
'GroupBox1
'
Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox1.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.GroupBox1.Location = New System.Drawing.Point(0, 0)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(435, 392)
Me.GroupBox1.TabIndex = 0
Me.GroupBox1.TabStop = false
Me.GroupBox1.Text = "常规预览"
'
'TsBtnOpen
'
Me.TsBtnOpen.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnOpen.Image = CType(resources.GetObject("TsBtnOpen.Image"),System.Drawing.Image)
Me.TsBtnOpen.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnOpen.Name = "TsBtnOpen"
Me.TsBtnOpen.Size = New System.Drawing.Size(35, 33)
Me.TsBtnOpen.Text = "打开"
Me.TsBtnOpen.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSave
'
Me.TsBtnSave.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnSave.Image = CType(resources.GetObject("TsBtnSave.Image"),System.Drawing.Image)
Me.TsBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSave.Name = "TsBtnSave"
Me.TsBtnSave.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSave.Text = "保存"
Me.TsBtnSave.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator4
'
Me.ToolStripSeparator4.Name = "ToolStripSeparator4"
Me.ToolStripSeparator4.Size = New System.Drawing.Size(6, 36)
'
'TsBtnLoad
'
Me.TsBtnLoad.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnLoad.Image = CType(resources.GetObject("TsBtnLoad.Image"),System.Drawing.Image)
Me.TsBtnLoad.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnLoad.Name = "TsBtnLoad"
Me.TsBtnLoad.Size = New System.Drawing.Size(35, 33)
Me.TsBtnLoad.Text = "重载"
Me.TsBtnLoad.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSaveAs
'
Me.TsBtnSaveAs.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnSaveAs.Image = CType(resources.GetObject("TsBtnSaveAs.Image"),System.Drawing.Image)
Me.TsBtnSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSaveAs.Name = "TsBtnSaveAs"
Me.TsBtnSaveAs.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSaveAs.Text = "导出"
Me.TsBtnSaveAs.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator3
'
Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 36)
'
'StuMain
'
Me.StuMain.Location = New System.Drawing.Point(0, 428)
Me.StuMain.Name = "StuMain"
Me.StuMain.Size = New System.Drawing.Size(800, 22)
Me.StuMain.TabIndex = 5
Me.StuMain.Text = "StatusStrip1"
'
'ToolStrip1
'
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TsBtnOpen, Me.TsBtnSave, Me.ToolStripSeparator4, Me.TsBtnLoad, Me.TsBtnSaveAs, Me.ToolStripSeparator3})
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(800, 36)
Me.ToolStrip1.TabIndex = 4
Me.ToolStrip1.Text = "ToolStrip1"
'
'ZQ_Mars_P1_FrmStationPlan
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 12!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Controls.Add(Me.SplitContainer1)
Me.Controls.Add(Me.StuMain)
Me.Controls.Add(Me.ToolStrip1)
Me.Name = "ZQ_Mars_P1_FrmStationPlan"
Me.Text = "ZQ_Mars_P1_FrmStationPlan"
Me.SplitContainer1.Panel1.ResumeLayout(false)
Me.SplitContainer1.Panel2.ResumeLayout(false)
CType(Me.SplitContainer1,System.ComponentModel.ISupportInitialize).EndInit
Me.SplitContainer1.ResumeLayout(false)
Me.GroupBox2.ResumeLayout(false)
Me.CmsPlanGrid.ResumeLayout(false)
Me.ToolStrip1.ResumeLayout(false)
Me.ToolStrip1.PerformLayout
Me.ResumeLayout(false)
Me.PerformLayout
End Sub
Friend WithEvents ToolStripSeparator7 As ToolStripSeparator
Friend WithEvents TsmiDebugEnd As ToolStripMenuItem
Friend WithEvents TsmiDebugStep As ToolStripMenuItem
Friend WithEvents TsmiDebugContinue As ToolStripMenuItem
Friend WithEvents ToolStripSeparator8 As ToolStripSeparator
Friend WithEvents TsmiDebugSetup As ToolStripMenuItem
Friend WithEvents TsmiDebugMain As ToolStripMenuItem
Friend WithEvents TsmiDebugPass As ToolStripMenuItem
Friend WithEvents TsmiDebugFail As ToolStripMenuItem
Friend WithEvents TsmiDebugCleanup As ToolStripMenuItem
Friend WithEvents ToolStripSeparator9 As ToolStripSeparator
Friend WithEvents TsmiDebugNode As ToolStripMenuItem
Friend WithEvents TsmiDebugNodeBegin As ToolStripMenuItem
Friend WithEvents DlgOpenFile As OpenFileDialog
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents GroupBox2 As GroupBox
Friend WithEvents LblDesc As Label
Friend WithEvents GrdStationPlan As FlexCell.Grid
Friend WithEvents CmsPlanGrid As ContextMenuStrip
Friend WithEvents MsiCopyNode As ToolStripMenuItem
Friend WithEvents MsiCutNode As ToolStripMenuItem
Friend WithEvents MsiNodePaste As ToolStripMenuItem
Friend WithEvents ToolStripSeparator5 As ToolStripSeparator
Friend WithEvents MsiUndo As ToolStripMenuItem
Friend WithEvents MsiRedo As ToolStripMenuItem
Friend WithEvents ToolStripSeparator6 As ToolStripSeparator
Friend WithEvents MsiSaveNodeFile As ToolStripMenuItem
Friend WithEvents MsiLoadNodeFile As ToolStripMenuItem
Friend WithEvents TsmiDebugStart As ToolStripMenuItem
Friend WithEvents GroupBox1 As GroupBox
Friend WithEvents TsBtnOpen As ToolStripButton
Friend WithEvents TsBtnSave As ToolStripButton
Friend WithEvents ToolStripSeparator4 As ToolStripSeparator
Friend WithEvents TsBtnLoad As ToolStripButton
Friend WithEvents TsBtnSaveAs As ToolStripButton
Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
Friend WithEvents StuMain As StatusStrip
Friend WithEvents ToolStrip1 As ToolStrip
End Class

View File

@@ -0,0 +1,185 @@
<?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="DlgOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>482, 17</value>
</metadata>
<metadata name="CmsPlanGrid.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>607, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="TsBtnOpen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHqSURBVGhD7Zm9Tt1AEEYvNDxCArwSXZDSpAwiFQ+HEA2Q
dPmpeAl4AaALEnxTXDSate/xeHcvkeIjnerzN97F9rWEVwsLC6PsyFP5Rz7Jl07ey0+yKQfyuxw6YQ//
ys+yCbvyhxw6UU+f5RdZzTc5dIJt2ORK2D3vh17ID3KNz8wabLG2aD+vehOP0g/8KD0+M2tpvgk/yIxQ
PodjGTcx+5nwQ8wI5XNptgk/wIxQXkOTTfiyGaG8lupN+KIZiflc7Q18JIcYe7AnvbF9yYzEvMY7OcbQ
JjYd/4YvmBEbEo+ZKy3INhE7CBXsstvlj8dl3XQLeWIPSRc6k15PutCZ9HrShc6k15MudCa9nnShM+n1
pAudSa+HCq1+RqNjP6vxOIQKLV9k0aEXWzwGoULMWxuhvIAKMW9thPICKlCeheZRXkAFyrPQPMoLqEB5
FppHeQEVKM9C8ygvoALlWWge5QVUoDwLzaO8gAqUZ6F5lBdQgfIsNI/yAipQnoXmUV5ABcqz0DzKCx6k
L/j/TBs+M2vZNM8+tPjM1ob8lr50LvflGp+ZtYzNs3NeSp/9ksiZ9KV/ya8S2ZO3cmjAe3ol7cPjJA7l
jRwa9B5eS38bT8J2eyJ/yvjVZhvaA2vntttm8l9+YeH/YrV6BfNWMy9RUhK1AAAAAElFTkSuQmCC
</value>
</data>
<data name="TsBtnLoad.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSaveAs.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADQSURBVEhL5ZYxDgFBGEbnCE4gjuAcCnEER3AER9BpVWqV
QqcTlSOIUkVFx/fWSMYsyfx/FCu+5CX7ZWfmTbKT3Q1J+mLnYCmKMhQ3sRKLQg5iL4ryFHSqVpaZ+H3B
UQwy2qIWr4A5OaxVi0fATrsJPfFVQR7m/pGA42eBmARc8yrgpMxj38aewhjuEbNg/LgMLUEfVe01jGmu
4CpO4hz7JfYUxrgFGzER09jXsacwxi34/WdggZgE7MwCMQk8aYbA8tHPYe5Hgfe35R2spYRwB61XwcSY
NxMjAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="StuMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 55</value>
</metadata>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>118, 55</value>
</metadata>
</root>

View File

@@ -0,0 +1,494 @@
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Imports UTS_Core.UTSModule.Station.StationPackagePlan
Imports UTS_Core.UTSModule.Test.StatusMonitor
Public Class ZQ_Mars_P1_FrmStationPlan
' Implements IProcessFileChanged
Implements IProcessStation
Implements IProductionLine
Private _utsApp As UtsAppForm
Private _stationPlan As StationPackagePlan
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
Public Sub utsbctfilechanged
'For Each observer As IProcessStation In _observerList
' observer.StationChanged()
' Next
End Sub
''' <summary>
''' 站位变更代码
''' </summary>
Public Sub Station_Changed() Implements IProcessStation.StationChanged
ApplicationLog.WriteInfoLog($"编辑页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
Try
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
Catch ex As Exception
MsgBox($"加载项目流程失败,{ex.Message}")
End Try
InitGrid(_stationPlan)
ApplicationLog.WriteInfoLog($"编辑页面站位变更完成。")
End Sub
''' <summary>
''' 产线变化代码
''' </summary>
Public Sub ProductionLineChanged() Implements IProductionLine.ProductionLineChanged
ApplicationLog.WriteInfoLog($"编辑页面生产线变更中。")
ApplicationLog.WriteInfoLog($"编辑页面生产线变更完成。")
End Sub
Private Sub FrmStationPlan_Load(sender As Object, e As EventArgs) Handles Me.Load
ApplicationLog.WriteInfoLog($"编辑页面加载中。")
'初始化UTS窗体信息,失败则关闭窗体
If InitializeUtsApp() = False Then Return
'初始化窗体页面
InitializeForm()
ApplicationLog.WriteInfoLog($"编辑页面加载完成。")
End Sub
Private Function InitializeUtsApp() As Boolean
_utsApp = UtsAppForm.CreateSingleton()
_utsApp.AddStatisticsObserver(Me)
Try
If _utsApp.IsInitialized = False Then
_utsApp.Initialize(ProcessStation.StationTypeEnum.Package) 'Todo:可根据需要限定可选站位
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"初始化窗体失败,原因:{ex.Message}!")
MsgBox($"初始化窗体失败,原因:{ex.Message}")
Close()
Return False
End Try
Return True
End Function
Private Sub InitializeForm()
InitGrid(_stationPlan)
End Sub
Private Sub TsBtnOpen_Click(sender As Object, e As EventArgs) Handles TsBtnOpen.Click
Using xml As New OpenFileDialog
xml.Filter = $"流程文件(*.xml)|*.xml"
If xml.ShowDialog() = DialogResult.OK Then
ApplicationLog.WriteInfoLog($"编辑页面执行流程正在加载{xml.FileName}")
LoadTreeViewFormXml(xml.FileName)
ApplicationLog.WriteInfoLog($"编辑页面执行流程加载完成。")
End If
End Using
End Sub
Private Sub TsBtnLoad_Click(sender As Object, e As EventArgs) Handles TsBtnLoad.Click
If MsgBox("重载会将流程返回为上一次保存的流程状态,是否继续", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
ApplicationLog.WriteInfoLog($"编辑页面执行流程重载中。")
LoadTreeViewFormXml()
ApplicationLog.WriteInfoLog($"编辑页面执行流程重载完成。")
End If
End Sub
Private Sub TsBtnSave_Click(sender As Object, e As EventArgs) Handles TsBtnSave.Click
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存中。")
UpdateGrid(_stationPlan)
ExportTreeViewToXml()
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存完成。")
End Sub
''' <summary>
''' 读取XML,加载树状视图
''' </summary>
Private Sub LoadTreeViewFormXml()
Dim revStationPlanPath As String = $"{UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)}\Main.xml"
Try
_stationPlan.LoadFile(revStationPlanPath)
InitGrid(_stationPlan)
If StationEditStatusMonitor.StationEditStatus <> StationEditStatusMonitor.StationEditStatusEnum.Saved Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"加载测试站流程发生错误,原因:{ex.Message}")
MsgBox($"加载测试站流程发生错误,原因:{ex.Message}")
_stationPlan.CreateStationPlan()
End Try
End Sub
''' <summary>
''' 读取XML,加载树状视图
''' </summary>
Private Sub LoadTreeViewFormXml(revStationPlanPath As String)
Try
_stationPlan.LoadFile(revStationPlanPath)
InitGrid(_stationPlan)
If StationEditStatusMonitor.StationEditStatus <> StationEditStatusMonitor.StationEditStatusEnum.Saved Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"加载测试站流程发生错误,原因:{ex.Message}")
MsgBox($"加载测试站流程发生错误,原因:{ex.Message}")
_stationPlan.CreateStationPlan()
End Try
End Sub
''' <summary>
''' 将树状视图导出为Xml
''' </summary>
Private Sub ExportTreeViewToXml()
'保存至项目文件
Dim revStationPlanPath As String = $"{UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)}\Main.xml"
_stationPlan.SaveFile(revStationPlanPath)
'备份至临时文件
Dim tempPath As String = $"{UtsPath.StationDesignDirPath()}\Main.xml"
_stationPlan.SaveFile(tempPath)
If StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
End Sub
Private Sub TsBtnSaveAs_Click(sender As Object, e As EventArgs) Handles TsBtnSaveAs.Click
Using dlg As New SaveFileDialog
dlg.Filter = "Excel 文件(*.xls)|*.xls|CSV 文件(*.csv)|*.csv|PDF 文件(*.pdf)|*.pdf"
dlg.AddExtension = True
If dlg.ShowDialog <> DialogResult.OK Then Return
Cursor = Cursors.WaitCursor
ApplicationLog.WriteInfoLog($"编辑页面执行流程导出中。")
Try
Select Case dlg.FilterIndex
Case 1
GrdStationPlan.ExportToExcel(dlg.FileName, True, True)
Case 2
GrdStationPlan.ExportToCSV(dlg.FileName, True, True)
Case 3
GrdStationPlan.ExportToPDF(dlg.FileName)
End Select
ApplicationLog.WriteInfoLog($"编辑页面执行流程导出完成。")
Catch ex As Exception
ApplicationLog.WriteErrorLog($"编辑页面执行流程导出失败,原因:{ex.Message}")
MsgBox($"编辑页面执行流程导出失败,原因:{ex.Message}")
End Try
Cursor = Cursors.Arrow
End Using
End Sub
#Region "Package表格"
Private Sub InitGrid(Optional stationplan As StationPackagePlan = Nothing)
With GrdStationPlan
.AutoRedraw = False
.NewFile()
.BorderStyle = FlexCell.BorderStyleEnum.None
.Cols = ColNames.Max
.Rows = RowItems.Max
.ExtendLastCol = True
.DisplayRowNumber = True
.Cell(0, ColNames.Item).Text = "Item"
.Cell(0, ColNames.Value).Text = "Value"
.Column(ColNames.Item).Width = 200
.Column(ColNames.Item).Locked = True
.DefaultRowHeight = 20
.DefaultFont = New Font("微软雅黑", 10)
For i As Integer = 1 To RowItems.Max - 1
.Cell(i, ColNames.Item).Text = [Enum].GetName(GetType(RowItems), i)
Next
'.Cell(RowItems.CheckSnTested, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.CheckSnPackaged, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.CheckSnMO, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.MissingQuantity, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.BarCodeType, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
.Cell(RowItems.AutoPrint, ColNames.Value).CellType = FlexCell.CellTypeEnum.CheckBox
'.Cell(RowItems.ErrorSound, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
.Cell(RowItems.TemplateFile, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
.Cell(RowItems.CompanyLogo, ColNames.Value).CellType = FlexCell.CellTypeEnum.TextBox
.Cell(RowItems.CompanyLogo, ColNames.Item).Text = "ControlFile"
.Cell(RowItems.BoxMumEditKey, ColNames.Item).Text = "ColorBoxCodeLabel"
.Cell(RowItems.CompanyName, ColNames.Item).Text = "DevBodyCodeLabel"
FillGrid(stationplan)
.AutoRedraw = True
.Refresh()
End With
End Sub
Private Sub FillGrid(stationplan As StationPackagePlan)
If stationplan Is Nothing Then Return
With GrdStationPlan
'.Cell(RowItems.CheckSnTested, ColNames.Value).Text = stationplan.CheckSnTested.ToString
'.Cell(RowItems.CheckSnPackaged, ColNames.Value).Text = stationplan.CheckSnPackaged.ToString
'.Cell(RowItems.CheckSnMO, ColNames.Value).Text = stationplan.CheckSnMO.ToString
'.Cell(RowItems.PictureCount, ColNames.Value).Text = stationplan.PictureCount.ToString
'.Cell(RowItems.UnlockKey, ColNames.Value).Text = stationplan.UnlockKey
'.Cell(RowItems.BarCodeType, ColNames.Value).Text = stationplan.BarCodeType.ToString
'.Cell(RowItems.MissingQuantity, ColNames.Value).Text = stationplan.MissingQuantity.ToString
'.Cell(RowItems.MissingQuantityKey, ColNames.Value).Text = stationplan.MissingQuantityKey
.Cell(RowItems.AutoPrint, ColNames.Value).Text = stationplan.AutoPrint.ToString
'.Cell(RowItems.ErrorSound, ColNames.Value).Text = stationplan.ErrorSound
.Cell(RowItems.TemplateFile, ColNames.Value).Text = stationplan.TemplateFile
.Cell(RowItems.BoxMumEditKey, ColNames.Value).Text = stationplan.BoxMumEditKey
.Cell(RowItems.CompanyLogo, ColNames.Value).Text = stationplan.CompanyLogo
.Cell(RowItems.CompanyName, ColNames.Value).Text = stationplan.CompanyName
'.Cell(RowItems.BoxNumText, ColNames.Value).Text = stationplan.BoxNumText
'.Cell(RowItems.BoxBarCode, ColNames.Value).Text = stationplan.BoxBarCode
End With
If StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
End Sub
Private Sub UpdateGrid(stationplan As StationPackagePlan)
If _stationPlan Is Nothing Then Return
With GrdStationPlan
'If [Enum].TryParse(.Cell(RowItems.CheckSnTested, ColNames.Value).Text, stationplan.CheckSnTested) = False Then
' MsgBox("更新CheckSnTested失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.CheckSnPackaged, ColNames.Value).Text, stationplan.CheckSnPackaged) = False Then
' MsgBox("更新CheckSnPackaged失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.CheckSnMO, ColNames.Value).Text, stationplan.CheckSnMO) = False Then
' MsgBox("更新CheckSnMO失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.BarCodeType, ColNames.Value).Text, stationplan.BarCodeType) = False Then
' MsgBox("更新BarCodeType失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.MissingQuantity, ColNames.Value).Text, stationplan.MissingQuantity) = False Then
' MsgBox("更新MissingQuantity失败!")
' Return
'End If
'stationplan.PictureCount = .Cell(RowItems.PictureCount, ColNames.Value).IntegerValue
'stationplan.UnlockKey = .Cell(RowItems.UnlockKey, ColNames.Value).Text
'stationplan.MissingQuantityKey = .Cell(RowItems.MissingQuantityKey, ColNames.Value).Text
stationplan.AutoPrint = .Cell(RowItems.AutoPrint, ColNames.Value).BooleanValue
'stationplan.ErrorSound = .Cell(RowItems.ErrorSound, ColNames.Value).Text
stationplan.TemplateFile = .Cell(RowItems.TemplateFile, ColNames.Value).Text
stationplan.BoxMumEditKey = .Cell(RowItems.BoxMumEditKey, ColNames.Value).Text
stationplan.CompanyLogo = .Cell(RowItems.CompanyLogo, ColNames.Value).Text
stationplan.CompanyName = .Cell(RowItems.CompanyName, ColNames.Value).Text
'stationplan.BoxNumText = .Cell(RowItems.BoxNumText, ColNames.Value).Text
'stationplan.BoxBarCode = .Cell(RowItems.BoxBarCode, ColNames.Value).Text
End With
End Sub
Private Sub GrdStationPlan_ButtonClick(Sender As Object, e As FlexCell.Grid.ButtonClickEventArgs) Handles GrdStationPlan.ButtonClick
Select Case e.Row
'Case RowItems.ErrorSound
' DlgOpenFile.Filter = "图像资源 (*.jpg;*.png;*.gif;*.ico)|*.jpg;*.png;*.gif;*.ico"
Case RowItems.TemplateFile
DlgOpenFile.Filter = "模板资源 (*.btw)|*.btw"
Case RowItems.CompanyLogo
DlgOpenFile.Filter = "控制台程序 (*.exe)|*.exe"
End Select
DlgOpenFile.CheckFileExists = True
DlgOpenFile.CheckPathExists = True
If DlgOpenFile.ShowDialog() <> DialogResult.OK Then Return
Dim fileName As String = $"{DlgOpenFile.SafeFileName}"
Dim fileDir As String = UtsPath.GetStationPacketResourceDirPath(_stationPlan.ParentPacket.Name)
Dim fliePath As String = $"{fileDir}\{fileName}"
GrdStationPlan.Cell(e.Row, ColNames.Value).Text = fileName
'导入文件
Try
IO.File.Copy(DlgOpenFile.FileName, fliePath, True)
Catch ex As Exception
MsgBox($"导入资源文件失败,{ex.Message}")
End Try
End Sub
Private Sub GrdStationPlan_ComboDropDown(Sender As Object, e As FlexCell.Grid.ComboDropDownEventArgs) Handles GrdStationPlan.ComboDropDown
GrdStationPlan.ComboBox(0).Items.Clear()
Select Case e.Row
'Case RowItems.CheckSnTested
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.CheckSnPackaged
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.CheckSnMO
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.MissingQuantity
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(MissCountStatus)))
'Case RowItems.BarCodeType
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(BarcodeTypes)))
End Select
End Sub
Private Sub GrdStationPlan_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles GrdStationPlan.CellChange
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed
End Sub
Enum ColNames
SN
Item
Value
Max
End Enum
Enum RowItems
''' <summary>固定行</summary>
<System.ComponentModel.Description("固定行")>
SN
'''' <summary>校验条码未测试后处理方式</summary>
'<System.ComponentModel.Description("校验条码未测试后处理方式")>
'CheckSnTested
'''' <summary>校验条码已参与包装后处理方式</summary>
'<System.ComponentModel.Description("校验条码已参与包装后处理方式")>
'CheckSnPackaged
'''' <summary>校验条码不属于指定MO后处理方式</summary>
'<System.ComponentModel.Description("校验条码不属于指定MO后处理方式")>
'CheckSnMO
'''' <summary>拍摄保存图像的数量</summary>
'<System.ComponentModel.Description("拍摄保存图像的数量")>
'PictureCount
'''' <summary>解锁密码</summary>
'<System.ComponentModel.Description("解锁密码")>
'UnlockKey
'''' <summary>条码类型</summary>
'<System.ComponentModel.Description("条码类型")>
'BarCodeType
'''' <summary>缺失条码数量后的处理方式</summary>
'<System.ComponentModel.Description("缺失条码数量后的处理方式")>
'MissingQuantity
'''' <summary>缺失条码数量后的解锁密码</summary>
'<System.ComponentModel.Description("缺失条码数量后的解锁密码")>
'MissingQuantityKey
''' <summary>是否自动打印</summary>
<System.ComponentModel.Description("是否自动打印")>
AutoPrint
'''' <summary>发生错误后报警文件</summary>
'<System.ComponentModel.Description("发生错误后报警文件")>
'ErrorSound
''' <summary>模板文件名</summary>
<System.ComponentModel.Description("模板文件名,需要把文件添加到 C:\AUTS\Barcode\Mars\")>
TemplateFile
''' <summary>箱号编辑密码</summary>
<System.ComponentModel.Description("机身码打印模板标签名")>
BoxMumEditKey
''' <summary>公司名称</summary>
<System.ComponentModel.Description("彩盒码打印模板标签名")>
CompanyName
'''' <summary>公司Logo文件</summary>
<System.ComponentModel.Description("控制台程序文件")>
CompanyLogo
'''' <summary>箱号规则</summary>
'<System.ComponentModel.Description("箱号规则")>
'BoxNumText
'''' <summary>箱号条码</summary>
'<System.ComponentModel.Description("箱号条码")>
'BoxBarCode
Max
End Enum
Private Sub GrdStationPlan_SelChange(Sender As Object, e As FlexCell.Grid.SelChangeEventArgs) Handles GrdStationPlan.SelChange
If e.FirstRow <= RowItems.SN OrElse e.FirstRow > GrdStationPlan.Rows - 1 Then Return
Dim row As Integer = e.FirstRow
Dim a As RowItems
If [Enum].TryParse(row.ToString, a) Then
LblDesc.Text = $"Row:{row}{vbCrLf}Desc:{GetEnumDescription(a)}"
Else
LblDesc.Text = $"Row:{row}{vbCrLf}Desc:无说明"
End If
End Sub
Public Function GetEnumDescription(enumValue As RowItems) As String
Dim str As String = enumValue.ToString()
Dim field As System.Reflection.FieldInfo = enumValue.GetType().GetField(str)
Dim objs() As Object = field.GetCustomAttributes(GetType(System.ComponentModel.DescriptionAttribute), False)
If objs Is Nothing OrElse objs.Length = 0 Then Return str
Dim da As System.ComponentModel.DescriptionAttribute = CType(objs(0), ComponentModel.DescriptionAttribute)
Return da.Description
End Function
#End Region
End Class

View File

@@ -0,0 +1,711 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class ZQ_Mars_P1_FrmStationTest
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ZQ_Mars_P1_FrmStationTest))
Me.TIM_Find_DUT_Port = New System.Windows.Forms.Timer(Me.components)
Me.Commport_DUT = New System.IO.Ports.SerialPort(Me.components)
Me.TIM_DUT_TASK = New System.Windows.Forms.Timer(Me.components)
Me.TIM_CNT_CLEAR = New System.Windows.Forms.Timer(Me.components)
Me.tips = New System.Windows.Forms.ToolTip(Me.components)
Me.TIM_PRINT_LABEL_TASK = New System.Windows.Forms.Timer(Me.components)
Me.miniToolStrip = New System.Windows.Forms.StatusStrip()
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
Me.tsl_DUT_PortSataus = New System.Windows.Forms.ToolStripStatusLabel()
Me.tsl_dut_msg_cnt = New System.Windows.Forms.ToolStripStatusLabel()
Me.tsl_TIM_PrintTask = New System.Windows.Forms.ToolStripStatusLabel()
Me.tsl_Print_Cnt_Avalable = New System.Windows.Forms.ToolStripStatusLabel()
Me.tsl_Dut_OffLint_Cnt = New System.Windows.Forms.ToolStripStatusLabel()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer2 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer4 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer6 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer7 = New System.Windows.Forms.SplitContainer()
Me.lab_projectname = New System.Windows.Forms.Label()
Me.lab_projectconfig = New System.Windows.Forms.Label()
Me.lab_imger = New System.Windows.Forms.PictureBox()
Me.SplitContainer5 = New System.Windows.Forms.SplitContainer()
Me.lab_Processed_Unit_Cnt = New System.Windows.Forms.Label()
Me.lab_Processed_Unit_Cnt_ThisCycle = New System.Windows.Forms.Label()
Me.Label5 = New System.Windows.Forms.Label()
Me.ListBox1 = New System.Windows.Forms.ListBox()
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
Me.SplitContainer3 = New System.Windows.Forms.SplitContainer()
Me.btn_FindDutPort = New System.Windows.Forms.Button()
Me.tb_MAC_sent_to_ezCAD = New System.Windows.Forms.TextBox()
Me.G3label_tip = New System.Windows.Forms.Label()
Me.Label4 = New System.Windows.Forms.Label()
Me.txt_template = New System.Windows.Forms.TextBox()
Me.Label3 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.EnclosureCode_txt = New System.Windows.Forms.TextBox()
Me.TextBox1 = New System.Windows.Forms.TextBox()
Me.DevCode_txt = New System.Windows.Forms.TextBox()
Me.chk_flow = New System.Windows.Forms.CheckBox()
Me.chk_automatic = New System.Windows.Forms.CheckBox()
Me.tb_DUT_Msg = New System.Windows.Forms.TextBox()
Me.FlowLayoutPanel1 = New System.Windows.Forms.FlowLayoutPanel()
Me.Button2 = New System.Windows.Forms.Button()
Me.Button1 = New System.Windows.Forms.Button()
Me.btn_Print = New System.Windows.Forms.Button()
Me.StatusStrip1.SuspendLayout()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer2.Panel1.SuspendLayout()
Me.SplitContainer2.Panel2.SuspendLayout()
Me.SplitContainer2.SuspendLayout()
CType(Me.SplitContainer4, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer4.Panel1.SuspendLayout()
Me.SplitContainer4.Panel2.SuspendLayout()
Me.SplitContainer4.SuspendLayout()
CType(Me.SplitContainer6, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer6.Panel1.SuspendLayout()
Me.SplitContainer6.Panel2.SuspendLayout()
Me.SplitContainer6.SuspendLayout()
CType(Me.SplitContainer7, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer7.Panel1.SuspendLayout()
Me.SplitContainer7.Panel2.SuspendLayout()
Me.SplitContainer7.SuspendLayout()
CType(Me.lab_imger, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainer5, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer5.Panel1.SuspendLayout()
Me.SplitContainer5.Panel2.SuspendLayout()
Me.SplitContainer5.SuspendLayout()
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer3.Panel1.SuspendLayout()
Me.SplitContainer3.Panel2.SuspendLayout()
Me.SplitContainer3.SuspendLayout()
Me.SuspendLayout()
'
'TIM_Find_DUT_Port
'
'
'Commport_DUT
'
Me.Commport_DUT.BaudRate = 115200
'
'TIM_DUT_TASK
'
'
'TIM_CNT_CLEAR
'
'
'TIM_PRINT_LABEL_TASK
'
'
'miniToolStrip
'
Me.miniToolStrip.AccessibleName = "新项选择"
Me.miniToolStrip.AccessibleRole = System.Windows.Forms.AccessibleRole.ButtonDropDown
Me.miniToolStrip.AutoSize = False
Me.miniToolStrip.Dock = System.Windows.Forms.DockStyle.None
Me.miniToolStrip.Location = New System.Drawing.Point(509, 1)
Me.miniToolStrip.Name = "miniToolStrip"
Me.miniToolStrip.Size = New System.Drawing.Size(603, 22)
Me.miniToolStrip.TabIndex = 12
'
'StatusStrip1
'
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsl_DUT_PortSataus, Me.tsl_dut_msg_cnt, Me.tsl_TIM_PrintTask, Me.tsl_Print_Cnt_Avalable, Me.tsl_Dut_OffLint_Cnt})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 539)
Me.StatusStrip1.Name = "StatusStrip1"
Me.StatusStrip1.Size = New System.Drawing.Size(984, 22)
Me.StatusStrip1.TabIndex = 13
Me.StatusStrip1.Text = "StatusStrip1"
'
'tsl_DUT_PortSataus
'
Me.tsl_DUT_PortSataus.AutoSize = False
Me.tsl_DUT_PortSataus.Name = "tsl_DUT_PortSataus"
Me.tsl_DUT_PortSataus.Size = New System.Drawing.Size(134, 17)
Me.tsl_DUT_PortSataus.Text = "COM1"
Me.tsl_DUT_PortSataus.ToolTipText = "DUT 串口确认设备与PC连接后双击进行自动寻找"
'
'tsl_dut_msg_cnt
'
Me.tsl_dut_msg_cnt.AutoSize = False
Me.tsl_dut_msg_cnt.ForeColor = System.Drawing.Color.Green
Me.tsl_dut_msg_cnt.Name = "tsl_dut_msg_cnt"
Me.tsl_dut_msg_cnt.Size = New System.Drawing.Size(134, 17)
Me.tsl_dut_msg_cnt.Text = "0"
'
'tsl_TIM_PrintTask
'
Me.tsl_TIM_PrintTask.AutoSize = False
Me.tsl_TIM_PrintTask.Name = "tsl_TIM_PrintTask"
Me.tsl_TIM_PrintTask.Size = New System.Drawing.Size(80, 17)
Me.tsl_TIM_PrintTask.Text = "0"
'
'tsl_Print_Cnt_Avalable
'
Me.tsl_Print_Cnt_Avalable.AutoSize = False
Me.tsl_Print_Cnt_Avalable.Name = "tsl_Print_Cnt_Avalable"
Me.tsl_Print_Cnt_Avalable.Size = New System.Drawing.Size(80, 17)
Me.tsl_Print_Cnt_Avalable.Text = "0"
'
'tsl_Dut_OffLint_Cnt
'
Me.tsl_Dut_OffLint_Cnt.AutoSize = False
Me.tsl_Dut_OffLint_Cnt.ForeColor = System.Drawing.Color.Maroon
Me.tsl_Dut_OffLint_Cnt.Name = "tsl_Dut_OffLint_Cnt"
Me.tsl_Dut_OffLint_Cnt.Size = New System.Drawing.Size(80, 17)
Me.tsl_Dut_OffLint_Cnt.Text = "0"
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.IsSplitterFixed = True
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.SplitContainer3)
Me.SplitContainer1.Size = New System.Drawing.Size(984, 539)
Me.SplitContainer1.SplitterDistance = 380
Me.SplitContainer1.SplitterWidth = 1
Me.SplitContainer1.TabIndex = 14
'
'SplitContainer2
'
Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer2.IsSplitterFixed = True
Me.SplitContainer2.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer2.Name = "SplitContainer2"
Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer2.Panel1
'
Me.SplitContainer2.Panel1.Controls.Add(Me.SplitContainer4)
Me.SplitContainer2.Panel1.Controls.Add(Me.Label5)
'
'SplitContainer2.Panel2
'
Me.SplitContainer2.Panel2.Controls.Add(Me.ListBox1)
Me.SplitContainer2.Panel2.Controls.Add(Me.RichTextBox1)
Me.SplitContainer2.Size = New System.Drawing.Size(380, 539)
Me.SplitContainer2.SplitterDistance = 281
Me.SplitContainer2.SplitterWidth = 1
Me.SplitContainer2.TabIndex = 0
'
'SplitContainer4
'
Me.SplitContainer4.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer4.IsSplitterFixed = True
Me.SplitContainer4.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer4.Name = "SplitContainer4"
Me.SplitContainer4.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer4.Panel1
'
Me.SplitContainer4.Panel1.Controls.Add(Me.SplitContainer6)
'
'SplitContainer4.Panel2
'
Me.SplitContainer4.Panel2.Controls.Add(Me.SplitContainer5)
Me.SplitContainer4.Size = New System.Drawing.Size(380, 281)
Me.SplitContainer4.SplitterDistance = 220
Me.SplitContainer4.TabIndex = 11
'
'SplitContainer6
'
Me.SplitContainer6.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer6.IsSplitterFixed = True
Me.SplitContainer6.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer6.Name = "SplitContainer6"
Me.SplitContainer6.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer6.Panel1
'
Me.SplitContainer6.Panel1.Controls.Add(Me.SplitContainer7)
'
'SplitContainer6.Panel2
'
Me.SplitContainer6.Panel2.Controls.Add(Me.lab_imger)
Me.SplitContainer6.Size = New System.Drawing.Size(380, 220)
Me.SplitContainer6.SplitterDistance = 80
Me.SplitContainer6.SplitterWidth = 1
Me.SplitContainer6.TabIndex = 0
'
'SplitContainer7
'
Me.SplitContainer7.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer7.IsSplitterFixed = True
Me.SplitContainer7.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer7.Name = "SplitContainer7"
Me.SplitContainer7.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer7.Panel1
'
Me.SplitContainer7.Panel1.Controls.Add(Me.lab_projectname)
'
'SplitContainer7.Panel2
'
Me.SplitContainer7.Panel2.Controls.Add(Me.lab_projectconfig)
Me.SplitContainer7.Size = New System.Drawing.Size(380, 80)
Me.SplitContainer7.SplitterDistance = 25
Me.SplitContainer7.SplitterWidth = 1
Me.SplitContainer7.TabIndex = 13
'
'lab_projectname
'
Me.lab_projectname.BackColor = System.Drawing.Color.PeachPuff
Me.lab_projectname.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_projectname.Font = New System.Drawing.Font("宋体", 18.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.lab_projectname.Location = New System.Drawing.Point(0, 0)
Me.lab_projectname.Name = "lab_projectname"
Me.lab_projectname.Size = New System.Drawing.Size(380, 25)
Me.lab_projectname.TabIndex = 0
Me.lab_projectname.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'lab_projectconfig
'
Me.lab_projectconfig.BackColor = System.Drawing.SystemColors.ActiveCaption
Me.lab_projectconfig.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_projectconfig.Font = New System.Drawing.Font("宋体", 12.75!, System.Drawing.FontStyle.Bold)
Me.lab_projectconfig.Location = New System.Drawing.Point(0, 0)
Me.lab_projectconfig.Name = "lab_projectconfig"
Me.lab_projectconfig.Size = New System.Drawing.Size(380, 54)
Me.lab_projectconfig.TabIndex = 0
Me.lab_projectconfig.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'lab_imger
'
Me.lab_imger.BackColor = System.Drawing.Color.White
Me.lab_imger.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lab_imger.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_imger.Location = New System.Drawing.Point(0, 0)
Me.lab_imger.Name = "lab_imger"
Me.lab_imger.Size = New System.Drawing.Size(380, 139)
Me.lab_imger.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom
Me.lab_imger.TabIndex = 12
Me.lab_imger.TabStop = False
'
'SplitContainer5
'
Me.SplitContainer5.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer5.IsSplitterFixed = True
Me.SplitContainer5.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer5.Name = "SplitContainer5"
'
'SplitContainer5.Panel1
'
Me.SplitContainer5.Panel1.Controls.Add(Me.lab_Processed_Unit_Cnt)
'
'SplitContainer5.Panel2
'
Me.SplitContainer5.Panel2.Controls.Add(Me.lab_Processed_Unit_Cnt_ThisCycle)
Me.SplitContainer5.Size = New System.Drawing.Size(380, 57)
Me.SplitContainer5.SplitterDistance = 181
Me.SplitContainer5.SplitterWidth = 1
Me.SplitContainer5.TabIndex = 0
'
'lab_Processed_Unit_Cnt
'
Me.lab_Processed_Unit_Cnt.BackColor = System.Drawing.SystemColors.ActiveCaptionText
Me.lab_Processed_Unit_Cnt.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_Processed_Unit_Cnt.Font = New System.Drawing.Font("Calibri", 29.25!, System.Drawing.FontStyle.Bold)
Me.lab_Processed_Unit_Cnt.ForeColor = System.Drawing.Color.White
Me.lab_Processed_Unit_Cnt.Location = New System.Drawing.Point(0, 0)
Me.lab_Processed_Unit_Cnt.Name = "lab_Processed_Unit_Cnt"
Me.lab_Processed_Unit_Cnt.Size = New System.Drawing.Size(181, 57)
Me.lab_Processed_Unit_Cnt.TabIndex = 15
Me.lab_Processed_Unit_Cnt.Tag = "本次生产总统计数量连击5次清零"
Me.lab_Processed_Unit_Cnt.Text = "0"
Me.lab_Processed_Unit_Cnt.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'lab_Processed_Unit_Cnt_ThisCycle
'
Me.lab_Processed_Unit_Cnt_ThisCycle.BackColor = System.Drawing.SystemColors.ActiveCaptionText
Me.lab_Processed_Unit_Cnt_ThisCycle.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_Processed_Unit_Cnt_ThisCycle.Font = New System.Drawing.Font("Calibri", 29.25!, System.Drawing.FontStyle.Bold)
Me.lab_Processed_Unit_Cnt_ThisCycle.ForeColor = System.Drawing.Color.White
Me.lab_Processed_Unit_Cnt_ThisCycle.Location = New System.Drawing.Point(0, 0)
Me.lab_Processed_Unit_Cnt_ThisCycle.Name = "lab_Processed_Unit_Cnt_ThisCycle"
Me.lab_Processed_Unit_Cnt_ThisCycle.Size = New System.Drawing.Size(198, 57)
Me.lab_Processed_Unit_Cnt_ThisCycle.TabIndex = 16
Me.lab_Processed_Unit_Cnt_ThisCycle.Text = "0"
Me.lab_Processed_Unit_Cnt_ThisCycle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Label5
'
Me.Label5.Dock = System.Windows.Forms.DockStyle.Fill
Me.Label5.Font = New System.Drawing.Font("宋体", 36.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label5.Location = New System.Drawing.Point(0, 0)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(380, 281)
Me.Label5.TabIndex = 10
Me.Label5.Text = "0个"
Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
Me.Label5.Visible = False
'
'ListBox1
'
Me.ListBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.ListBox1.Font = New System.Drawing.Font("Consolas", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.ListBox1.FormattingEnabled = True
Me.ListBox1.ItemHeight = 14
Me.ListBox1.Location = New System.Drawing.Point(0, 0)
Me.ListBox1.Name = "ListBox1"
Me.ListBox1.Size = New System.Drawing.Size(380, 257)
Me.ListBox1.TabIndex = 10
'
'RichTextBox1
'
Me.RichTextBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.RichTextBox1.Location = New System.Drawing.Point(0, 0)
Me.RichTextBox1.Name = "RichTextBox1"
Me.RichTextBox1.Size = New System.Drawing.Size(380, 257)
Me.RichTextBox1.TabIndex = 0
Me.RichTextBox1.Text = ""
Me.RichTextBox1.Visible = False
'
'SplitContainer3
'
Me.SplitContainer3.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer3.IsSplitterFixed = True
Me.SplitContainer3.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer3.Name = "SplitContainer3"
Me.SplitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer3.Panel1
'
Me.SplitContainer3.Panel1.Controls.Add(Me.btn_FindDutPort)
Me.SplitContainer3.Panel1.Controls.Add(Me.tb_MAC_sent_to_ezCAD)
Me.SplitContainer3.Panel1.Controls.Add(Me.G3label_tip)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label4)
Me.SplitContainer3.Panel1.Controls.Add(Me.txt_template)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label3)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label2)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label1)
Me.SplitContainer3.Panel1.Controls.Add(Me.EnclosureCode_txt)
Me.SplitContainer3.Panel1.Controls.Add(Me.TextBox1)
Me.SplitContainer3.Panel1.Controls.Add(Me.DevCode_txt)
'
'SplitContainer3.Panel2
'
Me.SplitContainer3.Panel2.Controls.Add(Me.chk_flow)
Me.SplitContainer3.Panel2.Controls.Add(Me.chk_automatic)
Me.SplitContainer3.Panel2.Controls.Add(Me.tb_DUT_Msg)
Me.SplitContainer3.Panel2.Controls.Add(Me.FlowLayoutPanel1)
Me.SplitContainer3.Panel2.Controls.Add(Me.Button2)
Me.SplitContainer3.Panel2.Controls.Add(Me.Button1)
Me.SplitContainer3.Panel2.Controls.Add(Me.btn_Print)
Me.SplitContainer3.Size = New System.Drawing.Size(603, 539)
Me.SplitContainer3.SplitterDistance = 281
Me.SplitContainer3.SplitterWidth = 1
Me.SplitContainer3.TabIndex = 0
'
'btn_FindDutPort
'
Me.btn_FindDutPort.Location = New System.Drawing.Point(5, 238)
Me.btn_FindDutPort.Name = "btn_FindDutPort"
Me.btn_FindDutPort.Size = New System.Drawing.Size(81, 38)
Me.btn_FindDutPort.TabIndex = 28
Me.btn_FindDutPort.Text = "连接DUT"
Me.btn_FindDutPort.UseVisualStyleBackColor = True
'
'tb_MAC_sent_to_ezCAD
'
Me.tb_MAC_sent_to_ezCAD.Font = New System.Drawing.Font("Consolas", 18.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.tb_MAC_sent_to_ezCAD.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(0, Byte), Integer))
Me.tb_MAC_sent_to_ezCAD.Location = New System.Drawing.Point(89, 240)
Me.tb_MAC_sent_to_ezCAD.Name = "tb_MAC_sent_to_ezCAD"
Me.tb_MAC_sent_to_ezCAD.ReadOnly = True
Me.tb_MAC_sent_to_ezCAD.Size = New System.Drawing.Size(511, 36)
Me.tb_MAC_sent_to_ezCAD.TabIndex = 27
Me.tb_MAC_sent_to_ezCAD.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'G3label_tip
'
Me.G3label_tip.BackColor = System.Drawing.SystemColors.ActiveCaptionText
Me.G3label_tip.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.G3label_tip.Dock = System.Windows.Forms.DockStyle.Top
Me.G3label_tip.Font = New System.Drawing.Font("宋体", 12.0!)
Me.G3label_tip.ForeColor = System.Drawing.SystemColors.ControlLightLight
Me.G3label_tip.Location = New System.Drawing.Point(0, 0)
Me.G3label_tip.Name = "G3label_tip"
Me.G3label_tip.Size = New System.Drawing.Size(603, 50)
Me.G3label_tip.TabIndex = 26
Me.G3label_tip.Text = "-----"
Me.G3label_tip.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Label4
'
Me.Label4.AutoSize = True
Me.Label4.Font = New System.Drawing.Font("宋体", 15.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label4.Location = New System.Drawing.Point(7, 203)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(79, 20)
Me.Label4.TabIndex = 9
Me.Label4.Text = "DUT_SN:"
'
'txt_template
'
Me.txt_template.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_template.Location = New System.Drawing.Point(89, 58)
Me.txt_template.Name = "txt_template"
Me.txt_template.ReadOnly = True
Me.txt_template.Size = New System.Drawing.Size(511, 23)
Me.txt_template.TabIndex = 7
'
'Label3
'
Me.Label3.AutoSize = True
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(8, 62)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(70, 14)
Me.Label3.TabIndex = 6
Me.Label3.Text = "打印模板:"
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Font = New System.Drawing.Font("宋体", 15.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label2.Location = New System.Drawing.Point(6, 155)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(79, 20)
Me.Label2.TabIndex = 3
Me.Label2.Text = "彩盒码:"
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Font = New System.Drawing.Font("宋体", 15.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label1.Location = New System.Drawing.Point(7, 102)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(79, 20)
Me.Label1.TabIndex = 2
Me.Label1.Text = "机身码:"
'
'EnclosureCode_txt
'
Me.EnclosureCode_txt.Font = New System.Drawing.Font("宋体", 24.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.EnclosureCode_txt.ForeColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(64, Byte), Integer), CType(CType(0, Byte), Integer))
Me.EnclosureCode_txt.Location = New System.Drawing.Point(89, 143)
Me.EnclosureCode_txt.Name = "EnclosureCode_txt"
Me.EnclosureCode_txt.ReadOnly = True
Me.EnclosureCode_txt.Size = New System.Drawing.Size(511, 44)
Me.EnclosureCode_txt.TabIndex = 1
Me.EnclosureCode_txt.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'TextBox1
'
Me.TextBox1.Font = New System.Drawing.Font("宋体", 18.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TextBox1.ForeColor = System.Drawing.Color.BlanchedAlmond
Me.TextBox1.Location = New System.Drawing.Point(89, 196)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.ReadOnly = True
Me.TextBox1.Size = New System.Drawing.Size(511, 35)
Me.TextBox1.TabIndex = 0
Me.TextBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'DevCode_txt
'
Me.DevCode_txt.Font = New System.Drawing.Font("宋体", 24.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.DevCode_txt.ForeColor = System.Drawing.Color.Blue
Me.DevCode_txt.Location = New System.Drawing.Point(89, 90)
Me.DevCode_txt.Name = "DevCode_txt"
Me.DevCode_txt.ReadOnly = True
Me.DevCode_txt.Size = New System.Drawing.Size(511, 44)
Me.DevCode_txt.TabIndex = 0
Me.DevCode_txt.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'chk_flow
'
Me.chk_flow.BackColor = System.Drawing.SystemColors.Control
Me.chk_flow.Checked = True
Me.chk_flow.CheckState = System.Windows.Forms.CheckState.Checked
Me.chk_flow.Font = New System.Drawing.Font("宋体", 10.0!, CType((System.Drawing.FontStyle.Bold Or System.Drawing.FontStyle.Underline), System.Drawing.FontStyle))
Me.chk_flow.Location = New System.Drawing.Point(153, 219)
Me.chk_flow.Name = "chk_flow"
Me.chk_flow.Size = New System.Drawing.Size(130, 27)
Me.chk_flow.TabIndex = 26
Me.chk_flow.Text = "流程校对"
Me.chk_flow.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
Me.chk_flow.UseVisualStyleBackColor = False
'
'chk_automatic
'
Me.chk_automatic.AutoSize = True
Me.chk_automatic.Font = New System.Drawing.Font("宋体", 20.0!)
Me.chk_automatic.Location = New System.Drawing.Point(291, 215)
Me.chk_automatic.Name = "chk_automatic"
Me.chk_automatic.Size = New System.Drawing.Size(139, 31)
Me.chk_automatic.TabIndex = 14
Me.chk_automatic.Text = "自动打印"
Me.chk_automatic.UseVisualStyleBackColor = True
'
'tb_DUT_Msg
'
Me.tb_DUT_Msg.Font = New System.Drawing.Font("Consolas", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.tb_DUT_Msg.Location = New System.Drawing.Point(5, 3)
Me.tb_DUT_Msg.Multiline = True
Me.tb_DUT_Msg.Name = "tb_DUT_Msg"
Me.tb_DUT_Msg.Size = New System.Drawing.Size(595, 206)
Me.tb_DUT_Msg.TabIndex = 13
Me.tb_DUT_Msg.Text = resources.GetString("tb_DUT_Msg.Text")
'
'FlowLayoutPanel1
'
Me.FlowLayoutPanel1.Location = New System.Drawing.Point(170, 72)
Me.FlowLayoutPanel1.Name = "FlowLayoutPanel1"
Me.FlowLayoutPanel1.Size = New System.Drawing.Size(200, 100)
Me.FlowLayoutPanel1.TabIndex = 8
Me.FlowLayoutPanel1.Visible = False
'
'Button2
'
Me.Button2.Location = New System.Drawing.Point(444, 119)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(140, 53)
Me.Button2.TabIndex = 6
Me.Button2.Text = "Button2"
Me.Button2.UseVisualStyleBackColor = True
Me.Button2.Visible = False
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(5, 207)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(142, 47)
Me.Button1.TabIndex = 4
Me.Button1.Text = "打印预览"
Me.Button1.UseVisualStyleBackColor = True
Me.Button1.Visible = False
'
'btn_Print
'
Me.btn_Print.Font = New System.Drawing.Font("宋体", 20.0!)
Me.btn_Print.Location = New System.Drawing.Point(458, 207)
Me.btn_Print.Name = "btn_Print"
Me.btn_Print.Size = New System.Drawing.Size(142, 47)
Me.btn_Print.TabIndex = 5
Me.btn_Print.Text = "打印"
Me.btn_Print.UseVisualStyleBackColor = True
'
'ZQ_Mars_P1_FrmStationTest
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(984, 561)
Me.Controls.Add(Me.SplitContainer1)
Me.Controls.Add(Me.StatusStrip1)
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "ZQ_Mars_P1_FrmStationTest"
Me.Text = "Form1"
Me.StatusStrip1.ResumeLayout(False)
Me.StatusStrip1.PerformLayout()
Me.SplitContainer1.Panel1.ResumeLayout(False)
Me.SplitContainer1.Panel2.ResumeLayout(False)
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer1.ResumeLayout(False)
Me.SplitContainer2.Panel1.ResumeLayout(False)
Me.SplitContainer2.Panel2.ResumeLayout(False)
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer2.ResumeLayout(False)
Me.SplitContainer4.Panel1.ResumeLayout(False)
Me.SplitContainer4.Panel2.ResumeLayout(False)
CType(Me.SplitContainer4, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer4.ResumeLayout(False)
Me.SplitContainer6.Panel1.ResumeLayout(False)
Me.SplitContainer6.Panel2.ResumeLayout(False)
CType(Me.SplitContainer6, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer6.ResumeLayout(False)
Me.SplitContainer7.Panel1.ResumeLayout(False)
Me.SplitContainer7.Panel2.ResumeLayout(False)
CType(Me.SplitContainer7, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer7.ResumeLayout(False)
CType(Me.lab_imger, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer5.Panel1.ResumeLayout(False)
Me.SplitContainer5.Panel2.ResumeLayout(False)
CType(Me.SplitContainer5, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer5.ResumeLayout(False)
Me.SplitContainer3.Panel1.ResumeLayout(False)
Me.SplitContainer3.Panel1.PerformLayout()
Me.SplitContainer3.Panel2.ResumeLayout(False)
Me.SplitContainer3.Panel2.PerformLayout()
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer3.ResumeLayout(False)
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents TIM_Find_DUT_Port As Timer
Public WithEvents Commport_DUT As IO.Ports.SerialPort
Friend WithEvents TIM_DUT_TASK As Timer
Friend WithEvents TIM_CNT_CLEAR As Timer
Friend WithEvents tips As ToolTip
Friend WithEvents TIM_PRINT_LABEL_TASK As Timer
Friend WithEvents miniToolStrip As StatusStrip
Public WithEvents StatusStrip1 As StatusStrip
Friend WithEvents tsl_DUT_PortSataus As ToolStripStatusLabel
Friend WithEvents tsl_dut_msg_cnt As ToolStripStatusLabel
Friend WithEvents tsl_TIM_PrintTask As ToolStripStatusLabel
Friend WithEvents tsl_Print_Cnt_Avalable As ToolStripStatusLabel
Friend WithEvents tsl_Dut_OffLint_Cnt As ToolStripStatusLabel
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents SplitContainer2 As SplitContainer
Friend WithEvents SplitContainer4 As SplitContainer
Friend WithEvents SplitContainer6 As SplitContainer
Friend WithEvents SplitContainer7 As SplitContainer
Friend WithEvents lab_projectname As Label
Friend WithEvents lab_projectconfig As Label
Friend WithEvents lab_imger As PictureBox
Friend WithEvents SplitContainer5 As SplitContainer
Friend WithEvents lab_Processed_Unit_Cnt As Label
Friend WithEvents lab_Processed_Unit_Cnt_ThisCycle As Label
Friend WithEvents Label5 As Label
Friend WithEvents ListBox1 As ListBox
Friend WithEvents RichTextBox1 As RichTextBox
Friend WithEvents SplitContainer3 As SplitContainer
Friend WithEvents btn_FindDutPort As Button
Friend WithEvents tb_MAC_sent_to_ezCAD As TextBox
Friend WithEvents G3label_tip As Label
Friend WithEvents Label4 As Label
Friend WithEvents txt_template As TextBox
Friend WithEvents Label3 As Label
Friend WithEvents Label2 As Label
Friend WithEvents Label1 As Label
Friend WithEvents EnclosureCode_txt As TextBox
Friend WithEvents TextBox1 As TextBox
Friend WithEvents DevCode_txt As TextBox
Friend WithEvents tb_DUT_Msg As TextBox
Friend WithEvents FlowLayoutPanel1 As FlowLayoutPanel
Friend WithEvents Button2 As Button
Friend WithEvents Button1 As Button
Friend WithEvents btn_Print As Button
Friend WithEvents chk_automatic As CheckBox
Friend WithEvents chk_flow As CheckBox
End Class

View File

@@ -0,0 +1,165 @@
<?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="TIM_Find_DUT_Port.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="Commport_DUT.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>184, 17</value>
</metadata>
<metadata name="TIM_DUT_TASK.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>454, 17</value>
</metadata>
<metadata name="TIM_CNT_CLEAR.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>596, 17</value>
</metadata>
<metadata name="tips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>745, 17</value>
</metadata>
<metadata name="TIM_PRINT_LABEL_TASK.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>818, 17</value>
</metadata>
<metadata name="miniToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1012, 17</value>
</metadata>
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 55</value>
</metadata>
<metadata name="SplitContainer1.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="SplitContainer4.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="tb_DUT_Msg.Text" xml:space="preserve">
<value>******************************* START *******************************
[MAC] -&gt; [PHO10961AEDD8CD]
[Version] -&gt; [0.2.18]
[Voltage] -&gt; [1071] mV
[Humiture] -&gt; Temperature:[80.23]F, Humidity:[68.7]%RH
[PIR] -&gt; [0]
[KeyLeft] -&gt; [0]
[KeyRight] -&gt; [0]
******************************** END ********************************</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>66</value>
</metadata>
</root>

View File

@@ -0,0 +1,37 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Mars_P2_FrmStationPlan
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.SuspendLayout()
'
'ZQ_Mars_P2_FrmStationPlan
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Name = "ZQ_Mars_P2_FrmStationPlan"
Me.Text = "ZQ_Mars_P2_FrmStationPlan"
Me.ResumeLayout(False)
End Sub
End Class

View 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>

View File

@@ -0,0 +1,15 @@
Public Class ZQ_Mars_P2_FrmStationPlan
Private Sub ZQ_Mars_P2_FrmStationPlan_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
End Class

View File

@@ -0,0 +1,316 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Mars_P2_FrmStationTest
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.SerialPort1 = New System.IO.Ports.SerialPort(Me.components)
Me.SplitContainer2 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.lab_Pass = New System.Windows.Forms.Label()
Me.TextBox3 = New System.Windows.Forms.TextBox()
Me.TextBox2 = New System.Windows.Forms.TextBox()
Me.Label5 = New System.Windows.Forms.Label()
Me.Label4 = New System.Windows.Forms.Label()
Me.Button1 = New System.Windows.Forms.Button()
Me.btn_OK = New System.Windows.Forms.Button()
Me.txt_UpNum = New System.Windows.Forms.TextBox()
Me.txt_testnum = New System.Windows.Forms.TextBox()
Me.Label3 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
Me.txt_LooadNum = New System.Windows.Forms.TextBox()
Me.Btn_IsOpenSerialPort = New System.Windows.Forms.Button()
Me.Cbo_SerialPort = New System.Windows.Forms.ComboBox()
Me.Label1 = New System.Windows.Forms.Label()
Me.Txt_BaudRate = New System.Windows.Forms.TextBox()
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer2.Panel1.SuspendLayout()
Me.SplitContainer2.Panel2.SuspendLayout()
Me.SplitContainer2.SuspendLayout()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
Me.SuspendLayout()
'
'SplitContainer2
'
Me.SplitContainer2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer2.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer2.Name = "SplitContainer2"
'
'SplitContainer2.Panel1
'
Me.SplitContainer2.Panel1.Controls.Add(Me.SplitContainer1)
'
'SplitContainer2.Panel2
'
Me.SplitContainer2.Panel2.Controls.Add(Me.TextBox3)
Me.SplitContainer2.Panel2.Controls.Add(Me.TextBox2)
Me.SplitContainer2.Panel2.Controls.Add(Me.Label5)
Me.SplitContainer2.Panel2.Controls.Add(Me.Label4)
Me.SplitContainer2.Panel2.Controls.Add(Me.Button1)
Me.SplitContainer2.Panel2.Controls.Add(Me.btn_OK)
Me.SplitContainer2.Panel2.Controls.Add(Me.txt_UpNum)
Me.SplitContainer2.Panel2.Controls.Add(Me.txt_testnum)
Me.SplitContainer2.Panel2.Controls.Add(Me.Label3)
Me.SplitContainer2.Panel2.Controls.Add(Me.Label2)
Me.SplitContainer2.Panel2.Controls.Add(Me.txt_LooadNum)
Me.SplitContainer2.Panel2.Controls.Add(Me.Btn_IsOpenSerialPort)
Me.SplitContainer2.Panel2.Controls.Add(Me.Cbo_SerialPort)
Me.SplitContainer2.Panel2.Controls.Add(Me.Label1)
Me.SplitContainer2.Panel2.Controls.Add(Me.Txt_BaudRate)
Me.SplitContainer2.Size = New System.Drawing.Size(984, 562)
Me.SplitContainer2.SplitterDistance = 353
Me.SplitContainer2.TabIndex = 1
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.lab_Pass)
Me.SplitContainer1.Panel1.Font = New System.Drawing.Font("宋体", 28.0!)
Me.SplitContainer1.Size = New System.Drawing.Size(351, 560)
Me.SplitContainer1.SplitterDistance = 224
Me.SplitContainer1.TabIndex = 0
'
'lab_Pass
'
Me.lab_Pass.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lab_Pass.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_Pass.Location = New System.Drawing.Point(0, 0)
Me.lab_Pass.Name = "lab_Pass"
Me.lab_Pass.Size = New System.Drawing.Size(351, 224)
Me.lab_Pass.TabIndex = 0
Me.lab_Pass.Text = "Pass"
Me.lab_Pass.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'TextBox3
'
Me.TextBox3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.TextBox3.Font = New System.Drawing.Font("宋体", 24.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TextBox3.Location = New System.Drawing.Point(19, 176)
Me.TextBox3.Name = "TextBox3"
Me.TextBox3.ReadOnly = True
Me.TextBox3.Size = New System.Drawing.Size(420, 44)
Me.TextBox3.TabIndex = 28
Me.TextBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'TextBox2
'
Me.TextBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.TextBox2.Font = New System.Drawing.Font("宋体", 24.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TextBox2.Location = New System.Drawing.Point(16, 119)
Me.TextBox2.Name = "TextBox2"
Me.TextBox2.Size = New System.Drawing.Size(420, 44)
Me.TextBox2.TabIndex = 27
Me.TextBox2.Text = "CTHM08711382252033277"
Me.TextBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Label5
'
Me.Label5.AutoSize = True
Me.Label5.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label5.Location = New System.Drawing.Point(445, 176)
Me.Label5.Name = "Label5"
Me.Label5.RightToLeft = System.Windows.Forms.RightToLeft.Yes
Me.Label5.Size = New System.Drawing.Size(150, 37)
Me.Label5.TabIndex = 26
Me.Label5.Text = "DUT_SN:"
Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Label4
'
Me.Label4.AutoSize = True
Me.Label4.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label4.Location = New System.Drawing.Point(442, 119)
Me.Label4.Name = "Label4"
Me.Label4.RightToLeft = System.Windows.Forms.RightToLeft.Yes
Me.Label4.Size = New System.Drawing.Size(147, 37)
Me.Label4.TabIndex = 25
Me.Label4.Text = "彩盒码:"
Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Button1
'
Me.Button1.Font = New System.Drawing.Font("宋体", 27.75!)
Me.Button1.Location = New System.Drawing.Point(430, 3)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(174, 45)
Me.Button1.TabIndex = 24
Me.Button1.Text = "刷新串口"
Me.Button1.UseVisualStyleBackColor = True
Me.Button1.Visible = False
'
'btn_OK
'
Me.btn_OK.Font = New System.Drawing.Font("宋体", 27.75!)
Me.btn_OK.Location = New System.Drawing.Point(374, 455)
Me.btn_OK.Name = "btn_OK"
Me.btn_OK.Size = New System.Drawing.Size(208, 65)
Me.btn_OK.TabIndex = 23
Me.btn_OK.Text = "确认写入"
Me.btn_OK.UseVisualStyleBackColor = True
Me.btn_OK.Visible = False
'
'txt_UpNum
'
Me.txt_UpNum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_UpNum.Font = New System.Drawing.Font("宋体", 27.0!)
Me.txt_UpNum.Location = New System.Drawing.Point(359, 287)
Me.txt_UpNum.Name = "txt_UpNum"
Me.txt_UpNum.ReadOnly = True
Me.txt_UpNum.Size = New System.Drawing.Size(110, 49)
Me.txt_UpNum.TabIndex = 22
Me.txt_UpNum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'txt_testnum
'
Me.txt_testnum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_testnum.Font = New System.Drawing.Font("宋体", 27.0!)
Me.txt_testnum.Location = New System.Drawing.Point(201, 287)
Me.txt_testnum.Name = "txt_testnum"
Me.txt_testnum.Size = New System.Drawing.Size(110, 49)
Me.txt_testnum.TabIndex = 21
Me.txt_testnum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label3.Location = New System.Drawing.Point(317, 293)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(36, 37)
Me.Label3.TabIndex = 20
Me.Label3.Text = ">"
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label2.Location = New System.Drawing.Point(159, 293)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(36, 37)
Me.Label2.TabIndex = 19
Me.Label2.Text = "<"
'
'txt_LooadNum
'
Me.txt_LooadNum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_LooadNum.Font = New System.Drawing.Font("宋体", 27.0!)
Me.txt_LooadNum.Location = New System.Drawing.Point(43, 287)
Me.txt_LooadNum.Name = "txt_LooadNum"
Me.txt_LooadNum.ReadOnly = True
Me.txt_LooadNum.Size = New System.Drawing.Size(110, 49)
Me.txt_LooadNum.TabIndex = 18
Me.txt_LooadNum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Btn_IsOpenSerialPort
'
Me.Btn_IsOpenSerialPort.Font = New System.Drawing.Font("宋体", 27.75!)
Me.Btn_IsOpenSerialPort.Location = New System.Drawing.Point(442, 65)
Me.Btn_IsOpenSerialPort.Name = "Btn_IsOpenSerialPort"
Me.Btn_IsOpenSerialPort.Size = New System.Drawing.Size(173, 45)
Me.Btn_IsOpenSerialPort.TabIndex = 17
Me.Btn_IsOpenSerialPort.Text = "打开串口"
Me.Btn_IsOpenSerialPort.UseVisualStyleBackColor = True
'
'Cbo_SerialPort
'
Me.Cbo_SerialPort.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.Cbo_SerialPort.Font = New System.Drawing.Font("宋体", 27.75!)
Me.Cbo_SerialPort.FormattingEnabled = True
Me.Cbo_SerialPort.Location = New System.Drawing.Point(201, 65)
Me.Cbo_SerialPort.Name = "Cbo_SerialPort"
Me.Cbo_SerialPort.Size = New System.Drawing.Size(235, 45)
Me.Cbo_SerialPort.TabIndex = 16
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label1.Location = New System.Drawing.Point(277, 7)
Me.Label1.Name = "Label1"
Me.Label1.RightToLeft = System.Windows.Forms.RightToLeft.Yes
Me.Label1.Size = New System.Drawing.Size(147, 37)
Me.Label1.TabIndex = 15
Me.Label1.Text = "波特率:"
Me.Label1.Visible = False
'
'Txt_BaudRate
'
Me.Txt_BaudRate.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.Txt_BaudRate.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Txt_BaudRate.Location = New System.Drawing.Point(138, 7)
Me.Txt_BaudRate.Name = "Txt_BaudRate"
Me.Txt_BaudRate.ReadOnly = True
Me.Txt_BaudRate.Size = New System.Drawing.Size(133, 50)
Me.Txt_BaudRate.TabIndex = 14
Me.Txt_BaudRate.Text = "9600"
Me.Txt_BaudRate.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
Me.Txt_BaudRate.Visible = False
'
'ZQ_Mars_P2_FrmStationTest
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(984, 562)
Me.Controls.Add(Me.SplitContainer2)
Me.Name = "ZQ_Mars_P2_FrmStationTest"
Me.Text = "ZQ_Mars_P2_FrmStationTest"
Me.SplitContainer2.Panel1.ResumeLayout(False)
Me.SplitContainer2.Panel2.ResumeLayout(False)
Me.SplitContainer2.Panel2.PerformLayout()
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer2.ResumeLayout(False)
Me.SplitContainer1.Panel1.ResumeLayout(False)
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer1.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
Friend WithEvents SerialPort1 As IO.Ports.SerialPort
Friend WithEvents SplitContainer2 As SplitContainer
Friend WithEvents txt_UpNum As TextBox
Friend WithEvents txt_testnum As TextBox
Friend WithEvents Label3 As Label
Friend WithEvents Label2 As Label
Friend WithEvents txt_LooadNum As TextBox
Friend WithEvents Btn_IsOpenSerialPort As Button
Friend WithEvents Cbo_SerialPort As ComboBox
Friend WithEvents Label1 As Label
Friend WithEvents Txt_BaudRate As TextBox
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents lab_Pass As Label
Friend WithEvents Button1 As Button
Friend WithEvents Label5 As Label
Friend WithEvents Label4 As Label
Friend WithEvents TextBox3 As TextBox
Friend WithEvents TextBox2 As TextBox
Friend WithEvents btn_OK As Button
End Class

View File

@@ -0,0 +1,126 @@
<?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="SerialPort1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>
</root>

View File

@@ -0,0 +1,515 @@
Imports System.IO
Imports System.Net
Imports System.Text
Imports System.Threading
Imports Newtonsoft.Json
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Imports UTS_Core.UTSModule.Test
Imports UTS_Core.UTSModule.Test.StatusMonitor
Public Class ZQ_Mars_P2_FrmStationTest
Implements IProcessStation
Public Isopenflag As Boolean = False
Private _stationPlan As StationPackagePlan
Private Stnum As Integer = 0
Private Utnum As Integer = 0
Private Stnum_cnt As Integer = 0
Public _Uart1Tack As Thread
Private _utsApp As UtsAppForm
Public Sub ConfigSerialPort(Serial As IO.Ports.SerialPort, BaudRate As Integer, portName As String)
With Serial
.PortName = portName '串口名
.BaudRate = BaudRate ' _BaudRate '波特率
.DataBits = 8 '数据位
.StopBits = Ports.StopBits.One '停止位
.Parity = Ports.Parity.None '偶校验
.RtsEnable = True
.ReceivedBytesThreshold = 1
End With
End Sub
Private Sub ZQ_Mars_P2_FrmStationTest_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ApplicationLog.WriteInfoLog($"测试页面加载中。")
If InitializeUtsApp() = False Then Return
'InitializeForm()
_Uart1Tack = New Thread(AddressOf ReadUart1DataThread)
_Uart1Tack.Start()
End Sub
Private Function InitializeUtsApp() As Boolean
_utsApp = UtsAppForm.CreateSingleton()
_utsApp.AddStatisticsObserver(CType(Me, IProcessStation))
Try
If _utsApp.IsInitialized = False Then
_utsApp.Initialize(ProcessStation.StationTypeEnum.Package) 'Todo:可根据需要限定可选站位
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"初始化窗体失败,原因:{ex.Message}!")
MsgBox($"初始化窗体失败,原因:{ex.Message}")
Close()
Return False
End Try
Return True
End Function
Public Sub Station_Changed() Implements IProcessStation.StationChanged
'Todo:站位变化代码
ApplicationLog.WriteInfoLog($"测试页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
'清除表格数据
'InitBarcodeGrid()
ApplicationLog.WriteInfoLog($"测试页面站位变更完成!")
End Sub
Public Sub ReadUart1DataThread()
Dim readStr As String
Dim bufflen As Integer = 0
Dim readUartStr As String = ""
Dim uartport As IO.Ports.SerialPort = SerialPort1
While True
Try
If uartport.IsOpen Then
bufflen = uartport.BytesToRead
If uartport.BytesToRead > 0 Then
Dim therecvBuffer(bufflen) As Byte
uartport.Read(therecvBuffer, 0, bufflen)
readStr = Encoding.GetEncoding("GBK").GetString(therecvBuffer)
If readStr.Equals(vbNullChar) Then Continue While
readUartStr = readUartStr & readStr
readUartStr = readUartStr.ReplacevbNullChar, ""
If readUartStr.Substring(readUartStr.Length - 2).Equals(vbCrLf) Then
UartGetNumber(readUartStr)
Else
Continue While
End If
readUartStr = ""
Else
Continue While
End If
Else
Continue While
End If
Catch ex As Exception
MsgBox("串口线程错误,请重新打开软件。")
Return
End Try
Thread.Sleep(100)
End While
End Sub
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
Public Sub UartGetNumber(number As String)
Dim buff() As String = number.Trim.Split(CType" " Char)
If buff.Length = 4 Then Return
If number.ToLower.Contains"US".ToLower Then
Settxt_testnum(number, Color.Blue)
Stnum_cnt = 0
ElseIf number.ToLower.Contains"ST".ToLower Then
If Stnum_cnt > 5 Then
Settxt_testnum(number, Color.Green)
Else
Stnum_cnt = Stnum_cnt + 1
End If
End If
End Sub
Public Function ConvertDAta(ptr As String) As String
If ptr(4).ToLower.Equals("kg") Then
Dim num As Integer = 0
Integer.TryParse(ptr(3), num)
Return CType(num * 1000, String)
ElseIf ptr(4).ToLower.Equals("g") Then
Return ptr(3)
Else
Return "-1"
End If
End Function
Delegate Sub Settxttestnum(txt As String, thecolor As Color)
Public Sub Settxt_testnum(txt As String, thecolor As Color)
If Me.InvokeRequired Then '判断是否需要开委托
'StuMain.Invoke(New Action(Of NetWorkStatusEnum)(AddressOf UpdateNetWorkStatus), New Object() {netStatus})
Me.Invoke(New SettxttestnumAddressOf Settxt_testnum, {txt, thecolor})
Return
End If
Dim buff() As String = txt.Trim.Split(CType" " Char)
txt_testnum.Text = ConvertDAtabuff
If txt_testnum.Text.Equals("-1") Then
txt_testnum.ForeColor = Color.Red
Return
End If
txt_testnum.ForeColor = thecolor
End Sub
Private Sub Btn_IsOpenSerialPort_Click(sender As Object, e As EventArgs) Handles Btn_IsOpenSerialPort.Click
Dim BaudRate As Integer
If Isopenflag Then
SerialPort1.Close()
Btn_IsOpenSerialPort.Text = "关闭串口"
Btn_IsOpenSerialPort.BackColor = Color.LightGray
Btn_IsOpenSerialPort.Enabled = False
_Uart1Tack.Abort()
Else
If String.IsNullOrEmpty(Txt_BaudRate.Text.Trim) Then
MsgBox("串口为空,请选择串口")
Return
End If
Integer.TryParse(Txt_BaudRate.Text.Trim, BaudRate)
ConfigSerialPort(SerialPort1, BaudRate, Cbo_SerialPort.Text.Trim)
Try
SerialPort1.Open()
Catch ex As Exception
MsgBox($"串口打开失败,详情:{ex.Message}")
SerialPort1.Close()
Return
End Try
_Uart1Tack = New Thread(AddressOf ReadUart1DataThread)
_Uart1Tack.Start()
Btn_IsOpenSerialPort.Text = "关闭串口"
Btn_IsOpenSerialPort.BackColor = Color.Green
Btn_IsOpenSerialPort.Enabled = True
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Cbo_SerialPort.Items.Clear()
Dim portNames As String() = Ports.SerialPort.GetPortNames
Cbo_SerialPort.Items.AddRangeportNames
End Sub
Private Sub Cbo_SerialPort_DropDown(sender As Object, e As EventArgs) Handles Cbo_SerialPort.DropDown
Cbo_SerialPort.Items.Clear()
Dim portNames As String() = Ports.SerialPort.GetPortNames
Cbo_SerialPort.Items.AddRangeportNames
End Sub
Private Sub ZQ_Mars_P2_FrmStationTest_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
If IsNothing(testGrid) Then
Else
testGrid.SaveFile("E:\Mars_Edvt1_CodeTable.flx")
End If
If IsNothing(_Uart1Tack) Then
Else
If _Uart1Tack.IsAlive Then
_Uart1Tack.Abort()
End If
End If
End Sub
Public testGrid As FlexCell.Grid
Public Sub datalist()
Dim dic As New Dictionary(Of String String())
testGrid = New FlexCell.Grid
testGrid.OpenFile("E:\\Mars_Edvt1_CodeTable.flx")
End Sub
Public Function getAutSN(grid As FlexCell.Grid, colorode As String) As Dictionary(Of String, String)
Dim dic As Dictionary(Of String, String)
For rowid As Integer = 1 To grid.Rows - 1
If grid.Cell(rowid, 6).Text.ToLower.Equals(colorode.ToLower) Then
dic = New Dictionary(Of String, String)
For colid As Integer = 1 To grid.Cols - 1
dic.Add(grid.Cell(0, colid).Text, grid.Cell(rowid, colid).Text)
Next
End If
Next
Return dic
dic.Add(dic.Keys(3), dic.Values(3))
dic.Add(dic.Keys(6), dic.Values(6))
dic.Add(dic.Keys(7), dic.Values(7))
dic.Add(dic.Keys(8), dic.Values(8))
dic.Add(dic.Keys(9), dic.Values(9))
End Function
Private Sub btn_OK_Click(sender As Object, e As EventArgs) Handles btn_OK.Click
'Dim jsonString As JsonPtr = AccessApi2("123", "uts_zongqing", "Barcode", "1",,)
datalist()
End Sub
Public Function AccessApi2pwd As String dbName As String, theKey As String Optional Barcode As String = "", Optional ColorBox_BarCode As String = "", Optional OutBoxCode As String = "" As JsonPtr
Dim jsonString As String = String.Empty
Dim ptr As String = $"Pwd={pwd}&DBName={dbName}&Key={theKey}"
If Not String.IsNullOrEmptyBarcode Then
ptr = ptr & $"&Barcode={Barcode}"
End If
If Not String.IsNullOrEmptyColorBox_BarCode Then
ptr = ptr & $"&ColorBox_BarCode={ColorBox_BarCode}"
End If
If Not String.IsNullOrEmptyOutBoxCode Then
ptr = ptr & $"&OutBoxCode={OutBoxCode}"
End If
'/http://uts-data.com/CommonApi/Combind_Sn_Info? Pwd%3D%26*$@%23235%26DBName%3Duts_zongqing%26Key%3DBarcode%26Barcode%3D1
Try
jsonString = PostData("http://uts-data.com/CommonApi/Combind_Sn_Info", ptr)
'jsonString = PostData("http://47.119.147.104:90/OTApi/Login", $"Uid={user}&Pwd={pwd}&appid=1")
Catch ex As Exception
MsgBox($"{ex.Message}!盒码获取失败请联系管理员")
Return Nothing
End Try
Console.WriteLine(jsonString)
If jsonString = Nothing Then
Return Nothing
End If
Dim login As JsonPtr = JsonConvert.DeserializeObject(Of JsonPtr)(jsonString)
Return login
End Function
Public Shared Function PostData(ByVal url As String, ByVal data As String) As String
ServicePointManager.Expect100Continue = False
Dim request As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
'//Post请求方式
request.Method = "post"
'内容类型
request.ContentType = "application/x-www-form-urlencoded"
'将URL编码后的字符串转化为字节
Dim encoding As New UTF8Encoding()
Dim bys As Byte() = encoding.GetBytes(data)
'设置请求的 ContentLength
request.ContentLength = bys.Length
'获得请 求流
Dim newStream As Stream = request.GetRequestStream()
newStream.Write(bys, 0, bys.Length)
newStream.Close()
'获得响应流
Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
Return sr.ReadToEnd
End Function
Private Sub DevCode_txt_PreviewKeyDown()
Dim buff() As String
Dim Customfield As New Dictionary(Of String String)
Dim ColorBox As String = ""
Dim node As New RowNode
Dim Dut_SN As String = ""
Dim datenow As Date = Now
If String.IsNullOrEmpty(txt_testnum.Text) Then
MsgBox("未获取测量数据")
Return
End If
If String.IsNullOrEmpty(TextBox2.Text) AndAlso String.IsNullOrEmpty(TextBox3.Text) Then
MsgBox("未获取条码数据")
Return
End If
Dim testresuli As String = CopmareTheSize()
If Not testresuli.Equals("False") Then
Dim jsonString As JsonPtr = AccessApi2("123", "uts_zongqing", "Barcode", "1",,)
If IsNothing(jsonString) Then
node.RowListIndex = 1
node.Description = "获取DUT_SN失败"
TheTestResults(Dut_SN, TestResult.TestResultEnum.Fail, datenow, node)
End If
TheTestResults("", TestResult.TestResultEnum.Pass, datenow, Nothing, Customfield)
Else
node.RowListIndex = 1
node.Description = "称量数据校准失败!"
TheTestResults(Dut_SN, TestResult.TestResultEnum.Fail, datenow, node)
End If
'ColorBox = AccessApi("$%@132", buff(0).Trim, "uts_zongqing")
' EnclosureCode_txt.Text = ColorBox
' TextBox1.Text = buff(0).Trim
' 'If GetTheColorBoxCode(DevCode_txt.Text Dut_SN) Then
' If Not ColorBox.Equals("False") Then
' SetBarTendertoGridGrdPriview, DicBarTender
' Customfield.Clear()
' Customfield.Add("MacCode", buff(1).Trim)
' Customfield.Add("SnCode", buff(0).Trim)
' Customfield.Add("ColorBoxCode", ColorBox)
' TheTestResults(buff(0).Trim, TestResult.TestResultEnum.Pass, datenow, Nothing, Customfield)
' Else
' node.RowListIndex = 1
' node.Description = "机身码绑定失败"
' TheTestResults(Dut_SN, TestResult.TestResultEnum.Fail, datenow, node)
' End If
' Else
' node.RowListIndex = 1
' node.Description = "机身码错误"
' TheTestResults(Dut_SN, TestResult.TestResultEnum.Fail, datenow, node)
' End If
End Sub
Private Sub TheTestResults(dutSn As String, ispass As TestResult.TestResultEnum, datenow As Date, Optional FailMsg As RowNode = Nothing, Optional Customfield As Dictionary(Of String String) = Nothing)
'重置信息
_utsApp.TestResult.ResetTestResult()
'产线索引
_utsApp.TestResult.ProductionLineID = -1
'测试开始时间
_utsApp.TestResult.StartTime = Now
_utsApp.TestResult.DUT_SN = dutSn
_utsApp.TestResult.TestResult = ispass
_utsApp.TestResult.UsedTime = Now - datenow
If Not IsNothing(FailMsg) Then
_utsApp.TestResult.FailSteps.Add(FailMsg)
End If
If Not IsNothing(Customfield) Then
For indexptr As Integer = 0 To Customfield.Count - 1
_utsApp.TestResult.AddCustomRecord($"{Customfield.Keys(indexptr)}", $"{Customfield.Values(indexptr)}")
Next
End If
Try
'提交测试记录,缺省参数默认为FalseTrue则测试记录唯一,覆盖相同条码记录
_utsApp.CommitTestResult(True)
If ispass = TestResult.TestResultEnum.Pass Then
TestStatusMonitor.TestStatus = StatusMonitor.TestStatusMonitor.TestStatusEnum.TestPass
Else
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestFail
End If
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestPass
Catch ex As Exception
ApplicationLog.WriteErrorLog($"写入称量数据失败:{ex.Message}")
MsgBox($"写入称量数据失败:{ex.Message}")
'LblResult.Text = "FAIL"
'LblResult.ForeColor = Color.Red
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestFail
Return
End Try
End Sub
Public Function CopmareTheSize() As String
Dim loadnum As Integer = 0
Dim upnum As Integer = 0
Dim connum As Integer = 0
If Integer.TryParse(txt_LooadNum.Text, loadnum) AndAlso Integer.TryParse(txt_testnum.Text, connum) AndAlso Integer.TryParse(txt_UpNum.Text, upnum) Then
If loadnum < connum AndAlso connum < upnum Then
Return CStr(connum)
Else
Return "False"
End If
Else
Return "False"
End If
End Function
Private Sub TextBox2_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles TextBox2.PreviewKeyDown
If e.KeyData = Keys.Enter Then
End If
End Sub
Private Sub SplitContainer2_Panel2_Paint(sender As Object, e As PaintEventArgs) Handles SplitContainer2.Panel2.Paint
End Sub
End Class
Public Class JsonPtr
Public Data As List(Of jsonrusil)
Public Message As String
End Class
Public Class jsonrusil
Public ID As String
Public Project As String
Public importdateTime As Date
Public updatetime As Date
Public mars_colorBoxcode As String
Public mars_outboxcode As String
Public mars_MacCode As String
Public mars_Unitweight As String
End Class

View File

@@ -0,0 +1,446 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Mars_T2_FrmStationPlan
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ZQ_Mars_T2_FrmStationPlan))
Me.MsiCopyNode = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiNodePaste = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiUndo = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiRedo = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiSaveNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiLoadNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStart = New System.Windows.Forms.ToolStripMenuItem()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.TsBtnOpen = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSave = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator()
Me.TsBtnLoad = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSaveAs = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiCutNode = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
Me.CmsPlanGrid = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.ToolStripSeparator7 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugEnd = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStep = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugContinue = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator8 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugSetup = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugMain = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugPass = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugFail = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugCleanup = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator9 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugNode = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugNodeBegin = New System.Windows.Forms.ToolStripMenuItem()
Me.StuMain = New System.Windows.Forms.StatusStrip()
Me.DlgOpenFile = New System.Windows.Forms.OpenFileDialog()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
Me.LblDesc = New System.Windows.Forms.Label()
Me.GrdStationPlan = New FlexCell.Grid()
Me.Grid1 = New FlexCell.Grid()
Me.ToolStrip1.SuspendLayout()
Me.CmsPlanGrid.SuspendLayout()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
Me.GroupBox2.SuspendLayout()
Me.SuspendLayout()
'
'MsiCopyNode
'
Me.MsiCopyNode.Enabled = False
Me.MsiCopyNode.Name = "MsiCopyNode"
Me.MsiCopyNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCopyNode.Text = "复制"
'
'MsiNodePaste
'
Me.MsiNodePaste.Enabled = False
Me.MsiNodePaste.Name = "MsiNodePaste"
Me.MsiNodePaste.Size = New System.Drawing.Size(192, 22)
Me.MsiNodePaste.Text = "粘贴"
'
'ToolStripSeparator5
'
Me.ToolStripSeparator5.Name = "ToolStripSeparator5"
Me.ToolStripSeparator5.Size = New System.Drawing.Size(189, 6)
'
'MsiUndo
'
Me.MsiUndo.Enabled = False
Me.MsiUndo.Name = "MsiUndo"
Me.MsiUndo.Size = New System.Drawing.Size(192, 22)
Me.MsiUndo.Text = "撤销"
'
'MsiRedo
'
Me.MsiRedo.Enabled = False
Me.MsiRedo.Name = "MsiRedo"
Me.MsiRedo.Size = New System.Drawing.Size(192, 22)
Me.MsiRedo.Text = "重做"
'
'ToolStripSeparator6
'
Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
Me.ToolStripSeparator6.Size = New System.Drawing.Size(189, 6)
'
'MsiSaveNodeFile
'
Me.MsiSaveNodeFile.Name = "MsiSaveNodeFile"
Me.MsiSaveNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiSaveNodeFile.Text = "另存为节点文件"
'
'MsiLoadNodeFile
'
Me.MsiLoadNodeFile.Name = "MsiLoadNodeFile"
Me.MsiLoadNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiLoadNodeFile.Text = "加载节点文件"
'
'TsmiDebugStart
'
Me.TsmiDebugStart.Name = "TsmiDebugStart"
Me.TsmiDebugStart.ShortcutKeys = System.Windows.Forms.Keys.F1
Me.TsmiDebugStart.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStart.Text = "开始执行"
'
'GroupBox1
'
Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox1.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.GroupBox1.Location = New System.Drawing.Point(0, 0)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(536, 561)
Me.GroupBox1.TabIndex = 0
Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "常规预览"
'
'TsBtnOpen
'
Me.TsBtnOpen.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnOpen.Image = CType(resources.GetObject("TsBtnOpen.Image"), System.Drawing.Image)
Me.TsBtnOpen.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnOpen.Name = "TsBtnOpen"
Me.TsBtnOpen.Size = New System.Drawing.Size(35, 33)
Me.TsBtnOpen.Text = "打开"
Me.TsBtnOpen.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSave
'
Me.TsBtnSave.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnSave.Image = CType(resources.GetObject("TsBtnSave.Image"), System.Drawing.Image)
Me.TsBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSave.Name = "TsBtnSave"
Me.TsBtnSave.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSave.Text = "保存"
Me.TsBtnSave.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator4
'
Me.ToolStripSeparator4.Name = "ToolStripSeparator4"
Me.ToolStripSeparator4.Size = New System.Drawing.Size(6, 36)
'
'TsBtnLoad
'
Me.TsBtnLoad.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnLoad.Image = CType(resources.GetObject("TsBtnLoad.Image"), System.Drawing.Image)
Me.TsBtnLoad.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnLoad.Name = "TsBtnLoad"
Me.TsBtnLoad.Size = New System.Drawing.Size(35, 33)
Me.TsBtnLoad.Text = "重载"
Me.TsBtnLoad.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSaveAs
'
Me.TsBtnSaveAs.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnSaveAs.Image = CType(resources.GetObject("TsBtnSaveAs.Image"), System.Drawing.Image)
Me.TsBtnSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSaveAs.Name = "TsBtnSaveAs"
Me.TsBtnSaveAs.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSaveAs.Text = "导出"
Me.TsBtnSaveAs.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator3
'
Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 36)
'
'MsiCutNode
'
Me.MsiCutNode.Enabled = False
Me.MsiCutNode.Name = "MsiCutNode"
Me.MsiCutNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCutNode.Text = "剪切"
'
'ToolStrip1
'
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TsBtnOpen, Me.TsBtnSave, Me.ToolStripSeparator4, Me.TsBtnLoad, Me.TsBtnSaveAs, Me.ToolStripSeparator3})
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(984, 36)
Me.ToolStrip1.TabIndex = 7
Me.ToolStrip1.Text = "ToolStrip1"
'
'CmsPlanGrid
'
Me.CmsPlanGrid.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MsiCopyNode, Me.MsiCutNode, Me.MsiNodePaste, Me.ToolStripSeparator5, Me.MsiUndo, Me.MsiRedo, Me.ToolStripSeparator6, Me.MsiSaveNodeFile, Me.MsiLoadNodeFile, Me.ToolStripSeparator7, Me.TsmiDebugStart, Me.TsmiDebugEnd, Me.TsmiDebugStep, Me.TsmiDebugContinue, Me.ToolStripSeparator8, Me.TsmiDebugSetup, Me.TsmiDebugMain, Me.TsmiDebugPass, Me.TsmiDebugFail, Me.TsmiDebugCleanup, Me.ToolStripSeparator9, Me.TsmiDebugNode, Me.TsmiDebugNodeBegin})
Me.CmsPlanGrid.Name = "CmsMain"
Me.CmsPlanGrid.Size = New System.Drawing.Size(193, 430)
'
'ToolStripSeparator7
'
Me.ToolStripSeparator7.Name = "ToolStripSeparator7"
Me.ToolStripSeparator7.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugEnd
'
Me.TsmiDebugEnd.Name = "TsmiDebugEnd"
Me.TsmiDebugEnd.ShortcutKeys = System.Windows.Forms.Keys.F2
Me.TsmiDebugEnd.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugEnd.Text = "退出执行"
'
'TsmiDebugStep
'
Me.TsmiDebugStep.Name = "TsmiDebugStep"
Me.TsmiDebugStep.ShortcutKeys = System.Windows.Forms.Keys.F3
Me.TsmiDebugStep.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStep.Text = "单步执行"
'
'TsmiDebugContinue
'
Me.TsmiDebugContinue.Name = "TsmiDebugContinue"
Me.TsmiDebugContinue.ShortcutKeys = System.Windows.Forms.Keys.F4
Me.TsmiDebugContinue.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugContinue.Text = "继续执行"
'
'ToolStripSeparator8
'
Me.ToolStripSeparator8.Name = "ToolStripSeparator8"
Me.ToolStripSeparator8.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugSetup
'
Me.TsmiDebugSetup.Name = "TsmiDebugSetup"
Me.TsmiDebugSetup.ShortcutKeys = System.Windows.Forms.Keys.F5
Me.TsmiDebugSetup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugSetup.Text = "Setup模块执行"
'
'TsmiDebugMain
'
Me.TsmiDebugMain.Name = "TsmiDebugMain"
Me.TsmiDebugMain.ShortcutKeys = System.Windows.Forms.Keys.F6
Me.TsmiDebugMain.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugMain.Text = "Main模块执行"
'
'TsmiDebugPass
'
Me.TsmiDebugPass.Name = "TsmiDebugPass"
Me.TsmiDebugPass.ShortcutKeys = System.Windows.Forms.Keys.F7
Me.TsmiDebugPass.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugPass.Text = "Pass模块执行"
'
'TsmiDebugFail
'
Me.TsmiDebugFail.Name = "TsmiDebugFail"
Me.TsmiDebugFail.ShortcutKeys = System.Windows.Forms.Keys.F8
Me.TsmiDebugFail.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugFail.Text = "Fail模块执行"
'
'TsmiDebugCleanup
'
Me.TsmiDebugCleanup.Name = "TsmiDebugCleanup"
Me.TsmiDebugCleanup.ShortcutKeys = System.Windows.Forms.Keys.F9
Me.TsmiDebugCleanup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugCleanup.Text = "Cleanup模块执行"
'
'ToolStripSeparator9
'
Me.ToolStripSeparator9.Name = "ToolStripSeparator9"
Me.ToolStripSeparator9.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugNode
'
Me.TsmiDebugNode.Name = "TsmiDebugNode"
Me.TsmiDebugNode.ShortcutKeys = System.Windows.Forms.Keys.F10
Me.TsmiDebugNode.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNode.Text = "节点测试"
'
'TsmiDebugNodeBegin
'
Me.TsmiDebugNodeBegin.Name = "TsmiDebugNodeBegin"
Me.TsmiDebugNodeBegin.ShortcutKeys = System.Windows.Forms.Keys.F11
Me.TsmiDebugNodeBegin.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNodeBegin.Text = "节点开始测试"
'
'StuMain
'
Me.StuMain.Location = New System.Drawing.Point(0, 539)
Me.StuMain.Name = "StuMain"
Me.StuMain.Size = New System.Drawing.Size(984, 22)
Me.StuMain.TabIndex = 8
Me.StuMain.Text = "StatusStrip1"
'
'DlgOpenFile
'
Me.DlgOpenFile.FileName = "OpenFileDialog1"
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.GroupBox2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.GroupBox1)
Me.SplitContainer1.Size = New System.Drawing.Size(984, 561)
Me.SplitContainer1.SplitterDistance = 444
Me.SplitContainer1.TabIndex = 9
'
'GroupBox2
'
Me.GroupBox2.Controls.Add(Me.LblDesc)
Me.GroupBox2.Controls.Add(Me.GrdStationPlan)
Me.GroupBox2.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox2.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.GroupBox2.Location = New System.Drawing.Point(0, 0)
Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(444, 561)
Me.GroupBox2.TabIndex = 0
Me.GroupBox2.TabStop = False
Me.GroupBox2.Text = "流程参数"
'
'LblDesc
'
Me.LblDesc.Dock = System.Windows.Forms.DockStyle.Bottom
Me.LblDesc.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.LblDesc.Location = New System.Drawing.Point(3, 497)
Me.LblDesc.Name = "LblDesc"
Me.LblDesc.Size = New System.Drawing.Size(438, 61)
Me.LblDesc.TabIndex = 6
'
'GrdStationPlan
'
Me.GrdStationPlan.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.GrdStationPlan.BorderStyle = FlexCell.BorderStyleEnum.None
Me.GrdStationPlan.CheckedImage = Nothing
Me.GrdStationPlan.ContextMenuStrip = Me.CmsPlanGrid
Me.GrdStationPlan.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
Me.GrdStationPlan.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.GrdStationPlan.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer))
Me.GrdStationPlan.Location = New System.Drawing.Point(0, 24)
Me.GrdStationPlan.Name = "GrdStationPlan"
Me.GrdStationPlan.Size = New System.Drawing.Size(441, 470)
Me.GrdStationPlan.TabIndex = 4
Me.GrdStationPlan.UncheckedImage = Nothing
'
'Grid1
'
Me.Grid1.BorderStyle = FlexCell.BorderStyleEnum.None
Me.Grid1.CheckedImage = Nothing
Me.Grid1.ContextMenuStrip = Me.CmsPlanGrid
Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
Me.Grid1.Dock = System.Windows.Forms.DockStyle.Top
Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer))
Me.Grid1.Location = New System.Drawing.Point(0, 36)
Me.Grid1.Name = "Grid1"
Me.Grid1.Size = New System.Drawing.Size(984, 424)
Me.Grid1.TabIndex = 10
Me.Grid1.UncheckedImage = Nothing
'
'ZQ_Mars_T2_FrmStationPlan
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(984, 561)
Me.Controls.Add(Me.Grid1)
Me.Controls.Add(Me.ToolStrip1)
Me.Controls.Add(Me.StuMain)
Me.Controls.Add(Me.SplitContainer1)
Me.Name = "ZQ_Mars_T2_FrmStationPlan"
Me.Text = "ZQ_Mars_P2_FrmStationPlan"
Me.ToolStrip1.ResumeLayout(false)
Me.ToolStrip1.PerformLayout
Me.CmsPlanGrid.ResumeLayout(false)
Me.SplitContainer1.Panel1.ResumeLayout(false)
Me.SplitContainer1.Panel2.ResumeLayout(false)
CType(Me.SplitContainer1,System.ComponentModel.ISupportInitialize).EndInit
Me.SplitContainer1.ResumeLayout(false)
Me.GroupBox2.ResumeLayout(false)
Me.ResumeLayout(false)
Me.PerformLayout
End Sub
Friend WithEvents MsiCopyNode As ToolStripMenuItem
Friend WithEvents MsiNodePaste As ToolStripMenuItem
Friend WithEvents ToolStripSeparator5 As ToolStripSeparator
Friend WithEvents MsiUndo As ToolStripMenuItem
Friend WithEvents MsiRedo As ToolStripMenuItem
Friend WithEvents ToolStripSeparator6 As ToolStripSeparator
Friend WithEvents MsiSaveNodeFile As ToolStripMenuItem
Friend WithEvents MsiLoadNodeFile As ToolStripMenuItem
Friend WithEvents TsmiDebugStart As ToolStripMenuItem
Friend WithEvents GroupBox1 As GroupBox
Friend WithEvents TsBtnOpen As ToolStripButton
Friend WithEvents TsBtnSave As ToolStripButton
Friend WithEvents ToolStripSeparator4 As ToolStripSeparator
Friend WithEvents TsBtnLoad As ToolStripButton
Friend WithEvents TsBtnSaveAs As ToolStripButton
Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
Friend WithEvents MsiCutNode As ToolStripMenuItem
Friend WithEvents ToolStrip1 As ToolStrip
Friend WithEvents CmsPlanGrid As ContextMenuStrip
Friend WithEvents ToolStripSeparator7 As ToolStripSeparator
Friend WithEvents TsmiDebugEnd As ToolStripMenuItem
Friend WithEvents TsmiDebugStep As ToolStripMenuItem
Friend WithEvents TsmiDebugContinue As ToolStripMenuItem
Friend WithEvents ToolStripSeparator8 As ToolStripSeparator
Friend WithEvents TsmiDebugSetup As ToolStripMenuItem
Friend WithEvents TsmiDebugMain As ToolStripMenuItem
Friend WithEvents TsmiDebugPass As ToolStripMenuItem
Friend WithEvents TsmiDebugFail As ToolStripMenuItem
Friend WithEvents TsmiDebugCleanup As ToolStripMenuItem
Friend WithEvents ToolStripSeparator9 As ToolStripSeparator
Friend WithEvents TsmiDebugNode As ToolStripMenuItem
Friend WithEvents TsmiDebugNodeBegin As ToolStripMenuItem
Friend WithEvents StuMain As StatusStrip
Friend WithEvents DlgOpenFile As OpenFileDialog
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents GroupBox2 As GroupBox
Friend WithEvents LblDesc As Label
Friend WithEvents GrdStationPlan As FlexCell.Grid
Friend WithEvents Grid1 As FlexCell.Grid
End Class

View File

@@ -0,0 +1,185 @@
<?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="TsBtnOpen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHqSURBVGhD7Zm9Tt1AEEYvNDxCArwSXZDSpAwiFQ+HEA2Q
dPmpeAl4AaALEnxTXDSate/xeHcvkeIjnerzN97F9rWEVwsLC6PsyFP5Rz7Jl07ey0+yKQfyuxw6YQ//
ys+yCbvyhxw6UU+f5RdZzTc5dIJt2ORK2D3vh17ID3KNz8wabLG2aD+vehOP0g/8KD0+M2tpvgk/yIxQ
PodjGTcx+5nwQ8wI5XNptgk/wIxQXkOTTfiyGaG8lupN+KIZiflc7Q18JIcYe7AnvbF9yYzEvMY7OcbQ
JjYd/4YvmBEbEo+ZKy3INhE7CBXsstvlj8dl3XQLeWIPSRc6k15PutCZ9HrShc6k15MudCa9nnShM+n1
pAudSa+HCq1+RqNjP6vxOIQKLV9k0aEXWzwGoULMWxuhvIAKMW9thPICKlCeheZRXkAFyrPQPMoLqEB5
FppHeQEVKM9C8ygvoALlWWge5QVUoDwLzaO8gAqUZ6F5lBdQgfIsNI/yAipQnoXmUV5ABcqz0DzKCx6k
L/j/TBs+M2vZNM8+tPjM1ob8lr50LvflGp+ZtYzNs3NeSp/9ksiZ9KV/ya8S2ZO3cmjAe3ol7cPjJA7l
jRwa9B5eS38bT8J2eyJ/yvjVZhvaA2vntttm8l9+YeH/YrV6BfNWMy9RUhK1AAAAAElFTkSuQmCC
</value>
</data>
<data name="TsBtnLoad.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSaveAs.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADQSURBVEhL5ZYxDgFBGEbnCE4gjuAcCnEER3AER9BpVWqV
QqcTlSOIUkVFx/fWSMYsyfx/FCu+5CX7ZWfmTbKT3Q1J+mLnYCmKMhQ3sRKLQg5iL4ryFHSqVpaZ+H3B
UQwy2qIWr4A5OaxVi0fATrsJPfFVQR7m/pGA42eBmARc8yrgpMxj38aewhjuEbNg/LgMLUEfVe01jGmu
4CpO4hz7JfYUxrgFGzER09jXsacwxi34/WdggZgE7MwCMQk8aYbA8tHPYe5Hgfe35R2spYRwB61XwcSY
NxMjAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>230, 55</value>
</metadata>
<metadata name="CmsPlanGrid.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>342, 55</value>
</metadata>
<metadata name="StuMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>469, 55</value>
</metadata>
<metadata name="DlgOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>570, 55</value>
</metadata>
</root>

View File

@@ -0,0 +1,492 @@
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Imports UTS_Core.UTSModule.Station.StationPackagePlan
Imports UTS_Core.UTSModule.Test.StatusMonitor
Public Class ZQ_Mars_T2_FrmStationPlan
' Implements IProcessFileChanged
Implements IProcessStation
Implements IProductionLine
Private _utsApp As UtsAppForm
Private _stationPlan As StationPackagePlan
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
Public Sub utsbctfilechanged
'For Each observer As IProcessStation In _observerList
' observer.StationChanged()
' Next
End Sub
''' <summary>
''' 站位变更代码
''' </summary>
Public Sub Station_Changed() Implements IProcessStation.StationChanged
ApplicationLog.WriteInfoLog($"编辑页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
Try
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
Catch ex As Exception
MsgBox($"加载项目流程失败,{ex.Message}")
End Try
InitGrid(_stationPlan)
ApplicationLog.WriteInfoLog($"编辑页面站位变更完成。")
End Sub
''' <summary>
''' 产线变化代码
''' </summary>
Public Sub ProductionLineChanged() Implements IProductionLine.ProductionLineChanged
ApplicationLog.WriteInfoLog($"编辑页面生产线变更中。")
ApplicationLog.WriteInfoLog($"编辑页面生产线变更完成。")
End Sub
Private Sub FrmStationPlan_Load(sender As Object, e As EventArgs) Handles Me.Load
ApplicationLog.WriteInfoLog($"编辑页面加载中。")
'初始化UTS窗体信息,失败则关闭窗体
If InitializeUtsApp() = False Then Return
'初始化窗体页面
InitializeForm()
ApplicationLog.WriteInfoLog($"编辑页面加载完成。")
End Sub
Private Function InitializeUtsApp() As Boolean
_utsApp = UtsAppForm.CreateSingleton()
_utsApp.AddStatisticsObserver(Me)
Try
If _utsApp.IsInitialized = False Then
_utsApp.Initialize(ProcessStation.StationTypeEnum.Package) 'Todo:可根据需要限定可选站位
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"初始化窗体失败,原因:{ex.Message}!")
MsgBox($"初始化窗体失败,原因:{ex.Message}")
Close()
Return False
End Try
Return True
End Function
Private Sub InitializeForm()
InitGrid(_stationPlan)
End Sub
Private Sub TsBtnOpen_Click(sender As Object, e As EventArgs) Handles TsBtnOpen.Click
Using xml As New OpenFileDialog
xml.Filter = $"流程文件(*.xml)|*.xml"
If xml.ShowDialog() = DialogResult.OK Then
ApplicationLog.WriteInfoLog($"编辑页面执行流程正在加载{xml.FileName}")
LoadTreeViewFormXml(xml.FileName)
ApplicationLog.WriteInfoLog($"编辑页面执行流程加载完成。")
End If
End Using
End Sub
Private Sub TsBtnLoad_Click(sender As Object, e As EventArgs) Handles TsBtnLoad.Click
If MsgBox("重载会将流程返回为上一次保存的流程状态,是否继续", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
ApplicationLog.WriteInfoLog($"编辑页面执行流程重载中。")
LoadTreeViewFormXml()
ApplicationLog.WriteInfoLog($"编辑页面执行流程重载完成。")
End If
End Sub
Private Sub TsBtnSave_Click(sender As Object, e As EventArgs) Handles TsBtnSave.Click
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存中。")
UpdateGrid(_stationPlan)
ExportTreeViewToXml()
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存完成。")
End Sub
''' <summary>
''' 读取XML,加载树状视图
''' </summary>
Private Sub LoadTreeViewFormXml()
Dim revStationPlanPath As String = $"{UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)}\Main.xml"
Try
_stationPlan.LoadFile(revStationPlanPath)
InitGrid(_stationPlan)
If StationEditStatusMonitor.StationEditStatus <> StationEditStatusMonitor.StationEditStatusEnum.Saved Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"加载测试站流程发生错误,原因:{ex.Message}")
MsgBox($"加载测试站流程发生错误,原因:{ex.Message}")
_stationPlan.CreateStationPlan()
End Try
End Sub
''' <summary>
''' 读取XML,加载树状视图
''' </summary>
Private Sub LoadTreeViewFormXml(revStationPlanPath As String)
Try
_stationPlan.LoadFile(revStationPlanPath)
InitGrid(_stationPlan)
If StationEditStatusMonitor.StationEditStatus <> StationEditStatusMonitor.StationEditStatusEnum.Saved Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"加载测试站流程发生错误,原因:{ex.Message}")
MsgBox($"加载测试站流程发生错误,原因:{ex.Message}")
_stationPlan.CreateStationPlan()
End Try
End Sub
''' <summary>
''' 将树状视图导出为Xml
''' </summary>
Private Sub ExportTreeViewToXml()
'保存至项目文件
Dim revStationPlanPath As String = $"{UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)}\Main.xml"
_stationPlan.SaveFile(revStationPlanPath)
'备份至临时文件
Dim tempPath As String = $"{UtsPath.StationDesignDirPath()}\Main.xml"
_stationPlan.SaveFile(tempPath)
If StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
End Sub
Private Sub TsBtnSaveAs_Click(sender As Object, e As EventArgs) Handles TsBtnSaveAs.Click
Using dlg As New SaveFileDialog
dlg.Filter = "Excel 文件(*.xls)|*.xls|CSV 文件(*.csv)|*.csv|PDF 文件(*.pdf)|*.pdf"
dlg.AddExtension = True
If dlg.ShowDialog <> DialogResult.OK Then Return
Cursor = Cursors.WaitCursor
ApplicationLog.WriteInfoLog($"编辑页面执行流程导出中。")
Try
Select Case dlg.FilterIndex
Case 1
GrdStationPlan.ExportToExcel(dlg.FileName, True, True)
Case 2
GrdStationPlan.ExportToCSV(dlg.FileName, True, True)
Case 3
GrdStationPlan.ExportToPDF(dlg.FileName)
End Select
ApplicationLog.WriteInfoLog($"编辑页面执行流程导出完成。")
Catch ex As Exception
ApplicationLog.WriteErrorLog($"编辑页面执行流程导出失败,原因:{ex.Message}")
MsgBox($"编辑页面执行流程导出失败,原因:{ex.Message}")
End Try
Cursor = Cursors.Arrow
End Using
End Sub
#Region "Package表格"
Private Sub InitGrid(Optional stationplan As StationPackagePlan = Nothing)
With GrdStationPlan
.AutoRedraw = False
.NewFile()
.BorderStyle = FlexCell.BorderStyleEnum.None
.Cols = ColNames.Max
.Rows = RowItems.Max
.ExtendLastCol = True
.DisplayRowNumber = True
.Cell(0, ColNames.Item).Text = "Item"
.Cell(0, ColNames.Value).Text = "Value"
.Column(ColNames.Item).Width = 200
.Column(ColNames.Item).Locked = True
.DefaultRowHeight = 20
.DefaultFont = New Font("微软雅黑", 10)
For i As Integer = 1 To RowItems.Max - 1
.Cell(i, ColNames.Item).Text = [Enum].GetName(GetType(RowItems), i)
Next
'.Cell(RowItems.CheckSnTested, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.CheckSnPackaged, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.CheckSnMO, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.MissingQuantity, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.BarCodeType, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
.Cell(RowItems.AutoPrint, ColNames.Value).CellType = FlexCell.CellTypeEnum.CheckBox
.Cell(RowItems.BoxMumEditKey, ColNames.Item).Text = "uperLimit"
.Cell(RowItems.CompanyName, ColNames.Item).Text = "LowerLimit
"
'.Cell(RowItems.ErrorSound, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
'.Cell(RowItems.TemplateFile, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
'.Cell(RowItems.CompanyLogo, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
FillGrid(stationplan)
.AutoRedraw = True
.Refresh()
End With
End Sub
Private Sub FillGrid(stationplan As StationPackagePlan)
If stationplan Is Nothing Then Return
With GrdStationPlan
'.Cell(RowItems.CheckSnTested, ColNames.Value).Text = stationplan.CheckSnTested.ToString
'.Cell(RowItems.CheckSnPackaged, ColNames.Value).Text = stationplan.CheckSnPackaged.ToString
'.Cell(RowItems.CheckSnMO, ColNames.Value).Text = stationplan.CheckSnMO.ToString
'.Cell(RowItems.PictureCount, ColNames.Value).Text = stationplan.PictureCount.ToString
'.Cell(RowItems.UnlockKey, ColNames.Value).Text = stationplan.UnlockKey
'.Cell(RowItems.BarCodeType, ColNames.Value).Text = stationplan.BarCodeType.ToString
'.Cell(RowItems.MissingQuantity, ColNames.Value).Text = stationplan.MissingQuantity.ToString
'.Cell(RowItems.MissingQuantityKey, ColNames.Value).Text = stationplan.MissingQuantityKey
.Cell(RowItems.AutoPrint, ColNames.Value).Text = stationplan.AutoPrint.ToString
'.Cell(RowItems.ErrorSound, ColNames.Value).Text = stationplan.ErrorSound
'.Cell(RowItems.TemplateFile, ColNames.Value).Text = stationplan.TemplateFile
.Cell(RowItems.BoxMumEditKey, ColNames.Value).Text = stationplan.BoxMumEditKey
'.Cell(RowItems.CompanyLogo, ColNames.Value).Text = stationplan.CompanyLogo
.Cell(RowItems.CompanyName, ColNames.Value).Text = stationplan.CompanyName
'.Cell(RowItems.BoxNumText, ColNames.Value).Text = stationplan.BoxNumText
'.Cell(RowItems.BoxBarCode, ColNames.Value).Text = stationplan.BoxBarCode
End With
If StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
End Sub
Private Sub UpdateGrid(stationplan As StationPackagePlan)
If _stationPlan Is Nothing Then Return
With GrdStationPlan
'If [Enum].TryParse(.Cell(RowItems.CheckSnTested, ColNames.Value).Text, stationplan.CheckSnTested) = False Then
' MsgBox("更新CheckSnTested失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.CheckSnPackaged, ColNames.Value).Text, stationplan.CheckSnPackaged) = False Then
' MsgBox("更新CheckSnPackaged失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.CheckSnMO, ColNames.Value).Text, stationplan.CheckSnMO) = False Then
' MsgBox("更新CheckSnMO失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.BarCodeType, ColNames.Value).Text, stationplan.BarCodeType) = False Then
' MsgBox("更新BarCodeType失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.MissingQuantity, ColNames.Value).Text, stationplan.MissingQuantity) = False Then
' MsgBox("更新MissingQuantity失败!")
' Return
'End If
'stationplan.PictureCount = .Cell(RowItems.PictureCount, ColNames.Value).IntegerValue
'stationplan.UnlockKey = .Cell(RowItems.UnlockKey, ColNames.Value).Text
'stationplan.MissingQuantityKey = .Cell(RowItems.MissingQuantityKey, ColNames.Value).Text
stationplan.AutoPrint = .Cell(RowItems.AutoPrint, ColNames.Value).BooleanValue
'stationplan.ErrorSound = .Cell(RowItems.ErrorSound, ColNames.Value).Text
'stationplan.TemplateFile = .Cell(RowItems.TemplateFile, ColNames.Value).Text
stationplan.BoxMumEditKey = .Cell(RowItems.BoxMumEditKey, ColNames.Value).Text
'stationplan.CompanyLogo = .Cell(RowItems.CompanyLogo, ColNames.Value).Text
stationplan.CompanyName = .Cell(RowItems.CompanyName, ColNames.Value).Text
'stationplan.BoxNumText = .Cell(RowItems.BoxNumText, ColNames.Value).Text
'stationplan.BoxBarCode = .Cell(RowItems.BoxBarCode, ColNames.Value).Text
End With
End Sub
Private Sub GrdStationPlan_ButtonClick(Sender As Object, e As FlexCell.Grid.ButtonClickEventArgs) Handles GrdStationPlan.ButtonClick
Select Case e.Row
'Case RowItems.ErrorSound
' DlgOpenFile.Filter = "图像资源 (*.jpg;*.png;*.gif;*.ico)|*.jpg;*.png;*.gif;*.ico"
'Case RowItems.TemplateFile
' DlgOpenFile.Filter = "模板资源 (*.btw)|*.btw"
'Case RowItems.CompanyLogo
' DlgOpenFile.Filter = "图像资源 (*.jpg;*.png;*.gif;*.ico)|*.jpg;*.png;*.gif;*.ico"
End Select
DlgOpenFile.CheckFileExists = True
DlgOpenFile.CheckPathExists = True
If DlgOpenFile.ShowDialog() <> DialogResult.OK Then Return
Dim fileName As String = $"{DlgOpenFile.SafeFileName}"
Dim fileDir As String = UtsPath.GetStationPacketResourceDirPath(_stationPlan.ParentPacket.Name)
Dim fliePath As String = $"{fileDir}\{fileName}"
GrdStationPlan.Cell(e.Row, ColNames.Value).Text = fileName
'导入文件
Try
IO.File.Copy(DlgOpenFile.FileName, fliePath, True)
Catch ex As Exception
MsgBox($"导入资源文件失败,{ex.Message}")
End Try
End Sub
Private Sub GrdStationPlan_ComboDropDown(Sender As Object, e As FlexCell.Grid.ComboDropDownEventArgs) Handles GrdStationPlan.ComboDropDown
GrdStationPlan.ComboBox(0).Items.Clear()
Select Case e.Row
'Case RowItems.CheckSnTested
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.CheckSnPackaged
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.CheckSnMO
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.MissingQuantity
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(MissCountStatus)))
'Case RowItems.BarCodeType
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(BarcodeTypes)))
End Select
End Sub
Private Sub GrdStationPlan_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles GrdStationPlan.CellChange
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed
End Sub
Enum ColNames
SN
Item
Value
Max
End Enum
Enum RowItems
''' <summary>固定行</summary>
<System.ComponentModel.Description("固定行")>
SN
'''' <summary>校验条码未测试后处理方式</summary>
'<System.ComponentModel.Description("校验条码未测试后处理方式")>
'CheckSnTested
'''' <summary>校验条码已参与包装后处理方式</summary>
'<System.ComponentModel.Description("校验条码已参与包装后处理方式")>
'CheckSnPackaged
'''' <summary>校验条码不属于指定MO后处理方式</summary>
'<System.ComponentModel.Description("校验条码不属于指定MO后处理方式")>
'CheckSnMO
'''' <summary>拍摄保存图像的数量</summary>
'<System.ComponentModel.Description("拍摄保存图像的数量")>
'PictureCount
'''' <summary>解锁密码</summary>
'<System.ComponentModel.Description("解锁密码")>
'UnlockKey
'''' <summary>条码类型</summary>
'<System.ComponentModel.Description("条码类型")>
'BarCodeType
'''' <summary>缺失条码数量后的处理方式</summary>
'<System.ComponentModel.Description("缺失条码数量后的处理方式")>
'MissingQuantity
'''' <summary>缺失条码数量后的解锁密码</summary>
'<System.ComponentModel.Description("缺失条码数量后的解锁密码")>
'MissingQuantityKey
''' <summary>是否自动打印</summary>
<System.ComponentModel.Description("是否自动记录")>
AutoPrint
'''' <summary>发生错误后报警文件</summary>
'<System.ComponentModel.Description("发生错误后报警文件")>
'ErrorSound
'''' <summary>模板文件名</summary>
'<System.ComponentModel.Description("模板文件名")>
'TemplateFile
''' <summary>箱号编辑密码</summary>
<System.ComponentModel.Description("箱号编辑密码")>
BoxMumEditKey
'''' <summary>公司Logo文件</summary>
'<System.ComponentModel.Description("公司Logo文件")>
'CompanyLogo
''' <summary>公司名称</summary>
<System.ComponentModel.Description("公司名称")>
CompanyName
'''' <summary>箱号规则</summary>
'<System.ComponentModel.Description("箱号规则")>
'BoxNumText
'''' <summary>箱号条码</summary>
'<System.ComponentModel.Description("箱号条码")>
'BoxBarCode
Max
End Enum
Private Sub GrdStationPlan_SelChange(Sender As Object, e As FlexCell.Grid.SelChangeEventArgs) Handles GrdStationPlan.SelChange
If e.FirstRow <= RowItems.SN OrElse e.FirstRow > GrdStationPlan.Rows - 1 Then Return
Dim row As Integer = e.FirstRow
Dim a As RowItems
If [Enum].TryParse(row.ToString, a) Then
LblDesc.Text = $"Row:{row}{vbCrLf}Desc:{GetEnumDescription(a)}"
Else
LblDesc.Text = $"Row:{row}{vbCrLf}Desc:无说明"
End If
End Sub
Public Function GetEnumDescription(enumValue As RowItems) As String
Dim str As String = enumValue.ToString()
Dim field As System.Reflection.FieldInfo = enumValue.GetType().GetField(str)
Dim objs() As Object = field.GetCustomAttributes(GetType(System.ComponentModel.DescriptionAttribute), False)
If objs Is Nothing OrElse objs.Length = 0 Then Return str
Dim da As System.ComponentModel.DescriptionAttribute = CType(objs(0), ComponentModel.DescriptionAttribute)
Return da.Description
End Function
#End Region
End Class

View File

@@ -0,0 +1,440 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Mars_T2_FrmStationTest
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.SerialPort1 = New System.IO.Ports.SerialPort(Me.components)
Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
Me.timer_Rcvd_Timeout = New System.Windows.Forms.Timer(Me.components)
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
Me.tss_CommPort = New System.Windows.Forms.ToolStripStatusLabel()
Me.timer_AutoFindCommPort = New System.Windows.Forms.Timer(Me.components)
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer2 = New System.Windows.Forms.SplitContainer()
Me.lab_Processed_Unit_Cnt_ThisCycle = New System.Windows.Forms.Label()
Me.lab_Processed_Unit_Cnt = New System.Windows.Forms.Label()
Me.lab_imger = New System.Windows.Forms.Label()
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
Me.SplitContainer3 = New System.Windows.Forms.SplitContainer()
Me.txt_BosCode = New System.Windows.Forms.TextBox()
Me.Label9 = New System.Windows.Forms.Label()
Me.OpenUart_btn = New System.Windows.Forms.Button()
Me.UartPort_cob = New System.Windows.Forms.ComboBox()
Me.Label6 = New System.Windows.Forms.Label()
Me.devbox = New System.Windows.Forms.TextBox()
Me.Label3 = New System.Windows.Forms.Label()
Me.colorbox = New System.Windows.Forms.TextBox()
Me.Label2 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.TextBox1 = New System.Windows.Forms.TextBox()
Me.txt_testnum = New System.Windows.Forms.TextBox()
Me.txt_LooadNum = New System.Windows.Forms.TextBox()
Me.Label5 = New System.Windows.Forms.Label()
Me.txt_UpNum = New System.Windows.Forms.TextBox()
Me.Label4 = New System.Windows.Forms.Label()
Me.StatusStrip1.SuspendLayout()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer2.Panel1.SuspendLayout()
Me.SplitContainer2.Panel2.SuspendLayout()
Me.SplitContainer2.SuspendLayout()
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer3.Panel1.SuspendLayout()
Me.SplitContainer3.Panel2.SuspendLayout()
Me.SplitContainer3.SuspendLayout()
Me.SuspendLayout()
'
'SerialPort1
'
'
'Timer1
'
Me.Timer1.Enabled = True
'
'timer_Rcvd_Timeout
'
Me.timer_Rcvd_Timeout.Enabled = True
Me.timer_Rcvd_Timeout.Interval = 1
'
'StatusStrip1
'
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tss_CommPort})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 549)
Me.StatusStrip1.Name = "StatusStrip1"
Me.StatusStrip1.Size = New System.Drawing.Size(985, 22)
Me.StatusStrip1.TabIndex = 0
Me.StatusStrip1.Text = "StatusStrip1"
'
'tss_CommPort
'
Me.tss_CommPort.AutoSize = False
Me.tss_CommPort.Font = New System.Drawing.Font("微软雅黑", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.tss_CommPort.Name = "tss_CommPort"
Me.tss_CommPort.Size = New System.Drawing.Size(80, 17)
Me.tss_CommPort.Text = "COM1"
'
'timer_AutoFindCommPort
'
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.SplitContainer3)
Me.SplitContainer1.Size = New System.Drawing.Size(985, 549)
Me.SplitContainer1.SplitterDistance = 325
Me.SplitContainer1.TabIndex = 1
'
'SplitContainer2
'
Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer2.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer2.Name = "SplitContainer2"
Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer2.Panel1
'
Me.SplitContainer2.Panel1.Controls.Add(Me.lab_Processed_Unit_Cnt_ThisCycle)
Me.SplitContainer2.Panel1.Controls.Add(Me.lab_Processed_Unit_Cnt)
Me.SplitContainer2.Panel1.Controls.Add(Me.lab_imger)
'
'SplitContainer2.Panel2
'
Me.SplitContainer2.Panel2.Controls.Add(Me.RichTextBox1)
Me.SplitContainer2.Size = New System.Drawing.Size(325, 549)
Me.SplitContainer2.SplitterDistance = 228
Me.SplitContainer2.TabIndex = 0
'
'lab_Processed_Unit_Cnt_ThisCycle
'
Me.lab_Processed_Unit_Cnt_ThisCycle.BackColor = System.Drawing.SystemColors.ActiveCaptionText
Me.lab_Processed_Unit_Cnt_ThisCycle.Dock = System.Windows.Forms.DockStyle.Right
Me.lab_Processed_Unit_Cnt_ThisCycle.Font = New System.Drawing.Font("Calibri", 20.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lab_Processed_Unit_Cnt_ThisCycle.ForeColor = System.Drawing.Color.White
Me.lab_Processed_Unit_Cnt_ThisCycle.Location = New System.Drawing.Point(161, 123)
Me.lab_Processed_Unit_Cnt_ThisCycle.Name = "lab_Processed_Unit_Cnt_ThisCycle"
Me.lab_Processed_Unit_Cnt_ThisCycle.Size = New System.Drawing.Size(164, 105)
Me.lab_Processed_Unit_Cnt_ThisCycle.TabIndex = 35
Me.lab_Processed_Unit_Cnt_ThisCycle.Text = "0"
Me.lab_Processed_Unit_Cnt_ThisCycle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'lab_Processed_Unit_Cnt
'
Me.lab_Processed_Unit_Cnt.BackColor = System.Drawing.SystemColors.ActiveCaptionText
Me.lab_Processed_Unit_Cnt.Dock = System.Windows.Forms.DockStyle.Left
Me.lab_Processed_Unit_Cnt.Font = New System.Drawing.Font("Calibri", 20.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lab_Processed_Unit_Cnt.ForeColor = System.Drawing.Color.White
Me.lab_Processed_Unit_Cnt.Location = New System.Drawing.Point(0, 123)
Me.lab_Processed_Unit_Cnt.Name = "lab_Processed_Unit_Cnt"
Me.lab_Processed_Unit_Cnt.Size = New System.Drawing.Size(163, 105)
Me.lab_Processed_Unit_Cnt.TabIndex = 34
Me.lab_Processed_Unit_Cnt.Tag = "本次生产总统计数量连击5次清零"
Me.lab_Processed_Unit_Cnt.Text = "0"
Me.lab_Processed_Unit_Cnt.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'lab_imger
'
Me.lab_imger.Dock = System.Windows.Forms.DockStyle.Top
Me.lab_imger.Location = New System.Drawing.Point(0, 0)
Me.lab_imger.Name = "lab_imger"
Me.lab_imger.Size = New System.Drawing.Size(325, 123)
Me.lab_imger.TabIndex = 33
'
'RichTextBox1
'
Me.RichTextBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.RichTextBox1.Location = New System.Drawing.Point(0, 0)
Me.RichTextBox1.Name = "RichTextBox1"
Me.RichTextBox1.Size = New System.Drawing.Size(325, 317)
Me.RichTextBox1.TabIndex = 2
Me.RichTextBox1.Text = ""
'
'SplitContainer3
'
Me.SplitContainer3.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer3.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer3.Name = "SplitContainer3"
Me.SplitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer3.Panel1
'
Me.SplitContainer3.Panel1.Controls.Add(Me.txt_BosCode)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label9)
Me.SplitContainer3.Panel1.Controls.Add(Me.OpenUart_btn)
Me.SplitContainer3.Panel1.Controls.Add(Me.UartPort_cob)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label6)
Me.SplitContainer3.Panel1.Controls.Add(Me.devbox)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label3)
Me.SplitContainer3.Panel1.Controls.Add(Me.colorbox)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label2)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label1)
Me.SplitContainer3.Panel1.Controls.Add(Me.TextBox1)
'
'SplitContainer3.Panel2
'
Me.SplitContainer3.Panel2.Controls.Add(Me.txt_testnum)
Me.SplitContainer3.Panel2.Controls.Add(Me.txt_LooadNum)
Me.SplitContainer3.Panel2.Controls.Add(Me.Label5)
Me.SplitContainer3.Panel2.Controls.Add(Me.txt_UpNum)
Me.SplitContainer3.Panel2.Controls.Add(Me.Label4)
Me.SplitContainer3.Size = New System.Drawing.Size(656, 549)
Me.SplitContainer3.SplitterDistance = 346
Me.SplitContainer3.TabIndex = 0
'
'txt_BosCode
'
Me.txt_BosCode.Font = New System.Drawing.Font("宋体", 28.0!)
Me.txt_BosCode.Location = New System.Drawing.Point(192, 59)
Me.txt_BosCode.Name = "txt_BosCode"
Me.txt_BosCode.Size = New System.Drawing.Size(450, 50)
Me.txt_BosCode.TabIndex = 46
Me.txt_BosCode.Text = "CTHM08711382252604947"
'
'Label9
'
Me.Label9.AutoSize = True
Me.Label9.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label9.Location = New System.Drawing.Point(11, 71)
Me.Label9.Name = "Label9"
Me.Label9.Size = New System.Drawing.Size(188, 27)
Me.Label9.TabIndex = 45
Me.Label9.Text = "请输入箱体码:"
Me.Label9.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'OpenUart_btn
'
Me.OpenUart_btn.Location = New System.Drawing.Point(16, 3)
Me.OpenUart_btn.Name = "OpenUart_btn"
Me.OpenUart_btn.Size = New System.Drawing.Size(156, 47)
Me.OpenUart_btn.TabIndex = 43
Me.OpenUart_btn.Text = "打开串口"
Me.OpenUart_btn.UseVisualStyleBackColor = True
'
'UartPort_cob
'
Me.UartPort_cob.AllowDrop = True
Me.UartPort_cob.Font = New System.Drawing.Font("宋体", 25.0!)
Me.UartPort_cob.FormattingEnabled = True
Me.UartPort_cob.Location = New System.Drawing.Point(192, 3)
Me.UartPort_cob.Name = "UartPort_cob"
Me.UartPort_cob.Size = New System.Drawing.Size(450, 41)
Me.UartPort_cob.TabIndex = 44
'
'Label6
'
Me.Label6.AutoSize = True
Me.Label6.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label6.Location = New System.Drawing.Point(11, 297)
Me.Label6.Name = "Label6"
Me.Label6.Size = New System.Drawing.Size(161, 27)
Me.Label6.TabIndex = 42
Me.Label6.Text = "请确认称重:"
Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'devbox
'
Me.devbox.Font = New System.Drawing.Font("宋体", 28.0!)
Me.devbox.Location = New System.Drawing.Point(192, 220)
Me.devbox.Name = "devbox"
Me.devbox.ReadOnly = True
Me.devbox.Size = New System.Drawing.Size(450, 50)
Me.devbox.TabIndex = 36
Me.devbox.Text = "CTHM08711382252604947"
Me.devbox.Visible = False
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label3.Location = New System.Drawing.Point(5, 232)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(191, 27)
Me.Label3.TabIndex = 35
Me.Label3.Text = "请确认DUT_SN:"
Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight
Me.Label3.Visible = False
'
'colorbox
'
Me.colorbox.Font = New System.Drawing.Font("宋体", 28.0!)
Me.colorbox.Location = New System.Drawing.Point(192, 143)
Me.colorbox.Name = "colorbox"
Me.colorbox.Size = New System.Drawing.Size(450, 50)
Me.colorbox.TabIndex = 34
Me.colorbox.Text = "CTHM08711382252604947"
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label2.Location = New System.Drawing.Point(11, 155)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(188, 27)
Me.Label2.TabIndex = 33
Me.Label2.Text = "请输入彩盒码:"
Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(14, 32)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(83, 12)
Me.Label1.TabIndex = 32
Me.Label1.Text = "打印模板路径:"
Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight
Me.Label1.Visible = False
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(98, 29)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.ReadOnly = True
Me.TextBox1.Size = New System.Drawing.Size(547, 21)
Me.TextBox1.TabIndex = 31
Me.TextBox1.Visible = False
'
'txt_testnum
'
Me.txt_testnum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_testnum.Font = New System.Drawing.Font("宋体", 27.0!)
Me.txt_testnum.Location = New System.Drawing.Point(244, 12)
Me.txt_testnum.Name = "txt_testnum"
Me.txt_testnum.ReadOnly = True
Me.txt_testnum.Size = New System.Drawing.Size(183, 49)
Me.txt_testnum.TabIndex = 40
Me.txt_testnum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'txt_LooadNum
'
Me.txt_LooadNum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_LooadNum.Font = New System.Drawing.Font("宋体", 27.0!)
Me.txt_LooadNum.Location = New System.Drawing.Point(13, 12)
Me.txt_LooadNum.Name = "txt_LooadNum"
Me.txt_LooadNum.ReadOnly = True
Me.txt_LooadNum.Size = New System.Drawing.Size(183, 49)
Me.txt_LooadNum.TabIndex = 37
Me.txt_LooadNum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Label5
'
Me.Label5.AutoSize = True
Me.Label5.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label5.Location = New System.Drawing.Point(202, 18)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(36, 37)
Me.Label5.TabIndex = 38
Me.Label5.Text = "<"
'
'txt_UpNum
'
Me.txt_UpNum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_UpNum.Font = New System.Drawing.Font("宋体", 27.0!)
Me.txt_UpNum.Location = New System.Drawing.Point(466, 12)
Me.txt_UpNum.Name = "txt_UpNum"
Me.txt_UpNum.ReadOnly = True
Me.txt_UpNum.Size = New System.Drawing.Size(176, 49)
Me.txt_UpNum.TabIndex = 41
Me.txt_UpNum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Label4
'
Me.Label4.AutoSize = True
Me.Label4.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label4.Location = New System.Drawing.Point(433, 18)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(36, 37)
Me.Label4.TabIndex = 39
Me.Label4.Text = ">"
'
'ZQ_Mars_T2_FrmStationTest
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(985, 571)
Me.Controls.Add(Me.SplitContainer1)
Me.Controls.Add(Me.StatusStrip1)
Me.Name = "ZQ_Mars_T2_FrmStationTest"
Me.Text = "ZQ_Mars_P2_FrmStationTest"
Me.StatusStrip1.ResumeLayout(False)
Me.StatusStrip1.PerformLayout()
Me.SplitContainer1.Panel1.ResumeLayout(False)
Me.SplitContainer1.Panel2.ResumeLayout(False)
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer1.ResumeLayout(False)
Me.SplitContainer2.Panel1.ResumeLayout(False)
Me.SplitContainer2.Panel2.ResumeLayout(False)
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer2.ResumeLayout(False)
Me.SplitContainer3.Panel1.ResumeLayout(False)
Me.SplitContainer3.Panel1.PerformLayout()
Me.SplitContainer3.Panel2.ResumeLayout(False)
Me.SplitContainer3.Panel2.PerformLayout()
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer3.ResumeLayout(False)
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents SerialPort1 As IO.Ports.SerialPort
Friend WithEvents Timer1 As Timer
Friend WithEvents timer_Rcvd_Timeout As Timer
Friend WithEvents StatusStrip1 As StatusStrip
Friend WithEvents tss_CommPort As ToolStripStatusLabel
Friend WithEvents timer_AutoFindCommPort As Timer
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents SplitContainer2 As SplitContainer
Friend WithEvents RichTextBox1 As RichTextBox
Friend WithEvents SplitContainer3 As SplitContainer
Friend WithEvents OpenUart_btn As Button
Friend WithEvents UartPort_cob As ComboBox
Friend WithEvents Label6 As Label
Friend WithEvents devbox As TextBox
Friend WithEvents Label3 As Label
Friend WithEvents colorbox As TextBox
Friend WithEvents Label2 As Label
Friend WithEvents Label1 As Label
Friend WithEvents TextBox1 As TextBox
Friend WithEvents txt_testnum As TextBox
Friend WithEvents txt_LooadNum As TextBox
Friend WithEvents Label5 As Label
Friend WithEvents txt_UpNum As TextBox
Friend WithEvents Label4 As Label
Friend WithEvents txt_BosCode As TextBox
Friend WithEvents Label9 As Label
Friend WithEvents lab_Processed_Unit_Cnt_ThisCycle As Label
Friend WithEvents lab_Processed_Unit_Cnt As Label
Friend WithEvents lab_imger As Label
End Class

View File

@@ -0,0 +1,138 @@
<?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="SerialPort1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="Timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>133, 17</value>
</metadata>
<metadata name="timer_Rcvd_Timeout.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>225, 17</value>
</metadata>
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>396, 17</value>
</metadata>
<metadata name="timer_AutoFindCommPort.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>519, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>105</value>
</metadata>
</root>

View File

@@ -0,0 +1,804 @@
Imports System.IO
Imports System.IO.Ports
Imports System.Net
Imports System.Text
Imports Newtonsoft.Json
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Imports UTS_Core.UTSModule.Test
Imports UTS_Core.UTSModule.Test.Command
Imports UTS_Core.UTSModule.Test.StatusMonitor
Public Class ZQ_Mars_T2_FrmStationTest
Implements IProcessStation
Private _utsApp As UtsAppForm
Private _stationPlan As StationPackagePlan
Private PrintfNum As Integer = 0
Private Printfcnt As Integer = 0
#Region "UTS Produce"
''' <summary>
''' 窗口加载事件
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub ZQ_Mars_P2_FrmStationTest_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' lp_label.BackColor = Color.Transparent
ApplicationLog.WriteInfoLog($"测试页面加载中。")
If InitializeUtsApp() = False Then Return
'InitializeForm()
'timer_AutoFindCommPort.Enabled = True
'timer_AutoFindCommPort.Start()
End Sub
''' <summary>
''' 初始化App
''' </summary>
''' <returns></returns>
Private Function InitializeUtsApp() As Boolean
_utsApp = UtsAppForm.CreateSingleton()
_utsApp.AddStatisticsObserver(CType(Me, IProcessStation))
Try
If _utsApp.IsInitialized = False Then
_utsApp.Initialize(ProcessStation.StationTypeEnum.Package) 'Todo:可根据需要限定可选站位
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"初始化窗体失败,原因:{ex.Message}!")
MsgBox($"初始化窗体失败,原因:{ex.Message}")
Close()
Return False
End Try
Return True
End Function
''' <summary>
''' 站位改变事件
''' </summary>
Public Sub Station_Changed() Implements IProcessStation.StationChanged
'Todo:站位变化代码
ApplicationLog.WriteInfoLog($"测试页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
'清除表格数据
'InitBarcodeGrid()
txt_LooadNum.Text = "100" ' _stationPlan.CompanyName
txt_UpNum.Text = "65535" '_stationPlan.BoxMumEditKey
ApplicationLog.WriteInfoLog($"测试页面站位变更完成!")
End Sub
''' <summary>
''' 加载窗体
''' </summary>
''' <param name="parentControl"></param>
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
Private Sub TheTestResults(dutSn As String, ispass As TestResult.TestResultEnum, datenow As Date, Optional FailMsg As RowNode = Nothing, Optional Customfield As Dictionary(Of String String) = Nothing)
'重置信息
_utsApp.TestResult.ResetTestResult()
'产线索引
_utsApp.TestResult.ProductionLineID = -1
'测试开始时间
_utsApp.TestResult.StartTime = Now
_utsApp.TestResult.DUT_SN = dutSn
_utsApp.TestResult.TestResult = ispass
_utsApp.TestResult.UsedTime = Now - datenow
If Not IsNothing(FailMsg) Then
_utsApp.TestResult.FailSteps.Add(FailMsg)
End If
If Not IsNothing(Customfield) Then
For indexptr As Integer = 0 To Customfield.Count - 1
_utsApp.TestResult.AddCustomRecord($"{Customfield.Keys(indexptr)}", $"{Customfield.Values(indexptr)}")
Next
End If
Try
'提交测试记录,缺省参数默认为FalseTrue则测试记录唯一,覆盖相同条码记录
_utsApp.CommitTestResult(True)
If ispass = TestResult.TestResultEnum.Pass Then
TestStatusMonitor.TestStatus = StatusMonitor.TestStatusMonitor.TestStatusEnum.TestPass
Else
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestFail
End If
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestPass
Catch ex As Exception
ApplicationLog.WriteErrorLog($"写入称量数据失败:{ex.Message}")
MsgBox($"写入称量数据失败:{ex.Message}")
'LblResult.Text = "FAIL"
'LblResult.ForeColor = Color.Red
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestFail
Return
End Try
End Sub
#End Region
#Region "SerialPort"
''' <summary>
''' 电子秤数据结构体
''' </summary>
Private Structure ScaleData_Strut
Dim isStable As ScaleIsStable_Enum '是否稳定
Dim weight_g As Double '重量,以 g 为单位
Dim weight_unit As ScaleUnit_Enum '重量单位
Dim isDataReady As Boolean '数据是否可用
Dim updateCnt As ULong '更新计数
End Structure
''' <summary>
''' 电子秤读回数据是否稳定枚举
''' </summary>
Private Enum ScaleIsStable_Enum
stable
unstable
End Enum
''' <summary>
''' 电子秤读回数据单位枚举
''' </summary>
Private Enum ScaleUnit_Enum
g
kg
End Enum
''' <summary>
''' 串口打开关闭状态枚举
''' </summary>
Private Enum OpenClose_Enum
Close
Open
End Enum
''' <summary>
''' 自动重连状态机枚举
''' </summary>
Private Enum AutoConnectComportStatus_Enum
Unknow
Connected
Disconnected
reConnecting
End Enum
Dim g_ScaleData As ScaleData_Strut '电子秤数据
Dim g_strRcvd As String = "" '当前串口接收到的数据
Dim g_isScal_Connected As Boolean = False '电子秤是连接到主机
Dim g_LastRcvdData_TimePoint As DateTime
Dim g_LastRcvdDataCnt As ULong '保存上一次串口数据接收计数,用于判断是否收到新的串口数据
Dim g_NoRcvdData_Cnt As Integer = 0 '未收到串口数据计数每100mS更新一次
Dim g_LstCommPort As List(Of String) = New List(Of String) '用于保存串口列表
Dim g_port_pointer_for_AutoConnect As Integer = 0 '在自动连接时,逐个串口尝试连接
Dim g_Current_AutoConnectStatus As AutoConnectComportStatus_Enum = AutoConnectComportStatus_Enum.Unknow '当前自动连接状态
''' <summary>
''' 100mS 时钟,用于维护串口连接状态
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub timer_AutoFindCommPort_Tick(sender As Object, e As EventArgs) Handles timer_AutoFindCommPort.Tick
Select Case g_Current_AutoConnectStatus
Case AutoConnectComportStatus_Enum.Unknow '未知连接状态
If g_isScal_Connected Then
g_Current_AutoConnectStatus = AutoConnectComportStatus_Enum.Connected '连接状态
Else
Dim tmpCommPortCnt As Integer = UpdateCommportList(g_LstCommPort) '重新刷新可用串口列表’
g_Current_AutoConnectStatus = AutoConnectComportStatus_Enum.reConnecting '重连状态
End If
Case AutoConnectComportStatus_Enum.Connected '连接状态
If g_ScaleData.updateCnt = g_LastRcvdDataCnt Then '判断是否收到新数据
g_NoRcvdData_Cnt += 1
If g_NoRcvdData_Cnt >= 10 Then '连续1000mS没有收到新数据
g_ScaleData.isDataReady = False '电子秤数据不可用
g_isScal_Connected = False '复位连接状态
tss_CommPort.BackColor = Color.Crimson
If SerialPort1.IsOpen Then SerialPort1.Close() '关闭当前串口’
Dim tmpCommPortCnt As Integer = UpdateCommportList(g_LstCommPort) '重新刷新可用串口列表’
g_port_pointer_for_AutoConnect = 0 '寻找串口指针
g_Current_AutoConnectStatus = AutoConnectComportStatus_Enum.Disconnected '断开连接状态
End If
Else
'两次计数不同说明收到新数据
If SerialPort1.IsOpen Then tss_CommPort.Text = SerialPort1.PortName
tss_CommPort.BackColor = Color.LightGreen
g_LastRcvdDataCnt = g_ScaleData.updateCnt
g_NoRcvdData_Cnt = 0
End If
Case AutoConnectComportStatus_Enum.Disconnected '断开连接状态
Dim tmpLstCommportCnt As Integer = g_LstCommPort.Count
If tmpLstCommportCnt > 0 And g_port_pointer_for_AutoConnect <= tmpLstCommportCnt - 1 Then
OpenClose_CommPort(g_LstCommPort(g_port_pointer_for_AutoConnect), OpenClose_Enum.Open)
If SerialPort1.IsOpen Then
tss_CommPort.Text = SerialPort1.PortName
tss_CommPort.BackColor = Color.Khaki
End If
g_NoRcvdData_Cnt = 0
g_Current_AutoConnectStatus = AutoConnectComportStatus_Enum.reConnecting
End If
Case AutoConnectComportStatus_Enum.reConnecting '重连中
If g_ScaleData.updateCnt = g_LastRcvdDataCnt Then '判断是否收到新数据
g_NoRcvdData_Cnt += 1
If g_NoRcvdData_Cnt >= 10 Then '连续1000mS没有收到新数据
If g_port_pointer_for_AutoConnect < g_LstCommPort.Count - 1 Then
g_port_pointer_for_AutoConnect += 1
Else
Dim tmpCommPortCnt As Integer = UpdateCommportList(g_LstCommPort) '重新刷新可用串口列表’
g_port_pointer_for_AutoConnect = 0 '寻找串口指针
End If
g_Current_AutoConnectStatus = AutoConnectComportStatus_Enum.Disconnected '断开连接状态
End If
Else
If SerialPort1.IsOpen Then tss_CommPort.Text = SerialPort1.PortName
tss_CommPort.BackColor = Color.LightGreen
g_LastRcvdDataCnt = g_ScaleData.updateCnt
g_NoRcvdData_Cnt = 0
g_Current_AutoConnectStatus = AutoConnectComportStatus_Enum.Connected
End If
Case Else
g_Current_AutoConnectStatus = AutoConnectComportStatus_Enum.Unknow
End Select
End Sub
''' <summary>
''' 更新可用串口列表
''' </summary>
''' <param name="lstPortName">返回串口列表</param>
''' <returns>返回寻找可用串口数量</returns>
Private Function UpdateCommportList(ByRef lstPortName As List(Of String)) As Integer
lstPortName.Clear()
Dim portNames As String() = Ports.SerialPort.GetPortNames
lstPortName.AddRangeportNames
Return lstPortName.Count
End Function
''' <summary>
''' 打开或关闭串口
''' </summary>
''' <param name="comportName"> 串口名称</param>
''' <param name="openClose">打开或关闭串口</param>
''' <returns>操作成功返回true否则返回false </returns>
Private Function OpenClose_CommPort(comportName As String, openClose As OpenClose_Enum) As Boolean
'关闭串口
If SerialPort1.IsOpen = True Then
SerialPort1.Close()
End If
If openClose = OpenClose_Enum.Close Then
Return Not SerialPort1.IsOpen
Else
'打开串口
SerialPort1.PortName = comportName
SerialPort1.Open()
Return SerialPort1.IsOpen
End If
End Function
''' <summary>
''' 串口接收事件
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub SerialPort1_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
'收到数据
Dim rcvd As String = ""
Dim bufflen As Integer = SerialPort1.BytesToRead
If SerialPort1.BytesToRead > 0 Then
Dim therecvBuffer(bufflen) As Byte
SerialPort1.Read(therecvBuffer, 0, bufflen)
Dim readStr As String = Encoding.GetEncoding("GBK").GetString(therecvBuffer)
If readStr.Equals(vbNullChar) Then Return
rcvd = rcvd & readStr
rcvd = rcvd.ReplacevbNullChar, ""
g_strRcvd = g_strRcvd & readStr
g_strRcvd = g_strRcvd.ReplacevbNullChar, ""
g_LastRcvdData_TimePoint = DateTime.Now
End If
'ST,NT,+ 197.9 g
'US,NT,+ 197.4 g
'US,NT,+ 197.4 g
'收到换行符号或长度大于=18
If rcvd.Length < 1 Then
Return
End If
Dim listr As String = rcvd.Substring(rcvd.Length - 2)
If listr.Equals(vbCrLf) Then
listr = rcvd.Trim
Console.WriteLine($"listr:{listr}")
If listr.Length >= 10 Then
If listr.Length >= 10 Then
'判断稳定状态
' Dim tmpStableStr As String = Microsoft.VisualBasic.Mid(listr, 6, 2).Trim
Dim tmpUnit() As String = listr.Split(CChar("+"))
If tmpUnit.Length <> 2 Then
Return
End If
Dim tmpUnit1() As String = tmpUnit1.Trim.Split(CChar(" "))
If tmpUnit.Length <> 2 Then
Return
End If
If tmpUnit(0).Contains("ST") Then
'稳定
g_ScaleData.isStable = ScaleIsStable_Enum.stable
g_ScaleData.isDataReady = False
ElseIf tmpUnit(0).Contains("US") Then
'不稳定
g_ScaleData.isStable = ScaleIsStable_Enum.unstable
g_ScaleData.isDataReady = False
Else
'非法数据
g_strRcvd = ""
Return
End If
'判断单位
If tmpUnit1(1).Trim.Equals("kg") Then
g_ScaleData.weight_unit = ScaleUnit_Enum.g
ElseIf tmpUnit1(1).Trim.Equals("g") Then
g_ScaleData.weight_unit = ScaleUnit_Enum.kg
Else
'非法数据
g_strRcvd = ""
Return
End If
'计算重量
If Double.TryParse(tmpUnit1(0).Trim, g_ScaleData.weight_g) Then
If g_ScaleData.weight_unit = ScaleUnit_Enum.kg Then
g_ScaleData.weight_g = g_ScaleData.weight_g * 1000
End If
If g_ScaleData.weight_g > 5 Then
If g_ScaleData.isStable = ScaleIsStable_Enum.stable Then
loadedWeight(txt_testnum, g_ScaleData.weight_g.ToString, Color.Green)
ElseIf g_ScaleData.isStable = ScaleIsStable_Enum.unstable Then
loadedWeight(txt_testnum, g_ScaleData.weight_g.ToString, Color.Blue)
Else
loadedWeight(txt_testnum, "----", Color.Gray)
End If
Else
loadedWeight(txt_testnum, "----", Color.Gray)
End If
Else
'非法数据
g_strRcvd = ""
Return
End If
g_ScaleData.updateCnt = CULng(g_ScaleData.updateCnt + 1) '有效计数 +1
g_ScaleData.isDataReady = True '数据就绪
g_isScal_Connected = True '电子秤已连接
End If
g_strRcvd = ""
End If
End If
End Sub
Delegate Sub theSetopenUartshow(btn As TextBox txt As String bcolor As Color)
Public Sub loadedWeight(testnum As TextBox txt As String txtcolor As Color)
If testnum.InvokeRequired Then
Dim dev As New theSetopenUartshow(AddressOf loadedWeight)
testnum.Invoke(dev, New Object() {testnum, txt, txtcolor})
Else
testnum.Text = txt
testnum.ReadOnly = False
testnum.ForeColor = txtcolor
End If
End Sub
''' <summary>
''' 串口接收超时计数每1mS中断判断一次超时大于80mS就将缓冲区数据抛弃
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub timer_Rcvd_Timeout_Tick(sender As Object, e As EventArgs) Handles timer_Rcvd_Timeout.Tick
'ticks 1unit = 100nS
Dim rcvTimespan As Long = DateTime.Now.Ticks - g_LastRcvdData_TimePoint.Ticks
If rcvTimespan >= 80 * 10000 Then
g_strRcvd = ""
End If
End Sub
#End Region
#Region "Web 数据接口"
Public Function AccessApi2dbName As String, theKey As String dic As Dictionary(Of String, String), ProjectID As String As JsonPtr
Dim jsonString As String = String.Empty
Dim ptr As String = $"Pwd=actop00803&DBName={dbName}&Key={theKey}&JsonData={JsonConvert.SerializeObject(dic)}&ProjectID={ProjectID}"
'/http://uts-data.com/CommonApi/Combind_Sn_Info? Pwd%3D%26*$@%23235%26DBName%3Duts_zongqing%26Key%3DBarcode%26Barcode%3D1
Try
jsonString = PostData("http://uts-data.com/CommonApi/Combind_Sn_Info", ptr)
Console.WriteLine(jsonString)
If jsonString = Nothing Then
Return Nothing
End If
Dim login As JsonPtr = JsonConvert.DeserializeObject(Of JsonPtr)(jsonString)
If login.Message.Contains"成功" Then
Return login
Else
Return Nothing
End If
Catch ex As Exception
MsgBox($"{ex.Message}!盒码获取失败请联系管理员")
Return Nothing
End Try
End Function
Public Shared Function PostData(ByVal url As String, ByVal data As String) As String
ServicePointManager.Expect100Continue = False
Dim request As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
'//Post请求方式
request.Method = "post"
'内容类型
request.ContentType = "application/x-www-form-urlencoded"
'将URL编码后的字符串转化为字节
Dim encoding As New UTF8Encoding()
Dim bys As Byte() = encoding.GetBytes(data)
'设置请求的 ContentLength
request.ContentLength = bys.Length
'获得请 求流
Dim newStream As Stream = request.GetRequestStream()
newStream.Write(bys, 0, bys.Length)
newStream.Close()
'获得响应流
Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
Return sr.ReadToEnd
End Function
#End Region
#Region "UIEven"
Private Sub RichTextBox1_TextChanged(sender As Object, e As EventArgs)
RichTextBox1.SelectionStart = RichTextBox1.TextLength
RichTextBox1.ScrollToCaret()
End Sub
Delegate Sub IPSetRichTextBox1Text(TextBox1 As RichTextBox, text As String txtcolor As Color)
Private Sub SetRichTextBox1Text(TextBox1 As RichTextBox, text As String txtcolor As Color)
If InvokeRequired = True Then
Dim dev As New IPSetRichTextBox1Text(AddressOf SetRichTextBox1Text)
Me.Invoke(dev, New Object() {TextBox1, text, txtcolor})
Else
With TextBox1
.SuspendLayout()
.SelectionColor = txtcolor
.AppendText(text & vbCrLf)
.ResumeLayout(False)
End With
End If
End Sub
Public Function ObtainWeighingValue() As String
Dim Whileint As Integer = 0
While Whileint < 200
If txt_LooadNum.ForeColor = Color.Green Then
Return txt_LooadNum.Text
Exit While
Else
Whileint = Whileint + 1
delayms100
End If
End While
If txt_LooadNum.ForeColor = Color.Green Then
Else
Return "False"
End If
End Function
Private Sub TextBox2_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles colorbox.PreviewKeyDown
Dim buff() As String
Dim Customfield As New Dictionary(Of String String)
Dim ColorBox As String = ""
Dim node As New RowNode
Dim Dut_SN As String = ""
Dim datenow As Date = Now
Dim exepath As String = "C:\Debug\AUTS_Ext_BarTenderConsole.exe"
If e.KeyData = Keys.Enter Then
If IsBoxReady Then
If Entering_Cnt > 9 Then
MsgBox("箱体已满载,请更换箱体码再进行录入。")
Me.txt_BosCode.Focus()
Me.txt_BosCode.SelectAll()
Me.txt_BosCode.Enabled = True
IsBoxReady = False
Else
Dim dic As New Dictionary(Of String, String
Dim weightval As String = ObtainWeighingValue()
If weightval.Equals("False") Then
dic.Add("Mars_UnitWeigth" txt_testnum.Text) '称重值
Else
dic.Add("Mars_UnitWeigth" weightval) '称重值
End If
dic.Add("Mars_ColorBox_BarCode" Me.colorbox.Text)
Dim apidata As JsonPtr = AccessApi2("uts_zongqing", "Mars_ColorBox_BarCode" dic, _utsApp.ProcessStation.ParentProject.Index.ToString)
If Not IsNothingapidata Then
Dut_SN = apidata.Data.Barcode.Trim
devbox.Text = apidata.Data.Barcode
Customfield.Clear()
Customfield.Add("MacCode", apidata.Data.Mars_MacCodeP)
Customfield.Add("SnCode", Dut_SN)
Customfield.Add("ColorBoxCode", Me.colorbox.Text.Trim)
Customfield.Add("label_string", Dut_SN & "/" & apidata.Data.Mars_MacCodeP)
Customfield.Add("mars_OutBoxCode", txt_BosCode.Text.Trim)
Dim testresuli As String
If weightval.Equals("False") Then
Customfield.Add("Mars_UnitWeigth", txt_testnum.Text)
testresuli = CopmareTheSize(txt_LooadNum.Text, txt_testnum.Text, txt_UpNum.Text) '比较范围
Else
Customfield.Add("Mars_UnitWeigth", weightval)
testresuli = CopmareTheSize(txt_LooadNum.Text, weightval, txt_UpNum.Text) '比较范围
End If
If testresuli.Equals("False") Then
node.RowListIndex = 1
node.Description = "称重不在预设阈值内!"
node.TestReturn = New TestCommandReturn
node.TestReturn.LowerLimit = ""
node.TestReturn.UpperLimit = ""
node.TestReturn.RecordValue = "Fail"
TheTestResults(Dut_SN, TestResult.TestResultEnum.Fail, datenow, node, Customfield)
SetRichTextBox1Text(RichTextBox1, "称重不在预设阈值内!" & vbCrLf, Color.Red)
Else
'MsgBox("开始录入数据")
TheTestResults(Dut_SN, TestResult.TestResultEnum.Pass, datenow, Nothing, Customfield)
'MsgBox("完成录入数据")
PrintfNum = PrintfNum + 1
'Label7.Text = PrintfNum.ToString & "个"
lab_Processed_Unit_Cnt_ThisCycle.Text = PrintfNum.ToString & ""
Printfcnt = My.Settings.P2_cnt + PrintfNum
lab_Processed_Unit_Cnt.Text = Printfcnt.ToString & ""
My.Settings.Save()
SetRichTextBox1Text(RichTextBox1, $"{Entering_Cnt}.数据录入成功.colorbox:{Me.colorbox.Text.Trim},Mars_UnitWeigth:{txt_testnum.Text}" & vbCrLf, Color.Blue)
Entering_Cnt = Entering_Cnt + 1
End If
Me.colorbox.Focus()
Me.colorbox.SelectAll()
Else
node.RowListIndex = 1
node.Description = "获取彩盒码关联条码错误!"
node.TestReturn = New TestCommandReturn
node.TestReturn.LowerLimit = ""
node.TestReturn.UpperLimit = ""
node.TestReturn.RecordValue = "Fail"
TheTestResults(Dut_SN, TestResult.TestResultEnum.Fail, datenow, node)
SetRichTextBox1Text(RichTextBox1, "获取彩盒码关联条码错误!" & vbCrLf, Color.Red)
End If
End If
Else
MsgBox("箱体码未就绪,请先扫箱体码再进行录入。")
Me.txt_BosCode.Focus()
Me.txt_BosCode.SelectAll()
Me.txt_BosCode.Enabled = True
End If
End If
End Sub
Public Function CopmareTheSize(loadint As String, numint As String, upint As String) As String
Dim loadnum As Integer = 0
Dim upnum As Integer = 0
Dim connum As Integer = 0
If Integer.TryParse(loadint, loadnum) AndAlso Integer.TryParse(numint, connum) AndAlso Integer.TryParse(upint, upnum) Then
If loadnum < connum AndAlso connum < upnum Then
Return CStr(connum)
Else
Return "False"
End If
Else
Return "False"
End If
End Function
Public Sub delayms(ms As Integer)
Dim start As Integer = Environment.TickCount
While (Math.Abs(Environment.TickCount - start) < ms)
Application.DoEvents()
End While
End Sub
Private Sub OpenUart_btn_Click(sender As Object, e As EventArgs) Handles OpenUart_btn.Click
Dim Btn As Button = CType(sender, Button)
If IsNothing(UartPort_cob) OrElse String.IsNullOrEmpty(UartPort_cob.Text) Then Return
SerialPortCommSwitch(SerialPort1, UartPort_cob.Text, Btn)
End Sub
Private Sub SerialPortCommSwitch(Serial As IO.Ports.SerialPort, portName As String, btn As Button)
If Serial.IsOpen Then
Serial.Close()
btn.Text = "打开串口"
btn.BackColor = Color.LightGray
btn.Enabled = True
Else
If String.IsNullOrEmpty(portName) Then
MsgBox("串口为空,请选择串口")
Return
End If
ConfigSerialPort(Serial, portName)
Try
Serial.Open()
Catch ex As Exception
MsgBox($"串口打开失败,详情:{ex.Message}")
Serial.Close()
Return
End Try
'SerialPort1.Close()
btn.Text = "关闭串口"
btn.BackColor = Color.SlateGray
btn.Enabled = True
End If
End Sub
Public Sub ConfigSerialPort(Serial As IO.Ports.SerialPort, portName As String)
With Serial
.PortName = portName '串口名
.BaudRate = 9600 ' _BaudRate '波特率
.DataBits = 8 '数据位
.StopBits = Ports.StopBits.One '停止位
.Parity = Ports.Parity.None '偶校验
.RtsEnable = True
.ReceivedBytesThreshold = 1
End With
End Sub
Private Sub UartPort_cob_DropDown(sender As Object, e As EventArgs) Handles UartPort_cob.DropDown
Dim portNames As String() = System.IO.Ports.SerialPort.GetPortNames '获得可用串口
Array.Sort(portNames)
UartPort_cob.Items.Clear()
UartPort_cob.Items.AddRange(portNames)
If Not SerialPort1.IsOpen Then
UartPort_cob.SelectedIndex = 0
End If
End Sub
Public IsBoxReady As Boolean = False
Public Entering_Cnt As Integer = 1
Private Sub txt_BosCode_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles txt_BosCode.PreviewKeyDown
If e.KeyData = Keys.Enter Then
IsBoxReady = True
Entering_Cnt = 1
Me.txt_BosCode.Enabled = False
Me.colorbox.Focus()
Me.colorbox.SelectAll()
End If
End Sub
#End Region
#Region "测试流程"
#End Region
End Class
Public Class JsonPtr
Public Data As jsonrusil
Public Message As String
End Class
Public Class jsonrusil
Public ID As String
Public ProjectID As String
Public Barcode As String
Public ImportDateTime As Date
Public UpdateTime As Date
Public Mars_ColorBox_BarCode As String
Public Mars_OutBoxCode As String
Public Mars_MacCodeP As String
Public Mars_UnitWeigth As String
End Class

View File

@@ -0,0 +1,689 @@
Imports System.IO
Imports System.Net
Imports System.Text
Imports Newtonsoft.Json
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Project
Imports UTS_Core.UTSModule.Station
Public Class ProcessControl
Private _utsApp As UtsAppForm
Sub New(utsApp As UtsAppForm)
_utsApp = utsApp
End Sub
Private _isStartUsing As Boolean = False
'检测前一站是否测试
Public Function IsFrontStation(station As String, macstr As String) As Boolean
Dim macconfig As ContJsonPtr = AccessApi2("http://uts-data.com/CommonApi/Get_Sn_Info", "uts_zongqing", macstr, _utsApp.ProcessStation.ParentProject.Index.ToString)
Dim msstring As String = ""
If IsNothing(macconfig) Then Return False
If station.Equals("T1") Then
Return True
ElseIf station.Equals("T2") Then
If String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") Then
msstring = CboProject_SelectedIndexChanged("T1")
MsgBox($"T1:{msstring} 未测试.")
Return False
Else
Return True
End If
ElseIf station.Equals("T3") Then
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") Then
msstring = CboProject_SelectedIndexChanged("T2")
MsgBox($"T2:{msstring} 未测试.")
Return False
Else
Return True
End If
ElseIf station.Equals("T4") Then
If String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") Then
msstring = CboProject_SelectedIndexChanged("T3")
MsgBox($"T3:{msstring} 未测试.")
Return False
Else
Return True
End If
ElseIf station.Equals("T5") Then
If String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") Then
msstring = CboProject_SelectedIndexChanged("T4")
MsgBox($"T4:{msstring} 未测试.")
Return False
Else
Return True
End If
ElseIf station.Equals("T6") Then
If String.IsNullOrEmpty(macconfig.Data.T5) OrElse macconfig.Data.T5.Equals("0") Then
msstring = CboProject_SelectedIndexChanged("T5")
MsgBox($"T5:{msstring} 未测试.")
Return False
Else
Return True
End If
ElseIf station.Equals("P1") Then
If String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") Then
msstring = CboProject_SelectedIndexChanged("T3")
MsgBox($"T3:{msstring} 未测试.")
Return False
Else
Return True
End If
ElseIf station.Equals("P2") Then
If String.IsNullOrEmpty(macconfig.Data.P1) OrElse macconfig.Data.P1.Equals("0") Then
msstring = CboProject_SelectedIndexChanged("P1")
MsgBox($"P1:{msstring} 未测试.")
Return False
Else
Return True
End If
ElseIf station.Equals("P3") Then
If String.IsNullOrEmpty(macconfig.Data.P2) OrElse macconfig.Data.P2.Equals("0") Then
msstring = CboProject_SelectedIndexChanged("P2")
MsgBox($"P2:{msstring} 未测试.")
Return False
Else
Return True
End If
ElseIf station.Equals("P4") Then
If String.IsNullOrEmpty(macconfig.Data.P3) OrElse macconfig.Data.P3.Equals("0") Then
msstring = CboProject_SelectedIndexChanged("P3")
MsgBox($"P3:{msstring} 未测试.")
Return False
Else
Return True
End If
ElseIf station.Equals("P5") Then
If String.IsNullOrEmpty(macconfig.Data.P4) OrElse macconfig.Data.P4.Equals("0") Then
msstring = CboProject_SelectedIndexChanged("P4")
MsgBox($"P4:{msstring} 未测试.")
Return False
Else
Return True
End If
ElseIf station.Equals("P6") Then
If String.IsNullOrEmpty(macconfig.Data.P5) OrElse macconfig.Data.P5.Equals("0") Then
msstring = CboProject_SelectedIndexChanged("P5")
MsgBox($"P5:{msstring} 未测试.")
Return False
Else
Return True
End If
End If
End Function
Private Function CboProject_SelectedIndexChanged(thestation As String) As String
Dim projectInfo As New ProjectInfo(_utsApp.Account.UserId, _utsApp.ProcessStation.ParentProject.Name, ProjectInfo.InitializeModeEnum.LocalDatabaseLoad)
If IsNothing(projectInfo) Then
Return "站位信息异常请联系开发者!"
End If
For Each station As ProcessStation In projectInfo.Station
If station.Name.Trim.Equals(thestation.Trim) Then
Return station.Description
End If
Next
Return "未找到该站位描述."
' UpdateProjectStation(_projectInfo.Station)
End Function
'检测本站前所有站是否测试
Public Function IsALLStation(station As String, macstr As String) As Boolean
If Not _isStartUsing Then Return True
Dim macconfig As ContJsonPtr = AccessApi2("http://uts-data.com/CommonApi/Get_Sn_Info", "uts_zongqing", macstr, _utsApp.ProcessStation.ParentProject.Index.ToString)
Dim msstring As String = ""
Dim asd As String = ""
If IsNothing(macconfig) Then Return False
If station.Equals("T1") Then
Return True
ElseIf station.Equals("T2") Then
If String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") Then
msstring = CboProject_SelectedIndexChanged("T1")
MsgBox($"T1:{msstring} 未测试.")
Return False
Else
Return True
End If
ElseIf station.Equals("T3") Then
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") Then
If String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T1")
msstring = msstring & $"T1:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T2")
msstring = msstring & $"T2:{asd} 未测试." & vbCrLf
End If
MsgBox(msstring)
Return False
Else
Return True
End If
ElseIf station.Equals("T4") Then
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") Then
If String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T1")
msstring = $"T1:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T2")
msstring = $"T2:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T3")
msstring = $"T3:{asd} 未测试." & vbCrLf
End If
MsgBox(msstring)
Return False
Else
Return True
End If
ElseIf station.Equals("T5") Then
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") Then
If String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T1")
msstring = $"T1:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T2")
msstring = $"T2:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T3")
msstring = $"T3:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T4")
msstring = $"T4:{asd} 未测试." & vbCrLf
End If
MsgBox(msstring)
Return False
Else
Return True
End If
ElseIf station.Equals("T6") Then
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T5) OrElse macconfig.Data.T5.Equals("0") Then
If String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T1")
msstring = msstring & $"T1:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T2")
msstring = msstring & $"T2:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T3")
msstring = $"T3:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T4")
msstring = msstring & $"T4:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T5) OrElse macconfig.Data.T5.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T5")
msstring = msstring & $"T5:{asd} 未测试." & vbCrLf
End If
MsgBox(msstring)
Return False
Else
Return True
End If
ElseIf station.Equals("P1") Then
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T5) OrElse macconfig.Data.T5.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T6) OrElse macconfig.Data.T6.Equals("0") Then
If String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T1")
msstring = msstring & $"T1:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T2")
msstring = msstring & $"T2:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T3")
msstring = msstring & $"T3:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T4")
msstring = msstring & $"T4:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T5) OrElse macconfig.Data.T5.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T5")
msstring = msstring & $"T5:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T6) OrElse macconfig.Data.T6.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T6")
msstring = msstring & $"T6:{asd} 未测试." & vbCrLf
End If
MsgBox(msstring)
Return False
Else
Return True
End If
ElseIf station.Equals("P2") Then
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T5) OrElse macconfig.Data.T5.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T6) OrElse macconfig.Data.T6.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.P1) OrElse macconfig.Data.P1.Equals("0") Then
If String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T1")
msstring = msstring & $"T1:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T2")
msstring = msstring & $"T2:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T3")
msstring = $"T3:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T4")
msstring = msstring & $"T4:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T5) OrElse macconfig.Data.T5.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T5")
msstring = msstring & $"T5:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T6) OrElse macconfig.Data.T6.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T6")
msstring = msstring & $"T6:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.P1) OrElse macconfig.Data.P1.Equals("0") Then
asd = CboProject_SelectedIndexChanged("P1")
msstring = msstring & $"P1:{asd} 未测试." & vbCrLf
End If
MsgBox(msstring)
Return False
Else
Return True
End If
ElseIf station.Equals("P3") Then
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T5) OrElse macconfig.Data.T5.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T6) OrElse macconfig.Data.T6.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.P1) OrElse macconfig.Data.P1.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.P2) OrElse macconfig.Data.P2.Equals("0") Then
If String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T1")
msstring = msstring & $"T1:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T2")
msstring = msstring & $"T2:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T3")
msstring = $"T3:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T4")
msstring = msstring & $"T4:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T5) OrElse macconfig.Data.T5.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T5")
msstring = msstring & $"T5:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T6) OrElse macconfig.Data.T6.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T6")
msstring = msstring & $"T6:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.P1) OrElse macconfig.Data.P1.Equals("0") Then
asd = CboProject_SelectedIndexChanged("P1")
msstring = msstring & $"P1:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.P2) OrElse macconfig.Data.P2.Equals("0") Then
asd = CboProject_SelectedIndexChanged("P2")
msstring = msstring & $"P2:{asd} 未测试." & vbCrLf
End If
MsgBox(msstring)
Return False
Else
Return True
End If
ElseIf station.Equals("P4") Then
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T5) OrElse macconfig.Data.T5.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T6) OrElse macconfig.Data.T6.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.P1) OrElse macconfig.Data.P1.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.P2) OrElse macconfig.Data.P2.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.P3) OrElse macconfig.Data.P3.Equals("0") Then
If String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T1")
msstring = msstring & $"T1:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T2")
msstring = msstring & $"T2:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T3")
msstring = $"T3:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T4")
msstring = msstring & $"T4:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T5) OrElse macconfig.Data.T5.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T5")
msstring = msstring & $"T5:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T6) OrElse macconfig.Data.T6.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T6")
msstring = msstring & $"T6:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.P1) OrElse macconfig.Data.P1.Equals("0") Then
asd = CboProject_SelectedIndexChanged("P1")
msstring = msstring & $"P1:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.P2) OrElse macconfig.Data.P2.Equals("0") Then
asd = CboProject_SelectedIndexChanged("P2")
msstring = msstring & $"P2:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.P3) OrElse macconfig.Data.P3.Equals("0") Then
asd = CboProject_SelectedIndexChanged("P3")
msstring = msstring & $"P3:{asd} 未测试." & vbCrLf
End If
MsgBox(msstring)
Return False
Else
Return True
End If
ElseIf station.Equals("P5") Then
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T5) OrElse macconfig.Data.T5.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T6) OrElse macconfig.Data.T6.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.P1) OrElse macconfig.Data.P1.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.P2) OrElse macconfig.Data.P2.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.P3) OrElse macconfig.Data.P3.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.P4) OrElse macconfig.Data.P4.Equals("0") Then
If String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T1")
msstring = msstring & $"T1:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T2")
msstring = msstring & $"T2:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T3")
msstring = $"T3:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T4")
msstring = msstring & $"T4:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T5) OrElse macconfig.Data.T5.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T5")
msstring = msstring & $"T5:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T6) OrElse macconfig.Data.T6.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T6")
msstring = msstring & $"T6:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.P1) OrElse macconfig.Data.P1.Equals("0") Then
asd = CboProject_SelectedIndexChanged("P1")
msstring = msstring & $"P1:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.P2) OrElse macconfig.Data.P2.Equals("0") Then
asd = CboProject_SelectedIndexChanged("P2")
msstring = msstring & $"P2:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.P3) OrElse macconfig.Data.P3.Equals("0") Then
asd = CboProject_SelectedIndexChanged("P3")
msstring = msstring & $"P3:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.P4) OrElse macconfig.Data.P4.Equals("0") Then
asd = CboProject_SelectedIndexChanged("P4")
msstring = msstring & $"P4:{asd} 未测试." & vbCrLf
End If
MsgBox(msstring)
Return False
Else
Return True
End If
ElseIf station.Equals("P6") Then
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T5) OrElse macconfig.Data.T5.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.T6) OrElse macconfig.Data.T6.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.P1) OrElse macconfig.Data.P1.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.P2) OrElse macconfig.Data.P2.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.P3) OrElse macconfig.Data.P3.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.P4) OrElse macconfig.Data.P4.Equals("0") OrElse
String.IsNullOrEmpty(macconfig.Data.P5) OrElse macconfig.Data.P5.Equals("0") Then
If String.IsNullOrEmpty(macconfig.Data.T1) OrElse macconfig.Data.T1.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T1")
msstring = msstring & $"T1:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T2) OrElse macconfig.Data.T2.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T2")
msstring = msstring & $"T2:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T3) OrElse macconfig.Data.T3.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T3")
msstring = $"T3:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T4) OrElse macconfig.Data.T4.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T4")
msstring = msstring & $"T4:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T5) OrElse macconfig.Data.T5.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T5")
msstring = msstring & $"T5:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.T6) OrElse macconfig.Data.T6.Equals("0") Then
asd = CboProject_SelectedIndexChanged("T6")
msstring = msstring & $"T6:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.P1) OrElse macconfig.Data.P1.Equals("0") Then
asd = CboProject_SelectedIndexChanged("P1")
msstring = msstring & $"P1:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.P2) OrElse macconfig.Data.P2.Equals("0") Then
asd = CboProject_SelectedIndexChanged("P2")
msstring = msstring & $"P2:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.P3) OrElse macconfig.Data.P3.Equals("0") Then
asd = CboProject_SelectedIndexChanged("P3")
msstring = msstring & $"P3:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.P4) OrElse macconfig.Data.P4.Equals("0") Then
asd = CboProject_SelectedIndexChanged("P4")
msstring = msstring & $"P4:{asd} 未测试." & vbCrLf
End If
If String.IsNullOrEmpty(macconfig.Data.P5) OrElse macconfig.Data.P5.Equals("0") Then
asd = CboProject_SelectedIndexChanged("P5")
msstring = msstring & $"P5:{asd} 未测试." & vbCrLf
End If
MsgBox(msstring)
Return False
Else
Return True
End If
End If
End Function
'本站置位
Public Sub SetStationflag(thestation As String, macstr As String, isok As String)
If Not _isStartUsing Then Return
Dim dic As New Dictionary(Of String, String)
dic.Add("Barcode" macstr) '称重值
dic.Add(thestation isok)
'dic.Add("Mars_UnitWeigth" weightval)
dic.Add("UpdateTime" $"{Now:yyyy-MM-dd HH:mm:ss}")
Dim jsonclass As ContJsonPtr = AccessApi2("http://uts-data.com/CommonApi/Combind_Sn_Info", "uts_zongqing", "Barcode", _utsApp.ProcessStation.ParentProject.Index.ToString dic)
End Sub
Public Function AccessApi2(uart As String, dbName As String, theKey As String ProjectID As String Optional dic As Dictionary(Of String, String) = Nothing) As ContJsonPtr
Dim jsonString As String = String.Empty
Dim ptr As String = $"Pwd=actop00803&DBName={dbName}&Key={theKey}"
If Not IsNothingdic Then
ptr = ptr & $"&JsonData={JsonConvert.SerializeObject(dic)}"
End If
ptr = ptr & $"&ProjectID={ProjectID}"
'/http://uts-data.com/CommonApi/Combind_Sn_Info? Pwd%3D%26*$@%23235%26DBName%3Duts_zongqing%26Key%3DBarcode%26Barcode%3D1
Try
jsonString = PostData(uart, ptr)
Console.WriteLine(jsonString)
If jsonString = Nothing Then
Return Nothing
End If
Dim login As ContJsonPtr = JsonConvert.DeserializeObject(Of ContJsonPtr)(jsonString)
If login.Message.Contains"成功" Then
Return login
Else
Return Nothing
End If
Catch ex As Exception
MsgBox($"{ex.Message}!盒码获取失败请联系管理员")
Return Nothing
End Try
End Function
Public Shared Function PostData(ByVal url As String, ByVal data As String) As String
ServicePointManager.Expect100Continue = False
Dim request As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
'//Post请求方式
request.Method = "post"
'内容类型
request.ContentType = "application/x-www-form-urlencoded"
'将URL编码后的字符串转化为字节
Dim encoding As New UTF8Encoding()
Dim bys As Byte() = encoding.GetBytes(data)
'设置请求的 ContentLength
request.ContentLength = bys.Length
'获得请 求流
Dim newStream As Stream = request.GetRequestStream()
newStream.Write(bys, 0, bys.Length)
newStream.Close()
'获得响应流
Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
Return sr.ReadToEnd
End Function
End Class
Public Class ContJsonPtr
Public Data As Contjsonrusil
Public Message As String
End Class
Public Class Contjsonrusil
Public ID As String
Public ProjectID As String
Public Barcode As String
Public ImportDateTime As Date
Public UpdateTime As Date
Public Mars_ColorBox_BarCode As String
Public Mars_OutBoxCode As String
Public Mars_MacCodeP As String
Public Mars_UnitWeigth As String
Public Label_Print_Cnt As String
Public T1 As String
Public T2 As String
Public T3 As String
Public T4 As String
Public T5 As String
Public T6 As String
Public P1 As String
Public P2 As String
Public P3 As String
Public P4 As String
Public P5 As String
Public P6 As String
End Class

View File

@@ -0,0 +1,428 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class ZQ_Mars_T2_FrmStationPlan
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ZQ_Mars_T2_FrmStationPlan))
Me.MsiCopyNode = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiNodePaste = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiUndo = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiRedo = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiSaveNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiLoadNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStart = New System.Windows.Forms.ToolStripMenuItem()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.TsBtnOpen = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSave = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator()
Me.TsBtnLoad = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSaveAs = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiCutNode = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
Me.CmsPlanGrid = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.ToolStripSeparator7 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugEnd = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStep = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugContinue = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator8 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugSetup = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugMain = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugPass = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugFail = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugCleanup = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator9 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugNode = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugNodeBegin = New System.Windows.Forms.ToolStripMenuItem()
Me.StuMain = New System.Windows.Forms.StatusStrip()
Me.DlgOpenFile = New System.Windows.Forms.OpenFileDialog()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
Me.LblDesc = New System.Windows.Forms.Label()
Me.GrdStationPlan = New FlexCell.Grid()
Me.ToolStrip1.SuspendLayout()
Me.CmsPlanGrid.SuspendLayout()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
Me.GroupBox2.SuspendLayout()
Me.SuspendLayout()
'
'MsiCopyNode
'
Me.MsiCopyNode.Enabled = False
Me.MsiCopyNode.Name = "MsiCopyNode"
Me.MsiCopyNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCopyNode.Text = "复制"
'
'MsiNodePaste
'
Me.MsiNodePaste.Enabled = False
Me.MsiNodePaste.Name = "MsiNodePaste"
Me.MsiNodePaste.Size = New System.Drawing.Size(192, 22)
Me.MsiNodePaste.Text = "粘贴"
'
'ToolStripSeparator5
'
Me.ToolStripSeparator5.Name = "ToolStripSeparator5"
Me.ToolStripSeparator5.Size = New System.Drawing.Size(189, 6)
'
'MsiUndo
'
Me.MsiUndo.Enabled = False
Me.MsiUndo.Name = "MsiUndo"
Me.MsiUndo.Size = New System.Drawing.Size(192, 22)
Me.MsiUndo.Text = "撤销"
'
'MsiRedo
'
Me.MsiRedo.Enabled = False
Me.MsiRedo.Name = "MsiRedo"
Me.MsiRedo.Size = New System.Drawing.Size(192, 22)
Me.MsiRedo.Text = "重做"
'
'ToolStripSeparator6
'
Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
Me.ToolStripSeparator6.Size = New System.Drawing.Size(189, 6)
'
'MsiSaveNodeFile
'
Me.MsiSaveNodeFile.Name = "MsiSaveNodeFile"
Me.MsiSaveNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiSaveNodeFile.Text = "另存为节点文件"
'
'MsiLoadNodeFile
'
Me.MsiLoadNodeFile.Name = "MsiLoadNodeFile"
Me.MsiLoadNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiLoadNodeFile.Text = "加载节点文件"
'
'TsmiDebugStart
'
Me.TsmiDebugStart.Name = "TsmiDebugStart"
Me.TsmiDebugStart.ShortcutKeys = System.Windows.Forms.Keys.F1
Me.TsmiDebugStart.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStart.Text = "开始执行"
'
'GroupBox1
'
Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox1.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.GroupBox1.Location = New System.Drawing.Point(0, 0)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(536, 561)
Me.GroupBox1.TabIndex = 0
Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "常规预览"
'
'TsBtnOpen
'
Me.TsBtnOpen.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnOpen.Image = CType(resources.GetObject("TsBtnOpen.Image"), System.Drawing.Image)
Me.TsBtnOpen.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnOpen.Name = "TsBtnOpen"
Me.TsBtnOpen.Size = New System.Drawing.Size(35, 33)
Me.TsBtnOpen.Text = "打开"
Me.TsBtnOpen.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSave
'
Me.TsBtnSave.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnSave.Image = CType(resources.GetObject("TsBtnSave.Image"), System.Drawing.Image)
Me.TsBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSave.Name = "TsBtnSave"
Me.TsBtnSave.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSave.Text = "保存"
Me.TsBtnSave.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator4
'
Me.ToolStripSeparator4.Name = "ToolStripSeparator4"
Me.ToolStripSeparator4.Size = New System.Drawing.Size(6, 36)
'
'TsBtnLoad
'
Me.TsBtnLoad.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnLoad.Image = CType(resources.GetObject("TsBtnLoad.Image"), System.Drawing.Image)
Me.TsBtnLoad.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnLoad.Name = "TsBtnLoad"
Me.TsBtnLoad.Size = New System.Drawing.Size(35, 33)
Me.TsBtnLoad.Text = "重载"
Me.TsBtnLoad.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSaveAs
'
Me.TsBtnSaveAs.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnSaveAs.Image = CType(resources.GetObject("TsBtnSaveAs.Image"), System.Drawing.Image)
Me.TsBtnSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSaveAs.Name = "TsBtnSaveAs"
Me.TsBtnSaveAs.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSaveAs.Text = "导出"
Me.TsBtnSaveAs.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator3
'
Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 36)
'
'MsiCutNode
'
Me.MsiCutNode.Enabled = False
Me.MsiCutNode.Name = "MsiCutNode"
Me.MsiCutNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCutNode.Text = "剪切"
'
'ToolStrip1
'
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TsBtnOpen, Me.TsBtnSave, Me.ToolStripSeparator4, Me.TsBtnLoad, Me.TsBtnSaveAs, Me.ToolStripSeparator3})
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(984, 36)
Me.ToolStrip1.TabIndex = 7
Me.ToolStrip1.Text = "ToolStrip1"
'
'CmsPlanGrid
'
Me.CmsPlanGrid.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MsiCopyNode, Me.MsiCutNode, Me.MsiNodePaste, Me.ToolStripSeparator5, Me.MsiUndo, Me.MsiRedo, Me.ToolStripSeparator6, Me.MsiSaveNodeFile, Me.MsiLoadNodeFile, Me.ToolStripSeparator7, Me.TsmiDebugStart, Me.TsmiDebugEnd, Me.TsmiDebugStep, Me.TsmiDebugContinue, Me.ToolStripSeparator8, Me.TsmiDebugSetup, Me.TsmiDebugMain, Me.TsmiDebugPass, Me.TsmiDebugFail, Me.TsmiDebugCleanup, Me.ToolStripSeparator9, Me.TsmiDebugNode, Me.TsmiDebugNodeBegin})
Me.CmsPlanGrid.Name = "CmsMain"
Me.CmsPlanGrid.Size = New System.Drawing.Size(193, 430)
'
'ToolStripSeparator7
'
Me.ToolStripSeparator7.Name = "ToolStripSeparator7"
Me.ToolStripSeparator7.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugEnd
'
Me.TsmiDebugEnd.Name = "TsmiDebugEnd"
Me.TsmiDebugEnd.ShortcutKeys = System.Windows.Forms.Keys.F2
Me.TsmiDebugEnd.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugEnd.Text = "退出执行"
'
'TsmiDebugStep
'
Me.TsmiDebugStep.Name = "TsmiDebugStep"
Me.TsmiDebugStep.ShortcutKeys = System.Windows.Forms.Keys.F3
Me.TsmiDebugStep.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStep.Text = "单步执行"
'
'TsmiDebugContinue
'
Me.TsmiDebugContinue.Name = "TsmiDebugContinue"
Me.TsmiDebugContinue.ShortcutKeys = System.Windows.Forms.Keys.F4
Me.TsmiDebugContinue.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugContinue.Text = "继续执行"
'
'ToolStripSeparator8
'
Me.ToolStripSeparator8.Name = "ToolStripSeparator8"
Me.ToolStripSeparator8.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugSetup
'
Me.TsmiDebugSetup.Name = "TsmiDebugSetup"
Me.TsmiDebugSetup.ShortcutKeys = System.Windows.Forms.Keys.F5
Me.TsmiDebugSetup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugSetup.Text = "Setup模块执行"
'
'TsmiDebugMain
'
Me.TsmiDebugMain.Name = "TsmiDebugMain"
Me.TsmiDebugMain.ShortcutKeys = System.Windows.Forms.Keys.F6
Me.TsmiDebugMain.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugMain.Text = "Main模块执行"
'
'TsmiDebugPass
'
Me.TsmiDebugPass.Name = "TsmiDebugPass"
Me.TsmiDebugPass.ShortcutKeys = System.Windows.Forms.Keys.F7
Me.TsmiDebugPass.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugPass.Text = "Pass模块执行"
'
'TsmiDebugFail
'
Me.TsmiDebugFail.Name = "TsmiDebugFail"
Me.TsmiDebugFail.ShortcutKeys = System.Windows.Forms.Keys.F8
Me.TsmiDebugFail.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugFail.Text = "Fail模块执行"
'
'TsmiDebugCleanup
'
Me.TsmiDebugCleanup.Name = "TsmiDebugCleanup"
Me.TsmiDebugCleanup.ShortcutKeys = System.Windows.Forms.Keys.F9
Me.TsmiDebugCleanup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugCleanup.Text = "Cleanup模块执行"
'
'ToolStripSeparator9
'
Me.ToolStripSeparator9.Name = "ToolStripSeparator9"
Me.ToolStripSeparator9.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugNode
'
Me.TsmiDebugNode.Name = "TsmiDebugNode"
Me.TsmiDebugNode.ShortcutKeys = System.Windows.Forms.Keys.F10
Me.TsmiDebugNode.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNode.Text = "节点测试"
'
'TsmiDebugNodeBegin
'
Me.TsmiDebugNodeBegin.Name = "TsmiDebugNodeBegin"
Me.TsmiDebugNodeBegin.ShortcutKeys = System.Windows.Forms.Keys.F11
Me.TsmiDebugNodeBegin.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNodeBegin.Text = "节点开始测试"
'
'StuMain
'
Me.StuMain.Location = New System.Drawing.Point(0, 539)
Me.StuMain.Name = "StuMain"
Me.StuMain.Size = New System.Drawing.Size(984, 22)
Me.StuMain.TabIndex = 8
Me.StuMain.Text = "StatusStrip1"
'
'DlgOpenFile
'
Me.DlgOpenFile.FileName = "OpenFileDialog1"
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.GroupBox2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.GroupBox1)
Me.SplitContainer1.Size = New System.Drawing.Size(984, 561)
Me.SplitContainer1.SplitterDistance = 444
Me.SplitContainer1.TabIndex = 9
'
'GroupBox2
'
Me.GroupBox2.Controls.Add(Me.LblDesc)
Me.GroupBox2.Controls.Add(Me.GrdStationPlan)
Me.GroupBox2.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox2.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.GroupBox2.Location = New System.Drawing.Point(0, 0)
Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(444, 561)
Me.GroupBox2.TabIndex = 0
Me.GroupBox2.TabStop = False
Me.GroupBox2.Text = "流程参数"
'
'LblDesc
'
Me.LblDesc.Dock = System.Windows.Forms.DockStyle.Bottom
Me.LblDesc.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.LblDesc.Location = New System.Drawing.Point(3, 497)
Me.LblDesc.Name = "LblDesc"
Me.LblDesc.Size = New System.Drawing.Size(438, 61)
Me.LblDesc.TabIndex = 6
'
'GrdStationPlan
'
Me.GrdStationPlan.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.GrdStationPlan.BorderStyle = FlexCell.BorderStyleEnum.None
Me.GrdStationPlan.CheckedImage = Nothing
Me.GrdStationPlan.ContextMenuStrip = Me.CmsPlanGrid
Me.GrdStationPlan.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
Me.GrdStationPlan.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.GrdStationPlan.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer))
Me.GrdStationPlan.Location = New System.Drawing.Point(0, 24)
Me.GrdStationPlan.Name = "GrdStationPlan"
Me.GrdStationPlan.Size = New System.Drawing.Size(441, 470)
Me.GrdStationPlan.TabIndex = 4
Me.GrdStationPlan.UncheckedImage = Nothing
'
'ZQ_Mars_T2_FrmStationPlan
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(984, 561)
Me.Controls.Add(Me.ToolStrip1)
Me.Controls.Add(Me.StuMain)
Me.Controls.Add(Me.SplitContainer1)
Me.Name = "ZQ_Mars_T2_FrmStationPlan"
Me.Text = "ZQ_Mars_P2_FrmStationPlan"
Me.ToolStrip1.ResumeLayout(False)
Me.ToolStrip1.PerformLayout()
Me.CmsPlanGrid.ResumeLayout(False)
Me.SplitContainer1.Panel1.ResumeLayout(False)
Me.SplitContainer1.Panel2.ResumeLayout(False)
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer1.ResumeLayout(False)
Me.GroupBox2.ResumeLayout(False)
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents MsiCopyNode As ToolStripMenuItem
Friend WithEvents MsiNodePaste As ToolStripMenuItem
Friend WithEvents ToolStripSeparator5 As ToolStripSeparator
Friend WithEvents MsiUndo As ToolStripMenuItem
Friend WithEvents MsiRedo As ToolStripMenuItem
Friend WithEvents ToolStripSeparator6 As ToolStripSeparator
Friend WithEvents MsiSaveNodeFile As ToolStripMenuItem
Friend WithEvents MsiLoadNodeFile As ToolStripMenuItem
Friend WithEvents TsmiDebugStart As ToolStripMenuItem
Friend WithEvents GroupBox1 As GroupBox
Friend WithEvents TsBtnOpen As ToolStripButton
Friend WithEvents TsBtnSave As ToolStripButton
Friend WithEvents ToolStripSeparator4 As ToolStripSeparator
Friend WithEvents TsBtnLoad As ToolStripButton
Friend WithEvents TsBtnSaveAs As ToolStripButton
Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
Friend WithEvents MsiCutNode As ToolStripMenuItem
Friend WithEvents ToolStrip1 As ToolStrip
Friend WithEvents CmsPlanGrid As ContextMenuStrip
Friend WithEvents ToolStripSeparator7 As ToolStripSeparator
Friend WithEvents TsmiDebugEnd As ToolStripMenuItem
Friend WithEvents TsmiDebugStep As ToolStripMenuItem
Friend WithEvents TsmiDebugContinue As ToolStripMenuItem
Friend WithEvents ToolStripSeparator8 As ToolStripSeparator
Friend WithEvents TsmiDebugSetup As ToolStripMenuItem
Friend WithEvents TsmiDebugMain As ToolStripMenuItem
Friend WithEvents TsmiDebugPass As ToolStripMenuItem
Friend WithEvents TsmiDebugFail As ToolStripMenuItem
Friend WithEvents TsmiDebugCleanup As ToolStripMenuItem
Friend WithEvents ToolStripSeparator9 As ToolStripSeparator
Friend WithEvents TsmiDebugNode As ToolStripMenuItem
Friend WithEvents TsmiDebugNodeBegin As ToolStripMenuItem
Friend WithEvents StuMain As StatusStrip
Friend WithEvents DlgOpenFile As OpenFileDialog
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents GroupBox2 As GroupBox
Friend WithEvents LblDesc As Label
Friend WithEvents GrdStationPlan As FlexCell.Grid
End Class

View File

@@ -0,0 +1,185 @@
<?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="TsBtnOpen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHqSURBVGhD7Zm9Tt1AEEYvNDxCArwSXZDSpAwiFQ+HEA2Q
dPmpeAl4AaALEnxTXDSate/xeHcvkeIjnerzN97F9rWEVwsLC6PsyFP5Rz7Jl07ey0+yKQfyuxw6YQ//
ys+yCbvyhxw6UU+f5RdZzTc5dIJt2ORK2D3vh17ID3KNz8wabLG2aD+vehOP0g/8KD0+M2tpvgk/yIxQ
PodjGTcx+5nwQ8wI5XNptgk/wIxQXkOTTfiyGaG8lupN+KIZiflc7Q18JIcYe7AnvbF9yYzEvMY7OcbQ
JjYd/4YvmBEbEo+ZKy3INhE7CBXsstvlj8dl3XQLeWIPSRc6k15PutCZ9HrShc6k15MudCa9nnShM+n1
pAudSa+HCq1+RqNjP6vxOIQKLV9k0aEXWzwGoULMWxuhvIAKMW9thPICKlCeheZRXkAFyrPQPMoLqEB5
FppHeQEVKM9C8ygvoALlWWge5QVUoDwLzaO8gAqUZ6F5lBdQgfIsNI/yAipQnoXmUV5ABcqz0DzKCx6k
L/j/TBs+M2vZNM8+tPjM1ob8lr50LvflGp+ZtYzNs3NeSp/9ksiZ9KV/ya8S2ZO3cmjAe3ol7cPjJA7l
jRwa9B5eS38bT8J2eyJ/yvjVZhvaA2vntttm8l9+YeH/YrV6BfNWMy9RUhK1AAAAAElFTkSuQmCC
</value>
</data>
<data name="TsBtnLoad.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSaveAs.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADQSURBVEhL5ZYxDgFBGEbnCE4gjuAcCnEER3AER9BpVWqV
QqcTlSOIUkVFx/fWSMYsyfx/FCu+5CX7ZWfmTbKT3Q1J+mLnYCmKMhQ3sRKLQg5iL4ryFHSqVpaZ+H3B
UQwy2qIWr4A5OaxVi0fATrsJPfFVQR7m/pGA42eBmARc8yrgpMxj38aewhjuEbNg/LgMLUEfVe01jGmu
4CpO4hz7JfYUxrgFGzER09jXsacwxi34/WdggZgE7MwCMQk8aYbA8tHPYe5Hgfe35R2spYRwB61XwcSY
NxMjAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>230, 55</value>
</metadata>
<metadata name="CmsPlanGrid.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>342, 55</value>
</metadata>
<metadata name="StuMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>469, 55</value>
</metadata>
<metadata name="DlgOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>570, 55</value>
</metadata>
</root>

View File

@@ -0,0 +1,492 @@
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Imports UTS_Core.UTSModule.Station.StationPackagePlan
Imports UTS_Core.UTSModule.Test.StatusMonitor
Public Class ZQ_Mars_T2_FrmStationPlan
' Implements IProcessFileChanged
Implements IProcessStation
Implements IProductionLine
Private _utsApp As UtsAppForm
Private _stationPlan As StationPackagePlan
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
Public Sub utsbctfilechanged
'For Each observer As IProcessStation In _observerList
' observer.StationChanged()
' Next
End Sub
''' <summary>
''' 站位变更代码
''' </summary>
Public Sub Station_Changed() Implements IProcessStation.StationChanged
ApplicationLog.WriteInfoLog($"编辑页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
Try
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
Catch ex As Exception
MsgBox($"加载项目流程失败,{ex.Message}")
End Try
InitGrid(_stationPlan)
ApplicationLog.WriteInfoLog($"编辑页面站位变更完成。")
End Sub
''' <summary>
''' 产线变化代码
''' </summary>
Public Sub ProductionLineChanged() Implements IProductionLine.ProductionLineChanged
ApplicationLog.WriteInfoLog($"编辑页面生产线变更中。")
ApplicationLog.WriteInfoLog($"编辑页面生产线变更完成。")
End Sub
Private Sub FrmStationPlan_Load(sender As Object, e As EventArgs) Handles Me.Load
ApplicationLog.WriteInfoLog($"编辑页面加载中。")
'初始化UTS窗体信息,失败则关闭窗体
If InitializeUtsApp() = False Then Return
'初始化窗体页面
InitializeForm()
ApplicationLog.WriteInfoLog($"编辑页面加载完成。")
End Sub
Private Function InitializeUtsApp() As Boolean
_utsApp = UtsAppForm.CreateSingleton()
_utsApp.AddStatisticsObserver(Me)
Try
If _utsApp.IsInitialized = False Then
_utsApp.Initialize(ProcessStation.StationTypeEnum.Package) 'Todo:可根据需要限定可选站位
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"初始化窗体失败,原因:{ex.Message}!")
MsgBox($"初始化窗体失败,原因:{ex.Message}")
Close()
Return False
End Try
Return True
End Function
Private Sub InitializeForm()
InitGrid(_stationPlan)
End Sub
Private Sub TsBtnOpen_Click(sender As Object, e As EventArgs) Handles TsBtnOpen.Click
Using xml As New OpenFileDialog
xml.Filter = $"流程文件(*.xml)|*.xml"
If xml.ShowDialog() = DialogResult.OK Then
ApplicationLog.WriteInfoLog($"编辑页面执行流程正在加载{xml.FileName}")
LoadTreeViewFormXml(xml.FileName)
ApplicationLog.WriteInfoLog($"编辑页面执行流程加载完成。")
End If
End Using
End Sub
Private Sub TsBtnLoad_Click(sender As Object, e As EventArgs) Handles TsBtnLoad.Click
If MsgBox("重载会将流程返回为上一次保存的流程状态,是否继续", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
ApplicationLog.WriteInfoLog($"编辑页面执行流程重载中。")
LoadTreeViewFormXml()
ApplicationLog.WriteInfoLog($"编辑页面执行流程重载完成。")
End If
End Sub
Private Sub TsBtnSave_Click(sender As Object, e As EventArgs) Handles TsBtnSave.Click
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存中。")
UpdateGrid(_stationPlan)
ExportTreeViewToXml()
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存完成。")
End Sub
''' <summary>
''' 读取XML,加载树状视图
''' </summary>
Private Sub LoadTreeViewFormXml()
Dim revStationPlanPath As String = $"{UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)}\Main.xml"
Try
_stationPlan.LoadFile(revStationPlanPath)
InitGrid(_stationPlan)
If StationEditStatusMonitor.StationEditStatus <> StationEditStatusMonitor.StationEditStatusEnum.Saved Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"加载测试站流程发生错误,原因:{ex.Message}")
MsgBox($"加载测试站流程发生错误,原因:{ex.Message}")
_stationPlan.CreateStationPlan()
End Try
End Sub
''' <summary>
''' 读取XML,加载树状视图
''' </summary>
Private Sub LoadTreeViewFormXml(revStationPlanPath As String)
Try
_stationPlan.LoadFile(revStationPlanPath)
InitGrid(_stationPlan)
If StationEditStatusMonitor.StationEditStatus <> StationEditStatusMonitor.StationEditStatusEnum.Saved Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"加载测试站流程发生错误,原因:{ex.Message}")
MsgBox($"加载测试站流程发生错误,原因:{ex.Message}")
_stationPlan.CreateStationPlan()
End Try
End Sub
''' <summary>
''' 将树状视图导出为Xml
''' </summary>
Private Sub ExportTreeViewToXml()
'保存至项目文件
Dim revStationPlanPath As String = $"{UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)}\Main.xml"
_stationPlan.SaveFile(revStationPlanPath)
'备份至临时文件
Dim tempPath As String = $"{UtsPath.StationDesignDirPath()}\Main.xml"
_stationPlan.SaveFile(tempPath)
If StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
End Sub
Private Sub TsBtnSaveAs_Click(sender As Object, e As EventArgs) Handles TsBtnSaveAs.Click
Using dlg As New SaveFileDialog
dlg.Filter = "Excel 文件(*.xls)|*.xls|CSV 文件(*.csv)|*.csv|PDF 文件(*.pdf)|*.pdf"
dlg.AddExtension = True
If dlg.ShowDialog <> DialogResult.OK Then Return
Cursor = Cursors.WaitCursor
ApplicationLog.WriteInfoLog($"编辑页面执行流程导出中。")
Try
Select Case dlg.FilterIndex
Case 1
GrdStationPlan.ExportToExcel(dlg.FileName, True, True)
Case 2
GrdStationPlan.ExportToCSV(dlg.FileName, True, True)
Case 3
GrdStationPlan.ExportToPDF(dlg.FileName)
End Select
ApplicationLog.WriteInfoLog($"编辑页面执行流程导出完成。")
Catch ex As Exception
ApplicationLog.WriteErrorLog($"编辑页面执行流程导出失败,原因:{ex.Message}")
MsgBox($"编辑页面执行流程导出失败,原因:{ex.Message}")
End Try
Cursor = Cursors.Arrow
End Using
End Sub
#Region "Package表格"
Private Sub InitGrid(Optional stationplan As StationPackagePlan = Nothing)
With GrdStationPlan
.AutoRedraw = False
.NewFile()
.BorderStyle = FlexCell.BorderStyleEnum.None
.Cols = ColNames.Max
.Rows = RowItems.Max
.ExtendLastCol = True
.DisplayRowNumber = True
.Cell(0, ColNames.Item).Text = "Item"
.Cell(0, ColNames.Value).Text = "Value"
.Column(ColNames.Item).Width = 200
.Column(ColNames.Item).Locked = True
.DefaultRowHeight = 20
.DefaultFont = New Font("微软雅黑", 10)
For i As Integer = 1 To RowItems.Max - 1
.Cell(i, ColNames.Item).Text = [Enum].GetName(GetType(RowItems), i)
Next
'.Cell(RowItems.CheckSnTested, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.CheckSnPackaged, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.CheckSnMO, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.MissingQuantity, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.BarCodeType, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
.Cell(RowItems.AutoPrint, ColNames.Value).CellType = FlexCell.CellTypeEnum.CheckBox
.Cell(RowItems.BoxMumEditKey, ColNames.Item).Text = "uperLimit"
.Cell(RowItems.CompanyName, ColNames.Item).Text = "LowerLimit"
.Cell(RowItems.BoxNumText, ColNames.Item).Text = "Number"
'.Cell(RowItems.ErrorSound, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
'.Cell(RowItems.TemplateFile, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
'.Cell(RowItems.CompanyLogo, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
FillGrid(stationplan)
.AutoRedraw = True
.Refresh()
End With
End Sub
Private Sub FillGrid(stationplan As StationPackagePlan)
If stationplan Is Nothing Then Return
With GrdStationPlan
'.Cell(RowItems.CheckSnTested, ColNames.Value).Text = stationplan.CheckSnTested.ToString
'.Cell(RowItems.CheckSnPackaged, ColNames.Value).Text = stationplan.CheckSnPackaged.ToString
'.Cell(RowItems.CheckSnMO, ColNames.Value).Text = stationplan.CheckSnMO.ToString
'.Cell(RowItems.PictureCount, ColNames.Value).Text = stationplan.PictureCount.ToString
'.Cell(RowItems.UnlockKey, ColNames.Value).Text = stationplan.UnlockKey
'.Cell(RowItems.BarCodeType, ColNames.Value).Text = stationplan.BarCodeType.ToString
'.Cell(RowItems.MissingQuantity, ColNames.Value).Text = stationplan.MissingQuantity.ToString
'.Cell(RowItems.MissingQuantityKey, ColNames.Value).Text = stationplan.MissingQuantityKey
.Cell(RowItems.AutoPrint, ColNames.Value).Text = stationplan.AutoPrint.ToString
'.Cell(RowItems.ErrorSound, ColNames.Value).Text = stationplan.ErrorSound
'.Cell(RowItems.TemplateFile, ColNames.Value).Text = stationplan.TemplateFile
.Cell(RowItems.BoxMumEditKey, ColNames.Value).Text = stationplan.BoxMumEditKey
.Cell(RowItems.BoxNumText, ColNames.Value).Text = stationplan.CompanyLogo
.Cell(RowItems.CompanyName, ColNames.Value).Text = stationplan.CompanyName
'.Cell(RowItems.BoxNumText, ColNames.Value).Text = stationplan.BoxNumText
'.Cell(RowItems.BoxBarCode, ColNames.Value).Text = stationplan.BoxBarCode
End With
If StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
End Sub
Private Sub UpdateGrid(stationplan As StationPackagePlan)
If _stationPlan Is Nothing Then Return
With GrdStationPlan
'If [Enum].TryParse(.Cell(RowItems.CheckSnTested, ColNames.Value).Text, stationplan.CheckSnTested) = False Then
' MsgBox("更新CheckSnTested失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.CheckSnPackaged, ColNames.Value).Text, stationplan.CheckSnPackaged) = False Then
' MsgBox("更新CheckSnPackaged失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.CheckSnMO, ColNames.Value).Text, stationplan.CheckSnMO) = False Then
' MsgBox("更新CheckSnMO失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.BarCodeType, ColNames.Value).Text, stationplan.BarCodeType) = False Then
' MsgBox("更新BarCodeType失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.MissingQuantity, ColNames.Value).Text, stationplan.MissingQuantity) = False Then
' MsgBox("更新MissingQuantity失败!")
' Return
'End If
'stationplan.PictureCount = .Cell(RowItems.PictureCount, ColNames.Value).IntegerValue
'stationplan.UnlockKey = .Cell(RowItems.UnlockKey, ColNames.Value).Text
'stationplan.MissingQuantityKey = .Cell(RowItems.MissingQuantityKey, ColNames.Value).Text
stationplan.AutoPrint = .Cell(RowItems.AutoPrint, ColNames.Value).BooleanValue
'stationplan.ErrorSound = .Cell(RowItems.ErrorSound, ColNames.Value).Text
'stationplan.TemplateFile = .Cell(RowItems.TemplateFile, ColNames.Value).Text
stationplan.BoxMumEditKey = .Cell(RowItems.BoxMumEditKey, ColNames.Value).Text
stationplan.CompanyLogo = .Cell(RowItems.BoxNumText, ColNames.Value).Text
stationplan.CompanyName = .Cell(RowItems.CompanyName, ColNames.Value).Text
'stationplan.BoxNumText = .Cell(RowItems.BoxNumText, ColNames.Value).Text
'stationplan.BoxBarCode = .Cell(RowItems.BoxBarCode, ColNames.Value).Text
End With
End Sub
Private Sub GrdStationPlan_ButtonClick(Sender As Object, e As FlexCell.Grid.ButtonClickEventArgs) Handles GrdStationPlan.ButtonClick
Select Case e.Row
'Case RowItems.ErrorSound
' DlgOpenFile.Filter = "图像资源 (*.jpg;*.png;*.gif;*.ico)|*.jpg;*.png;*.gif;*.ico"
'Case RowItems.TemplateFile
' DlgOpenFile.Filter = "模板资源 (*.btw)|*.btw"
'Case RowItems.CompanyLogo
' DlgOpenFile.Filter = "图像资源 (*.jpg;*.png;*.gif;*.ico)|*.jpg;*.png;*.gif;*.ico"
End Select
DlgOpenFile.CheckFileExists = True
DlgOpenFile.CheckPathExists = True
If DlgOpenFile.ShowDialog() <> DialogResult.OK Then Return
Dim fileName As String = $"{DlgOpenFile.SafeFileName}"
Dim fileDir As String = UtsPath.GetStationPacketResourceDirPath(_stationPlan.ParentPacket.Name)
Dim fliePath As String = $"{fileDir}\{fileName}"
GrdStationPlan.Cell(e.Row, ColNames.Value).Text = fileName
'导入文件
Try
IO.File.Copy(DlgOpenFile.FileName, fliePath, True)
Catch ex As Exception
MsgBox($"导入资源文件失败,{ex.Message}")
End Try
End Sub
Private Sub GrdStationPlan_ComboDropDown(Sender As Object, e As FlexCell.Grid.ComboDropDownEventArgs) Handles GrdStationPlan.ComboDropDown
GrdStationPlan.ComboBox(0).Items.Clear()
Select Case e.Row
'Case RowItems.CheckSnTested
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.CheckSnPackaged
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.CheckSnMO
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.MissingQuantity
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(MissCountStatus)))
'Case RowItems.BarCodeType
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(BarcodeTypes)))
End Select
End Sub
Private Sub GrdStationPlan_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles GrdStationPlan.CellChange
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed
End Sub
Enum ColNames
SN
Item
Value
Max
End Enum
Enum RowItems
''' <summary>固定行</summary>
<System.ComponentModel.Description("固定行")>
SN
'''' <summary>校验条码未测试后处理方式</summary>
'<System.ComponentModel.Description("校验条码未测试后处理方式")>
'CheckSnTested
'''' <summary>校验条码已参与包装后处理方式</summary>
'<System.ComponentModel.Description("校验条码已参与包装后处理方式")>
'CheckSnPackaged
'''' <summary>校验条码不属于指定MO后处理方式</summary>
'<System.ComponentModel.Description("校验条码不属于指定MO后处理方式")>
'CheckSnMO
'''' <summary>拍摄保存图像的数量</summary>
'<System.ComponentModel.Description("拍摄保存图像的数量")>
'PictureCount
'''' <summary>解锁密码</summary>
'<System.ComponentModel.Description("解锁密码")>
'UnlockKey
'''' <summary>条码类型</summary>
'<System.ComponentModel.Description("条码类型")>
'BarCodeType
'''' <summary>缺失条码数量后的处理方式</summary>
'<System.ComponentModel.Description("缺失条码数量后的处理方式")>
'MissingQuantity
'''' <summary>缺失条码数量后的解锁密码</summary>
'<System.ComponentModel.Description("缺失条码数量后的解锁密码")>
'MissingQuantityKey
''' <summary>是否自动打印</summary>
<System.ComponentModel.Description("是否自动记录")>
AutoPrint
'''' <summary>发生错误后报警文件</summary>
'<System.ComponentModel.Description("发生错误后报警文件")>
'ErrorSound
'''' <summary>模板文件名</summary>
'<System.ComponentModel.Description("模板文件名")>
'TemplateFile
''' <summary>箱号编辑密码</summary>
<System.ComponentModel.Description("阈值上限")>
BoxMumEditKey
'''' <summary>公司Logo文件</summary>
'<System.ComponentModel.Description("最大装箱值")>
'CompanyLogo
''' <summary>公司名称</summary>
<System.ComponentModel.Description("阈值下限")>
CompanyName
''' <summary>箱号规则</summary>
<System.ComponentModel.Description("最大装箱值")>
BoxNumText
'''' <summary>箱号条码</summary>
'<System.ComponentModel.Description("箱号条码")>
'BoxBarCode
Max
End Enum
Private Sub GrdStationPlan_SelChange(Sender As Object, e As FlexCell.Grid.SelChangeEventArgs) Handles GrdStationPlan.SelChange
If e.FirstRow <= RowItems.SN OrElse e.FirstRow > GrdStationPlan.Rows - 1 Then Return
Dim row As Integer = e.FirstRow
Dim a As RowItems
If [Enum].TryParse(row.ToString, a) Then
LblDesc.Text = $"Row:{row}{vbCrLf}Desc:{GetEnumDescription(a)}"
Else
LblDesc.Text = $"Row:{row}{vbCrLf}Desc:无说明"
End If
End Sub
Public Function GetEnumDescription(enumValue As RowItems) As String
Dim str As String = enumValue.ToString()
Dim field As System.Reflection.FieldInfo = enumValue.GetType().GetField(str)
Dim objs() As Object = field.GetCustomAttributes(GetType(System.ComponentModel.DescriptionAttribute), False)
If objs Is Nothing OrElse objs.Length = 0 Then Return str
Dim da As System.ComponentModel.DescriptionAttribute = CType(objs(0), ComponentModel.DescriptionAttribute)
Return da.Description
End Function
#End Region
End Class

View File

@@ -0,0 +1,903 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Mars_T2_FrmStationTest
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.SerialPort1 = New System.IO.Ports.SerialPort(Me.components)
Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
Me.timer_Rcvd_Timeout = New System.Windows.Forms.Timer(Me.components)
Me.timer_AutoFindCommPort = New System.Windows.Forms.Timer(Me.components)
Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components)
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
Me.tss_CommPort = New System.Windows.Forms.ToolStripStatusLabel()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer2 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer4 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer6 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer7 = New System.Windows.Forms.SplitContainer()
Me.lab_projectname = New System.Windows.Forms.Label()
Me.lab_projectconfig = New System.Windows.Forms.Label()
Me.lab_imger = New System.Windows.Forms.PictureBox()
Me.SplitContainer5 = New System.Windows.Forms.SplitContainer()
Me.lab_Processed_Unit_Cnt = New System.Windows.Forms.Label()
Me.lab_Processed_Unit_Cnt_ThisCycle = New System.Windows.Forms.Label()
Me.ListBox1 = New System.Windows.Forms.ListBox()
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
Me.SplitContainer3 = New System.Windows.Forms.SplitContainer()
Me.G3label_tip = New System.Windows.Forms.Label()
Me.txt_testnum = New System.Windows.Forms.TextBox()
Me.LiveData = New System.Windows.Forms.TextBox()
Me.txt_LooadNum = New System.Windows.Forms.TextBox()
Me.Label5 = New System.Windows.Forms.Label()
Me.txt_BosCode = New System.Windows.Forms.TextBox()
Me.txt_UpNum = New System.Windows.Forms.TextBox()
Me.Label9 = New System.Windows.Forms.Label()
Me.Label4 = New System.Windows.Forms.Label()
Me.OpenUart_btn = New System.Windows.Forms.Button()
Me.UartPort_cob = New System.Windows.Forms.ComboBox()
Me.Label6 = New System.Windows.Forms.Label()
Me.devbox = New System.Windows.Forms.TextBox()
Me.Label3 = New System.Windows.Forms.Label()
Me.colorbox = New System.Windows.Forms.TextBox()
Me.Label2 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.TextBox1 = New System.Windows.Forms.TextBox()
Me.SplitContainer8 = New System.Windows.Forms.SplitContainer()
Me.Tree_ViewEx1 = New UTS_Core.UTSModule.Station.TreeViewEx()
Me.lab_sun = New System.Windows.Forms.Label()
Me.chk_flow = New System.Windows.Forms.CheckBox()
Me.chk_auto = New System.Windows.Forms.CheckBox()
Me.btn_entering = New System.Windows.Forms.Button()
Me.Btn_delete = New System.Windows.Forms.Button()
Me.Label11 = New System.Windows.Forms.Label()
Me.txt_unitweight = New System.Windows.Forms.TextBox()
Me.Label12 = New System.Windows.Forms.Label()
Me.txt_labstring = New System.Windows.Forms.TextBox()
Me.lab1 = New System.Windows.Forms.Label()
Me.txt_inputnum = New System.Windows.Forms.TextBox()
Me.Label7 = New System.Windows.Forms.Label()
Me.txt_SnCode = New System.Windows.Forms.TextBox()
Me.Label8 = New System.Windows.Forms.Label()
Me.txt_colorbox = New System.Windows.Forms.TextBox()
Me.Label10 = New System.Windows.Forms.Label()
Me.txt_MacCode = New System.Windows.Forms.TextBox()
Me.StatusStrip1.SuspendLayout()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer2.Panel1.SuspendLayout()
Me.SplitContainer2.Panel2.SuspendLayout()
Me.SplitContainer2.SuspendLayout()
CType(Me.SplitContainer4, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer4.Panel1.SuspendLayout()
Me.SplitContainer4.Panel2.SuspendLayout()
Me.SplitContainer4.SuspendLayout()
CType(Me.SplitContainer6, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer6.Panel1.SuspendLayout()
Me.SplitContainer6.Panel2.SuspendLayout()
Me.SplitContainer6.SuspendLayout()
CType(Me.SplitContainer7, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer7.Panel1.SuspendLayout()
Me.SplitContainer7.Panel2.SuspendLayout()
Me.SplitContainer7.SuspendLayout()
CType(Me.lab_imger, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainer5, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer5.Panel1.SuspendLayout()
Me.SplitContainer5.Panel2.SuspendLayout()
Me.SplitContainer5.SuspendLayout()
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer3.Panel1.SuspendLayout()
Me.SplitContainer3.Panel2.SuspendLayout()
Me.SplitContainer3.SuspendLayout()
CType(Me.SplitContainer8, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer8.Panel1.SuspendLayout()
Me.SplitContainer8.Panel2.SuspendLayout()
Me.SplitContainer8.SuspendLayout()
Me.SuspendLayout()
'
'SerialPort1
'
'
'Timer1
'
Me.Timer1.Enabled = True
'
'timer_Rcvd_Timeout
'
Me.timer_Rcvd_Timeout.Enabled = True
'
'timer_AutoFindCommPort
'
'
'ImageList1
'
Me.ImageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit
Me.ImageList1.ImageSize = New System.Drawing.Size(16, 16)
Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent
'
'StatusStrip1
'
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tss_CommPort})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 549)
Me.StatusStrip1.Name = "StatusStrip1"
Me.StatusStrip1.Size = New System.Drawing.Size(985, 22)
Me.StatusStrip1.TabIndex = 2
Me.StatusStrip1.Text = "StatusStrip1"
'
'tss_CommPort
'
Me.tss_CommPort.AutoSize = False
Me.tss_CommPort.Font = New System.Drawing.Font("微软雅黑", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.tss_CommPort.Name = "tss_CommPort"
Me.tss_CommPort.Size = New System.Drawing.Size(80, 17)
Me.tss_CommPort.Text = "COM1"
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.IsSplitterFixed = True
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.SplitContainer3)
Me.SplitContainer1.Size = New System.Drawing.Size(985, 549)
Me.SplitContainer1.SplitterDistance = 340
Me.SplitContainer1.SplitterWidth = 1
Me.SplitContainer1.TabIndex = 3
'
'SplitContainer2
'
Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer2.IsSplitterFixed = True
Me.SplitContainer2.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer2.Name = "SplitContainer2"
Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer2.Panel1
'
Me.SplitContainer2.Panel1.Controls.Add(Me.SplitContainer4)
'
'SplitContainer2.Panel2
'
Me.SplitContainer2.Panel2.Controls.Add(Me.ListBox1)
Me.SplitContainer2.Panel2.Controls.Add(Me.RichTextBox1)
Me.SplitContainer2.Size = New System.Drawing.Size(340, 549)
Me.SplitContainer2.SplitterDistance = 287
Me.SplitContainer2.SplitterWidth = 1
Me.SplitContainer2.TabIndex = 0
'
'SplitContainer4
'
Me.SplitContainer4.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer4.IsSplitterFixed = True
Me.SplitContainer4.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer4.Name = "SplitContainer4"
Me.SplitContainer4.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer4.Panel1
'
Me.SplitContainer4.Panel1.Controls.Add(Me.SplitContainer6)
'
'SplitContainer4.Panel2
'
Me.SplitContainer4.Panel2.Controls.Add(Me.SplitContainer5)
Me.SplitContainer4.Size = New System.Drawing.Size(340, 287)
Me.SplitContainer4.SplitterDistance = 227
Me.SplitContainer4.SplitterWidth = 1
Me.SplitContainer4.TabIndex = 12
'
'SplitContainer6
'
Me.SplitContainer6.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer6.IsSplitterFixed = True
Me.SplitContainer6.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer6.Name = "SplitContainer6"
Me.SplitContainer6.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer6.Panel1
'
Me.SplitContainer6.Panel1.Controls.Add(Me.SplitContainer7)
'
'SplitContainer6.Panel2
'
Me.SplitContainer6.Panel2.Controls.Add(Me.lab_imger)
Me.SplitContainer6.Size = New System.Drawing.Size(340, 227)
Me.SplitContainer6.SplitterDistance = 77
Me.SplitContainer6.SplitterWidth = 1
Me.SplitContainer6.TabIndex = 1
'
'SplitContainer7
'
Me.SplitContainer7.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer7.IsSplitterFixed = True
Me.SplitContainer7.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer7.Name = "SplitContainer7"
Me.SplitContainer7.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer7.Panel1
'
Me.SplitContainer7.Panel1.Controls.Add(Me.lab_projectname)
'
'SplitContainer7.Panel2
'
Me.SplitContainer7.Panel2.Controls.Add(Me.lab_projectconfig)
Me.SplitContainer7.Size = New System.Drawing.Size(340, 77)
Me.SplitContainer7.SplitterDistance = 25
Me.SplitContainer7.SplitterWidth = 1
Me.SplitContainer7.TabIndex = 13
'
'lab_projectname
'
Me.lab_projectname.BackColor = System.Drawing.Color.PeachPuff
Me.lab_projectname.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_projectname.Font = New System.Drawing.Font("宋体", 18.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.lab_projectname.Location = New System.Drawing.Point(0, 0)
Me.lab_projectname.Name = "lab_projectname"
Me.lab_projectname.Size = New System.Drawing.Size(340, 25)
Me.lab_projectname.TabIndex = 0
Me.lab_projectname.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'lab_projectconfig
'
Me.lab_projectconfig.BackColor = System.Drawing.SystemColors.ActiveCaption
Me.lab_projectconfig.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_projectconfig.Font = New System.Drawing.Font("宋体", 12.75!, System.Drawing.FontStyle.Bold)
Me.lab_projectconfig.Location = New System.Drawing.Point(0, 0)
Me.lab_projectconfig.Name = "lab_projectconfig"
Me.lab_projectconfig.Size = New System.Drawing.Size(340, 51)
Me.lab_projectconfig.TabIndex = 1
Me.lab_projectconfig.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'lab_imger
'
Me.lab_imger.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lab_imger.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_imger.Location = New System.Drawing.Point(0, 0)
Me.lab_imger.Name = "lab_imger"
Me.lab_imger.Size = New System.Drawing.Size(340, 149)
Me.lab_imger.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom
Me.lab_imger.TabIndex = 12
Me.lab_imger.TabStop = False
'
'SplitContainer5
'
Me.SplitContainer5.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer5.IsSplitterFixed = True
Me.SplitContainer5.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer5.Name = "SplitContainer5"
'
'SplitContainer5.Panel1
'
Me.SplitContainer5.Panel1.Controls.Add(Me.lab_Processed_Unit_Cnt)
'
'SplitContainer5.Panel2
'
Me.SplitContainer5.Panel2.Controls.Add(Me.lab_Processed_Unit_Cnt_ThisCycle)
Me.SplitContainer5.Size = New System.Drawing.Size(340, 59)
Me.SplitContainer5.SplitterDistance = 162
Me.SplitContainer5.SplitterWidth = 1
Me.SplitContainer5.TabIndex = 0
'
'lab_Processed_Unit_Cnt
'
Me.lab_Processed_Unit_Cnt.BackColor = System.Drawing.SystemColors.ActiveCaptionText
Me.lab_Processed_Unit_Cnt.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_Processed_Unit_Cnt.Font = New System.Drawing.Font("Calibri", 29.25!, System.Drawing.FontStyle.Bold)
Me.lab_Processed_Unit_Cnt.ForeColor = System.Drawing.Color.White
Me.lab_Processed_Unit_Cnt.Location = New System.Drawing.Point(0, 0)
Me.lab_Processed_Unit_Cnt.Name = "lab_Processed_Unit_Cnt"
Me.lab_Processed_Unit_Cnt.Size = New System.Drawing.Size(162, 59)
Me.lab_Processed_Unit_Cnt.TabIndex = 15
Me.lab_Processed_Unit_Cnt.Tag = "本次生产总统计数量连击5次清零"
Me.lab_Processed_Unit_Cnt.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'lab_Processed_Unit_Cnt_ThisCycle
'
Me.lab_Processed_Unit_Cnt_ThisCycle.BackColor = System.Drawing.SystemColors.ActiveCaptionText
Me.lab_Processed_Unit_Cnt_ThisCycle.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_Processed_Unit_Cnt_ThisCycle.Font = New System.Drawing.Font("Calibri", 29.25!, System.Drawing.FontStyle.Bold)
Me.lab_Processed_Unit_Cnt_ThisCycle.ForeColor = System.Drawing.Color.White
Me.lab_Processed_Unit_Cnt_ThisCycle.Location = New System.Drawing.Point(0, 0)
Me.lab_Processed_Unit_Cnt_ThisCycle.Name = "lab_Processed_Unit_Cnt_ThisCycle"
Me.lab_Processed_Unit_Cnt_ThisCycle.Size = New System.Drawing.Size(177, 59)
Me.lab_Processed_Unit_Cnt_ThisCycle.TabIndex = 16
Me.lab_Processed_Unit_Cnt_ThisCycle.Text = "0"
Me.lab_Processed_Unit_Cnt_ThisCycle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'ListBox1
'
Me.ListBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.ListBox1.Font = New System.Drawing.Font("Consolas", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.ListBox1.FormattingEnabled = True
Me.ListBox1.ItemHeight = 14
Me.ListBox1.Location = New System.Drawing.Point(0, 0)
Me.ListBox1.Name = "ListBox1"
Me.ListBox1.Size = New System.Drawing.Size(340, 261)
Me.ListBox1.TabIndex = 11
'
'RichTextBox1
'
Me.RichTextBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.RichTextBox1.Location = New System.Drawing.Point(0, 0)
Me.RichTextBox1.Name = "RichTextBox1"
Me.RichTextBox1.Size = New System.Drawing.Size(340, 261)
Me.RichTextBox1.TabIndex = 2
Me.RichTextBox1.Text = ""
Me.RichTextBox1.Visible = False
'
'SplitContainer3
'
Me.SplitContainer3.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer3.IsSplitterFixed = True
Me.SplitContainer3.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer3.Name = "SplitContainer3"
Me.SplitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer3.Panel1
'
Me.SplitContainer3.Panel1.Controls.Add(Me.G3label_tip)
Me.SplitContainer3.Panel1.Controls.Add(Me.txt_testnum)
Me.SplitContainer3.Panel1.Controls.Add(Me.LiveData)
Me.SplitContainer3.Panel1.Controls.Add(Me.txt_LooadNum)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label5)
Me.SplitContainer3.Panel1.Controls.Add(Me.txt_BosCode)
Me.SplitContainer3.Panel1.Controls.Add(Me.txt_UpNum)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label9)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label4)
Me.SplitContainer3.Panel1.Controls.Add(Me.OpenUart_btn)
Me.SplitContainer3.Panel1.Controls.Add(Me.UartPort_cob)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label6)
Me.SplitContainer3.Panel1.Controls.Add(Me.devbox)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label3)
Me.SplitContainer3.Panel1.Controls.Add(Me.colorbox)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label2)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label1)
Me.SplitContainer3.Panel1.Controls.Add(Me.TextBox1)
'
'SplitContainer3.Panel2
'
Me.SplitContainer3.Panel2.Controls.Add(Me.SplitContainer8)
Me.SplitContainer3.Size = New System.Drawing.Size(644, 549)
Me.SplitContainer3.SplitterDistance = 310
Me.SplitContainer3.SplitterWidth = 1
Me.SplitContainer3.TabIndex = 0
'
'G3label_tip
'
Me.G3label_tip.BackColor = System.Drawing.SystemColors.ActiveCaptionText
Me.G3label_tip.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.G3label_tip.Dock = System.Windows.Forms.DockStyle.Top
Me.G3label_tip.Font = New System.Drawing.Font("宋体", 12.0!)
Me.G3label_tip.ForeColor = System.Drawing.SystemColors.ControlLightLight
Me.G3label_tip.Location = New System.Drawing.Point(0, 0)
Me.G3label_tip.Name = "G3label_tip"
Me.G3label_tip.Size = New System.Drawing.Size(644, 54)
Me.G3label_tip.TabIndex = 48
Me.G3label_tip.Text = "-----"
Me.G3label_tip.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_testnum
'
Me.txt_testnum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_testnum.Font = New System.Drawing.Font("宋体", 27.0!)
Me.txt_testnum.Location = New System.Drawing.Point(247, 258)
Me.txt_testnum.Name = "txt_testnum"
Me.txt_testnum.Size = New System.Drawing.Size(183, 49)
Me.txt_testnum.TabIndex = 40
Me.txt_testnum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'LiveData
'
Me.LiveData.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.LiveData.Font = New System.Drawing.Font("宋体", 18.0!)
Me.LiveData.Location = New System.Drawing.Point(406, 60)
Me.LiveData.Name = "LiveData"
Me.LiveData.ReadOnly = True
Me.LiveData.Size = New System.Drawing.Size(236, 35)
Me.LiveData.TabIndex = 47
Me.LiveData.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'txt_LooadNum
'
Me.txt_LooadNum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_LooadNum.Font = New System.Drawing.Font("宋体", 27.0!)
Me.txt_LooadNum.Location = New System.Drawing.Point(16, 258)
Me.txt_LooadNum.Name = "txt_LooadNum"
Me.txt_LooadNum.ReadOnly = True
Me.txt_LooadNum.Size = New System.Drawing.Size(183, 49)
Me.txt_LooadNum.TabIndex = 37
Me.txt_LooadNum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Label5
'
Me.Label5.AutoSize = True
Me.Label5.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label5.Location = New System.Drawing.Point(205, 265)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(36, 37)
Me.Label5.TabIndex = 38
Me.Label5.Text = "<"
'
'txt_BosCode
'
Me.txt_BosCode.Font = New System.Drawing.Font("宋体", 20.0!)
Me.txt_BosCode.Location = New System.Drawing.Point(191, 103)
Me.txt_BosCode.Name = "txt_BosCode"
Me.txt_BosCode.Size = New System.Drawing.Size(450, 38)
Me.txt_BosCode.TabIndex = 46
'
'txt_UpNum
'
Me.txt_UpNum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_UpNum.Font = New System.Drawing.Font("宋体", 27.0!)
Me.txt_UpNum.Location = New System.Drawing.Point(469, 258)
Me.txt_UpNum.Name = "txt_UpNum"
Me.txt_UpNum.ReadOnly = True
Me.txt_UpNum.Size = New System.Drawing.Size(173, 49)
Me.txt_UpNum.TabIndex = 41
Me.txt_UpNum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Label9
'
Me.Label9.AutoSize = True
Me.Label9.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label9.Location = New System.Drawing.Point(11, 109)
Me.Label9.Name = "Label9"
Me.Label9.Size = New System.Drawing.Size(188, 27)
Me.Label9.TabIndex = 45
Me.Label9.Text = "请输入箱体码:"
Me.Label9.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'Label4
'
Me.Label4.AutoSize = True
Me.Label4.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Label4.Location = New System.Drawing.Point(436, 265)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(36, 37)
Me.Label4.TabIndex = 39
Me.Label4.Text = ">"
'
'OpenUart_btn
'
Me.OpenUart_btn.Location = New System.Drawing.Point(16, 57)
Me.OpenUart_btn.Name = "OpenUart_btn"
Me.OpenUart_btn.Size = New System.Drawing.Size(170, 41)
Me.OpenUart_btn.TabIndex = 43
Me.OpenUart_btn.Text = "打开串口"
Me.OpenUart_btn.UseVisualStyleBackColor = True
'
'UartPort_cob
'
Me.UartPort_cob.AllowDrop = True
Me.UartPort_cob.Font = New System.Drawing.Font("宋体", 25.0!)
Me.UartPort_cob.FormattingEnabled = True
Me.UartPort_cob.Location = New System.Drawing.Point(192, 57)
Me.UartPort_cob.Name = "UartPort_cob"
Me.UartPort_cob.Size = New System.Drawing.Size(208, 41)
Me.UartPort_cob.TabIndex = 44
'
'Label6
'
Me.Label6.AutoSize = True
Me.Label6.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label6.Location = New System.Drawing.Point(11, 229)
Me.Label6.Name = "Label6"
Me.Label6.Size = New System.Drawing.Size(161, 27)
Me.Label6.TabIndex = 42
Me.Label6.Text = "请确认称重:"
Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'devbox
'
Me.devbox.Font = New System.Drawing.Font("宋体", 20.0!)
Me.devbox.Location = New System.Drawing.Point(191, 187)
Me.devbox.Name = "devbox"
Me.devbox.ReadOnly = True
Me.devbox.Size = New System.Drawing.Size(450, 38)
Me.devbox.TabIndex = 36
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label3.Location = New System.Drawing.Point(5, 193)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(191, 27)
Me.Label3.TabIndex = 35
Me.Label3.Text = "请确认DUT_SN:"
Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'colorbox
'
Me.colorbox.Font = New System.Drawing.Font("宋体", 20.0!)
Me.colorbox.Location = New System.Drawing.Point(191, 144)
Me.colorbox.Name = "colorbox"
Me.colorbox.Size = New System.Drawing.Size(450, 38)
Me.colorbox.TabIndex = 34
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label2.Location = New System.Drawing.Point(11, 150)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(188, 27)
Me.Label2.TabIndex = 33
Me.Label2.Text = "请输入彩盒码:"
Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(14, 32)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(83, 12)
Me.Label1.TabIndex = 32
Me.Label1.Text = "打印模板路径:"
Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight
Me.Label1.Visible = False
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(98, 29)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.ReadOnly = True
Me.TextBox1.Size = New System.Drawing.Size(547, 21)
Me.TextBox1.TabIndex = 31
Me.TextBox1.Visible = False
'
'SplitContainer8
'
Me.SplitContainer8.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer8.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer8.Name = "SplitContainer8"
'
'SplitContainer8.Panel1
'
Me.SplitContainer8.Panel1.Controls.Add(Me.Tree_ViewEx1)
Me.SplitContainer8.Panel1.Controls.Add(Me.lab_sun)
'
'SplitContainer8.Panel2
'
Me.SplitContainer8.Panel2.Controls.Add(Me.chk_flow)
Me.SplitContainer8.Panel2.Controls.Add(Me.chk_auto)
Me.SplitContainer8.Panel2.Controls.Add(Me.btn_entering)
Me.SplitContainer8.Panel2.Controls.Add(Me.Btn_delete)
Me.SplitContainer8.Panel2.Controls.Add(Me.Label11)
Me.SplitContainer8.Panel2.Controls.Add(Me.txt_unitweight)
Me.SplitContainer8.Panel2.Controls.Add(Me.Label12)
Me.SplitContainer8.Panel2.Controls.Add(Me.txt_labstring)
Me.SplitContainer8.Panel2.Controls.Add(Me.lab1)
Me.SplitContainer8.Panel2.Controls.Add(Me.txt_inputnum)
Me.SplitContainer8.Panel2.Controls.Add(Me.Label7)
Me.SplitContainer8.Panel2.Controls.Add(Me.txt_SnCode)
Me.SplitContainer8.Panel2.Controls.Add(Me.Label8)
Me.SplitContainer8.Panel2.Controls.Add(Me.txt_colorbox)
Me.SplitContainer8.Panel2.Controls.Add(Me.Label10)
Me.SplitContainer8.Panel2.Controls.Add(Me.txt_MacCode)
Me.SplitContainer8.Size = New System.Drawing.Size(644, 238)
Me.SplitContainer8.SplitterDistance = 333
Me.SplitContainer8.TabIndex = 0
'
'Tree_ViewEx1
'
Me.Tree_ViewEx1.Dock = System.Windows.Forms.DockStyle.Fill
Me.Tree_ViewEx1.Font = New System.Drawing.Font("宋体", 12.0!)
Me.Tree_ViewEx1.Location = New System.Drawing.Point(0, 23)
Me.Tree_ViewEx1.Name = "Tree_ViewEx1"
Me.Tree_ViewEx1.Size = New System.Drawing.Size(333, 215)
Me.Tree_ViewEx1.TabIndex = 2
'
'lab_sun
'
Me.lab_sun.BackColor = System.Drawing.SystemColors.ActiveCaptionText
Me.lab_sun.Dock = System.Windows.Forms.DockStyle.Top
Me.lab_sun.Font = New System.Drawing.Font("宋体", 19.0!)
Me.lab_sun.ForeColor = System.Drawing.SystemColors.ButtonHighlight
Me.lab_sun.Location = New System.Drawing.Point(0, 0)
Me.lab_sun.Name = "lab_sun"
Me.lab_sun.Size = New System.Drawing.Size(333, 23)
Me.lab_sun.TabIndex = 0
Me.lab_sun.Text = "0/0"
Me.lab_sun.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'chk_flow
'
Me.chk_flow.BackColor = System.Drawing.SystemColors.ButtonFace
Me.chk_flow.Checked = True
Me.chk_flow.CheckState = System.Windows.Forms.CheckState.Checked
Me.chk_flow.Font = New System.Drawing.Font("宋体", 10.0!, CType((System.Drawing.FontStyle.Bold Or System.Drawing.FontStyle.Underline), System.Drawing.FontStyle))
Me.chk_flow.Location = New System.Drawing.Point(5, 210)
Me.chk_flow.Name = "chk_flow"
Me.chk_flow.Size = New System.Drawing.Size(88, 21)
Me.chk_flow.TabIndex = 37
Me.chk_flow.Text = "流程校对"
Me.chk_flow.UseVisualStyleBackColor = False
'
'chk_auto
'
Me.chk_auto.AutoSize = True
Me.chk_auto.Location = New System.Drawing.Point(7, 191)
Me.chk_auto.Name = "chk_auto"
Me.chk_auto.Size = New System.Drawing.Size(72, 16)
Me.chk_auto.TabIndex = 36
Me.chk_auto.Text = "自动录入"
Me.chk_auto.UseVisualStyleBackColor = True
'
'btn_entering
'
Me.btn_entering.Location = New System.Drawing.Point(202, 191)
Me.btn_entering.Name = "btn_entering"
Me.btn_entering.Size = New System.Drawing.Size(100, 39)
Me.btn_entering.TabIndex = 35
Me.btn_entering.Text = "录入箱体信息"
Me.btn_entering.UseVisualStyleBackColor = True
'
'Btn_delete
'
Me.Btn_delete.Location = New System.Drawing.Point(96, 191)
Me.Btn_delete.Name = "Btn_delete"
Me.Btn_delete.Size = New System.Drawing.Size(100, 39)
Me.Btn_delete.TabIndex = 34
Me.Btn_delete.Text = "移除选中彩盒码"
Me.Btn_delete.UseVisualStyleBackColor = True
'
'Label11
'
Me.Label11.AutoSize = True
Me.Label11.Font = New System.Drawing.Font("宋体", 10.0!)
Me.Label11.Location = New System.Drawing.Point(4, 161)
Me.Label11.Name = "Label11"
Me.Label11.Size = New System.Drawing.Size(84, 14)
Me.Label11.TabIndex = 33
Me.Label11.Text = "UnitWeigth:"
Me.Label11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_unitweight
'
Me.txt_unitweight.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_unitweight.Location = New System.Drawing.Point(107, 157)
Me.txt_unitweight.Name = "txt_unitweight"
Me.txt_unitweight.ReadOnly = True
Me.txt_unitweight.Size = New System.Drawing.Size(195, 23)
Me.txt_unitweight.TabIndex = 32
'
'Label12
'
Me.Label12.AutoSize = True
Me.Label12.Font = New System.Drawing.Font("宋体", 10.0!)
Me.Label12.Location = New System.Drawing.Point(4, 131)
Me.Label12.Name = "Label12"
Me.Label12.Size = New System.Drawing.Size(98, 14)
Me.Label12.TabIndex = 31
Me.Label12.Text = "label_string:"
Me.Label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_labstring
'
Me.txt_labstring.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_labstring.Location = New System.Drawing.Point(107, 127)
Me.txt_labstring.Name = "txt_labstring"
Me.txt_labstring.ReadOnly = True
Me.txt_labstring.Size = New System.Drawing.Size(195, 23)
Me.txt_labstring.TabIndex = 30
'
'lab1
'
Me.lab1.AutoSize = True
Me.lab1.Font = New System.Drawing.Font("宋体", 10.0!)
Me.lab1.Location = New System.Drawing.Point(4, 12)
Me.lab1.Name = "lab1"
Me.lab1.Size = New System.Drawing.Size(70, 14)
Me.lab1.TabIndex = 29
Me.lab1.Text = "装载数量:"
Me.lab1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_inputnum
'
Me.txt_inputnum.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_inputnum.Location = New System.Drawing.Point(107, 8)
Me.txt_inputnum.Name = "txt_inputnum"
Me.txt_inputnum.ReadOnly = True
Me.txt_inputnum.Size = New System.Drawing.Size(195, 23)
Me.txt_inputnum.TabIndex = 28
'
'Label7
'
Me.Label7.AutoSize = True
Me.Label7.Font = New System.Drawing.Font("宋体", 10.0!)
Me.Label7.Location = New System.Drawing.Point(3, 72)
Me.Label7.Name = "Label7"
Me.Label7.Size = New System.Drawing.Size(56, 14)
Me.Label7.TabIndex = 27
Me.Label7.Text = "SnCode:"
Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_SnCode
'
Me.txt_SnCode.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_SnCode.Location = New System.Drawing.Point(107, 68)
Me.txt_SnCode.Name = "txt_SnCode"
Me.txt_SnCode.ReadOnly = True
Me.txt_SnCode.Size = New System.Drawing.Size(195, 23)
Me.txt_SnCode.TabIndex = 26
'
'Label8
'
Me.Label8.AutoSize = True
Me.Label8.Font = New System.Drawing.Font("宋体", 10.0!)
Me.Label8.Location = New System.Drawing.Point(3, 101)
Me.Label8.Name = "Label8"
Me.Label8.Size = New System.Drawing.Size(98, 14)
Me.Label8.TabIndex = 25
Me.Label8.Text = "ColorBoxCode:"
Me.Label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_colorbox
'
Me.txt_colorbox.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_colorbox.Location = New System.Drawing.Point(107, 97)
Me.txt_colorbox.Name = "txt_colorbox"
Me.txt_colorbox.ReadOnly = True
Me.txt_colorbox.Size = New System.Drawing.Size(195, 23)
Me.txt_colorbox.TabIndex = 24
'
'Label10
'
Me.Label10.AutoSize = True
Me.Label10.Font = New System.Drawing.Font("宋体", 10.0!)
Me.Label10.Location = New System.Drawing.Point(3, 41)
Me.Label10.Name = "Label10"
Me.Label10.Size = New System.Drawing.Size(63, 14)
Me.Label10.TabIndex = 23
Me.Label10.Text = "MacCode:"
Me.Label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_MacCode
'
Me.txt_MacCode.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_MacCode.Location = New System.Drawing.Point(107, 37)
Me.txt_MacCode.Name = "txt_MacCode"
Me.txt_MacCode.ReadOnly = True
Me.txt_MacCode.Size = New System.Drawing.Size(195, 23)
Me.txt_MacCode.TabIndex = 22
'
'ZQ_Mars_T2_FrmStationTest
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(985, 571)
Me.Controls.Add(Me.SplitContainer1)
Me.Controls.Add(Me.StatusStrip1)
Me.Name = "ZQ_Mars_T2_FrmStationTest"
Me.Text = "ZQ_Mars_P2_FrmStationTest"
Me.StatusStrip1.ResumeLayout(False)
Me.StatusStrip1.PerformLayout()
Me.SplitContainer1.Panel1.ResumeLayout(False)
Me.SplitContainer1.Panel2.ResumeLayout(False)
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer1.ResumeLayout(False)
Me.SplitContainer2.Panel1.ResumeLayout(False)
Me.SplitContainer2.Panel2.ResumeLayout(False)
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer2.ResumeLayout(False)
Me.SplitContainer4.Panel1.ResumeLayout(False)
Me.SplitContainer4.Panel2.ResumeLayout(False)
CType(Me.SplitContainer4, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer4.ResumeLayout(False)
Me.SplitContainer6.Panel1.ResumeLayout(False)
Me.SplitContainer6.Panel2.ResumeLayout(False)
CType(Me.SplitContainer6, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer6.ResumeLayout(False)
Me.SplitContainer7.Panel1.ResumeLayout(False)
Me.SplitContainer7.Panel2.ResumeLayout(False)
CType(Me.SplitContainer7, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer7.ResumeLayout(False)
CType(Me.lab_imger, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer5.Panel1.ResumeLayout(False)
Me.SplitContainer5.Panel2.ResumeLayout(False)
CType(Me.SplitContainer5, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer5.ResumeLayout(False)
Me.SplitContainer3.Panel1.ResumeLayout(False)
Me.SplitContainer3.Panel1.PerformLayout()
Me.SplitContainer3.Panel2.ResumeLayout(False)
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer3.ResumeLayout(False)
Me.SplitContainer8.Panel1.ResumeLayout(False)
Me.SplitContainer8.Panel2.ResumeLayout(False)
Me.SplitContainer8.Panel2.PerformLayout()
CType(Me.SplitContainer8, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer8.ResumeLayout(False)
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents SerialPort1 As IO.Ports.SerialPort
Friend WithEvents Timer1 As Timer
Friend WithEvents timer_Rcvd_Timeout As Timer
Friend WithEvents timer_AutoFindCommPort As Timer
Private WithEvents ImageList1 As ImageList
Friend WithEvents StatusStrip1 As StatusStrip
Friend WithEvents tss_CommPort As ToolStripStatusLabel
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents SplitContainer2 As SplitContainer
Friend WithEvents SplitContainer4 As SplitContainer
Friend WithEvents SplitContainer6 As SplitContainer
Friend WithEvents SplitContainer7 As SplitContainer
Friend WithEvents lab_projectname As Label
Friend WithEvents lab_projectconfig As Label
Friend WithEvents lab_imger As PictureBox
Friend WithEvents SplitContainer5 As SplitContainer
Friend WithEvents lab_Processed_Unit_Cnt As Label
Friend WithEvents lab_Processed_Unit_Cnt_ThisCycle As Label
Friend WithEvents RichTextBox1 As RichTextBox
Friend WithEvents SplitContainer3 As SplitContainer
Friend WithEvents txt_testnum As TextBox
Friend WithEvents LiveData As TextBox
Friend WithEvents txt_LooadNum As TextBox
Friend WithEvents Label5 As Label
Friend WithEvents txt_BosCode As TextBox
Friend WithEvents txt_UpNum As TextBox
Friend WithEvents Label9 As Label
Friend WithEvents Label4 As Label
Friend WithEvents OpenUart_btn As Button
Friend WithEvents UartPort_cob As ComboBox
Friend WithEvents Label6 As Label
Friend WithEvents devbox As TextBox
Friend WithEvents Label3 As Label
Friend WithEvents colorbox As TextBox
Friend WithEvents Label2 As Label
Friend WithEvents Label1 As Label
Friend WithEvents TextBox1 As TextBox
Friend WithEvents SplitContainer8 As SplitContainer
Friend WithEvents lab1 As Label
Friend WithEvents txt_inputnum As TextBox
Friend WithEvents Label7 As Label
Friend WithEvents txt_SnCode As TextBox
Friend WithEvents Label8 As Label
Friend WithEvents txt_colorbox As TextBox
Friend WithEvents Label10 As Label
Friend WithEvents txt_MacCode As TextBox
Friend WithEvents Label11 As Label
Friend WithEvents txt_unitweight As TextBox
Friend WithEvents Label12 As Label
Friend WithEvents txt_labstring As TextBox
Friend WithEvents ListBox1 As ListBox
Friend WithEvents btn_entering As Button
Friend WithEvents Btn_delete As Button
Friend WithEvents chk_auto As CheckBox
Friend WithEvents chk_flow As CheckBox
Friend WithEvents G3label_tip As Label
Friend WithEvents Tree_ViewEx1 As UTS_Core.UTSModule.Station.TreeViewEx
Friend WithEvents lab_sun As Label
End Class

View 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="SerialPort1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="Timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>133, 17</value>
</metadata>
<metadata name="timer_Rcvd_Timeout.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>225, 17</value>
</metadata>
<metadata name="timer_AutoFindCommPort.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>519, 17</value>
</metadata>
<metadata name="ImageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>133, 55</value>
</metadata>
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>249, 55</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>122</value>
</metadata>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,425 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Mars_P3_FrmStationPlan
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ZQ_Mars_P3_FrmStationPlan))
Me.ToolStripSeparator7 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugStep = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugContinue = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator8 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugSetup = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugMain = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugPass = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugFail = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugCleanup = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator9 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugNode = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugNodeBegin = New System.Windows.Forms.ToolStripMenuItem()
Me.StuMain = New System.Windows.Forms.StatusStrip()
Me.DlgOpenFile = New System.Windows.Forms.OpenFileDialog()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
Me.LblDesc = New System.Windows.Forms.Label()
Me.GrdStationPlan = New FlexCell.Grid()
Me.CmsPlanGrid = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.MsiCopyNode = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiCutNode = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiNodePaste = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiUndo = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiRedo = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiSaveNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiLoadNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStart = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugEnd = New System.Windows.Forms.ToolStripMenuItem()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.TsBtnOpen = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSave = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator()
Me.TsBtnLoad = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSaveAs = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
CType(Me.SplitContainer1,System.ComponentModel.ISupportInitialize).BeginInit
Me.SplitContainer1.Panel1.SuspendLayout
Me.SplitContainer1.Panel2.SuspendLayout
Me.SplitContainer1.SuspendLayout
Me.GroupBox2.SuspendLayout
Me.CmsPlanGrid.SuspendLayout
Me.ToolStrip1.SuspendLayout
Me.SuspendLayout
'
'ToolStripSeparator7
'
Me.ToolStripSeparator7.Name = "ToolStripSeparator7"
Me.ToolStripSeparator7.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugStep
'
Me.TsmiDebugStep.Name = "TsmiDebugStep"
Me.TsmiDebugStep.ShortcutKeys = System.Windows.Forms.Keys.F3
Me.TsmiDebugStep.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStep.Text = "单步执行"
'
'TsmiDebugContinue
'
Me.TsmiDebugContinue.Name = "TsmiDebugContinue"
Me.TsmiDebugContinue.ShortcutKeys = System.Windows.Forms.Keys.F4
Me.TsmiDebugContinue.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugContinue.Text = "继续执行"
'
'ToolStripSeparator8
'
Me.ToolStripSeparator8.Name = "ToolStripSeparator8"
Me.ToolStripSeparator8.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugSetup
'
Me.TsmiDebugSetup.Name = "TsmiDebugSetup"
Me.TsmiDebugSetup.ShortcutKeys = System.Windows.Forms.Keys.F5
Me.TsmiDebugSetup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugSetup.Text = "Setup模块执行"
'
'TsmiDebugMain
'
Me.TsmiDebugMain.Name = "TsmiDebugMain"
Me.TsmiDebugMain.ShortcutKeys = System.Windows.Forms.Keys.F6
Me.TsmiDebugMain.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugMain.Text = "Main模块执行"
'
'TsmiDebugPass
'
Me.TsmiDebugPass.Name = "TsmiDebugPass"
Me.TsmiDebugPass.ShortcutKeys = System.Windows.Forms.Keys.F7
Me.TsmiDebugPass.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugPass.Text = "Pass模块执行"
'
'TsmiDebugFail
'
Me.TsmiDebugFail.Name = "TsmiDebugFail"
Me.TsmiDebugFail.ShortcutKeys = System.Windows.Forms.Keys.F8
Me.TsmiDebugFail.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugFail.Text = "Fail模块执行"
'
'TsmiDebugCleanup
'
Me.TsmiDebugCleanup.Name = "TsmiDebugCleanup"
Me.TsmiDebugCleanup.ShortcutKeys = System.Windows.Forms.Keys.F9
Me.TsmiDebugCleanup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugCleanup.Text = "Cleanup模块执行"
'
'ToolStripSeparator9
'
Me.ToolStripSeparator9.Name = "ToolStripSeparator9"
Me.ToolStripSeparator9.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugNode
'
Me.TsmiDebugNode.Name = "TsmiDebugNode"
Me.TsmiDebugNode.ShortcutKeys = System.Windows.Forms.Keys.F10
Me.TsmiDebugNode.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNode.Text = "节点测试"
'
'TsmiDebugNodeBegin
'
Me.TsmiDebugNodeBegin.Name = "TsmiDebugNodeBegin"
Me.TsmiDebugNodeBegin.ShortcutKeys = System.Windows.Forms.Keys.F11
Me.TsmiDebugNodeBegin.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNodeBegin.Text = "节点开始测试"
'
'StuMain
'
Me.StuMain.Location = New System.Drawing.Point(0, 539)
Me.StuMain.Name = "StuMain"
Me.StuMain.Size = New System.Drawing.Size(984, 22)
Me.StuMain.TabIndex = 11
Me.StuMain.Text = "StatusStrip1"
'
'DlgOpenFile
'
Me.DlgOpenFile.FileName = "OpenFileDialog1"
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 36)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.GroupBox2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.GroupBox1)
Me.SplitContainer1.Size = New System.Drawing.Size(984, 525)
Me.SplitContainer1.SplitterDistance = 444
Me.SplitContainer1.TabIndex = 12
'
'GroupBox2
'
Me.GroupBox2.Controls.Add(Me.LblDesc)
Me.GroupBox2.Controls.Add(Me.GrdStationPlan)
Me.GroupBox2.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox2.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.GroupBox2.Location = New System.Drawing.Point(0, 0)
Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(444, 525)
Me.GroupBox2.TabIndex = 0
Me.GroupBox2.TabStop = false
Me.GroupBox2.Text = "流程参数"
'
'LblDesc
'
Me.LblDesc.Dock = System.Windows.Forms.DockStyle.Bottom
Me.LblDesc.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.LblDesc.Location = New System.Drawing.Point(3, 461)
Me.LblDesc.Name = "LblDesc"
Me.LblDesc.Size = New System.Drawing.Size(438, 61)
Me.LblDesc.TabIndex = 6
'
'GrdStationPlan
'
Me.GrdStationPlan.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
Me.GrdStationPlan.BorderStyle = FlexCell.BorderStyleEnum.None
Me.GrdStationPlan.CheckedImage = Nothing
Me.GrdStationPlan.ContextMenuStrip = Me.CmsPlanGrid
Me.GrdStationPlan.DefaultFont = New System.Drawing.Font("宋体", 9!)
Me.GrdStationPlan.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.GrdStationPlan.GridColor = System.Drawing.Color.FromArgb(CType(CType(192,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(192,Byte),Integer))
Me.GrdStationPlan.Location = New System.Drawing.Point(0, 24)
Me.GrdStationPlan.Name = "GrdStationPlan"
Me.GrdStationPlan.Size = New System.Drawing.Size(441, 434)
Me.GrdStationPlan.TabIndex = 4
Me.GrdStationPlan.UncheckedImage = Nothing
'
'CmsPlanGrid
'
Me.CmsPlanGrid.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MsiCopyNode, Me.MsiCutNode, Me.MsiNodePaste, Me.ToolStripSeparator5, Me.MsiUndo, Me.MsiRedo, Me.ToolStripSeparator6, Me.MsiSaveNodeFile, Me.MsiLoadNodeFile, Me.ToolStripSeparator7, Me.TsmiDebugStart, Me.TsmiDebugEnd, Me.TsmiDebugStep, Me.TsmiDebugContinue, Me.ToolStripSeparator8, Me.TsmiDebugSetup, Me.TsmiDebugMain, Me.TsmiDebugPass, Me.TsmiDebugFail, Me.TsmiDebugCleanup, Me.ToolStripSeparator9, Me.TsmiDebugNode, Me.TsmiDebugNodeBegin})
Me.CmsPlanGrid.Name = "CmsMain"
Me.CmsPlanGrid.Size = New System.Drawing.Size(193, 430)
'
'MsiCopyNode
'
Me.MsiCopyNode.Enabled = false
Me.MsiCopyNode.Name = "MsiCopyNode"
Me.MsiCopyNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCopyNode.Text = "复制"
'
'MsiCutNode
'
Me.MsiCutNode.Enabled = false
Me.MsiCutNode.Name = "MsiCutNode"
Me.MsiCutNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCutNode.Text = "剪切"
'
'MsiNodePaste
'
Me.MsiNodePaste.Enabled = false
Me.MsiNodePaste.Name = "MsiNodePaste"
Me.MsiNodePaste.Size = New System.Drawing.Size(192, 22)
Me.MsiNodePaste.Text = "粘贴"
'
'ToolStripSeparator5
'
Me.ToolStripSeparator5.Name = "ToolStripSeparator5"
Me.ToolStripSeparator5.Size = New System.Drawing.Size(189, 6)
'
'MsiUndo
'
Me.MsiUndo.Enabled = false
Me.MsiUndo.Name = "MsiUndo"
Me.MsiUndo.Size = New System.Drawing.Size(192, 22)
Me.MsiUndo.Text = "撤销"
'
'MsiRedo
'
Me.MsiRedo.Enabled = false
Me.MsiRedo.Name = "MsiRedo"
Me.MsiRedo.Size = New System.Drawing.Size(192, 22)
Me.MsiRedo.Text = "重做"
'
'ToolStripSeparator6
'
Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
Me.ToolStripSeparator6.Size = New System.Drawing.Size(189, 6)
'
'MsiSaveNodeFile
'
Me.MsiSaveNodeFile.Name = "MsiSaveNodeFile"
Me.MsiSaveNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiSaveNodeFile.Text = "另存为节点文件"
'
'MsiLoadNodeFile
'
Me.MsiLoadNodeFile.Name = "MsiLoadNodeFile"
Me.MsiLoadNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiLoadNodeFile.Text = "加载节点文件"
'
'TsmiDebugStart
'
Me.TsmiDebugStart.Name = "TsmiDebugStart"
Me.TsmiDebugStart.ShortcutKeys = System.Windows.Forms.Keys.F1
Me.TsmiDebugStart.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStart.Text = "开始执行"
'
'TsmiDebugEnd
'
Me.TsmiDebugEnd.Name = "TsmiDebugEnd"
Me.TsmiDebugEnd.ShortcutKeys = System.Windows.Forms.Keys.F2
Me.TsmiDebugEnd.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugEnd.Text = "退出执行"
'
'GroupBox1
'
Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox1.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.GroupBox1.Location = New System.Drawing.Point(0, 0)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(536, 525)
Me.GroupBox1.TabIndex = 0
Me.GroupBox1.TabStop = false
Me.GroupBox1.Text = "常规预览"
'
'TsBtnOpen
'
Me.TsBtnOpen.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnOpen.Image = CType(resources.GetObject("TsBtnOpen.Image"),System.Drawing.Image)
Me.TsBtnOpen.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnOpen.Name = "TsBtnOpen"
Me.TsBtnOpen.Size = New System.Drawing.Size(35, 33)
Me.TsBtnOpen.Text = "打开"
Me.TsBtnOpen.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSave
'
Me.TsBtnSave.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnSave.Image = CType(resources.GetObject("TsBtnSave.Image"),System.Drawing.Image)
Me.TsBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSave.Name = "TsBtnSave"
Me.TsBtnSave.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSave.Text = "保存"
Me.TsBtnSave.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator4
'
Me.ToolStripSeparator4.Name = "ToolStripSeparator4"
Me.ToolStripSeparator4.Size = New System.Drawing.Size(6, 36)
'
'TsBtnLoad
'
Me.TsBtnLoad.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnLoad.Image = CType(resources.GetObject("TsBtnLoad.Image"),System.Drawing.Image)
Me.TsBtnLoad.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnLoad.Name = "TsBtnLoad"
Me.TsBtnLoad.Size = New System.Drawing.Size(35, 33)
Me.TsBtnLoad.Text = "重载"
Me.TsBtnLoad.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSaveAs
'
Me.TsBtnSaveAs.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnSaveAs.Image = CType(resources.GetObject("TsBtnSaveAs.Image"),System.Drawing.Image)
Me.TsBtnSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSaveAs.Name = "TsBtnSaveAs"
Me.TsBtnSaveAs.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSaveAs.Text = "导出"
Me.TsBtnSaveAs.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator3
'
Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 36)
'
'ToolStrip1
'
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TsBtnOpen, Me.TsBtnSave, Me.ToolStripSeparator4, Me.TsBtnLoad, Me.TsBtnSaveAs, Me.ToolStripSeparator3})
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(984, 36)
Me.ToolStrip1.TabIndex = 10
Me.ToolStrip1.Text = "ToolStrip1"
'
'ZQ_Mars_P3_FrmStationPlan
'
Me.ClientSize = New System.Drawing.Size(984, 561)
Me.Controls.Add(Me.StuMain)
Me.Controls.Add(Me.SplitContainer1)
Me.Controls.Add(Me.ToolStrip1)
Me.Name = "ZQ_Mars_P3_FrmStationPlan"
Me.SplitContainer1.Panel1.ResumeLayout(false)
Me.SplitContainer1.Panel2.ResumeLayout(false)
CType(Me.SplitContainer1,System.ComponentModel.ISupportInitialize).EndInit
Me.SplitContainer1.ResumeLayout(false)
Me.GroupBox2.ResumeLayout(false)
Me.CmsPlanGrid.ResumeLayout(false)
Me.ToolStrip1.ResumeLayout(false)
Me.ToolStrip1.PerformLayout
Me.ResumeLayout(false)
Me.PerformLayout
End Sub
Friend WithEvents ToolStripSeparator7 As ToolStripSeparator
Friend WithEvents TsmiDebugStep As ToolStripMenuItem
Friend WithEvents TsmiDebugContinue As ToolStripMenuItem
Friend WithEvents ToolStripSeparator8 As ToolStripSeparator
Friend WithEvents TsmiDebugSetup As ToolStripMenuItem
Friend WithEvents TsmiDebugMain As ToolStripMenuItem
Friend WithEvents TsmiDebugPass As ToolStripMenuItem
Friend WithEvents TsmiDebugFail As ToolStripMenuItem
Friend WithEvents TsmiDebugCleanup As ToolStripMenuItem
Friend WithEvents ToolStripSeparator9 As ToolStripSeparator
Friend WithEvents TsmiDebugNode As ToolStripMenuItem
Friend WithEvents TsmiDebugNodeBegin As ToolStripMenuItem
Friend WithEvents StuMain As StatusStrip
Friend WithEvents DlgOpenFile As OpenFileDialog
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents GroupBox2 As GroupBox
Friend WithEvents LblDesc As Label
Friend WithEvents GrdStationPlan As FlexCell.Grid
Friend WithEvents CmsPlanGrid As ContextMenuStrip
Friend WithEvents MsiCopyNode As ToolStripMenuItem
Friend WithEvents MsiCutNode As ToolStripMenuItem
Friend WithEvents MsiNodePaste As ToolStripMenuItem
Friend WithEvents ToolStripSeparator5 As ToolStripSeparator
Friend WithEvents MsiUndo As ToolStripMenuItem
Friend WithEvents MsiRedo As ToolStripMenuItem
Friend WithEvents ToolStripSeparator6 As ToolStripSeparator
Friend WithEvents MsiSaveNodeFile As ToolStripMenuItem
Friend WithEvents MsiLoadNodeFile As ToolStripMenuItem
Friend WithEvents TsmiDebugStart As ToolStripMenuItem
Friend WithEvents TsmiDebugEnd As ToolStripMenuItem
Friend WithEvents GroupBox1 As GroupBox
Friend WithEvents TsBtnOpen As ToolStripButton
Friend WithEvents TsBtnSave As ToolStripButton
Friend WithEvents ToolStripSeparator4 As ToolStripSeparator
Friend WithEvents TsBtnLoad As ToolStripButton
Friend WithEvents TsBtnSaveAs As ToolStripButton
Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
Friend WithEvents ToolStrip1 As ToolStrip
End Class

View File

@@ -0,0 +1,185 @@
<?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="StuMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 93</value>
</metadata>
<metadata name="DlgOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>118, 93</value>
</metadata>
<metadata name="CmsPlanGrid.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>243, 93</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="TsBtnOpen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHqSURBVGhD7Zm9Tt1AEEYvNDxCArwSXZDSpAwiFQ+HEA2Q
dPmpeAl4AaALEnxTXDSate/xeHcvkeIjnerzN97F9rWEVwsLC6PsyFP5Rz7Jl07ey0+yKQfyuxw6YQ//
ys+yCbvyhxw6UU+f5RdZzTc5dIJt2ORK2D3vh17ID3KNz8wabLG2aD+vehOP0g/8KD0+M2tpvgk/yIxQ
PodjGTcx+5nwQ8wI5XNptgk/wIxQXkOTTfiyGaG8lupN+KIZiflc7Q18JIcYe7AnvbF9yYzEvMY7OcbQ
JjYd/4YvmBEbEo+ZKy3INhE7CBXsstvlj8dl3XQLeWIPSRc6k15PutCZ9HrShc6k15MudCa9nnShM+n1
pAudSa+HCq1+RqNjP6vxOIQKLV9k0aEXWzwGoULMWxuhvIAKMW9thPICKlCeheZRXkAFyrPQPMoLqEB5
FppHeQEVKM9C8ygvoALlWWge5QVUoDwLzaO8gAqUZ6F5lBdQgfIsNI/yAipQnoXmUV5ABcqz0DzKCx6k
L/j/TBs+M2vZNM8+tPjM1ob8lr50LvflGp+ZtYzNs3NeSp/9ksiZ9KV/ya8S2ZO3cmjAe3ol7cPjJA7l
jRwa9B5eS38bT8J2eyJ/yvjVZhvaA2vntttm8l9+YeH/YrV6BfNWMy9RUhK1AAAAAElFTkSuQmCC
</value>
</data>
<data name="TsBtnLoad.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSaveAs.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADQSURBVEhL5ZYxDgFBGEbnCE4gjuAcCnEER3AER9BpVWqV
QqcTlSOIUkVFx/fWSMYsyfx/FCu+5CX7ZWfmTbKT3Q1J+mLnYCmKMhQ3sRKLQg5iL4ryFHSqVpaZ+H3B
UQwy2qIWr4A5OaxVi0fATrsJPfFVQR7m/pGA42eBmARc8yrgpMxj38aewhjuEbNg/LgMLUEfVe01jGmu
4CpO4hz7JfYUxrgFGzER09jXsacwxi34/WdggZgE7MwCMQk8aYbA8tHPYe5Hgfe35R2spYRwB61XwcSY
NxMjAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>370, 93</value>
</metadata>
</root>

View File

@@ -0,0 +1,489 @@
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Imports UTS_Core.UTSModule.Station.StationPackagePlan
Imports UTS_Core.UTSModule.Test.StatusMonitor
Public Class ZQ_Mars_P3_FrmStationPlan
' Implements IProcessFileChanged
Implements IProcessStation
Implements IProductionLine
Private _utsApp As UtsAppForm
Private _stationPlan As StationPackagePlan
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
Public Sub utsbctfilechanged
'For Each observer As IProcessStation In _observerList
' observer.StationChanged()
' Next
End Sub
''' <summary>
''' 站位变更代码
''' </summary>
Public Sub Station_Changed() Implements IProcessStation.StationChanged
ApplicationLog.WriteInfoLog($"编辑页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
Try
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
Catch ex As Exception
MsgBox($"加载项目流程失败,{ex.Message}")
End Try
InitGrid(_stationPlan)
ApplicationLog.WriteInfoLog($"编辑页面站位变更完成。")
End Sub
''' <summary>
''' 产线变化代码
''' </summary>
Public Sub ProductionLineChanged() Implements IProductionLine.ProductionLineChanged
ApplicationLog.WriteInfoLog($"编辑页面生产线变更中。")
ApplicationLog.WriteInfoLog($"编辑页面生产线变更完成。")
End Sub
Private Sub FrmStationPlan_Load(sender As Object, e As EventArgs) Handles Me.Load
ApplicationLog.WriteInfoLog($"编辑页面加载中。")
'初始化UTS窗体信息,失败则关闭窗体
If InitializeUtsApp() = False Then Return
'初始化窗体页面
InitializeForm()
ApplicationLog.WriteInfoLog($"编辑页面加载完成。")
End Sub
Private Function InitializeUtsApp() As Boolean
_utsApp = UtsAppForm.CreateSingleton()
_utsApp.AddStatisticsObserver(Me)
Try
If _utsApp.IsInitialized = False Then
_utsApp.Initialize(ProcessStation.StationTypeEnum.Package) 'Todo:可根据需要限定可选站位
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"初始化窗体失败,原因:{ex.Message}!")
MsgBox($"初始化窗体失败,原因:{ex.Message}")
Close()
Return False
End Try
Return True
End Function
Private Sub InitializeForm()
InitGrid(_stationPlan)
End Sub
Private Sub TsBtnOpen_Click(sender As Object, e As EventArgs) Handles TsBtnOpen.Click
Using xml As New OpenFileDialog
xml.Filter = $"流程文件(*.xml)|*.xml"
If xml.ShowDialog() = DialogResult.OK Then
ApplicationLog.WriteInfoLog($"编辑页面执行流程正在加载{xml.FileName}")
LoadTreeViewFormXml(xml.FileName)
ApplicationLog.WriteInfoLog($"编辑页面执行流程加载完成。")
End If
End Using
End Sub
Private Sub TsBtnLoad_Click(sender As Object, e As EventArgs) Handles TsBtnLoad.Click
If MsgBox("重载会将流程返回为上一次保存的流程状态,是否继续", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
ApplicationLog.WriteInfoLog($"编辑页面执行流程重载中。")
LoadTreeViewFormXml()
ApplicationLog.WriteInfoLog($"编辑页面执行流程重载完成。")
End If
End Sub
Private Sub TsBtnSave_Click(sender As Object, e As EventArgs) Handles TsBtnSave.Click
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存中。")
UpdateGrid(_stationPlan)
ExportTreeViewToXml()
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存完成。")
End Sub
''' <summary>
''' 读取XML,加载树状视图
''' </summary>
Private Sub LoadTreeViewFormXml()
Dim revStationPlanPath As String = $"{UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)}\Main.xml"
Try
_stationPlan.LoadFile(revStationPlanPath)
InitGrid(_stationPlan)
If StationEditStatusMonitor.StationEditStatus <> StationEditStatusMonitor.StationEditStatusEnum.Saved Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"加载测试站流程发生错误,原因:{ex.Message}")
MsgBox($"加载测试站流程发生错误,原因:{ex.Message}")
_stationPlan.CreateStationPlan()
End Try
End Sub
''' <summary>
''' 读取XML,加载树状视图
''' </summary>
Private Sub LoadTreeViewFormXml(revStationPlanPath As String)
Try
_stationPlan.LoadFile(revStationPlanPath)
InitGrid(_stationPlan)
If StationEditStatusMonitor.StationEditStatus <> StationEditStatusMonitor.StationEditStatusEnum.Saved Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"加载测试站流程发生错误,原因:{ex.Message}")
MsgBox($"加载测试站流程发生错误,原因:{ex.Message}")
_stationPlan.CreateStationPlan()
End Try
End Sub
''' <summary>
''' 将树状视图导出为Xml
''' </summary>
Private Sub ExportTreeViewToXml()
'保存至项目文件
Dim revStationPlanPath As String = $"{UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)}\Main.xml"
_stationPlan.SaveFile(revStationPlanPath)
'备份至临时文件
Dim tempPath As String = $"{UtsPath.StationDesignDirPath()}\Main.xml"
_stationPlan.SaveFile(tempPath)
If StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
End Sub
Private Sub TsBtnSaveAs_Click(sender As Object, e As EventArgs) Handles TsBtnSaveAs.Click
Using dlg As New SaveFileDialog
dlg.Filter = "Excel 文件(*.xls)|*.xls|CSV 文件(*.csv)|*.csv|PDF 文件(*.pdf)|*.pdf"
dlg.AddExtension = True
If dlg.ShowDialog <> DialogResult.OK Then Return
Cursor = Cursors.WaitCursor
ApplicationLog.WriteInfoLog($"编辑页面执行流程导出中。")
Try
Select Case dlg.FilterIndex
Case 1
GrdStationPlan.ExportToExcel(dlg.FileName, True, True)
Case 2
GrdStationPlan.ExportToCSV(dlg.FileName, True, True)
Case 3
GrdStationPlan.ExportToPDF(dlg.FileName)
End Select
ApplicationLog.WriteInfoLog($"编辑页面执行流程导出完成。")
Catch ex As Exception
ApplicationLog.WriteErrorLog($"编辑页面执行流程导出失败,原因:{ex.Message}")
MsgBox($"编辑页面执行流程导出失败,原因:{ex.Message}")
End Try
Cursor = Cursors.Arrow
End Using
End Sub
#Region "Package表格"
Private Sub InitGrid(Optional stationplan As StationPackagePlan = Nothing)
With GrdStationPlan
.AutoRedraw = False
.NewFile()
.BorderStyle = FlexCell.BorderStyleEnum.None
.Cols = ColNames.Max
.Rows = RowItems.Max
.ExtendLastCol = True
.DisplayRowNumber = True
.Cell(0, ColNames.Item).Text = "Item"
.Cell(0, ColNames.Value).Text = "Value"
.Column(ColNames.Item).Width = 200
.Column(ColNames.Item).Locked = True
.DefaultRowHeight = 20
.DefaultFont = New Font("微软雅黑", 10)
For i As Integer = 1 To RowItems.Max - 1
.Cell(i, ColNames.Item).Text = [Enum].GetName(GetType(RowItems), i)
Next
'.Cell(RowItems.CheckSnTested, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.CheckSnPackaged, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.CheckSnMO, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.MissingQuantity, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
'.Cell(RowItems.BarCodeType, ColNames.Value).CellType = FlexCell.CellTypeEnum.ComboBox
.Cell(RowItems.AutoPrint, ColNames.Value).CellType = FlexCell.CellTypeEnum.CheckBox
.Cell(RowItems.BoxMumEditKey, ColNames.Item).Text = "MaxNum"
'.Cell(RowItems.ErrorSound, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
'.Cell(RowItems.TemplateFile, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
'.Cell(RowItems.CompanyLogo, ColNames.Value).CellType = FlexCell.CellTypeEnum.Button
FillGrid(stationplan)
.AutoRedraw = True
.Refresh()
End With
End Sub
Private Sub FillGrid(stationplan As StationPackagePlan)
If stationplan Is Nothing Then Return
With GrdStationPlan
'.Cell(RowItems.CheckSnTested, ColNames.Value).Text = stationplan.CheckSnTested.ToString
'.Cell(RowItems.CheckSnPackaged, ColNames.Value).Text = stationplan.CheckSnPackaged.ToString
'.Cell(RowItems.CheckSnMO, ColNames.Value).Text = stationplan.CheckSnMO.ToString
'.Cell(RowItems.PictureCount, ColNames.Value).Text = stationplan.PictureCount.ToString
'.Cell(RowItems.UnlockKey, ColNames.Value).Text = stationplan.UnlockKey
'.Cell(RowItems.BarCodeType, ColNames.Value).Text = stationplan.BarCodeType.ToString
'.Cell(RowItems.MissingQuantity, ColNames.Value).Text = stationplan.MissingQuantity.ToString
'.Cell(RowItems.MissingQuantityKey, ColNames.Value).Text = stationplan.MissingQuantityKey
.Cell(RowItems.AutoPrint, ColNames.Value).Text = stationplan.AutoPrint.ToString
'.Cell(RowItems.ErrorSound, ColNames.Value).Text = stationplan.ErrorSound
'.Cell(RowItems.TemplateFile, ColNames.Value).Text = stationplan.TemplateFile
.Cell(RowItems.BoxMumEditKey, ColNames.Value).Text = stationplan.BoxMumEditKey
'.Cell(RowItems.CompanyLogo, ColNames.Value).Text = stationplan.CompanyLogo
'.Cell(RowItems.CompanyName, ColNames.Value).Text = stationplan.CompanyName
'.Cell(RowItems.BoxNumText, ColNames.Value).Text = stationplan.BoxNumText
'.Cell(RowItems.BoxBarCode, ColNames.Value).Text = stationplan.BoxBarCode
End With
If StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
End Sub
Private Sub UpdateGrid(stationplan As StationPackagePlan)
If _stationPlan Is Nothing Then Return
With GrdStationPlan
'If [Enum].TryParse(.Cell(RowItems.CheckSnTested, ColNames.Value).Text, stationplan.CheckSnTested) = False Then
' MsgBox("更新CheckSnTested失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.CheckSnPackaged, ColNames.Value).Text, stationplan.CheckSnPackaged) = False Then
' MsgBox("更新CheckSnPackaged失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.CheckSnMO, ColNames.Value).Text, stationplan.CheckSnMO) = False Then
' MsgBox("更新CheckSnMO失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.BarCodeType, ColNames.Value).Text, stationplan.BarCodeType) = False Then
' MsgBox("更新BarCodeType失败!")
' Return
'End If
'If [Enum].TryParse(.Cell(RowItems.MissingQuantity, ColNames.Value).Text, stationplan.MissingQuantity) = False Then
' MsgBox("更新MissingQuantity失败!")
' Return
'End If
'stationplan.PictureCount = .Cell(RowItems.PictureCount, ColNames.Value).IntegerValue
'stationplan.UnlockKey = .Cell(RowItems.UnlockKey, ColNames.Value).Text
'stationplan.MissingQuantityKey = .Cell(RowItems.MissingQuantityKey, ColNames.Value).Text
stationplan.AutoPrint = .Cell(RowItems.AutoPrint, ColNames.Value).BooleanValue
'stationplan.ErrorSound = .Cell(RowItems.ErrorSound, ColNames.Value).Text
' stationplan.TemplateFile = .Cell(RowItems.TemplateFile, ColNames.Value).Text
stationplan.BoxMumEditKey = .Cell(RowItems.BoxMumEditKey, ColNames.Value).Text
'stationplan.CompanyLogo = .Cell(RowItems.CompanyLogo, ColNames.Value).Text
'stationplan.CompanyName = .Cell(RowItems.CompanyName, ColNames.Value).Text
'stationplan.BoxNumText = .Cell(RowItems.BoxNumText, ColNames.Value).Text
'stationplan.BoxBarCode = .Cell(RowItems.BoxBarCode, ColNames.Value).Text
End With
End Sub
Private Sub GrdStationPlan_ButtonClick(Sender As Object, e As FlexCell.Grid.ButtonClickEventArgs) Handles GrdStationPlan.ButtonClick
Select Case e.Row
'Case RowItems.ErrorSound
' DlgOpenFile.Filter = "图像资源 (*.jpg;*.png;*.gif;*.ico)|*.jpg;*.png;*.gif;*.ico"
'Case RowItems.TemplateFile
' DlgOpenFile.Filter = "模板资源 (*.btw)|*.btw"
' 'Case RowItems.CompanyLogo
' DlgOpenFile.Filter = "图像资源 (*.jpg;*.png;*.gif;*.ico)|*.jpg;*.png;*.gif;*.ico"
End Select
DlgOpenFile.CheckFileExists = True
DlgOpenFile.CheckPathExists = True
If DlgOpenFile.ShowDialog() <> DialogResult.OK Then Return
Dim fileName As String = $"{DlgOpenFile.SafeFileName}"
Dim fileDir As String = UtsPath.GetStationPacketResourceDirPath(_stationPlan.ParentPacket.Name)
Dim fliePath As String = $"{fileDir}\{fileName}"
GrdStationPlan.Cell(e.Row, ColNames.Value).Text = fileName
'导入文件
Try
IO.File.Copy(DlgOpenFile.FileName, fliePath, True)
Catch ex As Exception
MsgBox($"导入资源文件失败,{ex.Message}")
End Try
End Sub
Private Sub GrdStationPlan_ComboDropDown(Sender As Object, e As FlexCell.Grid.ComboDropDownEventArgs) Handles GrdStationPlan.ComboDropDown
GrdStationPlan.ComboBox(0).Items.Clear()
Select Case e.Row
'Case RowItems.CheckSnTested
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.CheckSnPackaged
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.CheckSnMO
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(CheckStatus)))
'Case RowItems.MissingQuantity
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(MissCountStatus)))
'Case RowItems.BarCodeType
' GrdStationPlan.ComboBox(0).Items.AddRange([Enum].GetNames(GetType(BarcodeTypes)))
End Select
End Sub
Private Sub GrdStationPlan_CellChange(Sender As Object, e As FlexCell.Grid.CellChangeEventArgs) Handles GrdStationPlan.CellChange
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed
End Sub
Enum ColNames
SN
Item
Value
Max
End Enum
Enum RowItems
''' <summary>固定行</summary>
<System.ComponentModel.Description("固定行")>
SN
'''' <summary>校验条码未测试后处理方式</summary>
'<System.ComponentModel.Description("校验条码未测试后处理方式")>
'CheckSnTested
'''' <summary>校验条码已参与包装后处理方式</summary>
'<System.ComponentModel.Description("校验条码已参与包装后处理方式")>
'CheckSnPackaged
'''' <summary>校验条码不属于指定MO后处理方式</summary>
'<System.ComponentModel.Description("校验条码不属于指定MO后处理方式")>
'CheckSnMO
'''' <summary>拍摄保存图像的数量</summary>
'<System.ComponentModel.Description("拍摄保存图像的数量")>
'PictureCount
'''' <summary>解锁密码</summary>
'<System.ComponentModel.Description("解锁密码")>
'UnlockKey
'''' <summary>条码类型</summary>
'<System.ComponentModel.Description("条码类型")>
'BarCodeType
'''' <summary>缺失条码数量后的处理方式</summary>
'<System.ComponentModel.Description("缺失条码数量后的处理方式")>
'MissingQuantity
'''' <summary>缺失条码数量后的解锁密码</summary>
'<System.ComponentModel.Description("缺失条码数量后的解锁密码")>
'MissingQuantityKey
''' <summary>是否自动打印</summary>
<System.ComponentModel.Description("是否自动录入")>
AutoPrint
'''' <summary>发生错误后报警文件</summary>
'<System.ComponentModel.Description("发生错误后报警文件")>
'ErrorSound
'''' <summary>模板文件名</summary>
'<System.ComponentModel.Description("模板文件名")>
'TemplateFile
''' <summary>箱号编辑密码</summary>
<System.ComponentModel.Description("箱号编辑密码")>
BoxMumEditKey
'''' <summary>公司Logo文件</summary>
'<System.ComponentModel.Description("公司Logo文件")>
'CompanyLogo
'''' <summary>公司名称</summary>
'<System.ComponentModel.Description("公司名称")>
'CompanyName
'''' <summary>箱号规则</summary>
'<System.ComponentModel.Description("箱号规则")>
'BoxNumText
'''' <summary>箱号条码</summary>
'<System.ComponentModel.Description("箱号条码")>
'BoxBarCode
Max
End Enum
Private Sub GrdStationPlan_SelChange(Sender As Object, e As FlexCell.Grid.SelChangeEventArgs) Handles GrdStationPlan.SelChange
If e.FirstRow <= RowItems.SN OrElse e.FirstRow > GrdStationPlan.Rows - 1 Then Return
Dim row As Integer = e.FirstRow
Dim a As RowItems
If [Enum].TryParse(row.ToString, a) Then
LblDesc.Text = $"Row:{row}{vbCrLf}Desc:{GetEnumDescription(a)}"
Else
LblDesc.Text = $"Row:{row}{vbCrLf}Desc:无说明"
End If
End Sub
Public Function GetEnumDescription(enumValue As RowItems) As String
Dim str As String = enumValue.ToString()
Dim field As System.Reflection.FieldInfo = enumValue.GetType().GetField(str)
Dim objs() As Object = field.GetCustomAttributes(GetType(System.ComponentModel.DescriptionAttribute), False)
If objs Is Nothing OrElse objs.Length = 0 Then Return str
Dim da As System.ComponentModel.DescriptionAttribute = CType(objs(0), ComponentModel.DescriptionAttribute)
Return da.Description
End Function
#End Region
End Class

View File

@@ -0,0 +1,485 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Mars_P3_FrmStationTest
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.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer2 = New System.Windows.Forms.SplitContainer()
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
Me.SplitContainer3 = New System.Windows.Forms.SplitContainer()
Me.Label2 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.TextBox2 = New System.Windows.Forms.TextBox()
Me.TextBox1 = New System.Windows.Forms.TextBox()
Me.SplitContainer4 = New System.Windows.Forms.SplitContainer()
Me.TreeViewEx1 = New UTS_Core.UTSModule.Station.TreeViewEx()
Me.lab1 = New System.Windows.Forms.Label()
Me.txt_inputnum = New System.Windows.Forms.TextBox()
Me.Button2 = New System.Windows.Forms.Button()
Me.Button1 = New System.Windows.Forms.Button()
Me.Label8 = New System.Windows.Forms.Label()
Me.txt_unitweight = New System.Windows.Forms.TextBox()
Me.Label7 = New System.Windows.Forms.Label()
Me.txt_labstring = New System.Windows.Forms.TextBox()
Me.Label6 = New System.Windows.Forms.Label()
Me.txt_SnCode = New System.Windows.Forms.TextBox()
Me.Label5 = New System.Windows.Forms.Label()
Me.txt_colorbox = New System.Windows.Forms.TextBox()
Me.Label4 = New System.Windows.Forms.Label()
Me.txt_MacCode = New System.Windows.Forms.TextBox()
Me.SplitContainer5 = New System.Windows.Forms.SplitContainer()
Me.lab_Test_cnt = New System.Windows.Forms.Label()
Me.Label3 = New System.Windows.Forms.Label()
Me.lab_test_num = New System.Windows.Forms.Label()
Me.Label9 = New System.Windows.Forms.Label()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer2.Panel1.SuspendLayout()
Me.SplitContainer2.Panel2.SuspendLayout()
Me.SplitContainer2.SuspendLayout()
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer3.Panel1.SuspendLayout()
Me.SplitContainer3.Panel2.SuspendLayout()
Me.SplitContainer3.SuspendLayout()
CType(Me.SplitContainer4, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer4.Panel1.SuspendLayout()
Me.SplitContainer4.Panel2.SuspendLayout()
Me.SplitContainer4.SuspendLayout()
CType(Me.SplitContainer5, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer5.Panel1.SuspendLayout()
Me.SplitContainer5.Panel2.SuspendLayout()
Me.SplitContainer5.SuspendLayout()
Me.SuspendLayout()
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.SplitContainer3)
Me.SplitContainer1.Size = New System.Drawing.Size(984, 561)
Me.SplitContainer1.SplitterDistance = 307
Me.SplitContainer1.TabIndex = 0
'
'SplitContainer2
'
Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer2.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer2.Name = "SplitContainer2"
Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer2.Panel1
'
Me.SplitContainer2.Panel1.Controls.Add(Me.SplitContainer5)
'
'SplitContainer2.Panel2
'
Me.SplitContainer2.Panel2.Controls.Add(Me.RichTextBox1)
Me.SplitContainer2.Size = New System.Drawing.Size(307, 561)
Me.SplitContainer2.SplitterDistance = 177
Me.SplitContainer2.TabIndex = 0
'
'RichTextBox1
'
Me.RichTextBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.RichTextBox1.Location = New System.Drawing.Point(0, 0)
Me.RichTextBox1.Name = "RichTextBox1"
Me.RichTextBox1.Size = New System.Drawing.Size(307, 380)
Me.RichTextBox1.TabIndex = 1
Me.RichTextBox1.Text = ""
'
'SplitContainer3
'
Me.SplitContainer3.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer3.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer3.Name = "SplitContainer3"
Me.SplitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer3.Panel1
'
Me.SplitContainer3.Panel1.Controls.Add(Me.Label2)
Me.SplitContainer3.Panel1.Controls.Add(Me.Label1)
Me.SplitContainer3.Panel1.Controls.Add(Me.TextBox2)
Me.SplitContainer3.Panel1.Controls.Add(Me.TextBox1)
'
'SplitContainer3.Panel2
'
Me.SplitContainer3.Panel2.Controls.Add(Me.SplitContainer4)
Me.SplitContainer3.Size = New System.Drawing.Size(673, 561)
Me.SplitContainer3.SplitterDistance = 177
Me.SplitContainer3.TabIndex = 0
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label2.Location = New System.Drawing.Point(3, 107)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(107, 27)
Me.Label2.TabIndex = 3
Me.Label2.Text = "彩盒码:"
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Font = New System.Drawing.Font("宋体", 20.0!)
Me.Label1.Location = New System.Drawing.Point(3, 32)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(107, 27)
Me.Label1.TabIndex = 2
Me.Label1.Text = "装箱码:"
'
'TextBox2
'
Me.TextBox2.Font = New System.Drawing.Font("宋体", 29.0!)
Me.TextBox2.Location = New System.Drawing.Point(116, 90)
Me.TextBox2.Name = "TextBox2"
Me.TextBox2.Size = New System.Drawing.Size(525, 52)
Me.TextBox2.TabIndex = 1
'
'TextBox1
'
Me.TextBox1.Font = New System.Drawing.Font("宋体", 29.0!)
Me.TextBox1.Location = New System.Drawing.Point(116, 32)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(525, 52)
Me.TextBox1.TabIndex = 0
'
'SplitContainer4
'
Me.SplitContainer4.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer4.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer4.Name = "SplitContainer4"
'
'SplitContainer4.Panel1
'
Me.SplitContainer4.Panel1.Controls.Add(Me.TreeViewEx1)
'
'SplitContainer4.Panel2
'
Me.SplitContainer4.Panel2.Controls.Add(Me.lab1)
Me.SplitContainer4.Panel2.Controls.Add(Me.txt_inputnum)
Me.SplitContainer4.Panel2.Controls.Add(Me.Button2)
Me.SplitContainer4.Panel2.Controls.Add(Me.Button1)
Me.SplitContainer4.Panel2.Controls.Add(Me.Label8)
Me.SplitContainer4.Panel2.Controls.Add(Me.txt_unitweight)
Me.SplitContainer4.Panel2.Controls.Add(Me.Label7)
Me.SplitContainer4.Panel2.Controls.Add(Me.txt_labstring)
Me.SplitContainer4.Panel2.Controls.Add(Me.Label6)
Me.SplitContainer4.Panel2.Controls.Add(Me.txt_SnCode)
Me.SplitContainer4.Panel2.Controls.Add(Me.Label5)
Me.SplitContainer4.Panel2.Controls.Add(Me.txt_colorbox)
Me.SplitContainer4.Panel2.Controls.Add(Me.Label4)
Me.SplitContainer4.Panel2.Controls.Add(Me.txt_MacCode)
Me.SplitContainer4.Size = New System.Drawing.Size(673, 380)
Me.SplitContainer4.SplitterDistance = 320
Me.SplitContainer4.TabIndex = 0
'
'TreeViewEx1
'
Me.TreeViewEx1.Dock = System.Windows.Forms.DockStyle.Fill
Me.TreeViewEx1.Location = New System.Drawing.Point(0, 0)
Me.TreeViewEx1.Name = "TreeViewEx1"
Me.TreeViewEx1.Size = New System.Drawing.Size(320, 380)
Me.TreeViewEx1.TabIndex = 0
'
'lab1
'
Me.lab1.AutoSize = True
Me.lab1.Font = New System.Drawing.Font("宋体", 10.0!)
Me.lab1.Location = New System.Drawing.Point(32, 21)
Me.lab1.Name = "lab1"
Me.lab1.Size = New System.Drawing.Size(70, 14)
Me.lab1.TabIndex = 21
Me.lab1.Text = "装载数量:"
Me.lab1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_inputnum
'
Me.txt_inputnum.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_inputnum.Location = New System.Drawing.Point(108, 18)
Me.txt_inputnum.Name = "txt_inputnum"
Me.txt_inputnum.ReadOnly = True
Me.txt_inputnum.Size = New System.Drawing.Size(236, 23)
Me.txt_inputnum.TabIndex = 20
'
'Button2
'
Me.Button2.Location = New System.Drawing.Point(232, 285)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(89, 52)
Me.Button2.TabIndex = 19
Me.Button2.Text = "录入箱体信息"
Me.Button2.UseVisualStyleBackColor = True
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(80, 285)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(89, 52)
Me.Button1.TabIndex = 18
Me.Button1.Text = "删除节点信息"
Me.Button1.UseVisualStyleBackColor = True
'
'Label8
'
Me.Label8.AutoSize = True
Me.Label8.Font = New System.Drawing.Font("宋体", 10.0!)
Me.Label8.Location = New System.Drawing.Point(18, 212)
Me.Label8.Name = "Label8"
Me.Label8.Size = New System.Drawing.Size(84, 14)
Me.Label8.TabIndex = 17
Me.Label8.Text = "UnitWeigth:"
Me.Label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_unitweight
'
Me.txt_unitweight.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_unitweight.Location = New System.Drawing.Point(108, 209)
Me.txt_unitweight.Name = "txt_unitweight"
Me.txt_unitweight.ReadOnly = True
Me.txt_unitweight.Size = New System.Drawing.Size(236, 23)
Me.txt_unitweight.TabIndex = 16
'
'Label7
'
Me.Label7.AutoSize = True
Me.Label7.Font = New System.Drawing.Font("宋体", 10.0!)
Me.Label7.Location = New System.Drawing.Point(4, 176)
Me.Label7.Name = "Label7"
Me.Label7.Size = New System.Drawing.Size(98, 14)
Me.Label7.TabIndex = 15
Me.Label7.Text = "label_string:"
Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_labstring
'
Me.txt_labstring.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_labstring.Location = New System.Drawing.Point(110, 173)
Me.txt_labstring.Name = "txt_labstring"
Me.txt_labstring.ReadOnly = True
Me.txt_labstring.Size = New System.Drawing.Size(236, 23)
Me.txt_labstring.TabIndex = 14
'
'Label6
'
Me.Label6.AutoSize = True
Me.Label6.Font = New System.Drawing.Font("宋体", 10.0!)
Me.Label6.Location = New System.Drawing.Point(46, 98)
Me.Label6.Name = "Label6"
Me.Label6.Size = New System.Drawing.Size(56, 14)
Me.Label6.TabIndex = 13
Me.Label6.Text = "SnCode:"
Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_SnCode
'
Me.txt_SnCode.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_SnCode.Location = New System.Drawing.Point(110, 95)
Me.txt_SnCode.Name = "txt_SnCode"
Me.txt_SnCode.ReadOnly = True
Me.txt_SnCode.Size = New System.Drawing.Size(236, 23)
Me.txt_SnCode.TabIndex = 12
'
'Label5
'
Me.Label5.AutoSize = True
Me.Label5.Font = New System.Drawing.Font("宋体", 10.0!)
Me.Label5.Location = New System.Drawing.Point(4, 137)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(98, 14)
Me.Label5.TabIndex = 11
Me.Label5.Text = "ColorBoxCode:"
Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_colorbox
'
Me.txt_colorbox.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_colorbox.Location = New System.Drawing.Point(110, 134)
Me.txt_colorbox.Name = "txt_colorbox"
Me.txt_colorbox.ReadOnly = True
Me.txt_colorbox.Size = New System.Drawing.Size(236, 23)
Me.txt_colorbox.TabIndex = 10
'
'Label4
'
Me.Label4.AutoSize = True
Me.Label4.Font = New System.Drawing.Font("宋体", 10.0!)
Me.Label4.Location = New System.Drawing.Point(39, 59)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(63, 14)
Me.Label4.TabIndex = 9
Me.Label4.Text = "MacCode:"
Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'txt_MacCode
'
Me.txt_MacCode.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.txt_MacCode.Location = New System.Drawing.Point(110, 56)
Me.txt_MacCode.Name = "txt_MacCode"
Me.txt_MacCode.ReadOnly = True
Me.txt_MacCode.Size = New System.Drawing.Size(236, 23)
Me.txt_MacCode.TabIndex = 4
'
'SplitContainer5
'
Me.SplitContainer5.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer5.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer5.Name = "SplitContainer5"
'
'SplitContainer5.Panel1
'
Me.SplitContainer5.Panel1.Controls.Add(Me.lab_Test_cnt)
Me.SplitContainer5.Panel1.Controls.Add(Me.Label3)
'
'SplitContainer5.Panel2
'
Me.SplitContainer5.Panel2.Controls.Add(Me.lab_test_num)
Me.SplitContainer5.Panel2.Controls.Add(Me.Label9)
Me.SplitContainer5.Size = New System.Drawing.Size(307, 177)
Me.SplitContainer5.SplitterDistance = 136
Me.SplitContainer5.TabIndex = 2
'
'lab_Test_cnt
'
Me.lab_Test_cnt.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lab_Test_cnt.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_Test_cnt.Font = New System.Drawing.Font("宋体", 36.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.lab_Test_cnt.Location = New System.Drawing.Point(0, 71)
Me.lab_Test_cnt.Name = "lab_Test_cnt"
Me.lab_Test_cnt.Size = New System.Drawing.Size(136, 106)
Me.lab_Test_cnt.TabIndex = 14
Me.lab_Test_cnt.Text = "0个"
Me.lab_Test_cnt.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Label3
'
Me.Label3.BackColor = System.Drawing.SystemColors.ActiveCaption
Me.Label3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.Label3.Dock = System.Windows.Forms.DockStyle.Top
Me.Label3.Font = New System.Drawing.Font("宋体", 16.0!, System.Drawing.FontStyle.Bold)
Me.Label3.Location = New System.Drawing.Point(0, 0)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(136, 71)
Me.Label3.TabIndex = 13
Me.Label3.Text = "总测试数量"
Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'lab_test_num
'
Me.lab_test_num.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lab_test_num.Dock = System.Windows.Forms.DockStyle.Fill
Me.lab_test_num.Font = New System.Drawing.Font("宋体", 36.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.lab_test_num.Location = New System.Drawing.Point(0, 71)
Me.lab_test_num.Name = "lab_test_num"
Me.lab_test_num.Size = New System.Drawing.Size(167, 106)
Me.lab_test_num.TabIndex = 15
Me.lab_test_num.Text = "0个"
Me.lab_test_num.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Label9
'
Me.Label9.BackColor = System.Drawing.SystemColors.GradientActiveCaption
Me.Label9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.Label9.Dock = System.Windows.Forms.DockStyle.Top
Me.Label9.Font = New System.Drawing.Font("宋体", 16.0!, System.Drawing.FontStyle.Bold)
Me.Label9.Location = New System.Drawing.Point(0, 0)
Me.Label9.Name = "Label9"
Me.Label9.Size = New System.Drawing.Size(167, 71)
Me.Label9.TabIndex = 14
Me.Label9.Text = "本次启动测试数量"
Me.Label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'ZQ_Mars_P3_FrmStationTest
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(984, 561)
Me.Controls.Add(Me.SplitContainer1)
Me.Name = "ZQ_Mars_P3_FrmStationTest"
Me.Text = "ZQ_Mars_P3_FrmStationTest"
Me.SplitContainer1.Panel1.ResumeLayout(False)
Me.SplitContainer1.Panel2.ResumeLayout(False)
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer1.ResumeLayout(False)
Me.SplitContainer2.Panel1.ResumeLayout(False)
Me.SplitContainer2.Panel2.ResumeLayout(False)
CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer2.ResumeLayout(False)
Me.SplitContainer3.Panel1.ResumeLayout(False)
Me.SplitContainer3.Panel1.PerformLayout()
Me.SplitContainer3.Panel2.ResumeLayout(False)
CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer3.ResumeLayout(False)
Me.SplitContainer4.Panel1.ResumeLayout(False)
Me.SplitContainer4.Panel2.ResumeLayout(False)
Me.SplitContainer4.Panel2.PerformLayout()
CType(Me.SplitContainer4, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer4.ResumeLayout(False)
Me.SplitContainer5.Panel1.ResumeLayout(False)
Me.SplitContainer5.Panel2.ResumeLayout(False)
CType(Me.SplitContainer5, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer5.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents SplitContainer2 As SplitContainer
Friend WithEvents SplitContainer3 As SplitContainer
Friend WithEvents TextBox2 As TextBox
Friend WithEvents TextBox1 As TextBox
Friend WithEvents Label2 As Label
Friend WithEvents Label1 As Label
Friend WithEvents SplitContainer4 As SplitContainer
Friend WithEvents TreeViewEx1 As UTS_Core.UTSModule.Station.TreeViewEx
Friend WithEvents Label4 As Label
Friend WithEvents txt_MacCode As TextBox
Friend WithEvents Label7 As Label
Friend WithEvents txt_labstring As TextBox
Friend WithEvents Label6 As Label
Friend WithEvents txt_SnCode As TextBox
Friend WithEvents Label5 As Label
Friend WithEvents txt_colorbox As TextBox
Friend WithEvents Button2 As Button
Friend WithEvents Button1 As Button
Friend WithEvents Label8 As Label
Friend WithEvents txt_unitweight As TextBox
Friend WithEvents lab1 As Label
Friend WithEvents txt_inputnum As TextBox
Friend WithEvents RichTextBox1 As RichTextBox
Friend WithEvents SplitContainer5 As SplitContainer
Friend WithEvents lab_Test_cnt As Label
Friend WithEvents Label3 As Label
Friend WithEvents lab_test_num As Label
Friend WithEvents Label9 As Label
End Class

View 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>

View File

@@ -0,0 +1,444 @@
Imports System.IO
Imports System.Net
Imports System.Text
Imports Newtonsoft.Json
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Imports UTS_Core.UTSModule.Test
Imports UTS_Core.UTSModule.Test.StatusMonitor
Public Class ZQ_Mars_P3_FrmStationTest
Implements IProcessStation
Private _utsApp As UtsAppForm
Private _stationPlan As StationPackagePlan
Private NodePtr As TreeNode
'最大装载数量 赋值需要减一
Private Max_Loading As Integer = 10
Private PrintfNum As Integer = 0
Private Printfcnt As Integer = 0
#Region "UTS框架"
''' <summary>
''' 站位改变事件
''' </summary>
Public Sub Station_Changed() Implements IProcessStation.StationChanged
'Todo:站位变化代码
ApplicationLog.WriteInfoLog($"测试页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
Integer.TryParse(_stationPlan.BoxMumEditKey, Max_Loading)
Max_Loading = Max_Loading - 1
'清除表格数据
'InitBarcodeGrid()
ApplicationLog.WriteInfoLog($"测试页面站位变更完成!")
End Sub
''' <summary>
''' 初始化App
''' </summary>
''' <returns></returns>
Private Function InitializeUtsApp() As Boolean
_utsApp = UtsAppForm.CreateSingleton()
_utsApp.AddStatisticsObserver(CType(Me, IProcessStation))
Try
If _utsApp.IsInitialized = False Then
_utsApp.Initialize(ProcessStation.StationTypeEnum.Package) 'Todo:可根据需要限定可选站位
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"初始化窗体失败,原因:{ex.Message}!")
MsgBox($"初始化窗体失败,原因:{ex.Message}")
Close()
Return False
End Try
Return True
End Function
''' <summary>
''' 加载窗体
''' </summary>
''' <param name="parentControl"></param>
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
Private Sub TheTestResults(dutSn As String, ispass As TestResult.TestResultEnum, datenow As Date, Optional FailMsg As RowNode = Nothing, Optional Customfield As Dictionary(Of String String) = Nothing)
'重置信息
_utsApp.TestResult.ResetTestResult()
'产线索引
_utsApp.TestResult.ProductionLineID = -1
'测试开始时间
_utsApp.TestResult.StartTime = datenow
_utsApp.TestResult.DUT_SN = dutSn
_utsApp.TestResult.TestResult = ispass
_utsApp.TestResult.UsedTime = Now - datenow
If Not IsNothing(FailMsg) Then
_utsApp.TestResult.FailSteps.Add(FailMsg)
End If
If Not IsNothing(Customfield) Then
For indexptr As Integer = 0 To Customfield.Count - 1
_utsApp.TestResult.AddCustomRecord($"{Customfield.Keys(indexptr)}", $"{Customfield.Values(indexptr)}")
Next
End If
Try
'提交测试记录,缺省参数默认为FalseTrue则测试记录唯一,覆盖相同条码记录
_utsApp.CommitTestResult(True)
If ispass = TestResult.TestResultEnum.Pass Then
TestStatusMonitor.TestStatus = StatusMonitor.TestStatusMonitor.TestStatusEnum.TestPass
Else
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestFail
End If
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestPass
Catch ex As Exception
ApplicationLog.WriteErrorLog($"写入称量数据失败:{ex.Message}")
MsgBox($"写入称量数据失败:{ex.Message}")
'LblResult.Text = "FAIL"
'LblResult.ForeColor = Color.Red
TestStatusMonitor.TestStatus = TestStatusMonitor.TestStatusEnum.TestFail
Return
End Try
End Sub
#End Region
#Region "Web 数据接口"
Public Function AccessApi2(uart As String, dbName As String, theKey As String Optional dic As Dictionary(Of String, String) = Nothing) As JsonPtr
Dim jsonString As String = String.Empty
Dim ptr As String = $"Pwd=actop00803&DBName={dbName}&Key={theKey}"
If Not IsNothingdic Then
ptr = ptr & $"&JsonData={JsonConvert.SerializeObject(dic)}"
End If
'/http://uts-data.com/CommonApi/Combind_Sn_Info? Pwd%3D%26*$@%23235%26DBName%3Duts_zongqing%26Key%3DBarcode%26Barcode%3D1
Try
jsonString = PostData(uart, ptr)
Console.WriteLine(jsonString)
If jsonString = Nothing Then
Return Nothing
End If
Dim login As JsonPtr = JsonConvert.DeserializeObject(Of JsonPtr)(jsonString)
If login.Message.Contains"成功" Then
Return login
Else
Return Nothing
End If
Catch ex As Exception
MsgBox($"{ex.Message}!盒码获取失败请联系管理员")
Return Nothing
End Try
End Function
Public Shared Function PostData(ByVal url As String, ByVal data As String) As String
ServicePointManager.Expect100Continue = False
Dim request As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
'//Post请求方式
request.Method = "post"
'内容类型
request.ContentType = "application/x-www-form-urlencoded"
'将URL编码后的字符串转化为字节
Dim encoding As New UTF8Encoding()
Dim bys As Byte() = encoding.GetBytes(data)
'设置请求的 ContentLength
request.ContentLength = bys.Length
'获得请 求流
Dim newStream As Stream = request.GetRequestStream()
newStream.Write(bys, 0, bys.Length)
newStream.Close()
'获得响应流
Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
Return sr.ReadToEnd
End Function
#End Region
#Region "UIEven"
Private Sub RichTextBox1_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox1.TextChanged
RichTextBox1.SelectionStart = RichTextBox1.TextLength
RichTextBox1.ScrollToCaret()
End Sub
Delegate Sub IPSetRichTextBox1Text(TextBox1 As RichTextBox, text As String txtcolor As Color)
Private Sub SetRichTextBox1Text(TextBox1 As RichTextBox, text As String txtcolor As Color)
If InvokeRequired = True Then
Dim dev As New IPSetRichTextBox1Text(AddressOf SetRichTextBox1Text)
Me.Invoke(dev, New Object() {TextBox1, text, txtcolor})
Else
With TextBox1
.SuspendLayout()
.SelectionColor = txtcolor
.AppendText(text & vbCrLf)
.ResumeLayout(False)
End With
End If
End Sub
Public Sub initTreeViewEx1()
TreeViewEx1.Nodes.Clear()
TreeViewEx1.ItemHeight = 21
TreeViewEx1.CheckBoxes = False
TreeViewEx1.HideSelection = True
TreeViewEx1.SelectedImageKey = TreeViewEx1.ImageKey
End Sub
Private Sub TextBox1_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles TextBox1.PreviewKeyDown
If e.KeyData = Keys.Enter Then
If String.IsNullOrWhiteSpace(TextBox1.Text) Then
MsgBox("箱号为空,请输入箱号!")
Return
End If
Dim jsonclass As JsonPtr = AccessApi2("http://uts-data.com/CommonApi/Get_Sn_Info" "uts_zongqing", TextBox1.Text.Trim)
If IsNothing(jsonclass) Then
NodePtr = New TreeNode
NodePtr.Text = "箱体码:" & TextBox1.Text.Trim
NodePtr.Tag = Now
TextBox2.Focus()
TextBox2.SelectAll()
TextBox1.ReadOnly = True
TreeViewEx1.Nodes.Clear()
TreeViewEx1.Nodes.Add(NodePtr)
TreeViewEx1.Nodes(0).Expand()
Else
MsgBox("该箱号已使用,请更换箱号!")
TextBox1.Focus()
TextBox1.SelectAll()
Return
End If
End If
End Sub
Private Sub TextBox2_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles TextBox2.PreviewKeyDown
If e.KeyData = Keys.Enter Then
If String.IsNullOrWhiteSpace(TextBox2.Text) Then
MsgBox("彩盒码为空,请输入箱号!")
TextBox2.Focus()
TextBox2.SelectAll()
Return
End If
If IsNothing(NodePtr) Then
MsgBox("箱号为空,请输入箱号再进行录入")
TextBox1.Focus()
TextBox1.SelectAll()
TextBox1.ReadOnly = False
Return
End If
If NodePtr.Nodes.Count < Max_Loading Then
Dim jsonclass As JsonPtr = AccessApi2("http://uts-data.com/CommonApi/Get_Sn_Info", "uts_zongqing", TextBox2.Text.Trim)
If IsNothing(jsonclass) Then
MsgBox("未查询到彩盒码关联数据,请核实彩盒码!")
TextBox2.Focus()
TextBox2.SelectAll()
Return
End If
If DuplicateChecking(NodePtr, TextBox2.Text.Trim) Then
Dim node As New TreeNode
node.Text = "彩盒码:" & TextBox2.Text.Trim
node.Tag = jsonclass
NodePtr.Nodes.Add(node)
NodePtr.ExpandAll()
TextBox2.Focus()
TextBox2.SelectAll()
If _stationPlan.AutoPrint Then
If NodePtr.Nodes.Count = Max_Loading Then
TextBox1.Focus()
TextBox1.SelectAll()
TextBox1.ReadOnly = False
Button2.PerformClick()
Return
End If
End If
Else
MsgBox("彩盒码已记录,请输入箱号!")
TextBox2.Focus()
TextBox2.SelectAll()
Return
End If
Else
MsgBox($"装箱数已满,最大装载量为:{Max_Loading}")
TextBox1.Focus()
TextBox1.SelectAll()
TextBox1.ReadOnly = False
Return
End If
End If
End Sub
Public Function DuplicateChecking(node As TreeNode txt As String) As Boolean
For Each index As TreeNode In node.Nodes
If index.Text.Equals(txt.Trim) Then
Return False
End If
Next
Return True
End Function
Private Sub ZQ_Mars_P3_FrmStationTest_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ApplicationLog.WriteInfoLog($"测试页面加载中。")
If InitializeUtsApp() = False Then Return
initTreeViewEx1()
End Sub
Private Sub TreeViewEx1_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles TreeViewEx1.NodeMouseClick
If e.Button <> MouseButtons.Left Then Return
Dim node As TreeNode = TreeViewEx1.SelectedNode
If node Is Nothing Then Return
If node.Level = 0 Then
txt_inputnum.Text = node.Nodes.Count.ToString
txt_MacCode.Text = "------"
txt_colorbox.Text = "------"
txt_labstring.Text = "------"
txt_SnCode.Text = "------"
txt_unitweight.Text = "------"
Return
End If
Dim jsonclass As JsonPtr = CType(node.Tag, JsonPtr)
txt_MacCode.Text = jsonclass.Data.Mars_MacCodeP
txt_colorbox.Text = jsonclass.Data.Mars_ColorBox_BarCode
txt_inputnum.Text = "1"
txt_labstring.Text = jsonclass.Data.Barcode & "/" & jsonclass.Data.Mars_MacCodeP
txt_SnCode.Text = jsonclass.Data.Barcode
txt_unitweight.Text = jsonclass.Data.Mars_UnitWeigth
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If IsNothing(TreeViewEx1) Then Return
Dim node As TreeNode = TreeViewEx1.SelectedNode
If TreeViewEx1.Nodes(0).Equalsnode.Text Then
If MsgBox("该节点为箱体节点,删除将丢失已存在该箱体的记录。是否删除?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
TreeViewEx1.Nodes.RemoveAt(0)
TreeViewEx1.Nodes.Clear()
TextBox1.Text = ""
TextBox1.Focus()
TextBox1.SelectAll()
TextBox1.ReadOnly = False
End If
Else
TreeViewEx1.Nodes(0).Nodes.Remove(node)
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If TreeViewEx1.Nodes.Count = 0 Then
MsgBox("未添加箱体码信息,请先添加箱体码信息再进行数据录入!")
Return
ElseIf TreeViewEx1.Nodes.Count = 1 Then
If TreeViewEx1.Nodes(0).Nodes.Count < Max_Loading Then
If MsgBox("该箱体未满。是否继续装载?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
Return
End If
End If
InputBoxInformation(TreeViewEx1)
Else
MsgBox("箱体码信息异常,请联系开发者")
End If
End Sub
Public Sub InputBoxInformation(TreeView As UTS_Core.UTSModule.Station.TreeViewEx)
Dim Customfield As New Dictionary(Of String String)
Dim headnode As TreeNode = TreeView.Nodes(0)
Dim jsonclass As JsonPtr
Dim ricttxt As String = $"{Now:yyyy:HH:mm:ss:fff}箱体号:{headnode.Text} {vbCrLf }"
Dim datenow As Date = CDate(headnode.Tag)
Dim strbuff() As String = headnode.Text.Split(CChar(":"))
For i As Integer = 0 To headnode.Nodes.Count - 1
Dim index As TreeNode = headnode.Nodes(i)
jsonclass = CType(index.Tag, JsonPtr)
Customfield.Clear()
Customfield.Add("Mars_OutBoxCode", strbuff(1))
Customfield.Add("MacCode", jsonclass.Data.Mars_MacCodeP)
Customfield.Add("SnCode", jsonclass.Data.Barcode)
Customfield.Add("ColorBoxCode", jsonclass.Data.Mars_ColorBox_BarCode)
Customfield.Add("label_string", jsonclass.Data.Barcode)
Customfield.Add("Mars_UnitWeigth", jsonclass.Data.Mars_UnitWeigth)
If Not SetMars_OutBoxCode(strbuff(1), jsonclass.Data.Mars_ColorBox_BarCode) Then
MsgBox($"第{i}个彩盒码录入数据库失败,请联系开发者。彩盒码:{jsonclass.Data.Mars_ColorBox_BarCode}")
End If
TheTestResults(jsonclass.Data.Barcode, TestResult.TestResultEnum.Pass, datenow, Nothing, Customfield)
ricttxt = $"{ricttxt}{i}:{index.Text }{vbCrLf }"
Next
ricttxt = $"{ricttxt}-----------------{vbCrLf}"
SetRichTextBox1Text(RichTextBox1, ricttxt, Color.Blue)
'TestBoxnum = TestBoxnum + 1
'Label3.Text = TestBoxnum.ToString & "箱"
PrintfNum = PrintfNum + 1
'Label7.Text = PrintfNum.ToString & "个"
lab_test_num.Text = PrintfNum.ToString & ""
Printfcnt = My.Settings.Mars_P1_cnt + PrintfNum
lab_Test_cnt.Text = Printfcnt.ToString & ""
My.Settings.Save()
End Sub
Public Function SetMars_OutBoxCode(BoxCode As String, colorcode As String) As Boolean
Dim dic As New Dictionary(Of String, String
dic.Add("Mars_OutBoxCode" BoxCode) '称重值
dic.Add("Mars_ColorBox_BarCode" colorcode)
Dim Writesql As JsonPtr = AccessApi2("http://uts-data.com/CommonApi/Combind_Sn_Info", "uts_zongqing", "Mars_ColorBox_BarCode" dic)
If IsNothing(Writesql) Then
Return False
End If
Return True
End Function
#End Region
End Class

View File

@@ -0,0 +1,391 @@
Imports UTS_Core.Database
Imports UTS_Core.UTSModule.DbTableModel.Customer
Imports UTS_Core.UTSModule.Test
Imports UTS_Core.UTSModule.Test.TestResult
Public Class AttributeTest
Enum ColNames
No
Content
DataSource
SendData
PassResult
RetryCount
RetryInterval
ReadInterval
OperatingMode
Lower
Upper
TestVal
TestResult
IsRecord
RecordName
Max
End Enum
Public Val_mac As String
Public Val_version As String
Public Val_voltage As String
Public Val_tempre As String
Public Val_humiture As String
Public Val_keyleft As String
Public Val_keyright As String
Public Val_pir As String
Public Userkeyval_Key As IO.Ports.SerialPort
Public Userkeyval_Rictext As RichTextBox
Public cmdcolor As Color
Public txtcolor As Color
Public Userkeyval_ComboBox As ComboBox
Public Userkeyval_ProgressBar As ProgressBar
Public Userkeyval_Station As Label
Public Userkeyval_PASS As Label
Public Userkeyval_StepTip As Label
Public Userkeyval_Tip As Label
Public Userkeyval_check As CheckBox
Public Userkeyval_grid As FlexCell.Grid
Public Userkeyval_TestTable As TestResult
Sub NewByRef grid As FlexCell.Grid
Userkeyval_grid = grid
UpdateStepTestRecord1()
DefaultData()
Userkeyval_TestTable = New TestResult
End Sub
#Region "初始化表格"
Public Sub UpdateStepTestRecord1()
With Userkeyval_grid
.AutoRedraw = False
'.AutoSize = True
.Cols = ColNames.Max
.Rows = 1
.ExtendLastCol = True '最后一列自动扩充
.DisplayRowNumber = True '首列显示数字
For col As Integer = 0 To ColNames.Max - 1
.Cell(0, col).Text = [Enum].GetName(GetType(ColNames), col) '设置列名
.Column(col).CellType = FlexCell.CellTypeEnum.TextBox '设置列型
If col = ColNames.Content OrElse col = ColNames.SendData Then
.Column(col).Width = 140 '设置列宽
Else
.Column(col).Width = 70 '设置列宽
End If
.Column(col).Alignment = FlexCell.AlignmentEnum.RightCenter '设置对齐位置
Next
.ForeColorComment = Color.Blue
' .FrozenCols = ColNames.Description '冻结列
.AutoRedraw = True
.Refresh()
End With
End Sub
#End Region
#Region "加載表格數據"
Public Sub DefaultData()
Dim SendDatalist As New List(Of List(Of String
UartSendDataList(SendDatalist "确认设备MAC地址", "设备", "mac", "", "5", "100", "", "len", "", "", "", "", "Y", "DUT_SN")
UartSendDataList(SendDatalist "确认设备固件版本", "设备", "version", "", "5", "100", "", "comparison", "0.1.1.1", "0.1.1.1", "", "", "Y", "FW_Ver")
UartSendDataList(SendDatalist "确认设备电压", "设备", "voltage", "", "5", "100", "", "scope", "1.8", "2.3", "", "", "Y", "Volt")
UartSendDataList(SendDatalist "确认设备温度", "设备", "tempre", "", "5", "100", "", "null", "", "", "", "", "Y", "DUT_Temp")
UartSendDataList(SendDatalist "确认设备湿度", "设备", "humiture", "", "5", "100", "", "null", "", "", "", "", "Y", "DUT_Humid")
UartSendDataList(SendDatalist "确认环境温度", "uts", "tempre", "", "", "", "", "null", "", "", "", "", "Y", "Enov_Temp")
UartSendDataList(SendDatalist "确认环境湿度", "uts", "humiture", "", "", "", "", "null", "", "", "", "", "Y", "Enov_Humdi")
UartSendDataList(SendDatalist "确认温度误差", "设备-uts", "4", "6", "", "", "", "null", "", "", "", "", "Y", "Diff_Temp")
UartSendDataList(SendDatalist "确认湿度误差", "设备-uts", "5", "7", "", "", "", "null", "", "", "", "", "Y", "Diff_Humidi")
UartSendDataList(SendDatalist "确认PIR数值", "设备", "pir", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "提示请打开PIR窗口", "设备", "tip", "", "", "", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认PIR数值", "设备", "pir", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "提示请关闭PIR窗口", "设备", "tip", "", "", "", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认PIR数值", "设备", "pir", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认左键键值", "设备", "keyleft", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认右键键值", "设备", "keyright", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "提示:请按下左键", "设备", "tip", "", "", "", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认左键键值", "设备", "keyleft", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认右键键值", "设备", "keyright", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "提示:请按下右键", "设备", "tip", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认左键键值", "设备", "keyleft", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认右键键值", "设备", "keyright", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "提示:请松开按键", "设备", "tip", "", "", "", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认左键键值", "设备", "keyleft", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认右键键值", "设备", "keyright", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "读取平均电流", "uts", "run", "", "", "", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "读取峰值电流", "uts", "current", "", "", "", "", "null", "", "", "", "", "", "")
Grid5AddRow(SendDatalist)
End Sub
Public Function GetDeviceData(rowid As Integer, attri As String) As Boolean
If attri.ToLower.Equals("mac") Then
Return checkoutRusli(Val_mac, rowid)
ElseIf attri.ToLower.Equals("version") Then
'SetAttriGridt(Userkeyval_grid, rowid, ColNames.TestVal, )
Return checkoutRusli(Val_version, rowid)
ElseIf attri.ToLower.Equals("voltage") Then
Return checkoutRusli(Val_voltage, rowid)
ElseIf attri.ToLower.Equals("tempre") Then
Return checkoutRusli(Val_tempre, rowid)
ElseIf attri.ToLower.Equals("humiture") Then
Return checkoutRusli(Val_humiture, rowid)
ElseIf attri.ToLower.Equals("pir") Then
Return checkoutRusli(Val_pir, rowid)
ElseIf attri.ToLower.Equals("keyleft") Then
Return checkoutRusli(Val_keyleft, rowid)
ElseIf attri.ToLower.Equals("keyright") Then
Return checkoutRusli(Val_keyright, rowid)
ElseIf attri.ToLower.Equals("tip") Then
Settiptext(Userkeyval_Tip, Userkeyval_grid.Cell(rowid, ColNames.Content).Text.Trim)
Return True
End If
End Function
Public Function checkoutRusli(Attri As String, rowid As Integer) As Boolean
Dim celltxt As String = Userkeyval_grid.Cell(rowid, ColNames.OperatingMode).Text.Trim
SetAttriGridt(Userkeyval_grid, rowid, ColNames.TestVal, Attri)
If celltxt.Equals("len") Then
If Attri.Length = 6 Then
Return True
Else
Return False
End If
ElseIf celltxt.Equals("comparison") Then
Dim Lower As String = Userkeyval_grid.Cell(rowid, ColNames.Lower).Text.Trim
Dim Upper As String = Userkeyval_grid.Cell(rowid, ColNames.Upper).Text.Trim
If Attri.Contains(Lower) OrElse Attri.Contains(Upper) Then
Return True
Else
Return False
End If
ElseIf celltxt.Equals("scope") Then
Dim Attriint As Double = 0
Dim Lowerint As Double = 0
Dim Upperint As Double = 0
If Not Double.TryParse(Attri, Attriint) OrElse Not Double.TryParse(Attri, Lowerint) OrElse Not Double.TryParse(Attri, Lowerint) Then
Return False
End If
If Attriint > Lowerint OrElse Attriint < Upperint Then
Return False
Else
Return True
End If
ElseIf celltxt.Equals("Null") Then
Return True
End If
End Function
Public Function UartSendDataList(ByRef SendDatalist As List(Of List(Of String ParamArray ptr As String) As List(Of String
Dim Datalist As New List(Of String
Datalist.AddRange(ptr)
SendDatalist.Add(Datalist)
End Function
Public Sub Grid5AddRow(SendDatalist As List(Of List(Of String)
If SendDatalist.Count < 1 Then Return
For rowindex As Integer = 0 To SendDatalist.Count - 1
Dim Datalist As List(Of String = SendDatalist.Item(rowindex)
AddRowToTable(Userkeyval_grid, Datalist)
Next
End Sub
Public Sub AddRowToTabletablegrid As FlexCell.Grid, Datalist As List(Of String
tablegrid.AddItem("")
For colid As Integer = 1 To ColNames.Max - 1
tablegrid.Cell(tablegrid.Rows - 1, colid).Text = Datalist.Item(colid - 1)
Next
End Sub
#End Region
#Region "流程动作"
Delegate Sub IPSettiptext(tablegrid As Label, txt As String)
Public Sub Settiptext(tablegrid As Label, txt As String)
If tablegrid.InvokeRequired Then
tablegrid.Invoke(New IPSettiptext(AddressOf Settiptext), New Object() {tablegrid, txt})
Else
tablegrid.Text = txt
End If
End Sub
Delegate Sub IPSetAttriGridt(tablegrid As FlexCell.Grid, trowel As Integer, tcol As Integer, txt As String)
Public Sub SetAttriGridt(tablegrid As FlexCell.Grid, trowel As Integer, tcol As Integer, txt As String)
If tablegrid.InvokeRequired Then
tablegrid.Invoke(New IPSetAttriGridt(AddressOf SetAttriGridt), New Object() {tablegrid, trowel, tcol, txt})
Else
tablegrid.Cell(trowel, tcol).Text = txt
If trowel = ColNames.TestResult Then
Userkeyval_PASS.Text = txt
If txt.ToLower.Equals"pass" Then
Userkeyval_PASS.BackColor = Color.Green
ElseIf txt.ToLower.Equals"false" Then
Userkeyval_PASS.BackColor = Color.Red
End If
End If
Userkeyval_ProgressBar.Value =trowel
End If
End Sub
Public Sub clearGridResult(tablegrid As FlexCell.Grid)
For rowid As Integer = 1 To tablegrid.Rows - 1
SetAttriGridt(tablegrid, rowid, ColNames.TestResult, "")
SetAttriGridt(tablegrid, rowid, ColNames.TestVal, "")
Next
End Sub
Public Function ADDTestRecordVal(testattribute As TestTableAttribute) As Dictionary(Of String, String)
Dim dic As New Dictionary(Of String, String) From {
{$"{TestLogTable.ColNames.UserID}", testattribute.UserID.ToString()},
{$"{TestLogTable.ColNames.ServiceID}", testattribute.ServiceID.ToString()},
{$"{TestLogTable.ColNames.DUT_SN}", testattribute._dutSn},
{$"{TestLogTable.ColNames.AppName}", testattribute.AppName},
{$"{TestLogTable.ColNames.TestPlan}", testattribute.TestPlan},
{$"{TestLogTable.ColNames.StartTime}", testattribute.StartTime.ToString("yyyy-MM-dd HH:mm:ss")},
{$"{TestLogTable.ColNames.UsedTime}", testattribute.TotalSeconds.ToString("F2")},
{$"{TestLogTable.ColNames.TestResult}", IIf(testattribute.TestResult = TestResultEnum.Fail, 0, 1).ToString()},
{$"{TestLogTable.ColNames.ErrCode}", testattribute.ErrCode},
{$"{TestLogTable.ColNames.ProductionLineID}", testattribute.ProductionLineID.ToString()},
{$"{TestLogTable.ColNames.OrderID}", testattribute.OrderID.ToString()}
}
dic.Add($"{TestLogTable.ColNames.FailSteps}", testattribute.rownum.ToString())
dic.Add($"{TestLogTable.ColNames.FailMsg}", testattribute.TertResult & testattribute.UpVal & testattribute.loadVal)
For Each keyValue As KeyValuePair(Of String, String) In testattribute.AddSelf
If dic.ContainsKey(keyValue.Key) Then
dic(keyValue.Key) = keyValue.Value
Else
dic.Add(keyValue.Key, keyValue.Value)
End If
Next
Return dic
End Function
Public Sub UpdateTestLogToRemote(db As DbExecutor, dbName As String, tbName As String, result As TestTableAttribute)
Dim field As Dictionary(Of String, String) = ADDTestRecordVal(result)
'新增不存在的字段
CheckTestLogFiledToRemote(db, dbName, tbName, field)
'添加测试记录
Dim cmdText As String = db.CmdHelper.DbInsert(dbName, tbName, field)
db.ExecuteNonQuery(cmdText)
End Sub
#End Region
''' <summary>
''' 检测测试记录字段名是否存在远端数据库,如果不存在则新增,存在则检测字段长度是否需要加长
''' </summary>
''' <param name="db">数据库执行器</param>
''' <param name="dbName">数据库名</param>
''' <param name="tbName">数据表名</param>
''' <param name="field">测试记录字段集合</param>
Public Shared Sub CheckTestLogFiledToRemote(db As DbExecutor, dbName As String, tbName As String, field As Dictionary(Of String, String))
Dim dtCol As DataTable = db.ExecuteDataTable(db.CmdHelper.DbSearchAll(dbName, tbName, "1 = 0"))
Dim fieldName As List(Of String) = field.Keys.ToList
Dim typeString As String
Dim length As Integer
For Each colName As String In fieldName
If String.IsNullOrWhiteSpace(colName) Then Continue For '剔除无效数据库字段名
If dtCol.Columns.Contains(colName) Then '当前数据表是否已经存在对应列信息
Select Case dtCol.Columns(colName).DataType.Name
Case "String" '仅处理VarChar类型
If field(colName).Length > dtCol.Columns(colName).MaxLength Then
length = GetFiledLength(field(colName).Length)
If length = -1 Then
Throw New Exception($"字段[{colName}] 超过最大长度2048的限制,无法入库!")
Else
typeString = $"varchar({length})"
End If
'修改列字段长度
db.ExecuteNonQuery($"Call `{dbName}`.`AlterTestLogFiled`('{dbName}','{tbName}','{colName}','{length}')")
End If
Case Else
Console.WriteLine(colName & ":" & dtCol.Columns(colName).DataType.Name)
End Select
Else
length = GetFiledLength(field(colName).Length)
If length = -1 Then
Throw New Exception($"字段[{colName}] 超过最大长度4096的限制,无法入库!")
Else
typeString = $"varchar({length})"
End If
'插入字段语句
db.ExecuteNonQuery($"Call `{dbName}`.`AlterTestLogFiled`('{dbName}','{tbName}','{colName}','{length}')")
End If
Next
End Sub
Private Shared Function GetFiledLength(len As Integer) As Integer
Dim result As Integer
If len = 0 Then
result = 8
ElseIf len <= 2048 Then
If len Mod 8 = 0 Then
result = len
Else
result = ((len \ 8) + 1) * 8
End If
Else
result = -1
End If
Return result
End Function
End Class
Public Class TestTableAttribute
Public UserID As String
Public ServiceID As String
Public _dutSn As String
Public AppName As String
Public TestPlan As String
Public StartTime As Date
Public TotalSeconds As Double
Public TestResult As TestResultEnum
Public ErrCode As String
Public ProductionLineID As Integer
Public OrderID As Integer
Public rownum As Integer
Public TertResult As String
Public UpVal As String
Public loadVal As String
Public AddSelf As Dictionary(Of String, String)
Public Sub New()
AddSelf = New Dictionary(Of String, String)
End Sub
Public Sub AddSelfAttributeclunm As String, val As String
AddSelf.Add(clunm, val)
End Sub
Public Sub AddSelfClear
AddSelf.Clear()
End Sub
End Class

View File

@@ -0,0 +1,217 @@
Public Class MainTest
Enum ColNames
No
Content
DataSource
SendData
PassResult
RetryCount
RetryInterval
ReadInterval
OperatingMode
Lower
Upper
TestVal
TestResult
IsRecord
RecordName
Max
End Enum
Public theGrid As FlexCell.Grid
Public Serial As IO.Ports.SerialPort
Public Userkeyval_ComboBox As ComboBox
Public Userkeyval_Rictext As RichTextBox
Public Label2 As Label
Public split_Curr_1 As String
Public split_Curr_2 As String
Public split_Curr_3 As String
Public split_Curr_4 As String
Public split_Curr_Peak_1 As String
Public split_Curr_Peak_2 As String
Public split_Curr_peak_3 As String
Public split_Curr_peak_4 As String
Public split_Temp As String
Public split_HumidityAs As String
Sub New(grd As FlexCell.Grid)
theGrid = grd
UpdateStepTestRecord()
DefaultData()
End Sub
#Region "初始化表格"
Public Sub UpdateStepTestRecord()
With theGrid
.AutoRedraw = False
'.AutoSize = True
.Cols = ColNames.Max
.Rows = 1
.ExtendLastCol = True '最后一列自动扩充
.DisplayRowNumber = True '首列显示数字
For col As Integer = 0 To ColNames.Max - 1
.Cell(0, col).Text = [Enum].GetName(GetType(ColNames), col) '设置列名
.Column(col).CellType = FlexCell.CellTypeEnum.TextBox '设置列型
.Column(col).Width = 140 '设置列宽
.Column(col).Alignment = FlexCell.AlignmentEnum.CenterCenter '设置对齐位置
Next
.ForeColorComment = Color.Blue
.BackColorBkg = Color.DimGray
.AutoRedraw = True
.Refresh()
.Locked = True
End With
End Sub
#End Region
#Region "加載表格數據"
Public Sub DefaultData()
Dim SendDatalist As New List(Of List(Of String
UartSendDataList(SendDatalist "确认测试板连接", "uts", "*IDN?", "uts-Phobos-rev01", "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "设置输出限流", "uts", "SET_PPS_CURR:400", "SET_PPS_CURR:400:TRUE", "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "设置输出电压", "uts", "SET_PPS_VOLT:2000", "SET_PPS_VOLT:2000:TRUE" "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "打开输出电压", "uts", "SET_PPS_OUTP:ON", "SET_PPS_OUTP:ON:TRUE", "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "清除峰值电流 - ch1", "uts", "CLR_PPS_CURR_PEAK:1", "CLR_PPS_CURR_PEAK:1:TRUE", "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "清除峰值电流 - ch2", "uts", "CLR_PPS_CURR_PEAK:2", "CLR_PPS_CURR_PEAK:2:TRUE", "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "清除峰值电流 - ch3", "uts", "CLR_PPS_CURR_PEAK:3", "CLR_PPS_CURR_PEAK:3:TRUE", "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "清除峰值电流 - ch4", "uts", "CLR_PPS_CURR_PEAK:4", "CLR_PPS_CURR_PEAK:4:TRUE", "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "读取平均电流(轮询直到勾选的属性测试结束)", "uts", "RUN", "10", "max", "100", "300", "split", "", "", "", "", "", "")
UartSendDataList(SendDatalist "发送关闭电源命令", "uts", "SET_PPS_OUTP:OFF" "SET_PPS_OUTP:OFF:TRUE", "3", "100", "300", "comparison", "", "", "", "", "", "")
Grid5AddRow(SendDatalist)
End Sub
Public Function UartSendDataList(ByRef SendDatalist As List(Of List(Of String ParamArray ptr As String) As List(Of String
Dim Datalist As New List(Of String
Datalist.AddRange(ptr)
SendDatalist.Add(Datalist)
End Function
Public Sub Grid5AddRow(SendDatalist As List(Of List(Of String)
If SendDatalist.Count < 1 Then Return
For rowindex As Integer = 0 To SendDatalist.Count - 1
Dim Datalist As List(Of String = SendDatalist.Item(rowindex)
AddRowToTable(theGrid, Datalist)
Next
End Sub
Public Sub AddRowToTabletablegrid As FlexCell.Grid, Datalist As List(Of String
tablegrid.AddItem("")
For colid As Integer = 1 To ColNames.Max - 1
tablegrid.Cell(tablegrid.Rows - 1, colid).Text = Datalist.Item(colid - 1)
Next
End Sub
#End Region
#Region "读数据并解析"
Public Function ParsingRowRead(rowid As Integer, readStr As String) As Boolean
If rowid = 0 OrElse Not rowid < theGrid.Rows Then Return False
SettheGridt(theGrid, rowid, ColNames.TestVal, readStr)
If theGrid.Cell(rowid, ColNames.OperatingMode).Text.ToLower.Contains("comparison") Then
If theGrid.Cell(rowid, ColNames.PassResult).Text.Trim.ToLower.Equals(readStr.ToLower) Then
Return True
Else
Return False
End If
ElseIf theGrid.Cell(rowid, ColNames.OperatingMode).Text.ToLower.Contains("split") Then
split_Curr_1 = ""
split_Curr_2 = ""
split_Curr_3 = ""
split_Curr_4 = ""
split_Curr_Peak_1 = ""
split_Curr_Peak_2 = ""
split_Curr_peak_3 = ""
split_Curr_peak_4 = ""
split_Temp = ""
split_HumidityAs = ""
Dim splitbuff() As String = readStr.Split(CType(",", Char))
If splitbuff.Length = CType(theGrid.Cell(rowid, ColNames.PassResult).Text, Integer) Then
split_Curr_1 = splitbuff0
split_Curr_2 = splitbuff1
split_Curr_3 = splitbuff2
split_Curr_4 = splitbuff3
split_Curr_Peak_1 = splitbuff4
split_Curr_Peak_2 = splitbuff5
split_Curr_peak_3 = splitbuff6
split_Curr_peak_4 = splitbuff7
split_Temp = splitbuff8
split_HumidityAs = splitbuff9
Return True
End If
Return False
Else
Return False
End If
End Function
Delegate Sub IPSetUILabeltext(tablegrid As FlexCell.Grid, trowel As Integer, tcol As Integer, txt As String)
Public Sub SettheGridt(tablegrid As FlexCell.Grid, trowel As Integer, tcol As Integer, txt As String)
If tablegrid.InvokeRequired Then
tablegrid.Invoke(New IPSetUILabeltext(AddressOf SettheGridt), New Object() {tablegrid, trowel, tcol, txt})
Else
tablegrid.Cell(trowel, tcol).Text = txt
End If
End Sub
Public Function GetUtsData(attri As String) As String
If attri.ToLower.Equals("tempre") Then
Return split_Temp
ElseIf attri.ToLower.Equals("humiture") Then
Return split_HumidityAs
ElseIf attri.ToLower.Equals("run") Then
Dim result As String = split_Curr_1 & "," & split_Curr_2 &
"," & split_Curr_3 & "," & split_Curr_4
Return result
ElseIf attri.ToLower.Equals("current") Then
Dim result As String = split_Curr_Peak_1 & "," & split_Curr_Peak_2 &
"," & split_Curr_peak_3 & "," & split_Curr_peak_4
Return result
End If
Return ""
End Function
#End Region
End Class

View File

@@ -0,0 +1,294 @@
Imports System.Threading
Imports UTS_Core.DebugLog
Public Class Uart_1089
Public DataKey As String
Public Rowid As Integer = 0
'发送次数
Public SendNumber As Integer = 0
'发送时间
Public SendDate As Date
'发送间隔(ms)
Public SendIinterval As Integer = 8000
Public WaitIinterval As Integer = 100
'发送数据
Public SendData As String
'发送帧号
Public SendFrame As Integer = 0
'发送命令
Public SendCmd As Integer
''' <summary>
''' 发送状态,
''' </summary>
Public CmdStat As Boolean = False
''' <summary>
''' 接收状态,
''' </summary>
Public CmdReadStat As Boolean = False
''' <summary>
''' 接收结果,
''' </summary>
Public CmdReadResult As Boolean = False
Public Cycleflag As Boolean = False
Public Resendnum As Integer = 3
'''' <summary>
'''' 预期回复是多条还是一条【默认一条】
'''' </summary>
'Public ManyState As Boolean = 0
'''' <summary>
'''' 回复数据
'''' </summary>
'Public ReadDataList As New List(Of Object)
End Class
Public Class Uart_1089_Client
Private _Uart As IO.Ports.SerialPort
Private _RichTextBox1 As RichTextBox
Private _IsCycleflag As Boolean = False
Public SendDataList As New List(Of Uart_1089)
Private _tooplabel As Label
Public IsSendThresdflag As Boolean = True
Private _Task As Thread
Private _grid As FlexCell.Grid
Private _ThreadBuff() As Thread
'''<summary>测试结束事件</summary>
Public Event TestEnd(ispass As Boolean)
Sub NewSerialPort1 As IO.Ports.SerialPort, RichTextBox1 As RichTextBox, grd As FlexCell.Grid, tooplabel As Label, ParamArray ThreadBuff() As Thread
_Uart = SerialPort1
_RichTextBox1 = RichTextBox1
_Task = New Thread(New ThreadStart(AddressOf SnedUartThread))
_grid = grd
_tooplabel = tooplabel
_ThreadBuff = ThreadBuff
_Task.Start()
End Sub
Public Sub TaskClose(isflag As Boolean)
If isflag Then
_Task.Abort()
For threadid As Integer = 0 To _ThreadBuff.Length - 1
_ThreadBuff(threadid).Abort()
Next
Else
If _Task.IsAlive Then
Else
_Task = New Thread(New ThreadStart(AddressOf SnedUartThread))
_Task.Start()
End If
End If
End Sub
Public Sub Colose_Uart()
If IsNothing(_Uart) Then Return
If _Uart.IsOpen Then
_Uart.Close()
End If
End Sub
Public Function Get_Uart() As Boolean
If IsNothing(_Uart) Then Return False
Return _Uart.IsOpen
End Function
Private Sub SnedUartThread()
'ApplicationLog.WriteInfoLog($"测试页面生产线变更中。")
Dim theClient As Uart_1089
While IsSendThresdflag
If SendDataList.Count < 1 Then Continue While
theClient = SendDataList.Item(0)
If theClient.SendNumber = 1 And theClient.Cycleflag Then
For threadid As Integer = 0 To _ThreadBuff.Length - 1
_ThreadBuff(threadid).Start()
Next
End If
If GetThreadStart() Then
'_IsCycleflag = False
theClient.Cycleflag = False
End If
If theClient.CmdStat Then
If theClient.CmdReadStat Then
If theClient.CmdReadResult AndAlso Not theClient.Cycleflag Then
'SyncLock SendDataList
DetermineResults(_grid, theClient.Rowid, "PASS")
SendDataList.RemoveAt(0)
If theClient.SendData.Equals("SET_PPS_OUTP:OFF") Then
RaiseEvent TestEnd(True)
End If
'End SyncLock
Else
If theClient.SendNumber < theClient.Resendnum OrElse theClient.Cycleflag Then
Thread.Sleep(theClient.WaitIinterval)
_Uart.Write(theClient.SendData
Console.WriteLine(theClient.SendData)
theClient.CmdStat = True
theClient.CmdReadStat = False
theClient.SendNumber += 2
theClient.SendDate = Now
If theClient.SendNumber = 100 Then theClient.SendNumber = 1
SetCommunicationData_txt("", Color.Black, $"重发({theClient.SendNumber})" & theClient.SendData, Color.Blue)
Else
'SyncLock SendDataList
DetermineResults(_grid, theClient.Rowid, "FALSE")
SendDataList.RemoveAt(0)
'End SyncLock
If theClient.SendData.Equals("SET_PPS_OUTP:OFF") Then
RaiseEvent TestEnd(False)
End If
End If
End If
Else
Dim Span As Double = theClient.SendIinterval * 10000
If (Now.Ticks - theClient.SendDate.Ticks) < Span Then
Continue While
Else
If theClient.SendNumber < theClient.Resendnum OrElse theClient.Cycleflag Then
Thread.Sleep(theClient.WaitIinterval)
_Uart.Write(theClient.SendData
theClient.CmdStat = True
theClient.CmdReadStat = False
theClient.SendNumber += 1
theClient.SendDate = Now
Console.WriteLine(theClient.SendData)
If theClient.SendNumber = 100 Then theClient.SendNumber = 2
SetCommunicationData_txt("", Color.Black, $"重发({theClient.SendNumber})" & theClient.SendData, Color.Blue)
Else
'SyncLock SendDataList
DetermineResults(_grid, theClient.Rowid, "FALSE")
SendDataList.RemoveAt(0)
If theClient.SendData.Equals("SET_PPS_OUTP:OFF") Then
RaiseEvent TestEnd(False)
End If
'End SyncLock
End If
End If
End If
Else
_Uart.Write(theClient.SendData
theClient.CmdStat = True
theClient.SendNumber += 1
theClient.SendDate = Now
SetCommunicationData_txt("", Color.Black, $"发送({theClient.SendNumber})" & theClient.SendData, Color.Blue)
Console.WriteLine(theClient.SendData)
End If
End While
End Sub
Private Function GetThreadStart() As Boolean
Dim ruslt As Boolean = True
For threadid As Integer = 0 To _ThreadBuff.Length - 1
If _ThreadBuff(threadid).IsAlive Then
ruslt = False
Exit For
End If
Next
Return ruslt
End Function
Delegate Sub delegate_SearchSetMAC_Change(Cmd As String, cmdcolor As Color, txt As String, txtcolor As Color)
Public Sub SetCommunicationData_txt(Cmd As String, cmdcolor As Color, txt As String, txtcolor As Color)
If _RichTextBox1.InvokeRequired Then
Dim dev As New delegate_SearchSetMAC_Change(AddressOf SetCommunicationData_txt)
_RichTextBox1.Invoke(dev, New Object() {Cmd, cmdcolor, txt, txtcolor})
Else
If String.IsNullOrEmpty(Cmd) Then
End If
With _RichTextBox1
.SuspendLayout()
.SelectionColor = Color.Black
.AppendText($"{Date.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")} :")
.SelectionColor = cmdcolor
.AppendText($"{Cmd} ")
.SelectionColor = txtcolor
.AppendText(txt)
.ResumeLayout(False)
End With
End If
End Sub
Public Sub UArtSendData(uartdata As Uart_1089)
If _Uart.IsOpen Then
' _Uart.Write(uartdata.SendData)
' SyncLock SendDataList
SendDataList.Add(uartdata)
'End SyncLock
Else
' MsgBox("串口未打开")
End If
End Sub
Private Sub DetermineResults(tablegrid As FlexCell.Grid, trowel As Integer, result As String)
'If trowel = 0 OrElse Not trowel < tablegrid.Rows Then Return False
'If tablegrid.Cell(trowel, MainTest.ColNames.DataSource).Text.Trim.Equals("*IDN?") Then
' If result.ToUpper.Equals("PASS") Then
' 'MTSetUILabeltext(_tooplabel,"测试板未连接!",Color .Black )
' End If
'End If
If tablegrid.Cell(trowel, MainTest.ColNames.RetryCount).Text.Trim.Equals("max") Then
SettheGridt(tablegrid, MainTest.ColNames.TestResult, trowel, "PASS")
Else
SettheGridt(tablegrid, MainTest.ColNames.TestResult, trowel, result)
End If
End Sub
Delegate Sub IPSetUILabeltext(tablegrid As FlexCell.Grid, tcol As Integer, trowel As Integer, txt As String)
Private Sub SettheGridt(tablegrid As FlexCell.Grid, tcol As Integer, trowel As Integer, txt As String)
If tablegrid.InvokeRequired Then
tablegrid.Invoke(New IPSetUILabeltext(AddressOf SettheGridt), New Object() {tablegrid, tcol, trowel, txt})
Else
tablegrid.Cell(trowel, tcol).Text = txt
End If
End Sub
'数据转换
Public Function StringTobyte(sendstr As String) As Byte()
Return System.Text.Encoding.ASCII.GetBytes(sendstr)
End Function
Public Sub SetCycleflagStop()
_IsCycleflag = True
End Sub
Delegate Sub IPMTSetUILabeltext(ByRef ctl As ToolStripStatusLabel, txt As String, txtcolor As Color)
Public Sub MTSetUILabeltext(ByRef ctl As ToolStripStatusLabel, txt As String, txtcolor As Color)
If FrmMain.InvokeRequired Then
FrmMain.Invoke(New IPMTSetUILabeltext(AddressOf MTSetUILabeltext), New Object() {ctl, txt, txtcolor})
Else
ctl.Text = txt
ctl.ForeColor = txtcolor
End If
End Sub
End Class

View File

@@ -0,0 +1,460 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class ZQ_Phobos_T1_FrmStationPlan
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ZQ_Phobos_T1_FrmStationPlan))
Me.MsiCopyNode = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiNodePaste = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiUndo = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiRedo = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiSaveNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiLoadNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStart = New System.Windows.Forms.ToolStripMenuItem()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.Grid1 = New FlexCell.Grid()
Me.CmsPlanGrid = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.MsiCutNode = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator7 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugEnd = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStep = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugContinue = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator8 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugSetup = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugMain = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugPass = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugFail = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugCleanup = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator9 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugNode = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugNodeBegin = New System.Windows.Forms.ToolStripMenuItem()
Me.TsBtnOpen = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSave = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator()
Me.TsBtnLoad = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSaveAs = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton()
Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton()
Me.StuMain = New System.Windows.Forms.StatusStrip()
Me.DlgOpenFile = New System.Windows.Forms.OpenFileDialog()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
Me.GrdStationPlan = New FlexCell.Grid()
Me.GroupBox1.SuspendLayout()
Me.CmsPlanGrid.SuspendLayout()
Me.ToolStrip1.SuspendLayout()
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
Me.GroupBox2.SuspendLayout()
Me.SuspendLayout()
'
'MsiCopyNode
'
Me.MsiCopyNode.Enabled = False
Me.MsiCopyNode.Name = "MsiCopyNode"
Me.MsiCopyNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCopyNode.Text = "复制"
'
'MsiNodePaste
'
Me.MsiNodePaste.Enabled = False
Me.MsiNodePaste.Name = "MsiNodePaste"
Me.MsiNodePaste.Size = New System.Drawing.Size(192, 22)
Me.MsiNodePaste.Text = "粘贴"
'
'ToolStripSeparator5
'
Me.ToolStripSeparator5.Name = "ToolStripSeparator5"
Me.ToolStripSeparator5.Size = New System.Drawing.Size(189, 6)
'
'MsiUndo
'
Me.MsiUndo.Enabled = False
Me.MsiUndo.Name = "MsiUndo"
Me.MsiUndo.Size = New System.Drawing.Size(192, 22)
Me.MsiUndo.Text = "撤销"
'
'MsiRedo
'
Me.MsiRedo.Enabled = False
Me.MsiRedo.Name = "MsiRedo"
Me.MsiRedo.Size = New System.Drawing.Size(192, 22)
Me.MsiRedo.Text = "重做"
'
'ToolStripSeparator6
'
Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
Me.ToolStripSeparator6.Size = New System.Drawing.Size(189, 6)
'
'MsiSaveNodeFile
'
Me.MsiSaveNodeFile.Name = "MsiSaveNodeFile"
Me.MsiSaveNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiSaveNodeFile.Text = "另存为节点文件"
'
'MsiLoadNodeFile
'
Me.MsiLoadNodeFile.Name = "MsiLoadNodeFile"
Me.MsiLoadNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiLoadNodeFile.Text = "加载节点文件"
'
'TsmiDebugStart
'
Me.TsmiDebugStart.Name = "TsmiDebugStart"
Me.TsmiDebugStart.ShortcutKeys = System.Windows.Forms.Keys.F1
Me.TsmiDebugStart.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStart.Text = "开始执行"
'
'GroupBox1
'
Me.GroupBox1.Controls.Add(Me.Grid1)
Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox1.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.GroupBox1.Location = New System.Drawing.Point(0, 0)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(536, 503)
Me.GroupBox1.TabIndex = 0
Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "副流程:"
'
'Grid1
'
Me.Grid1.BorderStyle = FlexCell.BorderStyleEnum.None
Me.Grid1.CheckedImage = Nothing
Me.Grid1.ContextMenuStrip = Me.CmsPlanGrid
Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
Me.Grid1.Dock = System.Windows.Forms.DockStyle.Fill
Me.Grid1.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer))
Me.Grid1.Location = New System.Drawing.Point(3, 21)
Me.Grid1.Name = "Grid1"
Me.Grid1.Size = New System.Drawing.Size(530, 479)
Me.Grid1.TabIndex = 5
Me.Grid1.UncheckedImage = Nothing
'
'CmsPlanGrid
'
Me.CmsPlanGrid.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MsiCopyNode, Me.MsiCutNode, Me.MsiNodePaste, Me.ToolStripSeparator5, Me.MsiUndo, Me.MsiRedo, Me.ToolStripSeparator6, Me.MsiSaveNodeFile, Me.MsiLoadNodeFile, Me.ToolStripSeparator7, Me.TsmiDebugStart, Me.TsmiDebugEnd, Me.TsmiDebugStep, Me.TsmiDebugContinue, Me.ToolStripSeparator8, Me.TsmiDebugSetup, Me.TsmiDebugMain, Me.TsmiDebugPass, Me.TsmiDebugFail, Me.TsmiDebugCleanup, Me.ToolStripSeparator9, Me.TsmiDebugNode, Me.TsmiDebugNodeBegin})
Me.CmsPlanGrid.Name = "CmsMain"
Me.CmsPlanGrid.Size = New System.Drawing.Size(193, 430)
'
'MsiCutNode
'
Me.MsiCutNode.Enabled = False
Me.MsiCutNode.Name = "MsiCutNode"
Me.MsiCutNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCutNode.Text = "剪切"
'
'ToolStripSeparator7
'
Me.ToolStripSeparator7.Name = "ToolStripSeparator7"
Me.ToolStripSeparator7.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugEnd
'
Me.TsmiDebugEnd.Name = "TsmiDebugEnd"
Me.TsmiDebugEnd.ShortcutKeys = System.Windows.Forms.Keys.F2
Me.TsmiDebugEnd.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugEnd.Text = "退出执行"
'
'TsmiDebugStep
'
Me.TsmiDebugStep.Name = "TsmiDebugStep"
Me.TsmiDebugStep.ShortcutKeys = System.Windows.Forms.Keys.F3
Me.TsmiDebugStep.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStep.Text = "单步执行"
'
'TsmiDebugContinue
'
Me.TsmiDebugContinue.Name = "TsmiDebugContinue"
Me.TsmiDebugContinue.ShortcutKeys = System.Windows.Forms.Keys.F4
Me.TsmiDebugContinue.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugContinue.Text = "继续执行"
'
'ToolStripSeparator8
'
Me.ToolStripSeparator8.Name = "ToolStripSeparator8"
Me.ToolStripSeparator8.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugSetup
'
Me.TsmiDebugSetup.Name = "TsmiDebugSetup"
Me.TsmiDebugSetup.ShortcutKeys = System.Windows.Forms.Keys.F5
Me.TsmiDebugSetup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugSetup.Text = "Setup模块执行"
'
'TsmiDebugMain
'
Me.TsmiDebugMain.Name = "TsmiDebugMain"
Me.TsmiDebugMain.ShortcutKeys = System.Windows.Forms.Keys.F6
Me.TsmiDebugMain.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugMain.Text = "Main模块执行"
'
'TsmiDebugPass
'
Me.TsmiDebugPass.Name = "TsmiDebugPass"
Me.TsmiDebugPass.ShortcutKeys = System.Windows.Forms.Keys.F7
Me.TsmiDebugPass.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugPass.Text = "Pass模块执行"
'
'TsmiDebugFail
'
Me.TsmiDebugFail.Name = "TsmiDebugFail"
Me.TsmiDebugFail.ShortcutKeys = System.Windows.Forms.Keys.F8
Me.TsmiDebugFail.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugFail.Text = "Fail模块执行"
'
'TsmiDebugCleanup
'
Me.TsmiDebugCleanup.Name = "TsmiDebugCleanup"
Me.TsmiDebugCleanup.ShortcutKeys = System.Windows.Forms.Keys.F9
Me.TsmiDebugCleanup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugCleanup.Text = "Cleanup模块执行"
'
'ToolStripSeparator9
'
Me.ToolStripSeparator9.Name = "ToolStripSeparator9"
Me.ToolStripSeparator9.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugNode
'
Me.TsmiDebugNode.Name = "TsmiDebugNode"
Me.TsmiDebugNode.ShortcutKeys = System.Windows.Forms.Keys.F10
Me.TsmiDebugNode.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNode.Text = "节点测试"
'
'TsmiDebugNodeBegin
'
Me.TsmiDebugNodeBegin.Name = "TsmiDebugNodeBegin"
Me.TsmiDebugNodeBegin.ShortcutKeys = System.Windows.Forms.Keys.F11
Me.TsmiDebugNodeBegin.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNodeBegin.Text = "节点开始测试"
'
'TsBtnOpen
'
Me.TsBtnOpen.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnOpen.Image = CType(resources.GetObject("TsBtnOpen.Image"), System.Drawing.Image)
Me.TsBtnOpen.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnOpen.Name = "TsBtnOpen"
Me.TsBtnOpen.Size = New System.Drawing.Size(35, 33)
Me.TsBtnOpen.Text = "打开"
Me.TsBtnOpen.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
Me.TsBtnOpen.Visible = False
'
'TsBtnSave
'
Me.TsBtnSave.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnSave.Image = CType(resources.GetObject("TsBtnSave.Image"), System.Drawing.Image)
Me.TsBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSave.Name = "TsBtnSave"
Me.TsBtnSave.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSave.Text = "保存"
Me.TsBtnSave.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator4
'
Me.ToolStripSeparator4.Name = "ToolStripSeparator4"
Me.ToolStripSeparator4.Size = New System.Drawing.Size(6, 36)
'
'TsBtnLoad
'
Me.TsBtnLoad.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnLoad.Image = CType(resources.GetObject("TsBtnLoad.Image"), System.Drawing.Image)
Me.TsBtnLoad.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnLoad.Name = "TsBtnLoad"
Me.TsBtnLoad.Size = New System.Drawing.Size(35, 33)
Me.TsBtnLoad.Text = "重载"
Me.TsBtnLoad.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
Me.TsBtnLoad.Visible = False
'
'TsBtnSaveAs
'
Me.TsBtnSaveAs.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.TsBtnSaveAs.Image = CType(resources.GetObject("TsBtnSaveAs.Image"), System.Drawing.Image)
Me.TsBtnSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSaveAs.Name = "TsBtnSaveAs"
Me.TsBtnSaveAs.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSaveAs.Text = "导出"
Me.TsBtnSaveAs.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
Me.TsBtnSaveAs.Visible = False
'
'ToolStripSeparator3
'
Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 36)
'
'ToolStrip1
'
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TsBtnOpen, Me.TsBtnSave, Me.ToolStripSeparator4, Me.TsBtnLoad, Me.TsBtnSaveAs, Me.ToolStripSeparator3, Me.ToolStripButton1, Me.ToolStripButton2})
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(984, 36)
Me.ToolStrip1.TabIndex = 7
Me.ToolStrip1.Text = "ToolStrip1"
'
'ToolStripButton1
'
Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image)
Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton1.Name = "ToolStripButton1"
Me.ToolStripButton1.Size = New System.Drawing.Size(72, 33)
Me.ToolStripButton1.Text = "编辑主流程"
Me.ToolStripButton1.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage
'
'ToolStripButton2
'
Me.ToolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
Me.ToolStripButton2.Image = CType(resources.GetObject("ToolStripButton2.Image"), System.Drawing.Image)
Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton2.Name = "ToolStripButton2"
Me.ToolStripButton2.Size = New System.Drawing.Size(72, 33)
Me.ToolStripButton2.Text = "编辑副流程"
'
'StuMain
'
Me.StuMain.Location = New System.Drawing.Point(0, 539)
Me.StuMain.Name = "StuMain"
Me.StuMain.Size = New System.Drawing.Size(984, 22)
Me.StuMain.TabIndex = 8
Me.StuMain.Text = "StatusStrip1"
'
'DlgOpenFile
'
Me.DlgOpenFile.FileName = "OpenFileDialog1"
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 36)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.GroupBox2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.GroupBox1)
Me.SplitContainer1.Size = New System.Drawing.Size(984, 503)
Me.SplitContainer1.SplitterDistance = 444
Me.SplitContainer1.TabIndex = 9
'
'GroupBox2
'
Me.GroupBox2.Controls.Add(Me.GrdStationPlan)
Me.GroupBox2.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox2.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.GroupBox2.Location = New System.Drawing.Point(0, 0)
Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(444, 503)
Me.GroupBox2.TabIndex = 0
Me.GroupBox2.TabStop = False
Me.GroupBox2.Text = "主流程:"
'
'GrdStationPlan
'
Me.GrdStationPlan.BorderStyle = FlexCell.BorderStyleEnum.None
Me.GrdStationPlan.CheckedImage = Nothing
Me.GrdStationPlan.ContextMenuStrip = Me.CmsPlanGrid
Me.GrdStationPlan.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
Me.GrdStationPlan.Dock = System.Windows.Forms.DockStyle.Fill
Me.GrdStationPlan.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.GrdStationPlan.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer))
Me.GrdStationPlan.Location = New System.Drawing.Point(3, 21)
Me.GrdStationPlan.Name = "GrdStationPlan"
Me.GrdStationPlan.Size = New System.Drawing.Size(438, 479)
Me.GrdStationPlan.TabIndex = 4
Me.GrdStationPlan.UncheckedImage = Nothing
'
'ZQ_Phobos_T1_FrmStationPlan
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(984, 561)
Me.Controls.Add(Me.SplitContainer1)
Me.Controls.Add(Me.ToolStrip1)
Me.Controls.Add(Me.StuMain)
Me.Name = "ZQ_Phobos_T1_FrmStationPlan"
Me.Text = "Form1"
Me.GroupBox1.ResumeLayout(False)
Me.CmsPlanGrid.ResumeLayout(False)
Me.ToolStrip1.ResumeLayout(False)
Me.ToolStrip1.PerformLayout()
Me.SplitContainer1.Panel1.ResumeLayout(False)
Me.SplitContainer1.Panel2.ResumeLayout(False)
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer1.ResumeLayout(False)
Me.GroupBox2.ResumeLayout(False)
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents MsiCopyNode As ToolStripMenuItem
Friend WithEvents MsiNodePaste As ToolStripMenuItem
Friend WithEvents ToolStripSeparator5 As ToolStripSeparator
Friend WithEvents MsiUndo As ToolStripMenuItem
Friend WithEvents MsiRedo As ToolStripMenuItem
Friend WithEvents ToolStripSeparator6 As ToolStripSeparator
Friend WithEvents MsiSaveNodeFile As ToolStripMenuItem
Friend WithEvents MsiLoadNodeFile As ToolStripMenuItem
Friend WithEvents TsmiDebugStart As ToolStripMenuItem
Friend WithEvents GroupBox1 As GroupBox
Friend WithEvents Grid1 As FlexCell.Grid
Friend WithEvents CmsPlanGrid As ContextMenuStrip
Friend WithEvents MsiCutNode As ToolStripMenuItem
Friend WithEvents ToolStripSeparator7 As ToolStripSeparator
Friend WithEvents TsmiDebugEnd As ToolStripMenuItem
Friend WithEvents TsmiDebugStep As ToolStripMenuItem
Friend WithEvents TsmiDebugContinue As ToolStripMenuItem
Friend WithEvents ToolStripSeparator8 As ToolStripSeparator
Friend WithEvents TsmiDebugSetup As ToolStripMenuItem
Friend WithEvents TsmiDebugMain As ToolStripMenuItem
Friend WithEvents TsmiDebugPass As ToolStripMenuItem
Friend WithEvents TsmiDebugFail As ToolStripMenuItem
Friend WithEvents TsmiDebugCleanup As ToolStripMenuItem
Friend WithEvents ToolStripSeparator9 As ToolStripSeparator
Friend WithEvents TsmiDebugNode As ToolStripMenuItem
Friend WithEvents TsmiDebugNodeBegin As ToolStripMenuItem
Friend WithEvents TsBtnOpen As ToolStripButton
Friend WithEvents TsBtnSave As ToolStripButton
Friend WithEvents ToolStripSeparator4 As ToolStripSeparator
Friend WithEvents TsBtnLoad As ToolStripButton
Friend WithEvents TsBtnSaveAs As ToolStripButton
Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
Friend WithEvents ToolStrip1 As ToolStrip
Friend WithEvents StuMain As StatusStrip
Friend WithEvents DlgOpenFile As OpenFileDialog
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents GroupBox2 As GroupBox
Friend WithEvents GrdStationPlan As FlexCell.Grid
Friend WithEvents ToolStripButton1 As ToolStripButton
Friend WithEvents ToolStripButton2 As ToolStripButton
End Class

View File

@@ -0,0 +1,215 @@
<?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="CmsPlanGrid.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>342, 55</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="TsBtnOpen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHqSURBVGhD7Zm9Tt1AEEYvNDxCArwSXZDSpAwiFQ+HEA2Q
dPmpeAl4AaALEnxTXDSate/xeHcvkeIjnerzN97F9rWEVwsLC6PsyFP5Rz7Jl07ey0+yKQfyuxw6YQ//
ys+yCbvyhxw6UU+f5RdZzTc5dIJt2ORK2D3vh17ID3KNz8wabLG2aD+vehOP0g/8KD0+M2tpvgk/yIxQ
PodjGTcx+5nwQ8wI5XNptgk/wIxQXkOTTfiyGaG8lupN+KIZiflc7Q18JIcYe7AnvbF9yYzEvMY7OcbQ
JjYd/4YvmBEbEo+ZKy3INhE7CBXsstvlj8dl3XQLeWIPSRc6k15PutCZ9HrShc6k15MudCa9nnShM+n1
pAudSa+HCq1+RqNjP6vxOIQKLV9k0aEXWzwGoULMWxuhvIAKMW9thPICKlCeheZRXkAFyrPQPMoLqEB5
FppHeQEVKM9C8ygvoALlWWge5QVUoDwLzaO8gAqUZ6F5lBdQgfIsNI/yAipQnoXmUV5ABcqz0DzKCx6k
L/j/TBs+M2vZNM8+tPjM1ob8lr50LvflGp+ZtYzNs3NeSp/9ksiZ9KV/ya8S2ZO3cmjAe3ol7cPjJA7l
jRwa9B5eS38bT8J2eyJ/yvjVZhvaA2vntttm8l9+YeH/YrV6BfNWMy9RUhK1AAAAAElFTkSuQmCC
</value>
</data>
<data name="TsBtnLoad.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVGhD1ZnLSgRBFEMbFN3rUv03H1v160T/wDfot+jo
VhNk4FqUk77dqRrnQGAgnZt+TS26hhnsQpfQPbSAvsziTM6+gNhl5QB6hWrFLfQCsdMC70bPk1+KF2F5
EnxtagU9dA7N5gGKQ68g2+MNHELXUOy6g2bzDsWhLGrFERS73qDZxIFUa+x99oGCyX1b0OnPz19MHjiR
SX370DNUC0waOIN03za0PPlaIA6r+W7SfWfQqkD0ar6bdN8TtCoQvZrvJt33Ca0KRK/mu0n3qYDy3aT7
VED5btJ9KqB8N+k+FVC+m3SfCijfTbpPBZTvJt2nAsp3k+5TAeW7SfepgPLdpPtUQPlu0n0qoHw36T4V
UL6bdJ8KKN9Nuk8FlO8m3acCyneT7lMB5btJ96mA8t2k+1RA+W7SfSqgfDfpPhVQvpt0nwr8+4+7MUCV
lJ/X+Qm8xUXw5G+g2DXq83oMUCXcsyqP6aVRGxxlqITbPNzuKY9rLXbuQJIyWIM7Mj0vIrXJV4b/gneD
j5TvZfnHdogzbyF2jLrzS8pBG8fGX0DPdb4Jvdb5ZqxznT+BZrOudf4R4saihd7rPE9+D7LSep3/gPh/
O4a4sTiBYfgGl13a4+npcwkAAAAASUVORK5CYII=
</value>
</data>
<data name="TsBtnSaveAs.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADQSURBVEhL5ZYxDgFBGEbnCE4gjuAcCnEER3AER9BpVWqV
QqcTlSOIUkVFx/fWSMYsyfx/FCu+5CX7ZWfmTbKT3Q1J+mLnYCmKMhQ3sRKLQg5iL4ryFHSqVpaZ+H3B
UQwy2qIWr4A5OaxVi0fATrsJPfFVQR7m/pGA42eBmARc8yrgpMxj38aewhjuEbNg/LgMLUEfVe01jGmu
4CpO4hz7JfYUxrgFGzER09jXsacwxi34/WdggZgE7MwCMQk8aYbA8tHPYe5Hgfe35R2spYRwB61XwcSY
NxMjAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>230, 55</value>
</metadata>
<data name="ToolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolStripButton2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="StuMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>469, 55</value>
</metadata>
<metadata name="DlgOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>570, 55</value>
</metadata>
</root>

View File

@@ -0,0 +1,371 @@
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Imports UTS_Core.UTSModule.Test.StatusMonitor
Public Class ZQ_Phobos_T1_FrmStationPlan
#Region "框架部分 要放在最前段"
Implements IProcessStation
Private _utsApp As UtsAppForm
Private _stationPlan As StationPackagePlan
Public Sub Station_Changed() Implements IProcessStation.StationChanged
ApplicationLog.WriteInfoLog($"编辑页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
Try
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
Catch ex As Exception
MsgBox($"加载项目流程失败,{ex.Message}")
End Try
'InitGrid(_stationPlan)
FileToLoadTable(_stationPlan.TemplateFile, _stationPlan.CompanyLogo)
ApplicationLog.WriteInfoLog($"编辑页面站位变更完成。")
End Sub
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
#End Region
#Region "界面控件初始化"
Private Sub ZQ_Phobos_T1_FrmStationPlan_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ApplicationLog.WriteInfoLog($"编辑页面加载中。")
'初始化UTS窗体信息,失败则关闭窗体
If InitializeUtsApp() = False Then Return
'初始化窗体页面
InitializeForm()
ApplicationLog.WriteInfoLog($"编辑页面加载完成。")
End Sub
Private Function InitializeUtsApp() As Boolean
_utsApp = UtsAppForm.CreateSingleton()
_utsApp.AddStatisticsObserver(Me)
Try
If _utsApp.IsInitialized = False Then
_utsApp.Initialize(ProcessStation.StationTypeEnum.Package) 'Todo:可根据需要限定可选站位
End If
Catch ex As Exception
ApplicationLog.WriteErrorLog($"初始化窗体失败,原因:{ex.Message}!")
MsgBox($"初始化窗体失败,原因:{ex.Message}")
Close()
Return False
End Try
Return True
End Function
Private Sub InitializeForm()
InitGrid(_stationPlan)
End Sub
#Region "Package表格"
Public Sub FileToLoadTable(mainfilename As String, deputyfilename As String)
If IO.File.Exists(mainfilename) Then
GrdStationPlan.OpenFile(_stationPlan.TemplateFile)
End If
If IO.File.Exists(deputyfilename) Then
Grid1.OpenFile(_stationPlan.TemplateFile)
End If
End Sub
Private Sub InitGrid(Optional stationplan As StationPackagePlan = Nothing)
GrdStationPlan = UpdateStepTestRecord(New FlexCell.Grid)
Grid1 = UpdateStepTestRecord(New FlexCell.Grid)
End Sub
#Region "主表初始化装载"
Enum ColNames
No
Content
DataSource
SendData
PassResult
RetryCount
RetryInterval
ReadInterval
OperatingMode
Lower
Upper
TestVal
TestResult
IsRecord
RecordName
Max
End Enum
Public Function UpdateStepTestRecord(theGrid As FlexCell.Grid) As FlexCell.Grid
With theGrid
.AutoRedraw = False
'.AutoSize = True
.Cols = ColNames.Max
.Rows = 1
.ExtendLastCol = True '最后一列自动扩充
.DisplayRowNumber = True '首列显示数字
.DefaultRowHeight = 20
.DefaultFont = New Font("微软雅黑", 10)
For col As Integer = 0 To ColNames.Max - 1
.Cell(0, col).Text = [Enum].GetName(GetType(ColNames), col) '设置列名
.Column(col).CellType = FlexCell.CellTypeEnum.TextBox '设置列型
.Column(col).Width = 140 '设置列宽
.Column(col).Alignment = FlexCell.AlignmentEnum.CenterCenter '设置对齐位置
Next
.ForeColorComment = Color.Blue
.BackColorBkg = Color.DimGray
.AutoRedraw = True
.Refresh()
.Locked = True
End With
DefaultData(theGrid)
Return theGrid
End Function
Public Sub DefaultData(ByRef theGrid As FlexCell.Grid)
Dim SendDatalist As New List(Of List(Of String
UartSendDataList(SendDatalist "确认测试板连接", "uts", "*IDN?", "uts-Phobos-rev01", "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "设置输出限流", "uts", "SET_PPS_CURR:400", "SET_PPS_CURR:400:TRUE", "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "设置输出电压", "uts", "SET_PPS_VOLT:2000", "SET_PPS_VOLT:2000:TRUE" "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "打开输出电压", "uts", "SET_PPS_OUTP:ON", "SET_PPS_OUTP:ON:TRUE", "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "清除峰值电流 - ch1", "uts", "CLR_PPS_CURR_PEAK:1", "CLR_PPS_CURR_PEAK:1:TRUE", "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "清除峰值电流 - ch2", "uts", "CLR_PPS_CURR_PEAK:2", "CLR_PPS_CURR_PEAK:2:TRUE", "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "清除峰值电流 - ch3", "uts", "CLR_PPS_CURR_PEAK:3", "CLR_PPS_CURR_PEAK:3:TRUE", "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "清除峰值电流 - ch4", "uts", "CLR_PPS_CURR_PEAK:4", "CLR_PPS_CURR_PEAK:4:TRUE", "3", "100", "300", "comparison", "", "", "", "", "", "")
UartSendDataList(SendDatalist "读取平均电流(轮询直到勾选的属性测试结束)", "uts", "RUN", "10", "max", "100", "300", "split", "", "", "", "", "", "")
UartSendDataList(SendDatalist "发送关闭电源命令", "uts", "SET_PPS_OUTP:OFF" "SET_PPS_OUTP:OFF:TRUE", "3", "100", "300", "comparison", "", "", "", "", "", "")
Grid5AddRow(theGrid, SendDatalist)
End Sub
Public Function UartSendDataList(ByRef SendDatalist As List(Of List(Of String ParamArray ptr As String) As List(Of String
Dim Datalist As New List(Of String
Datalist.AddRange(ptr)
SendDatalist.Add(Datalist)
End Function
Public Sub Grid5AddRow(ByRef theGrid As FlexCell.Grid, SendDatalist As List(Of List(Of String)
If SendDatalist.Count < 1 Then Return
For rowindex As Integer = 0 To SendDatalist.Count - 1
Dim Datalist As List(Of String = SendDatalist.Item(rowindex)
AddRowToTable(theGrid, Datalist)
Next
End Sub
Public Sub AddRowToTableByRef tablegrid As FlexCell.Grid, Datalist As List(Of String
tablegrid.AddItem("")
For colid As Integer = 1 To ColNames.Max - 1
tablegrid.Cell(tablegrid.Rows - 1, colid).Text = Datalist.Item(colid - 1)
Next
End Sub
#End Region
#Region "副表初始化装载"
Enum ColNames2
No
Content
DataSource
SendData
PassResult
RetryCount
RetryInterval
ReadInterval
OperatingMode
Lower
Upper
TestVal
TestResult
IsRecord
RecordName
Max
End Enum
Public Function UpdateStepTestRecord1(Userkeyval_grid As FlexCell.Grid) As FlexCell.Grid
With Userkeyval_grid
.AutoRedraw = False
'.AutoSize = True
.Cols = ColNames2.Max
.Rows = 1
.ExtendLastCol = True '最后一列自动扩充
.DisplayRowNumber = True '首列显示数字
For col As Integer = 0 To ColNames2.Max - 1
.Cell(0, col).Text = [Enum].GetName(GetType(ColNames2), col) '设置列名
.Column(col).CellType = FlexCell.CellTypeEnum.TextBox '设置列型
If col = ColNames2.Content OrElse col = ColNames2.SendData Then
.Column(col).Width = 140 '设置列宽
Else
.Column(col).Width = 70 '设置列宽
End If
.Column(col).Alignment = FlexCell.AlignmentEnum.RightCenter '设置对齐位置
Next
.ForeColorComment = Color.Blue
' .FrozenCols = ColNames.Description '冻结列
.AutoRedraw = True
.Refresh()
End With
DefaultData2(Userkeyval_grid)
Return Userkeyval_grid
End Function
Public Sub DefaultData2(ByRef Userkeyval_grid As FlexCell.Grid)
Dim SendDatalist As New List(Of List(Of String
UartSendDataList(SendDatalist "确认设备MAC地址", "设备", "mac", "", "5", "100", "", "len", "", "", "", "", "Y", "DUT_SN")
UartSendDataList(SendDatalist "确认设备固件版本", "设备", "version", "", "5", "100", "", "comparison", "0.1.1.1", "0.1.1.1", "", "", "Y", "FW_Ver")
UartSendDataList(SendDatalist "确认设备电压", "设备", "voltage", "", "5", "100", "", "scope", "1.8", "2.3", "", "", "Y", "Volt")
UartSendDataList(SendDatalist "确认设备温度", "设备", "tempre", "", "5", "100", "", "null", "", "", "", "", "Y", "DUT_Temp")
UartSendDataList(SendDatalist "确认设备湿度", "设备", "humiture", "", "5", "100", "", "null", "", "", "", "", "Y", "DUT_Humid")
UartSendDataList(SendDatalist "确认环境温度", "uts", "tempre", "", "", "", "", "null", "", "", "", "", "Y", "Enov_Temp")
UartSendDataList(SendDatalist "确认环境湿度", "uts", "humiture", "", "", "", "", "null", "", "", "", "", "Y", "Enov_Humdi")
UartSendDataList(SendDatalist "确认温度误差", "设备-uts", "4", "6", "", "", "", "null", "", "", "", "", "Y", "Diff_Temp")
UartSendDataList(SendDatalist "确认湿度误差", "设备-uts", "5", "7", "", "", "", "null", "", "", "", "", "Y", "Diff_Humidi")
UartSendDataList(SendDatalist "确认PIR数值", "设备", "pir", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "提示请打开PIR窗口", "设备", "tip", "", "", "", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认PIR数值", "设备", "pir", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "提示请关闭PIR窗口", "设备", "tip", "", "", "", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认PIR数值", "设备", "pir", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认左键键值", "设备", "keyleft", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认右键键值", "设备", "keyright", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "提示:请按下左键", "设备", "tip", "", "", "", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认左键键值", "设备", "keyleft", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认右键键值", "设备", "keyright", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "提示:请按下右键", "设备", "tip", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认左键键值", "设备", "keyleft", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认右键键值", "设备", "keyright", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "提示:请松开按键", "设备", "tip", "", "", "", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认左键键值", "设备", "keyleft", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "确认右键键值", "设备", "keyright", "", "5", "100", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "读取平均电流", "uts", "run", "", "", "", "", "null", "", "", "", "", "", "")
UartSendDataList(SendDatalist "读取峰值电流", "uts", "current", "", "", "", "", "null", "", "", "", "", "", "")
Grid5AddRow2(Userkeyval_grid, SendDatalist)
End Sub
Public Sub Grid5AddRow2(ByRef Userkeyval_grid As FlexCell.Grid, SendDatalist As List(Of List(Of String)
If SendDatalist.Count < 1 Then Return
For rowindex As Integer = 0 To SendDatalist.Count - 1
Dim Datalist As List(Of String = SendDatalist.Item(rowindex)
AddRowToTable2(Userkeyval_grid, Datalist)
Next
End Sub
Public Sub AddRowToTable2tablegrid As FlexCell.Grid, Datalist As List(Of String
tablegrid.AddItem("")
For colid As Integer = 1 To ColNames2.Max - 1
tablegrid.Cell(tablegrid.Rows - 1, colid).Text = Datalist.Item(colid - 1)
Next
End Sub
#End Region
#Region "界面控件事件"
Private Sub TsBtnSave_Click(sender As Object, e As EventArgs) Handles TsBtnSave.Click
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存中。")
UpdateGrid(_stationPlan)
ExportTreeViewToXml()
ApplicationLog.WriteInfoLog($"编辑页面执行流程保存完成。")
End Sub
''' <summary>
''' 将树状视图导出为Xml
''' </summary>
Private Sub ExportTreeViewToXml()
'保存至项目文件
Dim revStationPlanPath As String = $"{UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)}\Main.xml"
_stationPlan.SaveFile(revStationPlanPath)
'备份至临时文件
Dim tempPath As String = $"{UtsPath.StationDesignDirPath()}\Main.xml"
_stationPlan.SaveFile(tempPath)
If StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Changed Then
StationEditStatusMonitor.StationEditStatus = StationEditStatusMonitor.StationEditStatusEnum.Saved
End If
End Sub
Private Sub UpdateGrid(stationplan As StationPackagePlan)
Dim revStationPlanPath As String = UtsPath.GetStationPacketTestPlanDirPath(_stationPlan.ParentPacket.Name)
_stationPlan.TemplateFile = revStationPlanPath & "\Maintest.flx"
_stationPlan.CompanyLogo = revStationPlanPath & "\Deputytest.flx"
GrdStationPlan.SaveFile(revStationPlanPath & "\Maintest.flx")
Grid1.SaveFile(revStationPlanPath & "\Deputytest.flx")
GrdStationPlan.SaveFile(UtsPath.StationDesignDirPath() & "\Maintest.flx")
Grid1.SaveFile(UtsPath.StationDesignDirPath() & "\Deputytest.flx")
End Sub
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
GrdStationPlan.Locked = Not GrdStationPlan.Locked
If GrdStationPlan.Locked Then
ToolStripButton1.Text = "编辑主流程"
Else
ToolStripButton1.Text = "锁定主流程"
End If
End Sub
Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click
Grid1.Locked = Not Grid1.Locked
If Grid1.Locked Then
ToolStripButton2.Text = "编辑主流程"
Else
ToolStripButton2.Text = "锁定主流程"
End If
End Sub
#End Region
#End Region
#End Region
End Class

File diff suppressed because it is too large Load Diff

View 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="SerialPort1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>133, 54</value>
</metadata>
<metadata name="SerialPort2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>249, 54</value>
</metadata>
<metadata name="SerialPort3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>365, 54</value>
</metadata>
<metadata name="SerialPort4.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>481, 54</value>
</metadata>
<metadata name="SerialPort5.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>597, 54</value>
</metadata>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,428 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Phobos_T2_FrmStationPlan
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ZQ_Phobos_T2_FrmStationPlan))
Me.MsiCopyNode = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiNodePaste = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiUndo = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiRedo = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiSaveNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.MsiLoadNodeFile = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStart = New System.Windows.Forms.ToolStripMenuItem()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.TsBtnOpen = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSave = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator()
Me.TsBtnLoad = New System.Windows.Forms.ToolStripButton()
Me.TsBtnSaveAs = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
Me.MsiCutNode = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
Me.CmsPlanGrid = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.ToolStripSeparator7 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugEnd = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugStep = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugContinue = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator8 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugSetup = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugMain = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugPass = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugFail = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugCleanup = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator9 = New System.Windows.Forms.ToolStripSeparator()
Me.TsmiDebugNode = New System.Windows.Forms.ToolStripMenuItem()
Me.TsmiDebugNodeBegin = New System.Windows.Forms.ToolStripMenuItem()
Me.StuMain = New System.Windows.Forms.StatusStrip()
Me.DlgOpenFile = New System.Windows.Forms.OpenFileDialog()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
Me.LblDesc = New System.Windows.Forms.Label()
Me.GrdStationPlan = New FlexCell.Grid()
Me.ToolStrip1.SuspendLayout
Me.CmsPlanGrid.SuspendLayout
CType(Me.SplitContainer1,System.ComponentModel.ISupportInitialize).BeginInit
Me.SplitContainer1.Panel1.SuspendLayout
Me.SplitContainer1.Panel2.SuspendLayout
Me.SplitContainer1.SuspendLayout
Me.GroupBox2.SuspendLayout
Me.SuspendLayout
'
'MsiCopyNode
'
Me.MsiCopyNode.Enabled = false
Me.MsiCopyNode.Name = "MsiCopyNode"
Me.MsiCopyNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCopyNode.Text = "复制"
'
'MsiNodePaste
'
Me.MsiNodePaste.Enabled = false
Me.MsiNodePaste.Name = "MsiNodePaste"
Me.MsiNodePaste.Size = New System.Drawing.Size(192, 22)
Me.MsiNodePaste.Text = "粘贴"
'
'ToolStripSeparator5
'
Me.ToolStripSeparator5.Name = "ToolStripSeparator5"
Me.ToolStripSeparator5.Size = New System.Drawing.Size(189, 6)
'
'MsiUndo
'
Me.MsiUndo.Enabled = false
Me.MsiUndo.Name = "MsiUndo"
Me.MsiUndo.Size = New System.Drawing.Size(192, 22)
Me.MsiUndo.Text = "撤销"
'
'MsiRedo
'
Me.MsiRedo.Enabled = false
Me.MsiRedo.Name = "MsiRedo"
Me.MsiRedo.Size = New System.Drawing.Size(192, 22)
Me.MsiRedo.Text = "重做"
'
'ToolStripSeparator6
'
Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
Me.ToolStripSeparator6.Size = New System.Drawing.Size(189, 6)
'
'MsiSaveNodeFile
'
Me.MsiSaveNodeFile.Name = "MsiSaveNodeFile"
Me.MsiSaveNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiSaveNodeFile.Text = "另存为节点文件"
'
'MsiLoadNodeFile
'
Me.MsiLoadNodeFile.Name = "MsiLoadNodeFile"
Me.MsiLoadNodeFile.Size = New System.Drawing.Size(192, 22)
Me.MsiLoadNodeFile.Text = "加载节点文件"
'
'TsmiDebugStart
'
Me.TsmiDebugStart.Name = "TsmiDebugStart"
Me.TsmiDebugStart.ShortcutKeys = System.Windows.Forms.Keys.F1
Me.TsmiDebugStart.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStart.Text = "开始执行"
'
'GroupBox1
'
Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox1.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.GroupBox1.Location = New System.Drawing.Point(0, 0)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(536, 561)
Me.GroupBox1.TabIndex = 0
Me.GroupBox1.TabStop = false
Me.GroupBox1.Text = "常规预览"
'
'TsBtnOpen
'
Me.TsBtnOpen.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnOpen.Image = CType(resources.GetObject("TsBtnOpen.Image"),System.Drawing.Image)
Me.TsBtnOpen.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnOpen.Name = "TsBtnOpen"
Me.TsBtnOpen.Size = New System.Drawing.Size(35, 33)
Me.TsBtnOpen.Text = "打开"
Me.TsBtnOpen.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSave
'
Me.TsBtnSave.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnSave.Image = CType(resources.GetObject("TsBtnSave.Image"),System.Drawing.Image)
Me.TsBtnSave.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSave.Name = "TsBtnSave"
Me.TsBtnSave.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSave.Text = "保存"
Me.TsBtnSave.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator4
'
Me.ToolStripSeparator4.Name = "ToolStripSeparator4"
Me.ToolStripSeparator4.Size = New System.Drawing.Size(6, 36)
'
'TsBtnLoad
'
Me.TsBtnLoad.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnLoad.Image = CType(resources.GetObject("TsBtnLoad.Image"),System.Drawing.Image)
Me.TsBtnLoad.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnLoad.Name = "TsBtnLoad"
Me.TsBtnLoad.Size = New System.Drawing.Size(35, 33)
Me.TsBtnLoad.Text = "重载"
Me.TsBtnLoad.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'TsBtnSaveAs
'
Me.TsBtnSaveAs.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.TsBtnSaveAs.Image = CType(resources.GetObject("TsBtnSaveAs.Image"),System.Drawing.Image)
Me.TsBtnSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta
Me.TsBtnSaveAs.Name = "TsBtnSaveAs"
Me.TsBtnSaveAs.Size = New System.Drawing.Size(35, 33)
Me.TsBtnSaveAs.Text = "导出"
Me.TsBtnSaveAs.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText
'
'ToolStripSeparator3
'
Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 36)
'
'MsiCutNode
'
Me.MsiCutNode.Enabled = false
Me.MsiCutNode.Name = "MsiCutNode"
Me.MsiCutNode.Size = New System.Drawing.Size(192, 22)
Me.MsiCutNode.Text = "剪切"
'
'ToolStrip1
'
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TsBtnOpen, Me.TsBtnSave, Me.ToolStripSeparator4, Me.TsBtnLoad, Me.TsBtnSaveAs, Me.ToolStripSeparator3})
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(984, 36)
Me.ToolStrip1.TabIndex = 7
Me.ToolStrip1.Text = "ToolStrip1"
'
'CmsPlanGrid
'
Me.CmsPlanGrid.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MsiCopyNode, Me.MsiCutNode, Me.MsiNodePaste, Me.ToolStripSeparator5, Me.MsiUndo, Me.MsiRedo, Me.ToolStripSeparator6, Me.MsiSaveNodeFile, Me.MsiLoadNodeFile, Me.ToolStripSeparator7, Me.TsmiDebugStart, Me.TsmiDebugEnd, Me.TsmiDebugStep, Me.TsmiDebugContinue, Me.ToolStripSeparator8, Me.TsmiDebugSetup, Me.TsmiDebugMain, Me.TsmiDebugPass, Me.TsmiDebugFail, Me.TsmiDebugCleanup, Me.ToolStripSeparator9, Me.TsmiDebugNode, Me.TsmiDebugNodeBegin})
Me.CmsPlanGrid.Name = "CmsMain"
Me.CmsPlanGrid.Size = New System.Drawing.Size(193, 430)
'
'ToolStripSeparator7
'
Me.ToolStripSeparator7.Name = "ToolStripSeparator7"
Me.ToolStripSeparator7.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugEnd
'
Me.TsmiDebugEnd.Name = "TsmiDebugEnd"
Me.TsmiDebugEnd.ShortcutKeys = System.Windows.Forms.Keys.F2
Me.TsmiDebugEnd.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugEnd.Text = "退出执行"
'
'TsmiDebugStep
'
Me.TsmiDebugStep.Name = "TsmiDebugStep"
Me.TsmiDebugStep.ShortcutKeys = System.Windows.Forms.Keys.F3
Me.TsmiDebugStep.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugStep.Text = "单步执行"
'
'TsmiDebugContinue
'
Me.TsmiDebugContinue.Name = "TsmiDebugContinue"
Me.TsmiDebugContinue.ShortcutKeys = System.Windows.Forms.Keys.F4
Me.TsmiDebugContinue.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugContinue.Text = "继续执行"
'
'ToolStripSeparator8
'
Me.ToolStripSeparator8.Name = "ToolStripSeparator8"
Me.ToolStripSeparator8.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugSetup
'
Me.TsmiDebugSetup.Name = "TsmiDebugSetup"
Me.TsmiDebugSetup.ShortcutKeys = System.Windows.Forms.Keys.F5
Me.TsmiDebugSetup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugSetup.Text = "Setup模块执行"
'
'TsmiDebugMain
'
Me.TsmiDebugMain.Name = "TsmiDebugMain"
Me.TsmiDebugMain.ShortcutKeys = System.Windows.Forms.Keys.F6
Me.TsmiDebugMain.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugMain.Text = "Main模块执行"
'
'TsmiDebugPass
'
Me.TsmiDebugPass.Name = "TsmiDebugPass"
Me.TsmiDebugPass.ShortcutKeys = System.Windows.Forms.Keys.F7
Me.TsmiDebugPass.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugPass.Text = "Pass模块执行"
'
'TsmiDebugFail
'
Me.TsmiDebugFail.Name = "TsmiDebugFail"
Me.TsmiDebugFail.ShortcutKeys = System.Windows.Forms.Keys.F8
Me.TsmiDebugFail.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugFail.Text = "Fail模块执行"
'
'TsmiDebugCleanup
'
Me.TsmiDebugCleanup.Name = "TsmiDebugCleanup"
Me.TsmiDebugCleanup.ShortcutKeys = System.Windows.Forms.Keys.F9
Me.TsmiDebugCleanup.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugCleanup.Text = "Cleanup模块执行"
'
'ToolStripSeparator9
'
Me.ToolStripSeparator9.Name = "ToolStripSeparator9"
Me.ToolStripSeparator9.Size = New System.Drawing.Size(189, 6)
'
'TsmiDebugNode
'
Me.TsmiDebugNode.Name = "TsmiDebugNode"
Me.TsmiDebugNode.ShortcutKeys = System.Windows.Forms.Keys.F10
Me.TsmiDebugNode.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNode.Text = "节点测试"
'
'TsmiDebugNodeBegin
'
Me.TsmiDebugNodeBegin.Name = "TsmiDebugNodeBegin"
Me.TsmiDebugNodeBegin.ShortcutKeys = System.Windows.Forms.Keys.F11
Me.TsmiDebugNodeBegin.Size = New System.Drawing.Size(192, 22)
Me.TsmiDebugNodeBegin.Text = "节点开始测试"
'
'StuMain
'
Me.StuMain.Location = New System.Drawing.Point(0, 539)
Me.StuMain.Name = "StuMain"
Me.StuMain.Size = New System.Drawing.Size(984, 22)
Me.StuMain.TabIndex = 8
Me.StuMain.Text = "StatusStrip1"
'
'DlgOpenFile
'
Me.DlgOpenFile.FileName = "OpenFileDialog1"
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.GroupBox2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.GroupBox1)
Me.SplitContainer1.Size = New System.Drawing.Size(984, 561)
Me.SplitContainer1.SplitterDistance = 444
Me.SplitContainer1.TabIndex = 9
'
'GroupBox2
'
Me.GroupBox2.Controls.Add(Me.LblDesc)
Me.GroupBox2.Controls.Add(Me.GrdStationPlan)
Me.GroupBox2.Dock = System.Windows.Forms.DockStyle.Fill
Me.GroupBox2.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.GroupBox2.Location = New System.Drawing.Point(0, 0)
Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(444, 561)
Me.GroupBox2.TabIndex = 0
Me.GroupBox2.TabStop = false
Me.GroupBox2.Text = "流程参数"
'
'LblDesc
'
Me.LblDesc.Dock = System.Windows.Forms.DockStyle.Bottom
Me.LblDesc.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.LblDesc.Location = New System.Drawing.Point(3, 497)
Me.LblDesc.Name = "LblDesc"
Me.LblDesc.Size = New System.Drawing.Size(438, 61)
Me.LblDesc.TabIndex = 6
'
'GrdStationPlan
'
Me.GrdStationPlan.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
Me.GrdStationPlan.BorderStyle = FlexCell.BorderStyleEnum.None
Me.GrdStationPlan.CheckedImage = Nothing
Me.GrdStationPlan.ContextMenuStrip = Me.CmsPlanGrid
Me.GrdStationPlan.DefaultFont = New System.Drawing.Font("宋体", 9!)
Me.GrdStationPlan.Font = New System.Drawing.Font("微软雅黑", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.GrdStationPlan.GridColor = System.Drawing.Color.FromArgb(CType(CType(192,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(192,Byte),Integer))
Me.GrdStationPlan.Location = New System.Drawing.Point(0, 24)
Me.GrdStationPlan.Name = "GrdStationPlan"
Me.GrdStationPlan.Size = New System.Drawing.Size(441, 470)
Me.GrdStationPlan.TabIndex = 4
Me.GrdStationPlan.UncheckedImage = Nothing
'
'ZQ_Mars_P2_FrmStationPlan
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 12!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(984, 561)
Me.Controls.Add(Me.ToolStrip1)
Me.Controls.Add(Me.StuMain)
Me.Controls.Add(Me.SplitContainer1)
Me.Name = "ZQ_Mars_P2_FrmStationPlan"
Me.Text = "ZQ_Mars_P2_FrmStationPlan"
Me.ToolStrip1.ResumeLayout(false)
Me.ToolStrip1.PerformLayout
Me.CmsPlanGrid.ResumeLayout(false)
Me.SplitContainer1.Panel1.ResumeLayout(false)
Me.SplitContainer1.Panel2.ResumeLayout(false)
CType(Me.SplitContainer1,System.ComponentModel.ISupportInitialize).EndInit
Me.SplitContainer1.ResumeLayout(false)
Me.GroupBox2.ResumeLayout(false)
Me.ResumeLayout(false)
Me.PerformLayout
End Sub
Friend WithEvents MsiCopyNode As ToolStripMenuItem
Friend WithEvents MsiNodePaste As ToolStripMenuItem
Friend WithEvents ToolStripSeparator5 As ToolStripSeparator
Friend WithEvents MsiUndo As ToolStripMenuItem
Friend WithEvents MsiRedo As ToolStripMenuItem
Friend WithEvents ToolStripSeparator6 As ToolStripSeparator
Friend WithEvents MsiSaveNodeFile As ToolStripMenuItem
Friend WithEvents MsiLoadNodeFile As ToolStripMenuItem
Friend WithEvents TsmiDebugStart As ToolStripMenuItem
Friend WithEvents GroupBox1 As GroupBox
Friend WithEvents TsBtnOpen As ToolStripButton
Friend WithEvents TsBtnSave As ToolStripButton
Friend WithEvents ToolStripSeparator4 As ToolStripSeparator
Friend WithEvents TsBtnLoad As ToolStripButton
Friend WithEvents TsBtnSaveAs As ToolStripButton
Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
Friend WithEvents MsiCutNode As ToolStripMenuItem
Friend WithEvents ToolStrip1 As ToolStrip
Friend WithEvents CmsPlanGrid As ContextMenuStrip
Friend WithEvents ToolStripSeparator7 As ToolStripSeparator
Friend WithEvents TsmiDebugEnd As ToolStripMenuItem
Friend WithEvents TsmiDebugStep As ToolStripMenuItem
Friend WithEvents TsmiDebugContinue As ToolStripMenuItem
Friend WithEvents ToolStripSeparator8 As ToolStripSeparator
Friend WithEvents TsmiDebugSetup As ToolStripMenuItem
Friend WithEvents TsmiDebugMain As ToolStripMenuItem
Friend WithEvents TsmiDebugPass As ToolStripMenuItem
Friend WithEvents TsmiDebugFail As ToolStripMenuItem
Friend WithEvents TsmiDebugCleanup As ToolStripMenuItem
Friend WithEvents ToolStripSeparator9 As ToolStripSeparator
Friend WithEvents TsmiDebugNode As ToolStripMenuItem
Friend WithEvents TsmiDebugNodeBegin As ToolStripMenuItem
Friend WithEvents StuMain As StatusStrip
Friend WithEvents DlgOpenFile As OpenFileDialog
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents GroupBox2 As GroupBox
Friend WithEvents LblDesc As Label
Friend WithEvents GrdStationPlan As FlexCell.Grid
End Class

View File

@@ -0,0 +1,327 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Phobos_T2_FrmStationTest
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.SerialPort1 = New System.IO.Ports.SerialPort(Me.components)
Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
Me.timer_Rcvd_Timeout = New System.Windows.Forms.Timer(Me.components)
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
Me.tss_CommPort = New System.Windows.Forms.ToolStripStatusLabel()
Me.timer_AutoFindCommPort = New System.Windows.Forms.Timer(Me.components)
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.SplitContainer2 = New System.Windows.Forms.SplitContainer()
Me.Label7 = New System.Windows.Forms.Label()
Me.Label6 = New System.Windows.Forms.Label()
Me.txt_UpNum = New System.Windows.Forms.TextBox()
Me.txt_testnum = New System.Windows.Forms.TextBox()
Me.Label4 = New System.Windows.Forms.Label()
Me.Label5 = New System.Windows.Forms.Label()
Me.txt_LooadNum = New System.Windows.Forms.TextBox()
Me.TextBox3 = New System.Windows.Forms.TextBox()
Me.Label3 = New System.Windows.Forms.Label()
Me.TextBox2 = New System.Windows.Forms.TextBox()
Me.Label2 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.TextBox1 = New System.Windows.Forms.TextBox()
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
Me.StatusStrip1.SuspendLayout
CType(Me.SplitContainer1,System.ComponentModel.ISupportInitialize).BeginInit
Me.SplitContainer1.Panel1.SuspendLayout
Me.SplitContainer1.Panel2.SuspendLayout
Me.SplitContainer1.SuspendLayout
CType(Me.SplitContainer2,System.ComponentModel.ISupportInitialize).BeginInit
Me.SplitContainer2.Panel1.SuspendLayout
Me.SplitContainer2.Panel2.SuspendLayout
Me.SplitContainer2.SuspendLayout
Me.SuspendLayout
'
'SerialPort1
'
'
'Timer1
'
Me.Timer1.Enabled = true
'
'timer_Rcvd_Timeout
'
Me.timer_Rcvd_Timeout.Enabled = true
Me.timer_Rcvd_Timeout.Interval = 1
'
'StatusStrip1
'
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tss_CommPort})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 549)
Me.StatusStrip1.Name = "StatusStrip1"
Me.StatusStrip1.Size = New System.Drawing.Size(985, 22)
Me.StatusStrip1.TabIndex = 0
Me.StatusStrip1.Text = "StatusStrip1"
'
'tss_CommPort
'
Me.tss_CommPort.AutoSize = false
Me.tss_CommPort.Font = New System.Drawing.Font("微软雅黑", 9!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.tss_CommPort.Name = "tss_CommPort"
Me.tss_CommPort.Size = New System.Drawing.Size(80, 17)
Me.tss_CommPort.Text = "COM1"
'
'timer_AutoFindCommPort
'
'
'SplitContainer1
'
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.Label6)
Me.SplitContainer1.Panel2.Controls.Add(Me.txt_UpNum)
Me.SplitContainer1.Panel2.Controls.Add(Me.txt_testnum)
Me.SplitContainer1.Panel2.Controls.Add(Me.Label4)
Me.SplitContainer1.Panel2.Controls.Add(Me.Label5)
Me.SplitContainer1.Panel2.Controls.Add(Me.txt_LooadNum)
Me.SplitContainer1.Panel2.Controls.Add(Me.TextBox3)
Me.SplitContainer1.Panel2.Controls.Add(Me.Label3)
Me.SplitContainer1.Panel2.Controls.Add(Me.TextBox2)
Me.SplitContainer1.Panel2.Controls.Add(Me.Label2)
Me.SplitContainer1.Panel2.Controls.Add(Me.Label1)
Me.SplitContainer1.Panel2.Controls.Add(Me.TextBox1)
Me.SplitContainer1.Size = New System.Drawing.Size(985, 549)
Me.SplitContainer1.SplitterDistance = 325
Me.SplitContainer1.TabIndex = 1
'
'SplitContainer2
'
Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer2.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer2.Name = "SplitContainer2"
Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal
'
'SplitContainer2.Panel1
'
Me.SplitContainer2.Panel1.Controls.Add(Me.Label7)
'
'SplitContainer2.Panel2
'
Me.SplitContainer2.Panel2.Controls.Add(Me.RichTextBox1)
Me.SplitContainer2.Size = New System.Drawing.Size(325, 549)
Me.SplitContainer2.SplitterDistance = 260
Me.SplitContainer2.TabIndex = 0
'
'Label7
'
Me.Label7.Dock = System.Windows.Forms.DockStyle.Fill
Me.Label7.Font = New System.Drawing.Font("宋体", 39.75!, CType((System.Drawing.FontStyle.Bold Or System.Drawing.FontStyle.Underline),System.Drawing.FontStyle), System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.Label7.Location = New System.Drawing.Point(0, 0)
Me.Label7.Name = "Label7"
Me.Label7.Size = New System.Drawing.Size(325, 260)
Me.Label7.TabIndex = 29
Me.Label7.Text = "0"
Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Label6
'
Me.Label6.AutoSize = true
Me.Label6.Font = New System.Drawing.Font("宋体", 20!)
Me.Label6.Location = New System.Drawing.Point(3, 274)
Me.Label6.Name = "Label6"
Me.Label6.Size = New System.Drawing.Size(161, 27)
Me.Label6.TabIndex = 28
Me.Label6.Text = "请确认称重:"
Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'txt_UpNum
'
Me.txt_UpNum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_UpNum.Font = New System.Drawing.Font("宋体", 27!)
Me.txt_UpNum.Location = New System.Drawing.Point(414, 324)
Me.txt_UpNum.Name = "txt_UpNum"
Me.txt_UpNum.ReadOnly = true
Me.txt_UpNum.Size = New System.Drawing.Size(110, 49)
Me.txt_UpNum.TabIndex = 27
Me.txt_UpNum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'txt_testnum
'
Me.txt_testnum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_testnum.Font = New System.Drawing.Font("宋体", 27!)
Me.txt_testnum.Location = New System.Drawing.Point(256, 324)
Me.txt_testnum.Name = "txt_testnum"
Me.txt_testnum.Size = New System.Drawing.Size(110, 49)
Me.txt_testnum.TabIndex = 26
Me.txt_testnum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Label4
'
Me.Label4.AutoSize = true
Me.Label4.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.Label4.Location = New System.Drawing.Point(372, 330)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(36, 37)
Me.Label4.TabIndex = 25
Me.Label4.Text = ">"
'
'Label5
'
Me.Label5.AutoSize = true
Me.Label5.Font = New System.Drawing.Font("宋体", 27.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134,Byte))
Me.Label5.Location = New System.Drawing.Point(214, 330)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(36, 37)
Me.Label5.TabIndex = 24
Me.Label5.Text = "<"
'
'txt_LooadNum
'
Me.txt_LooadNum.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txt_LooadNum.Font = New System.Drawing.Font("宋体", 27!)
Me.txt_LooadNum.Location = New System.Drawing.Point(98, 324)
Me.txt_LooadNum.Name = "txt_LooadNum"
Me.txt_LooadNum.ReadOnly = true
Me.txt_LooadNum.Size = New System.Drawing.Size(110, 49)
Me.txt_LooadNum.TabIndex = 23
Me.txt_LooadNum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'TextBox3
'
Me.TextBox3.Font = New System.Drawing.Font("宋体", 28!)
Me.TextBox3.Location = New System.Drawing.Point(184, 184)
Me.TextBox3.Name = "TextBox3"
Me.TextBox3.Size = New System.Drawing.Size(450, 50)
Me.TextBox3.TabIndex = 5
Me.TextBox3.Text = "CTHM08711382252604947"
'
'Label3
'
Me.Label3.AutoSize = true
Me.Label3.Font = New System.Drawing.Font("宋体", 20!)
Me.Label3.Location = New System.Drawing.Point(3, 196)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(191, 27)
Me.Label3.TabIndex = 4
Me.Label3.Text = "请确认DUT_SN:"
Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'TextBox2
'
Me.TextBox2.Font = New System.Drawing.Font("宋体", 28!)
Me.TextBox2.Location = New System.Drawing.Point(184, 99)
Me.TextBox2.Name = "TextBox2"
Me.TextBox2.Size = New System.Drawing.Size(450, 50)
Me.TextBox2.TabIndex = 3
Me.TextBox2.Text = "CTHM08711382252604947"
'
'Label2
'
Me.Label2.AutoSize = true
Me.Label2.Font = New System.Drawing.Font("宋体", 20!)
Me.Label2.Location = New System.Drawing.Point(3, 111)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(188, 27)
Me.Label2.TabIndex = 2
Me.Label2.Text = "请输入彩盒码:"
Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'Label1
'
Me.Label1.AutoSize = true
Me.Label1.Location = New System.Drawing.Point(3, 54)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(83, 12)
Me.Label1.TabIndex = 1
Me.Label1.Text = "打印模板路径:"
Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight
Me.Label1.Visible = false
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(87, 51)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.ReadOnly = true
Me.TextBox1.Size = New System.Drawing.Size(547, 21)
Me.TextBox1.TabIndex = 0
Me.TextBox1.Visible = false
'
'RichTextBox1
'
Me.RichTextBox1.Dock = System.Windows.Forms.DockStyle.Fill
Me.RichTextBox1.Location = New System.Drawing.Point(0, 0)
Me.RichTextBox1.Name = "RichTextBox1"
Me.RichTextBox1.Size = New System.Drawing.Size(325, 285)
Me.RichTextBox1.TabIndex = 2
Me.RichTextBox1.Text = ""
'
'ZQ_Mars_P2_FrmStationTest
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 12!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(985, 571)
Me.Controls.Add(Me.SplitContainer1)
Me.Controls.Add(Me.StatusStrip1)
Me.Name = "ZQ_Mars_P2_FrmStationTest"
Me.Text = "ZQ_Mars_P2_FrmStationTest"
Me.StatusStrip1.ResumeLayout(false)
Me.StatusStrip1.PerformLayout
Me.SplitContainer1.Panel1.ResumeLayout(false)
Me.SplitContainer1.Panel2.ResumeLayout(false)
Me.SplitContainer1.Panel2.PerformLayout
CType(Me.SplitContainer1,System.ComponentModel.ISupportInitialize).EndInit
Me.SplitContainer1.ResumeLayout(false)
Me.SplitContainer2.Panel1.ResumeLayout(false)
Me.SplitContainer2.Panel2.ResumeLayout(false)
CType(Me.SplitContainer2,System.ComponentModel.ISupportInitialize).EndInit
Me.SplitContainer2.ResumeLayout(false)
Me.ResumeLayout(false)
Me.PerformLayout
End Sub
Friend WithEvents SerialPort1 As IO.Ports.SerialPort
Friend WithEvents Timer1 As Timer
Friend WithEvents timer_Rcvd_Timeout As Timer
Friend WithEvents StatusStrip1 As StatusStrip
Friend WithEvents tss_CommPort As ToolStripStatusLabel
Friend WithEvents timer_AutoFindCommPort As Timer
Friend WithEvents SplitContainer1 As SplitContainer
Friend WithEvents SplitContainer2 As SplitContainer
Friend WithEvents TextBox3 As TextBox
Friend WithEvents Label3 As Label
Friend WithEvents TextBox2 As TextBox
Friend WithEvents Label2 As Label
Friend WithEvents Label1 As Label
Friend WithEvents TextBox1 As TextBox
Friend WithEvents Label7 As Label
Friend WithEvents Label6 As Label
Friend WithEvents txt_UpNum As TextBox
Friend WithEvents txt_testnum As TextBox
Friend WithEvents Label4 As Label
Friend WithEvents Label5 As Label
Friend WithEvents txt_LooadNum As TextBox
Friend WithEvents RichTextBox1 As RichTextBox
End Class

View File

@@ -0,0 +1,37 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Phobos_T2_FrmStationPlan
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.SuspendLayout()
'
'ZQ_Phobos_T2_FT_FrmStationPlan
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(809, 459)
Me.Name = "ZQ_Phobos_T2_FT_FrmStationPlan"
Me.Text = "ZQ_Phobos_T2_FT_FrmStationPlan"
Me.ResumeLayout(False)
End Sub
End Class

View 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>

View File

@@ -0,0 +1,38 @@
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Public Class ZQ_Phobos_T2_FrmStationPlan
#Region "框架部分 要放在最前段"
Implements IProcessStation
Private _utsApp As UtsAppForm
Private _stationPlan As StationPackagePlan
Public Sub Station_Changed() Implements IProcessStation.StationChanged
ApplicationLog.WriteInfoLog($"编辑页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
Try
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
Catch ex As Exception
MsgBox($"加载项目流程失败,{ex.Message}")
End Try
'InitGrid(_stationPlan)
ApplicationLog.WriteInfoLog($"编辑页面站位变更完成。")
End Sub
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
#End Region
End Class

View File

@@ -0,0 +1,78 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class ZQ_Phobos_T2_FrmStationTest
Inherits System.Windows.Forms.Form
'Form 重写 Dispose以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
Me.tss_CommPort = New System.Windows.Forms.ToolStripStatusLabel()
Me.timer_Rcvd_Timeout = New System.Windows.Forms.Timer(Me.components)
Me.timer_AutoFindCommPort = New System.Windows.Forms.Timer(Me.components)
Me.SerialPort1 = New System.IO.Ports.SerialPort(Me.components)
Me.SerialPort2 = New System.IO.Ports.SerialPort(Me.components)
Me.StatusStrip1.SuspendLayout()
Me.SuspendLayout()
'
'StatusStrip1
'
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tss_CommPort})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 428)
Me.StatusStrip1.Name = "StatusStrip1"
Me.StatusStrip1.Size = New System.Drawing.Size(800, 22)
Me.StatusStrip1.TabIndex = 1
Me.StatusStrip1.Text = "StatusStrip1"
'
'tss_CommPort
'
Me.tss_CommPort.AutoSize = False
Me.tss_CommPort.Font = New System.Drawing.Font("微软雅黑", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.tss_CommPort.Name = "tss_CommPort"
Me.tss_CommPort.Size = New System.Drawing.Size(80, 17)
Me.tss_CommPort.Text = "COM1"
'
'timer_Rcvd_Timeout
'
Me.timer_Rcvd_Timeout.Enabled = True
Me.timer_Rcvd_Timeout.Interval = 1
'
'ZQ_Phobos_T2_FT_FrmStartionTest
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Controls.Add(Me.StatusStrip1)
Me.Name = "ZQ_Phobos_T2_FT_FrmStartionTest"
Me.Text = "ZQ_Phobos_T2_FT"
Me.StatusStrip1.ResumeLayout(False)
Me.StatusStrip1.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents StatusStrip1 As StatusStrip
Friend WithEvents tss_CommPort As ToolStripStatusLabel
Friend WithEvents timer_Rcvd_Timeout As Timer
Friend WithEvents timer_AutoFindCommPort As Timer
Friend WithEvents SerialPort1 As IO.Ports.SerialPort
Friend WithEvents SerialPort2 As IO.Ports.SerialPort
End Class

View File

@@ -0,0 +1,138 @@
<?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="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="timer_Rcvd_Timeout.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>150, 19</value>
</metadata>
<metadata name="timer_AutoFindCommPort.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>321, 19</value>
</metadata>
<metadata name="SerialPort1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>-558, 58</value>
</metadata>
<metadata name="SerialPort2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>-442, 58</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>174</value>
</metadata>
</root>

View File

@@ -0,0 +1,217 @@
Imports System.IO
Imports System.IO.Ports
Imports UTS_Core.DebugLog
Imports UTS_Core.UTSModule
Imports UTS_Core.UTSModule.Station
Public Class ZQ_Phobos_T2_FrmStationTest
#Region "框架部分 要放在最前段"
Implements IProcessStation
Private _utsApp As UtsAppForm
Private _stationPlan As StationPackagePlan
Public Sub Station_Changed() Implements IProcessStation.StationChanged
ApplicationLog.WriteInfoLog($"编辑页面站位变更中PN{_utsApp.ProcessStation.ParentProject.Name} - SN:{_utsApp.ProcessStation.Name} - TP:{_utsApp.ProcessStation.Packet.Name}!")
Try
_stationPlan = CType(_utsApp.ProcessStation.Packet.StationPlan, StationPackagePlan)
Catch ex As Exception
MsgBox($"加载项目流程失败,{ex.Message}")
End Try
'InitGrid(_stationPlan)
ApplicationLog.WriteInfoLog($"编辑页面站位变更完成。")
End Sub
Public Sub ShowForm(parentControl As Control)
FormBorderStyle = FormBorderStyle.None
TopLevel = False
Dock = DockStyle.Fill
Parent = parentControl
Show()
End Sub
#End Region
#Region "SerialPort"
''' <summary>
''' 电子秤数据结构体
''' </summary>
Private Structure ScaleData_Strut
Dim isStable As ScaleIsStable_Enum '是否稳定
Dim weight_g As Double '重量,以 g 为单位
Dim weight_unit As ScaleUnit_Enum '重量单位
Dim isDataReady As Boolean '数据是否可用
Dim updateCnt As ULong '更新计数
End Structure
''' <summary>
''' 电子秤读回数据是否稳定枚举
''' </summary>
Private Enum ScaleIsStable_Enum
stable
unstable
End Enum
''' <summary>
''' 电子秤读回数据单位枚举
''' </summary>
Private Enum ScaleUnit_Enum
g
kg
End Enum
''' <summary>
''' 串口打开关闭状态枚举
''' </summary>
Private Enum OpenClose_Enum
Close
Open
End Enum
''' <summary>
''' 自动重连状态机枚举
''' </summary>
Private Enum AutoConnectComportStatus_Enum
Unknow
Connected
Disconnected
reConnecting
End Enum
Dim g_ScaleData As ScaleData_Strut '电子秤数据
Dim g_strRcvd As String = "" '当前串口接收到的数据
Dim g_isScal_Connected As Boolean = False '电子秤是连接到主机
Dim g_LastRcvdData_TimePoint As DateTime
Dim g_LastRcvdDataCnt As ULong '保存上一次串口数据接收计数,用于判断是否收到新的串口数据
Dim g_NoRcvdData_Cnt As Integer = 0 '未收到串口数据计数每100mS更新一次
Dim g_LstCommPort As List(Of String) = New List(Of String) '用于保存串口列表
Dim g_port_pointer_for_AutoConnect As Integer = 0 '在自动连接时,逐个串口尝试连接
Dim g_Current_AutoConnectStatus As AutoConnectComportStatus_Enum = AutoConnectComportStatus_Enum.Unknow '当前自动连接状态
''' <summary>
''' 100mS 时钟,用于维护串口连接状态
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub timer_AutoFindCommPort_Tick(sender As Object, e As EventArgs) Handles timer_AutoFindCommPort.Tick
End Sub
''' <summary>
''' 更新可用串口列表
''' </summary>
''' <param name="lstPortName">返回串口列表</param>
''' <returns>返回寻找可用串口数量</returns>
Private Function UpdateCommportList(ByRef lstPortName As List(Of String)) As Integer
lstPortName.Clear()
Dim portNames As String() = Ports.SerialPort.GetPortNames
lstPortName.AddRangeportNames
Return lstPortName.Count
End Function
''' <summary>
''' 打开或关闭串口
''' </summary>
''' <param name="comportName"> 串口名称</param>
''' <param name="openClose">打开或关闭串口</param>
''' <returns>操作成功返回true否则返回false </returns>
Private Function OpenClose_CommPort(comportName As String, openClose As OpenClose_Enum) As Boolean
'关闭串口
If SerialPort1.IsOpen = True Then
SerialPort1.Close()
End If
If openClose = OpenClose_Enum.Close Then
Return Not SerialPort1.IsOpen
Else
'打开串口
SerialPort1.PortName = comportName
SerialPort1.Open()
Return SerialPort1.IsOpen
End If
End Function
''' <summary>
''' 串口接收事件
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub SerialPort1_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
'收到数据
If SerialPort1.ReadBufferSize > 0 Then
g_strRcvd += SerialPort1.ReadLine
g_LastRcvdData_TimePoint = DateTime.Now
End If
'ST,NT,+ 197.9 g
'US,NT,+ 197.4 g
'US,NT,+ 197.4 g
'收到换行符号或长度大于=18
If Microsoft.VisualBasic.Right(g_strRcvd, 2) = vbCrLf OrElse g_strRcvd.Length >= 18 Then
'以长度为判断依据
If g_strRcvd.Length = 18 Then
'判断稳定状态
Dim tmpStableStr As String = Microsoft.VisualBasic.Mid(g_strRcvd, 6, 2).Trim
If tmpStableStr = "ST" Then
'稳定
g_ScaleData.isStable = ScaleIsStable_Enum.stable
g_ScaleData.isDataReady = False
ElseIf tmpStableStr = "US" Then
'不稳定
g_ScaleData.isStable = ScaleIsStable_Enum.unstable
g_ScaleData.isDataReady = False
Else
'非法数据
g_strRcvd = ""
Exit Sub
End If
'判断单位
Dim tmpUnit As String = Microsoft.VisualBasic.Mid(g_strRcvd, 20, 2).Trim
If tmpUnit = "g" Then
g_ScaleData.weight_unit = ScaleUnit_Enum.g
ElseIf tmpUnit = "kg" Then
g_ScaleData.weight_unit = ScaleUnit_Enum.kg
Else
'非法数据
g_strRcvd = ""
Exit Sub
End If
'计算重量
Dim tmpWeight As String = Microsoft.VisualBasic.Mid(g_strRcvd, 13, 7).Trim
If Double.TryParse(tmpWeight, g_ScaleData.weight_g) Then
If g_ScaleData.weight_unit = ScaleUnit_Enum.kg Then g_ScaleData.weight_g = g_ScaleData.weight_g * 1000
Else
'非法数据
g_strRcvd = ""
Exit Sub
End If
g_ScaleData.updateCnt = CULng(g_ScaleData.updateCnt + 1) '有效计数 +1
g_ScaleData.isDataReady = True '数据就绪
g_isScal_Connected = True '电子秤已连接
End If
g_strRcvd = ""
End If
End Sub
''' <summary>
''' 串口接收超时计数每1mS中断判断一次超时大于80mS就将缓冲区数据抛弃
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub timer_Rcvd_Timeout_Tick(sender As Object, e As EventArgs) Handles timer_Rcvd_Timeout.Tick
End Sub
#End Region
End Class