int main(int argc, char *argv[]) { init_sys_var(argc, argv); init_local_resource(); init_matrix_addr_book(); MCCKeyboardManager manager; Communication comm; manager.Start(); comm.Start(); manager.LoadKeyboard("generic","/dev/ttyUSB0", "/dev/ttyUSB1", 9600, 8, 1, 'n', 0); cout<<"load keyboard done"<<endl; while(1) { int cid, mid, moid, uid; cout<<"matrix id:"; cin>>mid; cout<<"camera id:"; cin>>cid; cout<<"monitor id:"; cin>>moid; cout<<"user id:"; cin>>uid; User user(uid, mid); if(moid > max_mon || moid < min_mon ) { cout<<"monitor dosen't exist!"<<endl; continue; } else if(mon[moid].id > uid && !isExpired(mon[moid])) { cout<<"monitor is busy"<<endl; continue; } else cout<<"monitor is avialble!"<<endl; if(mid == local_matrix_id && cam[cid] <= user){ cam[cid] = user; cout<<"camera is aviable!"<<endl; } else if(mid != local_matrix_id && comm.Request(mid, cid, uid) == 0){ cout<<"camera is aviable!"<<endl; } else{ cout<<"camera is not aviable!"<<endl; continue; } mon[moid] = User(uid, local_matrix_id); }; manager.UnloadKeyboard(0); comm.Stop(); manager.Stop(); return 0; }