using Misc; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace FlyADBase { /// /// 客户端AD盒附加的功能 /// public interface IFlyADClientAdv : IFlyADClient { /// /// 机架修正 /// CorrectADsHandler CorrectADs { get; set; } /// /// grid 滤波 /// int GridSmooth { get; set; } /// /// PosLen / PosOfGrid; /// int GridLen { get; } /// /// 脉冲比例 Ratio02(编码器脉冲) / Ratio01(电机脉冲) /// double Speed1Scale { get; } /// /// 机架总长 /// int PosLen { get; set; } /// /// 使用独立的脉冲最大最小值 /// bool HasPosMaxMin { get; set; } /// /// 最小脉冲,默认是0 /// int PosMin { get; set; } /// /// 最大脉冲,默认于PosLen 一样 /// int PosMax { get; set; } /// /// Runto(0), 不同于 Backward /// void RuntoMin(); /// /// Runto(PosLen), 不同于 Forward /// void RuntoMax(); /// /// 设置输出 /// /// /// void SetOutputBit(int index, bool is1); /// /// 从正反缓存区, 获取grid数据 /// /// 方向, 只有 正,反 /// grid 开始位置 /// grid 长度 /// grid 数据 void GetGrid(DIRECTION direction, int grid_start, int grid_len, out int[] dat); /// /// 从正反缓存区, 获取全部grid数据 /// /// 方向, 只有 正,反 /// grid 数据 void GetGrid(DIRECTION direction, out int[] dat); /// /// 动作完成 /// bool IsFinish { get; } /// /// ad滞后修正 单位ms /// int ADLag { get; set; } //一共有1.AD数据池(由timegrid提供) 1min //2.pos数据池(pos推送提供) 1min //4.当接收的grid事件数据。它有 (direction, grid_start,grid_len, systick ) //systick 就是结束的时间点。 当AD数据池出现了这个时间点 //pos数据池向前找。 pos 在 grid_start*posOfGrid 范围的数据。 //找到开始的systick 后,整合3个数据池的数据。 //5.最后代替 grid 推送出去。 TimeGridAdvHelper mTimeGridAdvHelper { get; } /// /// 动作指令完成,准备推送 timegridadv 事件 /// bool IsTimeToPushTimeGridAdv { get; } /// /// 以timegrid 为单位,推送数据 /// event TimeGridAdv2EventHandler TimeGridAdv2Event; } /// /// 机架修正 /// /// /// /// public delegate void CorrectADsHandler(Misc.DIRECTION direction, int start_grid, int[] dat); }