/** * Asks the robot for its position * * @return The position of the robot */ public Point3Dim getRobotPos() { // Request calibration point String t = new String("REQ_CAL"); serialCom.writeString(t); // Wait for response from robot, time out if no response if (!waitForResponse()) { return null; } String stringData = new String(inData); /* Is it calibration value? */ if (stringData.startsWith("CAL")) { String[] data = stringData.split(";"); Double d1 = new Double(data[1]); Double d2 = new Double(data[2]); Double d3 = new Double(data[3]); Point3Dim point = new Point3Dim(d1, d2, d3); inData = null; // reset indata after having read it System.out.println("Read robotvalue: " + point.toString()); return point; } else return null; }
/** * Connects to a serialport to prepare for transmission * * @param comPort The port to connect to */ public void connect(String comPort) { try { serialCom = new SerialCom(this); serialCom.connect(comPort); } catch (Exception e) { e.printStackTrace(); } }
/* (non-Javadoc) * @see java.io.InputStream#available() */ public int available() { return p.getStatus(SerialCom.AVAILABLE_INPUT_STATUS); }
/* (non-Javadoc) * @see java.io.InputStream#read(byte[], int, int) */ public int read(byte[] b, int off, int len) throws IOException { if (b == null) throw new NullPointerException(); if (off < 0 || len < 0 || len > b.length - off) throw new IndexOutOfBoundsException(); return p.readBytes(b, off, len); }
/* (non-Javadoc) * @see java.io.InputStream#read(byte[]) */ public int read(byte[] b) throws IOException { if (b == null) throw new NullPointerException(); return p.readBytes(b, 0, b.length); }
/* (non-Javadoc) * @see java.io.InputStream#read() */ public int read() throws IOException { return p.read(); }
/** * Commands the robot to go to a position and read a value. * * @param point The position to go to. * @param zNormal * @param yNormal * @param xNormal */ public void robotGoTo(Point3Dim point, double angle) { String t = new String("GOTO_POS;" + point.x + ";" + point.y + ";" + point.z + ";" + angle); serialCom.writeString(t); }