Changeset 1381 in ntrip for trunk/BNC


Ignore:
Timestamp:
Dec 29, 2008, 9:32:37 AM (16 years ago)
Author:
mervart
Message:

* empty log message *

Location:
trunk/BNC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/bncutils.cpp

    r1155 r1381  
    5252using namespace std;
    5353
     54//
     55////////////////////////////////////////////////////////////////////////////
    5456void expandEnvVar(QString& str) {
    5557
     
    6769}
    6870
     71//
     72////////////////////////////////////////////////////////////////////////////
    6973QDateTime dateAndTimeFromGPSweek(int GPSWeek, double GPSWeeks) {
    7074
     
    8185}
    8286
     87//
     88////////////////////////////////////////////////////////////////////////////
    8389void currentGPSWeeks(int& week, double& sec) {
    8490
     
    112118}
    113119
     120//
     121////////////////////////////////////////////////////////////////////////////
    114122QDateTime currentDateAndTimeGPS() {
    115123  int    GPSWeek;
     
    119127}
    120128
     129//
     130////////////////////////////////////////////////////////////////////////////
     131QString ggaString(const QByteArray& latitude, const QByteArray& longitude) {
     132
     133  double lat = strtod(latitude,NULL);
     134  double lon = strtod(longitude,NULL);
     135
     136  const char* flagN="N";
     137  const char* flagE="E";
     138  if (lon >180.) {lon=(lon-360.)*(-1.); flagE="W";}
     139  if ((lon < 0.) && (lon >= -180.))  {lon=lon*(-1.); flagE="W";}
     140  if (lon < -180.)  {lon=(lon+360.); flagE="E";}
     141  if (lat < 0.)  {lat=lat*(-1.); flagN="S";}
     142  QTime ttime(QDateTime::currentDateTime().toUTC().time());
     143  int lat_deg = (int)lat; 
     144  double lat_min=(lat-lat_deg)*60.;
     145  int lon_deg = (int)lon; 
     146  double lon_min=(lon-lon_deg)*60.;
     147  int hh = 0 , mm = 0;
     148  double ss = 0.0;
     149  hh=ttime.hour();
     150  mm=ttime.minute();
     151  ss=(double)ttime.second()+0.001*ttime.msec();
     152  QString gga;
     153  gga += "GPGGA,";
     154  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'));
     155  gga += QString("%1%2,").arg((int)lat_deg,2, 10, QLatin1Char('0')).arg(lat_min, 7, 'f', 4, QLatin1Char('0'));
     156  gga += flagN;
     157  gga += QString(",%1%2,").arg((int)lon_deg,3, 10, QLatin1Char('0')).arg(lon_min, 7, 'f', 4, QLatin1Char('0'));
     158  gga += flagE + QString(",1,05,1.00,+00100,M,10.000,M,,");
     159  int xori;
     160  char XOR = 0;
     161  char *Buff =gga.toAscii().data();
     162  int iLen = strlen(Buff);
     163  for (xori = 0; xori < iLen; xori++) {
     164    XOR ^= (char)Buff[xori];
     165  }
     166  gga += QString("*%1").arg(XOR, 2, 16, QLatin1Char('0'));
     167
     168  return gga;
     169}
  • trunk/BNC/bncutils.h

    r1154 r1381  
    3737QDateTime currentDateAndTimeGPS();
    3838
     39QString ggaString(const QByteArray& latitude, const QByteArray& longitude);
     40
    3941#endif
Note: See TracChangeset for help on using the changeset viewer.