graph/test/test.py

83 lines
1.5 KiB
Python
Executable File

#!/bin/env python3
import requests
from math import sin
from time import sleep
import numpy as np
import pyaudio
def sine():
x = 0.0
while True:
requests.get(f"http://localhost:8080/add?chart=0&series=R1&x={x}&y={sin(x)}")
x += 0.01
sleep(0.01)
def sine_array():
start = 0
while True:
x = np.linspace(start, start+0.5, 100)
y = np.sin(x)
start += 0.5
data = {
"chart": 0,
"series": "R1",
"points": [ {"x": i[0], "y":i[1]} for i in zip(x,y) ]
}
r = requests.post("http://0.0.0.0:8080/add", json=data, headers={"Connection":"close"})
sleep(0.25)
def star():
points = [
(2,2),
(3,0),
(0,1),
(4,1),
(1,0),
(2,2)
]
for point in points:
requests.get(f"http://localhost:8080/add?chart=0&series=R1&x={point[0]}&y={point[1]}")
def audio():
p = pyaudio.PyAudio()
stream = p.open(
input=True,
input_device_index=0,
format=pyaudio.paInt16,
channels=1,
rate=44100,
frames_per_buffer=1024
)
stream.start_stream()
while True:
try:
data = stream.read(1024, False)
requests.post(
"http://0.0.0.0:8080/add",
json={
"chart": 0,
"series": "audio",
"points": [ {"x": i, "y": v} for (i, v) in enumerate(data) ]
},
headers={"Connection":"close"})
except KeyboardInterrupt:
break
stream.stop_stream()
stream.close()
p.terminate()
def main():
#sine()
# sine_array()
#star()
audio()
if __name__ == "__main__":
main()