Files
ATV_STDLabelAttach/Handler/Project/RunCode/Step/_STEP_IDLE.cs
2025-09-09 17:24:19 +09:00

83 lines
2.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using AR;
namespace Project
{
public partial class FMain
{
DateTime IdleStartTime = DateTime.Now;
bool IdleSleep = false;
public void _STEP_IDLE_START(eSMStep step)
{
PUB.flag.set(eVarBool.FG_USERSTEP, false, "SM_IDLE");
//lbMsgR.ProgressEnable = false;
IdleStartTime = DateTime.Now;
//초기화완료되면 버튼을 활성화한다
if (PUB.sm.getOldStep == eSMStep.INIT)
{
this.BeginInvoke(new Action(() =>
{
panTopMenu.Enabled = true;
btStart.Enabled = true;
btStop.Enabled = true;
btReset.Enabled = true;
}));
//Pub.sm.setNewStep(eSMStep.XMOVE); //홈을 위해서 바로 이동 모션으로 가게한다
if (PUB.mot.HasHomeSetOff == true && DIO.GetIOInput(eDIName.PICKER_SAFE) == false)
{
//피커의 이동이 필요한 상황
this.BeginInvoke(new Action(() => { btManage.PerformClick(); }));
}
else
{
//리셋이 필요한 상황
if (AR.SETTING.Data.OnlineMode == true)
this.BeginInvoke(new Action(() => { btMReset.PerformClick(); }));
}
}
}
public StepResult _STEP_IDLE(eSMStep step, TimeSpan stepTime, TimeSpan seqTime)
{
//대기상태에서 조명 자동으로 끄기
if (IdleSleep == false && IdleStartTime.Year != 1982)
{
var ts = DateTime.Now - IdleStartTime;
if (ts.TotalMinutes > AR.SETTING.Data.AutoOffRoomLightMin)
{
PUB.log.Add("Turning off lights due to idle state transition");
IdleSleep = true;
DIO.SetRoomLight(false);
}
}
//자동소거기능
if (AR.SETTING.Data.AutoDeleteDay > 0)
{
if (PUB.flag.get(eVarBool.FG_MINSPACE) == true)
{
var ts = DateTime.Now - lastDeleteTime;
if (ts.TotalSeconds > 1)
{
//파일을 찾아서 소거한다.
var delpath = System.IO.Path.Combine(AR.SETTING.Data.GetDataPath(), "Images");
if (delpath != "") DeleteFile(delpath);
lastDeleteTime = DateTime.Now;
}
}
}
return StepResult.Wait;
}
}
}