ILanYinService.cs 2.44 KB
using Rcs.Application.Common;
using Rcs.Cyaninetech.Models;

namespace Rcs.Cyaninetech.Services;

/// <summary>
/// LanYin外挂服务接口
/// </summary>
public interface ILanYinService
{
    /// <summary>
    /// 用户登录获取token
    /// </summary>
    /// <param name="request">登录请求</param>
    /// <param name="cancellationToken">取消令牌</param>
    /// <returns>登录响应</returns>
    Task<bool> LoginAsync(LanYinLoginRequest request, CancellationToken cancellationToken = default);

    /// <summary>
    /// 获取库位信息
    /// </summary>
    /// <param name="request">库位查询请求</param>
    /// <param name="cancellationToken">取消令牌</param>
    /// <returns>库位信息响应</returns>
    Task<List<LanYinLocationData>> GetLocationsAsync(string url, CancellationToken cancellationToken = default);

    /// <summary>
    /// 任务下发 - 将搬运任务信息下发给车体控制系统进行执行
    /// </summary>
    /// <param name="request">任务下发请求</param>
    /// <param name="cancellationToken">取消令牌</param>
    /// <returns>是否下发成功</returns>
    Task<ApiResponse<LanYinTaskData>> DispatchTaskAsync(LanYinDispatchTaskRequest request, CancellationToken cancellationToken = default);
    /// <summary>
    /// 同步地图
    /// </summary>
    Task<LanYinMapInfoData> SyncMapResource(string url, CancellationToken cancellationToken = default);

    /// <summary>
    /// 确认工况异常
    /// @author zzy
    /// </summary>
    Task<ApiResponse> ConfirmExceptionAsync(string robotId, CancellationToken cancellationToken = default);

    /// <summary>
    /// 取消任务
    /// @author zzy
    /// </summary>
    Task<ApiResponse> CancelTaskAsync(CancellationToken cancellationToken = default);

    /// <summary>
    /// 取消指定机器人的任务
    /// @author zzy
    /// </summary>
    /// <param name="robotId">机器人ID</param>
    /// <param name="cancellationToken">取消令牌</param>
    /// <returns>操作结果</returns>
    Task<ApiResponse> CancelTaskByRobotAsync(string robotId, CancellationToken cancellationToken = default);

    /// <summary>
    /// 复位指定机器人
    /// @author zzy
    /// </summary>
    /// <param name="robotId">机器人ID</param>
    /// <param name="cancellationToken">取消令牌</param>
    /// <returns>操作结果</returns>
    Task<ApiResponse> ResetRobotAsync(string robotId, CancellationToken cancellationToken = default);
}