• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

kstars

  • sources
  • kde-4.12
  • kdeedu
  • kstars
  • kstars
  • ekos
  • guide
rcalibration.cpp
Go to the documentation of this file.
1 /* Ekos guide tool
2  Copyright (C) 2012 Andrew Stepanenko
3 
4  Modified by Jasem Mutlaq <mutlaqja@ikarustech.com> for KStars.
5 
6  This application is free software; you can redistribute it and/or
7  modify it under the terms of the GNU General Public
8  License as published by the Free Software Foundation; either
9  version 2 of the License, or (at your option) any later version.
10  */
11 
12 #include "rcalibration.h"
13 
14 #include <unistd.h>
15 #include <time.h>
16 #include <assert.h>
17 
18 #include <KMessageBox>
19 
20 #include "gmath.h"
21 #include "vect.h"
22 
23 #include "../guide.h"
24 #include "../fitsviewer/fitsviewer.h"
25 #include "../fitsviewer/fitsview.h"
26 
27 #undef MIN
28 #undef MAX
29 
30 #define MIN(a, b) (((a) < (b)) ? (a) : (b))
31 #define MAX(a, b) (((a) > (b)) ? (a) : (b))
32 
33 rcalibration::rcalibration(Ekos::Guide *parent)
34  : QWidget(parent)
35 {
36  int i;
37 
38  ui.setupUi(this);
39 
40  setWindowTitle(i18n("Calibration"));
41 
42  pmath = NULL;
43 
44  calibrationStage = CAL_CAPTURE_IMAGE;
45 
46  pmain_wnd = parent;
47 
48  is_started = false;
49  axis = GUIDE_RA;
50  auto_drift_time = 5;
51 
52  start_x1 = start_y1 = 0;
53  end_x1 = end_y1 = 0;
54  start_x2 = start_y2 = 0;
55  end_x2 = end_y2 = 0;
56 
57  ui.checkBox_AutoMode->setChecked( true );
58  ui.spinBox_DriftTime->setVisible( true );
59  ui.spinBox_DriftTime->setValue( auto_drift_time );
60  ui.progressBar->setVisible( false );
61  ui.spinBox_ReticleAngle->setMaximum( 360 );
62 
63  for( i = 0;guide_squares[i].size != -1;++i )
64  ui.comboBox_SquareSize->addItem( QString().setNum( guide_squares[i].size ) );
65 
66  ui.comboBox_SquareSize->setCurrentIndex(1);
67 
68  // connect ui
69  connect( ui.comboBox_SquareSize, SIGNAL(activated(int)), this, SLOT(onSquareSizeChanged(int)) );
70  connect( ui.spinBox_ReticleX, SIGNAL(valueChanged(double)), this, SLOT(onReticleXChanged(double)) );
71  connect( ui.spinBox_ReticleY, SIGNAL(valueChanged(double)), this, SLOT(onReticleYChanged(double)) );
72  connect( ui.spinBox_ReticleAngle, SIGNAL(valueChanged(double)), this, SLOT(onReticleAngChanged(double)) );
73  connect( ui.pushButton_StartCalibration, SIGNAL(clicked()), this, SLOT(onStartReticleCalibrationButtonClick()) );
74  connect( ui.checkBox_AutoMode, SIGNAL(stateChanged(int)), this, SLOT(onEnableAutoMode(int)) );
75 
76  connect( ui.captureB, SIGNAL(clicked()), this, SLOT(capture()));
77 
78  idleColor.setRgb(200,200,200);
79  okColor = Qt::green;
80  busyColor = Qt::yellow;
81  alertColor = Qt::red;
82 
83  fill_interface();
84 
85 
86  //connect( pmain_wnd->m_video, SIGNAL(calibrationFinished()), this, SLOT(onVideoCalibrationFinished()) );
87 
88 }
89 
90 
91 rcalibration::~rcalibration()
92 {
93 
94 }
95 
96 
97 
98 
99 
100 void rcalibration::fill_interface( void )
101 {
102  double rx, ry, rang;
103 
104  if( !pmath )
105  return;
106 
107  pmath->get_reticle_params( &rx, &ry, &rang );
108 
109  ui.comboBox_SquareSize->setCurrentIndex( pmath->get_square_index() );
110  ui.spinBox_ReticleX->setValue( rx );
111  ui.spinBox_ReticleY->setValue( ry );
112  ui.spinBox_ReticleAngle->setValue( rang );
113  ui.progressBar->setValue( 0 );
114 
115  if (is_calibrating() && ui.checkBox_AutoMode->isChecked())
116  ui.progressBar->setVisible(true);
117  else
118  ui.progressBar->setVisible(false);
119 
120 }
121 
122 
123 bool rcalibration::set_video_params( int vid_wd, int vid_ht )
124 {
125  if( vid_wd <= 0 || vid_ht <= 0 )
126  return false;
127 
128  ui.spinBox_ReticleX->setMaximum( (double)vid_wd );
129  ui.spinBox_ReticleY->setMaximum( (double)vid_ht );
130 
131  return true;
132 }
133 
134 
135 void rcalibration::update_reticle_pos( double x, double y )
136 {
137  if( ui.spinBox_ReticleX->value() == x && ui.spinBox_ReticleY->value() == y )
138  return;
139 
140  ui.spinBox_ReticleX->setValue( x );
141  ui.spinBox_ReticleY->setValue( y );
142 }
143 
144 void rcalibration::set_math( cgmath *math )
145 {
146  assert( math );
147  pmath = math;
148 
149  //pmath->calc_and_set_reticle2( 100, 100, 200, 90, 100, 100, 60, 200);
150 }
151 
152 
153 void rcalibration::onSquareSizeChanged( int index )
154 {
155  if( !pmath )
156  return;
157 
158  pmath->resize_square( index );
159 
160 
161 }
162 
163 
164 void rcalibration::onEnableAutoMode( int state )
165 {
166  ui.spinBox_DriftTime->setVisible( state == Qt::Checked );
167  ui.progressBar->setVisible( state == Qt::Checked );
168 }
169 
170 
171 void rcalibration::onReticleXChanged( double val )
172 {
173  double x, y, ang;
174 
175  if( !pmath )
176  return;
177 
178  pmath->get_reticle_params( &x, &y, &ang );
179  pmath->set_reticle_params( val, y, ang );
180 
181 
182 
183 }
184 
185 
186 void rcalibration::onReticleYChanged( double val )
187 {
188  double x, y, ang;
189 
190  if( !pmath )
191  return;
192 
193  pmath->get_reticle_params( &x, &y, &ang );
194  pmath->set_reticle_params( x, val, ang );
195 }
196 
197 
198 void rcalibration::onReticleAngChanged( double val )
199 {
200  double x, y, ang;
201 
202  if( !pmath )
203  return;
204 
205  pmath->get_reticle_params( &x, &y, &ang );
206  pmath->set_reticle_params( x, y, val );
207 }
208 
209 
210 void rcalibration::onStartReticleCalibrationButtonClick()
211 {
212 
213  if (!pmath)
214  return;
215 
216  bool ccdInfo=true, scopeInfo=true;
217  QString errMsg;
218  double ccd_w, ccd_h, g_aperture, g_focal;
219 
220  pmath->get_guider_params(&ccd_w, &ccd_h, &g_aperture, &g_focal);
221 
222  if (ccd_w == 0 || ccd_h == 0)
223  {
224  errMsg = "CCD";
225  ccdInfo = false;
226  }
227 
228  if (g_aperture == 0 || g_focal == 0)
229  {
230  scopeInfo = false;
231  if (ccdInfo == false)
232  errMsg += " & Telescope";
233  else
234  errMsg += "Telescope";
235  }
236 
237  if (ccdInfo == false || scopeInfo == false)
238  {
239  KMessageBox::error(this, i18n("%1 info are missing. Please set the values in INDI Control Panel.", errMsg));
240  return;
241  }
242 
243  if (pmath->get_image())
244  disconnect(pmath->get_image(), SIGNAL(guideStarSelected(int,int)), this, SLOT(guideStarSelected(int, int)));
245 
246  pmath->set_lost_star(false);
247  pmain_wnd->capture();
248 
249  // manual
250  if( ui.checkBox_AutoMode->checkState() != Qt::Checked )
251  {
252  calibrate_reticle_manual();
253  return;
254  }
255 
256  ui.progressBar->setVisible(true);
257 
258  calibrationStage = CAL_START;
259 
260  // automatic
261  if( ui.checkBox_TwoAxis->checkState() == Qt::Checked )
262  calibrate_reticle_by_ra_dec(false);
263  else
264  calibrate_reticle_by_ra_dec(true);
265 }
266 
267 void rcalibration::process_calibration()
268 {
269  if (pmath->is_lost_star())
270  {
271  calibrationStage = CAL_ERROR;
272  ui.startCalibrationLED->setColor(alertColor);
273  KMessageBox::error(NULL, i18n("Lost track of the guide star. Try increasing the square size or reducing pulse duration."));
274  reset();
275  return;
276  }
277 
278  switch (calibrationType)
279  {
280  case CAL_NONE:
281  break;
282 
283  case CAL_MANUAL:
284  calibrate_reticle_manual();
285  break;
286 
287  case CAL_RA_AUTO:
288  calibrate_reticle_by_ra_dec(true);
289  break;
290 
291  case CAL_RA_DEC_AUTO:
292  calibrate_reticle_by_ra_dec(false);
293  break;
294  }
295 }
296 
297 bool rcalibration::is_calibrating()
298 {
299  if (calibrationStage >= CAL_START)
300  return true;
301 
302  return false;
303 }
304 
305 void rcalibration::reset()
306 {
307  is_started = false;
308  ui.pushButton_StartCalibration->setText( i18n("Start") );
309  ui.pushButton_StartCalibration->setEnabled(true);
310  ui.progressBar->setVisible(false);
311  connect(pmath->get_image(), SIGNAL(guideStarSelected(int,int)), this, SLOT(guideStarSelected(int, int)));
312 
313 }
314 
315 void rcalibration::calibrate_reticle_manual( void )
316 {
317  //----- manual mode ----
318  // get start point
319 
320  calibrationType = CAL_MANUAL;
321 
322  if( !is_started )
323  {
324  if( ui.checkBox_TwoAxis->checkState() == Qt::Checked )
325  {
326  ui.pushButton_StartCalibration->setText( i18n("Stop GUIDE_RA") );
327  }
328  else
329  {
330  ui.pushButton_StartCalibration->setText( i18n("Stop") );
331  }
332  pmain_wnd->appendLogText(i18n("Drift scope in RA. Press stop when done."));
333 
334  pmath->get_star_screen_pos( &start_x1, &start_y1 );
335 
336  axis = GUIDE_RA;
337  is_started = true;
338  }
339  else // get end point and calc orientation
340  {
341  if( ui.checkBox_TwoAxis->checkState() == Qt::Checked )
342  {
343  if( axis == GUIDE_RA )
344  {
345  pmath->get_star_screen_pos( &end_x1, &end_y1 );
346 
347  start_x2 = end_x1;
348  start_y2 = end_y1;
349 
350  axis = GUIDE_DEC;
351 
352  ui.pushButton_StartCalibration->setText( i18n("Stop GUIDE_DEC") );
353  pmain_wnd->appendLogText(i18n("Drift scope in DEC. Press Stop when done."));
354  return;
355  }
356  else
357  {
358  pmath->get_star_screen_pos( &end_x2, &end_y2 );
359  // calc orientation
360  if( pmath->calc_and_set_reticle2( start_x1, start_y1, end_x1, end_y1, start_x2, start_y2, end_x2, end_y2 ) )
361  {
362  fill_interface();
363  pmain_wnd->appendLogText(i18n("Calibration completed."));
364  calibrationStage = CAL_FINISH;
365  }
366  else
367  {
368  QMessageBox::warning( this, i18n("Error"), i18n("Calibration rejected. Start drift is too short."), QMessageBox::Ok );
369  calibrationStage = CAL_ERROR;
370  }
371  }
372  }
373  else
374  {
375  pmath->get_star_screen_pos( &end_x1, &end_y1 );
376 
377  if( pmath->calc_and_set_reticle( start_x1, start_y1, end_x1, end_y1 ) )
378  {
379  calibrationStage = CAL_FINISH;
380  fill_interface();
381  pmain_wnd->appendLogText(i18n("Calibration completed."));
382  }
383  else
384  {
385  calibrationStage = CAL_ERROR;
386  QMessageBox::warning( this, i18n("Error"), i18n("Calibration rejected. Start drift is too short."), QMessageBox::Ok );
387  }
388  }
389 
390  reset();
391 
392  }
393 }
394 
395 void rcalibration::calibrate_reticle_by_ra_dec( bool ra_only )
396 {
397  bool auto_term_ok = false;
398 
399 
400  if( !pmath )
401  return;
402 
403  int pulseDuration = ui.spinBox_Pulse->value();
404 
405  if (ra_only)
406  calibrationType = CAL_RA_AUTO;
407  else
408  calibrationType = CAL_RA_DEC_AUTO;
409 
410  switch(calibrationStage)
411  {
412 
413  case CAL_START:
414  //----- automatic mode -----
415  auto_drift_time = ui.spinBox_DriftTime->value();
416 
417  if (ra_only)
418  turn_back_time = auto_drift_time*2 + auto_drift_time/2;
419  else
420  turn_back_time = auto_drift_time*5;
421  iterations = 0;
422 
423  ui.progressBar->setMaximum( turn_back_time );
424 
425  ui.progressBar->setValue( 0 );
426  ui.pushButton_StartCalibration->setEnabled( false );
427  pmain_wnd->appendLogText(i18n("GUIDE_RA Drifting..."));
428 
429  // get start point
430  //pmath->get_star_screen_pos( &start_x1, &start_y1 );
431 
432  start_x1 = ui.spinBox_ReticleX->value();
433  start_y1 = ui.spinBox_ReticleY->value();
434 
435  //qDebug() << "Start X1 " << start_x1 << " Start Y1 " << start_y1 << endl;
436 
437  pmain_wnd->do_pulse( RA_INC_DIR, pulseDuration );
438 
439  iterations++;
440 
441  ui.progressBar->setValue( iterations );
442 
443  calibrationStage = CAL_RA_INC;
444 
445  ui.startCalibrationLED->setColor(busyColor);
446 
447  break;
448 
449  case CAL_RA_INC:
450  pmain_wnd->do_pulse( RA_INC_DIR, pulseDuration );
451  iterations++;
452  ui.progressBar->setValue( iterations );
453 
454  //qDebug() << "Iteration " << iterations << " and auto drift time is " << auto_drift_time << endl;
455 
456  if (iterations == auto_drift_time)
457  calibrationStage = CAL_RA_DEC;
458 
459  break;
460 
461  case CAL_RA_DEC:
462  {
463  if (iterations == auto_drift_time)
464  {
465  pmain_wnd->do_pulse( RA_DEC_DIR, pulseDuration );
466  iterations++;
467 
468  ui.progressBar->setValue( iterations );
469  break;
470  }
471  else if (iterations == (auto_drift_time+1))
472  {
473  pmath->get_star_screen_pos( &end_x1, &end_y1 );
474  //qDebug() << "End X1 " << end_x1 << " End Y1 " << end_y1 << endl;
475 
476  phi = pmath->calc_phi( start_x1, start_y1, end_x1, end_y1 );
477  ROT_Z = RotateZ( -M_PI*phi/180.0 ); // derotates...
478 
479  pmain_wnd->appendLogText(i18n("Running..."));
480  }
481 
482  // accelerate GUIDE_RA drive to return to start position
483  //pmain_wnd->do_pulse( RA_DEC_DIR, turn_back_time*1000 );
484 
485  //----- Z-check (new!) -----
486  double cur_x, cur_y;
487  pmath->get_star_screen_pos( &cur_x, &cur_y );
488 
489  //qDebug() << "Cur X1 " << cur_x << " Cur Y1 " << cur_y << endl;
490 
491  Vector star_pos = Vector( cur_x, cur_y, 0 ) - Vector( start_x1, start_y1, 0 );
492  star_pos.y = -star_pos.y;
493  star_pos = star_pos * ROT_Z;
494 
495  //qDebug() << "Star x pos is " << star_pos.x << endl;
496 
497  // start point reached... so exit
498  if( star_pos.x < 1.5 )
499  {
500  pmath->do_processing();
501  auto_term_ok = true;
502  }
503 
504  //----- Z-check end -----
505 
506  if( !auto_term_ok )
507  {
508  if (iterations < turn_back_time)
509  {
510  pmain_wnd->do_pulse( RA_DEC_DIR, pulseDuration );
511  iterations++;
512 
513  ui.progressBar->setValue( iterations );
514  break;
515  }
516 
517  calibrationStage = CAL_ERROR;
518  QMessageBox::warning( this, i18n("Warning"), i18np("GUIDE_RA: Scope cannot reach the start point after %1 iteration.\nPossible mount or drive problems...", "GUIDE_RA: Scope cannot reach the start point after %1 iterations.\nPossible mount or drive problems...", turn_back_time), QMessageBox::Ok );
519  reset();
520  break;
521  }
522 
523  if (ra_only == false)
524  {
525  calibrationStage = CAL_DEC_INC;
526  start_x2 = cur_x;
527  start_y2 = cur_y;
528 
529  // qDebug() << "Start X2 " << start_x2 << " start Y2 " << start_y2 << endl;
530 
531  pmain_wnd->do_pulse( DEC_INC_DIR, pulseDuration );
532  iterations++;
533  dec_iterations = 1;
534  ui.progressBar->setValue( iterations );
535  pmain_wnd->appendLogText(i18n("GUIDE_DEC drifting..."));
536  break;
537  }
538  // calc orientation
539  if( pmath->calc_and_set_reticle( start_x1, start_y1, end_x1, end_y1 ) )
540  {
541  calibrationStage = CAL_FINISH;
542  fill_interface();
543  pmain_wnd->appendLogText(i18n("Calibration completed."));
544  ui.startCalibrationLED->setColor(okColor);
545 
546  }
547  else
548  {
549  QMessageBox::warning( this, i18n("Error"), i18n("Calibration rejected. Start drift is too short."), QMessageBox::Ok );
550  ui.startCalibrationLED->setColor(alertColor);
551  calibrationStage = CAL_ERROR;
552  }
553 
554  reset();
555  break;
556  }
557 
558  case CAL_DEC_INC:
559  pmain_wnd->do_pulse( DEC_INC_DIR, pulseDuration );
560  iterations++;
561  dec_iterations++;
562  ui.progressBar->setValue( iterations );
563 
564  //qDebug() << "Iteration " << iterations << " and auto drift time is " << auto_drift_time << endl;
565 
566  if (dec_iterations == auto_drift_time)
567  calibrationStage = CAL_DEC_DEC;
568 
569  break;
570 
571  case CAL_DEC_DEC:
572  {
573  if (dec_iterations == auto_drift_time)
574  {
575  pmath->get_star_screen_pos( &end_x2, &end_y2 );
576  //qDebug() << "End X2 " << end_x2 << " End Y2 " << end_y2 << endl;
577 
578  phi = pmath->calc_phi( start_x2, start_y2, end_x2, end_y2 );
579  ROT_Z = RotateZ( -M_PI*phi/180.0 ); // derotates...
580 
581  pmain_wnd->appendLogText(i18n("Running..."));
582  }
583 
584  //----- Z-check (new!) -----
585  double cur_x, cur_y;
586  pmath->get_star_screen_pos( &cur_x, &cur_y );
587 
588  //pmain_wnd->appendLogText(i18n("GUIDE_DEC running back...");
589 
590  //qDebug() << "Cur X1 " << cur_x << " Cur Y1 " << cur_y << endl;
591 
592  Vector star_pos = Vector( cur_x, cur_y, 0 ) - Vector( start_x2, start_y2, 0 );
593  star_pos.y = -star_pos.y;
594  star_pos = star_pos * ROT_Z;
595 
596  //qDebug() << "start Pos X " << star_pos.x << endl;
597 
598  // start point reached... so exit
599  if( star_pos.x < 1.5 )
600  {
601  pmath->do_processing();
602  auto_term_ok = true;
603  }
604 
605  //----- Z-check end -----
606 
607  if( !auto_term_ok )
608  {
609  if (iterations < turn_back_time)
610  {
611  pmain_wnd->do_pulse( DEC_DEC_DIR, pulseDuration );
612  iterations++;
613  dec_iterations++;
614 
615  ui.progressBar->setValue( iterations );
616  break;
617  }
618 
619  calibrationStage = CAL_ERROR;
620  QMessageBox::warning( this, i18n("Warning"), i18np("GUIDE_DEC: Scope cannot reach the start point after %1 iteration.\nPossible mount or drive problems...", "GUIDE_DEC: Scope cannot reach the start point after %1 iterations.\nPossible mount or drive problems...", turn_back_time), QMessageBox::Ok );
621  reset();
622  break;
623  }
624 
625  // calc orientation
626  if( pmath->calc_and_set_reticle2( start_x1, start_y1, end_x1, end_y1, start_x2, start_y2, end_x2, end_y2 ) )
627  {
628  calibrationStage = CAL_FINISH;
629  fill_interface();
630  pmain_wnd->appendLogText(i18n("Calibration completed."));
631  ui.startCalibrationLED->setColor(okColor);
632 
633  }
634  else
635  {
636  QMessageBox::warning( this, i18n("Error"), i18n("Calibration rejected. Start drift is too short."), QMessageBox::Ok );
637  ui.startCalibrationLED->setColor(alertColor);
638  calibrationStage = CAL_ERROR;
639  }
640 
641  reset();
642 
643  break;
644  }
645 
646 
647  default:
648  break;
649 
650  }
651 
652 }
653 
654 void rcalibration::guideStarSelected(int x, int y)
655 {
656  int square_size = guide_squares[pmath->get_square_index()].size;
657 
658  pmath->set_reticle_params(x, y, ui.spinBox_ReticleAngle->value());
659  pmath->move_square(x-square_size/2, y-square_size/2);
660 
661  update_reticle_pos(x, y);
662 
663  if (calibrationStage == CAL_FINISH)
664  return;
665 
666  ui.selectStarLED->setColor(okColor);
667 
668  calibrationStage = CAL_START;
669 
670  ui.pushButton_StartCalibration->setEnabled(true);
671 }
672 
673 void rcalibration::capture()
674 {
675  if (pmain_wnd->capture())
676  {
677  calibrationStage = CAL_CAPTURE_IMAGE;
678  ui.captureLED->setColor(busyColor);
679 
680  pmain_wnd->appendLogText(i18n("Capturing image..."));
681  }
682 }
683 
684 void rcalibration::set_image(FITSView *image)
685 {
686 
687  if (image == NULL)
688  return;
689 
690  switch (calibrationStage)
691  {
692  case CAL_CAPTURE_IMAGE:
693  case CAL_SELECT_STAR:
694  {
695  pmath->resize_square(pmath->get_square_index());
696  pmain_wnd->appendLogText(i18n("Image captured..."));
697 
698  ui.captureLED->setColor(okColor);
699  calibrationStage = CAL_SELECT_STAR;
700  ui.selectStarLED->setColor(busyColor);
701 
702  FITSImage *image_data = image->getImageData();
703 
704  set_video_params(image_data->getWidth(), image_data->getHeight());
705 
706  select_auto_star(image);
707 
708  connect(image, SIGNAL(guideStarSelected(int,int)), this, SLOT(guideStarSelected(int, int)));
709 
710  }
711  break;
712 
713  default:
714  break;
715  }
716 }
717 
718 void rcalibration::select_auto_star(FITSView *image)
719 {
720  int maxVal=-1;
721  Edge *guideStar = NULL;
722 
723  FITSImage *image_data = image->getImageData();
724 
725 
726  foreach(Edge *center, image_data->getStarCenters())
727  {
728  if (center->val > maxVal)
729  {
730  guideStar = center;
731  maxVal = center->val;
732 
733  }
734 
735  }
736 
737  if (guideStar != NULL)
738  image->setGuideSquare(guideStar->x, guideStar->y);
739 }
740 
rcalibration::CAL_DEC_DEC
Definition: rcalibration.h:37
FITSView::getImageData
FITSImage * getImageData()
Definition: fitsview.h:98
Ekos::Guide::capture
bool capture()
Definition: guide.cpp:211
rcalibration::guideStarSelected
void guideStarSelected(int x, int y)
Definition: rcalibration.cpp:654
rcalibration::CAL_RA_INC
Definition: rcalibration.h:37
FITSView::setGuideSquare
void setGuideSquare(int x, int y)
Definition: fitsview.cpp:442
Ekos::Guide::appendLogText
void appendLogText(const QString &)
Definition: guide.cpp:293
rcalibration::is_calibrating
bool is_calibrating()
Definition: rcalibration.cpp:297
Vector::x
double x
Definition: vect.h:21
FITSImage
Definition: fitsimage.h:73
gmath.h
DEC_INC_DIR
Definition: indicommon.h:28
rcalibration::CAL_MANUAL
Definition: rcalibration.h:38
rcalibration::CAL_RA_DEC
Definition: rcalibration.h:37
Vector
Definition: vect.h:18
guide_square_t::size
int size
Definition: gmath.h:25
QWidget
GUIDE_RA
#define GUIDE_RA
Definition: gmath.h:47
rcalibration::set_video_params
bool set_video_params(int vid_wd, int vid_ht)
Definition: rcalibration.cpp:123
FITSView
Definition: fitsview.h:81
rcalibration::onReticleAngChanged
void onReticleAngChanged(double val)
Definition: rcalibration.cpp:198
Edge::x
float x
Definition: fitsimage.h:64
rcalibration::onReticleXChanged
void onReticleXChanged(double val)
Definition: rcalibration.cpp:171
vect.h
rcalibration::set_math
void set_math(cgmath *math)
Definition: rcalibration.cpp:144
Edge
Definition: fitsimage.h:61
cgmath::is_lost_star
bool is_lost_star(void) const
Definition: gmath.cpp:580
rcalibration::rcalibration
rcalibration(Ekos::Guide *parent=0)
Definition: rcalibration.cpp:33
rcalibration::CAL_RA_DEC_AUTO
Definition: rcalibration.h:38
FITSImage::getHeight
long getHeight()
Definition: fitsimage.h:99
Edge::y
float y
Definition: fitsimage.h:65
rcalibration::~rcalibration
~rcalibration()
Definition: rcalibration.cpp:91
cgmath::do_processing
void do_processing(void)
Definition: gmath.cpp:889
rcalibration::set_image
void set_image(FITSView *image)
Definition: rcalibration.cpp:684
cgmath::set_lost_star
void set_lost_star(bool is_lost)
Definition: gmath.cpp:585
rcalibration::onStartReticleCalibrationButtonClick
void onStartReticleCalibrationButtonClick()
Definition: rcalibration.cpp:210
cgmath::get_star_screen_pos
void get_star_screen_pos(double *dx, double *dy) const
Definition: gmath.cpp:314
DEC_DEC_DIR
Definition: indicommon.h:29
cgmath::resize_square
void resize_square(int size_idx)
Definition: gmath.cpp:362
rcalibration::CAL_ERROR
Definition: rcalibration.h:37
Ekos::Guide
Definition: guide.h:35
cgmath::move_square
void move_square(double newx, double newy)
Definition: gmath.cpp:339
Ekos::Guide::do_pulse
bool do_pulse(GuideDirection ra_dir, int ra_msecs, GuideDirection dec_dir, int dec_msecs)
Definition: guide.cpp:307
rcalibration::CAL_RA_AUTO
Definition: rcalibration.h:38
RA_INC_DIR
Definition: indicommon.h:26
FITSImage::getStarCenters
QList< Edge * > getStarCenters()
Definition: fitsimage.h:97
rcalibration::CAL_START
Definition: rcalibration.h:37
cgmath
Definition: gmath.h:116
rcalibration::reset
void reset()
Definition: rcalibration.cpp:305
rcalibration::CAL_DEC_INC
Definition: rcalibration.h:37
rcalibration::update_reticle_pos
void update_reticle_pos(double x, double y)
Definition: rcalibration.cpp:135
cgmath::get_reticle_params
bool get_reticle_params(double *x, double *y, double *ang) const
Definition: gmath.cpp:224
FITSImage::getWidth
long getWidth()
Definition: fitsimage.h:98
cgmath::calc_and_set_reticle2
bool calc_and_set_reticle2(double start_ra_x, double start_ra_y, double end_ra_x, double end_ra_y, double start_dec_x, double start_dec_y, double end_dec_x, double end_dec_y)
Definition: gmath.cpp:442
cgmath::calc_phi
double calc_phi(double start_x, double start_y, double end_x, double end_y) const
Definition: gmath.cpp:497
rcalibration::CAL_SELECT_STAR
Definition: rcalibration.h:37
rcalibration::onEnableAutoMode
void onEnableAutoMode(int state)
Definition: rcalibration.cpp:164
rcalibration.h
GUIDE_DEC
#define GUIDE_DEC
Definition: gmath.h:48
cgmath::set_reticle_params
bool set_reticle_params(double x, double y, double ang)
Definition: gmath.cpp:176
RA_DEC_DIR
Definition: indicommon.h:27
cgmath::get_square_index
int get_square_index(void) const
Definition: gmath.cpp:235
cgmath::get_guider_params
void get_guider_params(double *ccd_pix_wd, double *ccd_pix_ht, double *guider_aperture, double *guider_focal)
Definition: gmath.cpp:167
rcalibration::capture
void capture()
Definition: rcalibration.cpp:673
rcalibration::CAL_FINISH
Definition: rcalibration.h:37
Edge::val
int val
Definition: fitsimage.h:66
cgmath::get_image
FITSView * get_image()
Definition: gmath.h:142
rcalibration::onReticleYChanged
void onReticleYChanged(double val)
Definition: rcalibration.cpp:186
cgmath::calc_and_set_reticle
bool calc_and_set_reticle(double start_x, double start_y, double end_x, double end_y)
Definition: gmath.cpp:426
RotateZ
Matrix RotateZ(double Angle)
Definition: matr.cpp:271
rcalibration::CAL_NONE
Definition: rcalibration.h:38
rcalibration::CAL_CAPTURE_IMAGE
Definition: rcalibration.h:37
Vector::y
double y
Definition: vect.h:21
guide_squares
const guide_square_t guide_squares[]
Definition: gmath.cpp:29
rcalibration::onSquareSizeChanged
void onSquareSizeChanged(int index)
Definition: rcalibration.cpp:153
rcalibration::process_calibration
void process_calibration()
Definition: rcalibration.cpp:267
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:36:20 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kstars

Skip menu "kstars"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal