Changeset 356 in ntrip for trunk/BNC/bncgetthread.cpp


Ignore:
Timestamp:
Dec 21, 2006, 3:38:51 PM (17 years ago)
Author:
weber
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/bncgetthread.cpp

    r354 r356  
    4545#include <QTextStream>
    4646#include <QtNetwork>
     47#include <QTime>
    4748
    4849#include "bncgetthread.h"
     
    9293    _staID = _staID.left(_staID.length()-1) + QString("%1").arg(num).toAscii();
    9394  }   
    94 // Start Ergaenzung Perlt
    9595  msleep(100); //sleep 0.1 sec
    96 //Ende Ergaenzung Perlt
    9796}
    9897
     
    154153            userAndPwd.toBase64() + "\r\n\r\n";
    155154  }
     155
     156//////////////////////////////////////////////////////////////////
     157// Additional NMEA String in request to handle VRS data streams //
     158// will be ignored from standard casters                        //
     159//////////////////////////////////////////////////////////////////
     160
     161  double lat, lon;
     162  lat = settings.value("approxLat", 0).toDouble();
     163  lon = settings.value("approxLon", 0).toDouble();
     164  if ((lat != 0.0) && (lon != 0.0)) {
     165    const char* flagN="N";
     166    const char* flagE="E";
     167    if (lon >180.) {lon=(lon-360.)*(-1.); flagE="W";}
     168    if ((lon < 0.) && (lon >= -180.))  {lon=lon*(-1.); flagE="W";}
     169    if (lon < -180.)  {lon=(lon+360.); flagE="E";}
     170    if (lat < 0.)  {lat=lat*(-1.); flagN="S";}
     171    QTime ttime(QTime::currentTime());
     172    int lat_deg = (int)lat; 
     173    double lat_min=(lat-lat_deg)*60.;
     174    int lon_deg = (int)lon; 
     175    double lon_min=(lon-lon_deg)*60.;
     176    int hh = 0 , mm = 0;
     177    double ss = 0.0;
     178    hh=ttime.hour();
     179    mm=ttime.minute();
     180    ss=(double)ttime.second()+0.001*ttime.msec();
     181    QString gga;
     182    gga += "GPGGA,";
     183    gga += QString("%1%2%3,").arg((int)hh, 2, 10, QLatin1Char('0')).arg((int)mm, 2, 10, QLatin1Char('0')).arg((int)ss, 2, 10, QLatin1Char('0'));
     184    gga += QString("%1%2,").arg((int)lat_deg,2, 10, QLatin1Char('0')).arg(lat_min, 7, 'f', 4, QLatin1Char('0'));
     185    gga += flagN;
     186    gga += QString(",%1%2,").arg((int)lon_deg,3, 10, QLatin1Char('0')).arg(lon_min, 7, 'f', 4, QLatin1Char('0'));
     187    gga += flagE + QString(",1,05,1.00,+00100,M,10.000,M,,");
     188    int xori;
     189    char XOR = 0;
     190    char *Buff =gga.toAscii().data();
     191    int iLen = strlen(Buff);
     192    for (xori = 0; xori < iLen; xori++) {
     193      XOR ^= (char)Buff[xori];
     194    }
     195    gga += QString("*%1").arg(XOR, 2, 16, QLatin1Char('0'));
     196    reqStr += "$";
     197    reqStr += gga;
     198    reqStr += "\r\n";
     199  }
     200////////////////////////////////////////////////////////////////
    156201
    157202  msg += reqStr;
Note: See TracChangeset for help on using the changeset viewer.