Index: /trunk/BNC/src/RTCM3/bits.h
===================================================================
--- /trunk/BNC/src/RTCM3/bits.h	(revision 10550)
+++ /trunk/BNC/src/RTCM3/bits.h	(revision 10551)
@@ -152,4 +152,18 @@
 
 #define SCALEADDBITS(a, b, c) ADDBITS(a, (int64_t)(c > 0 ? b*c+0.5 : b*c-0.5))
+
+
+// RTCM3 CRS encoding
+//////////////////////////////////////////////////////////
+#define CRSTOINT(type, value) static_cast<type>(round(value))
+
+#define CRSADDBITS(a, b) {bitbuffer = (bitbuffer<<(a)) \
+                       |(CRSTOINT(long long,b)&((1ULL<<a)-1)); \
+                       numbits += (a); \
+                       while(numbits >= 8) { \
+                       buffer[size++] = bitbuffer>>(numbits-8);numbits -= 8;}}
+
+#define CRSADDBITSFLOAT(a,b,c) {long long i = CRSTOINT(long long,(b)/(c)); \
+                             CRSADDBITS(a,i)};
 
 // RTCM3 GPS EPH encoding
Index: /trunk/BNC/src/RTCM3/crsEncoder.cpp
===================================================================
--- /trunk/BNC/src/RTCM3/crsEncoder.cpp	(revision 10550)
+++ /trunk/BNC/src/RTCM3/crsEncoder.cpp	(revision 10551)
@@ -85,7 +85,7 @@
   SCALEADDBITS(23, 1000.0, helmertPar._dz)
 
-  SCALEADDBITS(32, 50000.0, helmertPar._ox)
-  SCALEADDBITS(32, 50000.0, helmertPar._oy)
-  SCALEADDBITS(32, 50000.0, helmertPar._oz)
+  CRSADDBITSFLOAT(32, helmertPar._ox, 50000.0)
+  CRSADDBITSFLOAT(32, helmertPar._oy, 50000.0)
+  CRSADDBITSFLOAT(32, helmertPar._oz, 50000.0)
 
   SCALEADDBITS(25, 100000.0, helmertPar._sc)
Index: /trunk/BNC/src/src.pri
===================================================================
--- /trunk/BNC/src/src.pri	(revision 10550)
+++ /trunk/BNC/src/src.pri	(revision 10551)
@@ -25,5 +25,5 @@
 #debug:DEFINES   += BNC_DEBUG_SSR
 #debug:DEFINES   += BNC_DEBUG_CMB
-debug:DEFINES    += QT_DISABLE_DEPRECATED_BEFORE=0x050F00
+#debug:DEFINES    += QT_DISABLE_DEPRECATED_BEFORE=0x050F00
 
 !versionAtLeast(QT_VERSION, 5.15.0):error("Use at least Qt version 5.15.0")
