File indexing completed on 2025-04-27 12:55:57
0001 /* 0002 SPDX-FileCopyrightText: 2022 Hy Murveit <hy@murveit.com> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #include "polaralignwidget.h" 0007 0008 namespace Ekos 0009 { 0010 PolarAlignWidget::PolarAlignWidget(QWidget * parent) : QWidget(parent) 0011 { 0012 setupUi(this); 0013 init(); 0014 } 0015 0016 namespace 0017 { 0018 void initLed(KLed *led) 0019 { 0020 led->setColor(Qt::gray); 0021 led->setLook(KLed::Flat); 0022 led->setShape(KLed::Circular); 0023 led->setState(KLed::Off); 0024 } 0025 } // namespace 0026 0027 void PolarAlignWidget::init() 0028 { 0029 initLed(PAcapture1Led); 0030 initLed(PAcapture2Led); 0031 initLed(PAcapture3Led); 0032 initLed(PAslew1Led); 0033 initLed(PAslew2Led); 0034 initLed(PAsolve1Led); 0035 initLed(PAsolve2Led); 0036 initLed(PAsolve3Led); 0037 initLed(PAsetupLed); 0038 initLed(PAadjustLed); 0039 } 0040 0041 void PolarAlignWidget::setPreviousGreen(PAState state) 0042 { 0043 switch (state) 0044 { 0045 case ADJUST: 0046 PAsetupLed->setColor(Qt::green); 0047 PAsetupLed->on(); 0048 // fall through 0049 case SETUP: 0050 PAsolve3Led->setColor(Qt::green); 0051 PAsolve3Led->on(); 0052 // fall through 0053 case SOLVE3: 0054 PAcapture3Led->setColor(Qt::green); 0055 PAcapture3Led->on(); 0056 // fall through 0057 case CAPTURE3: 0058 PAslew2Led->setColor(Qt::green); 0059 PAslew2Led->on(); 0060 // fall through 0061 case SLEW2: 0062 PAsolve2Led->setColor(Qt::green); 0063 PAsolve2Led->on(); 0064 // fall through 0065 case SOLVE2: 0066 PAcapture2Led->setColor(Qt::green); 0067 PAcapture2Led->on(); 0068 // fall through 0069 case CAPTURE2: 0070 PAslew1Led->setColor(Qt::green); 0071 PAslew1Led->on(); 0072 // fall through 0073 case SLEW1: 0074 PAsolve1Led->setColor(Qt::green); 0075 PAsolve1Led->on(); 0076 // fall through 0077 case SOLVE1: 0078 PAcapture1Led->setColor(Qt::green); 0079 PAcapture1Led->on(); 0080 // fall through 0081 case CAPTURE1: 0082 break; 0083 default: 0084 break; 0085 } 0086 } 0087 0088 void PolarAlignWidget::updatePAHStage(PolarAlignmentAssistant::Stage stage) 0089 { 0090 switch(stage) 0091 { 0092 case PolarAlignmentAssistant::PAH_IDLE: 0093 init(); 0094 break; 0095 case PolarAlignmentAssistant::PAH_FIRST_CAPTURE: 0096 update(CAPTURE1); 0097 break; 0098 case PolarAlignmentAssistant::PAH_FIRST_SOLVE: 0099 update(SOLVE1); 0100 break; 0101 case PolarAlignmentAssistant::PAH_FIRST_ROTATE: 0102 update(SLEW1); 0103 break; 0104 case PolarAlignmentAssistant::PAH_SECOND_CAPTURE: 0105 update(CAPTURE2); 0106 break; 0107 case PolarAlignmentAssistant::PAH_SECOND_SOLVE: 0108 update(SOLVE2); 0109 break; 0110 case PolarAlignmentAssistant::PAH_SECOND_ROTATE: 0111 update(SLEW2); 0112 break; 0113 case PolarAlignmentAssistant::PAH_THIRD_CAPTURE: 0114 update(CAPTURE3); 0115 break; 0116 case PolarAlignmentAssistant::PAH_THIRD_SOLVE: 0117 update(SOLVE3); 0118 break; 0119 case PolarAlignmentAssistant::PAH_STAR_SELECT: 0120 update(SETUP); 0121 break; 0122 case PolarAlignmentAssistant::PAH_REFRESH: 0123 update(ADJUST); 0124 break; 0125 case PolarAlignmentAssistant::PAH_POST_REFRESH: 0126 init(); 0127 break; 0128 0129 // These are ignored in the widget. 0130 case PolarAlignmentAssistant::PAH_FIRST_SETTLE: 0131 case PolarAlignmentAssistant::PAH_SECOND_SETTLE: 0132 case PolarAlignmentAssistant::PAH_FIND_CP: 0133 break; 0134 } 0135 } 0136 0137 void PolarAlignWidget::update(PAState state) 0138 { 0139 // turn off all leds 0140 init(); 0141 0142 switch (state) 0143 { 0144 case CAPTURE1: 0145 PAcapture1Led->setColor(Qt::yellow); 0146 PAcapture1Led->on(); 0147 break; 0148 case SOLVE1: 0149 setPreviousGreen(SOLVE1); 0150 PAsolve1Led->setColor(Qt::yellow); 0151 PAsolve1Led->on(); 0152 break; 0153 case SLEW1: 0154 setPreviousGreen(SLEW1); 0155 PAslew1Led->setColor(Qt::yellow); 0156 PAslew1Led->on(); 0157 break; 0158 case CAPTURE2: 0159 setPreviousGreen(CAPTURE2); 0160 PAcapture2Led->setColor(Qt::yellow); 0161 PAcapture2Led->on(); 0162 break; 0163 case SOLVE2: 0164 setPreviousGreen(SOLVE2); 0165 PAsolve2Led->setColor(Qt::yellow); 0166 PAsolve2Led->on(); 0167 break; 0168 case SLEW2: 0169 setPreviousGreen(SLEW2); 0170 PAslew2Led->setColor(Qt::yellow); 0171 PAslew2Led->on(); 0172 break; 0173 case CAPTURE3: 0174 setPreviousGreen(CAPTURE3); 0175 PAcapture3Led->setColor(Qt::yellow); 0176 PAcapture3Led->on(); 0177 break; 0178 case SOLVE3: 0179 setPreviousGreen(SOLVE3); 0180 PAsolve3Led->setColor(Qt::yellow); 0181 PAsolve3Led->on(); 0182 break; 0183 case SETUP: 0184 setPreviousGreen(SETUP); 0185 PAsetupLed->setColor(Qt::yellow); 0186 PAsetupLed->on(); 0187 break; 0188 case ADJUST: 0189 setPreviousGreen(ADJUST); 0190 PAadjustLed->setColor(Qt::yellow); 0191 PAadjustLed->on(); 0192 break; 0193 default: 0194 break; 0195 } 0196 } 0197 }