mirror of
https://github.com/jankae/LibreVNA.git
synced 2026-04-05 14:35:23 +00:00
Bugfixes and improvements for new hardware
This commit is contained in:
parent
7d9d5e27eb
commit
4cbd60e62d
33 changed files with 747 additions and 193 deletions
Binary file not shown.
|
|
@ -357,9 +357,11 @@ void Device::ReceivedData()
|
|||
break;
|
||||
case Protocol::PacketType::Ack:
|
||||
emit AckReceived();
|
||||
// transmissionFinished(TransmissionResult::Ack);
|
||||
break;
|
||||
case Protocol::PacketType::Nack:
|
||||
emit NackReceived();
|
||||
// transmissionFinished(TransmissionResult::Nack);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
@ -389,7 +391,7 @@ QString Device::serial() const
|
|||
|
||||
void Device::startNextTransmission()
|
||||
{
|
||||
if(transmissionQueue.empty() || !m_connected) {
|
||||
if(transmissionQueue.isEmpty() || !m_connected) {
|
||||
// nothing more to transmit
|
||||
transmissionActive = false;
|
||||
return;
|
||||
|
|
@ -416,9 +418,13 @@ void Device::transmissionFinished(TransmissionResult result)
|
|||
{
|
||||
transmissionTimer.stop();
|
||||
// remove transmitted packet
|
||||
auto t = transmissionQueue.dequeue();
|
||||
if(t.callback) {
|
||||
t.callback(result);
|
||||
if(!transmissionQueue.isEmpty()) {
|
||||
auto t = transmissionQueue.dequeue();
|
||||
if(t.callback) {
|
||||
t.callback(result);
|
||||
}
|
||||
startNextTransmission();
|
||||
} else {
|
||||
transmissionActive = false;
|
||||
}
|
||||
startNextTransmission();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ void FirmwareUpdateDialog::on_bStart_clicked()
|
|||
abortWithError("Invalid magic header constant");
|
||||
return;
|
||||
}
|
||||
file->seek(0);
|
||||
state = State::ErasingFLASH;
|
||||
connect(dev, &Device::AckReceived, this, &FirmwareUpdateDialog::receivedAck);
|
||||
connect(dev, &Device::NackReceived, this, &FirmwareUpdateDialog::receivedNack);
|
||||
|
|
@ -73,6 +74,7 @@ void FirmwareUpdateDialog::addStatus(QString line)
|
|||
|
||||
void FirmwareUpdateDialog::abortWithError(QString error)
|
||||
{
|
||||
timer.stop();
|
||||
disconnect(dev, &Device::AckReceived, this, &FirmwareUpdateDialog::receivedAck);
|
||||
disconnect(dev, &Device::NackReceived, this, &FirmwareUpdateDialog::receivedNack);
|
||||
|
||||
|
|
@ -129,9 +131,10 @@ void FirmwareUpdateDialog::receivedAck()
|
|||
state = State::TriggeringUpdate;
|
||||
dev->SendCommandWithoutPayload(Protocol::PacketType::PerformFirmwareUpdate);
|
||||
timer.start(5000);
|
||||
} else {
|
||||
sendNextFirmwareChunk();
|
||||
timer.start(1000);
|
||||
}
|
||||
sendNextFirmwareChunk();
|
||||
timer.start(1000);
|
||||
break;
|
||||
case State::TriggeringUpdate:
|
||||
addStatus("Rebooting device...");
|
||||
|
|
@ -149,7 +152,15 @@ void FirmwareUpdateDialog::receivedAck()
|
|||
|
||||
void FirmwareUpdateDialog::receivedNack()
|
||||
{
|
||||
abortWithError("Nack received, device does not support firmware update");
|
||||
switch(state) {
|
||||
case State::ErasingFLASH:
|
||||
abortWithError("Nack received, device does not support firmware update");
|
||||
break;
|
||||
default:
|
||||
abortWithError("Nack received, something went wrong");
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void FirmwareUpdateDialog::sendNextFirmwareChunk()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue