From 5d16edee2e61eff984e04c6c1859a74a6dac4e9f Mon Sep 17 00:00:00 2001 From: Colin Date: Tue, 7 May 2019 17:51:08 +0100 Subject: [PATCH] Added support for MoveAxis --- ConformanceResult.txt | 423 ++++++++++-------- MeadeAutostar497/AscomClasses/Rates.cs | 6 +- MeadeAutostar497/AscomClasses/Telescope.cs | 4 +- .../Controller/ITelescopeController.cs | 1 + .../Controller/TelescopeController.cs | 105 +++++ 5 files changed, 341 insertions(+), 198 deletions(-) diff --git a/ConformanceResult.txt b/ConformanceResult.txt index f90bf18..ddaa3c9 100644 --- a/ConformanceResult.txt +++ b/ConformanceResult.txt @@ -2,6 +2,7 @@ Start-up ASCOM Device Conformance Checker - 64bit mode Start-up ASCOM Platform 6.4 SP1 6.4.1.2695 + ConformanceCheck ASCOM Device Conformance Checker Version 6.4.63.0, Build time: 18/12/2018 08:58:34 ConformanceCheck Running on: ASCOM Platform 6.4 SP1 6.4.1.2695 @@ -15,216 +16,250 @@ Error number for "Value Not Set 1" is: 80040402 Error number for "Value Not Set 2" is: 80040403 Error messages will not be interpreted to infer state. -22:57:13.923 Driver Access Checks OK -22:57:14.570 AccessChecks OK Successfully created driver using late binding -22:57:14.797 AccessChecks OK Successfully connected using late binding -22:57:14.802 AccessChecks INFO The driver is a .NET object -22:57:14.806 AccessChecks INFO The AssemblyQualifiedName is: ASCOM.MeadeAutostar497.Telescope, ASCOM.MeadeAutostar497.Telescope, Version= -22:57:14.811 AccessChecks INFO The driver implements interface: ASCOM.DeviceInterface.ITelescopeV3 -22:57:15.505 AccessChecks INFO Device does not expose interface ITelescopeV2 -22:57:16.310 AccessChecks INFO Device exposes interface ITelescopeV3 -22:57:17.625 AccessChecks OK Successfully created driver using driver access toolkit -22:57:17.798 AccessChecks OK Successfully connected using driver access toolkit +17:39:59.289 Driver Access Checks OK +17:39:59.932 AccessChecks OK Successfully created driver using late binding +17:40:00.154 AccessChecks OK Successfully connected using late binding +17:40:00.158 AccessChecks INFO The driver is a .NET object +17:40:00.162 AccessChecks INFO The AssemblyQualifiedName is: ASCOM.MeadeAutostar497.Telescope, ASCOM.MeadeAutostar497.Telescope, Version= +17:40:00.167 AccessChecks INFO The driver implements interface: ASCOM.DeviceInterface.ITelescopeV3 +17:40:00.863 AccessChecks INFO Device does not expose interface ITelescopeV2 +17:40:01.673 AccessChecks INFO Device exposes interface ITelescopeV3 +17:40:02.988 AccessChecks OK Successfully created driver using driver access toolkit +17:40:03.161 AccessChecks OK Successfully connected using driver access toolkit Conform is using ASCOM.DriverAccess.Telescope to get a Telescope object -22:57:19.118 ConformanceCheck OK Driver instance created successfully -22:57:19.335 ConformanceCheck OK Connected OK +17:40:04.487 ConformanceCheck OK Driver instance created successfully +17:40:04.705 ConformanceCheck OK Connected OK Common Driver Methods -22:57:19.376 InterfaceVersion OK 3 -22:57:19.403 Connected OK True -22:57:19.431 Description OK Meade Autostar 497 .net -22:57:19.459 DriverInfo OK Information about the driver itself. Version: 0.0 -22:57:19.488 DriverVersion OK 0.0 -22:57:19.517 Name OK Meade Autostar 497 .net -22:57:19.545 CommandString INFO Conform cannot test the CommandString method -22:57:19.551 CommandBlind INFO Conform cannot test the CommandBlind method -22:57:19.557 CommandBool INFO Conform cannot test the CommandBool method -22:57:19.563 Action INFO Conform cannot test the Action method -22:57:19.569 SupportedActions OK Driver returned an empty action list +17:40:04.746 InterfaceVersion OK 3 +17:40:04.774 Connected OK True +17:40:04.803 Description OK Meade Autostar 497 .net +17:40:04.832 DriverInfo OK Information about the driver itself. Version: 0.0 +17:40:04.861 DriverVersion OK 0.0 +17:40:04.891 Name OK Meade Autostar 497 .net +17:40:04.920 CommandString INFO Conform cannot test the CommandString method +17:40:04.926 CommandBlind INFO Conform cannot test the CommandBlind method +17:40:04.933 CommandBool INFO Conform cannot test the CommandBool method +17:40:04.940 Action INFO Conform cannot test the Action method +17:40:04.948 SupportedActions OK Driver returned an empty action list Can Properties -22:57:19.635 CanFindHome OK False -22:57:19.642 CanPark OK True -22:57:19.648 CanPulseGuide OK True -22:57:19.656 CanSetDeclinationRate OK False -22:57:19.664 CanSetGuideRates OK False -22:57:19.673 CanSetPark OK False -22:57:19.682 CanSetPierSide OK False -22:57:19.696 CanSetRightAscensionRate OK False -22:57:19.704 CanSetTracking OK False -22:57:19.712 CanSlew OK True -22:57:19.720 CanSlewltAz OK True -22:57:19.729 CanSlewAltAzAsync OK True -22:57:19.737 CanSlewAsync OK True -22:57:19.746 CanSync OK True -22:57:19.754 CanSyncAltAz OK False -22:57:19.763 CanUnPark OK False +17:40:05.013 CanFindHome OK False +17:40:05.020 CanPark OK True +17:40:05.027 CanPulseGuide OK True +17:40:05.035 CanSetDeclinationRate OK False +17:40:05.043 CanSetGuideRates OK False +17:40:05.051 CanSetPark OK False +17:40:05.060 CanSetPierSide OK False +17:40:05.072 CanSetRightAscensionRate OK False +17:40:05.081 CanSetTracking OK False +17:40:05.088 CanSlew OK True +17:40:05.097 CanSlewltAz OK True +17:40:05.106 CanSlewAltAzAsync OK True +17:40:05.115 CanSlewAsync OK True +17:40:05.123 CanSync OK True +17:40:05.132 CanSyncAltAz OK False +17:40:05.140 CanUnPark OK False Pre-run Checks -22:57:19.809 Mount Safety INFO Scope is not parked, continuing testing -22:57:19.861 TimeCheck INFO PC Time Zone: GMT Summer Time, offset -1 hours. -22:57:19.869 TimeCheck INFO PC UTCDate: 06-May-2019 21:57:19.869 -22:57:19.998 TimeCheck INFO Mount UTCDate: 02-May-2019 19:38:00.000 +17:40:05.190 Mount Safety INFO Scope is not parked, continuing testing +17:40:05.247 TimeCheck INFO PC Time Zone: GMT Summer Time, offset -1 hours. +17:40:05.255 TimeCheck INFO PC UTCDate: 07-May-2019 16:40:05.255 +17:40:05.374 TimeCheck INFO Mount UTCDate: 02-May-2019 19:40:33.000 Properties -22:57:20.071 AlignmentMode OK algPolar -22:57:20.123 Altitude OK 0.00 -22:57:20.161 ApertureArea OK Optional member threw a PropertyNotImplementedException exception. -22:57:20.195 ApertureDiameter OK Optional member threw a PropertyNotImplementedException exception. -22:57:20.227 AtHome OK False -22:57:20.258 AtPark OK False -22:57:20.317 Azimuth OK 122.84 -22:57:20.375 Declination OK -00:00:02.00 -22:57:20.406 DeclinationRate Read OK 0.00 -22:57:20.438 DeclinationRate Write OK CanSetDeclinationRate is False and a PropertyNotImplementedException exception was generated as expected -22:57:20.470 DoesRefraction Read OK Optional member threw a PropertyNotImplementedException exception. -22:57:20.506 DoesRefraction Write OK Optional member threw a PropertyNotImplementedException exception. -22:57:20.538 EquatorialSystem OK equLocalTopocentric -22:57:20.570 FocalLength OK Optional member threw a PropertyNotImplementedException exception. -22:57:20.606 GuideRateDeclination Read OK Optional member threw a PropertyNotImplementedException exception. -22:57:20.616 GuideRateDeclination Write OK CanSetGuideRates is False and a PropertyNotImplementedException exception was generated as expected -22:57:20.649 GuideRateRightAscension Read OK Optional member threw a PropertyNotImplementedException exception. -22:57:20.660 GuideRateRightAscension Write OK CanSetGuideRates is False and a PropertyNotImplementedException exception was generated as expected -22:57:20.692 IsPulseGuiding OK False -22:57:20.755 RightAscension OK 07:59:56.00 -22:57:20.790 RightAscensionRate Read OK 0.00 -22:57:20.823 RightAscensionRate Write OK CanSetRightAscensionRate is False and a PropertyNotImplementedException exception was generated as expected -22:57:20.856 SiteElevation Read OK Optional member threw a PropertyNotImplementedException exception. -22:57:20.890 SiteElevation Write OK Optional member threw a PropertyNotImplementedException exception. -22:57:20.902 SiteElevation Write OK Optional member threw a PropertyNotImplementedException exception. -22:57:20.912 SiteElevation Write OK Optional member threw a PropertyNotImplementedException exception. -22:57:20.969 SiteLatitude Read OK 00:00:00.00 -22:57:21.007 SiteLatitude Write OK Invalid Value exception generated as expected on set site latitude < -90 degrees -22:57:21.019 SiteLatitude Write OK Invalid Value exception generated as expected on set site latitude > 90 degrees -22:57:21.058 SiteLatitude Write OK Legal value 00:00:00.00 degrees written successfully -22:57:21.114 SiteLongitude Read OK -27:48:00.00 -22:57:21.150 SiteLongitude Write OK Invalid Value exception generated as expected on set site longitude < -180 degrees -22:57:21.162 SiteLongitude Write OK Invalid Value exception generated as expected on set site longitude > 180 degrees -22:57:21.256 SiteLongitude Write OK Legal value -27:48:00.00 degrees written successfully -22:57:21.296 Slewing OK False -22:57:21.333 SlewSettleTime Read OK Optional member threw a PropertyNotImplementedException exception. -22:57:21.367 SlewSettleTime Write OK Optional member threw a PropertyNotImplementedException exception. -22:57:21.379 SlewSettleTime Write OK Optional member threw a PropertyNotImplementedException exception. -22:57:21.414 SideOfPier Read OK Optional member threw a PropertyNotImplementedException exception. -22:57:21.465 SiderealTime OK 11:02:24.71 -22:57:21.477 SiderealTime OK Scope and ASCOM sidereal times agree to better than 5 minutes, Scope: 11:02:24.71, ASCOM: 11:04:01.82 -22:57:21.520 TargetDeclination Read OK .NET Not InvalidOperationException generated on read before write -22:57:21.554 TargetDeclination Write INFO Tests moved after the SlewToCoordinates tests so that Conform can check they properly set target coordinates. -22:57:21.566 TargetRightAscension Read OK .NET Not InvalidOperationException generated on read before write -22:57:21.601 TargetRightAscension Write INFO Tests moved after the SlewToCoordinates tests so that Conform can check they properly set target coordinates. -22:57:21.613 Tracking Read OK True -22:57:21.647 Tracking Write OK CanSetTracking is False and a PropertyNotImplementedException exception was generated as expected -22:57:21.688 TrackingRates Found drive rate: driveSidereal -22:57:21.702 TrackingRates OK Drive rates read OK -22:57:21.716 TrackingRates OK Disposed tracking rates OK -22:57:21.751 TrackingRates OK Successfully obtained a TrackingRates object after the previous TrackingRates object was disposed -22:57:21.763 TrackingRate Read ISSUE This member is mandatory but threw a PropertyNotImplementedException exception, it must function per the ASCOM specification. -22:57:21.854 UTCDate Read OK 02-May-2019 19:38:02.000 -22:57:22.019 UTCDate Write OK New UTCDate written successfully: 02/05/2019 20:38:02 +17:40:05.448 AlignmentMode OK algPolar +17:40:05.499 Altitude OK 8.79 +17:40:05.536 ApertureArea OK Optional member threw a PropertyNotImplementedException exception. +17:40:05.569 ApertureDiameter OK Optional member threw a PropertyNotImplementedException exception. +17:40:05.601 AtHome OK False +17:40:05.632 AtPark OK False +17:40:05.745 Azimuth OK 38.02 +17:40:05.802 Declination OK -08:47:23.00 +17:40:05.833 DeclinationRate Read OK 0.00 +17:40:05.866 DeclinationRate Write OK CanSetDeclinationRate is False and a PropertyNotImplementedException exception was generated as expected +17:40:05.899 DoesRefraction Read OK Optional member threw a PropertyNotImplementedException exception. +17:40:05.931 DoesRefraction Write OK Optional member threw a PropertyNotImplementedException exception. +17:40:05.963 EquatorialSystem OK equLocalTopocentric +17:40:05.995 FocalLength OK Optional member threw a PropertyNotImplementedException exception. +17:40:06.028 GuideRateDeclination Read OK Optional member threw a PropertyNotImplementedException exception. +17:40:06.039 GuideRateDeclination Write OK CanSetGuideRates is False and a PropertyNotImplementedException exception was generated as expected +17:40:06.072 GuideRateRightAscension Read OK Optional member threw a PropertyNotImplementedException exception. +17:40:06.084 GuideRateRightAscension Write OK CanSetGuideRates is False and a PropertyNotImplementedException exception was generated as expected +17:40:06.118 IsPulseGuiding OK False +17:40:06.177 RightAscension OK 02:55:14.00 +17:40:06.209 RightAscensionRate Read OK 0.00 +17:40:06.242 RightAscensionRate Write OK CanSetRightAscensionRate is False and a PropertyNotImplementedException exception was generated as expected +17:40:06.275 SiteElevation Read OK Optional member threw a PropertyNotImplementedException exception. +17:40:06.310 SiteElevation Write OK Optional member threw a PropertyNotImplementedException exception. +17:40:06.321 SiteElevation Write OK Optional member threw a PropertyNotImplementedException exception. +17:40:06.332 SiteElevation Write OK Optional member threw a PropertyNotImplementedException exception. +17:40:06.388 SiteLatitude Read OK 00:00:00.00 +17:40:06.427 SiteLatitude Write OK Invalid Value exception generated as expected on set site latitude < -90 degrees +17:40:06.438 SiteLatitude Write OK Invalid Value exception generated as expected on set site latitude > 90 degrees +17:40:06.476 SiteLatitude Write OK Legal value 00:00:00.00 degrees written successfully +17:40:06.530 SiteLongitude Read OK -35:48:00.00 +17:40:06.565 SiteLongitude Write OK Invalid Value exception generated as expected on set site longitude < -180 degrees +17:40:06.576 SiteLongitude Write OK Invalid Value exception generated as expected on set site longitude > 180 degrees +17:40:06.666 SiteLongitude Write OK Legal value -35:48:00.00 degrees written successfully +17:40:06.708 Slewing OK False +17:40:06.743 SlewSettleTime Read OK Optional member threw a PropertyNotImplementedException exception. +17:40:06.778 SlewSettleTime Write OK Optional member threw a PropertyNotImplementedException exception. +17:40:06.790 SlewSettleTime Write OK Optional member threw a PropertyNotImplementedException exception. +17:40:06.824 SideOfPier Read OK Optional member threw a PropertyNotImplementedException exception. +17:40:06.880 SiderealTime OK 05:16:14.57 +17:40:06.892 SiderealTime OK Scope and ASCOM sidereal times agree to better than 5 minutes, Scope: 05:16:14.57, ASCOM: 05:17:51.67 +17:40:06.943 TargetDeclination Read OK .NET Not InvalidOperationException generated on read before write +17:40:06.978 TargetDeclination Write INFO Tests moved after the SlewToCoordinates tests so that Conform can check they properly set target coordinates. +17:40:06.990 TargetRightAscension Read OK .NET Not InvalidOperationException generated on read before write +17:40:07.025 TargetRightAscension Write INFO Tests moved after the SlewToCoordinates tests so that Conform can check they properly set target coordinates. +17:40:07.037 Tracking Read OK True +17:40:07.071 Tracking Write OK CanSetTracking is False and a PropertyNotImplementedException exception was generated as expected +17:40:07.115 TrackingRates Found drive rate: driveSidereal +17:40:07.128 TrackingRates OK Drive rates read OK +17:40:07.140 TrackingRates OK Disposed tracking rates OK +17:40:07.175 TrackingRates OK Successfully obtained a TrackingRates object after the previous TrackingRates object was disposed +17:40:07.188 TrackingRate Read ISSUE This member is mandatory but threw a PropertyNotImplementedException exception, it must function per the ASCOM specification. +17:40:07.280 UTCDate Read OK 02-May-2019 19:40:35.000 +17:40:07.461 UTCDate Write OK New UTCDate written successfully: 02/05/2019 20:40:35 Methods -22:57:22.264 CanMoveAxis:Primary OK CanMoveAxis:Primary True -22:57:22.299 CanMoveAxis:Secondary OK CanMoveAxis:Secondary True -22:57:22.335 CanMoveAxis:Tertiary OK CanMoveAxis:Tertiary False -22:57:22.370 Park/Unpark INFO Tests skipped -22:57:22.392 AbortSlew OK AbortSlew OK when not slewing -22:57:22.457 AxisRate:Primary OK Empty axis rate returned -22:57:22.470 AxisRate:Primary OK Disposed axis rates OK -22:57:22.482 AxisRate:Secondary OK Empty axis rate returned -22:57:22.494 AxisRate:Secondary OK Disposed axis rates OK -22:57:22.506 AxisRate:Tertiary OK Empty axis rate returned -22:57:22.518 AxisRate:Tertiary OK Disposed axis rates OK -22:57:22.534 FindHome OK CanFindHome is False and a MethodNotImplementedException exception was generated as expected -22:57:22.582 MoveAxis Primary WARNING MoveAxis tests skipped because there are no AxisRate values -22:57:22.594 MoveAxis Primary OK AxisRates object successfully disposed -22:57:22.651 MoveAxis Secondary WARNING MoveAxis tests skipped because there are no AxisRate values -22:57:22.663 MoveAxis Secondary OK AxisRates object successfully disposed -22:57:22.723 MoveAxis Tertiary OK CanMoveAxis Tertiary is False and a MethodNotImplementedException exception was generated as expected -22:57:24.763 PulseGuide OK Synchronous pulse guide found OK -22:57:48.347 SlewToCoordinates OK Slewed OK. RA: 10:02:28.12 -22:57:48.361 SlewToCoordinates INFO Slewed within 7196.0 arc seconds of expected DEC: 01:00:00.00, actual DEC: -00:59:56.00 -22:57:48.393 SlewToCoordinates OK The TargetRightAscension property 10:02:28.12 matches the expected RA OK. -22:57:48.430 SlewToCoordinates OK The TargetDeclination property 01:00:00.00 matches the expected Declination OK. -22:57:48.487 SlewToCoordinates (Bad L) OK Correctly rejected bad RA coordinate: -01:00:00.00 -22:57:48.575 SlewToCoordinates (Bad L) OK Correctly rejected bad Dec coordinate: -100:00:00.00 -22:57:48.634 SlewToCoordinates (Bad H) OK Correctly rejected bad RA coordinate: 25:00:00.00 -22:57:48.713 SlewToCoordinates (Bad H) OK Correctly rejected bad Dec coordinate: 100:00:00.00 -22:58:10.357 SlewToCoordinatesAsync OK Slewed OK. RA: 09:02:52.13 -22:58:10.369 SlewToCoordinatesAsync INFO Slewed within 14396.0 arc seconds of expected DEC: 02:00:00.00, actual DEC: -01:59:56.00 -22:58:10.402 SlewToCoordinatesAsync OK The TargetRightAscension property 09:02:52.13 matches the expected RA OK. -22:58:10.436 SlewToCoordinatesAsync OK The TargetDeclination property 02:00:00.00 matches the expected Declination OK. -22:58:10.475 SlewToCoordinatesAsync (Bad L) OK Correctly rejected bad RA coordinate: -01:00:00.00 -22:58:10.559 SlewToCoordinatesAsync (Bad L) OK Correctly rejected bad Dec coordinate: -100:00:00.00 -22:58:10.618 SlewToCoordinatesAsync (Bad H) OK Correctly rejected bad RA coordinate: 25:00:00.00 -22:58:10.701 SlewToCoordinatesAsync (Bad H) OK Correctly rejected bad Dec coordinate: 100:00:00.00 -22:58:32.348 SyncToCoordinates INFO Slewed to start position within 33.4 arc seconds of expected RA: 08:03:14.23, actual RA: 08:03:12.00 -22:58:32.361 SyncToCoordinates OK Slewed to start position OK. DEC: 00:00:00.00 -22:58:33.043 SyncToCoordinates INFO Synced to sync position within 3566.6 arc seconds of expected RA: 07:59:14.23, actual RA: 08:03:12.00 -22:58:33.057 SyncToCoordinates INFO Synced to sync position within 3598.0 arc seconds of expected DEC: -01:00:00.00, actual DEC: -00:00:02.00 -22:58:33.096 SyncToCoordinates ERROR The TargetRightAscension property 07:59:12.00 does not match the expected RA 07:59:14.23 -22:58:33.133 SyncToCoordinates ERROR The TargetDeclination property -00:01:00.00 does not match the expected Declination -01:00:00.00 -22:58:54.318 SyncToCoordinates INFO Slewed back to start position within 33.4 arc seconds of expected RA: 08:03:14.23, actual RA: 08:03:12.00 -22:58:54.333 SyncToCoordinates OK Slewed back to start position OK. DEC: 00:00:00.00 -22:58:55.011 SyncToCoordinates INFO Synced to reversed sync position within 3633.4 arc seconds of expected RA: 08:07:14.23, actual RA: 08:03:12.00 -22:58:55.026 SyncToCoordinates INFO Synced to reversed sync position within 3599.0 arc seconds of expected DEC: 01:00:00.00, actual DEC: 00:00:01.00 -22:59:14.298 SyncToCoordinates INFO Slewed back to start position within 33.4 arc seconds of expected RA: 08:03:14.23, actual RA: 08:03:12.00 -22:59:14.326 SyncToCoordinates OK Slewed back to start position OK. DEC: 00:00:00.00 -22:59:14.363 SyncToCoordinates (Bad L) OK Correctly rejected bad RA coordinate: -01:00:00.00 -22:59:14.453 SyncToCoordinates (Bad L) OK Correctly rejected bad Dec coordinate: -100:00:00.00 -22:59:14.513 SyncToCoordinates (Bad H) OK Correctly rejected bad RA coordinate: 25:00:00.00 -22:59:14.599 SyncToCoordinates (Bad H) OK Correctly rejected bad Dec coordinate: 100:00:00.00 -22:59:14.658 TargetRightAscension Write OK Invalid Value exception generated as expected on set TargetRightAscension < 0 hours -22:59:14.674 TargetRightAscension Write OK Invalid Value exception generated as expected on set TargetRightAscension > 24 hours -22:59:14.775 TargetRightAscension Write OK Target RightAscension is within 5 seconds of the value set: 07:04:18.28 -22:59:14.813 TargetDeclination Write OK Invalid Value exception generated as expected on set TargetDeclination < -90 degrees -22:59:14.829 TargetDeclination Write OK Invalid Value exception generated as expected on set TargetDeclination < -90 degrees -22:59:14.906 TargetDeclination Write OK Legal value 01:00:00.00 DD:MM:SS written successfully -22:59:15.057 SlewToTarget ISSUE CanSlew is True and a MethodNotImplementedException exception was thrown, this method must function per the ASCOM specification. -22:59:15.100 SlewToTarget (Bad L) OK Telescope.TargetRA correctly rejected bad RA coordinate: -01:00:00.00 -22:59:15.146 SlewToTarget (Bad L) OK Telescope.TargetDeclination correctly rejected bad Dec coordinate: -100:00:00.00 -22:59:15.205 SlewToTarget (Bad H) OK Telescope.TargetRA correctly rejected bad RA coordinate: 25:00:00.00 -22:59:15.251 SlewToTarget (Bad H) OK Telescope.TargetDeclination correctly rejected bad Dec coordinate: 100:00:00.00 -22:59:15.422 SlewToTargetAsync ISSUE CanSlewAsync is True and a MethodNotImplementedException exception was thrown, this method must function per the ASCOM specification. -22:59:15.461 SlewToTargetAsync (Bad L) OK Telescope.TargetRA correctly rejected bad RA coordinate: -01:00:00.00 -22:59:15.501 SlewToTargetAsync (Bad L) OK Telescope.TargetDeclination correctly rejected bad Dec coordinate: -100:00:00.00 -22:59:15.560 SlewToTargetAsync (Bad H) OK Telescope.TargetRA correctly rejected bad RA coordinate: 25:00:00.00 -22:59:15.603 SlewToTargetAsync (Bad H) OK Telescope.TargetDeclination correctly rejected bad Dec coordinate: 100:00:00.00 -22:59:15.666 DestinationSideOfPier Test skipped as AligmentMode is not German Polar -22:59:15.866 SlewToAltAz INFO Slewed to within 26:49:39.00 DD:MM:SS of expected Azimuth: 150:00:00.00 -22:59:15.880 SlewToAltAz INFO Slewed to within 49:59:58.00 DD:MM:SS of expected Altitude: 50:00:00.00 -22:59:15.919 SlewToAltAz (Bad L) OK Correctly rejected bad Altitude coordinate: -100:00:00.00 -22:59:15.976 SlewToAltAz (Bad L) OK Correctly rejected bad Azimuth coordinate: -10:00:00.00 -22:59:16.037 SlewToAltAz (Bad H) OK Correctly rejected bad Altitude coordinate: 100:00:00.00 -22:59:16.093 SlewToAltAz (Bad H) OK Correctly rejected bad Azimuth coordinate: 370:00:00.00 -22:59:21.403 SlewToAltAzAsync INFO Slewed to within 31:51:02.00 DD:MM:SS of expected Azimuth: 155:00:00.00 -22:59:21.417 SlewToAltAzAsync INFO Slewed to within 54:59:58.00 DD:MM:SS of expected Altitude: 55:00:00.00 -22:59:21.457 SlewToAltAzAsync (Bad L) OK Correctly rejected bad Altitude coordinate: -100:00:00.00 -22:59:21.519 SlewToAltAzAsync (Bad L) OK Correctly rejected bad Azimuth coordinate: -10:00:00.00 -22:59:21.579 SlewToAltAzAsync (Bad H) OK Correctly rejected bad Altitude coordinate: 100:00:00.00 -22:59:21.698 SlewToAltAzAsync (Bad H) OK Correctly rejected bad Azimuth coordinate: 370:00:00.00 -22:59:40.299 SyncToTarget INFO Slewed to start position within 21.2 arc seconds of expected RA: 08:04:25.41, actual RA: 08:04:24.00 -22:59:40.313 SyncToTarget OK Slewed to start position OK. DEC: 00:00:00.00 -22:59:40.997 SyncToTarget INFO Synced to sync position within 3578.8 arc seconds of expected RA: 08:00:25.41, actual RA: 08:04:24.00 -22:59:41.010 SyncToTarget INFO Synced to sync position within 3601.0 arc seconds of expected DEC: -01:00:00.00, actual DEC: 00:00:01.00 -23:00:00.282 SyncToTarget INFO Slewed back to start position within 21.2 arc seconds of expected RA: 08:04:25.41, actual RA: 08:04:24.00 -23:00:00.295 SyncToTarget OK Slewed back to start position OK. DEC: 00:00:00.00 -23:00:00.979 SyncToTarget INFO Synced to reversed sync position within 3621.2 arc seconds of expected RA: 08:08:25.41, actual RA: 08:04:24.00 -23:00:00.993 SyncToTarget INFO Synced to reversed sync position within 3596.0 arc seconds of expected DEC: 01:00:00.00, actual DEC: 00:00:04.00 -23:00:20.266 SyncToTarget INFO Slewed back to start position within 21.2 arc seconds of expected RA: 08:04:25.41, actual RA: 08:04:24.00 -23:00:20.294 SyncToTarget OK Slewed back to start position OK. DEC: 00:00:00.00 -23:00:20.333 SyncToTarget (Bad L) OK Telescope.TargetRA correctly rejected bad RA coordinate: -01:00:00.00 -23:00:20.375 SyncToTarget (Bad L) OK Telescope.TargetDeclination correctly rejected bad Dec coordinate: -100:00:00.00 -23:00:20.436 SyncToTarget (Bad H) OK Telescope.TargetRA correctly rejected bad RA coordinate: 25:00:00.00 -23:00:20.480 SyncToTarget (Bad H) OK Telescope.TargetDeclination correctly rejected bad Dec coordinate: 100:00:00.00 -23:00:20.632 SyncToAltAz OK CanSyncAltAz is False and a MethodNotImplementedException exception was generated as expected +17:40:07.705 CanMoveAxis:Primary OK CanMoveAxis:Primary True +17:40:07.742 CanMoveAxis:Secondary OK CanMoveAxis:Secondary True +17:40:07.778 CanMoveAxis:Tertiary OK CanMoveAxis:Tertiary False +17:40:07.814 Park/Unpark INFO Tests skipped +17:40:07.836 AbortSlew OK AbortSlew OK when not slewing +17:40:07.904 AxisRate:Primary OK Axis rate minimum: 1 Axis rate maximum: 1 +17:40:07.916 AxisRate:Primary OK Axis rate minimum: 2 Axis rate maximum: 2 +17:40:07.929 AxisRate:Primary OK Axis rate minimum: 3 Axis rate maximum: 3 +17:40:07.942 AxisRate:Primary OK Axis rate minimum: 4 Axis rate maximum: 4 +17:40:07.954 AxisRate:Primary OK No overlapping axis rates found +17:40:07.966 AxisRate:Primary OK No duplicate axis rates found +17:40:07.978 AxisRate:Primary OK Successfully disposed of rate 1 - 1 +17:40:07.990 AxisRate:Primary OK Successfully disposed of rate 2 - 2 +17:40:08.002 AxisRate:Primary OK Successfully disposed of rate 3 - 3 +17:40:08.014 AxisRate:Primary OK Successfully disposed of rate 4 - 4 +17:40:08.025 AxisRate:Primary OK Disposed axis rates OK +17:40:08.038 AxisRate:Secondary OK Axis rate minimum: 1 Axis rate maximum: 1 +17:40:08.050 AxisRate:Secondary OK Axis rate minimum: 2 Axis rate maximum: 2 +17:40:08.064 AxisRate:Secondary OK Axis rate minimum: 3 Axis rate maximum: 3 +17:40:08.077 AxisRate:Secondary OK Axis rate minimum: 4 Axis rate maximum: 4 +17:40:08.092 AxisRate:Secondary OK No overlapping axis rates found +17:40:08.104 AxisRate:Secondary OK No duplicate axis rates found +17:40:08.117 AxisRate:Secondary OK Successfully disposed of rate 1 - 1 +17:40:08.131 AxisRate:Secondary OK Successfully disposed of rate 2 - 2 +17:40:08.144 AxisRate:Secondary OK Successfully disposed of rate 3 - 3 +17:40:08.158 AxisRate:Secondary OK Successfully disposed of rate 4 - 4 +17:40:08.171 AxisRate:Secondary OK Disposed axis rates OK +17:40:08.187 AxisRate:Tertiary OK Empty axis rate returned +17:40:08.203 AxisRate:Tertiary OK Disposed axis rates OK +17:40:08.219 FindHome OK CanFindHome is False and a MethodNotImplementedException exception was generated as expected +17:40:08.272 MoveAxis Primary OK Can successfully set a movement rate of zero +17:40:08.287 MoveAxis Primary OK Exception correctly generated when move axis is set below lowest rate (0.5) +17:40:08.323 MoveAxis Primary OK Exception correctly generated when move axis is set above highest rate (5) +17:40:12.533 MoveAxis Primary OK Successfully moved axis at minimum rate: 1 +17:40:16.852 MoveAxis Primary OK Successfully moved axis at maximum rate: 4 +17:40:21.063 MoveAxis Primary OK Tracking state correctly restored after MoveAxis when CanSetTracking is false +17:40:21.078 MoveAxis Primary OK AxisRates object successfully disposed +17:40:21.137 MoveAxis Secondary OK Can successfully set a movement rate of zero +17:40:21.154 MoveAxis Secondary OK Exception correctly generated when move axis is set below lowest rate (0.5) +17:40:21.193 MoveAxis Secondary OK Exception correctly generated when move axis is set above highest rate (5) +17:40:25.403 MoveAxis Secondary OK Successfully moved axis at minimum rate: 1 +17:40:29.692 MoveAxis Secondary OK Successfully moved axis at maximum rate: 4 +17:40:33.903 MoveAxis Secondary OK Tracking state correctly restored after MoveAxis when CanSetTracking is false +17:40:33.918 MoveAxis Secondary OK AxisRates object successfully disposed +17:40:33.978 MoveAxis Tertiary OK CanMoveAxis Tertiary is False and a MethodNotImplementedException exception was generated as expected +17:40:36.018 PulseGuide OK Synchronous pulse guide found OK +17:40:58.303 SlewToCoordinates INFO Slewed within 58.4 arc seconds of expected RA: 04:16:43.90, actual RA: 04:16:40.00 +17:40:58.316 SlewToCoordinates INFO Slewed within 7204.0 arc seconds of expected DEC: 01:00:00.00, actual DEC: -01:00:04.00 +17:40:58.353 SlewToCoordinates ERROR The TargetRightAscension property 04:16:40.00 does not match the expected RA 04:16:43.90 +17:40:58.388 SlewToCoordinates OK The TargetDeclination property 01:00:00.00 matches the expected Declination OK. +17:40:58.438 SlewToCoordinates (Bad L) OK Correctly rejected bad RA coordinate: -01:00:00.00 +17:40:58.519 SlewToCoordinates (Bad L) OK Correctly rejected bad Dec coordinate: -100:00:00.00 +17:40:58.579 SlewToCoordinates (Bad H) OK Correctly rejected bad RA coordinate: 25:00:00.00 +17:40:58.666 SlewToCoordinates (Bad H) OK Correctly rejected bad Dec coordinate: 100:00:00.00 +17:41:20.304 SlewToCoordinatesAsync INFO Slewed within 38.9 arc seconds of expected RA: 03:17:06.59, actual RA: 03:17:04.00 +17:41:20.318 SlewToCoordinatesAsync INFO Slewed within 14396.0 arc seconds of expected DEC: 02:00:00.00, actual DEC: -01:59:56.00 +17:41:20.353 SlewToCoordinatesAsync ERROR The TargetRightAscension property 03:17:04.00 does not match the expected RA 03:17:06.59 +17:41:20.390 SlewToCoordinatesAsync OK The TargetDeclination property 02:00:00.00 matches the expected Declination OK. +17:41:20.429 SlewToCoordinatesAsync (Bad L) OK Correctly rejected bad RA coordinate: -01:00:00.00 +17:41:20.510 SlewToCoordinatesAsync (Bad L) OK Correctly rejected bad Dec coordinate: -100:00:00.00 +17:41:20.570 SlewToCoordinatesAsync (Bad H) OK Correctly rejected bad RA coordinate: 25:00:00.00 +17:41:20.654 SlewToCoordinatesAsync (Bad H) OK Correctly rejected bad Dec coordinate: 100:00:00.00 +17:41:42.297 SyncToCoordinates INFO Slewed to start position within 10.4 arc seconds of expected RA: 02:17:28.69, actual RA: 02:17:28.00 +17:41:42.310 SyncToCoordinates OK Slewed to start position OK. DEC: 00:00:00.00 +17:41:42.995 SyncToCoordinates INFO Synced to sync position within 3589.6 arc seconds of expected RA: 02:13:28.69, actual RA: 02:17:28.00 +17:41:43.007 SyncToCoordinates INFO Synced to sync position within 3598.0 arc seconds of expected DEC: -01:00:00.00, actual DEC: -00:00:02.00 +17:41:43.043 SyncToCoordinates ERROR The TargetRightAscension property 02:13:28.00 does not match the expected RA 02:13:28.69 +17:41:43.075 SyncToCoordinates ERROR The TargetDeclination property -00:01:00.00 does not match the expected Declination -01:00:00.00 +17:42:02.261 SyncToCoordinates INFO Slewed back to start position within 10.4 arc seconds of expected RA: 02:17:28.69, actual RA: 02:17:28.00 +17:42:02.273 SyncToCoordinates OK Slewed back to start position OK. DEC: 00:00:00.00 +17:42:02.954 SyncToCoordinates INFO Synced to reversed sync position within 3610.4 arc seconds of expected RA: 02:21:28.69, actual RA: 02:17:28.00 +17:42:02.967 SyncToCoordinates INFO Synced to reversed sync position within 3596.0 arc seconds of expected DEC: 01:00:00.00, actual DEC: 00:00:04.00 +17:42:22.265 SyncToCoordinates INFO Slewed back to start position within 10.4 arc seconds of expected RA: 02:17:28.69, actual RA: 02:17:28.00 +17:42:22.278 SyncToCoordinates OK Slewed back to start position OK. DEC: 00:00:00.00 +17:42:22.321 SyncToCoordinates (Bad L) OK Correctly rejected bad RA coordinate: -01:00:00.00 +17:42:22.407 SyncToCoordinates (Bad L) OK Correctly rejected bad Dec coordinate: -100:00:00.00 +17:42:22.472 SyncToCoordinates (Bad H) OK Correctly rejected bad RA coordinate: 25:00:00.00 +17:42:22.554 SyncToCoordinates (Bad H) OK Correctly rejected bad Dec coordinate: 100:00:00.00 +17:42:22.611 TargetRightAscension Write OK Invalid Value exception generated as expected on set TargetRightAscension < 0 hours +17:42:22.625 TargetRightAscension Write OK Invalid Value exception generated as expected on set TargetRightAscension > 24 hours +17:42:22.724 TargetRightAscension Write OK Target RightAscension is within 5 seconds of the value set: 01:18:30.74 +17:42:22.760 TargetDeclination Write OK Invalid Value exception generated as expected on set TargetDeclination < -90 degrees +17:42:22.777 TargetDeclination Write OK Invalid Value exception generated as expected on set TargetDeclination < -90 degrees +17:42:22.854 TargetDeclination Write OK Legal value 01:00:00.00 DD:MM:SS written successfully +17:42:40.263 SlewToTarget INFO Slewed within 44.9 arc seconds of expected RA: 02:18:30.99, actual RA: 02:18:28.00 +17:42:40.276 SlewToTarget INFO Slewed within 21594.0 arc seconds of expected DEC: 03:00:00.00, actual DEC: -02:59:54.00 +17:42:40.311 SlewToTarget ERROR The TargetRightAscension property 02:18:28.00 does not match the expected RA 02:18:30.99 +17:42:40.345 SlewToTarget OK The TargetDeclination property 03:00:00.00 matches the expected Declination OK. +17:42:40.384 SlewToTarget (Bad L) OK Telescope.TargetRA correctly rejected bad RA coordinate: -01:00:00.00 +17:42:40.425 SlewToTarget (Bad L) OK Telescope.TargetDeclination correctly rejected bad Dec coordinate: -100:00:00.00 +17:42:40.486 SlewToTarget (Bad H) OK Telescope.TargetRA correctly rejected bad RA coordinate: 25:00:00.00 +17:42:40.529 SlewToTarget (Bad H) OK Telescope.TargetDeclination correctly rejected bad Dec coordinate: 100:00:00.00 +17:43:02.273 SlewToTargetAsync INFO Slewed within 11.0 arc seconds of expected RA: 01:18:48.73, actual RA: 01:18:48.00 +17:43:02.286 SlewToTargetAsync INFO Slewed within 28797.0 arc seconds of expected DEC: 04:00:00.00, actual DEC: -03:59:57.00 +17:43:02.321 SlewToTargetAsync ERROR The TargetRightAscension property 01:18:48.00 does not match the expected RA 01:18:48.73 +17:43:02.355 SlewToTargetAsync OK The TargetDeclination property 04:00:00.00 matches the expected Declination OK. +17:43:02.394 SlewToTargetAsync (Bad L) OK Telescope.TargetRA correctly rejected bad RA coordinate: -01:00:00.00 +17:43:02.437 SlewToTargetAsync (Bad L) OK Telescope.TargetDeclination correctly rejected bad Dec coordinate: -100:00:00.00 +17:43:02.495 SlewToTargetAsync (Bad H) OK Telescope.TargetRA correctly rejected bad RA coordinate: 25:00:00.00 +17:43:02.538 SlewToTargetAsync (Bad H) OK Telescope.TargetDeclination correctly rejected bad Dec coordinate: 100:00:00.00 +17:43:02.597 DestinationSideOfPier Test skipped as AligmentMode is not German Polar +17:43:02.786 SlewToAltAz INFO Slewed to within 136:49:26.00 DD:MM:SS of expected Azimuth: 150:00:00.00 +17:43:02.800 SlewToAltAz INFO Slewed to within 46:00:02.00 DD:MM:SS of expected Altitude: 50:00:00.00 +17:43:02.843 SlewToAltAz (Bad L) OK Correctly rejected bad Altitude coordinate: -100:00:00.00 +17:43:02.903 SlewToAltAz (Bad L) OK Correctly rejected bad Azimuth coordinate: -10:00:00.00 +17:43:02.963 SlewToAltAz (Bad H) OK Correctly rejected bad Altitude coordinate: 100:00:00.00 +17:43:03.027 SlewToAltAz (Bad H) OK Correctly rejected bad Azimuth coordinate: 370:00:00.00 +17:43:08.342 SlewToAltAzAsync INFO Slewed to within 141:50:51.00 DD:MM:SS of expected Azimuth: 155:00:00.00 +17:43:08.355 SlewToAltAzAsync INFO Slewed to within 51:00:01.00 DD:MM:SS of expected Altitude: 55:00:00.00 +17:43:08.396 SlewToAltAzAsync (Bad L) OK Correctly rejected bad Altitude coordinate: -100:00:00.00 +17:43:08.451 SlewToAltAzAsync (Bad L) OK Correctly rejected bad Azimuth coordinate: -10:00:00.00 +17:43:08.513 SlewToAltAzAsync (Bad H) OK Correctly rejected bad Altitude coordinate: 100:00:00.00 +17:43:08.568 SlewToAltAzAsync (Bad H) OK Correctly rejected bad Azimuth coordinate: 370:00:00.00 +17:43:30.263 SyncToTarget INFO Slewed to start position within 13.4 arc seconds of expected RA: 02:19:16.90, actual RA: 02:19:16.00 +17:43:30.277 SyncToTarget OK Slewed to start position OK. DEC: 00:00:00.00 +17:43:30.960 SyncToTarget INFO Synced to sync position within 3586.6 arc seconds of expected RA: 02:15:16.90, actual RA: 02:19:16.00 +17:43:30.974 SyncToTarget INFO Synced to sync position within 3598.0 arc seconds of expected DEC: -01:00:00.00, actual DEC: -00:00:02.00 +17:43:54.229 SyncToTarget INFO Slewed back to start position within 13.4 arc seconds of expected RA: 02:19:16.90, actual RA: 02:19:16.00 +17:43:54.243 SyncToTarget OK Slewed back to start position OK. DEC: 00:00:00.00 +17:43:54.921 SyncToTarget INFO Synced to reversed sync position within 3613.4 arc seconds of expected RA: 02:23:16.90, actual RA: 02:19:16.00 +17:43:54.935 SyncToTarget INFO Synced to reversed sync position within 3599.0 arc seconds of expected DEC: 01:00:00.00, actual DEC: 00:00:01.00 +17:44:14.213 SyncToTarget INFO Slewed back to start position within 13.4 arc seconds of expected RA: 02:19:16.90, actual RA: 02:19:16.00 +17:44:14.232 SyncToTarget OK Slewed back to start position OK. DEC: 00:00:00.00 +17:44:14.269 SyncToTarget (Bad L) OK Telescope.TargetRA correctly rejected bad RA coordinate: -01:00:00.00 +17:44:14.313 SyncToTarget (Bad L) OK Telescope.TargetDeclination correctly rejected bad Dec coordinate: -100:00:00.00 +17:44:14.372 SyncToTarget (Bad H) OK Telescope.TargetRA correctly rejected bad RA coordinate: 25:00:00.00 +17:44:14.415 SyncToTarget (Bad H) OK Telescope.TargetDeclination correctly rejected bad Dec coordinate: 100:00:00.00 +17:44:14.571 SyncToAltAz OK CanSyncAltAz is False and a MethodNotImplementedException exception was generated as expected SideOfPier Model Tests -23:00:20.699 SideOfPier Model Tests INFO Tests skipped because this driver does Not support SideOfPier Read +17:44:14.640 SideOfPier Model Tests INFO Tests skipped because this driver does Not support SideOfPier Read Post-run Checks -23:00:20.786 Mount Safety INFO Tracking can't be turned off for this mount, please switch off manually. +17:44:14.728 Mount Safety INFO Tracking can't be turned off for this mount, please switch off manually. Conformance test complete -Your driver had 2 errors, 2 warnings and 3 issues +Your driver had 6 errors, 0 warnings and 1 issues diff --git a/MeadeAutostar497/AscomClasses/Rates.cs b/MeadeAutostar497/AscomClasses/Rates.cs index 233bf9d..bd29429 100644 --- a/MeadeAutostar497/AscomClasses/Rates.cs +++ b/MeadeAutostar497/AscomClasses/Rates.cs @@ -99,11 +99,13 @@ namespace ASCOM.MeadeAutostar497 case TelescopeAxes.axisPrimary: // TODO Initialize this array with any Primary axis rates that your driver may provide // Example: m_Rates = new Rate[] { new Rate(10.5, 30.2), new Rate(54.0, 43.6) } - this.rates = new Rate[0]; + //this.rates = new Rate[0]; + this.rates = new Rate[] {new Rate(1, 1), new Rate(2, 2), new Rate(3, 3), new Rate(4, 4)}; break; case TelescopeAxes.axisSecondary: // TODO Initialize this array with any Secondary axis rates that your driver may provide - this.rates = new Rate[0]; + //this.rates = new Rate[0]; + this.rates = new Rate[] { new Rate(1, 1), new Rate(2, 2), new Rate(3, 3), new Rate(4, 4) }; break; case TelescopeAxes.axisTertiary: // TODO Initialize this array with any Tertiary axis rates that your driver may provide diff --git a/MeadeAutostar497/AscomClasses/Telescope.cs b/MeadeAutostar497/AscomClasses/Telescope.cs index f3a966d..c05c959 100644 --- a/MeadeAutostar497/AscomClasses/Telescope.cs +++ b/MeadeAutostar497/AscomClasses/Telescope.cs @@ -633,8 +633,8 @@ namespace ASCOM.MeadeAutostar497 public void MoveAxis(TelescopeAxes Axis, double Rate) { - tl.LogMessage("MoveAxis", "Not implemented"); - throw new ASCOM.MethodNotImplementedException("MoveAxis"); + tl.LogMessage("MoveAxis", $"Axis={Axis} rate={Rate}"); + _telescopeController.MoveAxis(Axis, Rate); } public void Park() diff --git a/MeadeAutostar497/Controller/ITelescopeController.cs b/MeadeAutostar497/Controller/ITelescopeController.cs index 10c792d..02e40f3 100644 --- a/MeadeAutostar497/Controller/ITelescopeController.cs +++ b/MeadeAutostar497/Controller/ITelescopeController.cs @@ -30,5 +30,6 @@ namespace ASCOM.MeadeAutostar497.Controller void SyncToTarget(); void SlewToTarget(); void SlewToTargetAsync(); + void MoveAxis(TelescopeAxes axis, double rate); } } \ No newline at end of file diff --git a/MeadeAutostar497/Controller/TelescopeController.cs b/MeadeAutostar497/Controller/TelescopeController.cs index ed8e5b1..fa15f0a 100644 --- a/MeadeAutostar497/Controller/TelescopeController.cs +++ b/MeadeAutostar497/Controller/TelescopeController.cs @@ -129,6 +129,10 @@ namespace ASCOM.MeadeAutostar497.Controller { if (!Connected) return false; + + if (movingAxis()) + return true; + var result = SerialPort.CommandTerminated(":D#", "#"); return result != string.Empty; } @@ -651,6 +655,107 @@ namespace ASCOM.MeadeAutostar497.Controller DoSlewAsync(true); } + private bool movingAxis() + { + return _movingPrimary || _movingSecondary; + } + + private bool _movingPrimary; + private bool _movingSecondary; + public void MoveAxis(TelescopeAxes axis, double rate) + { + var absrate = Math.Abs(rate); + + switch(absrate) + { + case 0: + //do nothing, it's ok this time as we're halting the slew. + break; + case 1: + SerialPort.Command(":RG#"); + //:RG# Set Slew rate to Guiding Rate (slowest) + //Returns: Nothing + break; + case 2: + SerialPort.Command(":RC#"); + //:RC# Set Slew rate to Centering rate (2nd slowest) + //Returns: Nothing + break; + case 3: + SerialPort.Command(":RM#"); + //:RM# Set Slew rate to Find Rate (2nd Fastest) + //Returns: Nothing + break; + case 4: + SerialPort.Command(":RS#"); + //:RS# Set Slew rate to max (fastest) + //Returns: Nothing + break; + default: + throw new ASCOM.InvalidValueException($"Rate {rate} not supported"); + + } + + switch (axis) + { + case TelescopeAxes.axisPrimary: + if (rate == 0) + { + _movingPrimary = false; + SerialPort.Command(":Qe#"); + //:Qe# Halt eastward Slews + //Returns: Nothing + SerialPort.Command(":Qw#"); + //:Qw# Halt westward Slews + //Returns: Nothing + } + else if (rate > 0) + { + SerialPort.Command(":Me#"); + //:Me# Move Telescope East at current slew rate + //Returns: Nothing + _movingPrimary = true; + } + else + { + SerialPort.Command(":Mw#"); + //:Mw# Move Telescope West at current slew rate + //Returns: Nothing + _movingPrimary = true; + } + break; + case TelescopeAxes.axisSecondary: + if (rate == 0) + { + _movingSecondary = false; + SerialPort.Command(":Qn#"); + //:Qn# Halt northward Slews + //Returns: Nothing + SerialPort.Command(":Qs#"); + //:Qs# Halt southward Slews + //Returns: Nothing + } + else if (rate > 0) + { + SerialPort.Command(":Mn#"); + //:Mn# Move Telescope North at current slew rate + //Returns: Nothing + _movingSecondary = true; + } + else + { + SerialPort.Command(":Ms#"); + //:Ms# Move Telescope South at current slew rate + //Returns: Nothing + _movingSecondary = true; + } + + break; + default: + throw new ASCOM.MethodNotImplementedException("Can not move this axis."); + } + } + //todo remove the polar parameter and split method into two. private void DoSlewAsync( bool polar) {