00001 #ifndef _QCamAutoGuidage_hpp_
00002 #define _QCamAutoGuidage_hpp_
00003
00004 #include <qobject.h>
00005
00006 class QCam;
00007 class QCamFindShift;
00008 class QTelescope;
00009 class QWidget;
00010 class ShiftInfo;
00011
00012 enum MoveDir {
00013 NotMoved,
00014 MovedEast,
00015 MovedWest,
00016 MovedNorth,
00017 MovedSouth
00018 };
00019
00020
00025 class QCamAutoGuidage : public QObject {
00026 Q_OBJECT;
00027 public:
00028 QCamAutoGuidage();
00030 void setCam(QCam * cam);
00032 void setScope(QTelescope * scope);
00034 void setTracker(QCamFindShift * tracker);
00036 virtual QWidget * buildGUI(QWidget *parent=0);
00037 const QCam * cam() const { return cam_;}
00038 signals:
00040 void altMove(MoveDir);
00042 void ascMove(MoveDir);
00043 public slots:
00048 void track(bool mode);
00049 protected slots:
00054 virtual void frameShift(const ShiftInfo& shift)=0;
00055 protected:
00056 QTelescope * telescope_;
00057 MoveDir lastAltMove_;
00058 MoveDir lastAscMove_;
00059 void moveAsc(MoveDir EWmove);
00060 void moveAlt(MoveDir NSmove);
00061
00062 private:
00063 QCam * cam_;
00064 QCamFindShift * tracker_;
00065 bool isTracking_;
00066 };
00067 #endif