Skip to content

ASIStage: CRISP improvements, reduce serial traffic when setting the "CRISP State" property#878

Merged
marktsuchida merged 6 commits intomicro-manager:mainfrom
bls337:ASIStage
Mar 6, 2026
Merged

ASIStage: CRISP improvements, reduce serial traffic when setting the "CRISP State" property#878
marktsuchida merged 6 commits intomicro-manager:mainfrom
bls337:ASIStage

Conversation

@bls337
Copy link
Contributor

@bls337 bls337 commented Mar 5, 2026

We no longer query the focus state 2x with GetFocusState() before setting the "CRISP State".

CRISP Advanced properties "Set LogAmpAGC (Advanced Users Only)" and "Set Lock Offset (Advanced Users Only)" are MM::Integer properties and should use long not double. Sends "LK M=1" instead of "LK M=1.000000".

Change CRISP GetFocusState() to UpdateFocusState() which uses the same logic as ASITiger to update the focusState_ member variable.

If firmware >= 9.53 is detected, use the shortcut "EX Y?" instead of "EXTRA Y?"for the"Signal Noise Ratio"` property.

Use static_cast<long> to convert double to long. LogAmpAGC returns ":A X=1.000000" and Offset uses GetOffset(double& offset).

GetCurrentFocusScore() matches CRISP semantics. "LK Y?" returns the current focus score, so we alias GetLastFocusScore() to GetCurrentFocusScore() instead of the other way around.

@marktsuchida marktsuchida merged commit 742fff1 into micro-manager:main Mar 6, 2026
2 checks passed
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