1、实现了光谱仪简单的采集功能:曝光、调焦、暗电流、采集影像、保存影像;

2、设置光谱仪帧率、曝光时间、gain;
3、在页面中嵌入了rgb相机图传(通过opencv实现);
4、平台的相机位置模拟、x/y马达的分别控制、x/y马达的量程检测;
5、轨迹规划;
6、加入了张卓的自动调焦模块;
7、加入了自动电源控制;
This commit is contained in:
tangchao0503
2023-03-14 22:52:38 +08:00
commit 0b4ee48355
42 changed files with 7697 additions and 0 deletions

View File

@ -0,0 +1,87 @@
#include "stdafx.h"
#include "QMotorDoubleSlider.h"
QMotorDoubleSlider::QMotorDoubleSlider(QWidget* pParent /*= NULL*/) :
QSlider(pParent),
//m_Multiplier(0.00054496986),//<2F>Ϻ<EFBFBD>ũ<EFBFBD><C5A9>Ժ<EFBFBD><D4BA><EFBFBD>޸<EFBFBD>ǰ<EFBFBD><C7B0>0.00052734375/5=0.00010546875<EFBFBD><EFBFBD><EFBFBD>޸ĺ<EFBFBD>׼ȷֵΪ0.000544969862759644<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0.00054496986/5=0.000108993972<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>и<EFBFBD><EFBFBD><EFBFBD>еװ<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><EFBFBD>
m_Multiplier(0.00054496986),//<2F>˰<EFBFBD><CBB0><EFBFBD>ũ<EFBFBD><C5A9><EFBFBD><EFBFBD>
m_yMultiplier(0.000108993972)//
{
connect(this, SIGNAL(valueChanged(int)), this, SLOT(notifyValueChanged(int)));
setSingleStep(1);
setOrientation(Qt::Horizontal);
setFocusPolicy(Qt::NoFocus);
}
//<2F><><EFBFBD><EFBFBD><E2B7A2>
void QMotorDoubleSlider::notifyValueChanged(int Value)
{
emit valueChanged((double)Value * m_Multiplier);//////////
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void QMotorDoubleSlider::setValue(double Value, bool BlockSignals)
{
QSlider::blockSignals(BlockSignals);
QSlider::setValue(Value / m_Multiplier);////////////
if (!BlockSignals)
emit valueChanged(Value);
QSlider::blockSignals(false);
}
void QMotorDoubleSlider::setRange(double Min, double Max)
{
QSlider::setRange(Min / m_Multiplier, Max / m_Multiplier);//////
emit rangeChanged(Min, Max);
}
void QMotorDoubleSlider::setMinimum(double Min)
{
QSlider::setMinimum(Min / m_Multiplier);//////
emit rangeChanged(minimum(), maximum());
}
double QMotorDoubleSlider::minimum() const
{
return QSlider::minimum() * m_Multiplier;/////
}
void QMotorDoubleSlider::setMaximum(double Max)
{
QSlider::setMaximum(Max / m_Multiplier);//////
emit rangeChanged(minimum(), maximum());
}
double QMotorDoubleSlider::maximum() const
{
return QSlider::maximum() * m_Multiplier;///////
}
double QMotorDoubleSlider::value() const
{
int Value = QSlider::value();
return (double)Value * m_Multiplier;//////
}
double QMotorDoubleSlider::OriginalValue() const
{
int Value = QSlider::value();
return (double)Value;
}
long QMotorDoubleSlider::getPositionPulse(double position)
{
return position / m_Multiplier;
}
double QMotorDoubleSlider::getDistanceFromPulse(int pulse)
{
return pulse * m_Multiplier;
}