Index: branches/fep_rpc_client/network.h
===================================================================
--- branches/fep_rpc_client/network.h	(revision 77)
+++ branches/fep_rpc_client/network.h	(revision 79)
@@ -11,4 +11,5 @@
 const int Fixed_Byte_To_Checksum = 25; // the first byte is not considered in the calculation of "BYTE 2"
 const int CONTROL_DATA_LEN = 27;
+
 char * const dp5[8] = { "ML_1", "ML_2", "ML_3", "ML_4", "ML_5",
                                                 "ML_6", "HOV_Lane", "FYW_Conn"};
@@ -20,35 +21,30 @@
                                                 "SD_6", "Pass_Vol_Count", "X"};
 
-/*** NETWORK STRUCTS ***/
-typedef struct loopagg LOOPAGG;
-struct loopagg
-{
-	int		index;
-	char	lane;			// how namy lanes at the detector station
-	long	time;
-	int		interval;
-	int 	g_vol;
-	float	g_occ;
-	double	g_spd;
-	int		*vol;
-	float	*occ;
-	double	*spd;
-};
-
 // FEP line: has several lds
 typedef struct fep_line FEP_LINE;
 struct  fep_line
 {
-	int		lineNum;
-	vector<long> lds;
-	vector<long> ldsIndex;	// location in ldsMap
-	short	ldsNum;			// actual number of lds on the line
+	int             lineNum;
+	vector<long>    lds;
+	vector<long>    ldsIndex;	// location in ldsMap
 
-	short	count;	// actual count from caltrans
-	int		schedule;
-	int		lineInfo;
+	short   count;	// actual count from caltrans
+	int	schedule;
+	int	lineInfo;
 	long	systemKey;
 	long	globalSeq;
 	long	schedleSeq;
+};
+
+// Loop detector
+typedef struct loop LOOP;
+struct loop
+{
+    long loopID;
+    char *loop_loc;
+    
+    int vol;
+    float occ;
+    double spd;
 };
 
@@ -61,8 +57,6 @@
 	short	line_num;
 	short	drop;
-
-	int		num;	// number of loops
-	long	*loopID;
-	char	**loop_loc;
+        
+        vector<LOOP*> loops;
 
 	// LDS data
@@ -74,3 +68,11 @@
 };
 
+typedef struct volOcc VOLOCC;
+struct  volOcc
+{
+   char high;
+   char low;
+};
+
+
 #endif
