diff --git a/src/systemcmds/pwm/pwm.c b/src/systemcmds/pwm/pwm.c index abd7785f1f..7ab85d7069 100644 --- a/src/systemcmds/pwm/pwm.c +++ b/src/systemcmds/pwm/pwm.c @@ -90,7 +90,7 @@ usage(const char *reason) "disarmed ...\t\t\tDisarmed PWM\n" "min ...\t\t\t\tMinimum PWM\n" "max ...\t\t\t\tMaximum PWM\n" - "trim ...\t\t\tTrim PWM\n" +// "trim ...\t\t\tTrim PWM\n" "\t[-c ]\t\t(e.g. 1234)\n" "\t[-m ]\t(e.g. 0xF)\n" "\t[-a]\t\t\tConfigure all outputs\n" @@ -168,7 +168,7 @@ pwm_main(int argc, char *argv[]) unsigned group; unsigned long channels; unsigned single_ch = 0; - unsigned pwm_value = 0; + int pwm_value = 0; if (argc < 2) { usage(NULL); @@ -449,48 +449,49 @@ pwm_main(int argc, char *argv[]) exit(0); - } else if (!strcmp(argv[1], "trim")) { - - if (set_mask == 0) { - usage("no channels set"); - } - - struct pwm_output_values pwm_values; - - memset(&pwm_values, 0, sizeof(pwm_values)); - - pwm_values.channel_count = servo_count; - - /* first get current state before modifying it */ - ret = ioctl(fd, PWM_SERVO_GET_TRIM_PWM, (long unsigned int)&pwm_values); - - if (ret != OK) { - errx(ret, "failed get trim values"); - } - - for (unsigned i = 0; i < servo_count; i++) { - if (set_mask & 1 << i) { - pwm_values.values[i] = pwm_value; - - if (print_verbose) { - warnx("Channel %d: trim PWM: %d", i + 1, pwm_value); - } - } - } - - if (pwm_values.channel_count == 0) { - usage("no PWM values added"); - - } else { - - ret = ioctl(fd, PWM_SERVO_SET_TRIM_PWM, (long unsigned int)&pwm_values); - - if (ret != OK) { - errx(ret, "failed setting trim values"); - } - } - - exit(0); +// } else if (!strcmp(argv[1], "trim")) { +// +// if (set_mask == 0) { +// usage("no channels set"); +// } +// +// struct pwm_output_values pwm_values; +// +// memset(&pwm_values, 0, sizeof(pwm_values)); +// +// pwm_values.channel_count = servo_count; +// +// /* first get current state before modifying it */ +// ret = ioctl(fd, PWM_SERVO_GET_TRIM_PWM, (long unsigned int)&pwm_values); +// +// if (ret != OK) { +// errx(ret, "failed get trim values"); +// } +// +// for (unsigned i = 0; i < servo_count; i++) { +// if (set_mask & 1 << i) { +// pwm_values.values[i] = pwm_value; +// +// if (print_verbose) { +// warnx("Channel %d: trim PWM: %d", i + 1, pwm_value); +// } +// } +// } +// +// if (pwm_values.channel_count == 0) { +// usage("no PWM values added"); +// +// } else { +// +// ret = ioctl(fd, PWM_SERVO_SET_TRIM_PWM, (long unsigned int)&pwm_values); +// +// if (ret != OK) { +// errx(ret, "failed setting trim values"); +// } +// } +// +// exit(0); +// } else if (!strcmp(argv[1], "disarmed")) { @@ -861,8 +862,9 @@ pwm_main(int argc, char *argv[]) } - printf(" failsafe: %d, disarmed: %d us, min: %d us, max: %d us, trim: %d us)", - failsafe_pwm.values[i], disarmed_pwm.values[i], min_pwm.values[i], max_pwm.values[i], trim_pwm.values[i]); + printf(" failsafe: %d, disarmed: %d us, min: %d us, max: %d us, trim: %5.2f)", + failsafe_pwm.values[i], disarmed_pwm.values[i], min_pwm.values[i], max_pwm.values[i], + (double)((int16_t)(trim_pwm.values[i]) / 10000.0f)); printf("\n"); } else {