42 lines
1.3 KiB
C++
42 lines
1.3 KiB
C++
#ifndef Q_MOTOR_DOUBLE_SLIDER_H
|
||
#define Q_MOTOR_DOUBLE_SLIDER_H
|
||
#include <QtGui/QtGui>
|
||
#include <QSlider>
|
||
|
||
#include "hppaConfigFile.h"
|
||
#include "path_tc.h"
|
||
|
||
class QMotorDoubleSlider : public QSlider
|
||
{
|
||
Q_OBJECT
|
||
|
||
public:
|
||
QMotorDoubleSlider(QWidget* pParent = NULL);
|
||
void setMultiplier(float lead, float stepAnglemar, float scaleFactor, int subdivisionParam);
|
||
int getValidSubdivision(int subdivisionParam);
|
||
|
||
double m_Multiplier;//根据公式将脉冲换算为距离:1脉冲距离(m_Multiplier)=导程/(360/步距角*细分倍数);网址:https://wenku.baidu.com/view/4b2ea88bd0d233d4b14e69b8.html
|
||
|
||
void setRange(double Min, double Max);
|
||
void setMinimum(double Min);
|
||
double minimum() const;
|
||
void setMaximum(double Max);
|
||
double maximum() const;
|
||
double value() const;
|
||
double OriginalValue() const;//返回脉冲值:马达需要实际的脉冲值,而不是距离
|
||
long getPositionPulse(double position);//根据传入的距离返回脉冲值
|
||
double getDistanceFromPulse(int pulse);
|
||
|
||
public slots:
|
||
void notifyValueChanged(int value);//信号valueChanged(int)的wrap
|
||
void setValue(double Value, bool BlockSignals = true);//QSlider::setValue函数的wrap
|
||
|
||
signals:
|
||
void valueChanged(double Value);
|
||
void rangeChanged(double Min, double Max);
|
||
|
||
private:
|
||
|
||
};
|
||
#endif
|