Skip to content

Commit 7280c97

Browse files
Added support for user selectable number of filter wheels
1 parent e6b03f9 commit 7280c97

File tree

4 files changed

+47
-3
lines changed

4 files changed

+47
-3
lines changed

ASCOM.Alpaca.Simulators/DriverManager.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,14 @@ internal static void LoadFilterWheel(int DeviceID)
3030
DeviceManager.LoadFilterWheel(DeviceID, dev, dev.DeviceName, dev.UniqueID);
3131
}
3232

33+
internal static void LoadFilterWheels()
34+
{
35+
for (int i = 0; i < ServerSettings.NumberOfFilterWheels; i++)
36+
{
37+
LoadFilterWheel(i);
38+
}
39+
}
40+
3341
internal static void LoadFocuser(int DeviceID)
3442
{
3543
var dev = new ASCOM.Simulators.Focuser(DeviceID, new OmniSim.Tools.DualLogger(ServerSettings.LogFileNameDevice("Focuser", DeviceID), Logging.Log), new XMLProfile(ServerSettings.SettingsFolderName, DeviceManager.Focuser, (uint)DeviceID));

ASCOM.Alpaca.Simulators/Pages/Setup.razor

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,13 @@
121121
<div class="grid-item-left">
122122
<input type="checkbox" @bind="PreventRemoteDisconnects">
123123
</div>
124+
<p>Note: reducing the number of drivers requires a restart to apply</p>
125+
<div class="grid-item-right">
126+
<span>Number of FilterWheels:</span>
127+
</div>
128+
<div class="grid-item-left">
129+
<input type="number" @bind="NFilterWheels" min="1" max="4" style="width:20ch;">
130+
</div>
124131
<div class="grid-item-right">
125132
</div>
126133
<div class="grid-item-right">
@@ -309,6 +316,12 @@
309316
set;
310317
} = ServerSettings.DiscoveryPort;
311318

319+
UInt16 NFilterWheels
320+
{
321+
get;
322+
set;
323+
} = ServerSettings.NumberOfFilterWheels;
324+
312325
bool StrictAPIMode
313326
{
314327
get;
@@ -523,6 +536,8 @@
523536
try
524537
{
525538
ServerSettings.PreventRemoteDisconnects = PreventRemoteDisconnects;
539+
ServerSettings.NumberOfFilterWheels = NFilterWheels;
540+
DriverManager.LoadFilterWheels();
526541

527542
DisplaySuccess("Driver Settings Saved");
528543
}

ASCOM.Alpaca.Simulators/Program.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,8 +211,7 @@ private static Task InitServers(string[] args)
211211
DriverManager.LoadCamera(0);
212212
DriverManager.LoadCoverCalibrator(0);
213213
DriverManager.LoadDome(0);
214-
DriverManager.LoadFilterWheel(0);
215-
DriverManager.LoadFilterWheel(1);
214+
DriverManager.LoadFilterWheels();
216215
DriverManager.LoadFocuser(0);
217216
DriverManager.LoadFocuser(1);
218217
DriverManager.LoadObservingConditions(0);
@@ -318,7 +317,7 @@ private static bool ProcessArgs(string[] args, bool existing_instance)
318317
DriverManager.LoadCamera(0);
319318
DriverManager.LoadCoverCalibrator(0);
320319
DriverManager.LoadDome(0);
321-
DriverManager.LoadFilterWheel(0);
320+
DriverManager.LoadFilterWheels();
322321
DriverManager.LoadFocuser(0);
323322
DriverManager.LoadObservingConditions(0);
324323
DriverManager.LoadRotator(0);

ASCOM.Alpaca.Simulators/ServerSettings.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,28 @@ internal static bool RunInStrictAlpacaMode
432432
}
433433
}
434434

435+
#region Driver Creation Settings
436+
internal static ushort NumberOfFilterWheels
437+
{
438+
get
439+
{
440+
if (ushort.TryParse(Profile.GetValue("NumberOfFilterWheels", 1.ToString()), out ushort result))
441+
{
442+
if(result > 4)
443+
{
444+
return 4;
445+
}
446+
return result;
447+
}
448+
return 1;
449+
}
450+
set
451+
{
452+
Profile.WriteValue("NumberOfFilterWheels", value.ToString());
453+
}
454+
}
455+
#endregion
456+
435457
#region SSL Settings
436458

437459
internal static bool UseSSL

0 commit comments

Comments
 (0)