ITC81DB_V8/ITC81DB/Controls/CenterSystem/ControlCenterSystemJudgment...

300 lines
16 KiB
C#

using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using SmartX;
using ITC81DB.DialogForms;
using ITC81DB.Forms;
using ITC81DB_ImageDll;
namespace ITC81DB.Controls
{
public partial class ControlCenterSystemJudgmentAuto : UserControl
{
#region Field
private FormMenu m_ParentForm;
private DataStore.Step3 WizardStep;
#endregion
#region Property
public FormMenu ParentForm
{
get { return this.m_ParentForm; }
private set { this.m_ParentForm = value; }
}
#endregion
#region Constructor
public ControlCenterSystemJudgmentAuto(FormMenu parent)
{
InitializeComponent();
this.ParentForm = parent;
this.InitializeDesign();
}
#endregion
#region Method
public void InitializeDesign()
{
Class1 images = new Class1();
if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.English)
{
this.smartGroupBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.engBackgroundJudgment_Auto));
}
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese)
{
this.smartGroupBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.chnBackgroundJudgment_Auto));
}
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Czech)
{
}
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian)
{
this.smartGroupBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.rusBackgroundJudgment_Auto));
}
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German)
{
this.smartGroupBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.gerBackgroundJudgment_Auto));
}
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Spanish)
{
this.smartGroupBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.engBackgroundJudgment_Auto));
}
else
{
this.smartGroupBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.korBackgroundJudgment_Auto));
}
}
private void ChangeStep(DataStore.Step3 step)
{
Class1 images = new Class1();
this.WizardStep = step;
switch (step)
{
case DataStore.Step3.Step1:
this.pictureBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.AutoJudgmentImage1));
if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.English)
this.labelHelp.Text = "After entering the speed (Hz), press the [→] button.";
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese)
this.labelHelp.Text = "输入速度(Hz)后,按[→]按钮。";
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Czech)
this.labelHelp.Text = "Po zadání rychlosti(Hz) stiskněte tlačítko[→].";
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian)
this.labelHelp.Text = "После ввода скорости(Hz) нажмите кнопку [→].";
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German)
this.labelHelp.Text = "Drücken Sie nach Eingabe der Geschwindigkeit(Hz) die Taste [→].";
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Spanish)
this.labelHelp.Text = "Después de ingresar la velocidad (Hz), presione el botón [→].";
else
this.labelHelp.Text = "속도(Hz)를 입력한 후 [→] 버튼을 눌러주십시오.";
this.buttonNext.Enabled = true;
this.labelFeedSpeed.Enabled = true;
this.labelFeedSpeed.ForeColor = Color.White;
this.labelProductLength.Enabled = false;
this.labelProductLength.ForeColor = Color.Gray;
break;
case DataStore.Step3.Step2:
this.pictureBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.AutoJudgmentImage2));
if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.English)
this.labelHelp.Text = "After entering the product length (mm), press the [→] button.";
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese)
this.labelHelp.Text = "输入产品长度(mm)后,按[→]按钮。";
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Czech)
this.labelHelp.Text = "Po zadání délky produktu(mm) stiskněte tlačítko [→].";
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian)
this.labelHelp.Text = "После ввода длины продукта (мм) нажмите кнопку [→].";
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German)
this.labelHelp.Text = "Drücken Sie nach Eingabe der Produktlänge(mm) die Taste [→].";
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Spanish)
this.labelHelp.Text = "Después de ingresar la longitud del producto (mm), presione el botón [→].";
else
this.labelHelp.Text = "제품 길이(mm)를 입력한 후 [→] 버튼을 눌러주십시오.";
this.labelFeedSpeed.Enabled = false;
this.labelFeedSpeed.ForeColor = Color.Gray;
this.labelProductLength.Enabled = true;
this.labelProductLength.ForeColor = Color.White;
break;
case DataStore.Step3.Step3:
this.pictureBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.AutoJudgmentImage3));
if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.English)
this.labelHelp.Text = "After pushing the operation button, pass the product.";
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese)
this.labelHelp.Text = "按下操作按钮后,通过产品。";
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Czech)
this.labelHelp.Text = "Po stisknutí ovládacího tlačítka produkt předejte.";
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian)
this.labelHelp.Text = "После нажатия кнопки операции, передайте продукт.";
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German)
this.labelHelp.Text = "Übergeben Sie das Produkt, nachdem Sie die Bedientaste gedrückt haben.";
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Spanish)
this.labelHelp.Text = "Después de presionar el botón de Operación, pase el producto.";
else
this.labelHelp.Text = "운전 버튼을 누른 후, 제품을 통과시켜 주십시오.";
this.buttonNext.Enabled = false;
this.labelFeedSpeed.Enabled = false;
this.labelFeedSpeed.ForeColor = Color.Gray;
this.labelProductLength.Enabled = false;
this.labelProductLength.ForeColor = Color.Gray;
break;
default:
break;
}
}
public void CaculateJudgmentData(int sensorDetectingTime)
{
double time2; // 시간2 : (컨베이어 길이 - 제품길이) / 속도
double time3;
double speed; // 이송속도2 : 제품길이 / 시간1
if (this.WizardStep == DataStore.Step3.Step3)
{
this.labelSensingTime.Text = sensorDetectingTime.ToString();
SmartSplash splash = new SmartSplash();
splash.CenterPosition = true;
splash.AnimationInterval = 200;
splash.LoadingImagePathname = "SmartLoading4";
splash.Start();
// 이송속도2 = 제품길이 / 시간1
speed = Convert.ToDouble(this.ParentForm.ParentForm.CurrentJudgmentSetItem.ProductLength) / Convert.ToDouble(sensorDetectingTime);
//speed2 = Math.Round(speed + 0.0005, 3) * 1000;
//this.labelFeedSpeed2.Text = speed2.ToString();
this.ParentForm.CenterSystemJudgmentManual.DisplaySpeedmmin(Math.Round(speed * 60, 2).ToString());
//this.labelFeedSpeedUnitmmin.Text = Math.Round(speed * 60, 2).ToString();
// 판정지연 = 컨베어 길이/속도 = 시간1 + 시간2(=(컨베어 길이-제품길이) / 속도)
time2 = Convert.ToDouble(this.ParentForm.ParentForm.SystemConfig2.ConveyorLength -
this.ParentForm.ParentForm.CurrentJudgmentSetItem.ProductLength) / speed;
time2 = Math.Floor(time2);
this.ParentForm.ParentForm.CurrentJudgmentSetItem.JudgmentDelayTime = sensorDetectingTime + Convert.ToInt32(time2);
// 이중지연 = time1 + 150
if (this.ParentForm.ParentForm.CurrentJudgmentSetItem.JudgmentDelayTime < sensorDetectingTime + 150)
this.ParentForm.ParentForm.CurrentJudgmentSetItem.DoubleDelayTime = this.ParentForm.ParentForm.CurrentJudgmentSetItem.JudgmentDelayTime - 50;
else
this.ParentForm.ParentForm.CurrentJudgmentSetItem.DoubleDelayTime = sensorDetectingTime + 150;
// 선별기 지연시간 = (선별점거리 - 제품길이) + 제품길이 X 1/3 / 속도
//time3 = Convert.ToDouble(this.ParentForm.ParentForm.SystemConfig2.SortingPointLength
// - (this.ParentForm.ParentForm.CurrentJudgmentSetItem.ProductLength * 2 / 3)) / speed;
//if (time3 < 0)
// time3 = 0.0;
//else
// time3 = Math.Floor(time3);
//this.ParentForm.ParentForm.CurrentJudgmentSetItem.Sorter1DelayTime = Convert.ToInt32(time3);
//this.ParentForm.ParentForm.CurrentJudgmentSetItem.Sorter2DelayTime = Convert.ToInt32(time3);
//this.labelSorterDelayTime.Text = Convert.ToInt32(time3).ToString();
this.ParentForm.ParentForm.SaveJudgmentSetFile(this.ParentForm.ParentForm.CurrentJudgmentSetItem, this.ParentForm.ParentForm.SystemConfig1.ProductNumber - 1);
this.ParentForm.ParentForm.TransferProductParameter(this.ParentForm.ParentForm.SystemConfig1.ProductNumber);
splash.Finish();
}
}
public void DisplayRefresh(SystemStatus status)
{
this.ParentForm.ParentForm.CurrentSystemStatus.CurrentDisplay = DataStore.DisplayStore.SystemJudgmentAuto;
this.labelFeedSpeed.Text = this.ParentForm.ParentForm.CurrentJudgmentSetItem.FeedSpeed1.ToString();
this.labelProductLength.Text = this.ParentForm.ParentForm.CurrentJudgmentSetItem.ProductLength.ToString();
this.labelSensingTime.Text = "0";
if (this.ParentForm != null)
this.ParentForm.UpdateEquipmentStatusDisplay(this.ParentForm.ParentForm.CurrentSystemStatus.Equipment);
this.ChangeStep(DataStore.Step3.Step1);
}
#endregion
#region Event Handler
private void labelFeedSpeed_Click(object sender, EventArgs e)
{
string value = "", message = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelFeedSpeed.Text, 4, 0, false, this.ParentForm.ParentForm.SystemConfig1.Language);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.doubleValue < 1 || myKeyPad.doubleValue > 120)
{
// 입력범위를 확인하세요
message = "1~120";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig1.Language, message);
myMsg.ShowDialog();
}
else
{
this.labelFeedSpeed.Text = myKeyPad.StringValue;
this.ParentForm.ParentForm.CurrentJudgmentSetItem.FeedSpeed1 = myKeyPad.IntValue;
value = Helper.StringZeroFillDigits4(myKeyPad.StringValue);
this.ParentForm.ParentForm.TransferDataStream(CommunicationCommand.Write, CommunicationID.MainBoard, CommunicationAddress.FeedSpeed, value);
this.ParentForm.ParentForm.SaveJudgmentSetFile(this.ParentForm.ParentForm.CurrentJudgmentSetItem, this.ParentForm.ParentForm.SystemConfig1.ProductNumber - 1);
}
}
}
private void labelProductLength_Click(object sender, EventArgs e)
{
string value = "", message = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelProductLength.Text, 4, 0, false, this.ParentForm.ParentForm.SystemConfig1.Language);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue < 1) // || myKeyPad.IntValue > int.Parse(this.labelConveyorLength.Text))
{
// 입력범위를 확인하세요
message = "1~"; // + this.labelConveyorLength.Text;
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig1.Language, message);
myMsg.ShowDialog();
}
else
{
this.labelProductLength.Text = myKeyPad.StringValue;
this.ParentForm.ParentForm.CurrentJudgmentSetItem.ProductLength = myKeyPad.IntValue;
this.ParentForm.ParentForm.SaveJudgmentSetFile(this.ParentForm.ParentForm.CurrentJudgmentSetItem, this.ParentForm.ParentForm.SystemConfig1.ProductNumber - 1);
}
}
}
private void buttonNext_Click(object sender, EventArgs e)
{
switch (this.WizardStep)
{
case DataStore.Step3.Step1:
this.ChangeStep(DataStore.Step3.Step2);
break;
case DataStore.Step3.Step2:
this.ChangeStep(DataStore.Step3.Step3);
break;
default:
break;
}
}
private void buttonExit_Click(object sender, EventArgs e)
{
this.ParentForm.CenterSystemJudgmentManual.DisplayRefresh(this.ParentForm.ParentForm.CurrentSystemStatus);
this.ParentForm.CenterSystemJudgmentManual.BringToFront();
}
#endregion
}
}