Exemple #1
0
int main()
{
    char Command_str[MAX_PATH];
    DWORD Command_len;
    HANDLE hConsoleInput;  
  
    // 获取输出流的句柄
    hConsoleInput = GetStdHandle(STD_INPUT_HANDLE);  
 
    // 输出欢迎信息
    welcome();
 
    while(1)
    {
        // 清空命令字符串
        memset(&Command_str, 0, MAX_PATH);
        // 输出提示符
        printf("\nLscmd>;");
        // 读取输入流
        ReadFile( 
            hConsoleInput,  // 文件句柄
            Command_str,    // 获取内容的缓冲字符数组
            MAX_PATH,       // 缓冲数组大小
            &Command_len,   // 实际读出的大小
            NULL);
 
        command_switch(Command_str);
    }
}
Exemple #2
0
int
main(int argc, char **argv)
{
    command_switch(argc, argv);

    signal(SIGQUIT, sighandler);
    signal(SIGTERM, sighandler);
    signal(SIGINT,  sighandler);

    /* 初始化 OXIM */
    oxim_init();

    gui_init(&oxim_core);
    xim_init(&oxim_core);
    
    ReloadPanel(&oxim_core);
    gui_loop(&oxim_core);
    return 0;
}
PROCESS_THREAD(command_process, ev, data)
{
	static struct etimer commandTimeout;
	static unsigned char buttonCount = 0;
	
	PROCESS_BEGIN();
	SENSORS_ACTIVATE(button_sensor);
	
	while(1)
	{
		PROCESS_WAIT_EVENT();

		if(ev == sensors_event && data == &button_sensor){
			++buttonCount;
			printf("Button pressed %d times\n", buttonCount);

			if(buttonCount == 1)//first press, set the timer
			{
				etimer_set( &commandTimeout, COMMAND_TIMEOUT * CLOCK_SECOND );
			}
			else
			{
				etimer_restart(&commandTimeout);
			}
		}
		else if(ev == PROCESS_EVENT_TIMER)
		{
			if(buttonCount != 0 && etimer_expired(&commandTimeout))
			{
				printf("Timer expired: count is %d\n", buttonCount);
				etimer_stop(&commandTimeout);
				command_switch(buttonCount);
				buttonCount = 0;
				print_commands();
			}
		}
	}
    PROCESS_END();
}