using AUCMA.STORE.Entity.DAO;
using AUCMA.STORE.Entity.DTO;
using AUCMA.STORE.Entity.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AUCMA.STORE.Business.Interface
{
public delegate void RecvIdentifyPilerDataSignal(object[] pLCAddressTypeDTO);
public delegate void RecvIdentifyRGVDataSignal(object[] pLCAddressTypeDTO);
public delegate void RecvIdentifyBarCodeSignal(string BarCode);
public delegate void RecvIdentifyPilerAlarmSignal(object[] pLCAlarmInfoDTOs,string PLCName);
public delegate void SignalReadRefresh(int state,int type);
public delegate void TaskInfoInvoke(int TaskNo, TaskType taskType, LocationArea locationArea, string locationCode);
public interface IPlcBusinessService
{
event TaskInfoInvoke TaskInfoRefreshEvent;
event SignalReadRefresh SignalReadRefreshEvent;
///
/// 上传箱体条码
///
event RecvIdentifyBarCodeSignal RecvIdentifyBarCodeEvent;
///
/// 上传堆垛机PLC信号
///
event RecvIdentifyPilerDataSignal RecvIdentifyPilerDataEvent;
///
/// 上传RGV信号
///
event RecvIdentifyRGVDataSignal RecvIdentifyRGVDataEvent;
///
/// 上传PLC报警信息
///
event RecvIdentifyPilerAlarmSignal RecvIdentifyPilerAlarmEvent;
///
/// 堆垛机设备急停
///
///
///
bool WritePilerStop(int num, string stopflag);
///
/// 控制线体急停
///
/// 1停止;0启动
///
bool WriteRGVStop(string value);
///
/// 程序启动时加载设备信息
///
void LoadDeviceInfo();
///
/// 读取输送线入库信号
///
bool ReadPilerInStoreSignal(int num);
///
/// 写入堆垛机入库信号
///
bool WritePilerInStoreSinal(int num, PlcDirectiveDTO taskDTO);
///
/// 读取入库完成信号
///
bool ReadInStoreCompleteSignal(int num);
///
/// 读取RGV入库信号
///
/// 设备编号
/// 位置
///
bool ReadRGVInStoreSignal(int num, LocationArea locationArea);
#region 出库业务接口
///
/// 判断堆垛机当前状态
///
///
List GetPilerWorkState();
bool WritePilerOutStoreSinal(int num, PlcDirectiveDTO taskDTO);
void doWhileReadPlcPilerSignal(LocationArea locationArea);
#endregion
}
}