mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-18 06:53:34 +08:00
Merge branch 'master' of https://github.com/PX4/Firmware into fmuv2_bringup
Fix px4iov2 build issue by selecting the correct NuttX config.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copyright (C) 2012 PX4 Development Team. All rights reserved.
|
||||
* Copyright (c) 2012, 2013 PX4 Development Team. All rights reserved.
|
||||
* Author: Lorenz Meier <lm@inf.ethz.ch>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -34,6 +34,7 @@
|
||||
|
||||
/**
|
||||
* @file param.c
|
||||
* @author Lorenz Meier <lm@inf.ethz.ch>
|
||||
*
|
||||
* Parameter tool.
|
||||
*/
|
||||
@@ -262,7 +263,7 @@ do_set(const char* name, const char* val)
|
||||
switch (param_type(param)) {
|
||||
case PARAM_TYPE_INT32:
|
||||
if (!param_get(param, &i)) {
|
||||
printf("old: %d", i);
|
||||
printf("curr: %d", i);
|
||||
|
||||
/* convert string */
|
||||
char* end;
|
||||
@@ -276,14 +277,13 @@ do_set(const char* name, const char* val)
|
||||
|
||||
case PARAM_TYPE_FLOAT:
|
||||
if (!param_get(param, &f)) {
|
||||
printf("float values are not yet supported.");
|
||||
// printf("old: %4.4f", (double)f);
|
||||
printf("curr: %4.4f", (double)f);
|
||||
|
||||
// /* convert string */
|
||||
// char* end;
|
||||
// f = strtof(val,&end);
|
||||
// param_set(param, &f);
|
||||
// printf(" -> new: %4.4f\n", f);
|
||||
/* convert string */
|
||||
char* end;
|
||||
f = strtod(val,&end);
|
||||
param_set(param, &f);
|
||||
printf(" -> new: %f\n", f);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -71,13 +71,14 @@ usage(const char *reason)
|
||||
warnx("%s", reason);
|
||||
errx(1,
|
||||
"usage:\n"
|
||||
"pwm [-v] [-d <device>] [-u <alt_rate>] [-c <channel group>] [arm|disarm] [<channel_value> ...]\n"
|
||||
"pwm [-v] [-d <device>] [-u <alt_rate>] [-c <channel group>] [-m chanmask ] [arm|disarm] [<channel_value> ...]\n"
|
||||
" -v Print information about the PWM device\n"
|
||||
" <device> PWM output device (defaults to " PWM_OUTPUT_DEVICE_PATH ")\n"
|
||||
" <alt_rate> PWM update rate for channels in <alt_channel_mask>\n"
|
||||
" <channel_group> Channel group that should update at the alternate rate (may be specified more than once)\n"
|
||||
" arm | disarm Arm or disarm the ouptut\n"
|
||||
" <channel_value>... PWM output values in microseconds to assign to the PWM outputs\n"
|
||||
" <chanmask> Directly supply alt rate channel mask (debug use only)\n"
|
||||
"\n"
|
||||
"When -c is specified, any channel groups not listed with -c will update at the default rate.\n"
|
||||
);
|
||||
@@ -96,11 +97,12 @@ pwm_main(int argc, char *argv[])
|
||||
int ret;
|
||||
char *ep;
|
||||
unsigned group;
|
||||
int32_t set_mask = -1;
|
||||
|
||||
if (argc < 2)
|
||||
usage(NULL);
|
||||
|
||||
while ((ch = getopt(argc, argv, "c:d:u:v")) != EOF) {
|
||||
while ((ch = getopt(argc, argv, "c:d:u:vm:")) != EOF) {
|
||||
switch (ch) {
|
||||
case 'c':
|
||||
group = strtoul(optarg, &ep, 0);
|
||||
@@ -120,6 +122,12 @@ pwm_main(int argc, char *argv[])
|
||||
usage("bad alt_rate value");
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
set_mask = strtol(optarg, &ep, 0);
|
||||
if (*ep != '\0')
|
||||
usage("bad set_mask value");
|
||||
break;
|
||||
|
||||
case 'v':
|
||||
print_info = true;
|
||||
break;
|
||||
@@ -143,6 +151,13 @@ pwm_main(int argc, char *argv[])
|
||||
err(1, "PWM_SERVO_SET_UPDATE_RATE (check rate for sanity)");
|
||||
}
|
||||
|
||||
/* directly supplied channel mask */
|
||||
if (set_mask != -1) {
|
||||
ret = ioctl(fd, PWM_SERVO_SELECT_UPDATE_RATE, set_mask);
|
||||
if (ret != OK)
|
||||
err(1, "PWM_SERVO_SELECT_UPDATE_RATE");
|
||||
}
|
||||
|
||||
/* assign alternate rate to channel groups */
|
||||
if (alt_channels_set) {
|
||||
uint32_t mask = 0;
|
||||
|
||||
Reference in New Issue
Block a user