using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace COMM
{
	public enum eVarInt32
	{
		PickOnCount = 0,
		PickOfCount,
		LPickOnCount,
        SumQty,
        ChargeWaitSec,
		SyncItemCount,
        PathValidationError,
        RetryManget,
        RetryLift,
        RetryMove,
        RetryMoveset,
        RetryMarkStop,
        Buffer1Step,
        Buffer2Step,
        Buffer3Step,
        Buffer4Step,
        Buffer5Step,
        Buffer6Step,
	}
	public enum eVarUInt32
	{
		Spare=0,
	}

    public enum eVarDBL
    {
        LeftJogSpeed,
        RightJogSpeed,
        CurrentLeftJogSpeed,
        CurrentRightJogSpeed,
        SpeedOffsetCW,
        SpeedOffsetCCW,
        MaxSpeedCW,
        MaxSpeedCCW,
        SQLConnection,
    }

    public enum eVarByte
	{
		None = 0,
        /// <summary>
        /// 충전명련전송횟수
        /// </summary>
        CHARGE_CMDCNT,
        ButtonJog,
        DataIndex ,
    }

	public enum eVarBool
	{
        //comm area start(0~31)
		None = 0,
        DebugMode,
        SQLCONN,

        //plc area start (32~63)
        FLAG_STOPZ = 32,
        FLAG_SETUP,
        FLAG_SYNC,
        FLAG_WAIT,
        /// <summary>
        /// 상태머신이 동작중인가
        /// 장비동작은 AGV_RUN 플래그를 확인 하세요.
        /// </summary>
        FLAG_AUTORUN,
        FLAG_MANUALRUN,
        FLAG_LIMITHIGH,
        FLAG_LIMITLOW,
        FLAG_POWERLOSS,

        /// <summary>
        /// AGV 진행방향(UP = backward, DOWN = forward)
        /// </summary>
        AGVDIR_BACK,

        /// <summary>
        /// 마크센서가  감지되면  활성화됨
        /// (알림용으로도  쓰니  삭제 안됨)
        /// </summary>
        MARK_SENSOR,
        MARK_SENSOROFF,
        FLAG_LEFT_RUN,
        FLAG_RIGHT_RUN,
        FLAG_RUN_CMD,
        FLAG_GO_CHAGER,
        FLAG_NEXTSTOP_ALIGN,
        ///NEXTSTOP_MARK,

        /// <summary>
        /// mark 1 혹은 2 의 값이 들어오면 설정됨
        /// </summary>
        //SENSOR_MARK,
        CHG_POSERR,
        FLAG_CHARGEONA,
        FLAG_CHARGEONM,
        OVERLOAD,
        OVERLOADL,
        OVERLOADR,
        BATTERY_LOW,
        BATTERY_HIGH,
        MINSPACE,
        CHARGE_CMDCNT,
        CHARGE_READY,
        CHARGE_WAIT,
     
        AGV_ERROR,
        WAIT_COVER_DOWN,
        WAIT_COVER_UP,
        EMERGENCY,

        ITEMON,


        /// <summary>
        /// 충전시작명령을 전송했다
        /// </summary>
        WAIT_CHARGEACK,
      
        //agv area start ( 64 ~ 95)
        DISABLE_AUTOCONN_XBEE,

        //area start (96~127)

    }

	public enum eVarString
	{

        MCStatus,
        DataIndex,
        StatusMessage,
        JOBType,
        JOBCustCode,
        SWVersion,
        ChargeCheckMsg,
        Buffer1LastCmd,
        Buffer2LastCmd,
        Buffer3LastCmd,
        Buffer4LastCmd,
        Buffer5LastCmd,
        Buffer6LastCmd,
    }

	public enum eVarTime
	{
		LastConnTry_PLC,
        LastConn_PLC,
        LastRecv_PLC,

        LastConnTry_XBE,
        LastConn_XBE,
        LastRecv_XBE,

        LastConnTry_BAT,
        LastConn_BAT,
        LastRecv_BAT,
        LastSend_CMD,
        LastSend_BAT,

        LastConnTry_AGV,
        LastConn_AGV,
        LastRecv_AGV,

        /// <summary>
        /// 상태머신이 IDLE 전환시 설정
        /// </summary>
        IdleStart,
        /// <summary>
        /// 충전시도시 설정
        /// </summary>
        ChargeTry,
        /// <summary>
        /// 충전시작(확인)시 설정
        /// </summary>
        ChargeStart,

        /// <summary>
        /// 충전종료시점
        /// </summary>
        ChargeEnd,
        /// <summary>
        /// 장비가동중 READY상태 전환시 설정
        /// </summary>
        ReadyStart,

        MarkSensorOn,
        MarkSensorOff,

        /// <summary>
        /// 상태머신이 RUN되는 경우에 설정
        /// 단 세부스텝이 READY 인 경우는 제외
        /// </summary>
        RunStart,

        SendChargeOff,
        ChargeSearch,

        BatWarnTime,
        IdleStopTime,
        StatusReporttime,

        CheckGotoTargetSet,
        SendGotoCommand,

        /// <summary>
        /// 마지막으로 멈춤 명령을 전송한 시간
        /// </summary>
        LastStopCommandTime,

        /// <summary>
        /// 마지막으로 멈춤(마크스탑) 명령을 전송한 시간
        /// </summary>
        LastMarkStopCommandTime,

        /// <summary>
        /// 마지막으로 턴 명령을 전송한 시간
        /// </summary>
        LastTurnCommandTime,

        /// <summary>
        /// 마지막을 실행 명령을 전송한 시간
        /// </summary>
        LastRunCommandTime,

        /// <summary>
        /// 이동명령 설정 시간
        /// </summary>
        LastMoveSetCommandTime,
    }
}