package org.reprap.comms.port.testhandlers; import java.io.IOException; import java.io.PipedOutputStream; import org.reprap.comms.snap.SNAPPacket; public abstract class TestDevice { public static final int version = 0x100; public void receivePacket(PipedOutputStream out, SNAPPacket packet) throws Exception { byte payload [] = packet.getPayload(); switch(payload[0]) { case 0: reply(out, packet, new byte [] {0, version & 0xff, (version & 0xff00) >> 8}); return; } throw new Exception("Unknown packet type " + (int)payload[0] + " on address " + packet.getDestinationAddress().getAddress()); } protected void reply(PipedOutputStream out, SNAPPacket packet, byte [] payload) throws IOException { System.out.println("Sending reply"); SNAPPacket response = new SNAPPacket(packet.getDestinationAddress(), packet.getSourceAddress(), payload); out.write(response.getRawData()); out.flush(); } }