Skip to content

Commit c809f68

Browse files
Added manual tracking
Active tracking mode shown in the main window under tracking toggle. Added manual tracking under Mount Settings
1 parent 01b5ba5 commit c809f68

File tree

3 files changed

+82
-9
lines changed

3 files changed

+82
-9
lines changed

OATControl/MainWindow.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,7 @@
648648

649649
<StackPanel Grid.Column="0" Grid.Row="1" Orientation="Vertical">
650650
<TextBlock Text="Tracking" Margin="0,5,0,0" Style="{StaticResource TextBlockHeading}" />
651-
<TextBlock Text="Sidereal" Margin="5,0,0,0" Style="{StaticResource TextBlockLabelTiny}" HorizontalAlignment="Left" />
651+
<TextBlock Text="{Binding TrackingMode}" Margin="5,0,0,0" Style="{StaticResource TextBlockLabelTiny}" HorizontalAlignment="Left" />
652652
</StackPanel>
653653
<Controls:ToggleSwitchButton Grid.Column="1" Grid.Row="1" Margin="0,6,0,0" VerticalAlignment="Center" IsEnabled="{Binding MountConnected}" IsChecked="{Binding IsTracking}" ThumbIndicatorBrush="#E00" />
654654
<Grid Grid.Row="1" Grid.Column="2" Visibility="{Binding MountConnected, Converter={StaticResource bool2VisibilityConverter}}">

OATControl/SettingsDialog.xaml

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -390,10 +390,30 @@
390390
<Button Grid.Row="16" Grid.Column="4" Margin="8,4" Padding="20,0" Content="Factory Reset" HorizontalAlignment="Right" Style="{StaticResource CommandButtonStyle}" Command="{Binding FactoryResetCommand}"/>
391391

392392
<TextBlock Grid.Row ="17" Grid.Column="3" Margin="0,0" HorizontalAlignment="Left" Text="Open the OATControl logfile folder" ToolTip="OATControl keeps logfiles from the last 6 sessions around in case you need to check something or the devs ask for them to debug a issue yopu might have." TextWrapping="Wrap" Style="{StaticResource SmallTextBlockLabel}" />
393-
<Button Grid.Row="17" Grid.Column="4" Margin="8,4" Padding="20,0" Content="Open Log Folder" HorizontalAlignment="Right" Style="{StaticResource CommandButtonStyle}" Command="{Binding ShowLogFolderCommand}"/>
393+
<Button Grid.Row="17" Grid.Column="4" Margin="8,4" Padding="20,0" Content="Open Log Folder" HorizontalAlignment="Right" Style="{StaticResource CommandButtonStyle}" Command="{Binding ShowLogFolderCommand}"/>
394394

395-
<TextBlock Grid.Row ="18" Grid.Column="3" Margin="0,0" HorizontalAlignment="Left" Text="Tracking Rate" ToolTip="Change mount tracking rate" TextWrapping="Wrap" Style="{StaticResource SmallTextBlockLabel}" />
396-
<ComboBox Grid.Row="18" Grid.Column="4"
395+
<Grid Grid.Row="18" Grid.Column="3" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" Margin="-2,0,6,0">
396+
<Grid.ColumnDefinitions>
397+
<ColumnDefinition Width="*" />
398+
<ColumnDefinition Width="*" />
399+
<ColumnDefinition Width="*" />
400+
</Grid.ColumnDefinitions>
401+
402+
<TextBlock Grid.Row ="0" Grid.Column="0" Margin="0,0" HorizontalAlignment="Left" Text="Tracking Rate" ToolTip="Change mount tracking rate" TextWrapping="Wrap" Style="{StaticResource SmallTextBlockLabel}" />
403+
<Grid Grid.Row="0" Grid.Column="1" HorizontalAlignment="Center" >
404+
<Grid.ColumnDefinitions>
405+
<ColumnDefinition Width="Auto" />
406+
<ColumnDefinition Width="*" />
407+
<ColumnDefinition Width="Auto" />
408+
</Grid.ColumnDefinitions>
409+
<controls:PushButton Grid.Column="0" Width="20" Height="20" Direction="W" IsEnabled="{Binding IsManualTrackingMode}" Command="{Binding StartChangingCommand}" CommandParameter="TR-" />
410+
<TextBlock Grid.Column="1" Text="{Binding ManualTrackingRateEdit,StringFormat={}{0:0.00}}" Style="{StaticResource TextBlockLabelValue}" HorizontalAlignment="Stretch" TextAlignment="Center"/>
411+
<controls:PushButton Grid.Column="2" Width="20" Height="20" Direction="E" IsEnabled="{Binding IsManualTrackingMode}" Command="{Binding StartChangingCommand}" CommandParameter="TR+" />
412+
</Grid>
413+
414+
</Grid>
415+
416+
<ComboBox Grid.Row="18" Grid.Column="4"
397417
ItemsSource="{Binding AvailableTrackingModes}"
398418
SelectedValue="{Binding SelectedTrackingMode}"
399419
Width="120"

OATControl/ViewModels/MountVM.cs

Lines changed: 58 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ public class MountVM : ViewModelBase
7878
DateTime _connectedAt = DateTime.UtcNow;
7979
string _lastDirection = string.Empty;
8080
bool _useCustomParkPosition = false;
81+
bool _isManualTrackingMode = false;
8182

8283
private float _maxMotorSpeed = 2.5f;
8384
double _speed = 1.0;
@@ -175,6 +176,7 @@ public class MountVM : ViewModelBase
175176
private ICommunicationHandler _commHandler;
176177
private string _serialBaudRate;
177178
private string _trackingMode = "Sidereal";
179+
float _manualTrackingRateEdit = 0.0f;
178180

179181
private OatmealTelescopeCommandHandlers _oatMount;
180182
private PointsOfInterest _pointsOfInterest;
@@ -900,11 +902,12 @@ private void OnStartChangingParameter(object p)
900902
case "SR": RAStepsPerDegreeEdit += 0.1f * _incrDirection; break;
901903
case "SD": DECStepsPerDegreeEdit += 0.1f * _incrDirection; break;
902904
case "SS": SpeedCalibrationFactorEdit += _incrDirection; break;
905+
case "TR": ManualTrackingRateEdit += 0.1f * _incrDirection; break;
903906
default: OnAdjustTarget(_incrVar + (_incrDirection == 1 ? "+" : "-")); break;
904907
}
905908
}
906909
}
907-
910+
908911
void SetDECStepsPerDegree(float steps)
909912
{
910913
DECStepsPerDegree = steps;
@@ -925,6 +928,7 @@ private void OnIncrementVariable(object sender, EventArgs e)
925928
case "SR": RAStepsPerDegreeEdit += 0.2f * _incrDirection; break;
926929
case "SD": DECStepsPerDegreeEdit += 0.2f * _incrDirection; break;
927930
case "SS": SpeedCalibrationFactorEdit += _incrDirection; break;
931+
case "TR": ManualTrackingRateEdit += 0.1f* _incrDirection; break;
928932
default: OnAdjustTarget(_incrVar + (_incrDirection == 1 ? "+" : "-")); break;
929933
}
930934
_timer.Interval = TimeSpan.FromMilliseconds(_incrementalDelay);
@@ -1601,7 +1605,11 @@ public void UpdateRealtimeParameters(bool editable)
16011605
this.SendOatCommand(":GC#,#", (a) => { localDate = a.Data; failed |= !a.Success; });
16021606
if (FirmwareVersion >= 11314)
16031607
{
1604-
this.SendOatCommand(":TZ#,#", (a) => { trkMode = a.Data; failed |= !a.Success; });
1608+
this.SendOatCommand(":Gk#,#", (a) => { trkMode = a.Data; failed |= !a.Success; });
1609+
this.SendOatCommand(":GT#,#", (a) => {
1610+
ManualTrackingRateEdit = float.Parse(a.Data, _oatCulture);
1611+
failed |= !a.Success;
1612+
});
16051613
}
16061614
this.SendOatCommand(":XGH#,#", (a) => { ha = a.Data; failed |= !a.Success; });
16071615
if (FirmwareVersion >= 11206)
@@ -2152,6 +2160,22 @@ public async Task UpdateInitialScopeValues()
21522160
doneEvent.Set();
21532161
});
21542162

2163+
this.SendOatCommand(":Gk#,#", (trkMode) =>
2164+
{
2165+
Log.WriteLine("MOUNT: Current Tracking Mode is {0}...", trkMode.Data);
2166+
if (trkMode.Success)
2167+
{
2168+
IsManualTrackingMode = false;
2169+
TrackingMode = trkMode.Data;
2170+
if(trkMode.Data == "Manual")
2171+
{
2172+
IsManualTrackingMode = true;
2173+
}
2174+
}
2175+
2176+
doneEvent.Set();
2177+
});
2178+
21552179
await doneEvent.WaitAsync();
21562180

21572181
ShowDECLimits = AppSettings.Instance.ShowDecLimits;
@@ -3540,6 +3564,15 @@ public float DECStepsPerDegreeEdit
35403564
set { SetPropertyValue(ref _decStepsPerDegreeEdit, value); }
35413565
}
35423566

3567+
public float ManualTrackingRateEdit
3568+
{
3569+
get { return _manualTrackingRateEdit; }
3570+
set {
3571+
SetPropertyValue(ref _manualTrackingRateEdit, value);
3572+
_oatMount?.SendCommand(string.Format(_oatCulture, ":Sq{0:0.0000}#", ManualTrackingRateEdit), (a) => { });
3573+
}
3574+
}
3575+
35433576
/// <summary>
35443577
/// Gets or sets the DEC steps per degree
35453578
/// </summary>
@@ -3998,6 +4031,12 @@ public bool UseCustomParkPosition
39984031
set { SetPropertyValue(ref _useCustomParkPosition, value, OnUseCustomParkPositionChanged); }
39994032
}
40004033

4034+
public bool IsManualTrackingMode
4035+
{
4036+
get { return _isManualTrackingMode; }
4037+
set { SetPropertyValue(ref _isManualTrackingMode, value); }
4038+
}
4039+
40014040
/// <summary>
40024041
/// Sends command to enable/disable Custom Park Position to the mount
40034042
/// </summary>
@@ -4317,8 +4356,9 @@ public String SelectedTrackingMode
43174356
get { return _trackingMode; }
43184357
set
43194358
{
4320-
if (FirmwareVersion > 11314)
4359+
if (FirmwareVersion >= 11314)
43214360
{
4361+
IsManualTrackingMode = false;
43224362
if (value == "Sidereal")
43234363
{
43244364
this.SendOatCommand(":TQ#,n", (a) => { });
@@ -4335,15 +4375,27 @@ public String SelectedTrackingMode
43354375
{
43364376
this.SendOatCommand(":TK#,n", (a) => { });
43374377
}
4378+
else if (value == "Manual")
4379+
{
4380+
this.SendOatCommand(":TM#,n", (a) => { });
4381+
IsManualTrackingMode = true;
4382+
}
43384383
else
43394384
{
43404385
this.SendOatCommand(":TQ#,n", (a) => { });
43414386
}
43424387

43434388
Log.WriteLine("MOUNT: Changing tracking rate to " + value);
4344-
_trackingMode = value;
4389+
// _trackingMode = value;
4390+
SetPropertyValue(ref _trackingMode, value);
4391+
4392+
OnPropertyChanged("TrackingMode");
4393+
OnPropertyChanged("SelectedTrackingMode");
4394+
43454395
AppSettings.Instance.TrackingRate = value;
43464396
AppSettings.Instance.Save();
4397+
4398+
43474399
}
43484400
}
43494401
}
@@ -4380,7 +4432,8 @@ public IEnumerable<String> AvailableTrackingModes
43804432
"Sidereal",
43814433
"Lunar",
43824434
"Solar",
4383-
"King"
4435+
"King",
4436+
"Manual"
43844437
};
43854438

43864439

0 commit comments

Comments
 (0)