Commit c820a1a4 几米阳光

增加中英文切换功能

1 个父辈 f2affbe0
正在显示 33 个修改的文件 包含 2620 行增加3530 行删除
......@@ -94,6 +94,7 @@
<Compile Include="ManagerUtil.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ResourceCulture.cs" />
<EmbeddedResource Include="FrmAxisDebug.resx">
<DependentUpon>FrmAxisDebug.cs</DependentUpon>
</EmbeddedResource>
......@@ -109,6 +110,13 @@
<EmbeddedResource Include="FrmStoreBox.resx">
<DependentUpon>FrmStoreBox.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resource.en-US.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resource.ge-DE.resx" />
<EmbeddedResource Include="Properties\Resource.zh-CN.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
......
......@@ -63,37 +63,37 @@
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(27, 77);
this.label1.Location = new System.Drawing.Point(9, 77);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(92, 17);
this.label1.Size = new System.Drawing.Size(141, 17);
this.label1.TabIndex = 0;
this.label1.Text = "(轴一)旋转轴";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(27, 131);
this.label2.Location = new System.Drawing.Point(9, 131);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(92, 17);
this.label2.Size = new System.Drawing.Size(141, 17);
this.label2.TabIndex = 1;
this.label2.Text = "(轴二)升降轴";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(27, 184);
this.label3.Location = new System.Drawing.Point(9, 184);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(92, 17);
this.label3.Size = new System.Drawing.Size(141, 17);
this.label3.TabIndex = 2;
this.label3.Text = "(轴三)进出轴";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// btnMiddleMove
//
this.btnMiddleMove.BackColor = System.Drawing.SystemColors.Control;
this.btnMiddleMove.Location = new System.Drawing.Point(266, 70);
this.btnMiddleMove.Location = new System.Drawing.Point(266, 64);
this.btnMiddleMove.Name = "btnMiddleMove";
this.btnMiddleMove.Size = new System.Drawing.Size(131, 36);
this.btnMiddleMove.Size = new System.Drawing.Size(133, 48);
this.btnMiddleMove.TabIndex = 4;
this.btnMiddleMove.Text = "旋转轴+(顺时针)";
this.btnMiddleMove.UseVisualStyleBackColor = false;
......@@ -102,31 +102,31 @@
//
// txtMiddleSpeed
//
this.txtMiddleSpeed.Location = new System.Drawing.Point(143, 75);
this.txtMiddleSpeed.Location = new System.Drawing.Point(156, 75);
this.txtMiddleSpeed.Name = "txtMiddleSpeed";
this.txtMiddleSpeed.Size = new System.Drawing.Size(108, 23);
this.txtMiddleSpeed.Size = new System.Drawing.Size(100, 23);
this.txtMiddleSpeed.TabIndex = 5;
//
// txtUpDownSpeed
//
this.txtUpDownSpeed.Location = new System.Drawing.Point(143, 129);
this.txtUpDownSpeed.Location = new System.Drawing.Point(156, 129);
this.txtUpDownSpeed.Name = "txtUpDownSpeed";
this.txtUpDownSpeed.Size = new System.Drawing.Size(108, 23);
this.txtUpDownSpeed.Size = new System.Drawing.Size(100, 23);
this.txtUpDownSpeed.TabIndex = 6;
//
// txtInOutSpeed
//
this.txtInOutSpeed.Location = new System.Drawing.Point(143, 182);
this.txtInOutSpeed.Location = new System.Drawing.Point(156, 182);
this.txtInOutSpeed.Name = "txtInOutSpeed";
this.txtInOutSpeed.Size = new System.Drawing.Size(108, 23);
this.txtInOutSpeed.Size = new System.Drawing.Size(100, 23);
this.txtInOutSpeed.TabIndex = 7;
//
// btnUpDownMove
//
this.btnUpDownMove.BackColor = System.Drawing.SystemColors.Control;
this.btnUpDownMove.Location = new System.Drawing.Point(266, 124);
this.btnUpDownMove.Location = new System.Drawing.Point(266, 118);
this.btnUpDownMove.Name = "btnUpDownMove";
this.btnUpDownMove.Size = new System.Drawing.Size(131, 36);
this.btnUpDownMove.Size = new System.Drawing.Size(133, 48);
this.btnUpDownMove.TabIndex = 9;
this.btnUpDownMove.Text = "升降轴+(上升)";
this.btnUpDownMove.UseVisualStyleBackColor = false;
......@@ -136,9 +136,9 @@
// btnInOutMove
//
this.btnInOutMove.BackColor = System.Drawing.SystemColors.Control;
this.btnInOutMove.Location = new System.Drawing.Point(266, 177);
this.btnInOutMove.Location = new System.Drawing.Point(266, 171);
this.btnInOutMove.Name = "btnInOutMove";
this.btnInOutMove.Size = new System.Drawing.Size(131, 36);
this.btnInOutMove.Size = new System.Drawing.Size(133, 48);
this.btnInOutMove.TabIndex = 10;
this.btnInOutMove.Text = "进出轴+(前进)";
this.btnInOutMove.UseVisualStyleBackColor = false;
......@@ -148,9 +148,9 @@
// btnInOutMovej
//
this.btnInOutMovej.BackColor = System.Drawing.SystemColors.Control;
this.btnInOutMovej.Location = new System.Drawing.Point(401, 177);
this.btnInOutMovej.Location = new System.Drawing.Point(401, 171);
this.btnInOutMovej.Name = "btnInOutMovej";
this.btnInOutMovej.Size = new System.Drawing.Size(131, 36);
this.btnInOutMovej.Size = new System.Drawing.Size(133, 48);
this.btnInOutMovej.TabIndex = 14;
this.btnInOutMovej.Text = "进出轴-(后退)";
this.btnInOutMovej.UseVisualStyleBackColor = false;
......@@ -160,9 +160,9 @@
// btnUpDownMovej
//
this.btnUpDownMovej.BackColor = System.Drawing.SystemColors.Control;
this.btnUpDownMovej.Location = new System.Drawing.Point(401, 124);
this.btnUpDownMovej.Location = new System.Drawing.Point(401, 118);
this.btnUpDownMovej.Name = "btnUpDownMovej";
this.btnUpDownMovej.Size = new System.Drawing.Size(131, 36);
this.btnUpDownMovej.Size = new System.Drawing.Size(133, 48);
this.btnUpDownMovej.TabIndex = 13;
this.btnUpDownMovej.Text = "升降轴-(下降)";
this.btnUpDownMovej.UseVisualStyleBackColor = false;
......@@ -172,9 +172,9 @@
// btnMiddleMovej
//
this.btnMiddleMovej.BackColor = System.Drawing.SystemColors.Control;
this.btnMiddleMovej.Location = new System.Drawing.Point(401, 70);
this.btnMiddleMovej.Location = new System.Drawing.Point(401, 64);
this.btnMiddleMovej.Name = "btnMiddleMovej";
this.btnMiddleMovej.Size = new System.Drawing.Size(131, 36);
this.btnMiddleMovej.Size = new System.Drawing.Size(133, 48);
this.btnMiddleMovej.TabIndex = 12;
this.btnMiddleMovej.Text = "旋转轴-(逆时针)";
this.btnMiddleMovej.UseVisualStyleBackColor = false;
......@@ -214,21 +214,21 @@
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(172, 31);
this.label5.Location = new System.Drawing.Point(121, 31);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(56, 17);
this.label5.Size = new System.Drawing.Size(180, 17);
this.label5.TabIndex = 20;
this.label5.Text = "点动速度";
this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(566, 31);
this.label6.Location = new System.Drawing.Point(515, 31);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(56, 17);
this.label6.Size = new System.Drawing.Size(180, 17);
this.label6.TabIndex = 21;
this.label6.Text = "实时坐标";
this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// timer1
//
......@@ -245,9 +245,9 @@
// btnComMovej
//
this.btnComMovej.BackColor = System.Drawing.SystemColors.Control;
this.btnComMovej.Location = new System.Drawing.Point(401, 285);
this.btnComMovej.Location = new System.Drawing.Point(401, 279);
this.btnComMovej.Name = "btnComMovej";
this.btnComMovej.Size = new System.Drawing.Size(131, 36);
this.btnComMovej.Size = new System.Drawing.Size(133, 48);
this.btnComMovej.TabIndex = 25;
this.btnComMovej.Text = "压紧轴-(向下)";
this.btnComMovej.UseVisualStyleBackColor = false;
......@@ -257,9 +257,9 @@
// btnComMove
//
this.btnComMove.BackColor = System.Drawing.SystemColors.Control;
this.btnComMove.Location = new System.Drawing.Point(266, 285);
this.btnComMove.Location = new System.Drawing.Point(266, 279);
this.btnComMove.Name = "btnComMove";
this.btnComMove.Size = new System.Drawing.Size(131, 36);
this.btnComMove.Size = new System.Drawing.Size(133, 48);
this.btnComMove.TabIndex = 24;
this.btnComMove.Text = "压紧轴+(向上)";
this.btnComMove.UseVisualStyleBackColor = false;
......@@ -268,19 +268,19 @@
//
// txtComSpeed
//
this.txtComSpeed.Location = new System.Drawing.Point(143, 290);
this.txtComSpeed.Location = new System.Drawing.Point(156, 290);
this.txtComSpeed.Name = "txtComSpeed";
this.txtComSpeed.Size = new System.Drawing.Size(108, 23);
this.txtComSpeed.Size = new System.Drawing.Size(100, 23);
this.txtComSpeed.TabIndex = 23;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(27, 292);
this.label4.Location = new System.Drawing.Point(9, 292);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(92, 17);
this.label4.Size = new System.Drawing.Size(141, 17);
this.label4.TabIndex = 22;
this.label4.Text = "(轴四)压紧轴";
this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// txtAutoPosition
//
......@@ -292,9 +292,9 @@
// btnAutoMovej
//
this.btnAutoMovej.BackColor = System.Drawing.SystemColors.Control;
this.btnAutoMovej.Location = new System.Drawing.Point(401, 230);
this.btnAutoMovej.Location = new System.Drawing.Point(401, 224);
this.btnAutoMovej.Name = "btnAutoMovej";
this.btnAutoMovej.Size = new System.Drawing.Size(131, 36);
this.btnAutoMovej.Size = new System.Drawing.Size(133, 48);
this.btnAutoMovej.TabIndex = 30;
this.btnAutoMovej.Text = "上下料轴-(向下)";
this.btnAutoMovej.UseVisualStyleBackColor = false;
......@@ -304,9 +304,9 @@
// btnAutoMove
//
this.btnAutoMove.BackColor = System.Drawing.SystemColors.Control;
this.btnAutoMove.Location = new System.Drawing.Point(266, 230);
this.btnAutoMove.Location = new System.Drawing.Point(266, 224);
this.btnAutoMove.Name = "btnAutoMove";
this.btnAutoMove.Size = new System.Drawing.Size(131, 36);
this.btnAutoMove.Size = new System.Drawing.Size(133, 48);
this.btnAutoMove.TabIndex = 29;
this.btnAutoMove.Text = "上下料轴+(向上)";
this.btnAutoMove.UseVisualStyleBackColor = false;
......@@ -315,19 +315,19 @@
//
// txtAutoSpeed
//
this.txtAutoSpeed.Location = new System.Drawing.Point(143, 235);
this.txtAutoSpeed.Location = new System.Drawing.Point(156, 235);
this.txtAutoSpeed.Name = "txtAutoSpeed";
this.txtAutoSpeed.Size = new System.Drawing.Size(108, 23);
this.txtAutoSpeed.Size = new System.Drawing.Size(100, 23);
this.txtAutoSpeed.TabIndex = 28;
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(39, 237);
this.label7.Location = new System.Drawing.Point(9, 237);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(80, 17);
this.label7.Size = new System.Drawing.Size(141, 17);
this.label7.TabIndex = 27;
this.label7.Text = "批量上下料轴";
this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// FrmAxisDebug
//
......
......@@ -67,8 +67,9 @@ namespace OnlineStore.AutoInOutStore
if (currValue <= InOutDefaultPosition)
{
return true;
}
MessageBox.Show("叉子不在待机位,请先将叉子退回待机位("+InOutDefaultPosition+")", "警告(叉子在待机位时,才能移动升降轴和旋转轴) ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.InoutNotOk, "叉子不在待机位,请先将叉子退回待机位") + "(" + InOutDefaultPosition + ")!",
ResourceCulture.GetString(ResourceCulture.InoutWarn, "警告(叉子在待机位时,才能移动升降轴和旋转轴)"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return false;
}
private void btnMiddleMove_MouseDown(object sender, MouseEventArgs e)
......@@ -83,7 +84,7 @@ namespace OnlineStore.AutoInOutStore
int speed = FormUtil.GetIntValue(txtMiddleSpeed);
if (speed <= 0)
{
MessageBox.Show("提示", "请先输入正确的速度");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"),ResourceCulture.GetString(ResourceCulture.PWSpeed, "请先输入正确的速度"));
return;
}
btnMiddleMove.BackColor = Color.Green;
......@@ -112,7 +113,7 @@ namespace OnlineStore.AutoInOutStore
int speed = FormUtil.GetIntValue(txtUpDownSpeed);
if (speed <= 0)
{
MessageBox.Show("提示", "请先输入正确的速度");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"),ResourceCulture.GetString(ResourceCulture.PWSpeed, "请先输入正确的速度"));
return;
}
btnUpDownMove.BackColor = Color.Green;
......@@ -136,13 +137,13 @@ namespace OnlineStore.AutoInOutStore
{
if (StoreManager.Store.InOutAxisCanMove().Equals(false))
{
MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
MessageBox.Show(FrmStoreBox.cannotMove, FrmStoreBox.warn, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int speed = FormUtil.GetIntValue(txtInOutSpeed);
if (speed <= 0)
{
MessageBox.Show("提示", "请先输入正确的速度");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"),ResourceCulture.GetString(ResourceCulture.PWSpeed, "请先输入正确的速度"));
return;
}
this.btnInOutMove.BackColor = Color.Green;
......@@ -170,7 +171,7 @@ namespace OnlineStore.AutoInOutStore
int speed = FormUtil.GetIntValue(txtMiddleSpeed);
if (speed <= 0)
{
MessageBox.Show("提示", "请先输入正确的速度");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"),ResourceCulture.GetString(ResourceCulture.PWSpeed, "请先输入正确的速度"));
return;
}
this.btnMiddleMovej.BackColor = Color.Green;
......@@ -199,7 +200,7 @@ namespace OnlineStore.AutoInOutStore
int speed = FormUtil.GetIntValue(txtUpDownSpeed);
if (speed <= 0)
{
MessageBox.Show("提示", "请先输入正确的速度");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"),ResourceCulture.GetString(ResourceCulture.PWSpeed, "请先输入正确的速度"));
return;
}
btnUpDownMovej.BackColor = Color.Green;
......@@ -223,13 +224,13 @@ namespace OnlineStore.AutoInOutStore
{
if (StoreManager.Store.InOutAxisCanMove().Equals(false))
{
MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
MessageBox.Show(FrmStoreBox.cannotMove, FrmStoreBox.warn, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int speed = FormUtil.GetIntValue(txtInOutSpeed);
if (speed <= 0)
{
MessageBox.Show("提示", "请先输入正确的速度");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"),ResourceCulture.GetString(ResourceCulture.PWSpeed, "请先输入正确的速度"));
return;
}
this.btnInOutMovej.BackColor = Color.Green;
......@@ -251,7 +252,7 @@ namespace OnlineStore.AutoInOutStore
int speed = FormUtil.GetIntValue(txtComSpeed);
if (speed <= 0)
{
MessageBox.Show("提示", "请先输入正确的速度");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"),ResourceCulture.GetString(ResourceCulture.PWSpeed, "请先输入正确的速度"));
return;
}
this.btnComMove.BackColor = Color.Green;
......@@ -275,7 +276,7 @@ namespace OnlineStore.AutoInOutStore
int speed = FormUtil.GetIntValue(txtComSpeed);
if (speed <= 0)
{
MessageBox.Show("提示", "请先输入正确的速度");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"),ResourceCulture.GetString(ResourceCulture.PWSpeed, "请先输入正确的速度"));
return;
}
this.btnComMovej.BackColor = Color.Green;
......@@ -358,7 +359,7 @@ namespace OnlineStore.AutoInOutStore
int speed = FormUtil.GetIntValue(txtAutoSpeed);
if (speed <= 0)
{
MessageBox.Show("提示", "请先输入正确的速度");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"),ResourceCulture.GetString(ResourceCulture.PWSpeed, "请先输入正确的速度"));
return;
}
btnAutoMove.BackColor = Color.Green;
......@@ -383,7 +384,7 @@ namespace OnlineStore.AutoInOutStore
int speed = FormUtil.GetIntValue(txtAutoSpeed);
if (speed <= 0)
{
MessageBox.Show("提示", "请先输入正确的速度");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"),ResourceCulture.GetString(ResourceCulture.PWSpeed, "请先输入正确的速度"));
return;
}
btnAutoMovej.BackColor = Color.Green;
......
namespace OnlineStore.ACSingleStore
{
partial class FrmAxisMoveConfig
{
/// <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()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmAxisMoveConfig));
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.txtDelSpeed = new System.Windows.Forms.TextBox();
this.label19 = new System.Windows.Forms.Label();
this.lblShuoKePort = new System.Windows.Forms.Label();
this.txtBeginSpeed = new System.Windows.Forms.TextBox();
this.txtAddSpeed = new System.Windows.Forms.TextBox();
this.lblShuoKeAdd = new System.Windows.Forms.Label();
this.txtTargetSpeed = new System.Windows.Forms.TextBox();
this.label20 = new System.Windows.Forms.Label();
this.label21 = new System.Windows.Forms.Label();
this.txtMaxSpeed = new System.Windows.Forms.TextBox();
this.label18 = new System.Windows.Forms.Label();
this.label11 = new System.Windows.Forms.Label();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.txtInoutMax = new System.Windows.Forms.TextBox();
this.txtUpdownMax = new System.Windows.Forms.TextBox();
this.txtMiddleMax = new System.Windows.Forms.TextBox();
this.label12 = new System.Windows.Forms.Label();
this.label13 = new System.Windows.Forms.Label();
this.txtInoutMin = new System.Windows.Forms.TextBox();
this.txtUpdownMin = new System.Windows.Forms.TextBox();
this.txtMiddleMin = new System.Windows.Forms.TextBox();
this.label15 = new System.Windows.Forms.Label();
this.label16 = new System.Windows.Forms.Label();
this.label17 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.label10 = new System.Windows.Forms.Label();
this.txtIRSpeed = new System.Windows.Forms.TextBox();
this.txtURSpeed = new System.Windows.Forms.TextBox();
this.txtMRSpeed = new System.Windows.Forms.TextBox();
this.label9 = new System.Windows.Forms.Label();
this.txtIDtime = new System.Windows.Forms.TextBox();
this.txtUDtime = new System.Windows.Forms.TextBox();
this.txtMDtime = new System.Windows.Forms.TextBox();
this.txtIAtime = new System.Windows.Forms.TextBox();
this.txtUAtime = new System.Windows.Forms.TextBox();
this.txtMAtime = new System.Windows.Forms.TextBox();
this.txtISpeed = new System.Windows.Forms.TextBox();
this.txtUSpeed = new System.Windows.Forms.TextBox();
this.txtMSpeed = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.txtInOutSpeed = new System.Windows.Forms.TextBox();
this.txtUpDownSpeed = new System.Windows.Forms.TextBox();
this.txtMiddleSpeed = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.label1 = new System.Windows.Forms.Label();
this.label67 = new System.Windows.Forms.Label();
this.txtInOutP3S = new System.Windows.Forms.TextBox();
this.label61 = new System.Windows.Forms.Label();
this.txtInOutP2S = new System.Windows.Forms.TextBox();
this.label62 = new System.Windows.Forms.Label();
this.txtInOutP1S = new System.Windows.Forms.TextBox();
this.label63 = new System.Windows.Forms.Label();
this.txtMiddleP2S = new System.Windows.Forms.TextBox();
this.label60 = new System.Windows.Forms.Label();
this.txtMiddleP1S = new System.Windows.Forms.TextBox();
this.label58 = new System.Windows.Forms.Label();
this.txtUpdownP8S = new System.Windows.Forms.TextBox();
this.label57 = new System.Windows.Forms.Label();
this.txtUpdownP7S = new System.Windows.Forms.TextBox();
this.label56 = new System.Windows.Forms.Label();
this.txtUpdownP6S = new System.Windows.Forms.TextBox();
this.label55 = new System.Windows.Forms.Label();
this.txtUpdownP5S = new System.Windows.Forms.TextBox();
this.label54 = new System.Windows.Forms.Label();
this.txtUpdownP4S = new System.Windows.Forms.TextBox();
this.label52 = new System.Windows.Forms.Label();
this.txtUpdownP3S = new System.Windows.Forms.TextBox();
this.label51 = new System.Windows.Forms.Label();
this.txtUpdownP2S = new System.Windows.Forms.TextBox();
this.label50 = new System.Windows.Forms.Label();
this.txtUpdownP1S = new System.Windows.Forms.TextBox();
this.label53 = new System.Windows.Forms.Label();
this.btnSaveAxisSpeed = new System.Windows.Forms.Button();
this.groupBox3.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox1.SuspendLayout();
this.groupBox4.SuspendLayout();
this.SuspendLayout();
//
// groupBox3
//
this.groupBox3.Controls.Add(this.txtDelSpeed);
this.groupBox3.Controls.Add(this.label19);
this.groupBox3.Controls.Add(this.lblShuoKePort);
this.groupBox3.Controls.Add(this.txtBeginSpeed);
this.groupBox3.Controls.Add(this.txtAddSpeed);
this.groupBox3.Controls.Add(this.lblShuoKeAdd);
this.groupBox3.Controls.Add(this.txtTargetSpeed);
this.groupBox3.Controls.Add(this.label20);
this.groupBox3.Controls.Add(this.label21);
this.groupBox3.Controls.Add(this.txtMaxSpeed);
this.groupBox3.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox3.Location = new System.Drawing.Point(586, 227);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(210, 194);
this.groupBox3.TabIndex = 225;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "压紧轴速度设置";
//
// txtDelSpeed
//
this.txtDelSpeed.Location = new System.Drawing.Point(94, 158);
this.txtDelSpeed.Name = "txtDelSpeed";
this.txtDelSpeed.Size = new System.Drawing.Size(100, 23);
this.txtDelSpeed.TabIndex = 234;
//
// label19
//
this.label19.AutoSize = true;
this.label19.Location = new System.Drawing.Point(16, 162);
this.label19.Name = "label19";
this.label19.Size = new System.Drawing.Size(56, 17);
this.label19.TabIndex = 233;
this.label19.Text = "减速度:";
//
// lblShuoKePort
//
this.lblShuoKePort.AutoSize = true;
this.lblShuoKePort.Location = new System.Drawing.Point(16, 26);
this.lblShuoKePort.Name = "lblShuoKePort";
this.lblShuoKePort.Size = new System.Drawing.Size(68, 17);
this.lblShuoKePort.TabIndex = 225;
this.lblShuoKePort.Text = "起始速度:";
//
// txtBeginSpeed
//
this.txtBeginSpeed.Location = new System.Drawing.Point(94, 22);
this.txtBeginSpeed.Name = "txtBeginSpeed";
this.txtBeginSpeed.Size = new System.Drawing.Size(100, 23);
this.txtBeginSpeed.TabIndex = 226;
//
// txtAddSpeed
//
this.txtAddSpeed.Location = new System.Drawing.Point(94, 124);
this.txtAddSpeed.Name = "txtAddSpeed";
this.txtAddSpeed.Size = new System.Drawing.Size(100, 23);
this.txtAddSpeed.TabIndex = 232;
//
// lblShuoKeAdd
//
this.lblShuoKeAdd.AutoSize = true;
this.lblShuoKeAdd.Location = new System.Drawing.Point(15, 60);
this.lblShuoKeAdd.Name = "lblShuoKeAdd";
this.lblShuoKeAdd.Size = new System.Drawing.Size(68, 17);
this.lblShuoKeAdd.TabIndex = 227;
this.lblShuoKeAdd.Text = "目标速度:";
//
// txtTargetSpeed
//
this.txtTargetSpeed.Location = new System.Drawing.Point(94, 56);
this.txtTargetSpeed.Name = "txtTargetSpeed";
this.txtTargetSpeed.Size = new System.Drawing.Size(100, 23);
this.txtTargetSpeed.TabIndex = 228;
//
// label20
//
this.label20.AutoSize = true;
this.label20.Location = new System.Drawing.Point(15, 128);
this.label20.Name = "label20";
this.label20.Size = new System.Drawing.Size(56, 17);
this.label20.TabIndex = 231;
this.label20.Text = "加速度:";
//
// label21
//
this.label21.AutoSize = true;
this.label21.Location = new System.Drawing.Point(15, 94);
this.label21.Name = "label21";
this.label21.Size = new System.Drawing.Size(68, 17);
this.label21.TabIndex = 229;
this.label21.Text = "最大速度:";
//
// txtMaxSpeed
//
this.txtMaxSpeed.Location = new System.Drawing.Point(94, 90);
this.txtMaxSpeed.Name = "txtMaxSpeed";
this.txtMaxSpeed.Size = new System.Drawing.Size(100, 23);
this.txtMaxSpeed.TabIndex = 230;
//
// label18
//
this.label18.AutoSize = true;
this.label18.ForeColor = System.Drawing.Color.Red;
this.label18.Location = new System.Drawing.Point(493, 45);
this.label18.Name = "label18";
this.label18.Size = new System.Drawing.Size(227, 12);
this.label18.TabIndex = 224;
this.label18.Text = "*速度倍率为20时支持的最大速度为327660";
//
// label11
//
this.label11.AutoSize = true;
this.label11.ForeColor = System.Drawing.Color.Red;
this.label11.Location = new System.Drawing.Point(493, 21);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(227, 12);
this.label11.TabIndex = 223;
this.label11.Text = "*速度倍率为10时支持的最大速度为163830";
//
// groupBox2
//
this.groupBox2.Controls.Add(this.txtInoutMax);
this.groupBox2.Controls.Add(this.txtUpdownMax);
this.groupBox2.Controls.Add(this.txtMiddleMax);
this.groupBox2.Controls.Add(this.label12);
this.groupBox2.Controls.Add(this.label13);
this.groupBox2.Controls.Add(this.txtInoutMin);
this.groupBox2.Controls.Add(this.txtUpdownMin);
this.groupBox2.Controls.Add(this.txtMiddleMin);
this.groupBox2.Controls.Add(this.label15);
this.groupBox2.Controls.Add(this.label16);
this.groupBox2.Controls.Add(this.label17);
this.groupBox2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox2.Location = new System.Drawing.Point(38, 419);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(368, 147);
this.groupBox2.TabIndex = 222;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "出入库脉冲误差范围";
//
// txtInoutMax
//
this.txtInoutMax.Location = new System.Drawing.Point(243, 107);
this.txtInoutMax.Name = "txtInoutMax";
this.txtInoutMax.Size = new System.Drawing.Size(92, 23);
this.txtInoutMax.TabIndex = 22;
//
// txtUpdownMax
//
this.txtUpdownMax.Location = new System.Drawing.Point(243, 75);
this.txtUpdownMax.Name = "txtUpdownMax";
this.txtUpdownMax.Size = new System.Drawing.Size(92, 23);
this.txtUpdownMax.TabIndex = 21;
//
// txtMiddleMax
//
this.txtMiddleMax.Location = new System.Drawing.Point(243, 45);
this.txtMiddleMax.Name = "txtMiddleMax";
this.txtMiddleMax.Size = new System.Drawing.Size(92, 23);
this.txtMiddleMax.TabIndex = 20;
//
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(257, 21);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(68, 17);
this.label12.TabIndex = 18;
this.label12.Text = "最大误差值";
//
// label13
//
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(136, 21);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(68, 17);
this.label13.TabIndex = 17;
this.label13.Text = "最小误差值";
//
// txtInoutMin
//
this.txtInoutMin.Location = new System.Drawing.Point(133, 107);
this.txtInoutMin.Name = "txtInoutMin";
this.txtInoutMin.Size = new System.Drawing.Size(92, 23);
this.txtInoutMin.TabIndex = 15;
//
// txtUpdownMin
//
this.txtUpdownMin.Location = new System.Drawing.Point(133, 75);
this.txtUpdownMin.Name = "txtUpdownMin";
this.txtUpdownMin.Size = new System.Drawing.Size(92, 23);
this.txtUpdownMin.TabIndex = 14;
this.txtUpdownMin.Text = " ";
//
// txtMiddleMin
//
this.txtMiddleMin.Location = new System.Drawing.Point(133, 45);
this.txtMiddleMin.Name = "txtMiddleMin";
this.txtMiddleMin.Size = new System.Drawing.Size(92, 23);
this.txtMiddleMin.TabIndex = 13;
//
// label15
//
this.label15.AutoSize = true;
this.label15.Location = new System.Drawing.Point(9, 112);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(116, 17);
this.label15.TabIndex = 11;
this.label15.Text = "(伺服三)进出伺服";
//
// label16
//
this.label16.AutoSize = true;
this.label16.Location = new System.Drawing.Point(9, 80);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(116, 17);
this.label16.TabIndex = 10;
this.label16.Text = "(伺服二)升降伺服";
//
// label17
//
this.label17.AutoSize = true;
this.label17.Location = new System.Drawing.Point(9, 50);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(116, 17);
this.label17.TabIndex = 9;
this.label17.Text = "(伺服一)旋转伺服";
//
// groupBox1
//
this.groupBox1.Controls.Add(this.label10);
this.groupBox1.Controls.Add(this.txtIRSpeed);
this.groupBox1.Controls.Add(this.txtURSpeed);
this.groupBox1.Controls.Add(this.txtMRSpeed);
this.groupBox1.Controls.Add(this.label9);
this.groupBox1.Controls.Add(this.txtIDtime);
this.groupBox1.Controls.Add(this.txtUDtime);
this.groupBox1.Controls.Add(this.txtMDtime);
this.groupBox1.Controls.Add(this.txtIAtime);
this.groupBox1.Controls.Add(this.txtUAtime);
this.groupBox1.Controls.Add(this.txtMAtime);
this.groupBox1.Controls.Add(this.txtISpeed);
this.groupBox1.Controls.Add(this.txtUSpeed);
this.groupBox1.Controls.Add(this.txtMSpeed);
this.groupBox1.Controls.Add(this.label8);
this.groupBox1.Controls.Add(this.label7);
this.groupBox1.Controls.Add(this.label6);
this.groupBox1.Controls.Add(this.txtInOutSpeed);
this.groupBox1.Controls.Add(this.txtUpDownSpeed);
this.groupBox1.Controls.Add(this.txtMiddleSpeed);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox1.Location = new System.Drawing.Point(38, 75);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(758, 147);
this.groupBox1.TabIndex = 221;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "默认设置";
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(592, 21);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(56, 17);
this.label10.TabIndex = 32;
this.label10.Text = "速度倍率";
//
// txtIRSpeed
//
this.txtIRSpeed.Location = new System.Drawing.Point(580, 105);
this.txtIRSpeed.Name = "txtIRSpeed";
this.txtIRSpeed.Size = new System.Drawing.Size(92, 23);
this.txtIRSpeed.TabIndex = 35;
//
// txtURSpeed
//
this.txtURSpeed.Location = new System.Drawing.Point(580, 74);
this.txtURSpeed.Name = "txtURSpeed";
this.txtURSpeed.Size = new System.Drawing.Size(92, 23);
this.txtURSpeed.TabIndex = 34;
//
// txtMRSpeed
//
this.txtMRSpeed.Location = new System.Drawing.Point(580, 44);
this.txtMRSpeed.Name = "txtMRSpeed";
this.txtMRSpeed.Size = new System.Drawing.Size(92, 23);
this.txtMRSpeed.TabIndex = 33;
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(479, 21);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(56, 17);
this.label9.TabIndex = 20;
this.label9.Text = "减速时间";
//
// txtIDtime
//
this.txtIDtime.Location = new System.Drawing.Point(465, 106);
this.txtIDtime.Name = "txtIDtime";
this.txtIDtime.Size = new System.Drawing.Size(92, 23);
this.txtIDtime.TabIndex = 30;
//
// txtUDtime
//
this.txtUDtime.Location = new System.Drawing.Point(465, 75);
this.txtUDtime.Name = "txtUDtime";
this.txtUDtime.Size = new System.Drawing.Size(92, 23);
this.txtUDtime.TabIndex = 29;
//
// txtMDtime
//
this.txtMDtime.Location = new System.Drawing.Point(465, 45);
this.txtMDtime.Name = "txtMDtime";
this.txtMDtime.Size = new System.Drawing.Size(92, 23);
this.txtMDtime.TabIndex = 28;
//
// txtIAtime
//
this.txtIAtime.Location = new System.Drawing.Point(352, 106);
this.txtIAtime.Name = "txtIAtime";
this.txtIAtime.Size = new System.Drawing.Size(92, 23);
this.txtIAtime.TabIndex = 26;
//
// txtUAtime
//
this.txtUAtime.Location = new System.Drawing.Point(352, 75);
this.txtUAtime.Name = "txtUAtime";
this.txtUAtime.Size = new System.Drawing.Size(92, 23);
this.txtUAtime.TabIndex = 25;
//
// txtMAtime
//
this.txtMAtime.Location = new System.Drawing.Point(352, 45);
this.txtMAtime.Name = "txtMAtime";
this.txtMAtime.Size = new System.Drawing.Size(92, 23);
this.txtMAtime.TabIndex = 24;
//
// txtISpeed
//
this.txtISpeed.Location = new System.Drawing.Point(245, 106);
this.txtISpeed.Name = "txtISpeed";
this.txtISpeed.Size = new System.Drawing.Size(92, 23);
this.txtISpeed.TabIndex = 22;
//
// txtUSpeed
//
this.txtUSpeed.Location = new System.Drawing.Point(245, 75);
this.txtUSpeed.Name = "txtUSpeed";
this.txtUSpeed.Size = new System.Drawing.Size(92, 23);
this.txtUSpeed.TabIndex = 21;
//
// txtMSpeed
//
this.txtMSpeed.Location = new System.Drawing.Point(245, 45);
this.txtMSpeed.Name = "txtMSpeed";
this.txtMSpeed.Size = new System.Drawing.Size(92, 23);
this.txtMSpeed.TabIndex = 20;
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(375, 21);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(56, 17);
this.label8.TabIndex = 19;
this.label8.Text = "加速时间";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(259, 21);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(56, 17);
this.label7.TabIndex = 18;
this.label7.Text = "目标速度";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(150, 21);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(56, 17);
this.label6.TabIndex = 17;
this.label6.Text = "开始速度";
//
// txtInOutSpeed
//
this.txtInOutSpeed.Location = new System.Drawing.Point(135, 106);
this.txtInOutSpeed.Name = "txtInOutSpeed";
this.txtInOutSpeed.Size = new System.Drawing.Size(92, 23);
this.txtInOutSpeed.TabIndex = 15;
//
// txtUpDownSpeed
//
this.txtUpDownSpeed.Location = new System.Drawing.Point(135, 75);
this.txtUpDownSpeed.Name = "txtUpDownSpeed";
this.txtUpDownSpeed.Size = new System.Drawing.Size(92, 23);
this.txtUpDownSpeed.TabIndex = 14;
this.txtUpDownSpeed.Text = " ";
//
// txtMiddleSpeed
//
this.txtMiddleSpeed.Location = new System.Drawing.Point(135, 45);
this.txtMiddleSpeed.Name = "txtMiddleSpeed";
this.txtMiddleSpeed.Size = new System.Drawing.Size(92, 23);
this.txtMiddleSpeed.TabIndex = 13;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(9, 111);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(116, 17);
this.label3.TabIndex = 11;
this.label3.Text = "(伺服三)进出伺服";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(9, 80);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(116, 17);
this.label2.TabIndex = 10;
this.label2.Text = "(伺服二)升降伺服";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(9, 50);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(116, 17);
this.label5.TabIndex = 9;
this.label5.Text = "(伺服一)旋转伺服";
//
// groupBox4
//
this.groupBox4.Controls.Add(this.label1);
this.groupBox4.Controls.Add(this.label67);
this.groupBox4.Controls.Add(this.txtInOutP3S);
this.groupBox4.Controls.Add(this.label61);
this.groupBox4.Controls.Add(this.txtInOutP2S);
this.groupBox4.Controls.Add(this.label62);
this.groupBox4.Controls.Add(this.txtInOutP1S);
this.groupBox4.Controls.Add(this.label63);
this.groupBox4.Controls.Add(this.txtMiddleP2S);
this.groupBox4.Controls.Add(this.label60);
this.groupBox4.Controls.Add(this.txtMiddleP1S);
this.groupBox4.Controls.Add(this.label58);
this.groupBox4.Controls.Add(this.txtUpdownP8S);
this.groupBox4.Controls.Add(this.label57);
this.groupBox4.Controls.Add(this.txtUpdownP7S);
this.groupBox4.Controls.Add(this.label56);
this.groupBox4.Controls.Add(this.txtUpdownP6S);
this.groupBox4.Controls.Add(this.label55);
this.groupBox4.Controls.Add(this.txtUpdownP5S);
this.groupBox4.Controls.Add(this.label54);
this.groupBox4.Controls.Add(this.txtUpdownP4S);
this.groupBox4.Controls.Add(this.label52);
this.groupBox4.Controls.Add(this.txtUpdownP3S);
this.groupBox4.Controls.Add(this.label51);
this.groupBox4.Controls.Add(this.txtUpdownP2S);
this.groupBox4.Controls.Add(this.label50);
this.groupBox4.Controls.Add(this.txtUpdownP1S);
this.groupBox4.Controls.Add(this.label53);
this.groupBox4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox4.Location = new System.Drawing.Point(38, 227);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(542, 181);
this.groupBox4.TabIndex = 220;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "伺服P点速度列表";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Cursor = System.Windows.Forms.Cursors.Default;
this.label1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label1.ForeColor = System.Drawing.SystemColors.ControlText;
this.label1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label1.Location = new System.Drawing.Point(15, 70);
this.label1.Name = "label1";
this.label1.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label1.Size = new System.Drawing.Size(59, 17);
this.label1.TabIndex = 258;
this.label1.Text = "升降伺服:";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// label67
//
this.label67.AutoSize = true;
this.label67.Cursor = System.Windows.Forms.Cursors.Default;
this.label67.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label67.ForeColor = System.Drawing.SystemColors.ControlText;
this.label67.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label67.Location = new System.Drawing.Point(15, 30);
this.label67.Name = "label67";
this.label67.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label67.Size = new System.Drawing.Size(59, 17);
this.label67.TabIndex = 257;
this.label67.Text = "升降伺服:";
this.label67.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtInOutP3S
//
this.txtInOutP3S.AcceptsReturn = true;
this.txtInOutP3S.BackColor = System.Drawing.SystemColors.Window;
this.txtInOutP3S.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtInOutP3S.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtInOutP3S.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtInOutP3S.Location = new System.Drawing.Point(342, 146);
this.txtInOutP3S.MaxLength = 0;
this.txtInOutP3S.Name = "txtInOutP3S";
this.txtInOutP3S.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtInOutP3S.Size = new System.Drawing.Size(75, 23);
this.txtInOutP3S.TabIndex = 250;
//
// label61
//
this.label61.AutoSize = true;
this.label61.Cursor = System.Windows.Forms.Cursors.Default;
this.label61.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label61.ForeColor = System.Drawing.SystemColors.ControlText;
this.label61.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label61.Location = new System.Drawing.Point(306, 149);
this.label61.Name = "label61";
this.label61.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label61.Size = new System.Drawing.Size(34, 17);
this.label61.TabIndex = 249;
this.label61.Text = "P3:";
this.label61.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtInOutP2S
//
this.txtInOutP2S.AcceptsReturn = true;
this.txtInOutP2S.BackColor = System.Drawing.SystemColors.Window;
this.txtInOutP2S.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtInOutP2S.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtInOutP2S.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtInOutP2S.Location = new System.Drawing.Point(225, 146);
this.txtInOutP2S.MaxLength = 0;
this.txtInOutP2S.Name = "txtInOutP2S";
this.txtInOutP2S.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtInOutP2S.Size = new System.Drawing.Size(75, 23);
this.txtInOutP2S.TabIndex = 248;
//
// label62
//
this.label62.AutoSize = true;
this.label62.Cursor = System.Windows.Forms.Cursors.Default;
this.label62.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label62.ForeColor = System.Drawing.SystemColors.ControlText;
this.label62.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label62.Location = new System.Drawing.Point(189, 149);
this.label62.Name = "label62";
this.label62.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label62.Size = new System.Drawing.Size(34, 17);
this.label62.TabIndex = 247;
this.label62.Text = "P2:";
this.label62.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtInOutP1S
//
this.txtInOutP1S.AcceptsReturn = true;
this.txtInOutP1S.BackColor = System.Drawing.SystemColors.Window;
this.txtInOutP1S.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtInOutP1S.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtInOutP1S.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtInOutP1S.Location = new System.Drawing.Point(103, 146);
this.txtInOutP1S.MaxLength = 0;
this.txtInOutP1S.Name = "txtInOutP1S";
this.txtInOutP1S.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtInOutP1S.Size = new System.Drawing.Size(75, 23);
this.txtInOutP1S.TabIndex = 246;
//
// label63
//
this.label63.AutoSize = true;
this.label63.Cursor = System.Windows.Forms.Cursors.Default;
this.label63.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label63.ForeColor = System.Drawing.SystemColors.ControlText;
this.label63.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label63.Location = new System.Drawing.Point(15, 150);
this.label63.Name = "label63";
this.label63.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label63.Size = new System.Drawing.Size(94, 17);
this.label63.TabIndex = 245;
this.label63.Text = "进出伺服 P1:";
this.label63.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtMiddleP2S
//
this.txtMiddleP2S.AcceptsReturn = true;
this.txtMiddleP2S.BackColor = System.Drawing.SystemColors.Window;
this.txtMiddleP2S.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtMiddleP2S.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtMiddleP2S.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtMiddleP2S.Location = new System.Drawing.Point(225, 106);
this.txtMiddleP2S.MaxLength = 0;
this.txtMiddleP2S.Name = "txtMiddleP2S";
this.txtMiddleP2S.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtMiddleP2S.Size = new System.Drawing.Size(75, 23);
this.txtMiddleP2S.TabIndex = 242;
//
// label60
//
this.label60.AutoSize = true;
this.label60.Cursor = System.Windows.Forms.Cursors.Default;
this.label60.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label60.ForeColor = System.Drawing.SystemColors.ControlText;
this.label60.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label60.Location = new System.Drawing.Point(189, 109);
this.label60.Name = "label60";
this.label60.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label60.Size = new System.Drawing.Size(34, 17);
this.label60.TabIndex = 241;
this.label60.Text = "P2:";
this.label60.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtMiddleP1S
//
this.txtMiddleP1S.AcceptsReturn = true;
this.txtMiddleP1S.BackColor = System.Drawing.SystemColors.Window;
this.txtMiddleP1S.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtMiddleP1S.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtMiddleP1S.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtMiddleP1S.Location = new System.Drawing.Point(103, 106);
this.txtMiddleP1S.MaxLength = 0;
this.txtMiddleP1S.Name = "txtMiddleP1S";
this.txtMiddleP1S.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtMiddleP1S.Size = new System.Drawing.Size(75, 23);
this.txtMiddleP1S.TabIndex = 240;
//
// label58
//
this.label58.AutoSize = true;
this.label58.Cursor = System.Windows.Forms.Cursors.Default;
this.label58.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label58.ForeColor = System.Drawing.SystemColors.ControlText;
this.label58.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label58.Location = new System.Drawing.Point(15, 110);
this.label58.Name = "label58";
this.label58.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label58.Size = new System.Drawing.Size(94, 17);
this.label58.TabIndex = 239;
this.label58.Text = "旋转伺服 P1:";
this.label58.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtUpdownP8S
//
this.txtUpdownP8S.AcceptsReturn = true;
this.txtUpdownP8S.BackColor = System.Drawing.SystemColors.Window;
this.txtUpdownP8S.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtUpdownP8S.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtUpdownP8S.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtUpdownP8S.Location = new System.Drawing.Point(457, 66);
this.txtUpdownP8S.MaxLength = 0;
this.txtUpdownP8S.Name = "txtUpdownP8S";
this.txtUpdownP8S.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtUpdownP8S.Size = new System.Drawing.Size(75, 23);
this.txtUpdownP8S.TabIndex = 238;
//
// label57
//
this.label57.AutoSize = true;
this.label57.Cursor = System.Windows.Forms.Cursors.Default;
this.label57.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label57.ForeColor = System.Drawing.SystemColors.ControlText;
this.label57.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label57.Location = new System.Drawing.Point(421, 69);
this.label57.Name = "label57";
this.label57.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label57.Size = new System.Drawing.Size(34, 17);
this.label57.TabIndex = 237;
this.label57.Text = "P8:";
this.label57.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtUpdownP7S
//
this.txtUpdownP7S.AcceptsReturn = true;
this.txtUpdownP7S.BackColor = System.Drawing.SystemColors.Window;
this.txtUpdownP7S.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtUpdownP7S.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtUpdownP7S.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtUpdownP7S.Location = new System.Drawing.Point(341, 66);
this.txtUpdownP7S.MaxLength = 0;
this.txtUpdownP7S.Name = "txtUpdownP7S";
this.txtUpdownP7S.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtUpdownP7S.Size = new System.Drawing.Size(75, 23);
this.txtUpdownP7S.TabIndex = 236;
//
// label56
//
this.label56.AutoSize = true;
this.label56.Cursor = System.Windows.Forms.Cursors.Default;
this.label56.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label56.ForeColor = System.Drawing.SystemColors.ControlText;
this.label56.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label56.Location = new System.Drawing.Point(306, 69);
this.label56.Name = "label56";
this.label56.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label56.Size = new System.Drawing.Size(34, 17);
this.label56.TabIndex = 235;
this.label56.Text = "P7:";
this.label56.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtUpdownP6S
//
this.txtUpdownP6S.AcceptsReturn = true;
this.txtUpdownP6S.BackColor = System.Drawing.SystemColors.Window;
this.txtUpdownP6S.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtUpdownP6S.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtUpdownP6S.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtUpdownP6S.Location = new System.Drawing.Point(225, 66);
this.txtUpdownP6S.MaxLength = 0;
this.txtUpdownP6S.Name = "txtUpdownP6S";
this.txtUpdownP6S.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtUpdownP6S.Size = new System.Drawing.Size(75, 23);
this.txtUpdownP6S.TabIndex = 234;
//
// label55
//
this.label55.AutoSize = true;
this.label55.Cursor = System.Windows.Forms.Cursors.Default;
this.label55.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label55.ForeColor = System.Drawing.SystemColors.ControlText;
this.label55.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label55.Location = new System.Drawing.Point(189, 69);
this.label55.Name = "label55";
this.label55.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label55.Size = new System.Drawing.Size(34, 17);
this.label55.TabIndex = 233;
this.label55.Text = "P6:";
this.label55.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtUpdownP5S
//
this.txtUpdownP5S.AcceptsReturn = true;
this.txtUpdownP5S.BackColor = System.Drawing.SystemColors.Window;
this.txtUpdownP5S.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtUpdownP5S.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtUpdownP5S.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtUpdownP5S.Location = new System.Drawing.Point(103, 66);
this.txtUpdownP5S.MaxLength = 0;
this.txtUpdownP5S.Name = "txtUpdownP5S";
this.txtUpdownP5S.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtUpdownP5S.Size = new System.Drawing.Size(75, 23);
this.txtUpdownP5S.TabIndex = 232;
//
// label54
//
this.label54.AutoSize = true;
this.label54.Cursor = System.Windows.Forms.Cursors.Default;
this.label54.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label54.ForeColor = System.Drawing.SystemColors.ControlText;
this.label54.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label54.Location = new System.Drawing.Point(76, 70);
this.label54.Name = "label54";
this.label54.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label54.Size = new System.Drawing.Size(34, 17);
this.label54.TabIndex = 231;
this.label54.Text = "P5:";
this.label54.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtUpdownP4S
//
this.txtUpdownP4S.AcceptsReturn = true;
this.txtUpdownP4S.BackColor = System.Drawing.SystemColors.Window;
this.txtUpdownP4S.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtUpdownP4S.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtUpdownP4S.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtUpdownP4S.Location = new System.Drawing.Point(458, 26);
this.txtUpdownP4S.MaxLength = 0;
this.txtUpdownP4S.Name = "txtUpdownP4S";
this.txtUpdownP4S.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtUpdownP4S.Size = new System.Drawing.Size(75, 23);
this.txtUpdownP4S.TabIndex = 230;
//
// label52
//
this.label52.AutoSize = true;
this.label52.Cursor = System.Windows.Forms.Cursors.Default;
this.label52.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label52.ForeColor = System.Drawing.SystemColors.ControlText;
this.label52.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label52.Location = new System.Drawing.Point(422, 29);
this.label52.Name = "label52";
this.label52.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label52.Size = new System.Drawing.Size(34, 17);
this.label52.TabIndex = 229;
this.label52.Text = "P4:";
this.label52.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtUpdownP3S
//
this.txtUpdownP3S.AcceptsReturn = true;
this.txtUpdownP3S.BackColor = System.Drawing.SystemColors.Window;
this.txtUpdownP3S.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtUpdownP3S.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtUpdownP3S.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtUpdownP3S.Location = new System.Drawing.Point(341, 26);
this.txtUpdownP3S.MaxLength = 0;
this.txtUpdownP3S.Name = "txtUpdownP3S";
this.txtUpdownP3S.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtUpdownP3S.Size = new System.Drawing.Size(75, 23);
this.txtUpdownP3S.TabIndex = 228;
//
// label51
//
this.label51.AutoSize = true;
this.label51.Cursor = System.Windows.Forms.Cursors.Default;
this.label51.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label51.ForeColor = System.Drawing.SystemColors.ControlText;
this.label51.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label51.Location = new System.Drawing.Point(306, 29);
this.label51.Name = "label51";
this.label51.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label51.Size = new System.Drawing.Size(34, 17);
this.label51.TabIndex = 227;
this.label51.Text = "P3:";
this.label51.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtUpdownP2S
//
this.txtUpdownP2S.AcceptsReturn = true;
this.txtUpdownP2S.BackColor = System.Drawing.SystemColors.Window;
this.txtUpdownP2S.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtUpdownP2S.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtUpdownP2S.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtUpdownP2S.Location = new System.Drawing.Point(225, 26);
this.txtUpdownP2S.MaxLength = 0;
this.txtUpdownP2S.Name = "txtUpdownP2S";
this.txtUpdownP2S.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtUpdownP2S.Size = new System.Drawing.Size(75, 23);
this.txtUpdownP2S.TabIndex = 226;
//
// label50
//
this.label50.AutoSize = true;
this.label50.Cursor = System.Windows.Forms.Cursors.Default;
this.label50.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label50.ForeColor = System.Drawing.SystemColors.ControlText;
this.label50.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label50.Location = new System.Drawing.Point(189, 29);
this.label50.Name = "label50";
this.label50.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label50.Size = new System.Drawing.Size(34, 17);
this.label50.TabIndex = 225;
this.label50.Text = "P2:";
this.label50.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtUpdownP1S
//
this.txtUpdownP1S.AcceptsReturn = true;
this.txtUpdownP1S.BackColor = System.Drawing.SystemColors.Window;
this.txtUpdownP1S.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtUpdownP1S.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtUpdownP1S.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtUpdownP1S.Location = new System.Drawing.Point(103, 26);
this.txtUpdownP1S.MaxLength = 0;
this.txtUpdownP1S.Name = "txtUpdownP1S";
this.txtUpdownP1S.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtUpdownP1S.Size = new System.Drawing.Size(75, 23);
this.txtUpdownP1S.TabIndex = 224;
//
// label53
//
this.label53.AutoSize = true;
this.label53.Cursor = System.Windows.Forms.Cursors.Default;
this.label53.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label53.ForeColor = System.Drawing.SystemColors.ControlText;
this.label53.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label53.Location = new System.Drawing.Point(76, 29);
this.label53.Name = "label53";
this.label53.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label53.Size = new System.Drawing.Size(34, 17);
this.label53.TabIndex = 223;
this.label53.Text = "P1:";
this.label53.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// btnSaveAxisSpeed
//
this.btnSaveAxisSpeed.Location = new System.Drawing.Point(680, 538);
this.btnSaveAxisSpeed.Name = "btnSaveAxisSpeed";
this.btnSaveAxisSpeed.Size = new System.Drawing.Size(98, 28);
this.btnSaveAxisSpeed.TabIndex = 99;
this.btnSaveAxisSpeed.Text = "保存配置";
this.btnSaveAxisSpeed.UseVisualStyleBackColor = true;
this.btnSaveAxisSpeed.Click += new System.EventHandler(this.btnSaveAxisSpeed_Click);
//
// FrmAxisMoveConfig
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(840, 585);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.label18);
this.Controls.Add(this.label11);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.groupBox4);
this.Controls.Add(this.btnSaveAxisSpeed);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmAxisMoveConfig";
this.Text = "伺服运动参数配置";
this.Load += new System.EventHandler(this.FrmAxisMoveConfig_Load);
this.Shown += new System.EventHandler(this.FrmAxisMoveConfig_Shown);
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.GroupBox groupBox4;
public System.Windows.Forms.Label label1;
private System.Windows.Forms.Button btnSaveAxisSpeed;
public System.Windows.Forms.Label label67;
public System.Windows.Forms.TextBox txtInOutP3S;
public System.Windows.Forms.Label label61;
public System.Windows.Forms.TextBox txtInOutP2S;
public System.Windows.Forms.Label label62;
public System.Windows.Forms.TextBox txtInOutP1S;
public System.Windows.Forms.Label label63;
public System.Windows.Forms.TextBox txtMiddleP2S;
public System.Windows.Forms.Label label60;
public System.Windows.Forms.TextBox txtMiddleP1S;
public System.Windows.Forms.Label label58;
public System.Windows.Forms.TextBox txtUpdownP8S;
public System.Windows.Forms.Label label57;
public System.Windows.Forms.TextBox txtUpdownP7S;
public System.Windows.Forms.Label label56;
public System.Windows.Forms.TextBox txtUpdownP6S;
public System.Windows.Forms.Label label55;
public System.Windows.Forms.TextBox txtUpdownP5S;
public System.Windows.Forms.Label label54;
public System.Windows.Forms.TextBox txtUpdownP4S;
public System.Windows.Forms.Label label52;
public System.Windows.Forms.TextBox txtUpdownP3S;
public System.Windows.Forms.Label label51;
public System.Windows.Forms.TextBox txtUpdownP2S;
public System.Windows.Forms.Label label50;
public System.Windows.Forms.TextBox txtUpdownP1S;
public System.Windows.Forms.Label label53;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.TextBox txtInOutSpeed;
private System.Windows.Forms.TextBox txtUpDownSpeed;
private System.Windows.Forms.TextBox txtMiddleSpeed;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.TextBox txtIDtime;
private System.Windows.Forms.TextBox txtUDtime;
private System.Windows.Forms.TextBox txtMDtime;
private System.Windows.Forms.TextBox txtIAtime;
private System.Windows.Forms.TextBox txtUAtime;
private System.Windows.Forms.TextBox txtMAtime;
private System.Windows.Forms.TextBox txtISpeed;
private System.Windows.Forms.TextBox txtUSpeed;
private System.Windows.Forms.TextBox txtMSpeed;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.TextBox txtInoutMax;
private System.Windows.Forms.TextBox txtUpdownMax;
private System.Windows.Forms.TextBox txtMiddleMax;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.TextBox txtInoutMin;
private System.Windows.Forms.TextBox txtUpdownMin;
private System.Windows.Forms.TextBox txtMiddleMin;
private System.Windows.Forms.Label label15;
private System.Windows.Forms.Label label16;
private System.Windows.Forms.Label label17;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.TextBox txtIRSpeed;
private System.Windows.Forms.TextBox txtURSpeed;
private System.Windows.Forms.TextBox txtMRSpeed;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.Label label18;
private System.Windows.Forms.TextBox txtDelSpeed;
private System.Windows.Forms.Label label19;
private System.Windows.Forms.TextBox txtAddSpeed;
private System.Windows.Forms.Label label20;
private System.Windows.Forms.TextBox txtMaxSpeed;
private System.Windows.Forms.Label label21;
private System.Windows.Forms.TextBox txtTargetSpeed;
private System.Windows.Forms.Label lblShuoKeAdd;
private System.Windows.Forms.TextBox txtBeginSpeed;
private System.Windows.Forms.Label lblShuoKePort;
private System.Windows.Forms.GroupBox groupBox3;
}
}
\ No newline at end of file
using OnlineStore.Common;
using OnlineStore.DeviceLibrary;
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 OnlineStore.ACSingleStore
{
public partial class FrmAxisMoveConfig : FrmBase
{
private AC_SA_BoxBean boxBean = null;
public FrmAxisMoveConfig(AC_SA_BoxBean box )
{
this.boxBean = box;
InitializeComponent();
}
private void FrmAxisMoveConfig_Load(object sender, EventArgs e)
{
txtUpdownP1S.Text = boxBean.Config.UpDownAxis_P1_Speed.ToString();
txtUpdownP2S.Text = boxBean.Config.UpDownAxis_P2_Speed.ToString();
txtUpdownP3S.Text = boxBean.Config.UpDownAxis_P3_Speed.ToString();
txtUpdownP4S.Text = boxBean.Config.UpDownAxis_P4_Speed.ToString();
txtUpdownP5S.Text = boxBean.Config.UpDownAxis_P5_Speed.ToString();
txtUpdownP6S.Text = boxBean.Config.UpDownAxis_P6_Speed.ToString();
txtUpdownP7S.Text = boxBean.Config.UpDownAxis_P7_Speed.ToString();
txtUpdownP8S.Text = boxBean.Config.UpDownAxis_P8_Speed.ToString();
txtInOutP1S.Text = boxBean.Config.InOutAxis_P1_Speed.ToString();
txtInOutP2S.Text = boxBean.Config.InOutAxis_P2_Speed.ToString();
txtInOutP3S.Text = boxBean.Config.InOutAxis_P3_Speed.ToString();
txtMiddleP1S.Text = boxBean.Config.MiddleAxis_P1_Speed.ToString();
txtMiddleP2S.Text = boxBean.Config.MiddleAxis_P2_Speed.ToString();
//txtMiddleSpeed.Text = boxBean.Config.MiddleAxis_StartSpeed.ToString();
//txtInOutSpeed.Text = boxBean.Config.InoutAxis_StartSpeed.ToString();
//txtUpDownSpeed.Text = boxBean.Config.UpdownAxis_StartSpeed.ToString();
this.txtMSpeed.Text = boxBean.Config.MiddleAxis_TargetSpeed.ToString();
this.txtISpeed.Text = boxBean.Config.InoutAxis_TargetSpeed.ToString();
this.txtUSpeed.Text = boxBean.Config.UpdownAxis_TargetSpeed.ToString();
this.txtMAtime.Text = boxBean.Config.MiddleAxis_AddSpeed.ToString();
this.txtIAtime.Text = boxBean.Config.InoutAxis_DelSpeed.ToString();
this.txtUAtime.Text = boxBean.Config.UpdownAxis_AddSpeed.ToString();
this.txtMDtime.Text = boxBean.Config.MiddleAxis_DelSpeed.ToString();
this.txtIDtime.Text = boxBean.Config.InoutAxis_DelSpeed.ToString();
this.txtUDtime.Text = boxBean.Config.UpdownAxis_DelSpeed.ToString();
txtMiddleMax.Text = boxBean.Config.MiddleAxis_ErrorCountMax.ToString();
txtUpdownMax.Text = boxBean.Config.UpdownAxis_ErrorCountMax.ToString();
txtInoutMax.Text = boxBean.Config.InoutAxis_ErrorCountMax.ToString();
//txtComMax.Text = boxBean.Config.CompressAxis_ErrorCountMax.ToString();
txtMiddleMin.Text = boxBean.Config.MiddleAxis_ErrorCountMin.ToString();
txtUpdownMin.Text = boxBean.Config.UpdownAxis_ErrorCountMin.ToString();
txtInoutMin.Text = boxBean.Config.InoutAxis_ErrorCountMin.ToString();
//txtComMin.Text = boxBean.Config.CompressAxis_ErrorCountMin.ToString();
txtMRSpeed.Text = boxBean.Config.MiddleAxis_ResolveSpeed.ToString();
txtIRSpeed.Text = boxBean.Config.InoutAxis_ResolveSpeed.ToString();
txtURSpeed.Text = boxBean.Config.UpdownAxis_ResolveSpeed.ToString();
//txtCRSpeed.Text = boxBean.Config.CompressAxis_ResolveSpeed.ToString();
//txtAddSpeed.Text = boxBean.Config.CompressAxis_AddSpeed.ToString();
//txtDelSpeed.Text = boxBean.Config.CompressAxis_DelSpeed.ToString();
//txtMaxSpeed.Text = boxBean.Config.CompressAxis_MaxSpeed.ToString();
//txtBeginSpeed.Text = boxBean.Config.CompressAxis_StartSpeed.ToString();
//txtTargetSpeed.Text = boxBean.Config.CompressAxis_EndSpeed.ToString();
//this.txtCDtime.Text = boxBean.Config.CompressAxis_DecelTime.ToString();
//this.txtCSpeed.Text = boxBean.Config.CompressAxis_TargetSpeed.ToString();
//this.txtCAtime.Text = boxBean.Config.CompressAxis_AccelTime.ToString();
}
private void btnSaveAxisSpeed_Click(object sender, EventArgs e)
{
DialogResult resul = MessageBox.Show("配置使用地方过多,需要重启才能生效,是否确定保存?", "提示", MessageBoxButtons.YesNo);
if (!resul.Equals(DialogResult.Yes))
{
return;
}
boxBean.Config.UpDownAxis_P1_Speed = FormUtil.GetIntValue(txtUpdownP1S);
boxBean.Config.UpDownAxis_P2_Speed = FormUtil.GetIntValue(txtUpdownP2S);
boxBean.Config.UpDownAxis_P3_Speed = FormUtil.GetIntValue(txtUpdownP3S);
boxBean.Config.UpDownAxis_P4_Speed = FormUtil.GetIntValue(txtUpdownP4S);
boxBean.Config.UpDownAxis_P5_Speed = FormUtil.GetIntValue(txtUpdownP5S);
boxBean.Config.UpDownAxis_P6_Speed = FormUtil.GetIntValue(txtUpdownP6S);
boxBean.Config.UpDownAxis_P7_Speed = FormUtil.GetIntValue(txtUpdownP7S);
boxBean.Config.UpDownAxis_P8_Speed = FormUtil.GetIntValue(txtUpdownP8S);
boxBean.Config.InOutAxis_P1_Speed = FormUtil.GetIntValue(txtInOutP1S);
boxBean.Config.InOutAxis_P2_Speed = FormUtil.GetIntValue(txtInOutP2S);
boxBean.Config.InOutAxis_P3_Speed = FormUtil.GetIntValue(txtInOutP3S);
boxBean.Config.MiddleAxis_P1_Speed = FormUtil.GetIntValue(txtMiddleP1S);
boxBean.Config.MiddleAxis_P2_Speed = FormUtil.GetIntValue(txtMiddleP2S);
//boxBean.Config.CompressAxis_P1_Speed = FormUtil.GetIntValue(txtComPressP1S);
//boxBean.Config.CompressAxis_P2_Speed = FormUtil.GetIntValue(txtComPressP2S);
//boxBean.Config.CompressAxis_P3_Speed = FormUtil.GetIntValue(txtComPressP3S);
//boxBean.Config.MiddleAxis_StartSpeed = FormUtil.GetIntValue(txtMiddleSpeed);
//boxBean.Config.InoutAxis_StartSpeed = FormUtil.GetIntValue(txtInOutSpeed);
//boxBean.Config.UpdownAxis_StartSpeed = FormUtil.GetIntValue(txtUpDownSpeed);
//boxBean.Config.CompressAxis_StartSpeed = FormUtil.GetIntValue(txtComSpeed);
boxBean.Config.MiddleAxis_TargetSpeed = FormUtil.GetIntValue(txtMSpeed);
boxBean.Config.InoutAxis_TargetSpeed = FormUtil.GetIntValue(txtISpeed);
boxBean.Config.UpdownAxis_TargetSpeed = FormUtil.GetIntValue(txtUSpeed);
boxBean.Config.MiddleAxis_AddSpeed = FormUtil.GetShortValue(txtMAtime);
boxBean.Config.InoutAxis_AddSpeed = FormUtil.GetShortValue(txtIAtime);
boxBean.Config.UpdownAxis_AddSpeed = FormUtil.GetShortValue(txtUAtime);
boxBean.Config.MiddleAxis_DelSpeed = FormUtil.GetShortValue(txtMDtime);
boxBean.Config.InoutAxis_DelSpeed = FormUtil.GetShortValue(txtIDtime);
boxBean.Config.UpdownAxis_DelSpeed = FormUtil.GetShortValue(txtUDtime);
boxBean.Config.MiddleAxis_ErrorCountMax = FormUtil.GetShortValue(txtMiddleMax);
boxBean.Config.UpdownAxis_ErrorCountMax = FormUtil.GetShortValue(txtUpdownMax);
boxBean.Config.InoutAxis_ErrorCountMax = FormUtil.GetShortValue(txtInoutMax);
boxBean.Config.MiddleAxis_ErrorCountMin = FormUtil.GetShortValue(txtMiddleMin);
boxBean.Config.UpdownAxis_ErrorCountMin = FormUtil.GetShortValue(txtUpdownMin);
boxBean.Config.InoutAxis_ErrorCountMin = FormUtil.GetShortValue(txtInoutMin);
boxBean.Config.MiddleAxis_ResolveSpeed = FormUtil.GetShortValue(txtMRSpeed);
boxBean.Config.InoutAxis_ResolveSpeed = FormUtil.GetShortValue(txtIRSpeed);
boxBean.Config.UpdownAxis_ResolveSpeed = FormUtil.GetShortValue(txtURSpeed);
//boxBean.Config.CompressAxis_StartSpeed = FormUtil.GetIntValue(txtBeginSpeed);
//boxBean.Config.CompressAxis_AddSpeed = FormUtil.GetIntValue(txtAddSpeed);
//boxBean.Config.CompressAxis_DelSpeed = FormUtil.GetIntValue(txtDelSpeed);
//boxBean.Config.CompressAxis_EndSpeed = FormUtil.GetIntValue(txtTargetSpeed);
//boxBean.Config.CompressAxis_MaxSpeed = FormUtil.GetIntValue(txtMaxSpeed);
//boxBean.Config.CompressAxis_TargetSpeed = FormUtil.GetIntValue(txtCSpeed);
//boxBean.Config.CompressAxis_AccelTime = FormUtil.GetShortValue(txtCAtime);
//boxBean.Config.CompressAxis_DecelTime = FormUtil.GetShortValue(txtCDtime);
//更新缓存
ACStoreManager.UpdateBoxConfig(boxBean.Config);
}
private void FrmAxisMoveConfig_Shown(object sender, EventArgs e)
{
SetSkin(this);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAA8AMDAQAAEABABoBgAA9gAAACgoEAABAAQAyAQAAF4HAAAgIBAAAQAEAOgCAAAmDAAAGBgQAAEA
BADoAQAADg8AABAQEAABAAQAKAEAAPYQAAAwMAAAAQAIAKgOAAAeEgAAKCgAAAEACACoCwAAxiAAACAg
AAABAAgAqAgAAG4sAAAYGAAAAQAIAMgGAAAWNQAAEBAAAAEACABoBQAA3jsAADAwAAABACAAqCUAAEZB
AAAoKAAAAQAgAGgaAADuZgAAICAAAAEAIACoEAAAVoEAABgYAAABACAAiAkAAP6RAAAQEAAAAQAgAGgE
AACGmwAAKAAAADAAAABgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACA
gACAAAAAgACAAICAAACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAAwMDAAP///wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAA/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAA
D///8AAAAAAAAAAAAAAAAAAAAAAAAAAE7////0AAAAAAAAAAAAAAAAAEZHZGBABP/////+AAQkJWZkAA
AAAAAAAG6+t3YAD///////8AB7brd2AAAAAAAAAHvtt0AA/////////kAEd77UAAAAAAAAAGt3ZgBO//
////////ACRnvlAAAAAAAAAHd0QAT///////////8EBHdmAAAAAAAAAEZ2QA////7uvb7v///kAkR0AA
AAAAAAAEdAAf///r69e+vb7///AAZ0AAAAAAAAAGUATv//vtvr2+t72+//9AB0AAAAAAAAAEAC///r6+
t76+vbe+7//gBCAAAAAAAAAABO//7t6+fX2+vre3vv//AAAAAAAAAAAAD///3r69t76+vb69vv//5AAA
AAAAAAAA///+vt5+3r7b69t723///wAAAAAAAAAP///3576+vre+vXvr23////AAAAAAAAD////73n19
7t6+vNvrdr7///8AAAAAAA7////t7r7ne+vtd9vr237////wAAAABP/////r7evt536+vr6+t7f////+
cAAAb//////r7r7evt7X1769vr3/////8AABD/////99fu5+7r7r7X6+t7f/////8AAAAP/////n7t7u
7Xfr6+vX233/////AAAAAA/////t7u7e7u3n7evr577////wAAAAAAD////+7u7u7t6+2+vr69////8A
AAAAAAAP///+3u7+7ufud33tt7////AAAAAAAAAA///+7u/u7e7evt6+vu///wAAAAAAAAAAD///7u7u
7u7N7r7evf//8AAAAAAAAAAEBP///u7u7ud9576+v//+QEAAAAAAAAAGcE7//u7u7t7r7efe7//wR0AA
AAAAAAAGe0D///7u7n5+fr6///8AfVAAAAAAAAALfXAP///u3n19vt7///BOt2AAAAAAAAAHd75A////
/u7u7v///kB3vrAAAAAAAAAE3rdwD///////////8ke+3kAAAAAAAAAE6+17ZP//////////AHvte3AA
AAAAAAAE6+vrcA/////////wRd63fVAAAAAAAAAG7XfXdgH///////8Aduvtd2AAAAAAAAAAVkdGVkAP
//////AGVkdGVgAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAA
AAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///////8AAP///n///wAA///8P///AAD///gf//8AAP//8A///wAA///gB///AAD8AAAAAD8AAPwA
AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/
AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPgAAAAAHwAA8AAAAAAPAADgAAAAAAcAAMAA
AAAAAwAAgAAAAAABAACAAAAAAAEAAMAAAAAAAwAA4AAAAAAHAADwAAAAAA8AAPgAAAAAHwAA/AAAAAA/
AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA
AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD//+AH//8AAP//8A///wAA///4H///
AAD///w///8AAP///n///wAA////////AAAoAAAAKAAAAFAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AADAwMAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF
cAAAAAAAAAAAAAAAAAAAAAAAAH/3AAAAAAAAAAAAAAAAAAAAAAAH//9wAAAAAAAAAAAAAAAAQAAAAH//
//cAAAAABAAAAAAABHt2VkAH/////3AFa3t2AAAAAAAAfXt2AH//////9wBGd9VAAAAAAAC3dkQH////
////cAR7dgAAAAAAAGezAH/////////3BGZ2AAAAAAAAdkQH///uvr3u//9wBWcAAAAAAABkAH//++2+
vVvu//cERgAAAAAAAAQH//7et9vr29vv/3AEAAAAAAAAAH//6+e+t7e+t77/9wAAAAAAAAAH//7r1313
fb69tu//cAAAAAAAAH///m53e+t7e3vr7//3AAAAAAAH///uvtftfX3r22u+//9wAAAAAH///+vte+vr
6+vr6+7///cAAAAH////3nfu3u3r3r69tv///nAAAH/////r7evr6+vre9e+////9wAAf////75+7u3u
fn3rfbf////3AAAH////7e7t7uvtvrvr6////3AAAAB////u3u7t7ud+3r2+///3AAAAAAf//+7u7u7u
ve2+d37//3AAAAAAAH///u7v7u7r7evbf//3AAAAAAAAB///7u/t7Xfuvn7v/3AAAAAAAABAf//u7u7u
frd9vv/3BAAAAAAAAHdH//7u7n5+3tfv/3C3QAAAAAAAvVB//+7u1+vr7v/3C3cAAAAAAAB9e0f//+7n
7e7//3B96wAAAAAAALfeYH/////////3C+vmAAAAAAAAfr63R////////3B9e+ZAAAAAAAC3fXdwf///
///3C3fetwAAAAAAAGdnt2QH/////3BHZ7dnAAAAAAAAAAAAAAB////3AAAAAAAAAAAAAAAAAAAAAAf/
/3AAAAAAAAAAAAAAAAAAAAAAAH/3AAAAAAAAAAAAAAAAAAAAAAAAB3AAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAD//+f//wAAAP//w///AAAA//+B//8A
AAD//wD//wAAAPgAAAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgA
AAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8AAADwAAAADwAAAOAAAAAHAAAAwAAAAAMA
AACAAAAAAQAAAIAAAAABAAAAwAAAAAMAAADgAAAABwAAAPAAAAAPAAAA+AAAAB8AAAD4AAAAHwAAAPgA
AAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8A
AAD4AAAAHwAAAP//AP//AAAA//+B//8AAAD//8P//wAAAP//5///AAAA//////8AAAAoAAAAIAAAAEAA
AAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICA
gAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AADAwMAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAG7gAAAAAAAAAAAAAAAAAADv/kAAAAAAAAAAAABARABO///gBARAAAAAAABH63tg
7////kZ3vrQAAAAAC+13Tv/////mt9dwAAAAAAfbdO///////gbr5AAAAABL5k7/7ut37v/iXXAAAAAA
DnDv/td729vv/kZ0AAAAAAZO/+vr6+vr6//lYAAAAAAA7/7r69t7e7v//gAAAAAATv/77efn13fbfv/k
AAAAAO//7ee+vbe9vr7//gAAAE7//+vt537uvr23///hAADv//933r7Xvbe3t////gAA7///5+7n7n7X
fXb///4AAA///+3u3u2+vr6+///mAAAA7//u7u7u7t69vv/+AAAAAA7//u/u7Xvr7c7/4AAAAAAA7/7u
7u7tfr3v/gAAAAAAB27/7+7ufuvu7+R0AAAAAEtw7/7u3r197/5GcAAAAAAO1U7//u7u7//gfrQAAAAA
S31w7//////+e11wAAAAAAfr607/////4WvtdAAAAABGd9dw7////kbm63AAAAAAAAQAAA7//+AABAAA
AAAAAAAAAAAA7/4AAAAAAAAAAAAAAAAAAA7nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA///////+f////D////gf//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AA
AAfAAAADgAAAAYAAAAHAAAAD4AAAB/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//4
H////D////5///////8oAAAAGAAAADAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gAAAgAAAAICAAIAAAACAAIAAgIAAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AADAwMAA////AAAA
AAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAf+cAAAAAAAAAQkYF7/9gBgYAAAAGvrdv///3vr5AAAAA
7mX/////R31AAAAAtl/+7r7v87cAAAAEd//b69vb/2dAAAAAT/7r6+vrf+cAAAAC/+vr7be3vv9wAAB/
/+3r5969vv/wAAf//33N6+t76///YAD//+3u5+3rt///cAB//+7u3te+3v/xAAAE//7u7u6+vv8gAAAA
f/7u7r197vYAAAAEZP/u7u6+/1ZAAAAA53/+7t7v925AAAAEt2H/////R74AAAAE7eZ////wft5AAAAA
BAQA//9wBAQAAAAAAAAAf/QAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAP//////5////8P//+AA
B//gAAf/4AAH/+AAB//gAAf/4AAH/+AAB//AAAP/gAAB/4AAAf/AAAP/4AAH/+AAB//gAAf/4AAH/+AA
B//gAAf/4AAH///D////5////////ygAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAMDA
wAD///8AAAAADnAAAAAAAADufgAAAAAFZH/+RkQAAG6+///k5AAARu/ut/d2AABO+9vr3+QAB+7u7b6+
9+Du/+2+vrf/537/7u7Xe/9+Dn/u7uvt/uAAR/7t6+/gAABn7u7u97YAAE5u///m5gAABlDv9wZQAAAA
AH7uAAAAAAAADnAAAAD+f////D///8AD///AA///wAP//8AD//+AAf//AAD//wAA//+AAf//wAP//8AD
///AA///wAP///w////+f///KAAAADAAAABgAAAAAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAEAgEABAQEAAgICAANDQ0AEQkGABISEgAUFBQAGRkZAB0dHQAnFg4AKBYOAC4aEQA9IhYAJSUlACws
LAAxMTEAODg4AD4+PgBFJxkAUy8fAFozIQBlOSUAcD8qAHJAKgB2QywAeUQtAEBAQABFRUUASEhIAFNT
UwBXV1cAXV1dAGFhYQBlZWUAampqAG5ubgBycnIAeHh4AH5+fgCHTDIAiEwyAMlTLgDLVTAAzVkzAMxZ
NADMXDoA0Fw2ANNgOADUYjoA1WQ8ANhnPgDYaD8AsWRCANVnQgDaaUAA3GxDANhrRADdbUQA3nBGANF2
TgDXclAA3ntXAOBxRgDhc0kA4XRKAON2TADkd00A5HhNAOh8TwDme1AA5nxSAOh9UQDpf1QA5IFVAOuA
UwDoglYA7IJVAOmCWADthlkA7IdcAO2IXQDwh1kA8ohZAPGKXADyjF8A9IxeAN2LbwDdi3AA3ZJ6AO6L
YADvjGIA8Y1hAPSOYQDxj2QA9JBiAPGRZgD0kmYA8pNoAPOWawD0lWoA9JZsAPSYbgDml3kA9ZpxAPWd
dQD2n3gA9aB5APaifQD2poEA9qeEAPeohAD3q4gA962LAPCqjgD3ro0A97CPAPexkAD3tZYA+LCQAPiz
lAD4tJYA+LaZAPi5nQDotKMA6LWmAPi7oAD4vaIA+b6kAPG/rAD5wKYA+cKqAPnFrQDsxbkA+cawAPnJ
tAD5zLcA+s25APrPvAD60L0A2traANzc2wDc3NwA+tTDAPrWxgD72McA+tfIAPvZyQD7280A+93PAPzd
zwD73dAA/OTZAP3p4AD46+cA++/pAPzw6wD98uwA/fbyAP39/QAAAAAALwMAAFAEAABwBgAAkAkAALAK
AADPDAAA8A4AAP8gEgD/PjEA/1xRAP96cQD/l5EA/7axAP/U0QD///8AAAAAAC8ADgBQABcAcAAhAJAA
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
AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvgA
AAAAHwAO8AAAAAAPAA7gAAAAAAcADsAAAAAAAwAOgAAAAAABAA6AAAAAAAEADsAAAAAAAwAO4AAAAAAH
AA7wAAAAAA8ADvgAAAAAHwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvwA
AAAAPwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/
AA7//+AH//8ADv//8A///wAO///4H///AA7///w///8ADv///n///wAO////////AA4oAAAAKAAAAFAA
AAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQAMBwQACgoKAA4ODgAcDwoAHBAKABAQ
EAAeHh4ALRkQACkpKQAuLi4AMDAwADY2NgA6OjoAPT09AEUnGQBjNyQAYzgkAGQ4JABtPSgAcT8pAHJA
KgBCQkIARkZGAElJSQBOTk4AV1dXAFlZWQBdXV0AYWFhAGVlZQBoaGgAbGxsAHl5eQB+fn4AiU0zAJBR
NQCYVjgAp14+AKlfPgCqYD8AyVMuAMlULwDMVzEAz1s1ANJfOADTYDkA1WQ8ANloPwCuYkAAsmRCALVm
QwC2ZkQAxW9JANVnQQDZaUAA3GxCANhrRADdbkQA0GlJAN9wRQDXc1IA335aAOBxRwDgckkA4nRJAON3
TADjeE4A5XlNAOF/UwDnfVIA4X9UAOd+VADpflEA6YFWAOyCVQDphFcA6oNYAOmEWQDthlgA7YleAPKI
WgD0ilsA8IpdAPKMXgDeknkA6YpjAO2LYADyjmEA9I5hAPCPZAD0kGMA8pFmAPSSZQDxkmgA9JNoAPOU
aQD0lWoA9JZsAPSYbgD0mnEA9ZxzAPWddQD2n3gA9aF7APWifAD2pH4A6Z+EAOCdiQD2pYEA9qmGAPar
iAD3ro0A97GRAPe0lgD4tpgA97ibAPi5ngD3u6EA97yiAPi7oAD4vaIA+b6kAPnApwD4w6sA+cStAO3G
uQD5xrAA+ciyAPnJtAD5zbgA+tC+APTOwAD608EA+dXFAPvZyQD72swA+9zNAPzi1gD86N8A/Pn3APr6
+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
AAAsAC8ASwBQAGkAcACHAJAApQCwAMQAzwDhAPAA8BH/APIx/wD0Uf8A9nH/APeR/wD5sf8A+9H/AP//
/wAAAAAAGwAvAC0AUAA/AHAAUgCQAGMAsAB2AM8AiADwAJkR/wCmMf8AtFH/AMJx/wDPkf8A3LH/AOvR
/wD///8AAAAAAAgALwAOAFAAFQBwABsAkAAhALAAJgDPACwA8AA+Ef8AWDH/AHFR/wCMcf8AppH/AL+x
/wDa0f8A////AAAAAAAAAAAXFwAAAAAAAAAAAAAAAAAXFxcXAAAAAAAAAAACAwMBFyQkFwEDAwIAAAAA
AxAFFyQkJCQXBRADAAAAAAMFFyIYCwgRIRcFAwAAAAABFyITDQwJBwYhFwEAAAAXFyQbExIPDAoHESQX
FwAXFyQkFRYWFA8MCggkJBcXFxckJBodHBkUDgwLJCQXFwAXFyQeIB8dFhINGCQXFwAAAAEXIyAgHRYT
EyIXAQAAAAADBBcjHhoVGyIXBQMAAAAAAxAEFyQkJCQXBRADAAAAAAIDAwEXJCQXAQMDAgAAAAAAAAAA
FxcXFwAAAAAAAAAAAAAAAAAXFwAAAAAAAAD+fwAA/D8AAMADAADAAwAAwAMAAMADAACAAQAAAAAAAAAA
AACAAQAAwAMAAMADAADAAwAAwAMAAPw/AAD+fwAAKAAAADAAAABgAAAAAQAgAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABAAAAAlAAAARgAAAHEAAACaAAAAvgAAAL4AAACaAAAAcAAA
AEYAAAAlAAAAEAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABAAA
AAUAAAAFAAAABgAAAAYAAAAGAAAABgAAAAYAAAALAAAAFQAAACoAAABKAAAAdAAAAKIAAADNAAAA+gAA
APoAAADNAAAAogAAAHQAAABKAAAAKQAAABUAAAAKAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAA
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
Qf+HTDL/WzMh/y4aEf8DAgH/HR0d/9ra2f/9/f3//v79//39/f/+/v3//v79//7+/f/9/f3//f39//7+
/f/+/v3//f39//7+/v/+/v3//f39//39/f/9/f3/2NjY/xwcG/8EAgH/LhoR/1szIf+ITDL/sWRB/9F2
Tv9wPyn/AAAA/wAAAL4AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAHAAA
AP9lOSX/sGRB/4ZLMf9aMiH/LhoR/wMCAf8fHx//2tra//7+/f/+/v7//v79//7+/f/77ej/8L+r/+aW
ef/ee1f/2GtE/9VnQf/XcU//3Ipv/+i0o//46eX//f39//7+/f/9/f3//v7+/9jY2P8dHR3/AwIB/y4Z
EP9aMiH/hkwx/7FkQf9lOSX/AAAA/wAAAL8AAACAAAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAAALAAAAJgAAAP9TLx7/h0wx/1oyIf8uGhD/BAIB/x8fH//Z2dn//v7+//7+/v/+/v7//O/q/++q
jv/keE7/4HFG/91tQ//aakD/2GY+/9VjO//SXzj/0Fw1/81ZMv/MWjX/3ZF6//jq5v/+/v3//v7+//7+
/v/Y2Nf/HR0d/wMCAf8uGRD/WjIh/4dMMv9TLx//AAAA/wAAAMEAAACCAAAAQgAAABgAAAAGAAAAAAAA
AAAAAAAAAAAAAQAAAAUAAAAVAAAAOAAAAP89Ihb/WjMh/y4aEf8EAgH/HR0d/9ra2v/+/v7//v79//7+
/f/51sb/7Ihd/+h8T//leUz/4nVJ/+BxR//dbkT/2mtB/9hnP//VYzz/0l85/9BcNf/NWTL/ylUw/8xd
O//sxLj//v7+//7+/v/+/v7/2NjY/xwcG/8DAgH/LhkQ/1ozIf89Ihb/AAAA/wAAAMYAAACHAAAARQAA
ABkAAAAGAAAAAAAAAAAAAAABAAAABQAAABAAAAAqAAAAVwAAAP8nFg7/LhoR/wMCAf8fHx//2tra//7+
/v/+/v7//v79//rNuf/wh1n/7YNV/+qAU//ofVD/5XlO/+N2S//hckj/3m9F/9trQv/YZz//1WQ8/9Jf
Of/QXDb/zVkz/8pVL//JUy//57Sk//7+/v/+/v7//v7+/9jY2P8eHh3/AwIB/y4aEf8nFg7/AAAA/wAA
AM8AAACRAAAATAAAABwAAAAGAAAAAAAAAAEAAAAFAAAADwAAACUAAABJAAAAfgAAAP8QCQX/BAIB/x8f
H//Z2dn//f39//39/f/+/v3/+9jI//SMXf/yilv/74dZ/+2FV//rglX/6H5S/+Z7T//jd0z/4XNJ/95w
Rv/ba0P/2Gc//9VkPP/TYDn/0Fw2/81ZM//KVTD/yVMv/+zEuP/+/v3//v79//39/f/X19f/Hh4d/wQC
Af8QCQX/AAAA/wAAANoAAAChAAAAXAAAACYAAAAKAAAAAQAAAAUAAAAPAAAAJAAAAEYAAAB0AAAAqAAA
AP8AAAD/HR0d/9ra2v/+/v7//v79//7+/f/98ev/9JNo//OMXv/zjV7/8o1f//GKXf/uhlr/64NX/+l/
VP/me1D/5HhN/+FzSv/ecEb/22xD/9hnP//WZDz/02A5/9BcNv/NWTP/ylUw/8xdO//46ub//v7+//39
/f/+/v3/2NjY/xwcHP8AAAD/AAAA/wAAAOYAAAC3AAAAdAAAADgAAAAVAAAABQAAAA8AAAAkAAAARgAA
AHIAAACiAAAA0gAAAP8fHx//2trZ//39/f/9/f3//f39//7+/f/4t5n/841f//SOYP/0j2L/9I9i//OP
Yv/xjF//7ohc/+yEWf/pgFX/5nxS/+R4Tv/hdEr/3nBG/9tsQ//ZaED/1mQ8/9NgOf/QXDb/zVkz/8tV
MP/dkXr//v39//39/f/9/f3//v79/9jY2P8eHh7/AAAA/wAAAPEAAADPAAAAlQAAAFYAAAApAAAADwAA
ACAAAABCAAAAbwAAAKAAAADPAAAA+x8fH//Z2dn//v79//7+/f/+/v3//v79//3x6//0kWT/849h//SR
ZP/0kmX/9JJm//STZv/zkWX/8Y1i/+6JXv/shlr/6YFW/+Z9Uv/jeU7/4XRK/95wR//bbEP/2WhA/9Zk
PP/TYDn/0Fw2/81ZMv/MWTX/+Orl//39/f/+/v3//v79//39/f/X19f/Hh4e/wAAAP4AAADlAAAAtwAA
AHwAAABGAAAAIAAAADQAAABjAAAAmAAAAMwAAAD6HR0d/9ra2v/+/v7//v79//7+/v/+/v7//v7+//rN
uP/0kGL/9JJl//SUaP/0lWr/9JVr//SWa//0lWr/85No//GPZP/ui2D/64dc/+mCV//mfVP/43lO/+B0
Sv/ecEf/22xD/9loQP/WZDz/0mA5/9BcNf/NWTL/6LSj//7+/v/+/v7//v7+//7+/v/+/v7/2NjY/xwc
HP8AAAD8AAAA2AAAAKAAAABmAAAANQAAAEMAAAB5AAAAugAAAPofHx/+2tra//7+/v/+/v7//v7+//7+
/v/+/v7//v7+//ixkf/0k2f/9JZr//WYb//1mnH/9Zpx//Wacf/1mXD/9Jhv//SWbP/xkWf/74xi/+yH
Xf/pglj/5n1T/+N5T//hdEr/3nBH/9xsQ//ZaD//1WQ8/9JfOf/QXDX/3Ypv//7+/f/+/v7//v7+//7+
/v/+/v7//f39/9jY2P8dHR3/AAAA+wAAAL8AAAB7AAAAQwAAAEEAAACNAAAA9h8fH//Z2dn//v7+//39
/f/9/f3//v7+//7+/f/+/v7//v7+//ahe//0lmz/9Ztx//Wedv/1n3j/9aB5//Wgef/1n3j/9Z11//Wb
cv/0mG7/8pJp/++NY//siF3/6YJY/+Z9U//jeU7/4XRK/95wRv/bbEP/2Gc//9VjPP/SXzj/13JQ//7+
/f/+/v7//v7+//7+/v/+/v7//f39//39/f/X19f/HR0d/wAAAPYAAACOAAAAQQAAAFQAAADvHR0d/9ra
2v/9/f3//v7+//39/f/9/f3//f39//39/f/+/v3//f39//Wbcv/1m3L/9aB5//akf//2poL/9qeD//an
g//2pYH/9aN9//Wgef/1nXX/9Jlw//KTaf/vjWL/64dc/+iBV//mfVL/43hO/+FzSf/eb0b/22tC/9dn
Pv/VYzv/1WdB//39/f/+/v3//v79//39/f/9/f3//f39//39/f/9/f3/2NjY/xwcHP8AAADvAAAAVAAA
AEMAAADrHh4e/tvb2//+/v7//v7+//7+/v/+/v3//v7+//7+/v/+/v7//v79//aed//1oHn/9qeD//es
iv/3r47/97CQ//ewkP/3roz/9qqI//angv/2onz/9Z52//SZcP/ykmj/7oxh/+uHXP/pgVb/5nxS/+R4
Tf/hc0n/3m9G/9prQf/YZj7/2GtE//7+/f/+/v3//v79//7+/v/+/v7//f39//7+/v/9/f3/2tra/x0d
Hf4AAADqAAAAQQAAAAwAAABGAAAA6yAgIP7a2tr//v7+//39/f/9/f3//v79//7+/f/+/v7//f39//eq
iP/2pYH/966N//i1l//4uJz/+Lqe//i6nf/4t5n/97KT//etjP/2p4T/9aJ8//Wddf/0l27/8ZFm/+6L
YP/rhVr/6YBV/+Z7UP/kd0z/4XJI/91uRP/aakD/3ntX//39/f/+/v3//v79//7+/f/+/v3//f39//39
/f/Z2dn/Hx8f/gAAAOsAAABIAAAADAAAAAMAAAAMAAAARQAAAO0gICD+29vb//39/f/9/f3//v79//7+
/f/+/v3//v79//i9ov/2qoj/97WX//i+o//4wqr/+cSt//nEq//4wKf/+Luf//e0lv/3rYz/9qaC//Wg
ef/1m3L/85Vr//CPZP/uiV7/64RY/+l/U//me0//43ZL/99xRv/dbUP/5pZ5//7+/f/+/v3//v79//7+
/f/+/v3//f39/9nZ2f8fHx//AAAA7wAAAFQAAAASAAAABAAAAAAAAAADAAAADAAAAEUAAADrHh4e/tvb
2//+/v7//v7+//7+/v/+/v7//v79//vXx//3r47/+Lyg//nGr//5zLj/+s+7//nNuf/5ybP/+MOr//i7
oP/3s5T/9qqI//ajfv/1nXX/9Jhu//OTaP/wjWL/7ohc/+uDV//pflL/5XlO/+J1Sf/gcUb/8b+r//7+
/f/+/v3//v79//7+/v/+/v7/2tra/x0dHf8AAADzAAAAcQAAACMAAAAJAAAAAQAAAAAAAAAAAAAAAwAA
AA0AAABJAAAA7CAgIP/a2tr//v79//7+/f/+/v3//v79//308P/4tJb/+MCm//nMuP/61MP/+tfH//rW
xf/60b7/+cm0//jAp//4t5r/966N//amgf/1n3j/9Zlw//SVav/zkWX/8Yxf/+6HWv/rglX/6H1Q/+V4
TP/keE7/++3o//39/f/+/v3//v7+//7+/f/Z2dn/Hx8f/wAAAPgAAACeAAAASgAAABsAAAAGAAAAAAAA
AAAAAAAAAAAAAAAAAAQAAAASAAAAVQAAAP8gICD/29vb//7+/f/+/v3//f39//7+/f/60L3/+MCn//rO
u//62Mn/+9zP//vbzf/61sX/+c25//nErP/4up7/97CQ//eng//2oHn/9Zpx//WWa//0k2b/9I9i//GK
Xf/uhVj/64BT/+h8T//vqo3//v79//39/f/9/f3//v7+/9ra2v8fHx//AAAA/wAAAMwAAACFAAAARAAA
ABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAJAAAAIwAAAP8AAAD/Hh4e/9vb2//+/v7//v79//7+
/v/99vL/+cOq//nLt//618f/+93P//vcz//618f/+s+7//nFrf/4up7/97CQ//enhP/1oHn/9Zpx//SV
a//0kmb/9JBj//ONX//wiFr/7YNV/+yIXf/87+r//v7+//7+/f/+/v3/2tra/x0dHf8AAAD/AAAA/wAA
AMEAAACBAAAAQgAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGwAAAP9EJhn/EgoG/yAg
IP/a2tr//v7+//7+/v/+/v7//Ong//nFrv/50L3/+tfH//vYyf/61MP/+cy4//nDq//4uZz/96+P//an
g//1oHn/9Zpw//SVav/0kmX/9I9i//ONX//yi1z/8IdZ//nWxv/+/v7//v7+//7+/f/Z2dn/Hx8f/xMK
B/9FJxn/AAAA/wAAAL4AAACAAAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAA
AP9yQCr/sWRB/xEJBv8gICD/29vb//7+/f/+/v7//v7+//zj2P/4xa7/+cu3//nOu//5zLj/+cav//i+
pP/3tZf/9qyK//akf//1nnb/9Zhu//SUaP/0kWP/9I5g//OMXf/zjF7/+s25//7+/f/+/v7//v79/9ra
2f8fHx//EQoG/7JlQv9yQCr/AAAA/wAAAL4AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAGAAAAGAAAAP93Qyz/6INW/7FkQf8SCgb/Hh4e/9vb2//+/v7//v7+//7+/v/86eD/+cKq//jA
p//4v6b/+Lug//e1mP/3ro3/9qeD//Wgev/1mnH/9JVq//SSZf/0j2H/841f//WUaP/72Mj//v7+//7+
/v/+/v7/2tra/x0dHf8TCwf/smVC/+iCVv93Qyz/AAAA/wAAAL4AAAB/AAAAQQAAABgAAAAGAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAAAP95RC3/8IdZ/+eCVv+wY0H/EgoG/yAgIP/a2tr//v7+//7+
/f/+/v7//fby//rQvf/3tJX/9q6O//aqiP/2pYH/9aB5//Wbcv/0lmz/9JJm//SPYv/0kWT/+LeZ//3x
6//+/v3//v7+//7+/v/Z2dn/IB8f/xMLB/+yZEL/54JW//CHWf95RC3/AAAA/wAAAL4AAAB/AAAAQQAA
ABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAAAP96RS3/84la//CHWf/nglb/sWRB/xEK
Bv8gICD/29vb//7+/f/+/v7//v7+//7+/f/99PD/+9fH//m+o//3q4j/9p53//Wbcv/2oXv/+LGR//rN
uP/98ev//v79//7+/f/9/f3//v7+/9ra2v8gIB//EgoG/7JlQv/nglb/8IdZ//OJWv95RC3/AAAA/wAA
AL4AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAAAP96RS3/84la//OJ
Wv/wh1n/6INW/7FkQf8SCgb/Hh4e/9vb2//+/v7//v79//39/f/+/v3//v79//7+/f/9/f3//v79//39
/f/+/v7//v7+//7+/v/+/v3//f39//7+/f/9/f3/2tra/x0dHf8TCgf/smVC/+iCVv/wh1n/84la//OJ
Wv95RC3/AAAA/wAAAL0AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAA
AP96RS3/84la//OJWv/ziVr/8IdZ/+eCVv+wY0H/EgoG/yAgIP/a2tr//v7+//39/f/+/v3//v7+//7+
/f/+/v7//v7+//7+/f/+/v7//v7+//7+/v/+/v3//f39//7+/v/Z2dn/Hx8f/xMKB/+yZEL/54JW//CH
Wf/ziVr/84la//OJWv95RC3/AAAA/wAAALkAAAB9AAAAQAAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAFAAAAFgAAAP96RS3/84la//OJWv/ziVr/84la//CHWf/nglb/sWRB/xEJBv8gICD/29vb//7+
/f/+/v3//v7+//7+/f/+/v3//v7+//39/f/+/v3//v79//7+/v/+/v7//f39/9ra2v8gHx//EQoG/7Jl
Qv/nglb/8IdZ//OJWv/ziVr/84la//OJWv95RC3/AAAA/wAAAKwAAABzAAAAOwAAABYAAAAFAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAEAAAAEgAAAP96RS3/84la//OJWv/ziVr/84la//OJWv/wh1n/6INW/7Fk
Qf8SCgb/Hh4e/9vb2//+/v3//v79//7+/f/+/v3//v79//39/f/+/v7//v79//7+/v/+/v3/2trZ/x0d
Hf8TCwf/smVC/+iCVv/wh1n/84la//OJWv/ziVr/84la//OJWv95RC3/AAAA/wAAAI0AAABfAAAAMQAA
ABIAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAADAAAAP89Ihb/ekUt/3pFLf96RS3/ekUt/3pF
Lf95RC3/d0Ms/3JAKv9EJhn/AAAA/yAgIP/a2tr//v7+//39/f/9/f3//v79//39/f/+/v3//v7+//7+
/v/Z2dn/Hx8f/wAAAP9FJxn/ckAq/3dDLP95RC3/eUQt/3lELf95RC3/eUQt/3lELf88Ihb/AAAA/wAA
AF8AAABAAAAAIQAAAAwAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABgAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8gICD/29vb//39/f/9/f3//v7+//39
/f/9/f3//v7+/9ra2v8fHx//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAADEAAAAhAAAAEQAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA
AAYAAAAMAAAAEgAAABYAAAAXAAAAGAAAABgAAAAYAAAAGAAAABgAAAAbAAAAIwAAAFUAAADsHh4e/tvb
2//+/v7//v7+//7+/v/+/v7/2tra/h0dHf8AAADrAAAAVAAAACMAAAAbAAAAGAAAABgAAAAYAAAAGAAA
ABgAAAAYAAAAGAAAABgAAAAXAAAAFgAAABIAAAAMAAAABgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAUAAAAFAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAACQAA
ABIAAABJAAAA6yAgIP7a2tr//v7+//39/f/Z2dn/Hx8f/gAAAOoAAABIAAAAEgAAAAkAAAAGAAAABgAA
AAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAFAAAABQAAAAQAAAADAAAAAQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAQAAAAQAAAANAAAARQAAAO0gICD+29vb/tra2v4fHx/+AAAA7AAAAEQAAAANAAAABAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAADAAAAEIAAADqHh4e/h0dHf4AAADpAAAAQQAA
AAwAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAkAAAA9AAAA6QAA
AOgAAAA7AAAACQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAIAAAAFAAAANAAAADMAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAO/AAAAAAH
AA74AAAAAAMADvAAAAAAAQAO8AAAAAABAA7wAAAAAAEADvAAAAAAAQAO8AAAAAABAA7wAAAAAAEADvAA
AAAAAQAO8AAAAAABAA7wAAAAAAEADvAAAAAAAQAO4AAAAAABAA7AAAAAAAEADoAAAAAAAQAOAAAAAAAA
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
/f/9/f3//f39//39/f/9/f3//f39//7+/f/9/f3//f39//r6+v9lZWX/AgEB/y4aEP9kOCX/mVY4/8Vv
Sf+nXj7/AAAA/wAAALgAAABsAAAAKgAAAAoAAAABAAAAAAAAAAAAAAAAAAAABAAAABoAAAD/kFE1/5hW
OP9jNyT/LRkQ/wIBAf9oaGj/+/v7//7+/v/+/v3//fr4//TOwP/pn4T/335a/9hrRP/VZ0H/13NS/96S
ef/txbj//Pn3//7+/f/9/f3/+/v7/2VlZf8CAQH/LRkQ/2M3JP+YVjj/kFE1/wAAAP8AAAC5AAAAbAAA
ACoAAAAKAAAAAQAAAAAAAAAAAAAAAQAAAAkAAAAnAAAA/209KP9jOCT/LRkQ/wIBAf9oaGj/+/v7//7+
/f/+/v7/+NXG/+qKY//idUn/33BF/9xsQv/ZaD//1mQ8/9JfOP/PWzX/zFcx/9BpSf/tx7v//v79//7+
/v/7+/v/ZWVl/wIBAP8tGRD/Yzgk/209KP8AAAD/AAAAvQAAAG4AAAAqAAAACgAAAAEAAAAAAAAAAQAA
AAUAAAAXAAAAQgAAAP9FJxn/LRkQ/wIBAf9nZ2f//Pz8//7+/v/9/Pz/97uh/+yCVP/pfVD/5XpN/+J1
Sv/gcUf/3W1E/9lpQP/VZDz/0l85/89bNf/MVzH/yVMv/+Cdif/9/Pz//v7+//v7+/9lZWX/AgEB/y0Z
EP9FJxn/AAAA/wAAAMQAAAB2AAAALgAAAAoAAAABAAAAAAAAAAUAAAATAAAAMwAAAGwAAAD/HBAK/wIB
Af9oaGj/+/v7//7+/f/+/v3/+b6k//KKW//vhlj/7INW/+l/U//me0//43dM/+BySP/dbkX/2WlA/9Zl
PP/TYDn/z1s1/8xXMf/JUy7/4J2J//7+/f/+/v3/+/v6/2ZmZf8CAQH/HBAK/wAAAP8AAADRAAAAhwAA
ADkAAAAOAAAAAQAAAAUAAAATAAAAMAAAAGEAAACeAAAA/wAAAP9nZ2f/+/v7//7+/f/+/v3/+9rK//OM
Xv/zjF7/8oxe//CJXP/thVj/6YBV/+d8Uf/keE3/4HNJ/91uRf/aaUH/1mU9/9NgOf/PWzb/zFcx/8lU
L//tx7v//v79//39/f/7+/v/ZWVl/wAAAP8AAAD/AAAA4AAAAKEAAABSAAAAHAAAAAUAAAASAAAAMAAA
AGAAAACZAAAA0gAAAP9oaGj/+/v7//39/f/9/f3//fv5//Wcc//zjmD/9I9h//SPY//zj2L/8Itf/+2H
W//qglf/531S/+R4Tv/gc0r/3W9F/9pqQf/WZT3/02A5/89bNv/MVzH/0GlJ//z59//9/f3//v79//v7
+/9lZWX/AAAA/wAAAPAAAADCAAAAeQAAADgAAAATAAAAKgAAAFoAAACVAAAAzwAAAPxoaGj/+/v7//7+
/v/+/v7//v79//vYyP/0j2H/9JFk//SSZv/0k2f/9JNo//OSZv/wjWL/7Yhd/+qDWP/nflP/43hO/+Bz
Sv/dbkX/2mpB/9ZlPf/TYDn/z1s1/8xXMf/txbj//f39//7+/v/+/v3/+/v6/2VlZf8AAAD+AAAA4QAA
AKUAAABgAAAAKgAAAEIAAACBAAAAxwAAAPxnZ2f/+/v7//7+/v/+/v7//v7+//7+/v/4tpj/9JJl//SV
av/0l23/9Jhu//WYbv/0l23/85Rq//CPZf/til//6oRZ/+d+VP/jeU7/4HNK/91vRf/aaUH/1mU9/9Jf
Of/PWzX/35J5//7+/f/+/v7//v7+//7+/v/7+/v/ZWVl/wAAAP0AAADOAAAAhQAAAEIAAABIAAAAoAAA
APpoaGj/+/v7//7+/v/+/v3//v7+//7+/v/+/v7/9qJ8//SWbP/1m3L/9Z11//Wed//1nnf/9Z11//Wb
cv/0l27/8ZFn/+6LYP/qhFr/535U/+N5T//gc0r/3W5F/9ppQf/WZDz/0l84/9dzUv/9/f3//v7+//7+
/v/+/v7//f39//v7+/9lZWX/AAAA+wAAAKMAAABIAAAAYQAAAPRnZ2f/+/v7//7+/v/9/f3//f39//39
/f/+/v3//f39//Wacv/1nHT/9aJ8//algP/2poL/9qaC//akf//1oXv/9Z12//SZb//xkmj/7Ytg/+mE
Wf/nflP/43hO/+BzSf/dbkX/2WlA/9VkPP/VZ0H//f39//7+/f/9/f3//f39//39/f/9/f3/+vr6/2Vl
Zf8AAAD0AAAAYQAAAEwAAADxaGho/vv7+//+/v7//v7+//7+/f/+/v7//v7+//7+/f/2n3j/9qN9//ar
iP/3r4//97GR//exkf/3roz/9qmG//akf//1n3f/9Jlw//GRZ//til//6oNY/+d9Uv/keE3/4XJJ/91t
RP/ZaD//2GtE//39/f/+/v3//v79//7+/v/9/f3//v7+//v7+/9nZ2f+AAAA8AAAAEsAAAAKAAAATgAA
APFpaWn++/v7//39/f/9/f3//v7+//7+/f/9/f3/962M//aqh//3tJb/+Lqf//i9ov/4vKH/97ib//ey
k//2q4n/9qR+//Wddf/0l23/8I9k/+2IXf/qglf/53xR/+N3TP/fcUf/3GxC/99+Wv/9/f3//v79//7+
/f/+/v3//f39//v7+/9oaGj+AAAA8gAAAFIAAAALAAAAAgAAAAoAAABOAAAA8WhoaP78/Pz//f39//7+
/v/+/v3//v79//nErP/3sJD/+L6j//nGr//5ybT/+ciy//jDq//4u6D/97KT//aphv/1oXv/9Zpx//OU
af/wjWH/7Ydb/+qAVf/ne0//4nVK/99wRf/pn4T//f39//7+/f/+/v3//v7+//v7+/9nZ2f/AAAA9QAA
AGcAAAATAAAAAwAAAAAAAAACAAAACgAAAFAAAADxaWlp//v7+//+/v3//v7+//7+/f/84tb/97WX//nF
rv/60L7/+tXE//rTwf/5zbj/+MOr//i4nP/3ro3/9qR///WddP/0l2z/85Jm//CLX//thVj/6n9T/+Z6
Tv/idEj/9M/A//39/f/+/v7//v79//v7+/9oaGj/AAAA+QAAAJMAAAAyAAAADAAAAAEAAAAAAAAAAAAA
AAIAAAAOAAAAWwAAAP9paWn//Pz8//7+/f/+/v3//fv6//nBp//5x7H/+tbF//vczv/72sz/+tPB//nI
sv/5vaL/97GR//amgv/2nnf/9Zhu//STaP/zj2P/8Ilc/+yDVv/pflH/6Ypj//36+P/9/f3//v79//v7
+/9oaGj/AAAA/wAAAMkAAABxAAAAKwAAAAoAAAABAAAAAAAAAAAAAAAAAAAABQAAAB8AAAD/AQAA/2ho
aP/7+/v//v79//7+/v/86N//+cSt//rTwv/73M7/+9zO//rVxP/5yrT/+L2j//exkf/2p4P/9Z53//WY
bv/0k2f/9JBj//KNXv/vh1n/7IJU//jVx//+/v3//v79//v7+/9nZ2f/AQEA/wAAAP8AAAC6AAAAbQAA
ACoAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAXAAAA/3E/Kf8MBwT/aWlp//v7+//+/v7//v7+//vc
zv/5yrT/+tPC//rWxf/60L7/+caw//i7n//3r4//9qWB//Wddf/0l23/9JNm//SPYv/zjV7/8opb//e8
ov/+/v7//v7+//v7+/9oaGj/DQcF/3JAKv8AAAD/AAAAuAAAAGwAAAAqAAAACgAAAAEAAAAAAAAAAAAA
AAAAAAADAAAAFgAAAP+uYkD/qV8+/wwHBP9oaGj//Pz8//7+/v/9/fz/+9zN//nErf/5x7H/+cWu//i+
o//3tJb/9quI//aifP/1mnL/9JVp//SRZP/0jmD/84xe//m+pP/9/Pz//v7+//z8+/9nZ2f/DQcF/6pg
P/+uYkD/AAAA/wAAALgAAABsAAAAKgAAAAoAAAABAAAAAAAAAAAAAAAAAAAAAwAAABYAAAD/tWZD/+mE
V/+pXz7/DQcE/2lpaf/7+/v//v79//7+/v/86N//+cCn//e1l//3sJD/9qqH//Wjff/1nHT/9JZr//SR
Zf/zjmD/9Ztz//vayv/+/v3//v7+//v7+/9oaGj/DQcF/6pgP//phFf/tWZD/wAAAP8AAAC4AAAAbAAA
ACoAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAWAAAA/7ZnRP/xiFr/6YRX/6lfPv8MBwT/aWlp//z8
/P/+/v7//v7+//77+v/84tb/+cSs//eujP/2n3j/9Zty//aifP/4tpj/+9jI//36+f/+/v3//f39//z8
/P9oaGj/DAcE/6pgP//pg1f/8Yha/7ZnRP8AAAD/AAAAuAAAAGwAAAAqAAAACgAAAAEAAAAAAAAAAAAA
AAAAAAADAAAAFgAAAP+3Z0T/84la//GIWv/qhFf/qV8+/w0HBP9oaGj/+/v7//7+/f/9/f3//v79//7+
/f/9/f3//v79//39/f/+/v7//v7+//7+/v/9/f3//v79//v7+/9nZ2f/DQcE/6pgP//qhFf/8Yha//OJ
Wv+3Z0T/AAAA/wAAALcAAABrAAAAKgAAAAoAAAABAAAAAAAAAAAAAAAAAAAAAwAAABUAAAD/t2dE//SK
W//ziVv/8Yha/+mEV/+pXz7/DAcE/2lpaf/7+/v//f39//7+/v/+/v3//v79//7+/v/+/v3//v7+//7+
/v/+/v7//f39//v7+/9oaGj/DQcE/6pgP//pg1f/8Yha//OJWv/ziVr/t2dE/wAAAP8AAACxAAAAaAAA
ACgAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAASAAAA/7dnRP/0ilv/9Ipb//OJWv/xiFr/6YRX/6lf
Pv8MBwT/aGho//z8/P/+/v3//v7+//7+/f/+/v7//f39//7+/v/+/v7//v7+//v7+/9nZ2f/DQcE/6pg
P//phFf/8Yha//OJWv/ziVr/84la/7dnRP8AAAD/AAAAmgAAAFoAAAAjAAAACAAAAAEAAAAAAAAAAAAA
AAAAAAACAAAADQAAAP+JTTP/t2dE/7dnRP+3Z0T/tmdE/7VmQ/+uYkD/cT8p/wEAAP9paWn/+/v7//7+
/f/9/f3//v79//39/f/+/v7//v79//v7+/9oaGj/AQAA/3JAKv+uYkD/tWZD/7ZnRP+2Z0T/tmdE/7Zn
RP+JTTP/AAAA/wAAAGoAAAA+AAAAGAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAYAAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2lpaf/8/Pz//f39//7+/v/9/f3//v7+//v7
+/9oaGj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAzAAAAHgAA
AAwAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABgAAAA0AAAASAAAAFQAAABYAAAAWAAAAFgAA
ABYAAAAXAAAAHwAAAFoAAADxaGho/vv7+//+/v7//f39//v7+/9nZ2f+AAAA8QAAAFkAAAAfAAAAFwAA
ABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABUAAAAUAAAAEAAAAAkAAAADAAAAAQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAUAAAAOAAAAUAAA
APFpaWn++/v7//v7+/9oaGj+AAAA8AAAAE8AAAAOAAAABQAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA
AAMAAAADAAAAAwAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAoAAABNAAAA8WhoaP5nZ2f+AAAA8AAA
AEsAAAAKAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAACAAAACQAAAEgAAADwAAAA7wAAAEYAAAAJAAAAAgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAAAFAAAAPwAAAD0AAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/gAAAA//AA7wAAAAA/8ADvAAAAAB/wAO4AAAAAH/
AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAD/AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAD/AA7gAAAAAP8ADsAA
AAAA/wAOgAAAAAD/AA6AAAAAAP8ADgAAAAAA/wAOAAAAAAD/AA4AAAAAAP8ADgAAAAAA/wAOAAAAAAD/
AA4AAAAAAP8ADgAAAAAA/wAOAAAAAAD/AA4AAAAAAP8ADoAAAAAA/wAOwAAAAAD/AA7gAAAAAP8ADuAA
AAAA/wAO4AAAAAD/AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAD/AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAH/
AA7gAAAAAf8ADvAAAAAB/wAO+AAAAAf/AA7//gB///8ADv//AP///wAO//+B////AA4oAAAAIAAAAEAA
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAA
AAEAAAABAAAAAQAAAAIAAAAHAAAAGwAAAEgAAACIAAAAxQAAAMUAAACHAAAARwAAABsAAAAHAAAAAgAA
AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABgAA
AA0AAAARAAAAEwAAABMAAAATAAAAGAAAACoAAABUAAAAkQAAANINDQ39DAwM/QAAANIAAACQAAAAUwAA
ACoAAAAYAAAAEwAAABMAAAATAAAAEwAAABMAAAARAAAADQAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAA
AAYAAAAZAAAANwAAAEoAAABQAAAAUAAAAFQAAABhAAAAfwAAAKwAAADcDQ0N/cLCwv/BwcH/DAwM/QAA
ANwAAACsAAAAfwAAAGEAAABUAAAAUAAAAFAAAABQAAAAUAAAAEoAAAA3AAAAGQAAAAYAAAAAAAAAAAAA
AAAAAAABAAAADQAAADcAAAB4AAAAogAAAK4AAACwAAAAtgAAAMMAAADYAAAA7g0NDf7CwsL//f39//39
/f/BwcH/DAwM/gAAAO4AAADYAAAAwwAAALYAAACwAAAArwAAAK8AAACuAAAAogAAAHgAAAA3AAAADQAA
AAEAAAAAAAAAAAAAAAEAAAARAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8NDQ3/wsLC//39
/f/9/f3//f39//39/f/BwcH/DAwM/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAA
AEoAAAARAAAAAQAAAAAAAAAAAAAAAQAAABMAAAD/84la/+6GWP/be1H/r2NB/3A/Kf8tGRD/Dg4N/8PD
wv/+/v3//v79//7+/f/9/f3//v7+//7+/v/BwcH/Dg0N/y0ZEP9wPyn/sGNB/9t8Uf/uhlj/84la/wAA
AP8AAACuAAAAUAAAABMAAAABAAAAAAAAAAAAAAABAAAAEwAAAP/uhlj/23tR/7BjQf9wPyn/LRkQ/w4O
Df/Dw8P//v7+//7+/f/+/v3//v79//39/f/+/v7//v7+//39/f/BwcH/Dg0M/y0ZEP9xPyn/sGNB/9t8
Uf/uhlj/AAAA/wAAAK8AAABQAAAAEwAAAAEAAAAAAAAAAAAAAAEAAAATAAAA/9t8Uf+wY0H/cUAp/y0Z
EP8ODg3/w8PC//7+/f/9/f3//v79//7+/f/9/f3//f39//7+/f/+/v3//f39//39/f/BwcH/Dg0N/y0Z
EP9xQCr/sGNB/9t8Uf8AAAD/AAAArwAAAFAAAAATAAAAAQAAAAAAAAAAAAAAAgAAABgAAAD/r2NB/3A/
Kf8tGRD/Dg4N/8PDw//+/v7//v79//nm3v/trZT/4YNh/9lrRP/VZkD/13ZW/+GeiP/14Nn//v79//7+
/f/BwcH/Dg0N/y0ZEP9wPyn/sGNB/wAAAP8AAACwAAAAUAAAABMAAAABAAAAAAAAAAAAAAAHAAAAKgAA
AP9wPyn/LRkQ/w4ODf/Dw8P//v7+//36+P/ztZr/53tO/+J1Sf/ecEX/22tB/9ZlPf/SXzn/zlo0/8tW
Mf/fmYT//Pn3//7+/v/BwcH/Dg0M/y0ZEP9wPyn/AAAA/wAAALYAAABUAAAAEwAAAAEAAAAAAAAABQAA
ABsAAABUAAAA/y0ZEP8ODg3/w8PC//7+/v/9+vn/9qiG/+6FV//qgFP/53tQ/+N2S//fcUf/22tC/9dm
Pf/SYDn/zlo0/8pVL//Xf2T//Pn3//7+/f/BwcH/Dg0M/y0ZEP8AAAD/AAAAwwAAAGEAAAAYAAAAAgAA
AAUAAAAZAAAARwAAAJAAAAD/Dg4N/8PDw//+/v7//v79//i7oP/zjF3/8oxe/++IWv/rg1b/531S/+R3
Tf/fcUj/22xD/9dmPv/TYDn/zlo0/8pVMP/fmYT//v79//39/f/BwcH/Dg0N/wAAAP8AAADYAAAAfwAA
ACoAAAAGAAAAGAAAAEYAAACKAAAA0g0NDf/Dw8L//f39//39/f/86uL/9I5g//SPYv/0kGP/849j/++K
Xv/shVn/6H9U/+R4Tv/fckj/22xD/9dmPv/TYDn/z1s1/8tWMf/14Nn//f39//7+/f/BwcH/DAwM/wAA
AO4AAACsAAAAUwAAABkAAAA6AAAAgQAAAM4NDQ39w8PD//7+/v/+/v7//v7+//i+pP/0kWT/9JNo//SV
af/0lWr/85Nn/++NYv/shlv/6H9V/+N5Tv/fckj/22xD/9dmPv/TYDn/zlo0/+GeiP/+/v3//v7+//7+
/v/BwcH/DAwM/gAAANsAAACJAAAAOgAAAFAAAAC1DQ0N/cPDw//+/v7//v7+//7+/v/+/v7/9qR///SW
a//1mnH/9Ztz//Wbc//1mnH/9JZs//CPZf/sh13/54BV/+N5T//fckj/22xD/9dmPv/SXzj/13dW//7+
/f/+/v7//v7+//39/f/BwcH/DAwM/QAAALkAAABRAAAAcA0NDfrDw8P//v7+//39/f/+/v3//v79//39
/f/1mnH/9Z52//ajfv/2pYH/9qWA//aifP/1nnb/9Jhv//CQZv/rh13/539V/+N4Tv/fckj/22tC/9Zl
Pf/VZkD//f39//39/f/+/v3//f39//39/f/BwcH/DAwM+gAAAHAAAABVDQ0N9sPDw//+/v7//f39//7+
/v/+/v7//v79//agev/2p4P/96+P//eyk//3spL/962M//ang//2oHn/9Jlv//CPZP/rhlv/6H5U/+R3
Tf/gcUf/2mpB/9lsRf/+/v3//v79//7+/v/9/f3//f39/8PDw/8NDQ32AAAAVAAAAAgAAABWDQ0N9sPD
w//9/f3//v79//7+/f/+/v3/97KT//exkf/4vaL/+cGo//jAp//4up7/97GR//ang//1nnb/85Zs/++N
Yf/rhFn/531S/+N2S//eb0X/4YNh//7+/f/+/v3//v79//39/f/CwsL/DQ0N+AAAAF8AAAAJAAAAAQAA
AAgAAABXDQ0N98PDw//+/v3//v79//7+/f/6zrr/+Lqd//nKtP/60L7/+c67//nGr//4up7/962M//ai
fP/1mXD/85Jn/++KXv/rg1b/53xQ/+J1Sf/trZT//v79//7+/v/+/v3/wsLC/w0NDfsAAACFAAAAGgAA
AAIAAAAAAAAAAQAAAAkAAABgDQ0N/8TEw//+/v3//v79//3w6v/4vaP/+tG+//vazP/72cr/+s+7//nB
p//3spL/9qWA//Wbc//0lWr/849j/++IW//rgVT/53tP//nm3v/9/f3//v7+/8PDwv8NDQ3/AAAAxAAA
AFUAAAATAAAAAQAAAAAAAAAAAAAAAgAAABoAAAD/FREQ/8TEw//+/v7//v7+//vZyf/5zbn/+9rM//vb
zP/60L7/+cKp//ezk//2pYH/9Ztz//SVaf/0kGP/8oxe/+6FV//ztZr//v7+//7+/f/Dw8P/FREQ/wAA
AP8AAACxAAAAUQAAABMAAAABAAAAAAAAAAAAAAABAAAAEwAAAP+hWjv/FREQ/8TEw//+/v3//vz7//rT
wf/5zbn/+tG+//nKtP/4vaL/96+P//ajfv/1mnH/9JNo//SPYf/zjF3/9qmG//36+f/+/v7/w8PC/xUR
EP+iWzz/AAAA/wAAAK8AAABQAAAAEwAAAAEAAAAAAAAAAAAAAAEAAAATAAAA/+yFWP+hWzv/FREQ/8TE
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
rEGAAKxBgACsQYAArEHAAaxB/D+sQQ==
</value>
</data>
</root>
\ No newline at end of file
......@@ -42,6 +42,7 @@
this.Name = "FrmBase";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "FrmBase";
this.VisibleChanged += new System.EventHandler(this.FrmBase_VisibleChanged);
this.ResumeLayout(false);
}
......
......@@ -13,6 +13,17 @@ namespace OnlineStore.AutoInOutStore
{
public partial class FrmBase : Form
{
public string CurrLanguage = "";
public string ClassName
{
get
{
return this.GetType().Name;
}
set
{
}
}
public static string GetVersion()
{
string str = "";
......@@ -46,9 +57,70 @@ namespace OnlineStore.AutoInOutStore
//skinEngine1.SkinAllForm = false;
}
public void SetSkin(FrmBase preCon)
{
{
//skinEngine1.SkinFile = FormManager.SkinFileName;
//LogUtil.info("当前皮肤:" + skinEngine1.SkinFile);
}
public void LanguageProcess()
{
if (CurrLanguage.Equals(ResourceCulture.CurrLanguage))
{
return;
}
string className = this.ClassName;
CurrLanguage = ResourceCulture.CurrLanguage;
this.Text = ResourceCulture.GetString(ResourceCulture.GetTextIdStr(className), this.Text);
foreach (Control con in this.Controls)
{
if (con is Label || con is Button || con is RadioButton || con is CheckBox)
{
string newStr = ResourceCulture.GetString(ResourceCulture.GetTextIdStr(className, con.Name), con.Text);
con.Text = newStr;
con.Tag = newStr;
}
else if (con.Controls.Count > 0)
{
PreControlLanaguage(con);
}
}
if (this is FrmStoreBox)
{
((FrmStoreBox)this).processMenu();
}
}
private void PreControlLanaguage(Control partentControl)
{
if (partentControl is UserFromControl.IOTextControl && this is FrmIOStatus)
{
return;
}
string className = this.ClassName;
partentControl.Text = ResourceCulture.GetString(ResourceCulture.GetTextIdStr(className, partentControl.Name), partentControl.Text);
foreach (Control con in partentControl.Controls)
{
if (con is Label || con is Button || con is RadioButton || con is CheckBox)
{
string newStr = ResourceCulture.GetString(ResourceCulture.GetTextIdStr(className, con.Name), con.Text);
con.Text = newStr;
}
else if (con.Controls.Count > 0)
{
PreControlLanaguage(con);
}
}
}
private void FrmBase_VisibleChanged(object sender, EventArgs e)
{
if (this.Visible.Equals(true))
{
LanguageProcess();
}
}
}
}
......@@ -18,6 +18,8 @@
this.components = new System.ComponentModel.Container();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.btnDisDoorClose = new System.Windows.Forms.Button();
this.btnDisDoorOpen = new System.Windows.Forms.Button();
this.button4 = new System.Windows.Forms.Button();
this.button5 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
......@@ -56,8 +58,6 @@
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.btnDisDoorClose = new System.Windows.Forms.Button();
this.btnDisDoorOpen = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout();
this.groupBox4.SuspendLayout();
this.groupBox3.SuspendLayout();
......@@ -108,19 +108,41 @@
this.groupBox1.Controls.Add(this.btnCloseDoor);
this.groupBox1.Controls.Add(this.btnOpenDoor);
this.groupBox1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox1.Location = new System.Drawing.Point(482, 8);
this.groupBox1.Location = new System.Drawing.Point(576, 11);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(382, 553);
this.groupBox1.TabIndex = 105;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "DO写入";
//
// btnDisDoorClose
//
this.btnDisDoorClose.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnDisDoorClose.Location = new System.Drawing.Point(252, 438);
this.btnDisDoorClose.Name = "btnDisDoorClose";
this.btnDisDoorClose.Size = new System.Drawing.Size(115, 34);
this.btnDisDoorClose.TabIndex = 268;
this.btnDisDoorClose.Text = "门禁功能打开";
this.btnDisDoorClose.UseVisualStyleBackColor = true;
this.btnDisDoorClose.Click += new System.EventHandler(this.btnDisDoorClose_Click);
//
// btnDisDoorOpen
//
this.btnDisDoorOpen.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnDisDoorOpen.Location = new System.Drawing.Point(252, 401);
this.btnDisDoorOpen.Name = "btnDisDoorOpen";
this.btnDisDoorOpen.Size = new System.Drawing.Size(115, 34);
this.btnDisDoorOpen.TabIndex = 267;
this.btnDisDoorOpen.Text = "门禁功能屏蔽";
this.btnDisDoorOpen.UseVisualStyleBackColor = true;
this.btnDisDoorOpen.Click += new System.EventHandler(this.btnDisDoorOpen_Click);
//
// button4
//
this.button4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button4.Location = new System.Drawing.Point(143, 438);
this.button4.Location = new System.Drawing.Point(132, 438);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(102, 34);
this.button4.Size = new System.Drawing.Size(115, 34);
this.button4.TabIndex = 266;
this.button4.Text = "停止吹气";
this.button4.UseVisualStyleBackColor = true;
......@@ -129,9 +151,9 @@
// button5
//
this.button5.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button5.Location = new System.Drawing.Point(143, 401);
this.button5.Location = new System.Drawing.Point(132, 401);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(102, 34);
this.button5.Size = new System.Drawing.Size(115, 34);
this.button5.TabIndex = 265;
this.button5.Text = "开始吹气";
this.button5.UseVisualStyleBackColor = true;
......@@ -140,9 +162,9 @@
// button2
//
this.button2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button2.Location = new System.Drawing.Point(263, 260);
this.button2.Location = new System.Drawing.Point(252, 260);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(102, 34);
this.button2.Size = new System.Drawing.Size(115, 34);
this.button2.TabIndex = 264;
this.button2.Text = "关闭运转ON";
this.button2.UseVisualStyleBackColor = true;
......@@ -151,9 +173,9 @@
// button3
//
this.button3.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button3.Location = new System.Drawing.Point(263, 223);
this.button3.Location = new System.Drawing.Point(252, 223);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(102, 34);
this.button3.Size = new System.Drawing.Size(115, 34);
this.button3.TabIndex = 263;
this.button3.Text = "打开运转ON";
this.button3.UseVisualStyleBackColor = true;
......@@ -162,9 +184,9 @@
// btnSXil
//
this.btnSXil.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSXil.Location = new System.Drawing.Point(24, 438);
this.btnSXil.Location = new System.Drawing.Point(13, 438);
this.btnSXil.Name = "btnSXil";
this.btnSXil.Size = new System.Drawing.Size(102, 34);
this.btnSXil.Size = new System.Drawing.Size(115, 34);
this.btnSXil.TabIndex = 262;
this.btnSXil.Text = "停止吸料";
this.btnSXil.UseVisualStyleBackColor = true;
......@@ -173,9 +195,9 @@
// btnSXi
//
this.btnSXi.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSXi.Location = new System.Drawing.Point(24, 401);
this.btnSXi.Location = new System.Drawing.Point(13, 401);
this.btnSXi.Name = "btnSXi";
this.btnSXi.Size = new System.Drawing.Size(102, 34);
this.btnSXi.Size = new System.Drawing.Size(115, 34);
this.btnSXi.TabIndex = 261;
this.btnSXi.Text = "开始吸料";
this.btnSXi.UseVisualStyleBackColor = true;
......@@ -184,9 +206,9 @@
// btnDClose
//
this.btnDClose.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnDClose.Location = new System.Drawing.Point(263, 348);
this.btnDClose.Location = new System.Drawing.Point(252, 348);
this.btnDClose.Name = "btnDClose";
this.btnDClose.Size = new System.Drawing.Size(102, 34);
this.btnDClose.Size = new System.Drawing.Size(115, 34);
this.btnDClose.TabIndex = 260;
this.btnDClose.Text = "门锁关闭";
this.btnDClose.UseVisualStyleBackColor = true;
......@@ -195,9 +217,9 @@
// btnDOpen
//
this.btnDOpen.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnDOpen.Location = new System.Drawing.Point(263, 311);
this.btnDOpen.Location = new System.Drawing.Point(252, 311);
this.btnDOpen.Name = "btnDOpen";
this.btnDOpen.Size = new System.Drawing.Size(102, 34);
this.btnDOpen.Size = new System.Drawing.Size(115, 34);
this.btnDOpen.TabIndex = 259;
this.btnDOpen.Text = "门锁打开";
this.btnDOpen.UseVisualStyleBackColor = true;
......@@ -206,9 +228,9 @@
// btnSuckingDiscDown
//
this.btnSuckingDiscDown.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSuckingDiscDown.Location = new System.Drawing.Point(143, 348);
this.btnSuckingDiscDown.Location = new System.Drawing.Point(132, 348);
this.btnSuckingDiscDown.Name = "btnSuckingDiscDown";
this.btnSuckingDiscDown.Size = new System.Drawing.Size(102, 34);
this.btnSuckingDiscDown.Size = new System.Drawing.Size(115, 34);
this.btnSuckingDiscDown.TabIndex = 258;
this.btnSuckingDiscDown.Text = "吸盘下降";
this.btnSuckingDiscDown.UseVisualStyleBackColor = true;
......@@ -217,9 +239,9 @@
// btnSuckingDiscUp
//
this.btnSuckingDiscUp.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSuckingDiscUp.Location = new System.Drawing.Point(143, 311);
this.btnSuckingDiscUp.Location = new System.Drawing.Point(132, 311);
this.btnSuckingDiscUp.Name = "btnSuckingDiscUp";
this.btnSuckingDiscUp.Size = new System.Drawing.Size(102, 34);
this.btnSuckingDiscUp.Size = new System.Drawing.Size(115, 34);
this.btnSuckingDiscUp.TabIndex = 257;
this.btnSuckingDiscUp.Text = "吸盘上升";
this.btnSuckingDiscUp.UseVisualStyleBackColor = true;
......@@ -228,9 +250,9 @@
// btnCloseLed
//
this.btnCloseLed.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCloseLed.Location = new System.Drawing.Point(143, 260);
this.btnCloseLed.Location = new System.Drawing.Point(132, 260);
this.btnCloseLed.Name = "btnCloseLed";
this.btnCloseLed.Size = new System.Drawing.Size(102, 34);
this.btnCloseLed.Size = new System.Drawing.Size(115, 34);
this.btnCloseLed.TabIndex = 256;
this.btnCloseLed.Text = "关闭照明";
this.btnCloseLed.UseVisualStyleBackColor = true;
......@@ -238,12 +260,11 @@
//
// label3
//
this.label3.AutoSize = true;
this.label3.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label3.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.label3.Location = new System.Drawing.Point(14, 79);
this.label3.Location = new System.Drawing.Point(5, 79);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(54, 17);
this.label3.Size = new System.Drawing.Size(103, 17);
this.label3.TabIndex = 247;
this.label3.Text = "选择DO:";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
......@@ -251,7 +272,7 @@
// txtSlaveId
//
this.txtSlaveId.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtSlaveId.Location = new System.Drawing.Point(238, 48);
this.txtSlaveId.Location = new System.Drawing.Point(276, 48);
this.txtSlaveId.MaxLength = 10;
this.txtSlaveId.Name = "txtSlaveId";
this.txtSlaveId.Size = new System.Drawing.Size(74, 23);
......@@ -261,9 +282,9 @@
// btnOpenLed
//
this.btnOpenLed.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnOpenLed.Location = new System.Drawing.Point(143, 223);
this.btnOpenLed.Location = new System.Drawing.Point(132, 223);
this.btnOpenLed.Name = "btnOpenLed";
this.btnOpenLed.Size = new System.Drawing.Size(102, 34);
this.btnOpenLed.Size = new System.Drawing.Size(115, 34);
this.btnOpenLed.TabIndex = 255;
this.btnOpenLed.Text = "打开照明";
this.btnOpenLed.UseVisualStyleBackColor = true;
......@@ -271,12 +292,11 @@
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label2.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.label2.Location = new System.Drawing.Point(181, 51);
this.label2.Location = new System.Drawing.Point(196, 50);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(50, 17);
this.label2.Size = new System.Drawing.Size(75, 17);
this.label2.TabIndex = 245;
this.label2.Text = "SlaveId";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
......@@ -284,7 +304,7 @@
// txtDOIndex
//
this.txtDOIndex.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtDOIndex.Location = new System.Drawing.Point(75, 48);
this.txtDOIndex.Location = new System.Drawing.Point(113, 48);
this.txtDOIndex.MaxLength = 10;
this.txtDOIndex.Name = "txtDOIndex";
this.txtDOIndex.Size = new System.Drawing.Size(74, 23);
......@@ -294,7 +314,7 @@
// txtDoName
//
this.txtDoName.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtDoName.Location = new System.Drawing.Point(75, 22);
this.txtDoName.Location = new System.Drawing.Point(113, 22);
this.txtDoName.MaxLength = 10;
this.txtDoName.Name = "txtDoName";
this.txtDoName.Size = new System.Drawing.Size(237, 23);
......@@ -304,9 +324,9 @@
// btnCloseAxisBreak
//
this.btnCloseAxisBreak.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCloseAxisBreak.Location = new System.Drawing.Point(24, 260);
this.btnCloseAxisBreak.Location = new System.Drawing.Point(13, 260);
this.btnCloseAxisBreak.Name = "btnCloseAxisBreak";
this.btnCloseAxisBreak.Size = new System.Drawing.Size(102, 34);
this.btnCloseAxisBreak.Size = new System.Drawing.Size(115, 34);
this.btnCloseAxisBreak.TabIndex = 253;
this.btnCloseAxisBreak.Text = "关闭刹车";
this.btnCloseAxisBreak.UseVisualStyleBackColor = true;
......@@ -314,12 +334,11 @@
//
// label17
//
this.label17.AutoSize = true;
this.label17.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label17.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.label17.Location = new System.Drawing.Point(22, 25);
this.label17.Location = new System.Drawing.Point(5, 25);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(46, 17);
this.label17.Size = new System.Drawing.Size(103, 17);
this.label17.TabIndex = 240;
this.label17.Text = "设备IP:";
this.label17.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
......@@ -327,9 +346,9 @@
// btnReadIO
//
this.btnReadIO.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnReadIO.Location = new System.Drawing.Point(56, 133);
this.btnReadIO.Location = new System.Drawing.Point(61, 141);
this.btnReadIO.Name = "btnReadIO";
this.btnReadIO.Size = new System.Drawing.Size(102, 34);
this.btnReadIO.Size = new System.Drawing.Size(115, 34);
this.btnReadIO.TabIndex = 243;
this.btnReadIO.Text = "读取IO状态";
this.btnReadIO.UseVisualStyleBackColor = true;
......@@ -338,9 +357,9 @@
// btnOpenAxisBreak
//
this.btnOpenAxisBreak.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnOpenAxisBreak.Location = new System.Drawing.Point(24, 223);
this.btnOpenAxisBreak.Location = new System.Drawing.Point(13, 223);
this.btnOpenAxisBreak.Name = "btnOpenAxisBreak";
this.btnOpenAxisBreak.Size = new System.Drawing.Size(102, 34);
this.btnOpenAxisBreak.Size = new System.Drawing.Size(115, 34);
this.btnOpenAxisBreak.TabIndex = 252;
this.btnOpenAxisBreak.Text = "打开刹车";
this.btnOpenAxisBreak.UseVisualStyleBackColor = true;
......@@ -348,12 +367,11 @@
//
// label14
//
this.label14.AutoSize = true;
this.label14.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label14.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.label14.Location = new System.Drawing.Point(24, 51);
this.label14.Location = new System.Drawing.Point(5, 51);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(44, 17);
this.label14.Size = new System.Drawing.Size(103, 17);
this.label14.TabIndex = 239;
this.label14.Text = "地址:";
this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
......@@ -361,9 +379,9 @@
// btnWriteSingleDO
//
this.btnWriteSingleDO.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnWriteSingleDO.Location = new System.Drawing.Point(173, 133);
this.btnWriteSingleDO.Location = new System.Drawing.Point(178, 141);
this.btnWriteSingleDO.Name = "btnWriteSingleDO";
this.btnWriteSingleDO.Size = new System.Drawing.Size(102, 34);
this.btnWriteSingleDO.Size = new System.Drawing.Size(115, 34);
this.btnWriteSingleDO.TabIndex = 232;
this.btnWriteSingleDO.Text = "写入DO";
this.btnWriteSingleDO.UseVisualStyleBackColor = true;
......@@ -372,7 +390,7 @@
// txtWriteTime
//
this.txtWriteTime.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtWriteTime.Location = new System.Drawing.Point(238, 103);
this.txtWriteTime.Location = new System.Drawing.Point(276, 103);
this.txtWriteTime.MaxLength = 10;
this.txtWriteTime.Name = "txtWriteTime";
this.txtWriteTime.Size = new System.Drawing.Size(74, 23);
......@@ -381,12 +399,11 @@
//
// label5
//
this.label5.AutoSize = true;
this.label5.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label5.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.label5.Location = new System.Drawing.Point(172, 106);
this.label5.Location = new System.Drawing.Point(196, 105);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(60, 17);
this.label5.Size = new System.Drawing.Size(75, 17);
this.label5.TabIndex = 237;
this.label5.Text = "定时(ms):";
this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
......@@ -394,9 +411,9 @@
// btnReadAllDi
//
this.btnReadAllDi.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnReadAllDi.Location = new System.Drawing.Point(56, 168);
this.btnReadAllDi.Location = new System.Drawing.Point(61, 176);
this.btnReadAllDi.Name = "btnReadAllDi";
this.btnReadAllDi.Size = new System.Drawing.Size(102, 34);
this.btnReadAllDi.Size = new System.Drawing.Size(115, 34);
this.btnReadAllDi.TabIndex = 244;
this.btnReadAllDi.Text = "读取所有DI";
this.btnReadAllDi.UseVisualStyleBackColor = true;
......@@ -411,7 +428,7 @@
this.cmbWriteValue.Items.AddRange(new object[] {
"0",
"1"});
this.cmbWriteValue.Location = new System.Drawing.Point(75, 101);
this.cmbWriteValue.Location = new System.Drawing.Point(113, 101);
this.cmbWriteValue.Name = "cmbWriteValue";
this.cmbWriteValue.Size = new System.Drawing.Size(74, 24);
this.cmbWriteValue.TabIndex = 236;
......@@ -419,12 +436,11 @@
//
// label6
//
this.label6.AutoSize = true;
this.label6.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label6.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.label6.Location = new System.Drawing.Point(21, 106);
this.label6.Location = new System.Drawing.Point(5, 106);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(47, 17);
this.label6.Size = new System.Drawing.Size(103, 17);
this.label6.TabIndex = 235;
this.label6.Text = "写入值:";
this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
......@@ -432,9 +448,9 @@
// btnReadAllDo
//
this.btnReadAllDo.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnReadAllDo.Location = new System.Drawing.Point(173, 168);
this.btnReadAllDo.Location = new System.Drawing.Point(178, 176);
this.btnReadAllDo.Name = "btnReadAllDo";
this.btnReadAllDo.Size = new System.Drawing.Size(102, 34);
this.btnReadAllDo.Size = new System.Drawing.Size(115, 34);
this.btnReadAllDo.TabIndex = 245;
this.btnReadAllDo.Text = "读取所有DO";
this.btnReadAllDo.UseVisualStyleBackColor = true;
......@@ -447,7 +463,7 @@
this.cmbWriteIO.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbWriteIO.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.cmbWriteIO.FormattingEnabled = true;
this.cmbWriteIO.Location = new System.Drawing.Point(75, 74);
this.cmbWriteIO.Location = new System.Drawing.Point(113, 74);
this.cmbWriteIO.Name = "cmbWriteIO";
this.cmbWriteIO.Size = new System.Drawing.Size(237, 24);
this.cmbWriteIO.TabIndex = 234;
......@@ -458,9 +474,9 @@
// btnCloseDoor
//
this.btnCloseDoor.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCloseDoor.Location = new System.Drawing.Point(25, 348);
this.btnCloseDoor.Location = new System.Drawing.Point(14, 348);
this.btnCloseDoor.Name = "btnCloseDoor";
this.btnCloseDoor.Size = new System.Drawing.Size(102, 34);
this.btnCloseDoor.Size = new System.Drawing.Size(115, 34);
this.btnCloseDoor.TabIndex = 249;
this.btnCloseDoor.Text = "关闭仓门";
this.btnCloseDoor.UseVisualStyleBackColor = true;
......@@ -469,9 +485,9 @@
// btnOpenDoor
//
this.btnOpenDoor.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnOpenDoor.Location = new System.Drawing.Point(24, 311);
this.btnOpenDoor.Location = new System.Drawing.Point(13, 311);
this.btnOpenDoor.Name = "btnOpenDoor";
this.btnOpenDoor.Size = new System.Drawing.Size(102, 34);
this.btnOpenDoor.Size = new System.Drawing.Size(115, 34);
this.btnOpenDoor.TabIndex = 248;
this.btnOpenDoor.Text = "打开仓门";
this.btnOpenDoor.UseVisualStyleBackColor = true;
......@@ -479,10 +495,10 @@
//
// button1
//
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.button1.Location = new System.Drawing.Point(683, 570);
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.button1.Location = new System.Drawing.Point(783, 570);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(126, 37);
this.button1.Size = new System.Drawing.Size(115, 34);
this.button1.TabIndex = 254;
this.button1.Text = "关闭";
this.button1.UseVisualStyleBackColor = true;
......@@ -495,7 +511,7 @@
this.chbAutoRead.Checked = true;
this.chbAutoRead.CheckState = System.Windows.Forms.CheckState.Checked;
this.chbAutoRead.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.chbAutoRead.Location = new System.Drawing.Point(546, 575);
this.chbAutoRead.Location = new System.Drawing.Point(659, 575);
this.chbAutoRead.Name = "chbAutoRead";
this.chbAutoRead.Size = new System.Drawing.Size(75, 21);
this.chbAutoRead.TabIndex = 244;
......@@ -507,9 +523,9 @@
this.groupBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.groupBox4.Controls.Add(this.tableLayoutPanel2);
this.groupBox4.Location = new System.Drawing.Point(247, 8);
this.groupBox4.Location = new System.Drawing.Point(293, 8);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(229, 601);
this.groupBox4.Size = new System.Drawing.Size(273, 601);
this.groupBox4.TabIndex = 104;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "DO列表";
......@@ -526,7 +542,7 @@
this.tableLayoutPanel2.RowCount = 2;
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 17F));
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 17F));
this.tableLayoutPanel2.Size = new System.Drawing.Size(218, 581);
this.tableLayoutPanel2.Size = new System.Drawing.Size(262, 581);
this.tableLayoutPanel2.TabIndex = 103;
//
// groupBox3
......@@ -536,7 +552,7 @@
this.groupBox3.Controls.Add(this.tableLayoutPanel1);
this.groupBox3.Location = new System.Drawing.Point(12, 8);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(229, 601);
this.groupBox3.Size = new System.Drawing.Size(273, 601);
this.groupBox3.TabIndex = 103;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "DI列表";
......@@ -553,36 +569,14 @@
this.tableLayoutPanel1.RowCount = 2;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 17F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 17F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(218, 581);
this.tableLayoutPanel1.Size = new System.Drawing.Size(262, 581);
this.tableLayoutPanel1.TabIndex = 102;
//
// btnDisDoorClose
//
this.btnDisDoorClose.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnDisDoorClose.Location = new System.Drawing.Point(263, 438);
this.btnDisDoorClose.Name = "btnDisDoorClose";
this.btnDisDoorClose.Size = new System.Drawing.Size(102, 34);
this.btnDisDoorClose.TabIndex = 268;
this.btnDisDoorClose.Text = "门禁功能打开";
this.btnDisDoorClose.UseVisualStyleBackColor = true;
this.btnDisDoorClose.Click += new System.EventHandler(this.btnDisDoorClose_Click);
//
// btnDisDoorOpen
//
this.btnDisDoorOpen.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnDisDoorOpen.Location = new System.Drawing.Point(263, 401);
this.btnDisDoorOpen.Name = "btnDisDoorOpen";
this.btnDisDoorOpen.Size = new System.Drawing.Size(102, 34);
this.btnDisDoorOpen.TabIndex = 267;
this.btnDisDoorOpen.Text = "门禁功能屏蔽";
this.btnDisDoorOpen.UseVisualStyleBackColor = true;
this.btnDisDoorOpen.Click += new System.EventHandler(this.btnDisDoorOpen_Click);
//
// FrmIOStatus
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(876, 619);
this.ClientSize = new System.Drawing.Size(989, 619);
this.Controls.Add(this.button1);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.groupBox4);
......
......@@ -51,7 +51,7 @@ namespace OnlineStore.AutoInOutStore
{
this.tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 28));
IOTextControl control = new IOTextControl();
control.IOName = ioValue.ElectricalDefinition + "_" + ioValue.Explain;
control.IOName = ioValue.ElectricalDefinition + "_" + ResourceCulture.GetString(ioValue.ElectricalDefinition, ioValue.Explain);
control.IOValue = 0;
control.isCanClick = false;
control.Name = "IO_" + ioValue.ProName;
......@@ -69,7 +69,7 @@ namespace OnlineStore.AutoInOutStore
{
this.tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 28));
IOTextControl control = new IOTextControl();
control.IOName = ioValue.ElectricalDefinition + "_" + ioValue.Explain;
control.IOName = ioValue.ElectricalDefinition + "_" + ResourceCulture.GetString(ioValue.ElectricalDefinition, ioValue.Explain);
control.IOValue = 0;
control.isCanClick = true;
//control.Location = new System.Drawing.Point(0, 25*roleindex);
......@@ -104,7 +104,7 @@ namespace OnlineStore.AutoInOutStore
}
catch (Exception ex)
{
MessageBox.Show(ex.StackTrace, "Exception(异常)", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show(ex.StackTrace, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
LogUtil.error(LOGGER, ex.StackTrace);
}
}
......@@ -307,7 +307,7 @@ namespace OnlineStore.AutoInOutStore
}
else
{
MessageBox.Show("忙碌中,无法打开门锁");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.CnotOpen,"忙碌中,无法打开门锁"));
}
}
private void btnDClose_Click(object sender, EventArgs e)
......
namespace OnlineStore.ACSingleStore
{
partial class FrmLogin
{
/// <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()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmLogin));
this.panel1 = new System.Windows.Forms.Panel();
this.txtPwd = new System.Windows.Forms.TextBox();
this.txtUserName = new System.Windows.Forms.TextBox();
this.btnCancel = new System.Windows.Forms.Button();
this.btnLogin = new System.Windows.Forms.Button();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// panel1
//
this.panel1.Anchor = System.Windows.Forms.AnchorStyles.None;
this.panel1.Controls.Add(this.txtPwd);
this.panel1.Controls.Add(this.txtUserName);
this.panel1.Controls.Add(this.btnCancel);
this.panel1.Controls.Add(this.btnLogin);
this.panel1.Controls.Add(this.label2);
this.panel1.Controls.Add(this.label1);
this.panel1.Location = new System.Drawing.Point(229, 88);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(330, 230);
this.panel1.TabIndex = 0;
//
// txtPwd
//
this.txtPwd.Anchor = System.Windows.Forms.AnchorStyles.None;
this.txtPwd.Location = new System.Drawing.Point(145, 78);
this.txtPwd.MaxLength = 100;
this.txtPwd.Name = "txtPwd";
this.txtPwd.PasswordChar = '*';
this.txtPwd.Size = new System.Drawing.Size(100, 26);
this.txtPwd.TabIndex = 5;
//
// txtUserName
//
this.txtUserName.Anchor = System.Windows.Forms.AnchorStyles.None;
this.txtUserName.Location = new System.Drawing.Point(145, 32);
this.txtUserName.MaxLength = 100;
this.txtUserName.Name = "txtUserName";
this.txtUserName.Size = new System.Drawing.Size(100, 26);
this.txtUserName.TabIndex = 4;
//
// btnCancel
//
this.btnCancel.Anchor = System.Windows.Forms.AnchorStyles.None;
this.btnCancel.Location = new System.Drawing.Point(170, 148);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(84, 33);
this.btnCancel.TabIndex = 3;
this.btnCancel.Text = "取消(&C)";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// btnLogin
//
this.btnLogin.Anchor = System.Windows.Forms.AnchorStyles.None;
this.btnLogin.Location = new System.Drawing.Point(72, 148);
this.btnLogin.Name = "btnLogin";
this.btnLogin.Size = new System.Drawing.Size(84, 33);
this.btnLogin.TabIndex = 2;
this.btnLogin.Text = "登录(&L)";
this.btnLogin.UseVisualStyleBackColor = true;
this.btnLogin.Click += new System.EventHandler(this.btnLogin_Click);
//
// label2
//
this.label2.Anchor = System.Windows.Forms.AnchorStyles.None;
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(84, 78);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(51, 20);
this.label2.TabIndex = 1;
this.label2.Text = "密码:";
//
// label1
//
this.label1.Anchor = System.Windows.Forms.AnchorStyles.None;
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(72, 41);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(65, 20);
this.label1.TabIndex = 0;
this.label1.Text = "用户名:";
//
// FrmLogin
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(793, 397);
this.Controls.Add(this.panel1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "FrmLogin";
this.Text = "FrmLogin";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.Load += new System.EventHandler(this.FrmLogin_Load);
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.TextBox txtPwd;
private System.Windows.Forms.TextBox txtUserName;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Button btnLogin;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
}
}
\ No newline at end of file
using OnlineStore.Common;
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 OnlineStore.ACSingleStore
{
public partial class FrmLogin : FrmBase
{
private string UserName = "admin".ToUpper();
private string UserPwd = "123456".ToUpper();
public FrmLogin()
{
string aa = ConfigAppSettings.GetValue(Setting_Init.UserName);
string ww = ConfigAppSettings.GetValue(Setting_Init.UserPwd);
if (!aa.Equals(""))
{
UserName = aa.ToUpper();
}
if (!ww.Equals(""))
{
UserPwd = ww;
}
InitializeComponent();
}
private void btnLogin_Click(object sender, EventArgs e)
{
string userName = txtUserName.Text.Trim();
string pwd = txtPwd.Text.Trim();
if (userName.ToUpper().Equals(UserName) && UserPwd.Equals(pwd))
{
FrmStoreBox lineStore = new FrmStoreBox();
this.Hide();
lineStore.ShowDialog();
this.Close();
}
else
{
if (!(userName.ToUpper().Equals(UserName)))
{
MessageBox.Show("请输入正确的用户名!");
txtUserName.Text = "";
txtUserName.Focus();
}
else
{
MessageBox.Show("请输入正确的密码!");
txtPwd.Focus();
txtPwd.Text = "";
}
}
}
private void FrmLogin_Load(object sender, EventArgs e)
{
this.AcceptButton = btnLogin;
string title = OnlineStore.Common.ConfigAppSettings.GetValue(Setting_Init.App_Title);
this.Text = title;
txtUserName.Focus();
int sizeH = this.Size.Height;
int sizeW = this.Size.Width;
int locationH=((sizeH-panel1.Size.Height)/2);
int locationW = (sizeH - panel1.Size.Width) / 2;
panel1.Size = new Size(locationW, locationH);
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAA8AMDAQAAEABABoBgAA9gAAACgoEAABAAQAyAQAAF4HAAAgIBAAAQAEAOgCAAAmDAAAGBgQAAEA
BADoAQAADg8AABAQEAABAAQAKAEAAPYQAAAwMAAAAQAIAKgOAAAeEgAAKCgAAAEACACoCwAAxiAAACAg
AAABAAgAqAgAAG4sAAAYGAAAAQAIAMgGAAAWNQAAEBAAAAEACABoBQAA3jsAADAwAAABACAAqCUAAEZB
AAAoKAAAAQAgAGgaAADuZgAAICAAAAEAIACoEAAAVoEAABgYAAABACAAiAkAAP6RAAAQEAAAAQAgAGgE
AACGmwAAKAAAADAAAABgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACA
gACAAAAAgACAAICAAACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAAwMDAAP///wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAA/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAA
D///8AAAAAAAAAAAAAAAAAAAAAAAAAAE7////0AAAAAAAAAAAAAAAAAEZHZGBABP/////+AAQkJWZkAA
AAAAAAAG6+t3YAD///////8AB7brd2AAAAAAAAAHvtt0AA/////////kAEd77UAAAAAAAAAGt3ZgBO//
////////ACRnvlAAAAAAAAAHd0QAT///////////8EBHdmAAAAAAAAAEZ2QA////7uvb7v///kAkR0AA
AAAAAAAEdAAf///r69e+vb7///AAZ0AAAAAAAAAGUATv//vtvr2+t72+//9AB0AAAAAAAAAEAC///r6+
t76+vbe+7//gBCAAAAAAAAAABO//7t6+fX2+vre3vv//AAAAAAAAAAAAD///3r69t76+vb69vv//5AAA
AAAAAAAA///+vt5+3r7b69t723///wAAAAAAAAAP///3576+vre+vXvr23////AAAAAAAAD////73n19
7t6+vNvrdr7///8AAAAAAA7////t7r7ne+vtd9vr237////wAAAABP/////r7evt536+vr6+t7f////+
cAAAb//////r7r7evt7X1769vr3/////8AABD/////99fu5+7r7r7X6+t7f/////8AAAAP/////n7t7u
7Xfr6+vX233/////AAAAAA/////t7u7e7u3n7evr577////wAAAAAAD////+7u7u7t6+2+vr69////8A
AAAAAAAP///+3u7+7ufud33tt7////AAAAAAAAAA///+7u/u7e7evt6+vu///wAAAAAAAAAAD///7u7u
7u7N7r7evf//8AAAAAAAAAAEBP///u7u7ud9576+v//+QEAAAAAAAAAGcE7//u7u7t7r7efe7//wR0AA
AAAAAAAGe0D///7u7n5+fr6///8AfVAAAAAAAAALfXAP///u3n19vt7///BOt2AAAAAAAAAHd75A////
/u7u7v///kB3vrAAAAAAAAAE3rdwD///////////8ke+3kAAAAAAAAAE6+17ZP//////////AHvte3AA
AAAAAAAE6+vrcA/////////wRd63fVAAAAAAAAAG7XfXdgH///////8Aduvtd2AAAAAAAAAAVkdGVkAP
//////AGVkdGVgAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAA
AAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///////8AAP///n///wAA///8P///AAD///gf//8AAP//8A///wAA///gB///AAD8AAAAAD8AAPwA
AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/
AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPgAAAAAHwAA8AAAAAAPAADgAAAAAAcAAMAA
AAAAAwAAgAAAAAABAACAAAAAAAEAAMAAAAAAAwAA4AAAAAAHAADwAAAAAA8AAPgAAAAAHwAA/AAAAAA/
AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA
AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD//+AH//8AAP//8A///wAA///4H///
AAD///w///8AAP///n///wAA////////AAAoAAAAKAAAAFAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AADAwMAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF
cAAAAAAAAAAAAAAAAAAAAAAAAH/3AAAAAAAAAAAAAAAAAAAAAAAH//9wAAAAAAAAAAAAAAAAQAAAAH//
//cAAAAABAAAAAAABHt2VkAH/////3AFa3t2AAAAAAAAfXt2AH//////9wBGd9VAAAAAAAC3dkQH////
////cAR7dgAAAAAAAGezAH/////////3BGZ2AAAAAAAAdkQH///uvr3u//9wBWcAAAAAAABkAH//++2+
vVvu//cERgAAAAAAAAQH//7et9vr29vv/3AEAAAAAAAAAH//6+e+t7e+t77/9wAAAAAAAAAH//7r1313
fb69tu//cAAAAAAAAH///m53e+t7e3vr7//3AAAAAAAH///uvtftfX3r22u+//9wAAAAAH///+vte+vr
6+vr6+7///cAAAAH////3nfu3u3r3r69tv///nAAAH/////r7evr6+vre9e+////9wAAf////75+7u3u
fn3rfbf////3AAAH////7e7t7uvtvrvr6////3AAAAB////u3u7t7ud+3r2+///3AAAAAAf//+7u7u7u
ve2+d37//3AAAAAAAH///u7v7u7r7evbf//3AAAAAAAAB///7u/t7Xfuvn7v/3AAAAAAAABAf//u7u7u
frd9vv/3BAAAAAAAAHdH//7u7n5+3tfv/3C3QAAAAAAAvVB//+7u1+vr7v/3C3cAAAAAAAB9e0f//+7n
7e7//3B96wAAAAAAALfeYH/////////3C+vmAAAAAAAAfr63R////////3B9e+ZAAAAAAAC3fXdwf///
///3C3fetwAAAAAAAGdnt2QH/////3BHZ7dnAAAAAAAAAAAAAAB////3AAAAAAAAAAAAAAAAAAAAAAf/
/3AAAAAAAAAAAAAAAAAAAAAAAH/3AAAAAAAAAAAAAAAAAAAAAAAAB3AAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAD//+f//wAAAP//w///AAAA//+B//8A
AAD//wD//wAAAPgAAAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgA
AAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8AAADwAAAADwAAAOAAAAAHAAAAwAAAAAMA
AACAAAAAAQAAAIAAAAABAAAAwAAAAAMAAADgAAAABwAAAPAAAAAPAAAA+AAAAB8AAAD4AAAAHwAAAPgA
AAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8A
AAD4AAAAHwAAAP//AP//AAAA//+B//8AAAD//8P//wAAAP//5///AAAA//////8AAAAoAAAAIAAAAEAA
AAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICA
gAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AADAwMAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAG7gAAAAAAAAAAAAAAAAAADv/kAAAAAAAAAAAABARABO///gBARAAAAAAABH63tg
7////kZ3vrQAAAAAC+13Tv/////mt9dwAAAAAAfbdO///////gbr5AAAAABL5k7/7ut37v/iXXAAAAAA
DnDv/td729vv/kZ0AAAAAAZO/+vr6+vr6//lYAAAAAAA7/7r69t7e7v//gAAAAAATv/77efn13fbfv/k
AAAAAO//7ee+vbe9vr7//gAAAE7//+vt537uvr23///hAADv//933r7Xvbe3t////gAA7///5+7n7n7X
fXb///4AAA///+3u3u2+vr6+///mAAAA7//u7u7u7t69vv/+AAAAAA7//u/u7Xvr7c7/4AAAAAAA7/7u
7u7tfr3v/gAAAAAAB27/7+7ufuvu7+R0AAAAAEtw7/7u3r197/5GcAAAAAAO1U7//u7u7//gfrQAAAAA
S31w7//////+e11wAAAAAAfr607/////4WvtdAAAAABGd9dw7////kbm63AAAAAAAAQAAA7//+AABAAA
AAAAAAAAAAAA7/4AAAAAAAAAAAAAAAAAAA7nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA///////+f////D////gf//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AA
AAfAAAADgAAAAYAAAAHAAAAD4AAAB/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//4
H////D////5///////8oAAAAGAAAADAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gAAAgAAAAICAAIAAAACAAIAAgIAAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AADAwMAA////AAAA
AAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAf+cAAAAAAAAAQkYF7/9gBgYAAAAGvrdv///3vr5AAAAA
7mX/////R31AAAAAtl/+7r7v87cAAAAEd//b69vb/2dAAAAAT/7r6+vrf+cAAAAC/+vr7be3vv9wAAB/
/+3r5969vv/wAAf//33N6+t76///YAD//+3u5+3rt///cAB//+7u3te+3v/xAAAE//7u7u6+vv8gAAAA
f/7u7r197vYAAAAEZP/u7u6+/1ZAAAAA53/+7t7v925AAAAEt2H/////R74AAAAE7eZ////wft5AAAAA
BAQA//9wBAQAAAAAAAAAf/QAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAP//////5////8P//+AA
B//gAAf/4AAH/+AAB//gAAf/4AAH/+AAB//AAAP/gAAB/4AAAf/AAAP/4AAH/+AAB//gAAf/4AAH/+AA
B//gAAf/4AAH///D////5////////ygAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAMDA
wAD///8AAAAADnAAAAAAAADufgAAAAAFZH/+RkQAAG6+///k5AAARu/ut/d2AABO+9vr3+QAB+7u7b6+
9+Du/+2+vrf/537/7u7Xe/9+Dn/u7uvt/uAAR/7t6+/gAABn7u7u97YAAE5u///m5gAABlDv9wZQAAAA
AH7uAAAAAAAADnAAAAD+f////D///8AD///AA///wAP//8AD//+AAf//AAD//wAA//+AAf//wAP//8AD
///AA///wAP///w////+f///KAAAADAAAABgAAAAAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAEAgEABAQEAAgICAANDQ0AEQkGABISEgAUFBQAGRkZAB0dHQAnFg4AKBYOAC4aEQA9IhYAJSUlACws
LAAxMTEAODg4AD4+PgBFJxkAUy8fAFozIQBlOSUAcD8qAHJAKgB2QywAeUQtAEBAQABFRUUASEhIAFNT
UwBXV1cAXV1dAGFhYQBlZWUAampqAG5ubgBycnIAeHh4AH5+fgCHTDIAiEwyAMlTLgDLVTAAzVkzAMxZ
NADMXDoA0Fw2ANNgOADUYjoA1WQ8ANhnPgDYaD8AsWRCANVnQgDaaUAA3GxDANhrRADdbUQA3nBGANF2
TgDXclAA3ntXAOBxRgDhc0kA4XRKAON2TADkd00A5HhNAOh8TwDme1AA5nxSAOh9UQDpf1QA5IFVAOuA
UwDoglYA7IJVAOmCWADthlkA7IdcAO2IXQDwh1kA8ohZAPGKXADyjF8A9IxeAN2LbwDdi3AA3ZJ6AO6L
YADvjGIA8Y1hAPSOYQDxj2QA9JBiAPGRZgD0kmYA8pNoAPOWawD0lWoA9JZsAPSYbgDml3kA9ZpxAPWd
dQD2n3gA9aB5APaifQD2poEA9qeEAPeohAD3q4gA962LAPCqjgD3ro0A97CPAPexkAD3tZYA+LCQAPiz
lAD4tJYA+LaZAPi5nQDotKMA6LWmAPi7oAD4vaIA+b6kAPG/rAD5wKYA+cKqAPnFrQDsxbkA+cawAPnJ
tAD5zLcA+s25APrPvAD60L0A2traANzc2wDc3NwA+tTDAPrWxgD72McA+tfIAPvZyQD7280A+93PAPzd
zwD73dAA/OTZAP3p4AD46+cA++/pAPzw6wD98uwA/fbyAP39/QAAAAAALwMAAFAEAABwBgAAkAkAALAK
AADPDAAA8A4AAP8gEgD/PjEA/1xRAP96cQD/l5EA/7axAP/U0QD///8AAAAAAC8ADgBQABcAcAAhAJAA
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
AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvgA
AAAAHwAO8AAAAAAPAA7gAAAAAAcADsAAAAAAAwAOgAAAAAABAA6AAAAAAAEADsAAAAAAAwAO4AAAAAAH
AA7wAAAAAA8ADvgAAAAAHwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvwA
AAAAPwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/
AA7//+AH//8ADv//8A///wAO///4H///AA7///w///8ADv///n///wAO////////AA4oAAAAKAAAAFAA
AAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQAMBwQACgoKAA4ODgAcDwoAHBAKABAQ
EAAeHh4ALRkQACkpKQAuLi4AMDAwADY2NgA6OjoAPT09AEUnGQBjNyQAYzgkAGQ4JABtPSgAcT8pAHJA
KgBCQkIARkZGAElJSQBOTk4AV1dXAFlZWQBdXV0AYWFhAGVlZQBoaGgAbGxsAHl5eQB+fn4AiU0zAJBR
NQCYVjgAp14+AKlfPgCqYD8AyVMuAMlULwDMVzEAz1s1ANJfOADTYDkA1WQ8ANloPwCuYkAAsmRCALVm
QwC2ZkQAxW9JANVnQQDZaUAA3GxCANhrRADdbkQA0GlJAN9wRQDXc1IA335aAOBxRwDgckkA4nRJAON3
TADjeE4A5XlNAOF/UwDnfVIA4X9UAOd+VADpflEA6YFWAOyCVQDphFcA6oNYAOmEWQDthlgA7YleAPKI
WgD0ilsA8IpdAPKMXgDeknkA6YpjAO2LYADyjmEA9I5hAPCPZAD0kGMA8pFmAPSSZQDxkmgA9JNoAPOU
aQD0lWoA9JZsAPSYbgD0mnEA9ZxzAPWddQD2n3gA9aF7APWifAD2pH4A6Z+EAOCdiQD2pYEA9qmGAPar
iAD3ro0A97GRAPe0lgD4tpgA97ibAPi5ngD3u6EA97yiAPi7oAD4vaIA+b6kAPnApwD4w6sA+cStAO3G
uQD5xrAA+ciyAPnJtAD5zbgA+tC+APTOwAD608EA+dXFAPvZyQD72swA+9zNAPzi1gD86N8A/Pn3APr6
+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
AAAsAC8ASwBQAGkAcACHAJAApQCwAMQAzwDhAPAA8BH/APIx/wD0Uf8A9nH/APeR/wD5sf8A+9H/AP//
/wAAAAAAGwAvAC0AUAA/AHAAUgCQAGMAsAB2AM8AiADwAJkR/wCmMf8AtFH/AMJx/wDPkf8A3LH/AOvR
/wD///8AAAAAAAgALwAOAFAAFQBwABsAkAAhALAAJgDPACwA8AA+Ef8AWDH/AHFR/wCMcf8AppH/AL+x
/wDa0f8A////AAAAAAAAAAAXFwAAAAAAAAAAAAAAAAAXFxcXAAAAAAAAAAACAwMBFyQkFwEDAwIAAAAA
AxAFFyQkJCQXBRADAAAAAAMFFyIYCwgRIRcFAwAAAAABFyITDQwJBwYhFwEAAAAXFyQbExIPDAoHESQX
FwAXFyQkFRYWFA8MCggkJBcXFxckJBodHBkUDgwLJCQXFwAXFyQeIB8dFhINGCQXFwAAAAEXIyAgHRYT
EyIXAQAAAAADBBcjHhoVGyIXBQMAAAAAAxAEFyQkJCQXBRADAAAAAAIDAwEXJCQXAQMDAgAAAAAAAAAA
FxcXFwAAAAAAAAAAAAAAAAAXFwAAAAAAAAD+fwAA/D8AAMADAADAAwAAwAMAAMADAACAAQAAAAAAAAAA
AACAAQAAwAMAAMADAADAAwAAwAMAAPw/AAD+fwAAKAAAADAAAABgAAAAAQAgAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABAAAAAlAAAARgAAAHEAAACaAAAAvgAAAL4AAACaAAAAcAAA
AEYAAAAlAAAAEAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABAAA
AAUAAAAFAAAABgAAAAYAAAAGAAAABgAAAAYAAAALAAAAFQAAACoAAABKAAAAdAAAAKIAAADNAAAA+gAA
APoAAADNAAAAogAAAHQAAABKAAAAKQAAABUAAAAKAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAA
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
Qf+HTDL/WzMh/y4aEf8DAgH/HR0d/9ra2f/9/f3//v79//39/f/+/v3//v79//7+/f/9/f3//f39//7+
/f/+/v3//f39//7+/v/+/v3//f39//39/f/9/f3/2NjY/xwcG/8EAgH/LhoR/1szIf+ITDL/sWRB/9F2
Tv9wPyn/AAAA/wAAAL4AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAHAAA
AP9lOSX/sGRB/4ZLMf9aMiH/LhoR/wMCAf8fHx//2tra//7+/f/+/v7//v79//7+/f/77ej/8L+r/+aW
ef/ee1f/2GtE/9VnQf/XcU//3Ipv/+i0o//46eX//f39//7+/f/9/f3//v7+/9jY2P8dHR3/AwIB/y4Z
EP9aMiH/hkwx/7FkQf9lOSX/AAAA/wAAAL8AAACAAAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAAALAAAAJgAAAP9TLx7/h0wx/1oyIf8uGhD/BAIB/x8fH//Z2dn//v7+//7+/v/+/v7//O/q/++q
jv/keE7/4HFG/91tQ//aakD/2GY+/9VjO//SXzj/0Fw1/81ZMv/MWjX/3ZF6//jq5v/+/v3//v7+//7+
/v/Y2Nf/HR0d/wMCAf8uGRD/WjIh/4dMMv9TLx//AAAA/wAAAMEAAACCAAAAQgAAABgAAAAGAAAAAAAA
AAAAAAAAAAAAAQAAAAUAAAAVAAAAOAAAAP89Ihb/WjMh/y4aEf8EAgH/HR0d/9ra2v/+/v7//v79//7+
/f/51sb/7Ihd/+h8T//leUz/4nVJ/+BxR//dbkT/2mtB/9hnP//VYzz/0l85/9BcNf/NWTL/ylUw/8xd
O//sxLj//v7+//7+/v/+/v7/2NjY/xwcG/8DAgH/LhkQ/1ozIf89Ihb/AAAA/wAAAMYAAACHAAAARQAA
ABkAAAAGAAAAAAAAAAAAAAABAAAABQAAABAAAAAqAAAAVwAAAP8nFg7/LhoR/wMCAf8fHx//2tra//7+
/v/+/v7//v79//rNuf/wh1n/7YNV/+qAU//ofVD/5XlO/+N2S//hckj/3m9F/9trQv/YZz//1WQ8/9Jf
Of/QXDb/zVkz/8pVL//JUy//57Sk//7+/v/+/v7//v7+/9jY2P8eHh3/AwIB/y4aEf8nFg7/AAAA/wAA
AM8AAACRAAAATAAAABwAAAAGAAAAAAAAAAEAAAAFAAAADwAAACUAAABJAAAAfgAAAP8QCQX/BAIB/x8f
H//Z2dn//f39//39/f/+/v3/+9jI//SMXf/yilv/74dZ/+2FV//rglX/6H5S/+Z7T//jd0z/4XNJ/95w
Rv/ba0P/2Gc//9VkPP/TYDn/0Fw2/81ZM//KVTD/yVMv/+zEuP/+/v3//v79//39/f/X19f/Hh4d/wQC
Af8QCQX/AAAA/wAAANoAAAChAAAAXAAAACYAAAAKAAAAAQAAAAUAAAAPAAAAJAAAAEYAAAB0AAAAqAAA
AP8AAAD/HR0d/9ra2v/+/v7//v79//7+/f/98ev/9JNo//OMXv/zjV7/8o1f//GKXf/uhlr/64NX/+l/
VP/me1D/5HhN/+FzSv/ecEb/22xD/9hnP//WZDz/02A5/9BcNv/NWTP/ylUw/8xdO//46ub//v7+//39
/f/+/v3/2NjY/xwcHP8AAAD/AAAA/wAAAOYAAAC3AAAAdAAAADgAAAAVAAAABQAAAA8AAAAkAAAARgAA
AHIAAACiAAAA0gAAAP8fHx//2trZ//39/f/9/f3//f39//7+/f/4t5n/841f//SOYP/0j2L/9I9i//OP
Yv/xjF//7ohc/+yEWf/pgFX/5nxS/+R4Tv/hdEr/3nBG/9tsQ//ZaED/1mQ8/9NgOf/QXDb/zVkz/8tV
MP/dkXr//v39//39/f/9/f3//v79/9jY2P8eHh7/AAAA/wAAAPEAAADPAAAAlQAAAFYAAAApAAAADwAA
ACAAAABCAAAAbwAAAKAAAADPAAAA+x8fH//Z2dn//v79//7+/f/+/v3//v79//3x6//0kWT/849h//SR
ZP/0kmX/9JJm//STZv/zkWX/8Y1i/+6JXv/shlr/6YFW/+Z9Uv/jeU7/4XRK/95wR//bbEP/2WhA/9Zk
PP/TYDn/0Fw2/81ZMv/MWTX/+Orl//39/f/+/v3//v79//39/f/X19f/Hh4e/wAAAP4AAADlAAAAtwAA
AHwAAABGAAAAIAAAADQAAABjAAAAmAAAAMwAAAD6HR0d/9ra2v/+/v7//v79//7+/v/+/v7//v7+//rN
uP/0kGL/9JJl//SUaP/0lWr/9JVr//SWa//0lWr/85No//GPZP/ui2D/64dc/+mCV//mfVP/43lO/+B0
Sv/ecEf/22xD/9loQP/WZDz/0mA5/9BcNf/NWTL/6LSj//7+/v/+/v7//v7+//7+/v/+/v7/2NjY/xwc
HP8AAAD8AAAA2AAAAKAAAABmAAAANQAAAEMAAAB5AAAAugAAAPofHx/+2tra//7+/v/+/v7//v7+//7+
/v/+/v7//v7+//ixkf/0k2f/9JZr//WYb//1mnH/9Zpx//Wacf/1mXD/9Jhv//SWbP/xkWf/74xi/+yH
Xf/pglj/5n1T/+N5T//hdEr/3nBH/9xsQ//ZaD//1WQ8/9JfOf/QXDX/3Ypv//7+/f/+/v7//v7+//7+
/v/+/v7//f39/9jY2P8dHR3/AAAA+wAAAL8AAAB7AAAAQwAAAEEAAACNAAAA9h8fH//Z2dn//v7+//39
/f/9/f3//v7+//7+/f/+/v7//v7+//ahe//0lmz/9Ztx//Wedv/1n3j/9aB5//Wgef/1n3j/9Z11//Wb
cv/0mG7/8pJp/++NY//siF3/6YJY/+Z9U//jeU7/4XRK/95wRv/bbEP/2Gc//9VjPP/SXzj/13JQ//7+
/f/+/v7//v7+//7+/v/+/v7//f39//39/f/X19f/HR0d/wAAAPYAAACOAAAAQQAAAFQAAADvHR0d/9ra
2v/9/f3//v7+//39/f/9/f3//f39//39/f/+/v3//f39//Wbcv/1m3L/9aB5//akf//2poL/9qeD//an
g//2pYH/9aN9//Wgef/1nXX/9Jlw//KTaf/vjWL/64dc/+iBV//mfVL/43hO/+FzSf/eb0b/22tC/9dn
Pv/VYzv/1WdB//39/f/+/v3//v79//39/f/9/f3//f39//39/f/9/f3/2NjY/xwcHP8AAADvAAAAVAAA
AEMAAADrHh4e/tvb2//+/v7//v7+//7+/v/+/v3//v7+//7+/v/+/v7//v79//aed//1oHn/9qeD//es
iv/3r47/97CQ//ewkP/3roz/9qqI//angv/2onz/9Z52//SZcP/ykmj/7oxh/+uHXP/pgVb/5nxS/+R4
Tf/hc0n/3m9G/9prQf/YZj7/2GtE//7+/f/+/v3//v79//7+/v/+/v7//f39//7+/v/9/f3/2tra/x0d
Hf4AAADqAAAAQQAAAAwAAABGAAAA6yAgIP7a2tr//v7+//39/f/9/f3//v79//7+/f/+/v7//f39//eq
iP/2pYH/966N//i1l//4uJz/+Lqe//i6nf/4t5n/97KT//etjP/2p4T/9aJ8//Wddf/0l27/8ZFm/+6L
YP/rhVr/6YBV/+Z7UP/kd0z/4XJI/91uRP/aakD/3ntX//39/f/+/v3//v79//7+/f/+/v3//f39//39
/f/Z2dn/Hx8f/gAAAOsAAABIAAAADAAAAAMAAAAMAAAARQAAAO0gICD+29vb//39/f/9/f3//v79//7+
/f/+/v3//v79//i9ov/2qoj/97WX//i+o//4wqr/+cSt//nEq//4wKf/+Luf//e0lv/3rYz/9qaC//Wg
ef/1m3L/85Vr//CPZP/uiV7/64RY/+l/U//me0//43ZL/99xRv/dbUP/5pZ5//7+/f/+/v3//v79//7+
/f/+/v3//f39/9nZ2f8fHx//AAAA7wAAAFQAAAASAAAABAAAAAAAAAADAAAADAAAAEUAAADrHh4e/tvb
2//+/v7//v7+//7+/v/+/v7//v79//vXx//3r47/+Lyg//nGr//5zLj/+s+7//nNuf/5ybP/+MOr//i7
oP/3s5T/9qqI//ajfv/1nXX/9Jhu//OTaP/wjWL/7ohc/+uDV//pflL/5XlO/+J1Sf/gcUb/8b+r//7+
/f/+/v3//v79//7+/v/+/v7/2tra/x0dHf8AAADzAAAAcQAAACMAAAAJAAAAAQAAAAAAAAAAAAAAAwAA
AA0AAABJAAAA7CAgIP/a2tr//v79//7+/f/+/v3//v79//308P/4tJb/+MCm//nMuP/61MP/+tfH//rW
xf/60b7/+cm0//jAp//4t5r/966N//amgf/1n3j/9Zlw//SVav/zkWX/8Yxf/+6HWv/rglX/6H1Q/+V4
TP/keE7/++3o//39/f/+/v3//v7+//7+/f/Z2dn/Hx8f/wAAAPgAAACeAAAASgAAABsAAAAGAAAAAAAA
AAAAAAAAAAAAAAAAAAQAAAASAAAAVQAAAP8gICD/29vb//7+/f/+/v3//f39//7+/f/60L3/+MCn//rO
u//62Mn/+9zP//vbzf/61sX/+c25//nErP/4up7/97CQ//eng//2oHn/9Zpx//WWa//0k2b/9I9i//GK
Xf/uhVj/64BT/+h8T//vqo3//v79//39/f/9/f3//v7+/9ra2v8fHx//AAAA/wAAAMwAAACFAAAARAAA
ABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAJAAAAIwAAAP8AAAD/Hh4e/9vb2//+/v7//v79//7+
/v/99vL/+cOq//nLt//618f/+93P//vcz//618f/+s+7//nFrf/4up7/97CQ//enhP/1oHn/9Zpx//SV
a//0kmb/9JBj//ONX//wiFr/7YNV/+yIXf/87+r//v7+//7+/f/+/v3/2tra/x0dHf8AAAD/AAAA/wAA
AMEAAACBAAAAQgAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGwAAAP9EJhn/EgoG/yAg
IP/a2tr//v7+//7+/v/+/v7//Ong//nFrv/50L3/+tfH//vYyf/61MP/+cy4//nDq//4uZz/96+P//an
g//1oHn/9Zpw//SVav/0kmX/9I9i//ONX//yi1z/8IdZ//nWxv/+/v7//v7+//7+/f/Z2dn/Hx8f/xMK
B/9FJxn/AAAA/wAAAL4AAACAAAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAA
AP9yQCr/sWRB/xEJBv8gICD/29vb//7+/f/+/v7//v7+//zj2P/4xa7/+cu3//nOu//5zLj/+cav//i+
pP/3tZf/9qyK//akf//1nnb/9Zhu//SUaP/0kWP/9I5g//OMXf/zjF7/+s25//7+/f/+/v7//v79/9ra
2f8fHx//EQoG/7JlQv9yQCr/AAAA/wAAAL4AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAGAAAAGAAAAP93Qyz/6INW/7FkQf8SCgb/Hh4e/9vb2//+/v7//v7+//7+/v/86eD/+cKq//jA
p//4v6b/+Lug//e1mP/3ro3/9qeD//Wgev/1mnH/9JVq//SSZf/0j2H/841f//WUaP/72Mj//v7+//7+
/v/+/v7/2tra/x0dHf8TCwf/smVC/+iCVv93Qyz/AAAA/wAAAL4AAAB/AAAAQQAAABgAAAAGAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAAAP95RC3/8IdZ/+eCVv+wY0H/EgoG/yAgIP/a2tr//v7+//7+
/f/+/v7//fby//rQvf/3tJX/9q6O//aqiP/2pYH/9aB5//Wbcv/0lmz/9JJm//SPYv/0kWT/+LeZ//3x
6//+/v3//v7+//7+/v/Z2dn/IB8f/xMLB/+yZEL/54JW//CHWf95RC3/AAAA/wAAAL4AAAB/AAAAQQAA
ABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAAAP96RS3/84la//CHWf/nglb/sWRB/xEK
Bv8gICD/29vb//7+/f/+/v7//v7+//7+/f/99PD/+9fH//m+o//3q4j/9p53//Wbcv/2oXv/+LGR//rN
uP/98ev//v79//7+/f/9/f3//v7+/9ra2v8gIB//EgoG/7JlQv/nglb/8IdZ//OJWv95RC3/AAAA/wAA
AL4AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAAAP96RS3/84la//OJ
Wv/wh1n/6INW/7FkQf8SCgb/Hh4e/9vb2//+/v7//v79//39/f/+/v3//v79//7+/f/9/f3//v79//39
/f/+/v7//v7+//7+/v/+/v3//f39//7+/f/9/f3/2tra/x0dHf8TCgf/smVC/+iCVv/wh1n/84la//OJ
Wv95RC3/AAAA/wAAAL0AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAA
AP96RS3/84la//OJWv/ziVr/8IdZ/+eCVv+wY0H/EgoG/yAgIP/a2tr//v7+//39/f/+/v3//v7+//7+
/f/+/v7//v7+//7+/f/+/v7//v7+//7+/v/+/v3//f39//7+/v/Z2dn/Hx8f/xMKB/+yZEL/54JW//CH
Wf/ziVr/84la//OJWv95RC3/AAAA/wAAALkAAAB9AAAAQAAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAFAAAAFgAAAP96RS3/84la//OJWv/ziVr/84la//CHWf/nglb/sWRB/xEJBv8gICD/29vb//7+
/f/+/v3//v7+//7+/f/+/v3//v7+//39/f/+/v3//v79//7+/v/+/v7//f39/9ra2v8gHx//EQoG/7Jl
Qv/nglb/8IdZ//OJWv/ziVr/84la//OJWv95RC3/AAAA/wAAAKwAAABzAAAAOwAAABYAAAAFAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAEAAAAEgAAAP96RS3/84la//OJWv/ziVr/84la//OJWv/wh1n/6INW/7Fk
Qf8SCgb/Hh4e/9vb2//+/v3//v79//7+/f/+/v3//v79//39/f/+/v7//v79//7+/v/+/v3/2trZ/x0d
Hf8TCwf/smVC/+iCVv/wh1n/84la//OJWv/ziVr/84la//OJWv95RC3/AAAA/wAAAI0AAABfAAAAMQAA
ABIAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAADAAAAP89Ihb/ekUt/3pFLf96RS3/ekUt/3pF
Lf95RC3/d0Ms/3JAKv9EJhn/AAAA/yAgIP/a2tr//v7+//39/f/9/f3//v79//39/f/+/v3//v7+//7+
/v/Z2dn/Hx8f/wAAAP9FJxn/ckAq/3dDLP95RC3/eUQt/3lELf95RC3/eUQt/3lELf88Ihb/AAAA/wAA
AF8AAABAAAAAIQAAAAwAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABgAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8gICD/29vb//39/f/9/f3//v7+//39
/f/9/f3//v7+/9ra2v8fHx//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAADEAAAAhAAAAEQAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA
AAYAAAAMAAAAEgAAABYAAAAXAAAAGAAAABgAAAAYAAAAGAAAABgAAAAbAAAAIwAAAFUAAADsHh4e/tvb
2//+/v7//v7+//7+/v/+/v7/2tra/h0dHf8AAADrAAAAVAAAACMAAAAbAAAAGAAAABgAAAAYAAAAGAAA
ABgAAAAYAAAAGAAAABgAAAAXAAAAFgAAABIAAAAMAAAABgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAUAAAAFAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAACQAA
ABIAAABJAAAA6yAgIP7a2tr//v7+//39/f/Z2dn/Hx8f/gAAAOoAAABIAAAAEgAAAAkAAAAGAAAABgAA
AAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAFAAAABQAAAAQAAAADAAAAAQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAQAAAAQAAAANAAAARQAAAO0gICD+29vb/tra2v4fHx/+AAAA7AAAAEQAAAANAAAABAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAADAAAAEIAAADqHh4e/h0dHf4AAADpAAAAQQAA
AAwAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAkAAAA9AAAA6QAA
AOgAAAA7AAAACQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAIAAAAFAAAANAAAADMAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAO/AAAAAAH
AA74AAAAAAMADvAAAAAAAQAO8AAAAAABAA7wAAAAAAEADvAAAAAAAQAO8AAAAAABAA7wAAAAAAEADvAA
AAAAAQAO8AAAAAABAA7wAAAAAAEADvAAAAAAAQAO4AAAAAABAA7AAAAAAAEADoAAAAAAAQAOAAAAAAAA
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
/f/9/f3//f39//39/f/9/f3//f39//7+/f/9/f3//f39//r6+v9lZWX/AgEB/y4aEP9kOCX/mVY4/8Vv
Sf+nXj7/AAAA/wAAALgAAABsAAAAKgAAAAoAAAABAAAAAAAAAAAAAAAAAAAABAAAABoAAAD/kFE1/5hW
OP9jNyT/LRkQ/wIBAf9oaGj/+/v7//7+/v/+/v3//fr4//TOwP/pn4T/335a/9hrRP/VZ0H/13NS/96S
ef/txbj//Pn3//7+/f/9/f3/+/v7/2VlZf8CAQH/LRkQ/2M3JP+YVjj/kFE1/wAAAP8AAAC5AAAAbAAA
ACoAAAAKAAAAAQAAAAAAAAAAAAAAAQAAAAkAAAAnAAAA/209KP9jOCT/LRkQ/wIBAf9oaGj/+/v7//7+
/f/+/v7/+NXG/+qKY//idUn/33BF/9xsQv/ZaD//1mQ8/9JfOP/PWzX/zFcx/9BpSf/tx7v//v79//7+
/v/7+/v/ZWVl/wIBAP8tGRD/Yzgk/209KP8AAAD/AAAAvQAAAG4AAAAqAAAACgAAAAEAAAAAAAAAAQAA
AAUAAAAXAAAAQgAAAP9FJxn/LRkQ/wIBAf9nZ2f//Pz8//7+/v/9/Pz/97uh/+yCVP/pfVD/5XpN/+J1
Sv/gcUf/3W1E/9lpQP/VZDz/0l85/89bNf/MVzH/yVMv/+Cdif/9/Pz//v7+//v7+/9lZWX/AgEB/y0Z
EP9FJxn/AAAA/wAAAMQAAAB2AAAALgAAAAoAAAABAAAAAAAAAAUAAAATAAAAMwAAAGwAAAD/HBAK/wIB
Af9oaGj/+/v7//7+/f/+/v3/+b6k//KKW//vhlj/7INW/+l/U//me0//43dM/+BySP/dbkX/2WlA/9Zl
PP/TYDn/z1s1/8xXMf/JUy7/4J2J//7+/f/+/v3/+/v6/2ZmZf8CAQH/HBAK/wAAAP8AAADRAAAAhwAA
ADkAAAAOAAAAAQAAAAUAAAATAAAAMAAAAGEAAACeAAAA/wAAAP9nZ2f/+/v7//7+/f/+/v3/+9rK//OM
Xv/zjF7/8oxe//CJXP/thVj/6YBV/+d8Uf/keE3/4HNJ/91uRf/aaUH/1mU9/9NgOf/PWzb/zFcx/8lU
L//tx7v//v79//39/f/7+/v/ZWVl/wAAAP8AAAD/AAAA4AAAAKEAAABSAAAAHAAAAAUAAAASAAAAMAAA
AGAAAACZAAAA0gAAAP9oaGj/+/v7//39/f/9/f3//fv5//Wcc//zjmD/9I9h//SPY//zj2L/8Itf/+2H
W//qglf/531S/+R4Tv/gc0r/3W9F/9pqQf/WZT3/02A5/89bNv/MVzH/0GlJ//z59//9/f3//v79//v7
+/9lZWX/AAAA/wAAAPAAAADCAAAAeQAAADgAAAATAAAAKgAAAFoAAACVAAAAzwAAAPxoaGj/+/v7//7+
/v/+/v7//v79//vYyP/0j2H/9JFk//SSZv/0k2f/9JNo//OSZv/wjWL/7Yhd/+qDWP/nflP/43hO/+Bz
Sv/dbkX/2mpB/9ZlPf/TYDn/z1s1/8xXMf/txbj//f39//7+/v/+/v3/+/v6/2VlZf8AAAD+AAAA4QAA
AKUAAABgAAAAKgAAAEIAAACBAAAAxwAAAPxnZ2f/+/v7//7+/v/+/v7//v7+//7+/v/4tpj/9JJl//SV
av/0l23/9Jhu//WYbv/0l23/85Rq//CPZf/til//6oRZ/+d+VP/jeU7/4HNK/91vRf/aaUH/1mU9/9Jf
Of/PWzX/35J5//7+/f/+/v7//v7+//7+/v/7+/v/ZWVl/wAAAP0AAADOAAAAhQAAAEIAAABIAAAAoAAA
APpoaGj/+/v7//7+/v/+/v3//v7+//7+/v/+/v7/9qJ8//SWbP/1m3L/9Z11//Wed//1nnf/9Z11//Wb
cv/0l27/8ZFn/+6LYP/qhFr/535U/+N5T//gc0r/3W5F/9ppQf/WZDz/0l84/9dzUv/9/f3//v7+//7+
/v/+/v7//f39//v7+/9lZWX/AAAA+wAAAKMAAABIAAAAYQAAAPRnZ2f/+/v7//7+/v/9/f3//f39//39
/f/+/v3//f39//Wacv/1nHT/9aJ8//algP/2poL/9qaC//akf//1oXv/9Z12//SZb//xkmj/7Ytg/+mE
Wf/nflP/43hO/+BzSf/dbkX/2WlA/9VkPP/VZ0H//f39//7+/f/9/f3//f39//39/f/9/f3/+vr6/2Vl
Zf8AAAD0AAAAYQAAAEwAAADxaGho/vv7+//+/v7//v7+//7+/f/+/v7//v7+//7+/f/2n3j/9qN9//ar
iP/3r4//97GR//exkf/3roz/9qmG//akf//1n3f/9Jlw//GRZ//til//6oNY/+d9Uv/keE3/4XJJ/91t
RP/ZaD//2GtE//39/f/+/v3//v79//7+/v/9/f3//v7+//v7+/9nZ2f+AAAA8AAAAEsAAAAKAAAATgAA
APFpaWn++/v7//39/f/9/f3//v7+//7+/f/9/f3/962M//aqh//3tJb/+Lqf//i9ov/4vKH/97ib//ey
k//2q4n/9qR+//Wddf/0l23/8I9k/+2IXf/qglf/53xR/+N3TP/fcUf/3GxC/99+Wv/9/f3//v79//7+
/f/+/v3//f39//v7+/9oaGj+AAAA8gAAAFIAAAALAAAAAgAAAAoAAABOAAAA8WhoaP78/Pz//f39//7+
/v/+/v3//v79//nErP/3sJD/+L6j//nGr//5ybT/+ciy//jDq//4u6D/97KT//aphv/1oXv/9Zpx//OU
af/wjWH/7Ydb/+qAVf/ne0//4nVK/99wRf/pn4T//f39//7+/f/+/v3//v7+//v7+/9nZ2f/AAAA9QAA
AGcAAAATAAAAAwAAAAAAAAACAAAACgAAAFAAAADxaWlp//v7+//+/v3//v7+//7+/f/84tb/97WX//nF
rv/60L7/+tXE//rTwf/5zbj/+MOr//i4nP/3ro3/9qR///WddP/0l2z/85Jm//CLX//thVj/6n9T/+Z6
Tv/idEj/9M/A//39/f/+/v7//v79//v7+/9oaGj/AAAA+QAAAJMAAAAyAAAADAAAAAEAAAAAAAAAAAAA
AAIAAAAOAAAAWwAAAP9paWn//Pz8//7+/f/+/v3//fv6//nBp//5x7H/+tbF//vczv/72sz/+tPB//nI
sv/5vaL/97GR//amgv/2nnf/9Zhu//STaP/zj2P/8Ilc/+yDVv/pflH/6Ypj//36+P/9/f3//v79//v7
+/9oaGj/AAAA/wAAAMkAAABxAAAAKwAAAAoAAAABAAAAAAAAAAAAAAAAAAAABQAAAB8AAAD/AQAA/2ho
aP/7+/v//v79//7+/v/86N//+cSt//rTwv/73M7/+9zO//rVxP/5yrT/+L2j//exkf/2p4P/9Z53//WY
bv/0k2f/9JBj//KNXv/vh1n/7IJU//jVx//+/v3//v79//v7+/9nZ2f/AQEA/wAAAP8AAAC6AAAAbQAA
ACoAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAXAAAA/3E/Kf8MBwT/aWlp//v7+//+/v7//v7+//vc
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
AEsAAAAKAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAACAAAACQAAAEgAAADwAAAA7wAAAEYAAAAJAAAAAgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAAAFAAAAPwAAAD0AAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/gAAAA//AA7wAAAAA/8ADvAAAAAB/wAO4AAAAAH/
AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAD/AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAD/AA7gAAAAAP8ADsAA
AAAA/wAOgAAAAAD/AA6AAAAAAP8ADgAAAAAA/wAOAAAAAAD/AA4AAAAAAP8ADgAAAAAA/wAOAAAAAAD/
AA4AAAAAAP8ADgAAAAAA/wAOAAAAAAD/AA4AAAAAAP8ADoAAAAAA/wAOwAAAAAD/AA7gAAAAAP8ADuAA
AAAA/wAO4AAAAAD/AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAD/AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAH/
AA7gAAAAAf8ADvAAAAAB/wAO+AAAAAf/AA7//gB///8ADv//AP///wAO//+B////AA4oAAAAIAAAAEAA
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAA
AAEAAAABAAAAAQAAAAIAAAAHAAAAGwAAAEgAAACIAAAAxQAAAMUAAACHAAAARwAAABsAAAAHAAAAAgAA
AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABgAA
AA0AAAARAAAAEwAAABMAAAATAAAAGAAAACoAAABUAAAAkQAAANINDQ39DAwM/QAAANIAAACQAAAAUwAA
ACoAAAAYAAAAEwAAABMAAAATAAAAEwAAABMAAAARAAAADQAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAA
AAYAAAAZAAAANwAAAEoAAABQAAAAUAAAAFQAAABhAAAAfwAAAKwAAADcDQ0N/cLCwv/BwcH/DAwM/QAA
ANwAAACsAAAAfwAAAGEAAABUAAAAUAAAAFAAAABQAAAAUAAAAEoAAAA3AAAAGQAAAAYAAAAAAAAAAAAA
AAAAAAABAAAADQAAADcAAAB4AAAAogAAAK4AAACwAAAAtgAAAMMAAADYAAAA7g0NDf7CwsL//f39//39
/f/BwcH/DAwM/gAAAO4AAADYAAAAwwAAALYAAACwAAAArwAAAK8AAACuAAAAogAAAHgAAAA3AAAADQAA
AAEAAAAAAAAAAAAAAAEAAAARAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8NDQ3/wsLC//39
/f/9/f3//f39//39/f/BwcH/DAwM/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAA
AEoAAAARAAAAAQAAAAAAAAAAAAAAAQAAABMAAAD/84la/+6GWP/be1H/r2NB/3A/Kf8tGRD/Dg4N/8PD
wv/+/v3//v79//7+/f/9/f3//v7+//7+/v/BwcH/Dg0N/y0ZEP9wPyn/sGNB/9t8Uf/uhlj/84la/wAA
AP8AAACuAAAAUAAAABMAAAABAAAAAAAAAAAAAAABAAAAEwAAAP/uhlj/23tR/7BjQf9wPyn/LRkQ/w4O
Df/Dw8P//v7+//7+/f/+/v3//v79//39/f/+/v7//v7+//39/f/BwcH/Dg0M/y0ZEP9xPyn/sGNB/9t8
Uf/uhlj/AAAA/wAAAK8AAABQAAAAEwAAAAEAAAAAAAAAAAAAAAEAAAATAAAA/9t8Uf+wY0H/cUAp/y0Z
EP8ODg3/w8PC//7+/f/9/f3//v79//7+/f/9/f3//f39//7+/f/+/v3//f39//39/f/BwcH/Dg0N/y0Z
EP9xQCr/sGNB/9t8Uf8AAAD/AAAArwAAAFAAAAATAAAAAQAAAAAAAAAAAAAAAgAAABgAAAD/r2NB/3A/
Kf8tGRD/Dg4N/8PDw//+/v7//v79//nm3v/trZT/4YNh/9lrRP/VZkD/13ZW/+GeiP/14Nn//v79//7+
/f/BwcH/Dg0N/y0ZEP9wPyn/sGNB/wAAAP8AAACwAAAAUAAAABMAAAABAAAAAAAAAAAAAAAHAAAAKgAA
AP9wPyn/LRkQ/w4ODf/Dw8P//v7+//36+P/ztZr/53tO/+J1Sf/ecEX/22tB/9ZlPf/SXzn/zlo0/8tW
Mf/fmYT//Pn3//7+/v/BwcH/Dg0M/y0ZEP9wPyn/AAAA/wAAALYAAABUAAAAEwAAAAEAAAAAAAAABQAA
ABsAAABUAAAA/y0ZEP8ODg3/w8PC//7+/v/9+vn/9qiG/+6FV//qgFP/53tQ/+N2S//fcUf/22tC/9dm
Pf/SYDn/zlo0/8pVL//Xf2T//Pn3//7+/f/BwcH/Dg0M/y0ZEP8AAAD/AAAAwwAAAGEAAAAYAAAAAgAA
AAUAAAAZAAAARwAAAJAAAAD/Dg4N/8PDw//+/v7//v79//i7oP/zjF3/8oxe/++IWv/rg1b/531S/+R3
Tf/fcUj/22xD/9dmPv/TYDn/zlo0/8pVMP/fmYT//v79//39/f/BwcH/Dg0N/wAAAP8AAADYAAAAfwAA
ACoAAAAGAAAAGAAAAEYAAACKAAAA0g0NDf/Dw8L//f39//39/f/86uL/9I5g//SPYv/0kGP/849j/++K
Xv/shVn/6H9U/+R4Tv/fckj/22xD/9dmPv/TYDn/z1s1/8tWMf/14Nn//f39//7+/f/BwcH/DAwM/wAA
AO4AAACsAAAAUwAAABkAAAA6AAAAgQAAAM4NDQ39w8PD//7+/v/+/v7//v7+//i+pP/0kWT/9JNo//SV
af/0lWr/85Nn/++NYv/shlv/6H9V/+N5Tv/fckj/22xD/9dmPv/TYDn/zlo0/+GeiP/+/v3//v7+//7+
/v/BwcH/DAwM/gAAANsAAACJAAAAOgAAAFAAAAC1DQ0N/cPDw//+/v7//v7+//7+/v/+/v7/9qR///SW
a//1mnH/9Ztz//Wbc//1mnH/9JZs//CPZf/sh13/54BV/+N5T//fckj/22xD/9dmPv/SXzj/13dW//7+
/f/+/v7//v7+//39/f/BwcH/DAwM/QAAALkAAABRAAAAcA0NDfrDw8P//v7+//39/f/+/v3//v79//39
/f/1mnH/9Z52//ajfv/2pYH/9qWA//aifP/1nnb/9Jhv//CQZv/rh13/539V/+N4Tv/fckj/22tC/9Zl
Pf/VZkD//f39//39/f/+/v3//f39//39/f/BwcH/DAwM+gAAAHAAAABVDQ0N9sPDw//+/v7//f39//7+
/v/+/v7//v79//agev/2p4P/96+P//eyk//3spL/962M//ang//2oHn/9Jlv//CPZP/rhlv/6H5U/+R3
Tf/gcUf/2mpB/9lsRf/+/v3//v79//7+/v/9/f3//f39/8PDw/8NDQ32AAAAVAAAAAgAAABWDQ0N9sPD
w//9/f3//v79//7+/f/+/v3/97KT//exkf/4vaL/+cGo//jAp//4up7/97GR//ang//1nnb/85Zs/++N
Yf/rhFn/531S/+N2S//eb0X/4YNh//7+/f/+/v3//v79//39/f/CwsL/DQ0N+AAAAF8AAAAJAAAAAQAA
AAgAAABXDQ0N98PDw//+/v3//v79//7+/f/6zrr/+Lqd//nKtP/60L7/+c67//nGr//4up7/962M//ai
fP/1mXD/85Jn/++KXv/rg1b/53xQ/+J1Sf/trZT//v79//7+/v/+/v3/wsLC/w0NDfsAAACFAAAAGgAA
AAIAAAAAAAAAAQAAAAkAAABgDQ0N/8TEw//+/v3//v79//3w6v/4vaP/+tG+//vazP/72cr/+s+7//nB
p//3spL/9qWA//Wbc//0lWr/849j/++IW//rgVT/53tP//nm3v/9/f3//v7+/8PDwv8NDQ3/AAAAxAAA
AFUAAAATAAAAAQAAAAAAAAAAAAAAAgAAABoAAAD/FREQ/8TEw//+/v7//v7+//vZyf/5zbn/+9rM//vb
zP/60L7/+cKp//ezk//2pYH/9Ztz//SVaf/0kGP/8oxe/+6FV//ztZr//v7+//7+/f/Dw8P/FREQ/wAA
AP8AAACxAAAAUQAAABMAAAABAAAAAAAAAAAAAAABAAAAEwAAAP+hWjv/FREQ/8TEw//+/v3//vz7//rT
wf/5zbn/+tG+//nKtP/4vaL/96+P//ajfv/1mnH/9JNo//SPYf/zjF3/9qmG//36+f/+/v7/w8PC/xUR
EP+iWzz/AAAA/wAAAK8AAABQAAAAEwAAAAEAAAAAAAAAAAAAAAEAAAATAAAA/+yFWP+hWzv/FREQ/8TE
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
rEGAAKxBgACsQYAArEHAAaxB/D+sQQ==
</value>
</data>
</root>
\ No newline at end of file
......@@ -63,7 +63,7 @@ namespace OnlineStore.AutoInOutStore
else
{
// this.DialogResult = DialogResult.No;
MessageBox.Show("请输入正确的密码");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.PWPwd,"请输入正确的密码"));
txtPwd.Focus();
}
}
......
......@@ -98,7 +98,59 @@ namespace OnlineStore.AutoInOutStore
timer1.Enabled = true;
}
#endregion
private string WaitStart = ResourceCulture.GetString(ResourceCulture.WaitStart, "等待启动");
private string dooropen = ResourceCulture.GetString(ResourceCulture.DoorOpen, " 前门未关");
private string HasWare = ResourceCulture.GetString(ResourceCulture.HasWare, " 叉子料盘检测有料,请检查");
private string StartAuto = ResourceCulture.GetString(ResourceCulture.StartAuto,"开始自动出入库");
private string StopAuto = ResourceCulture.GetString(ResourceCulture.StopAuto, "停止自动出入库");
private string AutoOut = ResourceCulture.GetString(ResourceCulture.AutoOut, "自动出库:");
private string AutoIn = ResourceCulture.GetString(ResourceCulture.AutoIn, "自动入库:");
public static string cannotMove = ResourceCulture.GetString(ResourceCulture.CannotMove, "定位气缸不在下降端,不能移动进出轴");
public static string warn = ResourceCulture.GetString(ResourceCulture.WarnMsg, "警告");
public void processMenu()
{
string className = this.ClassName;
CurrLanguage = ResourceCulture.CurrLanguage;
ResourceCulture.GetString(ResourceCulture.CannotMove, "定位气缸不在下降端,不能移动进出轴");
warn = ResourceCulture.GetString(ResourceCulture.WarnMsg, "警告");
WaitStart = ResourceCulture.GetString(ResourceCulture.WaitStart, "等待启动");
dooropen = ResourceCulture.GetString(ResourceCulture.DoorOpen, " 前门未关");
HasWare = ResourceCulture.GetString(ResourceCulture.HasWare, " 叉子料盘检测有料,请检查");
StartAuto = ResourceCulture.GetString(ResourceCulture.StartAuto,StartAuto);
StopAuto = ResourceCulture.GetString(ResourceCulture.StopAuto, StopAuto);
AutoOut = ResourceCulture.GetString(ResourceCulture.AutoOut, "自动出库:");
AutoIn = ResourceCulture.GetString(ResourceCulture.AutoIn, "自动入库:");
摄像机调试ToolStripMenuItem.Visible = CurrLanguage.Equals(ResourceCulture.China);
toolStripSeparator10.Visible = CurrLanguage.Equals(ResourceCulture.China);
richTextBox1.Visible = CurrLanguage.Equals(ResourceCulture.China);
ToolStripItemCollection collection = menuStrip1.Items;
for (int i = 0; i < collection.Count; i++)
{
if (collection[i] is ToolStripMenuItem)
{
string newStr = ResourceCulture.GetString(ResourceCulture.GetTextIdStr(className, collection[i].Name), collection[i].Text);
collection[i].Text = newStr;
ToolStripMenuItem a = (ToolStripMenuItem)collection[i];
ToolStripItemCollection newColl = a.DropDownItems;
for (int ii = 0; ii < newColl.Count; ii++)
{
if (newColl[ii] is ToolStripMenuItem)
{
newStr = ResourceCulture.GetString(ResourceCulture.GetTextIdStr(className, newColl[ii].Name), newColl[ii].Text);
newColl[ii].Text = newStr;
}
}
}
}
显示ToolStripMenuItem.Text = ResourceCulture.GetString(ResourceCulture.GetTextIdStr(className, 显示ToolStripMenuItem.Name), 显示ToolStripMenuItem.Text);
toolStripMenuItem1.Text = ResourceCulture.GetString(ResourceCulture.GetTextIdStr(className, toolStripMenuItem1.Name), toolStripMenuItem1.Text);
notifyIcon1.Text = this.Text;
}
private void start_button_Click(object sender, EventArgs e)
{
......@@ -187,7 +239,7 @@ namespace OnlineStore.AutoInOutStore
//判断私服是否打开、
if (ACServerManager.ServerOnStatus(portName, SlvAddr))
{
lblServerOn.Text = "伺服ON";
lblServerOn.Text = ResourceCulture.GetString(ResourceCulture.servoON, "伺服ON");
int lOutPulse = ACServerManager.GetTargetPosition(portName, SlvAddr);
lblOutPulse.Text = string.Format("{0:d}", lOutPulse);
int lCountPulse = ACServerManager.GetActualtPosition(portName, SlvAddr);
......@@ -195,7 +247,7 @@ namespace OnlineStore.AutoInOutStore
}
else
{
lblServerOn.Text = "伺服OFF";
lblServerOn.Text =ResourceCulture.GetString(ResourceCulture.ServoOff, "伺服OFF");
}
}
}
......@@ -239,19 +291,19 @@ namespace OnlineStore.AutoInOutStore
}
}
lblWarnMsg.Text = store.WarnMsg;
string deviceMsg = "叉子上有料盘,请打开仓门检查";
//string deviceMsg = "叉子上有料盘,请打开仓门检查";
if (store.storeRunStatus.Equals(StoreRunStatus.Runing) && store.StoreMove.MoveType.Equals(StoreMoveType.None) && KND.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
{
lblWarnMsg.Text = lblWarnMsg.Text + deviceMsg;
lblWarnMsg.Text = lblWarnMsg.Text + HasWare;
}
if (store.autoNext)
{
string msg = store.autoMsg;
lblMsg.Text = msg;
if (btnStartAuTo.Text.Equals("开始自动出入库"))
if (btnStartAuTo.Text.Equals(StartAuto))
{
btnStartAuTo.Text = "停止自动出入库";
btnStartAuTo.Text = StopAuto;
}
try
{
......@@ -268,18 +320,18 @@ namespace OnlineStore.AutoInOutStore
else
{
// lblMsg.Text = "没有开启自动出入库";
if (btnStartAuTo.Text.Equals("停止自动出入库"))
if (btnStartAuTo.Text.Equals(StopAuto))
{
btnStartAuTo.Text = "开始自动出入库";
btnStartAuTo.Text =StartAuto;
}
}
}
else
{
lblThisSta.Text = "等待启动";
lblThisSta.Text = WaitStart;
lblWarnMsg.Text = "";
btnStartAuTo.Text = "开始自动出入库";
lblDoorStatus.Text = "仓门状态未知";
btnStartAuTo.Text =StartAuto;
lblDoorStatus.Text =ResourceCulture.GetString(ResourceCulture.NoDoorStatus, "仓门状态未知");
}
}catch(Exception ex)
{
......@@ -299,8 +351,8 @@ namespace OnlineStore.AutoInOutStore
lblDoorStatus.Text = map[ParamDefine.doorStatus];
lblOutInfo.Visible = !lblWaitTragGo.Visible;
lblOutInfo.Text = "批量出入库信息: 入库:" + AutomaticBaiting.BatchInStoreCount + "盘共" + AutomaticBaiting.BatchInStoreHeight + "mm," +
"出库: " + AutomaticBaiting.BatchOutStoreCount + "盘共" + AutomaticBaiting.BatchOutStoreHeight + "mm";
lblOutInfo.Text = ResourceCulture.GetString(ResourceCulture.InstoreInfo,"批量出入库信息: 入库:" )+ AutomaticBaiting.BatchInStoreCount + "," + AutomaticBaiting.BatchInStoreHeight + "mm," +
ResourceCulture.GetString(ResourceCulture.oustore , "出库: ") + AutomaticBaiting.BatchOutStoreCount + "," + AutomaticBaiting.BatchOutStoreHeight + "mm";
bool isRun = HumitureController.IsRun;
btnSelTemp.Enabled = isRun;
......@@ -384,7 +436,7 @@ namespace OnlineStore.AutoInOutStore
lblCountPulse.Text = lblCountPulse5.Text;
}
}
lblAxisStatus.Text = "最后一次更新时间:" + DateTime.Now.ToLongTimeString();
lblAxisStatus.Text = ":" + DateTime.Now.ToLongTimeString();
}
private void Bt_ClearCounter_Click(object sender, EventArgs e)
......@@ -396,22 +448,7 @@ namespace OnlineStore.AutoInOutStore
//KTKSMCManager.WSetOutPulse(portName, SlvAddr, 0);
}
private void FunctionFail(System.Int32 ReturnCode)
{
if (ReturnCode != 0)
{
MessageBox.Show("错误码:" + ReturnCode.ToString(), "", MessageBoxButtons.OK);
LogUtil.error(LOGGER, "错误码:" + ReturnCode.ToString());
}
}
private void FunctionFail(string funName, System.Int32 ReturnCode)
{
if (ReturnCode != 0)
{
MessageBox.Show("方法:" + funName + ",错误码:" + ReturnCode.ToString(), "", MessageBoxButtons.OK);
LogUtil.error(LOGGER, "方法:" + funName + ",错误码:" + ReturnCode.ToString());
}
}
private void FrmTest_FormClosing(object sender, FormClosingEventArgs e)
{
......@@ -431,13 +468,14 @@ namespace OnlineStore.AutoInOutStore
}
else
{
MessageBox.Show("请先启动料仓!");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.PleaseStartStore, "请先启动料仓!"));
}
}
private void btnInStore_Click(object sender, EventArgs e)
{
MessageBox.Show("此设备不支持单个入库", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.CanotSingleInStore,"此设备不支持单个入库"),
ResourceCulture.GetString(ResourceCulture.MsgTitle,ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示")), MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
if (store.storeRunStatus >= StoreRunStatus.HomeMoving)
{
......@@ -447,7 +485,7 @@ namespace OnlineStore.AutoInOutStore
}
else
{
MessageBox.Show("请先启动料仓!");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.PleaseStartStore, "请先启动料仓!"));
}
}
......@@ -541,7 +579,7 @@ namespace OnlineStore.AutoInOutStore
//}
if (store.Config.InOut_Axis.IsSameAxis(portName,SlvAddr) && (store.InOutAxisCanMove().Equals(false)))
{
MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
MessageBox.Show( cannotMove,warn, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
else if ( store.Config.Middle_Axis.IsSameAxis(portName,SlvAddr ) || store.Config.UpDown_Axis.IsSameAxis(portName,SlvAddr))
......@@ -562,7 +600,7 @@ namespace OnlineStore.AutoInOutStore
int speed = FormUtil.GetIntValue(txtASpeed);
if (store.Config.InOut_Axis.IsSameAxis(portName, SlvAddr) && (store.InOutAxisCanMove().Equals(false)))
{
MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
MessageBox.Show( cannotMove,warn, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
else if (store.Config.Middle_Axis.IsSameAxis(portName, SlvAddr) || store.Config.UpDown_Axis.IsSameAxis(portName, SlvAddr))
......@@ -593,7 +631,7 @@ namespace OnlineStore.AutoInOutStore
if (store.Config.InOut_Axis.IsSameAxis(portName, SlvAddr) && (store.InOutAxisCanMove().Equals(false)))
{
MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
MessageBox.Show( cannotMove,warn, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
else if (store.Config.Middle_Axis.IsSameAxis(portName, SlvAddr) || store.Config.UpDown_Axis.IsSameAxis(portName, SlvAddr))
......@@ -668,7 +706,7 @@ namespace OnlineStore.AutoInOutStore
bool result = CSVPositionReader<AutoStorePosition>.SavePostion(positionConfigFile, ktkPosition);
if (!result)
{
MessageBox.Show("保存位置失败!");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.SaveError, "保存失败"));
}
//料仓固定位置保存
bool needUpdate = false;
......@@ -766,7 +804,8 @@ namespace OnlineStore.AutoInOutStore
{
return true;
}
MessageBox.Show("叉子不在待机位,请先将叉子退回待机位(" + InOutDefaultPosition + ")!", "警告(叉子在待机位时,才能移动升降轴和旋转轴) ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
MessageBox.Show( ResourceCulture.GetString(ResourceCulture.InoutNotOk,"叉子不在待机位,请先将叉子退回待机位")+"(" + InOutDefaultPosition + ")!",
ResourceCulture.GetString(ResourceCulture.InoutWarn,"警告(叉子在待机位时,才能移动升降轴和旋转轴)" ), MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return false;
}
private void btnCloseAxis_Click(object sender, EventArgs e)
......@@ -874,7 +913,7 @@ namespace OnlineStore.AutoInOutStore
{
if (store.InOutAxisCanMove().Equals(false))
{
MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
MessageBox.Show( cannotMove,warn, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int value = FormUtil.GetIntValue(txtInOutP1);
......@@ -885,7 +924,7 @@ namespace OnlineStore.AutoInOutStore
{
if (store.InOutAxisCanMove().Equals(false))
{
MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
MessageBox.Show( cannotMove,warn, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int value = FormUtil.GetIntValue(txtInOutP3);
......@@ -896,7 +935,7 @@ namespace OnlineStore.AutoInOutStore
{
if (store.InOutAxisCanMove().Equals(false))
{
MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
MessageBox.Show( cannotMove,warn, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int value = FormUtil.GetIntValue(txtInOutP2);
......@@ -930,18 +969,18 @@ namespace OnlineStore.AutoInOutStore
private void btnStartAuTo_Click(object sender, EventArgs e)
{
MessageBox.Show("此设备不支持自动出入库", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.CanotSingleInStore,"此设备不支持单个入库"), ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"), MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
if (store.storeRunStatus >= StoreRunStatus.HomeMoving)
{
if (store.autoNext)
{
store.autoNext = false;
btnStartAuTo.Text = "开始自动出入库";
btnStartAuTo.Text = StartAuto;
}
else
{
DialogResult res = MessageBox.Show("确定开始自动出入库?", "提示", MessageBoxButtons.YesNo);
DialogResult res = MessageBox.Show(StartAuto+"?", ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"), MessageBoxButtons.YesNo);
if (res.Equals(DialogResult.Yes))
{
store.autoNext = true;
......@@ -957,13 +996,13 @@ namespace OnlineStore.AutoInOutStore
//store.StartOutStoreMove(new InOutStoreParam("", poText));
store.StartInStoreMove(new InOutStoreParam("", poText), false);
}
btnStartAuTo.Text = "停止自动出入库";
btnStartAuTo.Text = StopAuto;
}
}
}
else
{
MessageBox.Show("请先启动料仓!");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.PleaseStartStore, "请先启动料仓!"));
}
}
......@@ -1001,21 +1040,19 @@ namespace OnlineStore.AutoInOutStore
private void 清理日志ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.richTextBox1.Text = "";
string str = ResourceCulture.China;
ResourceCulture.SetCurrentCulture(str);
ConfigAppSettings.SaveValue(Setting_Init.Default_Language, str);
this.LanguageProcess();
}
private void 开启DEBUGToolStripMenuItem_Click(object sender, EventArgs e)
{
if (LogUtil.debug_opened == false)
{
开启DEBUGToolStripMenuItem.Text = "关闭DEBUG";
LogUtil.debug_opened = true;
}
else
{
开启DEBUGToolStripMenuItem.Text = "开启DEBUG";
LogUtil.debug_opened = false;
}
string str = ResourceCulture.English;
ResourceCulture.SetCurrentCulture(str);
ConfigAppSettings.SaveValue(Setting_Init.Default_Language, str);
this.LanguageProcess();
}
private void btnClearLog_Click(object sender, EventArgs e)
......@@ -1081,12 +1118,12 @@ namespace OnlineStore.AutoInOutStore
}
else
{
MessageBox.Show("无报警,无出入库或者重置操作时,才可以回待机点!");
MessageBox.Show( ResourceCulture.GetString(ResourceCulture.CanotBack,"无报警,无出入库或者重置操作时,才可以回待机点!"));
}
}
else
{
MessageBox.Show("请先启动料仓!");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.PleaseStartStore, "请先启动料仓!"));
}
}
......@@ -1155,49 +1192,7 @@ namespace OnlineStore.AutoInOutStore
}
return false;
}
public bool IsInProcess = false;
public void CheckWait()
{
if (IsInProcess)
{
return;
}
IsInProcess = true;
List<WaitResultInfo> list = waitResultList;
if (list.Count > 0)
{
bool isOk = true;
foreach (WaitResultInfo wait in list)
{
if (wait.WaitType == 1)
{
string msg = "";
bool isEnd = ACAxisMoveIsEnd(wait.AxisInfo, wait.TargetPosition, wait.TargetSpeed, out msg);
if (!msg.Equals(""))
{
isOk = false;
break;
}
else if (!isEnd)
{
isOk = false;
break;
}
}
}
if (list.Count > 0 && isOk.Equals(true))
{
waitResultList.Clear();
list.Clear();
MessageBox.Show("运动完成!");
}
}
IsInProcess = false;
}
public List<WaitResultInfo> waitResultList = new List<WaitResultInfo>();
private int GetSlaveAddr()
{
return FormUtil.GetShortValue(txtAxisValue);
......@@ -1213,7 +1208,7 @@ namespace OnlineStore.AutoInOutStore
short SlvAddr = FormUtil.GetShortValue(txtAxisValue);
if (store.Config.InOut_Axis.IsSameAxis(portName, SlvAddr) && (store.InOutAxisCanMove().Equals(false)))
{
MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
MessageBox.Show( cannotMove,warn, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
else if (store.Config.Middle_Axis.IsSameAxis(portName, SlvAddr) || store.Config.UpDown_Axis.IsSameAxis(portName, SlvAddr))
......@@ -1312,17 +1307,18 @@ namespace OnlineStore.AutoInOutStore
KNDManager.CloseAllConnection();
//KNDAIManager.CloseAllConnection();
//WCFControl.CloseWCF();
ResourceCulture.LogDefaultMap();
System.Environment.Exit(System.Environment.ExitCode);
}
catch (Exception ex)
{
MessageBox.Show(ex.StackTrace, "Exception(异常)", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show(ex.StackTrace, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
LogUtil.error(LOGGER, ex.StackTrace);
}
}
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("是否确定退出?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
DialogResult result = MessageBox.Show(ResourceCulture.GetString(ResourceCulture.SureExit, "是否确定退出?"), ResourceCulture.GetString(ResourceCulture.MsgTitle, ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示")), MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result.Equals(DialogResult.Yes))
{
ExitApp();
......@@ -1344,7 +1340,7 @@ namespace OnlineStore.AutoInOutStore
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("是否确定退出?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
DialogResult result = MessageBox.Show(ResourceCulture.GetString(ResourceCulture.SureExit, "是否确定退出?"), ResourceCulture.GetString(ResourceCulture.MsgTitle, ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示")), MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result.Equals(DialogResult.Yes))
{
ExitApp();
......@@ -1397,7 +1393,7 @@ namespace OnlineStore.AutoInOutStore
{
int value = ShuoKeControls.GetABSPosition(store.Config.CompressAxis_Slv);
lblComMsg.Text = DateTime.Now.ToLongTimeString() + "实时位置:" + value;
lblComMsg.Text = DateTime.Now.ToLongTimeString() + ":" + value;
}
private void btnStop_Click(object sender, EventArgs e)
{
......@@ -1450,7 +1446,7 @@ namespace OnlineStore.AutoInOutStore
}
else
{
MessageBox.Show("请先启动料仓!");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.PleaseStartStore, "请先启动料仓!"));
}
}
......@@ -1512,7 +1508,7 @@ namespace OnlineStore.AutoInOutStore
private void btnWaitTrgGo_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("已经将料盘手动拿出?", "确认提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
DialogResult result = MessageBox.Show(ResourceControl.GetString(ResourceControl.TakeTrayOut, "已确认料盘已手动拿出"), ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"), MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result.Equals(DialogResult.Yes))
{
AutomaticBaiting.doConfirmReelGo();
......@@ -1528,16 +1524,7 @@ namespace OnlineStore.AutoInOutStore
}
}
private void BtnOpenDoor_Click(object sender, EventArgs e)
{
//if (AutomaticBaiting.CanOpenBatchDoor())
//{
// AutomaticBaiting.BatchDoorOpen(false);
// AutomaticBaiting.IsNeedStartInout = false;
//}
//else
//{
// MessageBox.Show("忙碌中,无法打开门锁");
//}
{
string msg = AutomaticBaiting.doOpenDoor();
if (!msg.Equals(""))
{
......@@ -1550,20 +1537,7 @@ namespace OnlineStore.AutoInOutStore
if (!msg.Equals(""))
{
MessageBox.Show(msg);
}
//if (!AutomaticBaiting.DoorIsClose())
//{
// MessageBox.Show("请先关闭门锁");
// return;
//}
//if (KND.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
//{
// MessageBox.Show("叉子料盘检测有料,请检查后再入库");
// return;
//}
//AutomaticBaiting.BatchDoorClose(false);
//AutomaticBaiting.Reset(true);
}
}
private void btnStartBatchInStore_Click(object sender, EventArgs e)
......@@ -1572,14 +1546,7 @@ namespace OnlineStore.AutoInOutStore
if (!msg.Equals(""))
{
MessageBox.Show(msg);
}
//if (!AutomaticBaiting.DoorIsClose())
//{
// MessageBox.Show("请先关闭门锁");
// return;
//}
//AutomaticBaiting.BatchDoorClose(false);
//AutomaticBaiting.Reset(false);
}
}
private void btnGetOutTray_Click(object sender, EventArgs e)
......@@ -1588,22 +1555,7 @@ namespace OnlineStore.AutoInOutStore
if (!msg.Equals(""))
{
MessageBox.Show(msg);
}
//if (AutomaticBaiting.CanOpenBatchDoor())
//{
// if (AutomaticBaiting.BatchOutStoreCount > 0 && AutomaticBaiting.BatchOutStoreHeight > 0)
// {
// AutomaticBaiting.BatchDoorOpen(false);
// }
// else
// {
// MessageBox.Show("未出库,无料盘可取");
// }
//}
//else
//{
// MessageBox.Show("忙碌中,无法打开门锁");
//}
}
}
private void btnBatchOutEnd_Click(object sender, EventArgs e)
......@@ -1611,7 +1563,7 @@ namespace OnlineStore.AutoInOutStore
if (!AutomaticBaiting.DoorIsClose())
{
MessageBox.Show("请先关闭批量上下料门");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.PCloseDoor,"请先关闭批量上下料门"));
return;
}
AutomaticBaiting.BatchDoorClose(false);
......@@ -1654,7 +1606,7 @@ namespace OnlineStore.AutoInOutStore
{
if (store.InOutAxisCanMove().Equals(false))
{
MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
MessageBox.Show( cannotMove,warn, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int value = FormUtil.GetIntValue(txtInoutP4);
......@@ -1665,7 +1617,8 @@ namespace OnlineStore.AutoInOutStore
{
if (!AutomaticBaiting.DoorIsClose())
{
MessageBox.Show("请先关闭批量上下料门");
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.PCloseDoor, "请先关闭批量上下料门"));
return;
return;
}
AutomaticBaiting.BatchDoorClose(false);
......
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FrmMenu_Text" xml:space="preserve">
<value>SMART WORK STATION</value>
</data>
<data name="OpenComFail" xml:space="preserve">
<value>Failed to open serial port</value>
</data>
<data name="MsgTitle" xml:space="preserve">
<value>Remind</value>
</data>
<data name="SaveOk" xml:space="preserve">
<value>Save success</value>
</data>
<data name="PleaseStartStore" xml:space="preserve">
<value>Please start the system!</value>
</data>
<data name="CannotMove" xml:space="preserve">
<value>The position cylinder is not at the descent position, not move the in-out axis</value>
</data>
<data name="WarnMsg" xml:space="preserve">
<value>Warning</value>
</data>
<data name="SaveError" xml:space="preserve">
<value>Save error</value>
</data>
<data name="CanotReset" xml:space="preserve">
<value>Can return to stanby ,without alarm, providing, storing or reset </value>
</data>
<data name="SureExit" xml:space="preserve">
<value>Confirm exit</value>
</data>
<data name="PWSpeed" xml:space="preserve">
<value>Type the correct speed</value>
</data>
<data name="AutoOut" xml:space="preserve">
<value>Auto providing</value>
</data>
<data name="AutoIn" xml:space="preserve">
<value>Auto storing</value>
</data>
<data name="AutoEnd" xml:space="preserve">
<value>Auto storing end</value>
</data>
<data name="DoorOpen" xml:space="preserve">
<value>Front door open</value>
</data>
<data name="HasWare" xml:space="preserve">
<value>Fork tray full, please check</value>
</data>
<data name="StartAuto" xml:space="preserve">
<value>Start auto storing</value>
</data>
<data name="StopAuto" xml:space="preserve">
<value>Stop auto storing</value>
</data>
<data name="WaitStart" xml:space="preserve">
<value>Wait to start</value>
</data>
<data name="Run" xml:space="preserve">
<value>Runing</value>
</data>
<data name="Busy" xml:space="preserve">
<value>Busy</value>
</data>
<data name="HomeMove" xml:space="preserve">
<value>Back to home</value>
</data>
<data name="Reset" xml:space="preserve">
<value>Reset</value>
</data>
<data name="Runing" xml:space="preserve">
<value>Runing</value>
</data>
<data name="Wait" xml:space="preserve">
<value>Wait to start</value>
</data>
<data name="Debugging" xml:space="preserve">
<value>Under adjusting</value>
</data>
<data name="InStoreEnd" xml:space="preserve">
<value>Saving executed</value>
</data>
<data name="InStoreExecute" xml:space="preserve">
<value>Saving Executing</value>
</data>
<data name="InTrouble" xml:space="preserve">
<value>In trouble</value>
</data>
<data name="OutStoreBoxEnd" xml:space="preserve">
<value>Providing executed</value>
</data>
<data name="OutStoreExecute" xml:space="preserve">
<value>Providing Executing</value>
</data>
<data name="StoreOnline" xml:space="preserve">
<value>System online</value>
</data>
<data name="SuddenStop" xml:space="preserve">
<value>Emerengy stop</value>
</data>
<data name="OutMoveExecute" xml:space="preserve">
<value>Providing Executed </value>
</data>
<data name="InStoreFailed" xml:space="preserve">
<value>Saving failed</value>
</data>
<data name="OutStoreFailed" xml:space="preserve">
<value>Providing failed</value>
</data>
<data name="WaitSingle" xml:space="preserve">
<value>Wait signal</value>
</data>
<data name="TimeOut" xml:space="preserve">
<value>Time out</value>
</data>
<data name="inSuddenStop" xml:space="preserve">
<value>Receive emergency stop signal, alarm to stop</value>
</data>
<data name="InoutAlarm" xml:space="preserve">
<value>in-out axis alarm! Reset failed, please check</value>
</data>
<data name="Open" xml:space="preserve">
<value>Open</value>
</data>
<data name="Fail" xml:space="preserve">
<value>Fail</value>
</data>
<data name="AutoReset" xml:space="preserve">
<value>Receive reset signal, automatical reset</value>
</data>
<data name="MoveAxis" xml:space="preserve">
<value>Move axis</value>
</data>
<data name="Alarm" xml:space="preserve">
<value>Alarm</value>
</data>
<data name="InStoreError" xml:space="preserve">
<value>Saving format error</value>
</data>
<data name="InStoreNoPosition" xml:space="preserve">
<value>Saving location not found</value>
</data>
<data name="OutStoreError" xml:space="preserve">
<value>Providing format error</value>
</data>
<data name="OutStoreNoPosition" xml:space="preserve">
<value>Providing location not found</value>
</data>
<data name="AbsMove" xml:space="preserve">
<value>Absolute move</value>
</data>
<data name="WaitIo" xml:space="preserve">
<value>IO wait</value>
</data>
<data name="WaitTime" xml:space="preserve">
<value>Time waiting</value>
</data>
<data name="TargetPosition" xml:space="preserve">
<value>Electric actuator position</value>
</data>
<data name="Middle_Axis" xml:space="preserve">
<value>(Axis 1) rotation axis</value>
</data>
<data name="UpDown_Axis" xml:space="preserve">
<value>(Axis 2) lifting axis</value>
</data>
<data name="InOut_Axis" xml:space="preserve">
<value>(Axis 3) in-out axis</value>
</data>
<data name="FrmStoreBox_Text" xml:space="preserve">
<value>AC_SA_SMD BOX</value>
</data>
<data name="FrmStoreBox_chbAuto_Text" xml:space="preserve">
<value>Auto start</value>
</data>
<data name="FrmStoreBox_groupBox1_Text" xml:space="preserve">
<value>Servo state</value>
</data>
<data name="FrmStoreBox_label1_Text" xml:space="preserve">
<value>rotation axis</value>
</data>
<data name="FrmStoreBox_label38_Text" xml:space="preserve">
<value>ALM:</value>
</data>
<data name="FrmStoreBox_label12_Text" xml:space="preserve">
<value>Providing target value:</value>
</data>
<data name="FrmStoreBox_label4_Text" xml:space="preserve">
<value>in-out axis</value>
</data>
<data name="FrmStoreBox_label3_Text" xml:space="preserve">
<value>lifting axis</value>
</data>
<data name="FrmStoreBox_label43_Text" xml:space="preserve">
<value>Output impulse valve:</value>
</data>
<data name="FrmStoreBox_label42_Text" xml:space="preserve">
<value>Encoder count:</value>
</data>
<data name="FrmStoreBox_groupBox3_Text" xml:space="preserve">
<value>Machine state</value>
</data>
<data name="FrmStoreBox_lblThisSta_Text" xml:space="preserve">
<value>Wait to start</value>
</data>
<data name="FrmStoreBox_groupBox5_Text" xml:space="preserve">
<value>Servo move</value>
</data>
<data name="FrmStoreBox_label6_Text" xml:space="preserve">
<value>Home signal:</value>
</data>
<data name="FrmStoreBox_label5_Text" xml:space="preserve">
<value>1=ON,0=OFF</value>
</data>
<data name="FrmStoreBox_btnReadHomeSingle_Text" xml:space="preserve">
<value>Read home signal</value>
</data>
<data name="FrmStoreBox_chbAutoRead_Text" xml:space="preserve">
<value>Auto read position</value>
</data>
<data name="FrmStoreBox_label16_Text" xml:space="preserve">
<value>1=finished, 0= unfinished</value>
</data>
<data name="FrmStoreBox_label15_Text" xml:space="preserve">
<value>1=execution, 0=non execution</value>
</data>
<data name="FrmStoreBox_label14_Text" xml:space="preserve">
<value>1=alarm, 0=normal</value>
</data>
<data name="FrmStoreBox_label11_Text" xml:space="preserve">
<value>HOME-CMP state:</value>
</data>
<data name="FrmStoreBox_button2_Text" xml:space="preserve">
<value>Read home state</value>
</data>
<data name="FrmStoreBox_label10_Text" xml:space="preserve">
<value>BUSY state:</value>
</data>
<data name="FrmStoreBox_button1_Text" xml:space="preserve">
<value>Read BUSY state</value>
</data>
<data name="FrmStoreBox_label2_Text" xml:space="preserve">
<value>Alarm state:</value>
</data>
<data name="FrmStoreBox_btnGetAlarm_Text" xml:space="preserve">
<value>Read alarm state</value>
</data>
<data name="FrmStoreBox_btnReadPosition_Text" xml:space="preserve">
<value>Read position</value>
</data>
<data name="FrmStoreBox_label7_Text" xml:space="preserve">
<value>Output impulse valve:</value>
</data>
<data name="FrmStoreBox_label8_Text" xml:space="preserve">
<value>Encoder count:</value>
</data>
<data name="FrmStoreBox_btnOpenAxis_Text" xml:space="preserve">
<value>Open servo</value>
</data>
<data name="FrmStoreBox_btnCloseAxis_Text" xml:space="preserve">
<value>Close servo</value>
</data>
<data name="FrmStoreBox_label47_Text" xml:space="preserve">
<value>Speed:</value>
</data>
<data name="FrmStoreBox_btnAxisVMove_Text" xml:space="preserve">
<value>uniform move</value>
</data>
<data name="FrmStoreBox_btnAxisRMove_Text" xml:space="preserve">
<value>Relative move</value>
</data>
<data name="FrmStoreBox_btnAxisReturnHome_Text" xml:space="preserve">
<value>Back to home</value>
</data>
<data name="FrmStoreBox_btnAxisAMove_Text" xml:space="preserve">
<value>Abosolute move</value>
</data>
<data name="FrmStoreBox_Bt_ClearCounter_Text" xml:space="preserve">
<value>Reset position</value>
</data>
<data name="FrmStoreBox_btnComAlarmClear_Text" xml:space="preserve">
<value>Clear alarm</value>
</data>
<data name="FrmStoreBox_label48_Text" xml:space="preserve">
<value>Position:</value>
</data>
<data name="FrmStoreBox_btnAxisStop_Text" xml:space="preserve">
<value>Stop move</value>
</data>
<data name="FrmStoreBox_label45_Text" xml:space="preserve">
<value>Port number:</value>
</data>
<data name="FrmStoreBox_label46_Text" xml:space="preserve">
<value>Servo address:</value>
</data>
<data name="FrmStoreBox_label49_Text" xml:space="preserve">
<value>AC server:</value>
</data>
<data name="FrmStoreBox_groupBox2_Text" xml:space="preserve">
<value>SMD BOX operation</value>
</data>
<data name="FrmStoreBox_lblTemp_Text" xml:space="preserve">
<value>Current temperature--, current humidity--</value>
</data>
<data name="FrmStoreBox_btnClearLog_Text" xml:space="preserve">
<value>Clean log</value>
</data>
<data name="FrmStoreBox_lblMsg_Text" xml:space="preserve">
<value>Auto providing not start</value>
</data>
<data name="FrmStoreBox_btnSavePosition_Text" xml:space="preserve">
<value>Save position</value>
</data>
<data name="FrmStoreBox_btnStartAuTo_Text" xml:space="preserve">
<value>Start auto mode</value>
</data>
<data name="FrmStoreBox_label9_Text" xml:space="preserve">
<value>Interval storing position:</value>
</data>
<data name="FrmStoreBox_label21_Text" xml:space="preserve">
<value>Select storage position:</value>
</data>
<data name="FrmStoreBox_btnInStore_Text" xml:space="preserve">
<value>Saving testing</value>
</data>
<data name="FrmStoreBox_btnOutStore_Text" xml:space="preserve">
<value>Providing testing</value>
</data>
<data name="FrmStoreBox_btnComP1_Text" xml:space="preserve">
<value>p-axis stanby P1:</value>
</data>
<data name="FrmStoreBox_btnInOutP2_Text" xml:space="preserve">
<value>In-out axis providing P2:</value>
</data>
<data name="FrmStoreBox_btnInOutP1_Text" xml:space="preserve">
<value>In-out axis stanby P1:</value>
</data>
<data name="FrmStoreBox_btnMiddleP1_Text" xml:space="preserve">
<value>Rotation axis stanby P1:</value>
</data>
<data name="FrmStoreBox_btnUpDownP7_Text" xml:space="preserve">
<value>l-axis taking out buffer P7:</value>
</data>
<data name="FrmStoreBox_btnUpDownP8_Text" xml:space="preserve">
<value>l-axis providing buffer P8:</value>
</data>
<data name="FrmStoreBox_btnUpDownP1_Text" xml:space="preserve">
<value>l-axis picking P1:</value>
</data>
<data name="FrmStoreBox_btnUpDownP2_Text" xml:space="preserve">
<value>l-axis former providing P2:</value>
</data>
<data name="FrmStoreBox_btnComP3_Text" xml:space="preserve">
<value>p-axis former pressing P3:</value>
</data>
<data name="FrmStoreBox_btnComP2_Text" xml:space="preserve">
<value>p-axis pressing P2:</value>
</data>
<data name="FrmStoreBox_btnInOutP3_Text" xml:space="preserve">
<value>In-out axistaking out P3:</value>
</data>
<data name="FrmStoreBox_btnMiddleP2_Text" xml:space="preserve">
<value>Rotation axis storage P2:</value>
</data>
<data name="FrmStoreBox_btnUpDownP5_Text" xml:space="preserve">
<value>l-axis former providing P5:</value>
</data>
<data name="FrmStoreBox_btnUpDownP6_Text" xml:space="preserve">
<value>l-axis providing buffer P6:</value>
</data>
<data name="FrmStoreBox_btnUpDownP3_Text" xml:space="preserve">
<value>l-axis former storing P3:</value>
</data>
<data name="FrmStoreBox_btnUpDownP4_Text" xml:space="preserve">
<value>l-axis storing buffer P4:</value>
</data>
<data name="FrmIOStatus_Text" xml:space="preserve">
<value>IO check</value>
</data>
<data name="FrmIOStatus_groupBox1_Text" xml:space="preserve">
<value>DO write</value>
</data>
<data name="FrmIOStatus_btnDisDoorClose_Text" xml:space="preserve">
<value>Access controller open</value>
</data>
<data name="FrmIOStatus_btnDisDoorOpen_Text" xml:space="preserve">
<value>Access controller block</value>
</data>
<data name="FrmIOStatus_btnCloseLed_Text" xml:space="preserve">
<value>Close light</value>
</data>
<data name="FrmIOStatus_btnOpenLed_Text" xml:space="preserve">
<value>Open light</value>
</data>
<data name="FrmIOStatus_button1_Text" xml:space="preserve">
<value>Close</value>
</data>
<data name="FrmIOStatus_btnCloseAxisBreak_Text" xml:space="preserve">
<value>Close brake</value>
</data>
<data name="FrmIOStatus_btnOpenAxisBreak_Text" xml:space="preserve">
<value>Open brake</value>
</data>
<data name="FrmIOStatus_btnLocationDown_Text" xml:space="preserve">
<value>Position cylinder descent</value>
</data>
<data name="FrmIOStatus_btnLocationUp_Text" xml:space="preserve">
<value>Position cylinder ascent</value>
</data>
<data name="FrmIOStatus_btnCloseDoor_Text" xml:space="preserve">
<value>Close door</value>
</data>
<data name="FrmIOStatus_btnOpenDoor_Text" xml:space="preserve">
<value>Open door</value>
</data>
<data name="FrmIOStatus_label3_Text" xml:space="preserve">
<value>Select DO:</value>
</data>
<data name="FrmIOStatus_label2_Text" xml:space="preserve">
<value>SlaveId</value>
</data>
<data name="FrmIOStatus_btnReadAllDo_Text" xml:space="preserve">
<value>Read all DO</value>
</data>
<data name="FrmIOStatus_chbAutoRead_Text" xml:space="preserve">
<value>Auto read</value>
</data>
<data name="FrmIOStatus_btnReadAllDi_Text" xml:space="preserve">
<value>Read all DI</value>
</data>
<data name="FrmIOStatus_btnReadIO_Text" xml:space="preserve">
<value>Read IO state</value>
</data>
<data name="FrmIOStatus_label17_Text" xml:space="preserve">
<value>IP:</value>
</data>
<data name="FrmIOStatus_label14_Text" xml:space="preserve">
<value>Address:</value>
</data>
<data name="FrmIOStatus_label5_Text" xml:space="preserve">
<value>Time(ms):</value>
</data>
<data name="FrmIOStatus_label6_Text" xml:space="preserve">
<value>Write value:</value>
</data>
<data name="FrmIOStatus_btnWriteSingleDO_Text" xml:space="preserve">
<value>Write DO</value>
</data>
<data name="FrmIOStatus_groupBox4_Text" xml:space="preserve">
<value>DO list</value>
</data>
<data name="FrmIOStatus_label1_Text" xml:space="preserve">
<value>Y01_Automatic indicating light</value>
</data>
<data name="FrmIOStatus_groupBox3_Text" xml:space="preserve">
<value>DI list</value>
</data>
<data name="FrmAxisDebug_Text" xml:space="preserve">
<value>SMD BOX_1 _axis inching adjusting</value>
</data>
<data name="FrmAxisDebug_label6_Text" xml:space="preserve">
<value>Real time coordinate</value>
</data>
<data name="FrmAxisDebug_label5_Text" xml:space="preserve">
<value>Inching speed</value>
</data>
<data name="FrmAxisDebug_button1_Text" xml:space="preserve">
<value>Close</value>
</data>
<data name="FrmAxisDebug_btnInOutMovej_Text" xml:space="preserve">
<value>In-out axis+forward</value>
</data>
<data name="FrmAxisDebug_btnUpDownMovej_Text" xml:space="preserve">
<value>Lifting axis+descent</value>
</data>
<data name="FrmAxisDebug_btnMiddleMovej_Text" xml:space="preserve">
<value>Rotation axis+clockwise</value>
</data>
<data name="FrmAxisDebug_btnInOutMove_Text" xml:space="preserve">
<value>In-out axis+backward</value>
</data>
<data name="FrmAxisDebug_btnUpDownMove_Text" xml:space="preserve">
<value>Lifting axis+ascent</value>
</data>
<data name="FrmAxisDebug_btnMiddleMove_Text" xml:space="preserve">
<value>Rotation axis+anti-clockwise</value>
</data>
<data name="FrmAxisDebug_label3_Text" xml:space="preserve">
<value>(Axis 3) in-out axis</value>
</data>
<data name="FrmAxisDebug_label2_Text" xml:space="preserve">
<value>(Axis 2) lifting axis</value>
</data>
<data name="FrmAxisDebug_label1_Text" xml:space="preserve">
<value>(Axis 1) rotation axis</value>
</data>
<data name="FrmLanguage_Text" xml:space="preserve">
<value>Language</value>
</data>
<data name="FrmLanguage_rdDe_Text" xml:space="preserve">
<value>German</value>
</data>
<data name="FrmLanguage_btnCancel_Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="FrmLanguage_btnOk_Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="FrmLanguage_rbtnEnglish_Text" xml:space="preserve">
<value>English</value>
</data>
<data name="FrmLanguage_rbtnChina_Text" xml:space="preserve">
<value>Chinese</value>
</data>
<data name="FrmStoreBox_iO状态查看ToolStripMenuItem_Text" xml:space="preserve">
<value>Device Debugging</value>
</data>
<data name="FrmStoreBox_toolStripMenuItem1_Text" xml:space="preserve">
<value>Exit</value>
</data>
<data name="FrmStoreBox_toolStripMenuItem2_Text" xml:space="preserve">
<value>Access controller open</value>
</data>
<data name="FrmStoreBox_toolStripMenuItem3_Text" xml:space="preserve">
<value>Access controller block</value>
</data>
<data name="FrmStoreBox_停止ToolStripMenuItem_Text" xml:space="preserve">
<value>Stop</value>
</data>
<data name="FrmStoreBox_关闭仓门ToolStripMenuItem_Text" xml:space="preserve">
<value>Close door</value>
</data>
<data name="FrmStoreBox_启动ToolStripMenuItem_Text" xml:space="preserve">
<value>Start</value>
</data>
<data name="FrmStoreBox_回待机点ToolStripMenuItem_Text" xml:space="preserve">
<value>back to standby</value>
</data>
<data name="FrmStoreBox_复位ToolStripMenuItem_Text" xml:space="preserve">
<value>Reset</value>
</data>
<data name="FrmStoreBox_学习二维码ToolStripMenuItem_Text" xml:space="preserve">
<value>learn QR code</value>
</data>
<data name="FrmStoreBox_德文ToolStripMenuItem_Text" xml:space="preserve">
<value>German</value>
</data>
<data name="FrmStoreBox_打开舱门ToolStripMenuItem_Text" xml:space="preserve">
<value>Open door</value>
</data>
<data name="FrmStoreBox_扫码测试ToolStripMenuItem_Text" xml:space="preserve">
<value>scanning test</value>
</data>
<data name="FrmStoreBox_料仓操作ToolStripMenuItem_Text" xml:space="preserve">
<value>Operation</value>
</data>
<data name="FrmStoreBox_料仓运转OFFToolStripMenuItem_Text" xml:space="preserve">
<value>SMD BOX operating OFF</value>
</data>
<data name="FrmStoreBox_料仓运转ONToolStripMenuItem_Text" xml:space="preserve">
<value>SMD BOX operating ON</value>
</data>
<data name="FrmStoreBox_显示ToolStripMenuItem_Text" xml:space="preserve">
<value>Show</value>
</data>
<data name="FrmStoreBox_查看IOToolStripMenuItem_Text" xml:space="preserve">
<value>IO check</value>
</data>
<data name="FrmStoreBox_清理日志ToolStripMenuItem_Text" xml:space="preserve">
<value>Chinese</value>
</data>
<data name="FrmStoreBox_英文ToolStripMenuItem_Text" xml:space="preserve">
<value>English</value>
</data>
<data name="FrmStoreBox_语言_Text" xml:space="preserve">
<value>Language</value>
</data>
<data name="FrmStoreBox_轴卡点动ToolStripMenuItem_Text" xml:space="preserve">
<value>axis inching adjusting</value>
</data>
<data name="FrmStoreBox_退出ToolStripMenuItem_Text" xml:space="preserve">
<value>Exit</value>
</data>
</root>
\ No newline at end of file
<?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>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="a" xml:space="preserve">
<value>a</value>
</data>
<data name="OpenComFail" xml:space="preserve">
<value>打开串口失败</value>
</data>
<data name="MsgTitle" xml:space="preserve">
<value>提示</value>
</data>
<data name="SaveOk" xml:space="preserve">
<value>保存成功</value>
</data>
<data name="PleaseStartStore" xml:space="preserve">
<value>请先启动料仓!</value>
</data>
<data name="CannotMove" xml:space="preserve">
<value>定位气缸不在下降端,不能移动进出轴</value>
</data>
<data name="WarnMsg" xml:space="preserve">
<value>警告</value>
</data>
<data name="SaveError" xml:space="preserve">
<value>保存失败</value>
</data>
<data name="CanotReset" xml:space="preserve">
<value>无报警,无出入库或者重置操作时,才可以回待机点</value>
</data>
<data name="SureExit" xml:space="preserve">
<value>是否确定退出</value>
</data>
<data name="PWSpeed" xml:space="preserve">
<value>请先输入正确的速度</value>
</data>
<data name="AutoOut" xml:space="preserve">
<value>自动出库:</value>
</data>
<data name="AutoIn" xml:space="preserve">
<value>自动入库:</value>
</data>
<data name="AutoEnd" xml:space="preserve">
<value>自动出入库结束</value>
</data>
<data name="DoorOpen" xml:space="preserve">
<value> 前门未关</value>
</data>
<data name="HasWare" xml:space="preserve">
<value>叉子料盘检测有料,请检查</value>
</data>
<data name="StartAuto" xml:space="preserve">
<value>开始自动出入库</value>
</data>
<data name="StopAuto" xml:space="preserve">
<value>停止自动出入库</value>
</data>
<data name="WaitStart" xml:space="preserve">
<value>等待启动</value>
</data>
<data name="Run" xml:space="preserve">
<value>运行中</value>
</data>
<data name="Busy" xml:space="preserve">
<value>忙碌</value>
</data>
<data name="HomeMove" xml:space="preserve">
<value>原点返回</value>
</data>
<data name="Reset" xml:space="preserve">
<value>重置</value>
</data>
<data name="Runing" xml:space="preserve">
<value>运行中</value>
</data>
<data name="Wait" xml:space="preserve">
<value>等待启动</value>
</data>
<data name="Debugging" xml:space="preserve">
<value>设备调试中</value>
</data>
<data name="InStoreEnd" xml:space="preserve">
<value>料盘入仓位完成</value>
</data>
<data name="InStoreExecute" xml:space="preserve">
<value>入库执行中</value>
</data>
<data name="InTrouble" xml:space="preserve">
<value>故障中</value>
</data>
<data name="OutStoreBoxEnd" xml:space="preserve">
<value>料盘出仓位完成</value>
</data>
<data name="OutStoreExecute" xml:space="preserve">
<value>出库执行中</value>
</data>
<data name="StoreOnline" xml:space="preserve">
<value>设备联机</value>
</data>
<data name="SuddenStop" xml:space="preserve">
<value>急停中</value>
</data>
<data name="OutMoveExecute" xml:space="preserve">
<value>出库完成</value>
</data>
<data name="InStoreFailed" xml:space="preserve">
<value>入库失败</value>
</data>
<data name="OutStoreFailed" xml:space="preserve">
<value>出库失败</value>
</data>
<data name="WaitSingle" xml:space="preserve">
<value>等待信号</value>
</data>
<data name="TimeOut" xml:space="preserve">
<value>超时</value>
</data>
<data name="inSuddenStop" xml:space="preserve">
<value>收到急停信号,报警急停</value>
</data>
<data name="InoutAlarm" xml:space="preserve">
<value>进出轴报警!复位失败,请检查</value>
</data>
<data name="Open" xml:space="preserve">
<value>打开</value>
</data>
<data name="Fail" xml:space="preserve">
<value>失败</value>
</data>
<data name="AutoReset" xml:space="preserve">
<value>收到复位信号,自动复位</value>
</data>
<data name="MoveAxis" xml:space="preserve">
<value>运动轴</value>
</data>
<data name="Alarm" xml:space="preserve">
<value>报警</value>
</data>
<data name="InStoreError" xml:space="preserve">
<value>入库库位格式错误:</value>
</data>
<data name="InStoreNoPosition" xml:space="preserve">
<value>入库未找到库位:</value>
</data>
<data name="OutStoreError" xml:space="preserve">
<value>出库格式错误:</value>
</data>
<data name="OutStoreNoPosition" xml:space="preserve">
<value>出库未找库位:</value>
</data>
<data name="AbsMove" xml:space="preserve">
<value>绝对运动</value>
</data>
<data name="WaitIo" xml:space="preserve">
<value>IO信号等待</value>
</data>
<data name="WaitTime" xml:space="preserve">
<value>时间等待:</value>
</data>
<data name="TargetPosition" xml:space="preserve">
<value>电缸目标位置:</value>
</data>
<data name="Middle_Axis" xml:space="preserve">
<value>(轴一)旋转轴</value>
</data>
<data name="UpDown_Axis" xml:space="preserve">
<value>(轴二)升降轴轴</value>
</data>
<data name="InOut_Axis" xml:space="preserve">
<value>(轴三)进出轴</value>
</data>
<data name="FrmStoreBox_Text" xml:space="preserve">
<value>AC_SA_料仓</value>
</data>
<data name="FrmStoreBox_chbAuto_Text" xml:space="preserve">
<value>开机自动启动</value>
</data>
<data name="FrmStoreBox_groupBox1_Text" xml:space="preserve">
<value>伺服状态</value>
</data>
<data name="FrmStoreBox_label1_Text" xml:space="preserve">
<value>轴一:旋转轴</value>
</data>
<data name="FrmStoreBox_label38_Text" xml:space="preserve">
<value>ALM:</value>
</data>
<data name="FrmStoreBox_label12_Text" xml:space="preserve">
<value>出入库目标值:</value>
</data>
<data name="FrmStoreBox_label4_Text" xml:space="preserve">
<value>轴三:进出轴</value>
</data>
<data name="FrmStoreBox_label3_Text" xml:space="preserve">
<value>轴二:上下轴</value>
</data>
<data name="FrmStoreBox_label43_Text" xml:space="preserve">
<value>输出脉冲值:</value>
</data>
<data name="FrmStoreBox_label42_Text" xml:space="preserve">
<value>编码器计数:</value>
</data>
<data name="FrmStoreBox_groupBox3_Text" xml:space="preserve">
<value>设备状态</value>
</data>
<data name="FrmStoreBox_lblThisSta_Text" xml:space="preserve">
<value>等待启动</value>
</data>
<data name="FrmStoreBox_groupBox5_Text" xml:space="preserve">
<value>伺服运动</value>
</data>
<data name="FrmStoreBox_label6_Text" xml:space="preserve">
<value>原点信号:</value>
</data>
<data name="FrmStoreBox_label5_Text" xml:space="preserve">
<value>1=ON,0=OFF</value>
</data>
<data name="FrmStoreBox_btnReadHomeSingle_Text" xml:space="preserve">
<value>读原点信号</value>
</data>
<data name="FrmStoreBox_chbAutoRead_Text" xml:space="preserve">
<value>自动读取位置</value>
</data>
<data name="FrmStoreBox_label16_Text" xml:space="preserve">
<value>1=完成,0=未完成</value>
</data>
<data name="FrmStoreBox_label15_Text" xml:space="preserve">
<value>1=执行中,0=未执行</value>
</data>
<data name="FrmStoreBox_label14_Text" xml:space="preserve">
<value>1=报警,0=正常</value>
</data>
<data name="FrmStoreBox_label11_Text" xml:space="preserve">
<value>HOME-CMP状态:</value>
</data>
<data name="FrmStoreBox_button2_Text" xml:space="preserve">
<value>读HOME状态</value>
</data>
<data name="FrmStoreBox_label10_Text" xml:space="preserve">
<value>BUSY状态:</value>
</data>
<data name="FrmStoreBox_button1_Text" xml:space="preserve">
<value>读BUSY状态</value>
</data>
<data name="FrmStoreBox_label2_Text" xml:space="preserve">
<value>报警状态:</value>
</data>
<data name="FrmStoreBox_btnGetAlarm_Text" xml:space="preserve">
<value>读报警状态</value>
</data>
<data name="FrmStoreBox_btnReadPosition_Text" xml:space="preserve">
<value>读取位置</value>
</data>
<data name="FrmStoreBox_label7_Text" xml:space="preserve">
<value>输出脉冲值:</value>
</data>
<data name="FrmStoreBox_label8_Text" xml:space="preserve">
<value>编码器计数:</value>
</data>
<data name="FrmStoreBox_btnOpenAxis_Text" xml:space="preserve">
<value>打开伺服</value>
</data>
<data name="FrmStoreBox_btnCloseAxis_Text" xml:space="preserve">
<value>关闭伺服</value>
</data>
<data name="FrmStoreBox_label47_Text" xml:space="preserve">
<value>速度:</value>
</data>
<data name="FrmStoreBox_btnAxisVMove_Text" xml:space="preserve">
<value>匀速运动</value>
</data>
<data name="FrmStoreBox_btnAxisRMove_Text" xml:space="preserve">
<value>相对运动</value>
</data>
<data name="FrmStoreBox_btnAxisReturnHome_Text" xml:space="preserve">
<value>原点返回</value>
</data>
<data name="FrmStoreBox_btnAxisAMove_Text" xml:space="preserve">
<value>绝对运动</value>
</data>
<data name="FrmStoreBox_Bt_ClearCounter_Text" xml:space="preserve">
<value>重置位置</value>
</data>
<data name="FrmStoreBox_btnComAlarmClear_Text" xml:space="preserve">
<value>清除报警</value>
</data>
<data name="FrmStoreBox_label48_Text" xml:space="preserve">
<value>位置:</value>
</data>
<data name="FrmStoreBox_btnAxisStop_Text" xml:space="preserve">
<value> 停止运动</value>
</data>
<data name="FrmStoreBox_label45_Text" xml:space="preserve">
<value>端口号:</value>
</data>
<data name="FrmStoreBox_label46_Text" xml:space="preserve">
<value>伺服地址:</value>
</data>
<data name="FrmStoreBox_label49_Text" xml:space="preserve">
<value>AC伺服:</value>
</data>
<data name="FrmStoreBox_groupBox2_Text" xml:space="preserve">
<value>料仓操作</value>
</data>
<data name="FrmStoreBox_lblTemp_Text" xml:space="preserve">
<value>当前温度--,当前湿度--</value>
</data>
<data name="FrmStoreBox_btnClearLog_Text" xml:space="preserve">
<value>清理日志</value>
</data>
<data name="FrmStoreBox_lblMsg_Text" xml:space="preserve">
<value>没有开启自动出入库</value>
</data>
<data name="FrmStoreBox_btnSavePosition_Text" xml:space="preserve">
<value>保存位置</value>
</data>
<data name="FrmStoreBox_btnStartAuTo_Text" xml:space="preserve">
<value>启动自动模式</value>
</data>
<data name="FrmStoreBox_label9_Text" xml:space="preserve">
<value>入库间隔仓位:</value>
</data>
<data name="FrmStoreBox_label21_Text" xml:space="preserve">
<value>选择仓位:</value>
</data>
<data name="FrmStoreBox_btnInStore_Text" xml:space="preserve">
<value>入库测试</value>
</data>
<data name="FrmStoreBox_btnOutStore_Text" xml:space="preserve">
<value>出库测试</value>
</data>
<data name="FrmStoreBox_btnComP1_Text" xml:space="preserve">
<value>压紧轴待机点P1:</value>
</data>
<data name="FrmStoreBox_btnInOutP2_Text" xml:space="preserve">
<value>进出轴取料点P2:</value>
</data>
<data name="FrmStoreBox_btnInOutP1_Text" xml:space="preserve">
<value>进出轴待机点P1:</value>
</data>
<data name="FrmStoreBox_btnMiddleP1_Text" xml:space="preserve">
<value>旋转轴待机点P1:</value>
</data>
<data name="FrmStoreBox_btnUpDownP7_Text" xml:space="preserve">
<value>升降轴取料缓冲点P7:</value>
</data>
<data name="FrmStoreBox_btnUpDownP8_Text" xml:space="preserve">
<value>升降轴出料缓冲点P8:</value>
</data>
<data name="FrmStoreBox_btnUpDownP1_Text" xml:space="preserve">
<value>升降轴取料点P1:</value>
</data>
<data name="FrmStoreBox_btnUpDownP2_Text" xml:space="preserve">
<value>升降轴出料前点P2:</value>
</data>
<data name="FrmStoreBox_btnComP3_Text" xml:space="preserve">
<value>压紧轴压紧前点P3:</value>
</data>
<data name="FrmStoreBox_btnComP2_Text" xml:space="preserve">
<value>压紧轴压紧点P2:</value>
</data>
<data name="FrmStoreBox_btnInOutP3_Text" xml:space="preserve">
<value>进出轴取料点P3:</value>
</data>
<data name="FrmStoreBox_btnMiddleP2_Text" xml:space="preserve">
<value>旋转轴库位点P2:</value>
</data>
<data name="FrmStoreBox_btnUpDownP5_Text" xml:space="preserve">
<value>升降轴出料前点P5:</value>
</data>
<data name="FrmStoreBox_btnUpDownP6_Text" xml:space="preserve">
<value>升降轴出料缓冲点P6:</value>
</data>
<data name="FrmStoreBox_btnUpDownP3_Text" xml:space="preserve">
<value>升降轴入料前点P3:</value>
</data>
<data name="FrmStoreBox_btnUpDownP4_Text" xml:space="preserve">
<value>升降轴入料缓冲点P4:</value>
</data>
<data name="FrmIOStatus_Text" xml:space="preserve">
<value>IO查看</value>
</data>
<data name="FrmIOStatus_groupBox1_Text" xml:space="preserve">
<value>DO写入</value>
</data>
<data name="FrmIOStatus_btnDisDoorClose_Text" xml:space="preserve">
<value>门禁功能打开</value>
</data>
<data name="FrmIOStatus_btnDisDoorOpen_Text" xml:space="preserve">
<value>门禁功能屏蔽</value>
</data>
<data name="FrmIOStatus_btnCloseLed_Text" xml:space="preserve">
<value>关闭照明</value>
</data>
<data name="FrmIOStatus_btnOpenLed_Text" xml:space="preserve">
<value>打开照明</value>
</data>
<data name="FrmIOStatus_button1_Text" xml:space="preserve">
<value>关闭</value>
</data>
<data name="FrmIOStatus_btnCloseAxisBreak_Text" xml:space="preserve">
<value>关闭刹车</value>
</data>
<data name="FrmIOStatus_btnOpenAxisBreak_Text" xml:space="preserve">
<value>打开刹车</value>
</data>
<data name="FrmIOStatus_btnLocationDown_Text" xml:space="preserve">
<value>定位气缸下降</value>
</data>
<data name="FrmIOStatus_btnLocationUp_Text" xml:space="preserve">
<value>定位气缸上升</value>
</data>
<data name="FrmIOStatus_btnCloseDoor_Text" xml:space="preserve">
<value>关闭仓门</value>
</data>
<data name="FrmIOStatus_btnOpenDoor_Text" xml:space="preserve">
<value>打开仓门</value>
</data>
<data name="FrmIOStatus_label3_Text" xml:space="preserve">
<value>选择DO:</value>
</data>
<data name="FrmIOStatus_label2_Text" xml:space="preserve">
<value>SlaveId</value>
</data>
<data name="FrmIOStatus_btnReadAllDo_Text" xml:space="preserve">
<value>读取所有DO</value>
</data>
<data name="FrmIOStatus_chbAutoRead_Text" xml:space="preserve">
<value>自动读取</value>
</data>
<data name="FrmIOStatus_btnReadAllDi_Text" xml:space="preserve">
<value>读取所有DI</value>
</data>
<data name="FrmIOStatus_btnReadIO_Text" xml:space="preserve">
<value>读取IO状态</value>
</data>
<data name="FrmIOStatus_label17_Text" xml:space="preserve">
<value>设备IP:</value>
</data>
<data name="FrmIOStatus_label14_Text" xml:space="preserve">
<value>地址:</value>
</data>
<data name="FrmIOStatus_label5_Text" xml:space="preserve">
<value>定时(ms):</value>
</data>
<data name="FrmIOStatus_label6_Text" xml:space="preserve">
<value>写入值:</value>
</data>
<data name="FrmIOStatus_btnWriteSingleDO_Text" xml:space="preserve">
<value>写入DO</value>
</data>
<data name="FrmIOStatus_groupBox4_Text" xml:space="preserve">
<value>DO列表</value>
</data>
<data name="FrmIOStatus_label1_Text" xml:space="preserve">
<value>Y01_自动指示灯</value>
</data>
<data name="FrmIOStatus_groupBox3_Text" xml:space="preserve">
<value>DI列表</value>
</data>
<data name="FrmAxisDebug_Text" xml:space="preserve">
<value>料仓BOX_1 _轴点动调试</value>
</data>
<data name="FrmAxisDebug_label6_Text" xml:space="preserve">
<value>实时坐标</value>
</data>
<data name="FrmAxisDebug_label5_Text" xml:space="preserve">
<value>点动速度</value>
</data>
<data name="FrmAxisDebug_button1_Text" xml:space="preserve">
<value>关闭</value>
</data>
<data name="FrmAxisDebug_btnInOutMovej_Text" xml:space="preserve">
<value>进出轴-(前进)</value>
</data>
<data name="FrmAxisDebug_btnUpDownMovej_Text" xml:space="preserve">
<value>升降轴-(下降)</value>
</data>
<data name="FrmAxisDebug_btnMiddleMovej_Text" xml:space="preserve">
<value>旋转轴-(顺时针)</value>
</data>
<data name="FrmAxisDebug_btnInOutMove_Text" xml:space="preserve">
<value>进出轴+(后退)</value>
</data>
<data name="FrmAxisDebug_btnUpDownMove_Text" xml:space="preserve">
<value>升降轴+(上升)</value>
</data>
<data name="FrmAxisDebug_btnMiddleMove_Text" xml:space="preserve">
<value>旋转轴+(逆时针)</value>
</data>
<data name="FrmAxisDebug_label3_Text" xml:space="preserve">
<value>(轴三)进出轴</value>
</data>
<data name="FrmAxisDebug_label2_Text" xml:space="preserve">
<value>(轴二)升降轴</value>
</data>
<data name="FrmAxisDebug_label1_Text" xml:space="preserve">
<value>(轴一)旋转轴</value>
</data>
<data name="FrmLanguage_Text" xml:space="preserve">
<value>语言</value>
</data>
<data name="FrmLanguage_rdDe_Text" xml:space="preserve">
<value>德文</value>
</data>
<data name="FrmLanguage_btnCancel_Text" xml:space="preserve">
<value>取消</value>
</data>
<data name="FrmLanguage_btnOk_Text" xml:space="preserve">
<value>确定</value>
</data>
<data name="FrmLanguage_rbtnEnglish_Text" xml:space="preserve">
<value>英文</value>
</data>
<data name="FrmLanguage_rbtnChina_Text" xml:space="preserve">
<value>中文</value>
</data>
<data name="FrmStoreBox_iO状态查看ToolStripMenuItem_Text" xml:space="preserve">
<value>设备调试</value>
</data>
<data name="FrmStoreBox_toolStripMenuItem2_Text" xml:space="preserve">
<value>门禁功能打开</value>
</data>
<data name="FrmStoreBox_toolStripMenuItem3_Text" xml:space="preserve">
<value>门禁功能屏蔽</value>
</data>
<data name="FrmStoreBox_停止ToolStripMenuItem_Text" xml:space="preserve">
<value>停止</value>
</data>
<data name="FrmStoreBox_关闭仓门ToolStripMenuItem_Text" xml:space="preserve">
<value>关闭仓门</value>
</data>
<data name="FrmStoreBox_启动ToolStripMenuItem_Text" xml:space="preserve">
<value>启动</value>
</data>
<data name="FrmStoreBox_回待机点ToolStripMenuItem_Text" xml:space="preserve">
<value>回待机点</value>
</data>
<data name="FrmStoreBox_复位ToolStripMenuItem_Text" xml:space="preserve">
<value>复位</value>
</data>
<data name="FrmStoreBox_学习二维码ToolStripMenuItem_Text" xml:space="preserve">
<value>学习二维码</value>
</data>
<data name="FrmStoreBox_德文ToolStripMenuItem_Text" xml:space="preserve">
<value>德文</value>
</data>
<data name="FrmStoreBox_打开舱门ToolStripMenuItem_Text" xml:space="preserve">
<value>打开仓门</value>
</data>
<data name="FrmStoreBox_扫码测试ToolStripMenuItem_Text" xml:space="preserve">
<value>扫码测试</value>
</data>
<data name="FrmStoreBox_料仓操作ToolStripMenuItem_Text" xml:space="preserve">
<value>料仓操作</value>
</data>
<data name="FrmStoreBox_料仓运转OFFToolStripMenuItem_Text" xml:space="preserve">
<value>料仓运转OFF</value>
</data>
<data name="FrmStoreBox_料仓运转ONToolStripMenuItem_Text" xml:space="preserve">
<value>料仓运转ON</value>
</data>
<data name="FrmStoreBox_显示ToolStripMenuItem_Text" xml:space="preserve">
<value>显示(&amp;S)</value>
</data>
<data name="FrmStoreBox_查看IOToolStripMenuItem_Text" xml:space="preserve">
<value>查看IO</value>
</data>
<data name="FrmStoreBox_清理日志ToolStripMenuItem_Text" xml:space="preserve">
<value>中文</value>
</data>
<data name="FrmStoreBox_英文ToolStripMenuItem_Text" xml:space="preserve">
<value>英文</value>
</data>
<data name="FrmStoreBox_语言_Text" xml:space="preserve">
<value>语言</value>
</data>
<data name="FrmStoreBox_轴卡点动ToolStripMenuItem_Text" xml:space="preserve">
<value>轴卡点动</value>
</data>
<data name="FrmStoreBox_退出ToolStripMenuItem_Text" xml:space="preserve">
<value>退出系统</value>
</data>
</root>
\ No newline at end of file
using OnlineStore.Common;
using OnlineStore.DeviceLibrary;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Reflection;
using System.Resources;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace OnlineStore.AutoInOutStore
{
public class ResourceCulture
{
public static string China = "zh-CN";
public static string English = "en-US";
public static string German = "ge-DE";
public static string CurrLanguage = "zh-CN";
public static Dictionary<string, string> defaultMap = new Dictionary<string, string>();
/// <summary>
/// Set current culture by name
/// </summary>
/// <param name="name">name</param>
public static void SetCurrentCulture(string name)
{
ResourceControl.GetStrEvent += GetString;
ResourceControl.GetStringEvent += GetString;
//UserFromControl.UserControlResource.GetStrEvent += GetString;
//UserFromControl.UserControlResource.GetStringEvent += GetString;
if (string.IsNullOrEmpty(name))
{
name = "en-US";
}
CurrLanguage = name;
Thread.CurrentThread.CurrentCulture = new CultureInfo(name);
}
private static Assembly assembly = Assembly.GetExecutingAssembly();
public static string GetString(string id,string defaultStr)
{
string strCurLanguage = "";
try
{
ResourceManager rm = new ResourceManager("OnlineStore.AutoInOutStore.Properties.Resource", assembly);
CultureInfo ci = Thread.CurrentThread.CurrentCulture;
strCurLanguage = rm.GetString(id, ci).Trim();
if (strCurLanguage.Equals("") && (!defaultStr.Equals("")))
{
strCurLanguage = defaultStr;
NoIdLog(id, defaultStr);
}
}
catch (Exception ex)
{
if (defaultStr.Equals(""))
{
}
else
{
strCurLanguage = "No id:[" + id + "], please add.";
strCurLanguage = defaultStr;
NoIdLog(id, defaultStr);
}
}
return strCurLanguage;
}
public static string GetString(string id, string defaultStr, params object[] param)
{
string strCurLanguage = "";
try
{
ResourceManager rm = new ResourceManager("OnlineStore.AutoInOutStore.Properties.Resource", Assembly.GetExecutingAssembly());
CultureInfo ci = Thread.CurrentThread.CurrentCulture;
strCurLanguage = rm.GetString(id, ci).Trim();
if(strCurLanguage.Equals("")&&(!defaultStr.Equals(""))){
strCurLanguage = defaultStr;
NoIdLog(id, defaultStr);
}
}
catch (Exception ex)
{
if (defaultStr.Equals(""))
{
}
else
{
strCurLanguage = "No id:[" + id + "], please add.";
strCurLanguage = defaultStr;
NoIdLog(id, defaultStr);
}
}
return String.Format(strCurLanguage,param);
}
private static void NoIdLog(string id, string defaultStr)
{
LogUtil.info("No id:[" + id + "], please add,use default string :" + defaultStr);
if (!defaultMap.ContainsKey(id))
{
defaultMap.Add(id, defaultStr);
}
}
public static void LogDefaultMap()
{
LogUtil.info("开始打印缺少的文字配置" + defaultMap.Count);
foreach (string key in defaultMap.Keys)
{
string value = defaultMap[key];
LogUtil.info(" 缺少文字配置[" + key + "] 默认值[" + value + "]");
}
LogUtil.info("结束打印缺少的文字配置");
}
private static string spiltStr = "_";
private static string Text = "Text";
public static string GetIdStr(string className, string controlName, string propertyName)
{
return className + spiltStr + controlName + spiltStr + propertyName;
}
public static string GetIdStr(string className, string propertyName)
{
return className + spiltStr + propertyName;
}
public static string GetTextIdStr(string className, string controlName )
{
return className + spiltStr + controlName + spiltStr + Text;
}
public static string GetTextIdStr(string className )
{
return className + spiltStr + Text;
}
/// <summary>
/// 保存成功!
/// </summary>
public static string SaveOk = "SaveOk";
/// <summary>
/// 提示
/// </summary>
public static string MsgTitle = "MsgTitle";
/// <summary>
/// 打开串口失败
/// </summary>
public static string OpenComFail = "OpenComFail";
/// <summary>
/// 请先启动料仓
/// </summary>
public static string PleaseStartStore = "PleaseStartStore";
/// <summary>
/// 定位气缸不在下降端,不能移动进出轴
/// </summary>
public static string CannotMove = "CannotMove";
/// <summary>
/// 警告
/// </summary>
public static string WarnMsg = "WarnMsg";
/// <summary>
/// 保存失败
/// </summary>
public static string SaveError = "SaveError";
/// <summary>
/// 无报警,无出入库或者重置操作时,才可以回待机点
/// </summary>
public static string CanotReset = "CanotReset";
/// <summary>
/// 请先输入正确的速度
/// </summary>
public static string PWSpeed = "PWSpeed";
/// <summary>
/// 是否确定退出
/// </summary>
public static string SureExit = "SureExit";
/// <summary>
/// AutoOut 自动出库:
/// </summary>
public static string AutoOut = "AutoOut";
/// <summary>
/// AutoIn 自动入库:
/// </summary>
public static string AutoIn = "AutoIn";
/// <summary>
/// AutoEnd 自动出入库结束
/// </summary>
public static string AutoEnd = "AutoEnd";
/// <summary>
/// 前门未关
/// </summary>
public static string DoorOpen = "DoorOpen";
/// <summary>
/// 叉子料盘检测有料,请检查
/// </summary>
public static string HasWare = "HasWare";
/// <summary>
/// 开始自动出入库
/// </summary>
public static string StartAuto = "StartAuto";
/// <summary>
/// 停止自动出入库
/// </summary>
public static string StopAuto = "StopAuto";
/// <summary>
/// 等待启动
/// </summary>
public static string WaitStart = "WaitStart";
///// <summary>
/////
///// </summary>
//public static string AutoEnd = "AutoEnd";
/// <summary>
/// 此设备不支持单个入库
/// </summary>
public static string CanotSingleInStore = "CanotSingleInStore";
/// <summary>
///叉子不在待机位,请先将叉子退回待机位
/// </summary>
public static string InoutNotOk = "InoutNotOk";
/// <summary>
///警告(叉子在待机位时,才能移动升降轴和旋转轴)
/// </summary>
public static string InoutWarn = "InoutWarn";
/// <summary>
///无报警,无出入库或者重置操作时,才可以回待机点
/// </summary>
public static string CanotBack = "CanotBack";
/// <summary>
///请先关闭批量上下料门
/// </summary>
public static string PCloseDoor = "PCloseDoor";
/// <summary>
///请输入正确的密码
/// </summary>
public static string PWPwd = "PWPwd";
/// <summary>
///忙碌中,无法打开门锁
/// </summary>
public static string CnotOpen = "CnotOpen";
/// <summary>
///批量入库失败:请先关闭上料机构
/// </summary>
public static string batchInError = "batchInError";
/// <summary>
///批量入库失败:叉子料盘检测有料,请检查后再入库
/// </summary>
public static string batchInError2 = "batchInError2";
/// <summary>
///取出料盘失败:无料盘可取
/// </summary>
public static string GetError = "GetError";
/// <summary>
///取出料盘失败:忙碌中,无法打开门锁
/// </summary>
public static string GetError2 = "GetError2";
/// <summary>
///锁门失败:请先关闭上料机构
/// </summary>
public static string CloseError = "CloseError";
/// <summary>
///已确认料盘已手动拿出
/// </summary>
public static string TakeTrayOut = "TakeTrayOut";
/// <summary>
///未检测到气压信号
/// </summary>
public static string NoAIr = "NoAIr";
/// <summary>
///料盘高度
/// </summary>
public static string trayHeight = "trayHeight";
/// <summary>
///负限位
/// </summary>
public static string FuLimit = "FuLimit";
/// <summary>
///正限位
/// </summary>
public static string ZhLimit = "ZhLimit";
/// <summary>
///上料轴运动停止
/// </summary>
public static string BatchStop = "BatchStop";
/// <summary>
///扫码结束
/// </summary> public static string ScanOk = "ScanOk";
/// <summary>
///操作人员拿走料盘
/// </summary>
public static string TakeTrayGo = "TakeTrayGo";
/// <summary>
///等待送料结束
/// </summary>
public static string WaitEnd = "WaitEnd";
/// <summary>
///吸盘吸料失败
/// </summary>
public static string XiLiaoError = "XiLiaoError";
/// <summary>
///伺服OFF
/// </summary>
public static string ServoOff = "ServoOff";
/// <summary>
///伺服ON
/// </summary>
public static string servoON = "servoON";
/// <summary>
///仓门状态未知
/// </summary>
public static string NoDoorStatus = "NoDoorStatus";
/// <summary>
///批量出入库信息: 入库:
/// </summary>
public static string InstoreInfo = "InstoreInfo";
/// <summary>
///出库
/// </summary>
public static string oustore = "oustore";
/// <summary>
///门锁关闭
/// </summary>
public static string doorClose = "doorClose";
/// <summary>
///门锁打开
/// </summary>
public static string doorOpen = "doorOpen";
}
}
......@@ -86,5 +86,6 @@ namespace OnlineStore.Common
/// 伺服波特率,默认9600
/// </summary>
public static string ACBaudRate = "ACBaudRate";
public static string Default_Language = "Default_Language";
}
}
......@@ -207,5 +207,10 @@ namespace OnlineStore.Common
{
throw new NotImplementedException();
}
public static void SaveValue(object default_Language, string str)
{
throw new NotImplementedException();
}
}
}
......@@ -68,6 +68,7 @@
<Compile Include="PanasonicServo\ACServerManager.cs" />
<Compile Include="PanasonicServo\ACServerManager_Partial.cs" />
<Compile Include="PanasonicServo\BatchAxisController.cs" />
<Compile Include="ResourceControl.cs" />
<Compile Include="ShuoKe\MeteringSignalBean.cs" />
<Compile Include="ShuoKe\ShuoKeController.cs" />
<Compile Include="store\LineMoveP.cs" />
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OnlineStore.DeviceLibrary
{
public class ResourceControl
{
public delegate string GetStrDelegate(string id, string defaultStr);
public static event GetStrDelegate GetStrEvent;
public delegate string GetStringDelegate(string id, string defaultStr, params object[] param);
public static event GetStringDelegate GetStringEvent;
public static string GetString(string id, string defaultStr)
{
string result = GetStrEvent?.Invoke(id, defaultStr);
return result;
}
public static string GetString(string id, string defaultStr, params object[] param)
{
string result = GetStringEvent?.Invoke(id, defaultStr, param);
return result;
}
/// <summary>
/// AutoOut 自动出库:
/// </summary>
public static string AutoOut = "AutoOut";
/// <summary>
/// AutoIn 自动入库:
/// </summary>
public static string AutoIn = "AutoIn";
/// <summary>
/// AutoEnd 自动出入库结束
/// </summary>
public static string AutoEnd = "AutoEnd";
/// <summary>
///"运行中"
/// </summary>
public static string Run = "Run";
/// <summary>
///"忙碌"
/// </summary>
public static string Busy = "Busy";
/// <summary>
///"原点返回"
/// </summary>
public static string HomeMove = "HomeMove";
/// <summary>
///"重置"
/// </summary>
public static string Reset = "Reset";
/// <summary>
///"运行中"
/// </summary>
public static string Runing = "Runing";
/// <summary>
///"等待启动"
/// </summary>
public static string Wait = "Wait";
/// <summary>
///"设备调试中"
/// </summary>
public static string Debugging = "Debugging";
/// <summary>
///"料盘入仓位完成"
/// </summary>
public static string InStoreEnd = "InStoreEnd";
/// <summary>
///"入库执行中"
/// </summary>
public static string InStoreExecute = "InStoreExecute";
/// <summary>
///"故障中"
/// </summary>
public static string InTrouble = "InTrouble";
/// <summary>
///"料盘出仓位完成"
/// </summary>
public static string OutStoreBoxEnd = "OutStoreBoxEnd";
/// <summary>
///"出库执行中"
/// </summary>
public static string OutStoreExecute = "OutStoreExecute";
/// <summary>
///"设备联机"
/// </summary>
public static string StoreOnline = "StoreOnline";
/// <summary>
///"急停中"
/// </summary>
public static string SuddenStop = "SuddenStop";
/// <summary>
///"出库完成"
/// </summary>
public static string OutMoveExecute = "OutMoveExecute";
/// <summary>
///"入库失败"
/// </summary>
public static string InStoreFailed = "InStoreFailed";
/// <summary>
///"出库失败"
/// </summary>
public static string OutStoreFailed = "OutStoreFailed";
/// <summary>
///"等待信号"
/// </summary>
public static string WaitSingle = "WaitSingle";
/// <summary>
///"超时"
/// </summary>
public static string TimeOut = "TimeOut";
/// <summary>
///"收到急停信号,报警急停"
/// </summary>
public static string inSuddenStop = "inSuddenStop";
/// <summary>
///"进出轴报警!复位失败,请检查"
/// </summary>
public static string InoutAlarm = "InoutAlarm";
/// <summary>
///"打开"
/// </summary>
public static string Open = "Open";
/// <summary>
///"失败"
/// </summary>
public static string Fail = "Fail";
/// <summary>
///"收到复位信号,自动复位"
/// </summary>
public static string AutoReset = "AutoReset";
/// <summary>
///"运动轴"
/// </summary>
public static string MoveAxis = "MoveAxis";
/// <summary>
///"报警"
/// </summary>
public static string Alarm = "Alarm";
/// <summary>
///"入库库位格式错误:"
/// </summary>
public static string InStoreError = "InStoreError";
/// <summary>
///"入库未找到库位:"
/// </summary>
public static string InStoreNoPosition = "InStoreNoPosition";
/// <summary>
///"出库格式错误:"
/// </summary>
public static string OutStoreError = "OutStoreError";
/// <summary>
///"出库未找库位:"
/// </summary>
public static string OutStoreNoPosition = "OutStoreNoPosition";
/// <summary>
///"绝对运动:"
/// </summary>
public static string AbsMove = "AbsMove";
/// <summary>
///"IO信号等待:"
/// </summary>
public static string WaitIo = "WaitIo";
/// <summary>
///"时间等待:"
/// </summary>
public static string WaitTime = "WaitTime";
/// <summary>
///"电钢目标位置:"
/// </summary>
public static string TargetPosition = "TargetPosition";
/// <summary>
/// 此设备不支持单个入库
/// </summary>
public static string CanotSingleInStore = "CanotSingleInStore";
/// <summary>
///叉子不在待机位,请先将叉子退回待机位
/// </summary>
public static string InoutNotOk = "InoutNotOk";
/// <summary>
///警告(叉子在待机位时,才能移动升降轴和旋转轴)
/// </summary>
public static string InoutWarn = "InoutWarn";
/// <summary>
///无报警,无出入库或者重置操作时,才可以回待机点
/// </summary>
public static string CanotBack = "CanotBack";
/// <summary>
///请先关闭批量上下料门
/// </summary>
public static string PCloseDoor = "PCloseDoor";
/// <summary>
///请输入正确的密码
/// </summary>
public static string PWPwd = "PWPwd";
/// <summary>
///忙碌中,无法打开门锁
/// </summary>
public static string CnotOpen = "CnotOpen";
/// <summary>
///批量入库失败:请先关闭上料机构
/// </summary>
public static string batchInError = "batchInError";
/// <summary>
///批量入库失败:叉子料盘检测有料,请检查后再入库
/// </summary>
public static string batchInError2 = "batchInError2";
/// <summary>
///取出料盘失败:无料盘可取
/// </summary>
public static string GetError = "GetError";
/// <summary>
///取出料盘失败:忙碌中,无法打开门锁
/// </summary>
public static string GetError2 = "GetError2";
/// <summary>
///锁门失败:请先关闭上料机构
/// </summary>
public static string CloseError = "CloseError";
/// <summary>
///已确认料盘已手动拿出
/// </summary>
public static string TakeTrayOut = "TakeTrayOut";
/// <summary>
///未检测到气压信号
/// </summary>
public static string NoAIr = "NoAIr";
/// <summary>
///料盘高度
/// </summary>
public static string trayHeight = "trayHeight";
/// <summary>
///负限位
/// </summary>
public static string FuLimit = "FuLimit";
/// <summary>
///正限位
/// </summary>
public static string ZhLimit = "ZhLimit";
/// <summary>
///上料轴运动停止
/// </summary>
public static string BatchStop = "BatchStop";
/// <summary>
///扫码结束
/// </summary>
public static string ScanOk = "ScanOk";
/// <summary>
///操作人员拿走料盘
/// </summary>
public static string TakeTrayGo = "TakeTrayGo";
/// <summary>
///等待送料结束
/// </summary>
public static string WaitEnd = "WaitEnd";
/// <summary>
///吸盘吸料失败
/// </summary>
public static string XiLiaoError = "XiLiaoError";
/// <summary>
///伺服OFF
/// </summary>
public static string ServoOff = "ServoOff";
/// <summary>
///伺服ON
/// </summary>
public static string servoON = "servoON";
/// <summary>
///仓门状态未知
/// </summary>
public static string NoDoorStatus = "NoDoorStatus";
/// <summary>
///批量出入库信息: 入库:
/// </summary>
public static string InstoreInfo = "InstoreInfo";
/// <summary>
///出库
/// </summary>
public static string oustore = "oustore";
/// <summary>
///门锁关闭
/// </summary>
public static string doorClose = "doorClose";
/// <summary>
///门锁打开
/// </summary>
public static string doorOpen = "doorOpen";
}
}
......@@ -104,7 +104,7 @@ namespace OnlineStore.DeviceLibrary
{
isInSuddenDown = true;
LogUtil.error(LOGGER, StoreName + "收到急停信号,报警急停");
WarnMsg = StoreName + "收到急停信号,报警急停";
WarnMsg = StoreName + ResourceControl.GetString(ResourceControl.inSuddenStop, "收到急停信号,报警急停");
//报警时会关闭所有轴
Alarm(StoreAlarmType.SuddenStop, "1", WarnMsg, StoreMoveType.None);
......@@ -139,7 +139,7 @@ namespace OnlineStore.DeviceLibrary
TimeSpan span = DateTime.Now - lastAirCloseTime;
if (span.TotalSeconds > Config.AirCheckSeconds)
{
WarnMsg = "未检测到气压信号";
WarnMsg =ResourceControl.GetString(ResourceControl.NoAIr, "未检测到气压信号");
preAirValue = IO_VALUE.LOW;
LogUtil.info("已持续【" + FormUtil.GetSpanStr(span) + "】未检测到气压信号,报警");
Alarm(StoreAlarmType.NoAirCheck, "2", WarnMsg, StoreMoveType.None);
......@@ -555,7 +555,7 @@ namespace OnlineStore.DeviceLibrary
//如果此时轴三还在报警,需要提示错误并等待
if (ACServerManager.GetAlarmStatus(Config.InOut_Axis.DeviceName, Config.InOut_Axis.GetAxisValue()) > 0)
{
WarnMsg = "进出轴报警!复位失败,请检查!";
WarnMsg = ResourceControl.GetString(ResourceControl.InoutAlarm, "进出轴报警!复位失败,请检查!");
LogUtil.error(LOGGER, "进出轴报警!复位失败,请检查!");
}
//复位和回原点要等轴3进出轴ORG亮了以后才能返回其他轴
......@@ -978,7 +978,8 @@ namespace OnlineStore.DeviceLibrary
{
//收到复位信号
LogUtil.info(LOGGER, "收到复位信号,自动复位");
WarnMsg = "收到复位信号,自动复位";
WarnMsg = ResourceControl.GetString(ResourceControl.AutoReset, "收到复位信号,自动复位");
Reset();
}
}
......@@ -1180,14 +1181,14 @@ namespace OnlineStore.DeviceLibrary
{
if (Config.Batch_Axis.IsSameAxis(axisInfo.DeviceName,axisInfo.GetAxisValue()) )
{
AutomaticBaiting.WarnMsg = " 运动轴" + axisInfo.Explain + "报警";
AutomaticBaiting.WarnMsg = ResourceControl.GetString(ResourceControl.MoveAxis, " 运动轴") + axisInfo.Explain + ResourceControl.GetString(ResourceControl.Alarm, "报警");
info.AlarmIoValue = alarmIo;
Alarm(StoreAlarmType.BatchAxisAlarm, GetAlarmCodeByAxis(axisInfo).ToString(), WarnMsg, StoreMoveType.None);
}
else
{
WarnMsg = StoreName + " 运动轴" + axisInfo.Explain + "报警";
WarnMsg = StoreName + ResourceControl.GetString(ResourceControl.MoveAxis, " 运动轴") + axisInfo.Explain + ResourceControl.GetString(ResourceControl.Alarm, "报警");
info.AlarmIoValue = alarmIo;
Alarm(StoreAlarmType.AxisAlarm, GetAlarmCodeByAxis(axisInfo).ToString(), WarnMsg, StoreMoveType.None);
}
......@@ -1623,7 +1624,7 @@ namespace OnlineStore.DeviceLibrary
string[] posArray = posId.Split('#');
if (posArray.Length != 2)
{
WarnMsg = StoreName + "出库格式错误:库位号【" + posId + "】";
WarnMsg = StoreName + ResourceControl.GetString(ResourceControl.OutStoreError, "出库格式错误:") + "【" + posId + "】";
LogUtil.error(LOGGER, "收到服务器出库命令:库位号【" + posId + "】格式错误");
continue;
}
......@@ -1634,7 +1635,7 @@ namespace OnlineStore.DeviceLibrary
if (position == null)
{
//出入库没有找到服务器发送的库位,需要打印日志方便查询原因
WarnMsg = StoreName + "出库未找库位:【" + posId + "】";
WarnMsg = StoreName + ResourceControl.GetString(ResourceControl.OutStoreNoPosition, "出库未找库位:") + "【" + posId + "】";
LogUtil.error(LOGGER, "收到服务器出库命令:未找到【" + posId + "】的库位信息");
continue;
}
......
......@@ -159,9 +159,9 @@ namespace OnlineStore.DeviceLibrary
if ((!wait.IsEnd) && span.TotalMilliseconds > timeOutMs)
{
ConfigIO io = Config.getWaitIO(wait.IoType);
WarnMsg = StoreName + " 等待" + io.DisplayStr + "=" + wait.IoValue + "超时";
WarnMsg = StoreName + ResourceControl.GetString(ResourceControl.WaitSingle, " 等待信号") + io.DisplayStr + "=" + wait.IoValue + ResourceControl.GetString(ResourceControl.TimeOut, "超时!");
Alarm(StoreAlarmType.IoSingleTimeOut, io.ElectricalDefinition, WarnMsg, StoreMove.MoveType);
LogUtil.error(StoreName + wait.IoType + "等待信号(" + io.DisplayStr + "=" + wait.IoValue + ") 超时", 14);
LogUtil.error( StoreName + wait.IoType + ResourceControl.GetString(ResourceControl.WaitSingle, " 等待信号") + "(" + io.DisplayStr + "=" + wait.IoValue + ") " + ResourceControl.GetString(ResourceControl.TimeOut, "超时"), 14);
isOk = false;
break;
}
......@@ -230,7 +230,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (span.TotalSeconds > StoreMove.TimeOutSeconds)
{
WarnMsg = "[" + StoreMove.MoveStep + "]等待[" + NotOkMsg + "]超时[" + Math.Round(span.TotalSeconds, 1) + "]秒";
WarnMsg = "[" + StoreMove.MoveStep + "]"+ResourceControl.GetString(ResourceControl.TimeOut, "超时" )+"[" + NotOkMsg + "][" + Math.Round(span.TotalSeconds, 1) + "]";
LogUtil.error(WarnMsg, 15);
Alarm(StoreAlarmType.IoSingleTimeOut, "", WarnMsg, StoreMove.MoveType);
}
......
......@@ -312,8 +312,8 @@ namespace OnlineStore.DeviceLibrary
else
{
//TODO 报警
WarnMsg = "吸盘吸料失败,请复位后拿出此料盘";
StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, "吸盘吸料失败", WarnMsg, StoreMoveType.InStore);
WarnMsg = ResourceControl.GetString(ResourceControl.XiLiaoError,"吸盘吸料失败");
StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, ResourceControl.GetString(ResourceControl.XiLiaoError, "吸盘吸料失败"), WarnMsg, StoreMoveType.InStore);
LogUtil.error(WarnMsg, 103);
}
}
......@@ -327,8 +327,8 @@ namespace OnlineStore.DeviceLibrary
}
else
{
WarnMsg = "吸盘吸料失败,请复位后拿出此料盘";
StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, "吸盘吸料失败", WarnMsg, StoreMoveType.InStore);
WarnMsg = ResourceControl.GetString(ResourceControl.XiLiaoError, "吸盘吸料失败");
StoreManager.Store.Alarm(StoreAlarmType.BatchAlarm, ResourceControl.GetString(ResourceControl.XiLiaoError, "吸盘吸料失败"), WarnMsg, StoreMoveType.InStore);
LogUtil.error(Name + "入料: 吸盘上升后未检测到吸盘压力信号,吸取料盘失败",105);
}
}
......
......@@ -169,7 +169,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (span.TotalSeconds > StoreMove.TimeOutSeconds)
{
WarnMsg = "[" + StoreMove.MoveStep + "]等待[" + NotOkMsg + "]超时[" + Math.Round(span.TotalSeconds, 0) + "秒]";
WarnMsg = "[" + StoreMove.MoveStep + "]" + ResourceControl.GetString(ResourceControl.TimeOut, "超时") + " [" + NotOkMsg + "][" + Math.Round(span.TotalSeconds, 0) + "秒]";
LogUtil.error(WarnMsg,102);
StoreManager.Store.Alarm(StoreAlarmType.BatchIoTimeOut, "", WarnMsg, StoreMove.MoveType);
}
......@@ -408,7 +408,7 @@ namespace OnlineStore.DeviceLibrary
string[] posArray = posId.Split('#');
if (!(posArray.Length == 2))
{
WarnMsg = Name + "入库库位格式错误:二维码【" + message + "】库位【" + posId + "】";
WarnMsg = Name+ ResourceControl.GetString(ResourceControl.InStoreError, "入库库位格式错误:") + "【" + message + "】【" + posId + "】";
LogUtil.error("服务器反馈 入库库位格式错误:二维码【" + message + "】库位【" + posId + "】");
LogUtil.info("服务器反馈 入库库位格式错误:二维码【" + message + "】库位【" + posId + "】");
return;
......@@ -419,7 +419,7 @@ namespace OnlineStore.DeviceLibrary
AutoStorePosition position = CSVPositionReader<AutoStorePosition>.GetPositon(posId);
if (position == null)
{ //出入库没有找到服务器发送的库位,需要打印日志方便查询原因
WarnMsg = "入库未找到库位:二维码【" + message + "】库位【" + posId + "】 ";
WarnMsg = ResourceControl.GetString(ResourceControl.InStoreNoPosition, "入库未找到库位:") + "【" + message + "】【" + posId + "】 ";
LogUtil.error("收到服务器入库命令:入库未找到库位:二维码【" + message + "】库位【" + posId + "】");
return;
}
......@@ -461,11 +461,11 @@ namespace OnlineStore.DeviceLibrary
map.Add(ParamDefine.confirmReelOut, ParamDefine.disable);
if (AutomaticBaiting.DoorStatus.Equals(2))
{
map.Add(ParamDefine.doorStatus, "门锁关闭");
map.Add(ParamDefine.doorStatus, ResourceControl.GetString(ResourceControl.doorClose,"门锁关闭"));
}
else
{
map.Add(ParamDefine.doorStatus, "门锁打开");
map.Add(ParamDefine.doorStatus, ResourceControl.GetString(ResourceControl.doorOpen,"门锁打开"));
}
......@@ -505,19 +505,19 @@ namespace OnlineStore.DeviceLibrary
}
else
{
return "忙碌中,无法打开门锁";
return ResourceControl.GetString(ResourceControl.CnotOpen,"忙碌中,无法打开门锁");
}
}
public static string doStartBatchIn()
{
if (!AutomaticBaiting.DoorIsClose())
{
return "批量入库失败:请先关闭上料机构";
return ResourceControl.GetString(ResourceControl.batchInError,"批量入库失败:请先关闭上料机构");
}
if (KND.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
{
return "批量入库失败:叉子料盘检测有料,请检查后再入库";
return ResourceControl.GetString(ResourceControl.batchInError2,"批量入库失败:叉子料盘检测有料,请检查后再入库");
}
AutomaticBaiting.BatchDoorClose(false);
......@@ -535,19 +535,19 @@ namespace OnlineStore.DeviceLibrary
}
else
{
return ("取出料盘失败:无料盘可取");
return (ResourceControl.GetString(ResourceControl.GetError,"取出料盘失败:无料盘可取"));
}
}
else
{
return ("取出料盘失败:忙碌中,无法打开门锁");
return (ResourceControl.GetString(ResourceControl.GetError2,"取出料盘失败:忙碌中,无法打开门锁"));
}
}
public static string doCloseDoor()
{
if (!AutomaticBaiting.DoorIsClose())
{
return ("锁门失败:请先关闭上料机构");
return (ResourceControl.GetString(ResourceControl.CloseError,"锁门失败:请先关闭上料机构"));
}
AutomaticBaiting.BatchDoorClose(false);
AutomaticBaiting.Reset(false);
......@@ -555,7 +555,7 @@ namespace OnlineStore.DeviceLibrary
}
public static bool doConfirmReelGo()
{
LogUtil.info("已确认料盘已手动拿出");
LogUtil.info(ResourceControl.GetString(ResourceControl.TakeTrayOut,"已确认料盘已手动拿出"));
AutomaticBaiting.IsWaitTragGo = false;
AutomaticBaiting.IsGetTrayGo = true;
return true;
......
......@@ -98,19 +98,7 @@ namespace OnlineStore.DeviceLibrary
IoCheckTimer.AutoReset = true;
IoCheckTimer.Enabled = false;
//IoCheckTimer.Elapsed += IoCheckTimer_Elapsed;
}
//public StoreRunStatus storeRunStatus
//{
// get
// {
// return storerunstatus;
// }
// set
// {
// StoreRunStatus oldStatus = storerunstatus;
// storerunstatus = value;
// }
//}
}
/// <summary>
......@@ -132,24 +120,24 @@ namespace OnlineStore.DeviceLibrary
public string GetRunStr(StoreRunStatus runStatus, bool IsStore)
{
string sta = "运行中";
string sta = ResourceControl.GetString(ResourceControl.Run, "运行中");
string aa = "";
switch (runStatus)
{
case StoreRunStatus.Busy:
sta = "忙碌";
sta = ResourceControl.GetString(ResourceControl.Busy, "忙碌");
break;
case StoreRunStatus.HomeMoving:
sta = "原点返回";
sta = ResourceControl.GetString(ResourceControl.HomeMove, "原点返回");
break;
case StoreRunStatus.Reset:
sta = "重置";
sta = ResourceControl.GetString(ResourceControl.Reset, "重置");
break;
case StoreRunStatus.Runing:
sta = "运行中";
sta = ResourceControl.GetString(ResourceControl.Runing, "运行中");
break;
case StoreRunStatus.Wait:
sta = "等待启动";
sta = ResourceControl.GetString(ResourceControl.Wait, "等待启动");
break;
}
if (runStatus > StoreRunStatus.Wait)
......@@ -158,37 +146,37 @@ namespace OnlineStore.DeviceLibrary
switch (storeStatus)
{
case StoreStatus.Debugging:
aa = "设备调试中";
aa = ResourceControl.GetString(ResourceControl.Debugging, "设备调试中");
break;
case StoreStatus.InStoreEnd:
aa = "料盘入仓位完成";
aa = ResourceControl.GetString(ResourceControl.InStoreEnd, "料盘入仓位完成");
break;
case StoreStatus.InStoreExecute:
aa = "入库执行中";
aa = ResourceControl.GetString(ResourceControl.InStoreExecute, "入库执行中");
break;
case StoreStatus.InTrouble:
aa = "故障中";
aa = ResourceControl.GetString(ResourceControl.InTrouble, "故障中");
break;
case StoreStatus.OutStoreBoxEnd:
aa = "料盘出仓位完成";
aa = ResourceControl.GetString(ResourceControl.OutStoreBoxEnd, "料盘出仓位完成");
break;
case StoreStatus.OutStoreExecute:
aa = "出库执行中";
aa = ResourceControl.GetString(ResourceControl.OutStoreExecute, "出库执行中");
break;
case StoreStatus.StoreOnline:
aa = "设备联机";
aa = ResourceControl.GetString(ResourceControl.StoreOnline, "设备联机");
break;
case StoreStatus.SuddenStop:
aa = "急停中";
aa = ResourceControl.GetString(ResourceControl.SuddenStop, "急停中");
break;
case StoreStatus.OutMoveExecute:
aa = "出库完成";
aa = ResourceControl.GetString(ResourceControl.OutMoveExecute, "出库完成");
break;
case StoreStatus.InStoreFaild:
aa = "入库失败(" + WarnMsg + ")";
aa = ResourceControl.GetString(ResourceControl.InStoreFailed, "入库失败") + "(" + WarnMsg + ")";
break;
case StoreStatus.OutStoreFaild:
aa = "出库失败(" + WarnMsg + ")";
aa = ResourceControl.GetString(ResourceControl.OutStoreFailed, "出库失败") + "(" + WarnMsg + ")";
break;
}
if (!aa.Equals(""))
......
......@@ -320,61 +320,63 @@ namespace OnlineStore.DeviceLibrary
{
if (IsHomeMove)
{
return "轴【" + AxisInfo.DisplayStr + "】原点返回";
return "【" + AxisInfo.DisplayStr + "】" + ResourceControl.GetString(ResourceControl.HomeMove, "原点返回");
}
else
{
return "轴【" + AxisInfo.DisplayStr + "】绝对位置【" + TargetPosition + "】";
return "【" + AxisInfo.DisplayStr + "】" + ResourceControl.GetString(ResourceControl.AbsMove, "绝对运动") + "【" + TargetPosition + "】";
}
}
else if (WaitType == (int)Wait_Type.IOMove_2)
else if (WaitType == 2)
{
return "IO信号等待【" + IoType + "】【" + IoValue + "】";
return ResourceControl.GetString(ResourceControl.WaitIo, "IO信号等待") + "【" + IoType + "】=【" + IoValue + "】";
}
else if (WaitType == (int)Wait_Type.Time_3)
else if (WaitType == 3)
{
return "时间【" + TimeMSeconds + "】毫秒";
return ResourceControl.GetString(ResourceControl.WaitTime, "时间等待:") + "【" + TimeMSeconds + "】";
}
else if (WaitType == (int)Wait_Type.StellMove_4)
{
return "电钢目标位置【" + TargetPosition + "】 ";
return ResourceControl.GetString(ResourceControl.TargetPosition, "电钢目标位置:") + "【" + TargetPosition + "】 ";
}
else if (WaitType == (int)Wait_Type.ShuoKe_5)
{
return "步进电机位置【" + TargetPosition + "】 ";
return ResourceControl.GetString(ResourceControl.TargetPosition, "电钢目标位置:") + "【" + TargetPosition + "】 ";
}
else if (WaitType == (int)Wait_Type.AxisHomeSingle_6)
{
return "轴【" + AxisInfo.DisplayStr + "】原点【" + IoValue + "】 ";
return "【" + AxisInfo.DisplayStr + "】ORG:【" + IoValue + "】 ";
}
else if (WaitType == (int)Wait_Type.WaitHeight_7)
{
return "料盘高度【" + HeightValue + "】 ";
return ResourceControl.GetString(ResourceControl.trayHeight,"料盘高度")+"【" + HeightValue + "】 ";
}
else if (WaitType == (int)Wait_Type.AxisLimitNegativeSingle_8)
{
return "轴【" + AxisInfo.DisplayStr + "】负限位【" + IoValue + "】 ";
return "【" + AxisInfo.DisplayStr + "】"+ ResourceControl.GetString(ResourceControl.FuLimit, "负限位")+"【" + IoValue + "】 ";
}
else if (WaitType == (int)Wait_Type.AxisLimitPositiveSingle_9)
{
return "轴【" + AxisInfo.DisplayStr + "】正限位【" + IoValue + "】 ";
return "【" + AxisInfo.DisplayStr + "】" + ResourceControl.GetString(ResourceControl.ZhLimit, "正限位") + "【" + IoValue + "】 ";
}
else if (WaitType == (int)Wait_Type.BatchAxisMove_10)
{
return "上料轴运动停止 ";
return ResourceControl.GetString(ResourceControl.BatchStop,"上料轴运动停止 ");
}else if (WaitType == (int)Wait_Type.ScanCode_11)
{
return "扫码结束";
}else if(WaitType == (int)Wait_Type.TakeTrayGo_12)
return ResourceControl.GetString(ResourceControl.ScanOk, "扫码结束");
}
else if(WaitType == (int)Wait_Type.TakeTrayGo_12)
{
return "操作人员拿走料盘";
}else if (WaitType == (int)Wait_Type.StoreRuning_13)
return ResourceControl.GetString(ResourceControl.TakeTrayGo, "操作人员拿走料盘");
}
else if (WaitType == (int)Wait_Type.StoreRuning_13)
{
return "等待送料结束";
return ResourceControl.GetString(ResourceControl.WaitEnd, "等待送料结束");
}
else
{
return "Wait位置类型:WaitType=【" + WaitType + "】";
return "WaitType=【" + WaitType + "】";
}
}
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OnlineStore.LoadCSVLibrary
{
class CSVResourceControl
{
public delegate string GetStrDelegate(string id, string defaultStr);
public static event GetStrDelegate GetStrEvent;
public delegate string GetStringDelegate(string id, string defaultStr, params object[] param);
public static event GetStringDelegate GetStringEvent;
public static string GetString(string id, string defaultStr)
{
string result = GetStrEvent?.Invoke(id, defaultStr);
return result;
}
public static string GetString(string id, string defaultStr, params object[] param)
{
string result = GetStringEvent?.Invoke(id, defaultStr, param);
return result;
}
}
}
......@@ -47,6 +47,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="CSVExection.cs" />
<Compile Include="CSVResourceControl.cs" />
<Compile Include="position\AutoStorePosition.cs" />
<Compile Include="storeConfig\ConfigItemBase.cs" />
<Compile Include="storeConfig\ConfigProAttribute.cs" />
......
......@@ -152,7 +152,7 @@ namespace OnlineStore.LoadCSVLibrary
public string DisplayStr
{
get {
return Explain + "(" + ProName + ")";
return CSVResourceControl.GetString(ProName, Explain) + "(" + ProName + ")";
}
set
{
......@@ -248,7 +248,7 @@ namespace OnlineStore.LoadCSVLibrary
{
get
{
return ElectricalDefinition + "_" + Explain + "(" + ProName+")";
return ElectricalDefinition + "_" + CSVResourceControl.GetString(ElectricalDefinition, Explain) + "(" + ProName + ")";
}
set
{
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!