Files
ATV_STDLabelAttach/QRValidation/Project/StateMachine/_TMDisplay.cs
atvstdla dc66158497 Add QRValidation project to repository
- Added QRValidation vision control system
- Includes CapCleaningControl UI components
- WebSocket-based barcode validation system
- Support for Crevis PLC integration
- Test projects for PLC emulator, motion, IO panel, and Modbus

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-02 11:38:38 +09:00

146 lines
6.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using WatsonWebsocket;
namespace Project
{
public partial class fMain
{
DateTime tm1minute = DateTime.Now.AddDays(-1);
DateTime tm5minute = DateTime.Now;
Boolean displayOn = false;
DateTime tmPaint = DateTime.Now;
private void tmDisplay_Tick(object sender, EventArgs e)
{
if (displayOn == false) displayOn = true;
else
{
//Pub.log.AddAT("Display Timer Overlab");// Console.WriteLine("display overlab");
return;
}
//메인화면3초에 한번씩 업데이트한다
var tsPaint = DateTime.Now - tmPaint;
if (tsPaint.TotalSeconds > 3)
{
//panMiniDisplay.Invalidate();
tmPaint = DateTime.Now;
}
//트리거버튼
btTrigL.BackColor = PUB.IsTrigger[PUB.setting.CameraIndexL] ? Color.Lime : SystemColors.Control;
btTrigR.BackColor = PUB.IsTrigger[PUB.setting.CameraIndexR] ? Color.Lime : SystemColors.Control;
//라이브상태표시
if (PUB.setting.CameraIndexL >= 0)
btLiveL.BackColor = PUB.IsLive[PUB.setting.CameraIndexL] ? Color.Lime : SystemColors.Control;
else btLiveL.BackColor = SystemColors.Control;
if (PUB.setting.CameraIndexR >= 0 && PUB.setting.CameraIndexR != PUB.setting.CameraIndexL)
btLiveR.BackColor = PUB.IsLive[PUB.setting.CameraIndexR] ? Color.Lime : SystemColors.Control;
else btLiveR.BackColor = SystemColors.Control;
//프로세스버튼
btProcessL.BackColor = PUB.IsProcess[PUB.setting.CameraIndexL] ? Color.Lime : SystemColors.Control;
btProcessR.BackColor = PUB.IsProcess[PUB.setting.CameraIndexR] ? Color.Lime : SystemColors.Control;
//데이터정보
lbGuidL.Text = $"GUID : {PUB.lastguid[PUB.setting.CameraIndexL]}";
lbGuidR.Text = $"GUID : {PUB.lastguid[PUB.setting.CameraIndexR]}";
lbTimeL.Text = $"TIME : " + PUB.Time_WS_Recv[PUB.setting.CameraIndexL].ToString("yyyy-MM-dd HH:mm:ss.fff");
lbTimeR.Text = $"TIME : " + PUB.Time_WS_Recv[PUB.setting.CameraIndexR].ToString("yyyy-MM-dd HH:mm:ss.fff");
lbDataL.Text = $"DATA : " + PUB.lastdata[PUB.setting.CameraIndexL];
lbDataR.Text = $"DATA : " + PUB.lastdata[PUB.setting.CameraIndexR];
lbproctimel.Text = $"(Analysis {PUB.ProcessTime[PUB.setting.CameraIndexL]}ms)";
lbproctimer.Text = $"(Analysis {PUB.ProcessTime[PUB.setting.CameraIndexR]}ms)";
label1.Text = $"STAT: {PUB.lastsendStatus[PUB.setting.CameraIndexL].ToString("HH:mm:ss.fff")}";
label8.Text = $"STAT : {PUB.lastsendStatus[PUB.setting.CameraIndexR].ToString("HH:mm:ss.fff")}";
label2.Text = $"SEND: {PUB.lastsend[PUB.setting.CameraIndexL].ToString("HH:mm:ss.fff")}";
label9.Text = $"SEND : {PUB.lastsend[PUB.setting.CameraIndexR].ToString("HH:mm:ss.fff")}";
//sbMemMapL.ForeColor = swplc[PUB.setting.CameraIndexL].Init ? Color.Lime : Color.Red;
//sbMemMapR.ForeColor = swplc[PUB.setting.CameraIndexR].Init ? Color.Lime : Color.Red;
if (PUB.setting.CameraIndexL >= 0)
{
sbConnCamL.ForeColor = PUB._isCrevisOpen[PUB.setting.CameraIndexL] ? Color.Green : Color.Red;
sbLiveL.ForeColor = PUB.IsLive[PUB.setting.CameraIndexL] ? Color.Green : Color.Red;
sbDetectReelL.ForeColor = PUB.DetectReel[PUB.setting.CameraIndexL] ? Color.Lime : Color.Black;
sbDetectCVL.ForeColor = PUB.DetectConv[PUB.setting.CameraIndexL] ? Color.Lime : Color.Black;
sbTrigL.ForeColor = PUB.IsTrigger[PUB.setting.CameraIndexL] ? Color.Green : Color.Red;
}
else
{
var c = Color.DimGray;
sbConnCamL.ForeColor =c;
sbLiveL.ForeColor =c;
sbDetectReelL.ForeColor =c;
sbDetectCVL.ForeColor =c;
sbTrigL.ForeColor = c;
}
if (PUB.setting.CameraIndexR >= 0)
{
sbConnCamR.ForeColor = PUB._isCrevisOpen[PUB.setting.CameraIndexR] ? Color.Green : Color.Red;
sbLiveR.ForeColor = PUB.IsLive[PUB.setting.CameraIndexR] ? Color.Green : Color.Red;
sbDetectReelR.ForeColor = PUB.DetectReel[PUB.setting.CameraIndexR] ? Color.Lime : Color.Black;
sbDetectCVR.ForeColor = PUB.DetectConv[PUB.setting.CameraIndexR] ? Color.Lime : Color.Black;
sbTrigR.ForeColor = PUB.IsTrigger[PUB.setting.CameraIndexR] ? Color.Green : Color.Red;
}
else
{
var c = Color.DimGray;
sbConnCamR.ForeColor = c;
sbLiveR.ForeColor = c;
sbDetectReelR.ForeColor = c;
sbDetectCVR.ForeColor = c;
sbTrigR.ForeColor = c;
}
sbConnHostL.ForeColor = PUB.wsock_[0].ListClients().Count() > 0 ? Color.Green : Color.Red;
sbConnHostR.ForeColor = PUB.wsock_[1].ListClients().Count() > 0 ? Color.Green : Color.Red;
sbStream.ForeColor = PUB.setting.DisableStreamData ? Color.Red : Color.Green;
sbListenL.ForeColor = PUB.wsock_[0].IsListening ? Color.Green : Color.Red;
sbListenR.ForeColor = PUB.wsock_[1].IsListening ? Color.Green : Color.Red;
sbLicense.ForeColor = PUB.VisionLicense ? Color.Green : Color.Red;
#region retgion"1분 time 루틴"
var ts = DateTime.Now - tm1minute;
if (ts.TotalMinutes >= 1)
{
//리셋카운트
tm1minute = DateTime.Now;
}
#endregion
#region retgion"5분 time 루틴"
ts = DateTime.Now - tm5minute;
if (ts.TotalMinutes >= 5)
{
//남은디스크확인
tm5minute = DateTime.Now;
}
#endregion
//wat.Stop();
//Console.WriteLine("disp time : " + wat.ElapsedMilliseconds.ToString() + "ms");
displayOn = false;
}
}
}