Files
ATV_STDLabelAttach/Handler/Project/RunCode/StateMachine/_Events.cs
atvstdla 1273ca8236 ..
2025-09-30 17:35:11 +09:00

128 lines
2.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using arDev;
using AR;
namespace Project
{
public partial class FMain
{
private void SM_StateProgress(object sender, AR.StateMachine.StateProgressEventArgs e)
{
arCtl.arLabel lbl = lbMsg;
lbl.BeginInvoke(new Action(() =>
{
var title = e.Message;
var max = e.MaxProgress;
var value = e.Progress;
if (lbl.ProgressEnable == false) lbl.ProgressEnable = true;
if (lbl.ProgressValue != value) lbl.ProgressValue = (float)value;
if (lbl.Text != title) lbl.Text = title;
if (max != 0)
{
if (lbl.ProgressMax != max) lbl.ProgressMax = (float)max;
}
if (e.ForeColor != null)
{
if (lbl.ProgressForeColor != e.ForeColor) lbl.ProgressForeColor = (Color)e.ForeColor;
}
if (e.ShadowColor != null)
{
if (lbl.ShadowColor != e.ShadowColor) lbl.ShadowColor = (Color)e.ShadowColor;
}
if (e.ProgressBackColor1 != null)
{
if (lbl.ProgressColor1 != e.ProgressBackColor1) lbl.ProgressColor1 = (Color)e.ProgressBackColor1;
}
if (e.ProgressBackColor2 != null)
{
if (lbl.ProgressColor2 != e.ProgressBackColor2) lbl.ProgressColor1 = (Color)e.ProgressBackColor2;
}
if (e.BackColor1 != null)
{
if (lbl.BackColor != e.BackColor1) lbl.BackColor = (Color)e.BackColor1;
}
if (e.BackColor2 != null)
{
if (lbl.BackColor2 != e.BackColor2) lbl.BackColor2 = (Color)e.BackColor2;
}
}));
}
private void SM_StepCompleted(object sender, EventArgs e)
{
PUB.log.Add($"Step completed({PUB.sm.Step})");
//초기화가 완료되면 컨트롤 글자를 변경 해준다.
if (PUB.sm.Step == eSMStep.INIT)
SM_InitControl(null, null);
}
private void SM_StepStarted(object sender, EventArgs e)
{
switch (PUB.sm.Step)
{
case eSMStep.IDLE:
//IDLE의 시작작업이 완료되었다면 각 버튼을 사용할 수 있도록 한다
this.Invoke(new Action(() =>
{
btStart.Enabled = true;
btStop.Enabled = true;
btReset.Enabled = true;
}));
break;
}
}
private void SM_InitControl(object sender, EventArgs e)
{
//작업시작전 컨트롤 초기화 코드
var mc = PUB.Result.mModel;
var mv = PUB.Result.vModel;
this.Invoke(new Action(() =>
{
//진행 중 표시되는 상태값 초기화
lbCntRight.ProgressValue = 0;
lbCntRight.Text = "--";
lbCntLeft.Text = "--";
}));
}
void SM_Message(object sender, StateMachine.StateMachineMessageEventArgs e)
{
//상태머신에서 발생한 메세지
PUB.log.Add(e.Header, e.Message);
}
void SM_StepChanged(object sender, StateMachine.StepChangeEventArgs e)
{
var o = (eSMStep)e.Old;
var n = (eSMStep)e.New;
PUB.log.AddI($"Step transition({o} >> {n})");
//230313
//EEMStatus.AddStatusSQL(n);
}
}
}