modbus_test/robot/prepare_data.py

57 lines
1.8 KiB
Python

from robot.func import *
# os.environ["LIBGL_ALWAYS_SOFTWARE"] = "1"
class PrepareRobotData:
line_speed = 100.0
line_smooth = 0
line_tool = 0
def make_step(self, type, point, start_coordinates):
step = {
"oneshot": "1",
"delay": "0.0",
"speed": str(self.line_speed),
"smooth": str(self.line_smooth),
"coord": "0",
"tool": str(self.line_tool),
"ckStatus": "0x3F",
}
if type == "line" or type == "free":
pairs = zip(start_coordinates, point)
data = []
for pair in pairs:
data.append(round(sum(pair), 3))
m0, m1, m2, m3, m4, m5 = data
if type == "line":
step.update({"action": "10"})
if type == "free":
step.update({"action": "4"})
step.update({"m0": m0, "m1": m1, "m2": m2, "m3": m3, "m4": m4, "m5": m5})
step.update({"m6": 0, "m7": 0})
elif type == "curve":
pairs = zip(self.world_coordinates, point[:5])
m0, m1, m2, m3, m4, m5 = [round(sum(i), 3) for i in pairs]
pairs_p = zip(self.world_coordinates, point[6:])
m0_p, m1_p, m2_p, m3_p, m4_p, m5_p = [round(sum(i), 3) for i in pairs_p]
step.update({"action": "17"})
step.update({"m0": m0, "m1": m1, "m2": m2, "m3": m3, "m4": m4, "m5": m5})
step.update({"m6": 0, "m7": 0})
step.update(
{
"m0_p": m0_p,
"m1_p": m1_p,
"m2_p": m2_p,
"m3_p": m3_p,
"m4_p": m4_p,
"m5_p": m5_p,
}
)
step.update({"m6_p": 0, "m7_p": 0})
for s in step:
step[s] = str(step[s])
return step