ITC81DB_V8/ITC81DB/Controls/CenterEquipment/ControlCenterEquipInitializ...

574 lines
27 KiB
C#
Raw Normal View History

2023-07-11 01:56:01 +00:00
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.IO;
using System.Text;
using System.Windows.Forms;
using ITC81DB.Forms;
using ITC81DB.DialogForms;
using ITC81DB_ImageDll;
namespace ITC81DB.Controls
{
public partial class ControlCenterEquipInitialize : UserControl
{
#region Field
private FormMenu m_ParentForm;
private DataStore.Step3 InitializeStep;
private int FlagTimeout;
#endregion
#region Constructor
public ControlCenterEquipInitialize(FormMenu parent)
{
InitializeComponent();
this.ParentForm = parent;
this.InitializeDesign();
}
#endregion
#region Property
public FormMenu ParentForm
{
get { return this.m_ParentForm; }
private set { this.m_ParentForm = value; }
}
#endregion
#region Method
public void InitializeDesign()
{
Class1 images = new Class1();
if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.English)
{
this.buttonBackup.Font = this.buttonMainBoardLcd.Font = this.buttonLcd.Font = new Font("새굴림", 18, FontStyle.Bold);
this.buttonMainBoard.Font = this.buttonSystemInitialization.Font = new Font("새굴림", 18, FontStyle.Bold);
this.buttonBackup.Text = "Backup";
this.buttonMainBoardLcd.Text = "Mainboard+LCD";
this.buttonMainBoard.Text = "Mainboard";
this.buttonLcd.Text = "LCD";
this.buttonSystemInitialization.Text = "System Init";
}
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese)
{
this.buttonBackup.Font = this.buttonMainBoardLcd.Font = this.buttonLcd.Font = new Font("새굴림", 18, FontStyle.Bold);
this.buttonMainBoard.Font = this.buttonSystemInitialization.Font = new Font("새굴림", 18, FontStyle.Bold);
this.buttonBackup.Text = "备份";
this.buttonMainBoardLcd.Text = "主板+LCD";
this.buttonMainBoard.Text = "主板";
this.buttonLcd.Text = "LCD";
this.buttonSystemInitialization.Text = "所有初始化";
}
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Czech)
{
}
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian)
{
this.buttonBackup.Font = this.buttonMainBoardLcd.Font = this.buttonLcd.Font = new Font("새굴림", 13, FontStyle.Bold);
this.buttonMainBoard.Font = this.buttonSystemInitialization.Font = new Font("새굴림", 13, FontStyle.Bold);
this.buttonBackup.Text = "Возврат";
this.buttonMainBoardLcd.Text = "главной платы+LCD";
this.buttonMainBoard.Text = "главной платы";
this.buttonLcd.Text = "LCD";
this.buttonSystemInitialization.Text = "Системы";
}
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German)
{
this.buttonBackup.Font = this.buttonMainBoardLcd.Font = this.buttonLcd.Font = new Font("새굴림", 18, FontStyle.Bold);
this.buttonMainBoard.Font = this.buttonSystemInitialization.Font = new Font("새굴림", 18, FontStyle.Bold);
this.buttonBackup.Text = "Sicherung";
this.buttonMainBoardLcd.Text = "Mainboard+LCD";
this.buttonMainBoard.Text = "Mainboard";
this.buttonLcd.Text = "LCD";
this.buttonSystemInitialization.Text = "System";
}
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Spanish)
{
this.buttonBackup.Font = this.buttonMainBoardLcd.Font = this.buttonLcd.Font = new Font("새굴림", 18, FontStyle.Bold);
this.buttonMainBoard.Font = this.buttonSystemInitialization.Font = new Font("새굴림", 18, FontStyle.Bold);
this.buttonBackup.Text = "Respaldo";
this.buttonMainBoardLcd.Text = "Placa base+LCD";
this.buttonMainBoard.Text = "Placa base";
this.buttonLcd.Text = "LCD";
this.buttonSystemInitialization.Text = "Inicializar";
}
else
{
this.buttonBackup.Font = this.buttonMainBoardLcd.Font = this.buttonLcd.Font = new Font("새굴림", 18, FontStyle.Bold);
this.buttonMainBoard.Font = this.buttonSystemInitialization.Font = new Font("새굴림", 18, FontStyle.Bold);
this.buttonBackup.Text = "Backup";
this.buttonMainBoardLcd.Text = "Mainboard+LCD";
this.buttonMainBoard.Text = "Mainboard";
this.buttonLcd.Text = "LCD";
this.buttonSystemInitialization.Text = "System Init";
}
}
private void DefaultSetting()
{
this.FlagTimeout = 0;
this.timer.Interval = 500;
this.progressBarInitialize.Value = 0;
this.InitializeStep = DataStore.Step3.Step1;
this.UpdateLabelStatus(this.InitializeStep, this.ParentForm.ParentForm.SystemConfig1.Language);
}
private void DeleteFolder(string address)
{
DirectoryInfo dir = new DirectoryInfo(address);
if (dir.Exists == true)
dir.Delete(true);
}
private void CopyFolder(string departure, string destination)
{
DirectoryInfo dirDestination = new DirectoryInfo(destination);
if (dirDestination.Exists == false)
dirDestination.Create();
FileInfo[] files;
DirectoryInfo dirDeparture = new DirectoryInfo(departure);
if (dirDeparture.Exists == true)
{
files = dirDeparture.GetFiles();
foreach (FileInfo subFile in files)
subFile.CopyTo(destination + subFile.Name, true);
}
}
private void MoveToRemoveFileFolder(string address)
{
DirectoryInfo dirDestination = new DirectoryInfo(this.ParentForm.ParentForm.PathSDCardRemoveFileFolder);
if (dirDestination.Exists == false)
dirDestination.Create();
FileInfo[] files;
DirectoryInfo dirDeparture = new DirectoryInfo(address);
if (dirDeparture.Exists == true)
{
files = dirDeparture.GetFiles();
foreach (FileInfo subFile in files)
subFile.MoveTo(this.ParentForm.ParentForm.PathSDCardRemoveFileFolder + string.Format("{0:yyyyMMddHHmmss}", DateTime.Now) + subFile.Name);
}
}
private void InitializeMainBoard(DialogResult result)
{
if (result == DialogResult.Yes)
{
this.timer.Enabled = true;
this.progressBarInitialize.Value = 0;
this.InitializeStep = DataStore.Step3.Step2;
this.UpdateLabelStatus(this.InitializeStep, this.ParentForm.ParentForm.SystemConfig1.Language);
this.ParentForm.ParentForm.TransferData(CommunicationCommand.Initialization, CommunicationID.MainBoard);
}
}
private void InitializeLcd(DialogResult result)
{
if (result == DialogResult.Yes)
{
this.InitializeStep = DataStore.Step3.Step2;
this.UpdateLabelStatus(this.InitializeStep, this.ParentForm.ParentForm.SystemConfig1.Language);
this.progressBarInitialize.Value = 0;
this.progressBarInitialize.Value += 20;
// SD Card - SystemFile2를 RemoveFiles로 이동
this.MoveToRemoveFileFolder(this.ParentForm.ParentForm.PathSDCardSystemFile2Folder);
this.progressBarInitialize.Value += 20;
// Flash Disk - SystemFile2 이동
this.CopyFolder(this.ParentForm.ParentForm.PathFlashDiskSystemFile2Folder, this.ParentForm.ParentForm.PathSDCardSystemFile2Folder);
this.progressBarInitialize.Value += 20;
2023-12-04 02:13:33 +00:00
this.InitializeCount(this.ParentForm.ParentForm.SystemConfig1.ProductNumber);
2023-07-11 01:56:01 +00:00
this.progressBarInitialize.Value = 100;
this.InitializeStep = DataStore.Step3.Step3;
this.UpdateLabelStatus(this.InitializeStep, this.ParentForm.ParentForm.SystemConfig1.Language);
this.ParentForm.Enabled = false;
}
}
private void InitializeMainBoardLcd(DialogResult result)
{
if (result == DialogResult.Yes)
{
this.InitializeStep = DataStore.Step3.Step2;
this.UpdateLabelStatus(this.InitializeStep, this.ParentForm.ParentForm.SystemConfig1.Language);
this.progressBarInitialize.Value = 0;
this.progressBarInitialize.Value += 15;
// SD Card - SystemFile2를 RemoveFiles로 이동
this.MoveToRemoveFileFolder(this.ParentForm.ParentForm.PathSDCardSystemFile2Folder);
this.progressBarInitialize.Value += 15;
// Flash Disk - SystemFile2 이동
this.CopyFolder(this.ParentForm.ParentForm.PathFlashDiskSystemFile2Folder, this.ParentForm.ParentForm.PathSDCardSystemFile2Folder);
this.progressBarInitialize.Value += 15;
2023-12-04 02:13:33 +00:00
this.InitializeCount(this.ParentForm.ParentForm.SystemConfig1.ProductNumber);
2023-07-11 01:56:01 +00:00
this.progressBarInitialize.Value += 15;
this.timer.Enabled = true;
this.ParentForm.ParentForm.TransferData(CommunicationCommand.Initialization, CommunicationID.MainBoard);
}
}
private void BackupSystemFile(DialogResult result)
{
if (result == DialogResult.Yes)
{
this.InitializeStep = DataStore.Step3.Step2;
this.UpdateLabelStatus(this.InitializeStep, this.ParentForm.ParentForm.SystemConfig1.Language);
this.progressBarInitialize.Value = 0;
// Flash Disk - SystemFile1, 2 삭제
this.progressBarInitialize.Value += 20;
this.DeleteFolder(this.ParentForm.ParentForm.PathFlashDiskSystemFile1Folder);
this.progressBarInitialize.Value += 20;
this.DeleteFolder(this.ParentForm.ParentForm.PathFlashDiskSystemFile2Folder);
this.progressBarInitialize.Value += 20;
// SD Card - SystemFile1, 2 이동
this.CopyFolder(this.ParentForm.ParentForm.PathSDCardSystemFile1Folder, this.ParentForm.ParentForm.PathFlashDiskSystemFile1Folder);
this.progressBarInitialize.Value += 20;
this.CopyFolder(this.ParentForm.ParentForm.PathSDCardSystemFile2Folder, this.ParentForm.ParentForm.PathFlashDiskSystemFile2Folder);
this.progressBarInitialize.Value = 100;
this.InitializeStep = DataStore.Step3.Step3;
this.UpdateLabelStatus(this.InitializeStep, this.ParentForm.ParentForm.SystemConfig1.Language);
this.ParentForm.Enabled = false;
}
}
private void InitializeSystem(DialogResult result)
{
if (result == DialogResult.Yes)
{
this.InitializeStep = DataStore.Step3.Step2;
this.UpdateLabelStatus(this.InitializeStep, this.ParentForm.ParentForm.SystemConfig1.Language);
this.progressBarInitialize.Value = 0;
// SystemFile 1, 2 RemoveFile 폴더로 이동
this.MoveToRemoveFileFolder(this.ParentForm.ParentForm.PathSDCardSystemFile1Folder);
this.progressBarInitialize.Value += 50;
this.MoveToRemoveFileFolder(this.ParentForm.ParentForm.PathSDCardSystemFile2Folder);
this.progressBarInitialize.Value = 100;
this.InitializeStep = DataStore.Step3.Step3;
this.UpdateLabelStatus(this.InitializeStep, this.ParentForm.ParentForm.SystemConfig1.Language);
this.ParentForm.Enabled = false;
}
}
2023-12-04 02:13:33 +00:00
private void InitializeCount(int productNumber)
{
StringBuilder sb = new StringBuilder();
sb.Append(Helper.StringZeroFillDigits4(productNumber.ToString())); // 품번(4)
sb.Append("0000000"); // ExNG 카운트(7)
sb.Append("0000000"); // 상한 카운트(7)
sb.Append("0000000"); // 기준 카운트(7)
sb.Append("0000000"); // 하한 카운트(7)
sb.Append("0000"); // Dummy1(4)
sb.Append("0000000"); // Dummy1(7)
sb.Append("0000000"); // Dummy2(7)
sb.Append("0000000"); // Dummy3(7)
sb.Append("0000000"); // Dummy4(7)
this.ParentForm.ParentForm.TransferDataStream(CommunicationCommand.Write, CommunicationID.MainBoard, CommunicationAddress.ParameterCount, sb.ToString());
}
2023-07-11 01:56:01 +00:00
private void UpdateLabelStatus(DataStore.Step3 step, DataStore.LanguageID language)
{
switch (step)
{
case DataStore.Step3.Step1:
#region Step1
switch (language)
{
case DataStore.LanguageID.Korean:
this.labelMessage1.Font = new Font("새굴림", 17, FontStyle.Regular);
this.labelMessage1.Text = "초기화를 원하는 항목을 선택해주십시오";
this.labelMessage2.Text = "";
break;
case DataStore.LanguageID.English:
this.labelMessage1.Font = new Font("새굴림", 17, FontStyle.Regular);
this.labelMessage1.Text = "Please select the item you want to initialize";
this.labelMessage2.Text = "";
break;
case DataStore.LanguageID.Chinese:
this.labelMessage1.Font = new Font("새굴림", 17, FontStyle.Regular);
this.labelMessage1.Text = "请选择要初始化的项目";
this.labelMessage2.Text = "";
break;
case DataStore.LanguageID.Russian:
this.labelMessage1.Font = new Font("새굴림", 12, FontStyle.Regular);
this.labelMessage1.Text = "Пожалуйста, выберите элемент,";
this.labelMessage2.Font = new Font("새굴림", 12, FontStyle.Regular);
this.labelMessage2.Text = "который хотите инициализировать";
break;
case DataStore.LanguageID.German:
this.labelMessage1.Font = new Font("새굴림", 12, FontStyle.Regular);
this.labelMessage1.Text = "Bitte wählen Sie das Element aus, das Sie initialisieren möchten";
this.labelMessage2.Text = "";
break;
case DataStore.LanguageID.Spanish:
this.labelMessage1.Font = new Font("새굴림", 17, FontStyle.Regular);
this.labelMessage1.Text = "Por favor, seleccione el elemento que desea inicializar";
this.labelMessage2.Text = "";
break;
default:
break;
}
#endregion
break;
case DataStore.Step3.Step2:
#region Step2
switch (language)
{
case DataStore.LanguageID.Korean:
this.labelMessage1.Font = new Font("새굴림", 17, FontStyle.Regular);
this.labelMessage1.Text = "초기화 중...";
this.labelMessage2.Text = "";
break;
case DataStore.LanguageID.English:
this.labelMessage1.Font = new Font("새굴림", 17, FontStyle.Regular);
this.labelMessage1.Text = "Initializing...";
this.labelMessage2.Text = "";
break;
case DataStore.LanguageID.Chinese:
this.labelMessage1.Font = new Font("새굴림", 17, FontStyle.Regular);
this.labelMessage1.Text = "初始化中...";
this.labelMessage2.Text = "";
break;
case DataStore.LanguageID.Russian:
this.labelMessage1.Font = new Font("새굴림", 12, FontStyle.Regular);
this.labelMessage1.Text = "Выполняется инициализация...";
this.labelMessage2.Text = "";
break;
case DataStore.LanguageID.German:
this.labelMessage1.Font = new Font("새굴림", 12, FontStyle.Regular);
this.labelMessage1.Text = "Initialisierung wird ausgeführt...";
this.labelMessage2.Text = "";
break;
case DataStore.LanguageID.Spanish:
this.labelMessage1.Font = new Font("새굴림", 17, FontStyle.Regular);
this.labelMessage1.Text = "Inicializando...";
this.labelMessage2.Text = "";
break;
default:
break;
}
#endregion
break;
case DataStore.Step3.Step3:
#region Step3
switch (language)
{
case DataStore.LanguageID.Korean:
this.labelMessage1.Font = new Font("새굴림", 17, FontStyle.Regular);
this.labelMessage1.Text = "초기화 완료";
this.labelMessage2.Font = new Font("새굴림", 17, FontStyle.Regular);
this.labelMessage2.Text = "전원을 끄고 다시 켜주세요.";
break;
case DataStore.LanguageID.English:
this.labelMessage1.Font = new Font("새굴림", 17, FontStyle.Regular);
this.labelMessage1.Text = "Initialization complete";
this.labelMessage2.Font = new Font("새굴림", 17, FontStyle.Regular);
this.labelMessage2.Text = "Reset the power.";
break;
case DataStore.LanguageID.Chinese:
this.labelMessage1.Font = new Font("새굴림", 17, FontStyle.Regular);
this.labelMessage1.Text = "初始化完成";
this.labelMessage2.Font = new Font("새굴림", 17, FontStyle.Regular);
this.labelMessage2.Text = "关掉电源,然后在打开电源";
break;
case DataStore.LanguageID.Russian:
this.labelMessage1.Font = new Font("새굴림", 12, FontStyle.Regular);
this.labelMessage1.Text = "Инициализация завершена";
this.labelMessage2.Font = new Font("새굴림", 12, FontStyle.Regular);
this.labelMessage2.Text = "Выключите питание и снова включите.";
break;
case DataStore.LanguageID.German:
this.labelMessage1.Font = new Font("새굴림", 12, FontStyle.Regular);
this.labelMessage1.Text = "Die Initialisierung ist abgeschlossen";
this.labelMessage2.Font = new Font("새굴림", 12, FontStyle.Regular);
this.labelMessage2.Text = "Mit dem Hauptschalter aus- und einschalten";
break;
case DataStore.LanguageID.Spanish:
this.labelMessage1.Font = new Font("새굴림", 12, FontStyle.Regular);
this.labelMessage1.Text = "Inicialización completa";
this.labelMessage2.Font = new Font("새굴림", 12, FontStyle.Regular);
this.labelMessage2.Text = "Apague la alimentación y luego encienda la alimentación.";
break;
default:
break;
}
#endregion
break;
default:
break;
}
this.Refresh();
}
public void UpdateDisplayMainBoardInitialization()
{
this.timer.Enabled = false;
this.progressBarInitialize.Value = 100;
this.InitializeStep = DataStore.Step3.Step3;
this.UpdateLabelStatus(this.InitializeStep, this.ParentForm.ParentForm.SystemConfig1.Language);
this.ParentForm.Enabled = false;
}
public void DisplayRefresh(SystemStatus status)
{
this.ParentForm.ParentForm.CurrentSystemStatus.CurrentDisplay = DataStore.DisplayStore.EquipInitialize;
this.ParentForm.ParentForm.SetDisplayMode(DataStore.DisplayMode.Menu);
this.ParentForm.DisplayTitleRoot(this.ParentForm.ParentForm.CurrentSystemStatus);
this.DefaultSetting();
if (status.CurrentUser.Group == DataStore.UserGroup.Level4Developer && this.ParentForm.ParentForm.SystemConfig1.IsLogin == true)
this.DisplayHiddenMenu(true);
else
this.DisplayHiddenMenu(false);
}
public void DisplayHiddenMenu(bool visible)
{
if (visible == false)
{
this.buttonBackup.Visible = false;
this.buttonSystemInitialization.Visible = false;
}
else
{
this.buttonBackup.Visible = true;
this.buttonSystemInitialization.Visible = true;
}
}
#endregion
#region Event Handler
private void buttonMainBoardLcd_Click(object sender, EventArgs e)
{
// 설정된 모든 데이터가 초기화됩니다.
DialogFormYesNo myDlg = new DialogFormYesNo(this.ParentForm.ParentForm.SystemConfig1.Language, 5);
DialogResult dr = myDlg.ShowDialog();
myDlg.Close();
this.Refresh();
this.InitializeMainBoardLcd(dr);
}
private void buttonMainBoard_Click(object sender, EventArgs e)
{
// 메인보드에 설정된 데이터가 초기화됩니다.
DialogFormYesNo myDlg = new DialogFormYesNo(this.ParentForm.ParentForm.SystemConfig1.Language, 7);
DialogResult dr = myDlg.ShowDialog();
myDlg.Close();
this.Refresh();
this.InitializeMainBoard(dr);
}
private void buttonLcd_Click(object sender, EventArgs e)
{
// LCD에 설정된 데이터가 초기화됩니다.
DialogFormYesNo myDlg = new DialogFormYesNo(this.ParentForm.ParentForm.SystemConfig1.Language, 6);
DialogResult dr = myDlg.ShowDialog();
myDlg.Close();
this.Refresh();
this.InitializeLcd(dr);
}
private void buttonBackup_Click(object sender, EventArgs e)
{
// 현재 데이터를 백업하시겠습니까?
DialogFormYesNo myDlg = new DialogFormYesNo(this.ParentForm.ParentForm.SystemConfig1.Language, 23);
DialogResult dr = myDlg.ShowDialog();
myDlg.Close();
this.Refresh();
this.BackupSystemFile(dr);
}
private void buttonSystemInitialization_Click(object sender, EventArgs e)
{
// 설정된 모든 데이터가 초기화됩니다.
DialogFormYesNo myDlg = new DialogFormYesNo(this.ParentForm.ParentForm.SystemConfig1.Language, 5);
DialogResult dr = myDlg.ShowDialog();
myDlg.Close();
this.Refresh();
this.InitializeSystem(dr);
}
private void timer_Tick(object sender, EventArgs e)
{
this.FlagTimeout++;
if (this.FlagTimeout == 10)
{
this.timer.Enabled = false;
// 메인보드 통신 상태 확인해주세요
DialogFormMessage message = new DialogFormMessage(22, this.ParentForm.ParentForm.SystemConfig1.Language);
message.ShowDialog();
}
this.progressBarInitialize.Value += 2;
}
private void buttonBackup2_Click(object sender, EventArgs e)
{
bool directoryCheck = false;
string filePathSystemFileBackup = "", filePathSystemFile = "";
FileInfo[] files;
filePathSystemFile = this.ParentForm.ParentForm.PathSDCardSystemFile1Folder;
filePathSystemFileBackup = this.ParentForm.ParentForm.PathSDCardSystemFileBackupFolder;
DirectoryInfo dirSystemFileFolder = new DirectoryInfo(filePathSystemFile);
DirectoryInfo dirSystemFileBackupFolder = new DirectoryInfo(filePathSystemFileBackup);
// SystemFileBackup 폴더 체크
directoryCheck = dirSystemFileBackupFolder.Exists;
if (directoryCheck == false)
dirSystemFileBackupFolder.Create();
else
{
files = dirSystemFileBackupFolder.GetFiles();
foreach (FileInfo file in files)
file.Delete();
}
files = dirSystemFileFolder.GetFiles();
foreach (FileInfo file in files)
{
file.CopyTo(filePathSystemFileBackup + file.Name, true);
}
}
#endregion
}
}