modbus_test/main.py

87 lines
2.4 KiB
Python

import json
import sys
import time
import argparse
from PyQt5.QtWidgets import QApplication
from robot.client_socket import SocketRobotArm
from gui.init import MainContentComponent
from logger import logger
class MyApp:
with open("./robots.json", "r") as file:
robots = json.load(file)
def __init__(self, mode):
self.mode = mode
self.startRobot()
self.startGui()
def get_status(self):
if self.robot_app:
return self.robot_app.get_status()
else:
return self.def_robot_status()
def def_robot_status(self):
return SocketRobotArm.Status[1]
def startGui(self):
app = QApplication(sys.argv)
mainWindow = MainContentComponent(
get_status=self.get_status,
robotPanel={
"robots": self.robots,
"updateRobot": self.updateRobot,
"status": self.get_status,
},
statusPanel={
"status": self.get_status,
},
imitatorPanel={
"world_coord": self.robot_app.get_world_coordinates,
"axis_coord": self.robot_app.get_axis_coordinates,
"command_count": self.robot_app.get_command_count,
"updateData": self.robot_app.upd_model,
},
visPanel={
"get_pybullet_image": self.robot_app.get_pybullet_image,
},
)
mainWindow.setWindowTitle("ROBOT GUI")
mainWindow.show()
sys.exit(app.exec_())
def startRobot(self):
self.robot_app = SocketRobotArm()
def updateRobot(self, robot):
if robot in self.robots:
selected_robot = robot
if self.mode == "test":
selected_robot = {"name": "test", "host": "127.0.0.1", "slave_id": 11}
if self.robot_app.status == "connected":
self.robot_app.close()
time.sleep(0.3)
else:
self.robot_app.connect(
selected_robot["host"], selected_robot["slave_id"]
)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="MyApp Command Line Interface")
parser.add_argument(
"--mode",
type=str,
choices=["test", "prod"],
default="prod",
help="Mode of operation",
)
# MyApp()
args = parser.parse_args()
app = MyApp(args.mode)