sends tree structure of frames and tools to clients
This commit is contained in:
@@ -17,6 +17,9 @@ ROBOT_JOINT_MOTORS = ["j1" , "j2", "j3", "j4", "j5", "j6"]
|
||||
ROBOT_CARTESIAN_MOTORS = ["x" , "y", "z", "rx", "ry", "rz"]
|
||||
ROBOT_SPHERICAL_MOTORS = ["r" , "gamma", "delta"]
|
||||
|
||||
FRAME_HIRARCHY = ["world.f_SwissFELCoord.f_ESBWorld.f_linearAxis." + k for k in ["f_direct.", "f_2mRad.", "f_4mRad.", "f_6mRad.", "f_8mRad.",]]
|
||||
FRAME_HIRARCHY += ["t_flange.t_Adapter." + k for k in ["t_JF01T03det.t_JF01T03.", "t_JF07T32det.t_JF07T32."]]
|
||||
|
||||
run("devices/RobotTCP")
|
||||
|
||||
override_remote_safety = False
|
||||
@@ -40,7 +43,15 @@ class RobotBernina(RobotTCP):
|
||||
}
|
||||
self.remote_allowed_recorded = AdjustableFS(name="remote_allowed", default_value = default_remote_allowed_recorded)
|
||||
self.remote_allowed_deltas = AdjustableFS(name="remote_allowed_deltas", default_value = default_remote_allowed_deltas)
|
||||
|
||||
|
||||
|
||||
def get_frame_tree(self, frame):
|
||||
"""frame can be a string of a tool or a frame"""
|
||||
for f in FRAME_HIRARCHY:
|
||||
if frame in f:
|
||||
return f.split("." + frame + ".")[0]+"." + frame
|
||||
return frame
|
||||
|
||||
def set_override_remote_safety(self, value):
|
||||
self.override_remote_safety = bool(value)
|
||||
|
||||
|
||||
@@ -777,9 +777,9 @@ class RobotTCP(TcpDevice, Stoppable):
|
||||
"task": self.current_task,
|
||||
"mode": self.working_mode,
|
||||
"status": self.status,
|
||||
"frame": self.frame(),
|
||||
"frame": self.get_frame_tree(self.frame()),
|
||||
"frame_coordinates": self.frame_trsf,
|
||||
"tool": self.tool(),
|
||||
"tool": self.get_frame_tree(self.tool()),
|
||||
"tool_coordinates": self.tool_trsf,
|
||||
"cartesian_motors_enabled": self.cartesian_motors_enabled,
|
||||
"spherical_motors_enabled": self.spherical_motors_enabled,
|
||||
@@ -814,9 +814,9 @@ class RobotTCP(TcpDevice, Stoppable):
|
||||
self.getLogger().info(ev)
|
||||
self.on_event(ev)
|
||||
|
||||
self.setCache({
|
||||
"pos": self.get_current_point_cached() if self.state==State.Ready else None #TODO: make it calculated in robot by polling funtion
|
||||
}, None)
|
||||
#self.setCache({
|
||||
# "pos": self.get_current_point_cached() if self.state==State.Ready else None #TODO: make it calculated in robot by polling funtion
|
||||
# }, None)
|
||||
pos = self.cartesian_pos.copy()
|
||||
pos.update(self.spherical_pos)
|
||||
pos.update(self.joint_pos)
|
||||
|
||||
@@ -2,7 +2,8 @@ from json import load, dump
|
||||
from os import path
|
||||
import os
|
||||
|
||||
BASEPATH = "C:/dev/pshell/config/bernina_robot/adjustables_fs/"
|
||||
#BASEPATH = "C:/dev/pshell/config/bernina_robot/adjustables_fs/"
|
||||
BASEPATH = "/sf/bernina/config/src/python/bernina_robot/adjustables_fs/"
|
||||
|
||||
class AdjustableFS:
|
||||
def __init__(self, name=None, default_value=None, file_path=None):
|
||||
@@ -31,4 +32,4 @@ class AdjustableFS:
|
||||
return self.get_current_value()
|
||||
|
||||
def __repr__(self):
|
||||
return "Current value of {} at: ".format(self.name) + str(self.get_current_value())
|
||||
return "Current value of {} at: ".format(self.name) + str(self.get_current_value())
|
||||
|
||||
Reference in New Issue
Block a user