summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/system_fsm/CMakeLists.txt2
-rw-r--r--src/system_fsm/booting.cpp9
-rw-r--r--src/system_fsm/include/system_fsm.hpp4
3 files changed, 14 insertions, 1 deletions
diff --git a/src/system_fsm/CMakeLists.txt b/src/system_fsm/CMakeLists.txt
index 829ad320..bfd35842 100644
--- a/src/system_fsm/CMakeLists.txt
+++ b/src/system_fsm/CMakeLists.txt
@@ -1,5 +1,5 @@
idf_component_register(
SRCS "system_fsm.cpp" "running.cpp" "booting.cpp"
INCLUDE_DIRS "include"
- REQUIRES "tinyfsm" "drivers" "database" "ui" "result" "events" "audio")
+ REQUIRES "tinyfsm" "drivers" "database" "ui" "result" "events" "audio" "app_console")
target_compile_options(${COMPONENT_LIB} PRIVATE ${EXTRA_WARNINGS})
diff --git a/src/system_fsm/booting.cpp b/src/system_fsm/booting.cpp
index d9ee6e45..eda7fbd0 100644
--- a/src/system_fsm/booting.cpp
+++ b/src/system_fsm/booting.cpp
@@ -20,6 +20,8 @@ namespace states {
static const char kTag[] = "BOOT";
+console::AppConsole *Booting::sAppConsole;
+
auto Booting::entry() -> void {
ESP_LOGI(kTag, "beginning tangara boot");
ESP_LOGI(kTag, "installing bare minimum drivers");
@@ -73,8 +75,15 @@ auto Booting::entry() -> void {
BootComplete());
}
+auto Booting::exit() -> void {
+ // TODO(jacqueline): Gate this on something. Debug flag? Flashing mode?
+ sAppConsole = new console::AppConsole(sDatabase);
+ sAppConsole->Launch();
+}
+
auto Booting::react(const BootComplete& ev) -> void {
ESP_LOGI(kTag, "bootup completely successfully");
+
// It's possible that the SAMD is currently exposing the SD card as a USB
// device. Make sure we don't immediately try to claim it.
if (sSamd && sSamd->ReadUsbMscStatus() ==
diff --git a/src/system_fsm/include/system_fsm.hpp b/src/system_fsm/include/system_fsm.hpp
index 52c808ba..cc432ca7 100644
--- a/src/system_fsm/include/system_fsm.hpp
+++ b/src/system_fsm/include/system_fsm.hpp
@@ -2,6 +2,7 @@
#include <memory>
+#include "app_console.hpp"
#include "battery.hpp"
#include "dac.hpp"
#include "database.hpp"
@@ -58,8 +59,11 @@ namespace states {
* looks good.
*/
class Booting : public SystemState {
+ private:
+ static console::AppConsole *sAppConsole;
public:
void entry() override;
+ void exit() override;
void react(const BootComplete&) override;
using SystemState::react;