@@ -83,12 +83,12 @@ separate section below for the machine-readable format.
8383
8484## Recorded parameters
8585
86- The parameters recorded in the ` State ` and ` history ` section correspond to the
86+ The parameters recorded in the ` State ` and ` History ` section correspond to the
8787state modeled by each device type. Device name (N.B., not device label) and
8888parameter name are separated by a comma (` , ` ).
8989
9090Some parameters (such as ` TCamera-0,Binning ` or ` TShutter-0,ShutterState ` ) map
91- to Micro-Manager properties, but some (such as ` TSwitcher-0,GeteOpen ` or
91+ to Micro-Manager properties, but some (such as ` TSwitcher-0,GateOpen ` or
9292` TZStage-0,ZPositionUm ` ) do not.
9393
9494### The ` Busy ` parameter
@@ -116,15 +116,15 @@ completion, the device's `Busy` parameter will have a non-zero value in the
116116move but not waiting for the stage device before acquiring an image.
117117
118118(Note that such bugs are often hard to find when testing with real hardware or
119- DemoCamera, because not all devices become busy on every action begin
119+ DemoCamera, because not all devices become busy on every action being
120120initiated---and even if they did, it's not always obvious from the resulting
121121images that the action had not fully completed: for example, failure to wait
122122for focus movement to finish during a Z stack may not always be obvious in the
123123images.)
124124
125125## Real (wall clock) time is not simulated
126126
127- The SequenceTester devices intentially do ** not** simulate real time behavior.
127+ The SequenceTester devices intentionally do ** not** simulate real time behavior.
128128That is, actions that would take significant time in real devices take almost
129129no time, and the devices never sleep to simulate the passage of time.
130130
@@ -168,9 +168,42 @@ of the device.
168168
169169## Autofocus simulation
170170
171- (To be documented.) Caveat: the autofocus (actually hardware focus-maintenance)
172- behavior simulated may not represent all possible behaviors of real devices.
173- More work may be needed.
171+ The ` TAutofocus-{0,1} ` devices simulate "autofocus" devices, which model devices
172+ that provide hardware-based focus maintenance.
173+
174+ The TAFStage devices (` TAFStage-{0,1} ` ) are Z-stages that return ` true ` from
175+ MMCore's ` isContinuousFocusDrive() ` query. These are useful for testing code
176+ that needs to distinguish between regular Z-stages and focus-maintenance
177+ "offset" stages. (BUG: These should be linked to the current focus offset of the
178+ corresponding ` TAutofocus-{0,1} ` device, but they aren't as of this writing).
179+
180+ Caveat: the autofocus behavior simulated does not represent all possible
181+ behaviors of real hardware focus maintenance devices. This is an area in which
182+ we do not have good abstraction between vendor specific behavior.
183+
184+ The autofocus device (` TAutofocus-{0,1} ` ) provides the following user-accessible
185+ properties:
186+
187+ - ` ContinuousFocus ` (On/Off): Enable or disable continuous focus operation.
188+ Equivalent to MMCore's ` enableContinuousFocus() ` and
189+ ` isContinuousFocusEnabled() ` .
190+ - ` LinkedZStage ` : Specifies the device name (N.B., not label) of a Z-stage to
191+ _ link_ to (typically ` TZStage-0 ` or ` TZStage-1 ` ).
192+ - ` SetZDisablesContinuousFocus ` (Yes/No): When set to ` Yes ` , any call to move
193+ the _ linked_ Z-stage will automatically disable continuous focus. This
194+ simulates the behavior of some microscopes that turn off focus maintenance
195+ when the user or acquisition code manually moves the focus.
196+
197+ In addition to the device properties, the following internal parameters are
198+ recorded in the test output:
199+
200+ - ` Offset ` : The autofocus offset value, accessed via MMCore's
201+ ` setAutoFocusOffset() ` and ` getAutoFocusOffset() ` .
202+ - ` ContinuousFocusEnabled ` : Records the continuous focus on/off state.
203+ - ` FullFocus ` : A one-shot parameter that records when MMCore's ` fullFocus() `
204+ function is called on the autofocus device.
205+ - ` IncrementalFocus ` : A one-shot parameter that records when MMCore's
206+ ` incrementalFocus() ` function is called on the autofocus device.
174207
175208## Format of the MsgPack test data
176209
0 commit comments