package libcsp.csp.app.ping; import javax.realtime.PeriodicParameters; import javax.realtime.PriorityParameters; import javax.safetycritical.PeriodicEventHandler; import javax.safetycritical.StorageParameters; import javax.safetycritical.annotate.Level; import javax.safetycritical.annotate.SCJAllowed; import libcsp.csp.CSPManager; import libcsp.csp.Connection; import libcsp.csp.ImmortalEntry; import libcsp.csp.Packet; import libcsp.csp.util.Const; public class PingHandler extends PeriodicEventHandler { private CSPManager cspManager; private int data; public PingHandler(PriorityParameters priority, PeriodicParameters parameters, StorageParameters scp, long scopeSize, CSPManager manager) { super(priority, parameters, scp, scopeSize); this.cspManager = manager; this.data = 0; } @Override @SCJAllowed(Level.SUPPORT) public void handleAsyncEvent() { Connection conn = cspManager.createConnection(1, Const.CSP_PING, ImmortalEntry.TIMEOUT_NONE, null); if (conn != null) { Packet p = cspManager.createPacket(); p.setContent(data); data++; conn.send(p); Packet response = conn.read(400); if (response != null) System.out.println("Response: " + response.readContent()); conn.close(); } } }