| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using TeamAAS.Motion.Models;
- using static TeamAAS.Motion.Events.CardAxisEventArgs;
- namespace TeamAAS.Motion.Interfaces
- {
- public interface IMotionControl
- {
-
- // --- 1. 属性 (Properties) ---
- /// <summary>控制卡是否已连接</summary>
- bool IsConnected { get; }
- /// <summary>控制卡名称/型号</summary>
- string CardName { get; }
- /// <summary>控制卡支持的最大轴数</summary>
- int MaxAxisCount { get; }
- // --- 2. 方法 (Methods) ---
- // 2.1 设备生命周期管理
- /// <summary>连接控制卡</summary>
- /// <param name="connectionString">连接字符串,如IP地址"192.168.1.100"或设备索引号"0"[reference:5]</param>
- /// <returns>是否连接成功</returns>
- bool Connect(string connectionString);
- /// <summary>断开与控制卡的连接</summary>
- void Disconnect();
- // 2.2 获取轴对象
- /// <summary>根据轴号获取轴控制接口</summary>
- IAxis GetAxis(int axisNo);
- /// <summary>获取所有轴的控制接口列表</summary>
- IList<IAxis> GetAxes();
- // 2.3 高级运动功能(多轴协同)
- /// <summary>执行多轴直线插补运动[reference:6]</summary>
- void MoveLinear(double[] targetPositions, double velocity);
- /// <summary>执行多轴圆弧插补运动[reference:7]</summary>
- void MoveArc(double[] centerPoint, double[] targetPositions, double velocity);
- /// <summary>停止所有轴的运动(急停)</summary>
- void EmergencyStop();
- // 2.4 通用I/O操作
- /// <summary>读取数字量输入</summary>
- bool ReadDI(int portIndex);
- /// <summary>写入数字量输出</summary>
- void WriteDO(int portIndex, bool value);
- // --- 3. 事件 (Events) ---
- /// <summary>控制卡连接状态发生变化时触发</summary>
- event EventHandler<ConnectionStateChangedEventArgs> ConnectionStateChanged;
- /// <summary>控制卡发生错误时触发</summary>
- event EventHandler<ErrorOccurredEventArgs> ErrorOccurred;
- }
- }
|