单灯:模块改为客户端
This commit is contained in:
@ -75,7 +75,7 @@ namespace WCS.BLL.Services.Service
|
||||
{
|
||||
var shelfModel = new SingleLightShelfModel();
|
||||
//报警灯
|
||||
if(shelf.LightId > 0)
|
||||
if (shelf.LightId > 0)
|
||||
{
|
||||
shelfModel.WarningLightMode = request.LightMode;
|
||||
}
|
||||
@ -96,29 +96,62 @@ namespace WCS.BLL.Services.Service
|
||||
}
|
||||
|
||||
//合并:同一个TCP的货架合并 报警灯和库位灯统一只发送一条指令
|
||||
var clientIpList = shelfs.Select(t => t.ClientIp)
|
||||
.Distinct()
|
||||
.ToList();
|
||||
foreach (var clientIp in clientIpList)
|
||||
var clients = shelfs.Select(t => new
|
||||
{
|
||||
var shelfModelsInOneIp = shelfModels.Where(t => t.ClientIp == clientIp).ToList();
|
||||
ClientIp = t.ClientIp,
|
||||
IsService = t.IsService,
|
||||
})
|
||||
.Distinct()
|
||||
.ToList();
|
||||
foreach (var client in clients)
|
||||
{
|
||||
var shelfModelsInOneIp = shelfModels.Where(t => t.ClientIp == client.ClientIp).ToList();
|
||||
|
||||
var sendData = Helper.SingleLightControl(shelfModelsInOneIp);
|
||||
TCPClient tcpClient = TCPClientManager.GetTCPClientByIPHost(clientIp);
|
||||
if (tcpClient != null)
|
||||
if (client.IsService)
|
||||
{
|
||||
try
|
||||
TCPClient tcpClient = TCPClientManager.GetTCPClientByIPHost(client.ClientIp);
|
||||
if (tcpClient != null)
|
||||
{
|
||||
tcpClient.Send(sendData);
|
||||
Logs.Write("【单灯单独控制】发送指令" + BitConverter.ToString(sendData));
|
||||
try
|
||||
{
|
||||
tcpClient.Send(sendData);
|
||||
Logs.Write("【单灯单独控制】发送指令" + BitConverter.ToString(sendData));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logs.Write($"【单灯单独控制】{client}以下指令发送中遇到异常{ex.Message}" + BitConverter.ToString(sendData));
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
else
|
||||
{
|
||||
Logs.Write($"【单灯单独控制】{clientIp}以下指令发送中遇到异常{ex.Message}" + BitConverter.ToString(sendData));
|
||||
Logs.Write($"【单灯单独控制】{client}未连接,以下指令未能成功发送" + BitConverter.ToString(sendData));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Logs.Write($"【单灯单独控制】{clientIp}未连接,以下指令未能成功发送" + BitConverter.ToString(sendData));
|
||||
var tcpClient = TCPClientManager.Service.GetClients().Where(t => t.IP + ":" + t.Port.ToString() == client.ClientIp).FirstOrDefault();
|
||||
if (tcpClient != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
tcpClient.Send(sendData,0,sendData.Length);
|
||||
Logs.Write("【单灯单独控制】发送指令" + BitConverter.ToString(sendData));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logs.Write($"【单灯单独控制】{client}以下指令发送中遇到异常{ex.Message}" + BitConverter.ToString(sendData));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Logs.Write($"【单灯单独控制】{client}未连接,以下指令未能成功发送" + BitConverter.ToString(sendData));
|
||||
return new ResponseCommon<object>()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"【单灯单独控制】{client}未连接,以下指令未能成功发送",
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -172,31 +205,64 @@ namespace WCS.BLL.Services.Service
|
||||
var shelfs = DbHelp.db.Queryable<ShelfInfo>().Where(t => shelfIds.Contains(t.Id))
|
||||
.ToList();
|
||||
//获取对应货架所有IP
|
||||
var clientIPs = shelfs.Select(t => t.ClientIp)
|
||||
.Distinct()
|
||||
.ToList();
|
||||
var clients = shelfs.Select(t => new
|
||||
{
|
||||
ClientIp = t.ClientIp,
|
||||
IsService = t.IsService,
|
||||
})
|
||||
.Distinct()
|
||||
.ToList();
|
||||
|
||||
//挨个发关灯指令
|
||||
foreach (var clientIP in clientIPs)
|
||||
foreach (var client in clients)
|
||||
{
|
||||
//生成关灯指令
|
||||
var sendData = Helper.SingleLightTrunOffAllLight();
|
||||
TCPClient tcpClient = TCPClientManager.GetTCPClientByIPHost(clientIP);
|
||||
if (tcpClient != null)
|
||||
|
||||
if (client.IsService)
|
||||
{
|
||||
try
|
||||
TCPClient tcpClient = TCPClientManager.GetTCPClientByIPHost(client.ClientIp);
|
||||
if (tcpClient != null)
|
||||
{
|
||||
tcpClient.Send(sendData);
|
||||
Logs.Write("【单灯单独控制】发送指令" + BitConverter.ToString(sendData));
|
||||
try
|
||||
{
|
||||
tcpClient.Send(sendData);
|
||||
Logs.Write("【熄灯】发送指令" + BitConverter.ToString(sendData));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logs.Write($"【熄灯】{client}以下指令发送中遇到异常{ex.Message}" + BitConverter.ToString(sendData));
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
else
|
||||
{
|
||||
Logs.Write($"【单灯单独控制】{clientIP}以下指令发送中遇到异常{ex.Message}" + BitConverter.ToString(sendData));
|
||||
Logs.Write($"【熄灯】{client}未连接,以下指令未能成功发送" + BitConverter.ToString(sendData));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Logs.Write($"【单灯单独控制】{clientIP}未连接,以下指令未能成功发送" + BitConverter.ToString(sendData));
|
||||
var tcpClient = TCPClientManager.Service.GetClients().Where(t => t.IP + ":" + t.Port.ToString() == client.ClientIp).FirstOrDefault();
|
||||
if (tcpClient != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
tcpClient.Send(sendData, 0, sendData.Length);
|
||||
Logs.Write("【熄灯】发送指令" + BitConverter.ToString(sendData));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logs.Write($"【熄灯】{client}以下指令发送中遇到异常{ex.Message}" + BitConverter.ToString(sendData));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Logs.Write($"【熄灯】{client}未连接,以下指令未能成功发送" + BitConverter.ToString(sendData));
|
||||
return new ResponseCommon<object>()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"【熄灯】{client}未连接,以下指令未能成功发送",
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user