diff --git a/script/tests/tests/Collimator Tests pro/Monitor Movement/Monitor Movement.py b/script/tests/tests/Collimator Tests pro/Monitor Movement/Monitor Movement.py index 7a4b934..e6ade3a 100644 --- a/script/tests/tests/Collimator Tests pro/Monitor Movement/Monitor Movement.py +++ b/script/tests/tests/Collimator Tests pro/Monitor Movement/Monitor Movement.py @@ -1,94 +1,96 @@ - -###### DO NOT MODIFY THE CODE BELOW ###### +###### Init - DO NOT MODIFY THE CODE BELOW ###### global print_log, sendFeedback, inspect, log, sys, inspect, os, traceback import sys, inspect, os, traceback -def startTest(testName, DEVICE, params): - #get the path of this script - testPath = inspect.getfile(inspect.currentframe()) - #by default, failed - ret = 'Test failed' - status = False - #plot name to be given to the scan. Use: scan.setPlotName(plotName) - plotName = DEVICE + ' - ' + testName -###### WRITE YOUR CODE HERE BELOW ####### - #get parameters from the calling interface - print_log(testName, DEVICE, 'testpath: ' + testPath ) - print_log(testName, DEVICE, 'parameters:' + str( params) ) - print_log(testName, DEVICE, 'device: ' + DEVICE ) - scan = ManualScan(['time'], ['idMotorStep', 'idPotiPosition', 'idPotiRef1Position','idMotorStep-idPotiPosition'] , [0.0], [30.0], [20]) - scan.setPlotName(plotName) - scan.start() - - #Creating channels: dimension 1 - try: - idCom = Channel(DEVICE+':COM:2', type = 'd') #current position as from motor step counter [mm] - idMotorStep = Channel(DEVICE+':IST3:2', type = 'd') #current position as from motor step counter [mm] - idPotiPosFromBeam = Channel(DEVICE+':IST1:2', type = 'd') #current position from beam as from potentiometer [mm] - idPotiPosition = Channel(DEVICE+':IST2:1', type = 'd') #current position as from potentiometer [mm] - idPotiRef1Position = Channel(DEVICE+':REF1:1', type = 'd') #R1 position as from potentiometer [mm] - idPotiRef2Position = Channel(DEVICE+':REF2:1', type = 'd') #R2 position as from potentiometer [mm] - - except: - sendFeedback(testPath, testName, DEVICE, 'Unable to create channel - ' + traceback.format_exc(), False) - #raise Exception('Unable to create channel - ' + traceback.format_exc()) - return - - monitorTime=40 #seconds - print_log(testName, DEVICE, 'Monitoring movement for ' + str(monitorTime) + 's') - #scan quickly the output during some seconds - detector4 = idPotiPosition.get() - detector6 = idPotiRef2Position.get() - timeElapsed=0 - while timeElapsed<(monitorTime*10): - #Detector time - detector1 = float(java.lang.System.currentTimeMillis()) - - detector2 = idMotorStep.get() - detector3 = idPotiPosFromBeam.get() - detector4 = idPotiPosition.get() - detector5 = idPotiRef1Position.get() - detector6 = idPotiRef2Position.get() - diff1 = detector2-detector4 - scan.append ([detector1], [detector1], [detector2, detector4, detector5, diff1]) - sleep( 0.1 ) # Settling time - timeElapsed=timeElapsed+1 - - #Closing channels - idCom.close() - idMotorStep.close() - idPotiPosFromBeam.close() - idPotiPosition.close() - idPotiRef1Position.close() - idPotiRef2Position.close() - print_log(testName, DEVICE, 'End of Monitoring') - ret = 'End of Monitoring' - status = True -########## END OF YOUR CODE ########### - -###### DO NOT MODIFY THE CODE BELOW ###### - sendFeedback(testPath, testName, DEVICE, ret, status) - -#prepare and send feedback to calling tool -def sendFeedback(testPath, testName, DEVICE, returnString, testPassed): - print_log(testName, DEVICE, 'End of test. Result:') - print_log(testName, DEVICE, 'Test path: ' + testPath) - print_log(testName, DEVICE, 'Test name: ' + testName ) - print_log(testName, DEVICE, 'Device: ' + DEVICE) - print_log(testName, DEVICE, 'Test passed: ' + str(testPassed)) - print_log(testName, DEVICE, 'Return string: ' + returnString) - ret = [testPath, DEVICE, returnString, testPassed] - set_return(ret) - def print_log(testName, DEVICE, text): time.ctime() now = time.strftime('%Y.%m.%d %H:%M:%S') - print now + ' ' + DEVICE + ' - ' + testName + ': ' + text + print now + ' ' + DEVICE + ' - ' + testName + ': ' + str(text) log (now + ' ' + DEVICE + ' - ' + testName + ': ' + text ) - -#get test arguments -DEVICE = device -testName = test -params = parameters + +#prepare and send feedback to calling tool +def sendFeedback(testPath, testName, DEVICE, returnString, testPassed): + print_log(testName, DEVICE, 'End of test. Result:') + print_log(testName, DEVICE, 'Device: ' + DEVICE) + print_log(testName, DEVICE, 'Test name: ' + testName) + print_log(testName, DEVICE, 'Test path: ' + testPath) + print_log(testName, DEVICE, 'Test passed: ' + str(testPassed)) + print_log(testName, DEVICE, 'Return string: ' + returnString) + ret = [testPath, DEVICE, returnString, testPassed] + set_return(ret) + +def startTest(testName, DEVICE, params): + try: + import traceback + #get the path of this script + testPath = inspect.getfile(inspect.currentframe()) + #by default, failed + ret = 'Test failed' + success = False + #plot name to be given to the scan. Use: scan.setPlotName(plotName) + plotName = DEVICE + ' - ' + testName +######### WRITE YOUR CODE HERE BELOW ############# + #get parameters from the calling interface + print_log(testName, DEVICE, 'testpath: ' + testPath ) + print_log(testName, DEVICE, 'parameters:' + str( params) ) + print_log(testName, DEVICE, 'device: ' + DEVICE ) + scan = ManualScan(['time'], ['idMotorStep', 'idPotiPosition', 'idPotiRef1Position','idMotorStep-idPotiPosition'] , [0.0], [30.0], [20]) + scan.setPlotName(plotName) + scan.start() + + #Creating channels: dimension 1 + try: + idCom = Channel(DEVICE+':COM:2', type = 'd') #current position as from motor step counter [mm] + idMotorStep = Channel(DEVICE+':IST3:2', type = 'd') #current position as from motor step counter [mm] + idPotiPosFromBeam = Channel(DEVICE+':IST1:2', type = 'd') #current position from beam as from potentiometer [mm] + idPotiPosition = Channel(DEVICE+':IST2:1', type = 'd') #current position as from potentiometer [mm] + idPotiRef1Position = Channel(DEVICE+':REF1:1', type = 'd') #R1 position as from potentiometer [mm] + idPotiRef2Position = Channel(DEVICE+':REF2:1', type = 'd') #R2 position as from potentiometer [mm] + + except: + sendFeedback(testPath, testName, DEVICE, 'Unable to create channel - ' + traceback.format_exc(), False) + #raise Exception('Unable to create channel - ' + traceback.format_exc()) + return + + monitorTime=40 #seconds + print_log(testName, DEVICE, 'Monitoring movement for ' + str(monitorTime) + 's') + #scan quickly the output during some seconds + detector4 = idPotiPosition.get() + detector6 = idPotiRef2Position.get() + timeElapsed=0 + while timeElapsed<(monitorTime*10): + #Detector time + detector1 = float(java.lang.System.currentTimeMillis()) + + detector2 = idMotorStep.get() + detector3 = idPotiPosFromBeam.get() + detector4 = idPotiPosition.get() + detector5 = idPotiRef1Position.get() + detector6 = idPotiRef2Position.get() + diff1 = detector2-detector4 + scan.append ([detector1], [detector1], [detector2, detector4, detector5, diff1]) + sleep( 0.1 ) # Settling time + timeElapsed=timeElapsed+1 + + #Closing channels + idCom.close() + idMotorStep.close() + idPotiPosFromBeam.close() + idPotiPosition.close() + idPotiRef1Position.close() + idPotiRef2Position.close() + print_log(testName, DEVICE, 'End of Monitoring') + ret = 'End of Monitoring' + status = True +################ END OF YOUR CODE ################ +###### Final - DO NOT MODIFY THE CODE BELOW ###### + sendFeedback(testPath, testName, DEVICE, ret, success) + except: + ret = traceback.format_exc() + success = False + sendFeedback(testPath, testName, DEVICE, ret, success) + return + #launch the test -startTest(testName, DEVICE, params) +startTest(test, device, parameters) + \ No newline at end of file diff --git a/script/tests/tests/Collimator Tests pro/Motor Test 2/Motor Test 2.py b/script/tests/tests/Collimator Tests pro/Motor Test 2/Motor Test 2.py index 19fb145..d456af6 100644 --- a/script/tests/tests/Collimator Tests pro/Motor Test 2/Motor Test 2.py +++ b/script/tests/tests/Collimator Tests pro/Motor Test 2/Motor Test 2.py @@ -1,160 +1,163 @@ #Script Motor Test 2 for production system #Go to absolute position A, then move +B steps, then -2B steps, then +2Bsteps (ie oscillate round centre position, logging after each movement); repeat N times -import sys, inspect, os, traceback, time +###### Init - DO NOT MODIFY THE CODE BELOW ###### +global print_log, sendFeedback, inspect, log, sys, inspect, os, traceback +import sys, inspect, os, traceback -###### DO NOT MODIFY THE CODE BELOW ###### -def startTest(testName, DEVICE, params): - #get the path of this script - testPath = inspect.getfile(inspect.currentframe()) - #by default, failed - ret = 'Test failed' - status = False - #plot name to be given to the scan. Use: scan.setPlotName(plotName) - plotName = DEVICE + ' - ' + testName -###### WRITE YOUR CODE HERE BELOW ####### - - #get parameters from the calling interface - try: - print_log(testName, DEVICE, "Running test Motor Test 2 for device " + DEVICE + " with the following parameters:\n" + str(params)) - middle = float(params["midPoint"]["value"]) - loopTimes = int(params["repeatTimes"]["value"]) - span = float(params["spanFromMidPoint"]["value"]) - except: - ret = 'Could not retrieve testing parameters - ' + traceback.format_exc() - success = False - sendFeedback(testPath, testName, DEVICE, ret, status) - return - - #scan = ManualScan(['idX', 'idInkr'], ['idMotorStatus', 'idLogicalPosition', 'idDiameter', 'idPotiPosFromBeam', 'idPotiRaw', 'idPotiProc', 'idBtvsRaw', 'idMotorStep', 'idDiff01', 'idDiff02'] , [-0.5, 0.0], [4.0, 3000.0], [3000, 20]) - #scan = ManualScan(['idX'], ['idMotorStatus', 'idLogicalPosition', 'idDiameter', 'idPotiPosFromBeam', 'idPotiRaw', 'idPotiProc', 'idBtvsRaw', 'idMotorStep', 'idDiff01', 'idDiff02'] , [ 0.0], [ 3000.0], [20]) - scan = ManualScan(['idX'], ['idInkr', 'idInkrRb', 'idMotorStep', 'idPotiPosFromBeam', 'idPotiPosition', 'idPotiRef1Position', 'idPotiRef2Position', 'idDiameter', 'idPotiPosition-idInkrRb', 'idPortPosition-idMotorStep'] , [ 0.0], [ 3000.0], [20]) - scan.setPlotName(plotName) - scan.start() - - #Creating channels: dimension 1 - try: - idInkr = Channel(DEVICE+':INKR:2', type = 'd') #move relative distance (positive means towards R2) [mm] - idInkrRb = Channel(DEVICE+':INKRRB:2', type = 'd') #readback of move relative distance (positive means towards R2) [mm] - idMotorStep = Channel(DEVICE+':IST3:2', type = 'd') #current position as from motor step counter [mm] - idPotiPosFromBeam = Channel(DEVICE+':IST1:2', type = 'd') #current position from beam as from potentiometer [mm] - idPotiPosition = Channel(DEVICE+':IST2:1', type = 'd') #current position as from potentiometer [mm] - idPotiRef1Position = Channel(DEVICE+':REF1:1', type = 'd') #R1 position as from potentiometer [mm] - idPotiRef2Position = Channel(DEVICE+':REF2:1', type = 'd') #R2 position as from potentiometer [mm] - idDiameter = Channel(DEVICE+':DIAM:2', type = 'd') #collimator diameter [mm] - except: - ret = 'Unable to create channel - ' + traceback.format_exc() - success = False - sendFeedback(testPath, testName, DEVICE, ret, status) - return - - direction = 1.0 - startDefault = middle - span - endDefault = middle + span - end = endDefault+1 - #find position: it will be the middle point of the test - print_log(testName, DEVICE, 'Moving to middle point ' + str(middle) ) - idInkr.put(middle, timeout=None) # TODO: Set appropriate timeout - readback2 = idInkr.get() - if abs(readback2 - middle) > 5 : # TODO: Check accuracy - ret = 'Actor idInkr could not be set to the value ' + str(middle) + ' (current value: ' + str(readback2) + ')' - success = False - sendFeedback(testPath, testName, DEVICE, ret, status) - return - start = readback2+direction - countSteps = 0 - count = 0 - print_log(testName, DEVICE, 'Moving around middle point (+-' + str(span) + ')' ) - for setpoint1 in range(0, loopTimes*2): - count = count + 1 - sleep( 5 ) # Settling time - #RegionPositioner idInkr - for setpoint2 in frange(start, end, direction): - readback1 = setpoint1 - idInkr.put(setpoint2, timeout=None) # TODO: Set appropriate timeout - sleep( 0.2 ) # Settling time - readback2 = idInkr.get() - if abs(readback2 - setpoint2) > 1 : # TODO: Check accuracy - ret = 'Actor idInkr could not be set to the value ' + str(setpoint2) + ' (current value: ' + str(readback2) + ')' - success = False - sendFeedback(testPath, testName, DEVICE, ret, status) - return - #Detector idMotorStatus - detector1 = idInkrRb.get() - #Detector idLogicalPosition - detector2 = idMotorStep.get() - #Detector idDiameter - detector3 = idPotiPosFromBeam.get() - #Detector idPotiPosFromBeam - detector4 = idPotiPosition.get() - #Detector idPotiRaw - detector5 = idPotiRef1Position.get() - #Detector idPotiProc - detector6 = idPotiRef2Position.get() - #Detector idBtvsRaw - detector7 = idDiameter.get() - #Manipulation idDiff02 - #Variable Mappings - idDiff02 = detector4-detector2 - #Manipulation idDiff01 - #Variable Mappings - idDiff01 = detector4-detector1 - countSteps = countSteps + 1 - scan.append ([countSteps], [countSteps], [detector1, detector2, detector3, detector4, detector5, detector6, detector7, detector8, idDiff02, idDiff01]) - if (direction > 0.0 and setpoint2 >= end -1): - #invert direction and swap start with end of translation - end = startDefault-1 - start = setpoint2 - direction - direction = -1.0 - print_log(testName, DEVICE, 'End of span (' + str(setpoint2) + '), changing direction to ' + str(direction) ) - break - if ( direction < 0.0 and setpoint2 <= end +1): - #invert direction and swap start with end of translation - end = endDefault+1 - start = setpoint2 - direction - direction = 1.0 - print_log(testName, DEVICE, 'End of span (' + str(setpoint2) + '), changing direction to ' + str(direction) ) - break - - - #Closing channels - idInkr.close() - idInkrRb.close() - idMotorStep.close() - idPotiPosFromBeam.close() - idPotiPosition.close() - idPotiRef1Position.close() - idPotiRef2Position.close() - idDiameter.close() - - scan.end() - ret = 'Slide moved back and forth (' + str(count) + ' runs)' - status = True - -########## END OF YOUR CODE ########### - -###### DO NOT MODIFY THE CODE BELOW ###### - sendFeedback(testPath, testName, DEVICE, ret, status) - -#prepare and send feedback to calling tool -def sendFeedback(testPath, testName, DEVICE, returnString, testPassed): - print_log(testName, DEVICE, 'End of test. Result:') - print_log(testName, DEVICE, 'Test path: ' + testPath) - print_log(testName, DEVICE, 'Test name: ' + testName) - print_log(testName, DEVICE, 'Device: ' + DEVICE) - print_log(testName, DEVICE, 'Test passed: ' + str(testPassed)) - print_log(testName, DEVICE, 'Return string: ' + returnString) - ret = [testPath, DEVICE, returnString, testPassed] - set_return(ret) - def print_log(testName, DEVICE, text): time.ctime() now = time.strftime('%Y.%m.%d %H:%M:%S') - print now + ' ' + DEVICE + ' - ' + testName + ': ' + text + print now + ' ' + DEVICE + ' - ' + testName + ': ' + str(text) + log (now + ' ' + DEVICE + ' - ' + testName + ': ' + text ) +#prepare and send feedback to calling tool +def sendFeedback(testPath, testName, DEVICE, returnString, testPassed): + print_log(testName, DEVICE, 'End of test. Result:') + print_log(testName, DEVICE, 'Device: ' + DEVICE) + print_log(testName, DEVICE, 'Test name: ' + testName) + print_log(testName, DEVICE, 'Test path: ' + testPath) + print_log(testName, DEVICE, 'Test passed: ' + str(testPassed)) + print_log(testName, DEVICE, 'Return string: ' + returnString) + ret = [testPath, DEVICE, returnString, testPassed] + set_return(ret) + +def startTest(testName, DEVICE, params): + try: + import traceback + #get the path of this script + testPath = inspect.getfile(inspect.currentframe()) + #by default, failed + ret = 'Test failed' + success = False + #plot name to be given to the scan. Use: scan.setPlotName(plotName) + plotName = DEVICE + ' - ' + testName +######### WRITE YOUR CODE HERE BELOW ############# + + #get parameters from the calling interface + try: + print_log(testName, DEVICE, "Running test Motor Test 2 for device " + DEVICE + " with the following parameters:\n" + str(params)) + middle = float(params["midPoint"]["value"]) + loopTimes = int(params["repeatTimes"]["value"]) + span = float(params["spanFromMidPoint"]["value"]) + except: + ret = 'Could not retrieve testing parameters - ' + traceback.format_exc() + success = False + sendFeedback(testPath, testName, DEVICE, ret, status) + return + + #scan = ManualScan(['idX', 'idInkr'], ['idMotorStatus', 'idLogicalPosition', 'idDiameter', 'idPotiPosFromBeam', 'idPotiRaw', 'idPotiProc', 'idBtvsRaw', 'idMotorStep', 'idDiff01', 'idDiff02'] , [-0.5, 0.0], [4.0, 3000.0], [3000, 20]) + #scan = ManualScan(['idX'], ['idMotorStatus', 'idLogicalPosition', 'idDiameter', 'idPotiPosFromBeam', 'idPotiRaw', 'idPotiProc', 'idBtvsRaw', 'idMotorStep', 'idDiff01', 'idDiff02'] , [ 0.0], [ 3000.0], [20]) + scan = ManualScan(['idX'], ['idInkr', 'idInkrRb', 'idMotorStep', 'idPotiPosFromBeam', 'idPotiPosition', 'idPotiRef1Position', 'idPotiRef2Position', 'idDiameter', 'idPotiPosition-idInkrRb', 'idPortPosition-idMotorStep'] , [ 0.0], [ 3000.0], [20]) + scan.setPlotName(plotName) + scan.start() + + #Creating channels: dimension 1 + try: + idInkr = Channel(DEVICE+':INKR:2', type = 'd') #move relative distance (positive means towards R2) [mm] + idInkrRb = Channel(DEVICE+':INKRRB:2', type = 'd') #readback of move relative distance (positive means towards R2) [mm] + idMotorStep = Channel(DEVICE+':IST3:2', type = 'd') #current position as from motor step counter [mm] + idPotiPosFromBeam = Channel(DEVICE+':IST1:2', type = 'd') #current position from beam as from potentiometer [mm] + idPotiPosition = Channel(DEVICE+':IST2:1', type = 'd') #current position as from potentiometer [mm] + idPotiRef1Position = Channel(DEVICE+':REF1:1', type = 'd') #R1 position as from potentiometer [mm] + idPotiRef2Position = Channel(DEVICE+':REF2:1', type = 'd') #R2 position as from potentiometer [mm] + idDiameter = Channel(DEVICE+':DIAM:2', type = 'd') #collimator diameter [mm] + except: + ret = 'Unable to create channel - ' + traceback.format_exc() + success = False + sendFeedback(testPath, testName, DEVICE, ret, status) + return + + direction = 1.0 + startDefault = middle - span + endDefault = middle + span + end = endDefault+1 + #find position: it will be the middle point of the test + print_log(testName, DEVICE, 'Moving to middle point ' + str(middle) ) + idInkr.put(middle, timeout=None) # TODO: Set appropriate timeout + readback2 = idInkr.get() + if abs(readback2 - middle) > 5 : # TODO: Check accuracy + ret = 'Actor idInkr could not be set to the value ' + str(middle) + ' (current value: ' + str(readback2) + ')' + success = False + sendFeedback(testPath, testName, DEVICE, ret, status) + return + start = readback2+direction + countSteps = 0 + count = 0 + print_log(testName, DEVICE, 'Moving around middle point (+-' + str(span) + ')' ) + for setpoint1 in range(0, loopTimes*2): + count = count + 1 + sleep( 5 ) # Settling time + #RegionPositioner idInkr + for setpoint2 in frange(start, end, direction): + readback1 = setpoint1 + idInkr.put(setpoint2, timeout=None) # TODO: Set appropriate timeout + sleep( 0.2 ) # Settling time + readback2 = idInkr.get() + if abs(readback2 - setpoint2) > 1 : # TODO: Check accuracy + ret = 'Actor idInkr could not be set to the value ' + str(setpoint2) + ' (current value: ' + str(readback2) + ')' + success = False + sendFeedback(testPath, testName, DEVICE, ret, status) + return + #Detector idMotorStatus + detector1 = idInkrRb.get() + #Detector idLogicalPosition + detector2 = idMotorStep.get() + #Detector idDiameter + detector3 = idPotiPosFromBeam.get() + #Detector idPotiPosFromBeam + detector4 = idPotiPosition.get() + #Detector idPotiRaw + detector5 = idPotiRef1Position.get() + #Detector idPotiProc + detector6 = idPotiRef2Position.get() + #Detector idBtvsRaw + detector7 = idDiameter.get() + #Manipulation idDiff02 + #Variable Mappings + idDiff02 = detector4-detector2 + #Manipulation idDiff01 + #Variable Mappings + idDiff01 = detector4-detector1 + countSteps = countSteps + 1 + scan.append ([countSteps], [countSteps], [detector1, detector2, detector3, detector4, detector5, detector6, detector7, detector8, idDiff02, idDiff01]) + if (direction > 0.0 and setpoint2 >= end -1): + #invert direction and swap start with end of translation + end = startDefault-1 + start = setpoint2 - direction + direction = -1.0 + print_log(testName, DEVICE, 'End of span (' + str(setpoint2) + '), changing direction to ' + str(direction) ) + break + if ( direction < 0.0 and setpoint2 <= end +1): + #invert direction and swap start with end of translation + end = endDefault+1 + start = setpoint2 - direction + direction = 1.0 + print_log(testName, DEVICE, 'End of span (' + str(setpoint2) + '), changing direction to ' + str(direction) ) + break + + + #Closing channels + idInkr.close() + idInkrRb.close() + idMotorStep.close() + idPotiPosFromBeam.close() + idPotiPosition.close() + idPotiRef1Position.close() + idPotiRef2Position.close() + idDiameter.close() + + scan.end() + ret = 'Slide moved back and forth (' + str(count) + ' runs)' + status = True + +################ END OF YOUR CODE ################ +###### Final - DO NOT MODIFY THE CODE BELOW ###### + sendFeedback(testPath, testName, DEVICE, ret, success) + except: + ret = traceback.format_exc() + success = False + sendFeedback(testPath, testName, DEVICE, ret, success) + return -#get test arguments -DEVICE = device -testName = test -params = parameters #launch the test -startTest(testName, DEVICE, params) +startTest(test, device, parameters) diff --git a/script/tests/tests/Collimator Tests pro/Move Ref 1/Move Ref 1.py b/script/tests/tests/Collimator Tests pro/Move Ref 1/Move Ref 1.py index 5042996..728675d 100644 --- a/script/tests/tests/Collimator Tests pro/Move Ref 1/Move Ref 1.py +++ b/script/tests/tests/Collimator Tests pro/Move Ref 1/Move Ref 1.py @@ -1,90 +1,95 @@ -###### DO NOT MODIFY THE CODE BELOW ###### -def startTest(testName, DEVICE, params): - #get the path of this script - testPath = inspect.getfile(inspect.currentframe()) - #by default, failed - ret = 'Test failed' - status = False - #plot name to be given to the scan. Use: scan.setPlotName(plotName) - plotName = DEVICE + ' - ' + testName -###### WRITE YOUR CODE HERE BELOW ####### - #get parameters from the calling interface - print_log(testName, DEVICE, 'testpath: ' + testPath ) - print_log(testName, DEVICE, 'parameters:' + str( params) ) - print_log(testName, DEVICE, 'device: ' + DEVICE ) - scan = ManualScan(['time'], ['idMotorStep', 'idPotiPosition', 'idPotiRef1Position','idMotorStep-idPotiPosition'] , [0.0], [30.0], [20]) - scan.setPlotName(plotName) - scan.start() +###### Init - DO NOT MODIFY THE CODE BELOW ###### +global print_log, sendFeedback, inspect, log, sys, inspect, os, traceback +import sys, inspect, os, traceback - #Creating channels: dimension 1 - try: - idCom = Channel(DEVICE+':COM:2', type = 'd') #current position as from motor step counter [mm] - idMotorStep = Channel(DEVICE+':IST3:2', type = 'd') #current position as from motor step counter [mm] - idPotiPosFromBeam = Channel(DEVICE+':IST1:2', type = 'd') #current position from beam as from potentiometer [mm] - idPotiPosition = Channel(DEVICE+':IST2:1', type = 'd') #current position as from potentiometer [mm] - idPotiRef1Position = Channel(DEVICE+':REF1:1', type = 'd') #R1 position as from potentiometer [mm] - idPotiRef2Position = Channel(DEVICE+':REF2:1', type = 'd') #R2 position as from potentiometer [mm] - - except: - sendFeedback(testPath, testName, DEVICE, 'Unable to create channel - ' + traceback.format_exc(), False) - #raise Exception('Unable to create channel - ' + traceback.format_exc()) - return - - idCom.put('3', timeout=None) # go to R1 - print_log(testName, DEVICE, 'Moving to reference point') - #scan quickly the output during some seconds - detector4 = idPotiPosition.get() - detector6 = idPotiRef2Position.get() - timeElapsed=0 - while detector4>detector6 and timeElapsed<600: - #Detector time - detector1 = float(java.lang.System.currentTimeMillis()) - - detector2 = idMotorStep.get() - detector3 = idPotiPosFromBeam.get() - detector4 = idPotiPosition.get() - detector5 = idPotiRef1Position.get() - detector6 = idPotiRef2Position.get() - diff1 = detector2-detector4 - scan.append ([detector1], [detector1], [detector2, detector4, detector5, diff1]) - sleep( 0.1 ) # Settling time - timeElapsed=timeElapsed+1 - - #Closing channels - idCom.close() - idMotorStep.close() - idPotiPosFromBeam.close() - idPotiPosition.close() - idPotiRef1Position.close() - idPotiRef2Position.close() - print_log(testName, DEVICE, ' Reference point reached') - -########## END OF YOUR CODE ########### - -###### DO NOT MODIFY THE CODE BELOW ###### - sendFeedback(testPath, testName, DEVICE, ret, status) - -#prepare and send feedback to calling tool -def sendFeedback(testPath, testName, DEVICE, returnString, testPassed): - print_log(testName, DEVICE, 'End of test. Result:') - print_log(testName, DEVICE, 'Test path: ' + testPath) - print_log(testName, DEVICE, 'Test name: ' + testName ) - print_log(testName, DEVICE, 'Device: ' + DEVICE) - print_log(testName, DEVICE, 'Test passed: ' + str(testPassed)) - print_log(testName, DEVICE, 'Return string: ' + returnString) - ret = [testPath, DEVICE, returnString, testPassed] - set_return(ret) - def print_log(testName, DEVICE, text): time.ctime() now = time.strftime('%Y.%m.%d %H:%M:%S') - print now + ' ' + DEVICE + ' - ' + testName + ': ' + text - -import sys, inspect, os, traceback -#get test arguments -DEVICE = device -testName = test -params = parameters + print now + ' ' + DEVICE + ' - ' + testName + ': ' + str(text) + log (now + ' ' + DEVICE + ' - ' + testName + ': ' + text ) + +#prepare and send feedback to calling tool +def sendFeedback(testPath, testName, DEVICE, returnString, testPassed): + print_log(testName, DEVICE, 'End of test. Result:') + print_log(testName, DEVICE, 'Device: ' + DEVICE) + print_log(testName, DEVICE, 'Test name: ' + testName) + print_log(testName, DEVICE, 'Test path: ' + testPath) + print_log(testName, DEVICE, 'Test passed: ' + str(testPassed)) + print_log(testName, DEVICE, 'Return string: ' + returnString) + ret = [testPath, DEVICE, returnString, testPassed] + set_return(ret) + +def startTest(testName, DEVICE, params): + try: + import traceback + #get the path of this script + testPath = inspect.getfile(inspect.currentframe()) + #by default, failed + ret = 'Test failed' + success = False + #plot name to be given to the scan. Use: scan.setPlotName(plotName) + plotName = DEVICE + ' - ' + testName +######### WRITE YOUR CODE HERE BELOW ############# + #get parameters from the calling interface + print_log(testName, DEVICE, 'testpath: ' + testPath ) + print_log(testName, DEVICE, 'parameters:' + str( params) ) + print_log(testName, DEVICE, 'device: ' + DEVICE ) + scan = ManualScan(['time'], ['idMotorStep', 'idPotiPosition', 'idPotiRef1Position','idMotorStep-idPotiPosition'] , [0.0], [30.0], [20]) + scan.setPlotName(plotName) + scan.start() + + #Creating channels: dimension 1 + try: + idCom = Channel(DEVICE+':COM:2', type = 'd') #current position as from motor step counter [mm] + idMotorStep = Channel(DEVICE+':IST3:2', type = 'd') #current position as from motor step counter [mm] + idPotiPosFromBeam = Channel(DEVICE+':IST1:2', type = 'd') #current position from beam as from potentiometer [mm] + idPotiPosition = Channel(DEVICE+':IST2:1', type = 'd') #current position as from potentiometer [mm] + idPotiRef1Position = Channel(DEVICE+':REF1:1', type = 'd') #R1 position as from potentiometer [mm] + idPotiRef2Position = Channel(DEVICE+':REF2:1', type = 'd') #R2 position as from potentiometer [mm] + + except: + sendFeedback(testPath, testName, DEVICE, 'Unable to create channel - ' + traceback.format_exc(), False) + #raise Exception('Unable to create channel - ' + traceback.format_exc()) + return + + idCom.put('3', timeout=None) # go to R1 + print_log(testName, DEVICE, 'Moving to reference point') + #scan quickly the output during some seconds + detector4 = idPotiPosition.get() + detector6 = idPotiRef2Position.get() + timeElapsed=0 + while detector4>detector6 and timeElapsed<600: + #Detector time + detector1 = float(java.lang.System.currentTimeMillis()) + + detector2 = idMotorStep.get() + detector3 = idPotiPosFromBeam.get() + detector4 = idPotiPosition.get() + detector5 = idPotiRef1Position.get() + detector6 = idPotiRef2Position.get() + diff1 = detector2-detector4 + scan.append ([detector1], [detector1], [detector2, detector4, detector5, diff1]) + sleep( 0.1 ) # Settling time + timeElapsed=timeElapsed+1 + + #Closing channels + idCom.close() + idMotorStep.close() + idPotiPosFromBeam.close() + idPotiPosition.close() + idPotiRef1Position.close() + idPotiRef2Position.close() + print_log(testName, DEVICE, ' Reference point reached') + +################ END OF YOUR CODE ################ +###### Final - DO NOT MODIFY THE CODE BELOW ###### + sendFeedback(testPath, testName, DEVICE, ret, success) + except: + ret = traceback.format_exc() + success = False + sendFeedback(testPath, testName, DEVICE, ret, success) + return + #launch the test -startTest(testName, DEVICE, params) +startTest(test, device, parameters) diff --git a/script/tests/tests/Collimator Tests pro/Move Ref 2/Move Ref 2.py b/script/tests/tests/Collimator Tests pro/Move Ref 2/Move Ref 2.py index a356685..5942590 100644 --- a/script/tests/tests/Collimator Tests pro/Move Ref 2/Move Ref 2.py +++ b/script/tests/tests/Collimator Tests pro/Move Ref 2/Move Ref 2.py @@ -1,90 +1,95 @@ -###### DO NOT MODIFY THE CODE BELOW ###### -def startTest(testName, DEVICE, params): - #get the path of this script - testPath = inspect.getfile(inspect.currentframe()) - #by default, failed - ret = 'Test failed' - status = False - #plot name to be given to the scan. Use: scan.setPlotName(plotName) - plotName = DEVICE + ' - ' + testName -###### WRITE YOUR CODE HERE BELOW ####### - #get parameters from the calling interface - print_log(testName, DEVICE, 'testpath: ' + testPath ) - print_log(testName, DEVICE, 'parameters:' + str( params) ) - print_log(testName, DEVICE, 'device: ' + DEVICE ) - scan = ManualScan(['time'], ['idMotorStep', 'idPotiPosition', 'idPotiRef2Position','idMotorStep-idPotiPosition'] , [0.0], [30.0], [20]) - scan.setPlotName(plotName) - scan.start() +###### Init - DO NOT MODIFY THE CODE BELOW ###### +global print_log, sendFeedback, inspect, log, sys, inspect, os, traceback +import sys, inspect, os, traceback - #Creating channels: dimension 1 - try: - idCom = Channel(DEVICE+':COM:2', type = 'd') #current position as from motor step counter [mm] - idMotorStep = Channel(DEVICE+':IST3:2', type = 'd') #current position as from motor step counter [mm] - idPotiPosFromBeam = Channel(DEVICE+':IST1:2', type = 'd') #current position from beam as from potentiometer [mm] - idPotiPosition = Channel(DEVICE+':IST2:1', type = 'd') #current position as from potentiometer [mm] - idPotiRef1Position = Channel(DEVICE+':REF1:1', type = 'd') #R1 position as from potentiometer [mm] - idPotiRef2Position = Channel(DEVICE+':REF2:1', type = 'd') #R2 position as from potentiometer [mm] - - except: - sendFeedback(testPath, testName, DEVICE, 'Unable to create channel - ' + traceback.format_exc(), False) - #raise Exception('Unable to create channel - ' + traceback.format_exc()) - return - - idCom.put(4.0, timeout=None) # go to R2 - print_log(testName, DEVICE, 'Moving to reference point') - #scan quickly the output during some seconds - detector4 = idPotiPosition.get() - detector5 = idPotiRef1Position.get() - timeElapsed=0 - while detector4