You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PayloadAPP/Src/ModelCamera/modelcameradlg.cpp

251 lines
6.6 KiB
C++

#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);
}