Index: branches/BasicFEPClient/network_factory.cpp
===================================================================
--- branches/BasicFEPClient/network_factory.cpp	(revision 151)
+++ branches/BasicFEPClient/network_factory.cpp	(revision 153)
@@ -37,15 +37,15 @@
 
 // Initializes the LOOP dataPack with all necessary static data and default dynamic data
-void NetworkFactory::init_loop_dataPack(STATION *station)
+void NetworkFactory::init_loop_dataPack(STATION *loop)
 {
 	int j;
 	// Allocate memory for dataPack
-	station->dataPack = (unsigned char *) calloc(sizeof(unsigned char), station->length);
+	loop->dataPack = (unsigned char *) calloc(sizeof(unsigned char), loop->length);
 
 	// dataPack 5-8: lane config
 	char d5 = 0, d6 = 0, d7 = 0, d8 = 0;		
-	for (j = 0; j < station->loops.size(); j++)
-	{
-            char * currLoc = station->loops[j]->loop_loc;
+	for (j = 0; j < loop->loops.size(); j++)
+	{
+            char * currLoc = loop->loops[j]->loop_loc;
 		for (int k = 0; k < 8; k++)
 		{
@@ -60,14 +60,14 @@
 		}
 	}
-	station->dataPack[5-1] = d5;
-	station->dataPack[6-1] = d6;
-	station->dataPack[7-1] = d7;
-	station->dataPack[8-1] = d8;
+	loop->dataPack[5-1] = d5;
+	loop->dataPack[6-1] = d6;
+	loop->dataPack[7-1] = d7;
+	loop->dataPack[8-1] = d8;
 
 	// dataPack 1: Drop number, i.e. station address
-	station->dataPack[1-1] = station->drop;
+	loop->dataPack[1-1] = loop->drop;
 
 	// dataPack2 (2 bytes per loop)
-	station->dataPack[2-1] = station->loops.size() * 2 + Fixed_Byte_To_Checksum;
+	loop->dataPack[2-1] = loop->loops.size() * 2 + Fixed_Byte_To_Checksum;
 
 	// dataPacket 3 (lowbyte: # of mainline loops, highbyte: # of opposite loops)
@@ -75,28 +75,28 @@
 	for (j = 1; j <= 6; j++)
 	{
-		low += DataAvail(station->dataPack[5-1], j);
-		high += DataAvail(station->dataPack[6-1], j);
+		low += DataAvail(loop->dataPack[5-1], j);
+		high += DataAvail(loop->dataPack[6-1], j);
 	}
 	high = high << 4;
-	station->dataPack[3-1] = high | low;
+	loop->dataPack[3-1] = high | low;
 
 	// dataPack4 (Miscl. flags: samples are: 80, A0, E0, 00)
-	station->dataPack[4-1] = 0xA0;
+	loop->dataPack[4-1] = 0xA0;
 
 	// dataPack 9: initialized as 00 (meaning no metering); need to be updated every 30 sec
-	station->dataPack[9-1] = 0;
+	loop->dataPack[9-1] = 0;
 
 	// datadataPack 10-13: lane malfunction? Assuming all functional
-	station->dataPack[10-1] = 0;
-	station->dataPack[11-1] = 0;
-	station->dataPack[12-1] = 0;
-	station->dataPack[13-1] = 0;
+	loop->dataPack[10-1] = 0;
+	loop->dataPack[11-1] = 0;
+	loop->dataPack[12-1] = 0;
+	loop->dataPack[13-1] = 0;
 
 	// dataPack 14-22: ramp metering data
 	// BYTE 16 and 22 need to be updated every 30 sec
 	bool found = false;
-	for (j = 0; j < station->loops.size(); j++)
-	{
-		if (strcmp(station->loops.at(0)->loop_loc, "DEMAND") == 0)
+	for (j = 0; j < loop->loops.size(); j++)
+	{
+		if (strcmp(loop->loops.at(0)->loop_loc, "DEMAND") == 0)
 		{
 			found = true;
@@ -107,117 +107,121 @@
 	{
 		// BYTE 14: mostly 07, some are 05, 03, 00
-		station->dataPack[14-1] = 0x07;
+		loop->dataPack[14-1] = 0x07;
 		// mostly 06(TOD table 1); some are 0B (No metering) or 05(traffic responsive)
-		station->dataPack[15-1] = 0x06;
+		loop->dataPack[15-1] = 0x06;
 		// most 00, some are 01 (queue override) or 80(Meter ON sign)
-		station->dataPack[16-1] = 0x00;
+		loop->dataPack[16-1] = 0x00;
 		// Field Manual Rate
-		station->dataPack[17-1] = 0xFF;
+		loop->dataPack[17-1] = 0xFF;
 		// TOC Manual Rate
-		station->dataPack[18-1] = 0xFF;
+		loop->dataPack[18-1] = 0xFF;
 		// PSO Manual Rate
-		station->dataPack[19-1] = 0xFF;
+		loop->dataPack[19-1] = 0xFF;
 		// CORM Rate
-		station->dataPack[20-1] = 0xFF;
+		loop->dataPack[20-1] = 0xFF;
 		// Local Responsive Rate. DON'T UNDERSTAND YET
-		station->dataPack[21-1] = 0x00;
+		loop->dataPack[21-1] = 0x00;
 		// TOD Rate: need to query RAMP plugin! 
-		station->dataPack[22-1] = 0x00;
+		loop->dataPack[22-1] = 0x00;
 	}
 	// LDS: NO Metering
 	else
 	{
-		station->dataPack[14-1] = 0x00;
-		station->dataPack[15-1] = 0x0B;
-		station->dataPack[16-1] = 0x00;			
-		station->dataPack[17-1] = 0xFF;
-		station->dataPack[18-1] = 0xFF;
-		station->dataPack[19-1] = 0xFF;
-		station->dataPack[20-1] = 0xFF;
-		station->dataPack[21-1] = 0x00;
-		station->dataPack[22-1] = 0x00;
+		loop->dataPack[14-1] = 0x00;
+		loop->dataPack[15-1] = 0x0B;
+		loop->dataPack[16-1] = 0x00;			
+		loop->dataPack[17-1] = 0xFF;
+		loop->dataPack[18-1] = 0xFF;
+		loop->dataPack[19-1] = 0xFF;
+		loop->dataPack[20-1] = 0xFF;
+		loop->dataPack[21-1] = 0x00;
+		loop->dataPack[22-1] = 0x00;
 	}
 
 	// dataPack 23-24: sum of mainline/Oppsite traffic data; need to be updated every 30 sec
-	station->MlTotVol = 0;
-	station->OppTotVol = 0;
-	station->dataPack[23-1] = station->MlTotVol;	
-	station->dataPack[24-1] = station->OppTotVol;	
+	loop->MlTotVol = 0;
+	loop->OppTotVol = 0;
+	loop->dataPack[23-1] = loop->MlTotVol;	
+	loop->dataPack[24-1] = loop->OppTotVol;	
 	
 	// dataPack 25-26: BYTE 25 is fixed, i.e. 03; BYTE 26 is either 0xA2 or 0x84
-	station->dataPack[25-1] = 0x03;
-	station->dataPack[26-1] = 0x84;
+	loop->dataPack[25-1] = 0x03;
+	loop->dataPack[26-1] = 0x84;
 
 	printf("lds=%d (%d), p1=%2X, p2=%2X, p3=%2X, p5=%2X, p6=%X, p7=%X, p8=%2X\n", 
-		station->lds, station->length, station->dataPack[1-1], station->dataPack[2-1], 
-		station->dataPack[3-1], station->dataPack[5-1], 
-		station->dataPack[6-1], station->dataPack[7-1], station->dataPack[8-1]);
-}
-
-// TEST DATA: WORKING
+		loop->lds, loop->length, loop->dataPack[1-1], loop->dataPack[2-1], 
+		loop->dataPack[3-1], loop->dataPack[5-1], 
+		loop->dataPack[6-1], loop->dataPack[7-1], loop->dataPack[8-1]);
+}
+
+// TEST DATA
 // lds_id	line 	drop sch lineinfo	system_key	sch_seq glo_seq		count	freeway	Dir	ca_pm	lds_name		
 // 1203103	50	13	13	13	1123005873	24148	1357650		19	55	S	6.88	MACARTHU1 
-
-// SAND CANYON: NOT WORKING
-// 1204813      31      18      5       5       1123005744      26489   1357649         18      5       S       23.5    S OF SAND CNYN
-
 FEP_LINE * NetworkFactory::load_lines(int *size, const char * fName)
 {
 	FEP_LINE *lines = (FEP_LINE *) calloc(sizeof(FEP_LINE), 1);
 	*size = 1;
-	lines[0].lineNum = 31;
-	lines[0].lds.push_back(1204813);
+	lines[0].lineNum = 50;
+	lines[0].lds.push_back(1203103);
 	lines[0].ldsIndex.push_back(0);
-	lines[0].count = 18;
-	lines[0].schedule = 5;
-	lines[0].globalSeq = 1357649;
-	lines[0].schedleSeq = 26489;
+	lines[0].count = 19;
+	lines[0].schedule = 13;
+	lines[0].globalSeq = 1357650;
+	lines[0].schedleSeq = 24148;
 	return lines;	
 }
 
-// TEST DATA: Working (MacAruthur))
+// TEST DATA
 //FWY	Dir     POSTMI	LDS_ID	VDS_ID	LOOP_ID LOC    LANE LOOP_LOC      	PARAMICS_NAME  PARAMICS_LANE    
 //55	S	6.88	1203103	1203104	1203105	QU	1	QUEUE      	55s6.88ora   	0
+
 //55	S	6.88	1203103	1203104	1203106	DM	2	DEMAND     	55s6.88ora   	0
+
 //55	S	6.88	1203103	1203104	1203107	PA	3	PASSAGE    	55s6.88ora   	0
+
 //55	S	6.88	1203103	1203108	1203109	HV	1	SD_1       	?            	0
+
 //55	S	6.88	1203103	1203110	1203111	ML	1	ML_1       	55s6.88ml    	4
+
 //55	S	6.88	1203103	1203110	1203112	ML	2	ML_2       	55s6.88ml    	3
+
 //55	S	6.88	1203103	1203110	1203113	ML	3	ML_3       	55s6.88ml    	2
+
 //55	S	6.88	1203103	1203110	1203114	ML	4	ML_4       	55s6.88ml    	1
-
-// TEST DATA: Not working (Sand canyon)
-//5       S       23.5    1204813 1204814 1204815 HV      1       SD_1            5s23.5hv        1
-//5       S       23.5    1204813 1204816 1204818 ML      2       ML_2            5s23.5ml        5
-//5       S       23.5    1204813 1204816 1204819 ML      3       ML_3            5s23.5ml        4
-//5       S       23.5    1204813 1204816 1204820 ML      4       ML_4            5s23.5ml        3
-//5       S       23.5    1204813 1204816 1204821 ML      5       ML_5            5s23.5ml        2
-//5       S       23.5    1204813 1204816 1204822 ML      6       ML_6            5s23.5ml        1
-//5       N       23.5    1204813 1204823 1204824 OH      1       SD_2            5n23.5hv        1
-//5       N       23.5    1204813 1204825 1204826 OS      1       OS_1            5n23.5ml        6
-//5       N       23.5    1204813 1204825 1204827 OS      2       OS_2            5n23.5ml        5
-//5       N       23.5    1204813 1204825 1204828 OS      3       OS_3            5n23.5ml        4
-//5       N       23.5    1204813 1204825 1204829 OS      4       OS_4            5n23.5ml        3
-//5       N       23.5    1204813 1204825 1204830 OS      5       OS_5            5n23.5ml        2
-//5       N       23.5    1204813 1204825 1204831 OS      6       OS_6            5n23.5ml        1
-
-
-//5       S       23.5    1204813 1204816 1204817 ML      1       ML_1            5s23.5ml        6
-
 STATION * NetworkFactory::load_lds(const char * fName)
 {
 	/* Read loop meta data */
 	STATION *lds_map = (STATION *) calloc(sizeof(STATION), 1);
-	lds_map[0].lds = 1204813;
-	lds_map[0].line_num = 31;
-	lds_map[0].drop = 18;
+	lds_map[0].lds = 1203103;
+	lds_map[0].line_num = 50;
+	lds_map[0].drop = 13;
         LOOP *loop = new LOOP;
-        loop->loopID = 1204817;
+        loop->loopID = 1203111;
         loop->loop_loc = "ML_1";
-        loop->occ = 0;
-        loop->vol = 0;
-        
+        
+        LOOP *looptwo = new LOOP;
+        looptwo->loopID = 1203112;
+        looptwo->loop_loc = "ML_2";
+        // occ 30
+        // vol 15 makes a speed of 20 RED
+        
+        // occ 30
+        // vol 20 makes a speed of 26 YELLOW
+        
+        // occ 30
+        // vol 30 makes a speed of 39 GREEN
+        loop->occ = 30;
+        loop->vol = 20;
+        
+        looptwo->occ = 30;
+        looptwo->vol = 15;
+        
+	// Loop ids
+	long *loopIDs = (long *) calloc(sizeof(long), lds_map[0].loops.size());
+	loopIDs[0] = 1203113;
+        loopIDs[1] = 1203112;
         lds_map[0].loops.push_back(loop);
-
+        lds_map[0].loops.push_back(looptwo);
+        
 	// Init Loop dataPack
 	lds_map[0].length = lds_map[0].loops.size() * 2 + CONTROL_DATA_LEN;
