Added “Use Telescope Side Of Pier” to Meridian flip settings (default is false to keep prior behavior). Necessary to expose to end users, as including side of pier as part of flip logic would break the flip for some mounts (AZGTi and SB10 seem to report wrong side of pier).
Added PierSide Enum in MyTelescope namespace. This forced two type casts in AscomTelescope.cs (to and from MyTelescope PierSide and Ascom PierSide).
Changed TelescopeInfo.cs to provide SideOfPier. If Side of Pier is unavailable, value will be unknown / -1 as per Ascom.
Changed ShouldFlip() in Meridian Flip logic to perform flip as usual if UseSideOfPier setting is false, but only perform the flip if SideOfPier != East (e.g. West, or Unknown) if UseSideOfPier is true.
Amended TelescopeVM to properly set and update SideOfPier in the TelescopeInfo object
How were the changes tested?
AZGTi in EQ Mode, Ascom 1.2.2, Synscan 1.15.0
AZGTi reports the wrong side of pier (East when West, pointing East, and West when East pointing West - checked in NINA and independently using PHD2, which logs SideOfPier). As such tests and expected results are as below
a. Use Telescope Side of Pier Slider set to Off
Slew to star near Meridian, but prior to flip (actual SideOfPier: West) using Cartes du Ciel, controller, or NINA
Start sequence
Expect that Meridian Flip is initiated and performed.
Test OK
Slew to star near Meridian, but after flip (actual SideOfPier: East)
Manually slew back past the Meridian (actual Side of Pier: East, but pointing East)
Start Sequence
Expect that Meridian Flip is initiated and performed.
Test OK
b. Use Telescope Side of Pier Slider set to On
Slew to star near Meridian, but prior to flip (actual SideOfPier: West) using Cartes du Ciel, controller, or NINA
Start Sequence
As AZGTi Ascom driver reports the wrong side of pier, expect that Meridian Flip is NOT initiated.
Test OK
Slew to star near Meridian, but after flip (actual SideOfPier: East)
Manually slew back past to Meridian (actual Side of Pier: East, but pointing East)
Start Sequence
As AZGTi Ascom driver reports the wrong side of pier, expect that Meridian Flip IS initiated.
Test OK
EQASCOM Simulator / EQ6R with EQASCOM
a. Use Telescope Side of Pier Slider set to Off
Slew to star near Meridian, but prior to flip (actual SideOfPier: West) using Cartes du Ciel, controller, or NINA
Start sequence
Expect that Meridian Flip is initiated and performed.
Test OK
Slew to star near Meridian, but after flip (actual SideOfPier: East)
Manually slew back past the Meridian (actual Side of Pier: East, but pointing East)
Start Sequence
Expect that Meridian Flip is initiated and performed.
Test OK
b. Use Telescope Side of Pier Slider set to On
Slew to star near Meridian, but prior to flip (actual SideOfPier: West) using Cartes du Ciel, controller, or NINA
Start sequence
Expect that Meridian Flip is initiated and performed.
Test OK
Now that mount is East, pointing West, manually slew back to prior the Meridian (actual SideOfPier: East, pointing East)
Start sequence
Expect that Meridian Flip is NOT performed (would be without the SideOfPier check)
Test OK
Slew back to star near Meridian, before flip. This should flip the telescope back into a West, pointing East orientation. This is to check that SideOfPier will properly be updated to the new value (Should be West).
Start Sequence
Expect that Meridian Flip IS performed
Test OK
From Home position, slew directly to a star West of Meridian, placing SideOfPier to East, pointing West.
Slew back East of Meridian, getting SideOfPier to East, pointing East
Start Sequence
Expect that Meridian Flip is NOT performed
Test OK
Vixen AXJ with Starbook Ten 5.0.0
Starbook Ten 5.0.0 suffers from the same issues as AZGTi, and reports the wrong side of pier (Vixen is working on a fix). Therefore the same tests as 1. AZGTi were performed, with the same results.
EQASCOM Simulator with SideOfPier set to None
a. Use Telescope Side of Pier Slider set to Off
Slew to star near Meridian, but prior to flip (actual SideOfPier: West) using Cartes du Ciel, controller, or NINA
Start sequence
Expect that Meridian Flip is initiated and performed.
Test OK
Slew to star near Meridian, but after flip (actual SideOfPier: East)
Manually slew back past the Meridian (actual Side of Pier: East, but pointing East)
Start Sequence
Expect that Meridian Flip is initiated and performed.
Test OK
b. Use Telescope Side of Pier Slider set to On
Since SideOfPier will not be reported, it will be either Unknown. As such the same behavior as with the slider off is expected.
Slew to star near Meridian, but prior to flip (actual SideOfPier: West) using Cartes du Ciel, controller, or NINA
Start sequence
Expect that Meridian Flip is initiated and performed.
Test OK
Slew to star near Meridian, but after flip (actual SideOfPier: East)
Manually slew back past the Meridian (actual Side of Pier: East, but pointing East)
Start Sequence
Expect that Meridian Flip is initiated and performed.
Test OK
Use Telescope Simulator with .NET
Same tests as EQASCOM a.
Test OK
Test OK b.
Test OK
Test OK
Test OK
Try Meridian Flip from Southern Hemisphere with EQASCOM (to confirm that SideOfPier condition does not depend on Hemisphere): Test OK.
Missing from test: physical mount that does not report SideOfPier (I don’t own such a mount).
Are there relevant Issues in the tracker that this PR will fix?
What is the purpose of this Pull Request?
Added changes as per issue #141. Specifically:
Added “Use Telescope Side Of Pier” to Meridian flip settings (default is false to keep prior behavior). Necessary to expose to end users, as including side of pier as part of flip logic would break the flip for some mounts (AZGTi and SB10 seem to report wrong side of pier).
Added PierSide Enum in MyTelescope namespace. This forced two type casts in AscomTelescope.cs (to and from MyTelescope PierSide and Ascom PierSide).
Changed TelescopeInfo.cs to provide SideOfPier. If Side of Pier is unavailable, value will be unknown / -1 as per Ascom.
Changed ShouldFlip() in Meridian Flip logic to perform flip as usual if UseSideOfPier setting is false, but only perform the flip if SideOfPier != East (e.g. West, or Unknown) if UseSideOfPier is true.
Amended TelescopeVM to properly set and update SideOfPier in the TelescopeInfo object
How were the changes tested?
AZGTi in EQ Mode, Ascom 1.2.2, Synscan 1.15.0
AZGTi reports the wrong side of pier (East when West, pointing East, and West when East pointing West - checked in NINA and independently using PHD2, which logs SideOfPier). As such tests and expected results are as below
a. Use Telescope Side of Pier Slider set to Off
Slew to star near Meridian, but prior to flip (actual SideOfPier: West) using Cartes du Ciel, controller, or NINA
Start sequence
Expect that Meridian Flip is initiated and performed.
Test OK
Slew to star near Meridian, but after flip (actual SideOfPier: East)
Manually slew back past the Meridian (actual Side of Pier: East, but pointing East)
Start Sequence
Expect that Meridian Flip is initiated and performed.
Test OK
b. Use Telescope Side of Pier Slider set to On
Slew to star near Meridian, but prior to flip (actual SideOfPier: West) using Cartes du Ciel, controller, or NINA
Start Sequence
As AZGTi Ascom driver reports the wrong side of pier, expect that Meridian Flip is NOT initiated.
Test OK
Slew to star near Meridian, but after flip (actual SideOfPier: East)
Manually slew back past to Meridian (actual Side of Pier: East, but pointing East)
Start Sequence
As AZGTi Ascom driver reports the wrong side of pier, expect that Meridian Flip IS initiated.
Test OK
EQASCOM Simulator / EQ6R with EQASCOM
a. Use Telescope Side of Pier Slider set to Off
Slew to star near Meridian, but prior to flip (actual SideOfPier: West) using Cartes du Ciel, controller, or NINA
Start sequence
Expect that Meridian Flip is initiated and performed.
Test OK
Slew to star near Meridian, but after flip (actual SideOfPier: East)
Manually slew back past the Meridian (actual Side of Pier: East, but pointing East)
Start Sequence
Expect that Meridian Flip is initiated and performed.
Test OK
b. Use Telescope Side of Pier Slider set to On
Slew to star near Meridian, but prior to flip (actual SideOfPier: West) using Cartes du Ciel, controller, or NINA
Start sequence
Expect that Meridian Flip is initiated and performed.
Test OK
Now that mount is East, pointing West, manually slew back to prior the Meridian (actual SideOfPier: East, pointing East)
Start sequence
Expect that Meridian Flip is NOT performed (would be without the SideOfPier check)
Test OK
Slew back to star near Meridian, before flip. This should flip the telescope back into a West, pointing East orientation. This is to check that SideOfPier will properly be updated to the new value (Should be West).
Start Sequence
Expect that Meridian Flip IS performed
Test OK
From Home position, slew directly to a star West of Meridian, placing SideOfPier to East, pointing West.
Slew back East of Meridian, getting SideOfPier to East, pointing East
Start Sequence
Expect that Meridian Flip is NOT performed
Test OK
Vixen AXJ with Starbook Ten 5.0.0
Starbook Ten 5.0.0 suffers from the same issues as AZGTi, and reports the wrong side of pier (Vixen is working on a fix). Therefore the same tests as 1. AZGTi were performed, with the same results.
EQASCOM Simulator with SideOfPier set to None
a. Use Telescope Side of Pier Slider set to Off
Slew to star near Meridian, but prior to flip (actual SideOfPier: West) using Cartes du Ciel, controller, or NINA
Start sequence
Expect that Meridian Flip is initiated and performed.
Test OK
Slew to star near Meridian, but after flip (actual SideOfPier: East)
Manually slew back past the Meridian (actual Side of Pier: East, but pointing East)
Start Sequence
Expect that Meridian Flip is initiated and performed.
Test OK
b. Use Telescope Side of Pier Slider set to On
Since SideOfPier will not be reported, it will be either Unknown. As such the same behavior as with the slider off is expected.
Slew to star near Meridian, but prior to flip (actual SideOfPier: West) using Cartes du Ciel, controller, or NINA
Start sequence
Expect that Meridian Flip is initiated and performed.
Test OK
Slew to star near Meridian, but after flip (actual SideOfPier: East)
Manually slew back past the Meridian (actual Side of Pier: East, but pointing East)
Start Sequence
Expect that Meridian Flip is initiated and performed.
Test OK
Use Telescope Simulator with .NET
Same tests as EQASCOM
a.
Test OK
Test OK
b.
Test OK
Test OK
Test OK
Try Meridian Flip from Southern Hemisphere with EQASCOM (to confirm that SideOfPier condition does not depend on Hemisphere): Test OK.
Missing from test: physical mount that does not report SideOfPier (I don’t own such a mount).
Are there relevant Issues in the tracker that this PR will fix?
#141
Screenshots
Notes
Apologies for the duplicate PR. Please ignore/decline the previous one.