def collect(self, owner, arguments, callback=None): self.isSkip = False if self.dataCollect is None: msg = "MultiCollect: not properly configured" logging.getLogger("HWR").error(msg) return (False, msg) # Set the keep_sample_loaded key prev_sample_code = None prev_sample_basket = None prev_sample_vial = None prev_arg = None for arg in arguments: current_sample_code = None current_sample_basket = None current_sample_vial = None try: current_sample_code = arg["sample_reference"]["code"] except KeyError: try: current_sample_basket = int(arg["sample_reference"]["container_reference"]) except (KeyError, ValueError, TypeError): pass else: try: current_sample_vial = int(arg["sample_reference"]["sample_location"]) except (KeyError, ValueError, TypeError): current_sample_basket = None if prev_arg is not None: if prev_sample_code is not None and prev_sample_code == current_sample_code: prev_arg["keep_sample_loaded"] = True elif ( prev_sample_basket is not None and prev_sample_basket == current_sample_basket and prev_sample_vial == current_sample_vial ): prev_arg["keep_sample_loaded"] = True prev_arg = arg prev_sample_code = current_sample_code prev_sample_basket = current_sample_basket prev_sample_vial = current_sample_vial self.currentCollection = arguments # print 'MS 2013-07-03 self.currentCollection', self.currentCollection self.currentCollectionIndex = 0 self.currentOwner = owner self.currentCallback = callback my_callback = None if self.currentCallback is not None: my_callback = self.collectCallback collect_dict = self.currentCollection[self.currentCollectionIndex] self.currCollectThread = DataCollectPX2.startActionsThread( CollectActions(self.dataCollect, self.currentOwner, collect_dict, my_callback) ) return (True,)
def collect(self,owner,arguments,callback=None): self.isSkip=False if self.dataCollect is None: msg='MultiCollect: not properly configured' logging.getLogger("HWR").error(msg) return (False,msg) # Set the keep_sample_loaded key prev_sample_code=None prev_sample_basket=None prev_sample_vial=None prev_arg=None for arg in arguments: current_sample_code=None current_sample_basket=None current_sample_vial=None try: current_sample_code=arg['sample_reference']['code'] except KeyError: try: current_sample_basket=int(arg['sample_reference']['container_reference']) except (KeyError,ValueError,TypeError): pass else: try: current_sample_vial=int(arg['sample_reference']['sample_location']) except (KeyError,ValueError,TypeError): current_sample_basket=None if prev_arg is not None: if prev_sample_code is not None and prev_sample_code==current_sample_code: prev_arg["keep_sample_loaded"]=True elif prev_sample_basket is not None and prev_sample_basket==current_sample_basket and prev_sample_vial==current_sample_vial: prev_arg["keep_sample_loaded"]=True prev_arg=arg prev_sample_code=current_sample_code prev_sample_basket=current_sample_basket prev_sample_vial=current_sample_vial self.currentCollection=arguments #print 'MS 2013-07-03 self.currentCollection', self.currentCollection self.currentCollectionIndex=0 self.currentOwner=owner self.currentCallback=callback my_callback=None if self.currentCallback is not None: my_callback=self.collectCallback collect_dict=self.currentCollection[self.currentCollectionIndex] self.currCollectThread=DataCollectPX2.startActionsThread(CollectActions(self.dataCollect,self.currentOwner,collect_dict,my_callback)) return (True,)
def collectEnded(self,owner,state,message): print "MS 17.09.2012. collectEnded" if self.isSkip: self.isSkip=False # Catching exception if self.currentCollectionIndex not int try: self.currentCollectionIndex += 1 except TypeError: self.currentCollectionIndex = 1 print 'MS 20.09.2012 debug, self.currentCollection', self.currentCollection try: collect_dict=self.currentCollection[self.currentCollectionIndex] except IndexError: self.multiCollectCleanup() self.emit('collectEnded', (owner,state,message)) else: if self.currCollectThread is not None: self.currCollectThread.respect() my_callback=None if self.currentCallback is not None: my_callback=self.collectCallback self.currCollectThread=DataCollectPX2.startActionsThread(CollectActions(self.dataCollect,self.currentOwner,collect_dict,my_callback))