File indexing completed on 2024-04-28 15:09:53

0001 /*
0002     SPDX-FileCopyrightText: 2012 Jasem Mutlaq <mutlaqja@ikarustech.com>
0003     SPDX-FileCopyrightText: 2021 Wolfgang Reissenberger <sterne-jaeger@openfuture.de>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #include "guidestatewidget.h"
0009 
0010 namespace Ekos
0011 {
0012 GuideStateWidget::GuideStateWidget(QWidget * parent) : QWidget(parent)
0013 {
0014     setupUi(this);
0015     init();
0016 }
0017 
0018 void GuideStateWidget::init()
0019 {
0020     // Guiding state
0021     if (idlingStateLed == nullptr)
0022     {
0023         idlingStateLed = new KLed(Qt::gray, KLed::Off, KLed::Flat, KLed::Circular, this);
0024         idlingStateLed->setObjectName("idlingStateLed");
0025         guideStateLayout->insertWidget(0, idlingStateLed);
0026     }
0027     if (preparingStateLed == nullptr)
0028     {
0029         preparingStateLed = new KLed(Qt::gray, KLed::Off, KLed::Flat, KLed::Circular, this);
0030         preparingStateLed->setObjectName("preparingStateLed");
0031         guideStateLayout->insertWidget(2, preparingStateLed);
0032     }
0033     if (runningStateLed == nullptr)
0034     {
0035         runningStateLed = new KLed(Qt::gray, KLed::Off, KLed::Flat, KLed::Circular, this);
0036         runningStateLed->setObjectName("runningStateLed");
0037         guideStateLayout->insertWidget(4, runningStateLed);
0038     }
0039 }
0040 
0041 void GuideStateWidget::updateGuideStatus(GuideState state)
0042 {
0043     idlingStateLed->off();
0044     preparingStateLed->off();
0045     runningStateLed->off();
0046     switch (state)
0047     {
0048         case GUIDE_DISCONNECTED:
0049             idlingStateLed->setColor(Qt::red);
0050             idlingStateLed->on();
0051             break;
0052         case GUIDE_CONNECTED:
0053             idlingStateLed->setColor(Qt::green);
0054             preparingStateLed->setColor(Qt::gray);
0055             runningStateLed->setColor(Qt::gray);
0056             idlingStateLed->on();
0057             break;
0058         case GUIDE_CAPTURE:
0059         case GUIDE_LOOPING:
0060         case GUIDE_DARK:
0061         case GUIDE_SUBFRAME:
0062             preparingStateLed->setColor(Qt::green);
0063             runningStateLed->setColor(Qt::gray);
0064             preparingStateLed->on();
0065             break;
0066         case GUIDE_STAR_SELECT:
0067         case GUIDE_CALIBRATING:
0068             preparingStateLed->setColor(Qt::yellow);
0069             runningStateLed->setColor(Qt::gray);
0070             preparingStateLed->on();
0071             break;
0072         case GUIDE_CALIBRATION_ERROR:
0073             preparingStateLed->setColor(Qt::red);
0074             runningStateLed->setColor(Qt::red);
0075             preparingStateLed->on();
0076             break;
0077         case GUIDE_CALIBRATION_SUCCESS:
0078             preparingStateLed->setColor(Qt::green);
0079             runningStateLed->setColor(Qt::yellow);
0080             preparingStateLed->on();
0081             break;
0082         case GUIDE_GUIDING:
0083             preparingStateLed->setColor(Qt::green);
0084             runningStateLed->setColor(Qt::green);
0085             runningStateLed->setState(KLed::On);
0086             break;
0087         case GUIDE_MANUAL_DITHERING:
0088         case GUIDE_DITHERING:
0089         case GUIDE_DITHERING_SETTLE:
0090         case GUIDE_REACQUIRE:
0091         case GUIDE_SUSPENDED:
0092             runningStateLed->setColor(Qt::yellow);
0093             runningStateLed->setState(KLed::On);
0094             break;
0095         case GUIDE_DITHERING_ERROR:
0096         case GUIDE_ABORTED:
0097             idlingStateLed->setColor(Qt::green);
0098             preparingStateLed->setColor(Qt::red);
0099             runningStateLed->setColor(Qt::red);
0100             idlingStateLed->on();
0101             break;
0102         case GUIDE_IDLE:
0103         default:
0104             idlingStateLed->setColor(Qt::green);
0105             idlingStateLed->on();
0106             break;
0107     }
0108 
0109 }
0110 }