代码拉取完成,页面将自动刷新
同步操作将从 王澳刚/基于Qt上位机 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
port_init();
camera_init();
//这里应该是相对路径才好,懒得改了,用之前把maptest.html的路径更改一下
QUrl url("D:/Desktop/maptest.html");
ui->wgt_map->setUrl(url);
connect(ui->wgt_map, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool)));
}
MainWindow::~MainWindow()
{
delete ui;
}
/*---------------------------------------
* function
*--------------------------------------*/
void MainWindow::port_init()
{
//port init
global_port.setParity(QSerialPort::NoParity); //无校验位
global_port.setDataBits(QSerialPort::Data8); //数据位为8位
global_port.setStopBits(QSerialPort::OneStop); //一位停止位
//connect
//连接信号槽
QObject::connect(ui->btn_open,&QPushButton::clicked,this,&MainWindow::btn_open_port);
QObject::connect(ui->btn_close,&QPushButton::clicked,this,&MainWindow::btn_close_port);
QObject::connect(ui->btn_send,&QPushButton::clicked,this,&MainWindow::btn_send_data);
QObject::connect(&global_port,&QSerialPort::readyRead,this,&MainWindow::receive_data );
}
void MainWindow::camera_init()
{
QList<QCameraInfo> list;
list = QCameraInfo::availableCameras();
for (int i = 0; i < list.size(); i++){
qDebug() << list.at(i).deviceName(); //获取设备名称
qDebug() << list.at(i).description();
qDebug() << list.at(i).position();
}
//
camera = new QCamera("@device:pnp:\\\\?\\usb#vid_0408&pid_1040&mi_00#7&385b7d3c&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\\global",this);
viewfinder = new QCameraViewfinder(this);
imageCapture = new QCameraImageCapture(camera);
ui->hlt_view->addWidget(viewfinder);
camera->setViewfinder(viewfinder);
camera->start();
}
void MainWindow::btn_open_port(bool)
{
qDebug()<<ui->cmb_port_name->currentIndex();
//port name
switch (ui->cmb_port_name->currentIndex()) {
case 0:
global_port.setPortName("COM1");
break;
case 1:
global_port.setPortName("COM2");
break;
case 2:
global_port.setPortName("COM3");
break;
case 3:
global_port.setPortName("COM4");
break;
case 4:
global_port.setPortName("COM5");
break;
case 5:
global_port.setPortName("COM6");
break;
case 6:
global_port.setPortName("COM7");
break;
case 7:
global_port.setPortName("COM8");
break;
default:
break;
}
//baud rate
switch (ui->cmb_baud_rate->currentIndex()) {
case 0:
global_port.setBaudRate(QSerialPort::Baud115200);
break;
case 1:
global_port.setBaudRate(QSerialPort::Baud57600);
break;
case 2:
global_port.setBaudRate(QSerialPort::Baud38400);
break;
case 3:
global_port.setBaudRate(QSerialPort::Baud19200);
break;
case 4:
global_port.setBaudRate(QSerialPort::Baud9600);
break;
case 5:
global_port.setBaudRate(QSerialPort::Baud4800);
break;
case 6:
global_port.setBaudRate(QSerialPort::Baud2400);
break;
case 7:
global_port.setBaudRate(QSerialPort::Baud1200);
break;
default:
break;
}
//open
global_port.open(QIODevice::ReadWrite);//用ReadWrite 的模式尝试打开串口
ui->lab_status->setText("Connected");
}
void MainWindow::btn_close_port(bool)
{
global_port.close();
ui->lab_status->setText("Disconnected");
}
void MainWindow::btn_send_data(bool)
{
QString data = ui->lint_send_data->text();
QByteArray array = data.toLatin1();//QString-->QByteArray
global_port.write(array);
}
void MainWindow::receive_data()
{
QByteArray array = global_port.readAll();
qDebug()<<array;
ui->plainTextEdit->moveCursor(QTextCursor::End);//滚动条自动往下滚
if(ui->chb_hex->checkState() == Qt::Checked){
ui->plainTextEdit->insertPlainText(QString(array.toHex(' ')));
}else{
ui->plainTextEdit->insertPlainText(QString(array));
}
}
//ak=2MGelREmECQIlwa6YuZihdtlPDhIK05K
void MainWindow::loadFinished(bool a)
{
if (a == true)
{
double lon, lat;
lon = 121.50866;
lat = 31.28867;
QString command = QString("markpoint(%1,%2)").arg(lon).arg(lat);
ui->wgt_map->page()->runJavaScript(command);
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。