From 890a94222169eb2ff1a9b44a8cffba68bdd3c10f Mon Sep 17 00:00:00 2001
From: swym <0xfd000000@gmail.com>
Date: Thu, 22 Aug 2019 16:59:06 +0200
Subject: [PATCH] feat(pycardium): add debug module

---
 pycardium/meson.build        |  3 ++-
 pycardium/modules/debug.c    | 31 +++++++++++++++++++++++++++++++
 pycardium/modules/qstrdefs.h |  3 +++
 pycardium/mpconfigport.h     |  1 +
 4 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 pycardium/modules/debug.c

diff --git a/pycardium/meson.build b/pycardium/meson.build
index f0a3798a..51d14fcc 100644
--- a/pycardium/meson.build
+++ b/pycardium/meson.build
@@ -13,7 +13,8 @@ modsrc = files(
   'modules/sys_display.c',
   'modules/utime.c',
   'modules/vibra.c',
-  'modules/bme680.c'
+  'modules/bme680.c',
+  'modules/debug.c',
 )
 
 #################################
diff --git a/pycardium/modules/debug.c b/pycardium/modules/debug.c
new file mode 100644
index 00000000..47dbb36d
--- /dev/null
+++ b/pycardium/modules/debug.c
@@ -0,0 +1,31 @@
+#include "epicardium.h"
+
+#include "py/obj.h"
+#include "py/runtime.h"
+
+static mp_obj_t mp_debug_fs_status()
+{
+	int rc = epic_file_fs_status();
+	if (rc < 0) {
+		mp_raise_OSError(-rc);
+	}
+	return mp_const_none;
+}
+static MP_DEFINE_CONST_FUN_OBJ_0(fs_status_obj, mp_debug_fs_status);
+
+static const mp_rom_map_elem_t debug_module_globals_table[] = {
+	{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_debug) },
+	{ MP_ROM_QSTR(MP_QSTR_fs_status), MP_ROM_PTR(&fs_status_obj) },
+};
+
+static MP_DEFINE_CONST_DICT(debug_module_globals, debug_module_globals_table);
+
+// Define module object.
+const mp_obj_module_t debug_module = {
+	.base    = { &mp_type_module },
+	.globals = (mp_obj_dict_t *)&debug_module_globals,
+};
+
+/* This is a special macro that will make MicroPython aware of this module */
+/* clang-format off */
+MP_REGISTER_MODULE(MP_QSTR_debug, debug_module, MODULE_DEBUG_ENABLED);
diff --git a/pycardium/modules/qstrdefs.h b/pycardium/modules/qstrdefs.h
index a3871d92..9a9a4fb7 100644
--- a/pycardium/modules/qstrdefs.h
+++ b/pycardium/modules/qstrdefs.h
@@ -142,3 +142,6 @@ Q(NO_CONTACT)
 Q(CHAOS)
 Q(COMMUNICATION)
 Q(CAMP)
+
+/* debug */
+Q(debug)
diff --git a/pycardium/mpconfigport.h b/pycardium/mpconfigport.h
index af27e146..97921262 100644
--- a/pycardium/mpconfigport.h
+++ b/pycardium/mpconfigport.h
@@ -56,6 +56,7 @@ int mp_hal_trng_read_int(void);
 #define MODULE_PERSONAL_STATE_ENABLED       (1)
 #define MODULE_UTIME_ENABLED                (1)
 #define MODULE_VIBRA_ENABLED                (1)
+#define MODULE_DEBUG_ENABLED                (1)
 
 /*
  * This port is intended to be 32-bit, but unfortunately, int32_t for
-- 
GitLab