- Timestamp:
- Dec 29, 2008, 9:32:37 AM (16 years ago)
- Location:
- trunk/BNC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/bncutils.cpp
r1155 r1381 52 52 using namespace std; 53 53 54 // 55 //////////////////////////////////////////////////////////////////////////// 54 56 void expandEnvVar(QString& str) { 55 57 … … 67 69 } 68 70 71 // 72 //////////////////////////////////////////////////////////////////////////// 69 73 QDateTime dateAndTimeFromGPSweek(int GPSWeek, double GPSWeeks) { 70 74 … … 81 85 } 82 86 87 // 88 //////////////////////////////////////////////////////////////////////////// 83 89 void currentGPSWeeks(int& week, double& sec) { 84 90 … … 112 118 } 113 119 120 // 121 //////////////////////////////////////////////////////////////////////////// 114 122 QDateTime currentDateAndTimeGPS() { 115 123 int GPSWeek; … … 119 127 } 120 128 129 // 130 //////////////////////////////////////////////////////////////////////////// 131 QString 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 37 37 QDateTime currentDateAndTimeGPS(); 38 38 39 QString ggaString(const QByteArray& latitude, const QByteArray& longitude); 40 39 41 #endif
Note:
See TracChangeset
for help on using the changeset viewer.