void moveToBlackLineAndBack(int numberOfLines){ // 1 is added as the robot has crossed the line and needs to // count it when going back int lineCount = numberOfLines + 1; while( numberOfLines > 0){ moveToNextLine(); numberOfLines--; } while( lineCount > 0){ moveToPreviousLine(); lineCount--; } }
void processController(){ if(data_received){ switch(received_command){ case 0x01: write_line_enable = 1; break; // home y axis case 0x02: home_y_axis(); acknowledge(); break; // home z axis case 0x03: home_z_axis(); acknowledge(); break; // turn laser on case 0x04: laser_on(); acknowledge(); break; // turn laser off case 0x05: laser_off(); acknowledge(); break; // next layer case 0x06: // moveToNextLayer here! moveToNextLayer(); toggle_y_Direction(); acknowledge(); break; case 0x07: moveToNextLayer(); acknowledge(); break; case 0x08: move_z_to_end_position(); acknowledge(); break; case 0x09: set_exposing_cycles(); acknowledge(); break; case 0x0a: move_z_relative(); acknowledge(); break; } } if (exposing_done){ moveToNextLine(); data_table[0] = 0; write_line_enable = 0; exposing_done = 0; acknowledge(); } }