using BPA.AGV;
using BPA.MES.Base.Application.Services.AGVService.Dtos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BPA.MES.Base.Application.Services.AGVService.Services
{
    public interface IAGVThirdPartyService
    {

        /// <summary>
        /// 下发任务
        /// </summary>
        /// <param name="cExecuteRequest"></param>
        /// <returns></returns>
       Task<KCResponse> ExecuteAsync(KCExecuteRequest cExecuteRequest);

        /// <summary>
        /// 取消任务
        /// </summary>
        /// <param name="kCCancelRequest"></param>
        /// <returns></returns>
        Task<KCResponse> CancelAsync(KCCancelRequest kCCancelRequest);


        /// <summary>
        /// 任务回调
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<bool> ExecuteReplyAsync(AGVExecuteReplyRequest input);


        /// <summary>
        /// AGV上下料交互请求
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<bool> LoadAndUnloadAsync(AGVLoadAndUnloadRequest input);
    }
}
