using Cognex.VisionPro; using Cognex.VisionPro.ToolBlock; using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Team.FFFeederService.Interfaces; using TeamAAS_VP.Models; using TeamAAS_VP.Models.Feeder; namespace TeamAAS_VP.Interfaces { public interface IRemoteCommandService : IDisposable { /// /// 是否正在执行命令 /// bool IsExecuting { get; } /// /// 是否正在执行视觉命令 /// bool IsExecutingVisionCommand { get; } /// /// 计时器计时通知事件 /// event EventHandler CycleTimingTicked; /// /// Execute a remote command string /// /// /// /// /// Task ExecuteAsync(string command, CancellationToken cancellationToken, Action callback); /// /// 加载产品 /// /// /// /// Task LoadProductAsync(string productName, CancellationToken cancellationToken); /// /// 通过产品编号获取产品名称 /// /// /// /// Task GetProductNameByNumberAsync(int productNumber, CancellationToken cancellationToken); /// /// 通过产品名称获取产品编号 /// /// /// /// Task GetProductNumberByNameAsync(string productName, CancellationToken cancellationToken); /// /// 获取当前产品名称 /// /// /// Task GetCurrentProductNameAsync(CancellationToken cancellationToken); /// /// 获取当前产品编号 /// /// /// Task GetCurrentProductNumberAsync(CancellationToken cancellationToken); /// /// 通过机器人编号和点位编号获取机器人点位信息 /// /// /// /// /// Task GetRobotPointInfoAsync(int robotNumber, int pointNumber, CancellationToken cancellationToken); /// /// 通过机器人编号和托盘编号、点编号获取机器人托盘点位信息 /// /// 机器人编号 /// 托盘编号 /// 点编号 /// /// Task GetRobotPalletPointInfoAsync(int robotNumber, int palletNumber, int pointNumber, CancellationToken cancellationToken); /// /// 开始节拍计时 /// /// /// Task StartCycleTimingAsync(CancellationToken cancellationToken); /// /// 停止节拍计时 /// /// /// Task StopCycleTimingAsync(CancellationToken cancellationToken); /// /// 创建一条生产计数,传入计数项 /// /// /// /// Task CreateProductionCountAsync(string countItem, CancellationToken cancellationToken); /// /// 获取当前生产计数 /// /// /// /// Task GetCurrentProductionCountAsync(string countItem, CancellationToken cancellationToken); /// /// 重置生产计数 /// /// /// /// Task ResetProductionCountAsync(string countItem, CancellationToken cancellationToken); /// /// 创建一条报警记录 /// /// /// /// /// Task CreateAlarmRecordAsync(string alarmCode, string alarmDescription, CancellationToken cancellationToken); /// /// 创建一条运行信息记录 /// /// /// /// Task CreateOperationLogAsync(string logMessage, CancellationToken cancellationToken); /// /// 获取当前产品指定编号的全局参数 /// /// /// /// /// Task GetGlobalParameterAsync(int parameterNumber, int itemIndex, CancellationToken cancellationToken); /// /// 获取当前产品的运行速度 /// /// /// Task GetOperationSpeedAsync(CancellationToken cancellationToken); /// /// 获取末端工具信息,传入流程触发命令和工具编号 /// /// /// /// /// Task GetToolParamAsync(string triggerCommand, int toolNumber, CancellationToken cancellationToken); /// /// 获取流程参数信息,传入流程触发命令 /// /// /// /// Task GetProcessParamAsync(string triggerCommand, CancellationToken cancellationToken); /// /// 执行清料任务 /// /// /// /// Task ExecuteClearMaterialTaskAsync(int taskNumber, CancellationToken cancellationToken); /// /// 终止清料任务 /// /// /// /// Task StopClearMaterialTaskAsync(int taskNumber, CancellationToken cancellationToken); /// /// 获取机器人是否进入调试模式 /// /// /// Task IsRobotInDebugModeAsync(int robotNumber, CancellationToken cancellationToken); /// /// 执行视觉任务 /// /// 流程 /// 是否先振动 /// /// Task<(bool IsSucceed, string[] Response)> ExecuteVisionTaskAsync(ProcedureModel procedure, string[] items, CancellationToken cancellationToken, ImageParameters imgPara); /// /// 执行Feeder视觉引导任务 /// /// /// /// /// /// Task<(bool IsSucceed, string[] Response)> ExecuteFeederVisionTaskAsync(IVoiceCoilMotorFeeder feeder, ProcedureModel procedure, string[] items, CancellationToken cancellationToken, ImageParameters imgPara); /// /// 执行普通视觉任务 /// /// /// /// /// Task<(bool IsSucceed, string Response)> ExecuteNormalVisionTaskAsync(ProcedureModel procedure, string[] items, CancellationToken cancellationToken, ImageParameters imgPara); /// /// 执行相机拍照 /// /// /// /// /// bool ExecutePhoto(ProcedureModel procedure, Dictionary InputTerminal, out CogToolBlockTerminalCollection outputCollection, ImageParameters imgPara); /// /// 执行拍照二维码流程运行 /// /// /// /// bool ExecutePhoto(ProcedureModel procedure, out CogToolBlockTerminalCollection outputCollection); /// /// 执行相机拍照获取单个点位结果 /// /// /// /// /// /// /// /// Task<(bool IsSucceed, double X, double Y, double U)> ExecutePhotoGetSinglePoint(ProcedureModel procedure, Dictionary InputTerminal, double[] robotCoord, CancellationToken cancellationToken, int positionIndex, string remark, ImageParameters imgPara); /// /// 执行相机拍照获取单个点位结果,并且返回图像和图形 /// /// /// /// /// /// Task<(bool IsSucceed, double X, double Y, double U, ICogImage Image, CogGraphicCollection Graphic)> ExecutePhotoGetSinglePointWithImage(ProcedureModel procedure, Dictionary InputTerminal, double[] robotCoord, CancellationToken cancellationToken); /// /// 获取需要输出项 /// /// /// /// /// (bool IsSucceed, string ErrMsg, Dictionary Output) GetVisionOutput(ProcedureModel procedure, CogToolBlockTerminalCollection outputCollection, double[] robotPos); /// /// Feeder拍照前,执行Feeder /// /// /// /// /// /// /// Task ExecuteFeederForPhotoBefore(IVoiceCoilMotorFeeder Feeder, ProcedureModel procedure, bool doVibrateFirst, bool doCaptureFirst, CancellationToken cancellationToken); /// /// Feeder拍照后,拍照失败时,执行Feeder /// /// /// /// /// Task ExecuteFeederForPhotoLater(IVoiceCoilMotorFeeder Feeder, ProcedureModel procedure, CancellationToken cancellationToken); /// /// 执行Feeder料仓供料及振动集合 /// /// /// /// /// /// Task ExecuteFeederStockWorks(IVoiceCoilMotorFeeder feeder, FeederStockWorks works, CancellationToken cancellationToken, bool isUpdateParame = true); /// /// 执行料仓振动任务 /// /// /// /// /// Task ExecuteFeederStockWorksOnly(IVoiceCoilMotorFeeder feeder, FeederStockWork[] works, CancellationToken cancellationToken); /// /// 执行Feeder振动任务 /// /// /// /// /// /// Task ExecuteFeederWorkOnly(IVoiceCoilMotorFeeder feeder, FeederWork[] works, CancellationToken cancellationToken, bool isUpdateParame = true); /// /// 执行Feeder振动集合 /// /// /// /// /// /// Task ExecuteFeederWorks(IVoiceCoilMotorFeeder feeder, FeederWorks works, CancellationToken cancellationToken, bool isUpdateParame = true); /// /// 在拍照前设置光源亮度和打开光源 /// /// 流程模型 /// Task SetLightBeforePhoto(ProcedureModel procedure); /// /// 在拍照后关闭光源 /// /// 流程模型 /// Task TurnOffLightAfterPhoto(ProcedureModel procedure); } }