Telescope Control Library
Diff: EqMountServer.cpp
- Revision:
- 4:b8ad57bbf9e1
- Parent:
- 2:2ee28add0821
- Child:
- 10:e356188d208e
diff -r d3ea3816dad7 -r b8ad57bbf9e1 EqMountServer.cpp --- a/EqMountServer.cpp Tue Aug 21 00:00:48 2018 +0000 +++ b/EqMountServer.cpp Mon Aug 27 23:24:00 2018 +0000 @@ -410,7 +410,7 @@ if (argn == 0) { stprintf(server->getStream(), - "%s usage: align add [star]\nalign replace [n] [star]\nalign delete [n]\nalign show\nalign show [n]\n\nalign clear\n", + "%s usage: align add [star]\r\nalign replace [n] [star]\r\nalign delete [n]\r\nalign show\r\nalign show [n]\r\nalign clear\r\nalign set\r\nalign force\r\nalign update\r\n", cmd); return ERR_WRONG_NUM_PARAM; } @@ -420,7 +420,7 @@ if (argn != 3 && argn != 5) { stprintf(server->getStream(), - "%s usage: align add {ref_ra} {ref_dec}\n%s usage: align add {ref_ra} {ref_dec} {meas_ra} {meas_dec}\n", + "%s usage: align add {ref_ra} {ref_dec}\r\n%s usage: align add {ref_ra} {ref_dec} {meas_ra} {meas_dec}\r\n", cmd, cmd); return ERR_WRONG_NUM_PARAM; } @@ -461,7 +461,7 @@ if (argn != 4 && argn != 6) { stprintf(server->getStream(), - "%s usage: align replace [index] {ref_ra} {ref_dec}\n%s usage: align replace [index] {ref_ra} {ref_dec} {meas_ra} {meas_dec}\n", + "%s usage: align replace [index] {ref_ra} {ref_dec}\r\n%s usage: align replace [index] {ref_ra} {ref_dec} {meas_ra} {meas_dec}\r\n", cmd, cmd); return ERR_WRONG_NUM_PARAM; } @@ -512,41 +512,32 @@ { return ERR_PARAM_OUT_OF_RANGE; } - if (server->getEqMount()->getNumAlignmentStar() > 1) - return server->getEqMount()->removeAlignmentStar(n); - else - server->getEqMount()->clearCalibration(); + int ret = server->getEqMount()->removeAlignmentStar(n); + if (server->getEqMount()->getNumAlignmentStar() == 0){ + server->getEqMount()->clearCalibrationExceptOffsets(); + } + return ret; } else if (strcmp(argv[0], "show") == 0) { if (argn == 1) { - // Show all alignment stars -// int N = server->getEqMount()->getNumAlignmentStar(); -// for (int i = 0; i < N; i++) -// { -// AlignmentStar *as = server->getEqMount()->getAlignmentStar(i); -// stprintf(server->getStream(), "%s %d %.8f %.8f %.8f %.8f %d\n", -// cmd, i, as->star_ref.ra, as->star_ref.dec, -// as->star_meas.ra_delta, as->star_meas.dec_delta, -// as->timestamp); -// } - stprintf(server->getStream(), "%s offset %.8f %.8f\n", cmd, + stprintf(server->getStream(), "%s offset %.8f %.8f\r\n", cmd, server->getEqMount()->getCalibration().offset.ra_off, server->getEqMount()->getCalibration().offset.dec_off); - stprintf(server->getStream(), "%s pa %.8f %.8f\n", cmd, + stprintf(server->getStream(), "%s pa %.8f %.8f\r\n", cmd, server->getEqMount()->getCalibration().pa.alt, server->getEqMount()->getCalibration().pa.azi); - stprintf(server->getStream(), "%s cone %.8f\n", cmd, + stprintf(server->getStream(), "%s cone %.8f\r\n", cmd, server->getEqMount()->getCalibration().cone); - stprintf(server->getStream(), "%s error %g\n", cmd, + stprintf(server->getStream(), "%s error %g\r\n", cmd, server->getEqMount()->getCalibration().error); } else if (argn == 2) { if (strcmp(argv[1], "num") == 0) { - stprintf(server->getStream(), "%s %d\n", cmd, + stprintf(server->getStream(), "%s %d\r\n", cmd, server->getEqMount()->getNumAlignmentStar()); } else @@ -565,7 +556,7 @@ { return ERR_PARAM_OUT_OF_RANGE; } - stprintf(server->getStream(), "%s %.8f %.8f %.8f %.8f %d\n", + stprintf(server->getStream(), "%s %.8f %.8f %.8f %.8f %d\r\n", cmd, as->star_ref.ra, as->star_ref.dec, as->star_meas.ra_delta, as->star_meas.dec_delta, as->timestamp); @@ -607,7 +598,7 @@ EquatorialCoordinates eq = server->getEqMount()->convertToEqCoordinates( MountCoordinates(dec, ra)); - stprintf(server->getStream(), "%s %.8f %.8f\n", cmd, eq.ra, eq.dec); + stprintf(server->getStream(), "%s %.8f %.8f\r\n", cmd, eq.ra, eq.dec); } else if (strcmp(argv[1], "eq") == 0) { @@ -615,12 +606,66 @@ MountCoordinates mc = server->getEqMount()->convertToMountCoordinates( EquatorialCoordinates(dec, ra)); - stprintf(server->getStream(), "%s %.8f %.8f\n", cmd, mc.ra_delta, + stprintf(server->getStream(), "%s %.8f %.8f\r\n", cmd, mc.ra_delta, mc.dec_delta); } else return ERR_PARAM_OUT_OF_RANGE; } + else if (strcmp(argv[0], "set") == 0) + { + if (argn != 6) + { + stprintf(server->getStream(), + "%s usage: align set [offset_ra] [offset_dec] [pa_alt] [pa_az] [cone]\r\n", cmd); + return ERR_WRONG_NUM_PARAM; + } + char *tp; + EqCalibration calib; + calib.offset.ra_off = strtod(argv[1], &tp); + if (tp == argv[1]) + { + return ERR_PARAM_OUT_OF_RANGE; + } + calib.offset.dec_off = strtod(argv[2], &tp); + if (tp == argv[2]) + { + return ERR_PARAM_OUT_OF_RANGE; + } + calib.pa.alt = strtod(argv[3], &tp); + if (tp == argv[3]) + { + return ERR_PARAM_OUT_OF_RANGE; + } + calib.pa.azi = strtod(argv[4], &tp); + if (tp == argv[4]) + { + return ERR_PARAM_OUT_OF_RANGE; + } + calib.cone = strtod(argv[5], &tp); + if (tp == argv[5]) + { + return ERR_PARAM_OUT_OF_RANGE; + } + + server->getEqMount()->setCalibration(calib); + } + else if (strcmp(argv[0], "force") == 0) + { + if (argn != 1) + { + return ERR_WRONG_NUM_PARAM; + } + server->getEqMount()->forceAlignment(); + } + else if (strcmp(argv[0], "update") == 0) + { + if (argn != 1) + { + return ERR_WRONG_NUM_PARAM; + } + server->getEqMount()->recalibrate(); + } else { return ERR_PARAM_OUT_OF_RANGE;