void lk_list_test() { lk_list list; lk_init(&list, N); print_lk(&list); printf("\n"); lk_del(&list, list.head); print_lk(&list); printf("\n"); lk_insert(&list, 100); print_lk(&list); printf("\n"); lk_free(&list); }
CAMOBJ::CAMOBJ(int num) : BASE_CL() { outports = 4; inports = 0; width=65; strcpy(out_ports[0].out_name,"Point1-X"); strcpy(out_ports[1].out_name,"Point1-Y"); strcpy(out_ports[2].out_name,"Point2-X"); strcpy(out_ports[3].out_name,"Point2-Y"); strcpy(videofilename,"none"); interval=10;dist_threshold=80.0f;angle_threshold=20.0f;autorestore=TRUE; PT1_xpos=0.5f; PT1_ypos=0.99f; PT2_xpos=0.5f; PT2_ypos=0.6f; mode=0; enable_tracking=1; showlive=1; trackface=1; if (!lk_init(this)) GLOBAL.run_exception=1; }
/* ========================================================================== */ VOID MOLECOOL_Init() { lk_init(&ildjit_lock); ifstream warm_loop_file, start_loop_file, end_loop_file; warm_loop_file.open("phase_warm_loop", ifstream::in); start_loop_file.open("phase_start_loop", ifstream::in); end_loop_file.open("phase_end_loop", ifstream::in); if (start_loop_file.fail()) { cerr << "Couldn't open loop id files: phase_start_loop" << endl; PIN_ExitProcess(1); } if (end_loop_file.fail()) { cerr << "Couldn't open loop id files: phase_end_loop" << endl; PIN_ExitProcess(1); } readLoop(start_loop_file, &start_loop, &start_loop_invocation, &start_loop_iteration); readLoop(end_loop_file, &end_loop, &end_loop_invocation, &end_loop_iteration); if (KnobWarmLLC.Value()) { if (warm_loop_file.fail()) { cerr << "Couldn't open loop id files: phase_warm_loop" << endl; cerr << "Warming from start" << endl; reached_warm_invocation = true; } else { readLoop(warm_loop_file, &warm_loop, &warm_loop_invocation, &warm_loop_iteration); } } disable_wait_signal = KnobDisableWaitSignal.Value(); coupled_waits = KnobCoupledWaits.Value(); insert_light_waits = KnobInsertLightWaits.Value(); last_time = time(NULL); cerr << warm_loop << endl; cerr << warm_loop_invocation << endl; cerr << warm_loop_iteration << endl << endl; cerr << start_loop << endl; cerr << start_loop_invocation << endl; cerr << start_loop_iteration << endl << endl; cerr << end_loop << endl; cerr << end_loop_invocation << endl; cerr << end_loop_iteration << endl << endl; if (KnobWaitsAsLoads.Value()) { wait_template_1 = wait_template_1_ld; wait_template_1_size = sizeof(wait_template_1_ld); wait_template_1_addr_offset = 1; // 1 opcode byte wait_template_2 = wait_template_2_lfence; wait_template_2_size = sizeof(wait_template_2_lfence); *waits_as_loads = true; } else { wait_template_1 = wait_template_1_st; wait_template_1_size = sizeof(wait_template_1_st); wait_template_1_addr_offset = 2; // 1 opcode byte, 1 ModRM byte wait_template_2 = wait_template_2_mfence; wait_template_2_size = sizeof(wait_template_2_mfence); *waits_as_loads = false; } *ss_curr = 100000; *ss_prev = 100000; if (!KnobPredictedSpeedupFile.Value().empty()) LoadHelixSpeedupModelData(KnobPredictedSpeedupFile.Value().c_str()); }
LRESULT CALLBACK CamDlgHandler(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { static bool init; CAMOBJ * st; int tmp; st = (CAMOBJ *) actobject; if ((st==NULL)||(st->type!=OB_CAM)) return(FALSE); switch( message ) { case WM_INITDIALOG: SetDlgItemInt(hDlg,IDC_UPDATERATE,update_rate,0); SetDlgItemText(hDlg,IDC_CAMSTATUS,"0"); SetDlgItemInt(hDlg,IDC_ERROR_DIST,(int)dist_threshold,0); SetDlgItemInt(hDlg,IDC_ERROR_ANGLE,(int)angle_threshold,0); SetDlgItemInt(hDlg,IDC_THRESHOLD_TIME,threshold_time,0); SetDlgItemInt(hDlg,IDC_PT1X,(int)(PT1_xpos*100.0f),1); SetDlgItemInt(hDlg,IDC_PT1Y,(int)(PT1_ypos*100.0f),1); SetDlgItemInt(hDlg,IDC_PT2X,(int)(PT2_xpos*100.0f),1); SetDlgItemInt(hDlg,IDC_PT2Y,(int)(PT2_ypos*100.0f),1); CheckDlgButton(hDlg,IDC_AUTORESTORE,autorestore); CheckDlgButton(hDlg,IDC_SHOWLIVE,st->showlive); CheckDlgButton(hDlg,IDC_ENABLE_TRACKING,st->enable_tracking); CheckDlgButton(hDlg,IDC_TRACKFACE,st->trackface); if (st->mode==0) CheckDlgButton(hDlg,IDC_NOARCHIVE,TRUE); else if (st->mode==1) CheckDlgButton(hDlg,IDC_RECORDARCHIVE,TRUE); else if (st->mode==2) CheckDlgButton(hDlg,IDC_PLAYARCHIVE,TRUE); SetDlgItemText(hDlg,IDC_ARCHIVEFILE,st->videofilename); break; case WM_CLOSE: EndDialog(hDlg, LOWORD(wParam)); return TRUE; break; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_INITCAM: lk_init(st); break; case IDC_EXITCAM: lk_exit(); break; case IDC_RESET: count = 0; break; case IDC_NOARCHIVE: lk_exit(); st->mode=0; lk_init(st); break; case IDC_RECORDARCHIVE: lk_exit(); st->mode=1; if (!strcmp(st->videofilename,"none")) { strcpy(st->videofilename,GLOBAL.resourcepath); strcat(st->videofilename,"MOVIES\\*.avi"); } if (!open_file_dlg(hDlg,st->videofilename, FT_AVI, OPEN_SAVE)) strcpy(st->videofilename,"none"); SetDlgItemText(hDlg, IDC_ARCHIVEFILE,st->videofilename); lk_init(st); break; case IDC_PLAYARCHIVE: lk_exit(); st->mode=2; if (!strcmp(st->videofilename,"none")) { strcpy(st->videofilename,GLOBAL.resourcepath); strcat(st->videofilename,"MOVIES\\*.avi"); } if (!open_file_dlg(hDlg,st->videofilename, FT_AVI, OPEN_LOAD)) strcpy(st->videofilename,"none"); SetDlgItemText(hDlg, IDC_ARCHIVEFILE,st->videofilename); lk_init(st); break; case IDC_SHOWLIVE: st->showlive=IsDlgButtonChecked(hDlg,IDC_SHOWLIVE); if (!st->showlive) cvDestroyWindow("Camera"); else { cvNamedWindow( "Camera", 1 ); cvSetMouseCallback( "Camera", on_mouse, 0 ); } break; case IDC_UPDATERATE: tmp=GetDlgItemInt(hDlg,IDC_UPDATERATE,NULL,0); if ((tmp>10)&&(tmp<1000)) update_rate=tmp; break; case IDC_AUTORESTORE: autorestore=IsDlgButtonChecked(hDlg,IDC_AUTORESTORE); break; case IDC_TRACKFACE: st->trackface=IsDlgButtonChecked(hDlg,IDC_TRACKFACE); if (st->trackface) MAX_COUNT=2; else MAX_COUNT=1; break; case IDC_ERROR_DIST: dist_threshold=(float)GetDlgItemInt(hDlg, IDC_ERROR_DIST,0,0); break; case IDC_ERROR_ANGLE: angle_threshold=(float)GetDlgItemInt(hDlg, IDC_ERROR_ANGLE,0,0); break; case IDC_THRESHOLD_TIME: threshold_time=GetDlgItemInt(hDlg, IDC_THRESHOLD_TIME,0,0); break; case IDC_PT1X: PT1_xpos=(float) GetDlgItemInt(hDlg, IDC_PT1X,0,1) / 100.0f; need_to_init=1; break; case IDC_PT1Y: PT1_ypos=(float)GetDlgItemInt(hDlg, IDC_PT1Y,0,1)/ 100.0f; need_to_init=1; break; case IDC_PT2X: PT2_xpos=(float)GetDlgItemInt(hDlg, IDC_PT2X,0,1)/ 100.0f; need_to_init=1; break; case IDC_PT2Y: PT2_ypos=(float)GetDlgItemInt(hDlg, IDC_PT2Y,0,1)/ 100.0f; need_to_init=1; break; // case IDC_NIGHTMODE: // night_mode ^= 1; // break; case IDC_AUTOINIT: need_to_init=1; break; case IDC_ENABLE_TRACKING: st->enable_tracking=IsDlgButtonChecked(hDlg,IDC_ENABLE_TRACKING); break; case IDC_SETTINGS: { int ncams = cvcamGetCamerasCount( ); // init cvcam if (ncams==0) report("no cam"); cvcamSetProperty(0, CVCAM_PROP_ENABLE, CVCAMTRUE); //Selects the 1-st found camera cvcamInit(); cvcamGetProperty(0, CVCAM_CAMERAPROPS, NULL); // cvcamGetProperty(0, CVCAM_VIDEOFORMAT, NULL); cvcamExit(); } break; } return TRUE; break; case WM_SIZE: case WM_MOVE: update_toolbox_position(hDlg); break; return(TRUE); } return FALSE; }
int main(void) { unsigned int ret; unsigned char running; unsigned int lk_buffer[LK_BUFFER_SIZE]; //struct timespec ts; unsigned char adc_convert_1; unsigned char adc_convert_2; unsigned char button_state; lk_init(); running = 1; //ts.tv_nsec = 500000000; ret = exp_dout_all(MODULE_ONE, 0, lk_buffer); while(running) { system("clear"); ret = exp_ain(MODULE_ONE, lk_buffer); display_return_code(ret); adc_convert_1 = (char)(lk_buffer[0] / 4); adc_convert_2 = (char)(lk_buffer[1] / 4); fprintf(stderr, "MOTOR Speed 0: %x \n", adc_convert_1); fprintf(stderr, "MOTOR Speed 1: %x \n", adc_convert_2); ret = exp_din(MODULE_ONE, lk_buffer); button_state = lk_buffer[0]; fprintf(stderr, "Button Value: %x \n", button_state); if(!(button_state & EXP_BUTTON_0_MASK)) { ret = exp_motors(MODULE_ONE, EXP_MOTOR_1, EXP_MOTOR_FORWARD, adc_convert_1, lk_buffer); ret = exp_dout_x(MODULE_ONE, EXP_OUT_0, 1, lk_buffer); display_return_code(ret); } else { ret = exp_motors(MODULE_ONE, EXP_MOTOR_1, EXP_MOTOR_STOP, adc_convert_1, lk_buffer); ret = exp_dout_x(MODULE_ONE, EXP_OUT_0, 0, lk_buffer); display_return_code(ret); } if(!(button_state & EXP_BUTTON_1_MASK)) { ret = exp_motors(MODULE_ONE, EXP_MOTOR_2, EXP_MOTOR_FORWARD, adc_convert_2, lk_buffer); ret = exp_dout_x(MODULE_ONE, EXP_OUT_1, 1, lk_buffer); display_return_code(ret); } else { ret = exp_motors(MODULE_ONE, EXP_MOTOR_2, EXP_MOTOR_STOP, adc_convert_2, lk_buffer); ret = exp_dout_x(MODULE_ONE, EXP_OUT_1, 0, lk_buffer); display_return_code(ret); } if(!(button_state & EXP_BUTTON_2_MASK)) { running = 0; } fprintf(stderr, "**********Press Button 2 to stop.***********\n"); //nanosleep(&ts, NULL); } lk_exit(); return ret; }