Index: trunk/BNC/bnccaster.cpp
===================================================================
--- trunk/BNC/bnccaster.cpp	(revision 3323)
+++ trunk/BNC/bnccaster.cpp	(revision 3324)
@@ -177,5 +177,6 @@
          << obs.GPSWeek                                       << " "
          << setprecision(7) << obs.GPSWeeks                   << " "
-         << bncRinex::rinexSatLine(obs, false, ' ', ' ', ' ') << endl;
+////     << bncRinex::rinexSatLine(obs, false, ' ', ' ', ' ') << endl;
+         << bncRinex::asciiSatLine(obs) << endl;
 
     string hlpStr = oStr.str();
Index: trunk/BNC/bncrinex.cpp
===================================================================
--- trunk/BNC/bncrinex.cpp	(revision 3323)
+++ trunk/BNC/bncrinex.cpp	(revision 3324)
@@ -828,2 +828,95 @@
   return str.str();
 }
+
+// One Line in ASCII (Internal) Format
+////////////////////////////////////////////////////////////////////////////
+string bncRinex::asciiSatLine(const t_obs& obs) {
+
+  ostringstream str;
+  str.setf(ios::showpoint | ios::fixed);
+
+  if      (obs.satSys == 'G') { // GPS
+    str << obs.satSys 
+        << setw(2) << setfill('0') << obs.satNum << setfill(' ')
+        << setw(14) << setprecision(3) << obs.C1  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.L1C; 
+    str << ' ' << obs.slip_cnt_L1 << ' ';
+    str << setw(14) << setprecision(3) << obs.D1C << ' '  << ' '
+        << setw(14) << setprecision(3) << obs.S1C << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs.P1  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.L1P; 
+    str << ' ' << obs.slip_cnt_L1 << ' ';
+    str << setw(14) << setprecision(3) << obs.D1P << ' '  << ' '
+        << setw(14) << setprecision(3) << obs.S1P << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs.P2  << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs.L2P;
+    str << ' ' << obs.slip_cnt_L2 << ' ';
+    str << setw(14) << setprecision(3) << obs.D2P << ' '  << ' '
+        << setw(14) << setprecision(3) << obs.S2P << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs.C2  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.L2C;
+    str << ' ' << obs.slip_cnt_L2 << ' ';
+    str << setw(14) << setprecision(3) << obs.D2C << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs.S2C << ' '  << ' '
+        << setw(14) << setprecision(3) << obs.C5  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.L5;
+    str << ' ' << obs.slip_cnt_L5 << ' ';
+    str << setw(14) << setprecision(3) << obs.D5  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.S5;
+  }
+  else if (obs.satSys == 'R') { // Glonass
+    str << obs.satSys 
+        << setw(2) << setfill('0') << obs.satNum << setfill(' ');
+    str << ' ' << obs.slotNum << ' ';
+
+    str << setw(14) << setprecision(3) << obs.C1  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.L1C;
+    str << ' ' << obs.slip_cnt_L1 << ' ';
+    str << setw(14) << setprecision(3) << obs.D1C << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.S1C << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs.P1  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.L1P; 
+    str << ' ' << obs.slip_cnt_L1 << ' ';
+    str << setw(14) << setprecision(3) << obs.D1P << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.S1P << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs.P2  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.L2P;
+    str << ' ' << obs.slip_cnt_L2 << ' ';
+    str << setw(14) << setprecision(3) << obs.D2P << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.S2P << ' '  << ' '
+        << setw(14) << setprecision(3) << obs.C2  << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs.L2C;
+    str << ' ' << obs.slip_cnt_L2 << ' ';
+    str << setw(14) << setprecision(3) << obs.D2C << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.S2C;
+  }
+  else if (obs.satSys == 'S') { // SBAS
+    str << obs.satSys 
+        << setw(2) << setfill('0') << obs.satNum << setfill(' ')
+        << setw(14) << setprecision(3) << obs.C1  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.L1C;
+    str << ' ' << obs.slip_cnt_L1 << ' ';
+    str << setw(14) << setprecision(3) << obs.D1C << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.S1C << ' '  << ' '
+        << setw(14) << setprecision(3) << obs.P1  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.L1P; 
+    str << ' ' << obs.slip_cnt_L1 << ' ';
+    str << setw(14) << setprecision(3) << obs.D1P << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.S1P;
+  }
+  else if (obs.satSys == 'E') { // Galileo
+    str << obs.satSys 
+        << setw(2) << setfill('0') << obs.satNum << setfill(' ')
+        << setw(14) << setprecision(3) << obs.C1  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.L1C;
+    str << ' ' << obs.slip_cnt_L1 << ' ';
+    str << setw(14) << setprecision(3) << obs.D1C << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs.S1C << ' '  << ' ' 
+        << setw(14) << setprecision(3) << obs.C5  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.L5;
+    str << ' ' << obs.slip_cnt_L5 << ' ';
+    str << setw(14) << setprecision(3) << obs.D5  << ' '  << ' '  
+        << setw(14) << setprecision(3) << obs.S5;
+  }
+  return str.str();
+}
Index: trunk/BNC/bncrinex.h
===================================================================
--- trunk/BNC/bncrinex.h	(revision 3323)
+++ trunk/BNC/bncrinex.h	(revision 3324)
@@ -58,4 +58,6 @@
                                    char lli1, char lli2, char lli5);
 
+   static std::string asciiSatLine(const t_obs& obs);
+
  private:
    void resolveFileName(const QDateTime& datTim);
