Example #1
0
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);
}
Example #2
0
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;
}
Example #3
0
/* ========================================================================== */
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());
}
Example #4
0
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;
}
Example #5
0
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;
	
}