Skip to content

Commit

Permalink
Add inverted cam mode doc
Browse files Browse the repository at this point in the history
  • Loading branch information
hamishwillee authored Jan 29, 2019
1 parent 42858d9 commit 93657af
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions en/services/camera_def.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ CAM_EV | Exposure Compensation (usually only used for automatic exposure modes.)
CAM_EXPMODE | Exposure Mode (Manual, Auto, Program Auto, Aperture Priority, etc.)
CAM_ISO | ISO
CAM_METERING | Metering Mode
CAM_MODE | Camera Mode. Invariably, when switching modes, some of the camera parameters that are available for one mode is not available for the other. Video mode may offer video recording resolutions while photo mode may offer image capture size, format, compression, etc. If you simply use the MAVLink command [MAV_CMD_SET_CAMERA_MODE](../messages/common.md#MAV_CMD_SET_CAMERA_MODE), you won't have a chance to let the GCS know that. If your camera does have different parameters and/or options for [CAMERA_MODE_IMAGE](../messages/common.md#CAMERA_MODE) or [CAMERA_MODE_VIDEO](../messages/common.md#CAMERA_MODE), you may want to use this parameter (along with the proper exclusion rules) instead. The CGS will look to see if this parameter is exposed. If it is, it will use it instead of [MAV_CMD_SET_CAMERA_MODE](../messages/common.md#MAV_CMD_SET_CAMERA_MODE). If the parameter is not exposed, [MAV_CMD_SET_CAMERA_MODE](../messages/common.md#MAV_CMD_SET_CAMERA_MODE) will be used instead. See an example of a definition of `CAM_MODE` below.
CAM_MODE | Camera Mode. This parameter is used to change the camera mode (via [PARAM_EXT_SET](../messages/common.md#PARAM_EXT_SET)) for cameras that support different settings/options (ISO, video/image resolution, frame rates, encoding format, etc.) for image and video capture [camera modes](../messages/common.md#CAMERA_MODE).<br><br>If it is not defined then [MAV_CMD_SET_CAMERA_MODE](../messages/common.md#MAV_CMD_SET_CAMERA_MODE) can be used to set the mode instead (this command is ignored if `CAM_MODE` is defined), and any configuration settings/options will be common to all modes.<br><br>There is an example `CAM_MODE` definition with additional detail [below](#cam_mode_example).
CAM_SHUTTERSPD | Shutter speed
CAM_VIDRES | Video Resolution (for video capture)
CAM_WBMODE | White Balance Mode
Expand Down Expand Up @@ -159,7 +159,7 @@ There are cases where an option change requires a parameter to be updated. For e

This tells the GCS that when the `CAM_EXPMODE` parameter changes, the `CAM_APERTURE`, `CAM_SHUTTERSPD` and the `CAM_ISO` parameters must be updated (requested from the camera).

#### Range Limit
#### Mode-Specific Range Limit {#cam_mode_example}

This comment has been minimized.

Copy link
@dogmaphobic

dogmaphobic Feb 20, 2019

Contributor

Range Limit applies to any parameter, not just mode. The example here shows a case where you would want to use a mode parameter instead of a command. That's because by using a parameter, you can use things such as Range Limit depending on the mode, which you could not if using a simple command. You could have other parameters that when changed, would cause the range of something else to change. For instance, if you have video recording at 120fps, your shutter speed cannot be lower than 1/120 of a second. In that case, you would use a range limit on shutter speed depending on the video frame rate.

This comment has been minimized.

Copy link
@hamishwillee

hamishwillee Feb 21, 2019

Author Collaborator

THanks. I fixed up the heading and added a sentence explaining this allows any parameter to configure any other: 4291738

Enough?

Suppose your camera has the following ISO options:

Expand Down Expand Up @@ -210,7 +210,9 @@ But this full range is only available when in *Photo Mode*. For whatever reason,

This indicates to the GCS that when the `CAM_MODE` parameter is set to *Video*, only the given range for the `CAM_ISO` parameter is valid. It additionally gives a condition that this is only the case when the `CAM_EXPOSURE` mode is set to *Manual* (1).

This example also tells the GCS not to display this parameter to the user (`control=“0”`). Camera Mode is a standard parameter defined in the [CAMERA\_INFORMATION](../messages/common.md#CAMERA_INFORMATION) message and it’s handled by the GCS in that way. The parameter definition above was created in order to tell the GCS the rules that are applied when changes to the camera mode occur.
This example also tells the GCS not to display this parameter to the user (`control=“0”`).
Camera Mode is a standard parameter defined in the [CAMERA\_INFORMATION](../messages/common.md#CAMERA_INFORMATION) message and it’s handled by the GCS in that way.
The parameter definition above was created in order to tell the GCS the rules that are applied when changes to the camera mode occur.

### Localization

Expand Down

0 comments on commit 93657af

Please sign in to comment.