using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using AR;
using COMM;

namespace Project
{
    public partial class fMain
    {
        public Boolean _SM_RUN_POSCHK(bool isFirst, TimeSpan stepTime)
        {
            //현재위치가 설정되어있는지 확인한다, 현재위치값이 있는 경우 True 를 반환
            if (PUB._virtualAGV.CurrentNode != null && PUB._virtualAGV.PrevNode != null)
                return true;

            //이동을 하지 않고있다면 전진을 진행한다
            if (PUB.AGV.system1.agv_run == false)
            {
                var ts = VAR.TIME.RUN(eVarTime.LastRunCommandTime);
                if (ts.TotalSeconds > 5)
                {
                    PUB.log.Add($"현재위치를 몰라 전진 이동 합니다");
                    var ret = PUB.AGV.AGVMoveSet(new arDev.Narumi.BunkiData
                    {
                        Bunki = arDev.Narumi.eBunki.Strate,
                        Direction = arDev.Narumi.eMoveDir.Forward,
                        PBSSensor = 2,
                        Speed = arDev.Narumi.eMoveSpd.Low,
                    });
                    if(ret == arDev.eNarumiCommandResult.Success)
                    {
                        PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Forward);
                    }
                    VAR.TIME.Update(eVarTime.LastRunCommandTime);
                }
            }
            VAR.STR[eVarString.StatusMessage] = "현재 위치를 알 수 없습니다";
            return false;
        }
    }
}
