Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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));
            }
        }