647556386
3 天以前 2044377679930e8580573322b2a62624a9b0e927
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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}");
        //    }
        //}
    }
}