Replaced TargetIoPortsUpdated event with RegistersWrittenToTarget event

This commit is contained in:
Nav
2021-09-12 23:28:16 +01:00
parent dca5b362b3
commit 39c95857e5
14 changed files with 17 additions and 101 deletions

View File

@@ -23,13 +23,9 @@ TargetPackageWidget::TargetPackageWidget(
this->connect(
&(this->insightWorker),
&InsightWorker::targetIoPortsUpdated,
&InsightWorker::targetRegistersWritten,
this,
[this] {
if (this->targetState == TargetState::STOPPED) {
this->refreshPinStates();
}
}
&TargetPackageWidget::onRegistersWritten
);
this->setDisabled(true);
@@ -81,3 +77,17 @@ void TargetPackageWidget::onTargetStateChanged(TargetState newState) {
});
}
}
void TargetPackageWidget::onRegistersWritten(Targets::TargetRegisters targetRegisters) {
if (this->targetState != TargetState::STOPPED) {
return;
}
// If a PORT register was just updated, refresh pin states.
for (const auto& targetRegister : targetRegisters) {
if (targetRegister.descriptor.type == Targets::TargetRegisterType::PORT_REGISTER) {
this->refreshPinStates();
return;
}
}
}

View File

@@ -29,6 +29,7 @@ namespace Bloom::Widgets::InsightTargetWidgets
protected slots:
virtual void updatePinStates(const Targets::TargetPinStateMappingType& pinStatesByNumber);
void onTargetStateChanged(Targets::TargetState newState);
void onRegistersWritten(Targets::TargetRegisters targetRegisters);
public:
TargetPackageWidget(Targets::TargetVariant targetVariant, InsightWorker& insightWorker, QWidget* parent);