kopia lustrzana https://github.com/meshtastic/firmware
				
				
				
			Merge pull request #2462 from meshtastic/bug-2451
probably fixes #2451 - please testpull/2469/head v2.1.11.5ec624d
						commit
						5ec624d9c3
					
				| 
						 | 
				
			
			@ -1,5 +1,7 @@
 | 
			
		|||
#include "NMEAWPL.h"
 | 
			
		||||
#include "GeoCoord.h"
 | 
			
		||||
#include "RTC.h"
 | 
			
		||||
#include <time.h>
 | 
			
		||||
 | 
			
		||||
/* -------------------------------------------
 | 
			
		||||
 *        1       2 3        4 5    6
 | 
			
		||||
| 
						 | 
				
			
			@ -56,12 +58,18 @@ uint32_t printWPL(char *buf, size_t bufsz, const meshtastic_Position &pos, const
 | 
			
		|||
uint32_t printGGA(char *buf, size_t bufsz, const meshtastic_Position &pos)
 | 
			
		||||
{
 | 
			
		||||
    GeoCoord geoCoord(pos.latitude_i, pos.longitude_i, pos.altitude);
 | 
			
		||||
    uint32_t len =
 | 
			
		||||
        snprintf(buf, bufsz, "$GNGGA,%06u.%03u,%02d%07.4f,%c,%03d%07.4f,%c,%u,%02u,%04u,%04d,%c,%04d,%c,%d,%04d", pos.time / 1000,
 | 
			
		||||
                 pos.time % 1000, geoCoord.getDMSLatDeg(), (abs(geoCoord.getLatitude()) - geoCoord.getDMSLatDeg() * 1e+7) * 6e-6,
 | 
			
		||||
                 geoCoord.getDMSLatCP(), geoCoord.getDMSLonDeg(),
 | 
			
		||||
                 (abs(geoCoord.getLongitude()) - geoCoord.getDMSLonDeg() * 1e+7) * 6e-6, geoCoord.getDMSLonCP(), pos.fix_type,
 | 
			
		||||
                 pos.sats_in_view, pos.HDOP, geoCoord.getAltitude(), 'M', pos.altitude_geoidal_separation, 'M', 0, 0);
 | 
			
		||||
    tm *t = localtime((time_t *)&pos.timestamp);
 | 
			
		||||
    if (getRTCQuality() > 0) { // use the device clock if we got time from somewhere. If not, use the GPS timestamp.
 | 
			
		||||
        uint32_t rtc_sec = getValidTime(RTCQuality::RTCQualityDevice);
 | 
			
		||||
        t = localtime((time_t *)&rtc_sec);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    uint32_t len = snprintf(
 | 
			
		||||
        buf, bufsz, "$GNGGA,%02d%02d%02d.%02d,%02d%07.4f,%c,%03d%07.4f,%c,%u,%02u,%04u,%04d,%c,%04d,%c,%d,%04d", t->tm_hour,
 | 
			
		||||
        t->tm_min, t->tm_sec, pos.timestamp_millis_adjust, geoCoord.getDMSLatDeg(),
 | 
			
		||||
        (abs(geoCoord.getLatitude()) - geoCoord.getDMSLatDeg() * 1e+7) * 6e-6, geoCoord.getDMSLatCP(), geoCoord.getDMSLonDeg(),
 | 
			
		||||
        (abs(geoCoord.getLongitude()) - geoCoord.getDMSLonDeg() * 1e+7) * 6e-6, geoCoord.getDMSLonCP(), pos.fix_quality,
 | 
			
		||||
        pos.sats_in_view, pos.HDOP, geoCoord.getAltitude(), 'M', pos.altitude_geoidal_separation, 'M', 0, 0);
 | 
			
		||||
 | 
			
		||||
    uint32_t chk = 0;
 | 
			
		||||
    for (uint32_t i = 1; i < len; i++) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue