Пример #1
0
void get_bt_status(void)
{
	int key;
	char show_buffer[50];
	char des[10] = {0};

	while (1) {
        lcd_clrscr();
        lcd_disp_string(0, 0, "      蓝牙状态    ");
	   
		serial_clrbuf(CONFIG_BT_SERIAL_NUM, 1, 0);
    	serial_write(CONFIG_BT_SERIAL_NUM, "AT+STATUS\r\n", sizeof("AT+STATUS\r\n"));
	   	serial_read(CONFIG_BT_SERIAL_NUM, show_buffer, 20, 300);
		if(!strncmp(show_buffer, "+STATUS=", sizeof("+STATUS=") - 1)){
			des[0] = show_buffer[sizeof("+STATUS=") - 1];            
            if (strcmp(des, "2") == 0)
                lcd_disp_string(0, 16, "蓝牙已连接");
            else if (strcmp(des, "1") == 0)
                lcd_disp_string(0, 16, "蓝牙广播中...");
            else if (strcmp(des, "0") == 0)
                lcd_disp_string(0, 16, "蓝牙空闲");
	   		else
                lcd_disp_string(0, 16, "未知状态");
		}
	   	else
            lcd_disp_string(0, 16, "获取失败");

        key = kb_get_key(0);
        if (key == KEY_ESC)
            return;
    }
}
Пример #2
0
void get_mac(void)
{
	int key;
	char show_buffer[64];
	char addr[18];

	while (1) {
        lcd_clrscr();
        lcd_disp_string(0, 0, "      蓝牙MAC地址    ");
	   
	   	/*获取蓝牙地址*/
		serial_clrbuf(CONFIG_BT_SERIAL_NUM, 1, 0);
    	serial_write(CONFIG_BT_SERIAL_NUM, "AT+LADDR\r\n", sizeof("AT+LADDR\r\n"));
	   	serial_read(CONFIG_BT_SERIAL_NUM, show_buffer, 64, 300);
		if(!strncmp("+LADDR=", show_buffer, 7)){
            memcpy(addr, show_buffer + 7, 17);
	   	    lcd_disp_string(0, 16, addr);
		}
	   	else
            lcd_disp_string(0, 16, "获取失败");

        key = kb_get_key(0);
        if (key == KEY_ESC)
            return;
    }
}
Пример #3
0
void get_name(void)
{
	int key, i;
	char show_buffer[64] = {0};
	char name[17] = {0};

	while (1) {
        lcd_clrscr();
        lcd_disp_string(0, 0, "      蓝牙名称    ");
	   
	   	/*获取蓝牙地址*/
		serial_clrbuf(CONFIG_BT_SERIAL_NUM, 1, 0);
    	serial_write(CONFIG_BT_SERIAL_NUM, "AT+NAME\r\n", sizeof("AT+NAME\r\n"));
	   	serial_read(CONFIG_BT_SERIAL_NUM, show_buffer, 64, 300);
		if(!strncmp("+NAME=\"", show_buffer, 7)){
            for(i = 0; i < 16; i ++) {
                if (show_buffer[7 + i] == '\"')
                    break;
                name[i] = show_buffer[7 + i];
            }
	   	    lcd_disp_string(0, 16, name);
		}
	   	else
            lcd_disp_string(0, 16, "获取失败");

        key = kb_get_key(0);
        if (key == KEY_ESC)
            return;
    }
}
Пример #4
0
int bluetooth_test(int mode)
{
    int key;
	char show_buffer[50];
	
	while (1) {
		lcd_clrscr();
		lcd_disp_string(0, 0,  "      蓝牙测试      ");
		lcd_disp_hline(0, 13, 128);
		lcd_disp_string(0, 16, "1.名称获取 2.MAC获取");
		lcd_disp_string(0, 30, "3.获取状态 4.串口直连");

	    key = kb_get_key(0);
	    switch (key) {	
        case KEY_1:
        	    get_name();
				break;
		case KEY_2:
                get_mac();
                break;							
        case KEY_3:
                get_bt_status();
                break;	
		case KEY_4:
			    connect_uart();
                break;	
		case KEY_POUND:    
				 serial_write(CONFIG_BT_SERIAL_NUM, "AT+ADV\r\n", sizeof("AT+ADV\r\n"));//开启广播
				 serial_read(CONFIG_BT_SERIAL_NUM, show_buffer, 50, 300);
				 break;	
		case KEY_ASTERISK: 
				 serial_write(CONFIG_BT_SERIAL_NUM, "AT+DISC\r\n" , sizeof("AT+DISC\r\n" ));//断开连接
				 serial_read(CONFIG_BT_SERIAL_NUM, show_buffer, 50, 300);
				 break;	
		case KEY_ESC:
                 serial_write(CONFIG_BT_SERIAL_NUM, "AT+DISC\r\n", sizeof("AT+DISC\r\n"));
                 serial_read(CONFIG_BT_SERIAL_NUM, show_buffer, 30, 300);
    			 return 0;
        default:
                break;
				
        }

	}

}
Пример #5
0
Файл: ui.c Проект: brunsa2/lab5
void *ui_thread(void *argument) {
    char str[80];
    char new_user[20];
    char time[20];
    char user[20];
    char message[80];
    int row, col, y, x, chat_line, user_line, buffer, tick;

    initscr();				/* start the curses mode */
    ncurses_initialized = 1;
    start_color();
    init_pair(1, COLOR_CYAN, COLOR_BLACK);
    getmaxyx(stdscr,row,col);		/* get the number of rows and columns */

    attron(COLOR_PAIR(1));
    printw("\t\tType 'EXIT' to quit the program.");
    refresh();
    attroff(COLOR_PAIR(1));

    x=col/1.38;
    y=row-6;
    user_line = 1;
    chat_line = 1;

    
    w_chat = newwin(y, x, 1, 1);
    w_input = newwin(3, x, y+1, 1);
    w_user = newwin(y, col/6, 1, x+2);
    w_time = newwin(3, col/6, y+1, x+2);

    /*Create panels for each window*/
    box(w_chat, ACS_VLINE, ACS_HLINE);
    box(w_input, ACS_VLINE, ACS_HLINE);
    box(w_user, ACS_VLINE, ACS_HLINE);
    box(w_time, ACS_VLINE, ACS_HLINE);

    /*TODO: Display ticking time in the bottom right panel
    * TODO: Displaying all users in chat room
    * TODO: Displaying received input
    * TODO: Displaying sent input
    */
    mvwprintw(w_user, user_line, 1, "%s", login.username);
    user_line++;

    while(true){
        refresh_all();
        
        if(kb_has_key() == true){
            buffer = 0;
	    //placeholder until keyboard.c code is implemented
            while(buffer < 80 && kb_has_key() == true) {
		str[buffer] = kb_get_key();
		mvwaddch(w_input,1, buffer+1, str[buffer]);
                buffer++;
		refresh_all();
            }
        }

        if(strcmp(str, "EXIT") == 0){
            endwin();
            return 0;
        }

        if(chat_line > 28){
            chat_line = 1;
            wclear(w_chat);
            box(w_chat, ACS_VLINE, ACS_HLINE);

            refresh_all();
        }

	//placeholder
/*	if(has_new_user() == true){
	    strcpy(new_user, get_user());
	    mvwprintw(w_user, user_line, 1, "%s", new_user);
	    user_line++;
	    attron(COLOR_PAIR(1));
	    mvwprintw(w_chat, chat_line, 1, "%s has joined the chat", new_user);  
	    attroff(COLOR_PAIR(1));
	    chat_line++; 
	    refresh_all();
	}

	//placeholder until has_message is implemented in some form
/*
	if(has_message() == true){
	    //placeholders
	    strcpy(time, get_time());
	    if(get_user() == NULL){
		strcpy(user, "SYSTEM");
	    } else{
		strcpy(user, get_user());
	    }
	    strcpy(message, get_message());
	
	    mvwprintw(w_chat, chat_line, 1, "[%s]<%s> %s", time, user, message);  
	    chat_line++;  
	}
	*/
	//placeholder
	tick = get_elapsed_ticks();
	mvwprintw(w_time, 1, 1, "%i", tick);
    }
}