Skip to content

Commit

Permalink
Merge pull request #218 from olofsvensson/2.2
Browse files Browse the repository at this point in the history
Issue #215: Added new methods to the XMLRPCServer
  • Loading branch information
mguijarr authored Apr 12, 2017
2 parents 1259c29 + 44603a3 commit ae804a7
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 5 deletions.
15 changes: 15 additions & 0 deletions Microdiff.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@ def init(self):
self.centringVertical = self.getDeviceByRole('centringVertical')
self.centringFocus = self.getDeviceByRole('centringFocus')

self.frontLight = self.getDeviceByRole('flight')
self.backLight = self.getDeviceByRole('light')
self.beam_info = self.getObjectByRole('beam_info')

def getMotorToExporterNames(self):
#only temporary. Get the names from the xml files
Expand Down Expand Up @@ -292,6 +295,18 @@ def interruptAndAcceptCentring(self):
self.startCentringMethod(self,self.MANUAL3CLICK_MODE)
self.do_centring = True

def getFrontLightLevel(self):
return self.frontLight.getPosition()

def setFrontLightLevel(self, level):
return self.frontLight.move(level)

def getBackLightLevel(self):
return self.backLight.getPosition()

def setBackLightLevel(self, level):
return self.backLight.move(level)

def set_light_in(light, light_motor, zoom):
MICRODIFF.getDeviceByRole("flight").move(0)
MICRODIFF.getDeviceByRole("lightInOut").actuatorIn()
Expand Down
62 changes: 57 additions & 5 deletions XMLRPCServer.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,13 @@ def open(self):
self._server.register_function(self.anneal)
self._server.register_function(self.open_dialog)
self._server.register_function(self.workflow_end)
self._server.register_function(self.set_zoom_level)
self._server.register_function(self.get_zoom_level)
self._server.register_function(self.get_available_zoom_levels)
self._server.register_function(self.set_front_light_level)
self._server.register_function(self.get_front_light_level)
self._server.register_function(self.set_back_light_level)
self._server.register_function(self.get_back_light_level)

# Register functions from modules specified in <apis> element
if self.hasObject("apis"):
Expand Down Expand Up @@ -373,13 +380,10 @@ def set_aperture(self,pos_name, timeout=20):
return True

def get_aperture(self):
return self.diffractometer_hwobj.beam_info.aperture_hwobj.getPosition()
return self.diffractometer_hwobj.beam_info.aperture_hwobj.getCurrentPositionName()

def get_aperture_list(self):
aperture_list=[]
for i in range(0, len(self.diffractometer_hwobj.beam_info.aperture_hwobj['positions'])):
aperture_list.append(self.diffractometer_hwobj.beam_info.aperture_hwobj['positions'][0][i].getProperty('name'))
return aperture_list
return self.diffractometer_hwobj.beam_info.aperture_hwobj.getPredefinedPositionsList()

def open_dialog(self, dict_dialog):
"""
Expand All @@ -398,6 +402,54 @@ def workflow_end(self):
if self.workflow_hwobj is not None:
self.workflow_hwobj.workflow_end()

def set_zoom_level(self, zoom_level):
"""
Sets the zoom to a pre-defined level.
"""
self.diffractometer_hwobj.zoomMotor.moveToPosition(zoom_level)

def get_zoom_level(self):
"""
Returns the zoom level.
"""
return self.diffractometer_hwobj.zoomMotor.getCurrentPositionName()

def get_available_zoom_levels(self):
"""
Returns the avaliable pre-defined zoom levels.
"""
return self.diffractometer_hwobj.zoomMotor.getPredefinedPositionsList()

def set_zoom_level(self, zoom_level):
"""
Sets the zoom to a pre-defined level.
"""
self.diffractometer_hwobj.zoomMotor.moveToPosition(zoom_level)

def set_front_light_level(self, level):
"""
Sets the level of the front light
"""
self.diffractometer_hwobj.setFrontLightLevel(level)

def get_front_light_level(self):
"""
Gets the level of the front light
"""
return self.diffractometer_hwobj.getFrontLightLevel()

def set_back_light_level(self, level):
"""
Sets the level of the back light
"""
self.diffractometer_hwobj.setBackLightLevel(level)

def get_back_light_level(self):
"""
Gets the level of the back light
"""
return self.diffractometer_hwobj.getBackLightLevel()

def _register_module_functions(self, module_name, recurse=True, prefix=""):
log = logging.getLogger("HWR")
log.info('Registering functions in module %s with XML-RPC server' %
Expand Down

0 comments on commit ae804a7

Please sign in to comment.