add FleetProcess.sendWord() that takes a signal
[fleet.git] / src / edu / berkeley / fleet / fpga / Client.java
index 235e183..4c223fd 100644 (file)
@@ -106,15 +106,19 @@ public class Client extends FleetProcess {
         flush();
     }
 
-    public void sendToken(Destination d) { sendWord(d, new BitVector(fpga.getWordWidth()), true); }
-    public void sendWord(Destination d, BitVector word) { sendWord(d, word, false); }
-    private void sendWord(Destination d, BitVector word, boolean token) {
+    public void sendToken(Destination d) { sendWord(d, new BitVector(fpga.getWordWidth()), null, true); }
+    public void sendWord(Destination d, BitVector word) { sendWord(d, word, null, false); }
+    public void sendWord(Destination d, BitVector word, BitVector signal) { sendWord(d, word, signal, false); }
+    private void sendWord(Destination d, BitVector word, BitVector signal, boolean token) {
         try {
             Dock dispatchFrom = fpga.debugShip.getDock("in");
             long out = 0;
             out = fpga.PACKET_DATA.setval(out, word);
             out = fpga.PACKET_TOKEN.setval(out, token ? 1 : 0);
-            out = fpga.PACKET_SIGNAL.setval(out, 0);
+            if (signal==null)
+                out = fpga.PACKET_SIGNAL.setval(out, 0);
+            else 
+                out = fpga.PACKET_SIGNAL.setval(out, signal);
             out = fpga.PACKET_DEST.setval(out, ((FpgaPath)dispatchFrom.getPath(d, null)).toLong());
             synchronized(this) {
                 for(int i=9; i>=0; i--)