Exemple #1
0
void com_putu(unsigned u) {
    char buf[1024];

    if (u < 10)
        com_putc(UTOC(u));
    else
    {
        char *bp;

        bp = buf + 1024 - 1;
        *bp-- = '\0';
        while (u && bp >= buf)
        {
            *bp-- = UTOC(u % 10);
            u /= 10;
        }
        com_puts(++bp);
    }
}
/**
 * Try to connect a device
 */
void connect_device() {
    const char * ANIM_CHARS = "-\\|/";
    const char PASSWORD[6] = {'P', 'e', 'd', 'a', 0xff, 0};

    int state = 0;
    int in = 0;

    printf("Waiting for device... Press CTRL+C to exit.  ");

    while(1) {
        printf("\b%c", ANIM_CHARS[state]);
        fflush(stdout);

        com_puts(PASSWORD);
        in = com_getc(0);

        if(in == CONNECT) {
            sendcommand(COMMAND);

            // Empty buffer
            while(1) {
                switch(com_getc(TIMEOUT)) {
                case SUCCESS:
                    printf("\n...Connected!\n");
                    gettimeofday(&t_start, NULL);
                    return;
                case -1:
                    printf("\n...Connection timeout!\n\n");
                    exit (0);
                }
            }
        }
        state++;
        state = state % 4;
        usleep(10000);//wait 10ms
    }
}//void connect_device()