stmhal: Implement os.uname() to get details of OS and hardware.
This commit is contained in:
parent
c3184aea63
commit
d8837cea6f
@ -35,4 +35,5 @@ cat <<EOF
|
|||||||
#define MICROPY_VERSION_MAJOR (${ver_major})
|
#define MICROPY_VERSION_MAJOR (${ver_major})
|
||||||
#define MICROPY_VERSION_MINOR (${ver_minor})
|
#define MICROPY_VERSION_MINOR (${ver_minor})
|
||||||
#define MICROPY_VERSION_MICRO (${ver_micro})
|
#define MICROPY_VERSION_MICRO (${ver_micro})
|
||||||
|
#define MICROPY_VERSION_STRING "${ver_major}.${ver_minor}.${ver_micro}"
|
||||||
EOF
|
EOF
|
||||||
|
@ -30,6 +30,8 @@
|
|||||||
#include "py/nlr.h"
|
#include "py/nlr.h"
|
||||||
#include "py/obj.h"
|
#include "py/obj.h"
|
||||||
#include "py/objtuple.h"
|
#include "py/objtuple.h"
|
||||||
|
#include "py/objstr.h"
|
||||||
|
#include "genhdr/py-version.h"
|
||||||
#include "lib/fatfs/ff.h"
|
#include "lib/fatfs/ff.h"
|
||||||
#include "lib/fatfs/diskio.h"
|
#include "lib/fatfs/diskio.h"
|
||||||
#include "rng.h"
|
#include "rng.h"
|
||||||
@ -64,6 +66,31 @@ STATIC bool sd_in_root(void) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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, "pyboard");
|
||||||
|
STATIC const MP_DEFINE_STR_OBJ(os_uname_info_nodename_obj, "pyboard");
|
||||||
|
STATIC const MP_DEFINE_STR_OBJ(os_uname_info_release_obj, MICROPY_VERSION_STRING);
|
||||||
|
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)
|
/// \function chdir(path)
|
||||||
/// Change current directory.
|
/// Change current directory.
|
||||||
STATIC mp_obj_t os_chdir(mp_obj_t path_in) {
|
STATIC mp_obj_t os_chdir(mp_obj_t path_in) {
|
||||||
@ -334,6 +361,8 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(os_urandom_obj, os_urandom);
|
|||||||
STATIC const mp_map_elem_t os_module_globals_table[] = {
|
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___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_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_getcwd), (mp_obj_t)&os_getcwd_obj },
|
||||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_listdir), (mp_obj_t)&os_listdir_obj },
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_listdir), (mp_obj_t)&os_listdir_obj },
|
||||||
|
@ -368,6 +368,12 @@ Q(os)
|
|||||||
Q(/)
|
Q(/)
|
||||||
Q(flash)
|
Q(flash)
|
||||||
Q(sd)
|
Q(sd)
|
||||||
|
Q(sysname)
|
||||||
|
Q(nodename)
|
||||||
|
Q(release)
|
||||||
|
Q(version)
|
||||||
|
Q(machine)
|
||||||
|
Q(uname)
|
||||||
Q(chdir)
|
Q(chdir)
|
||||||
Q(getcwd)
|
Q(getcwd)
|
||||||
Q(listdir)
|
Q(listdir)
|
||||||
|
Loading…
Reference in New Issue
Block a user