Index: trunk/BNC/src/upload/bncrawuploadcaster.cpp
===================================================================
--- trunk/BNC/src/upload/bncrawuploadcaster.cpp	(revision 10753)
+++ trunk/BNC/src/upload/bncrawuploadcaster.cpp	(revision 10753)
@@ -0,0 +1,77 @@
+/*
+ * bncrawuploadcaster.cpp
+ *
+ *  Created on: Aug 26, 2025
+ *      Author: stuerze
+ */
+
+/* -------------------------------------------------------------------------
+ * BKG NTRIP Server
+ * -------------------------------------------------------------------------
+ *
+ * Class:      bncRawUploadCaster
+ *
+ * Purpose:    Connection to NTRIP Caster for Ephemeris
+ *
+ * Author:     L. Mervart
+ *
+ * Created:    03-Apr-2011
+ *
+ * Changes:
+ *
+ * -----------------------------------------------------------------------*/
+
+#include <iostream>
+#include <math.h>
+#include "bncrawuploadcaster.h"
+#include "bncsettings.h"
+
+using namespace std;
+
+// Constructor
+////////////////////////////////////////////////////////////////////////////
+bncRawUploadCaster::bncRawUploadCaster() {
+  bncSettings settings;
+
+  // List of upload casters
+  // ----------------------
+  int iRow = -1;
+  QListIterator<QString> it(settings.value("uploadRawMountpointsOut").toStringList());
+  while (it.hasNext()) {
+    QStringList hlp = it.next().split(",");
+    if (hlp.size() > 5) {
+      ++iRow;
+      QString sourceMount = hlp[0];
+      int  outPort = hlp[2].toInt();
+      bncUploadCaster* newCaster = new bncUploadCaster(hlp[3], hlp[1], outPort,
+                                                       hlp[4], hlp[5],
+                                                       hlp[6], iRow, 0);
+
+      connect(newCaster, SIGNAL(newBytes(QByteArray,double)),
+              this, SIGNAL(newBytes(QByteArray,double)));
+
+      newCaster->start();
+      _casters[sourceMount] = newCaster;
+    }
+  }
+}
+
+// Destructor
+////////////////////////////////////////////////////////////////////////////
+bncRawUploadCaster::~bncRawUploadCaster() {
+  QMapIterator<QString,bncUploadCaster*>it(_casters);
+  while (it.hasNext()) {
+    it.next();
+    it.value()->deleteSafely();
+  }
+  _casters.clear();
+}
+
+// Output into the raw upload socket
+////////////////////////////////////////////////////////////////////////////
+void bncRawUploadCaster::slotNewRawData(QByteArray staID, QByteArray data) {
+
+    if (_casters.contains(QString(staID))) {
+      _casters[QString(staID)]->setOutBuffer(data);
+    }
+}
Index: trunk/BNC/src/upload/bncrawuploadcaster.h
===================================================================
--- trunk/BNC/src/upload/bncrawuploadcaster.h	(revision 10753)
+++ trunk/BNC/src/upload/bncrawuploadcaster.h	(revision 10753)
@@ -0,0 +1,27 @@
+/*
+ * bncrawuploadcaster.h
+ *
+ *  Created on: Aug 26, 2025
+ *      Author: stuerze
+ */
+
+#ifndef SRC_UPLOAD_BNCRAWUPLOADCASTER_H_
+#define SRC_UPLOAD_BNCRAWUPLOADCASTER_H_
+
+#include "bncuploadcaster.h"
+#include "bncsettings.h"
+
+class bncRawUploadCaster : public QObject {
+ Q_OBJECT
+ public:
+  bncRawUploadCaster();
+  virtual ~bncRawUploadCaster();
+ signals:
+  void newBytes(QByteArray staID, double nbyte);
+  public slots:
+  void slotNewRawData(QByteArray staID, QByteArray data);
+ private:
+  QMap<QString, bncUploadCaster*> _casters;
+};
+
+#endif /* SRC_UPLOAD_BNCRAWUPLOADCASTER_H_ */
Index: trunk/BNC/src/upload/bncuploadcaster.cpp
===================================================================
--- trunk/BNC/src/upload/bncuploadcaster.cpp	(revision 10667)
+++ trunk/BNC/src/upload/bncuploadcaster.cpp	(revision 10753)
@@ -57,4 +57,5 @@
             SLOT(slotNewBytes(const QByteArray,double)));
   }
+
   if (BNC_CORE->_uploadEphTableItems.find(_iRow) != BNC_CORE->_uploadEphTableItems.end()) {
     connect(this, SIGNAL(newBytes(QByteArray,double)),
@@ -62,4 +63,11 @@
             SLOT(slotNewBytes(const QByteArray,double)));
   }
+
+  if (BNC_CORE->_uploadRawTableItems.find(_iRow) != BNC_CORE->_uploadRawTableItems.end()) {
+    connect(this, SIGNAL(newBytes(QByteArray,double)),
+            BNC_CORE->_uploadRawTableItems.value(iRow),
+            SLOT(slotNewBytes(const QByteArray,double)));
+  }
+
 
   _sslIgnoreErrors = (Qt::CheckState(settings.value("sslIgnoreErrors").toInt()) == Qt::Checked);
