Index: branches/FEPSimulator/HighwaysParser.cpp
===================================================================
--- branches/FEPSimulator/HighwaysParser.cpp	(revision 199)
+++ branches/FEPSimulator/HighwaysParser.cpp	(revision 202)
@@ -21,7 +21,5 @@
       * */
 HighwaysParser::HighwaysParser(char * hwyData) {
-    string highwaysData = hwyData;
-    istringstream stream(highwaysData);
-    parseLines(highwaysData);
+    parseLines(hwyData);
 }
 
@@ -29,33 +27,13 @@
 }
 
-vector<FEP_LINE *> HighwaysParser::getLines() {
-    
-}
-
-vector<STATION *> HighwaysParser::getStations() {
-    
-}
-
-// Loop Detector: A single sensor that detects the volume, occupancy, and speed
-// in a single highway lane
-typedef struct loop LOOP;
-struct loop
+void HighwaysParser::parseLines(char * hwyData)
 {
-    // meta data
-    long loopID;
-    char *loop_loc;
-    
-    // dynamic data
-    int vol;
-    float occ;
-    double spd;
-};
-void HighwaysParser::parseLines(istringstream highwaysData)
-{
+    string highwaysData = hwyData;
+    istringstream highwaysStream(highwaysData);
     string currLine;
-    getline(highwaysData, currLine);
+    getline(highwaysStream, currLine);
     int numLines;
-    sscanf(highwaysData, "%d", &numLines);
-    
+    sscanf(currLine.c_str(), "%d", &numLines);
+    cout << currLine << endl;
     int lineNum = 0;
     long lds = 0;
@@ -69,18 +47,19 @@
     short dropNum = 0;
     int routeNum = 0;
-    char * direction = "";
     float postmile = 0;
     long loopID = 0;
     float occ = 0;
     int vol = 0;
-    
+    char loopLoc[25];
     for(int lineIndex = 0; lineIndex < numLines; lineIndex++)
     {
         FEP_LINE * newLine = new FEP_LINE;
         
-        getline(highwaysData, currLine);
+        getline(highwaysStream, currLine);
         int numStations = 0;
-        sscanf(currLine, "%d %d %d", &lineNum, &count, &numStations);
-
+        sscanf(currLine.c_str(), "%d %hd %d", &lineNum, &count, &numStations);
+        cout << "Line num: " << lineNum << endl;
+        cout << "Count: " << count << endl;
+        cout << "numStations: " << numStations << endl;
         newLine->lineNum = lineNum;
         newLine->count = count;
@@ -94,18 +73,49 @@
         {
             STATION * newStation = new STATION;
-            
+    
             int numLoops = 0;
-            getline(highwaysData, currLine);
-            sscanf(currLine, "%ld %d %d %s %d %d", &lds, &dropNum,&routeNum, 
-                    direction, postmile, &numLoops);
-            
+            getline(highwaysStream, currLine);
+            cout << currLine << endl;
+            char direction;
+            sscanf(currLine.c_str(), "%ld %hd %d %c %f %d", &lds, &dropNum, &routeNum, &direction,
+                    &postmile, &numLoops);
+            cout << "NumberLoops: " << numLoops << endl;
+            cout << "DropNum: " << dropNum << endl;
+            cout << "LDS: " << lds << endl;
+            cout << "LDSIndex: " << ldsIndex << endl;
+            cout << "postmile: " << postmile << endl;
             newLine->lds.push_back(lds);
             newLine->ldsIndex.push_back(ldsIndex++);
+            newStation->lds = lds;
+            newStation->line_num = lineNum;
+            newStation->drop = dropNum;
+            newStation->pos = 0;
+            newStation->MlTotVol = 0;
+            newStation->OppTotVol = 0;
             
             for(int loopIndex = 0; loopIndex < numLoops; loopIndex++)
             {
-                getline(highwaysData, currLine);
-                sscanf(currLine, "%ld %f %d", &loopID, &occ, &vol);
+                LOOP * newLoop = new LOOP;
+                
+                getline(highwaysStream, currLine);
+                cout << currLine << endl;
+                sscanf(currLine.c_str(), "%ld %f %d %s", &loopID, &occ, &vol, loopLoc);
+                cout << "LOOP ID: " << loopID << endl;
+                cout << "OCC: " << occ << endl;
+                cout << "VOL: " << vol << endl;
+                cout << "LOOPLOC: " << loopLoc << endl;
+                newLoop->loopID = loopID;
+                newLoop->occ = occ;
+                newLoop->vol = vol;
+                newLoop->loop_loc = loopLoc;
+                
+                newStation->loops.push_back(newLoop);
             }
+            newStation->length = newStation->loops.size() * 2 + CONTROL_DATA_LEN;
+            newStation->dataPack = DataPacker::packData(newStation);
+            
+            cout << "NUMBER OF LOOPS: " << newStation->loops.size() << endl;
+            
+            this->stations.push_back(newStation);
         }
         
@@ -113,17 +123,2 @@
     }
 }
-
-FEP_LINE * HighwaysParser::parseLine(istringstream highwaysData)
-{
-
-}
-
-STATION * HighwaysParser::parseStation(istringstream highwaysData)
-{
-    
-}
-
-LOOP * HighwaysParser::parseLoop(istringstream highwaysData)
-{
-    
-}
