Skip to content

server hands any name it doesn't dispatch to controller_cmd - #54

Merged
astronomerdave merged 2 commits into
mainfrom
DH/command-dispatch
Oct 23, 2026
Merged

astronomerdave merged 2 commits into
mainfrom
DH/command-dispatch

Conversation

@astronomerdave

@astronomerdave astronomerdave commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

required to meet camera 2.0 design

The server recognizes the core's functions and hands every other name to controller_cmd. ArchonInterface::controller_cmd is final and handles the Archon's own commands and forwards the rest to instrument_cmd, whose base default logs the unknown command and replies not_supported ERROR. The is_instrument_command gate is removed, along with the reference instrument's override of it.

mode is not a core command. mode is renamed acfmode and handled by ArchonInterface::controller_cmd. It no longer sleects an exposure mode and a load leaves none selected.

The command table in the docs is now generated from both the server and ArchonInterface::controller_cmd. bob is gone and acfmode is marked Archon.

CI checks acfmode, a getp reaching the Archon handler through controller_cmd, and an unknown command reaching the base instrument_cmd.

Breaks HISPEC tracking camera. A hispect-tracking-camera-instrument PR will adapt it and pin the core to this branch.
hispec-tracking-camera pr made and waiting for this PR's merge.

mode is made a core function. is_instrument_command is removed
* camera_mode is removed from the base. the Archon's mode is renamed
  acfmode and handled in ArchonInterface::controller_cmd, so the server
  names no mode

* selecting an ACF mode section no longer selects an exposure mode, and
  default_exposure_mode_name is removed. every load leaves no exposure
  mode selected, and expose is refused until one is selected

* the Python mode binding is removed. the example and the module test
  select SINGLE after power on

* CI checks acfmode through controller_cmd, that acfmode leaves the
  exposure mode alone, and that a load leaves none selected

* breaks HISPEC tracking camera: its default_exposure_mode_name override
  and two-argument set_camera_mode calls no longer compile
@astronomerdave

astronomerdave commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor Author

revised: mode is no longer a core function. the Archon's mode is renamed acfmode and moved into ArchonInterface::controller_cmd; camera_mode() and the Python mode binding are removed. a load now leaves no exposure mode selected, and applying an ACF mode section no longer selects one. description updated

@astronomerdave
astronomerdave marked this pull request as ready for review October 20, 2026 17:28
@astronomerdave
astronomerdave marked this pull request as draft October 20, 2026 21:16
@astronomerdave

Copy link
Copy Markdown
Contributor Author

I thought I could quickly "un-break" the hispec tracking camera but for now I'm converting this back to draft, until I can show easily what needs to be done.

@astronomerdave
astronomerdave marked this pull request as ready for review October 22, 2026 19:36
@astronomerdave

Copy link
Copy Markdown
Contributor Author

@mikelangmayr released from draft, ready for review again. hispec-tracking-camera-instrument#1 is the bare minimum to get the tracking camera building against this. The two set_camera_mode calls go to acfmode, the default_exposure_mode_name override goes, and its load selects its own pipeline since a load now leaves none selected. Its autofetch_mode still works from Python, which goes straight to the instrument; only autofetch_mode over the socket now reaches the Archon's own. That PR#1 could be merged right after this one.

@mikelangmayr

Copy link
Copy Markdown
Contributor

Let's go!

@astronomerdave
astronomerdave merged commit cd1b434 into main Oct 23, 2026
5 checks passed
@mikelangmayr
mikelangmayr deleted the DH/command-dispatch branch October 23, 2026 17:54
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