Oliver Fabel 1 год назад
Родитель
Сommit
2b3a6520b2
5 измененных файлов с 80 добавлено и 1 удалено
  1. 5 0
      genhdr/moduledefs.h
  2. 1 1
      genhdr/mpversion.h
  3. 4 0
      genhdr/qstrdefs.generated.h
  4. 65 0
      mp_flipper_logging.c
  5. 5 0
      mp_flipper_logging.h

+ 5 - 0
genhdr/moduledefs.h

@@ -4,6 +4,10 @@ extern const struct _mp_obj_module_t mp_module_io;
 #undef MODULE_DEF_IO
 #define MODULE_DEF_IO { MP_ROM_QSTR(MP_QSTR_io), MP_ROM_PTR(&mp_module_io) },
 
+extern const struct _mp_obj_module_t mp_module_logging;
+#undef MODULE_DEF_LOGGING
+#define MODULE_DEF_LOGGING { MP_ROM_QSTR(MP_QSTR_logging), MP_ROM_PTR(&mp_module_logging) },
+
 extern const struct _mp_obj_module_t mp_module_random;
 #undef MODULE_DEF_RANDOM
 #define MODULE_DEF_RANDOM { MP_ROM_QSTR(MP_QSTR_random), MP_ROM_PTR(&mp_module_random) },
@@ -33,6 +37,7 @@ extern const struct _mp_obj_module_t flipperzero_module;
 
 #define MICROPY_REGISTERED_EXTENSIBLE_MODULES \
     MODULE_DEF_IO \
+    MODULE_DEF_LOGGING \
     MODULE_DEF_RANDOM \
     MODULE_DEF_TIME \
 // MICROPY_REGISTERED_EXTENSIBLE_MODULES

+ 1 - 1
genhdr/mpversion.h

@@ -1,4 +1,4 @@
 // This file was generated by py/makeversionhdr.py
 #define MICROPY_GIT_TAG "v1.23.0"
 #define MICROPY_GIT_HASH "a61c446c0"
-#define MICROPY_BUILD_DATE "2024-10-02"
+#define MICROPY_BUILD_DATE "2024-10-04"

+ 4 - 0
genhdr/qstrdefs.generated.h

@@ -217,6 +217,7 @@ QDEF1(MP_QSTR_LIGHT_BACKLIGHT, 17, 15, "LIGHT_BACKLIGHT")
 QDEF1(MP_QSTR_LIGHT_BLUE, 90, 10, "LIGHT_BLUE")
 QDEF1(MP_QSTR_LIGHT_GREEN, 95, 11, "LIGHT_GREEN")
 QDEF1(MP_QSTR_LIGHT_RED, 215, 9, "LIGHT_RED")
+QDEF1(MP_QSTR_Logger, 113, 6, "Logger")
 QDEF1(MP_QSTR_SPEAKER_NOTE_A0, 95, 15, "SPEAKER_NOTE_A0")
 QDEF1(MP_QSTR_SPEAKER_NOTE_A1, 94, 15, "SPEAKER_NOTE_A1")
 QDEF1(MP_QSTR_SPEAKER_NOTE_A2, 93, 15, "SPEAKER_NOTE_A2")
@@ -376,6 +377,7 @@ QDEF1(MP_QSTR_canvas_text_width, 86, 17, "canvas_text_width")
 QDEF1(MP_QSTR_canvas_update, 131, 13, "canvas_update")
 QDEF1(MP_QSTR_canvas_width, 180, 12, "canvas_width")
 QDEF1(MP_QSTR_closure, 116, 7, "closure")
+QDEF1(MP_QSTR_debug, 212, 5, "debug")
 QDEF1(MP_QSTR_decode, 169, 6, "decode")
 QDEF1(MP_QSTR_default, 206, 7, "default")
 QDEF1(MP_QSTR_delattr, 219, 7, "delattr")
@@ -396,6 +398,7 @@ QDEF1(MP_QSTR_float, 53, 5, "float")
 QDEF1(MP_QSTR_flush, 97, 5, "flush")
 QDEF1(MP_QSTR_function, 39, 8, "function")
 QDEF1(MP_QSTR_generator, 150, 9, "generator")
+QDEF1(MP_QSTR_getLogger, 71, 9, "getLogger")
 QDEF1(MP_QSTR_getrandbits, 102, 11, "getrandbits")
 QDEF1(MP_QSTR_gpio_deinit_pin, 120, 15, "gpio_deinit_pin")
 QDEF1(MP_QSTR_gpio_get_pin, 85, 12, "gpio_get_pin")
@@ -416,6 +419,7 @@ QDEF1(MP_QSTR_light_blink_set_color, 217, 21, "light_blink_set_color")
 QDEF1(MP_QSTR_light_blink_start, 121, 17, "light_blink_start")
 QDEF1(MP_QSTR_light_blink_stop, 33, 16, "light_blink_stop")
 QDEF1(MP_QSTR_light_set, 134, 9, "light_set")
+QDEF1(MP_QSTR_logging, 70, 7, "logging")
 QDEF1(MP_QSTR_max, 177, 3, "max")
 QDEF1(MP_QSTR_maximum_space_recursion_space_depth_space_exceeded, 115, 32, "maximum recursion depth exceeded")
 QDEF1(MP_QSTR_min, 175, 3, "min")

+ 65 - 0
mp_flipper_logging.c

@@ -0,0 +1,65 @@
+#include <stdio.h>
+#include <stdbool.h>
+#include <stdint.h>
+
+#include "py/obj.h"
+
+extern const mp_obj_type_t mp_flipper_logger_type;
+
+typedef struct _mp_flipper_logger_t {
+    mp_obj_base_t base;
+    mp_obj_t name;
+} mp_flipper_logger_t;
+
+static mp_obj_t mp_flipper_logger_debug(size_t n_args, const mp_obj_t* args) {
+    if(n_args < 2) {
+        return mp_const_none;
+    }
+
+    mp_flipper_logger_t* logger = MP_OBJ_TO_PTR(args[0]);
+
+    const char* message = mp_obj_str_get_str(args[1]);
+
+    mp_flipper_log_debug(logger->name, message, &args[2], n_args - 2);
+
+    return mp_const_none;
+}
+static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_flipper_logger_debug_obj, 2, 4, mp_flipper_logger_debug);
+
+static mp_obj_t mp_flipper_logger_name(mp_obj_t self) {
+    mp_flipper_logger_t* logger = MP_OBJ_TO_PTR(self);
+
+    return logger->name;
+}
+static MP_DEFINE_CONST_FUN_OBJ_1(mp_flipper_logger_name_obj, mp_flipper_logger_name);
+
+static const mp_map_elem_t mp_flipper_logger_locals_dict_table[] = {
+    {MP_OBJ_NEW_QSTR(MP_QSTR_name), MP_ROM_PTR(&mp_flipper_logger_name_obj)},
+    {MP_ROM_QSTR(MP_QSTR_debug), MP_ROM_PTR(&mp_flipper_logger_debug_obj)},
+};
+static MP_DEFINE_CONST_DICT(mp_flipper_logger_locals_dict, mp_flipper_logger_locals_dict_table);
+
+MP_DEFINE_CONST_OBJ_TYPE(mp_flipper_logger_type, MP_QSTR_Logger, MP_TYPE_FLAG_NONE, locals_dict, &mp_flipper_logger_locals_dict);
+
+static mp_obj_t mp_flipper_logging_get_logger(mp_obj_t name) {
+    mp_flipper_logger_t* logger = mp_obj_malloc(mp_flipper_logger_t, &mp_flipper_logger_type);
+
+    logger->name = name;
+
+    return MP_OBJ_FROM_PTR(logger);
+}
+static MP_DEFINE_CONST_FUN_OBJ_1(mp_flipper_logging_get_logger_obj, mp_flipper_logging_get_logger);
+
+static const mp_rom_map_elem_t mp_module_logging_globals_table[] = {
+    {MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_logging)},
+    {MP_ROM_QSTR(MP_QSTR_getLogger), MP_ROM_PTR(&mp_flipper_logging_get_logger_obj)},
+};
+
+static MP_DEFINE_CONST_DICT(mp_module_logging_globals, mp_module_logging_globals_table);
+
+const mp_obj_module_t mp_module_logging = {
+    .base = {&mp_type_module},
+    .globals = (mp_obj_dict_t*)&mp_module_logging_globals,
+};
+
+MP_REGISTER_EXTENSIBLE_MODULE(MP_QSTR_logging, mp_module_logging);

+ 5 - 0
mp_flipper_logging.h

@@ -0,0 +1,5 @@
+#pragma once
+
+#include <stdio.h>
+
+void mp_flipper_log_debug(const char* name, const char* message, void* args, size_t len);