An oscilloscope for python that just works™
Project description
Oscilloscope
An oscilloscope for python that just works™
Features
Simple to use
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.
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.
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
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
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
Built Distribution
Hashes for oscilloscope-0.0.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3900208de87ddc09b9b5349c92191da4dc89c917a3b09f0b05727a7720d28a1f |
|
MD5 | b7fd83424cee52040c6fbe26d60d88ce |
|
BLAKE2b-256 | e9e291b975acdb6e864cebf283595eb18b6fa9f6160914b77dba7d5618dfe2d6 |