/* 
 * File:   HighwaysParser.cpp
 * Author: jtorres
 * 
 * Created on October 28, 2017, 7:23 PM
 */

#include "HighwaysParser.h"

HighwaysParser::HighwaysParser(char * hwyData) {
    string highwaysData = hwyData;
    istringstream stream(highwaysData);
    parseLines(highwaysData);
}

HighwaysParser::~HighwaysParser() {
}

vector<FEP_LINE *> HighwaysParser::getLines() {
    
}

vector<STATION *> HighwaysParser::getStations() {
    
}
// FEP line: Represents a serial communication line from field stations to the 
// An FEP Line has several Loop Detector Stations (Stations) connected)
typedef struct fep_line FEP_LINE;
struct  fep_line
{
	int             lineNum;
	vector<long>    lds;
	vector<long>    ldsIndex;	// location in ldsMap

	short   count;	// actual count from caltrans
	int	schedule;
	int	lineInfo;
	long	systemKey;
	long	globalSeq;
	long	schedleSeq;
};
void HighwaysParser::parseLines(istringstream highwaysData)
{
    string currLine;
    getline(highwaysData, currLine);
    int numLines;
    sscanf(highwaysData, "%d", &numLines);
    
    int lineNum = 0;
    long lds = 0;
    long ldsIndex = 0;
    short count = 0;
    int schedule = 0;
    int lineInfo = 0;
    long systemKey = 0;
    long globalSeq = 0;
    long schedleSeq = 0;
    
    for(int lineIndex = 0; lineIndex < numLines; lineIndex++)
    {
        getline(highwaysData, currLine);
        int numStations = 0;
        sscanf(currLine, "%d %d %d", &lineNum, &count, &numStations);
        for(int stationIndex = 0; stationIndex < numStations; stationIndex++)
        {
            getline(highwaysData, currLine);
            sscanf(currLine, "%d %d %d %d %d %d", &lds, )
            
        }
    }
    getline(highwaysData, currLine);
}

FEP_LINE * HighwaysParser::parseLine(istringstream highwaysData)
{

}

STATION * HighwaysParser::parseStation(istringstream highwaysData)
{
    
}

LOOP * HighwaysParser::parseLoop(istringstream highwaysData)
{
    
}
