void setmotoroutput(unsigned char motornum, unsigned char motorchannel, fixedpointnum fpvalue) { // set the output of a motor // convert from fixedpoint 0 to 1 into int 1000 to 2000 int value = 1000 + ((fpvalue * 1000L) >> FIXEDPOINTSHIFT); if (value < ARMED_MIN_MOTOR_OUTPUT) value = ARMED_MIN_MOTOR_OUTPUT; if (value > MAX_MOTOR_OUTPUT) value = MAX_MOTOR_OUTPUT; setoutput(motorchannel, value); global.motoroutputvalue[motornum] = value; }
int main(int argc, const char *argv[]) { int i, j, max; bool filenames_only; filenames_only = 0; i = 1; for(i = 1; i < argc; ++i) { if(argv[i][0] == '-' && !filenames_only) { if(argv[i][1] == '-') { // long options if(argv[i][2] == '0') { filenames_only = 1; } else if(strcmp(argv[i] + 2, "help") == 0) { usage(argv[0]); /*NOTREACHED*/ } else if(strcmp(argv[i] + 2, "force") == 0) { g_force = true; } else if(strcmp(argv[i] + 2, "output") == 0) { i++; if(i >= argc) { fprintf(stderr, "<no file>:0: error: expected a path after --output\n"); usage(argv[0]); /*NOTREACHED*/ } setoutput(argv[i]); } else { fprintf(stderr, "<no file>:0: error: unknown option '%s'\n", argv[i]); usage(argv[0]); /*NOTREACHED*/ } } else { max = static_cast<int>(strlen(argv[i])); for(j = 1; j < max; ++j) { switch(argv[i][j]) { case 'f': g_force = true; break; default: fprintf(stderr, "<no file>:0: error: unknown option '-%c'\n", argv[i][j]); case 'h': usage(argv[0]); /*NOTREACHED*/ case 'o': /* hmmm 1 */ i++; if(i >= argc) { fprintf(stderr, "<no file>:0: error: expected a path after --output\n"); usage(argv[0]); /*NOTREACHED*/ } setoutput(argv[i]); /* hmmm 2 */ j = max; break; } } } } else { parse(argv[i]); } } return g_errcnt > 0 ? 1 : 0; }