• 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
guider.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 "guider.h"
13 
14 #include <math.h>
15 #include <stdlib.h>
16 #include <assert.h>
17 
18 #include <KMessageBox>
19 
20 #include "scroll_graph.h"
21 #include "gmath.h"
22 
23 #include "fitsviewer/fitsview.h"
24 
25 #define DRIFT_GRAPH_WIDTH 300
26 #define DRIFT_GRAPH_HEIGHT 300
27 
28 rguider::rguider(Ekos::Guide *parent)
29  : QWidget(parent)
30 {
31  int i;
32 
33  ui.setupUi(this);
34 
35  pmain_wnd = parent;
36 
37  pimage = NULL;
38 
39  lost_star_try=0;
40 
41  ui.comboBox_SquareSize->clear();
42  for( i = 0;guide_squares[i].size != -1;++i )
43  ui.comboBox_SquareSize->addItem( QString().setNum( guide_squares[i].size ) );
44 
45  ui.comboBox_ThresholdAlg->clear();
46  for( i = 0;guide_square_alg[i].idx != -1;++i )
47  ui.comboBox_ThresholdAlg->addItem( QString( guide_square_alg[i].name ) );
48 
49  ui.spinBox_AccFramesRA->setMaximum( MAX_ACCUM_CNT );
50  ui.spinBox_AccFramesDEC->setMaximum( MAX_ACCUM_CNT );
51 
52  // connect ui
53  connect( ui.spinBox_XScale, SIGNAL(valueChanged(int)), this, SLOT(onXscaleChanged(int)) );
54  connect( ui.spinBox_YScale, SIGNAL(valueChanged(int)), this, SLOT(onYscaleChanged(int)) );
55  connect( ui.comboBox_SquareSize, SIGNAL(activated(int)), this, SLOT(onSquareSizeChanged(int)) );
56  connect( ui.comboBox_ThresholdAlg, SIGNAL(activated(int)), this, SLOT(onThresholdChanged(int)) );
57  connect( ui.spinBox_GuideRate, SIGNAL(valueChanged(double)), this, SLOT(onInfoRateChanged(double)) );
58  connect( ui.checkBox_DirRA, SIGNAL(stateChanged(int)), this, SLOT(onEnableDirRA(int)) );
59  connect( ui.checkBox_DirDEC, SIGNAL(stateChanged(int)), this, SLOT(onEnableDirDEC(int)) );
60  connect( ui.spinBox_AccFramesRA, SIGNAL(editingFinished()), this, SLOT(onInputParamChanged()) );
61  connect( ui.spinBox_AccFramesDEC, SIGNAL(editingFinished()), this, SLOT(onInputParamChanged()) );
62  connect( ui.spinBox_PropGainRA, SIGNAL(editingFinished()), this, SLOT(onInputParamChanged()) );
63  connect( ui.spinBox_PropGainDEC, SIGNAL(editingFinished()), this, SLOT(onInputParamChanged()) );
64  connect( ui.spinBox_IntGainRA, SIGNAL(editingFinished()), this, SLOT(onInputParamChanged()) );
65  connect( ui.spinBox_IntGainDEC, SIGNAL(editingFinished()), this, SLOT(onInputParamChanged()) );
66  connect( ui.spinBox_DerGainRA, SIGNAL(editingFinished()), this, SLOT(onInputParamChanged()) );
67  connect( ui.spinBox_DerGainDEC, SIGNAL(editingFinished()), this, SLOT(onInputParamChanged()) );
68  connect( ui.spinBox_MaxPulseRA, SIGNAL(editingFinished()), this, SLOT(onInputParamChanged()) );
69  connect( ui.spinBox_MaxPulseDEC, SIGNAL(editingFinished()), this, SLOT(onInputParamChanged()) );
70  connect( ui.spinBox_MinPulseRA, SIGNAL(editingFinished()), this, SLOT(onInputParamChanged()) );
71  connect( ui.spinBox_MinPulseDEC, SIGNAL(editingFinished()), this, SLOT(onInputParamChanged()) );
72 
73  connect(ui.captureB, SIGNAL(clicked()), pmain_wnd, SLOT(capture()));
74 
75  connect( ui.pushButton_StartStop, SIGNAL(clicked()), this, SLOT(onStartStopButtonClick()) );
76 
77  pmath = NULL;
78 
79  // init drift widget
80  pDriftOut = new custom_drawer( ui.frame_Graph );
81  pDriftOut->move( ui.frame_Graph->frameWidth(), ui.frame_Graph->frameWidth() );
82  pDriftOut->setAttribute( Qt::WA_NoSystemBackground, true );
83  ui.frame_Graph->setAttribute( Qt::WA_NoSystemBackground, true );
84 
85  drift_graph = new cscroll_graph( this, DRIFT_GRAPH_WIDTH, DRIFT_GRAPH_HEIGHT );
86  drift_graph->set_visible_ranges( DRIFT_GRAPH_WIDTH, 60 );
87 
88  pDriftOut->set_source( drift_graph->get_buffer(), NULL );
89  drift_graph->on_paint();
90 
91  ui.frame_Graph->resize( DRIFT_GRAPH_WIDTH + 2*ui.frame_Graph->frameWidth(), DRIFT_GRAPH_HEIGHT + 2*ui.frame_Graph->frameWidth() );
92 
93  // not UI vars
94  is_started = false;
95  is_ready = false;
96  half_refresh_rate = false;
97 
98  //fill_interface();
99 
100 }
101 
102 rguider::~rguider()
103 {
104  delete pDriftOut;
105  delete drift_graph;
106 }
107 
108 
109 void rguider::set_half_refresh_rate( bool is_half )
110 {
111  half_refresh_rate = is_half;
112 }
113 
114 
115 bool rguider::is_guiding( void ) const
116 {
117  return is_started;
118 }
119 
120 
121 void rguider::set_math( cgmath *math )
122 {
123  assert( math );
124  pmath = math;
125 }
126 
127 
128 void rguider::fill_interface( void )
129 {
130  const cproc_in_params *in_params;
131  const cproc_out_params *out_params;
132  info_params_t info_params;
133  QString str;
134  int rx, ry;
135 
136 
137  assert( pmath );
138 
139  info_params = pmath->get_info_params();
140  in_params = pmath->get_in_params();
141  out_params = pmath->get_out_params();
142 
143  drift_graph->get_visible_ranges( &rx, &ry );
144  ui.spinBox_XScale->setValue( rx / drift_graph->get_grid_N() );
145  ui.spinBox_YScale->setValue( ry / drift_graph->get_grid_N() );
146 
147  ui.comboBox_SquareSize->setCurrentIndex( pmath->get_square_index() );
148  ui.comboBox_ThresholdAlg->setCurrentIndex( pmath->get_square_algorithm_index() );
149 
150 
151  ui.l_RecommendedGain->setText( i18n("P: %1", QString().setNum(cgmath::precalc_proportional_gain(in_params->guiding_rate), 'f', 2 )) );
152 
153 
154  ui.spinBox_GuideRate->setValue( in_params->guiding_rate );
155 
156  // info params...
157  ui.l_Focal->setText( str.setNum( (int)info_params.focal) );
158  ui.l_Aperture->setText( str.setNum( (int)info_params.aperture) );
159  ui.l_FbyD->setText( QString().setNum( info_params.focal_ratio, 'f', 1) );
160  str = QString().setNum(info_params.fov_wd, 'f', 1) + 'x' + QString().setNum(info_params.fov_ht, 'f', 1);
161  ui.l_FOV->setText( str );
162 
163  ui.checkBox_DirRA->setChecked( in_params->enabled[GUIDE_RA] );
164  ui.checkBox_DirDEC->setChecked( in_params->enabled[GUIDE_DEC] );
165 
166  ui.spinBox_AccFramesRA->setValue( (int)in_params->accum_frame_cnt[GUIDE_RA] );
167  ui.spinBox_AccFramesDEC->setValue( (int)in_params->accum_frame_cnt[GUIDE_DEC] );
168 
169  ui.spinBox_PropGainRA->setValue( in_params->proportional_gain[GUIDE_RA] );
170  ui.spinBox_PropGainDEC->setValue( in_params->proportional_gain[GUIDE_DEC] );
171 
172  ui.spinBox_IntGainRA->setValue( in_params->integral_gain[GUIDE_RA] );
173  ui.spinBox_IntGainDEC->setValue( in_params->integral_gain[GUIDE_DEC] );
174 
175  ui.spinBox_DerGainRA->setValue( in_params->derivative_gain[GUIDE_RA] );
176  ui.spinBox_DerGainDEC->setValue( in_params->derivative_gain[GUIDE_DEC] );
177 
178  ui.spinBox_MaxPulseRA->setValue( in_params->max_pulse_length[GUIDE_RA] );
179  ui.spinBox_MaxPulseDEC->setValue( in_params->max_pulse_length[GUIDE_DEC] );
180 
181  ui.spinBox_MinPulseRA->setValue( in_params->min_pulse_length[GUIDE_RA] );
182  ui.spinBox_MinPulseDEC->setValue( in_params->min_pulse_length[GUIDE_DEC] );
183 
184 
185  ui.l_DeltaRA->setText(QString().setNum(out_params->delta[GUIDE_RA], 'f', 2) );
186  ui.l_DeltaDEC->setText(QString().setNum(out_params->delta[GUIDE_DEC], 'f', 2) );
187 
188  ui.l_PulseRA->setText(QString().setNum(out_params->pulse_length[GUIDE_RA]) );
189  ui.l_PulseDEC->setText(QString().setNum(out_params->pulse_length[GUIDE_DEC]) );
190 
191  ui.l_ErrRA->setText( QString().setNum(out_params->sigma[GUIDE_RA]) );
192  ui.l_ErrDEC->setText( QString().setNum(out_params->sigma[GUIDE_DEC]) );
193 
194 }
195 
196 
197 void rguider::onXscaleChanged( int i )
198 {
199  int rx, ry;
200 
201  drift_graph->get_visible_ranges( &rx, &ry );
202  drift_graph->set_visible_ranges( i*drift_graph->get_grid_N(), ry );
203 
204  // refresh if not started
205  if( !is_started )
206  {
207  drift_graph->on_paint();
208  // pDriftOut->update();
209  }
210 
211 }
212 
213 
214 void rguider::onYscaleChanged( int i )
215 {
216  int rx, ry;
217 
218  drift_graph->get_visible_ranges( &rx, &ry );
219  drift_graph->set_visible_ranges( rx, i*drift_graph->get_grid_N() );
220 
221  // refresh if not started
222  if( !is_started )
223  {
224  drift_graph->on_paint();
225 // pDriftOut->update();
226  }
227 }
228 
229 
230 void rguider::onSquareSizeChanged( int index )
231 {
232  if( pmath )
233  pmath->resize_square( index );
234 }
235 
236 
237 void rguider::onThresholdChanged( int index )
238 {
239  if( pmath )
240  pmath->set_square_algorithm( index );
241 }
242 
243 
244 
245 // params changing stuff
246 void rguider::onInfoRateChanged( double val )
247 {
248  cproc_in_params *in_params;
249 
250 
251  if( !pmath )
252  return;
253 
254  in_params = pmath->get_in_params();
255 
256  in_params->guiding_rate = val;
257 
258  ui.l_RecommendedGain->setText( i18n("P: %1", QString().setNum(pmath->precalc_proportional_gain(in_params->guiding_rate), 'f', 2 )) );
259 }
260 
261 
262 void rguider::onEnableDirRA( int state )
263 {
264  cproc_in_params *in_params;
265 
266  if( !pmath )
267  return;
268 
269  in_params = pmath->get_in_params();
270  in_params->enabled[GUIDE_RA] = (state == Qt::Checked);
271 }
272 
273 
274 void rguider::onEnableDirDEC( int state )
275 {
276  cproc_in_params *in_params;
277 
278  if( !pmath )
279  return;
280 
281  in_params = pmath->get_in_params();
282  in_params->enabled[GUIDE_DEC] = (state == Qt::Checked);
283 }
284 
285 
286 void rguider::onInputParamChanged()
287 {
288  QObject *obj;
289  QSpinBox *pSB;
290  QDoubleSpinBox *pDSB;
291  cproc_in_params *in_params;
292 
293 
294  if( !pmath )
295  return;
296 
297  obj = sender();
298 
299  in_params = pmath->get_in_params();
300 
301  if( (pSB = dynamic_cast<QSpinBox *>(obj)) )
302  {
303  if( pSB == ui.spinBox_AccFramesRA )
304  in_params->accum_frame_cnt[GUIDE_RA] = pSB->value();
305  else
306  if( pSB == ui.spinBox_AccFramesDEC )
307  in_params->accum_frame_cnt[GUIDE_DEC] = pSB->value();
308  else
309  if( pSB == ui.spinBox_MaxPulseRA )
310  in_params->max_pulse_length[GUIDE_RA] = pSB->value();
311  else
312  if( pSB == ui.spinBox_MaxPulseDEC )
313  in_params->max_pulse_length[GUIDE_DEC] = pSB->value();
314  else
315  if( pSB == ui.spinBox_MinPulseRA )
316  in_params->min_pulse_length[GUIDE_RA] = pSB->value();
317  else
318  if( pSB == ui.spinBox_MinPulseDEC )
319  in_params->min_pulse_length[GUIDE_DEC] = pSB->value();
320  }
321  else
322  if( (pDSB = dynamic_cast<QDoubleSpinBox *>(obj)) )
323  {
324  if( pDSB == ui.spinBox_PropGainRA )
325  in_params->proportional_gain[GUIDE_RA] = pDSB->value();
326  else
327  if( pDSB == ui.spinBox_PropGainDEC )
328  in_params->proportional_gain[GUIDE_DEC] = pDSB->value();
329  else
330  if( pDSB == ui.spinBox_IntGainRA )
331  in_params->integral_gain[GUIDE_RA] = pDSB->value();
332  else
333  if( pDSB == ui.spinBox_IntGainDEC )
334  in_params->integral_gain[GUIDE_DEC] = pDSB->value();
335  else
336  if( pDSB == ui.spinBox_DerGainRA )
337  in_params->derivative_gain[GUIDE_RA] = pDSB->value();
338  else
339  if( pDSB == ui.spinBox_DerGainDEC )
340  in_params->derivative_gain[GUIDE_DEC] = pDSB->value();
341  }
342 
343 }
344 
345 
346 
347 
348 
349 // processing stuff
350 void rguider::onStartStopButtonClick()
351 {
352  assert( pmath );
353 
354  // start
355  if( !is_started )
356  {
357  if (pimage)
358  disconnect(pimage, SIGNAL(guideStarSelected(int,int)), 0, 0);
359 
360  drift_graph->reset_data();
361  ui.pushButton_StartStop->setText( i18n("Stop") );
362  pmain_wnd->appendLogText(i18n("Autoguiding started."));
363  pmath->start();
364  lost_star_try=0;
365  is_started = true;
366  pmain_wnd->capture();
367  }
368  // stop
369  else
370  {
371  if (pimage)
372  connect(pimage, SIGNAL(guideStarSelected(int,int)), this, SLOT(guideStarSelected(int,int)));
373  ui.pushButton_StartStop->setText( i18n("Start Autoguide") );
374  pmain_wnd->appendLogText(i18n("Autoguiding stopped."));
375  pmath->stop();
376  // stop pulses immediately
377 // if( !DBG_VERBOSITY )
378 // pmain_wnd->m_driver->reset();
379 
380 
381 
382  is_started = false;
383  }
384 }
385 
386 
387 void rguider::guide( void )
388 {
389  const cproc_out_params *out;
390  QString str;
391  uint32_t tick = 0;
392  double drift_x = 0, drift_y = 0;
393 
394 
395  assert( pmath );
396 
397  // calc math. it tracks square
398  pmath->do_processing();
399 
400  if(!is_started )
401  return;
402 
403  if (pmath->is_lost_star() && ++lost_star_try > 2)
404  {
405  onStartStopButtonClick();
406  KMessageBox::error(NULL, i18n("Lost track of the guide star. Try increasing the square size and check the mount."));
407  return;
408  }
409  else
410  lost_star_try = 0;
411 
412  // do pulse
413  out = pmath->get_out_params();
414 
415 
416  //qDebug() << "Guide is sending pulse command now ... " << endl;
417  pmain_wnd->do_pulse( out->pulse_dir[GUIDE_RA], out->pulse_length[GUIDE_RA], out->pulse_dir[GUIDE_DEC], out->pulse_length[GUIDE_DEC] );
418  //qDebug() << "#######################################" << endl;
419 
420 
421  pmath->get_star_drift( &drift_x, &drift_y );
422 
423  drift_graph->add_point( drift_x, drift_y );
424 
425  tick = pmath->get_ticks();
426 
427 
428  if( tick & 1 )
429  {
430  // draw some params in window
431  ui.l_DeltaRA->setText(str.setNum(out->delta[GUIDE_RA], 'f', 2) );
432  ui.l_DeltaDEC->setText(str.setNum(out->delta[GUIDE_DEC], 'f', 2) );
433 
434  ui.l_PulseRA->setText(str.setNum(out->pulse_length[GUIDE_RA]) );
435  ui.l_PulseDEC->setText(str.setNum(out->pulse_length[GUIDE_DEC]) );
436 
437  ui.l_ErrRA->setText( str.setNum(out->sigma[GUIDE_RA], 'g', 3));
438  ui.l_ErrDEC->setText( str.setNum(out->sigma[GUIDE_DEC], 'g', 3 ));
439  }
440 
441  // skip half frames
442  if( half_refresh_rate && (tick & 1) )
443  return;
444 
445  drift_graph->on_paint();
446  pDriftOut->update();
447 
448 }
449 
450 void rguider::set_image(FITSView *image)
451 {
452  pimage = image;
453 
454  if (is_ready && pimage && is_started == false)
455  connect(pimage, SIGNAL(guideStarSelected(int,int)), this, SLOT(guideStarSelected(int, int)));
456 }
457 
458 void rguider::guideStarSelected(int x, int y)
459 {
460  int square_size = guide_squares[pmath->get_square_index()].size;
461 
462  pmath->set_reticle_params(x, y, pmain_wnd->getReticleAngle());
463  pmath->move_square(x-square_size/2, y-square_size/2);
464 
465  disconnect(pimage, SIGNAL(guideStarSelected(int,int)), this, SLOT(guideStarSelected(int, int)));
466 
467 }
468 
469 
470 
rguider::~rguider
~rguider()
Definition: guider.cpp:102
Ekos::Guide::capture
bool capture()
Definition: guide.cpp:211
rguider::set_math
void set_math(cgmath *math)
Definition: guider.cpp:121
Ekos::Guide::appendLogText
void appendLogText(const QString &)
Definition: guide.cpp:293
cproc_in_params::derivative_gain
double derivative_gain[CHANNEL_CNT]
Definition: gmath.h:88
cproc_in_params::integral_gain
double integral_gain[CHANNEL_CNT]
Definition: gmath.h:87
rguider::guide
void guide(void)
Definition: guider.cpp:387
gmath.h
DRIFT_GRAPH_HEIGHT
#define DRIFT_GRAPH_HEIGHT
Definition: guider.cpp:26
rguider::onYscaleChanged
void onYscaleChanged(int i)
Definition: guider.cpp:214
cgmath::get_out_params
const cproc_out_params * get_out_params(void) const
Definition: gmath.cpp:277
cgmath::get_star_drift
void get_star_drift(double *dx, double *dy) const
Definition: gmath.cpp:307
guide_square_alg
const square_alg_t guide_square_alg[]
Definition: gmath.cpp:37
cscroll_graph::get_grid_N
int get_grid_N(void)
Definition: scroll_graph.cpp:124
cscroll_graph::on_paint
void on_paint(void)
Definition: scroll_graph.cpp:163
cgmath::get_ticks
uint32_t get_ticks(void) const
Definition: gmath.cpp:301
square_alg_t::idx
int idx
Definition: gmath.h:36
guide_square_t::size
int size
Definition: gmath.h:25
QWidget
GUIDE_RA
#define GUIDE_RA
Definition: gmath.h:47
info_params_t
Definition: gmath.h:108
info_params_t::focal
double focal
Definition: gmath.h:112
MAX_ACCUM_CNT
#define MAX_ACCUM_CNT
Definition: gmath.h:52
FITSView
Definition: fitsview.h:81
cgmath::get_in_params
cproc_in_params * get_in_params(void)
Definition: gmath.cpp:248
rguider::onStartStopButtonClick
void onStartStopButtonClick()
Definition: guider.cpp:350
cgmath::get_square_algorithm_index
int get_square_algorithm_index(void) const
Definition: gmath.cpp:241
cproc_in_params::min_pulse_length
int min_pulse_length[CHANNEL_CNT]
Definition: gmath.h:90
rguider::onEnableDirRA
void onEnableDirRA(int state)
Definition: guider.cpp:262
custom_drawer
Definition: common.h:54
cproc_in_params::max_pulse_length
int max_pulse_length[CHANNEL_CNT]
Definition: gmath.h:89
cproc_in_params::accum_frame_cnt
uint32_t accum_frame_cnt[CHANNEL_CNT]
Definition: gmath.h:85
cproc_in_params::guiding_rate
double guiding_rate
Definition: gmath.h:82
QObject
rguider::guideStarSelected
void guideStarSelected(int x, int y)
Definition: guider.cpp:458
fitsview.h
cgmath::is_lost_star
bool is_lost_star(void) const
Definition: gmath.cpp:580
cproc_out_params::pulse_dir
GuideDirection pulse_dir[2]
Definition: gmath.h:102
cproc_out_params
Definition: gmath.h:95
rguider::onXscaleChanged
void onXscaleChanged(int i)
Definition: guider.cpp:197
cscroll_graph::reset_data
void reset_data(void)
Definition: scroll_graph.cpp:141
cgmath::do_processing
void do_processing(void)
Definition: gmath.cpp:889
DRIFT_GRAPH_WIDTH
#define DRIFT_GRAPH_WIDTH
Definition: guider.cpp:25
cproc_out_params::delta
double delta[2]
Definition: gmath.h:101
cgmath::get_info_params
info_params_t get_info_params(void) const
Definition: gmath.cpp:283
cscroll_graph::add_point
bool add_point(double ra, double dec)
Definition: scroll_graph.cpp:382
cgmath::resize_square
void resize_square(int size_idx)
Definition: gmath.cpp:362
cscroll_graph::set_visible_ranges
void set_visible_ranges(int rx, int ry)
Definition: scroll_graph.cpp:87
rguider::set_image
void set_image(FITSView *image)
Definition: guider.cpp:450
cgmath::stop
void stop(void)
Definition: gmath.cpp:563
custom_drawer::set_source
bool set_source(QImage *image, mouse_delegate *mouse)
Definition: common.h:65
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
info_params_t::focal_ratio
double focal_ratio
Definition: gmath.h:110
rguider::set_half_refresh_rate
void set_half_refresh_rate(bool is_half)
Definition: guider.cpp:109
cgmath
Definition: gmath.h:116
cproc_in_params
Definition: gmath.h:75
cscroll_graph::get_visible_ranges
void get_visible_ranges(int *rx, int *ry)
Definition: scroll_graph.cpp:117
cgmath::start
void start(void)
Definition: gmath.cpp:544
rguider::onInputParamChanged
void onInputParamChanged()
Definition: guider.cpp:286
cgmath::precalc_proportional_gain
static double precalc_proportional_gain(double g_rate)
Definition: gmath.cpp:417
cproc_out_params::pulse_length
int pulse_length[2]
Definition: gmath.h:103
rguider::onSquareSizeChanged
void onSquareSizeChanged(int index)
Definition: guider.cpp:230
rguider::onInfoRateChanged
void onInfoRateChanged(double val)
Definition: guider.cpp:246
rguider::is_guiding
bool is_guiding(void) const
Definition: guider.cpp:115
info_params_t::aperture
double aperture
Definition: gmath.h:112
cscroll_graph
Definition: scroll_graph.h:31
GUIDE_DEC
#define GUIDE_DEC
Definition: gmath.h:48
guider.h
cgmath::set_reticle_params
bool set_reticle_params(double x, double y, double ang)
Definition: gmath.cpp:176
cproc_out_params::sigma
double sigma[2]
Definition: gmath.h:104
cgmath::get_square_index
int get_square_index(void) const
Definition: gmath.cpp:235
rguider::onEnableDirDEC
void onEnableDirDEC(int state)
Definition: guider.cpp:274
info_params_t::fov_ht
double fov_ht
Definition: gmath.h:111
cproc_in_params::enabled
bool enabled[CHANNEL_CNT]
Definition: gmath.h:83
rguider::fill_interface
void fill_interface(void)
Definition: guider.cpp:128
rguider::rguider
rguider(Ekos::Guide *parent=0)
Definition: guider.cpp:28
scroll_graph.h
Ekos::Guide::getReticleAngle
double getReticleAngle()
Definition: guide.cpp:339
info_params_t::fov_wd
double fov_wd
Definition: gmath.h:111
cgmath::set_square_algorithm
void set_square_algorithm(int alg_idx)
Definition: gmath.cpp:379
guide_squares
const guide_square_t guide_squares[]
Definition: gmath.cpp:29
cproc_in_params::proportional_gain
double proportional_gain[CHANNEL_CNT]
Definition: gmath.h:86
cscroll_graph::get_buffer
QImage * get_buffer(void)
Definition: scroll_graph.cpp:150
rguider::onThresholdChanged
void onThresholdChanged(int i)
Definition: guider.cpp:237
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:36:19 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