using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Communicator;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.DTO;
namespace WIDESEAWCS_QuartzJob
{
///
/// 穿梭车
///
public interface IShuttleCar : IDevice
{
///
/// 通讯对象
///
BaseCommunicator Communicator { get; }
///
/// 通讯协议信息
///
List DeviceProDTOs { get; }
///
/// 通讯协议明细信息
///
List DeviceProtocolDetailDTOs { get; }
///
/// 设备是否已连接
///
bool IsConnected { get; }
///
/// 读取PLC协议地址的数据
///
/// 协议信息的枚举对象信息。
/// 读取数据的类型对象信息。
/// 枚举值
/// 读取到的数据
TResult GetValue(TEnum value) where TEnum : Enum;
///
/// 根据参数名称写入堆垛机对应的数据。
///
/// 参数名称枚举类型。
/// 要写入的数据类型。
/// 参数名称。
/// 要写入的数据。
/// 返回写入成功或失败
///
bool SetValue(TEnum @enum, TValue value) where TEnum : Enum where TValue : notnull;
///
/// 读取PLC协议地址的数据
///
/// 协议信息的枚举对象信息。
/// 读取数据的类型对象信息。
/// 枚举值
/// 设备子编号
/// 读取到的数据
TResult GetValue(TEnum value, string deviceChildCode) where TEnum : Enum;
///
/// 根据参数名称、设备子编号写入对应的数据。
///
/// 参数名称枚举类型。
/// 要写入的数据类型。
/// 参数名称。
/// 要写入的数据。
/// 设备子编号写
/// 返回写入成功或失败
bool SetValue(TEnum @enum, TValue value, string deviceChildCode) where TEnum : Enum where TValue : notnull;
}
}