using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; using DeiNiu.Utils; namespace DeiNiu.wms.win { // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“ServiceLight”。 public delegate bool turnOnLights(int portNo, List lights); public delegate bool turnOffLights(int portNo, List lights); public delegate bool lightLable(List lables); public delegate bool turnOffLable(List lables); public delegate bool resetLights(int port); public delegate Cart getCarIp(string carNo); public delegate void clearLablesByPortOrder(int port,int order); public delegate void logMsg(string msg); [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] public class ServiceLight : IServiceLight { public turnOffLights turnOffLts = null; public turnOnLights turnOnLts = null; public turnOffLable turnOffLb = null; public string turnOnLightById(int lightId) { return turnOnLight(lightId,0,0); } public string turnOffLightById(int lightId) { return turnOffLight(lightId,0, 0); } public string turnOnLight (int lightId, byte which, int portNo) { List els = new List(); ELight el = new ELight(); el.port =portNo; el.which = which; el.lightId=lightId; els.Add(el); bool rt = true; if (turnOnLts != null) { rt= turnOnLts(portNo,els); } if (rt) return "亮灯请求成功"; else return "亮灯失败"; } public string turnOffLight(int lightId, byte which, int portNo) { List els = new List(); ELight el = new ELight(); el.port = portNo; el.which = which; el.lightId = lightId; els.Add(el); bool rt = true; if (turnOffLts != null) { rt = turnOffLts(portNo, els); } if (rt) return "灭灯成功"; else return "灭灯失败"; } public clearLablesByPortOrder clearLablesByPortOrder = null; public void clearLables(int port, int order) { if (clearLablesByPortOrder != null) { clearLablesByPortOrder(port, order); } } public void showLableId(int port) { } //点亮标签 public lightLable lightUp = null; public string lightLabels(List labels) { //labelPool.Concat(labels); if (null != lightUp) { if( lightUp(labels)) return "succeed"; } return "failed"; } public resetLights resetPort = null; public string resetLabels(int port) { if (null != resetPort) { if (resetPort(port)) { return "success"; } } return "failed"; } public ELabel testPost(ELabel label) { // string json = getJson(label); // Console.Write("get the lable: " + json ); return label;// "succeed"; } public string getJson(ELabel label) { // string json = String.Format("\"labelId\":{0},\"address\":{1},\"count\":{2},\"color\":{3},\"port\":{4},\"orderNo\":{5}" // , label.labelId, label.address, label.count, label.color, label.port, label.orderNo); // string json = String.Format("\"labelId\":{0},\"num1\":{1},\"num2\":{2},\"color\":{3},\"orderNo\":{4}" // , label.labelId, label.num1, label.num2, label.color, label.orderNo); // Console.Write("get the lable: " + json); // Console.Write("get the lable: " + json); return Util.getLbJson(label); } public getCarIp getCarIpAddress = null; public Cart getCarUrl(string carNo) { if (getCarIpAddress != null) { return(getCarIpAddress(carNo)); } return new Cart(); } public logMsg outMsg=null; public void printMsg(string msg) { if (outMsg != null) { outMsg(msg); } } public string lightOn(List lights) { bool rt = true; if (turnOnLts != null) { rt = turnOnLts(0, lights); } if (rt) return "亮灯成功"; else return "亮灯失败"; } public string lightOff(List lights) { bool rt = true; if (turnOffLts != null) { rt = turnOffLts(0, lights); } if (rt) return "灭灯成功"; else return "灭灯失败"; } public string labelOff(List labels) { bool rt = true; if (turnOffLb != null) { rt = turnOffLb(labels); } if (rt) return "灭灯成功"; else return "灭灯失败"; } } }