This commit is contained in:
ChiKyun Kim
2025-09-23 15:41:16 +09:00
parent 02028afc27
commit b037dd53e6
74 changed files with 4269 additions and 7917 deletions

View File

@@ -1,8 +1,6 @@
using AR;
using Chilkat;
using Emgu.CV;
using Emgu.CV.Structure;
using Microsoft.Owin.Hosting;
using Project.Dialog;
using System;
using System.Collections.Generic;
@@ -21,18 +19,6 @@ namespace Project
{
public partial class FMain : Form
{
[DllImport("user32")]
public static extern Boolean ShowWindow(IntPtr hWnd, Int32 nCmdShow);
[DllImport("user32.dll")]
private static extern int SetActiveWindow(int hwnd);
[DllImport("user32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
Boolean camliveBusy = false;
bool liveviewprocesson = false;
Stopwatch watFps = new Stopwatch();
@@ -223,15 +209,26 @@ namespace Project
}
void RefreshList()
//void RefreshList()
//{
// // 비동기로 실행
// Task.Run(async () => await RefreshListAsync());
//}
async Task RefreshList()
{
//if (COMM.SETTING.Data.OnlineMode == false) return;
if (this.InvokeRequired)
// ProgressBar 표시
this.BeginInvoke(new Action(() =>
{
this.BeginInvoke(new MethodInvoker(RefreshList));
return;
}
if (progressBarRefresh != null)
{
progressBarRefresh.Visible = true;
progressBarRefresh.Style = ProgressBarStyle.Marquee;
progressBarRefresh.MarqueeAnimationSpeed = 30;
}
}));
VAR.TIME[eVarTime.REFRESHLIST] = DateTime.Now;
@@ -243,56 +240,39 @@ namespace Project
{
try
{
var ta = new DataSet1TableAdapters.K4EE_Component_Reel_ResultTableAdapter();
ta.FillByLen7(this.dataSet1.K4EE_Component_Reel_Result, dtstr, dtstr, AR.SETTING.Data.McName);
await Task.Run(() =>
{
var ta = new DataSet1TableAdapters.K4EE_Component_Reel_ResultTableAdapter();
ta.FillByLen7(this.dataSet1.K4EE_Component_Reel_Result, dtstr, dtstr, AR.SETTING.Data.McName);
});
}
catch (Exception ex)
{
PUB.log.AddE($"DB History Request Error" + ex.Message);
}
}
ListFormmatData();
// UI 업데이트는 UI 스레드에서
this.BeginInvoke(new Action(() => ListFormmatData()));
var TS1 = VAR.TIME.RUN(eVarTime.REFRESHLIST);
PUB.log.AddI(string.Format($"List refresh({0} items) {TS1.TotalSeconds:N1}s", dataSet1.K4EE_Component_Reel_Result.Count));
////Summary
//listView1.Items.Clear();
//using (var ta = new DataSet1TableAdapters.ResultSummaryTableAdapter())
//{
// var dt = ta.GetData(dtstr, dtstr, AR.SETTING.Data.McName);
// var sum_qty = 0;
// var sum_kpc = 0.0;
// foreach (DataSet1.ResultSummaryRow dr in dt)
// {
// var lv = this.listView1.Items.Add(dr.PARTNO);
// lv.SubItems.Add(dr.VLOT);
// lv.SubItems.Add($"{dr.QTY}");
// lv.SubItems.Add($"{dr.KPC}");
// sum_qty += dr.QTY;
// sum_kpc += dr.KPC;
// }
// if (sum_qty > 0)
// {
// var lvsum = this.listView1.Items.Add("TOTAL");
// lvsum.SubItems.Add("");
// lvsum.SubItems.Add($"{sum_qty}");
// lvsum.SubItems.Add($"{sum_kpc}");
// lvsum.BackColor = Color.LightGray;
// }
//}
//TS1 = VAR.TIME.RUN(eVarTime.REFRESHLIST);
//PUB.log.AddI($"Summary{TS1.TotalSeconds:N1}s");
}
catch (Exception ex)
{
PUB.log.AddE("List refresh failed:" + ex.Message);
}
finally
{
// ProgressBar 숨기기
this.BeginInvoke(new Action(() =>
{
if (progressBarRefresh != null)
{
progressBarRefresh.Visible = false;
}
}));
}
}
void ListFormmatData()
@@ -334,7 +314,7 @@ namespace Project
}
arDatagridView1.ResumeLayout();
}
private void __Load(object sender, EventArgs e)
async private void __Load(object sender, EventArgs e)
{
@@ -355,6 +335,7 @@ namespace Project
//this.pPosR.Visible = false;
this.Show();
Application.DoEvents();
// sbDevice.Text = "";
SetStatusMessage("Program initialization", Color.White, Color.White, Color.Tomato, Color.Black);
@@ -446,29 +427,8 @@ namespace Project
PUB.plc.ValueChanged += Plc_ValueChanged;
PUB.plc.Start();
//Connection check thread
var thStart = new System.Threading.ThreadStart(bwDeviceConnection);
thConnection = new System.Threading.Thread(thStart);
thConnection.IsBackground = true;
thConnection.Start();
VAR.I32[eVarInt32.Front_Laser_Cleaning] += 1;
//Joystick configuration
PUB.joystick = new arDev.Joystick.JoystickRaw();
PUB.joystick.Changed += Joystick_Changed;
PUB.joystick.Connected += Joystick_Connected;
PUB.joystick.Disconnected += Joystick_Disconnected;
PUB.joystick.InputChanged += Joystick_InputChanged;
if (AR.SETTING.Data.Jostick_pid != 0 && AR.SETTING.Data.Jostick_vid != 0)
{
PUB.log.Add($"Joystick Connect VID:{AR.SETTING.Data.Jostick_vid},PID:{AR.SETTING.Data.Jostick_pid}");
PUB.joystick.Connect(AR.SETTING.Data.Jostick_vid, AR.SETTING.Data.Jostick_pid);
}
//Keyence connection
if (SETTING.Data.Keyence_IPF.isEmpty() == false)
{
@@ -510,15 +470,17 @@ namespace Project
UTIL.RunProcess(swplcfile);
}
RefreshList();
await RefreshList();
UpdateControl();
PUB.flag.set(eVarBool.FG_ENABLE_LEFT, !AR.SETTING.Data.Disable_Left, "LOAD");
PUB.flag.set(eVarBool.FG_ENABLE_RIGHT, !AR.SETTING.Data.Disable_Right, "LOAD");
this.Show();
this.Activate();
//Connection check thread
var thStart = new System.Threading.ThreadStart(bwDeviceConnection);
thConnection = new System.Threading.Thread(thStart);
thConnection.IsBackground = true;
thConnection.Start();
}
@@ -1646,9 +1608,9 @@ namespace Project
f.ShowDialog();
}
private void refreshToolStripMenuItem_Click_1(object sender, EventArgs e)
async private void refreshToolStripMenuItem_Click_1(object sender, EventArgs e)
{
RefreshList();
await RefreshList();
}
private void systemParameterMotorToolStripMenuItem_Click(object sender, EventArgs e)
@@ -1701,7 +1663,7 @@ namespace Project
f.Show();
}
private void managementToolStripMenuItem_Click_1(object sender, EventArgs e)
async private void managementToolStripMenuItem_Click_1(object sender, EventArgs e)
{
if (PUB.sm.isRunning)
{
@@ -1724,7 +1686,7 @@ namespace Project
btMReset.PerformClick();
}
RefreshList();
await RefreshList();
}
}
@@ -1818,52 +1780,9 @@ namespace Project
var motionmode = VAR.BOOL[eVarBool.Use_Conveyor] ? "Conveyor" : "Default";
PUB.SelectModelM(motionmode);
UpdateControl();
if (VAR.BOOL[eVarBool.Use_Conveyor])
{
//var dlg = UTIL.MsgQ("Do you want to change the model for other equipment as well?");
//if (dlg == DialogResult.Yes)
//{
// List<String> urls = new List<string>();
// var conv = VAR.BOOL[eVarBool.Use_Conveyor] ? "1" : "0";
// if (SETTING.Data.McName == "R1")
// {
// urls.Add($"{SETTING.Data.WebAPI_R2}/ctrl/model/Set/{f.Value}|{conv}");
// urls.Add($"{SETTING.Data.WebAPI_R3}/ctrl/model/Set/{f.Value}|{conv}");
// }
// else if (SETTING.Data.McName == "R2")
// {
// urls.Add($"{SETTING.Data.WebAPI_R1}/ctrl/model/Set/{f.Value}|{conv}");
// urls.Add($"{SETTING.Data.WebAPI_R3}/ctrl/model/Set/{f.Value}|{conv}");
// }
// else if (SETTING.Data.McName == "R3")
// {
// urls.Add($"{SETTING.Data.WebAPI_R1}/ctrl/model/Set/{f.Value}|{conv}");
// urls.Add($"{SETTING.Data.WebAPI_R2}/ctrl/model/Set/{f.Value}|{conv}");
// }
// await System.Threading.Tasks.Task.Run(() =>
// {
// if (urls.Any())
// {
// foreach (var url in urls)
// {
// PUB.log.AddI($"Automatic model setting: {url}");
// var rlt = UTIL.GetStrfromurl(url, out bool iserr, 3000);
// if (iserr)
// {
// PUB.log.Add($"Model setting failed: " + rlt);
// }
// }
// }
// });
//}
}
}
}
}
private void displayVARToolStripMenuItem_Click(object sender, EventArgs e)
@@ -1873,16 +1792,6 @@ namespace Project
f.Show();
}
private void SIDInfoToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void listView21_Click(object sender, EventArgs e)
{
}
private void lbMsg_Click(object sender, EventArgs e)
{
//reset function
@@ -1891,25 +1800,6 @@ namespace Project
}
private void PrintRuleToolStripMenuItem_Click(object sender, EventArgs e)
{
using (var f = new Dialog.RegExPrintRule())
f.ShowDialog();
}
private void tRIGONToolStripMenuItem_Click(object sender, EventArgs e)
{
PUB.keyenceF.Trigger(true);
PUB.keyenceR.Trigger(true);
}
private void tRIGOFFToolStripMenuItem_Click(object sender, EventArgs e)
{
PUB.keyenceF.Trigger(false);
PUB.keyenceR.Trigger(false);
}
private void toolStripMenuItem17_Click(object sender, EventArgs e)
{
@@ -2150,9 +2040,9 @@ namespace Project
var rlt = await PUB.UpdateSIDInfo();
if (rlt.Item1 == false)
{
PUB.log.AddE($"Inbound data update failed: " + rlt.Item2);
PUB.log.AddE($"SID Information update failed: " + rlt.Item2);
}
else PUB.log.AddI($"Inbound data update successful");
else PUB.log.AddI($"SID Information update successful");
}
private void hmi1_ZoneItemClick(object sender, HMI.ZoneItemClickEventargs e)