64 lines
2.1 KiB
Python
64 lines
2.1 KiB
Python
|
from graph import Graph
|
||
|
from math import sin, cos
|
||
|
from time import sleep
|
||
|
import numpy as np
|
||
|
from argparse import ArgumentParser
|
||
|
|
||
|
def function(args, func):
|
||
|
x = 0.0
|
||
|
while True:
|
||
|
with Graph(series=args.series, chart=args.chart, address=args.address, port=args.port) as g:
|
||
|
try:
|
||
|
x += 0.01
|
||
|
g += (x, func(x))
|
||
|
sleep(0.01)
|
||
|
except KeyboardInterrupt:
|
||
|
break
|
||
|
|
||
|
def sine_array(args):
|
||
|
start = 0
|
||
|
with Graph(series=args.series, chart=args.chart, address=args.address, port=args.port) as g:
|
||
|
while True:
|
||
|
try:
|
||
|
x = np.linspace(start, start+0.5, args.num)
|
||
|
y = np.sin(x)
|
||
|
|
||
|
start += 0.5
|
||
|
|
||
|
g += (x.tolist(), y.tolist())
|
||
|
|
||
|
sleep(args.delay)
|
||
|
except KeyboardInterrupt:
|
||
|
break
|
||
|
|
||
|
def star(args):
|
||
|
with Graph(series=args.series, chart=args.chart, address=args.address, port=args.port) as g:
|
||
|
points = [
|
||
|
(2/4,2/2),
|
||
|
(3/4,0),
|
||
|
(0,1/2),
|
||
|
(4/4,1/2),
|
||
|
(1/4,0),
|
||
|
(2/4,2/2)
|
||
|
]
|
||
|
g += points
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
parser = ArgumentParser()
|
||
|
parser.add_argument("-t", action="store", dest="test", help="test type", type=str, choices=["sin", "cos", "array", "star"], required=False, default="sin")
|
||
|
parser.add_argument("-n", action="store", dest="num", help="sin_array size/iteration", type=int, required=False, default=100)
|
||
|
parser.add_argument("-d", action="store", dest="delay", help="delay between iteration", type=float, required=False, default=0.25)
|
||
|
parser.add_argument("-c", action="store", dest="chart", help="chart id", type=int, required=True)
|
||
|
parser.add_argument("-s", action="store", dest="series", help="series name", type=str, required=True)
|
||
|
parser.add_argument("-p", action="store", dest="port", help="server port", type=int, required=False, default=8080)
|
||
|
parser.add_argument("-a", action="store", dest="address", help="server address", type=str, required=False, default="127.0.0.1")
|
||
|
|
||
|
args = parser.parse_args()
|
||
|
if args.test == "sin":
|
||
|
function(args, sin)
|
||
|
if args.test == "cos":
|
||
|
function(args, cos)
|
||
|
elif args.test == "array":
|
||
|
sine_array(args)
|
||
|
elif args.test == "star":
|
||
|
star(args)
|