diff --git a/ArduCopter/ArduCopter.cpp b/ArduCopter/ArduCopter.cpp index 529a9ad5d4..e89360df9d 100644 --- a/ArduCopter/ArduCopter.cpp +++ b/ArduCopter/ArduCopter.cpp @@ -127,7 +127,7 @@ const AP_Scheduler::Task Copter::scheduler_tasks[] = { SCHED_TASK(gcs_send_deferred, 50, 550), SCHED_TASK(gcs_data_stream_send, 50, 550), 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(fifty_hz_logging_loop, 50, 110), SCHED_TASK(full_rate_logging_loop,400, 100), @@ -347,12 +347,11 @@ void Copter::update_trigger(void) { #if CAMERA == ENABLED camera.trigger_pic_cleanup(); - if(camera._camera_triggered == 0 && camera._feedback_pin != -1 && check_digital_pin(camera._feedback_pin) == 0){ - gcs_send_message(MSG_CAMERA_FEEDBACK); - if (should_log(MASK_LOG_CAMERA)) { - DataFlash.Log_Write_Camera(ahrs, gps, current_loc); - } - camera._camera_triggered = 1; + if (camera.check_trigger_pin()) { + gcs_send_message(MSG_CAMERA_FEEDBACK); + if (should_log(MASK_LOG_CAMERA)) { + DataFlash.Log_Write_Camera(ahrs, gps, current_loc); + } } #endif } @@ -656,4 +655,4 @@ void Copter::update_altitude() } } -AP_HAL_MAIN_CALLBACKS(&copter); \ No newline at end of file +AP_HAL_MAIN_CALLBACKS(&copter); diff --git a/ArduCopter/Copter.h b/ArduCopter/Copter.h index e8ac634f3d..6ccf10736c 100644 --- a/ArduCopter/Copter.h +++ b/ArduCopter/Copter.h @@ -959,7 +959,6 @@ private: bool optflow_position_ok(); void update_auto_armed(); void check_usb_mux(void); - uint8_t check_digital_pin(uint8_t pin); void frsky_telemetry_send(void); bool should_log(uint32_t mask); bool current_mode_has_user_takeoff(bool must_navigate); @@ -1055,4 +1054,4 @@ extern Copter copter; using AP_HAL::millis; using AP_HAL::micros; -#endif // _COPTER_H_ \ No newline at end of file +#endif // _COPTER_H_ diff --git a/ArduCopter/Log.cpp b/ArduCopter/Log.cpp index 4e47741410..4fd859d7c3 100644 --- a/ArduCopter/Log.cpp +++ b/ArduCopter/Log.cpp @@ -50,7 +50,6 @@ bool Copter::print_log_menu(void) PLOG(COMPASS); PLOG(CAMERA); PLOG(PID); - PLOG(TRIGGER); #undef PLOG } @@ -133,7 +132,6 @@ int8_t Copter::select_logs(uint8_t argc, const Menu::arg *argv) TARG(COMPASS); TARG(CAMERA); TARG(PID); - TARG(TRIGGER); #undef TARG } @@ -907,4 +905,4 @@ void Copter::Log_Write_Optflow() {} void Copter::start_logging() {} void Copter::log_init(void) {} -#endif // LOGGING_ENABLED \ No newline at end of file +#endif // LOGGING_ENABLED diff --git a/ArduCopter/commands_logic.cpp b/ArduCopter/commands_logic.cpp index 319e292936..eaa2366b24 100644 --- a/ArduCopter/commands_logic.cpp +++ b/ArduCopter/commands_logic.cpp @@ -895,17 +895,15 @@ void Copter::do_take_picture() // log_picture - log picture taken and send feedback to GCS void Copter::log_picture() { - if (camera._feedback_pin == -1 ){ - gcs_send_message(MSG_CAMERA_FEEDBACK); - if (should_log(MASK_LOG_CAMERA)) { - DataFlash.Log_Write_Camera(ahrs, gps, current_loc); - } - } - else { - camera._camera_triggered = 0; - if (should_log(MASK_LOG_TRIGGER)) { - DataFlash.Log_Write_Trigger(ahrs, gps, current_loc); - } + if (!camera.using_feedback_pin()) { + gcs_send_message(MSG_CAMERA_FEEDBACK); + if (should_log(MASK_LOG_CAMERA)) { + DataFlash.Log_Write_Camera(ahrs, gps, current_loc); + } + } else { + if (should_log(MASK_LOG_CAMERA)) { + 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 camera_mount.set_angle_targets(cmd.content.mount_control.roll, cmd.content.mount_control.pitch, cmd.content.mount_control.yaw); #endif -} \ No newline at end of file +} diff --git a/ArduCopter/defines.h b/ArduCopter/defines.h index 6763074a0b..84b0819151 100644 --- a/ArduCopter/defines.h +++ b/ArduCopter/defines.h @@ -278,7 +278,6 @@ enum FlipState { #define MASK_LOG_MOTBATT (1UL<<17) #define MASK_LOG_IMU_FAST (1UL<<18) #define MASK_LOG_IMU_RAW (1UL<<19) -#define MASK_LOG_TRIGGER (1UL<<20) #define MASK_LOG_ANY 0xFFFF // DATA - event logging @@ -427,4 +426,4 @@ enum FlipState { #define THR_BEHAVE_FEEDBACK_FROM_MID_STICK (1<<0) #define THR_BEHAVE_HIGH_THROTTLE_CANCELS_LAND (1<<1) -#endif // _DEFINES_H \ No newline at end of file +#endif // _DEFINES_H diff --git a/ArduCopter/system.cpp b/ArduCopter/system.cpp index c2baaff03a..963a670c40 100644 --- a/ArduCopter/system.cpp +++ b/ArduCopter/system.cpp @@ -432,24 +432,6 @@ void Copter::frsky_telemetry_send(void) } #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? */ @@ -467,4 +449,4 @@ bool Copter::should_log(uint32_t mask) #else return false; #endif -} \ No newline at end of file +}