## Fleeterpreter ##############################################################################
-cp = -cp fleet.jar
+cp = -cp fleet.jar:lib/RXTXcomm.jar
java = java -Xmx500m
run: fleet.jar; $(java) $(cp) $(interpreter_class)
fleet.jar: $(shell find src -name \*.java) $(shell find ships -name \*.ship) src/edu/berkeley/fleet/assembler/fleet.g
mkdir -p build/class/edu/berkeley/fleet/assembler/
cp src/edu/berkeley/fleet/assembler/fleet.g build/class/edu/berkeley/fleet/assembler/
- javac -classpath lib/edu.berkeley.sbp.jar -d build/class/ $(shell find src -name \*.java)
+ javac -classpath lib/RXTXcomm.jar:lib/edu.berkeley.sbp.jar -d build/class/ $(shell find src -name \*.java)
cd build/class/; jar xf ../../lib/edu.berkeley.sbp.jar
for A in `find ships -name \*.ship`;\
do java -cp build/class edu.berkeley.fleet.Main expand $$A;\
done
- javac -classpath build/class${ps}lib/edu.berkeley.sbp.jar -d build/class/ `find build/java -name \*.java`
+ javac -classpath lib/RXTXcomm.jar:build/class${ps}lib/edu.berkeley.sbp.jar -d build/class/ `find build/java -name \*.java`
echo 'Main-Class: edu.berkeley.fleet.Main' > build/class/manifest
cd build/class/; jar cmf manifest ../../$@ .
program: upload
ssh root@goliath.megacz.com 'cd /afs/megacz.com/work/ml410/; ./program.sh ./main.bit'
+runserver:
+ java -Djava.library.path=lib -cp lib/RXTXcomm.jar:fleet.jar edu.berkeley.fleet.fpga.Server
+
upload: fleet.jar build/fpga/main.bit
mkdir -p build
+ rsync -are ssh --progress --verbose ./ root@goliath:fleet/
rsync -zare ssh --progress --verbose build/fpga/main.bit root@goliath.megacz.com:/afs/megacz.com/work/ml410/
uploadtest:
package edu.berkeley.fleet.fpga;
+import gnu.io.*;
import java.io.*;
import java.net.*;
import java.util.*;
public static ServerSocket ss;
public static void main(String[] args) throws Exception {
+ System.err.println("programming...");
+ Process proc = Runtime.getRuntime().exec(new String[] {
+ "/afs/megacz.com/work/ml410/program.sh",
+ "/afs/megacz.com/work/ml410/main.bit"
+ });
+ BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
+ String str = null;
+ while((str = br.readLine()) != null) {
+ System.err.println(" " + str);
+ }
+ int ret = proc.waitFor();
+ if (ret != 0) {
+ System.err.println("programming error: " + ret);
+ return;
+ }
+ System.err.println("done programming.");
ss = new ServerSocket(3133);
- /*
- new Listener(3).start();
- new Listener(4).start();
- new Listener(1).start();
- new Listener(2).start();
- */
- new Listener(0).start();
+ while(true) {
+ try {
+ Socket s = ss.accept();
+ new Handler(s).start();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
}
public static String pass_string = "password=security_is_for_wimps ";
- static class Listener extends Thread {
- private int devnum;
- public Listener(int devnum) { this.devnum = devnum; }
+ static class Handler extends Thread {
+ private Socket socket;
+ boolean closed = false;
+ private SerialPort sp;
+ public Handler(Socket s) { this.socket = s; this.sp = sp; }
public void run() {
- while(true) {
+ synchronized(Server.class) {
try {
- Socket s = null;
- synchronized(Server.class) {
- System.err.println("thread " + devnum + " listening");
- s = ss.accept();
- System.err.println("connection");
+ this.sp = new RXTXPort("/dev/ttyS0");
+ //sp.sendBreak(500);
+ try {
+ _run();
+ } finally {
+ sp.close();
}
- new Handler(s, devnum).run();
} catch (Exception e) { throw new RuntimeException(e); }
- try { Thread.sleep(1000); } catch (Exception e) { }
}
}
- }
-
- static class Handler extends Thread {
- private Socket socket;
- boolean closed = false;
- private int devnum;
- public Handler(Socket s, int devnum) { this.socket = s; this.devnum = devnum; }
- public void run() {
- RandomAccessFile raf = null;
- FileInputStream fis = null;
+ public void _run() {
try {
final InputStream is = socket.getInputStream();
byte[] buf = new byte[1024];
}
System.err.println("login string: " + sb.toString());
if (!sb.toString().startsWith(pass_string)) return;
- String file = sb.toString().substring(pass_string.length()).trim();
- System.err.println("programming...");
- Process proc = Runtime.getRuntime().exec(new String[] { "/afs/megacz.com/work/ml410/program.sh", "/afs/megacz.com/work/ml410/main.bit" });
- BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
- String s = null;
- while((s = br.readLine()) != null) {
- System.err.println(" " + s);
- }
- int ret = proc.waitFor();
- if (ret != 0) {
- System.err.println("programming error: " + ret);
- return;
- }
- /*
- System.err.println("programming...");
- ret = Runtime.getRuntime().exec(new String[] {
- "/usr/bin/user_program", ""+devnum, "/var/slipway/"+file }).waitFor();
- if (ret != 0) {
- System.err.println("programming error: " + ret);
- return;
- }
- */
- System.err.println("done programming.");
- try { Thread.sleep(2000); } catch(Exception e) { }
+ //try { Thread.sleep(2000); } catch(Exception e) { }
final OutputStream os = socket.getOutputStream();
System.err.println("sending instructions...");
- raf = new RandomAccessFile("/dev/ttyS"+devnum, "rw");
+ sp.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
+ final OutputStream fos = sp.getOutputStream();
+ final InputStream fis = sp.getInputStream();
- final RandomAccessFile raf2 = raf;
new Thread() {
public void run() {
- FileOutputStream fos = null;
try {
- fos = new FileOutputStream(raf2.getFD());
byte[] buf = new byte[1024];
while(true) {
int numread = is.read(buf, 0, buf.length);
}
} catch (Exception e) { throw new RuntimeException(e);
} finally {
- if (raf2 != null) {
- System.err.println("closing...");
- closed = true;
- try { raf2.close(); } catch (Throwable t) { t.printStackTrace(); }
- try { fos.close(); } catch (Throwable t) { t.printStackTrace(); }
- }
+ System.err.println("closing...");
+ closed = true;
+ try { fos.close(); } catch (Throwable t) { t.printStackTrace(); }
}
}
}.start();
System.err.println("reading back...");
- fis = new FileInputStream(raf.getFD());
while(true) {
long result = 0;
int val = 0;
} catch (Exception e) { throw new RuntimeException(e);
} finally {
try {
- if (raf != null) {
- System.err.println("closing...");
- raf.close();
- }
+ System.err.println("closing...");
+ /*
+ fis.close();
if (fis != null) fis.close();
+ */
} catch (Throwable t) { t.printStackTrace(); }
}
}