Index: /trunk/BNC/src/upload/bncrtnetuploadcaster.cpp
===================================================================
--- /trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 6859)
+++ /trunk/BNC/src/upload/bncrtnetuploadcaster.cpp	(revision 6860)
@@ -315,4 +315,6 @@
   struct PhaseBias phasebias;
   memset(&phasebias, 0, sizeof(phasebias));
+  unsigned int dispInd = 0;
+  unsigned int mwInd = 0;
   phasebias.EpochTime[CLOCKORBIT_SATGPS]     = co.EpochTime[CLOCKORBIT_SATGPS];
   phasebias.EpochTime[CLOCKORBIT_SATGLONASS] = co.EpochTime[CLOCKORBIT_SATGLONASS];
@@ -325,4 +327,12 @@
   phasebias.SSRSolutionID = _SID;
 
+  struct VTEC vtec;
+  memset(&vtec, 0, sizeof(vtec));
+  vtec.EpochTime = static_cast<int>(epoTime.gpssec());
+  vtec.SSRIOD        = _IOD;
+  vtec.SSRProviderID = _PID;
+  vtec.SSRSolutionID = _SID;
+
+
   // Default Update Interval
   // -----------------------
@@ -346,5 +356,5 @@
   for (int ii = 1; ii < lines.size(); ii++) {
 
-    QString      prn;
+    QString      prn;  // prn or key VTEC, IND (phase bias indicators)
     ColumnVector rtnAPC;
     ColumnVector rtnVel;
@@ -355,4 +365,32 @@
 
     in >> prn;
+
+    // non-satellite specific parameters
+    if      (prn.contains("IND", Qt::CaseSensitive)) {
+      in >> dispInd >> mwInd;
+      continue;
+    }
+    if (prn.contains("VTEC", Qt::CaseSensitive)) {
+      in >> vtec.UpdateInterval >> vtec.NumLayers;
+      for (unsigned ll = 0; ll < vtec.NumLayers; ll++) {
+        int dummy;
+        in >> dummy >> vtec.Layers[ll].Degree >> vtec.Layers[ll].Order
+          >> vtec.Layers[ll].Height;
+        ii++;
+        for (unsigned iDeg = 0; iDeg < vtec.Layers[ll].Degree; iDeg++) {
+          for (unsigned iOrd = 0; iOrd < vtec.Layers[ll].Order; iOrd++) {
+            in >> vtec.Layers[ll].Cosinus[iDeg][iOrd];
+          }
+          ii++;
+        }
+        for (unsigned iDeg = 0; iDeg < vtec.Layers[ll].Degree; iDeg++) {
+          for (unsigned iOrd = 0; iOrd < vtec.Layers[ll].Order; iOrd++) {
+            in >> vtec.Layers[ll].Sinus[iDeg][iOrd];
+          }
+          ii++;
+        }
+      }
+      continue;
+    }
 
     const t_eph* ephLast = _ephUser->ephLast(prn);
@@ -444,10 +482,4 @@
         else if (key == "YawRate") {
           in >> numVal >> pbSat.yR;
-        }
-        else if (key == "DisInd") {
-          in >> numVal >> pbSat.dispInd;
-        }
-        else if (key == "MwInd") {
-          in >> numVal >> pbSat.mwInd;
         }
         else if (key == "PhaseBias") {
@@ -947,6 +979,6 @@
 
       if (phasebiasSat) {
-        phasebias.DispersiveBiasConsistencyIndicator = pbSat.dispInd;
-        phasebias.MWConsistencyIndicator = pbSat.mwInd;
+        phasebias.DispersiveBiasConsistencyIndicator = dispInd;
+        phasebias.MWConsistencyIndicator = mwInd;
         phasebiasSat->ID = prn.mid(1).toInt();
         phasebiasSat->NumberOfPhaseBiases = 0;
@@ -1643,6 +1675,13 @@
   // ----
   QByteArray hlpBufferVtec;
-
-  _outBuffer += hlpBufferCo + hlpBufferBias + hlpBufferPhaseBias;
+  if (vtec.NumLayers > 0) {
+    char obuffer[CLOCKORBIT_BUFFERSIZE];
+    int len = MakeVTEC(&vtec, 0, obuffer, sizeof(obuffer));
+    if (len > 0) {
+      hlpBufferVtec = QByteArray(obuffer, len);
+    }
+  }
+
+  _outBuffer += hlpBufferCo + hlpBufferBias + hlpBufferPhaseBias + hlpBufferVtec;
 }
 
Index: /trunk/BNC/src/upload/bncrtnetuploadcaster.h
===================================================================
--- /trunk/BNC/src/upload/bncrtnetuploadcaster.h	(revision 6859)
+++ /trunk/BNC/src/upload/bncrtnetuploadcaster.h	(revision 6860)
@@ -74,6 +74,4 @@
   double yA;
   double yR;
-  unsigned int dispInd;
-  unsigned int mwInd;
 };
 
