print "Monitoring" if controller.state == State.Ready and Scienta.state.isInitialized(): scientaCurrentImageCount = Scienta.getCurrentImageCount() _scientaRestart = False if scientaCurrentImageCount>0: #Criteria is: currentImageCount decreated if globals().has_key("scientaLastImageCount"): if scientaCurrentImageCount < scientaLastImageCount: _scientaRestart = True else: #Criteria: first communication after timeout retries = 3 for i in range(retries): try: print "Reading" Scienta.getImageCounter().read() print "Communication ok" if globals().has_key("scientaTimeOut"): if scientaTimeOut: _scientaRestart = True scientaTimeOut = False break except: if i < retries-1: print "Com failure: retrying" else: print "Scienta timeout" scientaTimeOut = True break if _scientaRestart: print "Restarting Scienta..." Scienta.initialize() print "Finished Scienta restart..." scientaLastImageCount = scientaCurrentImageCount