diff --git a/src/TargetController/TargetControllerConsole.cpp b/src/TargetController/TargetControllerConsole.cpp index 7ff4693b..cf9acacf 100644 --- a/src/TargetController/TargetControllerConsole.cpp +++ b/src/TargetController/TargetControllerConsole.cpp @@ -8,6 +8,9 @@ using namespace Bloom::Targets; using namespace Bloom::Events; using namespace Bloom::Exceptions; +TargetControllerConsole::TargetControllerConsole(EventManager& eventManager, EventListener& eventListener) + :eventManager(eventManager), eventListener(eventListener) {} + TargetControllerState TargetControllerConsole::getTargetControllerState() { return this->triggerTargetControllerEventAndWaitForResponse( std::make_shared() @@ -128,3 +131,9 @@ void TargetControllerConsole::setPinState(TargetPinDescriptor pinDescriptor, Tar this->triggerTargetControllerEventAndWaitForResponse(updateEvent); } + +std::uint32_t TargetControllerConsole::getStackPointer() { + return this->triggerTargetControllerEventAndWaitForResponse( + std::make_shared() + )->stackPointer; +} diff --git a/src/TargetController/TargetControllerConsole.hpp b/src/TargetController/TargetControllerConsole.hpp index 6a6c6444..fb30c452 100644 --- a/src/TargetController/TargetControllerConsole.hpp +++ b/src/TargetController/TargetControllerConsole.hpp @@ -23,8 +23,7 @@ namespace Bloom class TargetControllerConsole { public: - TargetControllerConsole(EventManager& eventManager, EventListener& eventListener): - eventManager(eventManager), eventListener(eventListener) {}; + TargetControllerConsole(EventManager& eventManager, EventListener& eventListener); void setDefaultTimeout(std::chrono::milliseconds timeout) { this->defaultTimeout = timeout; @@ -155,6 +154,13 @@ namespace Bloom */ void setPinState(Targets::TargetPinDescriptor pinDescriptor, Targets::TargetPinState pinState); + /** + * Retrieves the current stack pointer value from the target. + * + * @return + */ + std::uint32_t getStackPointer(); + private: EventManager& eventManager; EventListener& eventListener;