ldj/epickHost/wcf/ServiceLight.cs

212 lines
5.7 KiB
C#
Raw Permalink Normal View History

2023-05-23 16:13:17 +08:00
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 "灭灯失败";
}
}
}