提交代码
This commit is contained in:
@ -89,7 +89,7 @@ namespace WCS.BLL.HardWare
|
||||
/// <summary>
|
||||
/// 货架进入出库模式
|
||||
/// </summary>
|
||||
public void GoInOutstore(List<OutOrderMatDetail> MatDetails, OutOrder outOrder);
|
||||
public void GoInOutstore(List<OutOrderMatDetail> MatDetails, OutOrder outOrder,string OperateUser);
|
||||
|
||||
/// <summary>
|
||||
/// 货架退出出库模式
|
||||
|
@ -42,7 +42,7 @@ namespace WCS.BLL.HardWare
|
||||
|
||||
}
|
||||
|
||||
public void GoInOutstore(List<OutOrderMatDetail> MatDetails, OutOrder outOrder)
|
||||
public void GoInOutstore(List<OutOrderMatDetail> MatDetails, OutOrder outOrder, string OperateUser)
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -113,6 +113,7 @@ namespace WCS.BLL.HardWare
|
||||
//websocket通知的前端的IP地址
|
||||
public string WebSocketIpAddress { get; set; } = "127.0.0.2";
|
||||
|
||||
public string OutOperateUser { get; set; } = string.Empty;
|
||||
#region 协议处理
|
||||
public void GoInInstore(string? IPAddress)
|
||||
{
|
||||
@ -430,7 +431,7 @@ namespace WCS.BLL.HardWare
|
||||
|
||||
.Distinct()
|
||||
.ToList();
|
||||
shelf.GoInOutstore(matDetails, outOrder);
|
||||
shelf.GoInOutstore(matDetails, outOrder, OutOperateUser);
|
||||
shelf.OrderNumber = outOrder.OrderNumber;
|
||||
});
|
||||
}
|
||||
@ -488,7 +489,7 @@ namespace WCS.BLL.HardWare
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
public void GoInOutstore(List<OutOrderMatDetail> MatDetails, OutOrder outOrder)
|
||||
public void GoInOutstore(List<OutOrderMatDetail> MatDetails, OutOrder outOrder, string OperateUser)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -501,6 +502,8 @@ namespace WCS.BLL.HardWare
|
||||
}
|
||||
//CurrentMode = Mode.出库模式;
|
||||
SetCurrentMode(Mode.出库模式);
|
||||
//设置当前操作人
|
||||
OutOperateUser = OperateUser;
|
||||
|
||||
//第二步:货架添加需要出的SN 出库的领料单号
|
||||
//移除货架所有现有待出库的MatSN
|
||||
@ -1844,7 +1847,7 @@ namespace WCS.BLL.HardWare
|
||||
|
||||
.Distinct()
|
||||
.ToList();
|
||||
shelf.GoInOutstore(matDetails, outOrder);
|
||||
shelf.GoInOutstore(matDetails, outOrder, OutOperateUser);
|
||||
shelf.OrderNumber = outOrder.OrderNumber;
|
||||
});
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ using TouchSocket.Core;
|
||||
using TouchSocket.Sockets;
|
||||
using WCS.BLL.Config;
|
||||
using WCS.BLL.HardWare;
|
||||
using WCS.BLL.Tool;
|
||||
using WCS.DAL.Db;
|
||||
using WCS.DAL.DbModels;
|
||||
|
||||
@ -25,16 +26,17 @@ namespace WCS.BLL.Manager
|
||||
{
|
||||
Logs.Write("【InitTcpClient】开始", LogsType.StartBoot);
|
||||
|
||||
var ips = DbHelp.db.Queryable<ShelfInfo>()
|
||||
.WhereIF(!string.IsNullOrEmpty(LocalFile.Config.GroupName),t => t.GroupName == LocalFile.Config.GroupName)
|
||||
.Select(t => t.ClientIp)
|
||||
var clientsInDB = DbHelp.db.Queryable<ShelfInfo>()
|
||||
.WhereIF(!string.IsNullOrEmpty(LocalFile.Config.GroupName), t => t.GroupName == LocalFile.Config.GroupName)
|
||||
.Select(t => new { IP = t.ClientIp, ShelfTypeName = t.ShelfTypeName })
|
||||
.Distinct()
|
||||
.ToList();
|
||||
foreach (var ip in ips)
|
||||
Logs.Write($"【InitTcpClient】需要连接的服务端地址如下:\r\n{string.Join(";", clientsInDB)}", LogsType.StartBoot);
|
||||
foreach (var cleientInDB in clientsInDB)
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
var tcpCleint = new TCPClient(ip, "");
|
||||
var tcpCleint = new TCPClient(cleientInDB.IP, "",cleientInDB.ShelfTypeName);
|
||||
tcpCleint.tcpClient.Received += (client, e) =>
|
||||
{
|
||||
var clientIpHost = client.IP + ":" + client.Port;
|
||||
@ -48,6 +50,15 @@ namespace WCS.BLL.Manager
|
||||
Logs.Write($"【接收】{BitConverter.ToString(data)}", LogsType.Instructions);
|
||||
e.ByteBlock.Clear();
|
||||
var len = data.Length;
|
||||
|
||||
if (tcpCleint.ShelfTypeName == "信息化货架")
|
||||
{
|
||||
Logs.Write($"【信息化货架开始处理接收数据】{BitConverter.ToString(data)}", LogsType.Instructions);
|
||||
Helper.ReturnDataProcess(TcpCleint, data);
|
||||
Logs.Write($"【信息化货架完成处理接收数据】{BitConverter.ToString(data)}", LogsType.Instructions);
|
||||
return EasyTask.CompletedTask;
|
||||
}
|
||||
|
||||
for (int index = 0; index < data.Length - TcpCleint.PreFixLength; index++)
|
||||
{
|
||||
//协议拆包 通过前缀校验是否为完整数据包
|
||||
@ -92,6 +103,7 @@ namespace WCS.BLL.Manager
|
||||
//配置首次连接后复位操作
|
||||
tcpCleint.tcpClient.Connected += (client, e) =>
|
||||
{
|
||||
Logs.Write($"【TcpClient】{client.IP}完成连接,端口号{client.Port}", LogsType.StartBoot);
|
||||
var clientIpHost = client.IP + ":" + client.Port;
|
||||
var TcpCleint = TCPClientManager.GetTCPClientByIPHost(clientIpHost);
|
||||
if (TcpCleint == null)
|
||||
@ -102,6 +114,13 @@ namespace WCS.BLL.Manager
|
||||
if (TcpCleint.IsFirstConnected == false)
|
||||
{
|
||||
Logs.Write($"【InitTcpClient】{clientIpHost}完成首次连接", LogsType.StartBoot);
|
||||
//获取剩余未完成连接的tcp
|
||||
var noFirstConnectedTcps = TCPClientManager.TCPClients.Where(t => t.IsFirstConnected == false)
|
||||
.Select(t => t.RemoteIPHost)
|
||||
.ToList();
|
||||
|
||||
Logs.Write($"【InitTcpClient】剩余未完成连接的TCP为{string.Join(";", noFirstConnectedTcps)}", LogsType.StartBoot);
|
||||
|
||||
Console.WriteLine($"【InitTcpClient】{clientIpHost}完成首次连接");
|
||||
InitStatus(TcpCleint);
|
||||
TcpCleint.IsFirstConnected = true;
|
||||
@ -176,19 +195,15 @@ namespace WCS.BLL.Manager
|
||||
//后台启动时给所有板子、警示灯发送复位操作 保持状态一致
|
||||
public static void InitStatus(TCPClient tcpClient)
|
||||
{
|
||||
|
||||
List<ModuleInfo> MI = DbHelp.db.Queryable<ModuleInfo>().Where(it => it.CleintIp == tcpClient.RemoteIPHost).ToList();
|
||||
if (MI.Count != 0)
|
||||
var shelfInfo = DbHelp.db.Queryable<ShelfInfo>().Where(t => t.ClientIp == tcpClient.RemoteIPHost).ToList();
|
||||
if (shelfInfo.Count != 0)
|
||||
{
|
||||
List<ShelfInfo> SI = DbHelp.db.Queryable<ShelfInfo>().Where(it => it.ShelfCode == MI[0].ShelfCode).ToList();
|
||||
if (SI.Count != 0)
|
||||
if (shelfInfo[0].ShelfTypeName == "信息化货架")
|
||||
{
|
||||
if (SI[0].ShelfTypeName == "信息化货架")
|
||||
{
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
try
|
||||
|
@ -213,6 +213,7 @@ namespace WCS.BLL.Manager
|
||||
module.CurrentOutSns.RemoveAll(t => t == inventoryDetail.MatSN);
|
||||
Logs.Write($"【出库自检】发现物料{inventoryDetail.MatSN}丢失,已删除模组缓存,剩余物料为{string.Join(",", module.CurrentOutSns)}", LogsType.Outstore);
|
||||
}
|
||||
|
||||
//删除已丢失的出库明细数据
|
||||
var outOrderMatDetail = DbHelp.db.Queryable<OutOrderMatDetail>()
|
||||
.Where(t => t.OrderId == smartShelf.CurrentOutOrder.Id)
|
||||
|
@ -17,5 +17,16 @@ namespace WCS.BLL.Services.IService
|
||||
public Task<string> generateOutOrderNumber();
|
||||
|
||||
public Task<string> generateMXPDOutOrderNumber();
|
||||
|
||||
|
||||
//金川项目增加接口
|
||||
/// <summary>
|
||||
/// 查询当前物料编码是哪个物料 没有则直接添加
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public Task<ResponseBase> JinChuanGenerateMatInfo(JinChuanGenerateMatInfoRequest request);
|
||||
|
||||
public Task<ResponseBase> JinChuanCommitMatInfo(JinChuanCommitMatInfoRequest request);
|
||||
}
|
||||
}
|
||||
|
@ -166,5 +166,150 @@ namespace WCS.BLL.Services.Service
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<ResponseBase> JinChuanGenerateMatInfo(JinChuanGenerateMatInfoRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
//第一步 查询
|
||||
var matBaseInfo = await DbHelp.db.Queryable<MatBaseInfo>().Where(t => t.MatCode == request.MatCode).FirstAsync();
|
||||
if (matBaseInfo != null)
|
||||
{
|
||||
return new ResponseBase<MatBaseInfo>()
|
||||
{
|
||||
Code = 200,
|
||||
Message = "Success",
|
||||
Data = matBaseInfo
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
//不存在 则先创建
|
||||
matBaseInfo = new MatBaseInfo()
|
||||
{
|
||||
MatCode = request.MatCode,
|
||||
MatName = string.Empty,
|
||||
};
|
||||
matBaseInfo.Id = DbHelp.db.Insertable(matBaseInfo).ExecuteReturnIdentity();
|
||||
return new ResponseBase<MatBaseInfo>()
|
||||
{
|
||||
Code = 200,
|
||||
Message = "Success",
|
||||
Data = matBaseInfo
|
||||
};
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return new ResponseBase<MatBaseInfo>()
|
||||
{
|
||||
Code = 300,
|
||||
Message = ex.Message,
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<ResponseBase> JinChuanCommitMatInfo(JinChuanCommitMatInfoRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
//
|
||||
if (request.TotalPan <= 0 && request.TotalPan >= 500)
|
||||
{
|
||||
return new ResponseBase<MatInfo>()
|
||||
{
|
||||
Code = 201,
|
||||
Message = "操作失败:物料盘数请输入1-500",
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
|
||||
//第二步 查询基础物料
|
||||
var matBaseInfo = await DbHelp.db.Queryable<MatBaseInfo>().Where(t => t.Id == request.MatId).FirstAsync();
|
||||
if (matBaseInfo != null)
|
||||
{
|
||||
//存在此物料的情况下 判断当前的数量
|
||||
if (request.CurrentSerilNumber != matBaseInfo.SerialNumber + 1)
|
||||
{
|
||||
return new ResponseBase<MatInfo>()
|
||||
{
|
||||
Code = 201,
|
||||
Message = "操作失败:当前物料流水号冲突!请重新扫码!",
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
//流水号不冲突
|
||||
else
|
||||
{
|
||||
var matInfoList = new List<MatInfo>();
|
||||
|
||||
try
|
||||
{
|
||||
DbHelp.db.BeginTran();
|
||||
for (int i = 0; i < request.TotalPan; i++)
|
||||
{
|
||||
//保存matBaseInfo
|
||||
matBaseInfo.SerialNumber++;
|
||||
|
||||
//保存条码信息
|
||||
var matInfo = new MatInfo()
|
||||
{
|
||||
MatSn = request.CurrentMatSn[i],
|
||||
MatCode = matBaseInfo.MatCode,
|
||||
MatName = matBaseInfo.MatName,
|
||||
MatBatch = request.MatBatch,
|
||||
MatSpec = matBaseInfo.MatSpec,
|
||||
MatUnit = matBaseInfo.MatUnit,
|
||||
MatSupplier = matBaseInfo.MatSupplier,
|
||||
MatCustomer = matBaseInfo.MatCustomer,
|
||||
MatQty = request.MatQty,
|
||||
ModifyUser = request.UserName
|
||||
};
|
||||
matInfo.Id = DbHelp.db.Insertable(matInfo).ExecuteReturnIdentity();
|
||||
matInfoList.Add(matInfo);
|
||||
}
|
||||
//await DbHelp.db.Insertable(matInfoList).ExecuteCommandAsync();
|
||||
await DbHelp.db.Updateable(matBaseInfo).ExecuteCommandAsync();
|
||||
DbHelp.db.CommitTran();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
DbHelp.db.RollbackTran();
|
||||
return new ResponseBase<List<MatInfo>> ()
|
||||
{
|
||||
Code = 300,
|
||||
Message = $"失败:{ex.Message}",
|
||||
Data = matInfoList
|
||||
};
|
||||
}
|
||||
return new ResponseBase<List<MatInfo>>()
|
||||
{
|
||||
Code = 200,
|
||||
Message = "Success",
|
||||
Data = matInfoList
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return new ResponseBase<MatInfo>()
|
||||
{
|
||||
Code = 201,
|
||||
Message = "操作失败:不存在此物料,请重试!",
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return new ResponseBase<MatInfo>()
|
||||
{
|
||||
Code = 300,
|
||||
Message = ex.Message,
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -439,15 +439,6 @@ namespace WCS.BLL.Services.Service
|
||||
public async Task<ResponseBase> queryInstoreStatusSingle(QueryByMatSnRequestSingle request)
|
||||
{
|
||||
//获取货架
|
||||
//var shelf = ShelfManager.Shelves.Where(t => t.ShelfCode == request.ShelfCode).FirstOrDefault();
|
||||
//if (shelf == null)//货架不存在
|
||||
//{
|
||||
// return new ResponseCommon()
|
||||
// {
|
||||
// Code = 201,
|
||||
// Message = $"货架[{request.ShelfCode}]不存在!",
|
||||
// };
|
||||
//}
|
||||
List<ModuleInfo> MI = DbHelp.db.Queryable<ModuleInfo>().Where(it => it.ModuleCode == request.ShelfCode).ToList();
|
||||
if (MI.Count == 0)
|
||||
{
|
||||
@ -529,8 +520,8 @@ namespace WCS.BLL.Services.Service
|
||||
//data1[6] = 0x02;
|
||||
//data1[7] = 0x02;
|
||||
//byte[] senddata1 = Tool.Helper.Crc16(data1, data1.Length, false);
|
||||
byte[] senddata1 = Tool.Helper.InstoreWarnLight(warnLightID);
|
||||
tCPClient.Send(senddata1); //报警灯短亮一次
|
||||
//byte[] senddata1 = Tool.Helper.InstoreWarnLight(warnLightID);
|
||||
//tCPClient.Send(senddata1); //报警灯短亮一次
|
||||
|
||||
//byte[] data2 = new byte[8];
|
||||
//data2[0] = 0xff;
|
||||
@ -542,8 +533,12 @@ namespace WCS.BLL.Services.Service
|
||||
//data2[6] = 0x03;
|
||||
//data2[7] = 0x02;
|
||||
//byte[] senddata2 = Tool.Helper.Crc16(data2, data2.Length, true);
|
||||
byte[] senddata2 = Tool.Helper.InstoreLight(PCBId);
|
||||
tCPClient.Send(senddata2); //库位灯短亮一次
|
||||
//byte[] senddata2 = Tool.Helper.InstoreLight(PCBId);
|
||||
//tCPClient.Send(senddata2); //库位灯短亮一次
|
||||
|
||||
byte[] senddata1 = Tool.Helper.InstoreLightAndWarnLight(PCBId, warnLightID);
|
||||
tCPClient.Send(senddata1); //报警灯和库位灯同时短亮
|
||||
|
||||
|
||||
return new ResponseCommonSingle()
|
||||
{
|
||||
|
@ -162,6 +162,7 @@ namespace WCS.BLL.Services.Service
|
||||
MatSpec = mat.规格,
|
||||
MatUnit = mat.单位,
|
||||
MatCustomer = mat.客户,
|
||||
ModifyUser = userName,
|
||||
IsEnable = mat.状态 == "启用" ? true : false,
|
||||
};
|
||||
await DbHelp.db.Insertable(matBaseInfo).ExecuteCommandAsync();
|
||||
|
@ -435,6 +435,7 @@ namespace WCS.BLL.Services.Service
|
||||
|
||||
var totalCount = await recordsQueryable.CountAsync();
|
||||
var records = await recordsQueryable
|
||||
.OrderByDescending(t => t.Id)
|
||||
.Skip((request.PageNumber - 1) * request.PageSize).Take(request.PageSize)
|
||||
.ToListAsync();
|
||||
//生成序号
|
||||
@ -802,7 +803,7 @@ namespace WCS.BLL.Services.Service
|
||||
var matDetails = outOrderMatDetails.Where(t => t.StoreInfo.ShelfCode == shelf.ShelfCode)
|
||||
.Distinct()
|
||||
.ToList();
|
||||
shelf.GoInOutstore(matDetails, order);
|
||||
shelf.GoInOutstore(matDetails, order, request.UserName);
|
||||
shelf.OrderNumber = order.OrderNumber;
|
||||
Logs.Write($"出库单{order.OrderNumber},货架{shelf.ShelfCode}进入入库模式!", LogsType.Outstore);
|
||||
});
|
||||
@ -1382,12 +1383,12 @@ namespace WCS.BLL.Services.Service
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
|
||||
//物料校验
|
||||
var invetoryDetail = await DbHelp.db.Queryable<InventoryDetail>()
|
||||
.Where(it => it.Id == request.MatId)
|
||||
.Where(it => it.MatSN == request.MatSn)
|
||||
.FirstAsync();
|
||||
|
||||
if (invetoryDetail == null)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
@ -1398,6 +1399,27 @@ namespace WCS.BLL.Services.Service
|
||||
};
|
||||
}
|
||||
|
||||
//获取库位是否是信息化货架的库位
|
||||
var shelf = await DbHelp.db.Queryable<StoreInfo>()
|
||||
.LeftJoin<ShelfTypeInfo>((si, sti) => si.ShelfTypeId == sti.Id)
|
||||
.Where((si, sti) => si.Id == invetoryDetail.StoreId)
|
||||
.Select((si, sti) => new
|
||||
{
|
||||
ShelfId = si.ShelfId,
|
||||
ShelfTypeName = sti.ShelfTypeName
|
||||
})
|
||||
.FirstAsync();
|
||||
if (shelf != null && shelf.ShelfTypeName != "信息化货架")
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"该物料库存不在信息化货架上,不能进行出库!",
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
//物料需求明细校验
|
||||
var outOrderDetail = await DbHelp.db.Queryable<OutOrderDetail>().Where(it => it.OrderNumber == request.OrderNumber)
|
||||
.Where(it => it.MatCode == invetoryDetail.MatCode)
|
||||
@ -1437,6 +1459,28 @@ namespace WCS.BLL.Services.Service
|
||||
outOrderDetail.OutQty += invetoryDetail.MatQty;
|
||||
DbHelp.db.Updateable(outOrderDetail).ExecuteCommand();
|
||||
|
||||
//蜂鸣器提示
|
||||
Task.Run(() =>
|
||||
{
|
||||
Logs.Write("【单灯出库蜂鸣器提示】开始");
|
||||
if (shelf != null)
|
||||
{
|
||||
var Shelf = DbHelp.db.Queryable<ShelfInfo>().Where(t => t.Id == shelf.ShelfId).First();
|
||||
if (Shelf != null)
|
||||
{
|
||||
TCPClient tCPClient = TCPClientManager.GetTCPClientByIPHost(Shelf.ClientIp);
|
||||
byte[] lightOn = Helper.CommitOutstoreBee(Shelf.LightId);
|
||||
tCPClient.Send(lightOn);
|
||||
Logs.Write($"【单灯出库蜂鸣器提示】已发送指令");
|
||||
}
|
||||
else
|
||||
Logs.Write($"【单灯出库蜂鸣器提示】Shelf == null ID为{shelf.ShelfId}");
|
||||
}
|
||||
else
|
||||
Logs.Write("【单灯出库蜂鸣器提示】shelf == null");
|
||||
});
|
||||
|
||||
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 200,
|
||||
@ -1454,6 +1498,6 @@ namespace WCS.BLL.Services.Service
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
@ -240,6 +241,52 @@ namespace WCS.BLL.Tool
|
||||
return senddata1;
|
||||
}
|
||||
|
||||
|
||||
public static byte[] InstoreLightAndWarnLight(int board_id, int lightid)
|
||||
{
|
||||
byte[] data1 = new byte[8 + 3 * 7];
|
||||
data1[0] = 0xff;
|
||||
data1[1] = 0x01;
|
||||
data1[2] = 0x00;
|
||||
data1[3] = (byte)(data1.Length + 2);
|
||||
data1[4] = 0x07;
|
||||
|
||||
//库位灯
|
||||
data1[5] = (byte)board_id;
|
||||
data1[6] = 0x03;
|
||||
data1[7] = 0x02;
|
||||
|
||||
//7就是带的有蜂鸣器
|
||||
for (int i = 0; i < 7; i++)
|
||||
{
|
||||
data1[8 + i * 3] = (byte)(lightid + i);
|
||||
data1[9 + i * 3] = 0x03;
|
||||
data1[10 + i * 3] = 0x02;
|
||||
}
|
||||
|
||||
byte[] senddata1 = Tool.Helper.Crc16(data1, data1.Length, true);
|
||||
return senddata1;
|
||||
}
|
||||
|
||||
//出库确认 蜂鸣器鸣叫一次
|
||||
public static byte[] CommitOutstoreBee(int lightid)
|
||||
{
|
||||
byte[] data1 = new byte[5 + 3 * 1];
|
||||
data1[0] = 0xff;
|
||||
data1[1] = 0x01;
|
||||
data1[2] = 0x00;
|
||||
data1[3] = (byte)(data1.Length + 2);
|
||||
data1[4] = 0x07;
|
||||
|
||||
data1[5] = (byte)(lightid + 6);
|
||||
data1[6] = 0x03;
|
||||
data1[7] = 0x02;
|
||||
|
||||
byte[] sendData = Tool.Helper.Crc16(data1, data1.Length, true);
|
||||
return sendData;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 库位灯常亮/关闭
|
||||
/// </summary>
|
||||
@ -293,5 +340,20 @@ namespace WCS.BLL.Tool
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 返回数据处理
|
||||
/// </summary>
|
||||
public static void ReturnDataProcess(TCPClient tcpClient, byte[] returnData)
|
||||
{
|
||||
if (returnData[0] == 0xFF && returnData[1] == 0x00 && returnData[3] == 0x08
|
||||
&& returnData[4] == 0x01 && returnData[5] == 0x06)
|
||||
{
|
||||
var sendData = Query();
|
||||
tcpClient.Send(sendData);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -16,6 +16,7 @@ namespace WCS.BLL
|
||||
|
||||
public string BindIPHost { get; set; } = "127.0.0.1:20003";
|
||||
|
||||
public string ShelfTypeName { get; set; }
|
||||
public bool IsOnline { get; set; } = false;
|
||||
|
||||
//第一次连接是否已连接
|
||||
@ -53,14 +54,16 @@ namespace WCS.BLL
|
||||
/// 初始化配置连接
|
||||
/// </summary>
|
||||
/// <param name="remoteIPHost"></param>
|
||||
public TCPClient(string remoteIPHost, string bindIPHost)
|
||||
public TCPClient(string remoteIPHost, string bindIPHost,string shelfTypeName)
|
||||
{
|
||||
try
|
||||
{
|
||||
RemoteIPHost = remoteIPHost;
|
||||
BindIPHost = bindIPHost;
|
||||
ShelfTypeName = shelfTypeName;
|
||||
|
||||
tcpClient = new TcpClient();
|
||||
|
||||
//载入配置
|
||||
tcpClient.Setup(new TouchSocketConfig()
|
||||
.SetRemoteIPHost(RemoteIPHost)
|
||||
|
Reference in New Issue
Block a user