source: ntrip/trunk/BNC/upload/bncephuploadcaster.cpp@ 3256

Last change on this file since 3256 was 3256, checked in by mervart, 13 years ago
File size: 2.1 KB
Line 
1/* -------------------------------------------------------------------------
2 * BKG NTRIP Server
3 * -------------------------------------------------------------------------
4 *
5 * Class: bncEphUploadCaster
6 *
7 * Purpose: Connection to NTRIP Caster for Ephemeris
8 *
9 * Author: L. Mervart
10 *
11 * Created: 03-Apr-2011
12 *
13 * Changes:
14 *
15 * -----------------------------------------------------------------------*/
16
17#include <math.h>
18#include "bncephuploadcaster.h"
19#include "bncsettings.h"
20
21using namespace std;
22
23// Constructor
24////////////////////////////////////////////////////////////////////////////
25bncEphUploadCaster::bncEphUploadCaster() {
26 bncSettings settings;
27
28 QString mountpoint = settings.value("uploadEphMountpoint").toString();
29 if (mountpoint.isEmpty()) {
30 _ephUploadCaster = 0;
31 }
32 else {
33 QString outHost = settings.value("uploadEphHost").toString();
34 int outPort = settings.value("uploadEphPort").toInt();
35 QString password = settings.value("uploadEphPassword").toString();
36
37 _ephUploadCaster = new bncUploadCaster(mountpoint, outHost, outPort,
38 password, -1);
39
40 connect(_ephUploadCaster, SIGNAL(newBytes(QByteArray,double)),
41 this, SIGNAL(newBytes(QByteArray,double)));
42
43 _ephUploadCaster->start();
44 }
45}
46
47// Destructor
48////////////////////////////////////////////////////////////////////////////
49bncEphUploadCaster::~bncEphUploadCaster() {
50 if (_ephUploadCaster) {
51 _ephUploadCaster->deleteSafely();
52 }
53}
54
55// List of Stored Ephemeris changed (virtual)
56////////////////////////////////////////////////////////////////////////////
57void bncEphUploadCaster::ephBufferChanged() {
58 if (_ephUploadCaster) {
59 QMutexLocker locker(&_mutex);
60
61 QMapIterator<QString, t_ephPair*> it(_eph);
62 while (it.hasNext()) {
63 it.next();
64 QByteArray outBuffer;
65
66 t_eph* eph = it.value()->last;
67 unsigned char Array[67];
68 int size = eph->RTCM3(Array);
69 if (size > 0) {
70 outBuffer += QByteArray((char*) Array, size);
71 }
72
73 if (outBuffer.size() > 0) {
74 _ephUploadCaster->setOutBuffer(outBuffer);
75 }
76 }
77 }
78}
Note: See TracBrowser for help on using the repository browser.