完善升级功能。

This commit is contained in:
luocai
2024-08-08 17:05:32 +08:00
parent 2610c40189
commit 9d495d487d
7 changed files with 251 additions and 198 deletions

View File

@ -62,23 +62,28 @@ void Widget::start() {
QMessageBox::warning(this, "升级", "升级文件不存在!");
return;
}
auto discovery = std::make_shared<DeviceDiscovery>();
auto device = CdcUpdater::searchDevice();
if (device) {
LOG(info) << "device already in ota mode.";
} else {
auto discovery = std::make_shared<DeviceDiscovery>();
std::error_code error;
setMessage("尝试发现设备......");
auto device = discovery->find("UVC Camera", error);
if (!device) {
QMessageBox::warning(this, "升级", "未检测到模组,请尝试重新插入模组!");
return;
std::error_code error;
setMessage("尝试发现设备......");
auto device = discovery->find("UVC Camera", error);
if (!device) {
QMessageBox::warning(this, "升级", "未检测到模组,请尝试重新插入模组!");
return;
}
setMessage("发现设备成功,进入BOOT模式......");
discovery->enterOtaMode(device, error);
}
setMessage("发现设备成功,进入BOOT模式......");
discovery->enterOtaMode(device, error);
m_updater = std::make_shared<CdcUpdater>();
connect(m_updater.get(), &CdcUpdater::deviceDiscovered, this, &Widget::onCdcDeviceDiscovered);
connect(m_updater.get(), &CdcUpdater::updateFinished, this, &Widget::onUpdateFinished);
connect(m_updater.get(), &CdcUpdater::progressChanged, this, &Widget::setProgress);
connect(m_updater.get(), &CdcUpdater::message, this, &Widget::setMessage);
m_updater->start(filePath);
m_updater->start(filePath, device ? *device : QSerialPortInfo());
setControlsEnabled(false);
}