Index: trunk/BNC/src/RTCM3/RTCM3Decoder.cpp
===================================================================
--- trunk/BNC/src/RTCM3/RTCM3Decoder.cpp	(revision 8186)
+++ trunk/BNC/src/RTCM3/RTCM3Decoder.cpp	(revision 8197)
@@ -1379,13 +1379,13 @@
 }
 
-//
-////////////////////////////////////////////////////////////////////////////
-bool RTCM3Decoder::DecodeAntenna(unsigned char* data, int size) {
+/*
+////////////////////////////////////////////////////////////////////////////
+bool RTCM3Decoder::DecodeAntennaReceiver(unsigned char* data, int size) {
   char *antenna, type[256];
   int antnum = -1;
   uint64_t numbits = 0, bitfield = 0;
 
-  data += 4; /* header */
-  size -= 6; /* header + crc */
+  data += 4;
+  size -= 6;
 
   SKIPBITS(12)
@@ -1396,4 +1396,46 @@
     if (!_antType.contains(type)) {
       _antType.push_back(type);
+    }
+  }
+  return true;
+}*/
+
+//
+////////////////////////////////////////////////////////////////////////////
+bool RTCM3Decoder::DecodeAntennaReceiver(unsigned char* data, int size) {
+  char *antenna, anttype[256];
+  char *dummy;
+  char *receiver, rectype[256];
+
+  int type;
+
+  int dnum = -1;
+  int antnum = -1;
+  int recnum = -1;
+  uint64_t numbits = 0, bitfield = 0;
+
+  data += 3; /* header*/
+  size -= 6; /* header + crc */
+
+  GETBITS(type, 12)  qDebug() << "Type: " << type;
+  SKIPBITS(12)
+  GETSTRING(antnum, antenna)
+  if (antnum > -1 && antnum < 265) {
+    memcpy(anttype, antenna, antnum);
+    anttype[antnum] = 0;
+    if (!_antType.contains(anttype)) {
+      _antType.push_back(anttype);
+    }
+  }
+  if (type == 1033) {
+    SKIPBITS(8)
+    GETSTRING(dnum, dummy)
+    GETSTRING(recnum, receiver)
+    if (recnum > -1 && recnum < 265) {
+      memcpy(rectype, receiver, recnum);
+      rectype[recnum] = 0;
+      if (!_recType.contains(rectype)) {
+        _recType.push_back(rectype);
+      }
     }
   }
@@ -1526,5 +1568,5 @@
           case 1008:
           case 1033:
-            DecodeAntenna(_Message, _BlockSize);
+            DecodeAntennaReceiver(_Message, _BlockSize);
             break;
           case 1005:
Index: trunk/BNC/src/RTCM3/RTCM3Decoder.h
===================================================================
--- trunk/BNC/src/RTCM3/RTCM3Decoder.h	(revision 8186)
+++ trunk/BNC/src/RTCM3/RTCM3Decoder.h	(revision 8197)
@@ -64,5 +64,5 @@
    * {@link _MessageSize}: contains to current amount of bytes in the buffer<br>
    * {@link _SkipBytes}: amount of bytes to skip at the beginning of the buffer
-   * 
+   *
    * The functions sets following variables:<br>
    * {@link _NeedBytes}: Minimum number of bytes needed on next call<br>
@@ -146,10 +146,11 @@
   bool DecodeBDSEphemeris(unsigned char* buffer, int bufLen);
   /**
-   * Extract antenna type from 1007, 1008 or 1033 RTCM3 messages.
-   * @param buffer the buffer containing an antenna RTCM block
+   * Extract antenna type from 1007, 1008 or 1033 RTCM3 messages
+   * and extract receiver type from 1033 RTCM3 messages
+   * @param buffer the buffer containing an antenna (and receiver) RTCM block
    * @param bufLen the length of the buffer (the message length including header+crc)
    * @return <code>true</code> when data block was decodable
    */
-  bool DecodeAntenna(unsigned char* buffer, int bufLen);
+  bool DecodeAntennaReceiver(unsigned char* buffer, int bufLen);
   /**
    * Extract antenna type from 1005 or 1006 RTCM3 messages.
@@ -166,5 +167,5 @@
 
   /** List of decoders for Clock and Orbit data */
-  QMap<QByteArray, RTCM3coDecoder*> _coDecoders; 
+  QMap<QByteArray, RTCM3coDecoder*> _coDecoders;
 
   /** Message buffer for input parsing */
