IFlyADClientAdv.cs 3.4 KB
Newer Older
1 2
using Misc;
using System;
3 4 5 6 7 8 9 10 11
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace FlyADBase
{
12

13

14 15 16 17 18
    /// <summary>
    /// 客户端AD盒附加的功能
    /// </summary>
    public interface IFlyADClientAdv : IFlyADClient
    {
19

20
        /// <summary>
21
        /// 通过脉冲计算速度,不使用AD盒的输出
22
        /// </summary>
23
        bool IsCalSpeed { get; set; }
潘栩锋's avatar
潘栩锋 committed
24

25 26 27 28
        /// <summary>
        /// 机架修正
        /// </summary>
        CorrectADsHandler CorrectADs { get; set; }
29 30

        /// <summary>
31
        /// grid 滤波
32
        /// </summary>
33
        int GridSmooth { get; set; }
34 35

        /// <summary>
36
        /// 脉冲比例 Ratio02(编码器脉冲) / Ratio01(电机脉冲)
37
        /// </summary>
38
        double Speed1Scale { get; }
39

40 41 42 43 44 45 46 47 48 49

        #region 备份参数
        MOTORTYPE Backup_MotorType { get; }
        UInt16 Backup_PosOfGrid { get; }
        UInt16 Backup_Ratio01 { get; }
        UInt16 Backup_Ratio02 { get; }
        Int16 Backup_PosOffset { get; }
        UInt32 Backup_JogVelocity { get; }
        #endregion

50 51 52 53 54
        /// <summary>
        /// 机架总长
        /// </summary>
        int PosLen { get; set; }

55 56 57 58 59 60 61 62 63 64 65 66 67
        /// <summary>
        /// 使用独立的脉冲最大最小值
        /// </summary>
        bool HasPosMaxMin { get; set; }
        /// <summary>
        /// 最小脉冲,默认是0
        /// </summary>
        int PosMin { get; set; }

        /// <summary>
        /// 最大脉冲,默认于PosLen 一样
        /// </summary>
        int PosMax { get; set; }
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
        /// <summary>
        /// Runto(0), 不同于 Backward
        /// </summary>
        void RuntoMin();
        /// <summary>
        /// Runto(PosLen), 不同于 Forward
        /// </summary>
        void RuntoMax();



        /// <summary>
        /// 设置输出
        /// </summary>
        /// <param name="index"></param>
        /// <param name="is1"></param>
        void SetOutputBit(int index, bool is1);

86 87 88 89 90 91 92 93
        /// <summary>
        /// 从正反缓存区, 获取grid数据
        /// </summary>
        /// <param name="direction">方向, 只有 正,反</param>
        /// <param name="grid_start">grid 开始位置</param>
        /// <param name="grid_len">grid 长度</param>
        /// <param name="dat">grid 数据</param>
        void GetGrid(DIRECTION direction, int grid_start, int grid_len, out int[] dat);
潘栩锋's avatar
潘栩锋 committed
94

95 96 97 98 99 100 101
        /// <summary>
        /// 从正反缓存区, 获取全部grid数据
        /// </summary>
        /// <param name="direction">方向, 只有 正,反</param>
        /// <param name="dat">grid 数据</param>
        void GetGrid(DIRECTION direction, out int[] dat);

潘栩锋's avatar
潘栩锋 committed
102

103 104 105 106 107
        /// <summary>
        /// 动作完成
        /// </summary>
        bool IsFinish { get; }

108 109 110 111 112 113 114 115
        #region 滞后处理
        /// <summary>
        /// ad滞后修正  单位ms
        /// </summary>
        int ADLag { get; set; }
        /// <summary>
        /// 以timegrid 为单位,推送数据
        /// </summary>
116
        event TimeGridAdv2EventHandler TimeGridAdv2Event;
117
        #endregion
118

119
    }
120 121 122 123 124 125 126 127

    /// <summary>
    /// 机架修正
    /// </summary>
    /// <param name="direction"></param>
    /// <param name="start_grid"></param>
    /// <param name="dat"></param>
    public delegate void CorrectADsHandler(Misc.DIRECTION direction, int start_grid, int[] dat);
128
}