Enable web UI to run when no stage is connected

This commit is contained in:
Joel Collins 2019-01-22 14:47:11 +00:00
parent a6332f4f30
commit 0dff9b6b39
3 changed files with 15 additions and 5 deletions

View file

@ -26,7 +26,7 @@
</p>
<p>
<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>

View file

@ -67,7 +67,7 @@ class PositionAPI(MicroscopeView):
position = [0, 0, 0]
# 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'])
logging.debug("TARGET: {}".format(target_position))
position = [target_position[i] - self.microscope.stage.position[i] for i in range(3)]
@ -79,7 +79,9 @@ class PositionAPI(MicroscopeView):
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'))

View file

@ -138,7 +138,11 @@ class Microscope(object):
}
# 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'] = {
'x': position[0],
'y': position[1],
@ -158,7 +162,11 @@ class Microscope(object):
self._config.update(self.camera.config)
# 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'] = {
'x': backlash[0],
'y': backlash[1],