Skip to main content

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 in sdk/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

eruption_sdk-0.0.10.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

eruption_sdk-0.0.10-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

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

Hashes for eruption_sdk-0.0.10.tar.gz
Algorithm Hash digest
SHA256 10a5868b8fa4738062d3946a1c03c691464acd328aaa34020d8328e649841f0c
MD5 cdaf5dedc3e03a3d208f53c29b69d2ac
BLAKE2b-256 98128c93ecece36d8be2d2993e84dfb507fbca926087da456c1b58389129fc8a

See more details on using hashes here.

File details

Details for the file eruption_sdk-0.0.10-py3-none-any.whl.

File metadata

File hashes

Hashes for eruption_sdk-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 20c5451a320d8fdb020ef1b0f1852e598c620bccc917445e4c4f32202d78a5e1
MD5 ccfb01acb391da0d239c6730397357fc
BLAKE2b-256 1efe42526a279033df07c68d5cd3052f26b694df24fd6f7cc151b93f48ef0e1e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page