提交代码
This commit is contained in:
@ -10,18 +10,32 @@ namespace WCS.BLL.HardWare
|
||||
{
|
||||
public class SmartShelfModule : IModuleBase
|
||||
{
|
||||
#region 协议明细
|
||||
#region 协议
|
||||
/// <summary>
|
||||
/// 进入入库模式
|
||||
/// </summary>
|
||||
public byte[] GoInInstoreData = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
|
||||
/// <summary>
|
||||
/// 确认入库
|
||||
/// </summary>
|
||||
public byte[] ComfirmInstoreData = { 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
|
||||
public byte[] ComfirmErrInstoreData = { 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
|
||||
/// <summary>
|
||||
/// 退出入库模式
|
||||
/// </summary>
|
||||
public byte[] GoOutInstoreData = { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
|
||||
/// <summary>
|
||||
/// 自检模式
|
||||
/// </summary>
|
||||
public byte[] CheckModeData = { 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
#endregion
|
||||
public int ModuleId { get; set; }
|
||||
public string ModuleCode { get; set; }
|
||||
public int BoardId { get; set; }
|
||||
public bool IsEnable { get; set; }
|
||||
public Mode CurrentMode { get; set; }
|
||||
|
||||
@ -30,16 +44,14 @@ namespace WCS.BLL.HardWare
|
||||
|
||||
}
|
||||
|
||||
public void GoInInstoreMode(TCPClient tcpCleint)
|
||||
public void GoInInstoreMode(TCPClient tcpClient)
|
||||
{
|
||||
|
||||
if (CurrentMode != Mode.待机模式)
|
||||
{
|
||||
//退出对应的模式 然后再发送进入入库模式
|
||||
//TO DO 退出对应的模式 然后再发送进入入库模式
|
||||
}
|
||||
|
||||
var storeInfos = DbHelp.db.Queryable<StoreInfo>()
|
||||
.Where(t => t.BoardId == ModuleId)
|
||||
.Where(t => t.BoardId == BoardId)
|
||||
.OrderBy(t => t.LightNumber)
|
||||
.ToList();
|
||||
char[] data = "0000000000000000".ToCharArray();
|
||||
@ -57,14 +69,24 @@ namespace WCS.BLL.HardWare
|
||||
GoInInstoreData[1] = Convert.ToByte(data1, 2);
|
||||
GoInInstoreData[2] = Convert.ToByte(data2, 2);
|
||||
|
||||
tcpCleint.Send(tcpCleint.GenerateMessage(ModuleId, GoInInstoreData));
|
||||
tcpClient.Send(tcpClient.GenerateMessage(BoardId, GoInInstoreData));
|
||||
}
|
||||
|
||||
public void GoOutInstoreMode(TCPClient tcpCleint)
|
||||
public void ComfirmInstore(TCPClient tcpClient)
|
||||
{
|
||||
tcpClient.Send(tcpClient.GenerateMessage(BoardId, ComfirmInstoreData));
|
||||
}
|
||||
|
||||
public void ComfirmErrInstore(TCPClient tcpClient)
|
||||
{
|
||||
tcpClient.Send(tcpClient.GenerateMessage(BoardId, ComfirmErrInstoreData));
|
||||
}
|
||||
|
||||
public void GoOutInstoreMode(TCPClient tcpClient)
|
||||
{
|
||||
if (CurrentMode == Mode.入库模式)
|
||||
{
|
||||
tcpCleint.Send(tcpCleint.GenerateMessage(ModuleId, GoOutInstoreData));
|
||||
tcpClient.Send(tcpClient.GenerateMessage(BoardId, GoOutInstoreData));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -73,7 +95,32 @@ namespace WCS.BLL.HardWare
|
||||
}
|
||||
}
|
||||
|
||||
public void ShelfCheck(TCPClient tcpClient)
|
||||
{
|
||||
if (CurrentMode != Mode.待机模式)
|
||||
{
|
||||
//TO DO 退出对应的模式 然后再发送进入入库模式
|
||||
}
|
||||
var storeInfos = DbHelp.db.Queryable<StoreInfo>()
|
||||
.Where(t => t.BoardId == BoardId)
|
||||
.OrderBy(t => t.LightNumber)
|
||||
.ToList();
|
||||
char[] data = "0000000000000000".ToCharArray();
|
||||
var boardStoreNumber = storeInfos.Count();
|
||||
foreach (var storeInfo in storeInfos)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(storeInfo.CurrentMatSn) && storeInfo.LightNumber > 0 && storeInfo.LightNumber <= boardStoreNumber)
|
||||
{
|
||||
data[storeInfo.LightNumber - 1] = '1';
|
||||
}
|
||||
}
|
||||
var dataStr = string.Join("", data.Reverse());
|
||||
var data1 = dataStr.Substring(8, 8);
|
||||
var data2 = dataStr.Substring(0, 8);
|
||||
CheckModeData[1] = Convert.ToByte(data1, 2);
|
||||
CheckModeData[2] = Convert.ToByte(data2, 2);
|
||||
|
||||
|
||||
tcpClient.Send(tcpClient.GenerateMessage(BoardId, CheckModeData));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user