Handling programming mode enabled/disabled events in Insight

This commit is contained in:
Nav
2022-06-05 17:00:56 +01:00
parent f33d6062a4
commit ddf53ab0f8
8 changed files with 97 additions and 0 deletions

View File

@@ -45,6 +45,14 @@ namespace Bloom
std::bind(&InsightWorker::onTargetRegistersWrittenEvent, this, std::placeholders::_1) std::bind(&InsightWorker::onTargetRegistersWrittenEvent, this, std::placeholders::_1)
); );
this->eventListener->registerCallbackForEventType<Events::ProgrammingModeEnabled>(
std::bind(&InsightWorker::onProgrammingModeEnabledEvent, this, std::placeholders::_1)
);
this->eventListener->registerCallbackForEventType<Events::ProgrammingModeDisabled>(
std::bind(&InsightWorker::onProgrammingModeDisabledEvent, this, std::placeholders::_1)
);
this->eventDispatchTimer = new QTimer(this); this->eventDispatchTimer = new QTimer(this);
QObject::connect(this->eventDispatchTimer, &QTimer::timeout, this, &InsightWorker::dispatchEvents); QObject::connect(this->eventDispatchTimer, &QTimer::timeout, this, &InsightWorker::dispatchEvents);
this->eventDispatchTimer->start(5); this->eventDispatchTimer->start(5);
@@ -161,6 +169,14 @@ namespace Bloom
} }
} }
void InsightWorker::onProgrammingModeEnabledEvent(const Events::ProgrammingModeEnabled& event) {
emit this->programmingModeEnabled();
}
void InsightWorker::onProgrammingModeDisabledEvent(const Events::ProgrammingModeDisabled& event) {
emit this->programmingModeDisabled();
}
void InsightWorker::executeTasks() { void InsightWorker::executeTasks() {
auto task = std::optional<InsightWorkerTask*>(); auto task = std::optional<InsightWorkerTask*>();

View File

@@ -42,6 +42,8 @@ namespace Bloom
void targetControllerSuspended(); void targetControllerSuspended();
void targetControllerResumed(const Bloom::Targets::TargetDescriptor& targetDescriptor); void targetControllerResumed(const Bloom::Targets::TargetDescriptor& targetDescriptor);
void targetRegistersWritten(const Bloom::Targets::TargetRegisters& targetRegisters, const QDateTime& timestamp); void targetRegistersWritten(const Bloom::Targets::TargetRegisters& targetRegisters, const QDateTime& timestamp);
void programmingModeEnabled();
void programmingModeDisabled();
private: private:
EventListenerPointer eventListener = std::make_shared<EventListener>("InsightWorkerEventListener"); EventListenerPointer eventListener = std::make_shared<EventListener>("InsightWorkerEventListener");
@@ -65,6 +67,8 @@ namespace Bloom
void onTargetResetEvent(const Events::TargetReset& event); void onTargetResetEvent(const Events::TargetReset& event);
void onTargetRegistersWrittenEvent(const Events::RegistersWrittenToTarget& event); void onTargetRegistersWrittenEvent(const Events::RegistersWrittenToTarget& event);
void onTargetControllerStateChangedEvent(const Events::TargetControllerStateChanged& event); void onTargetControllerStateChangedEvent(const Events::TargetControllerStateChanged& event);
void onProgrammingModeEnabledEvent(const Events::ProgrammingModeEnabled& event);
void onProgrammingModeDisabledEvent(const Events::ProgrammingModeDisabled& event);
void executeTasks(); void executeTasks();
}; };

View File

@@ -213,6 +213,20 @@ namespace Bloom
this, this,
&InsightWindow::onTargetProgramCounterUpdate &InsightWindow::onTargetProgramCounterUpdate
); );
QObject::connect(
&(this->insightWorker),
&InsightWorker::programmingModeEnabled,
this,
&InsightWindow::onProgrammingModeEnabled
);
QObject::connect(
&(this->insightWorker),
&InsightWorker::programmingModeDisabled,
this,
&InsightWindow::onProgrammingModeDisabled
);
} }
void InsightWindow::init(TargetDescriptor targetDescriptor) { void InsightWindow::init(TargetDescriptor targetDescriptor) {
@@ -863,6 +877,15 @@ namespace Bloom
this->adjustMinimumSize(); this->adjustMinimumSize();
} }
void InsightWindow::onProgrammingModeEnabled() {
this->targetStatusLabel->setText("Programming Mode Enabled");
this->programCounterValueLabel->setText("-");
}
void InsightWindow::onProgrammingModeDisabled() {
this->onTargetStateUpdate(this->targetState);
}
void InsightWindow::recordInsightSettings() { void InsightWindow::recordInsightSettings() {
auto& projectSettings = this->insightProjectSettings; auto& projectSettings = this->insightProjectSettings;

View File

@@ -139,6 +139,8 @@ namespace Bloom
void toggleTargetRegistersPane(); void toggleTargetRegistersPane();
void toggleRamInspectionPane(); void toggleRamInspectionPane();
void toggleEepromInspectionPane(); void toggleEepromInspectionPane();
void onProgrammingModeEnabled();
void onProgrammingModeDisabled();
void recordInsightSettings(); void recordInsightSettings();
}; };

View File

@@ -85,6 +85,20 @@ namespace Bloom::Widgets
&TargetMemoryInspectionPane::onTargetStateChanged &TargetMemoryInspectionPane::onTargetStateChanged
); );
QObject::connect(
&insightWorker,
&InsightWorker::programmingModeEnabled,
this,
&TargetMemoryInspectionPane::onProgrammingModeEnabled
);
QObject::connect(
&insightWorker,
&InsightWorker::programmingModeDisabled,
this,
&TargetMemoryInspectionPane::onProgrammingModeDisabled
);
QObject::connect( QObject::connect(
this->hexViewerWidget->refreshButton, this->hexViewerWidget->refreshButton,
&QToolButton::clicked, &QToolButton::clicked,
@@ -295,4 +309,12 @@ namespace Bloom::Widgets
void TargetMemoryInspectionPane::onMemoryRegionsChange() { void TargetMemoryInspectionPane::onMemoryRegionsChange() {
this->hexViewerWidget->refreshRegions(); this->hexViewerWidget->refreshRegions();
} }
void TargetMemoryInspectionPane::onProgrammingModeEnabled() {
this->hexViewerWidget->setDisabled(true);
}
void TargetMemoryInspectionPane::onProgrammingModeDisabled() {
this->hexViewerWidget->setDisabled(this->targetState != Targets::TargetState::STOPPED);
}
} }

View File

@@ -63,5 +63,7 @@ namespace Bloom::Widgets
void onMemoryRead(const Targets::TargetMemoryBuffer& buffer); void onMemoryRead(const Targets::TargetMemoryBuffer& buffer);
void openMemoryRegionManagerWindow(); void openMemoryRegionManagerWindow();
void onMemoryRegionsChange(); void onMemoryRegionsChange();
void onProgrammingModeEnabled();
void onProgrammingModeDisabled();
}; };
} }

View File

@@ -31,6 +31,20 @@ namespace Bloom::Widgets::InsightTargetWidgets
&TargetPackageWidget::onRegistersWritten &TargetPackageWidget::onRegistersWritten
); );
QObject::connect(
&(this->insightWorker),
&InsightWorker::programmingModeEnabled,
this,
&TargetPackageWidget::onProgrammingModeEnabled
);
QObject::connect(
&(this->insightWorker),
&InsightWorker::programmingModeDisabled,
this,
&TargetPackageWidget::onProgrammingModeDisabled
);
this->setDisabled(true); this->setDisabled(true);
} }
@@ -85,6 +99,18 @@ namespace Bloom::Widgets::InsightTargetWidgets
} }
} }
void TargetPackageWidget::onProgrammingModeEnabled() {
if (this->targetState == TargetState::STOPPED) {
this->setDisabled(true);
}
}
void TargetPackageWidget::onProgrammingModeDisabled() {
if (this->targetState == TargetState::STOPPED) {
this->setDisabled(false);
}
}
void TargetPackageWidget::onRegistersWritten(Targets::TargetRegisters targetRegisters) { void TargetPackageWidget::onRegistersWritten(Targets::TargetRegisters targetRegisters) {
if (this->targetState != TargetState::STOPPED) { if (this->targetState != TargetState::STOPPED) {
return; return;

View File

@@ -46,6 +46,8 @@ namespace Bloom::Widgets::InsightTargetWidgets
protected slots: protected slots:
virtual void updatePinStates(const Targets::TargetPinStateMappingType& pinStatesByNumber); virtual void updatePinStates(const Targets::TargetPinStateMappingType& pinStatesByNumber);
void onTargetStateChanged(Targets::TargetState newState); void onTargetStateChanged(Targets::TargetState newState);
void onProgrammingModeEnabled();
void onProgrammingModeDisabled();
void onRegistersWritten(Targets::TargetRegisters targetRegisters); void onRegistersWritten(Targets::TargetRegisters targetRegisters);
}; };
} }