Enable web UI to run when no stage is connected
This commit is contained in:
parent
a6332f4f30
commit
0dff9b6b39
3 changed files with 15 additions and 5 deletions
|
|
@ -26,7 +26,7 @@
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<button type="button" onclick="setStagePositionsFromInput();">GO</button>
|
<button type="button" onclick="setStagePositionsFromInput();">GO</button>
|
||||||
<button type="button" onclick="getStagePositions();">Update</button>
|
<button type="button" onclick="api.getState(updateStateValues);">Update</button>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ class PositionAPI(MicroscopeView):
|
||||||
position = [0, 0, 0]
|
position = [0, 0, 0]
|
||||||
|
|
||||||
# Handle absolute positioning (calculate a relative move from current position and target)
|
# Handle absolute positioning (calculate a relative move from current position and target)
|
||||||
if payload.param('absolute') is True:
|
if (payload.param('absolute') is True) and (self.microscope.stage): # Only if stage exists
|
||||||
target_position = axes_to_array(payload.json, ['x', 'y', 'z'])
|
target_position = axes_to_array(payload.json, ['x', 'y', 'z'])
|
||||||
logging.debug("TARGET: {}".format(target_position))
|
logging.debug("TARGET: {}".format(target_position))
|
||||||
position = [target_position[i] - self.microscope.stage.position[i] for i in range(3)]
|
position = [target_position[i] - self.microscope.stage.position[i] for i in range(3)]
|
||||||
|
|
@ -79,7 +79,9 @@ class PositionAPI(MicroscopeView):
|
||||||
|
|
||||||
logging.debug(position)
|
logging.debug(position)
|
||||||
|
|
||||||
self.microscope.stage.move_rel(position)
|
# Move if stage exists
|
||||||
|
if self.microscope.stage:
|
||||||
|
self.microscope.stage.move_rel(position)
|
||||||
|
|
||||||
out = filter_dict(self.microscope.state, ('stage', 'position'))
|
out = filter_dict(self.microscope.state, ('stage', 'position'))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -138,7 +138,11 @@ class Microscope(object):
|
||||||
}
|
}
|
||||||
|
|
||||||
# Add stage position
|
# Add stage position
|
||||||
position = self.stage.position
|
if self.stage: # If stage exists, populate with real values
|
||||||
|
position = self.stage.position
|
||||||
|
else: # Else, zero
|
||||||
|
position = [0, 0, 0]
|
||||||
|
|
||||||
state['stage']['position'] = {
|
state['stage']['position'] = {
|
||||||
'x': position[0],
|
'x': position[0],
|
||||||
'y': position[1],
|
'y': position[1],
|
||||||
|
|
@ -158,7 +162,11 @@ class Microscope(object):
|
||||||
self._config.update(self.camera.config)
|
self._config.update(self.camera.config)
|
||||||
|
|
||||||
# If attached to a stage
|
# If attached to a stage
|
||||||
backlash = self.stage.backlash.tolist()
|
if self.stage:
|
||||||
|
backlash = self.stage.backlash.tolist()
|
||||||
|
else:
|
||||||
|
backlash = [0, 0, 0]
|
||||||
|
|
||||||
self._config['backlash'] = {
|
self._config['backlash'] = {
|
||||||
'x': backlash[0],
|
'x': backlash[0],
|
||||||
'y': backlash[1],
|
'y': backlash[1],
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue