Esempio n. 1
0
int main(void)
{
	char car_num_str[8] = "A23456";
	int tail_num = 0;	// "A23456" -> 6
	enum day today;	// 1-7
	char last_char;
	int ret;
	
	printf("Please input your car number:\n");
	scanf("%s", car_num_str);	

	printf("car num is %s\n", car_num_str);
	
	/* get the last char of car number string */
	last_char = get_last_char(car_num_str);
	printf("last char is %c\n", last_char);

	tail_num = last_char - '0';
	//today = MONDAY;
	//today = FRIDAY;
	today = get_week_day(2013, 12, 31);
	printf("today is day %d\n", today);

	ret = is_restricted(tail_num, today);
	if (ret == 1)
		printf("restricted!\n");
	else
		printf("NOT restricted!\n");
		

	return 0;
}
Esempio n. 2
0
static char keyboard_cmd(enum DrawCmds cmd, struct guiKeyboard *keyboard, struct touch *coords)
{
    char lastchar = keyboard->lastchar;
    struct guiBox box;
    const char * const *keys = array[keyboard->type];

    u8 row, i;
    char ch = '\0';
    for(row = 0; row < 4; row++) {
        const char *ptr = keys[row];
        u8 first = get_first_char(ptr);
        u8 last  = get_last_char(ptr);
        u8 num_chars = 1 + last - first;
        u16 x_off = (LCD_WIDTH - KEY_W1 * num_chars) / 2;
        u16 y_off = Y_OFFSET + KEY_H * row;

        for(i = 0; i < strlen(ptr); i++) {
            char c = ptr[i];
            if (c == '\x09') { //CAPS
                _make_box(&box, 0, Y_OFFSET + KEY_H * 2, KEY_W2, KEY_H);
            } else if (c == '\x08') { //DEL
                _make_box(&box, LCD_WIDTH - KEY_W2 -1, Y_OFFSET + KEY_H * 2, KEY_W2, KEY_H);
            } else if (c == '\x01' || c == '\x02') { //change KB type
                _make_box(&box, 0, Y_OFFSET + KEY_H * 3, KEY_W3, KEY_H);
            } else if (c == '\x06') { //DONE
                _make_box(&box, LCD_WIDTH - KEY_W3 -1, Y_OFFSET + KEY_H * 3, KEY_W3, KEY_H);
            } else if (c == ' ') { //SPACE
                _make_box(&box, KEY_W3, Y_OFFSET + KEY_H * 3, LCD_WIDTH - 2 * KEY_W3 -1, KEY_H);
            } else {
                _make_box(&box, x_off + (i - first) * KEY_W1, y_off, KEY_W1, KEY_H);
            }
            if (cmd == KB_DRAW) {
                if ((c == '\x01' || c == '\x02') && (lastchar == '\x01' || lastchar == '\x02'))
                    keyboard->lastchar = c;
                u8 pressed = c == keyboard->lastchar;
                kb_draw_key(&box, set_case(c, keyboard->flags & FLAG_CAPS), pressed);
            } else if (cmd == KB_RELEASE || cmd == KB_PRESS) {
                if(c == lastchar) {
                    kb_draw_key(&box, set_case(c, keyboard->flags & FLAG_CAPS), cmd == KB_PRESS);
                    return '\0';
                }
            } else if(cmd == KB_COMPARE_AND_PRESS) {
                if (coords_in_box(&box, coords)) {
                    kb_draw_key(&box, set_case(c, keyboard->flags & FLAG_CAPS), 1);
                    ch = c;
                } else if(c == lastchar) {
                    kb_draw_key(&box, set_case(c, keyboard->flags & FLAG_CAPS), 0);
                }
            }
        }
    }
    return ch;
}
Esempio n. 3
0
static inline bool synth_full(void)
{
	return get_last_char() == 0x13;
}