This commit is contained in:
user 2024-11-12 11:22:11 +03:00
parent 330bc6d87c
commit 4bb8c649d9
9 changed files with 191 additions and 138 deletions

97
app.log
View File

@ -68910,3 +68910,100 @@ Joint 5 - Position: 2.6324369751913186e-19, Velocity: -1.7044130180708233e-30 -
2024-11-12 09:52:07,127 - logger - INFO - Êîìàíä â î÷åðåäè ['ok'] - client_socket.py - 329 2024-11-12 09:52:07,127 - logger - INFO - Êîìàíä â î÷åðåäè ['ok'] - client_socket.py - 329
2024-11-12 09:52:07,943 - logger - INFO - Âû÷èñëåííîå ïîëîæåíèå [1275.2009630203247, -73.22012633085251, 1781.279444694519] - client_socket.py - 265 2024-11-12 09:52:07,943 - logger - INFO - Âû÷èñëåííîå ïîëîæåíèå [1275.2009630203247, -73.22012633085251, 1781.279444694519] - client_socket.py - 265
2024-11-12 09:52:07,974 - logger - INFO - Âû÷èñëåííàÿ îðèåíòàöèÿ [58.56355473 -3.29212553 65.45517366] - client_socket.py - 268 2024-11-12 09:52:07,974 - logger - INFO - Âû÷èñëåííàÿ îðèåíòàöèÿ [58.56355473 -3.29212553 65.45517366] - client_socket.py - 268
2024-11-12 10:25:19,330 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:25:19,330 - logger - INFO - None - robot.py - 52
2024-11-12 10:25:19,331 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:25:19,331 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:25:19,332 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:25:19,332 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_world_coordinates - main.py - 100
2024-11-12 10:25:19,332 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_axis_coordinates - main.py - 100
2024-11-12 10:25:19,332 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_command_count - main.py - 100
2024-11-12 10:25:20,371 - logger - INFO - Connect to 0 by SHARED_MEMORY - client_socket.py - 130
2024-11-12 10:25:23,539 - logger - INFO - not_connected - robot.py - 52
2024-11-12 10:25:23,859 - logger - INFO - urdf\sample.urdf - client_socket.py - 136
2024-11-12 10:25:26,235 - logger - INFO - connected - robot.py - 52
2024-11-12 10:28:58,010 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:28:58,010 - logger - INFO - None - robot.py - 52
2024-11-12 10:28:58,010 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:28:58,010 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:28:58,010 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:28:58,010 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_world_coordinates - main.py - 100
2024-11-12 10:28:58,010 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_axis_coordinates - main.py - 100
2024-11-12 10:28:58,010 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_command_count - main.py - 100
2024-11-12 10:28:59,056 - logger - INFO - Connect to 0 by SHARED_MEMORY - client_socket.py - 130
2024-11-12 10:46:24,338 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:46:24,338 - logger - INFO - None - robot.py - 52
2024-11-12 10:46:24,339 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:46:24,339 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:46:24,340 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:46:24,340 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_world_coordinates - main.py - 100
2024-11-12 10:46:24,340 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_axis_coordinates - main.py - 100
2024-11-12 10:46:24,341 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_command_count - main.py - 100
2024-11-12 10:46:25,365 - logger - INFO - Connect to 0 by SHARED_MEMORY - client_socket.py - 130
2024-11-12 10:46:31,872 - logger - INFO - not_connected - robot.py - 52
2024-11-12 10:47:29,075 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:47:29,075 - logger - INFO - None - robot.py - 52
2024-11-12 10:47:29,075 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:47:29,075 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:47:29,075 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:47:29,075 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_world_coordinates - main.py - 100
2024-11-12 10:47:29,075 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_axis_coordinates - main.py - 100
2024-11-12 10:47:29,075 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_command_count - main.py - 100
2024-11-12 10:47:30,115 - logger - INFO - Connect to 0 by SHARED_MEMORY - client_socket.py - 130
2024-11-12 10:47:34,205 - logger - INFO - not_connected - robot.py - 52
2024-11-12 10:47:34,511 - logger - INFO - urdf\sample.urdf - client_socket.py - 136
2024-11-12 10:47:36,492 - logger - INFO - connected - robot.py - 52
2024-11-12 10:47:38,335 - logger - INFO - UPDATE MODEL FUNC - client_socket.py - 236
2024-11-12 10:47:38,661 - logger - INFO - Êîîðäèíàòû îñåé [-8.487, -8.681, 33.058, 88.07, -75.01, -10.566] - client_socket.py - 329
2024-11-12 10:47:39,339 - logger - INFO - set joints - client_socket.py - 332
2024-11-12 10:47:41,398 - logger - INFO - Ìèðîâûå êîîðäèíàòû [1282.244, -75.427, 1772.476, 84.629, 34.519, 153.999] - client_socket.py - 329
2024-11-12 10:47:42,040 - logger - INFO - convrt to joint (-0.1419952311009793, -0.1449204022049179, 0.5026174195392823, 1.2216711456832312, -0.9358879087734738, -0.3884501272764479) - client_socket.py - 324
2024-11-12 10:47:42,071 - logger - INFO - set joints - client_socket.py - 332
2024-11-12 10:47:44,185 - logger - INFO - Êîìàíä â î÷åðåäè ['ok'] - client_socket.py - 329
2024-11-12 10:47:44,935 - logger - INFO - Âû÷èñëåííîå ïîëîæåíèå [1274.7745513916016, -69.17358189821243, 1776.4663696289062] - client_socket.py - 265
2024-11-12 10:47:44,966 - logger - INFO - Âû÷èñëåííàÿ îðèåíòàöèÿ [43.9707828 3.05104526 45.3844952 ] - client_socket.py - 268
2024-11-12 10:48:08,426 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:48:08,426 - logger - INFO - None - robot.py - 52
2024-11-12 10:48:08,426 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:48:08,427 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:48:08,427 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:48:08,428 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_world_coordinates - main.py - 100
2024-11-12 10:48:08,428 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_axis_coordinates - main.py - 100
2024-11-12 10:48:08,429 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_command_count - main.py - 100
2024-11-12 10:48:09,453 - logger - INFO - Connect to 0 by SHARED_MEMORY - client_socket.py - 130
2024-11-12 10:48:12,705 - logger - INFO - not_connected - robot.py - 52
2024-11-12 10:48:13,013 - logger - INFO - urdf\sample.urdf - client_socket.py - 136
2024-11-12 10:48:14,985 - logger - INFO - connected - robot.py - 52
2024-11-12 10:58:01,703 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:58:01,703 - logger - INFO - None - robot.py - 52
2024-11-12 10:58:01,703 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:58:01,703 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:58:01,704 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:58:01,704 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_world_coordinates - main.py - 100
2024-11-12 10:58:01,704 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_axis_coordinates - main.py - 100
2024-11-12 10:58:01,705 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_command_count - main.py - 100
2024-11-12 10:58:02,733 - logger - INFO - Connect to 0 by SHARED_MEMORY - client_socket.py - 130
2024-11-12 10:58:06,001 - logger - INFO - not_connected - robot.py - 52
2024-11-12 10:58:06,316 - logger - INFO - urdf\sample.urdf - client_socket.py - 136
2024-11-12 10:58:08,385 - logger - INFO - connected - robot.py - 52
2024-11-12 10:58:31,367 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:58:31,367 - logger - INFO - None - robot.py - 52
2024-11-12 10:58:31,367 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:58:31,372 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:58:31,372 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 100
2024-11-12 10:58:31,373 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_world_coordinates - main.py - 100
2024-11-12 10:58:31,373 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_axis_coordinates - main.py - 100
2024-11-12 10:58:31,373 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_command_count - main.py - 100
2024-11-12 10:58:32,401 - logger - INFO - Connect to 0 by SHARED_MEMORY - client_socket.py - 130
2024-11-12 11:02:57,863 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 111
2024-11-12 11:02:57,863 - logger - INFO - None - robot.py - 52
2024-11-12 11:02:57,863 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 111
2024-11-12 11:02:57,863 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 111
2024-11-12 11:02:57,863 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_status - main.py - 111
2024-11-12 11:02:57,863 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_world_coordinates - main.py - 111
2024-11-12 11:02:57,863 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_axis_coordinates - main.py - 111
2024-11-12 11:02:57,863 - logger - INFO - robot_app åùå íå èíèöèàëèçèðîâàí. Ìåòîä: get_command_count - main.py - 111
2024-11-12 11:02:58,897 - logger - INFO - Connect to 0 by SHARED_MEMORY - client_socket.py - 130
2024-11-12 11:03:01,541 - logger - INFO - not_connected - robot.py - 52
2024-11-12 11:03:01,850 - logger - INFO - urdf\sample.urdf - client_socket.py - 136
2024-11-12 11:03:03,896 - logger - INFO - connected - robot.py - 52

15
main.py
View File

@ -1,5 +1,6 @@
import json import os
import sys import sys
import json
import time import time
import argparse import argparse
import threading import threading
@ -12,7 +13,17 @@ from logger import logger
class MyApp: class MyApp:
with open("./robots.json", "r") as file: if getattr(sys, 'frozen', False):
# Если приложение собрано в один файл
application_path = os.path.dirname(sys.executable)
else:
# Если приложение запускается как скрипт
application_path = os.path.dirname(os.path.abspath(__file__))
# Путь к файлу robots.json
robots_json_path = os.path.join(application_path, 'robots.json')
with open(robots_json_path, "r") as file:
robots = json.load(file) robots = json.load(file)
robot_app = None robot_app = None

View File

@ -3,7 +3,7 @@
a = Analysis( a = Analysis(
['main.py'], ['main.py'],
pathex=['.', 'robot/', 'gui/'], pathex=['.', './.venv', './.venv/Lib', './.venv/Lib/site-packages', 'robot/', 'gui/'],
binaries=[], binaries=[],
datas=[('robots.json', '.'), ('urdf', 'urdf'), ('data', 'data')], datas=[('robots.json', '.'), ('urdf', 'urdf'), ('data', 'data')],
hiddenimports=['numpy', 'libpython3.10'], hiddenimports=['numpy', 'libpython3.10'],

View File

@ -3,7 +3,7 @@
a = Analysis( a = Analysis(
['utils/pybullet_server.py'], ['utils/pybullet_server.py'],
pathex=[], pathex=['.', './.venv', './.venv/Lib', './.venv/Lib/site-packages'],
binaries=[], binaries=[],
datas=[('pyproject.toml', '.'), ('robots.json', '.'), ('urdf', 'urdf'), ('data', 'data')], datas=[('pyproject.toml', '.'), ('robots.json', '.'), ('urdf', 'urdf'), ('data', 'data')],
hiddenimports=['libpython3.10', 'numpy'], hiddenimports=['libpython3.10', 'numpy'],

View File

@ -3,6 +3,7 @@ import json
import os import os
import math import math
import numpy as np import numpy as np
import sys
from typing import Literal from typing import Literal
from pprint import pprint from pprint import pprint
@ -130,9 +131,16 @@ class UrdfManager:
logger.info(f"Connect to {self.physics_client} by {type}") logger.info(f"Connect to {self.physics_client} by {type}")
def load_models(self): def load_models(self):
p.loadURDF("urdf/plane.urdf", physicsClientId=self.physics_client) if getattr(sys, 'frozen', False):
# Если приложение собрано в один файл
application_path = os.path.dirname(sys.executable)
else:
# Если приложение запускается как скрипт
application_path = os.path.dirname(os.path.abspath(__file__))
# p.loadURDF("urdf/plane.urdf", physicsClientId=self.physics_client)
urdf_path = os.path.join("urdf", f"{self.urdf_filename}.urdf") urdf_path = os.path.join(application_path, "urdf", f"{self.urdf_filename}.urdf")
logger.info(urdf_path) logger.info(urdf_path)
self.body_id = p.loadURDF( self.body_id = p.loadURDF(
urdf_path, urdf_path,

81
run.py
View File

@ -2,27 +2,39 @@ import subprocess
import argparse import argparse
import sys import sys
import signal import signal
import psutil
# Параметры для процессов # Параметры для процессов
server_process = None server_process = None
test_server_process = None test_server_process = None
command_type = 'exe'
def usage(): def usage():
"""Функция для отображения помощи""" """Функция для отображения помощи"""
print("Usage: run_all.py [--test]") print("Usage: run_all.py [--test]")
sys.exit(1) sys.exit(1)
def terminate_process(process):
"""Функция для корректного завершения процесса и всех его дочерних процессов"""
if process:
proc = psutil.Process(process.pid)
for child in proc.children(recursive=True):
child.terminate()
proc.terminate()
proc.wait()
# Обработчик для сигналов выхода # Обработчик для сигналов выхода
def cleanup(): def cleanup(*args):
"""Функция для остановки серверов при выходе""" """Функция для остановки серверов при выходе"""
global server_process, test_server_process
print("Остановка серверов...") print("Остановка серверов...")
if server_process: terminate_process(server_process)
server_process.terminate() terminate_process(test_server_process)
server_process.wait()
if test_server_process:
test_server_process.terminate()
test_server_process.wait()
print("Серверы остановлены.") print("Серверы остановлены.")
sys.exit(0) # Завершение работы после очистки
# Назначаем функции очистки для сигналов # Назначаем функции очистки для сигналов
signal.signal(signal.SIGINT, lambda *_: cleanup()) signal.signal(signal.SIGINT, lambda *_: cleanup())
@ -30,14 +42,32 @@ signal.signal(signal.SIGTERM, lambda *_: cleanup())
# Парсер аргументов командной строки # Парсер аргументов командной строки
parser = argparse.ArgumentParser(description="Python launcher script.") parser = argparse.ArgumentParser(description="Python launcher script.")
parser.add_argument("--test", action="store_true", help="Запуск в режиме тестирования") parser.add_argument(
"--test-socket", action="store_true", help="Запуск в режиме тестирования"
)
parser.add_argument(
"--bullet-gui", action="store_true", help="Вывод визуального pybullet"
)
parser.add_argument(
"--start-py", action="store_true", help="Запуск EXE или PY"
)
args = parser.parse_args() args = parser.parse_args()
if args.start_py:
command_type = 'local'
poetry_path = "poetry"
# Установка команды для pybullet_server # Установка команды для pybullet_server
pybullet_command = ["./pybullet_server.exe"] # Путь к исполняемому файлу pybullet_command = [
poetry_path,
"run",
"python",
"utils/pybullet_server.py",
] if command_type == 'local' else 'pybullet_server.exe'
# Если включен режим тестирования, добавляем флаг --test # Если включен режим тестирования, добавляем флаг --test
if args.test: if args.bullet_gui:
pybullet_command.append("--test") pybullet_command.append("--test")
# Запуск pybullet_server.exe # Запуск pybullet_server.exe
@ -50,9 +80,16 @@ if server_process.poll() is not None:
sys.exit(1) sys.exit(1)
# Если включен режим тестирования, запускаем test_socket_server.exe # Если включен режим тестирования, запускаем test_socket_server.exe
if args.test: if args.test_socket:
print("Запуск test_socket_server...") print("Запуск test_socket_server...")
test_server_process = subprocess.Popen(["./test_socket_server.exe"]) # Путь к исполняемому файлу test_server_process = subprocess.Popen(
[
poetry_path,
"run",
"python",
"utils/test_socket_server.py",
] if command_type == 'local' else 'test_socket_server.exe'
) # Путь к исполняемому файлу
# Проверка успешного запуска тестового сервера # Проверка успешного запуска тестового сервера
if test_server_process.poll() is not None: if test_server_process.poll() is not None:
@ -60,10 +97,26 @@ if args.test:
sys.exit(1) sys.exit(1)
# Запуск основного скрипта main.exe в режиме тестирования # Запуск основного скрипта main.exe в режиме тестирования
subprocess.run(["./main.exe", "--mode", "test"]) # Путь к исполняемому файлу subprocess.run(
[
poetry_path,
"run",
"python",
"main.py",
"--mode",
"test",
] if command_type == 'local' else 'main.exe --mode test'
) # Путь к исполняемому файлу
else: else:
# Запуск основного скрипта main.exe # Запуск основного скрипта main.exe
subprocess.run(["./main.exe"]) # Путь к исполняемому файлу subprocess.run(
[
poetry_path,
"run",
"python",
"main.py",
] if command_type == 'local' else 'main.exe'
) # Путь к исполняемому файлу
# Очистка после завершения # Очистка после завершения
cleanup() cleanup()

View File

@ -3,7 +3,7 @@
a = Analysis( a = Analysis(
['run.py'], ['run.py'],
pathex=[], pathex=['.', './.venv', './.venv/Lib', './.venv/Lib/site-packages'],
binaries=[], binaries=[],
datas=[('pyproject.toml', '.'), ('robots.json', '.'), ('urdf', 'urdf'), ('data', 'data')], datas=[('pyproject.toml', '.'), ('robots.json', '.'), ('urdf', 'urdf'), ('data', 'data')],
hiddenimports=['libpython3.10'], hiddenimports=['libpython3.10'],

View File

@ -1,116 +0,0 @@
import subprocess
import argparse
import sys
import signal
import psutil
# Параметры для процессов
server_process = None
test_server_process = None
def usage():
"""Функция для отображения помощи"""
print("Usage: run_all.py [--test]")
sys.exit(1)
def terminate_process(process):
"""Функция для корректного завершения процесса и всех его дочерних процессов"""
if process:
proc = psutil.Process(process.pid)
for child in proc.children(recursive=True):
child.terminate()
proc.terminate()
proc.wait()
# Обработчик для сигналов выхода
def cleanup(*args):
"""Функция для остановки серверов при выходе"""
global server_process, test_server_process
print("Остановка серверов...")
terminate_process(server_process)
terminate_process(test_server_process)
print("Серверы остановлены.")
sys.exit(0) # Завершение работы после очистки
# Назначаем функции очистки для сигналов
signal.signal(signal.SIGINT, lambda *_: cleanup())
signal.signal(signal.SIGTERM, lambda *_: cleanup())
# Парсер аргументов командной строки
parser = argparse.ArgumentParser(description="Python launcher script.")
parser.add_argument(
"--test-socket", action="store_true", help="Запуск в режиме тестирования"
)
parser.add_argument(
"--bullet-gui", action="store_true", help="Вывод визуального pybullet"
)
args = parser.parse_args()
poetry_path = "poetry"
# Установка команды для pybullet_server
pybullet_command = [
poetry_path,
"run",
"python",
"utils/pybullet_server.py",
] # Путь к исполняемому файлу
# Если включен режим тестирования, добавляем флаг --test
if args.bullet_gui:
pybullet_command.append("--test")
# Запуск pybullet_server.exe
print("Запуск pybullet_server...")
server_process = subprocess.Popen(pybullet_command)
# Проверяем успешный запуск сервера
if server_process.poll() is not None:
print("Ошибка при запуске pybullet_server")
sys.exit(1)
# Если включен режим тестирования, запускаем test_socket_server.exe
if args.test_socket:
print("Запуск test_socket_server...")
test_server_process = subprocess.Popen(
[
poetry_path,
"run",
"python",
"utils/test_socket_server.py",
]
) # Путь к исполняемому файлу
# Проверка успешного запуска тестового сервера
if test_server_process.poll() is not None:
print("Ошибка при запуске test_socket_server")
sys.exit(1)
# Запуск основного скрипта main.exe в режиме тестирования
subprocess.run(
[
poetry_path,
"run",
"python",
"main.py",
"--mode",
"test",
]
) # Путь к исполняемому файлу
else:
# Запуск основного скрипта main.exe
subprocess.run(
[
poetry_path,
"run",
"python",
"main.py",
]
) # Путь к исполняемому файлу
# Очистка после завершения
cleanup()

View File

@ -3,7 +3,7 @@
a = Analysis( a = Analysis(
['utils/test_socket_server.py'], ['utils/test_socket_server.py'],
pathex=[], pathex=['.', './.venv', './.venv/Lib', './.venv/Lib/site-packages'],
binaries=[], binaries=[],
datas=[('pyproject.toml', '.'), ('robots.json', '.'), ('urdf', 'urdf'), ('data', 'data')], datas=[('pyproject.toml', '.'), ('robots.json', '.'), ('urdf', 'urdf'), ('data', 'data')],
hiddenimports=['libpython3.10'], hiddenimports=['libpython3.10'],