@Override
	public byte[] receiveBytes() {
		try {
			p.writeBytes(new byte[] { '*','r' } );
			if (!readUntil((byte)'*',600) || !readUntil((byte)'r',600))
				return null;
			byte[] oneByte = p.readBytes(1, scaleTimeout(50));
			if (oneByte.length != 1)
				return null;
			int length = (0xFF&(int)(oneByte[0]));
			length = (length-1)&0xFF;
			if (length == 0)
				return null;
			//System.out.println("data "+length);
			byte[] out = p.readBytes(length, scaleTimeout(5*length)); 
			if (out != null && out.length == length) 
				return out;
		} catch (SerialPortException e) {
		} catch (SerialPortTimeoutException e) {
		}

		return null;
	}