format
This commit is contained in:
parent
3bea136c0c
commit
b58db72f74
|
@ -31,41 +31,51 @@ class SocketRobotArm:
|
||||||
self.port = 65432
|
self.port = 65432
|
||||||
|
|
||||||
self.tkinter_root = tkinter.Tk()
|
self.tkinter_root = tkinter.Tk()
|
||||||
|
self.tkinter_info_label = tkinter.Label(self.tkinter_root)
|
||||||
|
self.tkinter_exit = tkinter.Button(
|
||||||
|
self.tkinter_root, text="Exit", command=self.close
|
||||||
|
)
|
||||||
|
|
||||||
self.connect()
|
self.socket.connect((self.host, self.port))
|
||||||
|
self.cycle_base()
|
||||||
|
self.cycle_start()
|
||||||
|
|
||||||
def __exit__(self, exc_type, exc_value, traceback):
|
def __exit__(self, exc_type, exc_value, traceback):
|
||||||
|
print("exiting")
|
||||||
self.socket.close()
|
self.socket.close()
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
|
print("close")
|
||||||
|
self.tkinter_info_label.destroy()
|
||||||
|
# self.tkinter_root.destroy()
|
||||||
self.socket.close()
|
self.socket.close()
|
||||||
self.tkinter_root.destroy()
|
self.socket = None
|
||||||
sys.exit()
|
# sys.exit()
|
||||||
|
|
||||||
def set_text(self, text):
|
|
||||||
label = tkinter.Label(self.tkinter_root, text=text)
|
|
||||||
label.pack()
|
|
||||||
self.tkinter_root.update()
|
|
||||||
|
|
||||||
def connect(self):
|
|
||||||
self.socket.connect((self.host, self.port))
|
|
||||||
|
|
||||||
|
def cycle_base(self):
|
||||||
self.tkinter_root.geometry("500x300")
|
self.tkinter_root.geometry("500x300")
|
||||||
|
self.tkinter_exit.pack(pady=20)
|
||||||
|
|
||||||
self.get_axis()
|
self.get_axis()
|
||||||
self.set_text(text=f"Координаты осей {self.start_axis_coordinates}")
|
self.set_text(text=f"Координаты осей {self.start_axis_coordinates}")
|
||||||
|
time.sleep(0.5)
|
||||||
|
|
||||||
self.get_world()
|
self.get_world()
|
||||||
self.set_text(text=f"Мировые координаты {self.start_world_coordinates}")
|
self.set_text(text=f"Мировые координаты {self.start_world_coordinates}")
|
||||||
|
time.sleep(0.5)
|
||||||
|
|
||||||
self.get_command_count()
|
self.get_command_count()
|
||||||
self.set_text(text=f"Команд в очереди {self.remote_command_count}")
|
self.set_text(text=f"Команд в очереди {self.remote_command_count}")
|
||||||
|
time.sleep(0.5)
|
||||||
|
|
||||||
self.send_data(self.set_global_speed())
|
self.send_data(self.set_global_speed())
|
||||||
self.set_text(text=f"Установили глобальную скорость {self.global_speed}")
|
self.set_text(text=f"Установили глобальную скорость {self.global_speed}")
|
||||||
|
time.sleep(0.5)
|
||||||
|
|
||||||
|
def cycle_start(self):
|
||||||
self.send_data(self.start_cycle())
|
self.send_data(self.start_cycle())
|
||||||
self.set_text(text=f"Старт одиночного цикла")
|
self.set_text(text=f"Старт одиночного цикла")
|
||||||
|
time.sleep(0.5)
|
||||||
|
|
||||||
self.add_rcc_list = (
|
self.add_rcc_list = (
|
||||||
[self.set_physical_speed(True), self.set_output_laser(True)]
|
[self.set_physical_speed(True), self.set_output_laser(True)]
|
||||||
|
@ -73,18 +83,20 @@ class SocketRobotArm:
|
||||||
+ [self.set_physical_speed(False), self.set_output_laser(False)]
|
+ [self.set_physical_speed(False), self.set_output_laser(False)]
|
||||||
)
|
)
|
||||||
|
|
||||||
my_label = tkinter.Label(self.tkinter_root, text=f"Отправка данных")
|
self.tkinter_info_label.config(text=f"Отправка данных...")
|
||||||
my_label.pack()
|
self.tkinter_info_label.pack()
|
||||||
self.tkinter_root.update()
|
self.tkinter_root.update()
|
||||||
|
|
||||||
exit_button = tkinter.Button(self.tkinter_root, text="Exit", command=self.close)
|
|
||||||
exit_button.pack(pady=20)
|
|
||||||
|
|
||||||
step = 2
|
step = 2
|
||||||
for i in range(0, len(self.add_rcc_list), step):
|
for i in range(0, len(self.add_rcc_list), step):
|
||||||
|
if not self.tkinter_info_label:
|
||||||
|
return
|
||||||
|
if not self.socket:
|
||||||
|
return
|
||||||
|
|
||||||
print(f"Отправка данных {i}...{i+step-1}")
|
print(f"Отправка данных {i}...{i+step-1}")
|
||||||
# self.update_text(m, text=f"Отправка данных {i}...{i+step-1}")
|
# self.update_text(m, text=f"Отправка данных {i}...{i+step-1}")
|
||||||
my_label.config(text=f"Отправка данных {i}...{i+step-1}")
|
self.tkinter_info_label.config(text=f"Отправка данных {i}...{i+step-1}")
|
||||||
self.tkinter_root.update()
|
self.tkinter_root.update()
|
||||||
|
|
||||||
self.send_data(
|
self.send_data(
|
||||||
|
@ -92,10 +104,15 @@ class SocketRobotArm:
|
||||||
)
|
)
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
|
|
||||||
|
def set_text(self, text):
|
||||||
|
label = tkinter.Label(self.tkinter_root, text=text)
|
||||||
|
label.pack()
|
||||||
|
self.tkinter_root.update()
|
||||||
|
|
||||||
def send_data(self, data):
|
def send_data(self, data):
|
||||||
response = None
|
if not self.socket:
|
||||||
# if data["reqType"] == "AddRCC":
|
return
|
||||||
# return
|
|
||||||
self.socket.send(str.encode(json.dumps(data)))
|
self.socket.send(str.encode(json.dumps(data)))
|
||||||
response_data = self.socket.recv(1024)
|
response_data = self.socket.recv(1024)
|
||||||
response = json.loads(response_data)
|
response = json.loads(response_data)
|
||||||
|
|
|
@ -158,6 +158,22 @@ files = [
|
||||||
{file = "numpy-2.0.1.tar.gz", hash = "sha256:485b87235796410c3519a699cfe1faab097e509e90ebb05dcd098db2ae87e7b3"},
|
{file = "numpy-2.0.1.tar.gz", hash = "sha256:485b87235796410c3519a699cfe1faab097e509e90ebb05dcd098db2ae87e7b3"},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pybullet"
|
||||||
|
version = "3.2.6"
|
||||||
|
description = "Official Python Interface for the Bullet Physics SDK specialized for Robotics Simulation and Reinforcement Learning"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
files = [
|
||||||
|
{file = "pybullet-3.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f71d0bed6824875b521066571d612274f1d2dead3ede50f8fbdde1946ec0c40"},
|
||||||
|
{file = "pybullet-3.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a476d51726efa7aabe1dc8c4ee676b78bcd9fc19d4a2ce9776f2c9a9dacd9e8b"},
|
||||||
|
{file = "pybullet-3.2.6-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8af791050e927f407a85fa9de15754fbe0973f8c798fd2893773b52fa1fc70e0"},
|
||||||
|
{file = "pybullet-3.2.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72be1e68c61bbe49af5b7c609d59ede92d3fbbfca072e9b31d4819575c8f332b"},
|
||||||
|
{file = "pybullet-3.2.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba46f9d8ae76d2bcae4bf4b5768b1dccc0b3b15110b69ba3d78cd0b11f8f21cf"},
|
||||||
|
{file = "pybullet-3.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f928444471186c5d6092d71371b03436e23ec96acd7800dfefcd8e96572c6581"},
|
||||||
|
{file = "pybullet-3.2.6.tar.gz", hash = "sha256:da27525433c88698dc9fd8bc20fa4ae4d07738b4656633659ebd82c2d2884e08"},
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pymodbus"
|
name = "pymodbus"
|
||||||
version = "3.7.0"
|
version = "3.7.0"
|
||||||
|
@ -468,4 +484,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "3.10.12"
|
python-versions = "3.10.12"
|
||||||
content-hash = "a224728a18ef19c1f754e77db7d8cba413724a9a4257af5704b0fad93f833c58"
|
content-hash = "5d6ac608b7d4cd83ce992399f2263bf6356902a177e910b7419966ec5eb20e3f"
|
||||||
|
|
|
@ -13,6 +13,7 @@ pymodbus = "^3.7.0"
|
||||||
pymodbus3 = "^1.0.0"
|
pymodbus3 = "^1.0.0"
|
||||||
svgpathtools = "^1.6.1"
|
svgpathtools = "^1.6.1"
|
||||||
tk = "^0.1.0"
|
tk = "^0.1.0"
|
||||||
|
pybullet = "^3.2.6"
|
||||||
|
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
|
|
|
@ -11,17 +11,20 @@ with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
||||||
with conn:
|
with conn:
|
||||||
print(f"Connected by {addr}")
|
print(f"Connected by {addr}")
|
||||||
while True:
|
while True:
|
||||||
data = conn.recv(1024)
|
try:
|
||||||
if data:
|
data = conn.recv(1024)
|
||||||
req = json.loads(data)
|
if data:
|
||||||
res = {"queryData": ["ok"]}
|
req = json.loads(data)
|
||||||
|
res = {"queryData": ["ok"]}
|
||||||
|
|
||||||
if "queryAddr" in req.keys() and "axis-0" in req["queryAddr"]:
|
if "queryAddr" in req.keys() and "axis-0" in req["queryAddr"]:
|
||||||
res["queryData"] = [10, 11, 12, 13, 14, 15]
|
res["queryData"] = [10, 11, 12, 13, 14, 15]
|
||||||
|
|
||||||
if "queryAddr" in req and "world-0" in req["queryAddr"]:
|
if "queryAddr" in req and "world-0" in req["queryAddr"]:
|
||||||
res["queryData"] = [100, 101, 102, 103, 104, 105]
|
res["queryData"] = [100, 101, 102, 103, 104, 105]
|
||||||
|
|
||||||
if req["reqType"] == "command":
|
if req["reqType"] == "command":
|
||||||
res["cmdReply"] = ['ok']
|
res["cmdReply"] = ['ok']
|
||||||
conn.sendall(json.dumps(res).encode())
|
conn.sendall(json.dumps(res).encode())
|
||||||
|
except Exception as e:
|
||||||
|
print(f"by {addr} error {e}")
|
||||||
|
|
Loading…
Reference in New Issue