From 3313ec2e24631e58161ca915714afdf129184268 Mon Sep 17 00:00:00 2001 From: jonathanboron <jonathanboron@172.20.148.95> Date: Mon, 2 Sep 2019 17:57:03 -0700 Subject: [PATCH] HW4 update 2, sender class more flexible --- .../homework4/Boron/BoronPduSender.java | 112 ++++++++++-------- 1 file changed, 60 insertions(+), 52 deletions(-) diff --git a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Boron/BoronPduSender.java b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Boron/BoronPduSender.java index a55ba33b09..c37d6158e5 100644 --- a/assignments/src/MV3500Cohort2019JulySeptember/homework4/Boron/BoronPduSender.java +++ b/assignments/src/MV3500Cohort2019JulySeptember/homework4/Boron/BoronPduSender.java @@ -24,7 +24,6 @@ public class BoronPduSender public static final int DEFAULT_MULTICAST_PORT = 3000; private int port; - private Random rand; InetAddress multicastAddress; public BoronPduSender(int port, String multicast) { @@ -42,13 +41,56 @@ public class BoronPduSender } } - public void run() + public void run(Pdu aPdu) { - BoronEntityStatePduCreator espduCreator = new BoronEntityStatePduCreator(); - rand = new Random(); - System.out.println("DisExamplesOpenDis7.AllPduSender started..."); + System.out.println("DisExamplesOpenDis7.AllPduSender started..."); System.out.println("Generate PDUs and note issues, if any..."); + + // Send the PDUs we created + try + { + InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS); + MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT); + socket.joinGroup(localMulticastAddress); + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DataOutputStream dos = new DataOutputStream(baos); + byte[] buffer; + + //Pdu aPdu = generatedPdusList.get(idx); + aPdu.marshal(dos); + + buffer = baos.toByteArray(); + DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT); + socket.send(packet); + try + { + Thread.sleep(100L); + } catch (InterruptedException ex) { + } + String currentPduTypeValuePadded = String.format("%2s", aPdu.getPduType().getValue()); + String currentPduTypePadded = String.format("%-34s", aPdu.getPduType()); // - indicates right padding of whitespace + System.out.print ("Sent DIS PDU " + currentPduTypeValuePadded + " " + currentPduTypePadded ); + System.out.println(" of type " + aPdu.getClass().getName()); + + } + catch (IOException e) + { + System.out.println(e); + } + // write the PDUs out to an XML file. + //PduContainer container = new PduContainer(); + //container.setPdus(generatedPdus); + //container.marshallToXml("examplePdus.xml"); + } + + public static void main(String args[]) + { + + BoronEntityStatePduCreator espduCreator = new BoronEntityStatePduCreator(); + Random rand = new Random(); + List<Pdu> generatedPdusList = new ArrayList<>(); for (int i = 0; i < 3; i++) @@ -77,64 +119,30 @@ public class BoronPduSender generatedPdusList.add(espduCreator.newPDU(id, ForceID.FRIENDLY, l, v, o)); } - // Send the PDUs we created + System.out.println("Send the " + generatedPdusList.size() + " PDUs we created..."); - try + + if (args.length == 2) { - InetAddress localMulticastAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS); - MulticastSocket socket = new MulticastSocket(DEFAULT_MULTICAST_PORT); - socket.joinGroup(localMulticastAddress); - - for (int idx = 0; idx < generatedPdusList.size(); idx++) + BoronPduSender sender = new BoronPduSender(Integer.parseInt(args[0]), args[1]); + for (int i = 0; i < generatedPdusList.size(); i++) { Pdu aPdu = generatedPdusList.get(0); - - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - DataOutputStream dos = new DataOutputStream(baos); - byte[] buffer; - - //Pdu aPdu = generatedPdusList.get(idx); - aPdu.marshal(dos); - - buffer = baos.toByteArray(); - DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT); - socket.send(packet); - try - { - Thread.sleep(100L); - } catch (InterruptedException ex) { - } - String currentPduTypeValuePadded = String.format("%2s", aPdu.getPduType().getValue()); - String currentPduTypePadded = String.format("%-34s", aPdu.getPduType()); // - indicates right padding of whitespace - System.out.print ("Sent DIS PDU " + currentPduTypeValuePadded + " " + currentPduTypePadded ); - System.out.println(" of type " + aPdu.getClass().getName()); - - generatedPdusList.remove(0); + sender.run(aPdu); + generatedPdusList.remove(0); } - } - catch (IOException e) - { - System.out.println(e); - } - // write the PDUs out to an XML file. - //PduContainer container = new PduContainer(); - //container.setPdus(generatedPdus); - //container.marshallToXml("examplePdus.xml"); - } - - public static void main(String args[]) - { - if (args.length == 2) - { - BoronPduSender sender = new BoronPduSender(Integer.parseInt(args[0]), args[1]); - sender.run(); } else { System.out.println("Usage: AllPduSender <port> <multicast group>"); System.out.println("Default: AllPduSender " + DEFAULT_MULTICAST_PORT + " " + DEFAULT_MULTICAST_ADDRESS); BoronPduSender sender = new BoronPduSender(DEFAULT_MULTICAST_PORT, DEFAULT_MULTICAST_ADDRESS); - sender.run(); + for (int i = 0; i < generatedPdusList.size(); i++) + { + Pdu aPdu = generatedPdusList.get(0); + sender.run(aPdu); + generatedPdusList.remove(0); + } } System.out.println("DisExamplesOpenDis7.AllPduSender complete."); } -- GitLab