Skip to content

Server application with GUI for guiding robots over TCP connection.

Notifications You must be signed in to change notification settings

leirimnad/robot_server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robot Control Server

Robot Control Server is a server application for guiding robots on a simplified map.
The process of controlling the robot consists of authentication and guiding the robot to the (0, 0) coordinate.
The application starts a separate thread for each robot.
The application also contains a GUI for displaying the conversation and the map for each robot.in real time.

This application is a semester project for the course "Python Programming" at FIT CTU in Prague.
Full assignment is available here.

Requirements

Requirements are listed in requirements.txt file.
Required Python version: 3.8 or higher.

Install requirements:

pip install -r requirements.txt

Usage

Run server in CLI on address 127.0.0.1, port 61111:

python -m robot_server 61111

Run server in GUI on address 127.0.0.1, port 61111:

python -m robot_server 61111 -g

General usage:

python -m robot_server [-a A.A.A.A] [-g] [-v] [-l file] PORT

positional arguments:
  PORT                  number of port to listen on

options:
  -a A.A.A.A, --host A.A.A.A
                        host IP address to listen on
  -g, --gui             run with GUI
  -v, --verbose         print messages to console
  -l file, --log file   log file

Running tests

Run all tests:

pytest

or

python -m pytest

Run tests with coverage:

coverage run -m pytest ; coverage report

or

python -m coverage run -m pytest ; python -m coverage report

Binary tests

Apart from unit tests, there are also binary tests created by the teacher for evaluating the application.
Instructions for running them are available here (in Czech) and here (in English).

Windows users should download the VirtualBox image for running the binary tests.
The instructions for that are available on links above.

The binary file for the Linux users is available here.
The instructions for running the binary tests on Linux are available in the task description.
In short: tester <port number> <remote address> [test number(s)]

Known issues

Tested on Windows 11 with Python 3.11 and Lubuntu 20.04 with Python 3.10.

  • When running on Linux, GraphicsView might not display the map properly.
    Map is displayed properly when the window is scrolled.
    Presumably, the issue is caused by Qt library.

About

Server application with GUI for guiding robots over TCP connection.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages