From 9527ccad30e4213307269de672af94adf4452988 Mon Sep 17 00:00:00 2001 From: Arnout Engelen Date: Sat, 17 Nov 2018 00:02:38 +0100 Subject: [PATCH] Remove C unix mock for Badge python module It is easier to implement this mock in python. Additionally, that opens up the possibility to keep the emulated code outside of the microptyhon repo, making the micropython repo more consistent with upstream again. --- esp32/modules/installer.py | 1 + esp32/modules/launcher.py | 1 + unix/Makefile | 2 +- unix/mock_badge.c | 4 + unix/modbadge.c | 239 ------------------------------------- unix/mpconfigport.h | 2 - 6 files changed, 7 insertions(+), 242 deletions(-) create mode 100644 unix/mock_badge.c delete mode 100644 unix/modbadge.c diff --git a/esp32/modules/installer.py b/esp32/modules/installer.py index d4fe12e53..63d444dd9 100644 --- a/esp32/modules/installer.py +++ b/esp32/modules/installer.py @@ -164,6 +164,7 @@ def list_categories(): try: categories except: + ugfx.init() ugfx.input_init() draw_msg('Getting categories') try: diff --git a/esp32/modules/launcher.py b/esp32/modules/launcher.py index 2c03692fa..ea9b40cec 100644 --- a/esp32/modules/launcher.py +++ b/esp32/modules/launcher.py @@ -159,6 +159,7 @@ def init_power_management(): # Main application def start(): + ugfx.init() ugfx.input_init() ugfx.set_lut(ugfx.LUT_FASTER) ugfx.clear(ugfx.WHITE) diff --git a/unix/Makefile b/unix/Makefile index aecd1f7d8..ec973d3a5 100644 --- a/unix/Makefile +++ b/unix/Makefile @@ -165,7 +165,7 @@ SRC_C = \ modfreedomgfx.c \ modfreedomgfx_sdl.c \ modnetwork.c \ - modbadge.c \ + mock_badge.c \ ../../ugfx/drivers/multiple/SDL/gdisp_lld_SDL.c \ ginput_lld_toggle.c \ ../../components/sha2017/wildcard_sha2017_org.c \ diff --git a/unix/mock_badge.c b/unix/mock_badge.c new file mode 100644 index 000000000..bbe6505a8 --- /dev/null +++ b/unix/mock_badge.c @@ -0,0 +1,4 @@ +// Needed to simulate the glue between the badge and uGFX: +#include + +bool ugfx_screen_flipped = false; diff --git a/unix/modbadge.c b/unix/modbadge.c deleted file mode 100644 index 6d7d344bd..000000000 --- a/unix/modbadge.c +++ /dev/null @@ -1,239 +0,0 @@ -/* - * This file is part of the MicroPython project, http://micropython.org/ - * - * SHA2017 Badge Firmware https://wiki.sha2017.org/w/Projects:Badge/MicroPython - * - * The MIT License (MIT) - * - * Copyright (c) 2015 Paul Sokolovsky - * Copyright (c) 2016 Damien P. George - * Copyright (c) 2017 Anne Jan Brouwer - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#include -#include - -#include "py/mperrno.h" -#include "py/mphal.h" -#include "py/runtime.h" - -// INIT - -STATIC mp_obj_t badge_init_() { - //badge_init(); - return mp_const_none; -} -STATIC MP_DEFINE_CONST_FUN_OBJ_0(badge_init_obj, badge_init_); - -// EINK - -STATIC mp_obj_t badge_eink_init_() { - //badge_eink_init(); - return mp_const_none; -} -STATIC MP_DEFINE_CONST_FUN_OBJ_0(badge_eink_init_obj, badge_eink_init_); - -/* -#define NUM_PICTURES 5 -const uint8_t *pictures[NUM_PICTURES] = { - imgv2_sha, imgv2_menu, imgv2_nick, imgv2_weather, imgv2_test, -}; - -STATIC mp_obj_t badge_display_picture_(mp_obj_t picture_id, - mp_obj_t selected_lut) { - // TODO check for ranges - badge_eink_display(pictures[mp_obj_get_int(picture_id)], - (mp_obj_get_int(selected_lut) + 1) - << DISPLAY_FLAG_LUT_BIT); - return mp_const_none; -} -STATIC MP_DEFINE_CONST_FUN_OBJ_2(badge_display_picture_obj, - badge_display_picture_); -*/ - -STATIC mp_obj_t badge_eink_busy_() { - return mp_obj_new_bool(false); -} -STATIC MP_DEFINE_CONST_FUN_OBJ_0(badge_eink_busy_obj, badge_eink_busy_); - -STATIC mp_obj_t badge_eink_busy_wait_() { - // badge_eink_dev_busy_wait(); - return mp_const_none; -} -STATIC MP_DEFINE_CONST_FUN_OBJ_0(badge_eink_busy_wait_obj, badge_eink_busy_wait_); - -// Power - -STATIC mp_obj_t badge_power_init_() { - //badge_power_init(); - return mp_const_none; -} -STATIC MP_DEFINE_CONST_FUN_OBJ_0(badge_power_init_obj, badge_power_init_); - - -STATIC mp_obj_t battery_charge_status_() { - return mp_obj_new_bool(true); -} -STATIC MP_DEFINE_CONST_FUN_OBJ_0(battery_charge_status_obj, - battery_charge_status_); -STATIC mp_obj_t battery_volt_sense_() { - return mp_obj_new_int(((float)rand())/RAND_MAX*1000+3500); -} -STATIC MP_DEFINE_CONST_FUN_OBJ_0(battery_volt_sense_obj, battery_volt_sense_); - -STATIC mp_obj_t usb_volt_sense_() { - return mp_obj_new_int(((float)rand())/RAND_MAX*1000+4100); -} -STATIC MP_DEFINE_CONST_FUN_OBJ_0(usb_volt_sense_obj, usb_volt_sense_); - -// LEDs - -STATIC mp_obj_t badge_leds_init_() { - //badge_leds_init(); - return mp_const_none; -} -STATIC MP_DEFINE_CONST_FUN_OBJ_0(badge_leds_init_obj, badge_leds_init_); - - -STATIC mp_obj_t badge_leds_enable_() { - //badge_leds_enable(); - return mp_const_none; -} -STATIC MP_DEFINE_CONST_FUN_OBJ_0(badge_leds_enable_obj, badge_leds_enable_); - - -STATIC mp_obj_t badge_leds_disable_() { - //badge_leds_disable(); - return mp_const_none; -} -STATIC MP_DEFINE_CONST_FUN_OBJ_0(badge_leds_disable_obj, badge_leds_disable_); - - -STATIC mp_obj_t badge_leds_set_state_(mp_uint_t n_args, const mp_obj_t *args) { - /* - mp_uint_t len; - uint8_t *leds = (uint8_t *)mp_obj_str_get_data(args[0], &len); - return mp_obj_new_int(badge_leds_set_state(leds)); - */ - mp_uint_t len; - uint8_t *rgbw = (uint8_t *)mp_obj_str_get_data(args[0], &len); - printf("LEDs: "); - for (int i=5; i>=0; i--) { - uint8_t r = rgbw[i*4+0]; - uint8_t g = rgbw[i*4+1]; - uint8_t b = rgbw[i*4+2]; - printf("\x1b[48;2;%u;%u;%um", r, g, b); - printf("\x1b[38;2;%u;%u;%um", r, g, b); - printf(" \x1b[0m "); - } - printf("\n"); - return mp_obj_new_int(0); -} -STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(badge_leds_set_state_obj, 1,1 ,badge_leds_set_state_); - -STATIC mp_obj_t badge_leds_send_data_(mp_uint_t n_args, const mp_obj_t *args) { - // mp_uint_t len = mp_obj_get_int(args[1]); - // uint8_t *leds = (uint8_t *)mp_obj_str_get_data(args[0], &len); - // return mp_obj_new_int(badge_leds_send_data(leds, len)); - mp_uint_t len = mp_obj_get_int(args[1]); - uint8_t *rgbw = (uint8_t *)mp_obj_str_get_data(args[0], &len); - printf("LEDs: "); - for (int i=5; i>=0; i--) { - uint8_t r = rgbw[i*4+0]; - uint8_t g = rgbw[i*4+1]; - uint8_t b = rgbw[i*4+2]; - printf("\x1b[48;2;%u;%u;%um", r, g, b); - printf("\x1b[38;2;%u;%u;%um", r, g, b); - printf(" \x1b[0m "); - } - printf("\n"); - return mp_obj_new_int(0); -} -STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(badge_leds_send_data_obj, 2,2 ,badge_leds_send_data_); - - -STATIC mp_obj_t badge_vibrator_init_() { - // badge_vibrator_init(); - return mp_const_none; -} -STATIC MP_DEFINE_CONST_FUN_OBJ_0(badge_vibrator_init_obj, badge_vibrator_init_); - -STATIC mp_obj_t badge_vibrator_activate_(mp_uint_t n_args, const mp_obj_t *args) { - int pattern = mp_obj_get_int(args[0]); - while (pattern != 0) - { - if ((pattern & 1) != 0) - printf("\a"); - pattern >>= 1; - mp_hal_delay_ms(200); - } - // badge_vibrator_off(); - return mp_const_none; -} -STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(badge_vibrator_activate_obj, 1,1 ,badge_vibrator_activate_); - -STATIC mp_obj_t badge_wifi_init_() { - // we just assume internets - return mp_const_none; -} -STATIC MP_DEFINE_CONST_FUN_OBJ_0(badge_wifi_init_obj, badge_wifi_init_); - -// Module globals - -STATIC const mp_rom_map_elem_t mock_badge_module_globals_table[] = { - {MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_badge)}, - - {MP_ROM_QSTR(MP_QSTR_init), MP_ROM_PTR(&badge_init_obj)}, - {MP_ROM_QSTR(MP_QSTR_eink_init), MP_ROM_PTR(&badge_eink_init_obj)}, - {MP_OBJ_NEW_QSTR(MP_QSTR_power_init), (mp_obj_t)&badge_power_init_obj}, - - {MP_OBJ_NEW_QSTR(MP_QSTR_leds_init), (mp_obj_t)&badge_leds_init_obj}, - {MP_OBJ_NEW_QSTR(MP_QSTR_leds_enable), (mp_obj_t)&badge_leds_enable_obj}, - {MP_OBJ_NEW_QSTR(MP_QSTR_leds_disable), (mp_obj_t)&badge_leds_disable_obj}, - {MP_OBJ_NEW_QSTR(MP_QSTR_leds_send_data), (mp_obj_t)&badge_leds_send_data_obj}, - {MP_OBJ_NEW_QSTR(MP_QSTR_leds_set_state), (mp_obj_t)&badge_leds_set_state_obj}, - - {MP_OBJ_NEW_QSTR(MP_QSTR_vibrator_init), (mp_obj_t)&badge_vibrator_init_obj}, - {MP_OBJ_NEW_QSTR(MP_QSTR_vibrator_activate), (mp_obj_t)&badge_vibrator_activate_obj}, - - {MP_ROM_QSTR(MP_QSTR_eink_busy), MP_ROM_PTR(&badge_eink_busy_obj)}, - {MP_ROM_QSTR(MP_QSTR_eink_busy_wait), MP_ROM_PTR(&badge_eink_busy_wait_obj)}, - - // {MP_ROM_QSTR(MP_QSTR_display_picture), - // MP_ROM_PTR(&badge_display_picture_obj)}, - - {MP_OBJ_NEW_QSTR(MP_QSTR_battery_charge_status), - (mp_obj_t)&battery_charge_status_obj}, - {MP_OBJ_NEW_QSTR(MP_QSTR_battery_volt_sense), - (mp_obj_t)&battery_volt_sense_obj}, - {MP_OBJ_NEW_QSTR(MP_QSTR_usb_volt_sense), (mp_obj_t)&usb_volt_sense_obj}, - - {MP_OBJ_NEW_QSTR(MP_QSTR_wifi_init), (mp_obj_t)&badge_wifi_init_obj}, -}; - -STATIC MP_DEFINE_CONST_DICT(mock_badge_module_globals, mock_badge_module_globals_table); - -const mp_obj_module_t mock_badge_module = { - .base = {&mp_type_module}, - .globals = (mp_obj_dict_t *)&mock_badge_module_globals, -}; - -bool ugfx_screen_flipped = false; diff --git a/unix/mpconfigport.h b/unix/mpconfigport.h index 0d99bd5cd..d06fc71b8 100644 --- a/unix/mpconfigport.h +++ b/unix/mpconfigport.h @@ -177,7 +177,6 @@ extern const struct _mp_obj_module_t mp_module_socket; extern const struct _mp_obj_module_t mp_module_ffi; extern const struct _mp_obj_module_t mp_module_jni; extern const struct _mp_obj_module_t mock_esp_network_module; -extern const struct _mp_obj_module_t mock_badge_module; extern const struct _mp_obj_module_t ugfx_module; extern const struct _mp_obj_module_t freedomgfx_module; @@ -230,7 +229,6 @@ extern const struct _mp_obj_module_t freedomgfx_module; { MP_OBJ_NEW_QSTR(MP_QSTR_ugfx), (mp_obj_t)&ugfx_module }, \ { MP_OBJ_NEW_QSTR(MP_QSTR_freedomgfx), (mp_obj_t)&freedomgfx_module }, \ { MP_OBJ_NEW_QSTR(MP_QSTR_network), (mp_obj_t)&mock_esp_network_module }, \ - { MP_OBJ_NEW_QSTR(MP_QSTR_badge), (mp_obj_t)&mock_badge_module }, \ #define MICROPY_MODULE_WEAK_LINKS (1) #define MICROPY_PORT_BUILTIN_MODULE_WEAK_LINKS \