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); } }
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(); }