Git Product home page Git Product logo

distributedbillboard's Introduction

Distributed Billboard

Distributed Billboard is a decentralized application that allows nodes to update images remotely.

Installation

  1. Install Python.
  2. Clone the repository.
git clone https://github.com/ninekirin/DistributedBillboard.git
  1. Install the required packages. You must be in the root directory of the repository.
pip install -r requirements.txt
  1. Check if the tkinter package is installed.
python -m tkinter
  1. Run the start script.
python starter.py

Usage

In the terminal, you can see the log of the application. You can see the current image and detailed error messages in the log.

In the main window, you can see the current image. You can switch to the next image by clicking your left mouse button on the image.

To switch between the fullscreen and windowed mode, press F11. Press ESC to exit the fullscreen mode.

In the billboard window, press m to open the management window. Press m again to close the menu. You can also press q to exit the application.

In the management window, you can see the list of nodes and their status, where you can add a new node, remove a node, update the image, change the interface address and port of the current node, and edit other settings in the "Other" tab. Press ESC to close the management window.

Configuration File

The configuration file is located in the root directory of the repository. You can edit the configuration file to change the settings of the application.

# Background color of the main window, in hexadecimal format or color name.
background_color: skyblue
# The address of the current node, currently supports only IPv4 addresses.
endpoint_ipaddr: 0.0.0.0
# The port of the current node.
endpoint_port: 6000
# If the application should be in fullscreen mode at startup.
fullscreen: true
# The interval in seconds to switch to the next image.
image_switch_interval: 15
# The node list, each node should have an address and a port like 'http://<address>:<port>'.
nodes: []
# The interval in seconds to ping the nodes.
ping_interval: 15
# The timeout in seconds to ping the nodes.
ping_timeout: 1

License

This project is licensed under the MIT License - see the LICENSE file for details.

distributedbillboard's People

Contributors

ninekirin avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.