ArduCopter: update for changed AP_Camera API

This commit is contained in:
Andrew Tridgell 2016-01-19 16:26:14 +11:00
parent eed575886c
commit 4efb9bd785
6 changed files with 21 additions and 46 deletions

View File

@ -127,7 +127,7 @@ const AP_Scheduler::Task Copter::scheduler_tasks[] = {
SCHED_TASK(gcs_send_deferred, 50, 550), SCHED_TASK(gcs_send_deferred, 50, 550),
SCHED_TASK(gcs_data_stream_send, 50, 550), SCHED_TASK(gcs_data_stream_send, 50, 550),
SCHED_TASK(update_mount, 50, 75), SCHED_TASK(update_mount, 50, 75),
SCHED_TASK(update_trigger, 8, 75), SCHED_TASK(update_trigger, 50, 75),
SCHED_TASK(ten_hz_logging_loop, 10, 350), SCHED_TASK(ten_hz_logging_loop, 10, 350),
SCHED_TASK(fifty_hz_logging_loop, 50, 110), SCHED_TASK(fifty_hz_logging_loop, 50, 110),
SCHED_TASK(full_rate_logging_loop,400, 100), SCHED_TASK(full_rate_logging_loop,400, 100),
@ -347,12 +347,11 @@ void Copter::update_trigger(void)
{ {
#if CAMERA == ENABLED #if CAMERA == ENABLED
camera.trigger_pic_cleanup(); camera.trigger_pic_cleanup();
if(camera._camera_triggered == 0 && camera._feedback_pin != -1 && check_digital_pin(camera._feedback_pin) == 0){ if (camera.check_trigger_pin()) {
gcs_send_message(MSG_CAMERA_FEEDBACK); gcs_send_message(MSG_CAMERA_FEEDBACK);
if (should_log(MASK_LOG_CAMERA)) { if (should_log(MASK_LOG_CAMERA)) {
DataFlash.Log_Write_Camera(ahrs, gps, current_loc); DataFlash.Log_Write_Camera(ahrs, gps, current_loc);
} }
camera._camera_triggered = 1;
} }
#endif #endif
} }
@ -656,4 +655,4 @@ void Copter::update_altitude()
} }
} }
AP_HAL_MAIN_CALLBACKS(&copter); AP_HAL_MAIN_CALLBACKS(&copter);

View File

@ -959,7 +959,6 @@ private:
bool optflow_position_ok(); bool optflow_position_ok();
void update_auto_armed(); void update_auto_armed();
void check_usb_mux(void); void check_usb_mux(void);
uint8_t check_digital_pin(uint8_t pin);
void frsky_telemetry_send(void); void frsky_telemetry_send(void);
bool should_log(uint32_t mask); bool should_log(uint32_t mask);
bool current_mode_has_user_takeoff(bool must_navigate); bool current_mode_has_user_takeoff(bool must_navigate);
@ -1055,4 +1054,4 @@ extern Copter copter;
using AP_HAL::millis; using AP_HAL::millis;
using AP_HAL::micros; using AP_HAL::micros;
#endif // _COPTER_H_ #endif // _COPTER_H_

View File

@ -50,7 +50,6 @@ bool Copter::print_log_menu(void)
PLOG(COMPASS); PLOG(COMPASS);
PLOG(CAMERA); PLOG(CAMERA);
PLOG(PID); PLOG(PID);
PLOG(TRIGGER);
#undef PLOG #undef PLOG
} }
@ -133,7 +132,6 @@ int8_t Copter::select_logs(uint8_t argc, const Menu::arg *argv)
TARG(COMPASS); TARG(COMPASS);
TARG(CAMERA); TARG(CAMERA);
TARG(PID); TARG(PID);
TARG(TRIGGER);
#undef TARG #undef TARG
} }
@ -907,4 +905,4 @@ void Copter::Log_Write_Optflow() {}
void Copter::start_logging() {} void Copter::start_logging() {}
void Copter::log_init(void) {} void Copter::log_init(void) {}
#endif // LOGGING_ENABLED #endif // LOGGING_ENABLED

View File

@ -895,17 +895,15 @@ void Copter::do_take_picture()
// log_picture - log picture taken and send feedback to GCS // log_picture - log picture taken and send feedback to GCS
void Copter::log_picture() void Copter::log_picture()
{ {
if (camera._feedback_pin == -1 ){ if (!camera.using_feedback_pin()) {
gcs_send_message(MSG_CAMERA_FEEDBACK); gcs_send_message(MSG_CAMERA_FEEDBACK);
if (should_log(MASK_LOG_CAMERA)) { if (should_log(MASK_LOG_CAMERA)) {
DataFlash.Log_Write_Camera(ahrs, gps, current_loc); DataFlash.Log_Write_Camera(ahrs, gps, current_loc);
} }
} } else {
else { if (should_log(MASK_LOG_CAMERA)) {
camera._camera_triggered = 0; DataFlash.Log_Write_Trigger(ahrs, gps, current_loc);
if (should_log(MASK_LOG_TRIGGER)) { }
DataFlash.Log_Write_Trigger(ahrs, gps, current_loc);
}
} }
} }
@ -915,4 +913,4 @@ void Copter::do_mount_control(const AP_Mission::Mission_Command& cmd)
#if MOUNT == ENABLED #if MOUNT == ENABLED
camera_mount.set_angle_targets(cmd.content.mount_control.roll, cmd.content.mount_control.pitch, cmd.content.mount_control.yaw); camera_mount.set_angle_targets(cmd.content.mount_control.roll, cmd.content.mount_control.pitch, cmd.content.mount_control.yaw);
#endif #endif
} }

View File

@ -278,7 +278,6 @@ enum FlipState {
#define MASK_LOG_MOTBATT (1UL<<17) #define MASK_LOG_MOTBATT (1UL<<17)
#define MASK_LOG_IMU_FAST (1UL<<18) #define MASK_LOG_IMU_FAST (1UL<<18)
#define MASK_LOG_IMU_RAW (1UL<<19) #define MASK_LOG_IMU_RAW (1UL<<19)
#define MASK_LOG_TRIGGER (1UL<<20)
#define MASK_LOG_ANY 0xFFFF #define MASK_LOG_ANY 0xFFFF
// DATA - event logging // DATA - event logging
@ -427,4 +426,4 @@ enum FlipState {
#define THR_BEHAVE_FEEDBACK_FROM_MID_STICK (1<<0) #define THR_BEHAVE_FEEDBACK_FROM_MID_STICK (1<<0)
#define THR_BEHAVE_HIGH_THROTTLE_CANCELS_LAND (1<<1) #define THR_BEHAVE_HIGH_THROTTLE_CANCELS_LAND (1<<1)
#endif // _DEFINES_H #endif // _DEFINES_H

View File

@ -432,24 +432,6 @@ void Copter::frsky_telemetry_send(void)
} }
#endif #endif
/*
check a digitial pin for high,low (1/0)
*/
uint8_t Copter::check_digital_pin(uint8_t pin)
{
int8_t dpin = hal.gpio->analogPinToDigitalPin(pin);
if (dpin == -1) {
return 0;
}
// ensure we are in input mode
hal.gpio->pinMode(dpin, HAL_GPIO_INPUT);
// enable pullup
hal.gpio->write(dpin, 1);
return hal.gpio->read(dpin);
}
/* /*
should we log a message type now? should we log a message type now?
*/ */
@ -467,4 +449,4 @@ bool Copter::should_log(uint32_t mask)
#else #else
return false; return false;
#endif #endif
} }