mirror of
https://github.com/jankae/LibreVNA.git
synced 2026-01-10 02:30:23 +01:00
51 lines
1.6 KiB
C++
51 lines
1.6 KiB
C++
|
|
#include "rawregisterdialog.h"
|
||
|
|
#include "ui_rawregisterdialog.h"
|
||
|
|
|
||
|
|
#include "register.h"
|
||
|
|
#include "max2871.h"
|
||
|
|
|
||
|
|
#include <QDebug>
|
||
|
|
|
||
|
|
RawRegisterDialog::RawRegisterDialog(Device *dev, QWidget *parent) :
|
||
|
|
QDialog(parent),
|
||
|
|
ui(new Ui::RawRegisterDialog),
|
||
|
|
dev(dev)
|
||
|
|
{
|
||
|
|
ui->setupUi(this);
|
||
|
|
|
||
|
|
devices.resize(dev->Info().num_directRegisterDevices);
|
||
|
|
|
||
|
|
connect(dev, &Device::ReceivedDirectRegisterInfo, this, &RawRegisterDialog::receivedDirectRegisterInfo);
|
||
|
|
connect(dev, &Device::ReceivedDirectRegister, this, &RawRegisterDialog::receivedDirectRegister);
|
||
|
|
|
||
|
|
// trigger extraction of device information, this will trigger the receivedDirectRegisterInfo slot which will further populate the dialog
|
||
|
|
dev->SendCommandWithoutPayload(Protocol::PacketType::RequestDirectRegisterInfo);
|
||
|
|
}
|
||
|
|
|
||
|
|
RawRegisterDialog::~RawRegisterDialog()
|
||
|
|
{
|
||
|
|
delete ui;
|
||
|
|
}
|
||
|
|
|
||
|
|
void RawRegisterDialog::receivedDirectRegisterInfo(Protocol::DirectRegisterInfo info)
|
||
|
|
{
|
||
|
|
if(info.num >= devices.size()) {
|
||
|
|
qWarning() << "Received invalid register device:" << info.num;
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
auto regdev = RegisterDevice::create(dev, info.num, info.type);
|
||
|
|
if(!regdev) {
|
||
|
|
qWarning() << "Unable to create register device" << info.type <<", unknown type";
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
devices[info.num] = regdev;
|
||
|
|
ui->tabs->addTab(regdev->getWidget(), QString(info.type)+": "+QString(info.name));
|
||
|
|
}
|
||
|
|
|
||
|
|
void RawRegisterDialog::receivedDirectRegister(Protocol::DirectRegisterWrite reg)
|
||
|
|
{
|
||
|
|
if(reg.device < devices.size() && devices[reg.device]) {
|
||
|
|
devices[reg.device]->setRegister(reg.address, reg.data);
|
||
|
|
}
|
||
|
|
}
|