using iWareCommon.Utils;
|
using iWareModel;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Runtime.Serialization;
|
using System.ServiceModel;
|
using System.Text;
|
|
|
namespace iWareSda
|
{
|
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“RgvService”。
|
//public class RgvService : IRgvService
|
//{
|
// public SdaResEntity ClearAlarm(int deviceId)
|
// {
|
// SdaResEntity sdaResult = new SdaResEntity();
|
// try
|
// {
|
// var rgvResult = Rgv_CacheEntity.GetDeviceObj(deviceId);
|
// if (!rgvResult.result)
|
// {
|
// return rgvResult;
|
// }
|
// var rgv = rgvResult.resData as RgvEntity;
|
// string msg;
|
// var result = rgv.ClearAlarm(deviceId, out msg);
|
// Log4NetHelper.WriteInfoLog(LogType.RgvSdaService, "下发deviceId=" + deviceId + "的RGV消警指令" + (result ? "成功" : "失败") + "原因:" + msg);
|
// sdaResult.result = result;
|
// sdaResult.resMsg = msg;
|
// return sdaResult;
|
// }
|
// catch (Exception ex)
|
// {
|
// sdaResult.result = false;
|
// sdaResult.resMsg = JsonConvert.SerializeObject(ex);
|
// return sdaResult;
|
// }
|
// }
|
|
|
// /// <summary>
|
// /// 下发RGV任务
|
// /// </summary>
|
// /// <param name="deviceId"></param>
|
// /// <param name="taskId"></param>
|
// /// <param name="sourcePlce"></param>
|
// /// <param name="toPlace"></param>
|
// /// <param name="pallType"></param>
|
// /// <returns></returns>
|
// public SdaResEntity SendRgvTask(int deviceId, int taskId, string sourcePlce, string toPlace)
|
// {
|
// SdaResEntity sdaResult = new SdaResEntity();
|
// try
|
// {
|
// var rgvResult = Rgv_CacheEntity.GetDeviceObj(deviceId);
|
// if (!rgvResult.result)
|
// {
|
// return rgvResult;
|
// }
|
// var rgv = rgvResult.resData as RgvEntity;
|
|
// //如果STP为TRUE,表示不能发任务
|
|
|
// string msg;
|
// var result = rgv.SendTask(deviceId, taskId, sourcePlce, toPlace, out msg);
|
// Log4NetHelper.WriteInfoLog(LogType.RgvSdaService, "下发deviceId=" + deviceId + ",taskId=" + taskId + ",fromPlace=" +
|
// sourcePlce + ",toPlace=" + toPlace + "的RGV任务" + (result ? "成功" : "失败") + "原因:" + msg);
|
|
// sdaResult.result = result;
|
// sdaResult.resMsg = msg;
|
// return sdaResult;
|
// }
|
// catch (Exception ex)
|
// {
|
// sdaResult.result = false;
|
// sdaResult.resMsg = JsonConvert.SerializeObject(ex);
|
// return sdaResult;
|
// }
|
// }
|
|
// /// <summary>
|
// /// 任务下发确认(收到PLC反馈后WCS清除)
|
// /// </summary>
|
// /// <param name="deviceId"></param>
|
// /// <param name="stationCode"></param>
|
// /// <returns></returns>
|
// public SdaResEntity WriteStp(int deviceId, bool value, string stationCode)
|
// {
|
// SdaResEntity _SdaResEntity = new SdaResEntity();
|
// try
|
// {
|
// var rgvResult = Rgv_CacheEntity.GetDeviceObj(deviceId);
|
// if (!rgvResult.result)
|
// {
|
// return rgvResult;
|
// }
|
// var rgv = rgvResult.resData as RgvEntity;
|
|
// string msg = "";
|
// var result = rgv.WriteStp(deviceId, stationCode, value, out msg);
|
// Log4NetHelper.WriteInfoLog(LogType.RgvSdaService,
|
// "下发deviceId=" + deviceId + ",站点号=" + stationCode + "的任务下发确认(收到PLC反馈后WCS清除)指令" + (result ? "成功" : "失败") + "原因:" + msg);
|
// _SdaResEntity.result = result;
|
// _SdaResEntity.resMsg = msg;
|
// return _SdaResEntity;
|
// }
|
// catch (Exception ex)
|
// {
|
// _SdaResEntity.result = false;
|
// _SdaResEntity.resMsg = ex.Message;
|
// return _SdaResEntity;
|
// }
|
// }
|
|
// public SdaResEntity DeleteRgvTask(int deviceId, int taskId)
|
// {
|
// SdaResEntity sdaResult = new SdaResEntity();
|
// try
|
// {
|
// var rgvResult = Rgv_CacheEntity.GetDeviceObj(deviceId);
|
// if (!rgvResult.result)
|
// {
|
// return rgvResult;
|
// }
|
// var rgv = rgvResult.resData as RgvEntity;
|
// string msg = "";
|
// var result = rgv.DeleteTask(deviceId, taskId, out msg);
|
// Log4NetHelper.WriteInfoLog(LogType.RgvSdaService, "下发deviceId = " + deviceId + "的删除RGV任务指令" + (result ? "成功" : "失败") + "原因:" + msg);
|
// sdaResult.result = result;
|
// sdaResult.resMsg = msg;
|
// return sdaResult;
|
// }
|
// catch (Exception ex)
|
// {
|
// sdaResult.result = false;
|
// sdaResult.resMsg = JsonConvert.SerializeObject(ex);
|
// return sdaResult;
|
// }
|
// }
|
|
// ///// <summary>
|
// ///// RGV急停
|
// ///// </summary>
|
// ///// <param name="deviceId"></param>
|
// ///// <returns></returns>
|
// //public SdaResEntity EmergencyStop(int deviceId)
|
// //{
|
// // SdaResEntity sdaResult = new SdaResEntity();
|
// // try
|
// // {
|
// // var rgvResult = Rgv_CacheEntity.GetDeviceObj(deviceId);
|
// // if (!rgvResult.result)
|
// // {
|
// // return rgvResult;
|
// // }
|
// // var rgv = rgvResult.resData as RgvEntity;
|
|
// // string msg = "";
|
// // var result = rgv.EmergencyStop(deviceId, out msg);
|
// // Log4NetHelper.WriteInfoLog(LogType.RgvSdaService, "下发deviceId = " + deviceId + "的急停任务指令" + (result ? "成功" : "失败") + "原因:" + msg);
|
// // sdaResult.result = result;
|
// // sdaResult.resMsg = msg;
|
// // return sdaResult;
|
// // }
|
// // catch (Exception ex)
|
// // {
|
// // sdaResult.result = false;
|
// // sdaResult.resMsg = JsonConvert.SerializeObject(ex);
|
// // return sdaResult;
|
// // }
|
// //}
|
|
// /// <summary>
|
// /// 获取整个RGV对象
|
// /// </summary>
|
// /// <param name="deviceId"></param>
|
// /// <returns></returns>
|
// public RgvView GetRgvInfo(int deviceId)
|
// {
|
// var rgvResult = Rgv_CacheEntity.GetDeviceObj(deviceId);
|
// if (!rgvResult.result)
|
// {
|
// return null;
|
// }
|
// var rgv = (rgvResult.resData as RgvEntity).View;
|
// return rgv;
|
// }
|
|
|
// /// <summary>
|
// /// RGV任务是否完成
|
// /// </summary>
|
// /// <param name="deviceId"></param>
|
// /// <param name="taskId"></param>
|
// /// <returns></returns>
|
// public SdaResEntity IsTaskFinish(int deviceId, int taskId)
|
// {
|
// SdaResEntity sdaResult = new SdaResEntity();
|
// try
|
// {
|
// var rgvResult = Rgv_CacheEntity.GetDeviceObj(deviceId);
|
// if (!rgvResult.result)
|
// {
|
// return rgvResult;
|
// }
|
// var rgv = rgvResult.resData as RgvEntity;
|
|
// var stationCode = ((int)EDevice.Conveyer1040).ToString();
|
// var readData = rgv.View.R_RgvForReadCommList.Where(x => x.StationCode == stationCode).FirstOrDefault();
|
|
// sdaResult.result = readData.R_TaskID == taskId && rgv.View.R_RGV_Finish;
|
// sdaResult.resMsg = "成功";
|
// }
|
// catch (Exception ex)
|
// {
|
// sdaResult.result = false;
|
// sdaResult.resMsg = JsonConvert.SerializeObject(ex);
|
// return sdaResult;
|
// }
|
// return sdaResult;
|
// }
|
|
|
|
|
// /// <summary>
|
// /// RGV是否是自动模式
|
// /// </summary>
|
// /// <returns></returns>
|
// public SdaResEntity IsRgvAuto(int deviceId, string stationCode)
|
// {
|
// SdaResEntity sdaResult = new SdaResEntity();
|
// try
|
// {
|
// var rgvResult = Rgv_CacheEntity.GetDeviceObj(deviceId);
|
// if (!rgvResult.result)
|
// {
|
// return rgvResult;
|
// }
|
// var rgv = rgvResult.resData as RgvEntity;
|
|
// var msg = "";
|
// var result = rgv.RgvIsAuto(stationCode, out msg);
|
// if (!rgvResult.result)
|
// {
|
// sdaResult.result = false;
|
// sdaResult.resMsg = msg;
|
// return rgvResult;
|
// }
|
|
|
// sdaResult.result = true;
|
|
// }
|
// catch (Exception ex)
|
// {
|
// sdaResult.result = false;
|
// sdaResult.resMsg = JsonConvert.SerializeObject(ex);
|
// Log4NetHelper.WriteErrorLog(LogType.RgvSdaService, "判断RGV是否是自动模式出现异常,ex:" + JsonConvert.SerializeObject(ex), ex);
|
// }
|
// return sdaResult;
|
// }
|
|
// /// <summary>
|
// /// RGV是否是自动待机模式
|
// /// </summary>
|
// /// <returns></returns>
|
// public SdaResEntity RgvIsAutoAwaitMode(int deviceId, string stationCode)
|
// {
|
// SdaResEntity sdaResult = new SdaResEntity();
|
// try
|
// {
|
// var rgvResult = Rgv_CacheEntity.GetDeviceObj(deviceId);
|
// if (!rgvResult.result)
|
// {
|
// return rgvResult;
|
// }
|
// var rgv = rgvResult.resData as RgvEntity;
|
|
// var msg = "";
|
// var result = rgv.RgvIsAutoAwaitMode(stationCode, out msg);
|
// if (!rgvResult.result)
|
// {
|
// sdaResult.result = false;
|
// sdaResult.resMsg = msg;
|
// return rgvResult;
|
// }
|
|
|
// sdaResult.result = true;
|
|
// }
|
// catch (Exception ex)
|
// {
|
// sdaResult.result = false;
|
// sdaResult.resMsg = JsonConvert.SerializeObject(ex);
|
// Log4NetHelper.WriteErrorLog(LogType.RgvSdaService, "判断RGV是否是自动待机模式出现异常,ex:" + JsonConvert.SerializeObject(ex), ex);
|
// }
|
// return sdaResult;
|
// }
|
|
|
// /// <summary>
|
// /// 判断RGV是否可用,是否可以发送新任务给RGV
|
// /// </summary>
|
// /// <param name="deviceId"></param>
|
// /// <param name="sourceStationCode"></param>
|
// /// <param name="toStationCode"></param>
|
// /// <param name="isRgvTask">是否是涉及到RGV的任务</param>
|
// /// <returns></returns>
|
// public SdaResEntity IsAllowSendTask(bool isNeedValidateRealSourceAndToPlace, int deviceId, string sourceStationCode, string toStationCode, bool isRgvTask)
|
// {
|
// var msg = "";
|
// SdaResEntity sdaResult = new SdaResEntity();
|
// try
|
// {
|
|
// var rgvResult = Rgv_CacheEntity.GetDeviceObj(deviceId);
|
// if (!rgvResult.result)
|
// {
|
// return rgvResult;
|
// }
|
// var rgv = rgvResult.resData as RgvEntity;
|
// var result = false;
|
// if (isNeedValidateRealSourceAndToPlace)
|
// {
|
// //判断起点是否是自动待机模式
|
// result = rgv.RgvIsAutoAwaitMode(sourceStationCode, out msg);
|
// if (!result)
|
// {
|
// sdaResult.result = false;
|
// sdaResult.resMsg = msg;
|
// return sdaResult;
|
// }
|
// //判断起点是否是空闲状态
|
// result = rgv.RgvIsStateFree(sourceStationCode, out msg);
|
// if (!result)
|
// {
|
// sdaResult.result = false;
|
// sdaResult.resMsg = msg;
|
// return sdaResult;
|
// }
|
// }
|
|
// //判断RGV是否是自动模式
|
// result = rgv.RgvIsAuto(((int)EDevice.Conveyer1040).ToString(), out msg);
|
// if (!result)
|
// {
|
// sdaResult.result = false;
|
// sdaResult.resMsg = msg;
|
// return sdaResult;
|
// }
|
|
// if (isRgvTask)
|
// {//如果是涉及到RGV的任务,需要去验证下RGV是否是空闲状态
|
|
// //判断RGV是否是自动待机模式
|
// result = rgv.RgvIsAutoAwaitMode(((int)EDevice.Conveyer1040).ToString(), out msg);
|
// if (!result)
|
// {
|
// sdaResult.result = false;
|
// sdaResult.resMsg = msg;
|
// return sdaResult;
|
// }
|
|
// result = rgv.RgvIsStateFree(((int)EDevice.Conveyer1040).ToString(), out msg);
|
// if (!result)
|
// {
|
// sdaResult.result = false;
|
// sdaResult.resMsg = msg;
|
// return sdaResult;
|
// }
|
// }
|
|
// if (isNeedValidateRealSourceAndToPlace)
|
// {
|
// //判断目标点是否是自动模式
|
// result = rgv.RgvIsAuto(toStationCode, out msg);
|
// if (!result)
|
// {
|
// sdaResult.result = false;
|
// sdaResult.resMsg = msg;
|
// return sdaResult;
|
// }
|
// }
|
|
// sdaResult.result = true;
|
// return sdaResult;
|
// }
|
// catch (Exception ex)
|
// {
|
// sdaResult.result = false;
|
// sdaResult.resMsg = "出现异常:" + JsonConvert.SerializeObject(ex);
|
// return sdaResult;
|
// }
|
// }
|
|
|
// /// <summary>
|
// /// 判断是否有心跳
|
// /// </summary>
|
// /// <param name="deviceId"></param>
|
// /// <returns></returns>
|
// public SdaResEntity IsHaveHeatBeat(int deviceId)
|
// {
|
// SdaResEntity sdaResult = new SdaResEntity();
|
// string msg;
|
// try
|
// {
|
// var rgvResult = Rgv_CacheEntity.GetDeviceObj(deviceId);
|
// if (!rgvResult.result)
|
// {
|
// return rgvResult;
|
// }
|
// var rgv = rgvResult.resData as RgvEntity;
|
|
// var result = rgv.IsHaveHeatBeat();
|
|
// sdaResult.result = true;
|
// sdaResult.resData = result;
|
// return sdaResult;
|
|
// }
|
// catch (Exception ex)
|
// {
|
// msg = "验证是否有心跳出现异常:" + ex.Message;
|
// sdaResult.result = false;
|
// sdaResult.resMsg = msg;
|
// return sdaResult;
|
// }
|
// }
|
|
|
// /// <summary>
|
// /// 1015重新扫码
|
// /// </summary>
|
// /// <param name="deviceId"></param>
|
// /// <param name="value"></param>
|
// /// <returns></returns>
|
// public SdaResEntity Write1015ReScan(int deviceId, bool value)
|
// {
|
// SdaResEntity _SdaResEntity = new SdaResEntity();
|
// try
|
// {
|
// var rgvResult = Rgv_CacheEntity.GetDeviceObj(deviceId);
|
// if (!rgvResult.result)
|
// {
|
// return rgvResult;
|
// }
|
// var rgv = rgvResult.resData as RgvEntity;
|
|
// string msg = "";
|
// var result = rgv.Write1015ReScan(deviceId, value, out msg);
|
// _SdaResEntity.result = result;
|
// _SdaResEntity.resMsg = msg;
|
// return _SdaResEntity;
|
// }
|
// catch (Exception ex)
|
// {
|
// _SdaResEntity.result = false;
|
// _SdaResEntity.resMsg = ex.Message;
|
// return _SdaResEntity;
|
// }
|
// }
|
|
// /// <summary>
|
// /// RGV的任务完成ACK赋值
|
// /// </summary>
|
// /// <param name="deviceId"></param>
|
// /// <param name="value"></param>
|
// /// <returns></returns>
|
// public SdaResEntity WriteRGV_FinishACK(int deviceId, bool value, int plcTaskId)
|
// {
|
// SdaResEntity _SdaResEntity = new SdaResEntity();
|
// try
|
// {
|
// var rgvResult = Rgv_CacheEntity.GetDeviceObj(deviceId);
|
// if (!rgvResult.result)
|
// {
|
// return rgvResult;
|
// }
|
// var rgv = rgvResult.resData as RgvEntity;
|
|
// string msg = "";
|
// var result = rgv.WriteRGV_FinishACK(deviceId, value, plcTaskId, out msg);
|
// _SdaResEntity.result = result;
|
// _SdaResEntity.resMsg = msg;
|
// return _SdaResEntity;
|
// }
|
// catch (Exception ex)
|
// {
|
// _SdaResEntity.result = false;
|
// _SdaResEntity.resMsg = ex.Message;
|
// return _SdaResEntity;
|
// }
|
// }
|
|
|
// /// <summary>
|
// /// 四个入库口扫描验证ACK赋值
|
// /// </summary>
|
// /// <param name="deviceId"></param>
|
// /// <param name="value"></param>
|
// /// <returns></returns>
|
// public SdaResEntity WriteScanValidateACK(bool isReset, int deviceId, string stationCode, bool value, int plcTaskId)
|
// {
|
// SdaResEntity _SdaResEntity = new SdaResEntity();
|
// try
|
// {
|
// var rgvResult = Rgv_CacheEntity.GetDeviceObj(deviceId);
|
// if (!rgvResult.result)
|
// {
|
// return rgvResult;
|
// }
|
// var rgv = rgvResult.resData as RgvEntity;
|
|
// string msg = "";
|
// var result = rgv.WriteScanValidateACK(isReset,deviceId, stationCode, value, plcTaskId, out msg);
|
// _SdaResEntity.result = result;
|
// _SdaResEntity.resMsg = msg;
|
// return _SdaResEntity;
|
// }
|
// catch (Exception ex)
|
// {
|
// _SdaResEntity.result = false;
|
// _SdaResEntity.resMsg = ex.Message;
|
// return _SdaResEntity;
|
// }
|
// }
|
//}
|
}
|