This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
#Wed Dec 12 09:19:49 CET 2018
|
||||
#Tue Jan 15 11:47:52 CET 2019
|
||||
autoSaveScanData=true
|
||||
commandExecutionEvents=false
|
||||
createSessionFiles=true
|
||||
@@ -13,7 +13,7 @@ depthDimension=0
|
||||
hostName=null
|
||||
instanceName=X06SA
|
||||
logDaysToLive=30
|
||||
logLevel=Fine
|
||||
logLevel=Finer
|
||||
logLevelConsole=Off
|
||||
logPath={logs}/{date}_{time}
|
||||
notificationLevel=null
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
img=ch.psi.pshell.prosilica.Prosilica|204464 "PacketSize=1504;PixelFormat=Mono8;BinningX=1;BinningY=1;RegionX=300;RegionY=200;Width=1000;Height=1000;MulticastEnable=Off"||-200|false
|
||||
gripper_cam=ch.psi.pshell.imaging.MjpegSource|http://axis-accc8ea5e463.psi.ch/axis-cgi/mjpg/video.cgi?camera=1 reopen||-200|false
|
||||
#monitoring_cam=ch.psi.pshell.imaging.MjpegSource|http://axis-accc8ea5e463.psi.ch/axis-cgi/mjpg/video.cgi?camera=2 reopen||-200|
|
||||
monitoring_cam=ch.psi.pshell.imaging.MjpegSource|http://axis-accc8ea5e463.psi.ch/axis-cgi/mjpg/video.cgi?camera=2 reopen||-200|
|
||||
#top_cam=ch.psi.pshell.imaging.MjpegSource|http://axis-accc8ea5e463.psi.ch/axis-cgi/mjpg/video.cgi?camera=3 true||-200|
|
||||
#cam=ch.psi.pshell.epics.AreaDetector|MX-SAMCAM|||
|
||||
mscan_pin=ch.psi.pshell.serial.TcpDevice|mscan-tell6s-pin:2001|||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#Mon Jan 14 18:14:03 CET 2019
|
||||
#Mon Jan 21 13:16:38 CET 2019
|
||||
barcode_reader_scan_pucks=false
|
||||
dry_mount_counter=0
|
||||
dry_timestamp=1.547481588887E9
|
||||
dry_timestamp=1.547823177733E9
|
||||
imaging_enabled=false
|
||||
led_level=0.0
|
||||
mounted_sample_position=F57
|
||||
mounted_sample_position=F31
|
||||
puck_types=true
|
||||
|
||||
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
#Wed Aug 08 14:23:54 CEST 2018
|
||||
offset=-25.81632
|
||||
#Fri Jan 18 10:33:46 CET 2019
|
||||
offset=-9.5
|
||||
precision=2
|
||||
scale=0.003888
|
||||
scale=0.00388
|
||||
sign_bit=0
|
||||
unit=%
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#Mon Dec 03 11:44:53 CET 2018
|
||||
#Fri Jan 18 17:07:33 CET 2019
|
||||
maxValue=0.4
|
||||
minValue=0.0
|
||||
offset=0.0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#Mon Dec 03 11:44:53 CET 2018
|
||||
#Fri Jan 18 17:07:33 CET 2019
|
||||
maxValue=0.4
|
||||
minValue=0.0
|
||||
offset=0.0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#Mon Dec 03 11:44:53 CET 2018
|
||||
#Fri Jan 18 17:07:33 CET 2019
|
||||
maxValue=0.4
|
||||
minValue=0.0
|
||||
offset=0.0
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#Thu Oct 25 16:47:21 CEST 2018
|
||||
holdingCurrent=30.0
|
||||
mountCurrent=10.0
|
||||
#Fri Jan 18 11:16:24 CET 2019
|
||||
holdingCurrent=40.0
|
||||
mountCurrent=20.0
|
||||
remanenceCurrent=-10.0
|
||||
restingCurrent=10.0
|
||||
restingCurrent=20.0
|
||||
reverseCurrent=-10.0
|
||||
reverseTime=0.4
|
||||
unmountCurrent=10.0
|
||||
unmountCurrent=20.0
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
<Component class="javax.swing.JSpinner" name="spinnerDryTime">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
|
||||
<SpinnerModel initial="30.0" maximum="30.0" minimum="1.0" numberType="java.lang.Double" stepSize="1.0" type="number"/>
|
||||
<SpinnerModel initial="30.0" maximum="50.0" minimum="1.0" numberType="java.lang.Double" stepSize="1.0" type="number"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<AuxValues>
|
||||
@@ -150,7 +150,7 @@
|
||||
<Component class="javax.swing.JSpinner" name="spinnerDrySpeed">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
|
||||
<SpinnerModel initial="0.5" maximum="10.0" minimum="0.1" numberType="java.lang.Double" stepSize="1.0" type="number"/>
|
||||
<SpinnerModel initial="0.4" maximum="1.0" minimum="0.1" numberType="java.lang.Double" stepSize="0.1" type="number"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<AuxValues>
|
||||
|
||||
@@ -172,7 +172,7 @@ public class Commands extends Panel {
|
||||
|
||||
jLabel6.setText("Heat time(s):");
|
||||
|
||||
spinnerDryTime.setModel(new javax.swing.SpinnerNumberModel(30.0d, 1.0d, 30.0d, 1.0d));
|
||||
spinnerDryTime.setModel(new javax.swing.SpinnerNumberModel(30.0d, 1.0d, 50.0d, 1.0d));
|
||||
|
||||
buttonDry.setText("Dry");
|
||||
buttonDry.addActionListener(new java.awt.event.ActionListener() {
|
||||
@@ -181,7 +181,7 @@ public class Commands extends Panel {
|
||||
}
|
||||
});
|
||||
|
||||
spinnerDrySpeed.setModel(new javax.swing.SpinnerNumberModel(0.5d, 0.1d, 10.0d, 1.0d));
|
||||
spinnerDrySpeed.setModel(new javax.swing.SpinnerNumberModel(0.4d, 0.1d, 1.0d, 0.1d));
|
||||
|
||||
jLabel7.setText("Speed(%):");
|
||||
|
||||
|
||||
@@ -90,11 +90,6 @@ class RobotSC(RobotTCP):
|
||||
self.wait_task_finished(TASK_WAIT_ROBOT_POLLING)
|
||||
self.assert_scanner()
|
||||
|
||||
def move_scanner(self):
|
||||
self.start_task('moveScanner')
|
||||
self.wait_task_finished(TASK_WAIT_ROBOT_POLLING)
|
||||
self.assert_scanner()
|
||||
|
||||
#def do_scan(self):
|
||||
# self.start_task('doScan')
|
||||
# self.wait_task_finished(TASK_WAIT_ROBOT_POLLING)
|
||||
@@ -271,11 +266,12 @@ else:
|
||||
add_device(RobotSC("robot", "TellRobot6S:1000"), force = True)
|
||||
|
||||
|
||||
#robot.latency = 0.005
|
||||
robot.set_default_desc(DESC_DEFAULT)
|
||||
robot.default_speed = 20
|
||||
robot.set_frame(FRAME_DEFAULT)
|
||||
robot.set_tool(TOOL_DEFAULT)
|
||||
robot.setPolling(DEFAULT_ROBOT_POLLING)
|
||||
robot.setPolling(DEFAULT_ROBOT_POLLING)
|
||||
|
||||
robot.get_current_point() #TODO: REMOVE WHEN CURRENT POINT REPORTED BY POLLING MESSAGE
|
||||
|
||||
|
||||
@@ -47,7 +47,9 @@ class RobotTCP(TcpDevice, Stoppable):
|
||||
self.polling_interval = 0.01
|
||||
self.reset = True
|
||||
self.default_tolerance = 5
|
||||
self.default_speed = 100
|
||||
self.default_speed = 100
|
||||
self.latency = 0
|
||||
self.last_msg_timestamp = 0
|
||||
|
||||
self.task_start_retries = 3
|
||||
self.exception_on_task_start_failure = True #Tasks may start and be finished when checked
|
||||
@@ -135,6 +137,10 @@ class RobotTCP(TcpDevice, Stoppable):
|
||||
raise Exception ("Robot not in known point")
|
||||
|
||||
def _sendReceive(self, msg_id, msg = "", timeout = None):
|
||||
if self.latency >0:
|
||||
timespan = time.time() - self.last_msg_timestamp
|
||||
if timespan<self.latency:
|
||||
time.sleep(self.latency-timespan)
|
||||
tx = self.header if (self.header != None) else ""
|
||||
tx = tx + msg_id + " " + msg
|
||||
if (len(tx)>150):
|
||||
@@ -144,6 +150,7 @@ class RobotTCP(TcpDevice, Stoppable):
|
||||
if self.isSimulated():
|
||||
return ""
|
||||
rx = self.sendReceive(tx, msg_id, self.trailer , 0, self.timeout if timeout is None else timeout, self.retries)
|
||||
self.last_msg_timestamp = time.time()
|
||||
rx=rx[:-1] #Remove 0A
|
||||
self.getLogger().finer("RX = '" + str(rx) + "'")
|
||||
if rx[:3] != msg_id:
|
||||
@@ -547,8 +554,10 @@ class RobotTCP(TcpDevice, Stoppable):
|
||||
if self.get_task_status(name)[0] != -1:
|
||||
raise Exception("Task already exists: " + name)
|
||||
|
||||
#taskCreate "t1", 10, read(sMessage)
|
||||
cmd = 'taskCreate "' + name + '", ' + str(priority) + ', ' + program + '('
|
||||
if priority<1 or priority > 100:
|
||||
raise Exception("Invalid priority: " + str(priority))
|
||||
|
||||
cmd = program + '('
|
||||
for i in range(len(args)):
|
||||
val = args[i]
|
||||
if type(val) == bool:
|
||||
@@ -556,7 +565,13 @@ class RobotTCP(TcpDevice, Stoppable):
|
||||
elif val == False: val = "false"
|
||||
cmd += str(val) + (',' if (i<(len(args)-1)) else '')
|
||||
cmd+=')'
|
||||
self.evaluate(cmd)
|
||||
|
||||
#TODO: in new robot exec taskCreate is freezing controller
|
||||
#REMOVE if bug is fixed
|
||||
self.execute('task_create',name, str(priority), program, *args)
|
||||
#self.evaluate('taskCreate "' + name + '", ' + str(priority) + ', ' + cmd)
|
||||
|
||||
|
||||
|
||||
def task_suspend(self, name):
|
||||
self.evaluate('taskSuspend("' + str(name)+ '")')
|
||||
|
||||
@@ -93,7 +93,7 @@ def release_psys():
|
||||
###################################################################################################
|
||||
# Drier
|
||||
###################################################################################################
|
||||
MAX_HEATER_TIME = 60000
|
||||
MAX_HEATER_TIME = 70000
|
||||
|
||||
def set_air_stream(state):
|
||||
"""
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
|
||||
def dry(heat_time=30.0, speed=0.5, wait_cold = 30.0):
|
||||
def dry(heat_time=40.0, speed=0.4, wait_cold = 30.0):
|
||||
"""
|
||||
heat_time (float): in seconds
|
||||
speed (float): % of nominal speed
|
||||
|
||||
@@ -5,10 +5,10 @@ import org.apache.commons.math3.geometry.euclidean.threed.Line as Line3D
|
||||
RECOVER_DESC = "mRecovery"
|
||||
RECOVER_TOOL = TOOL_DEFAULT
|
||||
|
||||
known_segments = [ ("pHome", "pPark", 100), \
|
||||
("pScan", "pGonioA", 80), \
|
||||
known_segments = [ ("pHome", "pPark", 60), \
|
||||
("pScan", "pGonioA", 100), \
|
||||
("pPark", "pScan", 25), \
|
||||
("pScan", "pHeater", 75), \
|
||||
("pScan", "pHeater", 50), \
|
||||
("pHome", "pDewar", 10), \
|
||||
("pGonioA", "pGonioG", 10), \
|
||||
("pHeater", "pHeatB", 10), \
|
||||
|
||||
Reference in New Issue
Block a user