void MyFrame::GuideButtonClick(bool interactive) { try { if (pMount == NULL) { // no mount selected -- should never happen throw ERROR_INFO("pMount == NULL"); } if (!pMount->IsConnected()) { throw ERROR_INFO("Unable to guide with no scope Connected"); } if (!pCamera || !pCamera->Connected) { throw ERROR_INFO("Unable to guide with no camera Connected"); } if (pGuider->GetState() < STATE_SELECTED) { wxMessageBox(_T("Please select a guide star before attempting to guide")); throw ERROR_INFO("Unable to guide with state < STATE_SELECTED"); } ValidateDarksLoaded(); if (wxGetKeyState(WXK_SHIFT)) { bool recalibrate = true; if (pMount->IsCalibrated() || (pSecondaryMount && pSecondaryMount->IsCalibrated())) { recalibrate = ConfirmDialog::Confirm(_("Are you sure you want force recalibration?"), "/force_recalibration_ok", _("Force Recalibration")); } if (recalibrate) { pMount->ClearCalibration(); if (pSecondaryMount) pSecondaryMount->ClearCalibration(); } } if (interactive && pPointingSource && pPointingSource->IsConnected()) { bool error = pPointingSource->PreparePositionInteractive(); if (error) return; } StartGuiding(); } catch (const wxString& Msg) { POSSIBLY_UNUSED(Msg); pGuider->Reset(false); } }
void MyFrame::GuideButtonClick(bool interactive) { try { if (pMount == NULL) { // no mount selected -- should never happen throw ERROR_INFO("pMount == NULL"); } if (!pMount->IsConnected()) { throw ERROR_INFO("Unable to guide with no scope Connected"); } if (!pCamera || !pCamera->Connected) { throw ERROR_INFO("Unable to guide with no camera Connected"); } if (pGuider->GetState() < STATE_SELECTED) { wxMessageBox(_T("Please select a guide star before attempting to guide")); throw ERROR_INFO("Unable to guide with state < STATE_SELECTED"); } ValidateDarksLoaded(); if (wxGetKeyState(WXK_SHIFT)) { bool recalibrate = true; if (pMount->IsCalibrated() || (pSecondaryMount && pSecondaryMount->IsCalibrated())) { recalibrate = ConfirmDialog::Confirm(_("Are you sure you want force recalibration?"), "/force_recalibration_ok", _("Force Recalibration")); } if (recalibrate) { pMount->ClearCalibration(); if (pSecondaryMount) pSecondaryMount->ClearCalibration(); } } if (interactive && pPointingSource && pPointingSource->IsConnected() && pPointingSource->CanReportPosition()) { bool proceed = true; bool error = pPointingSource->PreparePositionInteractive(); if (!error && fabs(pPointingSource->GetDeclination()) > Scope::DEC_COMP_LIMIT && !TheScope()->IsCalibrated() ) { proceed = ConfirmDialog::Confirm( _("Calibration this far from the celestial equator will be error-prone. For best results, calibrate at a declination of -20 to +20."), "/highdec_calibration_ok", _("Confirm Calibration at Large Declination") ); } if (error || !proceed) return; } StartGuiding(); } catch (const wxString& Msg) { POSSIBLY_UNUSED(Msg); pGuider->Reset(false); } }