#!/usr/bin/perl
use v5.14;
use warnings;
use UAV::Pilot::ARDrone::Driver;
use Getopt::Long;
my $HOST = '192.168.1.1';
my $PORT = UAV::Pilot::ARDrone::Driver->ARDRONE_PORT_COMMAND;
my $KEY = '';
my $VALUE = '';
GetOptions(
'host=s' => \$HOST,
'port=i' => \$PORT,
'k|key=s' => \$KEY,
'v|value=s' => \$VALUE,
);
die "Need a --key option\n" unless $KEY;
die "Need a --value option\n" unless $VALUE;
my $true_key = 'ARDRONE_CONFIG_' . uc($KEY);
my $ardrone = UAV::Pilot::ARDrone::Driver->new({
host => $HOST,
($PORT ? (port => $PORT) : ()),
});
die "Can't find config for '$KEY'\n"
unless $ardrone->can( $true_key );
$ardrone->connect;
$ardrone->at_config(
$ardrone->$true_key,
$VALUE,
);
__END__
=head1 SYNOPSIS
uav_config \
--host 192.168.1.1 \
--port 1234 \
--key video_codec_fps \
--value 30
=head1 DESCRIPTION
Set a config key on the UAV. A list of keys can be found in the section "Constants" ->
"Configuration" in the docs for C<UAV::Pilot::ARDrone::Driver>. To set a C<--key> option,
take off the C<ARDRONE_CONFIG_> at the start of the config key name. For instance, to
set C<ARDRONE_CONFIG_VIDEO_CODEC_FPS>, you would instead set C<video_codec_fps> (lowercase
is OK).
=cut