Skip to content

Commit be88525

Browse files
committed
Improved support for management of offset tracking.
Bumped version 6.6.0.17
1 parent 932d71c commit be88525

13 files changed

Lines changed: 488 additions & 177 deletions

File tree

DeviceHub/Business Object Classes/Telescope Classes/TelescopeParameters.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,8 @@ public TelescopeParameters( TelescopeManager mgr )
4343

4444
if ( rates != null )
4545
{
46-
for ( int i = 1; i <= rates.Count; ++i )
46+
foreach (DriveRates rate in rates)
4747
{
48-
DriveRates rate = rates[i];
4948
string name = "";
5049

5150
switch ( rate )
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Globalization;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
using System.Windows.Data;
8+
9+
namespace ASCOM.DeviceHub
10+
{
11+
internal class UnitsBooleanToStringConverter : IMultiValueConverter
12+
{
13+
public object Convert( object[] values, Type targetType, object parameter, CultureInfo culture )
14+
{
15+
bool useNasaUnits = (bool)values[0];
16+
string nasaUnits = values[1].ToString();
17+
string ascomUnits = values[2].ToString();
18+
19+
return ( useNasaUnits ? nasaUnits : ascomUnits );
20+
}
21+
22+
public object[] ConvertBack( object value, Type[] targetTypes, object parameter, CultureInfo culture )
23+
{
24+
throw new System.NotImplementedException();
25+
}
26+
}
27+
}

DeviceHub/DeviceHub.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@
117117
<Compile Include="Business Object Classes\Value Converters\MultiBindingTrueIfNotParking.cs" />
118118
<Compile Include="Business Object Classes\Value Converters\EditLockTextBooleanValueConverter.cs" />
119119
<Compile Include="Business Object Classes\Message Types\FocuserMoveAmountMessage.cs" />
120+
<Compile Include="Business Object Classes\Value Converters\UnitsBooleanToStringConverter.cs" />
120121
<Compile Include="Dome Driver\DomeDriver.cs" />
121122
<Compile Include="Dome Driver\DomeDriverSetupDialogView.xaml.cs">
122123
<DependentUpon>DomeDriverSetupDialogView.xaml</DependentUpon>

DeviceHub/DeviceManagers/DeviceManagerBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ protected T GetServiceProperty<T>( Func<T> getCmd, T defaultValue
9494

9595
LogActivityEnd( messageType, sb.ToString() );
9696
}
97-
else if ( retval is TrackingRates)
97+
else if ( retval is ITrackingRates)
9898
{
9999
LogActivityStart( ActivityMessageTypes.Parameters, "Get {0}:", propName );
100100
StringBuilder sb = new StringBuilder();

DeviceHub/DeviceManagers/TelescopeManagerAccess.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ public ITrackingRates TrackingRates
437437
{
438438
DriveRates[] driveRates = new DriveRates[] { DriveRates.driveSidereal };
439439
ScopeTrackingRates defaultRates = new ScopeTrackingRates( driveRates );
440-
ITrackingRates rates = GetServiceProperty<ITrackingRates>( () => Service.TrackingRates, defaultRates, ActivityMessageTypes.Parameters );
440+
ITrackingRates rates = GetServiceProperty<ITrackingRates>( () => Service.TrackingRates, (ITrackingRates)defaultRates, ActivityMessageTypes.Parameters );
441441

442442
return rates;
443443
}

DeviceHub/View Classes/Telescope Views/TelescopeTrackingRatesView.xaml

Lines changed: 111 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
Background="{DynamicResource WindowBackgroundBrush}"
1010
d:DesignHeight="400" d:DesignWidth="440">
1111
<UserControl.Resources>
12+
<local:BooleanBooleanValueConverter x:Key="BoolBoolConverter" />
13+
<local:UnitsBooleanToStringConverter x:Key="UnitsConverter" />
14+
1215
<Style x:Key="RateLabel" TargetType="{x:Type Label}">
1316
<Setter Property="Foreground" Value="{DynamicResource NormalTextBrush}" />
1417
<Setter Property="Margin" Value="0" />
@@ -27,52 +30,128 @@
2730
<Setter Property="Height" Value="22"/>
2831
</Style>
2932
</UserControl.Resources>
30-
<Grid>
33+
<Grid HorizontalAlignment="Center">
3134
<Grid.RowDefinitions>
32-
<RowDefinition Height="Auto" />
33-
<RowDefinition Height="Auto" />
34-
<RowDefinition Height="Auto" />
35-
<RowDefinition Height="Auto" />
36-
<RowDefinition Height="Auto" />
35+
<RowDefinition Height="Auto" MinHeight="10" />
36+
<RowDefinition Height="Auto" MinHeight="10" />
37+
<RowDefinition Height="Auto" MinHeight="10" />
38+
<RowDefinition Height="Auto" MinHeight="10" />
3739
</Grid.RowDefinitions>
3840
<Grid.ColumnDefinitions>
3941
<ColumnDefinition Width="Auto" />
40-
<ColumnDefinition Width="Auto" MaxWidth="86" />
41-
<ColumnDefinition Width="Auto" />
4242
</Grid.ColumnDefinitions>
4343

44-
<Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Margin="0,3" HorizontalAlignment="Center" Style="{StaticResource RateValue}"
44+
<Label Grid.Row="0" Grid.Column="0" Margin="0,3" HorizontalAlignment="Center" Style="{StaticResource RateValue}"
4545
Content="{Binding TrackingRateText, FallbackValue=Tracking Rate Info goes here.}" />
46-
<StackPanel Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" Orientation="Horizontal" Height="Auto" HorizontalAlignment="Center">
46+
<GroupBox Grid.Row="1" Grid.Column="0" Header="Current Telescope Tracking Rate Offsets"
47+
Foreground="{DynamicResource NormalTextBrush}" HorizontalAlignment="Center">
48+
<Grid>
49+
<Grid.RowDefinitions>
50+
<RowDefinition Height="Auto" MinHeight="10"/>
51+
<RowDefinition Height="Auto" MinHeight="10"/>
52+
<RowDefinition Height="Auto" MinHeight="10"/>
53+
</Grid.RowDefinitions>
54+
<Grid.ColumnDefinitions>
55+
<ColumnDefinition Width="Auto" MinWidth="30"/>
56+
<ColumnDefinition Width="Auto" MinWidth="60"/>
57+
<ColumnDefinition Width="Auto" MinWidth="90"/>
58+
</Grid.ColumnDefinitions>
59+
<Label Grid.Row="0" Grid.Column="0" Content="RA Offset Rate:" HorizontalAlignment="Right" VerticalAlignment="Center"
60+
Foreground="{DynamicResource NormalTextBrush}" Padding="1" />
61+
<Label Grid.Row="0" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center"
62+
Foreground="{DynamicResource DynamicTextBrush}" Padding="0"
63+
Content="{Binding RaRateOffset}" ContentStringFormat="F7" />
64+
<Label Grid.Row="0" Grid.Column="2" HorizontalAlignment="Left" VerticalAlignment="Bottom" Padding="0"
65+
Margin="6,0,0,1" Foreground="{DynamicResource NormalTextBrush}"
66+
Content="{Binding AscomRaUnits}" />
67+
68+
<Label Grid.Row="1" Grid.Column="0" Content="Dec Offset Rate:" HorizontalAlignment="Right" VerticalAlignment="Center"
69+
Foreground="{DynamicResource NormalTextBrush}" Padding="1" />
70+
<Label Grid.Row="1" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center"
71+
Padding="0" Foreground="{DynamicResource DynamicTextBrush}"
72+
Content="{Binding DecRateOffset}" ContentStringFormat="F7" />
73+
<Label Grid.Row="1" Grid.Column="2" HorizontalAlignment="Left" VerticalAlignment="Center"
74+
Margin="6,0,0,0" Foreground="{DynamicResource NormalTextBrush}" Padding="0"
75+
Content="{Binding AscomDecUnits}" />
76+
77+
<Label Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Foreground="{DynamicResource NormalTextBrush}" Padding="1"
78+
Content="{Binding RatesNote}" />
79+
80+
</Grid>
81+
</GroupBox>
82+
<StackPanel Grid.Row="2" Grid.Column="0" Orientation="Horizontal" Height="Auto" HorizontalAlignment="Center"
83+
Margin="0,8,0,0">
4784
<Button Content="Sidereal" Height="60" Width="60" Style="{StaticResource CircleButton}"
4885
Command="{Binding ApplySiderealTrackingCommand}" />
4986
<Button Content="Lunar" Height="60" Width="60" Style="{StaticResource CircleButton}"
5087
Command="{Binding ApplyLunarTrackingCommand}" />
51-
<Button Content="Offset" Height="60" Width="60" Style="{StaticResource CircleButton}"
52-
Command="{Binding ApplyOffsetTrackingCommand}" />
88+
<Button Content="Solar" Height="60" Width="60" Style="{StaticResource CircleButton}"
89+
Command="{Binding ApplySolarTrackingCommand}" />
90+
<Button Content="King" Height="60" Width="60" Style="{StaticResource CircleButton}"
91+
Command="{Binding ApplyKingTrackingCommand}" />
5392
</StackPanel>
5493

55-
<Label Grid.Row="2" Grid.Column="0" Content="RA Offset Rate:" HorizontalAlignment="Right" VerticalAlignment="Center"
56-
Margin="0,8,4,8" Style="{StaticResource RateLabel}" />
57-
<local:DoubleEntryBox Grid.Row="2" Grid.Column="1" Height="22" Width="76" Margin="6" HorizontalAlignment="Left" VerticalAlignment="Center"
58-
Text="{Binding RaOffsetRate, StringFormat=F5, ConverterCulture={x:Static gl:CultureInfo.CurrentCulture}}"
59-
IsEnabled="{Binding CanChangeOffsetRate}"/>
60-
<Label Grid.Row="2" Grid.Column="2" Content="arc-seconds / hour" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource RateLabel}" Margin="6,0"/>
94+
<GroupBox Grid.Row="3" Grid.Column="0" Header="Change Sidereal Tracking Offsets" HorizontalAlignment="Center"
95+
Foreground="{DynamicResource NormalTextBrush}">
96+
<Grid>
97+
<Grid.RowDefinitions>
98+
<RowDefinition Height="Auto" MinHeight="10" />
99+
<RowDefinition Height="Auto" MinHeight="10" />
100+
<RowDefinition Height="Auto" MinHeight="10" />
101+
<RowDefinition Height="Auto" MinHeight="10" />
102+
</Grid.RowDefinitions>
103+
<Grid.ColumnDefinitions>
104+
<ColumnDefinition Width="Auto" MinWidth="30" />
105+
<ColumnDefinition Width="Auto" MinWidth="60" />
106+
<ColumnDefinition Width="Auto" MinWidth="90" />
107+
<ColumnDefinition Width="Auto" MinWidth="40" />
108+
</Grid.ColumnDefinitions>
61109

62-
<Label Grid.Row="3" Grid.Column="0" Content="Dec Offset Rate:" HorizontalAlignment="Right" VerticalAlignment="Center"
63-
Margin="0,8,4,8" Style="{StaticResource RateLabel}" />
64-
<local:DoubleEntryBox Grid.Row="3" Grid.Column="1" Height="22" Width="76" Margin="6" HorizontalAlignment="Left" VerticalAlignment="Center"
65-
Text="{Binding DecOffsetRate, StringFormat=F5, ConverterCulture={x:Static gl:CultureInfo.CurrentCulture}}"
66-
IsEnabled="{Binding CanChangeOffsetRate}" />
67-
<Label Grid.Row="3" Grid.Column="2" Content="arc-seconds / hour" HorizontalAlignment="Left" VerticalAlignment="Center" Style="{StaticResource RateLabel}" Margin="6,0" />
110+
<StackPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Orientation="Horizontal">
111+
<Label Content="Rate Units: " Foreground="{DynamicResource NormalTextBrush}" VerticalAlignment="Center"/>
112+
<RadioButton Content="ASCOM Units" VerticalAlignment="Center" Foreground="{DynamicResource NormalTextBrush}"
113+
ToolTip="See the current rates above for ASCOM Units"
114+
IsChecked="{Binding UseNasaJplUnits, Converter={StaticResource BoolBoolConverter}, ConverterParameter=False}" />
115+
<RadioButton Content="JPL Horizons Units" VerticalAlignment="Center" Foreground="{DynamicResource NormalTextBrush}" Margin="8,0,0,0"
116+
ToolTip="NASA JPL Horizons rate units are arc-seconds per hour"
117+
IsChecked="{Binding UseNasaJplUnits, Converter={StaticResource BoolBoolConverter}, ConverterParameter=True}" />
118+
</StackPanel>
119+
<Label Grid.Row="1" Grid.Column="0" Content="RA Offset Rate:" HorizontalAlignment="Right" VerticalAlignment="Center"
120+
Foreground="{DynamicResource NormalTextBrush}" Padding="1" />
121+
<local:DoubleEntryBox Grid.Row="1" Grid.Column="1" Height="22" Width="76" Margin="6" HorizontalAlignment="Left" VerticalAlignment="Center"
122+
Text="{Binding NewRaOffsetRate, StringFormat=F7, ConverterCulture={x:Static gl:CultureInfo.CurrentCulture}}" />
123+
<Button Grid.Row="1" Grid.Column="3" Grid.RowSpan="2" Height="80" Width="80" Style="{StaticResource CircleButton}"
124+
Command="{Binding CommitNewRatesCommand}">
125+
<Button.Content>
126+
<TextBlock TextWrapping="Wrap" TextAlignment="Center" Text="Send To Telescope" />
127+
</Button.Content>
128+
</Button>
68129

69-
<Label Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3" Margin="6" Foreground="{DynamicResource NormalTextBrush}">
70-
<Label.Content>
71-
<TextBlock TextWrapping="Wrap">
72-
Rate units of arc-seconds/hour were chosen to coincide with the<LineBreak/>
73-
rate values that are provided by the NASA JPL Horizons web site.
74-
</TextBlock>
75-
</Label.Content>
76-
</Label>
130+
<Label Grid.Row="1" Grid.Column="2" HorizontalAlignment="Left" VerticalAlignment="Center" Padding="2" MinWidth="140"
131+
Foreground="{DynamicResource NormalTextBrush}">
132+
<Label.Content>
133+
<MultiBinding Converter="{StaticResource UnitsConverter}">
134+
<Binding Path="UseNasaJplUnits" />
135+
<Binding Path="NasaJplRaUnits" />
136+
<Binding Path="AscomRaUnits" />
137+
</MultiBinding>
138+
</Label.Content>
139+
</Label>
140+
<Label Grid.Row="2" Grid.Column="0" Content="Dec Offset Rate:" HorizontalAlignment="Right" VerticalAlignment="Center"
141+
Foreground="{DynamicResource NormalTextBrush}" Padding="1" />
142+
<local:DoubleEntryBox Grid.Row="2" Grid.Column="1" Height="22" Width="76" Margin="6" HorizontalAlignment="Left" VerticalAlignment="Center"
143+
Text="{Binding NewDecOffsetRate, StringFormat=F7, ConverterCulture={x:Static gl:CultureInfo.CurrentCulture}}" />
144+
<Label Grid.Row="2" Grid.Column="2" HorizontalAlignment="Left" VerticalAlignment="Center" Padding="2" MinWidth="140"
145+
Foreground="{DynamicResource NormalTextBrush}">
146+
<Label.Content>
147+
<MultiBinding Converter="{StaticResource UnitsConverter}">
148+
<Binding Path="UseNasaJplUnits" />
149+
<Binding Path="NasaJplDecUnits" />
150+
<Binding Path="AscomDecUnits" />
151+
</MultiBinding>
152+
</Label.Content>
153+
</Label>
154+
</Grid>
155+
</GroupBox>
77156
</Grid>
78157
</UserControl>

DeviceHub/View Classes/Telescope Views/TelescopeView.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
</Style>
4646

4747
<Style x:Key="Content" TargetType="{x:Type ContentControl}">
48-
<Setter Property="HorizontalAlignment" Value="Left" />
48+
<Setter Property="HorizontalAlignment" Value="Stretch" />
4949
<Setter Property="VerticalAlignment" Value="Top" />
5050
<Setter Property="Margin" Value="0" />
5151
<Setter Property="Height" Value="Auto" />

0 commit comments

Comments
 (0)