解决300设备固件升级报错IO错误的问题

This commit is contained in:
yangjiaxuan 2023-11-14 11:42:06 +08:00
parent 6f363096bb
commit c5b1afb88d
1 changed files with 21 additions and 6 deletions

View File

@ -1398,6 +1398,7 @@ int hg_scanner_300::set_firmware_upgrade(std::string str)
ret = io_->write_bulk(&pre, &len); //先告诉下面总字节数 ret = io_->write_bulk(&pre, &len); //先告诉下面总字节数
if (ret != SCANNER_ERR_OK) if (ret != SCANNER_ERR_OK)
{ {
VLOG_MINI_1(LOG_LEVEL_WARNING, "PRE_UPGRADE: %s\n", hg_scanner_err_name(ret));
return ret; return ret;
} }
USBCB update = { setting3288dsp::START_UPGRADE,0,total }; USBCB update = { setting3288dsp::START_UPGRADE,0,total };
@ -1422,6 +1423,7 @@ int hg_scanner_300::set_firmware_upgrade(std::string str)
ret = io_->read_bulk(&update, &len); ret = io_->read_bulk(&update, &len);
if (ret != SCANNER_ERR_OK) if (ret != SCANNER_ERR_OK)
{ {
VLOG_MINI_1(LOG_LEVEL_WARNING, "START_UPGRADE: %s\n", hg_scanner_err_name(ret));
return ret; return ret;
} }
total -= block; total -= block;
@ -1434,19 +1436,28 @@ int hg_scanner_300::set_firmware_upgrade(std::string str)
USBCB updatefinished = { setting3288dsp::UPDATE_FINISHED,0,0 }; USBCB updatefinished = { setting3288dsp::UPDATE_FINISHED,0,0 };
len = sizeof(updatefinished); len = sizeof(updatefinished);
ret = io_->write_bulk(&updatefinished, &len); ret = io_->write_bulk(&updatefinished, &len);
if (ret != SCANNER_ERR_OK)
{
VLOG_MINI_1(LOG_LEVEL_WARNING, "UPDATE_FINISHED: %s\n", hg_scanner_err_name(ret));
}
StopWatch sw; StopWatch sw;
USBCB result = { setting3288dsp::GET_UPDATE_RESULT,0,0 }; this_thread::sleep_for(std::chrono::milliseconds(2000));
len = sizeof(result);
while (sw.elapsed_s() < 60) while (sw.elapsed_s() < 60)
{ {
this_thread::sleep_for(std::chrono::milliseconds(1000)); this_thread::sleep_for(std::chrono::milliseconds(1000));
io_->set_timeout(3000); io_->set_timeout(3000);
ret = io_->write_bulk(&result, &len);
USBCB result = { setting3288dsp::GET_UPDATE_RESULT,0,0 };
len = sizeof(result);
ret = io_->write_bulk(&result, &len);
if (ret == SCANNER_ERR_OK)
ret = io_->read_bulk(&result, &len); ret = io_->read_bulk(&result, &len);
//this_thread::sleep_for(std::chrono::milliseconds(1000)); else
{
VLOG_MINI_1(LOG_LEVEL_WARNING, "Write GET_UPDATE_RESULT failed: %d\n", ret);
}
if (ret != SCANNER_ERR_OK) if (ret != SCANNER_ERR_OK)
{ {
@ -1458,6 +1469,10 @@ int hg_scanner_300::set_firmware_upgrade(std::string str)
VLOG_MINI_1(LOG_LEVEL_WARNING, "updata result:%d\n", result.u32_Data); VLOG_MINI_1(LOG_LEVEL_WARNING, "updata result:%d\n", result.u32_Data);
break; break;
} }
else
{
VLOG_MINI_1(LOG_LEVEL_WARNING, "GET_UPDATE_RESULT---u32_Data:%d\n", result.u32_Data);
}
} }
return ret; return ret;
} }