Merge pull request 'fix: 修复三维相机跨线程传数问题' (#10) from WuChengBo into main

Reviewed-on: #10
pull/11/head
WuChengbo 7 months ago
commit e14b81431c

@ -4,7 +4,6 @@
EncodeModelCamera::EncodeModelCamera(QObject *parent) : QObject{parent} { EncodeModelCamera::EncodeModelCamera(QObject *parent) : QObject{parent} {
cameraUDP = new QUdpSocket(this); cameraUDP = new QUdpSocket(this);
// cameraUDP->bind(QHostAddress("172.10.1.104"), 8899); // cameraUDP->bind(QHostAddress("172.10.1.104"), 8899);
cmdArray.insert(0, 0xFA); cmdArray.insert(0, 0xFA);
cmdArray.insert(1, 0xFA); cmdArray.insert(1, 0xFA);
connect(cameraUDP, SIGNAL(readyRead()), this, SLOT(ReadData())); connect(cameraUDP, SIGNAL(readyRead()), this, SLOT(ReadData()));

@ -11,6 +11,7 @@ class EncodeModelCamera : public QObject {
public: public:
explicit EncodeModelCamera(QObject *parent = nullptr); explicit EncodeModelCamera(QObject *parent = nullptr);
// ~EncodeModelCamera(); // ~EncodeModelCamera();
public slots:
void setIPandPort(netStruct); // 设置ip和端口 void setIPandPort(netStruct); // 设置ip和端口
private: private:

@ -11,10 +11,12 @@ ModelCameraDlg::ModelCameraDlg(QWidget *parent)
encodeModelCamera = new EncodeModelCamera(); encodeModelCamera = new EncodeModelCamera();
encodeModelCamera->moveToThread(cameraCMDThread); encodeModelCamera->moveToThread(cameraCMDThread);
cameraCMDThread->start(); cameraCMDThread->start();
connect(this, &ModelCameraDlg::on_sendCmdData_signal, encodeModelCamera, connect(this, &ModelCameraDlg::sendCmdData_signal, encodeModelCamera,
&EncodeModelCamera::SendCMD); &EncodeModelCamera::SendCMD);
connect(encodeModelCamera, &EncodeModelCamera::UDP_Receive, this, connect(encodeModelCamera, &EncodeModelCamera::UDP_Receive, this,
&ModelCameraDlg::on_receiveUDP); &ModelCameraDlg::on_receiveUDP);
connect(this, &ModelCameraDlg::sendNetParam_signal, encodeModelCamera,
&EncodeModelCamera::setIPandPort);
} }
ModelCameraDlg::~ModelCameraDlg() { ModelCameraDlg::~ModelCameraDlg() {
@ -27,12 +29,6 @@ ModelCameraDlg::~ModelCameraDlg() {
} }
} }
void ModelCameraDlg::setNetParam(netStruct net) {
if (encodeModelCamera != nullptr) {
encodeModelCamera->setIPandPort(net);
}
}
void ModelCameraDlg::InitialComboBox() { void ModelCameraDlg::InitialComboBox() {
ui->photoTimeDbSpinBox->setSuffix("s"); ui->photoTimeDbSpinBox->setSuffix("s");
@ -133,7 +129,7 @@ void ModelCameraDlg::on_startPhotoBtn_clicked() {
cmdDataArray.insert(2, 0x03); cmdDataArray.insert(2, 0x03);
cmdDataArray.insert(3, 0x01); cmdDataArray.insert(3, 0x01);
cmdDataArray.insert(4, photoTime); cmdDataArray.insert(4, photoTime);
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }
// 停止拍照 // 停止拍照
@ -143,7 +139,7 @@ void ModelCameraDlg::on_stopPhotoBtn_clicked() {
cmdDataArray.insert(1, 0xA1); cmdDataArray.insert(1, 0xA1);
cmdDataArray.insert(2, 0x03); cmdDataArray.insert(2, 0x03);
cmdDataArray.insert(3, QByteArray(1, char(0x00))); cmdDataArray.insert(3, QByteArray(1, char(0x00)));
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }
// 开机 // 开机
@ -153,7 +149,7 @@ void ModelCameraDlg::on_ONBtn_clicked() {
cmdDataArray.insert(1, 0xA1); cmdDataArray.insert(1, 0xA1);
cmdDataArray.insert(2, 0x01); cmdDataArray.insert(2, 0x01);
cmdDataArray.insert(3, 0x01); cmdDataArray.insert(3, 0x01);
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }
// 关机 // 关机
@ -163,7 +159,7 @@ void ModelCameraDlg::on_OFFBtn_clicked() {
cmdDataArray.insert(1, 0xA1); cmdDataArray.insert(1, 0xA1);
cmdDataArray.insert(2, 0x01); cmdDataArray.insert(2, 0x01);
cmdDataArray.insert(3, QByteArray(1, char(0x00))); cmdDataArray.insert(3, QByteArray(1, char(0x00)));
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }
// 播放视频 // 播放视频
@ -198,7 +194,7 @@ void ModelCameraDlg::on_SSComboBox_activated(int index) {
cmdDataArray.append(byteArray); cmdDataArray.append(byteArray);
cmdDataArray.insert(6, 0xFF); cmdDataArray.insert(6, 0xFF);
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }
// ISO // ISO
@ -223,7 +219,7 @@ void ModelCameraDlg::on_ISOComboBox_activated(int index) {
cmdDataArray.append(byteArray); cmdDataArray.append(byteArray);
cmdDataArray.insert(6, 0xFF); cmdDataArray.insert(6, 0xFF);
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }
// AWB白平衡 // AWB白平衡
@ -243,7 +239,7 @@ void ModelCameraDlg::on_AWBComboBox_activated(int index) {
cmdDataArray.append(byteArray); cmdDataArray.append(byteArray);
cmdDataArray.insert(6, 0xFF); cmdDataArray.insert(6, 0xFF);
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }
// 相机模式 // 相机模式
@ -259,7 +255,7 @@ void ModelCameraDlg::on_cameraModelComboBox_activated(int index) {
else if (index == 1) else if (index == 1)
cmdDataArray.insert(3, 0x01); cmdDataArray.insert(3, 0x01);
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }
// 色彩模式 // 色彩模式
@ -279,7 +275,7 @@ void ModelCameraDlg::on_ColorModelComboBox_activated(int index) {
cmdDataArray.append(byteArray); cmdDataArray.append(byteArray);
cmdDataArray.insert(6, 0xFF); cmdDataArray.insert(6, 0xFF);
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }
// 获取开关机状态 // 获取开关机状态
@ -289,7 +285,7 @@ void ModelCameraDlg::quireOnorOff() {
cmdDataArray.insert(1, 0xA1); cmdDataArray.insert(1, 0xA1);
cmdDataArray.insert(2, 0x01); cmdDataArray.insert(2, 0x01);
cmdDataArray.insert(3, 0xFF); cmdDataArray.insert(3, 0xFF);
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }
// 查询图传状态 // 查询图传状态
@ -302,7 +298,7 @@ void ModelCameraDlg::quireShutterSpeed() {
cmdDataArray.insert(2, 0x01); cmdDataArray.insert(2, 0x01);
cmdDataArray.insert(3, 0xFF); cmdDataArray.insert(3, 0xFF);
cmdDataArray.insert(4, 0xFF); cmdDataArray.insert(4, 0xFF);
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }
// 查询ISO // 查询ISO
void ModelCameraDlg::quireISO() { void ModelCameraDlg::quireISO() {
@ -312,7 +308,7 @@ void ModelCameraDlg::quireISO() {
cmdDataArray.insert(2, 0x02); cmdDataArray.insert(2, 0x02);
cmdDataArray.insert(3, 0xFF); cmdDataArray.insert(3, 0xFF);
cmdDataArray.insert(4, 0xFF); cmdDataArray.insert(4, 0xFF);
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }
// 查询白平衡 // 查询白平衡
void ModelCameraDlg::quireAWB() { void ModelCameraDlg::quireAWB() {
@ -322,7 +318,7 @@ void ModelCameraDlg::quireAWB() {
cmdDataArray.insert(2, 0x06); cmdDataArray.insert(2, 0x06);
cmdDataArray.insert(3, 0xFF); cmdDataArray.insert(3, 0xFF);
cmdDataArray.insert(4, 0xFF); cmdDataArray.insert(4, 0xFF);
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }
// 查询相机模式 // 查询相机模式
void ModelCameraDlg::quireCameraMode() { void ModelCameraDlg::quireCameraMode() {
@ -331,7 +327,7 @@ void ModelCameraDlg::quireCameraMode() {
cmdDataArray.insert(1, 0xA1); cmdDataArray.insert(1, 0xA1);
cmdDataArray.insert(2, 0x02); cmdDataArray.insert(2, 0x02);
cmdDataArray.insert(3, 0xFF); cmdDataArray.insert(3, 0xFF);
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }
// 查询色彩(饱和度)模式 // 查询色彩(饱和度)模式
void ModelCameraDlg::quireColorMode() { void ModelCameraDlg::quireColorMode() {
@ -341,7 +337,7 @@ void ModelCameraDlg::quireColorMode() {
cmdDataArray.insert(2, 0x08); cmdDataArray.insert(2, 0x08);
cmdDataArray.insert(3, 0xFF); cmdDataArray.insert(3, 0xFF);
cmdDataArray.insert(4, 0xFF); cmdDataArray.insert(4, 0xFF);
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }
// 查询温度 // 查询温度
void ModelCameraDlg::quireTempe() {} void ModelCameraDlg::quireTempe() {}
@ -352,5 +348,5 @@ void ModelCameraDlg::quirePicNumAll() {
cmdDataArray.insert(1, 0xA1); cmdDataArray.insert(1, 0xA1);
cmdDataArray.insert(2, 0x07); cmdDataArray.insert(2, 0x07);
cmdDataArray.insert(3, 0xFF); cmdDataArray.insert(3, 0xFF);
emit on_sendCmdData_signal(cmdDataArray); emit sendCmdData_signal(cmdDataArray);
} }

@ -17,10 +17,11 @@ class ModelCameraDlg : public QDialog {
public: public:
explicit ModelCameraDlg(QWidget *parent = nullptr); explicit ModelCameraDlg(QWidget *parent = nullptr);
~ModelCameraDlg(); ~ModelCameraDlg();
void setNetParam(netStruct); // void setNetParam(netStruct);
signals: signals:
void on_sendCmdData_signal(QByteArray cmdDataArray); void sendCmdData_signal(QByteArray cmdDataArray);
void sendNetParam_signal(netStruct netParam);
private slots: private slots:
void on_startPhotoBtn_clicked(); void on_startPhotoBtn_clicked();

@ -113,8 +113,7 @@ void MainWindow::initWindow() {
satelliteCommWeb->load(QUrl(m_allSetMap["机载卫通"].url)); satelliteCommWeb->load(QUrl(m_allSetMap["机载卫通"].url));
m_ModelCameraDlg = new ModelCameraDlg(this); m_ModelCameraDlg = new ModelCameraDlg(this);
m_ModelCameraDlg->setNetParam(m_allSetMap["三维建模"].net); emit m_ModelCameraDlg->sendNetParam_signal(m_allSetMap["三维建模"].net);
// 接收主页面设置窗口的url数据传递并设置 // 接收主页面设置窗口的url数据传递并设置
connect(m_HomePagedlg->settingWidget, &HomePageSetingWidget::sendOneSet, this, connect(m_HomePagedlg->settingWidget, &HomePageSetingWidget::sendOneSet, this,
[&](unsigned char urlIndex, settingStruct settings) { [&](unsigned char urlIndex, settingStruct settings) {
@ -132,7 +131,7 @@ void MainWindow::initWindow() {
satelliteCommWeb->load(QUrl(settings.url)); satelliteCommWeb->load(QUrl(settings.url));
break; break;
case HomePageSetingWidget::ModelCamera: case HomePageSetingWidget::ModelCamera:
m_ModelCameraDlg->setNetParam(settings.net); m_ModelCameraDlg->sendNetParam_signal(settings.net);
break; break;
default: default:
break; break;

Loading…
Cancel
Save