Skip to main content

An oscilloscope for python that just works™

Project description

Oscilloscope

An oscilloscope for python that just works™

Features

Simple to use

This

import random
from time import sleep

from oscilloscope import Osc

osc = Osc()


@osc.signal
def simple_random_signal(state):
    while True:
        state.draw(random.random())
        sleep(0.1)


osc.start()

Gives you this

Parallel compute

Each osc.signal gets it's own process.

This

import random
from time import sleep

from oscilloscope import Osc


osc = Osc(nrows=2, ncols=3)


@osc.signal
def signal1(state):
    while True:
        state.draw((random.random())
        sleep(0.1)


@osc.signal
def signal2(state):
    while True:
        state.draw(random.random(), row=1, col=2)
        sleep(0.1)


osc.start()

Gives you this

P.S. Don't worry about race conditions, state.draw() is atomic. (See zproc)

Dynamic axis scale

The Y-axis's scale is dynamic, meaning that the graph's y axis scales with your signal.

This

import random
from time import sleep

from oscilloscope import Osc


# adjust window_sec and intensity to improve visibility
osc = Osc(window_sec=10, intensity=1)


@osc.signal
def increasing_signal(state):
    delta = 1

    while True:
        state.draw(random.randint(-delta, delta))
        delta += 5
        sleep(0.01)


osc.start()

Gives you this

Automatic normalization

This

import random
from time import sleep

from oscilloscope import Osc


# turn on normalization
osc = Osc(normalize=True)


@osc.signal
def increasing_signal(state):
    delta = 1

    while True:
        state.draw(random.randint(-delta, delta))
        delta += 5
        sleep(0.01)


osc.start()

Gives you this

This was the same signal as the [earlier](#Automatic normalization) one, but it looks a lot like the simple example, because we turned on normalization!

The Y-axis will now show, % max-amplitude encountered at the time, not the raw value.

Install

PyPI

pip install oscilloscope

MIT Licence
Python 3.6+ only.


🐍🏕️

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

oscilloscope-0.0.4.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

oscilloscope-0.0.4-py2.py3-none-any.whl (4.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file oscilloscope-0.0.4.tar.gz.

File metadata

  • Download URL: oscilloscope-0.0.4.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8

File hashes

Hashes for oscilloscope-0.0.4.tar.gz
Algorithm Hash digest
SHA256 7bcc9a2394b557b5a08899068ab18792c9fcf4d7356c9511fba9326d329a8173
MD5 9725a6e22f317041e51effaeb88b2cda
BLAKE2b-256 94825b81f23dbf7927e045ba36ba5ce2dc27b19dd7076580b189810c98cd12e6

See more details on using hashes here.

File details

Details for the file oscilloscope-0.0.4-py2.py3-none-any.whl.

File metadata

  • Download URL: oscilloscope-0.0.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8

File hashes

Hashes for oscilloscope-0.0.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3900208de87ddc09b9b5349c92191da4dc89c917a3b09f0b05727a7720d28a1f
MD5 b7fd83424cee52040c6fbe26d60d88ce
BLAKE2b-256 e9e291b975acdb6e864cebf283595eb18b6fa9f6160914b77dba7d5618dfe2d6

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