using HslCommunication;
using WIDESEAWCS_Communicator;
using WIDESEAWCS_QuartzJob.DTO;
namespace WIDESEAWCS_QuartzJob
{
public interface IElevator : IDevice
{
///
/// 通讯对象
///
BaseCommunicator Communicator { get; }
///
/// 通讯协议信息
///
List DeviceProDTOs { get; }
///
/// 通讯协议明细信息
///
List DeviceProtocolDetailDTOs { get; }
///
/// 设备是否已连接
///
bool IsConnected { get; }
///
/// 与设备的心跳
///
void Heartbeat();
///
/// 读取PLC协议地址的数据
///
/// 协议信息的枚举对象信息。
/// 读取数据的类型对象信息。
/// 枚举值
/// 设备子编号
/// 读取到的数据
TResult GetValue(TEnum value, string deviceChildCode) where TEnum : Enum;
///
/// 根据参数名称、设备子编号写入对应的数据。
///
/// 参数名称枚举类型。
/// 要写入的数据类型。
/// 参数名称。
/// 要写入的数据。
/// 设备子编号写
/// 返回写入成功或失败
bool SetValue(TEnum @enum, TValue value, string deviceChildCode) where TEnum : Enum where TValue : notnull;
///
/// 读取站台是否被占用
///
/// 设备子编号
///
bool IsOccupied(string deviceChildCode);
///
/// 发送任务命令
///
/// 任务命令对象的类型泛型
/// 任务命令
/// 设备子编号
///
bool SendCommand(T command, string deviceChildCode) where T : IDataTransfer, new();
}
}