コード例 #1
0
        private static async Task TcpSendOneCommandAndDisconnectAsync()
        {
            using (var tcpClient = new TcpClient())
                using (var receiverController = new ReceiverController(_commandDefinitions, _tcpClient, _ipAddress, _port))
                {
                    await Task.Delay(TimeSpan.FromSeconds(5));

                    var command1 = new ReceiverCommand
                    {
                        KeyValue = new KeyValuePair <CommandName, object>(CommandName.Zone2InputStatus, null)
                    };

                    var result1 = await _receiverController.SendReceiverCommandAndTryWaitForResponseAsync(command1, TimeSpan.FromSeconds(2));

                    Console.WriteLine(FormateNiceStringFromResponse(result1));
                }
        }
コード例 #2
0
        private static async Task Main(string[] args)
        {
            _ipAddress = IPAddress.Parse("192.168.0.24");
            _port      = 23;

            _commandDefinitions = new DefaultReceiverCommandDefinition().GetDefaultDefinitions;

            // Run this when the user presses the ctrl-C key - alternative to Console.ReadLine();
            Console.CancelKeyPress += (o, e) =>
            {
                // Clean up...
                _disposableResponse?.Dispose();
                _receiverController?.Dispose();
                _tcpClient?.Dispose();
                Console.WriteLine("Exit");
                WaitHandle.Set();
            };

            // Start the TCP Listener.
            StartTcpListener();

            //Wait for connection
            await Task.Delay(TimeSpan.FromSeconds(5));

            // Let's send some commands

            // Create a command:
            var command1 = new ReceiverCommand
            {
                KeyValue = new KeyValuePair <CommandName, object>(CommandName.PowerSwitch, OnOff.On)
            };

            // Let's send the command and forget about it.
            await _receiverController.SendReceiverCommandAndForgetAsync(command1);

            await Task.Delay(TimeSpan.FromSeconds(3));

            // Create another command:
            var command2 = new ReceiverCommand
            {
                KeyValue = new KeyValuePair <CommandName, object>(CommandName.VolumeStatus, null)
            };

            // Send a command and listen for the receiver to respond.
            var result2 = await _receiverController.SendReceiverCommandAndTryWaitForResponseAsync(command2, TimeSpan.FromSeconds(2));

            Console.WriteLine(FormateNiceStringFromResponse(result2));

            await Task.Delay(TimeSpan.FromSeconds(5));

            // Create another command:
            var command3 = new ReceiverCommand
            {
                KeyValue = new KeyValuePair <CommandName, object>(CommandName.VolumeControl, UpDown.Up)
            };

            // Send a command and listen for the receiver to respond.
            var result3 = await _receiverController.SendReceiverCommandAndTryWaitForResponseAsync(command3, TimeSpan.FromSeconds(2));

            Console.WriteLine(FormateNiceStringFromResponse(result3));


            await Task.Delay(TimeSpan.FromSeconds(15));

            Console.WriteLine("Wait one");

            // Wait here until the user presses the ctrl-C key - alternative to Console.ReadLine();
            WaitHandle.WaitOne();

            Console.WriteLine("...End...");
            Console.ReadLine();
        }