public static async Task <Device> PowerOnAsync(string liveId, int times = 5, int delay = 1000, string addressOrHostname = null) { using (var messageTransport = new MessageTransport(addressOrHostname)) { var poweronRequestMessage = new PowerOnMessage { LiveId = liveId }; for (var i = 0; i < times; i++) { await messageTransport.SendAsync(poweronRequestMessage); await Task.Delay(delay); } var presenceRequestMessage = new PresenceRequestMessage(); var response = await TaskExtensions.WithRetries(() => messageTransport.WaitForMessageAsync <PresenceResponseMessage>(pingTimeout, () => messageTransport.SendAsync(presenceRequestMessage).GetAwaiter().GetResult()), pingRetries); return(new Device(response)); } }
public static async Task <Device> PowerOnAsync(string addressOrHostname, string liveId, int times = 5, int delay = 1000) { using (var messageTransport = new MessageTransport(addressOrHostname)) { var requestMessage = new PowerOnMessage { LiveId = liveId }; for (var i = 0; i < times; i++) { await messageTransport.SendAsync(requestMessage); await Task.Delay(delay); } return(await PingAsync(addressOrHostname)); } }