import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
import numpy as np
import math
import socket
vis_socket = socket.socket()
host = socket.gethostname()
port = 5040
vis_socket.connect((host, port))
frame = 0
position = []
TIME_SIZE = 300
torque_mag = []
force_mag = []
main_window = pg.GraphicsWindow()
main_window.setWindowTitle('Bracelet Motion')
mag_labels = {"left":("Newtons"),"bottom":("Frames")}
magnitude_plot = main_window.addPlot()
magnitude_plot.setYRange(-5,50)
magnitude_plot.setLabel('left', 'Newtons')
magnitude_plot.setLabel('bottom', 'Number of Displayed Frames')
magnitude_plot.addLegend()
magnitude_plot.setTitle('Loadcell Magnitudes')
# plot2 = mainWindow.addPlot()
curve_f_mag = magnitude_plot.plot(force_mag, pen='g', name=' Force')
curve_tq_mag = magnitude_plot.plot(torque_mag, pen='r', name=' Torque')
def inc_frame():
global frame, position
if len(position) < TIME_SIZE:
position.append(frame)
# else:
# position[:-1] = position[1:]
# position[-1] = frame
frame += 1
def plot_force_mag(data):
# incFrame()
global force_mag, curve_f_mag, position
magnitude = calc_magnitude(data)
if len(force_mag) < TIME_SIZE:
force_mag.append(magnitude) # build the list to desired size
else:
force_mag[:-1] = force_mag[1:] # shift data in the array one sample left
force_mag[-1] = magnitude # set the last duplicate value to the new value
curve_f_mag.setData(position, force_mag)
def plot_torque_mag(data):
# incFrame()
global torque_mag, curve_tq_mag, position
magnitude = calc_magnitude(data)
if len(torque_mag) < TIME_SIZE:
torque_mag.append(magnitude) # build the list to desired size
else:
torque_mag[:-1] = torque_mag[1:] # shift data in the array one sample left
torque_mag[-1] = magnitude # set the last duplicate value to the new value
curve_tq_mag.setData(position, torque_mag)
# curveTqMag.setPos(frames, 0)
def calc_magnitude(data):
val_x = float(data[0])
val_y = float(data[1])
val_z = float(data[2])
return round(math.sqrt((val_x*val_x) + (val_y*val_y) + (val_z*val_z)),3)
def parse_data(data):
data_list = data.split()
if len(data_list) > 0:
inc_frame()
for d in data_list:
i = data_list.index(d)
# if d == "tipPos":
# getTipPos(dataList[i:i + 4])
if d == "force":
plot_force_mag(data_list[i+1 : i+4])
if d == "torque":
plot_torque_mag(data_list[i+1 : i+4])
def main():
incoming = vis_socket.recv(8192).decode()
stream_list = incoming.split(':')
for chunk in stream_list:
parse_data(chunk)
timer = pg.QtCore.QTimer()
timer.timeout.connect(main)
timer.start(50)
if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()
import subprocess
subprocess.call(["python", "myscript.py"])--
You received this message because you are subscribed to the Google Groups "pyqtgraph" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pyqtgraph+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pyqtgraph/cb943810-f464-4ea3-bafd-4169e3a35d19%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.