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)); } }
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(); }