feat: 重新规划ui布局;增加左右红外以及rgb相机可视化
This commit is contained in:
@@ -18,6 +18,9 @@ NetworkManager::NetworkManager(QObject *parent)
|
||||
|
||||
// 连接GVSP解析器信号
|
||||
connect(m_gvspParser, &GVSPParser::imageReceived, this, &NetworkManager::imageReceived);
|
||||
connect(m_gvspParser, &GVSPParser::leftImageReceived, this, &NetworkManager::leftImageReceived);
|
||||
connect(m_gvspParser, &GVSPParser::rightImageReceived, this, &NetworkManager::rightImageReceived);
|
||||
connect(m_gvspParser, &GVSPParser::rgbImageReceived, this, &NetworkManager::rgbImageReceived);
|
||||
connect(m_gvspParser, &GVSPParser::depthDataReceived, this, &NetworkManager::depthDataReceived);
|
||||
connect(m_gvspParser, &GVSPParser::pointCloudDataReceived, this, &NetworkManager::pointCloudDataReceived);
|
||||
}
|
||||
@@ -54,8 +57,8 @@ bool NetworkManager::connectToCamera(const QString &ip, int controlPort, int dat
|
||||
return false;
|
||||
}
|
||||
|
||||
// 设置UDP接收缓冲区大小为64MB(减少丢包)
|
||||
m_dataSocket->setSocketOption(QAbstractSocket::ReceiveBufferSizeSocketOption, QVariant(64 * 1024 * 1024));
|
||||
// 设置UDP接收缓冲区大小为256MB(最大化,减少丢包)
|
||||
m_dataSocket->setSocketOption(QAbstractSocket::ReceiveBufferSizeSocketOption, QVariant(256 * 1024 * 1024));
|
||||
|
||||
qDebug() << "Successfully bound data port" << m_dataPort;
|
||||
qDebug() << "Data socket state:" << m_dataSocket->state();
|
||||
@@ -129,15 +132,66 @@ bool NetworkManager::sendStopCommand()
|
||||
return sendCommand("STOP");
|
||||
}
|
||||
|
||||
bool NetworkManager::sendOnceCommand()
|
||||
{
|
||||
return sendCommand("ONCE");
|
||||
}
|
||||
|
||||
bool NetworkManager::sendExposureCommand(int exposureTime)
|
||||
{
|
||||
QString command = QString("EXPOSURE:%1").arg(exposureTime);
|
||||
return sendCommand(command);
|
||||
// 同时发送结构光曝光命令(UART控制激光器,单位μs)
|
||||
QString exposureCommand = QString("EXPOSURE:%1").arg(exposureTime);
|
||||
bool success1 = sendCommand(exposureCommand);
|
||||
|
||||
// 同时发送红外相机曝光命令(通过触发脉冲宽度控制,单位μs)
|
||||
// 下位机会将此值用作manual_trigger_pulse()的脉冲宽度参数
|
||||
// 脉冲宽度直接决定相机的实际曝光时间
|
||||
int irExposure = exposureTime;
|
||||
|
||||
// 限制在有效范围内(1000μs ~ 100000μs,避免脉冲太短导致相机无法触发)
|
||||
if (irExposure < 1000) irExposure = 1000;
|
||||
if (irExposure > 100000) irExposure = 100000;
|
||||
|
||||
QString irExposureCommand = QString("IR_EXPOSURE:%1").arg(irExposure);
|
||||
bool success2 = sendCommand(irExposureCommand);
|
||||
|
||||
return success1 && success2;
|
||||
}
|
||||
|
||||
// ========== 传输开关命令 ==========
|
||||
bool NetworkManager::sendEnableLeftIR()
|
||||
{
|
||||
return sendCommand("ENABLE_LEFT");
|
||||
}
|
||||
|
||||
bool NetworkManager::sendDisableLeftIR()
|
||||
{
|
||||
return sendCommand("DISABLE_LEFT");
|
||||
}
|
||||
|
||||
bool NetworkManager::sendEnableRightIR()
|
||||
{
|
||||
return sendCommand("ENABLE_RIGHT");
|
||||
}
|
||||
|
||||
bool NetworkManager::sendDisableRightIR()
|
||||
{
|
||||
return sendCommand("DISABLE_RIGHT");
|
||||
}
|
||||
|
||||
bool NetworkManager::sendEnableRGB()
|
||||
{
|
||||
return sendCommand("ENABLE_RGB");
|
||||
}
|
||||
|
||||
bool NetworkManager::sendDisableRGB()
|
||||
{
|
||||
return sendCommand("DISABLE_RGB");
|
||||
}
|
||||
|
||||
bool NetworkManager::sendMonocularMode()
|
||||
{
|
||||
return sendCommand("MONOCULAR");
|
||||
}
|
||||
|
||||
bool NetworkManager::sendBinocularMode()
|
||||
{
|
||||
return sendCommand("BINOCULAR");
|
||||
}
|
||||
|
||||
// ========== 槽函数 ==========
|
||||
|
||||
Reference in New Issue
Block a user