Commit Graph

236 Commits

Author SHA1 Message Date
Peter Barker a18c87a120 AP_Camera: add and use AP_CAMERA_ENABLED 2022-09-21 11:58:38 +10:00
Iampete1 f3b2de9c15 AP_Camera: params always use set method 2022-08-03 13:43:48 +01:00
Henry Wurzburg 1e7fc17af3 AP_Camera: add note to desc's on how to determine GPIO pin numbers 2022-04-24 08:21:01 +09:00
Peter Barker 6a97056736 AP_Camera: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker 1b970545c0 AP_Camera: include cleanups 2022-03-01 11:21:33 +11:00
Peter Barker 84e58c4f7f AP_Camera: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
Peter Barker 1835a63bfb AP_Camera: don't use stale image number in CAMERA_FEEDBACK 2021-11-17 18:48:00 +11:00
Peter Barker 8f1c255693 AP_Camera: stash information required for camera_feedback message
This means the data sent in the mavlink message is closer to the
information when the picture was taken, rather than when we decide we
have the space to send the mavlink message.  When we process the
deferred request to send the camera feedback message is up to the
vagaries of mavlink scheduling, so the data can become quite out-of-date
2021-11-17 18:48:00 +11:00
Andy Piper 9408c5711d AP_Camera: remove build dependant compile 2021-10-26 11:42:12 +11:00
Peter Barker 919dc26ff6 AP_Camera: use location methods to convert altitudes 2021-10-05 13:54:19 +11:00
Peter Barker 8ce4a1fce7 AP_Camera: use AP_AHRS singleton to get current location and home 2021-09-29 18:33:01 +10:00
Andy Piper cf257074c6 AP_Camera: support RunCam Hybrid correctly 2021-06-09 17:04:27 +10:00
Sebastian Roesner 50cac76e0b AP_Camera: Fix wrong comment in libraries/AP_Camera/AP_RunCam.cpp 2021-05-22 10:15:34 +10:00
Patrick José Pereira 5375980aa6 AP_Camera: Add missing const in member functions
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-03 18:45:14 +11:00
Josh Henderson d6dc8864db AP_Camera: Privatize AP_Camera 2021-02-02 10:10:17 +11:00
Andy Piper bd6b28e5d9 AP_Camera: if the RunCam supports both 2-key and 5-key control, use 2-key
adjust camera menus for Split4 4k
use power button to start/stop recording on Split4
2020-11-11 18:14:41 +11:00
Andy Piper ab1d0d53f3 AP_Camera: keep trying to initialize RunCam after boot 2020-09-16 18:00:53 +10:00
Andy Piper 88d8cdadb7 AP_Camera: make runcam check for osd menu before entering osd menu 2020-09-09 20:36:42 +10:00
Andy Piper cd60238e3d AP_Camera: make solo gimbal inclusion configurable per-board 2020-08-04 09:18:14 +10:00
Mirko Denecke 2dfc7c4108 AP_Camera: call update in update_trigger 2020-07-15 08:37:28 +09:00
Andy Piper ac5a7275bf AP_Camera: move crc8_dvb_s2 to AP_Math 2020-07-07 18:48:06 +10:00
Peter Barker ea03504af2 AP_Camera: rename 'enum aux_switch_pos_t' to 'enum class AuxSwitchPos' 2020-06-12 08:11:46 +10:00
Peter Barker d012cf8d47 AP_Camera: use new UARTDriver discard_input method 2020-05-26 09:20:32 +10:00
Tatsuya Yamaguchi f23e592057 AP_Camera: move get_channel_pos function to RC_Channels 2020-05-05 10:09:30 +09:00
Andy Piper b8878380d6 AP_Camera: add RunCam device type 2 documentation 2020-04-06 20:27:32 +10:00
Andy Piper e3d22b9d27 AP_Camera: if exiting a RunCam submenu reset the submenu index to the top 2020-04-06 20:15:38 +10:00
Gone4Dirt c97cc71382 AP_Camera: Correct trigger behaviour when cmd is switched off then on again 2020-03-31 10:05:40 +11:00
Andy Piper 387b5e7002 AP_Camera: bug fixes to support 5-key remote RunCams
allow the boot-time recording state to be configured
only process events on state transitions. Simplifies logic and debugging.
support regular Split 2s
allow menu enter/exit in 5-key mode
match betaflight with 5-Key OSD which requires an "enter" key
2020-02-20 19:58:43 +11:00
Matt Lawrence 05b94de9a0 AP_Camera: Make trigger type enum class 2020-02-18 11:13:27 +11:00
Matt Lawrence a2af217adf AP_Camera: Add handling of GoPro mavlink commands 2020-02-18 11:13:27 +11:00
Peter Barker 8b20c82a18 AP_Camera: send mavlink camera feedback message even if no logger 2020-01-27 17:03:06 -07:00
Andrew Tridgell f1dfb2e401 AP_Camera: fixed build on navio 2019-12-30 13:02:04 +11:00
Andrew Tridgell f10adebb10 AP_Camera: made runcam CAM_RC_TYPE an enable parameter 2019-12-30 13:02:04 +11:00
Andy Piper d8a58ebda4 AP_Camera: allow features override. Report OSD support. 2019-12-30 13:02:04 +11:00
Andy Piper 318a23537d AP_Camera: allow roll right to also enter menu 2019-12-30 13:02:04 +11:00
Andy Piper afcbc5ffdb AP_Camera: fixup OSD menu switching and button timings 2019-12-30 13:02:04 +11:00
Andy Piper 86d9cf7249 AP_Camera: better OSD control logic 2019-12-30 13:02:04 +11:00
Andy Piper 7ad9ce0a01 AP_Camera: add RunCam TYPE and CONTROL options for menu/OSD control 2019-12-30 13:02:04 +11:00
Andy Piper 0eddc8b589 AP_Camera: implementation of the RunCam device protocol for RC camera control
Allows control of 2-key and 5-key OSD menus and recording start/stop
OSD is disabled while in the RunCam menu but reinstated on exit
add arming checks to prevent arming while the OSD menu is enabled
2019-12-30 13:02:04 +11:00
Peter Barker 4780dc40b0 AP_Camera: use corrected version of send_to_components 2019-11-26 12:10:12 +11:00
Pierre Kancir 09f0f34fe5 AP_Camera: pass mavlink_message_t by const reference 2019-07-16 20:51:42 +10:00
Peter Barker 41bddf682f AP_Camera: remove unused includes 2019-07-09 12:47:18 +10:00
Peter Barker 01773d9025 AP_Camera: use singletons for relay and ahrs insead of storing references 2019-07-09 09:32:39 +10:00
Michael du Breuil fc3f09c6c0 AP_Camera: fixup includes 2019-04-05 20:12:53 +11:00
Tom Pittenger 58614fd96a AP_Camera: rename dataflash to logger 2019-03-28 16:40:57 +11:00
Dr.-Ing. Amilcar do Carmo Lucas dba80c95d5 AP_Camera: replace location_offset() and get_distance() function calls with Location object member function calls
This allows removing duplicated code
2019-02-28 11:44:09 +11:00
Peter Barker caec67762e AP_Camera: move reliance on GCS into .cpp file 2019-02-15 08:15:45 +11:00
Tom Pittenger 7fc4003c69 AP_Camera: unify singleton naming to _singleton and get_singleton() 2019-02-10 19:09:58 -07:00
Peter Barker 6fc76a32af GLOBAL: use AP::logger() and strip redundant Log_ from methods 2019-01-18 18:08:20 +11:00
Peter Barker b47733142f GLOBAL: rename DataFlash_Class to AP_Logger 2019-01-18 18:08:20 +11:00
Peter Barker 4e7d64fd17 AP_Camera: adjust for location flags being moved out of union 2019-01-16 11:45:29 +11:00
Andrew Tridgell c1516da203 AP_Camera: use timestamp from trigger time
this avoids time inaccuracy from loop times in timestamps
2018-11-30 10:12:27 +11:00
ChrisBird d8281f3171 AP_Camera: Adding ability to control the Black Magic Micro Cinema Camera
via SBUS from the flight controller directly.  Handles the flipping of
certain channels.  Relies on change to SRV_Channel to add additional functions.
2018-10-30 11:12:01 +11:00
Peter Barker 049f61c943 AP_Camera: populate camera singleton 2018-08-04 11:34:41 +10:00
Peter Barker fb786b8d56 AP_Camera: add singleton 2018-08-01 12:11:30 +09:00
Michael du Breuil 6925dfb4ae AP_Camera: Remove usage of analogPinToDigitalPin 2018-07-11 23:09:52 -07:00
Michael du Breuil f8e9e57523 AP_Camera: reduce feedback pin timer work, remove unneeded inits 2018-07-09 16:42:17 -07:00
Patrick José Pereira 87c09f98cc AP_Camera: Change from labs to abs for floats
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2018-06-21 17:24:14 +01:00
Jacob Walser c4175be7aa AP_Camera: explicitly specify floats 2018-06-11 15:57:48 -04:00
Michael du Breuil 0e6213a4c6 Camera: Track number of completed events
Closes #3903
2018-03-13 00:00:56 +00:00
murata 5b3a402d36 AP_Camera: delete \n from the log using gcs().send_text 2018-02-02 09:40:05 +09:00
Andrew Tridgell 573a5bf3d0 AP_Camera: removed create() method for objects
See discussion here:

  https://github.com/ArduPilot/ardupilot/issues/7331

we were getting some uninitialised variables. While it only showed up in
AP_SbusOut, it means we can't be sure it won't happen on other objects,
so safest to remove the approach

Thanks to assistance from Lucas, Peter and Francisco
2017-12-14 08:12:28 +11:00
Peter Barker 7258fa81d9 AP_Camera: use GPS singleton 2017-11-16 15:28:37 +00:00
André Kjellstrup 1a63fd85d8 AP_Camera: Option to trig by distance only when in AUTO mode 2017-11-14 00:10:22 +00:00
Lucas De Marchi ddde53f84c AP_Camera: add static create method 2017-09-26 03:01:21 +01:00
Peter Barker bb06b02df6 AP_Camera: add const to some parameters 2017-07-28 14:32:58 +01:00
Peter Barker a94bf851eb AP_Camera: use multiplication in place of division 2017-07-28 14:27:53 +01:00
Peter Barker 9390539231 AP_Camera: tidy up usage of trigger_pic 2017-07-28 14:27:53 +01:00
Peter Barker 84ef63edc7 AP_Camera: camera is responsible for taking distance-based-images and logging 2017-07-28 14:27:53 +01:00
Peter Barker 31ffc83f64 AP_Camera: eliminate GCS_MAVLINK::send_statustext_all 2017-07-11 23:53:53 +01:00
Dr.-Ing. Amilcar Do Carmo Lucas 67620e87f0 AP_Camera: Improve the PWM parameters descriptions 2017-06-06 11:06:26 +10:00
Dr.-Ing. Amilcar Do Carmo Lucas 41a9402175 AP_Camera: Use SI units conventions in parameter units
Follow the rules from:
http://physics.nist.gov/cuu/Units/units.html
http://physics.nist.gov/cuu/Units/outside.html
and
http://physics.nist.gov/cuu/Units/checklist.html
one further constrain is that only printable (7bit) ASCII characters are allowed
2017-05-17 18:07:25 +10:00
Michael du Breuil 18b5446765 Camera: Fix an incorrect label on CAM_DURATION 2017-02-13 19:20:49 +00:00
Andrew Tridgell ee7b9a3f8e AP_Camera: adapt to new RC_Channel API 2017-01-12 17:39:37 +11:00
Mathieu OTHACEHE 152edf7189 Global: remove mode line from headers
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Andrew Tridgell e83a3d8185 AP_Camera: clearer parameter docs for trigger pin 2016-04-15 09:33:47 +10:00
Andrew Tridgell 9f31fbb895 AP_Camera: support fast timer capture on AUX4 on Pixhawk
microsecond capture of hot-shoe
2016-04-15 09:28:51 +10:00
Lucas De Marchi d721ad70eb AP_Camera: replace header guard with pragma once 2016-03-16 18:40:40 +11:00
Andrew Tridgell dc998a2eaf AP_Camera: make AP_Camera::control() return bool for picture trigger
this allows a picture to be logged if it is requested
2016-01-29 09:31:40 +11:00
Andrew Tridgell 2099f40d89 AP_Camera: added CAM_FEEDBACK_POL option
allows selection of trigger polarity
2016-01-29 09:19:44 +11:00
Andrew Tridgell 0be28999ea AP_Camera: updated docs for timing of trigger pin 2016-01-29 09:19:44 +11:00
Andrew Tridgell 061ee5e4fd AP_Camera: use timer for faster camera trigger pin detection 2016-01-29 09:19:43 +11:00
Dario Lindo Andres 2f3510023d AP_Camera: Support for camera feedback signal
Added _feedback_pin;
Added _camera_triggered;
Included FEEDBACK_PIN parameter and his default definition
2016-01-29 09:19:43 +11:00
Andre Kjellstrup 6da7e76990 AP_Camera: Camera options for better camera control
All on one because they would not pass autotest if split up.
2015-12-18 18:16:11 +11:00
Lucas De Marchi 1c8f6c2ee5 AP_Camera: remove checks for HAL_BOARD_APM2 and HAL_BOARD_APM1 2015-11-04 12:14:11 +11:00
Lucas De Marchi 831d8acca5 Remove use of PROGMEM
Now variables don't have to be declared with PROGMEM anymore, so remove
them. This was automated with:

    git grep -l -z PROGMEM | xargs -0 sed -i 's/ PROGMEM / /g'
    git grep -l -z PROGMEM | xargs -0 sed -i 's/PROGMEM//g'

The 2 commands were done so we don't leave behind spurious spaces.

AVR-specific places were not changed.
2015-10-30 14:35:16 +09:00
Randy Mackay bc06d67645 AP_Camera: fix configure command id sent to components
Also removed unnecessary setting of target system, component and
confirmation and minor formatting fix
2015-09-16 13:06:46 +09:00
squilter 8391764c60 AP_Camera: add support for do_digicam_x via command_long 2015-09-16 13:06:44 +09:00
Andrew Tridgell 745a5998f2 AP_Camera: added CAM_RELAY_ON parameter
allows for camera that trigger low
2015-09-07 08:07:17 +10:00
Gustavo Jose de Sousa 4887d8eb94 AP_Camera: standardize inclusion of libaries headers
This commit changes the way libraries headers are included in source files:

 - If the header is in the same directory the source belongs to, so the
 notation '#include ""' is used with the path relative to the directory
 containing the source.

 - If the header is outside the directory containing the source, then we use
 the notation '#include <>' with the path relative to libraries folder.

Some of the advantages of such approach:

 - Only one search path for libraries headers.

 - OSs like Windows may have a better lookup time.
2015-08-11 16:28:42 +10:00
Andrew Tridgell d2167633f0 AP_Camera: revert AP_Math class change 2015-05-05 13:27:06 +10:00
Tom Pittenger ad11a57f57 AP_Compass: compiler warnings: apply is_zero(float) or is_equal(float) 2015-05-05 13:26:51 +10:00
Grant Morphett 444841537e AP_Camera: Just putting the newline at the end of the file. 2015-04-28 15:23:34 +09:00
Tom Pittenger c1d4992dac Camera: fix compile warnings re float constants 2015-04-24 12:28:03 +09:00
Randy Mackay 18a73d8630 Camera: use camera feedback flag 2015-04-21 22:22:57 +09:00
Randy Mackay 337a94e52e Camera: remove empty configure_msg method 2015-04-20 13:50:15 +09:00
Randy Mackay d456b97fd2 Camera: control_cmd triggers pic 2015-04-20 13:50:12 +09:00
Jaime Machuca 38491c4ff7 Camera: fix mission cmds sending msgs to components
mission commands were triggering the sending of
mavlink mission items when they should have been sending
command long messages
2015-04-20 13:50:10 +09:00
Randy Mackay 4eb3263653 Camera: mission cmds send do-digicam msgs to components
This allows digicam-control and digicam-configure mission
command to trigger sending the equivalent mavlink messages
to components
2015-04-20 13:50:08 +09:00
Randy Mackay 8dcd555037 Camera: trigger_pic sends do-digicam-control to components
This (optionally) allows pictures triggered from ch7/ch8
switch to send a mavlink do-digicam-control message to
components
2015-04-20 13:50:06 +09:00
Andrew Tridgell 4a9331c505 AP_Camera: removed use of mavlink_check_target() 2014-12-11 12:32:24 +09:00
Randy Mackay 1e4ec5f6a2 Camera: add f to float constants 2014-10-31 14:46:51 +09:00
Randy Mackay ad7a9bf81b Camera: initialise image_index 2014-10-31 14:46:49 +09:00
Arthur Benemann 7bb4a39608 Camera: record number of pictures taken since boot
The field is useful for detecting in a GCS if a mavlink_msg_camera_feedback message was dropped.
2014-10-31 14:46:45 +09:00
Arthur Benemann 2e4812afb5 Camera: Added feedback message support
Now the autopilot can publish the state of the camera via the mavlink_msg_camera_feedback message.
2014-10-31 14:46:38 +09:00
Randy Mackay d09faa0015 BattMon: minor param description additions 2014-10-14 12:42:57 +09:00
Randy Mackay d530fe1806 Camera: remove unused reference to hal
Resolves one compiler warning
2014-07-16 14:40:52 +09:00
Andrew Tridgell 55b604b147 AP_Camera: updates for relay API change 2014-01-20 17:06:29 +11:00
Randy Mackay bffa7c3783 Camera: correct _trigger_type comment 2013-12-06 10:28:36 +09:00
Andrew Tridgell 98d391efa0 AP_Camera: added note on DO_SET_CAM_TRIGG_DIST in docs 2013-10-15 10:09:39 +11:00
Andrew Tridgell 0f0b040891 AP_Camera: added set_trigger_distance() call 2013-10-11 21:37:27 +11:00
Randy Mackay ab71f2e535 AP_Camera: remove unused methods
throttle_pic, distance_pic and transistor_pic were not defined nor
called
2013-09-24 23:25:54 +09:00
Andrew Tridgell f3b3e23bbc AP_Camera: fix for new AP_Math API
Pair-Programmed-With: Brandon Jones <brnjones@gmail.com>
2013-08-05 10:24:09 +10:00
Andrew Tridgell 0f72eae216 AP_Camera: removed 3 camera trigger types that do not work
the trigger by wp distance, trigger with throttle off and trigger a
transistor all don't work, and are not structured correctly, plus are
dangerous.

The existing relay support can (correctly!) handle the resistor case
without hard-wiring a pin. The "turn off throttle to trigger" idea is
badly broken, it would crash a copter if it worked. We can make it
work properly on planes if there is demand. As it was it didn't work
anyway. 

The triggger by wp distance method was broken, and had no way to
initiate a trigger anyway
2013-07-15 09:55:38 +10:00
Andrew Tridgell 9959f6b2df AP_Camera: removed incorrect mavlink sends
these sends did nothing, as MAVLINK_COMM_3 is not connected to
anything. If it was connected they would be dangerous, as a blocking
serial write could cause the stabilization of a copter not to run. If
the serial port was non-blocking it would corrupt the packet.

If we needed something like this it would have to use the MAVLink
packet queueing logic we use elsewhere
2013-07-10 11:51:40 +10:00
Craig@3DR f5154d9e7a AP_Camera: changed update_location() to return true for camera trigger
Makes the main vehicle code responsible for taking a photo so logging can occur
2013-07-10 08:39:56 +10:00
Andrew Tridgell 169b5a30a5 AP_Camera: added CAM_TRIGG_DIST parameter
for triggering every N meters of GPS distance travelled
2013-06-25 12:44:26 +10:00
Andrew Tridgell fb7ae8c764 AP_Camera: fixed indent-tabs-mode 2013-05-30 09:54:53 +10:00
Stange Szilard 6516bffbb6 AP_Camera: enable relay off in all builds 2013-04-09 11:38:30 +10:00
Sandro Benigno 6abe1fe94f AP Camera changes required to work with modified AP_Relay lib. 2013-01-02 09:55:37 +11:00
Sandro Benigno cc7f26a99b New Relay class and the subclasses for APM1 and APM2.
Updated AP_Camera class.
2013-01-02 09:31:32 +11:00
Andrew Tridgell 13ea0bb5d8 AP_Camera: disable relay on APM2 2012-12-20 14:53:24 +11:00
Andrew Tridgell ceb3f577d8 libraries: use new math functions 2012-12-20 14:53:22 +11:00
Andrew Tridgell 53470aff09 AP_Camera: updates for new AP_Param API 2012-12-20 14:51:38 +11:00
Pat Hickey 054f35e33d AP_Camera: ported to AP_HAL 2012-12-20 14:51:30 +11:00
rmackay9 d11ee04888 AP_Camera: add three new parameters DURATION, SERVO_ON and SERVO_OFF to allow better shutter control when using servo.
Removed unused variables to save 4 bytes.
Renamed some variables and functions to make more consistent with existing code base.
2012-12-06 17:46:09 +09:00
Andrew Tridgell 4c07add542 AP_Camera: updated for new RC_Channel_aux API 2012-09-08 15:13:06 +10:00
uncrustify 6f09714618 uncrustify libraries/AP_Camera/AP_Camera.h 2012-08-21 19:00:51 -07:00
uncrustify 30107b9665 uncrustify libraries/AP_Camera/AP_Camera.cpp 2012-08-21 19:00:51 -07:00
Andrew Tridgell 518d6365ff AP_Param: update remaining libraries for new constructor syntax 2012-08-08 12:11:57 +10:00
rmackay9 5616b1769b AP_Camera: changed "int" to "int16_t" and "long" to "int32_t" here and there. 2012-07-15 16:26:12 +09:00
rmackay9 6f8d0a02a4 AP_Camera: moved seme constructor initialisers around to remove compile warnings 2012-07-12 09:33:22 +09:00
Amilcar Lucas 594cedd324 Documentation improvements, no functional changes (only comments) 2012-06-17 22:53:54 +02:00
Amilcar Lucas 1906e06b69 Added camera trigger functionality 2012-06-13 21:00:20 +02:00
Amilcar Lucas b3d4bb1478 Again remove some more files from the APM_Camera branch 2011-09-10 12:51:48 +02:00
joeholdsworth@gmail.com 659753d7a6 Amilcar Lucas & Ritchie Wilson's camera code mixed in with ap_mount code, this needs to be separated.
git-svn-id: https://arducopter.googlecode.com/svn/trunk@3145 f9c3cf11-9bcb-44bc-f272-b75c42450872
2011-08-21 21:14:02 +00:00