刘仕广原始项目代码上传
This commit is contained in:
156
.gitignore
vendored
156
.gitignore
vendored
@@ -1,4 +1,3 @@
|
||||
# ---> VisualStudio
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
##
|
||||
@@ -10,6 +9,7 @@
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
*.env
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
@@ -22,17 +22,37 @@ mono_crash.*
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
|
||||
[Dd]ebug/x64/
|
||||
[Dd]ebugPublic/x64/
|
||||
[Rr]elease/x64/
|
||||
[Rr]eleases/x64/
|
||||
bin/x64/
|
||||
obj/x64/
|
||||
|
||||
[Dd]ebug/x86/
|
||||
[Dd]ebugPublic/x86/
|
||||
[Rr]elease/x86/
|
||||
[Rr]eleases/x86/
|
||||
bin/x86/
|
||||
obj/x86/
|
||||
|
||||
[Ww][Ii][Nn]32/
|
||||
[Aa][Rr][Mm]/
|
||||
[Aa][Rr][Mm]64/
|
||||
[Aa][Rr][Mm]64[Ee][Cc]/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Oo]ut/
|
||||
[Ll]og/
|
||||
[Ll]ogs/
|
||||
|
||||
# Build results on 'Bin' directories
|
||||
**/[Bb]in/*
|
||||
# Uncomment if you have tasks that rely on *.refresh files to move binaries
|
||||
# (https://github.com/github/gitignore/pull/3736)
|
||||
#!**/[Bb]in/*.refresh
|
||||
|
||||
# Visual Studio 2015/2017 cache/options directory
|
||||
.vs/
|
||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||
@@ -44,12 +64,16 @@ Generated\ Files/
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
*.trx
|
||||
|
||||
# NUnit
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
nunit-*.xml
|
||||
|
||||
# Approval Tests result files
|
||||
*.received.*
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
@@ -76,6 +100,7 @@ StyleCopReport.xml
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.idb
|
||||
*.iobj
|
||||
*.pch
|
||||
*.pdb
|
||||
@@ -156,6 +181,7 @@ coverage*.info
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
nCrunchTemp_*
|
||||
|
||||
@@ -297,9 +323,6 @@ node_modules/
|
||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||
*.vbw
|
||||
|
||||
# Visual Studio 6 auto-generated project file (contains which files were open etc.)
|
||||
*.vbp
|
||||
|
||||
# Visual Studio 6 workspace and project file (working project files containing files to include in project)
|
||||
*.dsw
|
||||
*.dsp
|
||||
@@ -317,22 +340,22 @@ node_modules/
|
||||
_Pvt_Extensions
|
||||
|
||||
# Paket dependency manager
|
||||
.paket/paket.exe
|
||||
**/.paket/paket.exe
|
||||
paket-files/
|
||||
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
**/.fake/
|
||||
|
||||
# CodeRush personal settings
|
||||
.cr/personal
|
||||
**/.cr/personal
|
||||
|
||||
# Python Tools for Visual Studio (PTVS)
|
||||
__pycache__/
|
||||
**/__pycache__/
|
||||
*.pyc
|
||||
|
||||
# Cake - Uncomment if you are using it
|
||||
# tools/**
|
||||
# !tools/packages.config
|
||||
#tools/**
|
||||
#!tools/packages.config
|
||||
|
||||
# Tabs Studio
|
||||
*.tss
|
||||
@@ -354,15 +377,19 @@ ASALocalRun/
|
||||
|
||||
# MSBuild Binary and Structured Log
|
||||
*.binlog
|
||||
MSBuild_Logs/
|
||||
|
||||
# AWS SAM Build and Temporary Artifacts folder
|
||||
.aws-sam
|
||||
|
||||
# NVidia Nsight GPU debugger configuration file
|
||||
*.nvuser
|
||||
|
||||
# MFractors (Xamarin productivity tool) working folder
|
||||
.mfractor/
|
||||
**/.mfractor/
|
||||
|
||||
# Local History for Visual Studio
|
||||
.localhistory/
|
||||
**/.localhistory/
|
||||
|
||||
# Visual Studio History (VSHistory) files
|
||||
.vshistory/
|
||||
@@ -374,7 +401,7 @@ healthchecksdb
|
||||
MigrationBackup/
|
||||
|
||||
# Ionide (cross platform F# VS Code tools) working folder
|
||||
.ionide/
|
||||
**/.ionide/
|
||||
|
||||
# Fody - auto-generated XML schema
|
||||
FodyWeavers.xsd
|
||||
@@ -385,27 +412,6 @@ FodyWeavers.xsd
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
*.code-workspace
|
||||
|
||||
# Local History for Visual Studio Code
|
||||
.history/
|
||||
|
||||
# Windows Installer files from build outputs
|
||||
*.cab
|
||||
*.msi
|
||||
*.msix
|
||||
*.msm
|
||||
*.msp
|
||||
|
||||
# JetBrains Rider
|
||||
*.sln.iml
|
||||
|
||||
# ---> VisualStudioCode
|
||||
.vscode/*
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
!.vscode/*.code-snippets
|
||||
|
||||
# Local History for Visual Studio Code
|
||||
@@ -414,6 +420,7 @@ FodyWeavers.xsd
|
||||
# Built Visual Studio Code Extensions
|
||||
*.vsix
|
||||
|
||||
# =============== 操作系统文件 ===============[WQ]
|
||||
# ---> Windows
|
||||
# Windows thumbnail cache files
|
||||
Thumbs.db
|
||||
@@ -430,7 +437,7 @@ ehthumbs_vista.db
|
||||
# Recycle Bin used on file shares
|
||||
$RECYCLE.BIN/
|
||||
|
||||
# Windows Installer files
|
||||
# Windows Installer files from build outputs
|
||||
*.cab
|
||||
*.msi
|
||||
*.msix
|
||||
@@ -440,3 +447,76 @@ $RECYCLE.BIN/
|
||||
# Windows shortcuts
|
||||
*.lnk
|
||||
|
||||
# ---> macOS
|
||||
.DS_Store
|
||||
|
||||
# =============== VisionPro ===============[WQ]
|
||||
*.vpp
|
||||
*.idb
|
||||
*.cdb
|
||||
|
||||
# =============== Others ===============[Zhao]
|
||||
#Backup file
|
||||
*.bak
|
||||
|
||||
**/.vs
|
||||
*.dylib
|
||||
*.so
|
||||
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
||||
# Compiled Object files
|
||||
*.slo
|
||||
*.lo
|
||||
*.o
|
||||
*.obj
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Compiled Dynamic libraries
|
||||
*.so
|
||||
*.dylib
|
||||
*.dll
|
||||
|
||||
# Fortran module files
|
||||
*.mod
|
||||
*.smod
|
||||
|
||||
# Compiled Static libraries
|
||||
*.lai
|
||||
*.la
|
||||
*.a
|
||||
*.lib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
|
||||
*.7z
|
||||
*.zip
|
||||
*.rar
|
||||
**/thirdparty
|
||||
**/external
|
||||
**/build
|
||||
**/Debug
|
||||
**/debug
|
||||
**/Release
|
||||
**/release
|
||||
**/.vscode
|
||||
|
||||
**/venv
|
||||
**/gen
|
||||
**/__pycache__
|
||||
*.cmd
|
||||
*.dist
|
||||
*.pth
|
||||
*.pt
|
||||
*.csv
|
||||
*.jpg
|
||||
*.jpeg
|
||||
*.png
|
||||
*.bmp
|
||||
37
精工涂胶检测项目/精工涂胶检测项目.sln
Normal file
37
精工涂胶检测项目/精工涂胶检测项目.sln
Normal file
@@ -0,0 +1,37 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.14.36109.1
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "精工涂胶检测项目", "精工涂胶检测项目\精工涂胶检测项目.csproj", "{10C424D2-36A1-4D94-A034-A6801A1B17B5}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{10C424D2-36A1-4D94-A034-A6801A1B17B5}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{10C424D2-36A1-4D94-A034-A6801A1B17B5}.Debug|Any CPU.Build.0 = Debug|x64
|
||||
{10C424D2-36A1-4D94-A034-A6801A1B17B5}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{10C424D2-36A1-4D94-A034-A6801A1B17B5}.Debug|x64.Build.0 = Debug|x64
|
||||
{10C424D2-36A1-4D94-A034-A6801A1B17B5}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{10C424D2-36A1-4D94-A034-A6801A1B17B5}.Debug|x86.Build.0 = Debug|x86
|
||||
{10C424D2-36A1-4D94-A034-A6801A1B17B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{10C424D2-36A1-4D94-A034-A6801A1B17B5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{10C424D2-36A1-4D94-A034-A6801A1B17B5}.Release|x64.ActiveCfg = Release|x64
|
||||
{10C424D2-36A1-4D94-A034-A6801A1B17B5}.Release|x64.Build.0 = Release|x64
|
||||
{10C424D2-36A1-4D94-A034-A6801A1B17B5}.Release|x86.ActiveCfg = Release|x86
|
||||
{10C424D2-36A1-4D94-A034-A6801A1B17B5}.Release|x86.Build.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {EF7CB683-60A7-4F75-891E-C6B539D5298C}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
55
精工涂胶检测项目/精工涂胶检测项目/App.config
Normal file
55
精工涂胶检测项目/精工涂胶检测项目/App.config
Normal file
@@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<section name="精工涂胶检测项目.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8.1" />
|
||||
</startup>
|
||||
<userSettings>
|
||||
<精工涂胶检测项目.Properties.Settings>
|
||||
<setting name="TcpIP" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="TcpProt" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="PlcIP" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="PlcRack" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="PlcType" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="TcpStatus" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="ModbusIP" serializeAs="String">
|
||||
<value>192.168.1.30</value>
|
||||
</setting>
|
||||
<setting name="ModbusPort" serializeAs="String">
|
||||
<value>502</value>
|
||||
</setting>
|
||||
<setting name="PlcSlot" serializeAs="String">
|
||||
<value>
|
||||
</value>
|
||||
</setting>
|
||||
</精工涂胶检测项目.Properties.Settings>
|
||||
</userSettings>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
15
精工涂胶检测项目/精工涂胶检测项目/AppConstants.cs
Normal file
15
精工涂胶检测项目/精工涂胶检测项目/AppConstants.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
public static class AppConstants
|
||||
{
|
||||
public const int ModbusDefaultPort = 502;
|
||||
public const int TcpDefaultPort = 8080;
|
||||
public const int MaxConnectionRetries = 3;
|
||||
}
|
||||
}
|
||||
120
精工涂胶检测项目/精工涂胶检测项目/EditableListView.cs
Normal file
120
精工涂胶检测项目/精工涂胶检测项目/EditableListView.cs
Normal file
@@ -0,0 +1,120 @@
|
||||
using System.Windows.Forms;
|
||||
using System.Drawing;
|
||||
using Microsoft.VisualBasic;
|
||||
using System;
|
||||
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
public class EditableListView : ListView
|
||||
{
|
||||
public EditableListView()
|
||||
{
|
||||
View = View.Details;
|
||||
FullRowSelect = true;
|
||||
GridLines = true;
|
||||
LabelEdit = false;
|
||||
Scrollable = true;
|
||||
Columns.Add("地址", 120);
|
||||
Columns.Add("数据类型", 120);
|
||||
|
||||
DoubleClick -= EditableListView_DoubleClick;
|
||||
DoubleClick += EditableListView_DoubleClick;
|
||||
}
|
||||
|
||||
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
|
||||
protected override void WndProc(ref Message m)
|
||||
{
|
||||
const int WM_LBUTTONDBLCLK = 0x0203;
|
||||
if (m.Msg == WM_LBUTTONDBLCLK)
|
||||
{
|
||||
OnDoubleClick(EventArgs.Empty);
|
||||
}
|
||||
base.WndProc(ref m);
|
||||
}
|
||||
|
||||
// 添加数据的公共方法
|
||||
public void AddData(string address, string dataType)
|
||||
{
|
||||
ListViewItem item = new ListViewItem(address);
|
||||
item.SubItems.Add(dataType);
|
||||
Items.Add(item);
|
||||
}
|
||||
|
||||
private void EditableListView_DoubleClick(object sender, EventArgs e)
|
||||
{
|
||||
var mousePos = this.PointToClient(Cursor.Position);
|
||||
var hitInfo = this.HitTest(mousePos);
|
||||
|
||||
bool isRealBlankArea =
|
||||
hitInfo.Item == null &&
|
||||
hitInfo.SubItem == null &&
|
||||
(hitInfo.Location == ListViewHitTestLocations.None ||
|
||||
hitInfo.Location == ListViewHitTestLocations.AboveClientArea);
|
||||
|
||||
if (isRealBlankArea)
|
||||
{
|
||||
AddNewItem();
|
||||
}
|
||||
else if (hitInfo.Item != null)
|
||||
{
|
||||
int colIndex = GetColumnIndex(mousePos.X);
|
||||
if (colIndex >= 0 && colIndex < Columns.Count)
|
||||
{
|
||||
EditItem(hitInfo.Item, colIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private int GetColumnIndex(int x)
|
||||
{
|
||||
int accumulatedWidth = 0;
|
||||
for (int i = 0; i < Columns.Count; i++)
|
||||
{
|
||||
accumulatedWidth += Columns[i].Width;
|
||||
if (x < accumulatedWidth)
|
||||
return i;
|
||||
}
|
||||
return Columns.Count - 1;
|
||||
}
|
||||
|
||||
private void EditItem(ListViewItem item, int columnIndex)
|
||||
{
|
||||
string originalValue = columnIndex == 0 ? item.Text : item.SubItems[columnIndex].Text;
|
||||
|
||||
string newValue = Interaction.InputBox(
|
||||
"请输入新值:",
|
||||
"编辑单元格",
|
||||
originalValue
|
||||
);
|
||||
|
||||
if (!string.IsNullOrEmpty(newValue))
|
||||
{
|
||||
if (columnIndex == 0)
|
||||
{
|
||||
item.Text = newValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (item.SubItems.Count > columnIndex)
|
||||
{
|
||||
item.SubItems[columnIndex].Text = newValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
item.SubItems.Add(newValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void AddNewItem()
|
||||
{
|
||||
string address = Interaction.InputBox("请输入地址:", "添加新条目", "");
|
||||
if (!string.IsNullOrEmpty(address))
|
||||
{
|
||||
string dataType = Interaction.InputBox("请输入数据类型:", "添加新条目", "");
|
||||
AddData(address, dataType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
28
精工涂胶检测项目/精工涂胶检测项目/Form/Class1.cs
Normal file
28
精工涂胶检测项目/精工涂胶检测项目/Form/Class1.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SlandDs
|
||||
{
|
||||
[Serializable]
|
||||
public class Student
|
||||
{
|
||||
|
||||
public string CSV1max { get; set; }
|
||||
public string CSV1mix { get; set; }
|
||||
public string CSA1max { get; set; }
|
||||
public string CSA1mix { get; set; }
|
||||
public string CSV2max { get; set; }
|
||||
public string CSV2mix { get; set; }
|
||||
public string CSA2max { get; set; }
|
||||
public string CSA2mix { get; set; }
|
||||
public string CSV3max { get; set; }
|
||||
public string CSV3mix { get; set; }
|
||||
public string CSA3max { get; set; }
|
||||
public string CSA3mix { get; set; }
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
12
精工涂胶检测项目/精工涂胶检测项目/Form/FileName.cs
Normal file
12
精工涂胶检测项目/精工涂胶检测项目/Form/FileName.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace 精工涂胶检测项目.Form
|
||||
{
|
||||
internal class FileName
|
||||
{
|
||||
}
|
||||
}
|
||||
421
精工涂胶检测项目/精工涂胶检测项目/Form/FormCommunication.Designer.cs
generated
Normal file
421
精工涂胶检测项目/精工涂胶检测项目/Form/FormCommunication.Designer.cs
generated
Normal file
@@ -0,0 +1,421 @@
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
partial class FormCommunication
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.tabControl1 = new System.Windows.Forms.TabControl();
|
||||
this.tabPage1 = new System.Windows.Forms.TabPage();
|
||||
this.btn_TCPConfirm = new System.Windows.Forms.Button();
|
||||
this.txb_Port = new System.Windows.Forms.TextBox();
|
||||
this.txb_IP = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.tabPage2 = new System.Windows.Forms.TabPage();
|
||||
this.btn_PLCConfirm = new System.Windows.Forms.Button();
|
||||
this.cmb_PLCType = new System.Windows.Forms.ComboBox();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.txb_PLCSlot = new System.Windows.Forms.TextBox();
|
||||
this.txb_PLCRack = new System.Windows.Forms.TextBox();
|
||||
this.txb_PLCIP = new System.Windows.Forms.TextBox();
|
||||
this.tabPage3 = new System.Windows.Forms.TabPage();
|
||||
this.btn_ModbusTCPConfirm = new System.Windows.Forms.Button();
|
||||
this.txb_ModbusTcpPort = new System.Windows.Forms.TextBox();
|
||||
this.txb_ModbusTcpIP = new System.Windows.Forms.TextBox();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.删除ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.btn_OK = new System.Windows.Forms.Button();
|
||||
this.tabControl1.SuspendLayout();
|
||||
this.tabPage1.SuspendLayout();
|
||||
this.tabPage2.SuspendLayout();
|
||||
this.tabPage3.SuspendLayout();
|
||||
this.contextMenuStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// tabControl1
|
||||
//
|
||||
this.tabControl1.Controls.Add(this.tabPage1);
|
||||
this.tabControl1.Controls.Add(this.tabPage2);
|
||||
this.tabControl1.Controls.Add(this.tabPage3);
|
||||
this.tabControl1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.tabControl1.ItemSize = new System.Drawing.Size(80, 30);
|
||||
this.tabControl1.Location = new System.Drawing.Point(0, 0);
|
||||
this.tabControl1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.tabControl1.Multiline = true;
|
||||
this.tabControl1.Name = "tabControl1";
|
||||
this.tabControl1.SelectedIndex = 0;
|
||||
this.tabControl1.Size = new System.Drawing.Size(1067, 500);
|
||||
this.tabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
|
||||
this.tabControl1.TabIndex = 0;
|
||||
//
|
||||
// tabPage1
|
||||
//
|
||||
this.tabPage1.Controls.Add(this.btn_TCPConfirm);
|
||||
this.tabPage1.Controls.Add(this.txb_Port);
|
||||
this.tabPage1.Controls.Add(this.txb_IP);
|
||||
this.tabPage1.Controls.Add(this.label2);
|
||||
this.tabPage1.Controls.Add(this.label1);
|
||||
this.tabPage1.Location = new System.Drawing.Point(4, 34);
|
||||
this.tabPage1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.tabPage1.Name = "tabPage1";
|
||||
this.tabPage1.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.tabPage1.Size = new System.Drawing.Size(1059, 462);
|
||||
this.tabPage1.TabIndex = 0;
|
||||
this.tabPage1.Text = "TCP";
|
||||
this.tabPage1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btn_TCPConfirm
|
||||
//
|
||||
this.btn_TCPConfirm.Font = new System.Drawing.Font("宋体", 12F);
|
||||
this.btn_TCPConfirm.Location = new System.Drawing.Point(16, 104);
|
||||
this.btn_TCPConfirm.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.btn_TCPConfirm.Name = "btn_TCPConfirm";
|
||||
this.btn_TCPConfirm.Size = new System.Drawing.Size(139, 41);
|
||||
this.btn_TCPConfirm.TabIndex = 5;
|
||||
this.btn_TCPConfirm.Text = "连接";
|
||||
this.btn_TCPConfirm.UseVisualStyleBackColor = true;
|
||||
this.btn_TCPConfirm.Click += new System.EventHandler(this.btn_TCPConfirm_Click);
|
||||
//
|
||||
// txb_Port
|
||||
//
|
||||
this.txb_Port.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::精工涂胶检测项目.Properties.Settings.Default, "TcpProt", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.txb_Port.Location = new System.Drawing.Point(105, 70);
|
||||
this.txb_Port.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.txb_Port.Name = "txb_Port";
|
||||
this.txb_Port.Size = new System.Drawing.Size(132, 25);
|
||||
this.txb_Port.TabIndex = 3;
|
||||
this.txb_Port.Text = global::精工涂胶检测项目.Properties.Settings.Default.TcpProt;
|
||||
//
|
||||
// txb_IP
|
||||
//
|
||||
this.txb_IP.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::精工涂胶检测项目.Properties.Settings.Default, "TcpIP", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.txb_IP.Location = new System.Drawing.Point(105, 16);
|
||||
this.txb_IP.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.txb_IP.Name = "txb_IP";
|
||||
this.txb_IP.Size = new System.Drawing.Size(132, 25);
|
||||
this.txb_IP.TabIndex = 2;
|
||||
this.txb_IP.Text = global::精工涂胶检测项目.Properties.Settings.Default.TcpIP;
|
||||
this.txb_IP.TextChanged += new System.EventHandler(this.txb_IP_TextChanged);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label2.Location = new System.Drawing.Point(11, 65);
|
||||
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(87, 35);
|
||||
this.label2.TabIndex = 1;
|
||||
this.label2.Text = "端口:";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label1.Location = new System.Drawing.Point(11, 16);
|
||||
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(87, 35);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "IP:";
|
||||
//
|
||||
// tabPage2
|
||||
//
|
||||
this.tabPage2.Controls.Add(this.btn_PLCConfirm);
|
||||
this.tabPage2.Controls.Add(this.cmb_PLCType);
|
||||
this.tabPage2.Controls.Add(this.label6);
|
||||
this.tabPage2.Controls.Add(this.label5);
|
||||
this.tabPage2.Controls.Add(this.label4);
|
||||
this.tabPage2.Controls.Add(this.label3);
|
||||
this.tabPage2.Controls.Add(this.txb_PLCSlot);
|
||||
this.tabPage2.Controls.Add(this.txb_PLCRack);
|
||||
this.tabPage2.Controls.Add(this.txb_PLCIP);
|
||||
this.tabPage2.Location = new System.Drawing.Point(4, 34);
|
||||
this.tabPage2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.tabPage2.Name = "tabPage2";
|
||||
this.tabPage2.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.tabPage2.RightToLeft = System.Windows.Forms.RightToLeft.No;
|
||||
this.tabPage2.Size = new System.Drawing.Size(1059, 462);
|
||||
this.tabPage2.TabIndex = 1;
|
||||
this.tabPage2.Text = "Profinet";
|
||||
this.tabPage2.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btn_PLCConfirm
|
||||
//
|
||||
this.btn_PLCConfirm.Font = new System.Drawing.Font("宋体", 12F);
|
||||
this.btn_PLCConfirm.Location = new System.Drawing.Point(4, 358);
|
||||
this.btn_PLCConfirm.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.btn_PLCConfirm.Name = "btn_PLCConfirm";
|
||||
this.btn_PLCConfirm.Size = new System.Drawing.Size(139, 41);
|
||||
this.btn_PLCConfirm.TabIndex = 11;
|
||||
this.btn_PLCConfirm.Text = "连接";
|
||||
this.btn_PLCConfirm.UseVisualStyleBackColor = true;
|
||||
this.btn_PLCConfirm.Click += new System.EventHandler(this.btn_PLCConfirm_Click);
|
||||
//
|
||||
// cmb_PLCType
|
||||
//
|
||||
this.cmb_PLCType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cmb_PLCType.FormattingEnabled = true;
|
||||
this.cmb_PLCType.Items.AddRange(new object[] {
|
||||
"Logo0BA8",
|
||||
"S71200",
|
||||
"S71500",
|
||||
"S7200",
|
||||
"S7200Smart",
|
||||
"S7300",
|
||||
"S7400"});
|
||||
this.cmb_PLCType.Location = new System.Drawing.Point(867, 20);
|
||||
this.cmb_PLCType.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.cmb_PLCType.Name = "cmb_PLCType";
|
||||
this.cmb_PLCType.Size = new System.Drawing.Size(160, 23);
|
||||
this.cmb_PLCType.TabIndex = 10;
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label6.Location = new System.Drawing.Point(772, 15);
|
||||
this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(87, 35);
|
||||
this.label6.TabIndex = 9;
|
||||
this.label6.Text = "型号:";
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label5.Location = new System.Drawing.Point(512, 19);
|
||||
this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(87, 35);
|
||||
this.label5.TabIndex = 7;
|
||||
this.label5.Text = "Slot:";
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label4.Location = new System.Drawing.Point(259, 19);
|
||||
this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(87, 35);
|
||||
this.label4.TabIndex = 5;
|
||||
this.label4.Text = "Rack:";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label3.Location = new System.Drawing.Point(16, 19);
|
||||
this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(87, 35);
|
||||
this.label3.TabIndex = 3;
|
||||
this.label3.Text = "IP:";
|
||||
//
|
||||
// txb_PLCSlot
|
||||
//
|
||||
this.txb_PLCSlot.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::精工涂胶检测项目.Properties.Settings.Default, "PlcSlot", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.txb_PLCSlot.Location = new System.Drawing.Point(607, 19);
|
||||
this.txb_PLCSlot.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.txb_PLCSlot.Name = "txb_PLCSlot";
|
||||
this.txb_PLCSlot.Size = new System.Drawing.Size(132, 25);
|
||||
this.txb_PLCSlot.TabIndex = 8;
|
||||
this.txb_PLCSlot.Text = global::精工涂胶检测项目.Properties.Settings.Default.PlcSlot;
|
||||
//
|
||||
// txb_PLCRack
|
||||
//
|
||||
this.txb_PLCRack.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::精工涂胶检测项目.Properties.Settings.Default, "PlcRack", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.txb_PLCRack.Location = new System.Drawing.Point(353, 19);
|
||||
this.txb_PLCRack.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.txb_PLCRack.Name = "txb_PLCRack";
|
||||
this.txb_PLCRack.Size = new System.Drawing.Size(132, 25);
|
||||
this.txb_PLCRack.TabIndex = 6;
|
||||
this.txb_PLCRack.Text = global::精工涂胶检测项目.Properties.Settings.Default.PlcRack;
|
||||
//
|
||||
// txb_PLCIP
|
||||
//
|
||||
this.txb_PLCIP.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::精工涂胶检测项目.Properties.Settings.Default, "PlcIP", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.txb_PLCIP.Location = new System.Drawing.Point(111, 19);
|
||||
this.txb_PLCIP.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.txb_PLCIP.Name = "txb_PLCIP";
|
||||
this.txb_PLCIP.Size = new System.Drawing.Size(132, 25);
|
||||
this.txb_PLCIP.TabIndex = 4;
|
||||
this.txb_PLCIP.Text = global::精工涂胶检测项目.Properties.Settings.Default.PlcIP;
|
||||
//
|
||||
// tabPage3
|
||||
//
|
||||
this.tabPage3.Controls.Add(this.btn_ModbusTCPConfirm);
|
||||
this.tabPage3.Controls.Add(this.txb_ModbusTcpPort);
|
||||
this.tabPage3.Controls.Add(this.txb_ModbusTcpIP);
|
||||
this.tabPage3.Controls.Add(this.label7);
|
||||
this.tabPage3.Controls.Add(this.label8);
|
||||
this.tabPage3.Location = new System.Drawing.Point(4, 34);
|
||||
this.tabPage3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.tabPage3.Name = "tabPage3";
|
||||
this.tabPage3.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.tabPage3.Size = new System.Drawing.Size(1059, 462);
|
||||
this.tabPage3.TabIndex = 2;
|
||||
this.tabPage3.Text = "ModbusTcp";
|
||||
this.tabPage3.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btn_ModbusTCPConfirm
|
||||
//
|
||||
this.btn_ModbusTCPConfirm.Font = new System.Drawing.Font("宋体", 12F);
|
||||
this.btn_ModbusTCPConfirm.Location = new System.Drawing.Point(19, 119);
|
||||
this.btn_ModbusTCPConfirm.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.btn_ModbusTCPConfirm.Name = "btn_ModbusTCPConfirm";
|
||||
this.btn_ModbusTCPConfirm.Size = new System.Drawing.Size(139, 41);
|
||||
this.btn_ModbusTCPConfirm.TabIndex = 8;
|
||||
this.btn_ModbusTCPConfirm.Text = "连接";
|
||||
this.btn_ModbusTCPConfirm.UseVisualStyleBackColor = true;
|
||||
this.btn_ModbusTCPConfirm.Click += new System.EventHandler(this.btn_ModbusTCPConfirm_Click);
|
||||
//
|
||||
// txb_ModbusTcpPort
|
||||
//
|
||||
this.txb_ModbusTcpPort.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::精工涂胶检测项目.Properties.Settings.Default, "ModbusPort", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.txb_ModbusTcpPort.Location = new System.Drawing.Point(108, 74);
|
||||
this.txb_ModbusTcpPort.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.txb_ModbusTcpPort.Name = "txb_ModbusTcpPort";
|
||||
this.txb_ModbusTcpPort.Size = new System.Drawing.Size(132, 25);
|
||||
this.txb_ModbusTcpPort.TabIndex = 7;
|
||||
this.txb_ModbusTcpPort.Text = global::精工涂胶检测项目.Properties.Settings.Default.ModbusPort;
|
||||
//
|
||||
// txb_ModbusTcpIP
|
||||
//
|
||||
this.txb_ModbusTcpIP.DataBindings.Add(new System.Windows.Forms.Binding("Text", global::精工涂胶检测项目.Properties.Settings.Default, "ModbusIP", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.txb_ModbusTcpIP.Location = new System.Drawing.Point(108, 20);
|
||||
this.txb_ModbusTcpIP.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.txb_ModbusTcpIP.Name = "txb_ModbusTcpIP";
|
||||
this.txb_ModbusTcpIP.Size = new System.Drawing.Size(132, 25);
|
||||
this.txb_ModbusTcpIP.TabIndex = 6;
|
||||
this.txb_ModbusTcpIP.Text = global::精工涂胶检测项目.Properties.Settings.Default.ModbusIP;
|
||||
//
|
||||
// label7
|
||||
//
|
||||
this.label7.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label7.Location = new System.Drawing.Point(13, 69);
|
||||
this.label7.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label7.Name = "label7";
|
||||
this.label7.Size = new System.Drawing.Size(87, 35);
|
||||
this.label7.TabIndex = 5;
|
||||
this.label7.Text = "端口:";
|
||||
//
|
||||
// label8
|
||||
//
|
||||
this.label8.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label8.Location = new System.Drawing.Point(13, 20);
|
||||
this.label8.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label8.Name = "label8";
|
||||
this.label8.Size = new System.Drawing.Size(87, 35);
|
||||
this.label8.TabIndex = 4;
|
||||
this.label8.Text = "IP:";
|
||||
//
|
||||
// contextMenuStrip1
|
||||
//
|
||||
this.contextMenuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.删除ToolStripMenuItem});
|
||||
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
||||
this.contextMenuStrip1.Size = new System.Drawing.Size(109, 28);
|
||||
//
|
||||
// 删除ToolStripMenuItem
|
||||
//
|
||||
this.删除ToolStripMenuItem.Name = "删除ToolStripMenuItem";
|
||||
this.删除ToolStripMenuItem.Size = new System.Drawing.Size(108, 24);
|
||||
this.删除ToolStripMenuItem.Text = "删除";
|
||||
this.删除ToolStripMenuItem.Click += new System.EventHandler(this.删除ToolStripMenuItem_Click);
|
||||
//
|
||||
// btn_OK
|
||||
//
|
||||
this.btn_OK.Font = new System.Drawing.Font("宋体", 12F);
|
||||
this.btn_OK.Location = new System.Drawing.Point(912, 508);
|
||||
this.btn_OK.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.btn_OK.Name = "btn_OK";
|
||||
this.btn_OK.Size = new System.Drawing.Size(139, 41);
|
||||
this.btn_OK.TabIndex = 9;
|
||||
this.btn_OK.Text = "确定";
|
||||
this.btn_OK.UseVisualStyleBackColor = true;
|
||||
this.btn_OK.Click += new System.EventHandler(this.btn_OK_Click);
|
||||
//
|
||||
// FormCommunication
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1067, 562);
|
||||
this.Controls.Add(this.btn_OK);
|
||||
this.Controls.Add(this.tabControl1);
|
||||
this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.Name = "FormCommunication";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "通讯设置";
|
||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormCommunication_FormClosed);
|
||||
this.Load += new System.EventHandler(this.FormCommunication_Load);
|
||||
this.tabControl1.ResumeLayout(false);
|
||||
this.tabPage1.ResumeLayout(false);
|
||||
this.tabPage1.PerformLayout();
|
||||
this.tabPage2.ResumeLayout(false);
|
||||
this.tabPage2.PerformLayout();
|
||||
this.tabPage3.ResumeLayout(false);
|
||||
this.tabPage3.PerformLayout();
|
||||
this.contextMenuStrip1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TabControl tabControl1;
|
||||
private System.Windows.Forms.TabPage tabPage1;
|
||||
private System.Windows.Forms.TabPage tabPage2;
|
||||
private System.Windows.Forms.TextBox txb_IP;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox txb_Port;
|
||||
private System.Windows.Forms.Button btn_TCPConfirm;
|
||||
private System.Windows.Forms.TextBox txb_PLCSlot;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.TextBox txb_PLCRack;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.TextBox txb_PLCIP;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.ComboBox cmb_PLCType;
|
||||
private System.Windows.Forms.Button btn_PLCConfirm;
|
||||
private EditableListView editableListView1;
|
||||
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
|
||||
private System.Windows.Forms.ToolStripMenuItem 删除ToolStripMenuItem;
|
||||
private System.Windows.Forms.TabPage tabPage3;
|
||||
private System.Windows.Forms.Button btn_ModbusTCPConfirm;
|
||||
private System.Windows.Forms.TextBox txb_ModbusTcpPort;
|
||||
private System.Windows.Forms.TextBox txb_ModbusTcpIP;
|
||||
private System.Windows.Forms.Label label7;
|
||||
private System.Windows.Forms.Label label8;
|
||||
private System.Windows.Forms.Button btn_OK;
|
||||
}
|
||||
}
|
||||
160
精工涂胶检测项目/精工涂胶检测项目/Form/FormCommunication.cs
Normal file
160
精工涂胶检测项目/精工涂胶检测项目/Form/FormCommunication.cs
Normal file
@@ -0,0 +1,160 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using S7.Net;
|
||||
using System.Net;
|
||||
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
public partial class FormCommunication : Form
|
||||
{
|
||||
private TextBox editBox = new TextBox();
|
||||
|
||||
public FormCommunication()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private async void btn_TCPConfirm_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 获取主窗体的 TCP 实例
|
||||
var mainForm = Application.OpenForms.OfType<Form1>().FirstOrDefault();
|
||||
if (mainForm == null) return;
|
||||
|
||||
TCPClass tcp = mainForm.myTcp; // ✅ 使用同一实例
|
||||
|
||||
if (txb_IP.Text == "")
|
||||
{
|
||||
await tcp.StartServerAsync(int.Parse(txb_Port.Text));
|
||||
mainForm._autoTcpReconnect = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
await tcp.ConnectAsync(txb_IP.Text,int.Parse(txb_Port.Text));
|
||||
mainForm._autoTcpReconnect = true;
|
||||
}
|
||||
}
|
||||
catch(Exception s)
|
||||
{
|
||||
MessageBox.Show(s.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private async void btn_PLCConfirm_Click(object sender, EventArgs e)
|
||||
{
|
||||
var mainForm = Application.OpenForms.OfType<Form1>().FirstOrDefault();
|
||||
if (mainForm == null)
|
||||
{
|
||||
MessageBox.Show("无法找到主窗体");
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
string ip = txb_PLCIP.Text;
|
||||
short rack = short.Parse(txb_PLCRack.Text);
|
||||
short slot = short.Parse(txb_PLCSlot.Text);
|
||||
CpuType cpuType = (CpuType)Enum.Parse(typeof(CpuType), cmb_PLCType.Text);
|
||||
|
||||
mainForm.ConnectPLC(ip, cpuType, rack, slot);
|
||||
|
||||
if (mainForm.plc.IsConnected)
|
||||
{
|
||||
MessageBox.Show("PLC连接成功");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
mainForm.AddLog($"PLC连接失败: {ex.Message}", 2);
|
||||
MessageBox.Show($"PLC连接失败: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 右键删除事件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if(editableListView1.SelectedItems.Count != 0)
|
||||
{
|
||||
ListViewItem item = editableListView1.SelectedItems[0];
|
||||
editableListView1.Items.Remove(item);
|
||||
}
|
||||
}
|
||||
|
||||
private void FormCommunication_FormClosed(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
// 获取主窗体的 TCP 实例
|
||||
var mainForm = Application.OpenForms.OfType<Form1>().FirstOrDefault();
|
||||
if (mainForm == null) return;
|
||||
|
||||
TCPClass tcp = mainForm.myTcp; // ✅ 使用同一实例
|
||||
|
||||
Properties.Settings.Default.TcpIP = txb_IP.Text;
|
||||
Properties.Settings.Default.TcpProt = txb_Port.Text;
|
||||
Properties.Settings.Default.PlcIP = txb_PLCIP.Text;
|
||||
Properties.Settings.Default.PlcRack = txb_PLCRack.Text;
|
||||
Properties.Settings.Default.PlcSlot = txb_PLCSlot.Text;
|
||||
Properties.Settings.Default.TcpStatus = tcp.TcpStatus;
|
||||
Properties.Settings.Default.ModbusIP = txb_ModbusTcpIP.Text;
|
||||
Properties.Settings.Default.ModbusPort = txb_ModbusTcpPort.Text;
|
||||
if (cmb_PLCType.SelectedValue != null)
|
||||
Properties.Settings.Default.PlcType = cmb_PLCType.SelectedValue.ToString();
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
|
||||
private async void btn_ModbusTCPConfirm_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!IPAddress.TryParse(txb_ModbusTcpIP.Text, out _))
|
||||
{
|
||||
MessageBox.Show("IP地址格式错误");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!int.TryParse(txb_ModbusTcpPort.Text, out int port) || port < 1 || port > 65535)
|
||||
{
|
||||
MessageBox.Show("端口号无效");
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取主窗体实例并更新配置
|
||||
var mainForm = Application.OpenForms.OfType<Form1>().FirstOrDefault();
|
||||
if (mainForm != null)
|
||||
{
|
||||
mainForm.modbusClient = new ModbusTcpClient(txb_ModbusTcpIP.Text, port);
|
||||
mainForm.Modbus事件注册();
|
||||
await mainForm.modbusClient.ConnectAsync();
|
||||
}
|
||||
}
|
||||
|
||||
private void btn_OK_Click(object sender, EventArgs e)
|
||||
{
|
||||
DialogResult = DialogResult.OK;
|
||||
}
|
||||
|
||||
private void FormCommunication_Load(object sender, EventArgs e)
|
||||
{
|
||||
txb_ModbusTcpIP.Text = Properties.Settings.Default.ModbusIP;
|
||||
txb_ModbusTcpPort.Text = Properties.Settings.Default.ModbusPort;
|
||||
}
|
||||
|
||||
private void txb_IP_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
123
精工涂胶检测项目/精工涂胶检测项目/Form/FormCommunication.resx
Normal file
123
精工涂胶检测项目/精工涂胶检测项目/Form/FormCommunication.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
101
精工涂胶检测项目/精工涂胶检测项目/Form/FormLogin.cs
Normal file
101
精工涂胶检测项目/精工涂胶检测项目/Form/FormLogin.cs
Normal file
@@ -0,0 +1,101 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
public partial class FormLogin : Form
|
||||
{
|
||||
public int Status = 0;
|
||||
public string account;
|
||||
private Form1 formMain;
|
||||
public FormLogin(Form1 formMain1)
|
||||
{
|
||||
InitializeComponent();
|
||||
formMain = formMain1;
|
||||
txb_Pwd.Text = "";
|
||||
txb_Pwd.PasswordChar = '*';
|
||||
}
|
||||
|
||||
private void btn_Login_Click(object sender, EventArgs e)
|
||||
{
|
||||
switch (comboBox1.SelectedIndex)
|
||||
{
|
||||
case 0:
|
||||
|
||||
try
|
||||
{
|
||||
txb_Account.Text = "Operator";
|
||||
if (txb_Account.Text == "Operator" && txb_Pwd.Text == "123")
|
||||
{
|
||||
MessageBox.Show("Operator 登录成功");
|
||||
this.Status = 1;
|
||||
this.account = "Operator";
|
||||
formMain.SetMainEnabled(Status, account);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("用户名或密码输入有误");
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageBox.Show("登录异常");
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
case 1:
|
||||
try
|
||||
{
|
||||
txb_Account.Text = "Debugger";
|
||||
if (txb_Account.Text == "Debugger" && txb_Pwd.Text == "000")
|
||||
{
|
||||
MessageBox.Show("Debugger 登录成功");
|
||||
this.Status = 2;
|
||||
this.account = "Debugger";
|
||||
formMain.SetMainEnabled(Status, account);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("用户名或密码输入有误");
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageBox.Show("登录异常");
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
try
|
||||
{
|
||||
txb_Account.Text = "admin";
|
||||
if (txb_Account.Text == "admin" && txb_Pwd.Text == "cve666")
|
||||
{
|
||||
MessageBox.Show("admin 登录成功");
|
||||
this.Status = 3;
|
||||
this.account = "admin";
|
||||
formMain.SetMainEnabled(Status, account);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("用户名或密码输入有误");
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageBox.Show("登录异常");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
152
精工涂胶检测项目/精工涂胶检测项目/Form/FormLogin.designer.cs
generated
Normal file
152
精工涂胶检测项目/精工涂胶检测项目/Form/FormLogin.designer.cs
generated
Normal file
@@ -0,0 +1,152 @@
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
partial class FormLogin
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.comboBox1 = new System.Windows.Forms.ComboBox();
|
||||
this.btn_Exit = new System.Windows.Forms.Button();
|
||||
this.btn_Login = new System.Windows.Forms.Button();
|
||||
this.txb_Pwd = new System.Windows.Forms.TextBox();
|
||||
this.txb_Account = new System.Windows.Forms.TextBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// comboBox1
|
||||
//
|
||||
this.comboBox1.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.comboBox1.FormattingEnabled = true;
|
||||
this.comboBox1.Items.AddRange(new object[] {
|
||||
"操作员",
|
||||
"调试员",
|
||||
"管理员"});
|
||||
this.comboBox1.Location = new System.Drawing.Point(339, 118);
|
||||
this.comboBox1.Name = "comboBox1";
|
||||
this.comboBox1.Size = new System.Drawing.Size(192, 28);
|
||||
this.comboBox1.TabIndex = 17;
|
||||
//
|
||||
// btn_Exit
|
||||
//
|
||||
this.btn_Exit.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btn_Exit.Location = new System.Drawing.Point(425, 309);
|
||||
this.btn_Exit.Name = "btn_Exit";
|
||||
this.btn_Exit.Size = new System.Drawing.Size(86, 28);
|
||||
this.btn_Exit.TabIndex = 15;
|
||||
this.btn_Exit.Text = "退出";
|
||||
this.btn_Exit.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btn_Login
|
||||
//
|
||||
this.btn_Login.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btn_Login.Location = new System.Drawing.Point(293, 309);
|
||||
this.btn_Login.Name = "btn_Login";
|
||||
this.btn_Login.Size = new System.Drawing.Size(86, 28);
|
||||
this.btn_Login.TabIndex = 16;
|
||||
this.btn_Login.Text = "登录";
|
||||
this.btn_Login.UseVisualStyleBackColor = true;
|
||||
this.btn_Login.Click += new System.EventHandler(this.btn_Login_Click);
|
||||
//
|
||||
// txb_Pwd
|
||||
//
|
||||
this.txb_Pwd.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.txb_Pwd.Location = new System.Drawing.Point(339, 221);
|
||||
this.txb_Pwd.Name = "txb_Pwd";
|
||||
this.txb_Pwd.Size = new System.Drawing.Size(192, 30);
|
||||
this.txb_Pwd.TabIndex = 14;
|
||||
//
|
||||
// txb_Account
|
||||
//
|
||||
this.txb_Account.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.txb_Account.Location = new System.Drawing.Point(339, 167);
|
||||
this.txb_Account.Name = "txb_Account";
|
||||
this.txb_Account.Size = new System.Drawing.Size(192, 30);
|
||||
this.txb_Account.TabIndex = 13;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label3.Location = new System.Drawing.Point(269, 114);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(49, 20);
|
||||
this.label3.TabIndex = 11;
|
||||
this.label3.Text = "用户";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label2.Location = new System.Drawing.Point(269, 221);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(49, 20);
|
||||
this.label2.TabIndex = 12;
|
||||
this.label2.Text = "密码";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label1.Location = new System.Drawing.Point(269, 167);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(49, 20);
|
||||
this.label1.TabIndex = 10;
|
||||
this.label1.Text = "账号";
|
||||
//
|
||||
// FormLogin
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(800, 450);
|
||||
this.Controls.Add(this.comboBox1);
|
||||
this.Controls.Add(this.btn_Exit);
|
||||
this.Controls.Add(this.btn_Login);
|
||||
this.Controls.Add(this.txb_Pwd);
|
||||
this.Controls.Add(this.txb_Account);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Name = "FormLogin";
|
||||
this.Text = "FormLogin";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ComboBox comboBox1;
|
||||
private System.Windows.Forms.Button btn_Exit;
|
||||
private System.Windows.Forms.Button btn_Login;
|
||||
private System.Windows.Forms.TextBox txb_Pwd;
|
||||
private System.Windows.Forms.TextBox txb_Account;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label1;
|
||||
}
|
||||
}
|
||||
120
精工涂胶检测项目/精工涂胶检测项目/Form/FormLogin.resx
Normal file
120
精工涂胶检测项目/精工涂胶检测项目/Form/FormLogin.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
1178
精工涂胶检测项目/精工涂胶检测项目/Form/FormMain.Designer.cs
generated
Normal file
1178
精工涂胶检测项目/精工涂胶检测项目/Form/FormMain.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
1784
精工涂胶检测项目/精工涂胶检测项目/Form/FormMain.cs
Normal file
1784
精工涂胶检测项目/精工涂胶检测项目/Form/FormMain.cs
Normal file
File diff suppressed because it is too large
Load Diff
199
精工涂胶检测项目/精工涂胶检测项目/Form/FormMain.resx
Normal file
199
精工涂胶检测项目/精工涂胶检测项目/Form/FormMain.resx
Normal file
@@ -0,0 +1,199 @@
|
||||
<?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="btn_LoadImage.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="btn_ManulTrigger.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>252, 17</value>
|
||||
</metadata>
|
||||
<metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>137, 17</value>
|
||||
</metadata>
|
||||
<data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAw
|
||||
CQAAAk1TRnQBSQFMAgEBAwEAAUABAgFAAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
|
||||
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
|
||||
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
|
||||
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
|
||||
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
|
||||
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
|
||||
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
|
||||
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
|
||||
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
|
||||
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
|
||||
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
|
||||
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
|
||||
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
|
||||
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
|
||||
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
|
||||
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
|
||||
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
|
||||
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
|
||||
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
|
||||
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
|
||||
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
|
||||
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
|
||||
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
|
||||
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
|
||||
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wkAAfQcAAdGGQAH1AUA
|
||||
DzIDAAtGFQAB/wnUBAACMgteATIBUwIADUYUAAvUBAABMgteATIDAA1GEwAG1AHbBtQDAAIyBF4BTQRe
|
||||
ATIBmgIABEYBAAVGAQAERhIABtQB/wbUBAABMgleATIDAARGARoBAANGAQAFRhEAAfMG1AH/BtQEAAGa
|
||||
ATIDXgEyA14BMgH2AwAFRgGTAQABRgEABkYRAAHbBtQB/wbUAfQEAAEyA14BMgNeATIDAAdGAZMBAAdG
|
||||
EQAB8w3UBgABMgJeATICXgEyBAAB/wZGAQABkwEABkYSAAbUAf8G1AYAATICXgFTAl4BMgUABUYBAAJG
|
||||
AZMBAAVGEgAG1AH/BtQHAAEyA14BMgYABEYBAARGAZMBAARGEwAL1AgAATIBegFeAVkBMgYAAfINRhQA
|
||||
ARkJ1AH/CQABMgFeATIIAA1GFgAH1AsAAzIJAAtGGQAB8wHbAfMOAAEyCwAB8gdGAf86AAH0AUYB/xYA
|
||||
AUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/8BAAH/AX8C/wH4AQ8CAAH4AQ8BgAEA
|
||||
AeABAwIAAeABBwGAAQABwAEBAgAB4AEDAcABAQHAAQECAAHAAQEBwAEBAYQBEAIAAcABAQHgAQMBggEg
|
||||
AgABgAEBAeABAwGBAUACAAGAAQAB8AEHAQABgAIAAYABAQH4AQ8BAQFAAgABwAEBAfgBDwGCASACAAHA
|
||||
AQEB/AEfAYQBEAIAAeABAwH8AR8BgAEBAgAB4AEDAf4BPwHAAQECAAH4AQ8B/gE/AeABAwIAAf4BPwH/
|
||||
AX8B8AEHAgAE/wH+AT8CAAs=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="btn_Auto.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="cogRecordDisplay1.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAtwAAAAIB
|
||||
AAAAAQAAAAAAAAAAAAAAAKIAAAAAAQAAiRIAAH4bAAATAAAAAAALAP//CwD//wsA//8DAAAAAAADAAEA
|
||||
AAAFAAAAAAAAAAAABQAAAAAAAAAAAAUAAAAAAAAA8D8TAAAA/wALAP//CwD//xMAAIAAAAMAAwAAAAsA
|
||||
//8LAAAAAAAAAAAA4D8AAAAAAADgPwAAAAAAAOA/AAAAAAAA4D8BAAAAAQAAAAsA//8LAAAACwAAAAsA
|
||||
//8L
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="menuStrip1.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>
|
||||
416
精工涂胶检测项目/精工涂胶检测项目/Form/FormSetParameter.Designer.cs
generated
Normal file
416
精工涂胶检测项目/精工涂胶检测项目/Form/FormSetParameter.Designer.cs
generated
Normal file
@@ -0,0 +1,416 @@
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
partial class FormSetParameter
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.txb_IP = new System.Windows.Forms.TextBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.textBox2 = new System.Windows.Forms.TextBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.textBox3 = new System.Windows.Forms.TextBox();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.textBox4 = new System.Windows.Forms.TextBox();
|
||||
this.textBox5 = new System.Windows.Forms.TextBox();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.label9 = new System.Windows.Forms.Label();
|
||||
this.textBox6 = new System.Windows.Forms.TextBox();
|
||||
this.textBox7 = new System.Windows.Forms.TextBox();
|
||||
this.label10 = new System.Windows.Forms.Label();
|
||||
this.textBox8 = new System.Windows.Forms.TextBox();
|
||||
this.label11 = new System.Windows.Forms.Label();
|
||||
this.textBox9 = new System.Windows.Forms.TextBox();
|
||||
this.textBox10 = new System.Windows.Forms.TextBox();
|
||||
this.label12 = new System.Windows.Forms.Label();
|
||||
this.textBox11 = new System.Windows.Forms.TextBox();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.label13 = new System.Windows.Forms.Label();
|
||||
this.textBox12 = new System.Windows.Forms.TextBox();
|
||||
this.label14 = new System.Windows.Forms.Label();
|
||||
this.label15 = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// txb_IP
|
||||
//
|
||||
this.txb_IP.Location = new System.Drawing.Point(541, 48);
|
||||
this.txb_IP.Margin = new System.Windows.Forms.Padding(5);
|
||||
this.txb_IP.Name = "txb_IP";
|
||||
this.txb_IP.Size = new System.Drawing.Size(164, 30);
|
||||
this.txb_IP.TabIndex = 4;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label1.Location = new System.Drawing.Point(20, 35);
|
||||
this.label1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(489, 47);
|
||||
this.label1.TabIndex = 3;
|
||||
this.label1.Text = "涂胶位置1体积上限:";
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.Location = new System.Drawing.Point(541, 119);
|
||||
this.textBox1.Margin = new System.Windows.Forms.Padding(5);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.Size = new System.Drawing.Size(164, 30);
|
||||
this.textBox1.TabIndex = 6;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label2.Location = new System.Drawing.Point(20, 119);
|
||||
this.label2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(489, 47);
|
||||
this.label2.TabIndex = 5;
|
||||
this.label2.Text = "涂胶位置1体积下限:";
|
||||
//
|
||||
// textBox2
|
||||
//
|
||||
this.textBox2.Location = new System.Drawing.Point(541, 192);
|
||||
this.textBox2.Margin = new System.Windows.Forms.Padding(5);
|
||||
this.textBox2.Name = "textBox2";
|
||||
this.textBox2.Size = new System.Drawing.Size(164, 30);
|
||||
this.textBox2.TabIndex = 8;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label3.Location = new System.Drawing.Point(20, 205);
|
||||
this.label3.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(480, 47);
|
||||
this.label3.TabIndex = 7;
|
||||
this.label3.Text = "涂胶位置2体积上限:";
|
||||
//
|
||||
// textBox3
|
||||
//
|
||||
this.textBox3.Location = new System.Drawing.Point(541, 276);
|
||||
this.textBox3.Margin = new System.Windows.Forms.Padding(5);
|
||||
this.textBox3.Name = "textBox3";
|
||||
this.textBox3.Size = new System.Drawing.Size(164, 30);
|
||||
this.textBox3.TabIndex = 10;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label4.Location = new System.Drawing.Point(20, 283);
|
||||
this.label4.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(489, 47);
|
||||
this.label4.TabIndex = 9;
|
||||
this.label4.Text = "涂胶位置2体积下限:";
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label5.Location = new System.Drawing.Point(20, 349);
|
||||
this.label5.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(489, 47);
|
||||
this.label5.TabIndex = 11;
|
||||
this.label5.Text = "涂胶位置3体积上限:";
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label6.Location = new System.Drawing.Point(20, 416);
|
||||
this.label6.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(489, 47);
|
||||
this.label6.TabIndex = 12;
|
||||
this.label6.Text = "涂胶位置3体积下限:";
|
||||
//
|
||||
// textBox4
|
||||
//
|
||||
this.textBox4.Location = new System.Drawing.Point(541, 349);
|
||||
this.textBox4.Margin = new System.Windows.Forms.Padding(5);
|
||||
this.textBox4.Name = "textBox4";
|
||||
this.textBox4.Size = new System.Drawing.Size(164, 30);
|
||||
this.textBox4.TabIndex = 13;
|
||||
//
|
||||
// textBox5
|
||||
//
|
||||
this.textBox5.Location = new System.Drawing.Point(541, 416);
|
||||
this.textBox5.Margin = new System.Windows.Forms.Padding(5);
|
||||
this.textBox5.Name = "textBox5";
|
||||
this.textBox5.Size = new System.Drawing.Size(164, 30);
|
||||
this.textBox5.TabIndex = 14;
|
||||
//
|
||||
// label7
|
||||
//
|
||||
this.label7.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label7.Location = new System.Drawing.Point(895, 343);
|
||||
this.label7.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
|
||||
this.label7.Name = "label7";
|
||||
this.label7.Size = new System.Drawing.Size(410, 47);
|
||||
this.label7.TabIndex = 15;
|
||||
this.label7.Text = "涂胶位置3面积上限:";
|
||||
//
|
||||
// label8
|
||||
//
|
||||
this.label8.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label8.Location = new System.Drawing.Point(895, 35);
|
||||
this.label8.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
|
||||
this.label8.Name = "label8";
|
||||
this.label8.Size = new System.Drawing.Size(430, 47);
|
||||
this.label8.TabIndex = 16;
|
||||
this.label8.Text = "涂胶位置1面积上限:";
|
||||
//
|
||||
// label9
|
||||
//
|
||||
this.label9.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label9.Location = new System.Drawing.Point(895, 112);
|
||||
this.label9.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(430, 47);
|
||||
this.label9.TabIndex = 17;
|
||||
this.label9.Text = "涂胶位置1面积下限:";
|
||||
//
|
||||
// textBox6
|
||||
//
|
||||
this.textBox6.Location = new System.Drawing.Point(1335, 48);
|
||||
this.textBox6.Margin = new System.Windows.Forms.Padding(5);
|
||||
this.textBox6.Name = "textBox6";
|
||||
this.textBox6.Size = new System.Drawing.Size(164, 30);
|
||||
this.textBox6.TabIndex = 18;
|
||||
//
|
||||
// textBox7
|
||||
//
|
||||
this.textBox7.Location = new System.Drawing.Point(1335, 119);
|
||||
this.textBox7.Margin = new System.Windows.Forms.Padding(5);
|
||||
this.textBox7.Name = "textBox7";
|
||||
this.textBox7.Size = new System.Drawing.Size(164, 30);
|
||||
this.textBox7.TabIndex = 19;
|
||||
//
|
||||
// label10
|
||||
//
|
||||
this.label10.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label10.Location = new System.Drawing.Point(895, 205);
|
||||
this.label10.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
|
||||
this.label10.Name = "label10";
|
||||
this.label10.Size = new System.Drawing.Size(430, 47);
|
||||
this.label10.TabIndex = 20;
|
||||
this.label10.Text = "涂胶位置2面积上限:";
|
||||
//
|
||||
// textBox8
|
||||
//
|
||||
this.textBox8.Location = new System.Drawing.Point(1335, 205);
|
||||
this.textBox8.Margin = new System.Windows.Forms.Padding(5);
|
||||
this.textBox8.Name = "textBox8";
|
||||
this.textBox8.Size = new System.Drawing.Size(164, 30);
|
||||
this.textBox8.TabIndex = 21;
|
||||
//
|
||||
// label11
|
||||
//
|
||||
this.label11.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label11.Location = new System.Drawing.Point(895, 276);
|
||||
this.label11.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
|
||||
this.label11.Name = "label11";
|
||||
this.label11.Size = new System.Drawing.Size(410, 47);
|
||||
this.label11.TabIndex = 22;
|
||||
this.label11.Text = "涂胶位置2面积下限:";
|
||||
//
|
||||
// textBox9
|
||||
//
|
||||
this.textBox9.Location = new System.Drawing.Point(1335, 283);
|
||||
this.textBox9.Margin = new System.Windows.Forms.Padding(5);
|
||||
this.textBox9.Name = "textBox9";
|
||||
this.textBox9.Size = new System.Drawing.Size(164, 30);
|
||||
this.textBox9.TabIndex = 23;
|
||||
//
|
||||
// textBox10
|
||||
//
|
||||
this.textBox10.Location = new System.Drawing.Point(1335, 349);
|
||||
this.textBox10.Margin = new System.Windows.Forms.Padding(5);
|
||||
this.textBox10.Name = "textBox10";
|
||||
this.textBox10.Size = new System.Drawing.Size(164, 30);
|
||||
this.textBox10.TabIndex = 24;
|
||||
//
|
||||
// label12
|
||||
//
|
||||
this.label12.Font = new System.Drawing.Font("宋体", 15F);
|
||||
this.label12.Location = new System.Drawing.Point(895, 416);
|
||||
this.label12.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
|
||||
this.label12.Name = "label12";
|
||||
this.label12.Size = new System.Drawing.Size(430, 47);
|
||||
this.label12.TabIndex = 25;
|
||||
this.label12.Text = "涂胶位置3面积下限:";
|
||||
//
|
||||
// textBox11
|
||||
//
|
||||
this.textBox11.Location = new System.Drawing.Point(1335, 429);
|
||||
this.textBox11.Margin = new System.Windows.Forms.Padding(5);
|
||||
this.textBox11.Name = "textBox11";
|
||||
this.textBox11.Size = new System.Drawing.Size(164, 30);
|
||||
this.textBox11.TabIndex = 26;
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Location = new System.Drawing.Point(294, 615);
|
||||
this.button1.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(206, 69);
|
||||
this.button1.TabIndex = 27;
|
||||
this.button1.Text = "保存参数";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.Location = new System.Drawing.Point(864, 615);
|
||||
this.button2.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(191, 69);
|
||||
this.button2.TabIndex = 28;
|
||||
this.button2.Text = "读取参数";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
this.button2.Click += new System.EventHandler(this.button2_Click);
|
||||
//
|
||||
// label13
|
||||
//
|
||||
this.label13.AutoSize = true;
|
||||
this.label13.Font = new System.Drawing.Font("宋体", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label13.Location = new System.Drawing.Point(235, 540);
|
||||
this.label13.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label13.Name = "label13";
|
||||
this.label13.Size = new System.Drawing.Size(187, 25);
|
||||
this.label13.TabIndex = 29;
|
||||
this.label13.Text = "标定参数范围:";
|
||||
//
|
||||
// textBox12
|
||||
//
|
||||
this.textBox12.Location = new System.Drawing.Point(659, 540);
|
||||
this.textBox12.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.textBox12.Name = "textBox12";
|
||||
this.textBox12.Size = new System.Drawing.Size(326, 30);
|
||||
this.textBox12.TabIndex = 30;
|
||||
//
|
||||
// label14
|
||||
//
|
||||
this.label14.AutoSize = true;
|
||||
this.label14.Location = new System.Drawing.Point(1015, 544);
|
||||
this.label14.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label14.Name = "label14";
|
||||
this.label14.Size = new System.Drawing.Size(19, 20);
|
||||
this.label14.TabIndex = 31;
|
||||
this.label14.Text = "%";
|
||||
//
|
||||
// label15
|
||||
//
|
||||
this.label15.AutoSize = true;
|
||||
this.label15.Location = new System.Drawing.Point(30, 9);
|
||||
this.label15.Name = "label15";
|
||||
this.label15.Size = new System.Drawing.Size(109, 20);
|
||||
this.label15.TabIndex = 32;
|
||||
this.label15.Text = "产品型号:";
|
||||
//
|
||||
// FormSetParameter
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 20F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1580, 749);
|
||||
this.Controls.Add(this.label15);
|
||||
this.Controls.Add(this.label14);
|
||||
this.Controls.Add(this.textBox12);
|
||||
this.Controls.Add(this.label13);
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.textBox11);
|
||||
this.Controls.Add(this.label12);
|
||||
this.Controls.Add(this.textBox10);
|
||||
this.Controls.Add(this.textBox9);
|
||||
this.Controls.Add(this.label11);
|
||||
this.Controls.Add(this.textBox8);
|
||||
this.Controls.Add(this.label10);
|
||||
this.Controls.Add(this.textBox7);
|
||||
this.Controls.Add(this.textBox6);
|
||||
this.Controls.Add(this.label9);
|
||||
this.Controls.Add(this.label8);
|
||||
this.Controls.Add(this.label7);
|
||||
this.Controls.Add(this.textBox5);
|
||||
this.Controls.Add(this.textBox4);
|
||||
this.Controls.Add(this.label6);
|
||||
this.Controls.Add(this.label5);
|
||||
this.Controls.Add(this.textBox3);
|
||||
this.Controls.Add(this.label4);
|
||||
this.Controls.Add(this.textBox2);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.txb_IP);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.Margin = new System.Windows.Forms.Padding(5);
|
||||
this.Name = "FormSetParameter";
|
||||
this.Text = "参数设置";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox txb_IP;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.TextBox textBox2;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.TextBox textBox3;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.TextBox textBox4;
|
||||
private System.Windows.Forms.TextBox textBox5;
|
||||
private System.Windows.Forms.Label label7;
|
||||
private System.Windows.Forms.Label label8;
|
||||
private System.Windows.Forms.Label label9;
|
||||
private System.Windows.Forms.TextBox textBox6;
|
||||
private System.Windows.Forms.TextBox textBox7;
|
||||
private System.Windows.Forms.Label label10;
|
||||
private System.Windows.Forms.TextBox textBox8;
|
||||
private System.Windows.Forms.Label label11;
|
||||
private System.Windows.Forms.TextBox textBox9;
|
||||
private System.Windows.Forms.TextBox textBox10;
|
||||
private System.Windows.Forms.Label label12;
|
||||
private System.Windows.Forms.TextBox textBox11;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.Button button2;
|
||||
private System.Windows.Forms.Label label13;
|
||||
private System.Windows.Forms.TextBox textBox12;
|
||||
private System.Windows.Forms.Label label14;
|
||||
private System.Windows.Forms.Label label15;
|
||||
}
|
||||
}
|
||||
97
精工涂胶检测项目/精工涂胶检测项目/Form/FormSetParameter.cs
Normal file
97
精工涂胶检测项目/精工涂胶检测项目/Form/FormSetParameter.cs
Normal file
@@ -0,0 +1,97 @@
|
||||
using Microsoft.Office.Interop.Excel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection.Emit;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
public partial class FormSetParameter : Form
|
||||
{
|
||||
int count = 3;
|
||||
string CSPath="D:\\阈值参数.txt";
|
||||
string CS;
|
||||
public FormSetParameter()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
private string _receiveString;
|
||||
public string ReceiveString
|
||||
{
|
||||
get => _receiveString;
|
||||
set
|
||||
{
|
||||
_receiveString = value;
|
||||
if (label15 != null)
|
||||
{
|
||||
label15.Text = _receiveString.ToString();
|
||||
CS = label15.Text;
|
||||
CSPath = Path.Combine(@"D:\", $"{CS}.txt");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
StreamWriter sw = new StreamWriter(CSPath);
|
||||
sw.WriteLine(txb_IP.Text);
|
||||
sw.WriteLine(textBox1.Text );
|
||||
sw.WriteLine(textBox6.Text );
|
||||
sw.WriteLine(textBox7.Text );//1位置
|
||||
sw.WriteLine(textBox2.Text);
|
||||
sw.WriteLine(textBox3.Text );
|
||||
sw.WriteLine(textBox8.Text );
|
||||
sw.WriteLine(textBox9.Text );//2位置
|
||||
sw.WriteLine(textBox4.Text);
|
||||
sw.WriteLine(textBox5.Text );
|
||||
sw.WriteLine(textBox10.Text );
|
||||
sw.WriteLine(textBox11.Text );
|
||||
sw.WriteLine(textBox12.Text);
|
||||
sw.Flush(); //文件流
|
||||
sw.Close(); //最后要关闭写入状态
|
||||
}
|
||||
|
||||
private void button2_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (File.Exists(CSPath))
|
||||
{
|
||||
string[] lines = File.ReadAllLines(CSPath); // 读取所有行[^1]
|
||||
|
||||
if (lines.Length >= 1) txb_IP.Text = lines[0]; // 第一行数据
|
||||
if (lines.Length >= 2) textBox1.Text = lines[1]; // 第二行数据
|
||||
if (lines.Length >= 3) textBox6.Text = lines[2]; // 第三行数据
|
||||
if (lines.Length >= 4) textBox7.Text = lines[3]; //
|
||||
if (lines.Length >= 5) textBox2.Text = lines[4]; //
|
||||
if (lines.Length >= 6) textBox3.Text = lines[5]; //
|
||||
if (lines.Length >= 7) textBox8.Text = lines[6]; //
|
||||
if (lines.Length >= 8) textBox9.Text = lines[7]; //
|
||||
if (lines.Length >= 9) textBox4.Text = lines[8];
|
||||
if (lines.Length >= 10) textBox5.Text = lines[9];
|
||||
if (lines.Length >= 11) textBox10.Text = lines[10];
|
||||
if (lines.Length >= 12) textBox11.Text = lines[11];
|
||||
if (lines.Length >= 13) textBox12.Text = lines[12];
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("文件不存在!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show($"发生错误:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
123
精工涂胶检测项目/精工涂胶检测项目/Form/FormSetParameter.resx
Normal file
123
精工涂胶检测项目/精工涂胶检测项目/Form/FormSetParameter.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
||||
6
精工涂胶检测项目/精工涂胶检测项目/Form/StatusChecker.cs
Normal file
6
精工涂胶检测项目/精工涂胶检测项目/Form/StatusChecker.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
internal class StatusChecker
|
||||
{
|
||||
}
|
||||
}
|
||||
12
精工涂胶检测项目/精工涂胶检测项目/Form/yuzhicanshu.cs
Normal file
12
精工涂胶检测项目/精工涂胶检测项目/Form/yuzhicanshu.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace 精工涂胶检测项目.Form
|
||||
{
|
||||
class yuzhicanshu
|
||||
{
|
||||
}
|
||||
}
|
||||
153
精工涂胶检测项目/精工涂胶检测项目/FormCheck.Designer.cs
generated
Normal file
153
精工涂胶检测项目/精工涂胶检测项目/FormCheck.Designer.cs
generated
Normal file
@@ -0,0 +1,153 @@
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
partial class FormCheck
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.comboBox1 = new System.Windows.Forms.ComboBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.button3 = new System.Windows.Forms.Button();
|
||||
this.button4 = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// comboBox1
|
||||
//
|
||||
this.comboBox1.FormattingEnabled = true;
|
||||
this.comboBox1.Location = new System.Drawing.Point(335, 257);
|
||||
this.comboBox1.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.comboBox1.Name = "comboBox1";
|
||||
this.comboBox1.Size = new System.Drawing.Size(371, 23);
|
||||
this.comboBox1.TabIndex = 0;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label1.Location = new System.Drawing.Point(93, 256);
|
||||
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(156, 20);
|
||||
this.label1.TabIndex = 1;
|
||||
this.label1.Text = "目前已有配方:";
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Location = new System.Drawing.Point(335, 329);
|
||||
this.button1.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(160, 47);
|
||||
this.button1.TabIndex = 2;
|
||||
this.button1.Text = "切换配方";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label2.Location = new System.Drawing.Point(93, 88);
|
||||
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(114, 20);
|
||||
this.label2.TabIndex = 3;
|
||||
this.label2.Text = "添加配方:";
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.Location = new System.Drawing.Point(335, 83);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.Size = new System.Drawing.Size(371, 25);
|
||||
this.textBox1.TabIndex = 4;
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.Location = new System.Drawing.Point(339, 144);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(156, 41);
|
||||
this.button2.TabIndex = 5;
|
||||
this.button2.Text = "确定添加";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
this.button2.Click += new System.EventHandler(this.button2_Click);
|
||||
//
|
||||
// button3
|
||||
//
|
||||
this.button3.Location = new System.Drawing.Point(561, 329);
|
||||
this.button3.Name = "button3";
|
||||
this.button3.Size = new System.Drawing.Size(145, 47);
|
||||
this.button3.TabIndex = 6;
|
||||
this.button3.Text = "保存配方";
|
||||
this.button3.UseVisualStyleBackColor = true;
|
||||
this.button3.Click += new System.EventHandler(this.button3_Click);
|
||||
//
|
||||
// button4
|
||||
//
|
||||
this.button4.Location = new System.Drawing.Point(539, 144);
|
||||
this.button4.Name = "button4";
|
||||
this.button4.Size = new System.Drawing.Size(156, 41);
|
||||
this.button4.TabIndex = 7;
|
||||
this.button4.Text = "生成参数文件";
|
||||
this.button4.UseVisualStyleBackColor = true;
|
||||
this.button4.Click += new System.EventHandler(this.button4_Click);
|
||||
//
|
||||
// FormCheck
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1128, 459);
|
||||
this.Controls.Add(this.button4);
|
||||
this.Controls.Add(this.button3);
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.comboBox1);
|
||||
this.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.Name = "FormCheck";
|
||||
this.Text = "切换配方";
|
||||
this.Load += new System.EventHandler(this.FormCheck_Load_1);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ComboBox comboBox1;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
private System.Windows.Forms.Button button2;
|
||||
private System.Windows.Forms.Button button3;
|
||||
private System.Windows.Forms.Button button4;
|
||||
}
|
||||
}
|
||||
124
精工涂胶检测项目/精工涂胶检测项目/FormCheck.cs
Normal file
124
精工涂胶检测项目/精工涂胶检测项目/FormCheck.cs
Normal file
@@ -0,0 +1,124 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
using System.Text;
|
||||
using System.Collections.Generic;
|
||||
using Cognex.VisionPro;
|
||||
using Cognex.VisionPro.QuickBuild;
|
||||
using System.Drawing;
|
||||
using System.Net.Sockets;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Runtime;
|
||||
using Cognex.VisionPro.ToolBlock;
|
||||
using Cognex.VisionPro.ToolGroup;
|
||||
using Cognex.VisionPro3D;
|
||||
using Cognex.VisionPro.ImageFile;
|
||||
using Cognex.VisionPro.PMAlign;
|
||||
using Cognex.VisionPro.CalibFix;
|
||||
using S7.Net;
|
||||
using Cognex.VisionPro.ImageProcessing;
|
||||
using Timer = System.Windows.Forms.Timer;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
public partial class FormCheck : Form
|
||||
{
|
||||
private string _dateFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ComboBoxData.json");
|
||||
public Action<string> TextBoxValueChanged;
|
||||
private FormSetParameter _formSetParameter;
|
||||
public FormCheck()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.Load += FormCheck_Load;
|
||||
//InitComponent();
|
||||
}
|
||||
|
||||
//private void InitComponent()
|
||||
//{
|
||||
// throw new NotImplementedException();
|
||||
//}
|
||||
|
||||
private void FormCheck_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (File.Exists(_dateFilePath))
|
||||
{
|
||||
String jsonContent=File.ReadAllText(_dateFilePath);
|
||||
var items = JsonConvert.DeserializeObject<List<string>>(jsonContent);
|
||||
if (items != null)
|
||||
{
|
||||
comboBox1.Items.AddRange(items.ToArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
TextBoxValueChanged?.Invoke(comboBox1.Text);
|
||||
_formSetParameter = new FormSetParameter();
|
||||
_formSetParameter.Show();
|
||||
_formSetParameter.ReceiveString = comboBox1.Text;
|
||||
MessageBox.Show("切换作业完成");
|
||||
}
|
||||
|
||||
private void button2_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(textBox1.Text))
|
||||
{
|
||||
comboBox1.Items.Add(textBox1.Text);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void button3_Click(object sender, EventArgs e)
|
||||
{
|
||||
var items=new List<string>();
|
||||
foreach (var item in comboBox1.Items)
|
||||
{
|
||||
items.Add(item.ToString());
|
||||
}
|
||||
string json=JsonConvert.SerializeObject(items,Formatting.Indented);
|
||||
File.WriteAllText(_dateFilePath, json);
|
||||
|
||||
}
|
||||
|
||||
private void button4_Click(object sender, EventArgs e)
|
||||
{
|
||||
string fileName=textBox1.Text;
|
||||
if (string.IsNullOrEmpty(fileName))
|
||||
{
|
||||
MessageBox.Show("请先输入产品型号!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
string filePath=Path.Combine(@"D:\",$"{fileName}.txt");
|
||||
try
|
||||
{
|
||||
using (File.Create(filePath)) { }
|
||||
MessageBox.Show("生成参数文件完成");
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
MessageBox.Show("未知错误!");
|
||||
}
|
||||
}
|
||||
|
||||
private void FormCheck_Load_1(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
120
精工涂胶检测项目/精工涂胶检测项目/FormCheck.resx
Normal file
120
精工涂胶检测项目/精工涂胶检测项目/FormCheck.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
62
精工涂胶检测项目/精工涂胶检测项目/FormVPP.Designer.cs
generated
Normal file
62
精工涂胶检测项目/精工涂胶检测项目/FormVPP.Designer.cs
generated
Normal file
@@ -0,0 +1,62 @@
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
partial class FormVPP
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.cogJobManagerEdit1 = new Cognex.VisionPro.QuickBuild.CogJobManagerEdit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// cogJobManagerEdit1
|
||||
//
|
||||
this.cogJobManagerEdit1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.cogJobManagerEdit1.Location = new System.Drawing.Point(0, 0);
|
||||
this.cogJobManagerEdit1.Name = "cogJobManagerEdit1";
|
||||
this.cogJobManagerEdit1.ShowLocalizationTab = false;
|
||||
this.cogJobManagerEdit1.Size = new System.Drawing.Size(882, 514);
|
||||
this.cogJobManagerEdit1.Subject = null;
|
||||
this.cogJobManagerEdit1.TabIndex = 0;
|
||||
//
|
||||
// FormVPP
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(882, 514);
|
||||
this.Controls.Add(this.cogJobManagerEdit1);
|
||||
this.Name = "FormVPP";
|
||||
this.Text = "FormVPP";
|
||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormVPP_FormClosed);
|
||||
this.Load += new System.EventHandler(this.FormVPP_Load);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Cognex.VisionPro.QuickBuild.CogJobManagerEdit cogJobManagerEdit1;
|
||||
}
|
||||
}
|
||||
34
精工涂胶检测项目/精工涂胶检测项目/FormVPP.cs
Normal file
34
精工涂胶检测项目/精工涂胶检测项目/FormVPP.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
public partial class FormVPP : Form
|
||||
{
|
||||
public FormVPP()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void FormVPP_Load(object sender, EventArgs e)
|
||||
{
|
||||
var mainForm = Application.OpenForms.OfType<Form1>().FirstOrDefault();
|
||||
if (mainForm == null) return;
|
||||
cogJobManagerEdit1.Subject = mainForm.myJobManager;
|
||||
}
|
||||
|
||||
private void FormVPP_FormClosed(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
var mainForm = Application.OpenForms.OfType<Form1>().FirstOrDefault();
|
||||
if (mainForm == null) return;
|
||||
mainForm.myJobManager = cogJobManagerEdit1.Subject;
|
||||
}
|
||||
}
|
||||
}
|
||||
120
精工涂胶检测项目/精工涂胶检测项目/FormVPP.resx
Normal file
120
精工涂胶检测项目/精工涂胶检测项目/FormVPP.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
75
精工涂胶检测项目/精工涂胶检测项目/Form_LoadingImage.Designer.cs
generated
Normal file
75
精工涂胶检测项目/精工涂胶检测项目/Form_LoadingImage.Designer.cs
generated
Normal file
@@ -0,0 +1,75 @@
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
partial class Form_LoadingImage
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form_LoadingImage));
|
||||
this.timer_Display = new System.Windows.Forms.Timer(this.components);
|
||||
this.label = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// timer_Display
|
||||
//
|
||||
this.timer_Display.Tick += new System.EventHandler(this.timer_Display_Tick);
|
||||
//
|
||||
// label
|
||||
//
|
||||
this.label.AutoSize = true;
|
||||
this.label.BackColor = System.Drawing.SystemColors.ActiveCaption;
|
||||
this.label.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label.ForeColor = System.Drawing.Color.Blue;
|
||||
this.label.Location = new System.Drawing.Point(69, 237);
|
||||
this.label.Name = "label";
|
||||
this.label.Size = new System.Drawing.Size(75, 20);
|
||||
this.label.TabIndex = 0;
|
||||
this.label.Text = "label1";
|
||||
this.label.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// Form_LoadingImage
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));
|
||||
this.ClientSize = new System.Drawing.Size(800, 450);
|
||||
this.ControlBox = false;
|
||||
this.Controls.Add(this.label);
|
||||
this.Name = "Form_LoadingImage";
|
||||
this.Text = "软件正在启动";
|
||||
this.Load += new System.EventHandler(this.Form_LoadingImage_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Timer timer_Display;
|
||||
private System.Windows.Forms.Label label;
|
||||
}
|
||||
}
|
||||
64
精工涂胶检测项目/精工涂胶检测项目/Form_LoadingImage.cs
Normal file
64
精工涂胶检测项目/精工涂胶检测项目/Form_LoadingImage.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
public partial class Form_LoadingImage : Form
|
||||
{
|
||||
private const string flash = "软件正在启动中,请耐心等待!!!!!!!!!!!!!!!";
|
||||
private int stopCount=flash.Length+300;
|
||||
private int count = 0;
|
||||
private bool finish=false;
|
||||
public Form_LoadingImage()
|
||||
{
|
||||
InitializeComponent();
|
||||
timer_Display.Start();
|
||||
label.Text = "";
|
||||
}
|
||||
|
||||
private void Form_LoadingImage_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void timer_Display_Tick(object sender, EventArgs e)
|
||||
{
|
||||
if (finish == false)
|
||||
{
|
||||
label.Text += flash.Substring(count, 1); //逐个显示文字
|
||||
}
|
||||
//累加计数
|
||||
count++;
|
||||
if (count == flash.Length)
|
||||
{
|
||||
CheckProgramProcess();
|
||||
finish = true;//文字显示完成
|
||||
}
|
||||
else if (count >= stopCount)
|
||||
{
|
||||
timer_Display.Stop();
|
||||
this.Close();//关闭窗口
|
||||
}
|
||||
}
|
||||
private bool CheckProgramProcess()
|
||||
{
|
||||
Process[] myProcesses = Process.GetProcessesByName(Application.ProductName);
|
||||
if (myProcesses.Length > 1) //如果可以获取到本进程名大于1个,则说明在此之前已经启动过
|
||||
{
|
||||
timer_Display.Stop();
|
||||
MessageBox.Show("检测到程序已经运行,请先关闭多余的程序或进程!\n");
|
||||
Application.Exit();//关闭
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
2400
精工涂胶检测项目/精工涂胶检测项目/Form_LoadingImage.resx
Normal file
2400
精工涂胶检测项目/精工涂胶检测项目/Form_LoadingImage.resx
Normal file
File diff suppressed because it is too large
Load Diff
226
精工涂胶检测项目/精工涂胶检测项目/LinDeVisionTask.ResultsDisplay.cs
Normal file
226
精工涂胶检测项目/精工涂胶检测项目/LinDeVisionTask.ResultsDisplay.cs
Normal file
@@ -0,0 +1,226 @@
|
||||
// 警告:某些程序集引用无法自动解析。这可能会导致某些部分反编译错误,
|
||||
// 例如属性 getter/setter 访问。要获得最佳反编译结果,请手动将缺少的引用添加到加载的程序集列表中。
|
||||
// LinDeVisionTask, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// LinDeVisionTask.ResultsDisplay
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Forms.Integration;
|
||||
using Cognex.VisionPro;
|
||||
using Cognex.VisionPro3D;
|
||||
using ConVX.VXControl;
|
||||
|
||||
public class ResultsDisplay : UserControl
|
||||
{
|
||||
private Cog3DDisplayV2 cog3DDisplayV21;
|
||||
|
||||
private IContainer components = null;
|
||||
|
||||
private VXCircleLEDLight led_CurrentState;
|
||||
|
||||
private VXCircleLabel vxCircleLabel8;
|
||||
|
||||
private VXCircleLabel lbl_Result;
|
||||
|
||||
private Panel panel1;
|
||||
|
||||
private TableLayoutPanel tableLayoutPanel1;
|
||||
|
||||
private VXCircleLEDLight led_CurrentError;
|
||||
|
||||
private VXGroupBox groupBox1;
|
||||
|
||||
private ElementHost elementHost1;
|
||||
|
||||
public ResultsDisplay()
|
||||
{
|
||||
InitializeComponent();
|
||||
cog3DDisplayV21 = new Cog3DDisplayV2();
|
||||
cog3DDisplayV21.BackColor = Color.FromArgb(95, 95, 95);
|
||||
elementHost1.Child = (UIElement)(object)cog3DDisplayV21;
|
||||
DisplayData(Color.Gray, Color.Gray, "失败");
|
||||
}
|
||||
|
||||
public void DisplayData(Color connectColor, Color statColor, string result)
|
||||
{
|
||||
if (base.InvokeRequired)
|
||||
{
|
||||
BeginInvoke((Action)delegate
|
||||
{
|
||||
DisplayData(connectColor, statColor, result);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
((Control)(object)lbl_Result).Text = result.ToString();
|
||||
led_CurrentState.LedColor = connectColor;
|
||||
led_CurrentError.LedColor = statColor;
|
||||
}
|
||||
}
|
||||
|
||||
public void Display3DImage(Cog3DBox box, CogImage16Range TrainImage, CogImage16Range image)
|
||||
{
|
||||
if (base.InvokeRequired)
|
||||
{
|
||||
BeginInvoke((Action)delegate
|
||||
{
|
||||
Display3DImage(box, TrainImage, image);
|
||||
});
|
||||
return;
|
||||
}
|
||||
cog3DDisplayV21.Clear();
|
||||
Cog3DBoxGraphic cog3DBoxGraphic = new Cog3DBoxGraphic(box);
|
||||
cog3DBoxGraphic.Opacity = 0.5;
|
||||
cog3DBoxGraphic.Color = CogColorConstants.Cyan;
|
||||
cog3DBoxGraphic.DisplayState = Cog3DGraphicDisplayStateConstants.SurfaceWithWireFrame;
|
||||
Cog3DRangeImageGraphic cog3DRangeImageGraphic = new Cog3DRangeImageGraphic(TrainImage);
|
||||
cog3DRangeImageGraphic.Color = CogColorConstants.Green;
|
||||
Cog3DRangeImageGraphic item = new Cog3DRangeImageGraphic(image);
|
||||
cog3DDisplayV21.Add(item);
|
||||
cog3DDisplayV21.Add(cog3DRangeImageGraphic);
|
||||
cog3DDisplayV21.Add(cog3DBoxGraphic, cog3DRangeImageGraphic);
|
||||
cog3DDisplayV21.BackColor = Color.FromArgb(95, 95, 95);
|
||||
cog3DDisplayV21.FitView();
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && components != null)
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0017: Expected O, but got Unknown
|
||||
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0022: Expected O, but got Unknown
|
||||
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_002d: Expected O, but got Unknown
|
||||
//IL_004a: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0054: Expected O, but got Unknown
|
||||
//IL_0060: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_006a: Expected O, but got Unknown
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.led_CurrentState = new VXCircleLEDLight();
|
||||
this.vxCircleLabel8 = new VXCircleLabel();
|
||||
this.lbl_Result = new VXCircleLabel();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.groupBox1 = new VXGroupBox(this.components);
|
||||
this.elementHost1 = new System.Windows.Forms.Integration.ElementHost();
|
||||
this.led_CurrentError = new VXCircleLEDLight();
|
||||
this.panel1.SuspendLayout();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
((System.Windows.Forms.Control)(object)this.groupBox1).SuspendLayout();
|
||||
base.SuspendLayout();
|
||||
((System.Windows.Forms.Control)(object)this.led_CurrentState).Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||
((System.Windows.Forms.Control)(object)this.led_CurrentState).BackColor = System.Drawing.Color.FromArgb(52, 52, 52);
|
||||
this.led_CurrentState.BorderWidth = 3;
|
||||
this.led_CurrentState.FillText = "连接状态";
|
||||
((System.Windows.Forms.Control)(object)this.led_CurrentState).Font = new System.Drawing.Font("微软雅黑", 12f);
|
||||
this.led_CurrentState.LedColor = System.Drawing.Color.Gray;
|
||||
((System.Windows.Forms.Control)(object)this.led_CurrentState).Location = new System.Drawing.Point(15, 4);
|
||||
((System.Windows.Forms.Control)(object)this.led_CurrentState).Name = "led_CurrentState";
|
||||
((System.Windows.Forms.Control)(object)this.led_CurrentState).Size = new System.Drawing.Size(111, 30);
|
||||
((System.Windows.Forms.Control)(object)this.led_CurrentState).TabIndex = 38;
|
||||
((System.Windows.Forms.Control)(object)this.vxCircleLabel8).BackColor = System.Drawing.Color.Transparent;
|
||||
this.vxCircleLabel8.BgColor = System.Drawing.Color.FromArgb(52, 52, 52);
|
||||
this.vxCircleLabel8.BorderColor = System.Drawing.Color.Gray;
|
||||
this.vxCircleLabel8.BorderWidth = 0;
|
||||
((System.Windows.Forms.Control)(object)this.vxCircleLabel8).Dock = System.Windows.Forms.DockStyle.Left;
|
||||
((System.Windows.Forms.Control)(object)this.vxCircleLabel8).Font = new System.Drawing.Font("微软雅黑", 12f);
|
||||
((System.Windows.Forms.Control)(object)this.vxCircleLabel8).ForeColor = System.Drawing.Color.White;
|
||||
((System.Windows.Forms.Control)(object)this.vxCircleLabel8).Location = new System.Drawing.Point(3, 78);
|
||||
((System.Windows.Forms.Control)(object)this.vxCircleLabel8).Name = "vxCircleLabel8";
|
||||
this.vxCircleLabel8.Radius = 5;
|
||||
((System.Windows.Forms.Control)(object)this.vxCircleLabel8).Size = new System.Drawing.Size(136, 39);
|
||||
((System.Windows.Forms.Control)(object)this.vxCircleLabel8).TabIndex = 41;
|
||||
((System.Windows.Forms.Control)(object)this.vxCircleLabel8).Text = "检测结果:";
|
||||
((System.Windows.Forms.Label)(object)this.vxCircleLabel8).TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
((System.Windows.Forms.Control)(object)this.lbl_Result).Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
((System.Windows.Forms.Control)(object)this.lbl_Result).BackColor = System.Drawing.Color.Transparent;
|
||||
this.lbl_Result.BgColor = System.Drawing.Color.FromArgb(52, 52, 52);
|
||||
this.lbl_Result.BorderColor = System.Drawing.Color.Gray;
|
||||
this.lbl_Result.BorderWidth = 1;
|
||||
((System.Windows.Forms.Control)(object)this.lbl_Result).Font = new System.Drawing.Font("微软雅黑", 12f);
|
||||
((System.Windows.Forms.Control)(object)this.lbl_Result).ForeColor = System.Drawing.Color.White;
|
||||
((System.Windows.Forms.Control)(object)this.lbl_Result).Location = new System.Drawing.Point(145, 83);
|
||||
((System.Windows.Forms.Control)(object)this.lbl_Result).Name = "lbl_Result";
|
||||
this.lbl_Result.Radius = 5;
|
||||
((System.Windows.Forms.Control)(object)this.lbl_Result).Size = new System.Drawing.Size(106, 29);
|
||||
((System.Windows.Forms.Control)(object)this.lbl_Result).TabIndex = 42;
|
||||
((System.Windows.Forms.Label)(object)this.lbl_Result).TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
this.panel1.Controls.Add(this.tableLayoutPanel1);
|
||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.panel1.Location = new System.Drawing.Point(3, 585);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(592, 196);
|
||||
this.panel1.TabIndex = 7;
|
||||
this.tableLayoutPanel1.ColumnCount = 4;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 23.90572f));
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.92593f));
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25f));
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25f));
|
||||
this.tableLayoutPanel1.Controls.Add((System.Windows.Forms.Control)(object)this.led_CurrentError, 1, 0);
|
||||
this.tableLayoutPanel1.Controls.Add((System.Windows.Forms.Control)(object)this.led_CurrentState, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add((System.Windows.Forms.Control)(object)this.lbl_Result, 1, 2);
|
||||
this.tableLayoutPanel1.Controls.Add((System.Windows.Forms.Control)(object)this.vxCircleLabel8, 0, 2);
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 5;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20f));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20f));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20f));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20f));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20f));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(594, 196);
|
||||
this.tableLayoutPanel1.TabIndex = 43;
|
||||
((System.Windows.Forms.Control)(object)this.groupBox1).BackColor = System.Drawing.Color.FromArgb(52, 52, 52);
|
||||
this.groupBox1.BorderColor = System.Drawing.Color.FromArgb(64, 64, 64);
|
||||
((System.Windows.Forms.Control)(object)this.groupBox1).Controls.Add(this.elementHost1);
|
||||
((System.Windows.Forms.Control)(object)this.groupBox1).Controls.Add(this.panel1);
|
||||
((System.Windows.Forms.Control)(object)this.groupBox1).Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
((System.Windows.Forms.GroupBox)(object)this.groupBox1).FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
((System.Windows.Forms.Control)(object)this.groupBox1).Font = new System.Drawing.Font("微软雅黑", 12f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 134);
|
||||
((System.Windows.Forms.Control)(object)this.groupBox1).ForeColor = System.Drawing.Color.White;
|
||||
((System.Windows.Forms.Control)(object)this.groupBox1).Location = new System.Drawing.Point(0, 0);
|
||||
((System.Windows.Forms.Control)(object)this.groupBox1).Name = "groupBox1";
|
||||
((System.Windows.Forms.Control)(object)this.groupBox1).Size = new System.Drawing.Size(598, 784);
|
||||
((System.Windows.Forms.Control)(object)this.groupBox1).TabIndex = 6;
|
||||
((System.Windows.Forms.GroupBox)(object)this.groupBox1).TabStop = false;
|
||||
((System.Windows.Forms.Control)(object)this.groupBox1).Text = "3D型号区分";
|
||||
this.elementHost1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.elementHost1.Location = new System.Drawing.Point(3, 35);
|
||||
this.elementHost1.Name = "elementHost1";
|
||||
this.elementHost1.Size = new System.Drawing.Size(592, 550);
|
||||
this.elementHost1.TabIndex = 5;
|
||||
this.elementHost1.Text = "elementHost1";
|
||||
this.elementHost1.Child = null;
|
||||
((System.Windows.Forms.Control)(object)this.led_CurrentError).Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||
((System.Windows.Forms.Control)(object)this.led_CurrentError).BackColor = System.Drawing.Color.FromArgb(52, 52, 52);
|
||||
this.led_CurrentError.BorderWidth = 3;
|
||||
this.led_CurrentError.FillText = "测量状态";
|
||||
((System.Windows.Forms.Control)(object)this.led_CurrentError).Font = new System.Drawing.Font("微软雅黑", 12f);
|
||||
this.led_CurrentError.LedColor = System.Drawing.Color.Gray;
|
||||
((System.Windows.Forms.Control)(object)this.led_CurrentError).Location = new System.Drawing.Point(163, 4);
|
||||
((System.Windows.Forms.Control)(object)this.led_CurrentError).Name = "led_CurrentError";
|
||||
((System.Windows.Forms.Control)(object)this.led_CurrentError).Size = new System.Drawing.Size(111, 30);
|
||||
((System.Windows.Forms.Control)(object)this.led_CurrentError).TabIndex = 39;
|
||||
base.AutoScaleDimensions = new System.Drawing.SizeF(9f, 18f);
|
||||
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
base.Controls.Add((System.Windows.Forms.Control)(object)this.groupBox1);
|
||||
base.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
base.Name = "ResultsDisplay";
|
||||
base.Size = new System.Drawing.Size(598, 784);
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
((System.Windows.Forms.Control)(object)this.groupBox1).ResumeLayout(false);
|
||||
base.ResumeLayout(false);
|
||||
}
|
||||
}
|
||||
346
精工涂胶检测项目/精工涂胶检测项目/ModbusTcpClass.cs
Normal file
346
精工涂胶检测项目/精工涂胶检测项目/ModbusTcpClass.cs
Normal file
@@ -0,0 +1,346 @@
|
||||
using HslCommunication;
|
||||
using HslCommunication.ModBus;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Runtime.Serialization.Formatters.Binary;
|
||||
using System.IO;
|
||||
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
public class ModbusTcpClient : IDisposable
|
||||
{
|
||||
private readonly ModbusTcpNet modbus;
|
||||
private readonly string ipAddress;
|
||||
private readonly int port;
|
||||
private bool _autoReconnect;
|
||||
private int _reconnectInterval = 5000;
|
||||
private CancellationTokenSource _reconnectToken;
|
||||
private bool _isConnected; // 自定义连接状态字段
|
||||
|
||||
public event EventHandler<bool> ConnectionStatusChanged;
|
||||
public event EventHandler<string> ErrorOccurred;
|
||||
public event EventHandler<string> DataReceived;
|
||||
public event EventHandler<string> DataSent;
|
||||
|
||||
public ModbusTcpClient(string ip, int port = 502)
|
||||
{
|
||||
if (string.IsNullOrEmpty(ip)) ip = "192.168.1.30";
|
||||
if (port < 1 || port > 65535) port = 502;
|
||||
|
||||
this.ipAddress = ip;
|
||||
this.port = port;
|
||||
modbus = new ModbusTcpNet(ip, port, 1)
|
||||
{
|
||||
ConnectTimeOut = 3000,
|
||||
ReceiveTimeOut = 5000
|
||||
};
|
||||
}
|
||||
|
||||
#region 连接状态管理(通过自定义字段实现)
|
||||
public bool IsConnected => _isConnected;
|
||||
|
||||
public OperateResult Connect()
|
||||
{
|
||||
try
|
||||
{
|
||||
OperateResult result = modbus.ConnectServer();
|
||||
_isConnected = result.IsSuccess; // 更新连接状态
|
||||
ConnectionStatusChanged?.Invoke(this, _isConnected);
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ErrorOccurred?.Invoke(this, $"连接失败: {ex.Message}");
|
||||
_isConnected = false;
|
||||
return new OperateResult(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public void Disconnect()
|
||||
{
|
||||
modbus.ConnectClose();
|
||||
_isConnected = false;
|
||||
ConnectionStatusChanged?.Invoke(this, false);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 数据读写方法
|
||||
public OperateResult<short> ReadHoldingRegister(ushort address)
|
||||
{
|
||||
string modbusAddress = address.ToString();
|
||||
Func<string, ushort, OperateResult<short>> readFunc =
|
||||
(addr, _) => modbus.ReadInt16(addr); // 忽略长度参数
|
||||
|
||||
return Read<short>(modbusAddress, 1, readFunc);
|
||||
}
|
||||
|
||||
public OperateResult<short[]> ReadHoldingRegisters(ushort address, ushort count)
|
||||
{
|
||||
string modbusAddress = address.ToString();
|
||||
return Read<short[]>(modbusAddress, count, (addr, cnt) => modbus.ReadInt16(addr, cnt));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 写入单个保持寄存器
|
||||
/// </summary>
|
||||
public OperateResult WriteSingleRegister(string address, short value)
|
||||
{
|
||||
if (!IsConnected) return new OperateResult("设备未连接");
|
||||
|
||||
try
|
||||
{
|
||||
OperateResult result = modbus.Write(address, value);
|
||||
HandleWriteResult(result);
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
HandleWriteException(ex);
|
||||
return new OperateResult(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public OperateResult WriteSingleRegisterString(string address, string value)
|
||||
{
|
||||
if (!IsConnected) return new OperateResult("设备未连接");
|
||||
|
||||
try
|
||||
{
|
||||
OperateResult result = modbus.Write(address, value);
|
||||
HandleWriteResult(result);
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
HandleWriteException(ex);
|
||||
return new OperateResult(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 批量写入保持寄存器
|
||||
/// </summary>
|
||||
public OperateResult WriteMultipleRegisters(string address, short[] values)
|
||||
{
|
||||
if (!IsConnected) return new OperateResult("设备未连接");
|
||||
|
||||
try
|
||||
{
|
||||
OperateResult result = modbus.Write(address, values);
|
||||
HandleWriteResult(result);
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
HandleWriteException(ex);
|
||||
return new OperateResult(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 写入32位浮点数(占用两个寄存器)
|
||||
/// </summary>
|
||||
public OperateResult WriteFloat(string address, float value)
|
||||
{
|
||||
try
|
||||
{
|
||||
byte[] bytes = BitConverter.GetBytes(value);
|
||||
return WriteMultipleRegisters(address, new[] {
|
||||
BitConverter.ToInt16(bytes, 0),
|
||||
BitConverter.ToInt16(bytes, 2)
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
HandleWriteException(ex);
|
||||
return new OperateResult(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<OperateResult<short[]>> ReadHoldingRegisterAsync(ushort address,ushort length)
|
||||
{
|
||||
return await Task.Run(() => ReadHoldingRegisters(address,length));
|
||||
}
|
||||
public async Task<OperateResult> WriteHoldingRegisterAsync(string address,short value)
|
||||
{
|
||||
return await Task.Run(() => WriteSingleRegister(address, value));
|
||||
}
|
||||
#region 辅助方法
|
||||
private void HandleWriteResult(OperateResult result)
|
||||
{
|
||||
if (!result.IsSuccess)
|
||||
{
|
||||
ErrorOccurred?.Invoke(this, $"写入失败: {result.Message}");
|
||||
_isConnected = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleWriteException(Exception ex)
|
||||
{
|
||||
_isConnected = false;
|
||||
ErrorOccurred?.Invoke(this, $"写入操作异常: {ex.Message}");
|
||||
}
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
#region 核心方法
|
||||
private OperateResult<T> Read<T>(string address, ushort count, Func<string, ushort, OperateResult<T>> readFunc)
|
||||
{
|
||||
if (!IsConnected) return new OperateResult<T>("设备未连接");
|
||||
|
||||
try
|
||||
{
|
||||
var result = readFunc(address, count);
|
||||
if (!result.IsSuccess)
|
||||
{
|
||||
ErrorOccurred?.Invoke(this, $"读取失败: {result.Message}");
|
||||
}
|
||||
else
|
||||
{
|
||||
// 仅记录有效数据内容(无需序列化整个对象)
|
||||
string dataString = GetDataString(result.Content);
|
||||
DataReceived?.Invoke(this, $"地址:{address} 接收数据:{dataString}");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_isConnected = false;
|
||||
ErrorOccurred?.Invoke(this, $"读取异常: {ex.Message}");
|
||||
return new OperateResult<T>(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
// 数据格式化辅助方法
|
||||
private string GetDataString(object data)
|
||||
{
|
||||
if (data is short[] shortArray)
|
||||
return string.Join(", ", shortArray.Select(s => s.ToString()));
|
||||
|
||||
if (data is short shortValue)
|
||||
return shortValue.ToString();
|
||||
|
||||
if (data is byte[] bytes)
|
||||
return BitConverter.ToString(bytes);
|
||||
|
||||
return data?.ToString() ?? "空数据";
|
||||
}
|
||||
|
||||
private OperateResult Write<T>(string address, object value)
|
||||
{
|
||||
if (!IsConnected) return new OperateResult("设备未连接");
|
||||
|
||||
try
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case short sVal:
|
||||
DataSent?.Invoke(this, $"地址:{address} 发送数据:{value}");
|
||||
return WriteSingleRegister(address, sVal);
|
||||
case short[] arrVal:
|
||||
DataSent?.Invoke(this, $"地址:{address} 发送数据:{value}");
|
||||
return WriteMultipleRegisters(address, arrVal);
|
||||
case float fVal:
|
||||
DataSent?.Invoke(this, $"地址:{address} 发送数据:{value}");
|
||||
return WriteFloat(address, fVal);
|
||||
default:
|
||||
ErrorOccurred?.Invoke(this, $"不支持的数据类型: {value.GetType()}");
|
||||
return new OperateResult($"Unsupported type: {value.GetType()}");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_isConnected = false; // 发生异常时标记为断开
|
||||
ErrorOccurred?.Invoke(this, $"写入异常: {ex.Message}");
|
||||
return new OperateResult(ex.Message);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 自动重连(增加心跳检测)
|
||||
public bool AutoReconnect
|
||||
{
|
||||
get => _autoReconnect;
|
||||
set
|
||||
{
|
||||
if (_autoReconnect == value) return;
|
||||
_autoReconnect = value;
|
||||
|
||||
if (value) StartReconnectMonitor();
|
||||
else StopReconnectMonitor();
|
||||
}
|
||||
}
|
||||
|
||||
private async void StartReconnectMonitor()
|
||||
{
|
||||
_reconnectToken = new CancellationTokenSource();
|
||||
while (!_reconnectToken.IsCancellationRequested)
|
||||
{
|
||||
await Task.Delay(_reconnectInterval, _reconnectToken.Token);
|
||||
|
||||
// 通过心跳检测验证连接状态
|
||||
if (!await CheckConnectionAsync())
|
||||
{
|
||||
ErrorOccurred?.Invoke(this, "尝试自动重连...");
|
||||
await ConnectAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async Task<bool> CheckConnectionAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
// 通过读取一个寄存器验证连接
|
||||
var result = await Task.Run(() => modbus.ReadInt16("1", 1));
|
||||
_isConnected = result.IsSuccess;
|
||||
return _isConnected;
|
||||
}
|
||||
catch
|
||||
{
|
||||
_isConnected = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void StopReconnectMonitor()
|
||||
{
|
||||
_reconnectToken?.Cancel();
|
||||
_reconnectToken?.Dispose();
|
||||
_reconnectToken = null;
|
||||
}
|
||||
|
||||
public async Task<OperateResult> ConnectAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
return await Task.Run(() => Connect());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return new OperateResult(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public int ReconnectInterval
|
||||
{
|
||||
get => _reconnectInterval;
|
||||
set => _reconnectInterval = value;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 资源释放
|
||||
public void Dispose()
|
||||
{
|
||||
AutoReconnect = false;
|
||||
modbus?.ConnectClose();
|
||||
modbus?.Dispose();
|
||||
_reconnectToken?.Dispose();
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
23
精工涂胶检测项目/精工涂胶检测项目/Program.cs
Normal file
23
精工涂胶检测项目/精工涂胶检测项目/Program.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// 应用程序的主入口点。
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new Form_LoadingImage());
|
||||
Application.Run(new Form1());
|
||||
}
|
||||
}
|
||||
}
|
||||
36
精工涂胶检测项目/精工涂胶检测项目/Properties/AssemblyInfo.cs
Normal file
36
精工涂胶检测项目/精工涂胶检测项目/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("精工涂胶检测项目")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("HP Inc.")]
|
||||
[assembly: AssemblyProduct("精工涂胶检测项目")]
|
||||
[assembly: AssemblyCopyright("Copyright © HP Inc. 2025")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||
[assembly: Guid("10c424d2-36a1-4d94-a034-a6801a1b17b5")]
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||
// 方法是按如下所示使用“*”: :
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
71
精工涂胶检测项目/精工涂胶检测项目/Properties/Resources.Designer.cs
generated
Normal file
71
精工涂胶检测项目/精工涂胶检测项目/Properties/Resources.Designer.cs
generated
Normal file
@@ -0,0 +1,71 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本: 4.0.30319.42000
|
||||
//
|
||||
// 对此文件的更改可能导致不正确的行为,如果
|
||||
// 重新生成代码,则所做更改将丢失。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace 精工涂胶检测项目.Properties
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 强类型资源类,用于查找本地化字符串等。
|
||||
/// </summary>
|
||||
// 此类是由 StronglyTypedResourceBuilder
|
||||
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
|
||||
// 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen
|
||||
// (以 /str 作为命令选项),或重新生成 VS 项目。
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources
|
||||
{
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 返回此类使用的缓存 ResourceManager 实例。
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager
|
||||
{
|
||||
get
|
||||
{
|
||||
if ((resourceMan == null))
|
||||
{
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("精工涂胶检测项目.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 覆盖当前线程的 CurrentUICulture 属性
|
||||
/// 使用此强类型的资源类的资源查找。
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture
|
||||
{
|
||||
get
|
||||
{
|
||||
return resourceCulture;
|
||||
}
|
||||
set
|
||||
{
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
117
精工涂胶检测项目/精工涂胶检测项目/Properties/Resources.resx
Normal file
117
精工涂胶检测项目/精工涂胶检测项目/Properties/Resources.resx
Normal file
@@ -0,0 +1,117 @@
|
||||
<?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.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: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" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</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" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
145
精工涂胶检测项目/精工涂胶检测项目/Properties/Settings.Designer.cs
generated
Normal file
145
精工涂胶检测项目/精工涂胶检测项目/Properties/Settings.Designer.cs
generated
Normal file
@@ -0,0 +1,145 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本:4.0.30319.42000
|
||||
//
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
// 重新生成代码,这些更改将会丢失。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace 精工涂胶检测项目.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.14.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string TcpIP {
|
||||
get {
|
||||
return ((string)(this["TcpIP"]));
|
||||
}
|
||||
set {
|
||||
this["TcpIP"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string TcpProt {
|
||||
get {
|
||||
return ((string)(this["TcpProt"]));
|
||||
}
|
||||
set {
|
||||
this["TcpProt"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string PlcIP {
|
||||
get {
|
||||
return ((string)(this["PlcIP"]));
|
||||
}
|
||||
set {
|
||||
this["PlcIP"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string PlcRack {
|
||||
get {
|
||||
return ((string)(this["PlcRack"]));
|
||||
}
|
||||
set {
|
||||
this["PlcRack"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string PlcType {
|
||||
get {
|
||||
return ((string)(this["PlcType"]));
|
||||
}
|
||||
set {
|
||||
this["PlcType"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string TcpStatus {
|
||||
get {
|
||||
return ((string)(this["TcpStatus"]));
|
||||
}
|
||||
set {
|
||||
this["TcpStatus"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("192.168.1.30")]
|
||||
public string ModbusIP {
|
||||
get {
|
||||
return ((string)(this["ModbusIP"]));
|
||||
}
|
||||
set {
|
||||
this["ModbusIP"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("502")]
|
||||
public string ModbusPort {
|
||||
get {
|
||||
return ((string)(this["ModbusPort"]));
|
||||
}
|
||||
set {
|
||||
this["ModbusPort"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string PlcSlot {
|
||||
get {
|
||||
return ((string)(this["PlcSlot"]));
|
||||
}
|
||||
set {
|
||||
this["PlcSlot"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
public global::System.Collections.Specialized.StringCollection ComboBoxItems {
|
||||
get {
|
||||
return ((global::System.Collections.Specialized.StringCollection)(this["ComboBoxItems"]));
|
||||
}
|
||||
set {
|
||||
this["ComboBoxItems"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
37
精工涂胶检测项目/精工涂胶检测项目/Properties/Settings.settings
Normal file
37
精工涂胶检测项目/精工涂胶检测项目/Properties/Settings.settings
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="精工涂胶检测项目.Properties" GeneratedClassName="Settings">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="TcpIP" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="TcpProt" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="PlcIP" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="PlcRack" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="PlcType" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="TcpStatus" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="ModbusIP" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">192.168.1.30</Value>
|
||||
</Setting>
|
||||
<Setting Name="ModbusPort" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">502</Value>
|
||||
</Setting>
|
||||
<Setting Name="PlcSlot" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">
|
||||
</Value>
|
||||
</Setting>
|
||||
<Setting Name="ComboBoxItems" Type="System.Collections.Specialized.StringCollection" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
275
精工涂胶检测项目/精工涂胶检测项目/TCPClass.cs
Normal file
275
精工涂胶检测项目/精工涂胶检测项目/TCPClass.cs
Normal file
@@ -0,0 +1,275 @@
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
|
||||
namespace 精工涂胶检测项目
|
||||
{
|
||||
// 自定义事件参数类
|
||||
public class ClientConnectedEventArgs : EventArgs
|
||||
{
|
||||
public string ClientId { get; }
|
||||
public IPEndPoint RemoteEndPoint { get; }
|
||||
|
||||
public ClientConnectedEventArgs(TcpClient client)
|
||||
{
|
||||
ClientId = client.Client.RemoteEndPoint?.ToString();
|
||||
RemoteEndPoint = (IPEndPoint)client.Client.RemoteEndPoint;
|
||||
}
|
||||
}
|
||||
|
||||
public class DataReceivedEventArgs : EventArgs
|
||||
{
|
||||
public string ClientId { get; }
|
||||
public byte[] Data { get; }
|
||||
|
||||
public DataReceivedEventArgs(string clientId, byte[] data)
|
||||
{
|
||||
ClientId = clientId;
|
||||
Data = data;
|
||||
}
|
||||
}
|
||||
|
||||
public class DataSendEventArgs : EventArgs
|
||||
{
|
||||
|
||||
public DataSendEventArgs()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public class TCPClass:IDisposable
|
||||
{
|
||||
// 服务器端成员
|
||||
private TcpListener _server;
|
||||
private readonly object _clientsLock = new object();
|
||||
private List<TcpClient> _connectedClients = new List<TcpClient>();
|
||||
|
||||
private string _tcpStatus;
|
||||
|
||||
// 客户端成员
|
||||
private TcpClient _client;
|
||||
private NetworkStream _clientStream;
|
||||
|
||||
//公共成员
|
||||
public string TcpStatus
|
||||
{
|
||||
get
|
||||
{
|
||||
return _tcpStatus;
|
||||
}
|
||||
}
|
||||
public bool IsConnected => _client?.Connected == true;
|
||||
public event EventHandler<string> ServerStatusChanged;
|
||||
|
||||
// 公共事件
|
||||
public event EventHandler<ClientConnectedEventArgs> ClientConnected;
|
||||
public event EventHandler<string> ClientDisconnected;
|
||||
public event EventHandler<DataReceivedEventArgs> DataReceived;
|
||||
|
||||
private CancellationTokenSource _serverCts;
|
||||
private bool _disposed = false;
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Dispose(true);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
protected virtual void Dispose(bool disposing)
|
||||
{
|
||||
if (!_disposed)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
StopServer();
|
||||
_clientStream?.Dispose();
|
||||
_client?.Dispose();
|
||||
_server?.Stop();
|
||||
}
|
||||
_disposed = true;
|
||||
}
|
||||
}
|
||||
|
||||
#region 服务器功能
|
||||
public async Task StartServerAsync(int port)
|
||||
{
|
||||
_tcpStatus = "Server";
|
||||
_server = new TcpListener(IPAddress.Any, port);
|
||||
_server.Start();
|
||||
OnServerStatusChanged($"服务器已启动,监听端口:{port}"); // 非阻塞通知
|
||||
|
||||
while (true)
|
||||
{
|
||||
var client = await _server.AcceptTcpClientAsync();
|
||||
lock (_clientsLock)
|
||||
{
|
||||
_connectedClients.Add(client);
|
||||
}
|
||||
OnClientConnected(client);
|
||||
_ = HandleClientAsync(client);
|
||||
}
|
||||
}
|
||||
// 广播给所有客户端
|
||||
public async Task BroadcastAsync(byte[] data)
|
||||
{
|
||||
List<TcpClient> clientsCopy;
|
||||
lock (_clientsLock)
|
||||
{
|
||||
_connectedClients.RemoveAll(c => !c.Connected);
|
||||
clientsCopy = new List<TcpClient>(_connectedClients);
|
||||
}
|
||||
|
||||
foreach (var client in clientsCopy)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (client.Connected)
|
||||
{
|
||||
await SendToClientAsync(client, data);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
OnServerStatusChanged($"发送失败: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async Task HandleClientAsync(TcpClient client)
|
||||
{
|
||||
var stream = client.GetStream();
|
||||
var buffer = new byte[4096];
|
||||
var clientId = client.Client.RemoteEndPoint?.ToString();
|
||||
|
||||
try
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
int bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length);
|
||||
if (bytesRead == 0) break;
|
||||
|
||||
var data = new byte[bytesRead];
|
||||
Array.Copy(buffer, data, bytesRead);
|
||||
OnDataReceived(clientId, data);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
lock (_clientsLock)
|
||||
{
|
||||
_connectedClients.Remove(client);
|
||||
}
|
||||
client.Dispose();
|
||||
OnClientDisconnected(clientId);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task SendToClientAsync(TcpClient client, byte[] data)
|
||||
{
|
||||
var stream = client.GetStream();
|
||||
await stream.WriteAsync(data, 0, data.Length);
|
||||
}
|
||||
|
||||
public void StopServer()
|
||||
{
|
||||
_server?.Stop();
|
||||
lock (_clientsLock)
|
||||
{
|
||||
foreach (var client in _connectedClients)
|
||||
{
|
||||
client.Dispose();
|
||||
}
|
||||
_connectedClients.Clear();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 客户端功能
|
||||
public async Task ConnectAsync(string ip, int port)
|
||||
{
|
||||
var mainForm = Application.OpenForms.OfType<Form1>().FirstOrDefault();
|
||||
if (mainForm == null) return;
|
||||
|
||||
_tcpStatus = "Client";
|
||||
_client = new TcpClient();
|
||||
await _client.ConnectAsync(ip, port);
|
||||
mainForm.AddLog($"客户端已连接,主机IP:{ip},主机端口:{port}", 0);
|
||||
_clientStream = _client.GetStream();
|
||||
_ = ReceiveDataAsync();
|
||||
}
|
||||
|
||||
private async Task ReceiveDataAsync()
|
||||
{
|
||||
var buffer = new byte[4096];
|
||||
try
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
int bytesRead = await _clientStream.ReadAsync(buffer, 0, buffer.Length);
|
||||
if (bytesRead == 0) break;
|
||||
|
||||
var data = new byte[bytesRead];
|
||||
Array.Copy(buffer, data, bytesRead);
|
||||
OnDataReceived("Server", data);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
Disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
public async Task SendAsync(byte[] data)
|
||||
{
|
||||
if (_client?.Connected == true)
|
||||
{
|
||||
await _clientStream.WriteAsync(data, 0, data.Length);
|
||||
}
|
||||
}
|
||||
|
||||
public void Disconnect()
|
||||
{
|
||||
try
|
||||
{
|
||||
_clientStream?.Close();
|
||||
_client?.Close();
|
||||
OnClientDisconnected("Client");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
OnServerStatusChanged($"断开异常: {ex.Message}");
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 事件触发方法
|
||||
protected virtual void OnClientConnected(TcpClient client)
|
||||
{
|
||||
ClientConnected?.Invoke(this, new ClientConnectedEventArgs(client));
|
||||
}
|
||||
|
||||
protected virtual void OnClientDisconnected(string clientId)
|
||||
{
|
||||
ClientDisconnected?.Invoke(this, clientId);
|
||||
}
|
||||
|
||||
protected virtual void OnDataReceived(string clientId, byte[] data)
|
||||
{
|
||||
DataReceived?.Invoke(this, new DataReceivedEventArgs(clientId, data));
|
||||
}
|
||||
|
||||
protected virtual void OnServerStatusChanged(string message)
|
||||
{
|
||||
ServerStatusChanged?.Invoke(this, message);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
12
精工涂胶检测项目/精工涂胶检测项目/packages.config
Normal file
12
精工涂胶检测项目/精工涂胶检测项目/packages.config
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="HslCommunication" version="12.3.1" targetFramework="net481" />
|
||||
<package id="Microsoft.Office.Interop.Excel" version="15.0.4795.1001" targetFramework="net481" />
|
||||
<package id="Microsoft.VisualBasic" version="10.3.0" targetFramework="net481" />
|
||||
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net481" />
|
||||
<package id="S7netplus" version="0.20.0" targetFramework="net481" />
|
||||
<package id="System.Buffers" version="4.6.1" targetFramework="net481" />
|
||||
<package id="System.Memory" version="4.6.3" targetFramework="net481" />
|
||||
<package id="System.Numerics.Vectors" version="4.6.1" targetFramework="net481" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="6.1.2" targetFramework="net481" />
|
||||
</packages>
|
||||
565
精工涂胶检测项目/精工涂胶检测项目/精工涂胶检测项目.csproj
Normal file
565
精工涂胶检测项目/精工涂胶检测项目/精工涂胶检测项目.csproj
Normal file
@@ -0,0 +1,565 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{10C424D2-36A1-4D94-A034-A6801A1B17B5}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>精工涂胶检测项目</RootNamespace>
|
||||
<AssemblyName>精工涂胶检测项目</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8.1</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Cognex.Vision.Core.Net">
|
||||
<HintPath>C:\Program Files\Cognex\VisionPro\bin\Cognex.Vision.Core.Net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.AutoSelect, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.AutoSelect.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Blob, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Blob.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Blob.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Blob.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.CAD, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.CAD.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.CalibFix, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.CalibFix.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.CalibFix.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.CalibFix.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.CalibFixPlus, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.CalibFixPlus.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Caliper, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Caliper.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Caliper.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Caliper.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.CNLSearch, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.CNLSearch.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.CNLSearch.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.CNLSearch.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ColorExtractor, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ColorExtractor.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ColorExtractor.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ColorExtractor.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ColorMatch, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ColorMatch.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ColorMatch.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ColorMatch.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ColorSegmenter, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ColorSegmenter.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ColorSegmenter.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ColorSegmenter.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Comm, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Comm.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Comm.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Comm.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.CompositeColorMatch, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.CompositeColorMatch.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.CompositeColorMatch.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.CompositeColorMatch.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Core, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.CorePlus, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.CorePlus.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Database, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Database.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Dimensioning, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Dimensioning.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Dimensioning.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Dimensioning.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Display.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Display.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.EdgeInspect, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.EdgeInspect.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.EdgeInspect.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.EdgeInspect.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.FG1394DCAM, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.FG1394DCAM.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.FGGigE, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.FGGigE.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.GenTL, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.GenTL.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ID, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ID.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ID.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ID.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ImageFile, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ImageFile.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ImageFile.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ImageFile.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ImageProcessing, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ImageProcessing.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ImageProcessing.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ImageProcessing.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ImagingDevice, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ImagingDevice.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Inspection, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Inspection.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Inspection.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Inspection.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Interop.Core, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Interop.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.LineMax, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.LineMax.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.LineMax.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.LineMax.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.LinescanDistortionCorrection, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.LinescanDistortionCorrection.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.LinescanDistortionCorrection.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.LinescanDistortionCorrection.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.OC, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.OC.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.OCRMax, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.OCRMax.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.OCRMax.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.OCRMax.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.OCVMax, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.OCVMax.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.OCVMax.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.OCVMax.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.PatInspect, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.PatInspect.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.PatInspect.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.PatInspect.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.PixelMap, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.PixelMap.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.PixelMap.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.PixelMap.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.PMAlign, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.PMAlign.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.PMAlign.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.PMAlign.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.PMRedLine, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.PMRedLine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.PMRedLine.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.PMRedLine.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.QuickBuild.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.QuickBuild.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.QuickBuild.Core, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.QuickBuild.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.QuickBuild.IO, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.QuickBuild.IO.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ResultsAnalysis, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ResultsAnalysis.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ResultsAnalysis.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ResultsAnalysis.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.SearchMax, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.SearchMax.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.SearchMax.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.SearchMax.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.SurfaceFX, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.SurfaceFX.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.SurfaceFX.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.SurfaceFX.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ToolGroup, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ToolGroup.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.ToolGroup.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.ToolGroup.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Trevista, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Trevista.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro.Trevista.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro.Trevista.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro3D, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro3D.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro3D.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro3D.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro3D.Core, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro3D.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro3D.Display.Controls, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro3D.Display.Controls.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Cognex.VisionPro3D.Graphic, Version=89.0.0.0, Culture=neutral, PublicKeyToken=ef0f902af9dee505, processorArchitecture=AMD64">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>C:\Program Files (x86)\Cognex\VisionPro\ReferencedAssemblies\Cognex.VisionPro3D.Graphic.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="HslCommunication, Version=12.3.1.0, Culture=neutral, PublicKeyToken=3d72ad3b6b5ec0e3, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\HslCommunication.12.3.1\lib\net451\HslCommunication.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Office.Interop.Excel.15.0.4795.1001\lib\net20\Microsoft.Office.Interop.Excel.dll</HintPath>
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.VisualBasic" />
|
||||
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="S7.Net, Version=0.20.0.0, Culture=neutral, PublicKeyToken=d5812d469e84c693, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\S7netplus.0.20.0\lib\net462\S7.Net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.6.1\lib\net462\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Memory, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.6.3\lib\net462\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.6.1\lib\net462\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.1.2\lib\net462\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.InteropServices.RuntimeInformation" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="AppConstants.cs" />
|
||||
<Compile Include="EditableListView.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FormCheck.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FormCheck.Designer.cs">
|
||||
<DependentUpon>FormCheck.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="FormVPP.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FormVPP.Designer.cs">
|
||||
<DependentUpon>FormVPP.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Form\FormLogin.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form\FormLogin.designer.cs">
|
||||
<DependentUpon>FormLogin.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Form\FormSetParameter.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form\FormSetParameter.Designer.cs">
|
||||
<DependentUpon>FormSetParameter.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Form\FormCommunication.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form\FormCommunication.Designer.cs">
|
||||
<DependentUpon>FormCommunication.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Form\FormMain.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form\FormMain.Designer.cs">
|
||||
<DependentUpon>FormMain.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Form\StatusChecker.cs" />
|
||||
<Compile Include="Form_LoadingImage.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form_LoadingImage.Designer.cs">
|
||||
<DependentUpon>Form_LoadingImage.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ModbusTcpClass.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="TCPClass.cs" />
|
||||
<EmbeddedResource Include="FormCheck.resx">
|
||||
<DependentUpon>FormCheck.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="FormVPP.resx">
|
||||
<DependentUpon>FormVPP.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Form\FormLogin.resx">
|
||||
<DependentUpon>FormLogin.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Form\FormCommunication.resx">
|
||||
<DependentUpon>FormCommunication.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Form\FormMain.resx">
|
||||
<DependentUpon>FormMain.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Form\FormSetParameter.resx">
|
||||
<DependentUpon>FormSetParameter.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Form_LoadingImage.resx">
|
||||
<DependentUpon>Form_LoadingImage.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WCFMetadata Include="Connected Services\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<COMReference Include="ACTIVEXLib">
|
||||
<Guid>{012F24C1-35B0-11D0-BF2D-0000E8D0D146}</Guid>
|
||||
<VersionMajor>1</VersionMajor>
|
||||
<VersionMinor>0</VersionMinor>
|
||||
<Lcid>0</Lcid>
|
||||
<WrapperTool>tlbimp</WrapperTool>
|
||||
<Isolated>False</Isolated>
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
</COMReference>
|
||||
<COMReference Include="Microsoft.Office.Core">
|
||||
<Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid>
|
||||
<VersionMajor>2</VersionMajor>
|
||||
<VersionMinor>8</VersionMinor>
|
||||
<Lcid>0</Lcid>
|
||||
<WrapperTool>primary</WrapperTool>
|
||||
<Isolated>False</Isolated>
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
</COMReference>
|
||||
<COMReference Include="Microsoft.Office.Interop.Access.Dao">
|
||||
<Guid>{4AC9E1DA-5BAD-4AC7-86E3-24F4CDCECA28}</Guid>
|
||||
<VersionMajor>12</VersionMajor>
|
||||
<VersionMinor>0</VersionMinor>
|
||||
<Lcid>0</Lcid>
|
||||
<WrapperTool>primary</WrapperTool>
|
||||
<Isolated>False</Isolated>
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
</COMReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
Reference in New Issue
Block a user