|
|
@ -209,7 +209,15 @@ CameraCapture::Run() |
|
|
|
void |
|
|
|
void |
|
|
|
CameraCapture::set_capture_control(bool enabled) |
|
|
|
CameraCapture::set_capture_control(bool enabled) |
|
|
|
{ |
|
|
|
{ |
|
|
|
#if !defined CONFIG_ARCH_BOARD_AV_X_V1 |
|
|
|
// a board can define BOARD_CAPTURE_GPIO to use a separate capture pin
|
|
|
|
|
|
|
|
#if defined(BOARD_CAPTURE_GPIO) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
px4_arch_gpiosetevent(BOARD_CAPTURE_GPIO, true, false, true, &CameraCapture::gpio_interrupt_routine, this); |
|
|
|
|
|
|
|
_capture_enabled = enabled; |
|
|
|
|
|
|
|
_gpio_capture = true; |
|
|
|
|
|
|
|
reset_statistics(false); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
|
|
|
|
int fd = ::open(PX4FMU_DEVICE_PATH, O_RDWR); |
|
|
|
int fd = ::open(PX4FMU_DEVICE_PATH, O_RDWR); |
|
|
|
|
|
|
|
|
|
|
@ -264,17 +272,8 @@ CameraCapture::set_capture_control(bool enabled) |
|
|
|
goto err_out; |
|
|
|
goto err_out; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
px4_arch_gpiosetevent(GPIO_TRIG_AVX, true, false, true, &CameraCapture::gpio_interrupt_routine, this); |
|
|
|
|
|
|
|
_capture_enabled = enabled; |
|
|
|
|
|
|
|
_gpio_capture = true; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reset_statistics(false); |
|
|
|
reset_statistics(false); |
|
|
|
|
|
|
|
|
|
|
|
#if !defined CONFIG_ARCH_BOARD_AV_X_V1 |
|
|
|
|
|
|
|
err_out: |
|
|
|
err_out: |
|
|
|
::close(fd); |
|
|
|
::close(fd); |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -326,7 +325,14 @@ CameraCapture::status() |
|
|
|
{ |
|
|
|
{ |
|
|
|
PX4_INFO("Capture enabled : %s", _capture_enabled ? "YES" : "NO"); |
|
|
|
PX4_INFO("Capture enabled : %s", _capture_enabled ? "YES" : "NO"); |
|
|
|
PX4_INFO("Frame sequence : %u", _capture_seq); |
|
|
|
PX4_INFO("Frame sequence : %u", _capture_seq); |
|
|
|
PX4_INFO("Last trigger timestamp : %" PRIu64 "", _last_trig_time); |
|
|
|
|
|
|
|
|
|
|
|
if (_last_trig_time != 0) { |
|
|
|
|
|
|
|
PX4_INFO("Last trigger timestamp : %" PRIu64 " (%i ms ago)", _last_trig_time, |
|
|
|
|
|
|
|
(int)(hrt_elapsed_time(&_last_trig_time) / 1000)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
PX4_INFO("No trigger yet"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (_camera_capture_mode != 0) { |
|
|
|
if (_camera_capture_mode != 0) { |
|
|
|
PX4_INFO("Last exposure time : %0.2f ms", double(_last_exposure_time) / 1000.0); |
|
|
|
PX4_INFO("Last exposure time : %0.2f ms", double(_last_exposure_time) / 1000.0); |
|
|
|