import jbotsim.Topology; import jbotsim.ui.JViewer; public class HelloWorld { public static void main(String[] args) { new JViewer(new Topology()); } }
import jbotsim.Clock; import jbotsim.Node; import jbotsim.event.ClockListener; public class RedGreenNodeV1 extends Node implements ClockListener{ public RedGreenNodeV1(){ Clock.addClockListener(this, 10); } public void onClock() { if (super.getNeighbors().size()>0) super.setProperty("color", "green"); else super.setProperty("color", "red"); } }
import jbotsim.Node; import jbotsim.Topology; import jbotsim.ui.JViewer; ... public static void main(String[] args) { Node.setModel("default", new RedGreenNodeV1()); new JViewer(new Topology()); }
import jbotsim.Link; import jbotsim.Node; import jbotsim.event.NodeListener; public class RedGreenNodeV2 extends Node implements NodeListener{ public RedGreenNodeV2(){ super.setProperty("color", "red"); super.addNodeListener(this); } public void linkAdded(Link l) { super.setProperty("color", "green"); } public void linkRemoved(Link l) { if (super.getNeighbors().size()==0) super.setProperty("color", "red"); } public void nodeMoved(Node n) {} public void propertyChanged(Node n, String key) {} }
import jbotsim.Node; import jbotsim.Clock; import jbotsim.Message; import jbotsim.event.ClockListener; import jbotsim.event.MessageListener; public class RedGreenNodeV3 extends Node implements ClockListener, MessageListener{ int lastReceptionDate = -30; public RedGreenNodeV3(){ Clock.addClockListener(this, 30); super.addMessageListener(this); } public void onClock() { super.send(null, "HELLO"); if (lastReceptionDate < Clock.currentTime() - 30) super.setProperty("color", "red"); } public void onMessage(Message msg) { super.setProperty("color", "green"); lastReceptionDate=Clock.currentTime(); } }
import jbotsim.Link; import jbotsim.Node; import jbotsim.Topology; import jbotsim.event.TopologyListener; public class RedGreenCentralized implements TopologyListener{ public void nodeAdded(Node n) { n.setProperty("color", n.getNeighbors().size()==0?"red":"green"); } public void linkAdded(Link l) { for (Node n : l.endpoints()) n.setProperty("color", "green"); } public void linkRemoved(Link l) { for (Node n : l.endpoints()) if (n.getNeighbors().size()==0) n.setProperty("color", "red"); } public void nodeRemoved(Node n) {} public void propertyChanged(Topology t, String key) {} }
import jbotsim.Topology; import jbotsim.ui.JViewer; public class MainCentralized { public static void main(String[] args) { Topology tp=new Topology(); tp.addTopologyListener(new RedGreenCentralized()); new JViewer(tp); } }
import java.awt.Point; import java.util.Random; import jbotsim.Node; public class RandomWayPoint{ private static Random r=new Random(); public static void init(Node node){ node.setProperty("target", new Point(r.nextInt(400), r.nextInt(300))); } public static void move(Node node){ Point target=(Point)node.getProperty("target"); node.setDirection(target); node.move(5); if(node.distance(target)<5) node.setProperty("target", new Point(r.nextInt(400), r.nextInt(300))); } }
import jbotsim.Clock; import jbotsim.Node; import jbotsim.event.ClockListener; public class RWPNode extends Node implements ClockListener{ public RWPNode(){ RandomWayPoint.init(this); Clock.addClockListener(this, 10); } public void onClock() { RandomWayPoint.move(this); } }
import jbotsim.Clock; import jbotsim.Node; import jbotsim.event.ClockListener; public class RedGreenNodeV4 extends Node implements ClockListener{ public RedGreenNodeV4(){ RandomWayPoint.init(this); Clock.addClockListener(this, 10); } public void onClock() { RandomWayPoint.move(this); if (super.getNeighbors().size()>0) super.setProperty("color", "green"); else super.setProperty("color", "red"); } }