Merge pull request #334 from kwagyeman/omv_module

Add openmv version info module.
This commit is contained in:
Ibrahim Abd Elkader 2018-04-09 00:49:10 +02:00 committed by GitHub
commit ffcf70a57c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 74 additions and 1 deletions

View File

@ -210,6 +210,7 @@ FIRM_OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/img/,\
FIRM_OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/py/, \ FIRM_OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/py/, \
py_helper.o \ py_helper.o \
py_omv.o \
py_sensor.o \ py_sensor.o \
py_image.o \ py_image.o \
py_time.o \ py_time.o \

@ -1 +1 @@
Subproject commit 5d1b550a5f94bc7fefd06c790e40a6e8f35cee9e Subproject commit 6416c0f7455668c37b9fffdff4937b31d379fe06

View File

@ -80,6 +80,7 @@ SRCS += $(addprefix img/, \
SRCS += $(addprefix py/, \ SRCS += $(addprefix py/, \
py_helper.c \ py_helper.c \
py_omv.c \
py_sensor.c \ py_sensor.c \
py_image.c \ py_image.c \
py_time.c \ py_time.c \

61
src/omv/py/py_omv.c Normal file
View File

@ -0,0 +1,61 @@
/* This file is part of the OpenMV project.
* Copyright (c) 2013-2018 Ibrahim Abdelkader <iabdalkader@openmv.io> & Kwabena W. Agyeman <kwagyeman@openmv.io>
* This work is licensed under the MIT license, see the file LICENSE for details.
*/
#include <mp.h>
#include "usbdbg.h"
#include "omv_boardconfig.h"
static mp_obj_t py_omv_version_string()
{
char str[12];
snprintf(str, 12, "%d.%d.%d",
FIRMWARE_VERSION_MAJOR,
FIRMWARE_VERSION_MINOR,
FIRMWARE_VERSION_PATCH);
return mp_obj_new_str(str, strlen(str));
}
STATIC MP_DEFINE_CONST_FUN_OBJ_0(py_omv_version_string_obj, py_omv_version_string);
static mp_obj_t py_omv_arch()
{
char *str = OMV_ARCH_STR;
return mp_obj_new_str(str, strlen(str));
}
STATIC MP_DEFINE_CONST_FUN_OBJ_0(py_omv_arch_obj, py_omv_arch);
static mp_obj_t py_omv_board_type()
{
char *str = OMV_BOARD_TYPE;
return mp_obj_new_str(str, strlen(str));
}
STATIC MP_DEFINE_CONST_FUN_OBJ_0(py_omv_board_type_obj, py_omv_board_type);
static mp_obj_t py_omv_board_id()
{
char str[25];
snprintf(str, 25, "%08X%08X%08X",
*((unsigned int *) (OMV_UNIQUE_ID_ADDR + 8)),
*((unsigned int *) (OMV_UNIQUE_ID_ADDR + 4)),
*((unsigned int *) (OMV_UNIQUE_ID_ADDR + 0)));
return mp_obj_new_str(str, strlen(str));
}
STATIC MP_DEFINE_CONST_FUN_OBJ_0(py_omv_board_id_obj, py_omv_board_id);
static const mp_rom_map_elem_t globals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_omv) },
{ MP_ROM_QSTR(MP_QSTR_version_major), MP_ROM_INT(FIRMWARE_VERSION_MAJOR) },
{ MP_ROM_QSTR(MP_QSTR_version_minor), MP_ROM_INT(FIRMWARE_VERSION_MINOR) },
{ MP_ROM_QSTR(MP_QSTR_version_patch), MP_ROM_INT(FIRMWARE_VERSION_PATCH) },
{ MP_ROM_QSTR(MP_QSTR_version_string), MP_ROM_PTR(&py_omv_version_string_obj) },
{ MP_ROM_QSTR(MP_QSTR_arch), MP_ROM_PTR(&py_omv_arch_obj) },
{ MP_ROM_QSTR(MP_QSTR_board_type), MP_ROM_PTR(&py_omv_board_type_obj) },
{ MP_ROM_QSTR(MP_QSTR_board_id), MP_ROM_PTR(&py_omv_board_id_obj) }
};
STATIC MP_DEFINE_CONST_DICT(globals_dict, globals_dict_table);
const mp_obj_module_t omv_module = {
.base = { &mp_type_module },
.globals = (mp_obj_t) &globals_dict,
};

View File

@ -7,6 +7,16 @@
* *
*/ */
// OMV Module
Q(omv)
Q(version_major)
Q(version_minor)
Q(version_patch)
Q(version_string)
Q(arch)
Q(board_type)
Q(board_id)
// Image module // Image module
Q(image) Q(image)
Q(Image) Q(Image)