diff --git a/NatBrailleTools/simpleJavaGrblStreamer/ant/gcodestreamer_ant_build.xml b/NatBrailleTools/simpleJavaGrblStreamer/ant/gcodestreamer_ant_build.xml deleted file mode 100644 index 7719f64..0000000 --- a/NatBrailleTools/simpleJavaGrblStreamer/ant/gcodestreamer_ant_build.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/NatBrailleTools/simpleJavaGrblStreamer/ant/jar-in-jar-loader.zip b/NatBrailleTools/simpleJavaGrblStreamer/ant/jar-in-jar-loader.zip deleted file mode 100644 index 4ee2ee6..0000000 Binary files a/NatBrailleTools/simpleJavaGrblStreamer/ant/jar-in-jar-loader.zip and /dev/null differ diff --git a/NatBrailleTools/simpleJavaGrblStreamer/src/main/java/com/willwinder/sjgs/simplejavagrblstreamer/SimpleJavaGrblStreamer.java b/NatBrailleTools/simpleJavaGrblStreamer/src/main/java/com/willwinder/sjgs/simplejavagrblstreamer/SimpleJavaGrblStreamer.java deleted file mode 100644 index ba97fc3..0000000 --- a/NatBrailleTools/simpleJavaGrblStreamer/src/main/java/com/willwinder/sjgs/simplejavagrblstreamer/SimpleJavaGrblStreamer.java +++ /dev/null @@ -1,176 +0,0 @@ -package com.willwinder.sjgs.simplejavagrblstreamer; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.LinkedList; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.logging.Level; -import java.util.logging.Logger; -import jssc.SerialPort; -import jssc.SerialPortEvent; -import jssc.SerialPortEventListener; -import jssc.SerialPortException; - -/** - * - * @author wwinder - */ -public class SimpleJavaGrblStreamer { - static int GRBL_BUFFER_SIZE = 125; - - public static void main(String argv[]) throws SerialPortException, IOException, InterruptedException { - if (argv.length == 0) - { - System.out.println("Arguments: "); - return; - } - if (argv.length != 3 && argv.length != 2) { - System.out.println("Arguments: "); - return; - } - - String commPort = argv[0]; - Integer baud = Integer.parseInt(argv[1]); - InputStream file = null; - if (argv.length == 2) - file = System.in; - else { - file = new FileInputStream(argv[2]); - System.out.println("Streaming file " + argv[2]); - } - - System.out.println("Streaming to port <" + commPort + " : " + baud + ">"); - SimpleJavaGrblStreamer s = new SimpleJavaGrblStreamer(commPort, baud); - s.send(file); - - System.out.println("Done senting file."); - } - - String commPort = null; - Integer baud = null; - - private SimpleJavaGrblStreamer(String commPort, Integer baud) { - this.commPort = commPort; - this.baud = baud; - } - - private void send(InputStream f) throws SerialPortException, IOException, InterruptedException { - BlockingQueue commandComplete = new LinkedBlockingQueue(); - - SerialPort serialPort = new SerialPort(commPort); - serialPort.openPort(); - serialPort.setParams(baud, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE, true, true); - - Thread.sleep(5000); - - serialPort.addEventListener(new GrblSerialListener(serialPort, commandComplete)); - GrblSerialSender sender = new GrblSerialSender(f, serialPort, commandComplete, GRBL_BUFFER_SIZE); - sender.send(); - serialPort.closePort(); - } - - private static class GrblSerialListener implements SerialPortEventListener { - SerialPort serialPort = null; - BlockingQueue completedCommands; - StringBuilder inputBuffer; - private GrblSerialListener(SerialPort port, BlockingQueue completedCommands) { - this.serialPort = port; - this.completedCommands = completedCommands; - inputBuffer = new StringBuilder(); - } - - @Override - public void serialEvent(SerialPortEvent event) { - if(event.isRXCHAR() && event.getEventValue() > 0){ - try { - byte buffer[] = serialPort.readBytes(); - for (byte b: buffer) { - if (b == '\n') { - //System.out.println("Received command: " + inputBuffer.toString()); - if (inputBuffer.toString().startsWith("ok") || inputBuffer.toString().startsWith("error")) - completedCommands.add(1); - inputBuffer.setLength(0); - } else { - inputBuffer.append((char)b); - } - } - } - catch (SerialPortException ex) { - System.out.println(ex); - System.out.println("serialEvent"); - } - } - } - } - - private static class GrblSerialSender { - InputStream file = null; - SerialPort port = null; - Integer currentBufferSize = null; - Integer maxBufferSize = null; - - BlockingQueue completedCommands = null; - LinkedList activeCommandSizes; - - private GrblSerialSender(InputStream f, SerialPort sp, BlockingQueue completedCommands, Integer activeBufferSize) { - file = f; - port = sp; - maxBufferSize = activeBufferSize; - currentBufferSize = 0; - this.completedCommands = completedCommands; - activeCommandSizes = new LinkedList(); - } - - private void send() throws IOException { - // Java 8 - //try(Stream lines = Files.lines(Paths.get(file.getAbsolutePath()))){ - // lines.forEach(s -> sendLine(s)); - //} - - BufferedReader br = null; - try { - String sCurrentLine; - br = new BufferedReader(new InputStreamReader(file)); - while ((sCurrentLine = br.readLine()) != null) { - sendLine(sCurrentLine); - } - } finally { - if (br != null)br.close(); - } - } - - private void sendLine(String s) { - // Wait until there is room, if necessary. - while (maxBufferSize < (currentBufferSize + s.length() + 1)) { - try { - //System.out.println("waiting for room.... active command count: " + this.activeCommandSizes.size()); - - // Wait for a command to complete - completedCommands.take(); - currentBufferSize -= this.activeCommandSizes.removeFirst(); - } catch (InterruptedException ex) { - Logger.getLogger(SimpleJavaGrblStreamer.class.getName()).log(Level.SEVERE, null, ex); - return; - } - } - - try { - System.out.println("Sending command: " + s.trim()); - //System.out.printf("."); - this.port.writeString(s.trim() + "\n"); - int commandSize = s.length() + 1; - activeCommandSizes.add(commandSize); - currentBufferSize += commandSize; - } catch (SerialPortException ex) { - Logger.getLogger(SimpleJavaGrblStreamer.class.getName()).log(Level.SEVERE, null, ex); - return; - } - } - } -} diff --git a/docs/IMG/mks.jpg b/docs/IMG/mks.jpg new file mode 100644 index 0000000..9ae9f77 Binary files /dev/null and b/docs/IMG/mks.jpg differ diff --git a/docs/IMG/nema17.jpg b/docs/IMG/nema17.jpg new file mode 100644 index 0000000..b445fe6 Binary files /dev/null and b/docs/IMG/nema17.jpg differ