Skip to content

refactor elliptecCtrl to be a stdMotionStage with telemetry and add tests#352

Open
jaredmales wants to merge 13 commits into
devfrom
jrmales/elliptecCtrl
Open

refactor elliptecCtrl to be a stdMotionStage with telemetry and add tests#352
jaredmales wants to merge 13 commits into
devfrom
jrmales/elliptecCtrl

Conversation

@jaredmales

Copy link
Copy Markdown
Member

This work was performed by Codex (GPT-5) in response to the prompt: "have a look at elliptecCtrl-stdMotionStage-interface.md and follow the instructions therein."

Summary

  • refactor elliptecCtrl to use the standard dev::stdMotionStage lifecycle and INDI interface path
  • add native telem_position support and force telem_stage/telem_position recording when software initiates a move or controller-affecting change
  • tighten stage-state handling, including preset matching by actual position and removal of an ambiguous moveTo overload
  • fix motion-state tracking by using the inherited stdMotionStage moving state rather than a shadowing app-local member
  • add elliptecCtrl unit tests, register them in the test docs/listing, and update the implementation plan with test and coverage results

Testing

  • clang-format -i apps/elliptecCtrl/elliptecCtrl.hpp
  • clang-format -i apps/elliptecCtrl/tests/elliptecCtrl_test.cpp
  • make -B -C apps/elliptecCtrl elliptecCtrl.o
  • apps/elliptecCtrl/tests/elliptecCtrl_test

Coverage

  • apps/elliptecCtrl/elliptecCtrl.hpp: 96.4% line coverage, 100% function coverage
  • libMagAOX/app/dev/stdMotionStage.hpp: 99.0% line coverage, 100% function coverage

@jaredmales jaredmales requested a review from a team April 9, 2026 02:19
jaredmales and others added 5 commits April 9, 2026 20:29
…pt-out) (#354)

* Throttle streamWriter backlog logging

* Reduce streamWriter framegrab loop overhead

* Drain queued streamWriter semaphore posts

* Add streamWriter framegrabber busy-wait mode

* Add streamWriter skipped-frame warning switch

* cleaning up old debugs and notes

* Adjust streamWriter missed-data log priority

* add sparkle app to cacti makefile

* jay walk-up song

* get our boy on sky

* Track preset aliases in stdMotionStage

* Preserve parked stage telemetry on power off

* Refresh zaber preset switches while powered off

* Initial plan

* IndiXmlParser: escape special characters in XML attribute values

Apply createSafeXmlString() to all user-supplied attribute values
(device, name, label, group, message) in all XML generation methods
to prevent malformed XML when these contain ", <, >, or &.

Add Catch2 tests verifying the escaping for labels, groups, messages,
device names, element labels, and the createSafeXmlString() function
directly.

Agent-Logs-Url: https://github.com/magao-x/MagAOX/sessions/a304ae40-1006-459d-b916-08c40567899a

Co-authored-by: joseph-long <31168267+joseph-long@users.noreply.github.com>

* Remove accidentally committed MAGAOX stub file

Agent-Logs-Url: https://github.com/magao-x/MagAOX/sessions/a304ae40-1006-459d-b916-08c40567899a

Co-authored-by: joseph-long <31168267+joseph-long@users.noreply.github.com>

* Fix zaber state propagation after homing and power-off

* Propagate powered-off stage snapshots in zaberLowLevelBinary

* Refresh binary zaber last-home timestamps after homing

* Fix dmCtrlGUI reconnect on list refresh

* Harden acquisition overlay against delayed INDI updates

* Serialize indiDictionary map updates

* Reuse acquisition overlay items across star-count changes

* Recover acquisition overlays after rtimv circle cleanup

* Refresh warnings overlay on list changes

* added rtimv_plugins_clean to all_clean

* Remove prefix matching for xctrl

* moved xt1121s to AOC from ICC; build xInstGraph on AOC

* add ctrl+l option to cursesINDI

* fix bugs in ctrl+l code

* Add buildability test

* Use arch-neutral tag names from revised magao-x-setup workflow

* add flowRPM app to monitor fan RPM as coolant flow (#353)

* reorg plans with date folders

* Add flowRPM app and test coverage

* tweak doxygen sections

* Refine flowRPM test doxygen references

* adjust test groups

* cleanup of some flowRPM stuff

---------

Co-authored-by: joshua-liberman <jliberman54@gmail.com>
Co-authored-by: Jay Kueny <55003234+jkueny@users.noreply.github.com>
Co-authored-by: Eden McEwen <eden.a.mcewen@gmail.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: joseph-long <31168267+joseph-long@users.noreply.github.com>
Co-authored-by: Joseph D. Long <me@joseph-long.com>
Co-authored-by: Miles Lucas <mileslucas@arizona.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants