#include "modelcameradlg.h" #include "ui_modelcameradlg.h" ModelCameraDlg::ModelCameraDlg(QWidget *parent) : QDialog(parent) , ui(new Ui::ModelCameraDlg) { ui->setupUi(this); InitialComboBox(); cameraCMDThread = new QThread(this); encodeModelCamera = new EncodeModelCamera(this); encodeModelCamera->moveToThread(cameraCMDThread); cameraCMDThread->start(); connect(this,&ModelCameraDlg::on_sendCmdData_signal,encodeModelCamera,&EncodeModelCamera::SendCMD); } ModelCameraDlg::~ModelCameraDlg() { delete ui; if(encodeModelCamera!=nullptr) delete encodeModelCamera; if(cameraCMDThread!=nullptr) { cameraCMDThread->quit(); cameraCMDThread->wait(); } } void ModelCameraDlg::InitialComboBox() { ui->photoTimeDbSpinBox->setSuffix("s"); //快门速度 ui->SSComboBox->insertItem(0,"1/100"); ui->SSComboBox->insertItem(1,"1/125"); ui->SSComboBox->insertItem(2,"1/160"); ui->SSComboBox->insertItem(3,"1/200"); ui->SSComboBox->insertItem(4,"1/250"); ui->SSComboBox->insertItem(5,"1/320"); ui->SSComboBox->insertItem(6,"1/400"); ui->SSComboBox->insertItem(7,"1/500"); ui->SSComboBox->insertItem(8,"1/640"); ui->SSComboBox->insertItem(9,"1/800"); ui->SSComboBox->insertItem(10,"1/1000"); ui->SSComboBox->insertItem(11,"1/1250"); ui->SSComboBox->insertItem(12,"1/1600"); ui->SSComboBox->insertItem(13,"1/2000"); //ISO ui->ISOComboBox->insertItem(0,"50~800"); ui->ISOComboBox->insertItem(1,"50~1600"); ui->ISOComboBox->insertItem(2,"50"); ui->ISOComboBox->insertItem(3,"100"); ui->ISOComboBox->insertItem(4,"125"); ui->ISOComboBox->insertItem(5,"160"); ui->ISOComboBox->insertItem(6,"200"); ui->ISOComboBox->insertItem(7,"250"); ui->ISOComboBox->insertItem(8,"320"); ui->ISOComboBox->insertItem(9,"400"); ui->ISOComboBox->insertItem(10,"500"); ui->ISOComboBox->insertItem(11,"640"); ui->ISOComboBox->insertItem(12,"800"); ui->ISOComboBox->insertItem(13,"1000"); ui->ISOComboBox->insertItem(14,"1250"); ui->ISOComboBox->insertItem(15,"1600"); //AWB ui->AWBComboBox->insertItem(0,"自动"); ui->AWBComboBox->insertItem(1,"日光"); //相机模式 ui->cameraModelComboBox->insertItem(0,"拍照模式"); ui->cameraModelComboBox->insertItem(1,"录像模式"); //色彩模式 ui->ColorModelComboBox->insertItem(0,"艳丽"); ui->ColorModelComboBox->insertItem(1,"标准"); } //开始拍照点击事件 void ModelCameraDlg::on_startPhotoBtn_clicked() { quint8 photoTime = ui->photoTimeDbSpinBox->value() * 10; cmdDataArray.clear(); cmdDataArray.insert(0,0x02); cmdDataArray.insert(1,0xA1); cmdDataArray.insert(2,0x03); cmdDataArray.insert(3,0x01); cmdDataArray.insert(4,photoTime); emit on_sendCmdData_signal(cmdDataArray); } //停止拍照 void ModelCameraDlg::on_stopPhotoBtn_clicked() { cmdDataArray.clear(); cmdDataArray.insert(0,0x01); cmdDataArray.insert(1,0xA1); cmdDataArray.insert(2,0x03); cmdDataArray.insert(3,QByteArray(1, char(0x00))); emit on_sendCmdData_signal(cmdDataArray); } //开机 void ModelCameraDlg::on_ONBtn_clicked() { cmdDataArray.clear(); cmdDataArray.insert(0,0x01); cmdDataArray.insert(1,0xA1); cmdDataArray.insert(2,0x01); cmdDataArray.insert(3,0x01); emit on_sendCmdData_signal(cmdDataArray); } //关机 void ModelCameraDlg::on_OFFBtn_clicked() { cmdDataArray.clear(); cmdDataArray.insert(0,0x01); cmdDataArray.insert(1,0xA1); cmdDataArray.insert(2,0x01); cmdDataArray.insert(3,QByteArray(1, char(0x00))); emit on_sendCmdData_signal(cmdDataArray); } //播放视频 void ModelCameraDlg::on_pushButton_5_clicked() { QString str = ui->pushButton_5->text(); if(str == "播放视频") { QString ip = ui->videoIPLineEdit->text(); ui->cameraVideoWidget->play(); ui->cameraVideoWidget->setUrl(ip); ui->pushButton_5->setText("暂停播放"); } else { ui->cameraVideoWidget->stop(); ui->pushButton_5->setText("播放视频"); } } //快门速度 void ModelCameraDlg::on_SSComboBox_activated(int index) { QString tmp = ui->SSComboBox->itemText(index); QString strSS = tmp.right(tmp.length()-2); qint16 hexValue = strSS.toShort();// cmdDataArray.clear(); cmdDataArray.insert(0,0x04); cmdDataArray.insert(1,0xA2); cmdDataArray.insert(2,0x01); cmdDataArray.insert(3,0x01); QByteArray byteArray; byteArray.resize(2); qToBigEndian(hexValue, (char*)byteArray.data()); cmdDataArray.append(byteArray); cmdDataArray.insert(6,0xFF); emit on_sendCmdData_signal(cmdDataArray); } //ISO void ModelCameraDlg::on_ISOComboBox_activated(int index) { QString strSS = ui->ISOComboBox->itemText(index); if(index == 0) strSS = "-2"; else if(index == 1) strSS = "-1"; qint16 hexValue = strSS.toShort();// cmdDataArray.clear(); cmdDataArray.insert(0,0x04); cmdDataArray.insert(1,0xA2); cmdDataArray.insert(2,0x02); cmdDataArray.insert(3,0x01); QByteArray byteArray; byteArray.resize(2); qToBigEndian(hexValue, (char*)byteArray.data()); cmdDataArray.append(byteArray); cmdDataArray.insert(6,0xFF); emit on_sendCmdData_signal(cmdDataArray); } //AWB void ModelCameraDlg::on_AWBComboBox_activated(int index) { quint16 hexValue = index + 1;// cmdDataArray.clear(); cmdDataArray.insert(0,0x04); cmdDataArray.insert(1,0xA2); cmdDataArray.insert(2,0x06); cmdDataArray.insert(3,0x01); QByteArray byteArray; byteArray.resize(2); qToBigEndian(hexValue, (uchar*)byteArray.data()); cmdDataArray.append(byteArray); cmdDataArray.insert(6,0xFF); emit on_sendCmdData_signal(cmdDataArray); } //相机模式 void ModelCameraDlg::on_cameraModelComboBox_activated(int index) { quint16 hexValue = index + 1;// cmdDataArray.clear(); cmdDataArray.insert(0,0x01); cmdDataArray.insert(1,0xA1); cmdDataArray.insert(2,0x02); if(index == 0) cmdDataArray.insert(3,QByteArray(1, char(0x00))); else if(index == 1) cmdDataArray.insert(3,0x01); emit on_sendCmdData_signal(cmdDataArray); } //色彩模式 void ModelCameraDlg::on_ColorModelComboBox_activated(int index) { quint16 hexValue = index + 1;// cmdDataArray.clear(); cmdDataArray.insert(0,0x04); cmdDataArray.insert(1,0xA2); cmdDataArray.insert(2,0x08); cmdDataArray.insert(3,0x01); QByteArray byteArray; byteArray.resize(2); qToBigEndian(hexValue, (uchar*)byteArray.data()); cmdDataArray.append(byteArray); cmdDataArray.insert(6,0xFF); emit on_sendCmdData_signal(cmdDataArray); }