@Override protected void internal_connect() throws MyException, InterruptedException { // try 3 times to get answare: for (int t = 0; t < 3; t++) { internal_reset(); // Send M110 to reset checksum internal_send("M110"); doSendEvent("M110"); // 5 secound Timout for answer for (int i = 0; i < 50; i++) { Communication.class.wait(100); // give data the possibility to enter internal_receive! if (!core.isConnected()) { throw new MyException("Lost connection! (" + status + ")"); } if (receiveCount > 0) { break; } } if (receiveCount > 0) { break; } Communication.doChangedEvent("Printer not answering to M110! Retrying ..."); } // Printer not answered! if (receiveCount == 0) { throw new MyException("Printer did not respond! Try to replug USB cable."); } // SET absolute internal_send("G90"); doSendEvent("G90"); // 2 secound Timout for answer synchronized (Communication.class) { for (int i = 0; i < 20; i++) { Communication.class.wait(100); // give data the possibility to enter internal_receive! if (!core.isConnected()) { throw new MyException("Lost connection!"); } if (!internal_isbusy()) { break; } } } if (internal_isbusy()) { throw new MyException("Printer did not answer to G90!"); } }
@Override protected void internal_connect() throws MyException, InterruptedException { internal_reset(); // Wait for GRBL to reset (1 secound) Communication.doChangedEvent("Wait for GRBL Reset ..."); Communication.class.wait(3000); // SET absolute internal_send("$X"); doSendEvent("$X"); // 2 secound Timout for answer synchronized (Communication.class) { for (int i = 0; i < 20; i++) { Communication.class.wait(100); // give data the possibility to enter internal_receive! if (!core.isConnected()) { throw new MyException("Lost connection!"); } if (!internal_isbusy()) { break; } } } if (internal_isbusy()) { throw new MyException("Printer did not answer to $I!"); } }