Index: /trunk/BNC/src/reqcdlg.cpp
===================================================================
--- /trunk/BNC/src/reqcdlg.cpp	(revision 6794)
+++ /trunk/BNC/src/reqcdlg.cpp	(revision 6795)
@@ -57,19 +57,30 @@
   const QString timeFmtString = "yyyy-MM-dd hh:mm:ss";
 
-  _reqcRnxVersion      = new QComboBox(this);
-  _reqcSampling        = new QSpinBox(this);
-  _reqcStartDateTime   = new QDateTimeEdit(this);
+  _reqcRnxVersion        = new QComboBox(this);
+  _reqcSampling          = new QSpinBox(this);
+  _reqcStartDateTime     = new QDateTimeEdit(this);
   _reqcStartDateTime->setDisplayFormat(timeFmtString);
-  _reqcEndDateTime     = new QDateTimeEdit(this);
+  _reqcEndDateTime       = new QDateTimeEdit(this);
   _reqcEndDateTime->setDisplayFormat(timeFmtString);
-  _reqcRunBy           = new QLineEdit(this);
-  _reqcUseObsTypes     = new QLineEdit(this);
-  _reqcComment         = new QLineEdit(this);
-  _reqcOldMarkerName   = new QLineEdit(this);
-  _reqcNewMarkerName   = new QLineEdit(this);
-  _reqcOldAntennaName  = new QLineEdit(this);
-  _reqcNewAntennaName  = new QLineEdit(this);
-  _reqcOldReceiverName = new QLineEdit(this);
-  _reqcNewReceiverName = new QLineEdit(this);
+  _reqcRunBy             = new QLineEdit(this);
+  _reqcUseObsTypes       = new QLineEdit(this);
+  _reqcComment           = new QLineEdit(this);
+  _reqcOldMarkerName     = new QLineEdit(this);
+  _reqcNewMarkerName     = new QLineEdit(this);
+  _reqcOldAntennaName    = new QLineEdit(this);
+  _reqcNewAntennaName    = new QLineEdit(this);
+  _reqcOldAntennaNumber  = new QLineEdit(this);
+  _reqcNewAntennaNumber  = new QLineEdit(this);
+  _reqcOldAntennadN      = new QLineEdit(this);
+  _reqcNewAntennadN      = new QLineEdit(this);
+  _reqcOldAntennadE      = new QLineEdit(this);
+  _reqcNewAntennadE      = new QLineEdit(this);
+  _reqcOldAntennadU      = new QLineEdit(this);
+  _reqcNewAntennadU      = new QLineEdit(this);
+  _reqcOldReceiverName   = new QLineEdit(this);
+  _reqcNewReceiverName   = new QLineEdit(this);
+  _reqcOldReceiverNumber = new QLineEdit(this);
+  _reqcNewReceiverNumber = new QLineEdit(this);
+
 
   _reqcRnxVersion->setEditable(false);
@@ -111,6 +122,17 @@
   _reqcOldAntennaName->setText(settings.value("reqcOldAntennaName").toString());
   _reqcNewAntennaName->setText(settings.value("reqcNewAntennaName").toString());
+  _reqcOldAntennaNumber->setText(settings.value("reqcOldAntennaNumber").toString());
+  _reqcNewAntennaNumber->setText(settings.value("reqcNewAntennaNumber").toString());
+  _reqcOldAntennadN->setText(settings.value("reqcOldAntennadN").toString());
+  _reqcNewAntennadN->setText(settings.value("reqcNewAntennadN").toString());
+  _reqcOldAntennadE->setText(settings.value("reqcOldAntennadE").toString());
+  _reqcNewAntennadE->setText(settings.value("reqcNewAntennadE").toString());
+  _reqcOldAntennadU->setText(settings.value("reqcOldAntennadU").toString());
+  _reqcNewAntennadU->setText(settings.value("reqcNewAntennadU").toString());
   _reqcOldReceiverName->setText(settings.value("reqcOldReceiverName").toString());
   _reqcNewReceiverName->setText(settings.value("reqcNewReceiverName").toString());
+  _reqcOldReceiverNumber->setText(settings.value("reqcOldReceiverNumber").toString());
+  _reqcNewReceiverNumber->setText(settings.value("reqcNewReceiverNumber").toString());
+
 
   QString hlp = settings.value("reqcV2Priority").toString();
@@ -158,7 +180,28 @@
   grid->addWidget(_reqcNewAntennaName,            ir, 3, 1, 2);
   ++ir;
+  grid->addWidget(new QLabel("Antenna Number"),   ir, 0);
+  grid->addWidget(_reqcOldAntennaNumber,          ir, 1, 1, 2);
+  grid->addWidget(_reqcNewAntennaNumber,          ir, 3, 1, 2);
+  ++ir;
+  grid->addWidget(new QLabel("Antenna ecc. dN"),  ir, 0);
+  grid->addWidget(_reqcOldAntennadN,              ir, 1, 1, 2);
+  grid->addWidget(_reqcNewAntennadN,              ir, 3, 1, 2);
+  ++ir;
+  grid->addWidget(new QLabel("Antenna ecc. dE"),  ir, 0);
+  grid->addWidget(_reqcOldAntennadE,              ir, 1, 1, 2);
+  grid->addWidget(_reqcNewAntennadE,              ir, 3, 1, 2);
+  ++ir;
+  grid->addWidget(new QLabel("Antenna ecc. dU"),  ir, 0);
+  grid->addWidget(_reqcOldAntennadU,              ir, 1, 1, 2);
+  grid->addWidget(_reqcNewAntennadU,              ir, 3, 1, 2);
+  ++ir;
   grid->addWidget(new QLabel("Receiver Name"),    ir, 0);
   grid->addWidget(_reqcOldReceiverName,           ir, 1, 1, 2);
   grid->addWidget(_reqcNewReceiverName,           ir, 3, 1, 2);
+  ++ir;
+  grid->addWidget(new QLabel("Receiver Number"),  ir, 0);
+  grid->addWidget(_reqcOldReceiverNumber,         ir, 1, 1, 2);
+  grid->addWidget(_reqcNewReceiverNumber,         ir, 3, 1, 2);
+
 
   slotReqcTextChanged();
@@ -194,6 +237,16 @@
   _reqcOldAntennaName->setWhatsThis(tr("<p>Enter old antenna name in RINEX observation file.</p><p>Default is an empty option field.</p>"));
   _reqcNewAntennaName->setWhatsThis(tr("<p>Enter new antenna name in RINEX observation file.</p><p>If option 'Old Antenna Name' is either left blank or its contents is specified as given in the RINEX input file, then the antenna name in the RINEX output file will be specified by 'New Antenna Name'</p><p>Default is an empty option field, meaning that the contents of the antenna name data field in the RINEX file will not be changed.</p>"));
+  _reqcOldAntennaNumber->setWhatsThis(tr("<p>Enter old antenna number in RINEX observation file.</p><p>Default is an empty option field.</p>"));
+  _reqcNewAntennaNumber->setWhatsThis(tr("<p>Enter new antenna number in RINEX observation file.</p><p>If option 'Old Antenna Number' is either left blank or its contents is specified as given in the RINEX input file, then the antenna number in the RINEX output file will be specified by 'New Antenna Number'</p><p>Default is an empty option field, meaning that the contents of the antenna number data field in the RINEX file will not be changed.</p>"));
+  _reqcOldAntennadN->setWhatsThis(tr("<p>Enter old north antenna eccentricity in RINEX observation file.</p><p>Default is an empty option field.</p>"));
+  _reqcNewAntennadN->setWhatsThis(tr("<p>Enter new north antenna eccentricity in RINEX observation file.</p><p>If option 'Old Antenna North Eccentricity' is either left blank or its contents is specified as given in the RINEX input file, then the north antenna eccentricity in the RINEX output file will be specified by 'New North Antenna Eccentricity'</p><p>Default is an empty option field, meaning that the contents of the north antenna eccentricity data field in the RINEX file will not be changed.</p>"));
+  _reqcOldAntennadE->setWhatsThis(tr("<p>Enter old east antenna eccentricity in RINEX observation file.</p><p>Default is an empty option field.</p>"));
+  _reqcNewAntennadE->setWhatsThis(tr("<p>Enter new east antenna eccentricity in RINEX observation file.</p><p>If option 'Old Antenna East Eccentricity' is either left blank or its contents is specified as given in the RINEX input file, then the east antenna eccentricity in the RINEX output file will be specified by 'New East Antenna Eccentricity'</p><p>Default is an empty option field, meaning that the contents of the east antenna eccentricity data field in the RINEX file will not be changed.</p>"));
+  _reqcOldAntennadU->setWhatsThis(tr("<p>Enter old up antenna eccentricity in RINEX observation file.</p><p>Default is an empty option field.</p>"));
+  _reqcNewAntennadU->setWhatsThis(tr("<p>Enter new up antenna eccentricity in RINEX observation file.</p><p>If option 'Old Antenna Up Eccentricity' is either left blank or its contents is specified as given in the RINEX input file, then the up antenna eccentricity in the RINEX output file will be specified by 'New Up Antenna Eccentricity'</p><p>Default is an empty option field, meaning that the contents of the up antenna eccentricity data field in the RINEX file will not be changed.</p>"));
   _reqcOldReceiverName->setWhatsThis(tr("<p>Enter old receiver name in RINEX observation file.<p>Default is an empty option field.</p></p>"));
   _reqcNewReceiverName->setWhatsThis(tr("<p>Enter new receiver name in RINEX observation file.</p><p>If option 'Old Receiver Name' is either left blank or its contents is specified as given in the RINEX input file, then the receiver name in the RINEX output file will be specified by 'New Receiver Name'</p><p>Default is an empty option field, meaning that the contents of the receiver name data field in the RINEX file will not be changed.</p>"));
+  _reqcOldReceiverNumber->setWhatsThis(tr("<p>Enter old receiver number in RINEX observation file.<p>Default is an empty option field.</p></p>"));
+  _reqcNewReceiverNumber->setWhatsThis(tr("<p>Enter new receiver number in RINEX observation file.</p><p>If option 'Old Receiver Number' is either left blank or its contents is specified as given in the RINEX input file, then the receiver number in the RINEX output file will be specified by 'New Receiver Number'</p><p>Default is an empty option field, meaning that the contents of the receiver number data field in the RINEX file will not be changed.</p>"));
   _reqcComment->setWhatsThis(tr("<p>Specifying a comment line text to be added to the emerging new RINEX file header is an option. Any introduction of newline specification '\\n' in this enforces the beginning of a further comment line. The  comment line(s) will be added to the header after the 'PGM / RUN BY / DATE' record.</p><p>Default is an empty option field meaning that no additional comment line is added to the RINEX header.</p>"));
   _reqcRunBy->setWhatsThis(tr("<p>Specify a 'RUN BY' string to be included in the emerging new RINEX file header.</p><p>Default is an empty option field meanig the operator's user ID is used as 'RUN BY' string.</p>"));
@@ -247,18 +300,29 @@
   bncSettings settings;
 
-  settings.setValue("reqcRnxVersion"     , _reqcRnxVersion->currentText());    
-  settings.setValue("reqcSampling"       , _reqcSampling->value());      
-  settings.setValue("reqcV2Priority"     , _reqcV2Priority->text()); 
-  settings.setValue("reqcStartDateTime"  , _reqcStartDateTime->dateTime().toString(Qt::ISODate)); 
-  settings.setValue("reqcEndDateTime"    , _reqcEndDateTime->dateTime().toString(Qt::ISODate));   
-  settings.setValue("reqcRunBy"          , _reqcRunBy->text()); 
-  settings.setValue("reqcUseObsTypes"    , _reqcUseObsTypes->text()); 
-  settings.setValue("reqcComment"        , _reqcComment->text()); 
-  settings.setValue("reqcOldMarkerName"  , _reqcOldMarkerName->text()); 
-  settings.setValue("reqcNewMarkerName"  , _reqcNewMarkerName->text()); 
-  settings.setValue("reqcOldAntennaName" , _reqcOldAntennaName->text());
-  settings.setValue("reqcNewAntennaName" , _reqcNewAntennaName->text());
-  settings.setValue("reqcOldReceiverName", _reqcOldReceiverName->text());
-  settings.setValue("reqcNewReceiverName", _reqcNewReceiverName->text());
+  settings.setValue("reqcRnxVersion"       , _reqcRnxVersion->currentText());
+  settings.setValue("reqcSampling"         , _reqcSampling->value());
+  settings.setValue("reqcV2Priority"       , _reqcV2Priority->text());
+  settings.setValue("reqcStartDateTime"    , _reqcStartDateTime->dateTime().toString(Qt::ISODate));
+  settings.setValue("reqcEndDateTime"      , _reqcEndDateTime->dateTime().toString(Qt::ISODate));
+  settings.setValue("reqcRunBy"            , _reqcRunBy->text());
+  settings.setValue("reqcUseObsTypes"      , _reqcUseObsTypes->text());
+  settings.setValue("reqcComment"          , _reqcComment->text());
+  settings.setValue("reqcOldMarkerName"    , _reqcOldMarkerName->text());
+  settings.setValue("reqcNewMarkerName"    , _reqcNewMarkerName->text());
+  settings.setValue("reqcOldAntennaName"   , _reqcOldAntennaName->text());
+  settings.setValue("reqcNewAntennaName"   , _reqcNewAntennaName->text());
+  settings.setValue("reqcOldAntennaNumber" , _reqcOldAntennaNumber->text());
+  settings.setValue("reqcNewAntennaNumber" , _reqcNewAntennaNumber->text());
+  settings.setValue("reqcOldAntennadN"     , _reqcOldAntennadN->text());
+  settings.setValue("reqcNewAntennadN"     , _reqcNewAntennadN->text());
+  settings.setValue("reqcOldAntennadE"     , _reqcOldAntennadE->text());
+  settings.setValue("reqcNewAntennadE"     , _reqcNewAntennadE->text());
+  settings.setValue("reqcOldAntennadU"     , _reqcOldAntennadU->text());
+  settings.setValue("reqcNewAntennadU"     , _reqcNewAntennadU->text());
+  settings.setValue("reqcNewAntennaNumber" , _reqcNewAntennaNumber->text());
+  settings.setValue("reqcOldReceiverName"  , _reqcOldReceiverName->text());
+  settings.setValue("reqcNewReceiverName"  , _reqcNewReceiverName->text());
+  settings.setValue("reqcOldReceiverNumber", _reqcOldReceiverNumber->text());
+  settings.setValue("reqcNewReceiverNumber", _reqcNewReceiverNumber->text());
 }
 
Index: /trunk/BNC/src/reqcdlg.h
===================================================================
--- /trunk/BNC/src/reqcdlg.h	(revision 6794)
+++ /trunk/BNC/src/reqcdlg.h	(revision 6795)
@@ -66,6 +66,16 @@
    QLineEdit*     _reqcOldAntennaName;
    QLineEdit*     _reqcNewAntennaName;
+   QLineEdit*     _reqcOldAntennaNumber;
+   QLineEdit*     _reqcNewAntennaNumber;
+   QLineEdit*     _reqcOldAntennadN;
+   QLineEdit*     _reqcNewAntennadN;
+   QLineEdit*     _reqcOldAntennadE;
+   QLineEdit*     _reqcNewAntennadE;
+   QLineEdit*     _reqcOldAntennadU;
+   QLineEdit*     _reqcNewAntennadU;
    QLineEdit*     _reqcOldReceiverName;
    QLineEdit*     _reqcNewReceiverName;
+   QLineEdit*     _reqcOldReceiverNumber;
+   QLineEdit*     _reqcNewReceiverNumber;
    QPushButton*   _buttonOK;
    QPushButton*   _buttonCancel;
Index: /trunk/BNC/src/rinex/reqcedit.cpp
===================================================================
--- /trunk/BNC/src/rinex/reqcedit.cpp	(revision 6794)
+++ /trunk/BNC/src/rinex/reqcedit.cpp	(revision 6795)
@@ -339,4 +339,40 @@
   }
 
+  QString oldAntennaNumber  = settings.value("reqcOldAntennaNumber").toString();
+  QString newAntennaNumber  = settings.value("reqcNewAntennaNumber").toString();
+  if (!newAntennaNumber.isEmpty()) {
+    if (oldAntennaNumber.isEmpty() ||
+        QRegExp(oldAntennaNumber).exactMatch(obsFile.antennaNumber())) {
+      obsFile.setAntennaNumber(newAntennaNumber);
+    }
+  }
+
+
+  const ColumnVector& obsFileAntNEU = obsFile.antNEU();
+  QString oldAntennadN = settings.value("reqcOldAntennadN").toString();
+  QString newAntennadN = settings.value("reqcNewAntennadN").toString();
+  if(!newAntennadN.isEmpty()) {
+    if (oldAntennadN.isEmpty() ||
+        oldAntennadN.toDouble() == obsFileAntNEU(1)) {
+      obsFile.setAntennaN(newAntennadN.toDouble());
+    }
+  }
+  QString oldAntennadE = settings.value("reqcOldAntennadE").toString();
+  QString newAntennadE = settings.value("reqcNewAntennadE").toString();
+  if(!newAntennadE.isEmpty()) {
+    if (oldAntennadE.isEmpty() ||
+        oldAntennadE.toDouble() == obsFileAntNEU(2)) {
+      obsFile.setAntennaE(newAntennadE.toDouble());
+    }
+  }
+  QString oldAntennadU = settings.value("reqcOldAntennadU").toString();
+  QString newAntennadU = settings.value("reqcNewAntennadU").toString();
+  if(!newAntennadU.isEmpty()) {
+    if (oldAntennadU.isEmpty() ||
+        oldAntennadU.toDouble() == obsFileAntNEU(3)) {
+      obsFile.setAntennaU(newAntennadU.toDouble());
+    }
+  }
+
   QString oldReceiverType = settings.value("reqcOldReceiverName").toString();
   QString newReceiverType = settings.value("reqcNewReceiverName").toString();
@@ -345,4 +381,13 @@
         QRegExp(oldReceiverType).exactMatch(obsFile.receiverType())) {
       obsFile.setReceiverType(newReceiverType);
+    }
+  }
+
+  QString oldReceiverNumber = settings.value("reqcOldReceiverNumber").toString();
+  QString newReceiverNumber = settings.value("reqcNewReceiverNumber").toString();
+  if (!newReceiverNumber.isEmpty()) {
+    if (oldReceiverNumber.isEmpty() ||
+        QRegExp(oldReceiverNumber).exactMatch(obsFile.receiverNumber())) {
+      obsFile.setReceiverNumber(newReceiverNumber);
     }
   }
Index: /trunk/BNC/src/rinex/rnxobsfile.h
===================================================================
--- /trunk/BNC/src/rinex/rnxobsfile.h	(revision 6794)
+++ /trunk/BNC/src/rinex/rnxobsfile.h	(revision 6795)
@@ -139,12 +139,20 @@
   }
   const QString& antennaName() const {return _header._antennaName;}
+  const QString& antennaNumber() const {return _header._antennaNumber;}
   const QString& markerName() const {return _header._markerName;}
   const QString& markerNumber() const {return _header._markerNumber;}
   const QString& receiverType() const {return _header._receiverType;}
+  const QString& receiverNumber() const {return _header._receiverNumber;}
 
   void setInterval(double interval) {_header._interval = interval;}
   void setAntennaName(const QString& antennaName) {_header._antennaName = antennaName;}
+  void setAntennaNumber(const QString& antennaNumber) {_header._antennaNumber = antennaNumber;}
+  void setAntennaN(double antN) {_header._antNEU(1) = antN;}
+  void setAntennaE(double antE) {_header._antNEU(2) = antE;}
+  void setAntennaU(double antU) {_header._antNEU(3) = antU;}
+
   void setMarkerName(const QString& markerName) {_header._markerName = markerName;}
   void setReceiverType(const QString& receiverType) {_header._receiverType = receiverType;}
+  void setReceiverNumber(const QString& receiverNumber) {_header._receiverNumber = receiverNumber;}
 
   const ColumnVector& xyz() const {return _header._xyz;}
