|
|
@ -21,31 +21,7 @@ CameraInterfaceSeagull::CameraInterfaceSeagull(): |
|
|
|
CameraInterface(), |
|
|
|
CameraInterface(), |
|
|
|
_camera_is_on(false) |
|
|
|
_camera_is_on(false) |
|
|
|
{ |
|
|
|
{ |
|
|
|
_p_pin = param_find("TRIG_PINS"); |
|
|
|
get_pins(); |
|
|
|
int pin_list; |
|
|
|
|
|
|
|
param_get(_p_pin, &pin_list); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Set all pins as invalid
|
|
|
|
|
|
|
|
for (unsigned i = 0; i < arraySize(_pins); i++) { |
|
|
|
|
|
|
|
_pins[i] = -1; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Convert number to individual channels
|
|
|
|
|
|
|
|
unsigned i = 0; |
|
|
|
|
|
|
|
int single_pin; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while ((single_pin = pin_list % 10)) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_pins[i] = single_pin - 1; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (_pins[i] < 0) { |
|
|
|
|
|
|
|
_pins[i] = -1; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pin_list /= 10; |
|
|
|
|
|
|
|
i++; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setup(); |
|
|
|
setup(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -65,9 +41,11 @@ void CameraInterfaceSeagull::setup() |
|
|
|
up_pwm_trigger_set(_pins[i], math::constrain(PWM_CAMERA_DISARMED, PWM_CAMERA_DISARMED, 2000)); |
|
|
|
up_pwm_trigger_set(_pins[i], math::constrain(PWM_CAMERA_DISARMED, PWM_CAMERA_DISARMED, 2000)); |
|
|
|
|
|
|
|
|
|
|
|
// We only support 2 consecutive pins while using the Seagull MAP2
|
|
|
|
// We only support 2 consecutive pins while using the Seagull MAP2
|
|
|
|
break; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PX4_ERROR("Bad pin configuration - Seagull MAP2 requires 2 consecutive pins for control."); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void CameraInterfaceSeagull::trigger(bool enable) |
|
|
|
void CameraInterfaceSeagull::trigger(bool enable) |
|
|
|