代码拉取完成,页面将自动刷新
#ifndef FORCESENSORCHART_H
#define FORCESENSORCHART_H
#include <QMainWindow>
#include <QtCharts>
#include <QSplineSeries>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
//#define DATATEST
//QT_CHARTS_USE_NAMESPACE
QT_BEGIN_NAMESPACE
namespace Ui { class forceSensorChart; }
QT_END_NAMESPACE
class QCustomPlot;
//时间轴的显示模式
enum {
FOLLOW,//跟随最新曲线,保持画框范围
SQUEEZE //压缩时间轴,全局显示曲线
};
const float timeRange = 5.0f;
const int forceRangeMin = -11;
const int forceRangeMax = 11;
const double torqueRangeMin = -0.5;
const double torqueRangeMax = 0.5;
const float timeInterval = 0.2f;
const float forceCoeff = 0.0048828125f;
const float torqueCoeff = 0.0001953125f;
struct ForceSensor
{
QVector<qreal> forceX;
QVector<qreal> forceY;
QVector<qreal> forceZ;
QVector<qreal> torqueX;
QVector<qreal> torqueY;
QVector<qreal> torqueZ;
};
class forceSensorChart : public QMainWindow
{
Q_OBJECT
public:
forceSensorChart(QWidget *parent = nullptr);
~forceSensorChart();
//初始化操作
void chartInit();//图表初始化
void graphInit();// QCustomPlot 初始化
void serialInit();//串口初始化
void connectInit();//连接初始化
void forceSensorDataProcess(unsigned char* buf);//力传感器数据处理
void decode(QByteArray buf); //力传感器数据解码
void updateCanvas(float currentTime);//更新画布
void updateData();//更新数据
void drawForce(); //绘制力曲线
private slots:
void on_btnOpenPort_toggled(bool checked);//打开或关闭端口
void on_btnRefreshPort_clicked();//更新可用串口
void on_serial_received();//接收数据
void on_serial_received2();//接收数据传给 QCustomPlot
void on_btnClear_clicked();
void on_btnSend_clicked();
void realtimeDataPlot(); // QCustomPlot 实时绘图
private:
Ui::forceSensorChart *ui;
//图表
QChart* chart;
QSplineSeries* seriesForce[6];
QValueAxis* axisX;
QValueAxis* axisYForce;
QValueAxis* axisYTorque;
//力数据
float m_forceData[6]{0};
QSharedPointer<ForceSensor> forceSensorPtr;
//串口
QSerialPort* serial;
//状态量
bool isPortOpen;//通道是否开启
bool isDataNull;//通道是否传送数据
bool isPauseData;//是否暂停接收数据
int drawMode; //绘图模式
QTimer* m_clock;// 定时器
QElapsedTimer* m_timer;//计时器
// QCustomPlot 图形
QCustomPlot* customPlotForce;//力曲线图
QCustomPlot* customPlotTorque;//力矩曲线图
};
#endif // FORCESENSORCHART_H
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。