void DoSlewingMenu( int *menu ) // Shows slew progress in X and Y. Called to do the slew from within // the tracking routine, and returns to tracking when done. { long int X_Target, Y_Target; double HA, Alt, Az; int x=25, y=TRACKINGDISPLAY, w=y+5; clrscr(); FrameScreen(); *menu = TrackingMenu; gotoxy(37,y); printf("Slewing"); DisplayCoordinates(w,1,1,0); gotoxy(x,w+0); printf("(Target RA: %4d:%02d:%02d )", _HOURS(RA_Target), _MINUTES(RA_Target), _SECONDS(RA_Target)); gotoxy(x,w+1); printf("(Target Dec:%+4d:%02d:%02d )", _SIGN(DecTarget)*_HOURS(DecTarget), _MINUTES(DecTarget), _SECONDS(DecTarget)); gotoxy(18,w+6); printf("Hit q to stop slewing and return to tracking."); PrevStatus = Status; Status = SLEWING; do { Slew(w+2); GetXY( RA_Target, DecTarget, &X_Target, &Y_Target ); dX = X_Target - gX; dY = Y_Target - gY; } while ( (pow(dX,2)+pow(dY,2)) > pow(CLOSE_ENOUGH,2) ); PrevStatus = Status; Status = TRACKING; }
bool Telescope::Slew(double ra, double dec) { SkyPoint target; target.setRA(ra); target.setDec(dec); return Slew(&target); }
// // Function for interpreting a command string of the format ": COMMAND <ARGUMENT> #" // void Dome::interpretCommand(Messenger *message) { message->readChar(); // Reads ":" char command = message->readChar(); // Read the command switch(command){ case 'P': Park(); break; case 'O': OpenCloseShutter(message->readInt()); break; case 'S': Slew(message->readLong()); break; case 'H': AbortSlew(); break; case 'T': SyncToAzimuth(message->readInt()); break; } }
void Dome::Park() { Slew(parkPosition); delay(500); Serial.println("PARKED"); }