예제 #1
0
파일: misc.py 프로젝트: michel4j/mxdc
        self.positioner.set(pos, wait)

    def move_by(self, val, wait=False, force=False):
        self.positioner.set(self.positioner.get() + val, wait)

    def stop(self):
        pass

    def get_position(self):
        return self.positioner.get()

    def wait(self, **kwargs):
        pass


Registry.add_adapter([IPositioner], IMotor, '', PositionerMotor)


class Attenuator(BasePositioner):
    """
    A positioner for EPICS XIA attenuator boxes

    :param bitname: root name of attenuator PV
    :param energy: energy process variable name

    """
    def __init__(self, bitname, energy):
        super().__init__()
        fname = bitname[:-1]
        self._filters = [
            PV('%s4:bit' % fname),
예제 #2
0
파일: server.py 프로젝트: michel4j/mxdc
class IMXDCService(Interface):
    def shutdown():
        """Shutdown MxDC"""


class IPerspectiveMXDC(Interface):
    def remote_shutdown(*args, **kwargs):
        """Shutdown MxDC"""


@implementer(IPerspectiveMXDC)
class PerspectiveMXDCFromService(pb.Root):
    def __init__(self, service):
        self.service = service

    def remote_shutdown(self, *args, **kwargs):
        """Shutdown MxDC"""
        return self.service.shutdown(*args, **kwargs)


Registry.add_adapter([IMXDCService], IPerspectiveMXDC, '',
                     PerspectiveMXDCFromService)


@implementer(IMXDCService)
class MXDCService(service.Service):
    def shutdown(self):
        logger.warning('Remote Shutdown ...')
        reactor.stop()