对象:ATI
语言:Python
方法:stock
目的与ATI通讯实时读取传感器信息并用将其可视化
直接上代码
import array
import pyqtgraph as pg
from ATI_APIpy import ATI_APIpy
if __name__=='__main__':
## test start
app = pg.mkQApp()#建立app
win = pg.GraphicsWindow()#建立窗口
win.setWindowTitle(u'pyqtgraph逐点画波形图')
win.resize(1600, 1200)#小窗口大小
# draw a dynamic picture
t=[0]
t_now=[0]
Fx_data = array.array('d')
fd = []
td = []
# link the ATI
ip='172.31.1.144'
ATI=ATI_APIpy(ip)
print('Connected ATI')
historyLength = 100#横坐标长度
p = win.addPlot()#把图p加入到窗口中
p.showGrid(x=True, y=True)#把X和Y的表格打开
p.setRange(xRange=[0,historyLength], yRange=[-1.2, 1.2], padding=0)
p.setLabel(axis='left', text='Contact force')#靠左
p.setLabel(axis='bottom', text='time')
p.setTitle('Real time contact force')#表格的名字
curve = p.plot()#绘制一个图形
while True:
def plotData():
ATI.startStreaming() # 告诉ATI开始读取
ATI.recieve() # 开始从ATI接受数据
f = ATI.force()
fd.append(f)
bd=len(fd)
tmp = fd[bd-1][0]
if len(Fx_data) < historyLength:
Fx_data.append(tmp)
else:
Fx_data[:-1] = Fx_data[1:] # 前移
Fx_data[-1] = tmp
curve.setData(Fx_data)
timer = pg.QtCore.QTimer()
timer.timeout.connect(plotData) # 定时调用plotData函数
timer.start(50) # 多少ms调用一次
app.exec_()