212 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			212 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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<ELight> lights);
 | ||
|     public delegate bool turnOffLights(int portNo, List<ELight> lights);
 | ||
| 
 | ||
|     public delegate bool lightLable(List<ELabel> lables);
 | ||
|     public delegate bool turnOffLable(List<ELabel> 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<ELight> els = new List<ELight>();
 | ||
|             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<ELight> els = new List<ELight>();
 | ||
|             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<ELabel> 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<ELight> lights)
 | ||
|         {
 | ||
|             
 | ||
|             bool rt = true;
 | ||
|             if (turnOnLts != null)
 | ||
|             {
 | ||
|                 rt = turnOnLts(0, lights);
 | ||
|             } 
 | ||
| 
 | ||
|             if (rt)
 | ||
|                 return "亮灯成功";
 | ||
|             else
 | ||
|                 return "亮灯失败";
 | ||
|         }
 | ||
| 
 | ||
|         public string lightOff(List<ELight> lights)
 | ||
|         {
 | ||
| 
 | ||
|             bool rt = true;
 | ||
|             if (turnOffLts != null)
 | ||
|             {
 | ||
|                 rt = turnOffLts(0, lights);
 | ||
|             }
 | ||
| 
 | ||
|             if (rt)
 | ||
|                 return "灭灯成功";
 | ||
|             else
 | ||
|                 return "灭灯失败";
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         public string labelOff(List<ELabel> labels)
 | ||
|         {
 | ||
| 
 | ||
|             bool rt = true;
 | ||
|             if (turnOffLb != null)
 | ||
|             {
 | ||
|                 rt = turnOffLb(labels);
 | ||
|             }
 | ||
| 
 | ||
|             if (rt)
 | ||
|                 return "灭灯成功";
 | ||
|             else
 | ||
|                 return "灭灯失败";
 | ||
|         }
 | ||
| 
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| }
 |