Ejemplo n.º 1
0
int main(int argc, char *argv[])
{
  login();
  read_cmds();

  return 0;
}
Ejemplo n.º 2
0
static int process_command(usb_dev_handle *handle, char *cmd) {
	int tube = 0;
	int value = 0;
	int anim = 0;
	int speed = 0;
	int r = 0;
	int g = 0;
	int b = 0;
	if (sscanf(cmd, "t%d:%d", &tube, &value) == 2 && tube >= 0 && value >= 0) {
		printf("Setting nixie tube %u to %u.\n", tube, value);
		return set_tube(handle, tube, value);
	} else if (sscanf(cmd, "l%d:%d/%d/%d", &tube, &r, &g, &b) == 4 && tube >= 0) {
		printf("Setting nixie LED %u to %u/%u/%u.\n", tube, r, g, b);
		return set_led(handle, tube, r, g, b);
	} else if (sscanf(cmd, "anim:%d:%d", &anim, &speed) == 2 && anim >= 0 && anim >= 0) {
		printf("Setting animation style %u with speed %u.\n", anim, speed);
		return set_animation(handle, anim, speed);
	} else if (sscanf(cmd, "lnum:%d", &value) == 1 && value >= 0) {
		printf("Setting number %u\n", value);
		return set_number(handle, value, 1);
	} else if (sscanf(cmd, "num:%d", &value) == 1 && value >= 0) {
		printf("Setting number %u\n", value);
		return set_number(handle, value, 0);
	} else if (sscanf(cmd, "color:%d/%d/%d", &r, &g, &b) == 3) {
		printf("Setting color %u/%u/%u\n", r, g, b);
		return set_color(handle, r, g, b);
	} else if (strcmp(cmd, "off") == 0) {
		printf("Turning off all tubes...\n");
		return tubes_off(handle);
	} else if (strcmp(cmd, "read") == 0) {
		printf("Reading commands from stdin...\n");
		return read_cmds(handle, 0);
	} else if (strcmp(cmd, "readf") == 0) {
		printf("Reading commands from stdin (autofail)...\n");
		return read_cmds(handle, 1);
	} else {
		fprintf(stderr, "Unable to parse command: %s\n", cmd);
		return 2;
	}
	return 0;

}
Ejemplo n.º 3
0
Archivo: sh.c Proyecto: amazonsx/nos
/* read stdin */
int get_cmds(char *buf, int size)
{
	buf = read_cmds(buf, size);
	if (!buf)
		return -1;
	if (!*buf)
		return 0;
	struct cmd *cmd_cur = cmd_pipes;
	int i = 0;
	while (buf[i]) {
		if (buf[i] == '|') {
			++i;
			continue;
		}
		for (; isspace(buf[i]); ++i);
		int j = i;
		for(; buf[i] && !isspace(buf[i]) && buf[i] != '|'; i++);
		strncpy(cmd_cur->name, buf + j, i - j);
		cmd_cur->name[i - j] = 0;

		for (; isspace(buf[i]); ++i);
		int arg_count = 0;
		while (buf[i] && buf[i] != '|') {
			j = i;
			for (; buf[i] && !isspace(buf[i]) && buf[i] != '|'; i++);
			char *dst = NULL;
			if (buf[j] == '-') {
				++j;
				dst = cmd_cur->opts + strlen(cmd_cur->opts);
			} else {
				cmd_cur->args[arg_count] = malloc(i - j + 1);
				dst = cmd_cur->args[arg_count++];
			}
			strncpy(dst, buf + j, i - j);
			dst[i - j] = 0;
			for (; isspace(buf[i]); ++i);
		}
		++cmd_cur;
	}
	return cmd_cur - cmd_pipes;
}