Skip to content
Snippets Groups Projects
Commit 3313ec2e authored by jonathanboron's avatar jonathanboron
Browse files

HW4 update 2, sender class more flexible

parent 4f967199
No related branches found
No related tags found
No related merge requests found
......@@ -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.");
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment