示例#1
0
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;
}
示例#2
0
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;
}