using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DH.Devices.Motion
{



    /// <summary>
    /// 回零状态
    /// </summary>
    public enum SearchHomeState
    {
        /// <summary>
        /// 回零成功
        /// </summary>
        [Description("回零成功")]
        HomeSucess = 0,

        /// <summary>
        /// 回零错误
        /// </summary>
        [Description("回零错误")]
        HomeError = 31,

        /// <summary>
        /// 正在回零点
        /// </summary>
        [Description("正在回零点")]
        Homing = 32,
    }




    /// <summary>
    /// 0.3 坐标模式
    /// </summary>
    public enum PositionMode
    {
        /// <summary>
        /// 绝对位置模式
        /// </summary>
        [Description("绝对位置模式")]
        Position_Absolute = 0,


        /// <summary>
        /// 相对位置模式
        /// </summary>
        [Description("相对位置模式")]
        Position_Opposite = 1,

    }


    /// <summary>
    /// 0.4 单轴点动曲线类型
    /// </summary>
    public enum Profile
    {
        /// <summary>
        /// T型曲线
        /// </summary>
        [Description("T型曲线")]
        Profile_T = 0,

        /// <summary>
        /// S型曲线
        /// </summary>
        [Description("S型曲线")]
        Profile_S = 1,

    }



    /// <summary>
    /// 3.1 伺服使能设置
    /// </summary>
    public enum ServoLogic
    {
        /// <summary>
        /// 触点闭合
        /// </summary>
        [Description("触点闭合")]
        Servo_Close = 0,


        /// <summary>
        /// 触点打开
        /// </summary>
        [Description("触点打开")]
        Servo_Open = 1,

    }

    /// <summary>
    /// 3.2 报警复位电平设置
    /// </summary>
    public enum AlarmLogic
    {
        /// <summary>
        /// 触点闭合
        /// </summary>
        [Description("触点闭合")]
        Alarm_Close = 0,


        /// <summary>
        /// 触点打开
        /// </summary>
        [Description("触点打开")]
        Alarm_Open = 1,

    }


    /// <summary>
    /// 3.6 
    /// </summary>
    public enum HomeState
    {
        /// <summary>
        /// 触点闭合,硬件灯亮
        /// </summary>
        [Description("触点闭合,硬件灯亮")]
        Home_Close = 0,


        /// <summary>
        /// 触点打开,硬件灯灭
        /// </summary>
        [Description("触点打开,硬件灯灭")]
        Home_Open = 1,
    }



    /// <summary>
    /// 4.1 脉冲模式
    /// </summary>
    public enum PulseMode
    {
        /// <summary>
        /// 脉冲方向(默认)
        /// </summary>
        [Description("模式0")]
        Pulse_Dir_H = 0,


        /// <summary>
        /// 脉冲方向
        /// </summary>
        [Description("模式1")]
        Pulse_Dir_L = 1,


        /// <summary>
        /// 双脉冲
        /// </summary>
        [Description("模式2")]
        Pulse_CW_CCW = 2,


        /// <summary>
        /// 双脉冲
        /// </summary>
        [Description("模式3")]
        Pulse_CCW_CW = 3,


        /// <summary>
        /// AB相位
        /// </summary>
        [Description("模式4")]
        Pulse_AB = 4,


        /// <summary>
        /// AB相位
        /// </summary>
        [Description("模式5")]
        Pulse_BA = 5,


    }


    /****************************************************************************************************************
5 轴硬件触发停止运动函数
*****************************************************************************************************************/
    //5.1 EMG_Mode
    public enum EMG_Mode
    {
        [Description("不使用紧急停止功能")]
        EMG_Trigger_Close = 0, //不使用紧急停止功能

        [Description("低电平触发紧急停止")]
        EMG_Trigger_Low_IMD = 1, //低电平触发紧急停止

        [Description("低电平触发减速停止")]
        EMG_Trigger_Low_DEC = 2,//低电平触发减速停止

        [Description("高电平触发紧急停止")]
        EMG_Trigger_High_IMD = 3, //高电平触发紧急停止

    }





    /// <summary>
    /// 6.1.1 正负限位触发电平
    /// </summary>
    public enum LimitLogic
    {
        /// <summary>
        /// 低电平触发
        /// </summary>
        [Description("低电平触发")]
        Low_Logic = 0,


        /// <summary>
        /// 高电平触发
        /// </summary>
        [Description("高电平触发")]
        High_Logic = 1,
    }

    /// <summary>
    /// 6.1.2 回零限位触发电平
    /// </summary>
    public enum HomeLogic
    {
        /// <summary>
        /// 低电平触发
        /// </summary>
        [Description("低电平触发")]
        Low_Logic = 0,


        /// <summary>
        /// 高电平触发
        /// </summary>
        [Description("高电平触发")]
        High_Logic = 1,
    }

    /// <summary>
    /// 6.1.3 Index触发电平
    /// </summary>
    public enum IndexLogic
    {
        /// <summary>
        /// 低电平触发
        /// </summary>
        [Description("低电平触发")]
        Low_Logic = 0,


        /// <summary>
        /// 高电平触发
        /// </summary>
        [Description("高电平触发")]
        High_Logic = 1,
    }



}