Add SmarAct MCS2 stage and XEM DAC (supersedes #51) - #55
Merged
Conversation
the stage is not moving. The maximum closed-loop frequency is set to 18500 Hz as vendor's software. Changes to other files so that generic gui can be used for smaract stage. The stageinterface_bridge_smaract.jl is added to bridge the generic gui and smaract stage.
HardwareImplementations.jl now has a function to create a SmarAct stage, which is used in run.jl to create a stage and launch the GUI.
Servo for both axes is now enabled. Skips channel with no positioner.
…c move timeout - Restore .vscode/settings.json, dev/Project.toml and Project.toml to main: the branch had committed a per-user VS Code environment path and a dev/ [sources] entry pointing at one person's Windows checkout, which breaks the dev/ environment for everyone else. - Move smaract_stage/test_dll.jl out of src/ to dev/test_smaract_dll.jl; it is a top-level script that ccalls the SDK on include and is not part of the module. - move_all! waits for motion inside an @async task, where a thrown error() is only visible as a failed Task; log the timeout with @error and exit the loop instead. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011qRMiDoUf47KiBzTKpdnAe
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Supersedes #51 (fork branch without maintainer-edit access), keeping all 19 original commits from @rai-svg47 and @kiwibogo, merged with current
main(post-#53 CI) plus one cleanup commit:.vscode/settings.json,dev/Project.tomlandProject.tomltomain. Test smaract #51 committed a per-user VS Code environment path and adev/[sources]entry pointing at one person's Windows checkout, which breaks thedev/environment for everyone else.src/hardware_implementations/smaract_stage/test_dll.jltodev/test_smaract_dll.jl. It is a top-level script that ccalls the SDK on include and is not part of the module.move_all!waits for motion completion inside an@asynctask (deliberate, so a new move can override an in-progress one from the GUI). A thrownerror()there is only visible as a failed Task, so the timeout now logs with@errorand exits the loop.What #51 adds (unchanged): SmarAct MCS2 stage (
MCS2Stage <: StagewithStageInterfacebridge formove/getposition/stopmotion/home/servo), Opal KellyXEM_DACmodule with newOK_XEMwire/trigger helpers, anddev/test scripts.Not verifiable here: the hardware paths (Windows DLLs).
getrangeis not implemented forMCS2Stageand falls to the interface stub.Verification (local Linux, Julia 1.12.6, xvfb-run)
using MicroscopeControlloads;MCS2StageandXEM_dacare exported.Pkg.test(): 115 passed, 0 failed.🤖 Generated with Claude Code
https://claude.ai/code/session_011qRMiDoUf47KiBzTKpdnAe