Index: trunk/src/atmsdriver/model/Station.java
===================================================================
--- trunk/src/atmsdriver/model/Station.java	(revision 168)
+++ trunk/src/atmsdriver/model/Station.java	(revision 180)
@@ -1,6 +1,6 @@
 package atmsdriver.model;
 
-import atmsdriver.ConsoleDriver;
-import atmsdriver.ConsoleDriver.DOTCOLOR;
+import atmsdriver.ConsoleTrafficDriver;
+import atmsdriver.model.LoopDetector.DOTCOLOR;
 import java.util.List;
 import org.w3c.dom.Document;
@@ -174,5 +174,5 @@
     private void outputUpdateMessage(DOTCOLOR dotcolor, String OPP_ML)
     {
-        System.out.printf("Updating route %-3.3s %-5.5s %-3.3s lanes\t %-12.12s "
+        System.out.printf("Updating %-3.3s %-5.5s %-3.3s lanes\t %-12.12s "
                 + "at postmile %-6.6s to %-7.7s\n", 
                 Integer.toString(this.routeNumber), this.direction.name(), 
Index: trunk/src/atmsdriver/model/Highways.java
===================================================================
--- trunk/src/atmsdriver/model/Highways.java	(revision 176)
+++ trunk/src/atmsdriver/model/Highways.java	(revision 180)
@@ -109,5 +109,70 @@
         return highways;
     }
-    
+        /**
+     * Applies specified color to the specified highway stretch. Route number and
+     * direction specify the highway. Postmile and range specify the stretch of
+     * specified highway. Dot color is the color to be applied to the stretch.
+     * 
+     * @param routeNumber highway route number
+     * @param direction highway direction
+     * @param postmile origin postmile value
+     * @param range range from origin postmile
+     * @param dotColor the color to be applied to specified highway stretch
+     */
+    public void applyColorToHighwayStretch(Integer routeNumber, Station.DIRECTION direction, 
+            Double postmile, Double range, LoopDetector.DOTCOLOR dotColor) {
+        System.out.println("Applying " + dotColor.name() + " dots to highway " 
+                + routeNumber + " " + direction.name() + " at postmile " 
+                + postmile + " with a range of " + range + " miles...");
+        
+        // Get the highway by route number
+        Highway highway = getHighwayByRouteNumber(routeNumber);
+        
+        // start value for highway section, and end value for highway section
+        // by postmile
+        Double startPost;
+        Double endPost;
+        
+        // postmiles increase from s to n and w to e
+        
+        // if the direction is south or west
+        if(direction.equals(Station.DIRECTION.SOUTH) || direction.equals(Station.DIRECTION.WEST))
+        {
+            // add range value to startPost to get
+            // the end postmile value of the highway section
+            startPost = postmile;
+            endPost = postmile + range;
+            
+            // iterate through the stations, if within the specified highway
+            // stretch, update the station by direction and apply dot color
+            for(Station station : highway.stations)
+            {
+                if(station.postmile >= startPost && station.postmile <= endPost)
+                {
+                    station.updateByDirection(direction, dotColor);
+                }
+            }
+        }
+        // if the direction is north or east 
+        else
+        {
+            //subtract range value from startPost
+            // to get the end postmile value of the highway section
+            startPost = postmile;
+            endPost = postmile - range;
+            
+            // iterate through the stations, if within the specified highway
+            // section, update the station by direction and apply dot color
+            for(Station station : highway.stations)
+            {
+                if(station.postmile <= startPost && station.postmile >= endPost)
+                {
+                    station.updateByDirection(direction, dotColor);
+                }
+            }
+        }
+        System.out.println("");
+    }
+
     /*
      private ArrayList<FEPLine> loadLines(String highwayMetaFileName) {
Index: trunk/src/atmsdriver/model/LoopDetector.java
===================================================================
--- trunk/src/atmsdriver/model/LoopDetector.java	(revision 176)
+++ trunk/src/atmsdriver/model/LoopDetector.java	(revision 180)
@@ -121,3 +121,57 @@
         loopElement.appendChild(spdElement);
     }
+    
+    /**
+     * Enum for highway status dot colors. Each color has associated volume
+     * and occupancy constants.
+     *
+     * @author John A. Torres, jdalbey
+     * @version 10/11/2017
+     */
+    public static enum DOTCOLOR {
+
+        RED(1, 0.06f),    // "Stopped" is less than 25mph
+        YELLOW(3,0.059f), // speed = 26
+        GREEN(0,0);
+        
+        // All the first letters of the values, in order.
+        public static String allLetters = "RYG";
+        
+        private int vol;  /* volume */
+        private float occ;  /* occupancy */      
+        
+        private DOTCOLOR(int v, float o)
+        {
+            vol = v;
+            occ = o;
+        }
+        /**
+         * Return the first letter of this enum.
+         *
+         * @return String first letter of this enum.
+         */
+        public String getLetter() {
+            return this.toString().substring(0, 1);
+        }
+
+        public int volume()
+        {
+            return vol;
+        }
+        public float occupancy()
+        {
+            return occ;
+        }
+        /**
+         * Returns a dot color given its first character.
+         *
+         * @param letter the first character of a dot color
+         * @return dot color corresponding to letter
+         * @pre letter must be one of allLetters
+         */
+        public static DOTCOLOR toDotColor(String letter) {
+            return values()[allLetters.indexOf(letter.charAt(0))];
+        }
+    }  
+    
 }
