Source code for lab_adaption.start_servers

"""
Script to start the example servers for human, greeter and generic robotic arm
"""

import signal
import sys

from sila2.server import SilaServer


[docs] def start_servers(): print("starting servers") to_start: list[SilaServer] = [] try: from human_server import Server as HumanServer to_start.append(HumanServer()) except ModuleNotFoundError: print("Could not import human_server. Is it installed?") try: from genericroboticarm.sila_server import Server as ArmServer from genericroboticarm.robo_APIs.dummy_robot import DummyRobot from genericroboticarm.control.robo_dash import RoboDashApp robot = DummyRobot() dash_app = RoboDashApp(robo_interface=robot, port=8055) dash_app.run() to_start.append(ArmServer(robot)) except ModuleNotFoundError: print("Could not import robotic_arm_server. Is it installed?") try: from sila2_example_server import Server as GreeterServer to_start.append(GreeterServer()) except ModuleNotFoundError: print("Could not import example_server. Is it installed?") for i, server in enumerate(to_start): port = 50053 + i server.start_insecure("127.0.0.1", port) if sys.stdin.isatty(): print("\nPress 'q' -> enter to exit.") while not input() == "q": pass else: try: signal.pause() except KeyboardInterrupt: print("Received KeyboardInterrupt, stopping servers...") for server in to_start: server.stop(grace_period=0.5)
if __name__ == "__main__": start_servers()