Exemplo n.º 1
0
 FilteredFBCombFilter6::FilteredFBCombFilter6(float initialDelayTime, float maxDelayTime)
 {
   gen()->initialize(initialDelayTime, maxDelayTime);
   delayTime(initialDelayTime);
   scaleFactor(0.5f);
   lowpassCutoff(12000.0f);
   highpassCutoff(20.0f);
 }
Exemplo n.º 2
0
void gameloop(void) {
	char t = ' ';
	while(1) {
		delayTime(.01);
		t = getkeypressedimprove();
		if(t == 27)
			break;
		if ((t >= '0') && (t <= '7')) {
			setscreffect(t - '0');
		} else if(t == 'q') {
			attron(A_UNDERLINE);
		} else if(t == 'w') {
			attron(A_REVERSE);
		} else if(t == 'e') {
			attron(A_BLINK);
		} else if(t == 'r') {
			attron(A_BOLD);
		} else if(t == 't') {
			attron(A_NORMAL);
		}
		if(t == ' ') {
			setcursorvisible(false);
		} else {
			setcursorvisible(true);
		}
		if(t == ERR) {
			settextcolor(white);
			setgroundcolor(black);
			printw("@");
		} else if(t == '\t') {
			move(0,0);
		} else if (t == 'p') {
			printw("(%d, %d) ", getscreensizebymvcurs().x, getscreensizebymvcurs().y);
		} else {
			settextcolor(red);
			setgroundcolor(green);
			printw("%c",t);
		}
	}
}
Exemplo n.º 3
0
void LinearMotion::doLinearSideways(Vector delta, Vector nextRow,
                     Stepper ** stepMotor, int maxSpeed, bool solenoidOn) {
    int fxy,fxz;
    int rowLoc = 0;
    int delay = _initial_delay;
    int delayPos = 0;
    Vector lastRow = {-nextRow.x, -nextRow.y, -nextRow.z};
    Vector dir = {1, 1, 1};
    long stepsPerPixel;
    _z_slantways ? stepsPerPixel = _z_steps_per_pixel : stepsPerPixel = _steps_per_pixel;
    
    if(delta.x < 0)
        dir.x = 0; //towards motor
    if(delta.y < 0)
        dir.y = 0; //towards motor
    if(delta.z < 0)
        dir.z = 0; //towards motor
    delta.x = abs(delta.x);
    delta.y = abs(delta.y);
    delta.z = abs(delta.z);
    fxy = delta.x - delta.y;
    fxz = delta.x - delta.z;
        
    Vector curPos = {0, 0, 0};
    
    while(!(*_stopped) && (curPos.x<=delta.x) && (curPos.y<=delta.y) && (curPos.z<=delta.z)){
       // printf("Moving height: %d, %d, %d\n\r", curPos.x, curPos.y, curPos.z);
        if ((curPos.x % stepsPerPixel) == 0) {
            Vector * row = NULL;
            if (solenoidOn)
                _bmp.setRow(rowLoc++);
            if (!(solenoidOn && _bmp.isBlankRow())) {
                reversing ? row = &lastRow : row = &nextRow;
                interpolate(*row, maxSpeed, solenoidOn);
                reversing = !reversing;
                enableSteppers(true); // Hacky
            }
        }
        ++curPos.x;
        if ((curPos.x % stepsPerPixel) <= stepsPerPixel/2) {
            delayPos++;
            delay = delayTime(delay, delayPos);
        } else {
            delayPos--;
            delay = delayTime(delay, -delayPos);
        }
        stepMotor[0]->stepOn(dir.x);
        fxy -= delta.y;
        fxz -= delta.z;
        if(fxy <= 0){
            ++curPos.y;
            stepMotor[1]->stepOn(dir.y);
            fxy += delta.x;
        }
        if(fxz <= 0){
            ++curPos.z;
            stepMotor[2]->stepOn(dir.z);
            fxz += delta.x;
        }
        wait_us(1);
        stepMotor[0]->stepOff();
        stepMotor[1]->stepOff();
        stepMotor[2]->stepOff();
        wait_us(delay);
        while(*_paused) {;}
    }
}
Exemplo n.º 4
0
void LinearMotion::doLinear(Vector delta, Stepper** stepMotor, int maxSpeed, bool solenoidOn) {
    int fxy,fxz;
    int pixelLoc = 0;
    int delay = _initial_delay;
    int farthestDelay = 0;
    Vector dir = {1, 1, 1};
    long stepsPerPixel;
    _z ? stepsPerPixel = _z_steps_per_pixel : stepsPerPixel = _steps_per_pixel;
    
    if(delta.x < 0)
        dir.x = 0; //towards motor
    if(delta.y < 0)
        dir.y = 0; //towards motor
    if(delta.z < 0)
        dir.z = 0; //towards motor
    delta.x = abs(delta.x);
    delta.y = abs(delta.y);
    delta.z = abs(delta.z);
    fxy = delta.x - delta.y;
    fxz = delta.x - delta.z;
        
    Vector curPos;
    curPos.x = 0;
    curPos.y = 0;
    curPos.z = 0;
    while (!(*_stopped) && (curPos.x<=delta.x)&&(curPos.y<=delta.y)&&(curPos.z<=delta.z)){
        if (solenoidOn) {
            if ((reversing && ((delta.x - curPos.x - stepsPerPixel / _step_buffer) % stepsPerPixel == 0)) ||
               (!reversing && ((curPos.x + stepsPerPixel / _step_buffer) % stepsPerPixel == 0)))
                *_sol = _bmp.isPixel(pixelLoc++, reversing);
            else if ((reversing &&  ((delta.x - curPos.x + stepsPerPixel / _step_buffer) % stepsPerPixel == 0)) ||
                    (!reversing &&  ((curPos.x - stepsPerPixel / _step_buffer) % stepsPerPixel == 0)) )
                *_sol = 0;
        }
        ++curPos.x;
        if (delay > maxSpeed) {
            delay = delayTime(delay, curPos.x);
            farthestDelay = curPos.x;
        } else if (delta.x - curPos.x < farthestDelay) {
            delay = delayTime(delay, -curPos.x);
        }
        stepMotor[0]->stepOn(dir.x);
        fxy -= delta.y;
        fxz -= delta.z;
        if (fxy <= 0){
            ++curPos.y;
            stepMotor[1]->stepOn(dir.y);
            fxy += delta.x;
        }
        if (fxz <= 0){
            ++curPos.z;
            stepMotor[2]->stepOn(dir.z);
            fxz += delta.x;
        }
        wait_us(1);
        stepMotor[0]->stepOff();
        stepMotor[1]->stepOff();
        stepMotor[2]->stepOff();
        wait_us(delay);  //Implement linear accelleration!
        if (*_paused) {
            enableSteppers(false);
            *_sol = 0;
            while(*_paused){printf("Pausing!\n\r");}
            enableSteppers(true);
        }
    }
    *_sol = 0;
}
Exemplo n.º 5
0
 FBCombFilter::FBCombFilter(float initialDelayTime, float maxDelayTime)
 {
   gen()->initialize(initialDelayTime, maxDelayTime);
   delayTime(initialDelayTime);
   scaleFactor(0.5f);
 }
Exemplo n.º 6
0
BasicDelay::BasicDelay(float initialDelayTime, float maxDelayTime) {
    gen()->initialize(initialDelayTime, maxDelayTime);
    delayTime(initialDelayTime);
}