Skip to content
Snippets Groups Projects
Commit fff1b32f authored by Brutzman, Don's avatar Brutzman, Don
Browse files

more consistent trace messages, move code block from main() to selfTest()

parent 4d5bef9c
No related branches found
No related tags found
No related merge requests found
...@@ -309,25 +309,25 @@ public class DisThreadedNetworkInterface ...@@ -309,25 +309,25 @@ public class DisThreadedNetworkInterface
{ {
if (receiveThread == null) if (receiveThread == null)
{ {
// System.out.println("DisThreadedNetworkInterface createThreads() start receiveThread..."); // System.out.println(TRACE_PREFIX + "createThreads() start receiveThread...");
receiveThread = new Thread(receiveThreadRunnable, "receiveThread"); receiveThread = new Thread(receiveThreadRunnable, "receiveThread");
// https://stackoverflow.com/questions/2213340/what-is-a-daemon-thread-in-java // https://stackoverflow.com/questions/2213340/what-is-a-daemon-thread-in-java
receiveThread.setDaemon(false); // user thread, not system thread receiveThread.setDaemon(false); // user thread, not system thread
receiveThread.setPriority(Thread.NORM_PRIORITY); receiveThread.setPriority(Thread.NORM_PRIORITY);
receiveThread.start(); receiveThread.start();
} }
System.out.println("DisThreadedNetworkInterface createThreads() receiveThread.isAlive()=" + receiveThread.isAlive()); System.out.println(TRACE_PREFIX + "createThreads() receiveThread.isAlive()=" + receiveThread.isAlive());
if (sendingThread == null) if (sendingThread == null)
{ {
// System.out.println("DisThreadedNetworkInterface createThreads() start sendingThread..."); // System.out.println(TRACE_PREFIX + "createThreads() start sendingThread...");
sendingThread = new Thread(sendingThreadRunnable, "sendingThread"); sendingThread = new Thread(sendingThreadRunnable, "sendingThread");
// https://stackoverflow.com/questions/2213340/what-is-a-daemon-thread-in-java // https://stackoverflow.com/questions/2213340/what-is-a-daemon-thread-in-java
sendingThread.setDaemon(false); // user thread, not system thread sendingThread.setDaemon(false); // user thread, not system thread
sendingThread.setPriority(Thread.NORM_PRIORITY); sendingThread.setPriority(Thread.NORM_PRIORITY);
sendingThread.start(); sendingThread.start();
} }
System.out.println("DisThreadedNetworkInterface createThreads() sendingThread.isAlive()=" + receiveThread.isAlive()); System.out.println(TRACE_PREFIX + "createThreads() sendingThread.isAlive()=" + receiveThread.isAlive());
} }
/** /**
* Can be used to restart DisThreadedNetworkInterface if closed. * Can be used to restart DisThreadedNetworkInterface if closed.
...@@ -570,7 +570,7 @@ public class DisThreadedNetworkInterface ...@@ -570,7 +570,7 @@ public class DisThreadedNetworkInterface
dos.flush(); // immediately force pdu write, if any remain dos.flush(); // immediately force pdu write, if any remain
baos.close(); baos.close();
dos.close(); dos.close();
System.out.println ("*** DisThreadedNetworkInterface close():" + System.out.println (TRACE_PREFIX + "close():" +
" pdus2send.size()=" + pdus2send.size() + " pdus2send.size()=" + pdus2send.size() +
" baos.size()=" + baos.size() + " dos.size()=" + dos.size()); " baos.size()=" + baos.size() + " dos.size()=" + dos.size());
...@@ -603,7 +603,7 @@ public class DisThreadedNetworkInterface ...@@ -603,7 +603,7 @@ public class DisThreadedNetworkInterface
} }
catch (Exception e) catch (Exception e)
{ {
System.err.println ("*** DisThreadedNetworkInterface close()() unexpected exception!"); System.err.println (TRACE_PREFIX + "close()() unexpected exception!");
} }
} }
public void killThread(Thread threadToKill) public void killThread(Thread threadToKill)
...@@ -618,7 +618,7 @@ public class DisThreadedNetworkInterface ...@@ -618,7 +618,7 @@ public class DisThreadedNetworkInterface
} }
catch (InterruptedException ie) catch (InterruptedException ie)
{ {
System.err.println ("*** DisThreadedNetworkInterface threadToKill join() failed to wait for threadToKill to die"); System.err.println (TRACE_PREFIX + "threadToKill join() failed to wait for threadToKill to die");
System.err.flush(); System.err.flush();
ie.printStackTrace(System.err); ie.printStackTrace(System.err);
} }
...@@ -822,31 +822,14 @@ public class DisThreadedNetworkInterface ...@@ -822,31 +822,14 @@ public class DisThreadedNetworkInterface
TRACE_PREFIX = "[" + (DisThreadedNetworkInterface.class.getSimpleName() + " " + descriptor).trim() + "] "; TRACE_PREFIX = "[" + (DisThreadedNetworkInterface.class.getSimpleName() + " " + descriptor).trim() + "] ";
} }
/** private void selfTest()
* Main method for testing.
* @see <a href="https://docs.oracle.com/javase/tutorial/getStarted/application/index.html">Java Tutorials: A Closer Look at the "Hello World!" Application</a>
* @param args [address, port, descriptor] command-line arguments are an array of optional String parameters that are passed from execution environment during invocation
*/
public static void main(String[] args)
{ {
DisThreadedNetworkInterface disThreadedNetworkInterface; System.out.println(TRACE_PREFIX + "main() self test initialized...");
System.out.println("*** DisThreadedNetworkInterface main() self test started...");
String selfTestDescriptor = "main() self test";
if ((args != null) && args.length == 3)
selfTestDescriptor = args[2];
if ((args == null) || (args.length == 0))
disThreadedNetworkInterface = new DisThreadedNetworkInterface( /* default address, port */ selfTestDescriptor);
else disThreadedNetworkInterface = new DisThreadedNetworkInterface(args[0], Integer.parseInt(args[1]), selfTestDescriptor);
System.out.println("*** DisThreadedNetworkInterface main() self test initialized...");
try try
{ {
EntityStatePdu espdu = new EntityStatePdu(); EntityStatePdu espdu = new EntityStatePdu();
espdu.setMarking("self test"); espdu.setMarking("self test");
disThreadedNetworkInterface.setVerbose(true); setVerbose(true);
DisThreadedNetworkInterface.PduListener pduListener; DisThreadedNetworkInterface.PduListener pduListener;
pduListener = new DisThreadedNetworkInterface.PduListener() pduListener = new DisThreadedNetworkInterface.PduListener()
{ {
...@@ -854,32 +837,52 @@ public class DisThreadedNetworkInterface ...@@ -854,32 +837,52 @@ public class DisThreadedNetworkInterface
@Override @Override
public void incomingPdu(Pdu newPdu) public void incomingPdu(Pdu newPdu)
{ {
System.out.println( "*** DisThreadedNetworkInterface main() pduListener.incomingPdu() received newPdu " + newPdu.getPduType().toString()); System.out.println(TRACE_PREFIX + "main() pduListener.incomingPdu() received newPdu " + newPdu.getPduType().toString());
System.out.flush(); System.out.flush();
} }
}; };
disThreadedNetworkInterface.addListener(pduListener); addListener(pduListener);
System.out.println("*** DisThreadedNetworkInterface main() self test sending espdu..."); System.out.println(TRACE_PREFIX + "self test sending espdu...");
disThreadedNetworkInterface.send(espdu); send(espdu);
// briefly wait get response from threaded receiver // briefly wait get response from threaded receiver
Thread.sleep(500L); Thread.sleep(100L);
System.out.flush(); System.out.flush();
System.err.flush(); System.err.flush();
// all done, close() in finally block // all done, close() in finally block
} }
catch(InterruptedException ex) catch(InterruptedException ex)
{ {
System.out.println("*** DisThreadedNetworkInterface main() self test InterruptedException " + ex.getMessage()); System.out.println("[DisThreadedNetworkInterface] main() self test InterruptedException " + ex.getMessage());
} }
finally // carefully clean up following regular completion and any interruptions finally // carefully clean up following regular completion and any interruptions
{ {
if (disThreadedNetworkInterface != null) close();
disThreadedNetworkInterface.close();
System.out.flush(); System.out.flush();
System.err.flush(); System.err.flush();
System.out.println("*** DisThreadedNetworkInterface main() self test complete."); System.out.println("[DisThreadedNetworkInterface] main() self test complete.");
} }
} }
/**
* Main method provides support for testing.
* @see <a href="https://docs.oracle.com/javase/tutorial/getStarted/application/index.html">Java Tutorials: A Closer Look at the "Hello World!" Application</a>
* @param args [address, port, descriptor] command-line arguments are an array of optional String parameters that are passed from execution environment during invocation
*/
public static void main(String[] args)
{
System.out.println("[DisThreadedNetworkInterface] main() started...");
DisThreadedNetworkInterface disThreadedNetworkInterface;
String selfTestDescriptor = "main() self test";
if ((args != null) && args.length == 3)
selfTestDescriptor = args[2];
if ((args == null) || (args.length == 0))
disThreadedNetworkInterface = new DisThreadedNetworkInterface( /* default address, port */ selfTestDescriptor);
else disThreadedNetworkInterface = new DisThreadedNetworkInterface(args[0], Integer.parseInt(args[1]), selfTestDescriptor);
disThreadedNetworkInterface.selfTest();
}
} }
...@@ -8,21 +8,21 @@ warning: [options] bootstrap class path not set in conjunction with -source 8 ...@@ -8,21 +8,21 @@ warning: [options] bootstrap class path not set in conjunction with -source 8
1 warning 1 warning
compile-single: compile-single:
run-single: run-single:
*** DisThreadedNetworkInterface main() self test started... [DisThreadedNetworkInterface] main() started...
[DisThreadedNetworkInterface] using network interface Intel(R) Wi-Fi 6E AX210 160MHz [DisThreadedNetworkInterface] using network interface Intel(R) Wi-Fi 6E AX210 160MHz
[DisThreadedNetworkInterface main() self test] datagramSocket.joinGroup address=239.1.2.3 port=3000 isConnected()=false createDatagramSocket() complete. [DisThreadedNetworkInterface main() self test] datagramSocket.joinGroup address=239.1.2.3 port=3000 isConnected()=false createDatagramSocket() complete.
DisThreadedNetworkInterface createThreads() receiveThread.isAlive()=true [DisThreadedNetworkInterface main() self test] createThreads() receiveThread.isAlive()=true
DisThreadedNetworkInterface createThreads() sendingThread.isAlive()=true [DisThreadedNetworkInterface main() self test] createThreads() sendingThread.isAlive()=true
*** DisThreadedNetworkInterface main() self test initialized... [DisThreadedNetworkInterface main() self test] main() self test initialized...
*** DisThreadedNetworkInterface main() self test sending espdu... [DisThreadedNetworkInterface main() self test] self test sending espdu...
[DisThreadedNetworkInterface main() self test] [sending 1] DisPduType 01 ENTITY_STATE self test, size 144 bytes) [DisThreadedNetworkInterface main() self test] [sending 1] DisPduType 01 ENTITY_STATE self test, size 144 bytes)
[DisThreadedNetworkInterface main() self test] [receipt 1] DisPduType 01 ENTITY_STATE self test, size 144 bytes) [DisThreadedNetworkInterface main() self test] [receipt 1] DisPduType 01 ENTITY_STATE self test, size 144 bytes)
received newPdu DisPduType 01 ENTITY_STATE [DisThreadedNetworkInterface main() self test] main() pduListener.incomingPdu() received newPdu DisPduType 01 ENTITY_STATE
*** setKillSentinelAndInterrupts() killed=true sendingThread.isInterrupted()=false receiveThread.isInterrupted()=true *** setKillSentinelAndInterrupts() killed=true sendingThread.isInterrupted()=true receiveThread.isInterrupted()=true
*** DisThreadedNetworkInterface close(): pdus2send.size()=0 baos.size()=0 dos.size()=144 [DisThreadedNetworkInterface main() self test] close(): pdus2send.size()=0 baos.size()=0 dos.size()=144
[DisThreadedNetworkInterface main() self test] datagramSocket.leaveGroup address=239.1.2.3 port=3000 isClosed()=true close() complete. [DisThreadedNetworkInterface main() self test] datagramSocket.leaveGroup address=239.1.2.3 port=3000 isClosed()=true close() complete.
*** killThread() status: sendingThread.isAlive()=false sendingThread.isInterrupted()=true *** killThread() status: sendingThread.isAlive()=false sendingThread.isInterrupted()=true
*** killThread() status: receiveThread.isAlive()=false receiveThread.isInterrupted()=true *** killThread() status: receiveThread.isAlive()=false receiveThread.isInterrupted()=true
*** Thread close status: sendingThread.isAlive()=false receiveThread.isAlive()=false *** Thread close status: sendingThread.isAlive()=false receiveThread.isAlive()=false
*** DisThreadedNetworkInterface main() self test complete. [DisThreadedNetworkInterface] main() self test complete.
BUILD SUCCESSFUL (total time: 3 seconds) BUILD SUCCESSFUL (total time: 2 seconds)
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