83 lines
1.5 KiB
Python
Executable File
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()
|