using HslCommunication.WebSocket;
|
using RYB_PTL_API;
|
using WIDESEAWCS_Core.Helper;
|
using WIDESEAWCS_DTO;
|
using WIDESEAWCS_DTO.TaskInfo;
|
|
namespace WIDESEAWCS_Server.HostedService
|
{
|
public static class WebSocketSetup
|
{
|
private static bool _eventSubscribed = false;
|
public static void AddWebSocketSetup(this IServiceCollection services)
|
{
|
if (services == null) throw new ArgumentNullException(nameof(services));
|
|
if(AppSettings.Get("WebSocketEnable").ObjToBool())
|
{
|
int port = AppSettings.Get("WebSocketPort").ObjToInt();
|
if (port == 0)
|
{
|
port = 9296;
|
}
|
|
services.AddSingleton(x =>
|
{
|
WebSocketServer socketServer = new WebSocketServer();
|
socketServer.ServerStart(port);
|
return socketServer;
|
});
|
}
|
}
|
/// <summary>
|
///// 订阅PTL事件
|
///// </summary>
|
//public static void SubscribeEvent(this IServiceCollection services)
|
//{
|
// if (!_eventSubscribed)
|
// {
|
// RYB_PTL.UserResultAvailable += new RYB_PTL.UserResultAvailableEventHandler(RYB_PTL_UserResultAvailable);
|
// _eventSubscribed = true;
|
// }
|
//}
|
///// <summary>
|
///// PTL回调事件处理(只处理手拍事件)
|
///// </summary>
|
//public static void RYB_PTL_UserResultAvailable(RYB_PTL.RtnValueStruct rs)
|
//{
|
// try
|
// {
|
// if (rs.KeyCode == null)
|
// {
|
// return;
|
// }
|
// // 构建回调数据
|
// var pTLCallBackDTO = new PTLCallBackDTO
|
// {
|
// sIp = rs.Ip,
|
// sTagID = rs.Tagid,
|
// sValue = rs.Number,
|
// sKeyCode = rs.KeyCode,
|
// sLocator = rs.Locator
|
// };
|
|
// // 根据业务需要构建任务信息
|
// var taskBackLight = new TaskBackLight()
|
// {
|
// TagNo = "B1",
|
// TagCode = pTLCallBackDTO.sLocator,
|
// };
|
// }
|
// catch (Exception ex)
|
// {
|
// // 记录日志或处理异常
|
// Console.WriteLine($"处理PTL手拍回调时出错: {ex.Message}");
|
// }
|
//}
|
}
|
}
|