diff options
| author | Daniel Campora <daniel@wipy.io> | 2015-04-28 19:53:45 +0200 |
|---|---|---|
| committer | Daniel Campora <daniel@wipy.io> | 2015-04-29 00:03:56 +0200 |
| commit | f81684141ec7dde97125f8bf6cca8994c7ff09c2 (patch) | |
| tree | 6c739a030d2c1adac08eeae2e5854af2b6eade58 /cc3200/mods | |
| parent | 6fefd5d3308cbe86b81ffb280ffbf945b14c973a (diff) | |
cc3200: Implement os.uname() to get details of the OS and hardware.
Diffstat (limited to 'cc3200/mods')
| -rw-r--r-- | cc3200/mods/modpyb.c | 10 | ||||
| -rw-r--r-- | cc3200/mods/moduos.c | 29 |
2 files changed, 29 insertions, 10 deletions
diff --git a/cc3200/mods/modpyb.c b/cc3200/mods/modpyb.c index f7a941d08..7078889fa 100644 --- a/cc3200/mods/modpyb.c +++ b/cc3200/mods/modpyb.c @@ -233,15 +233,6 @@ STATIC mp_obj_t pyb_repl_uart(uint n_args, const mp_obj_t *args) { } STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(pyb_repl_uart_obj, 0, 1, pyb_repl_uart); -/// \function version() -/// Prints the software version (MicroPython + Port) -STATIC mp_obj_t pyb_version(void) { - char version[128]; - snprintf(version, sizeof(version), "Micro Python " MICROPY_GIT_TAG " on " MICROPY_BUILD_DATE "; " MICROPY_HW_BOARD_NAME " with " MICROPY_HW_MCU_NAME); - return mp_obj_new_str(version, strlen(version), false); -} -STATIC MP_DEFINE_CONST_FUN_OBJ_0(pyb_version_obj, pyb_version); - MP_DECLARE_CONST_FUN_OBJ(pyb_main_obj); // defined in main.c STATIC const mp_map_elem_t pyb_module_globals_table[] = { @@ -266,7 +257,6 @@ STATIC const mp_map_elem_t pyb_module_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_elapsed_micros), (mp_obj_t)&pyb_elapsed_micros_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_delay), (mp_obj_t)&pyb_delay_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_udelay), (mp_obj_t)&pyb_udelay_obj }, - { MP_OBJ_NEW_QSTR(MP_QSTR_version), (mp_obj_t)&pyb_version_obj }, #if MICROPY_HW_ENABLE_RNG { MP_OBJ_NEW_QSTR(MP_QSTR_rng), (mp_obj_t)&pyb_rng_get_obj }, diff --git a/cc3200/mods/moduos.c b/cc3200/mods/moduos.c index 34993f5ca..3261df746 100644 --- a/cc3200/mods/moduos.c +++ b/cc3200/mods/moduos.c @@ -32,6 +32,8 @@ #include "py/nlr.h" #include "py/obj.h" #include "py/objtuple.h" +#include "py/objstr.h" +#include "genhdr/py-version.h" #include "ff.h" #include "diskio.h" #include "sflash_diskio.h" @@ -40,6 +42,7 @@ #include "random.h" #include "sd_diskio.h" #include "mpexception.h" +#include "version.h" /// \module os - basic "operating system" services /// @@ -69,6 +72,31 @@ STATIC bool sd_in_root(void) { // Micro Python bindings // +STATIC const qstr os_uname_info_fields[] = { + MP_QSTR_sysname, MP_QSTR_nodename, + MP_QSTR_release, MP_QSTR_version, MP_QSTR_machine +}; +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_sysname_obj, MICROPY_PY_SYS_PLATFORM); +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_nodename_obj, MICROPY_PY_SYS_PLATFORM); +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_release_obj, WIPY_SW_VERSION_NUMBER); +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_version_obj, MICROPY_GIT_TAG " on " MICROPY_BUILD_DATE); +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_machine_obj, MICROPY_HW_BOARD_NAME " with " MICROPY_HW_MCU_NAME); +STATIC MP_DEFINE_ATTRTUPLE( + os_uname_info_obj, + os_uname_info_fields, + 5, + (mp_obj_t)&os_uname_info_sysname_obj, + (mp_obj_t)&os_uname_info_nodename_obj, + (mp_obj_t)&os_uname_info_release_obj, + (mp_obj_t)&os_uname_info_version_obj, + (mp_obj_t)&os_uname_info_machine_obj +); + +STATIC mp_obj_t os_uname(void) { + return (mp_obj_t)&os_uname_info_obj; +} +STATIC MP_DEFINE_CONST_FUN_OBJ_0(os_uname_obj, os_uname); + /// \function chdir(path) /// Change current directory. STATIC mp_obj_t os_chdir(mp_obj_t path_in) { @@ -321,6 +349,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(os_mkdisk_obj, os_mkdisk); STATIC const mp_map_elem_t os_module_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_uos) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_uname), (mp_obj_t)&os_uname_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_chdir), (mp_obj_t)&os_chdir_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_getcwd), (mp_obj_t)&os_getcwd_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_listdir), (mp_obj_t)&os_listdir_obj }, |
