Files
CPXV2/SystemX.Net.CP.PCAdaptor.UIM/SystemX.Net.PCAdaptorUI/MainForm.cs
2024-06-26 10:30:00 +09:00

1167 lines
41 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Collections.Concurrent;
using System.IO.Compression;
using SystemX.Common;
using SystemX.Net.Platform.Common.ExtensionMethods;
using SystemX.Net.Platform.Common.Util;
using SystemX.Net.Platform.Common;
using SystemX.Net.XAdaptor.Manager;
using System.Net;
using System.Globalization;
using SystemX.Net.Comm.IIS_FTP;
namespace SystemX.Net.XAdaptor.PC.UI
{
public partial class MainForm : Form
{
public enum eCurrentMode
{
Normal_Mode = 0,
Debug_Mode = 1,
User_Mode = 2
}
[Flags]
public enum eModeAccess
{
Normal_Mode = 0x0001,
Debug_Mode = 0x0002,
User_Mode = 0x0004
}
private eModeAccess CurAccess { set; get; }
private eCurrentMode CurMode { set; get; }
private XAdaptorManager ManagerAdaptor;
private bool[] bSocketState = new bool[3];
DataSet dsReadXml;
int iMaxPosition;
int iReadPosition;
DataTable dtReadXml;
private BackgroundWorker IssueWorker;
private Tuple<eResultIssued, string> IssuedResult;
private string strIssueID;
private string strIssueMacType;
private bool bReIssue;
private string strGetTestListInfo_ProdNoC = string.Empty;
private string strGetTestListInfo_ProdNoP = string.Empty;
private string strGetTestListInfo_TestCode = string.Empty;
private string strGetTestListInfo_Gate1 = string.Empty;
private string strGetTestListInfo_Gate2 = string.Empty;
private string strGetTestListInfo_FileName = string.Empty;
private string strGetTestListInfo_RegUserComment = string.Empty;
private string strGetTestListInfo_Description = string.Empty;
private string strGetTestListInfo_GroupName = string.Empty;
private string strGetTestListInfo_ModelName = string.Empty;
private string strGetTestListInfo_VariantNo = string.Empty;
private string strGetTestListInfo_TestListNo = string.Empty;
private string strGetTestListInfo_Config = string.Empty;
private string strGetTestListInfo_TestType = string.Empty;
private string strGetTestListInfo_Version = string.Empty;
private string strGetTestListInfo_ProdCode = string.Empty;
public ConcurrentQueue<string> SendWaitLogFile;
private bool isHasRow(object obj)
{
if (obj is DataSet)
{
DataSet ds = null;
ds = obj as DataSet;
return ((ds != null) ? (ds.Tables.Cast<DataTable>().Any(table => table.Rows.Count != 0)) : false);
}
else
return false;
}
public MainForm()
{
InitializeComponent();
SendWaitLogFile = new ConcurrentQueue<string>();
this.Size = new Size(660, 100);
MainPanel.Size = new Size(644, 61);
//CurAccess = eModeAccess.Normal_Mode | eModeAccess.User_Mode;
CurAccess = eModeAccess.User_Mode | eModeAccess.Debug_Mode;
//CurMode = eCurrentMode.Normal_Mode;
//StartMode(eCurrentMode.Debug_Mode, true);
StartMode(eCurrentMode.User_Mode, true);
//string strNowTime = DateTime.Now.ToString("yyyyMMddHHmmssfff");
comboBox1.SelectedIndex = 0;
comboBox2.SelectedIndex = 0;
comboBox3.SelectedIndex = 0;
comboBox4.SelectedIndex = 0;
FMAFIcomboBox1.SelectedIndex = 0;
RFIOMAcomboBox1.SelectedIndex = 0;
ConsoleUtil.ConsoleHide();
try
{
//TimeControl.DoSyncTime();
ManagerAdaptor = new XAdaptorManager();
string strGetConnectIP = ManagerAdaptor.GetAdaptorHandler.GetAdaptorConnectIP();
string strGetHostID = ManagerAdaptor.GetAdaptorHandler.GetAdaptorHostID();
string strGetSection = ManagerAdaptor.GetAdaptorHandler.GetAdaptorSection();
string strGetTestCode = ManagerAdaptor.GetAdaptorHandler.GetAdaptorTestCode();
int nCommandPort = ManagerAdaptor.GetAdaptorHandler.GetAdaptorCommandPort();
int nStreamPort = ManagerAdaptor.GetAdaptorHandler.GetAdaptorStreamPort();
bool bLoginResult = ManagerAdaptor.GetAdaptorHandler.GetAdaptorLoginResult();
string strLoginMessage = ManagerAdaptor.GetAdaptorHandler.GetAdaptorLoginMessage();
ManagerAdaptor.GetAdaptorHandler.CommandConnectAlarmEvent += ConnectCommandEvent;
ManagerAdaptor.GetAdaptorHandler.StreamConnectAlarmEvent += ConnectStreamEvent;
ManagerAdaptor.GetAdaptorHandler.ConnectionInfoRecvEvent += ConnectCommandInfoEvent;
ManagerAdaptor.GetAdaptorHandler.CommandDisconnectAlarmEvent += DisconnectCommandEvent;
ManagerAdaptor.GetAdaptorHandler.StreamDisconnectAlarmEvent += DisconnectStreamEvent;
ManagerAdaptor.GetAdaptorHandler.LoginAlarmEvent += LoginEvent;
//ManagerAdaptor.GetAdaptorHandler.QueryCallEvent += QueryRecvEvent;
for (int i = 0; i < 2; i++)
{
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
if (ManagerAdaptor.CommandSocketConn == false ||
ManagerAdaptor.StreamSocketConn == false)
{
Statelabel.Text = "DISCONNECT";
Statelabel.ForeColor = Color.Red;
}
Statetimer.Enabled = true;
AutoLogTimer.Enabled = true;
IssueWorker = new BackgroundWorker();
IssueWorker.WorkerReportsProgress = true;
IssueWorker.WorkerSupportsCancellation = true;
IssueWorker.DoWork += new DoWorkEventHandler(IssueWorkerDoWork);
IssueWorker.ProgressChanged += new ProgressChangedEventHandler(IssueWorkerProgressChanged);
IssueWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(IssueWorkerRunCompleted);
IssuedResult = new Tuple<eResultIssued, string>(eResultIssued.None, "");
}
private void ConnectCommandEvent(object sender, EventArgs e)
{
bSocketState[0] = true;
}
private void ConnectStreamEvent(object sender, EventArgs e)
{
bSocketState[1] = true;
}
private void ConnectCommandInfoEvent(object sender, EventArgs e)
{
//if(ManagerAdaptor.GetAdaptorHandler.GetPortDistributionConnState == false)
bSocketState[2] = true;
}
private void LoginEvent(object sender, EventArgs e)
{
bool bb1 = ManagerAdaptor.GetAdaptorHandler.GetAdaptorLoginResult();
string ss2 = ManagerAdaptor.GetAdaptorHandler.GetAdaptorLoginMessage();
}
private void DisconnectCommandEvent(object sender, EventArgs e)
{
bSocketState[0] = false;
}
private void DisconnectStreamEvent(object sender, EventArgs e)
{
bSocketState[1] = false;
}
private void QueryRecvEvent(object sender, EventArgs e)
{
Invoke((MethodInvoker)delegate ()
{
if ((e as ResultEventArgs).bProcReuslt)
{
dataGridView1.DataSource = ManagerAdaptor.GetTestListDataSet().Tables[0];
}
/*
{
FieldInfo fld = typeof(CTest).GetField("aaa");
fld.SetValue(ctest, 66);
}
{
FieldInfo fld = typeof(CTest).GetField("bbb");
fld.SetValue(ctest, false);
}
*/
//TestList File
/*
if(isHasRow(sender))
{
int iCol1 = (sender as DataSet).Tables[0].Columns.IndexOf("TestListData");
int iCol2 = (sender as DataSet).Tables[0].Columns.IndexOf("FileName");
(sender as DataSet).Tables[0].Columns[iCol1].ColumnMapping = MappingType.Hidden;
dataGridView1.DataSource = (sender as DataSet).Tables[0];
byte[] ucGetTestListData = (sender as DataSet).Tables[0].Rows[0]["TestListData"] as byte[];
string strFileName = (sender as DataSet).Tables[0].Rows[0]["FileName"].ToString();
string strVersion = (sender as DataSet).Tables[0].Rows[0]["Version"].ToString();
string ProdCode = (sender as DataSet).Tables[0].Rows[0]["ProdCode"].ToString();
string strExtension = ".CpXv" + strVersion + ProdCode;
//File.WriteAllBytes(@"C:\Users\SYSTEMX.KJH\Desktop\" + strFileName + strExtension, ucGetTestListData);
}
else
dataGridView1.DataSource = null;
*/
/* 받아온 바이트 스트리임 이미지로 표시
byte[] dd = null;
if (((sender as DataSet) != null) ? (sender as DataSet).Tables.Cast<DataTable>().Any(table => table.Rows.Count != 0) : false)
{
dd = (sender as DataSet).Tables[0].Rows[0]["LogData"] as byte[];
}
Guid uguid = Guid.NewGuid();
string strTempFileName = @"D:\" + uguid.ToString("B") + ".jpg";
try
{
File.WriteAllBytes(strTempFileName, (byte[])dd);
using (FileStream fs = new FileStream(@strTempFileName, FileMode.Open, FileAccess.Read))
{
Image source = Image.FromStream(fs);
;// pictureBox1.Image = source;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (File.Exists(strTempFileName))
File.Delete(strTempFileName);
}
*/
});
}
private void notifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (this.Visible)
this.Visible = false;
else
this.Visible = true;
}
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("You want to program exit?", "XAdaptor", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
e.Cancel = true;
else
e.Cancel = false;
}
private bool CheckAccessLevel(eModeAccess ChkAccess)
{
if ((CurAccess & ChkAccess) == ChkAccess)
return true;
else
return false;
}
private bool CheckLogin(bool bLoginPass = false)
{
if (bLoginPass == false)
{
LoginForm lf = new LoginForm();
if (lf.ShowDialog() == DialogResult.OK)
return true;
else
return false;
}
else
return true;
}
private void StartMode(eCurrentMode SetMode, bool bLoginPass = false)
{
if(CheckLogin(bLoginPass))
{
switch(SetMode)
{
case eCurrentMode.Normal_Mode:
MainPanel.Visible = true;
MainPanel.Dock = DockStyle.Fill;
this.MinimumSize = new Size(660, 100);
this.MaximumSize = new Size(660, 100);
break;
case eCurrentMode.Debug_Mode:
MainPanel.Dock = DockStyle.None;
this.MinimumSize = new Size(1500, 600);
this.MaximumSize = new Size(1500, 600);
break;
case eCurrentMode.User_Mode:
MainPanel.Dock = DockStyle.Fill;
this.MinimumSize = new Size(660, 240);
this.MaximumSize = new Size(660, 240);
break;
}
CurMode = SetMode;
}
}
private void MainPanel_DoubleClick(object sender, EventArgs e)
{
if (CheckAccessLevel(eModeAccess.Debug_Mode))
{
if (DebugButton.Visible)
DebugButton.Visible = false;
else
DebugButton.Visible = true;
}
//
if (CheckAccessLevel(eModeAccess.User_Mode))
{
if (UserButton.Visible)
UserButton.Visible = false;
else
UserButton.Visible = true;
}
}
private void TestButton_Click(object sender, EventArgs e)
{
if (CheckAccessLevel(eModeAccess.Debug_Mode) == false)
return;
StartMode(eCurrentMode.Debug_Mode, false);
DebugButton.Visible = false;
UserButton.Visible = false;
}
private void UserButton_Click(object sender, EventArgs e)
{
if (CheckAccessLevel(eModeAccess.User_Mode) == false)
return;
StartMode(eCurrentMode.User_Mode, false);
UserButton.Visible = false;
DebugButton.Visible = false;
}
private void MainForm_DoubleClick(object sender, EventArgs e)
{
StartMode(eCurrentMode.Normal_Mode, true);
}
private void Statetimer_Tick(object sender, EventArgs e)
{
Statetimer.Enabled = false;
//ManagerAdaptor.CheckStationTestListReload()
//ManagerAdaptor.SetStationTestListReloadStateOff();
/*foreach (int nStationID in ManagerAdaptor.NeedTestListReloadList())
{
if (ManagerAdaptor.GetStationTestListReload(nStationID))
{
ManagerAdaptor.SetStationTestListReload(nStationID);
ManagerAdaptor.MgrConnection.QueryPRODReleaseList((uint)nStationID, QT_ProdcNoC_Info.Text,
QT_TestType_Info.Text,
QT_TestCode_Info.Text,
QT_TestListVersion_Info.Text,
QT_ProductionCode_Info.Text);
}
}*/
if (ManagerAdaptor.GetAdaptorHandler.SubscribeConnectInfo.bSessionStarted)
{
double? dGetTimeOut = ManagerAdaptor.GetAdaptorHandler.GetSessionTimeoutTime();
double dTimeOut = dGetTimeOut == null ? 300.0 : dGetTimeOut.Value;
if (dTimeOut > 0.0)
{
TimeSpan ts = ManagerAdaptor.GetAdaptorHandler.SubscribeConnectInfo.GetSessionTime();
SessionTimelabel.Text = ts.ToString(@"hh\:mm\:ss\.fffffff");
double dCurTime = 0.0;
int nPct = 0;
dCurTime = ts.TotalSeconds;
nPct = (int)((dCurTime * 100) / dTimeOut);
if (nPct < 0)
nPct = 0;
if (nPct > 100)
nPct = 100;
this.progressBar2.Value = nPct;
}
}
string strMakeNotifyText = "XAdaptor-";
string strMakeFormText = "XAdaptor-";
if (bSocketState[0])
{
strMakeNotifyText += "[COMMAND ON]";
strMakeFormText += "[COMMAND ON]";
}
else
{
strMakeNotifyText += "[COMMAND OFF]";
strMakeFormText += "[COMMAND OFF]";
}
//
if (bSocketState[1])
{
strMakeNotifyText += "[STREAM ON]";
strMakeFormText += "[STREAM ON]";
}
else
{
strMakeNotifyText += "[STREAM OFF]";
strMakeFormText += "[STREAM OFF]";
}
if (bSocketState[0] && bSocketState[1])
{
if (bSocketState[2])
{
if (Statelabel.Text.CompareTo("CONNECT(RUNNING) ...") != 0)
{
Statelabel.Text = "CONNECT(RUNNING) ...";
Statelabel.ForeColor = Color.White;
if (UserConnectButton.Enabled)
UserConnectButton.Enabled = false;
if (UserDisconnectButton.Enabled == false)
UserDisconnectButton.Enabled = true;
if (CurMode == eCurrentMode.User_Mode)
{
this.MinimumSize = new Size(660, 560);
this.MaximumSize = new Size(660, 560);
if (groupBoxMacQuery.Visible == false)
groupBoxMacQuery.Visible = true;
progressBar2.Value = 0;
}
}
}
else
{
if (Statelabel.Text.CompareTo("CONNECT") != 0)
{
Statelabel.Text = "CONNECT";
Statelabel.ForeColor = Color.LimeGreen;
}
}
}
else
{
if (Statelabel.Text.CompareTo("DISCONNECT") != 0)
{
Statelabel.Text = "DISCONNECT";
Statelabel.ForeColor = Color.Red;
if (ManagerAdaptor.GetAdaptorHandler.GetConnectionInfo.bPortDistribution == false ||
ManagerAdaptor.GetAdaptorHandler.SubscribeConnectInfo.bSubscriberClientResult == false)
{
if (UserConnectButton.Enabled == false)
UserConnectButton.Enabled = true;
if (UserDisconnectButton.Enabled)
UserDisconnectButton.Enabled = false;
}
if (CurMode == eCurrentMode.User_Mode)
{
if (groupBoxMacQuery.Visible)
groupBoxMacQuery.Visible = false;
this.MinimumSize = new Size(660, 240);
this.MaximumSize = new Size(660, 240);
}
bSocketState[2] = false;
}
}
if (notifyIcon.Text.IndexOf(strMakeNotifyText) < 0)
notifyIcon.Text = strMakeNotifyText;
if (this.Text.IndexOf(strMakeFormText) < 0)
this.Text = strMakeFormText;
if (Statelabel.Text.CompareTo("CONNECT(RUNNING) ...") == 0)
{
if (Statelabel.ForeColor == Color.White)
Statelabel.ForeColor = Color.LimeGreen;
else
Statelabel.ForeColor = Color.White;
if (ManagerAdaptor.GetClientInfoState())
{
LastCommandTimeLabel.Text = ManagerAdaptor.GetLastCommandTime().ToString();
LastStreamTimeLabel.Text = ManagerAdaptor.GetLastStreamTime().ToString();
}
}
Statetimer.Enabled = true;
}
private async void AutoLogTimer_Tick(object sender, EventArgs e)
{
AutoLogTimer.Enabled = false;
if (SendWaitLogFile.Count > 0)
{
string strGetFileName = string.Empty;
if (SendWaitLogFile.TryDequeue(out strGetFileName))
{
string strGetStationName = textBox16.Text;
var b1 = await ManagerAdaptor.MgrConn.AsyncCPLogFileTransfer(@strGetFileName,
strGetStationName,
int.Parse(strGetTestListInfo_TestListNo),
strGetTestListInfo_ProdNoP,
strGetTestListInfo_ProdNoC,
strGetTestListInfo_TestType,
strGetTestListInfo_TestCode,
strGetTestListInfo_Version,
strGetTestListInfo_ProdCode);
}
}
AutoLogTimer.Enabled = true;
}
private void Statelabel_DoubleClick(object sender, EventArgs e)
{
ConsoleUtil.ConsoleVisibleControl();
}
private void contextMenuSubStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
ToolStripItem tsi = e.ClickedItem;
this.Close();
}
private async void button_QT_Click(object sender, EventArgs e)
{
uint nStationID = 0;
if (uint.TryParse(textBox1.Text, out nStationID) == false)
nStationID = 0;
/*
var getResult = await ManagerAdaptor.MgrConn.GetTestListQueryWithFilePath(@"D:\", nStationID, QT_ProdcNoC_Info.Text,
QT_TestType_Info.Text,
QT_TestCode_Info.Text,
QT_TestListVersion_Info.Text,
QT_ProductionCode_Info.Text);
*/
//테스트리스트 파일경로
//실패했을때는 string.empty 빈문자열
//getResult.Item1
//테스트리스트 번호
//실패했을대는 int.MinValue
//getResult.Item2
/*var c2 = await ManagerAdaptor.MgrConn.GetTestListQueryWithFilePath(@"D:\", nStationID, QT_ProdcNoC_Info.Text,
QT_TestType_Info.Text,
QT_TestCode_Info.Text,
QT_TestListVersion_Info.Text,
QT_ProductionCode_Info.Text, true);*/
var c2 = await ManagerAdaptor.MgrConn.GetTestListQueryWithFilePath(@"D:\", nStationID, QT_ProdcNoC_Info.Text,
QT_TestType_Info.Text,
QT_TestCode_Info.Text,
QT_TestListVersion_Info.Text,
QT_ProductionCode_Info.Text, false);
if (c2.Item2 != int.MinValue)
{
dataGridView1.DataSource = ManagerAdaptor.GetTestListDataSet().Tables[0];
}
/*
var b1 = await ManagerAdaptor.MgrConn.AsyncWaitCheckTestList(nStationID, QT_ProdcNoC_Info.Text,
QT_TestType_Info.Text,
QT_TestCode_Info.Text,
QT_TestListVersion_Info.Text,
QT_ProductionCode_Info.Text);
if (b1)
{
var b2 = await ManagerAdaptor.MgrConn.AsyncWaitQueryTestList(nStationID, QT_ProdcNoC_Info.Text,
QT_TestType_Info.Text,
QT_TestCode_Info.Text,
QT_TestListVersion_Info.Text,
QT_ProductionCode_Info.Text);
if (b2)
dataGridView1.DataSource = ManagerAdaptor.GetTestListDataSet().Tables[0];
}
*/
}
private async void button18_Click(object sender, EventArgs e)
{
uint nStationID = 0;
if (uint.TryParse(textBox1.Text, out nStationID) == false)
nStationID = 0;
var b = await ManagerAdaptor.MgrConn.AsyncWaitCheckTestList(nStationID, QT_ProdcNoC_Info.Text,
QT_TestType_Info.Text,
QT_TestCode_Info.Text,
QT_TestListVersion_Info.Text,
QT_ProductionCode_Info.Text);
}
private async void button19_Click(object sender, EventArgs e)
{
//bool b = ManagerAdaptor.CheckServerState();
bool b1 = ManagerAdaptor.GetServerTestListLoadState();
bool b2 = await ManagerAdaptor.AsyncWaitCheckServerState();
}
private void Button_FindInfo_Click(object sender, EventArgs e)
{
DataRow[] drs = ManagerAdaptor.GetTestListContainer().GetPRODTestList(QT_ProdNoP_Info.Text, QT_ProdcNoC_Info.Text,
QT_TestType_Info.Text,
QT_TestCode_Info.Text,
QT_TestListVersion_Info.Text,
QT_ProductionCode_Info.Text);
if (drs != null && drs.Count() == 1)
{
DataTable dt = new DataTable();
dt = drs.CopyToDataTable();
int iCol1 = dt.Columns.IndexOf("TestListData");
dt.Columns[iCol1].ColumnMapping = MappingType.Hidden;
strGetTestListInfo_ProdNoC = drs[0]["ProdNo_C"].ToString();
strGetTestListInfo_ProdNoP = drs[0]["ProdNo_P"].ToString();
strGetTestListInfo_TestCode = drs[0]["TestCode"].ToString();
strGetTestListInfo_Gate1 = drs[0]["Gate1"].ToString();
strGetTestListInfo_Gate2 = drs[0]["Gate2"].ToString();
strGetTestListInfo_FileName = drs[0]["FileName"].ToString();
strGetTestListInfo_RegUserComment = drs[0]["RegUserComment"].ToString();
strGetTestListInfo_Description = drs[0]["Description"].ToString();
strGetTestListInfo_GroupName = drs[0]["GroupName"].ToString();
strGetTestListInfo_ModelName = drs[0]["ModelName"].ToString();
strGetTestListInfo_VariantNo = drs[0]["VariantNo"].ToString();
strGetTestListInfo_TestListNo = drs[0]["TestListNo"].ToString();
strGetTestListInfo_Config = drs[0]["Config"].ToString();
strGetTestListInfo_TestType = drs[0]["TestType"].ToString();
strGetTestListInfo_Version = drs[0]["Version"].ToString();
strGetTestListInfo_ProdCode = drs[0]["ProdCode"].ToString();
dataGridView1.DataSource = dt;
Type type = typeof(QueryGetInfo);
FieldInfo[] f = type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
for (int i = 0; i < f.Length; i++)
{
richTextBox1.AppendText(f[i].Name + " ");
richTextBox1.AppendText(f[i].GetValue(ManagerAdaptor.GetTestListContainer().ReadInfo()) + "\r\n");
}
label22.Text = ManagerAdaptor.GetTestListContainer().GetTestListCntID();
string sss = ManagerAdaptor.GetTestListContainer().MakeTestListFile(@"D:\");
dsReadXml = new DataSet();
dsReadXml.ReadXml(sss);
dtReadXml = new DataTable();
iMaxPosition = dsReadXml.Tables.Count;
iReadPosition = 0;
dtReadXml = dsReadXml.Tables[iReadPosition];
dataGridView2.DataSource = dtReadXml;
}
else
dataGridView1.DataSource = null;
/*
if(xAdaptor.CurrentTestList().FindInfo(QT_TestType_Info.Text,
QT_TestCode_Info.Text,
QT_TestListVersion_Info.Text,
QT_ProductionCode_Info.Text) != null)
{
xAdaptor.CurrentTestList();
}
*/
}
private void Button_List_Click(object sender, EventArgs e)
{
dataGridView1.DataSource = ManagerAdaptor.GetTestListContainer().getTestListDataSet().Tables[0];
}
private void button2_Click(object sender, EventArgs e)
{
iReadPosition -= 1;
if (iReadPosition < 0)
iReadPosition = 0;
dtReadXml = dsReadXml.Tables[iReadPosition];
dataGridView2.DataSource = dtReadXml;
}
private void button3_Click(object sender, EventArgs e)
{
iReadPosition += 1;
if (iReadPosition >= iMaxPosition)
iReadPosition = iMaxPosition - 1;
dtReadXml = dsReadXml.Tables[iReadPosition];
dataGridView2.DataSource = dtReadXml;
}
private async Task DoWorkAsync()
{
string strGetStationName = textBox16.Text;
await Task.Delay(100);
var b1 = await ManagerAdaptor.MgrConn.AsyncCPLogFileTransfer(@openFileDialog.FileName,
strGetStationName,
int.Parse(strGetTestListInfo_TestListNo),
strGetTestListInfo_ProdNoP,
strGetTestListInfo_ProdNoC,
strGetTestListInfo_TestType,
strGetTestListInfo_TestCode,
strGetTestListInfo_Version,
strGetTestListInfo_ProdCode);
await Task.Delay(100);
}
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
Stopwatch stSetTime = new Stopwatch();
stSetTime.Start();
string strGetStationName = textBox16.Text;
//ManagerAdaptor.MgrConn.CPLogFileTransfer(@openFileDialog.FileName, "TEST", 0, "9101340064", "900134VTAU", "MMXX", "HT", "01", "e");
/*var t = Task.Run(() =>
{
ManagerAdaptor.MgrConn.CPLogFileTransfer(@openFileDialog.FileName,
strGetStationName,
int.Parse(strGetTestListInfo_TestListNo),
strGetTestListInfo_ProdNoP,
strGetTestListInfo_ProdNoC,
strGetTestListInfo_TestType,
strGetTestListInfo_TestCode,
strGetTestListInfo_Version,
strGetTestListInfo_ProdCode);
});
t.Wait();*/
var task = DoWorkAsync();
//task.Wait();
task.ConfigureAwait(false);
long ltime = stSetTime.ElapsedMilliseconds;
}
}
private void button21_Click(object sender, EventArgs e)
{
if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
{
string strSelectedPath = folderBrowserDialog.SelectedPath;
string[] dirs = Directory.GetDirectories(strSelectedPath);
string[] files = Directory.GetFiles(strSelectedPath, $"*.CpLog", SearchOption.TopDirectoryOnly);
if (files.Length > 0)
{
foreach (string f in files)
{
SendWaitLogFile.Enqueue(@f);
}
}
}
}
private void button4_Click(object sender, EventArgs e)
{
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
ManagerAdaptor.MgrConn.SendCustomFile(@openFileDialog.FileName);
}
}
private void button5_Click(object sender, EventArgs e)
{
dataGridView1.DataSource = null;
DataSet dsResult = ManagerAdaptor.MgrConn.WaitUserQuery(textBox2.Text);
if (XCommons.isHasRow(dsResult))
dataGridView1.DataSource = dsResult.Tables[0];
}
private void button6_Click(object sender, EventArgs e)
{
if (ManagerAdaptor.MgrUIMConn.CheckIssuedID(textBox3.Text) == eResultCheck.NotIssued)
textBox3.BackColor = Color.Lime;
else
textBox3.BackColor = Color.Red;
}
private void button7_Click(object sender, EventArgs e)
{
eResultCheck rs = ManagerAdaptor.MgrUIMConn.CheckIssuedMacAddress(textBox4.Text);
if(rs == eResultCheck.InvalidMacAddressFormat)
textBox4.BackColor = Color.Red;
else if (rs == eResultCheck.AlreadyIssued)
textBox4.BackColor = Color.Yellow;
else
textBox4.BackColor = Color.Lime;
}
private void button8_Click(object sender, EventArgs e)
{
if (ManagerAdaptor.MgrUIMConn.CheckListMacAddress(textBox5.Text))
textBox5.BackColor = Color.Lime;
else
textBox5.BackColor = Color.Red;
}
private void button9_Click(object sender, EventArgs e)
{
eMacAddressType type = eMacAddressType.InvalidMacAddressFormat;
Enum.TryParse<eMacAddressType>(comboBox1.SelectedItem.ToString(), out type);
if(type != eMacAddressType.InvalidMacAddressFormat)
textBox6.Text = ManagerAdaptor.MgrUIMConn.GetToBeIssuedMacAddress(type);
}
private void button10_Click(object sender, EventArgs e)
{
label8.Text = ManagerAdaptor.MgrUIMConn.GetTotalAddressNumber().ToString();
}
private void button11_Click(object sender, EventArgs e)
{
label9.Text = ManagerAdaptor.MgrUIMConn.GetCurrentIssuedAddressNumber().ToString();
}
private void button12_Click(object sender, EventArgs e)
{
label10.Text = ManagerAdaptor.MgrUIMConn.GetRemainAddressNumber().ToString();
}
private void button13_Click(object sender, EventArgs e)
{
textBox8.Text = ManagerAdaptor.MgrUIMConn.LookUpIDbyMacAddress(textBox7.Text);
}
private void button14_Click(object sender, EventArgs e)
{
eMacAddressType type = eMacAddressType.InvalidMacAddressFormat;
Enum.TryParse<eMacAddressType>(comboBox2.SelectedItem.ToString(), out type);
eLookUpOption LookUp = eLookUpOption.CompareToSame;
Enum.TryParse<eLookUpOption>(comboBox4.SelectedItem.ToString(), out LookUp);
string strText = textBox9.Text;
textBox10.Text = ManagerAdaptor.MgrUIMConn.LookUpMacAddressbyID(ref strText, LookUp, type);
}
private void button15_Click(object sender, EventArgs e)
{
eMacAddressType type = eMacAddressType.InvalidMacAddressFormat;
Enum.TryParse<eMacAddressType>(comboBox3.SelectedItem.ToString(), out type);
string strGetMacAddressInfo = string.Empty;
var vResult = ManagerAdaptor.MgrUIMConn.IssuanceRequest(textBox11.Text, checkBox1.Checked, type);
textBox12.Text = vResult.strMacAddress;
textBox15.Text = vResult.strErrMessage;
if (vResult.eResult == eResultIssued.Success)
textBox11.BackColor = Color.Lime;
else
textBox11.BackColor = Color.Red;
}
private async void button16_Click(object sender, EventArgs e)
{
ManagerAdaptor.GetAdaptorHandler.LoginID = textBox13.Text;
ManagerAdaptor.GetAdaptorHandler.LoginKEY = textBox14.Text;
ManagerAdaptor.WaitConnect();
}
private void button17_Click(object sender, EventArgs e)
{
ManagerAdaptor.Disconnect();
}
private async void UserConnectButton_Click(object sender, EventArgs e)
{
ManagerAdaptor.GetAdaptorHandler.LoginID = UserIDtextBox.Text;
ManagerAdaptor.GetAdaptorHandler.LoginKEY = UserPasswordtextBox.Text;
if (await ManagerAdaptor.Connect())
{
UserIDtextBox.Text = "";
UserPasswordtextBox.Text = "";
UserConnectButton.Enabled = false;
if (ManagerAdaptor.CheckStateFTP() == eFTPServiceStatus.Connected)
{
labelFTPConn.ForeColor = Color.LimeGreen;
labelFTPConn.Text = "FTP Connected";
}
else if (ManagerAdaptor.CheckStateFTP() == eFTPServiceStatus.Disconnected)
{
labelFTPConn.Text = "FTP Failed";
}
else if (ManagerAdaptor.CheckStateFTP() == eFTPServiceStatus.Unused)
{
labelFTPConn.ForeColor = Color.Yellow;
labelFTPConn.Text = "FTP Unused";
}
}
}
private void UserDisconnectButton_Click(object sender, EventArgs e)
{
ManagerAdaptor.Disconnect();
}
private void SessionTimelabel_DoubleClick(object sender, EventArgs e)
{
ManagerAdaptor.GetAdaptorHandler.SubscribeConnectInfo.SessionTimeSet();
}
private void FIFMABtn_Click(object sender, EventArgs e)
{
FIFMAtextBox2.Text = ManagerAdaptor.MgrUIMConn.LookUpIDbyMacAddress(FIFMAtextBox1.Text);
}
private void FMAFIBtn_Click(object sender, EventArgs e)
{
if (FMAFItextBox1.Text.Length <= 0)
return;
eMacAddressType type = eMacAddressType.InvalidMacAddressFormat;
Enum.TryParse<eMacAddressType>(FMAFIcomboBox1.SelectedItem.ToString(), out type);
string strText = FMAFItextBox1.Text;
FMAFItextBox2.Text = ManagerAdaptor.MgrUIMConn.LookUpMacAddressbyID(ref strText, eLookUpOption.CompareToSame, type);
}
// Worker Thread가 실제 하는 일
void IssueWorkerDoWork(object sender, DoWorkEventArgs e)
{
DateTime dtTime = DateTime.Now;
int nPct = 0;
double? dGetWaitTime = ManagerAdaptor.GetAdaptorHandler.GetIssueWorkerWaitTime();
double dWaitTime = dGetWaitTime == null ? 3000.0 : dGetWaitTime.Value;
double dCurTime = 0.0;
e.Result = null;
while (IssueWorker.CancellationPending == false)
{
TimeSpan tsWait = DateTime.Now - dtTime;
dCurTime = tsWait.TotalMilliseconds;
nPct = (int)((dCurTime * 100) / dWaitTime);
IssueWorker.ReportProgress(nPct);
if (dCurTime >= dWaitTime)
{
IssueWorker.ReportProgress(100);
Thread.Sleep(10);
break;
}
Thread.Sleep(10);
}
Thread.Sleep(100);
if (IssueWorker.CancellationPending == false)
{
eMacAddressType type = eMacAddressType.InvalidMacAddressFormat;
Enum.TryParse<eMacAddressType>(strIssueMacType, out type);
string strGetMacAddressInfo = string.Empty;
var vResult = ManagerAdaptor.MgrUIMConn.IssuanceRequest(strIssueID, bReIssue, type);
e.Result = vResult;
}
else
e.Cancel = true;
}
// Progress 리포트 - UI Thread
void IssueWorkerProgressChanged(object sender, ProgressChangedEventArgs e)
{
int nGetValue = e.ProgressPercentage;
if (nGetValue < 0)
nGetValue = 0;
if (nGetValue > 100)
nGetValue = 100;
this.progressBar1.Value = nGetValue;
}
// 작업 완료 - UI Thread
void IssueWorkerRunCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// 에러가 있는지 체크
if (e.Error != null)
{
//MessageBox.Show(e.Error.Message, "Error");
return;
}
else if(e.Cancelled)
{
this.progressBar1.Value = 0;
}
else
{
ResultIssued getResult = e.Result as ResultIssued;
RFIOMAtextBox3.Text = getResult.strMacAddress;
RFIOMAtextBox2.Text = getResult.strErrMessage;
if (getResult.eResult == eResultIssued.Success)
RFIOMAtextBox1.BackColor = Color.Lime;
else
RFIOMAtextBox1.BackColor = Color.Red;
}
RFIOMABtn.ForeColor = Color.Black;
RFIOMABtn.Text = "Request for issuance of mac address";
RFIOMABtn.Enabled = true;
RFIOMAtextBox1.ReadOnly = false;
}
private void RFIOMABtn_Click(object sender, EventArgs e)
{
// 비동기(Async)로 실행
if (IssueWorker.IsBusy == false)
{
RFIOMAtextBox1.BackColor = Color.White;
if (RFIOMAtextBox1.Text.Length <= 0)
return;
if (MessageBox.Show("Do you really want to issue a MAC address for the ID [" + RFIOMAtextBox1.Text + "]? (Please check the ID again)", "XAdaptor", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
return;
strIssueID = RFIOMAtextBox1.Text;
strIssueMacType = RFIOMAcomboBox1.SelectedItem.ToString();
bReIssue = checkBox2.Checked;
RFIOMAtextBox1.ReadOnly = true;
RFIOMAtextBox3.Text = "";
IssueWorker.RunWorkerAsync();
RFIOMABtn.Text = "Cancellation of issuance";
RFIOMABtn.ForeColor = Color.Red;
}
else
{
IssueWorker.CancelAsync();
RFIOMABtn.Enabled = false;
}
}
private async void button20_Click(object sender, EventArgs e)
{
if(await ManagerAdaptor.MgrConn.WaitSyncTimeServer(true))
{
int i = int.MaxValue;
}
}
}
}