-
Notifications
You must be signed in to change notification settings - Fork 15
Galil Axis Stage Controller Agent for SO SAT Coupling Optics #939
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…ng optics hardware
…is now factored into config file
… to be a firmware thing?
…g file operates for getting us the axes we need to query
… be toggleable by state
…ng the input_configfile task upon agent startup
…r set_limit_switch_polarity
…nd update the galilaxisagent config file format'
for more information, see https://pre-commit.ci
|
Alright, as per my usual MO, I have evaded writing tests but am ready for re-review. Holler if tests are still preferred tho---happy to delineate into a separate PR for completeness' sake. |
davidvng
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, looks great, especially the added documentation. Just some small fixes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great thanks! Will merge now.
Description
This PR adds a Galil DMC Axis Controller Agent, which provides motion control and readout for the Galil DMC motor controller. This agent was intentionally written for the hardware incorporated into the Simons Observatory SAT Coupling Optics system. When implemented in this way, the agent controls four axes—two linear and two angular—that move the hardware as needed to perform detector passband measurements.
Core updates involved:
Motivation and Context
Introduces a dedicated OCS agent for controlling the Galil DMC stage hardware used in SAT coupling optics measurements.
How Has This Been Tested?
Has been tested on physical hardware in and outside of a docker container.
Note on Integration Tests: Integration tests are still in development, and I’d love some help troubleshooting. At first, I ran into some Mac-related issues—but from past DAQ work, I know the Lakeshore240 and Radiometer tests have run fine on my local setup. When I started writing integration tests for this agent, even those familiar tests were failing, but after stabilizing my environment, I confirmed the issue is specific to this agent. So far, have only written one test --for the
inittask---and trying to debug before adding on more tests. I suspect theinittest failure may be related to how the config file is being used, since the agent relies on it to set parameters and select which axes to publish, though I’m not entirely sure yet. There may also be additional features I need to mock up for the integration tests, which I’d like to brainstorm with the DAQ team. I haven’t pushed the test files yet since I’m still debugging locally, but can push them shortly.Types of changes
Checklist:
Miscellaneous Notes from Sanah
gclibPython package for the Galil motor. I suspect it wasn’t used originally because the engineer primarily operates from a Mac when assisting labs, andgclibisn’t macOS-friendly.gclib, since it’s used by the HWPsocsagents. I set up a Windows VM on my Mac to test whethergclibcould help address the “?” response issue, but it didn’t provide additional robustness or features that justified rewriting the driver I had already implemented.TCPInterfaceclass into the device drivergalildmc_axis_controller) and the agent class name (GalilAxisController). But I'm also overall unsure if we want to name this more specifically for the SAT Coupling Optics (I doubt that given how we like to name agents after the specific piece of hardware we're commanding...)