diff --git a/drivers.xml b/drivers.xml index ec01c13879..8d1f8bc1c6 100644 --- a/drivers.xml +++ b/drivers.xml @@ -33,7 +33,7 @@ indi_lx200_OnStep - 1.20 + 1.21 indi_lx200_OpenAstroTech diff --git a/drivers/telescope/lx200_OnStep.cpp b/drivers/telescope/lx200_OnStep.cpp index 20bb2c4478..681f099440 100644 --- a/drivers/telescope/lx200_OnStep.cpp +++ b/drivers/telescope/lx200_OnStep.cpp @@ -50,7 +50,7 @@ LX200_OnStep::LX200_OnStep() : LX200Generic(), WI(this), RotatorInterface(this) currentCatalog = LX200_STAR_C; currentSubCatalog = 0; - setVersion(1, 20); // don't forget to update libindi/drivers.xml + setVersion(1, 21); // don't forget to update libindi/drivers.xml setLX200Capability(LX200_HAS_TRACKING_FREQ | LX200_HAS_SITES | LX200_HAS_ALIGNMENT_TYPE | LX200_HAS_PULSE_GUIDING | LX200_HAS_PRECISE_TRACKING_FREQ); @@ -4616,7 +4616,7 @@ IPState LX200_OnStep::AlignStartGeometric (int stars) // Check for max number of stars and gracefully fall back to max, if more are requested. char read_buffer[RB_MAX_LEN] = {0}; int error_or_fail = getCommandSingleCharErrorOrLongResponse(PortFD, read_buffer, ":A?#"); - if(error_or_fail != 4 || read_buffer[0] < '0' || read_buffer[0] > '9' || read_buffer[1] < '0' || read_buffer[1] > '9' + if(error_or_fail != 4 || read_buffer[0] < '0' || read_buffer[0] > '9' || read_buffer[1] < '0' || read_buffer[1] > ':' || read_buffer[2] < '0' || read_buffer[2] > '9') { LOGF_INFO("Getting Alignment Status: response Error, response = %s>", read_buffer); @@ -4662,7 +4662,7 @@ bool LX200_OnStep::UpdateAlignStatus () // :A?# Align status // Returns: mno# // where m is the maximum number of alignment stars - // n is the current alignment star (0 otherwise) + // n is the current alignment star (0 otherwise) or ':' in case 9 stars selected // o is the last required alignment star when an alignment is in progress (0 otherwise) char msg[40] = {0}; @@ -4671,7 +4671,7 @@ bool LX200_OnStep::UpdateAlignStatus () char read_buffer[RB_MAX_LEN] = {0}; int error_or_fail = getCommandSingleCharErrorOrLongResponse(PortFD, read_buffer, ":A?#"); - if(error_or_fail != 4 || read_buffer[0] < '0' || read_buffer[0] > '9' || read_buffer[1] < '0' || read_buffer[1] > '9' + if(error_or_fail != 4 || read_buffer[0] < '0' || read_buffer[0] > '9' || read_buffer[1] < '0' || read_buffer[1] > ':' || read_buffer[2] < '0' || read_buffer[2] > '9') { LOGF_INFO("Getting Alignment Status: response Error, response = %s>", read_buffer); @@ -4683,7 +4683,14 @@ bool LX200_OnStep::UpdateAlignStatus () snprintf(stars, sizeof(stars), "%d", max_stars); IUSaveText(&OSNAlignT[5], stars); snprintf(stars, sizeof(stars), "%d", current_star); + if (read_buffer[1] > '9') + { + IUSaveText(&OSNAlignT[6], ":"); + } + else + { IUSaveText(&OSNAlignT[6], stars); + } snprintf(stars, sizeof(stars), "%d", align_stars); IUSaveText(&OSNAlignT[7], stars); LOGF_DEBUG("Align: max_stars: %i current star: %u, align_stars %u", max_stars, current_star, align_stars); diff --git a/drivers/telescope/lx200_OnStep.h b/drivers/telescope/lx200_OnStep.h index 846160871d..08a2981b21 100644 --- a/drivers/telescope/lx200_OnStep.h +++ b/drivers/telescope/lx200_OnStep.h @@ -25,6 +25,8 @@ =========================================== Version not yet updated/No INDI release: + Version 1.21 + - fixed Onstep returning '9:9' when 9 star alignment is achieved thanks to Howard Dutton Version 1.20 - fixed wrong messages due to different return with OnStepX - fixed Focuser Temerature not shown on Ekos