1.增加配置ID等接口

2.长按取消 长按又挂起任务
This commit is contained in:
hehaibing-1996
2025-03-29 17:37:48 +08:00
parent 0a7e0ad627
commit 6b8f55776a
6 changed files with 585 additions and 86 deletions

View File

@ -348,7 +348,7 @@ namespace WCS.WebApi.Controllers
ShelfTypeId = 3,
ShelfId = shelfInfo.Id,
ShelfCode = shelfInfo.ShelfCode,
BoardId = boardId ++,
BoardId = boardId++,
LightCount = 1,
CleintIp = shelfInfo.ClientIp,
GroupName = shelfInfo.GroupName,
@ -380,5 +380,249 @@ namespace WCS.WebApi.Controllers
};
}
}
/// <summary>
/// 进入调试模式
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[Route("goInDebugMode")]
[HttpPost(Name = "goInDebugMode")]
public async Task<ResponseBase> goInDebugMode(SetBoardIdRequest request)
{
try
{
//获取TCP
var client = TCPClientManager.TCPClients
.Where(t => t.RemoteIPHost == request.IPPort)
.First();
if (client == null)
{
return new ResponseBase<object>()
{
Code = 300,
Message = "未获取到对应连接,请检查地址",
Data = null
};
}
//进入调试模式
byte[] data = { 0x08, 0x00, 0x00, 0x07, 0xFF, 0xDB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
client.Send(data);
return new ResponseBase<object>()
{
Code = 200,
Message = "指令发送成功",
Data = null
};
}
catch (Exception ex)
{
return new ResponseBase<object>()
{
Code = 300,
Message = "指令发送失败" + ex.Message,
Data = null
};
}
}
[Route("goOutDebugMode")]
[HttpPost(Name = "goOutDebugMode")]
public async Task<ResponseBase> goOutDebugMode(SetBoardIdRequest request)
{
try
{
//获取TCP
var client = TCPClientManager.TCPClients
.Where(t => t.RemoteIPHost == request.IPPort)
.First();
if (client == null)
{
return new ResponseBase<object>()
{
Code = 300,
Message = "未获取到对应连接,请检查地址",
Data = null
};
}
//退出调试模式
byte[] data = { 0x08, 0x00, 0x00, 0x07, 0xFF, 0xDB, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
client.Send(data);
return new ResponseBase<object>()
{
Code = 200,
Message = "指令发送成功",
Data = null
};
}
catch (Exception ex)
{
return new ResponseBase<object>()
{
Code = 300,
Message = "指令发送失败" + ex.Message,
Data = null
};
}
}
[Route("setId")]
[HttpPost(Name = "setId")]
public async Task<ResponseBase> setId(SetBoardIdRequest request)
{
try
{
//获取TCP
var client = TCPClientManager.TCPClients
.Where(t => t.RemoteIPHost == request.IPPort)
.First();
if (client == null)
{
return new ResponseBase<object>()
{
Code = 300,
Message = "未获取到对应连接,请检查地址",
Data = null
};
}
//退出调试模式
byte[] data = { 0x08, 0x00, 0x00, 0x07, 0xFF, 0xDB, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00 };
client.Send(data);
var boardId = request.StartId;
var boardIdData = BitConverter.GetBytes(unchecked((short)boardId));
// 检查是否需要交换字节
if (BitConverter.IsLittleEndian)
{
// 如果是小端序系统,则交换字节
byte temp = boardIdData[0];
boardIdData[0] = boardIdData[1];
boardIdData[1] = temp;
}
Thread.Sleep(3000);
byte[] data1 = { 0x08, 0x00, 0x00, 0x07, 0xFF, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
data1[6] = boardIdData[0];
data1[7] = boardIdData[1];
client.Send(data1);
return new ResponseBase<object>()
{
Code = 200,
Message = "指令发送成功",
Data = null
};
}
catch (Exception ex)
{
return new ResponseBase<object>()
{
Code = 300,
Message = "指令发送失败" + ex.Message,
Data = null
};
}
}
[Route("setLight")]
[HttpPost(Name = "setLight")]
public async Task<ResponseBase> setLight(SetBoardIdRequest request)
{
try
{
//获取TCP
var client = TCPClientManager.TCPClients
.Where(t => t.RemoteIPHost == request.IPPort)
.First();
if (client == null)
{
return new ResponseBase<object>()
{
Code = 300,
Message = "未获取到对应连接,请检查地址",
Data = null
};
}
var boardId = request.StartId;
var boardIdData = BitConverter.GetBytes(unchecked((short)boardId));
// 检查是否需要交换字节
if (BitConverter.IsLittleEndian)
{
// 如果是小端序系统,则交换字节
byte temp = boardIdData[0];
boardIdData[0] = boardIdData[1];
boardIdData[1] = temp;
}
byte[] data1 = { 0x08, 0x00, 0x00, 0x07, 0xFF, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
data1[7] = boardIdData[0];
data1[8] = boardIdData[1];
client.Send(data1);
return new ResponseBase<object>()
{
Code = 200,
Message = "指令发送成功",
Data = null
};
}
catch (Exception ex)
{
return new ResponseBase<object>()
{
Code = 300,
Message = "指令发送失败" + ex.Message,
Data = null
};
}
}
[Route("resetByTCP")]
[HttpPost(Name = "resetByTCP")]
public async Task<ResponseBase> resetByTCP(SetBoardIdRequest request)
{
try
{
//获取TCP
var client = TCPClientManager.TCPClients
.Where(t => t.RemoteIPHost == request.IPPort)
.First();
if (client == null)
{
return new ResponseBase<object>()
{
Code = 300,
Message = "未获取到对应连接,请检查地址",
Data = null
};
}
byte[] data = { 0x08, 0x00, 0x00, 0x07, 0xFF, 0xBE, 0x52, 0x54, 0x41, 0x52, 0x54, 0x0A, 0xED };
client.Send(data);
return new ResponseBase<object>()
{
Code = 200,
Message = "指令发送成功",
Data = null
};
}
catch (Exception ex)
{
return new ResponseBase<object>()
{
Code = 300,
Message = "指令发送失败" + ex.Message,
Data = null
};
}
}
}
}