Index: trunk/BNC/src/bncantex.cpp
===================================================================
--- trunk/BNC/src/bncantex.cpp	(revision 11021)
+++ trunk/BNC/src/bncantex.cpp	(revision 11047)
@@ -169,4 +169,11 @@
     else if (line.indexOf("END OF ANTENNA") == 60) {
       if (newAntMap) {
+        if (!newAntMap->blockType.isEmpty()) { // satellite antenna
+          t_satBlock satBlock;
+          satBlock.validFrom = newAntMap->validFrom;
+          satBlock.validTo   = newAntMap->validTo;
+          satBlock.blockType = newAntMap->blockType;
+          _satBlocks[newAntMap->antName].append(satBlock);
+        }
         if (_maps.contains(newAntMap->antName)) {
           delete _maps[newAntMap->antName];
@@ -213,4 +220,18 @@
         else {
           newAntMap->antName = line.mid(0,20);
+        }
+      }
+      else if (line.indexOf("VALID FROM") == 60 || line.indexOf("VALID UNTIL") == 60) {
+        QTextStream inLine(&line, QIODevice::ReadOnly);
+        int year, month, day, hour, min;
+        double sec;
+        inLine >> year >> month >> day >> hour >> min >> sec;
+        bncTime tt;
+        tt.set(year, month, day, hour, min, sec);
+        if (line.indexOf("VALID FROM") == 60) {
+          newAntMap->validFrom = tt;
+        }
+        else {
+          newAntMap->validTo = tt;
         }
       }
@@ -942,2 +963,23 @@
 
 }
+
+// Satellite block type valid at the given epoch
+////////////////////////////////////////////////////////////////////////////
+QString bncAntex::satBlockType(const QString& prn, const bncTime& epoch) const {
+  QMap<QString, QVector<t_satBlock> >::const_iterator it = _satBlocks.find(prn.mid(0,3));
+  if (it == _satBlocks.end() || it.value().isEmpty()) {
+    return QString();
+  }
+  const QVector<t_satBlock>& blocks = it.value();
+  if (!epoch.valid()) {
+    return blocks.last().blockType;
+  }
+  for (int ii = 0; ii < blocks.size(); ii++) {
+    const t_satBlock& bb = blocks[ii];
+    if ((!bb.validFrom.valid() || !(epoch < bb.validFrom)) &&
+        (!bb.validTo.valid()   || epoch < bb.validTo)) {
+      return bb.blockType;
+    }
+  }
+  return QString();
+}
