Server-Class Installation
Required packages and repositories (software developed by the laboratory)
x_logger: Log management.
ese774_frame: Framework for communication with the COBOTTA control server (ESE774 implementation).
cobotta2: COBOTTA control server software using ORiN2.
cobotta2_client: Example client programs.
cobotta_joypad: Joypad control with high-speed gRPC communication.
x_logger
x_logger: Log management. Extract x_logger.zip and move to the extracted directory before running:
pip install x_logger
ese774_frame
ese774_frame: Communication framework for the COBOTTA control server. Extract fastapi_frame.zip and change to the extracted directory before running:
pip install ese774_frame
cobotta2
cobotta2: COBOTTA control server using ORiN2. Install the control package:
pip install cobotta2
Starting the server directly from Python
#!/usr/bin/env python
from cobotta2.config import Config
from cobotta2.cobotta_ctrl_state import CobottaState
from cobotta2.server_fastapi import CobottaRouterState
from cobotta2.server_fastapi import cobotta_state_api_spec
from ese774_frame.api_server import FastApiServer
from x_logger.x_logger import XLogger
if __name__ == "__main__":
Config.load_yaml("config_cobotta2_state.yaml")
logger = XLogger(
log_level="debug",
logger_name=Config.SERVER_LOGGER_NAME,
log_mode="rotate",
# log_mode="file",
log_name=f"c:/opt/log/{Config.SERVER_LOGGER_NAME}.log",
)
logger.info(f"COBOTTA IP = {Config.COBOTTA_IP}")
logger.info(f"SERVER IP = {Config.SERVER_IP}")
logger.info(f"SERVER PORT = {Config.SERVER_PORT}")
server = FastApiServer(
device_cls=CobottaState, # Control class
router_cls=CobottaRouterState, # Router implemented through inheritance
config=Config,
api_spec=cobotta_state_api_spec,
device_kwargs={
"cobotta_ip": Config.COBOTTA_IP
}, # Constructor arguments for the COBOTTA control class
logger=logger,
logger_name=Config.SERVER_LOGGER_NAME,
lifespan_msg_prefix="COBOTTA",
)
server.run(host=Config.SERVER_IP, port=Config.SERVER_PORT)
Testing with a local client
Testing communication through FastAPI
Creating directories for server logs and services
Create the server log directory.
Create the server application directory.