powerQuery() публичный Метод

Check power state of Projector. Returns unknown in case of an error
public powerQuery ( ) : PowerCommand.PowerStatus
Результат PowerCommand.PowerStatus
Пример #1
0
        private void connect_Click(object sender, EventArgs e)
        {
            System.Net.IPAddress address = null;

            if (System.Net.IPAddress.TryParse(ipAddress.Text, out address))
            {
                Status.Text = "Connecting to " + address.ToString();
                c = new PJLinkConnection(ipAddress.Text, "JBMIAProjectorLink");

                LampStatusCommand l = new LampStatusCommand();
                int hours = l.getHoursOfLamp(1);
                string status = l.getStatusOfLamp(1).ToString();
                string power = c.powerQuery().ToString();
                ProjectorInfo pi = new ProjectorInfo();
                Status.Text = "Connected. \n Projector is now: " + power + "\n" + "\nstatus: " + status + "\nlamphours: " + hours;
                Status.Text += "\nFan:" + pi.FanStatus;
                Status.Text += " Lamp:" + pi.LampStatus;
                Status.Text += " Input:" + pi.Input;
                Status.Text += "\nCover:" + pi.CoverStatus;
                Status.Text += " Filter:" + pi.FilterStatus;
                Status.Text += " NumLamps:" + pi.NumOfLamps;
                Status.Text += "\nOthers:" + pi.PowerStatus;

            }
            else
            {
                Status.Text = "Invalid IP Address Entered";
            }
        }
        async void _timerPowerCheck_Elapsed(object source, object e)
        {
            await Task.Run(async() =>
            {
                try
                {
                    rv.PJLinkConnection c            = connectBeamer();
                    PowerCommand.PowerStatus powStat = PowerCommand.PowerStatus.UNKNOWN;
                    try
                    {
                        powStat = await c.powerQuery();
                    }
                    catch (Exception)
                    {
                        try
                        {
                            powStat = await c.powerQuery();
                        }
                        catch (Exception)
                        {
                        }
                    }
                    switch (powStat)
                    {
                    case PowerCommand.PowerStatus.OFF:
                    case PowerCommand.PowerStatus.COOLING:
                    case PowerCommand.PowerStatus.UNKNOWN:
                        await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                        {
                            this.btnPwr.Background = btndefBack;
                            this.btnMute.IsEnabled = false;
                            _startupRoundCntr++;
                            if (_timerPowerCheck.Interval == new TimeSpan(0, 0, 5) && powStat != PowerCommand.PowerStatus.UNKNOWN)
                            {
                                _timerPowerCheck.Interval = new TimeSpan(0, 1, 0);     // 1min
                                _startupRoundCntr         = 0;
                                _timerPowerBlink.Stop();
                                this.btnPwr.Background = btndefBack;
                            }
                        });
                        break;

                    case PowerCommand.PowerStatus.ON:
                    case PowerCommand.PowerStatus.WARMUP:
                        await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() =>
                        {
                            this._timerPowerBlink.Stop();
                            this.btnPwr.Background = new SolidColorBrush(Colors.LawnGreen);
                            this.btnMute.IsEnabled = true;
                            AVMuteCommand qcmd     = new AVMuteCommand(AVMuteCommand.Action.QUERYSTATE);
                            if (await c.sendCommand(qcmd) == Command.Response.SUCCESS)
                            {
                                if (qcmd.Status == AVMuteCommand.Action.MUTE)
                                {
                                    _timerMuteBlink.Start();
                                }
                                else
                                {
                                    _timerMuteBlink.Stop();
                                    btnMute.Background = btndefBack;
                                }
                            }
                            _startupRoundCntr++;
                            if (_timerPowerCheck.Interval == new TimeSpan(0, 0, 5) && _startupRoundCntr == 10)
                            {
                                _timerPowerCheck.Interval = new TimeSpan(0, 1, 0);     // 1min
                                _startupRoundCntr         = 0;
                                _timerPowerBlink.Stop();
                                this.btnPwr.Background = new SolidColorBrush(Colors.LawnGreen);
                            }
                        });
                        break;
                    }
                    await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                    {
                        if (_timerPowerCheck.Interval == new TimeSpan(0, 0, 5) && _startupRoundCntr == 10)
                        {
                            _timerPowerCheck.Interval = new TimeSpan(0, 1, 0); // 1min
                            _startupRoundCntr         = 0;
                            _timerPowerBlink.Stop();
                            this.btnPwr.Background = btndefBack;
                        }
                    });
                }
                catch (Exception)
                {
                }
            });
        }
        private async void btnPwr_Click(object sender, RoutedEventArgs e)
        {
            await Task.Run(async() =>
            {
                try
                {
                    await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                    {
                        this.btnPwr.Background = new SolidColorBrush(Colors.LawnGreen);
                        this.btnMute.IsEnabled = false;
                        _timerPowerBlink.Start();
                    });

                    rv.PJLinkConnection c            = connectBeamer();
                    PowerCommand.PowerStatus powStat = PowerCommand.PowerStatus.UNKNOWN;
                    try
                    {
                        powStat = await c.powerQuery();
                    }
                    catch (Exception)
                    {
                        try
                        {
                            powStat = await c.powerQuery();
                        }
                        catch (Exception)
                        {
                        }
                    }
                    switch (powStat)
                    {
                    case PowerCommand.PowerStatus.OFF:
                    case PowerCommand.PowerStatus.COOLING:
                    case PowerCommand.PowerStatus.UNKNOWN:
                        await c.turnOn();
                        await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                        {
                            _timerPowerCheck.Interval = new TimeSpan(0, 0, 5);     //10 sec;
                        });

                        break;

                    case PowerCommand.PowerStatus.ON:
                    case PowerCommand.PowerStatus.WARMUP:
                        await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                        {
                            this.btnPwr.Background = btndefBack;
                            this.btnMute.IsEnabled = false;
                            _timerMuteBlink.Stop();
                            _timerPowerBlink.Stop();
                            btnMute.Background = btndefBack;
                        });
                        await c.turnOff();
                        break;
                    }
                }
                catch (Exception)
                {
                }
            });
        }
        private async void Page_Loaded(object sender, RoutedEventArgs e)
        {
            if (!LoadConfig())
            {
                tmrTimer.Stop();
                txtTime.Text       = "Invalid Config";
                btnMute.Visibility = Visibility.Collapsed;
                btnPwr.Visibility  = Visibility.Collapsed;
                btnInfo.Visibility = Visibility.Collapsed;
            }
            btndefBack = btnPwr.Background;

            // Hook up the Elapsed event for the timer.
            _timerMuteBlink.Tick += _timerMuteBlink_Elapsed;

            // Set the Interval to 0.5 seconds (500 milliseconds).
            _timerMuteBlink.Interval = new TimeSpan(0, 0, 0, 0, 500);

            _timerPowerCheck.Tick    += _timerPowerCheck_Elapsed;
            _timerPowerCheck.Interval = new TimeSpan(0, 1, 0); // 1min
            _timerPowerCheck.Start();

            _timerPowerBlink.Tick    += _timerPowerBlink_Elapsed;
            _timerPowerBlink.Interval = new TimeSpan(0, 0, 0, 0, 500); // 0.5sec

            rv.PJLinkConnection      c       = connectBeamer();
            PowerCommand.PowerStatus powStat = PowerCommand.PowerStatus.UNKNOWN;
            try
            {
                powStat = await c.powerQuery();
            }
            catch (Exception)
            {
                try
                {
                    powStat = await c.powerQuery();
                }
                catch (Exception)
                {
                }
            }
            switch (powStat)
            {
            case PowerCommand.PowerStatus.OFF:
            case PowerCommand.PowerStatus.COOLING:
            case PowerCommand.PowerStatus.UNKNOWN:
                this.btnPwr.Background = btndefBack;
                this.btnMute.IsEnabled = false;
                break;

            case PowerCommand.PowerStatus.ON:
            case PowerCommand.PowerStatus.WARMUP:
                this.btnPwr.Background = new SolidColorBrush(Colors.LawnGreen);
                this.btnMute.IsEnabled = true;
                try
                {
                    AVMuteCommand qcmd = new AVMuteCommand(AVMuteCommand.Action.QUERYSTATE);
                    if (await c.sendCommand(qcmd) == Command.Response.SUCCESS)
                    {
                        if (qcmd.Status == AVMuteCommand.Action.MUTE)
                        {
                            _timerMuteBlink.Start();
                        }
                        else
                        {
                            _timerMuteBlink.Stop();
                        }
                    }
                }
                catch (Exception)
                {
                }
                break;
            }
        }