mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Merge pull request #2435 from openmv/sensors_ioctl
misc: Add a flag to ioctls to abort streaming.
This commit is contained in:
commit
be35ac86d2
@ -145,39 +145,41 @@ typedef enum {
|
||||
XCLK_SOURCE_OSC = 2U,
|
||||
} xclk_source_t;
|
||||
|
||||
#define SENSOR_IOCTL_ABORT (1 << 8)
|
||||
|
||||
typedef enum {
|
||||
IOCTL_SET_READOUT_WINDOW,
|
||||
IOCTL_GET_READOUT_WINDOW,
|
||||
IOCTL_SET_TRIGGERED_MODE,
|
||||
IOCTL_GET_TRIGGERED_MODE,
|
||||
IOCTL_SET_FOV_WIDE,
|
||||
IOCTL_GET_FOV_WIDE,
|
||||
IOCTL_TRIGGER_AUTO_FOCUS,
|
||||
IOCTL_PAUSE_AUTO_FOCUS,
|
||||
IOCTL_RESET_AUTO_FOCUS,
|
||||
IOCTL_WAIT_ON_AUTO_FOCUS,
|
||||
IOCTL_SET_NIGHT_MODE,
|
||||
IOCTL_GET_NIGHT_MODE,
|
||||
IOCTL_LEPTON_GET_WIDTH,
|
||||
IOCTL_LEPTON_GET_HEIGHT,
|
||||
IOCTL_LEPTON_GET_RADIOMETRY,
|
||||
IOCTL_LEPTON_GET_REFRESH,
|
||||
IOCTL_LEPTON_GET_RESOLUTION,
|
||||
IOCTL_LEPTON_RUN_COMMAND,
|
||||
IOCTL_LEPTON_SET_ATTRIBUTE,
|
||||
IOCTL_LEPTON_GET_ATTRIBUTE,
|
||||
IOCTL_LEPTON_GET_FPA_TEMPERATURE,
|
||||
IOCTL_LEPTON_GET_AUX_TEMPERATURE,
|
||||
IOCTL_LEPTON_SET_MEASUREMENT_MODE,
|
||||
IOCTL_LEPTON_GET_MEASUREMENT_MODE,
|
||||
IOCTL_LEPTON_SET_MEASUREMENT_RANGE,
|
||||
IOCTL_LEPTON_GET_MEASUREMENT_RANGE,
|
||||
IOCTL_HIMAX_MD_ENABLE,
|
||||
IOCTL_HIMAX_MD_CLEAR,
|
||||
IOCTL_HIMAX_MD_WINDOW,
|
||||
IOCTL_HIMAX_MD_THRESHOLD,
|
||||
IOCTL_HIMAX_OSC_ENABLE,
|
||||
IOCTL_GET_RGB_STATS,
|
||||
IOCTL_SET_READOUT_WINDOW = 0x00 | SENSOR_IOCTL_ABORT,
|
||||
IOCTL_GET_READOUT_WINDOW = 0x01,
|
||||
IOCTL_SET_TRIGGERED_MODE = 0x02,
|
||||
IOCTL_GET_TRIGGERED_MODE = 0x03,
|
||||
IOCTL_SET_FOV_WIDE = 0x04,
|
||||
IOCTL_GET_FOV_WIDE = 0x05,
|
||||
IOCTL_TRIGGER_AUTO_FOCUS = 0x06,
|
||||
IOCTL_PAUSE_AUTO_FOCUS = 0x07,
|
||||
IOCTL_RESET_AUTO_FOCUS = 0x08,
|
||||
IOCTL_WAIT_ON_AUTO_FOCUS = 0x09,
|
||||
IOCTL_SET_NIGHT_MODE = 0x0A,
|
||||
IOCTL_GET_NIGHT_MODE = 0x0B,
|
||||
IOCTL_LEPTON_GET_WIDTH = 0x0C,
|
||||
IOCTL_LEPTON_GET_HEIGHT = 0x0D,
|
||||
IOCTL_LEPTON_GET_RADIOMETRY = 0x0E,
|
||||
IOCTL_LEPTON_GET_REFRESH = 0x0F,
|
||||
IOCTL_LEPTON_GET_RESOLUTION = 0x10,
|
||||
IOCTL_LEPTON_RUN_COMMAND = 0x11,
|
||||
IOCTL_LEPTON_SET_ATTRIBUTE = 0x12,
|
||||
IOCTL_LEPTON_GET_ATTRIBUTE = 0x13,
|
||||
IOCTL_LEPTON_GET_FPA_TEMPERATURE = 0x14,
|
||||
IOCTL_LEPTON_GET_AUX_TEMPERATURE = 0x15,
|
||||
IOCTL_LEPTON_SET_MEASUREMENT_MODE = 0x16 | SENSOR_IOCTL_ABORT,
|
||||
IOCTL_LEPTON_GET_MEASUREMENT_MODE = 0x17,
|
||||
IOCTL_LEPTON_SET_MEASUREMENT_RANGE = 0x18 | SENSOR_IOCTL_ABORT,
|
||||
IOCTL_LEPTON_GET_MEASUREMENT_RANGE = 0x19,
|
||||
IOCTL_HIMAX_MD_ENABLE = 0x1A,
|
||||
IOCTL_HIMAX_MD_CLEAR = 0x1B,
|
||||
IOCTL_HIMAX_MD_WINDOW = 0x1C | SENSOR_IOCTL_ABORT,
|
||||
IOCTL_HIMAX_MD_THRESHOLD = 0x1D,
|
||||
IOCTL_HIMAX_OSC_ENABLE = 0x1E | SENSOR_IOCTL_ABORT,
|
||||
IOCTL_GET_RGB_STATS = 0x1F
|
||||
} ioctl_t;
|
||||
|
||||
typedef enum {
|
||||
|
||||
@ -1198,7 +1198,9 @@ __weak int sensor_set_lens_correction(int enable, int radi, int coef) {
|
||||
|
||||
__weak int sensor_ioctl(int request, ... /* arg */) {
|
||||
// Disable any ongoing frame capture.
|
||||
sensor_abort(true, false);
|
||||
if (request & SENSOR_IOCTL_ABORT) {
|
||||
sensor_abort(true, false);
|
||||
}
|
||||
|
||||
// Check if the control is supported.
|
||||
if (sensor.ioctl == NULL) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user