void light_it_up(int light_port) { int l_on_, l_off_, l_mid_, OK=0; float s; while (!OK) { cbc_display_clear(); cbc_printf (0,0,"CALIBRATE: sensor port #%d", light_port); cbc_printf(0,1," press <-- when light on"); while(!left_button()){/*sensor value when light is on*/ cbc_printf(0,2," value is %d, bright = low ",l_on_=analog10 (light_port)); msleep(50); } cbc_printf(0,1," light on value is = %d ", l_on_); sleep(1.); cbc_printf(0,2," press --> when light off "); while(!right_button()){ /*sensor value when light is off*/ cbc_printf(0,3," value is %d, dark = high ",l_off_=analog10 (light_port)); msleep(50); } cbc_printf(0,2," light off value is = %d ", l_off_); sleep(1.); cbc_printf(0,3," "); if((l_off_-l_on_)>=120){ /*bright = small values */ OK=1; l_mid_=(l_on_+l_off_)/2; cbc_printf(0,4,"Good Calibration!"); cbc_printf(0,6,"Diff = %d: WAITING",l_off_-l_on_); while(analog10(light_port)>l_mid_){ cbc_printf(0,7,"Value = %d; Threshold = %d ",analog10(light_port),l_mid_); msleep(25); } cbc_printf(0,6,"Going! "); cbc_printf(0,7,"Value = %d; Threshold = %d ",analog10(light_port),l_mid_); } else{ s=seconds(); cbc_printf(0,6,"BAD CALIBRATION"); if(l_off_<512){ cbc_printf(0,7," Add Shielding!!"); } else{ cbc_printf(0,7," Aim sensor!!"); } } } }
void wait_for_light(int light_port_) { int l_on_, l_off_, l_mid_, t, OK=0; int p; // temp until tone is implemented float s; while (!OK) { cbc_display_clear(); cbc_printf (0,0,"CALIBRATE: sensor port #%d", light_port_); sleep(1.); beep(); sleep(1.); cbc_printf(0,1," press <-- when light on"); while(!left_button()){/*sensor value when light is on*/ cbc_printf(0,2," value is %d, bright = low ",l_on_=analog10 (light_port_)); msleep(50); } beep(); cbc_printf(0,1," light on value is = %d ", l_on_); sleep(1.); beep(); cbc_printf(0,2," press --> when light off "); while(!right_button()){ /*sensor value when light is off*/ cbc_printf(0,3," value is %d, dark = high ",l_off_=analog10 (light_port_)); msleep(50); } beep(); cbc_printf(0,2," light off value is = %d ", l_off_); sleep(1.); beep(); cbc_printf(0,3," "); if((l_off_-l_on_)>=120){ /*bright = small values */ OK=1; l_mid_=(l_on_+l_off_)/2; cbc_printf(0,4,"Good Calibration!"); cbc_printf(0,6,"Diff = %d: WAITING",l_off_-l_on_); p=start_process(beeper1); while(analog10(light_port_)>l_mid_){ cbc_printf(0,7,"Value = %d; Threshold = %d ",analog10(light_port_),l_mid_); msleep(25); } cbc_printf(0,6,"Going! "); cbc_printf(0,7,"Value = %d; Threshold = %d ",analog10(light_port_),l_mid_); //kill_process(p); //works on cbc __wfl_keep_beeping=0;//avoids kill process which has problems on Mac } else{ s=seconds(); cbc_printf(0,6,"BAD CALIBRATION"); if(l_off_<512){ cbc_printf(0,7," Add Shielding!!"); for(t=0; t<4; t++) {beep(); sleep(.2); beep(); sleep(0.4);} beep(); } else{ cbc_printf(0,7," Aim sensor!!"); for(t=0; t<4; t++) {beep(); sleep(.2); beep(); sleep(0.4);} beep(); } } } }