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 IFlyADClient : IFlyAD { /// /// 连接成功 /// bool IsConnected { get; } /// /// 重连次数 /// int ConnectCnt { get; } /// /// CRC 校正 /// bool HasCRC { get; set; } /// /// 连接 /// void Connect(); /// /// 连接 ep /// /// void Connect(IPEndPoint ep); /// /// 重连 /// void ReConnect(); /// /// 用于同步, 最后一次 纵向信号 0->1 时,主轴脉冲 /// int LastPos2At01 { get; } /// /// 当前在同步状态 /// bool IsSync { get; } /// /// 同步列表,完成后,会删除 /// ObservableCollection SyncOrders { get; } } /// /// 客户端AD盒附加的功能 /// public interface IFlyADClientAdv : IFlyADClient { /// /// 通过脉冲计算速度,不使用AD盒的输出 /// bool IsCalSpeed { get; set; } /// /// 机架修正 /// CorrectADsHandler CorrectADs { get; set; } /// /// grid 滤波 /// int GridSmooth { get; set; } /// /// 脉冲比例 Ratio02(编码器脉冲) / Ratio01(电机脉冲) /// double Speed1Scale { get; } /// /// 机架总长 /// int PosLen { 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); /// /// 转为 grid 数据 /// /// /// /// 测试功能 ad值滞后 void ToGrid(IEnumerable gridAdvUnits, out int[] dat,int adLag); /// /// 动作完成 /// bool IsFinish { get; } #region 滞后处理 /// /// ad滞后修正 单位ms /// int ADLag { get; set; } /// /// 以timegrid 为单位,推送数据 /// event TimeGridAdvEventHandler TimeGridAdvEvent; #endregion #region runto 推送 istatus 变化 /// /// 添加 GridIStatusEvent 事件; /// 获取一整幅 grid 对应的 输入口状态 数据 /// /// /// void GridIStatusEventAdd(int istatus_no, GridIStatusEventHander func); /// /// 删除 GridIStatusEvent 事件 /// /// /// void GridIStatusEventDel(int istatus_no, GridIStatusEventHander func); #endregion } /// /// 机架修正 /// /// /// /// public delegate void CorrectADsHandler(Misc.DIRECTION direction, int start_grid, int[] dat); }