Index: trunk/src/tmcsim/client/ATMSBatchDriver.java
===================================================================
--- trunk/src/tmcsim/client/ATMSBatchDriver.java	(revision 127)
+++ trunk/src/tmcsim/client/ATMSBatchDriver.java	(revision 128)
@@ -114,5 +114,8 @@
     /** Instance of ConsoleDriver that contains the highway model */
     private ConsoleDriver console;
-
+    
+    /** GUI for this driver */
+    private ATMSBatchViewer theView;
+    
     /**
      * Constructor. Initialize data from parsed properties file. Create a socket
@@ -142,4 +145,8 @@
         // READ THE BATCH FILE OF COMMANDS and put in a queue
         readBatchFile();
+        // Launch the display
+        theView = new ATMSBatchViewer();
+        theView.setVisible(true);
+        theView.update("0:00", eventQueue);        
         // Create a timer that fetches the simulation time every second.
         Timer timer = new Timer(ONE_SECOND, new ActionListener()
@@ -162,5 +169,5 @@
                         System.exit(-1);
                     }                    
-                    System.out.println("Current clock: " + currentClock);
+                    //System.out.println("Current clock: " + currentClock);
                 } catch (RemoteException ex)
                 {
@@ -181,5 +188,6 @@
                         eventQueue.remove();
                     }
-                    System.out.println("Next event will be launched at: " + formatter.format(eventTime));
+                    //System.out.println("Next event will be launched at: " + formatter.format(eventTime));
+                    theView.update(currentClock, eventQueue);
                     // Check the queue of events to see if the first
                     // item should be launched.  IF so, 
@@ -381,6 +389,11 @@
             while (true)
             {
-                // Write the highway network status to the FEP Simulator
-                highways.writeToFEP();
+                try {
+                    // Write the highway network status to the FEP Simulator
+                    highways.writeToFEP();
+                } catch (SimulationException ex) 
+                {
+                    System.out.println("Skipping writeToFEP...");
+                }
 
                 // Wait for FEP Sim to process the data we just sent
Index: trunk/src/tmcsim/client/ATMSBatchViewer.java
===================================================================
--- trunk/src/tmcsim/client/ATMSBatchViewer.java	(revision 128)
+++ trunk/src/tmcsim/client/ATMSBatchViewer.java	(revision 128)
@@ -0,0 +1,157 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package tmcsim.client;
+
+import java.util.LinkedList;
+import java.util.Queue;
+import java.util.Vector;
+import javax.swing.AbstractListModel;
+import javax.swing.JList;
+
+/**
+ *
+ * @author jdalbey
+ */
+public class ATMSBatchViewer extends javax.swing.JFrame 
+{
+    /**
+     * Creates new form ATMSBatchViewer
+     */
+    public ATMSBatchViewer() 
+    {
+        initComponents();
+    }
+
+    public void update(String currentTime, Queue<String> events)
+    {
+        lstEvents.setModel(new MyListModel(events));
+        txtClockTime.setText(currentTime);
+    }
+    class MyListModel extends AbstractListModel<String>
+    {
+            String[] strings = { "item 1", "item 2" };
+            public MyListModel(Queue<String> events)
+            {
+                strings = events.toArray(new String[events.size()]);               
+            }
+            public int getSize() { return strings.length; }
+            public String getElementAt(int i) { return strings[i]; }        
+    }
+    /**
+     * This method is called from within the constructor to initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is always
+     * regenerated by the Form Editor.
+     */
+    @SuppressWarnings("unchecked")
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents() {
+
+        pnlEvents = new javax.swing.JPanel();
+        scrollEvents = new javax.swing.JScrollPane();
+        lstEvents = new javax.swing.JList<>();
+        txtClockTime = new javax.swing.JLabel();
+
+        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+
+        lstEvents.setFont(new java.awt.Font("Noto Mono", 0, 12)); // NOI18N
+        lstEvents.setModel(new javax.swing.AbstractListModel<String>() {
+            String[] strings = { "item 1", "item 2" };
+            public int getSize() { return strings.length; }
+            public String getElementAt(int i) { return strings[i]; }
+        });
+        scrollEvents.setViewportView(lstEvents);
+
+        txtClockTime.setFont(new java.awt.Font("Noto Sans", 1, 14)); // NOI18N
+        txtClockTime.setText("0:00:00");
+
+        javax.swing.GroupLayout pnlEventsLayout = new javax.swing.GroupLayout(pnlEvents);
+        pnlEvents.setLayout(pnlEventsLayout);
+        pnlEventsLayout.setHorizontalGroup(
+            pnlEventsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlEventsLayout.createSequentialGroup()
+                .addContainerGap(83, Short.MAX_VALUE)
+                .addComponent(scrollEvents, javax.swing.GroupLayout.PREFERRED_SIZE, 354, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addGap(59, 59, 59))
+            .addGroup(pnlEventsLayout.createSequentialGroup()
+                .addGap(186, 186, 186)
+                .addComponent(txtClockTime, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+        );
+        pnlEventsLayout.setVerticalGroup(
+            pnlEventsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlEventsLayout.createSequentialGroup()
+                .addComponent(txtClockTime, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(scrollEvents, javax.swing.GroupLayout.DEFAULT_SIZE, 172, Short.MAX_VALUE)
+                .addContainerGap())
+        );
+
+        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+        getContentPane().setLayout(layout);
+        layout.setHorizontalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addComponent(pnlEvents, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                .addContainerGap())
+        );
+        layout.setVerticalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addComponent(pnlEvents, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addGap(0, 129, Short.MAX_VALUE))
+        );
+
+        pack();
+    }// </editor-fold>//GEN-END:initComponents
+
+    /**
+     * @param args the command line arguments
+     */
+    public static void main(String args[]) {
+        /* Set the Nimbus look and feel */
+        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
+        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
+         */
+        try {
+            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+                if ("Nimbus".equals(info.getName())) {
+                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
+                    break;
+                }
+            }
+        } catch (ClassNotFoundException ex) {
+            java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+        } catch (InstantiationException ex) {
+            java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+        } catch (IllegalAccessException ex) {
+            java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+            java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+        }
+        //</editor-fold>
+
+        /* Create and display the form */
+        java.awt.EventQueue.invokeLater(new Runnable() {
+            public void run() {
+                Queue<String> sample = new LinkedList<String>();
+                sample.add("Greetings");
+                sample.add("Earthling");
+                ATMSBatchViewer view = new ATMSBatchViewer();
+                view.setVisible(true);
+                view.update("01", sample);
+                
+            }
+        });
+    }
+
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JList<String> lstEvents;
+    private javax.swing.JPanel pnlEvents;
+    private javax.swing.JScrollPane scrollEvents;
+    private javax.swing.JLabel txtClockTime;
+    // End of variables declaration//GEN-END:variables
+}
Index: trunk/src/tmcsim/client/ATMSBatchViewer.form
===================================================================
--- trunk/src/tmcsim/client/ATMSBatchViewer.form	(revision 128)
+++ trunk/src/tmcsim/client/ATMSBatchViewer.form	(revision 128)
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
+  <Properties>
+    <Property name="defaultCloseOperation" type="int" value="3"/>
+  </Properties>
+  <SyntheticProperties>
+    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+    <SyntheticProperty name="generateCenter" type="boolean" value="false"/>
+  </SyntheticProperties>
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+  </AuxValues>
+
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="0" attributes="0">
+              <Component id="pnlEvents" max="32767" attributes="0"/>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="0" attributes="0">
+              <Component id="pnlEvents" min="-2" max="-2" attributes="0"/>
+              <EmptySpace min="0" pref="129" max="32767" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+  </Layout>
+  <SubComponents>
+    <Container class="javax.swing.JPanel" name="pnlEvents">
+
+      <Layout>
+        <DimensionLayout dim="0">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" alignment="1" attributes="0">
+                  <EmptySpace pref="83" max="32767" attributes="0"/>
+                  <Component id="scrollEvents" min="-2" pref="354" max="-2" attributes="0"/>
+                  <EmptySpace min="-2" pref="59" max="-2" attributes="0"/>
+              </Group>
+              <Group type="102" alignment="0" attributes="0">
+                  <EmptySpace min="-2" pref="186" max="-2" attributes="0"/>
+                  <Component id="txtClockTime" min="-2" pref="65" max="-2" attributes="0"/>
+                  <EmptySpace max="32767" attributes="0"/>
+              </Group>
+          </Group>
+        </DimensionLayout>
+        <DimensionLayout dim="1">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <Group type="102" alignment="1" attributes="0">
+                  <Component id="txtClockTime" min="-2" pref="28" max="-2" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+                  <Component id="scrollEvents" pref="172" max="32767" attributes="0"/>
+                  <EmptySpace max="-2" attributes="0"/>
+              </Group>
+          </Group>
+        </DimensionLayout>
+      </Layout>
+      <SubComponents>
+        <Container class="javax.swing.JScrollPane" name="scrollEvents">
+          <AuxValues>
+            <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+          </AuxValues>
+
+          <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+          <SubComponents>
+            <Component class="javax.swing.JList" name="lstEvents">
+              <Properties>
+                <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+                  <Font name="Noto Mono" size="12" style="0"/>
+                </Property>
+                <Property name="model" type="javax.swing.ListModel" editor="org.netbeans.modules.form.editors2.ListModelEditor">
+                  <StringArray count="2">
+                    <StringItem index="0" value="item 1"/>
+                    <StringItem index="1" value="item 2"/>
+                  </StringArray>
+                </Property>
+              </Properties>
+              <AuxValues>
+                <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
+              </AuxValues>
+            </Component>
+          </SubComponents>
+        </Container>
+        <Component class="javax.swing.JLabel" name="txtClockTime">
+          <Properties>
+            <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+              <Font name="Noto Sans" size="14" style="1"/>
+            </Property>
+            <Property name="text" type="java.lang.String" value="0:00:00"/>
+          </Properties>
+        </Component>
+      </SubComponents>
+    </Container>
+  </SubComponents>
+</Form>
