Exemplo n.º 1
0
Arquivo: kitt.c Projeto: built/kitt
int main(void)
{
    configure_teensy();
    configure_LEDs();
    configure_usb();

    int16_t lastcmd = '\0', cmd = '\0';

    while (1)
    {
        wait_for_usb_connection();

        while (1)
        {
            cmd = usb_serial_getchar();

            if(is_valid_control_key(cmd))
            {
                if(cmd == '+') adjust_speed(-10); // Speed up == less time.
                else if(cmd == '-') adjust_speed(10);
            }

            if( is_valid_cmd(cmd) )
            {
                lastcmd = cmd;
            }

            if(lastcmd == 'k') knight_rider();
            else if(lastcmd == 's') step();
            else if(lastcmd == 'f') follow();
            else if(lastcmd == '0') nop();
            else demo();
        }
    }
}
Exemplo n.º 2
0
void execute_shell(SystemMem *SysMem_s)
{
    char inputBuffer[MAX_INPUT_LENGTH]; // Taille max d'une commande saisie par l'utilisateur
    InputCmd InputCmd_s; // Struct de la commande saisie
    fflush(stdin);

    // DEBUG
#ifdef DEBUG
    char count_str[MAX_INPUT_LENGTH];
    char time_str[1000];
    int count = 1;
    time_t starttime;
    starttime = time(NULL);
#endif     

    // Demande une commande à l'utilisateur
    while (fgets(inputBuffer, MAX_INPUT_LENGTH, stdin)) {

        // Récupération de la commande et du path dans la chaîne saisie par l'utilisateur
        if (parse_input_data(inputBuffer, &InputCmd_s) == 0) {
            // Traite la commande de fin
            if (is_exit_cmd(InputCmd_s.cmdStr))
                break; // Quit

            // Traite les commandes    
            if (strcmp(InputCmd_s.cmdStr, "") != 0 && is_valid_cmd(InputCmd_s)) // strcmp permet une saisie vide
                execute_cmd(SysMem_s, &InputCmd_s);
        }

#ifdef DEBUG
        sprintf(count_str, "%d", count);
        sprintf(time_str, "%ld", (time(NULL) - starttime));

        fprintf(stderr, "DEBUG-> (");
        fprintf(stderr, count_str);
        fprintf(stderr, ") CMD: [");
        fprintf(stderr, InputCmd_s.cmdStr);
        fprintf(stderr, "] PATH: [");
        fprintf(stderr, InputCmd_s.pathStr);
        fprintf(stderr, "] WRITESTR: [");
        fprintf(stderr, InputCmd_s.dataStr);
        fprintf(stderr, "] @");
        fprintf(stderr, time_str);
        fprintf(stderr, "secs\n");

        count++;
#endif  

        strcpy(InputCmd_s.cmdStr, ""); // Reset
        strcpy(InputCmd_s.pathStr, ""); // Reset
        strcpy(InputCmd_s.dataStr, ""); // Reset
    }
}
static ssize_t disable_store(
		struct device *dev, struct device_attribute *attr,
		const char *buf, size_t size)
{
	struct usb_notify_dev *udev = (struct usb_notify_dev *)
		dev_get_drvdata(dev);

	char *disable;
	int size_ret, param = -EINVAL;
	size_t ret = -ENOMEM;

	if (size > MAX_DISABLE_STR_LEN) {
		pr_err("%s size(%zu) is too long.\n", __func__, size);
		goto error;
	}

	disable = kzalloc(size+1, GFP_KERNEL);
	if (!disable)
		goto error;

	size_ret = sscanf(buf, "%s", disable);

	if (udev->set_disable) {
		param = is_valid_cmd(disable, udev->disable_state_cmd);
		if (param == -EINVAL) {
			ret = param;
		} else {
			if (param != -EEXIST)
				udev->set_disable(udev, param);
			memset(udev->disable_state_cmd, 0,
				sizeof(udev->disable_state_cmd));
			strncpy(udev->disable_state_cmd,
				disable, strlen(disable));
			ret = size;
		}
	} else
		pr_err("set_disable func is NULL\n");
	kfree(disable);
error:
	return ret;
}
Exemplo n.º 4
0
Arquivo: cmd.c Projeto: agadiffe/ft_sh
void			handle_line(t_state *state, char *line)
{
	char	**cmds;
	int		redirection_count;

	redirection_count = ft_wordcountwith_redirection(line, "<|>&");
	if (redirection_count > 1)
	{
		if (!is_valid_cmd(state->pwd))
			print_no_such_file_or_dir(state, state->shell_name, state->pwd);
		else if (check_if_valid_entry(state, line))
			run_redirection(state, line);
	}
	else if (redirection_count == 1)
	{
		cmds = ft_strsplitwith_quote(line, " \t", 1);
		if (cmds && cmds[0])
			handle_cmds(state, line, cmds);
		ft_strtabdel(&cmds);
	}
}