Пример #1
0
        async void lightSwitchClient_ConnectionClosed(object sender, LightSwitchClientEventArgs args)
        {
            await Log.ReportInfoFormatAsync(CancellationToken, "Client {0} disconnected", args.LightSwitchClient.RemoteEndPoint);

            if (_lightSwitchClients.Contains(args.LightSwitchClient))
            {
                _lightSwitchClients.Remove(args.LightSwitchClient);
            }

            args.LightSwitchClient.OnConnectionEstabilished -= lightSwitchClient_ConnectionEstabilished;
            args.LightSwitchClient.OnConnectionClosed       -= lightSwitchClient_ConnectionClosed;

            args.LightSwitchClient.OnDataReceived -= lightSwitchClient_DataReceived;
            args.LightSwitchClient.OnDataSent     -= lightSwitchClient_DataSent;

            args.LightSwitchClient.OnCmdAList     -= lightSwitchClient_onCmdAList;
            args.LightSwitchClient.OnCmdDevice    -= lightSwitchClient_onCmdDevice;
            args.LightSwitchClient.OnCmdIphone    -= lightSwitchClient_onCmdIphone;
            args.LightSwitchClient.OnCmdList      -= lightSwitchClient_onCmdList;
            args.LightSwitchClient.OnCmdPassword  -= lightSwitchClient_onCmdPassword;
            args.LightSwitchClient.OnCmdScene     -= lightSwitchClient_onCmdScene;
            args.LightSwitchClient.OnCmdServer    -= lightSwitchClient_onCmdServer;
            args.LightSwitchClient.OnCmdSList     -= lightSwitchClient_onCmdSList;
            args.LightSwitchClient.OnCmdTerminate -= lightSwitchClient_onCmdTerminate;
            args.LightSwitchClient.OnCmdThermMode -= lightSwitchClient_onCmdThermMode;
            args.LightSwitchClient.OnCmdThermTemp -= lightSwitchClient_onCmdThermTemp;
            args.LightSwitchClient.OnCmdVersion   -= lightSwitchClient_onCmdVersion;
            args.LightSwitchClient.OnCmdZList     -= lightSwitchClient_onCmdZList;
            args.LightSwitchClient.OnCmdZone      -= lightSwitchClient_onCmdZone;
        }
Пример #2
0
        async void lightSwitchClient_onCmdZList(object sender, LightSwitchClientEventArgs args)
        {
            await Log.ReportInfoFormatAsync(CancellationToken, "Received [{0}] User requested zone list", args.LightSwitchClient.RemoteEndPoint);

            await SendZoneListAsync(args.LightSwitchClient);
            await SendLightSwitchCommand(args.LightSwitchClient, LightSwitchProtocol.CreateEndListCmd());
        }
Пример #3
0
        async void lightSwitchClient_onCmdServer(object sender, LightSwitchClientEventArgs args)
        {
            if (!args.LightSwitchClient.IsAuthenticated)
            {
                args.LightSwitchClient.Disconnect();
            }

            await SendLightSwitchCommand(args.LightSwitchClient, LightSwitchProtocol.CreateVersionCmd(Utils.ApplicationNameAndVersion));
        }
Пример #4
0
        async void lightSwitchClient_onCmdList(object sender, LightSwitchClientEventArgs args)
        {
            if (!args.LightSwitchClient.IsAuthenticated)
            {
                args.LightSwitchClient.Disconnect();
            }

            await Log.ReportInfoFormatAsync(CancellationToken, "Received [{0}] User requested device list", args.LightSwitchClient.RemoteEndPoint);

            await SendDeviceListAsync(args.LightSwitchClient);
            await SendLightSwitchCommand(args.LightSwitchClient, LightSwitchProtocol.CreateEndListCmd());
        }
Пример #5
0
        async void lightSwitchClient_ConnectionEstabilished(object sender, LightSwitchClientEventArgs args)
        {
            if (_lightSwitchClients.Count > MaxConnectionsSettings)
            {
                await SendLightSwitchCommand(args.LightSwitchClient, LightSwitchProtocol.CreateMsgCmd("Max clients reached!"));

                args.LightSwitchClient.Disconnect();
            }

            await Log.ReportInfoFormatAsync(CancellationToken, "Client {0} connected", args.LightSwitchClient.RemoteEndPoint);

            await SendLightSwitchCommand(args.LightSwitchClient, LightSwitchProtocol.CreateInfoCmdFormat("LightSwitch zVirtualScenes Plug-in (Active Connections {0}){1}", _lightSwitchClients.Count, Environment.NewLine));
        }
Пример #6
0
 void lightSwitchClient_onCmdTerminate(object sender, LightSwitchClientEventArgs args)
 {
     args.LightSwitchClient.Disconnect();
 }
Пример #7
0
 async void lightSwitchClient_onCmdIphone(object sender, LightSwitchClientEventArgs args)
 {
     args.LightSwitchClient.IsAuthenticated = false;
     await SendLightSwitchCommand(args.LightSwitchClient, LightSwitchProtocol.CreateCookieCmd(args.LightSwitchClient.Nonce.ToString()));
 }