Mode switch to signal generator (GUI stubs only)

This commit is contained in:
Jan Käberich 2020-09-11 23:07:15 +02:00
parent 6e82bc42f5
commit f4a6b24a8e
19 changed files with 1132 additions and 311 deletions

View file

@ -305,17 +305,26 @@ void Device::ReceivedData()
do {
handled_len = Protocol::DecodeBuffer(dataBuffer->getBuffer(), dataBuffer->getReceived(), &packet);
dataBuffer->removeBytes(handled_len);
if(packet.type == Protocol::PacketType::Datapoint) {
switch(packet.type) {
case Protocol::PacketType::Datapoint:
emit DatapointReceived(packet.datapoint);
} else if(packet.type == Protocol::PacketType::Status) {
qDebug() << "Got status";
break;
case Protocol::PacketType::Status:
emit ManualStatusReceived(packet.status);
} else if(packet.type == Protocol::PacketType::DeviceInfo) {
break;
case Protocol::PacketType::DeviceInfo:
lastInfo = packet.info;
lastInfoValid = true;
emit DeviceInfoUpdated();
} else if(packet.type == Protocol::PacketType::Ack) {
break;
case Protocol::PacketType::Ack:
emit AckReceived();
break;
case Protocol::PacketType::Nack:
emit NackReceived();
break;
default:
break;
}
} while (handled_len > 0);
}

View file

@ -62,6 +62,7 @@ signals:
void DeviceInfoUpdated();
void ConnectionLost();
void AckReceived();
void NackReceived();
void LogLineReceived(QString line);
private slots:
void ReceivedData();

View file

@ -58,6 +58,8 @@ void FirmwareUpdateDialog::on_bStart_clicked()
return;
}
state = State::ErasingFLASH;
connect(dev, &Device::AckReceived, this, &FirmwareUpdateDialog::receivedAck);
connect(dev, &Device::NackReceived, this, &FirmwareUpdateDialog::receivedNack);
addStatus("Erasing device memory...");
dev->SendCommandWithoutPayload(Protocol::PacketType::ClearFlash);
timer.setSingleShot(true);
@ -71,6 +73,9 @@ void FirmwareUpdateDialog::addStatus(QString line)
void FirmwareUpdateDialog::abortWithError(QString error)
{
disconnect(dev, &Device::AckReceived, this, &FirmwareUpdateDialog::receivedAck);
disconnect(dev, &Device::NackReceived, this, &FirmwareUpdateDialog::receivedNack);
QTextCharFormat tf;
tf = ui->status->currentCharFormat();
tf.setForeground(QBrush(Qt::red));
@ -94,6 +99,9 @@ void FirmwareUpdateDialog::timerCallback()
dev = new Device(serialnumber);
addStatus("...device reattached, update complete");
timer.stop();
ui->bStart->setEnabled(true);
disconnect(dev, &Device::AckReceived, this, &FirmwareUpdateDialog::receivedAck);
disconnect(dev, &Device::NackReceived, this, &FirmwareUpdateDialog::receivedNack);
}
}
}
@ -139,6 +147,11 @@ void FirmwareUpdateDialog::receivedAck()
}
}
void FirmwareUpdateDialog::receivedNack()
{
abortWithError("Nack received, device does not support firmware update");
}
void FirmwareUpdateDialog::sendNextFirmwareChunk()
{
Protocol::FirmwarePacket fw;

View file

@ -29,11 +29,12 @@ private slots:
void on_bFile_clicked();
void on_bStart_clicked();
void timerCallback();
void receivedAck();
void receivedNack();
private:
void addStatus(QString line);
void abortWithError(QString error);
void receivedAck();
void sendNextFirmwareChunk();
Ui::FirmwareUpdateDialog *ui;
Device *&dev;