/* SPDX-License-Identifier: MIT Copyright (c) 2023 Casey Reeves and the LuminaSensum contributors Copyright (c) 2023 John Watts and the LuminaSensum contributors */ #include "ButtonThread.h" #include "Filesystem.h" #include "FlashErase.h" #include "MainBD.h" #include "MainFilesystem.h" #include "MyUSBMSD.h" #include "NetworkHandler.h" #include "mbed-trace/mbed_trace.h" #include "mbed.h" #define TRACE_GROUP "APP" #if MBED_CONF_MBED_TRACE_ENABLE // mutex setup for tracing in thread safe mode static Mutex traceMutex; static void trace_mutex_wait() { traceMutex.lock(); } static void trace_mutex_release() { traceMutex.unlock(); } void setup_tracing(void) { char trace_filters[] = "APP,FS,FLER,NET,SNTP,USBM"; mbed_trace_mutex_wait_function_set(trace_mutex_wait); mbed_trace_mutex_release_function_set(trace_mutex_release); mbed_trace_init(); mbed_trace_include_filters_set(trace_filters); tr_debug("Debug tracing enabled"); tr_info("Info tracing enabled"); tr_warn("Warning tracing enabled"); tr_err("Error tracing enabled"); } #else void setup_tracing(void) { // do nothing } #endif int main() { setup_tracing(); tr_info("Project Tardis"); mountFilesystem(mainBD, mainFS); Thread buttonThread; buttonThread.start(buttonTask); network_init(); while (true) { int presses = waitForPresses(600s); if (presses == 1) { unmountFilesystem(mainBD, mainFS); doUSBMSD(mainBD); mountFilesystem(mainBD, mainFS); } if (presses == 2) { unmountFilesystem(mainBD, mainFS); doErase(mainBD); } } unmountFilesystem(mainBD, mainFS); buttonThread.terminate(); return 0; }