mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Add set/get_framerate().
This commit is contained in:
parent
730efc65aa
commit
b72aea3bc0
@ -248,6 +248,20 @@ static mp_obj_t py_sensor_get_framesize() {
|
||||
return mp_obj_new_int(sensor.framesize);
|
||||
}
|
||||
|
||||
static mp_obj_t py_sensor_set_framerate(mp_obj_t framerate) {
|
||||
if (sensor_set_framerate(mp_obj_get_int(framerate)) != 0) {
|
||||
mp_raise_msg(&mp_type_ValueError, MP_ERROR_TEXT("Failed to set framerate!"));
|
||||
}
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
static mp_obj_t py_sensor_get_framerate() {
|
||||
if (sensor.framerate == 0) {
|
||||
mp_raise_msg(&mp_type_ValueError, MP_ERROR_TEXT("Frame rate not set yet!"));
|
||||
}
|
||||
return mp_obj_new_int(sensor.framerate);
|
||||
}
|
||||
|
||||
static mp_obj_t py_sensor_set_windowing(mp_obj_t roi_obj)
|
||||
{
|
||||
int x, y, w, h;
|
||||
@ -755,6 +769,8 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(py_sensor_set_pixformat_obj, py_sensor_se
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(py_sensor_get_pixformat_obj, py_sensor_get_pixformat);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(py_sensor_set_framesize_obj, py_sensor_set_framesize);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(py_sensor_get_framesize_obj, py_sensor_get_framesize);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(py_sensor_set_framerate_obj, py_sensor_set_framerate);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(py_sensor_get_framerate_obj, py_sensor_get_framerate);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(py_sensor_set_windowing_obj, py_sensor_set_windowing);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(py_sensor_get_windowing_obj, py_sensor_get_windowing);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(py_sensor_set_gainceiling_obj, py_sensor_set_gainceiling);
|
||||
@ -893,6 +909,8 @@ STATIC const mp_map_elem_t globals_dict_table[] = {
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_get_pixformat), (mp_obj_t)&py_sensor_get_pixformat_obj },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_set_framesize), (mp_obj_t)&py_sensor_set_framesize_obj },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_get_framesize), (mp_obj_t)&py_sensor_get_framesize_obj },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_set_framerate), (mp_obj_t)&py_sensor_set_framerate_obj },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_get_framerate), (mp_obj_t)&py_sensor_get_framerate_obj },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_set_windowing), (mp_obj_t)&py_sensor_set_windowing_obj },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_get_windowing), (mp_obj_t)&py_sensor_get_windowing_obj },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_set_gainceiling), (mp_obj_t)&py_sensor_set_gainceiling_obj },
|
||||
|
||||
@ -260,6 +260,8 @@ Q(set_pixformat)
|
||||
Q(get_pixformat)
|
||||
Q(set_framesize)
|
||||
Q(get_framesize)
|
||||
Q(set_framerate)
|
||||
Q(get_framerate)
|
||||
Q(set_vsync_output)
|
||||
Q(set_windowing)
|
||||
Q(get_windowing)
|
||||
|
||||
@ -481,6 +481,7 @@ int sensor_reset()
|
||||
sensor.sde = 0;
|
||||
sensor.pixformat = 0;
|
||||
sensor.framesize = 0;
|
||||
sensor.framerate = 0;
|
||||
sensor.gainceiling = 0;
|
||||
sensor.hmirror = false;
|
||||
sensor.vflip = false;
|
||||
@ -658,6 +659,23 @@ int sensor_set_framesize(framesize_t framesize)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sensor_set_framerate(int framerate)
|
||||
{
|
||||
if (sensor.framerate == framerate) {
|
||||
// No change
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Call the sensor specific function
|
||||
if (sensor.set_framerate == NULL
|
||||
|| sensor.set_framerate(&sensor, framerate) != 0) {
|
||||
// Operation not supported
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sensor_set_windowing(int x, int y, int w, int h)
|
||||
{
|
||||
// py_sensor_set_windowing ensures this the window is at least 8x8
|
||||
|
||||
@ -158,6 +158,7 @@ typedef struct _sensor {
|
||||
sde_t sde; // Special digital effects
|
||||
pixformat_t pixformat; // Pixel format
|
||||
framesize_t framesize; // Frame size
|
||||
int framerate; // Frame rate
|
||||
gainceiling_t gainceiling; // AGC gainceiling
|
||||
bool hmirror; // Horizontal Mirror
|
||||
bool vflip; // Vertical Flip
|
||||
@ -174,6 +175,7 @@ typedef struct _sensor {
|
||||
int (*write_reg) (sensor_t *sensor, uint16_t reg_addr, uint16_t reg_data);
|
||||
int (*set_pixformat) (sensor_t *sensor, pixformat_t pixformat);
|
||||
int (*set_framesize) (sensor_t *sensor, framesize_t framesize);
|
||||
int (*set_framerate) (sensor_t *sensor, int framerate);
|
||||
int (*set_contrast) (sensor_t *sensor, int level);
|
||||
int (*set_brightness) (sensor_t *sensor, int level);
|
||||
int (*set_saturation) (sensor_t *sensor, int level);
|
||||
@ -230,6 +232,9 @@ int sensor_set_pixformat(pixformat_t pixformat);
|
||||
// Set the sensor frame size.
|
||||
int sensor_set_framesize(framesize_t framesize);
|
||||
|
||||
// Set the sensor frame rate.
|
||||
int sensor_set_framerate(int framerate);
|
||||
|
||||
// Set window size.
|
||||
int sensor_set_windowing(int x, int y, int w, int h);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user