Provides an interface to the Eruption Realtime RGB LED Driver for Linux
Project description
Eruption Python 3 SDK
This is the documentation of the Python 3 SDK for Eruption
Table of Contents
Using the Python SDK
Getting started
First you need to set up the required environment:
- Create a virtual environment (venv)
- Install the dependencies
- Eruption Python 3 SDK
- Google Protocol Buffers
- Run an example application to test the installation
simple.py
located insdk/examples/python/
Installation Instructions
Create the virtual environment (venv)
python3 -m venv venv
source venv/bin/activate
Now install the dependencies
pip install eruption-sdk
Example Code
Imports
from eruption import SDK_VERSION, Connection, Canvas, Color
Establishing a Connection
The following code will establish a connection to a running instance of Eruption via the local transport (UNIX domain socket)
# connect to the Eruption daemon (via a local connection)
try:
print("Connecting to the Eruption daemon...")
connection = Connection(type=Connection.LOCAL)
connection.connect()
print("Successfully connected to the Eruption daemon")
status = connection.get_server_status()
print(status)
Switching Profiles
The current active profile file can be queried using get_active_profile()
and set using switch_profile()
.
print("Currently using", connection.get_active_profile())
# Use the profile's full file path
connection.switch_profile("/var/lib/eruption/profiles/solid.profile")
Updating Parameters
One or more script parameters can be set using set_parameters()
. Pass in the full file
path of the profile and the script, then any parameters you want to update.
profile_file = "/var/lib/eruption/profiles/solid.profile"
script_file = "/usr/share/eruption/scripts/solid.lua"
connection.set_parameters(profile_file, script_file, color_background="#ff3f00ff", opacity=0.9)
Controlling the Canvas
Using the canvas with the Color class
# create a new canvas
canvas = Canvas()
red = Color(255, 0, 0, 128)
green = Color(0, 255, 0, 128)
blue = Color(0, 0, 255, 128)
final = Color(0, 0, 0, 0)
canvas.fill(red)
print("Submitting canvas...")
connection.submit_canvas(canvas)
time.sleep(1)
canvas.fill(green)
print("Submitting canvas...")
connection.submit_canvas(canvas)
time.sleep(1)
canvas.fill(blue)
print("Submitting canvas...")
connection.submit_canvas(canvas)
time.sleep(1)
canvas.fill(final)
print("Submitting canvas...")
connection.submit_canvas(canvas)
Terminating the Connection
connection.disconnect()
print("Exiting now")
except (Exception) as e:
print(f"An error occurred: {type(e).__name__} {e}" )
Full Code Listing
import sys
import time
from eruption import SDK_VERSION, Connection, Canvas, Color
EXAMPLE_NAME = "Simple Python Example #1"
def main():
"""Main program entrypoint"""
print(f"Welcome to the Eruption SDK!\nYou are running the \"{EXAMPLE_NAME}\" "
f"from the Eruption SDK version {SDK_VERSION}\n")
# connect to the Eruption daemon (via a local connection)
try:
print("Connecting to the Eruption daemon...")
connection = Connection(type=Connection.LOCAL)
connection.connect()
print("Successfully connected to the Eruption daemon")
status = connection.get_server_status()
print(status)
# create a new canvas
canvas = Canvas()
red = Color(255, 0, 0, 128)
green = Color(0, 255, 0, 128)
blue = Color(0, 0, 255, 128)
final = Color(0, 0, 0, 0)
canvas.fill(red)
print("Submitting canvas...")
connection.submit_canvas(canvas)
time.sleep(1)
canvas.fill(green)
print("Submitting canvas...")
connection.submit_canvas(canvas)
time.sleep(1)
canvas.fill(blue)
print("Submitting canvas...")
connection.submit_canvas(canvas)
time.sleep(1)
canvas.fill(final)
print("Submitting canvas...")
connection.submit_canvas(canvas)
connection.disconnect()
print("Exiting now")
except (Exception) as e:
print(f"An error occurred: {type(e).__name__} {e}" )
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
pass
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file eruption_sdk-0.0.10.tar.gz
.
File metadata
- Download URL: eruption_sdk-0.0.10.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10a5868b8fa4738062d3946a1c03c691464acd328aaa34020d8328e649841f0c |
|
MD5 | cdaf5dedc3e03a3d208f53c29b69d2ac |
|
BLAKE2b-256 | 98128c93ecece36d8be2d2993e84dfb507fbca926087da456c1b58389129fc8a |
File details
Details for the file eruption_sdk-0.0.10-py3-none-any.whl
.
File metadata
- Download URL: eruption_sdk-0.0.10-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20c5451a320d8fdb020ef1b0f1852e598c620bccc917445e4c4f32202d78a5e1 |
|
MD5 | ccfb01acb391da0d239c6730397357fc |
|
BLAKE2b-256 | 1efe42526a279033df07c68d5cd3052f26b694df24fd6f7cc151b93f48ef0e1e |