提交代码

This commit is contained in:
hehaibing-1996
2024-04-29 08:39:09 +08:00
parent a1199028b3
commit 97888c6978
46 changed files with 2303 additions and 255 deletions

View File

@ -5,6 +5,7 @@ using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using TouchSocket.Core;
using TouchSocket.Sockets;
using WCS.BLL.HardWare;
using WCS.DAL.Db;
using WCS.DAL.DbModels;
@ -19,16 +20,18 @@ namespace WCS.BLL.Manager
public static List<TCPClient> TCPClients = new List<TCPClient>();
public static void InitTcpClient()
{
var ips = DbHelp.db.Queryable<ShelfInfo>().Select(t => t.ClientIp).ToList();
var ips = DbHelp.db.Queryable<ShelfInfo>().Where(t => t.ShelfCode.Contains("A")).Select(t => t.ClientIp).ToList();
foreach (var ip in ips)
{
var tcpCleint = new TCPClient(ip, "192.168.0.154:20003");
var tcpCleint = new TCPClient(ip, "192.168.0.183:20003");
//var tcpCleint = new TCPClient("192.168.0.183:20002", "192.168.0.183:20003");
//配置断线重连
tcpCleint.tcpClient.Received += (client, e) =>
{
var clientIpHost = client.IP + ":" + client.Port;
var TcpCleint = TCPClientManager.GetTCPClientByIPHost(clientIpHost);
if (TcpCleint == null)
{
@ -47,14 +50,15 @@ namespace WCS.BLL.Manager
if (isEqual)
{
var dataTemp = data.Skip(index).Take(TcpCleint.PreFixLength + TcpCleint.DataLength).ToArray();
Logs.Write($"接受到数据:{BitConverter.ToString(dataTemp)}");
if (dataTemp.Length < TcpCleint.PreFixLength + TcpCleint.DataLength)//拆包后不满足一条指令的长度
{
continue;
}
index += (TcpCleint.PreFixLength + TcpCleint.DataLength - 1);//每次循环index会+1 所以这里-1
//获取板子ID
var boardId = (data[TcpCleint.PreFixLength + 0] << 8) + data[TcpCleint.PreFixLength + 1];
var lightNumber = Convert.ToInt32(data[TcpCleint.PreFixLength + 3]);
var boardId = (dataTemp[TcpCleint.PreFixLength + 0] << 8) + dataTemp[TcpCleint.PreFixLength + 1];
var lightNumber = Convert.ToInt32(dataTemp[TcpCleint.PreFixLength + 3]);
//报警灯
if (dataTemp[TcpCleint.PreFixLength + 2] == 0x20)
@ -63,7 +67,7 @@ namespace WCS.BLL.Manager
.Where(t => t.LightId == boardId)
.FirstOrDefault();
var smartShelf = shelf as SmartShelf;
smartShelf?.ProtocolProcess(data, boardId, lightNumber);
smartShelf?.ProtocolProcess(dataTemp, boardId, lightNumber);
}
//货架类型协议返回
else
@ -73,7 +77,7 @@ namespace WCS.BLL.Manager
.Where(t => t.ModuleIds.Contains(boardId))
.FirstOrDefault();
var smartShelf = shelf as SmartShelf;
smartShelf?.ProtocolProcess(data, boardId, lightNumber);
smartShelf?.ProtocolProcess(dataTemp, boardId, lightNumber);
}