六维力传感器数据采集界面程序设计

本文以vs2010+qt 编程,安装qwt插件,设计界面如图所示,以正弦信号模拟传感器接收的数据,运行效果如下所示.
在这里插入图片描述
由于力传感器相关软件信号采集只能在ubuntu的Clion下,所以需要将相关文件复制拷贝到其项目中,需要的文件有:
在这里插入图片描述
其中moc_xx.cpp改成moc_xx.h, 将其在mywidget.cpp中引用,因为qt编译是用Qmake,而Clion是用Cmake, 如果没加会出现以下错误:
在这里插入图片描述
Q_OBJECT未定义,若将Q_OBJECT删掉,则QT基本的信号和槽功能不能实现:
在这里插入图片描述
所以必须加上上述文件moc_xx.h,
在这里插入图片描述
设计步骤:

  1. 参考我的基于vs2010+qt计算器设计界面,添加qwtplot控件,添加开始和结束按钮,分别命好名qwtPlot_X qwtPlot_Y qwtPlot_Z qwtPlot_RX qwtPlot_RY qwtPlot_RZ
  2. 添加click响应和自定义槽函数start()和finish()
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    运行即可出现界面
    3.重新定义QWTPLOT属性
    在这里插入图片描述
    在这里插入图片描述
    定义模拟信号的函数Getdata 和更新qwtplot_x的函数,其中updatadataSlot_X()是实时显示动态曲线的关键
    在这里插入图片描述
    在start()里添加connect(),连接信号和槽
    在这里插入图片描述
    此时运行可出现第一张图像
    动态显示正弦曲线的相关代码

mywidget.h如下:


#ifndef MYWIDGET_H
#define MYWIDGET_H

#include <QtWidgets/QWidget>
#include "ui_mywidget.h"
#include <QTimer>
#include <QTime>
#include <qwt_plot.h>
#include <qwt_plot_curve.h>
#include <qwt_legend.h>
#include <math.h>
#include <qwt_plot_zoomer.h>
#include <qwt_plot_panner.h>
#include <qwt_plot_magnifier.h>
#include <qwt_plot_grid.h>
#include <qwt_scale_draw.h>

class mywidget : public QWidget
{
	Q_OBJECT

public:
	mywidget(QWidget *parent = 0);
	~mywidget();

public:
	void setupqwt_X(QwtPlot* qwtplot); //设置QWTPLOT的属性
	void setupqwt_Y(QwtPlot* qwtplot);
	void setupqwt_Z(QwtPlot* qwtplot);
	void setupqwt_RX(QwtPlot* qwtplot);
	void setupqwt_RY(QwtPlot* qwtplot);
	void setupqwt_RZ(QwtPlot* qwtplot);
public:

	QVector<double> t_data;
	QVector<double> X_data;
	QVector<double> Y_data;
	QVector<double> Z_data;
	QVector<double> RX_data;
	QVector<double> RY_data;
	QVector<double> RZ_data;


	QTimer updateTimer;

	QwtPlotCurve *curve_X ;
	QwtPlotCurve *curve_Y ;
	QwtPlotCurve *curve_Z ;
	QwtPlotCurve *curve_RX ;
	QwtPlotCurve *curve_RY ;
	QwtPlotCurve *curve_RZ ;

	double getData_X(double );
	double getData_Y(double );
	double getData_Z(double );
	double getData_RX(double );
	double getData_RY(double );
	double getData_RZ(double );


public slots:
	void updatedataSlot_X();
	void updatedataSlot_Y();
	void updatedataSlot_Z();
	void updatedataSlot_RX();
	void updatedataSlot_RY();
	void updatedataSlot_RZ();
	void start();
	void finish();

	

private:
	Ui::mywidgetClass ui;

};

#end
  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值