using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core;
using WIDESEA_DTO;
using WIDESEA_DTO.AGV;
using WIDESEA_StorageSocketServices;
namespace WIDESEA_IStorageSocketServices
{
public interface IWorkTaskService : IDependency
{
///
/// 设备请求入库 工序101
///
/// 托盘号
/// 入库站台
public void DeviceRequestInbound(HOSTAGVStatus Agvstatus, List outStations, InStationStatus inStation);
///
/// 请求通讯 工序925
///
/// 托盘号
/// 入库站台
public void RequestCommunication();
///
/// 不允许下发任务 工序915
///
/// 命令
///
public void JobReady(string Command);
///
/// 设备状态上报 工序913
///
/// 状态\、R运行
///
public void DeviceStateReport(string Status);
///
/// 设备状态上报 工序917
///
/// 状态\、ControlMode自动、MaintenanceMode手动
public void DeviceAutoStatusReport(string Status);
/// ///
/// 作业开始或结束 工序905
///
/// 状态 L指AGV将托盘叉到货叉上、U指AGV将托盘放到库位上
/// 起点
/// 终点
/// 任务类型 I入库、O出库、S站台到站台、R移库
/// 托盘号
public void JobStartOrEnd(string Status, string FormLocation, string ToLocation, string TaskType, string PallteCode);
///
/// 托盘动作上报 工序907
///
/// 状态 L指AGV将托盘叉到货叉上、U指AGV将托盘放到库位上
/// 起点
/// 终点
/// 任务类型 I入库、O出库、S站台到站台、R移库
/// 托盘号
///
public void PalletActionReport(string Status, string FormLocation, string ToLocation, string TaskType, string PallteCode);
///
/// 作业完成上报 工序901
///
/// 起点
/// 终点
/// 任务类型 I入库、O出库、S站台到站台、R移库
/// 托盘号
///
public void PalletActionReport(string FormLocation, string ToLocation, string TaskType, string PallteCode);
///
/// 回复HOST909工序 工序910
///
///
public void DeviceStatusReportResponse(HOSTAGVStatus AgvStatus, string X, string Y);
///
/// 设备站台状态上报 工序936
///
/// 起点
/// 终点
/// 任务类型 I入库、O出库、S站台到站台、R移库
/// 托盘号
///
public void DeviceStationStatusReport(HOSTAGVStatus Agvstatus, List outStations, List inStation);
/// ///
/// 重新获取货位信息 工序105
///
/// 起点
/// 终点
/// 任务类型 I入库、O出库、S站台到站台、R移库
/// 托盘号
public void RecreateGetLocation(string FormLocation, string ToLocation, string TaskType, string PallteCode);
/// ///
/// 异常上报 工序985
///
/// 起点
/// 终点
/// 00表示AGV错误、01-08表示站台错误、99表示作业接收前数据错误
public void ErrorReport(string Trouble, string Level, string Location);
///
/// 接收HOST工序103回馈响应 工序104
///
/// 0表示OK接收作业、1表示拒绝、9表示作业任务验证有误
///
public void DeviceReceiveJobResponse(string Statues);
/// ///
/// 空出库 工序107
///
/// 起点
/// 终点
/// 任务类型 I入库、O出库、S站台到站台、R移库
/// 托盘号
public void EmptyOutBound(string FormLocation, string ToLocation, string PallteCode);
///
/// 接收HOST 响应请求 工序102 回复工序101
///
///
public void ReceiveCommandResponse(string message);
///
/// 接收HOST响应AGV作业开始或启动 工序906 回复工序905
///
public void AGVJobStartOrEndResponse(string status,string message);
///
/// 数据报告响应 工序902 回复工序901
///
public void DataReportResponse(string message);
///
/// HOST下发出库任务 工序103
///
///
public void HOSTOutBoundTask(string message);
///
/// HOST设备状态获取 工序935
///
///
public void DeviceStationStatusInvite();
///
/// 接收HOST重新分配货位 工序106
///
///
public void RecreateGetLocation(string message);
///
/// HOST空出库响应 工序108
///
///
public void EmptyOutBoundResponse(string message);
///
/// HOST获取设备状态 工序909
///
public void DeviceStatusReportRequest();
///
/// 拼接报文
///
///
///
///
public byte[] MakeStringToByteMsg(string Message);
///
/// 获取CheckSum值
///
///
///
///
public string GetCheckSum(byte[] data);
public string GetListStringOutStation(List outStationStatus);
public string GetListStringInStation(List inStationStatus);
public AGVStatusRespone GetAGVStatus();
public string CapitalizeFirstLetter(string s);
public StationStatus GetStationStatus(string stationName);
}
}