using Tnb.WarehouseMgr.Entities.Dto.Inputs;
namespace Tnb.WarehouseMgr.Interfaces
{
///
/// 电梯控制服务接口
///
public interface IElevatorControlService
{
///
/// 向指定的标签属性写入值
///
/// 标签名称
/// 标签值
///
Task WriteTagAsync(string devName, string tagName, int value);
///
/// 根据标签名称获取标签单个属性值
///
///
///
Task GetTagAsync(string devName, string tagName);
///
/// 获取电梯状态
///
/// 取消标志
///
Task<(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus)> GetElevatorStatus(string devName, CancellationToken token);
///
/// 获取电梯状态
///
/// 设备名称
/// 标签集合
/// 取消标志
/// 获取到的状态值
Task<(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus)> GetElevatorStatus(string devName, IEnumerable tags, CancellationToken token);
Task> GetELevatorStatusMap(string devName, IEnumerable tags, CancellationToken token);
///
/// 检查Agv状态
///
///
///
Task CheckAgvStatus(string devName, CancellationToken cancellationToken);
///
/// 向系统发送开关门指令
///
///
/// 3前门开门
/// 4前门关门
/// 5后门开门
/// 6后门关门
///
///
Task SendOpenCloseCmd(string devName, int value);
///
/// 呼梯操作
///
/// 设备名称
/// 呼叫楼层
/// 取消令牌
///
Task CallLift(string devName, int floor, CancellationToken cancellationToken);
Task CloseElevatorControl(CloseElevatorInput input);
}
}