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

namespace Project
{
    public partial class fMain
    {

        //private void PLC_DioChanged(object sender, arDev.FakePLC.IOValueEventArgs e)
        //{
        //    if (e.Direction == arDev.Arduino.IODirection.Input)
        //    {
        //        var diName = (arDev.FakePLC.DIName)e.ArrIDX;
        //        Console.WriteLine(string.Format("[DI:{1}]{0}=>{2}", diName, e.ArrIDX, e.NewValue));

        //        if (diName == arDev.FakePLC.DIName.PINI_BTN_1)  //reset
        //        {
        //            if (e.NewValue == true)
        //            {
        //                PUB.log.Add($"버튼({diName}) 눌림(AGV_RESET)");
        //                PUB.AGV.AGVErrorReset();

        //                //241203
        //                if(PUB.AGV.system1.agv_run || PUB.AGV.system1.agv_run_manual)
        //                {
        //                    PUB.AGV.AGVMoveStop("button1");
        //                }
        //                //PUB.XBE.NewMsgEvent('0', '1');
        //            }
        //        }
        //        else if (diName == arDev.FakePLC.DIName.PINI_BTN_2) //auto -> QC    //230424
        //        {
        //            if (e.NewValue == true)
        //            {
        //                PUB.log.Add($"버튼({diName}) 눌림");
        //                if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true)
        //                {
        //                    if (PUB.sm.RunStep == StateMachine.ERunStep.GOUP)
        //                    {
        //                        //zup을 자동으로 해준다
        //                        if (VAR.BOOL[eVarBool.WAIT_COVER_UP])
        //                        {
        //                            PUB.log.Add($"버튼({diName}) 눌림");
        //                            PUB.AGV.LiftControl(LiftCommand.UP);
        //                            PUB.Result.NextPos = ePosition.QC;
        //                        }
        //                        else PUB.Speak(Lang.커버업대기상태가아닙니다);
        //                    }
        //                    else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN)
        //                    {
        //                        //이미 하차진행중에 누른 경우이다
        //                        PUB.Result.NextPos = ePosition.QC;
        //                        PUB.Result.TargetPos = ePosition.QC;
        //                    }
        //                    else
        //                    {
        //                        PUB.log.Add(Lang.QC이동버튼은상하차에서만사용가능합니다);
        //                        PUB.Speak(Lang.하차상태에서만사용가능합니다);
        //                    }
        //                }
        //                else PUB.Speak(Lang.자동운전상태가아닙니다);

        //                //if (VAR.BOOL[eVarBool.FLAG_AUTORUN]==false)
        //                //{
        //                //    PUB.sm.ClearRunStep();
        //                //    PUB.sm.SetNewRunStep(StateMachine.ERunStep.READY);
        //                //    PUB.sm.SetNewStep(StateMachine.eSMStep.RUN);
        //                //    PUB.Speak("자동 상태로 전환 합니다");
        //                //}
        //                //else
        //                //{
        //                //    PUB.Speak("현재 자동 상태 입니다");
        //                //}
        //            }
        //        }
        //        else if (diName == arDev.FakePLC.DIName.PINI_BTN_3) //z-down -> QA  //230424
        //        {
        //            if (e.NewValue == true)
        //            {
        //                //Z-dn기능으로 업데이트 230119
        //                PUB.log.Add($"버튼({diName}) 눌림");
        //                if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true)
        //                {
        //                    if (PUB.sm.RunStep == StateMachine.ERunStep.GOUP)
        //                    {
        //                        //zup.을 자동으로 해준다
        //                        if (VAR.BOOL[eVarBool.WAIT_COVER_UP])
        //                        {
        //                            PUB.log.Add($"버튼({diName}) 눌림");
        //                            PUB.AGV.LiftControl(LiftCommand.UP);
        //                            PUB.Result.NextPos = ePosition.QA;
        //                        }
        //                        else PUB.Speak(Lang.커버업대기상태가아닙니다);
        //                    }
        //                    else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN)
        //                    {
        //                        //이미 하차진행중에 누른 경우이다
        //                        PUB.Result.NextPos = ePosition.QA;
        //                        PUB.Result.TargetPos = ePosition.QA;
        //                    }
        //                    else
        //                    {
        //                        PUB.log.Add($"QA이동 버튼은 상/하차에서만 사용 가능합니다");
        //                        PUB.Speak(Lang.하차상태에서만사용가능합니다);
        //                    }
        //                }
        //                else PUB.Speak(Lang.자동운전상태가아닙니다);

        //                //PUB.PLC.ZMot(FakePLC.ZMotDirection.Down);
        //            }
        //        }
        //        else if (diName == arDev.FakePLC.DIName.PINI_BTN_4) //z-up
        //        {
        //            if (e.NewValue == true)
        //            {
        //                //Z-up기능으로 업데이트 230119
        //                PUB.log.Add($"버튼({diName}) 눌림");
        //                PUB.AGV.LiftControl(LiftCommand.UP);
        //            }
        //        }
        //        else if (diName == arDev.FakePLC.DIName.PINI_EMG)
        //        {
        //            if (e.NewValue == true)
        //            {
        //                PUB.log.Add($"버튼({diName}) 눌림");
        //                PUB.Speak(Lang.비상정지);
        //            }
        //            //else  Pub.Speak("비상 정지 해제");
        //        }
        //        else if (diName == arDev.FakePLC.DIName.PINI_OVERLOADL)
        //        {
        //            if (e.NewValue == true)
        //            {
        //                PUB.log.Add($"버튼({diName}) 눌림");
        //                PUB.Speak(Lang.오버로드감지);
        //            }
        //            VAR.BOOL[eVarBool.OVERLOADL] = e.NewValue;
        //        }
        //        else if (diName == arDev.FakePLC.DIName.PINI_OVERLOADR)
        //        {
        //            if (e.NewValue == true)
        //            {
        //                PUB.log.Add($"버튼({diName}) 눌림");
        //                PUB.Speak(Lang.오버로드감지);
        //            }
        //            VAR.BOOL[eVarBool.OVERLOADR] = e.NewValue;
        //        }
        //        //else if (diName == FakePLC.DIName.PINI_LIMIT_LU)
        //        //{
        //        //    PUB.flag.set(EFlag.FLAG_LIMITHIGHL, e.NewValue);
        //        //}
        //        //else if (diName == FakePLC.DIName.PINI_LIMIT_RU)
        //        //{
        //        //    PUB.flag.set(EFlag.FLAG_LIMITHIGHR, e.NewValue);
        //        //}
        //        //else if (diName == FakePLC.DIName.PINI_LIMIT_LD)
        //        //{
        //        //    PUB.flag.set(EFlag.FLAG_LIMITLOWL, e.NewValue);
        //        //}
        //        //else if (diName == FakePLC.DIName.PINI_LIMIT_RD)
        //        //{
        //        //    PUB.flag.set(EFlag.FLAG_LIMITLOWR, e.NewValue);
        //        //}
        //        //else
        //        //{
        //        //    //처리하지 않음
        //        //}
        //        //PUB.flag.set(EFlag.FLAG_LIMITHIGH, (PUB.flag.get(EFlag.FLAG_LIMITHIGHL) && PUB.flag.get(EFlag.FLAG_LIMITHIGHR)));
        //        //PUB.flag.set(EFlag.FLAG_LIMITLOW, (PUB.flag.get(EFlag.FLAG_LIMITLOWL) && PUB.flag.get(EFlag.FLAG_LIMITLOWR)));
        //        VAR.BOOL[eVarBool.FLAG_LIMITHIGH] = false;// PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LU) || PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RU);
        //        VAR.BOOL[eVarBool.FLAG_LIMITLOW] = false;//PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LD) || PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RD);
        //        VAR.BOOL[eVarBool.OVERLOAD] = (VAR.BOOL[eVarBool.OVERLOADL] || VAR.BOOL[eVarBool.OVERLOADR]);
        //    }
        //    else
        //    {
        //        //출력포트값 변경
        //        var doName = (arDev.FakePLC.DOName)e.ArrIDX;
        //        PUB.logplc.Add($"출력({doName}) {(e.NewValue ? "O" : "X")}");
        //    }
        //}

        //string oldflagmessage = string.Empty;
        // 사용하지 않는 필드들 제거
        // private string logmessage;
        // private string lastplclogmessage;
        // private string logerror;
    }
}

