From 23655675d3f71daf74e64859c8ef519e8d49eab0 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Sat, 28 Mar 2015 19:54:00 +0100 Subject: PWM command: Fix code style --- src/systemcmds/pwm/pwm.c | 361 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 257 insertions(+), 104 deletions(-) (limited to 'src/systemcmds/pwm/pwm.c') diff --git a/src/systemcmds/pwm/pwm.c b/src/systemcmds/pwm/pwm.c index 620b0a6f6..6bb9f235c 100644 --- a/src/systemcmds/pwm/pwm.c +++ b/src/systemcmds/pwm/pwm.c @@ -68,41 +68,43 @@ __EXPORT int pwm_main(int argc, char *argv[]); static void usage(const char *reason) { - if (reason != NULL) + if (reason != NULL) { warnx("%s", reason); + } + errx(1, - "usage:\n" - "pwm arm|disarm|rate|failsafe|disarmed|min|max|test|info ...\n" - "\n" - "arm\t\t\t\tArm output\n" - "disarm\t\t\t\tDisarm output\n" - "\n" - "rate ...\t\t\tConfigure PWM rates\n" - "\t[-g ]\t(e.g. 0,1,2)\n" - "\t[-m ]\t(e.g. 0xF)\n" - "\t[-a]\t\t\tConfigure all outputs\n" - "\t-r \t\tPWM rate (50 to 400 Hz)\n" - "\n" - "failsafe ...\t\t\tFailsafe PWM\n" - "disarmed ...\t\t\tDisarmed PWM\n" - "min ...\t\t\t\tMinimum PWM\n" - "max ...\t\t\t\tMaximum 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" - "\t-p \t\tPWM value\n" - "\n" - "test ...\t\t\tDirectly set 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" - "\t-p \t\tPWM value\n" - "\n" - "info\t\t\t\tPrint information\n" - "\n" - "\t-v\t\t\tVerbose\n" - "\t-d \t\t(default " PWM_OUTPUT0_DEVICE_PATH ")\n" - ); + "usage:\n" + "pwm arm|disarm|rate|failsafe|disarmed|min|max|test|info ...\n" + "\n" + "arm\t\t\t\tArm output\n" + "disarm\t\t\t\tDisarm output\n" + "\n" + "rate ...\t\t\tConfigure PWM rates\n" + "\t[-g ]\t(e.g. 0,1,2)\n" + "\t[-m ]\t(e.g. 0xF)\n" + "\t[-a]\t\t\tConfigure all outputs\n" + "\t-r \t\tPWM rate (50 to 400 Hz)\n" + "\n" + "failsafe ...\t\t\tFailsafe PWM\n" + "disarmed ...\t\t\tDisarmed PWM\n" + "min ...\t\t\t\tMinimum PWM\n" + "max ...\t\t\t\tMaximum 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" + "\t-p \t\tPWM value\n" + "\n" + "test ...\t\t\tDirectly set 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" + "\t-p \t\tPWM value\n" + "\n" + "info\t\t\t\tPrint information\n" + "\n" + "\t-v\t\t\tVerbose\n" + "\t-d \t\t(default " PWM_OUTPUT0_DEVICE_PATH ")\n" + ); } @@ -123,10 +125,11 @@ pwm_main(int argc, char *argv[]) unsigned single_ch = 0; unsigned pwm_value = 0; - if (argc < 2) + if (argc < 2) { usage(NULL); + } - while ((ch = getopt(argc-1, &argv[1], "d:vc:g:m:ap:r:")) != EOF) { + while ((ch = getopt(argc - 1, &argv[1], "d:vc:g:m:ap:r:")) != EOF) { switch (ch) { case 'd': @@ -134,6 +137,7 @@ pwm_main(int argc, char *argv[]) warnx("device %s not valid", optarg); usage(NULL); } + dev = optarg; break; @@ -147,15 +151,19 @@ pwm_main(int argc, char *argv[]) while ((single_ch = channels % 10)) { - set_mask |= 1<<(single_ch-1); + set_mask |= 1 << (single_ch - 1); channels /= 10; } + break; case 'g': group = strtoul(optarg, &ep, 0); - if ((*ep != '\0') || (group >= 32)) + + if ((*ep != '\0') || (group >= 32)) { usage("bad channel_group value"); + } + alt_channel_groups |= (1 << group); alt_channels_set = true; warnx("alt channels set, group: %d", group); @@ -164,25 +172,38 @@ pwm_main(int argc, char *argv[]) case 'm': /* Read in mask directly */ set_mask = strtoul(optarg, &ep, 0); - if (*ep != '\0') + + if (*ep != '\0') { usage("BAD set_mask VAL"); + } + break; case 'a': - for (unsigned i = 0; i 0) { warnx("Channels: "); printf(" "); - for (unsigned i = 0; i 0) { ret = ioctl(fd, PWM_SERVO_SET_UPDATE_RATE, alt_rate); - if (ret != OK) + + if (ret != OK) { err(1, "PWM_SERVO_SET_UPDATE_RATE (check rate for sanity)"); + } } /* directly supplied channel mask */ if (set_mask > 0) { ret = ioctl(fd, PWM_SERVO_SET_SELECT_UPDATE_RATE, set_mask); - if (ret != OK) + + if (ret != OK) { err(1, "PWM_SERVO_SET_SELECT_UPDATE_RATE"); + } } /* assign alternate rate to channel groups */ @@ -258,17 +301,22 @@ pwm_main(int argc, char *argv[]) uint32_t group_mask; ret = ioctl(fd, PWM_SERVO_GET_RATEGROUP(group), (unsigned long)&group_mask); - if (ret != OK) + + if (ret != OK) { err(1, "PWM_SERVO_GET_RATEGROUP(%u)", group); + } mask |= group_mask; } } ret = ioctl(fd, PWM_SERVO_SET_SELECT_UPDATE_RATE, mask); - if (ret != OK) + + if (ret != OK) { err(1, "PWM_SERVO_SET_SELECT_UPDATE_RATE"); + } } + exit(0); } else if (!strcmp(argv[1], "min")) { @@ -276,34 +324,46 @@ pwm_main(int argc, char *argv[]) if (set_mask == 0) { usage("no channels set"); } - if (pwm_value == 0) + + if (pwm_value == 0) { usage("no PWM value provided"); + } 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_MIN_PWM, (long unsigned int)&pwm_values); + if (ret != OK) { errx(ret, "failed get min values"); } for (unsigned i = 0; i < servo_count; i++) { - if (set_mask & 1< 0) { - read(0, &c, 1); + read(0, &c, 1); + if (c == 0x03 || c == 0x63 || c == 'q') { /* reset output to the last value */ for (unsigned i = 0; i < servo_count; i++) { - if (set_mask & 1< 0) { ret = read(0, &c, 1); @@ -546,23 +660,29 @@ pwm_main(int argc, char *argv[]) if (ret > 0) { /* reset output to the last value */ for (unsigned i = 0; i < servo_count; i++) { - if (set_mask & 1<