Camera Extended Parameters

Hello, I’m having trouble understanding the flow of data with the extended parameters. I’d like to change some basic settings through an external camera SDK but can’t understand how to get notified of updated ext parameter changes.

I’m using the sample camera-server C++ code and have it communicating with QGC, sending the camera definition file and subscribing to the camera trigger and triggering the camera. Now I’d like to add some functionality like ISO, Aperture etc. but can’t fully understand the model. Do I need to create a new plugin for these options, I was under the impression that the extended parameters was to avoid the need for this but perhaps I’m wrong. I receive notification of the parameters from the definition file but they are not matched to an existing parameter and thrown out.

[09:55:49|Debug] process param_ext_request_read (mavlink_parameter_server.cpp:335)
[09:55:49|Warn ] Ignoring request_read message extended - param name not found: CAM_SHUTTERSPD (mavlink_parameter_server.cpp:370)
[09:55:49|Debug] process param_ext_request_read (mavlink_parameter_server.cpp:335)
[09:55:49|Warn ] Ignoring request_read message extended - param name not found: CAM_ISO (mavlink_parameter_server.cpp:370)
[09:55:49|Debug] process param_ext_request_read (mavlink_parameter_server.cpp:335)
[09:55:49|Warn ] Ignoring request_read message extended - param name not found: CAM_EXPMODE (mavlink_parameter_server.cpp:370)

I also get notified that the settings are changed but again not matched to an existing parameter.

[09:55:49|Debug] process param_ext_request_read (mavlink_parameter_server.cpp:335)
[09:55:49|Warn ] Ignoring request_read message extended - param name not found: CAM_SHUTTERSPD (mavlink_parameter_server.cpp:370)
[09:55:49|Debug] process param_ext_request_read (mavlink_parameter_server.cpp:335)
[09:55:49|Warn ] Ignoring request_read message extended - param name not found: CAM_ISO (mavlink_parameter_server.cpp:370)
[09:55:49|Debug] process param_ext_request_read (mavlink_parameter_server.cpp:335)
[09:55:49|Warn ] Ignoring request_read message extended - param name not found: CAM_EXPMODE (mavlink_parameter_server.cpp:370)

Can anyone help me better understand how to use or subscribe to these changes and what is involved in adding this functionality?

You need to add the parameters using the ParamServer plugin.

Have a look at my camera-server example:

Thank you Julian, This is exactly what I needed to wrap my head around the concept and it makes perfect sense now. I really appreciate the help!

1 Like