Index: trunk/src/tmcsim/cadsimulator/managers/TrafficModelManager.java
===================================================================
--- trunk/src/tmcsim/cadsimulator/managers/TrafficModelManager.java	(revision 457)
+++ trunk/src/tmcsim/cadsimulator/managers/TrafficModelManager.java	(revision 524)
@@ -158,5 +158,5 @@
                 {
                     long simtime = theCoordinator.getCurrentSimulationTime();
-                    currentClock = formatTimeInSeconds(simtime);
+                    currentClock = theCoordinator.formatTimeInSeconds(simtime);
                     // For Debugging, show the ATMS time
 //                    long ATMStime = theCoorInt.getATMStime();       
@@ -390,11 +390,11 @@
      * @return HH:MM:SS formatted string
      */
-    public static String formatTimeInSeconds(final long seconds)
-    {
-        final long hr = TimeUnit.SECONDS.toHours(seconds);
-        final long min = TimeUnit.SECONDS.toMinutes(seconds - TimeUnit.HOURS.toSeconds(hr));
-        final long sec = TimeUnit.SECONDS.toSeconds(seconds - TimeUnit.HOURS.toSeconds(hr) - TimeUnit.MINUTES.toSeconds(min));
-        return String.format("%02d:%02d:%02d", hr, min, sec);
-    }
+//    public static String formatTimeInSeconds(final long seconds)
+//    {
+//        final long hr = TimeUnit.SECONDS.toHours(seconds);
+//        final long min = TimeUnit.SECONDS.toMinutes(seconds - TimeUnit.HOURS.toSeconds(hr));
+//        final long sec = TimeUnit.SECONDS.toSeconds(seconds - TimeUnit.HOURS.toSeconds(hr) - TimeUnit.MINUTES.toSeconds(min));
+//        return String.format("%02d:%02d:%02d", hr, min, sec);
+//    }
 
     /** Writes the highway model to a GeoJson file for reading
Index: trunk/src/tmcsim/cadsimulator/Coordinator.java
===================================================================
--- trunk/src/tmcsim/cadsimulator/Coordinator.java	(revision 475)
+++ trunk/src/tmcsim/cadsimulator/Coordinator.java	(revision 524)
@@ -12,4 +12,5 @@
 import java.rmi.server.UnicastRemoteObject;
 import java.text.DateFormat;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -22,4 +23,5 @@
 import java.util.TreeSet;
 import java.util.Vector;
+import java.util.concurrent.TimeUnit;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -138,4 +140,8 @@
     /** The 'rolodex' of contact info */
     private static CardfileData cardfileData;
+    /** List of simulator start/pause messages for CAD Log. When Sim Mgr is 
+     * started or paused add a message to the CAD log. Ticket 189.
+    */
+    private static ArrayList<String> simMgrMsgLog;
     /** The model for the state of the CAD Server */
     private CADSimulatorState cadModel;
@@ -155,4 +161,5 @@
         kCADcommentLog = commentLogname;
         clientList = new LinkedList<CADClientInterface>();
+        simMgrMsgLog = new ArrayList<String>();
         cadData = new CADData();
         cardfileData = new CardfileData();
@@ -200,5 +207,5 @@
     public void startSimulation() throws RemoteException, ScriptException
     {
-
+        // Verify we are ready to start the simulation
         if (!CADServer.theIncidentMgr.areIncidentsLoaded())
         {
@@ -261,5 +268,53 @@
             CADServer.theSimulationCntrlMgr.startSimulation();
             CADServer.theSoundPlayer.setAudioEnabled(true);
-        }
+            // Implement ticket 189
+            // Create a string containing all the incidents numbers for this simulation
+            String incNums = "";
+            for (Incident inc: getIncidentList())
+            {
+                incNums += inc.logNum + " ";
+            }
+            // combine all the log entry fields
+            final DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
+            String logItem = timeFormat.format(new Date())
+                    + " CAD log, "
+                    + "Simulation Started,  loaded incidents "
+                    + incNums + "\n";
+            simMgrMsgLog.add(logItem); // add the item to the msg log
+        }
+    }
+    public void pauseSimulation() throws RemoteException
+    {
+        final DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
+        simMgrMsgLog.add(timeFormat.format(new Date())
+                + " CAD log, "
+                + "Simulation Paused.\n");
+        // pausing the simulation will halt writing of CAD log,
+        // so manually force the write here before calling pause.
+        writeCADlog();
+        CADServer.theSimulationCntrlMgr.pauseSimulation();
+        CADServer.theSoundPlayer.setAudioEnabled(false);
+    }
+
+    public void resetSimulation() throws RemoteException
+    {
+
+        CADServer.theIncidentMgr.resetIncidents();
+        cadData.resetSimulation();
+
+        CADServer.theSoundPlayer.setAudioEnabled(false);
+        CADServer.theSoundPlayer.deQueueAll();
+
+        cadModel.setTime(0);
+
+        setScriptStatus(SCRIPT_STATUS.SCRIPT_STOPPED_NOT_STARTED);
+
+        CMSDiversionDB.getInstance().resetDiversions();
+
+        CADServer.theSimulationCntrlMgr.resetSimulation();
+        CADServer.theParamicsSimMgr.resetSimulation();
+
+        notifyObservers(new ObserverMessage(ObserverMessage.messageType.RESET_SIMULATION, null));
+
     }
     /** Convenience method for clients to get ATMS time.
@@ -283,31 +338,4 @@
     }
 
-    public void pauseSimulation() throws RemoteException
-    {
-        CADServer.theSimulationCntrlMgr.pauseSimulation();
-        CADServer.theSoundPlayer.setAudioEnabled(false);
-    }
-
-    public void resetSimulation() throws RemoteException
-    {
-
-        CADServer.theIncidentMgr.resetIncidents();
-        cadData.resetSimulation();
-
-        CADServer.theSoundPlayer.setAudioEnabled(false);
-        CADServer.theSoundPlayer.deQueueAll();
-
-        cadModel.setTime(0);
-
-        setScriptStatus(SCRIPT_STATUS.SCRIPT_STOPPED_NOT_STARTED);
-
-        CMSDiversionDB.getInstance().resetDiversions();
-
-        CADServer.theSimulationCntrlMgr.resetSimulation();
-        CADServer.theParamicsSimMgr.resetSimulation();
-
-        notifyObservers(new ObserverMessage(ObserverMessage.messageType.RESET_SIMULATION, null));
-
-    }
 
     public void gotoSimulationTime(final long newSimTime) throws RemoteException
@@ -475,5 +503,17 @@
         return CADServer.theSimulationCntrlMgr.getCurrentSimTime();
     }
-
+    /**
+     * Format an elapsed time in seconds as HH:MM:SS
+     *
+     * @param seconds
+     * @return HH:MM:SS formatted string
+     */
+    public static String formatTimeInSeconds(final long seconds)
+    {
+        final long hr = TimeUnit.SECONDS.toHours(seconds);
+        final long min = TimeUnit.SECONDS.toMinutes(seconds - TimeUnit.HOURS.toSeconds(hr));
+        final long sec = TimeUnit.SECONDS.toSeconds(seconds - TimeUnit.HOURS.toSeconds(hr) - TimeUnit.MINUTES.toSeconds(min));
+        return String.format("%02d:%02d:%02d", hr, min, sec);
+    }
     public void triggerIncident(Integer incidentNumber) throws RemoteException, ScriptException
     {
@@ -755,5 +795,4 @@
 
                     CADServer.theIncidentMgr.tick(currentSimTime);
-                    writeCADlog();
                     writeSimTime(currentSimTime);
                 }
@@ -763,4 +802,5 @@
             timeThread.start();
         }
+        writeCADlog();
     }
     /** Helper method to write the current CAD comment log to a file.  
@@ -786,4 +826,5 @@
             for (String item: getSortedComments(incList))
             {
+                // Write the line without the timestamp
                 writer.print(item.substring(9));
             }
@@ -797,4 +838,6 @@
     /** Extract a list of comments from the current incidents, ordered
      * by timestamp.  Fixes defect #175.
+     * Note that the timestamp is used for ordering the comments,
+     * but not written to the CADlog.
      * Package private to allow unit testing.
      * 
@@ -815,5 +858,5 @@
             {
                 // Combine the fields into one output entry
-                String timestamp = (String)notesTable.getValueAt(row,1);
+                String timestamp = (String)notesTable.getValueAt(row,1);//wall clock time
                 String initials = (String) notesTable.getValueAt(row,2); // user initials
                 // If there are user intials, include this item.
@@ -830,4 +873,9 @@
                 }
             }
+        }
+        // Append Sim Mgr start and pause messages to comment list. ticket 189
+        for (String simMsg: simMgrMsgLog)
+        {
+            commentList.add(simMsg);
         }
         // Order the comments by timestamp instead of incident number.
@@ -857,4 +905,5 @@
             }
         });
+
         return commentList;
     }
