43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
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:
|
|
Scienta.getImageCounter().read()
|
|
break
|
|
except:
|
|
print "Com failure: retrying"
|
|
pass
|
|
if i < retries-1:
|
|
#Communication ok
|
|
print "Communication ok"
|
|
if globals().has_key("scientaTimeOut"):
|
|
if scientaTimeOut:
|
|
_scientaRestart = True
|
|
scientaTimeOut = False
|
|
else:
|
|
print "Scienta timeout"
|
|
scientaTimeOut = True
|
|
|
|
if _scientaRestart:
|
|
print "Restarting Scienta..."
|
|
Scienta.initialize()
|
|
print "Finished Scienta restart..."
|
|
|
|
scientaLastImageCount = scientaCurrentImageCount
|
|
|
|
|
|
|
|
|
|
|