Пример #1
0
    def init(self):
        moveToLoadingPositionCmd = self.addCommand({ 'type': 'spec', 'name': '_moveToLoadingPosition' }, "SCMoveToLoadingPos")
        moveToUnloadingPositionCmd = self.addCommand({'type': 'spec', 'name': '_moveToUnloadingPosition'}, "SCMoveToUnloadingPos")
        unlockMinidiffMotorsCmd = self.addCommand({ 'type': 'spec', 'name': 'unlockMinidiffMotors'}, "SCMinidiffGetControl")
        unlockMinidiffMotorsCleanupCmd = self.addCommand({ 'type': 'spec', 'name': 'unlockMinidiffMotorsCleanup'}, "SCMinidiffGetControl")
        prepareCentringCmd = self.addCommand({ 'type': 'spec', 'name': 'prepareCentring'}, "minidiff_prepare_centring")

        abortCmd = self.addCommand({ 'type': 'tango', 'name': 'abort' }, "Abort")
        holderLengthCmd = self.addCommand( { 'type': 'tango', 'name': 'holderlength' }, "GetSampleHolderLength")
        isScanBasketForDataMatrixDoneCmd = self.addCommand({ 'type': 'tango', 'name':'isScanBasketForDataMatrixDone' }, "isScanBasketForDataMatrixDone")
        getInformationAsXmlCmd = self.addCommand({ 'type': 'tango', 'name': 'getInformationAsXml' }, 'GetInformationAsXml')
        statusChan = self.addChannel({ 'type': 'tango', 'name': 'status', 'polling':1000 }, "Status")
        stateChan = self.addChannel({ 'type': 'tango', 'name': 'state', 'polling':1000 }, "State")
        selectedBasketChan = self.addChannel({ 'type': 'tango', 'name':'selectedBasket', 'polling':1000 }, "SelectedBasketLocation")
        selectedSampleChan = self.addChannel({ 'type': 'tango', 'name': 'selectedSample', 'polling':1000 }, "SelectedSampleLocation")
        selectedBasketDataMatrixChan = self.addChannel({ 'type': 'tango', 'name': 'selectedBasketDataMatrix', 'polling':1000 }, "SelectedBasketDataMatrix")
        sampleIsLoadedChan = self.addChannel({"type":"tango", "name":"sampleIsLoaded", "polling":500 }, "SampleIsLoaded")
        basketTransferChan = self.addChannel({"type":"tango", "name":"transferMode", "polling":1000 }, "BasketTransferMode")
        self.addCommand({'type':'tango', 'name':'resetBasketInformation' }, "ResetBasketInformation")
        self.addCommand({"type":"tango", "name":"switchTransferMode"}, "SetBasketTransferMode")

        operationalChan = self.addChannel( { 'type': 'spec', 'name': 'OperationalFlags' }, "SC_MD_FLAGS")

        for cmd in self.getCommands():
            cmd.connectSignal("commandFailed", self.__commandFailed)
            cmd.connectSignal("commandAborted", self.__commandAborted)

        if self.getProperty('specversion') is None:
            logging.getLogger("HWR").error("%s: you must specify a spec version" % self.name())
        else:
            operationalChan.connectSignal("update", self.operationalFlagsChanged)
            try:
                self.operationalFlagsChanged(operationalChan.getValue())
            except:
                logging.getLogger("HWR").exception("%s: error getting SC vs MD operational flags" % self.name())

            self.specConnection=SpecConnectionsManager.SpecConnectionsManager().getConnection(self.specversion)
            SpecEventsDispatcher.connect(self.specConnection, 'connected', self.specConnected)
            SpecEventsDispatcher.connect(self.specConnection, 'disconnected', self.specDisconnected)

        statusChan.connectSignal("update", self.sampleChangerStatusChanged)
        stateChan.connectSignal("update", self.sampleChangerStateChanged)
        selectedSampleChan.connectSignal("update", self.selectedSampleChanged)
        selectedBasketChan.connectSignal("update", self.selectedBasketChanged)
        selectedBasketDataMatrixChan.connectSignal("update", self.selectedBasketDataMatrixChanged)
        basketTransferChan.connectSignal("update", self.basketTransferModeChanged)
        sampleIsLoadedChan.connectSignal("update", self.sampleLoadStateChanged)
 
        try:
            self.isSpecConnected=unlockMinidiffMotorsCmd.isSpecConnected()
        except:
            self.isSpecConnected=False

        try:
            self.microdiff
        except AttributeError:
            self.prepareCentringAfterLoad=True
        else:
            self.prepareCentringAfterLoad=False
Пример #2
0
    def setSpecVersion(self, specVersion):
        scanCmd = self.getCommandObject('start')
        scanCmd.setSpecVersion(specVersion)
        
        if specVersion is not None:
            self.specConnection = SpecConnectionsManager.SpecConnectionsManager().getConnection(specVersion)

            if self.specConnection is not None:
                SpecEventsDispatcher.connect(self.specConnection, 'connected', self.connected)
                SpecEventsDispatcher.connect(self.specConnection, 'disconnected', self.disconnected)
                
                if self.specConnection.isSpecConnected():
                    self.connected()
Пример #3
0
 def init(self):
     self.allMotors=None
     self.motorListMacro=None
     self.gettingMotors=None
     try:
         self.specConnection=SpecConnectionsManager.SpecConnectionsManager().getConnection(self.specversion)
     except AttributeError:
         self.specConnection=None
         logging.getLogger("HWR").error('MotorList: you must specify a spec version')
     else:
         SpecEventsDispatcher.connect(self.specConnection, 'connected', self.sConnected)
         SpecEventsDispatcher.connect(self.specConnection, 'disconnected', self.sDisconnected)
         if self.is_connected():
             self.sConnected()
Пример #4
0
    def setSpecVersion(self, specVersion):
        scanCmd = self.get_command_object("start")
        scanCmd.setSpecVersion(specVersion)

        if specVersion is not None:
            self.specConnection = SpecConnectionsManager.SpecConnectionsManager(
            ).get_connection(specVersion)

            if self.specConnection is not None:
                SpecEventsDispatcher.connect(self.specConnection, "connected",
                                             self.connected)
                SpecEventsDispatcher.connect(self.specConnection,
                                             "disconnected", self.disconnected)

                if self.specConnection.isSpecConnected():
                    self.connected()
Пример #5
0
 def init(self):
     self.allMotors = None
     self.motorListMacro = None
     self.gettingMotors = None
     try:
         self.specConnection = SpecConnectionsManager.SpecConnectionsManager(
         ).getConnection(self.specversion)
     except AttributeError:
         self.specConnection = None
         logging.getLogger("HWR").error(
             'MotorList: you must specify a spec version')
     else:
         SpecEventsDispatcher.connect(self.specConnection, 'connected',
                                      self.sConnected)
         SpecEventsDispatcher.connect(self.specConnection, 'disconnected',
                                      self.sDisconnected)
         if self.isConnected():
             self.sConnected()