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
- 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 protobuf
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
Hashes for eruption_sdk-0.0.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6e4701e88c34ec265f5ebd7c59b68c7bdebe33f16d13989078d4a35bf748ab2 |
|
MD5 | fd69286304f8246086ad21c73cab0b29 |
|
BLAKE2b-256 | 772e4c1e0ffae0ef106e273f8e8d6add5b0cf3781b236908290e5cb18e5b0714 |