You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Unify filter wheel config: profile URI as source of truth, equipment tab editing
All filter wheel drivers now read name/offset from URI query params first,
with driver-specific fallbacks per slot (COM for ASCOM, REST API for Alpaca,
presets for Fake, InstalledFilter for Manual). Slot count always comes from
hardware/preset, not URI scanning.
- ASCOM: URI params override COM Names[]/FocusOffsets[] per slot
- Alpaca: URI params override API names/focusoffsets; add GetStringArrayAsync/
GetIntArrayAsync to AlpacaClient; ReadFilterConfigAsync populates on connect
- Fake: per-device-ID presets (LRGB/Narrowband/Simple), max 8 slots
- Manual: reads name+offset from URI (single slot)
- EquipmentActions: add GetFilterConfig, SetFilterConfig, UpdateOTA helpers
- VkEquipmentTab: filter table (expand/collapse, name cycle, offset stepper,
add/remove capped at 8) and OTA property editors (name, focal length,
aperture, optical design cycle)
- PlannerActions.BuildSchedule: pass availableFilters and opticalDesign from
active profile to ObservationScheduler
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: TODO.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,8 +2,10 @@
2
2
3
3
## Next Up
4
4
5
-
-[] Fake filter wheels should have pre-installed filters (realistic filter sets per device ID)
5
+
-[x] Fake filter wheels should have pre-installed filters (realistic filter sets per device ID)
6
6
-[ ] Pinned items in planner should persist to disk (`<CommonDataRoot>/Sessions/Uncommitted.json`) so they survive app restarts while not yet committed to a planned session
7
+
-[ ] Seed focuser `MaxStep` from hardware during ZWO EAF discovery (same `seedQueryParams` pattern as EFW slot count)
8
+
-[ ] Remember last focus position in profile URI after auto-focus (save after every auto-focus attempt, whether successful or not) so the focuser can start near the last known good position on next session
7
9
8
10
## Observation Scheduler (PLAN-SessionTests.md)
9
11
@@ -95,7 +97,7 @@
95
97
96
98
-[ ] Query tracking rates from Alpaca when endpoint supports enumeration (`AlpacaTelescopeDriver.cs:46`)
97
99
-[ ] Parse axis rates from Alpaca response (`AlpacaTelescopeDriver.cs:315`)
98
-
-[] Implement string[] and int[] typed getters for filter names and focus offsets (`AlpacaFilterWheelDriver.cs:30`)
100
+
-[x] Implement string[] and int[] typed getters for filter names and focus offsets (`AlpacaClient.cs`)
99
101
-[ ] Parse string[] from Alpaca for `Offsets` (`AlpacaCameraDriver.cs:238`)
100
102
-[ ] Parse string[] from Alpaca for `Gains` (`AlpacaCameraDriver.cs:248`)
101
103
-[ ] Alpaca `imagearray` endpoint requires special binary handling (`AlpacaCameraDriver.cs:258`)
0 commit comments