diff --git a/.gitignore b/.gitignore index 8645c08d2..91981ffaa 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ epsilon.map .vscode .DS_Store .gradle + +.idea/ diff --git a/apps/code/catalog.de.i18n b/apps/code/catalog.de.i18n index 86d0f083a..614dca9ea 100644 --- a/apps/code/catalog.de.i18n +++ b/apps/code/catalog.de.i18n @@ -94,6 +94,8 @@ PythonIsInfinite = "Prüfen, ob x unendlich ist" PythonIsNaN = "Prüfen, ob x keine Zahl ist" PythonIsKeyDown = "Wahr, wenn die Taste k gedrückt ist" PythonBattery = "Return battery voltage" +PythonBatteryLevel = "Return battery level" +PythonBatteryIscharging = "Return if battery is charging" PythonKandinskyFunction = "Kandinsky-Modul Funktionspräfix" PythonLdexp = "Liefert x*(2**i), Inverse von frexp" PythonLength = "Länge eines Objekts" diff --git a/apps/code/catalog.en.i18n b/apps/code/catalog.en.i18n index ce5a8b6e4..86b357fb6 100644 --- a/apps/code/catalog.en.i18n +++ b/apps/code/catalog.en.i18n @@ -87,6 +87,8 @@ PythonIsFinite = "Check if x is finite" PythonIsInfinite = "Check if x is infinity" PythonIsKeyDown = "Return True if the k key is down" PythonBattery = "Return battery voltage" +PythonBatteryLevel = "Return battery level" +PythonBatteryIscharging = "Return if battery is charging" PythonIsNaN = "Check if x is a NaN" PythonKandinskyFunction = "kandinsky module function prefix" PythonLdexp = "Return x*(2**i), inverse of frexp" diff --git a/apps/code/catalog.es.i18n b/apps/code/catalog.es.i18n index 95b8a9fa9..dbf21c95d 100644 --- a/apps/code/catalog.es.i18n +++ b/apps/code/catalog.es.i18n @@ -87,6 +87,8 @@ PythonIsFinite = "Check if x is finite" PythonIsInfinite = "Check if x is infinity" PythonIsKeyDown = "Return True if the k key is down" PythonBattery = "Return battery voltage" +PythonBatteryLevel = "Return battery level" +PythonBatteryIscharging = "Return if battery is charging" PythonIsNaN = "Check if x is a NaN" PythonKandinskyFunction = "kandinsky module function prefix" PythonLdexp = "Return x*(2**i), inverse of frexp" diff --git a/apps/code/catalog.fr.i18n b/apps/code/catalog.fr.i18n index 3d7157bcd..258a0a940 100644 --- a/apps/code/catalog.fr.i18n +++ b/apps/code/catalog.fr.i18n @@ -87,6 +87,8 @@ PythonIsFinite = "Teste si x est fini" PythonIsInfinite = "Teste si x est infini" PythonIsKeyDown = "Renvoie True si touche k enfoncée" PythonBattery = "Renvoie le voltage de la batterie" +PythonBatteryLevel = "Renvoie le niveau de la batterie" +PythonBatteryIscharging = "Chargement en cours" PythonIsNaN = "Teste si x est NaN" PythonKandinskyFunction = "Préfixe fonction module kandinsky" PythonLdexp = "Inverse de frexp : x*(2**i)" diff --git a/apps/code/catalog.hu.i18n b/apps/code/catalog.hu.i18n index 49b4fcd07..c0356ed02 100644 --- a/apps/code/catalog.hu.i18n +++ b/apps/code/catalog.hu.i18n @@ -87,6 +87,8 @@ PythonIsFinite = "x véges-e" PythonIsInfinite = "x végtelen-e" PythonIsKeyDown = "True-t válaszol ha a k gomb le van nyomva" PythonBattery = "Return battery voltage" +PythonBatteryLevel = "Return battery level" +PythonBatteryIscharging = "Return if battery is charging" PythonIsNaN = "Ellenörizze hogy x nem NaN" PythonKandinskyFunction = "kandinsky modul funkció elötag" PythonLdexp = "frexp ellentéte : x*(2**i)" diff --git a/apps/code/catalog.it.i18n b/apps/code/catalog.it.i18n index 2b3ff91e3..a5e41368c 100644 --- a/apps/code/catalog.it.i18n +++ b/apps/code/catalog.it.i18n @@ -93,6 +93,8 @@ PythonIsFinite = "Testa se x è finito" PythonIsInfinite = "Testa se x est infinito" PythonIsKeyDown = "Restituisce True premendo tasto k" PythonBattery = "Return battery voltage" +PythonBatteryLevel = "Return battery level" +PythonBatteryIscharging = "Return if battery is charging" PythonIsNaN = "Testa se x è NaN" PythonKandinskyFunction = "Prefisso funzione modulo kandinsky" PythonLdexp = "Inversa di frexp : x*(2**i)" diff --git a/apps/code/catalog.nl.i18n b/apps/code/catalog.nl.i18n index 721c4cbac..994c1d31c 100644 --- a/apps/code/catalog.nl.i18n +++ b/apps/code/catalog.nl.i18n @@ -93,6 +93,8 @@ PythonIsFinite = "Controleer of x eindig is" PythonIsInfinite = "Controleer of x oneindig is" PythonIsKeyDown = "Geef True als k toets omlaag is" PythonBattery = "Return battery voltage" +PythonBatteryLevel = "Return battery level" +PythonBatteryIscharging = "Return if battery is charging" PythonIsNaN = "Controleer of x geen getal is" PythonKandinskyFunction = "kandinsky module voorvoegsel" PythonLdexp = "Geeft x*(2**i), inversie van frexp" diff --git a/apps/code/catalog.pt.i18n b/apps/code/catalog.pt.i18n index da257f974..053942095 100644 --- a/apps/code/catalog.pt.i18n +++ b/apps/code/catalog.pt.i18n @@ -87,6 +87,8 @@ PythonIsFinite = "Verificar se x é finito" PythonIsInfinite = "Verificar se x é infinito" PythonIsKeyDown = "Devolve True se tecla k pressionada" PythonBattery = "Return battery voltage" +PythonBatteryLevel = "Return battery level" +PythonBatteryIscharging = "Return if battery is charging" PythonIsNaN = "Verificar se x é um NaN" PythonKandinskyFunction = "Prefixo da função do módulo kandinsky" PythonLdexp = "Devolve x*(2**i), inverso de frexp" diff --git a/apps/code/catalog.universal.i18n b/apps/code/catalog.universal.i18n index 55269653a..27f122ebb 100644 --- a/apps/code/catalog.universal.i18n +++ b/apps/code/catalog.universal.i18n @@ -158,6 +158,8 @@ PythonCommandKeyAns = "KEY_ANS" PythonCommandKeyExe = "KEY_EXE" PythonCommandIsKeyDown = "keydown(k)" PythonCommandBattery = "battery()" +PythonCommandBatteryLevel = "battery_level()" +PythonCommandBatteryIscharging = "battery_ischarging()" PythonCommandLdexp = "ldexp(x,i)" PythonCommandLength = "len(object)" PythonCommandLgamma = "lgamma(x)" diff --git a/apps/code/python_toolbox.cpp b/apps/code/python_toolbox.cpp index 31440884b..5be82f7a9 100644 --- a/apps/code/python_toolbox.cpp +++ b/apps/code/python_toolbox.cpp @@ -373,6 +373,8 @@ const ToolboxMessageTree IonModuleChildren[] = { ToolboxMessageTree::Leaf(I18n::Message::PythonCommandIonFunction, I18n::Message::PythonIonFunction, false, I18n::Message::PythonCommandIonFunctionWithoutArg), ToolboxMessageTree::Leaf(I18n::Message::PythonCommandIsKeyDown, I18n::Message::PythonIsKeyDown), ToolboxMessageTree::Leaf(I18n::Message::PythonCommandBattery, I18n::Message::PythonBattery), + ToolboxMessageTree::Leaf(I18n::Message::PythonCommandBatteryLevel, I18n::Message::PythonBatteryLevel), + ToolboxMessageTree::Leaf(I18n::Message::PythonCommandBatteryIscharging, I18n::Message::PythonBatteryIscharging), ToolboxMessageTree::Leaf(I18n::Message::IonSelector, I18n::Message::IonSelector) }; diff --git a/apps/settings/main_controller.cpp b/apps/settings/main_controller.cpp index 320f765fb..97e0f3152 100644 --- a/apps/settings/main_controller.cpp +++ b/apps/settings/main_controller.cpp @@ -20,8 +20,7 @@ constexpr SettingsMessageTree s_modelMathOptionsChildren[6] = {SettingsMessageTr constexpr SettingsMessageTree s_modelFontChildren[2] = {SettingsMessageTree(I18n::Message::LargeFont), SettingsMessageTree(I18n::Message::SmallFont)}; constexpr SettingsMessageTree s_accessibilityChildren[6] = {SettingsMessageTree(I18n::Message::AccessibilityInvertColors), SettingsMessageTree(I18n::Message::AccessibilityMagnify),SettingsMessageTree(I18n::Message::AccessibilityGamma),SettingsMessageTree(I18n::Message::AccessibilityGammaRed),SettingsMessageTree(I18n::Message::AccessibilityGammaGreen),SettingsMessageTree(I18n::Message::AccessibilityGammaBlue)}; constexpr SettingsMessageTree s_contributorsChildren[23] = {SettingsMessageTree(I18n::Message::Developers), SettingsMessageTree(I18n::Message::QuentinGuidee), SettingsMessageTree(I18n::Message::JoachimLeFournis), SettingsMessageTree(I18n::Message::MaximeFriess), SettingsMessageTree(I18n::Message::JeanBaptisteBoric), SettingsMessageTree(I18n::Message::SandraSimmons), SettingsMessageTree(I18n::Message::David), SettingsMessageTree(I18n::Message::DamienNicolet), SettingsMessageTree(I18n::Message::EvannDreumont), SettingsMessageTree(I18n::Message::SzaboLevente), SettingsMessageTree(I18n::Message::VenceslasDuet), SettingsMessageTree(I18n::Message::CharlotteThomas), SettingsMessageTree(I18n::Message::AntoninLoubiere), SettingsMessageTree(I18n::Message::CyprienMejat), SettingsMessageTree(I18n::Message::BetaTesters), SettingsMessageTree(I18n::Message::TimeoArnouts), SettingsMessageTree(I18n::Message::JulieC), SettingsMessageTree(I18n::Message::LelahelHideux), SettingsMessageTree(I18n::Message::Madil), SettingsMessageTree(I18n::Message::HilaireLeRoux), SettingsMessageTree(I18n::Message::HectorNussbaumer), SettingsMessageTree(I18n::Message::RaphaelDyda), SettingsMessageTree(I18n::Message::ThibautC)}; -constexpr SettingsMessageTree s_modelAboutChildren[8] = {SettingsMessageTree(I18n::Message::Username), SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::UpsilonVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::MemUse), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren)}; -constexpr SettingsMessageTree s_modelAboutChildren[9] = {SettingsMessageTree(I18n::Message::Username), SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::OmegaVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::Battery), SettingsMessageTree(I18n::Message::MemUse), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren)}; +constexpr SettingsMessageTree s_modelAboutChildren[9] = {SettingsMessageTree(I18n::Message::Username), SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::UpsilonVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::Battery), SettingsMessageTree(I18n::Message::MemUse), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren)}; MainController::MainController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate) : ViewController(parentResponder), diff --git a/python/port/genhdr/qstrdefs.in.h b/python/port/genhdr/qstrdefs.in.h index d5f4ec63f..eed86bcce 100644 --- a/python/port/genhdr/qstrdefs.in.h +++ b/python/port/genhdr/qstrdefs.in.h @@ -368,6 +368,8 @@ Q(zip) Q(ion) Q(keydown) Q(battery) +Q(battery_level) +Q(battery_ischarging) Q(KEY_LEFT) Q(KEY_UP) Q(KEY_DOWN) diff --git a/python/port/mod/ion/modion.cpp b/python/port/mod/ion/modion.cpp index dc6ca0045..6a892a9f5 100644 --- a/python/port/mod/ion/modion.cpp +++ b/python/port/mod/ion/modion.cpp @@ -15,4 +15,12 @@ mp_obj_t modion_keyboard_keydown(mp_obj_t key_o) { mp_obj_t modion_battery() { return mp_obj_new_float(Ion::Battery::voltage()); +} + +mp_obj_t modion_battery_level(){ + return mp_obj_new_int(static_cast(Ion::Battery::level())); +} + +mp_obj_t modion_battery_ischarging(){ + return mp_obj_new_bool(Ion::Battery::isCharging()); } \ No newline at end of file diff --git a/python/port/mod/ion/modion.h b/python/port/mod/ion/modion.h index 4afa40358..b4c99df02 100644 --- a/python/port/mod/ion/modion.h +++ b/python/port/mod/ion/modion.h @@ -2,4 +2,6 @@ mp_obj_t modion_keyboard_keydown(mp_obj_t key_o); mp_obj_t modion_battery(); +mp_obj_t modion_battery_level(); +mp_obj_t modion_battery_ischarging(); extern const mp_obj_type_t file_type; \ No newline at end of file diff --git a/python/port/mod/ion/modion_table.cpp b/python/port/mod/ion/modion_table.cpp index 751d29443..4b120d494 100644 --- a/python/port/mod/ion/modion_table.cpp +++ b/python/port/mod/ion/modion_table.cpp @@ -21,9 +21,21 @@ const mp_obj_fun_builtin_fixed_t modion_battery_obj = { {(mp_fun_0_t)modion_battery} }; +const mp_obj_fun_builtin_fixed_t modion_battery_level_obj = { + {&mp_type_fun_builtin_0}, + {(mp_fun_0_t)modion_battery_level} +}; + +const mp_obj_fun_builtin_fixed_t modion_battery_ischarging_obj = { + {&mp_type_fun_builtin_0}, + {(mp_fun_0_t)modion_battery_ischarging} +}; + extern "C" const mp_rom_map_elem_t modion_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_ion) }, { MP_ROM_QSTR(MP_QSTR_battery), MP_ROM_PTR(&modion_battery_obj) }, + { MP_ROM_QSTR(MP_QSTR_battery_level), MP_ROM_PTR(&modion_battery_level_obj) }, + { MP_ROM_QSTR(MP_QSTR_battery_ischarging), MP_ROM_PTR(&modion_battery_ischarging_obj) }, { MP_ROM_QSTR(MP_QSTR_keydown), MP_ROM_PTR(&modion_keyboard_keydown_obj) }, { MP_ROM_QSTR(MP_QSTR_KEY_LEFT), MP_OBJ_NEW_SMALL_INT(Ion::Keyboard::Key::Left) }, { MP_ROM_QSTR(MP_QSTR_KEY_UP), MP_OBJ_NEW_SMALL_INT(Ion::Keyboard::Key::Up) }, diff --git a/python/port/mod/os/modos.cpp b/python/port/mod/os/modos.cpp index 3958aef61..b404c96ac 100644 --- a/python/port/mod/os/modos.cpp +++ b/python/port/mod/os/modos.cpp @@ -116,4 +116,4 @@ mp_obj_t modos_listdir(void) { } return list; -} \ No newline at end of file +}