Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Refactoring Summary New Project Structure

DMXController/ ├── pyproject.toml # Package configuration ├── scripts/ │ ├── setup_dmx_ola.sh # OLA setup script │ └── repatch_dmx_ftdi.sh # Device re-patching utility └── src/dmx_controller/ ├── init.py # Package exports ├── main.py # CLI entry point ├── core/ │ ├── buffer.py # DmxBuffer class │ ├── constants.py # Configuration & color palette │ └── utils.py # Helper functions ├── controllers/ │ ├── base.py # Base controller class │ ├── fixture.py # Full RGBWYP controller │ └── uv.py # UV-specific controller ├── animations/ │ ├── easing.py # 30+ easing functions │ └── effects.py # Animation engine └── api/ ├── app.py # FastAPI app factory ├── models.py # Pydantic request/response models └── routes.py # REST API endpoints Key Features Added Smooth Animations (easing.py):

30+ professional easing functions (sine, cubic, elastic, bounce, etc.) Pulse/breathing, strobe, color cycles, rainbow Fire, candle, twinkle, and wave effects FastAPI Endpoints (routes.py):

POST /api/v1/color - Set solid color POST /api/v1/animation/fade - Smooth fade POST /api/v1/animation/pulse - Breathing effect POST /api/v1/animation/rainbow - Rainbow cycle POST /api/v1/animation/fire - Fire effect POST /api/v1/uv/on, /uv/pulse, /uv/strobe - UV control Full OpenAPI docs at /docs Usage

Install

pip install -e .

Run API server

dmx-controller serve --port 8000

Run demo

dmx-controller demo

Or run module directly

python -m dmx_controller serve

python -m dmx_controller.scheduling.wristband

Install frontend dependencies

pip install streamlit requests

Or: pip install ".[frontend]"

Start the API server (in one terminal)

python -m dmx_controller serve --schedule

Start the Streamlit frontend (in another terminal)

streamlit run frontend.py

For Automated Startup Without Manual Intervention Run this once during setup:

Make the script executable

chmod +x scripts/repatch_dmx_ftdi.sh

Configure passwordless sudo for olad restart

echo "$(whoami) ALL=(ALL) NOPASSWD: /bin/systemctl restart olad" | sudo tee /etc/sudoers.d/dmx-controller

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages