/*************************************************************************** kstarsinterface.h - Trinity Desktop Planetarium ------------------- begin : Thu Jan 3 2002 copyright : (C) 2002 by Mark Hollomon email : mhh@mindspring.com ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef KSTARSINTERFACE_H #define KSTARSINTERFACE_H #include /**@class KStarsInterface *This class encapsulates the DCOP functions for KStars. *@note Clock-related DCOP functions are in a separate class: SimClockInterface *@note The function definitions are in the file kstarsdcop.cpp *@author Mark Hollomon *@version 1.0 */ class KStarsInterface : virtual public DCOPObject { K_DCOP k_dcop: /**Recenter the display at a new object or point in the sky. *@param direction This is either the name of a SkyObject, or one *of the following to center on a compass point along the horizon *or at the zenith point: *@li north, n *@li northeast, ne *@li east, e *@li southeast, se *@li south, s *@li southwest, sw *@li west, w *@li northwest, nw *@li zenith, z * */ virtual ASYNC lookTowards( const TQString direction ) = 0; /**Set the zoomFactor. The zoomFactor is equal to the number of *pixels which subtend one radian of angle. *@param f the new zoomFactor */ virtual ASYNC zoom( double f ) = 0; /**Increase the zoomFactor by 10% */ virtual ASYNC zoomIn() = 0; /**Decrease the zoomFactor by 10% */ virtual ASYNC zoomOut() = 0; /**Set the zoomFactor to its default value */ virtual ASYNC defaultZoom() = 0; /**Recenter the Display to the given RA,Dec position *@param ra the new RA coordinate *@param dec the new Dec coordinate */ virtual ASYNC setRaDec( double ra, double dec ) = 0; /**Recenter the Display to the given Alt,Az position *@param alt the new Alt coordinate *@param az the new Az coordinate */ virtual ASYNC setAltAz(double alt, double az) = 0; /**Reset the clock to the given time and date *@param yr the year *@param mth the month *@param day the day *@param hr the hour *@param min the minute *@param sec the second */ virtual ASYNC setLocalTime(int yr, int mth, int day, int hr, int min, int sec) = 0; /**Pause execution of the script for a given number of seconds *@param t pause interval in seconds */ virtual ASYNC waitFor( double t ) = 0; /**Pause execution of the script until a key is pressed *@param k the key which will resume the script */ virtual ASYNC waitForKey( const TQString k ) = 0; /**Turn tracking mode on or off. If tracking is on, then the coordinates at *the center of the screen remain fixed with time. If tracking is off, then *the sky "drifts" past the screen at the sidereal rate. *@param track if TRUE, turn tracking on; otherwise turn it off. */ virtual ASYNC setTracking( bool track ) = 0; /**@short read in the config file */ virtual ASYNC readConfig() = 0; /**@short write current settings to the config file */ virtual ASYNC writeConfig() = 0; /**@return the value of an option in the config file *@param name the name of the option to be read */ virtual TQString getOption( const TQString &name ) = 0; /**Reset a View option. There are dozens of view options which can be adjusted *with this function. See the ScriptBuilder tool for a hierarchical list, or *see the kstarsrc config file. Different options require different data types *for their argument. The value parameter will be recast from a TQString to the *correct data type for the specified option. If the value cannot be recast, *then the option will not be changed. *@param option the name of the option to change *@param value the new value for the option */ virtual ASYNC changeViewOption( const TQString option, const TQString value ) = 0; /**Show a message in a popup window (NOT YET IMPLEMENTED) *@param x the X-coordinate of the window *@param y the Y-coordinate of the window *@param message the text to be displayed */ virtual ASYNC popupMessage( int x, int y, const TQString message ) = 0; /**Draw a line on the sky map (NOT YET IMPLEMENTED) *@param x1 the x-coordinate of the starting point of the line *@param y1 the y-coordinate of the starting point of the line *@param x2 the x-coordinate of the ending point of the line *@param y2 the y-coordinate of the ending point of the line *@param speed how fast the line should be drawn from the starting point to the *ending point. A speed of 0 will draw the entire line instantly. */ virtual ASYNC drawLine( int x1, int y1, int x2, int y2, int speed ) = 0; /**Set the Geographic location according to the given city name. *@param city the name of the city *@param province the name of the province or US state *@param country the name of the country */ virtual ASYNC setGeoLocation( const TQString city, const TQString province, const TQString country ) = 0; /**Adjust one of the color settings. *@param colorName The name of the color to change (see one of the *.colors files, or colorscheme.cpp) *@param value The new color setting */ virtual ASYNC setColor( const TQString colorName, const TQString value ) = 0; /**Load a color scheme *@param name The name of the color scheme to be loaded */ virtual ASYNC loadColorScheme( const TQString name ) = 0; /**Export an image of the current sky to a file on disk. *@param filename The filename for the exported image (the image type *will be determined from the fileame extension; if this is not possible, *it will save the image as a PNG) *@param width the width of the image *@param height the height of the image */ virtual ASYNC exportImage( const TQString filename, int width, int height ) = 0; /**Print the current sky map. Options to show the Print Dialog and to use Star Chart colors. */ virtual ASYNC printImage( bool usePrintDialog, bool useChartColors ) = 0; // Generic Device Functions /**Establish the device for an INDI-compatible device *@param deviceName The INDI device name *@param useLocal If true, starts the device in local mode. Otherwise, in server mode. */ virtual ASYNC startINDI (TQString deviceName, bool useLocal) = 0; /**Shotdown a device *@param deviceName The INDI device name */ virtual ASYNC shutdownINDI (TQString deviceName) = 0; /**Turn the INDI device on/off *@param deviceName The INDI device name *@param turnOn If true, the device is switched on, otherwise it is switches off. */ virtual ASYNC switchINDI(TQString deviceName, bool turnOn) = 0; /**Set INDI connection port *@param deviceName The INDI device name *@param port The connection port (e.g. /dev/ttyS0) */ virtual ASYNC setINDIPort(TQString deviceName, TQString port) = 0; /**Set INDI device action. This action is an element of a valid switch * property in the device. *@param deviceName The INDI device name *@param action The generic action to invoke */ virtual ASYNC setINDIAction(TQString deviceName, TQString action) = 0; /** Wait for action to complete (state changed to OK or IDLE) *@param deviceName The INDI device name *@param action The action. The action can be any valid device property. * script will pause until the property status becomes OK. */ virtual ASYNC waitForINDIAction(TQString deviceName, TQString action) = 0; // Telescope Functions /**Set telescope target coordinates *@param deviceName The INDI device name *@param RA Target's right ascension in JNOW *@param DEC Target's declination in JNOW */ virtual ASYNC setINDITargetCoord(TQString deviceName, double RA, double DEC) = 0; /**Set telescope target *@param deviceName The INDI device name *@param objectName Object's name as found in KStars */ virtual ASYNC setINDITargetName(TQString deviceName, TQString objectName) = 0; /**Set telescope action *@param deviceName The INDI device name *@param action The specfic action to perform. Either SLEW, TRACK, SYNC, PARK, or ABORT. */ virtual ASYNC setINDIScopeAction(TQString deviceName, TQString action) = 0; /** Set INDI geographical location *@param deviceName The INDI device name *@param longitude Longitude expressed in double. E of N *@param latitude Latitude expressed in double. */ virtual ASYNC setINDIGeoLocation(TQString deviceName, double longitude, double latitude) = 0; /** Start INDI UTC date and time in ISO 8601 format *@param deviceName The INDI device name *@param UTCDateTime UTC date and time in ISO 8601 format. */ virtual ASYNC setINDIUTC(TQString deviceName, TQString UTCDateTime) = 0; // Focus Functions /** Set Focus Speed *@param deviceName The INDI device name *@param speed Focus speed: Halt, Fast, Medium, and Slow; * which numerical value corresponds to which * is left to the INDI driver. * *@todo Be more explicit about allowed action strings. */ virtual ASYNC setINDIFocusSpeed(TQString deviceName, unsigned int speed) = 0; /** Set INDI focus timeout *@param deviceName The INDI device name *@param timeout Number of seconds to perform focusing. */ virtual ASYNC setINDIFocusTimeout(TQString deviceName, int timeout) = 0; /** Start INDI focus operation in the selected direction *@param deviceName The INDI device name *@param focusDir Focus direction. If 0, focus in, if 1 focus out */ virtual ASYNC startINDIFocus(TQString deviceName, int focusDir) = 0; // Filter Functions /** Sets the Filter position *@param deviceName The INDI device name *@param filter_num The filter position (0-20) */ virtual ASYNC setINDIFilterNum(TQString deviceName, int filter_num) = 0; // Camera CCD Functions /** Sets the CCD camera frame type *@param deviceName The INDI device name *@param type The frame type can be either FRAME_LIGHT, FRAME_DARK, * FRAME_BIAS, or FRAME_FLAT */ virtual ASYNC setINDIFrameType(TQString deviceName, TQString type) = 0; /** Set CCD target temperature *@param deviceName The INDI device name *@param temp The target CCD temperature. */ virtual ASYNC setINDICCDTemp(TQString deviceName, int temp) = 0; /** Start camera exposure *@param deviceName The INDI device name *@param timeout Number of seconds to perform exposure. */ virtual ASYNC startINDIExposure(TQString deviceName, int timeout) = 0; }; #endif