mirror of
https://github.com/openmv/openmv.git
synced 2025-09-26 23:09:13 +08:00
sensors/GenX320: Adding ioctl for setting individual biases.
This commit is contained in:
parent
1962f4ba7a
commit
d9e1ac2da6
@ -293,18 +293,12 @@ const BIAS_Params_t genx320es_default_biases = {
|
||||
*/
|
||||
const BIAS_Params_t genx320mp_default_biases = {
|
||||
.pr = 61,
|
||||
// .fo = 34, // old default
|
||||
.fo = 24, // per prophesee to mitigate flickering
|
||||
.fo = 24, //24 per prophesee to mitigate flickering (34 default)
|
||||
.fes = 63,
|
||||
// .hpf = 0, // old default
|
||||
.hpf = 40, // new default
|
||||
// .diff_on = 30, // old default
|
||||
// .diff_on = 25, // new default
|
||||
.diff_on = 35, // per prophesee to mitigate flickering
|
||||
.hpf = 40,
|
||||
.diff_on = 25, //35 per prophesee to mitigate flickering
|
||||
.diff = 51,
|
||||
// .diff_off = 33, // old default
|
||||
// .diff_off = 28, // new default
|
||||
.diff_off = 38, // per prophesee to mitigate flickering
|
||||
.diff_off = 28, //38 per prophesee to mitigate flickering
|
||||
.inv = 57,
|
||||
.refr = 10,
|
||||
.invp = 56,
|
||||
|
@ -219,7 +219,8 @@ typedef enum {
|
||||
OMV_CSI_IOCTL_HIMAX_MD_THRESHOLD = 0x1D,
|
||||
OMV_CSI_IOCTL_HIMAX_OSC_ENABLE = 0x1E | OMV_CSI_IOCTL_FLAGS_ABORT,
|
||||
OMV_CSI_IOCTL_GET_RGB_STATS = 0x1F,
|
||||
OMV_CSI_IOCTL_GENX320_SET_BIASES = 0x20
|
||||
OMV_CSI_IOCTL_GENX320_SET_BIASES = 0x20,
|
||||
OMV_CSI_IOCTL_GENX320_SET_BIAS = 0x21
|
||||
} omv_csi_ioctl_t;
|
||||
|
||||
typedef enum {
|
||||
@ -254,6 +255,14 @@ typedef enum {
|
||||
OMV_CSI_GENX320_BIASES_LOW_NOISE,
|
||||
OMV_CSI_GENX320_BIASES_HIGH_SPEED
|
||||
} omv_csi_genx320_biases_preset_t;
|
||||
|
||||
typedef enum {
|
||||
OMV_CSI_GENX320_BIAS_DIFF_OFF,
|
||||
OMV_CSI_GENX320_BIAS_DIFF_ON,
|
||||
OMV_CSI_GENX320_BIAS_FO,
|
||||
OMV_CSI_GENX320_BIAS_HPF,
|
||||
OMV_CSI_GENX320_BIAS_REFR
|
||||
} omv_csi_genx320_bias_t;
|
||||
#endif
|
||||
|
||||
typedef void (*vsync_cb_t) (uint32_t vsync);
|
||||
|
@ -1022,6 +1022,12 @@ static mp_obj_t py_omv_csi_ioctl(uint n_args, const mp_obj_t *args) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case OMV_CSI_IOCTL_GENX320_SET_BIAS: {
|
||||
if (n_args == 3) {
|
||||
error = omv_csi_ioctl(request, mp_obj_get_int(args[1]), mp_obj_get_int(args[2]));
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif // (OMV_GENX320_ENABLE == 1)
|
||||
|
||||
default: {
|
||||
@ -1229,6 +1235,12 @@ static const mp_rom_map_elem_t globals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_GENX320_BIASES_ACTIVE_MARKER), MP_ROM_INT(OMV_CSI_GENX320_BIASES_ACTIVE_MARKER)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_GENX320_BIASES_LOW_NOISE), MP_ROM_INT(OMV_CSI_GENX320_BIASES_LOW_NOISE)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_GENX320_BIASES_HIGH_SPEED), MP_ROM_INT(OMV_CSI_GENX320_BIASES_HIGH_SPEED)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_IOCTL_GENX320_SET_BIAS), MP_ROM_INT(OMV_CSI_IOCTL_GENX320_SET_BIAS)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_GENX320_BIAS_DIFF_OFF), MP_ROM_INT(OMV_CSI_GENX320_BIAS_DIFF_OFF)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_GENX320_BIAS_DIFF_ON), MP_ROM_INT(OMV_CSI_GENX320_BIAS_DIFF_ON)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_GENX320_BIAS_FO), MP_ROM_INT(OMV_CSI_GENX320_BIAS_FO)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_GENX320_BIAS_HPF), MP_ROM_INT(OMV_CSI_GENX320_BIAS_HPF)},
|
||||
{ MP_ROM_QSTR(MP_QSTR_GENX320_BIAS_REFR), MP_ROM_INT(OMV_CSI_GENX320_BIAS_REFR)},
|
||||
#endif
|
||||
|
||||
// Sensor functions
|
||||
|
@ -496,6 +496,38 @@ static int ioctl(omv_csi_t *csi, int request, va_list ap) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
// Setting biases one by one
|
||||
case OMV_CSI_IOCTL_GENX320_SET_BIAS: {
|
||||
int bias_name = va_arg(ap, int);
|
||||
int bias_value = va_arg(ap, int);
|
||||
switch (bias_name) {
|
||||
case OMV_CSI_GENX320_BIAS_DIFF_OFF: {
|
||||
psee_sensor_set_bias(DIFF_OFF, bias_value);
|
||||
break;
|
||||
}
|
||||
case OMV_CSI_GENX320_BIAS_DIFF_ON: {
|
||||
psee_sensor_set_bias(DIFF_ON, bias_value);
|
||||
break;
|
||||
}
|
||||
case OMV_CSI_GENX320_BIAS_FO: {
|
||||
psee_sensor_set_bias(FO, bias_value);
|
||||
break;
|
||||
}
|
||||
case OMV_CSI_GENX320_BIAS_HPF: {
|
||||
psee_sensor_set_bias(HPF, bias_value);
|
||||
break;
|
||||
}
|
||||
case OMV_CSI_GENX320_BIAS_REFR: {
|
||||
psee_sensor_set_bias(REFR, bias_value);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
ret = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
ret = -1;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user